Constraints block is the reviewer's attention lens: copy spec verbatim, never improvise process rules

E30 replay: the planted-DRY catch is causally determined by the
controller-composed constraints block (0/6 with process-shaped vs 5/6
with the spec's own wording). E31 micro: this recipe doubles the rate
at which composed blocks carry the spec's cross-component relationship
(6/6 vs 3/6). Affects dev and the redesign equally (E29: both 4/5).
This commit is contained in:
Jesse Vincent
2026-06-11 10:31:48 -07:00
committed by Jesse Vincent
parent de1d35e5e7
commit 72cb21b82c
2 changed files with 11 additions and 5 deletions

View File

@@ -150,9 +150,13 @@ final whole-branch review. When you fill a reviewer template:
loop. If the prompt you are writing contains "do not flag," "don't treat X loop. If the prompt you are writing contains "do not flag," "don't treat X
as a defect," "at most Minor," or "the plan chose" — stop: you are as a defect," "at most Minor," or "the plan chose" — stop: you are
pre-judging, usually to spare yourself a review loop. pre-judging, usually to spare yourself a review loop.
- Include the spec/design's global constraints that bind the task (version - The global-constraints block you hand the reviewer is its attention
floors, naming and copy rules, platform requirements) in the requirements lens. Copy the binding requirements verbatim from the plan's Global
you paste — a reviewer can only enforce what you hand them. Constraints section or the spec: exact values, exact formats, and the
stated relationships between components ("same layout as X", "matches
Y"). The reviewer's template already carries the process rules (YAGNI,
test hygiene, review method) — the constraints block is for what THIS
project's spec demands.
- Hand the reviewer its diff as a file: run this skill's - Hand the reviewer its diff as a file: run this skill's
`scripts/review-package BASE HEAD` and pass the reviewer the file path `scripts/review-package BASE HEAD` and pass the reviewer the file path
it prints (or, without bash: `git log --oneline`, `git diff --stat`, it prints (or, without bash: `git log --oneline`, `git diff --stat`,

View File

@@ -159,8 +159,10 @@ Subagent (general-purpose):
- `[MODEL]` — REQUIRED: reviewer model per SKILL.md Model Selection - `[MODEL]` — REQUIRED: reviewer model per SKILL.md Model Selection
- `[BRIEF_FILE]` — REQUIRED: the task brief file (`scripts/task-brief PLAN N` - `[BRIEF_FILE]` — REQUIRED: the task brief file (`scripts/task-brief PLAN N`
prints the path; same file the implementer worked from) prints the path; same file the implementer worked from)
- `[GLOBAL_CONSTRAINTS]` — the spec/design's global constraints that bind - `[GLOBAL_CONSTRAINTS]` — the binding requirements copied verbatim from
this task (version floors, naming and copy rules, platform requirements) the plan's Global Constraints section or the spec: exact values, formats,
and stated relationships between components (not process rules — those
are already in this template)
- `[REPORT_FILE]` — REQUIRED: the file the implementer wrote its detailed - `[REPORT_FILE]` — REQUIRED: the file the implementer wrote its detailed
report to report to
- `[BASE_SHA]` — commit before this task - `[BASE_SHA]` — commit before this task