Research: Criterion delivery labels and positive-control review doctrine
Source: pre-spec research squad (research/pre-spec-squad.md) + live probes.
R1 — Label placement
table cell or leads a bullet/heading; the first-id break is load-bearing (#3394 context). Live probe: labels in or before the id cell silently undeclare the FR. _substantive.py reads only Title + User Story, so trailing columns are invisible to the spec gate.
cell (undeclares FR); inline bullet labels (real bullet specs become non-substantive).
- Decision: trailing FR-table columns
Delivery/No-op passable?; SC trailing suffix. - Rationale:
requirement_mapping._declared_idstakes the first id per line only when it is alone in the first - Alternatives considered: inline prefix in Title (makes an unfilled scaffold look substantive); label in id
R2 — Host artifact for the rules
calibrator) — disposition changed: rules move to a dedicated tactic; siblings reference it, no duplication.
- Decision: new tactic
acceptance-criteria-non-vacuity(operator, DM-01M3EWS6CVECE8C6JZ0QP6FH0S). - Rationale: operator call. Squad preferred extending
acceptance-test-first(already review-scoped via the - Alternatives considered: extend
acceptance-test-first; extendatdd-adversarial-acceptance.
R3 — Where labels are defined
(two edit points). A glossary term would collide.
- Decision: tactic
notes(canonical); template legend and prompts point to it. - Rationale:
buildalready means a checkout/worktree in the core glossary, and the glossary pack is generated
R4 — Overrides
counterpart (DM-01M3EWS93W9MRFDJV1QG1Y5WZK widened by DM-01M3EX8WE96MHDTQTEE5M8WT85). Mapping: command-templates/<cmd>.md <- packs/built-in/missions/mission-steps/software-dev/<cmd>/prompt.md; every other path <- the same relative path under packs/built-in/missions/software-dev/. 26 files have a counterpart (22 drifted, 4 already identical); command-templates/{README,constitution,dashboard}.md have none and stay untouched.
than it ships. Override-only content removed by the resync is inventoried per file in the WP03 notes so nothing vanishes unrecorded.
- Decision: full resync of every file under
.kittify/overrides/missions/software-dev/that has a built-in - Rationale: operator call; overrides that drift silently make this repository dogfood different doctrine
- Alternatives considered: minimal additive patch (rejected by operator); deleting identical overrides.
R5 — Supply chain
No dependency added, upgraded or removed; supply-chain checks not applicable.