feat: gate writer sections on a % teach: block (SP025)

Rewrite references/pedagogy.md around recite-vs-teach: reader model,
coverage density (sections_in is cite permission, not a to-do list),
intuition-before-formula three-beat, and paper-jump filling.

Every notes/sections/sec-*.tex must now answer gap / takeaway / jump /
omit above the first \section. lint.py checks presence only (it cannot
judge honesty); files opening with "% generated by" are exempt.

- scripts/lint.py: SP025 + is_writer_section / teach_gaps helpers
- tests/no-teach-block/: fixture with takeaway only, wired into test.sh
- examples/*: all 14 writer sections get real teach blocks
- SKILL.md, references/{agents,antipatterns,checklist}.md, DESIGN.md,
  assets/notes-template.tex: route writers and consistency agent
  through pedagogy.md
This commit is contained in:
dela
2026-09-17 10:06:54 +08:00
parent 49842c5153
commit 5170111823
26 changed files with 373 additions and 16 deletions
+4 -2
View File
@@ -4,11 +4,13 @@ Must split when pages > 12 **or** top sections > 4 **or** redraws ≥ 2 **or** t
Writer jobs are lecture rows in `outline.md`, not `coverage.sections_in`. Outline writes `ledger.yaml`, `outline.md`, `notes.tex` inputs, and `F*.request.md`. Writers only touch their `sec-XX.tex`. Figure agents only see the request.
Outline, writers, and consistency read `references/pedagogy.md`. Consistency flags missing `% teach:` blocks and section-order recaps.
```
$superpaper <源> 请 spawn 多 sub agents,隔离上下文:
- 1 个 outline agent:ledger.yaml + outline.md
- N 个 writer agents:sections/sec-XX.tex
- N 个 writer agents:先读 references/pedagogy.md;sections/sec-XX.tex
- 每个计划重绘图 1 个 figure agent:F*.request.md + sibling skill
- 1 个 consistency agent:符号、术语、claim 覆盖
- 1 个 consistency agent:符号、术语、claim 覆盖、是否复述(pedagogy.md)
完成后用 scripts/lint.py 与 build.sh 收口。
```