Repository navigation
v0.17.0 — Validated exit documents in Korean
Improvements
- Write every document veriloop produces —
IA.md,DECISIONS.md,REVIEW.md,PRD.md— in Korean, whatever language the conversation uses. Code, identifiers, file paths, commands,AC-<n>identifiers, verdict and severity tokens, and JSON blocks stay as they are. TheIA.mdand review report templates use Korean headings. - Validate
PRD.mdwith the newscripts/check_prd.py: exactly ten fixed Korean##chapters in order, a Korean body in each, a reason with every해당 없음, and, with--spec, everyAC-<n>criterion reported in검증withPass,Fail, orDeferred; with--run-json, only after agoal_metexit. A failed validation is an archival failure. - Keep the ten chapter headings in the loop skill itself; the contract suite fails if that list, the exit-documents reference, and the validator disagree.
- Move the
REVIEW.mdandPRD.mdwriting rules toskills/run-review-loop/references/exit-documents.md, read when a run ends. - Define the invariant oracle once in
skills/draft-spec/references/invariant-oracle.md, referenced by bothdraft-specandrun-review-loop. - Remove repeated instructions: the inline gate JSON example, hand-written archive steps, the reviewer oracle checklist, per-object format-retry rules (now one rule for review and gate objects), and duplicated design-partner and model-group text. Re-dispatch the design partner only when an answer invalidates its implementation design.
run-review-loop/SKILL.mdshrinks from 38.0 KB to 31.4 KB anddraft-spec/SKILL.mdfrom 15.7 KB to 15.1 KB. No measured token saving is claimed.
Verification
- Contract suite passes, including the PRD chapter-list agreement check and the Korean document rules; mutating the chapter list in any of the three places, or removing the Korean rule, fails the suite.
- New
evals/test_prd.py: 5 valid documents passed and 14 invalid cases rejected with their expected reasons, including Korean particles attached to criterion identifiers. evals/test_archive_run.py(4 archives, 27 rejections),evals/test_review_report.py(5 valid, 32 rejections), andevals/test_worker_result_cli.py(2 valid, 9 rejections) pass unchanged.
Full Changelog: v0.16.0...v0.17.0