workflow-fix: verify_plan WARNs when a plan edits a byte-capped workflow surface without a post-edit byte count or cap-raise
Highlight text on any card (body, plan, or an event) to anchor a comment, or leave a whole-task comment here. Mention @claude to summon a reply.
No comments yet.
Provenance: surfaced by the Claude Methodology critic during the #2364 plan-review floor (2026-08-27), as a prose follow-up after both of its Must-Fix findings were instances of this class.
The gap
Two plans have now self-FAILed their own acceptance criteria by proposing edits to byte-capped workflow surfaces without checking the cap at plan time:
- #2133: a +31 B insertion on a 267 B
LESSONS.mdrow breached the 280 B_LESSONS_ROW_MAX_BYTEScap (workflow_lint.py, strictly-greater, grandfather dict closed). - #2364 plan v2 (caught in review, fixed in v3): (a) a new
code-reviewer.mdsection against 159 B of headroom under its 109,600 Bcheck_agent_spec_sizegrandfather cap (.claude/config/agent_spec_size_caps.txt); (b) a +64 B LESSONS row insertion onto a 221 B row → 285 B > 280 B.
Both caps are machine-readable at plan time, so the class is checkable mechanically instead of relying on a critic to re-measure by hand.
Proposed check (implementing session refines)
A verify_plan.py WARN-only check: when a plan's edit list / concrete-diffs
section names (a) a .claude/rules/LESSONS.md row edit, or (b) an edit to
any file listed in .claude/config/agent_spec_size_caps.txt, WARN unless the
plan states a post-edit byte count, a net insertion size against the measured
headroom, or a same-commit cap raise. Mirror the existing plan-vs-repo
cross-check conventions (c65/c66 shape: resolved contradictions FAIL or WARN,
unresolvable routes disclosed).
Acceptance
- A plan naming a LESSONS row edit with no byte accounting → WARN naming the row and the measured headroom.
- A plan naming an
agent_spec_size_caps.txt-listed file edit with no post-edit byte statement and no cap-raise edit in its file list → WARN. - A plan that states the byte accounting (either form) → no WARN.
- WARN-only; false negatives (prose that names the edit obliquely) disclosed in the check's docstring.