fix(writer): 无锚点子章归并父章生成 + 注入后裸重复子节去重
- template_mapper: 按 design §6.5 仅 Heading level<=1 起章,H2/H3 归入
父章 sub_headings(此前每个 heading 独立成章,无 {{section:id}} 锚点的
6 个子章生成后被静默丢弃)
- models: ChapterSpec.sub_headings 字段;to_vars 暴露 sub_headings 变量
- writer_agent: prompt 新增【小节约束】(有子节时按小节顺序以 level=2
heading 组织,不得遗漏或新增)
- docx_injector: 注入后删除同章内与已生成标题同名且完全无内容的模板裸
H2/H3(保守策略:带内容的模板子节保留)
- 真实试运行验证:7 章 / 无静默丢弃告警 / 14 个 H2 无重复
This commit is contained in:
@@ -75,6 +75,12 @@ def test_prompt_template_enforces_topic_and_chapter_data():
|
||||
assert "{{source}}" not in WRITER_PROMPT_TEMPLATE
|
||||
|
||||
|
||||
def test_prompt_template_has_sub_headings_var():
|
||||
# 子节结构(design.md §6.5:H2/H3 归入本章):模板必须提供小节变量并指导按小节组织
|
||||
assert "{{sub_headings}}" in WRITER_PROMPT_TEMPLATE
|
||||
assert "小节" in WRITER_PROMPT_TEMPLATE
|
||||
|
||||
|
||||
class RecordingEngine(FakeEngine):
|
||||
"""记录 variables 以断言 prompt 渲染输入。"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user