144 lines
5.1 KiB
Markdown
144 lines
5.1 KiB
Markdown
---
|
|
phase: 13
|
|
plan: 03
|
|
type: tdd
|
|
wave: 1
|
|
depends_on: []
|
|
files_modified:
|
|
- kb_workflow/srt/semantic_engine.py
|
|
- tests/test_semantic_engine.py
|
|
autonomous: true
|
|
requirements:
|
|
- COMP-01
|
|
- COMP-02
|
|
- COMP-03
|
|
must_haves:
|
|
truths:
|
|
- "分段不会在句子中间截断内容"
|
|
- "分段不会破坏论点的完整性(如前提-结论结构)"
|
|
- "并列结构(首先、其次、最后)不会被错误拆分"
|
|
artifacts:
|
|
- path: "kb_workflow/srt/semantic_engine.py"
|
|
provides: "内容完整性保护 Prompt 指令"
|
|
contains: "SEGMENTATION_PROMPT"
|
|
- path: "tests/test_semantic_engine.py"
|
|
provides: "内容完整性测试"
|
|
min_lines: 80
|
|
key_links:
|
|
- from: "SEGMENTATION_PROMPT"
|
|
to: "LLM 输出分段"
|
|
via: "Prompt 中的完整性约束指令"
|
|
pattern: "不要在句子中间截断.*保持论点完整性"
|
|
---
|
|
|
|
<objective>
|
|
实现内容完整性保护功能
|
|
|
|
目的:通过 Prompt 约束确保分段不破坏句子和论点完整性
|
|
输出:SEGMENTATION_PROMPT 中的完整性保护指令
|
|
</objective>
|
|
|
|
<execution_context>
|
|
@/home/starmen1265/.claude/get-shit-done/workflows/execute-plan.md
|
|
@/home/starmen1265/.claude/get-shit-done/templates/summary.md
|
|
</execution_context>
|
|
|
|
<context>
|
|
@.planning/phases/13-llm/13-CONTEXT.md
|
|
@.planning/phases/13-llm/13-RESEARCH.md
|
|
|
|
# User Decision (Locked)
|
|
- **句边界保护**: 纯 Prompt 约束 — 在 Prompt 中明确指令「不要在句子中间截断」,依赖 LLM 理解,不进行代码后处理
|
|
- **论点完整性**: 一般性指令 — Prompt 中给出「保持论点完整性」的一般性指令,不提供具体示例或标记词识别
|
|
- **并列结构**: 不特别指定 — 对「首先/其次/最后」等并列结构不给出特殊处理,让 LLM 根据整体语义自然判断
|
|
</context>
|
|
|
|
<feature>
|
|
<name>内容完整性保护</name>
|
|
<files>kb_workflow/srt/semantic_engine.py, tests/test_semantic_engine.py</files>
|
|
<behavior>
|
|
Prompt 约束(用户决策:纯 Prompt,无代码后处理):
|
|
- 「不要在句子中间截断」
|
|
- 「分段边界应放在自然停顿处(句号。、问号?、感叹号!、省略号……等标点符号后)」
|
|
- 「保持论点完整性,不要在前提-结论结构中间截断」
|
|
- 对并列结构不特别指定(让 LLM 自然判断)
|
|
|
|
测试验证:
|
|
- 分段边界在标点符号后
|
|
- 论点结构完整(前提-结论不被拆分)
|
|
- 并列结构保持完整
|
|
</behavior>
|
|
<implementation>
|
|
在 SEGMENTATION_PROMPT 中添加完整性保护指令:
|
|
1. 明确句边界要求(列举所有中文句末标点)
|
|
2. 添加论点完整性指令
|
|
3. 不添加并列结构特殊处理(按用户决策)
|
|
|
|
测试:
|
|
1. test_sentence_boundary_protection() - 验证句边界保护
|
|
2. test_argument_completeness() - 验证论点完整性
|
|
</implementation>
|
|
</feature>
|
|
|
|
<tasks>
|
|
<task type="auto" tdd="true">
|
|
<name>Task 1: 添加内容完整性保护指令</name>
|
|
<files>kb_workflow/srt/semantic_engine.py, tests/test_semantic_engine.py</files>
|
|
<behavior>
|
|
RED 阶段 - 测试预期行为:
|
|
- test_sentence_boundary_protection: 分段边界在标点符号后
|
|
- test_argument_completeness: 论点结构完整
|
|
|
|
GREEN 阶段 - 实现功能:
|
|
- SEGMENTATION_PROMPT 添加句边界指令
|
|
- SEGMENTATION_PROMPT 添加论点完整性指令
|
|
- 不添加并列结构特殊处理(遵守用户决策)
|
|
|
|
REFACTOR 阶段 - 优化代码:
|
|
- 优化指令措辞(更清晰明确)
|
|
</behavior>
|
|
<action>
|
|
更新 SEGMENTATION_PROMPT,添加完整性保护指令:
|
|
|
|
```python
|
|
【分段要求】
|
|
...
|
|
4. **重要**:保持句子完整性,分段边界应放在自然停顿处(句号。、问号?、感叹号!、省略号……等标点符号后)
|
|
5. 保持论点完整性,不要在前提-结论结构中间截断
|
|
```
|
|
|
|
注意:不添加并列结构特殊处理(遵守用户决策:让 LLM 自然判断)
|
|
|
|
测试使用包含以下场景的字幕:
|
|
- 句子中间不应截断(如「机器学习是...」不应被拆开)
|
|
- 论点完整性(如「因此...所以...」不应被拆开)
|
|
- 并列结构(如「首先...其次...最后...」应保持完整)
|
|
</action>
|
|
<verify>
|
|
<automated>pytest tests/test_semantic_engine.py::test_sentence_boundary_protection -x</automated>
|
|
</verify>
|
|
<done>
|
|
- SEGMENTATION_PROMPT 包含句边界保护指令
|
|
- SEGMENTATION_PROMPT 包含论点完整性指令
|
|
- 不包含并列结构特殊处理(遵守用户决策)
|
|
- 测试验证完整性保护效果
|
|
</done>
|
|
</task>
|
|
</tasks>
|
|
|
|
<verification>
|
|
- pytest tests/test_semantic_engine.py -v 相关测试通过
|
|
- Prompt 指令清晰明确
|
|
- 不包含并列结构特殊处理(符合用户决策)
|
|
</verification>
|
|
|
|
<success_criteria>
|
|
1. SEGMENTATION_PROMPT 包含句边界保护指令(列举所有标点符号)
|
|
2. SEGMENTATION_PROMPT 包含论点完整性指令
|
|
3. 测试验证完整性保护效果
|
|
</success_criteria>
|
|
|
|
<output>
|
|
After completion, create `.planning/phases/13-llm/13-03-SUMMARY.md`
|
|
</output>
|