Part of #28 (Phase 1). Gated on the report theme's Phase 1b exit.
Problem. tools/qestyle_check.py is the consistency gate: it strips every <!-- qe:… --> region and then checks the hand-written claims left over against the CSVs (UPDATE.md § Step 5 at a92f911b). With directives, the regions are one-line directive blocks, the plugin verifies typed counts at build time, and the gate's remaining job is the prose. Issue #5 in this repository already records that a claim written into a sentence can be wrong and unchecked.
Proposed work.
qestyle_check.py recognises directive blocks as generated regions, checks that every region the pass is expected to write is present in the expected file, and keeps checking hand-written claims in prose.
- The gate runs
myst build --strict on the mystmd branch as part of /pass-measure, so the plugin's verification is part of the pass, not only of deploy.
UPDATE.md: Step 5 (splice) and Step 7 (build) rewritten for directives and myst; the region table updated; the "never edit inside a generated marker" rule restated for directive blocks; CLAUDE.md's read-first list points at the theme repo's contract.
- The
/pass-measure, /pass-review and /pass-publish skills updated where they name jupyter-book build or splicing.
Acceptance criteria.
Part of #28 (Phase 1). Gated on the report theme's Phase 1b exit.
Problem.
tools/qestyle_check.pyis the consistency gate: it strips every<!-- qe:… -->region and then checks the hand-written claims left over against the CSVs (UPDATE.md § Step 5 ata92f911b). With directives, the regions are one-line directive blocks, the plugin verifies typed counts at build time, and the gate's remaining job is the prose. Issue #5 in this repository already records that a claim written into a sentence can be wrong and unchecked.Proposed work.
qestyle_check.pyrecognises directive blocks as generated regions, checks that every region the pass is expected to write is present in the expected file, and keeps checking hand-written claims in prose.myst build --stricton themystmdbranch as part of/pass-measure, so the plugin's verification is part of the pass, not only of deploy.UPDATE.md: Step 5 (splice) and Step 7 (build) rewritten for directives andmyst; the region table updated; the "never edit inside a generated marker" rule restated for directive blocks;CLAUDE.md's read-first list points at the theme repo's contract./pass-measure,/pass-reviewand/pass-publishskills updated where they namejupyter-book buildor splicing.Acceptance criteria.
qestyle_check.pypasses on themystmdbranch and fails when a directive region is missing or a prose number is wrongUPDATE.mddescribes the new pass end to end, and the three skills agree with it--strictbuild is part of the gate and fails on a deleted CSV