devrites 4.0.7 → 4.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +4 -2
  3. package/docs/skills.md +1 -1
  4. package/pack/.claude/agents/devrites-plan-drafter.md +7 -0
  5. package/pack/.claude/agents/devrites-plan-reviewer.md +4 -1
  6. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +5 -0
  7. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +3 -1
  8. package/pack/.claude/skills/devrites-lib/reference/standards/one-shot-actions.md +35 -6
  9. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -0
  10. package/pack/.claude/skills/rite-plan/SKILL.md +4 -0
  11. package/pack/.claude/skills/rite-prove/SKILL.md +7 -1
  12. package/pack/.claude/skills/rite-prove/reference/failure-triage.md +6 -0
  13. package/pack/.claude/skills/rite-vet/SKILL.md +4 -2
  14. package/pack/.claude/skills/rite-vet/reference/artifacts.md +4 -4
  15. package/pack/generated/claude/agents/devrites-plan-drafter.md +7 -0
  16. package/pack/generated/claude/agents/devrites-plan-reviewer.md +4 -1
  17. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +5 -0
  18. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +3 -1
  19. package/pack/generated/claude/skills/devrites-lib/reference/standards/one-shot-actions.md +35 -6
  20. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -0
  21. package/pack/generated/claude/skills/rite-plan/SKILL.md +4 -0
  22. package/pack/generated/claude/skills/rite-prove/SKILL.md +7 -1
  23. package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +6 -0
  24. package/pack/generated/claude/skills/rite-vet/SKILL.md +4 -2
  25. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +4 -4
  26. package/pack/generated/codex/agents/devrites-plan-drafter.toml +7 -0
  27. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +4 -1
  28. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +5 -0
  29. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +3 -1
  30. package/pack/generated/codex/skills/devrites-lib/reference/standards/one-shot-actions.md +35 -6
  31. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +7 -0
  32. package/pack/generated/codex/skills/rite-plan/SKILL.md +4 -0
  33. package/pack/generated/codex/skills/rite-prove/SKILL.md +7 -1
  34. package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +6 -0
  35. package/pack/generated/codex/skills/rite-vet/SKILL.md +4 -2
  36. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +4 -4
  37. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to DevRites are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and DevRites adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Releases are generated automatically by [semantic-release](https://semantic-release.gitbook.io/) from Conventional Commits on `main`.
4
4
 
5
+ ## [4.0.8](https://github.com/ViktorsBaikers/DevRites/compare/v4.0.7...v4.0.8) (2026-08-08)
6
+
7
+ ### Fixed
8
+
9
+ * **rite:** require actionable one-shot evidence ([19d996c](https://github.com/ViktorsBaikers/DevRites/commit/19d996c9666febb33e44ecdd91d3254d3a562c8a))
10
+
5
11
  ## [4.0.7](https://github.com/ViktorsBaikers/DevRites/compare/v4.0.6...v4.0.7) (2026-08-08)
6
12
 
7
13
  ### Fixed
package/README.md CHANGED
@@ -28,7 +28,7 @@ project-conventional push, tag, or PR action, and archive the workspace.
28
28
  Unattended runs may create local WIP checkpoint commits along the way, but they
29
29
  remain local unless Ship's disclosed plan includes an approved remote action.
30
30
 
31
- **Status:** [`v4.0.7`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v4.0.7): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
31
+ **Status:** [`v4.0.8`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v4.0.8): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
32
32
 
33
33
  This is the latest published release; `main` may contain unreleased work.
34
34
 
@@ -101,7 +101,9 @@ Some work needs a different route:
101
101
  Ship preflight, discloses the exact Git plan, and waits for a fresh literal
102
102
  `GO` plus native approval; without that flag, it stops at Seal GO. A failed
103
103
  consumptive proof action never retries blindly: retained evidence drives
104
- offline repair and re-vetting, and only the next real attempt needs a new GO.
104
+ offline repair and re-vetting. Ambiguous retained evidence first drives a vetted
105
+ boundary-discriminating diagnostic design; only its next real acquisition attempt
106
+ needs a new GO.
105
107
  - [`/rite-upgrade [slug]`](pack/.claude/skills/rite-upgrade/SKILL.md) is a
106
108
  compatibility route for an older active workspace that cannot resume. Age or
107
109
  cursor form alone never triggers repair; it is not a lifecycle phase.
package/docs/skills.md CHANGED
@@ -187,7 +187,7 @@ and `Shipped`. Utility commands keep the same compact labels and one-next-action
187
187
 
188
188
  | Skill | What It Does | Use When |
189
189
  |---|---|---|
190
- | [`rite-prove`](../pack/.claude/skills/rite-prove/SKILL.md) | Positive, discriminating tests + build/runtime/browser evidence. Requires the same candidate digest before/after commands and records the exact binding. Consumptive actions must retain bounded diagnostics through cleanup; a failed action continues offline recovery from that artifact, while any next real execution waits for fresh authorization. | All slices built; ready for full verification. |
190
+ | [`rite-prove`](../pack/.claude/skills/rite-prove/SKILL.md) | Positive, discriminating tests + build/runtime/browser evidence. Requires the same candidate digest before/after commands and records the exact binding. Consumptive actions must retain bounded, causally unique diagnostics through cleanup; ambiguous evidence triggers a vetted diagnostic-amplification design, while any next real execution waits for fresh authorization. | All slices built; ready for full verification. |
191
191
  | [`devrites-browser-proof`](../pack/.claude/skills/devrites-browser-proof/SKILL.md) | Browser proof ladder: Playwright MCP → Chrome DevTools MCP → `/run`+`/verify` → project E2E → manual. Auto-emits the structured **Visual Verdict** (per-criterion PASS/FAIL vs `design-brief.md`) for UI slices: consumed by `devrites-frontend-reviewer` and gated at `/rite-seal`. | Scope touches UI. |
192
192
 
193
193
  ### Polish: normalize, then check the details
@@ -25,6 +25,13 @@ slices in dependency order. Map every REQ and AC to a slice and executable proof
25
25
  name rollback and failure paths; keep acceptance-changing proposals separate. Durable
26
26
  proof commands must be portable repository commands, never host-local wrappers,
27
27
  user-specific absolute paths, or temporary proof trees.
28
+ For every consumptive action, apply `one-shot-actions.md`: draft a durable bounded
29
+ artifact, a finite injective map from every failure emit seam to a stable non-secret
30
+ boundary ID and offline decision, per-seam fault fixtures, cleanup-survival proof,
31
+ and a collision mutant. If prior retained evidence is missing or ambiguous, draft a
32
+ diagnostic-amplification repair and narrow-Vet proof rather than guessing the
33
+ runtime correction or declaring the old evidence loss terminal. Keep the future
34
+ evidence-acquisition attempt separately gated by fresh human authorization.
28
35
  For `plan.md`, include exactly one canonical `Shared contract proof` table when an API,
29
36
  event, schema, or other provider/consumer boundary changes. Name a reused canonical artifact
30
37
  and asserting provider/consumer tests that both consume it, ordered through slice dependencies.
@@ -58,7 +58,10 @@ line, and then assign the band. Do not choose a score and justify it afterward:
58
58
  no error handling** is a critical gap. For every consumptive action under
59
59
  `one-shot-actions.md`, require durable bounded trust-safe evidence for every
60
60
  terminal path plus unknown-well-formed, malformed/hostile, and cleanup-survival
61
- fixtures. Missing evidence completeness is `broken`: the plan must not consume
61
+ fixtures. Require a finite injective map from every failure emit site to one
62
+ stable non-secret boundary ID and one actionable failure seam, per-seam fault
63
+ injection, and a negative collision mutant. A shared broad operation/cause is
64
+ not actionable evidence. Missing evidence completeness is `broken`: the plan must not consume
62
65
  the action to discover diagnostics that cleanup can erase.
63
66
 
64
67
  ## Confidence calibration + verification gate (mandatory)
@@ -63,6 +63,11 @@ has no clear next move.
63
63
  retained artifact supplies a new Critical/Important fingerprint, continue
64
64
  offline diagnosis, correction, fixtures, and narrow Vet under that fingerprint's
65
65
  no-progress budget. Stop for fresh authorization only before the next real action.
66
+ - **Ambiguous retained evidence requires diagnostic amplification, not a guessed
67
+ runtime fix.** If a trusted in-scope seam can add a stable unique boundary ID,
68
+ repair its finite map and collision/fault fixtures offline, narrow-Vet it, and
69
+ stop for fresh authorization before the evidence-acquisition attempt. Missing
70
+ past evidence is terminal only when no safe amplification seam exists.
66
71
  - **Classify before routing** with
67
72
  [cleanup-and-classify.md](reference/cleanup-and-classify.md).
68
73
  - **Durably record class and rationale** in `decisions.md` and the applicable
@@ -60,7 +60,9 @@ output or an artifact. Use exactly one recommended next action except for
60
60
  terminal agent-owned technical exhaustion, which has no runnable action.
61
61
 
62
62
  Use that terminal case only after three recorded no-progress corrections of the
63
- exact fingerprint, or when required evidence was irretrievably absent. A spent
63
+ exact fingerprint, or when required evidence was irretrievably absent **and** no safe in-scope diagnostic-amplification seam exists. Loss from the
64
+ past attempt alone is not terminal: repair and Vet a boundary-discriminating
65
+ evidence design, then request fresh authorization for its acquisition attempt. A spent
64
66
  consumptive-action authorization plus a retained new fingerprint is not terminal;
65
67
  it continues offline recovery and waits for fresh authorization only after repair.
66
68
  For a true terminal case use:
@@ -27,7 +27,16 @@ the approved `test-plan.md` must bind all of the following:
27
27
  4. **Discriminating proof:** fixtures cover success, a known failure, an unknown
28
28
  well-formed failure, malformed/hostile input, and cleanup after failure. They
29
29
  prove cleanup cannot delete or overwrite the retained failure evidence.
30
- 5. **Recovery sufficiency:** the retained bounded evidence is enough to choose an
30
+ 5. **Causal actionability:** every failure record includes a stable non-secret `boundary_id`
31
+ whose finite map is injective: one retained fingerprint identifies
32
+ one actionable failure seam and correction class. Broad operation/cause labels
33
+ are insufficient when multiple emit sites can produce them. `test-plan.md`
34
+ enumerates every emit site, its boundary ID, expected retained relation, and
35
+ offline decision.
36
+ 6. **Collision proof:** inject a failure at every mapped seam and require its exact
37
+ boundary ID. Execute a negative mutant that aliases two seams to one retained
38
+ fingerprint and prove the validator/reviewer rejects it.
39
+ 7. **Recovery sufficiency:** the retained bounded evidence is enough to choose an
31
40
  offline correction or a truthful terminal classification without consuming
32
41
  another attempt.
33
42
 
@@ -58,9 +67,29 @@ cap, resume recovery even if a prior writer stored `blocked` / `Next step: none`
58
67
  That terminal cursor is valid only for missing retention, a human/safety gate, or
59
68
  an actually exhausted fingerprint.
60
69
 
61
- A new real attempt is admissible only after the affected plan and fixtures are
62
- re-vetted, the failure condition is shown changed, and any required fresh
70
+ A new real attempt is normally admissible only after the affected plan and fixtures
71
+ are re-vetted, the failure condition is shown changed, and any required fresh
63
72
  authorization is obtained. Stop at that authorization boundary; never infer it
64
- from successful offline repair. If the attempt ran without complete retention,
65
- stop with the observed technical blocker because a blind retry cannot manufacture
66
- the destroyed evidence.
73
+ from successful offline repair.
74
+
75
+ ## Diagnostic amplification
76
+
77
+ If a retained artifact is absent or maps one fingerprint to multiple causal
78
+ boundaries, do not guess a runtime correction. The fact that evidence from the
79
+ past attempt is irretrievable does not prove that a safe future evidence-acquisition
80
+ design is unavailable.
81
+
82
+ When an in-scope trusted seam can add the missing stable discriminator, classify
83
+ the ambiguity as an agent-owned **diagnostic-amplification plan gap**. Without
84
+ executing the action, repair the diagnostic schema, finite boundary map, per-seam
85
+ fault fixtures, cleanup-survival proof, and collision mutant; then run narrow Vet.
86
+ Once READY, stop for fresh authorization before exactly one diagnostic-amplification attempt
87
+ bound to that vetted design and artifact identity. This exception does not
88
+ claim the runtime failure condition changed: the independently proven change is the
89
+ evidence-acquisition invariant, and the attempt's acceptance signal is the promised
90
+ unique retained boundary (or action success).
91
+
92
+ Terminal `Next: none` is valid only when no safe in-scope diagnostic-amplification
93
+ seam exists, the required change is human/risk/scope owned, or the exact evidence-gap
94
+ fingerprint exhausts bounded recovery. A missing old artifact alone is not terminal,
95
+ and an amplification attempt never inherits authorization from the failed action.
@@ -46,6 +46,13 @@ no-progress corrections. A retained fingerprint with remaining offline budget is
46
46
  not terminal merely because `state.md` was written by the failed action or a prior
47
47
  session ended.
48
48
 
49
+ Past evidence being irretrievable is not by itself terminal. When an in-scope
50
+ trusted diagnostic seam can make the next retained fingerprint uniquely
51
+ actionable, Autocomplete must run diagnostic-amplification Plan repair and narrow
52
+ Vet inline, then pause for a fresh GO before the single evidence-acquisition
53
+ attempt. Use `Next: none` only after proving no safe in-scope amplification seam
54
+ exists, a real human/risk/scope gate owns it, or bounded recovery is exhausted.
55
+
49
56
  ## Stop on gate severity
50
57
 
51
58
  - `blocking` gate fires → synchronous pause.
@@ -81,6 +81,10 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
81
81
  `devrites-plan-drafter` in `repair` mode with only the selected mode, affected artifact
82
82
  paths, settled contract, and observed failure/drift. Await one atomic `plan-candidate`;
83
83
  the drafter writes nothing and returns human-owned choices separately.
84
+ When the observed failure is missing or ambiguous consumptive-action evidence,
85
+ require the drafter to apply `one-shot-actions.md` and return the bounded
86
+ diagnostic-amplification design, injective boundary map, per-seam fixtures, and
87
+ collision mutant. Past evidence loss alone is not a terminal conclusion.
84
88
  3. Reason about dependencies: [dependency-graph](reference/dependency-graph.md).
85
89
  Reconcile `plan.md`'s canonical `Shared contract proof`: changed provider/consumer
86
90
  boundaries keep one reused contract artifact ahead of both asserting tests, and unaffected
@@ -114,7 +114,8 @@ failure is a blocker; this Upgrade admission never authorizes source or test cha
114
114
  gates prove only their named static criterion.
115
115
  Immediately before any consumptive action, apply `one-shot-actions.md` to the
116
116
  live candidate: require the vetted retained-artifact identity, bounds,
117
- sanitization, terminal-path fixtures, and cleanup-survival proof. A missing,
117
+ sanitization, injective boundary map, per-seam fault fixtures, collision mutant,
118
+ terminal-path fixtures, and cleanup-survival proof. A missing,
118
119
  stale, or disposable-only evidence surface returns to Vet inline and consumes
119
120
  no attempt. Record the admitted artifact identity before execution. After a
120
121
  failed consumptive action, triage from that artifact; never reproduce it by
@@ -155,6 +156,11 @@ failure is a blocker; this Upgrade admission never authorizes source or test cha
155
156
  reproduction to fix and re-vet the retained fingerprint. Once the failure
156
157
  condition is demonstrably changed, stop at the fresh-authorization boundary;
157
158
  only a new human GO may admit the next real attempt.
159
+ If the retained fingerprint is missing or ambiguous, the lost past evidence
160
+ does not prove that no safe future acquisition design exists. Treat an in-scope
161
+ discriminator as a diagnostic-amplification Plan gap: repair and narrow-Vet the
162
+ boundary map and collision proof inline, then stop for fresh GO before one
163
+ evidence-acquisition attempt. Do not guess the runtime fix or reuse the old GO.
158
164
  8. The root updates `evidence.md`, `browser-evidence.md` (when present),
159
165
  `traceability.md`, and `state.md`. Record exactly one binding for the observed
160
166
  digest in evidence and browser evidence. New proof goes to canonical
@@ -17,6 +17,10 @@ loop to `devrites-debug-recovery`.
17
17
  - flaky (passes on re-run, timing/order) → note it; don't paper over with retries.
18
18
  - external dependency down → record blocker; don't fake the result.
19
19
  3. **Isolate:** minimize to the smallest failing case; bisect the diff if needed.
20
+ If consumptive evidence maps to multiple causal seams, this is a
21
+ diagnostic-amplification plan gap: design and Vet an injective boundary
22
+ discriminator offline instead of guessing a runtime correction or declaring
23
+ the cleaned-away past state terminal.
20
24
  4. **Fix within scope:** the current slice/feature only. If the fix reaches outside
21
25
  scope, stop and record a blocker in `state.md` (then `/rite-plan unblock`).
22
26
  5. **Re-run** the same command when it is repeatable; confirm green and record both
@@ -24,6 +28,8 @@ loop to `devrites-debug-recovery`.
24
28
  completeness and any fresh authorization before a new attempt. Its spent
25
29
  action authorization does not stop offline recovery: a retained new fingerprint
26
30
  enters caller-owned diagnosis, correction, fixtures, and narrow Vet immediately.
31
+ A separately authorized diagnostic-amplification attempt may acquire the missing
32
+ discriminator after its evidence design passes Vet; it is not a blind rerun.
27
33
 
28
34
  ## Rules
29
35
  - Quote the real error text; don't paraphrase it away.
@@ -100,8 +100,10 @@ Pull the standard named by the active axis: `principles.md`, `patterns.md`,
100
100
  discriminating assertion and decisive signal, not merely a command or expected exit zero.
101
101
  Identify every consumptive action under `one-shot-actions.md`. Before admitting
102
102
  it, require the exact durable retention surface, trust-safe diagnostic schema,
103
- cleanup ordering, terminal-path coverage, and discriminating fixtures in
104
- `test-plan.md`. Missing or stale one-shot evidence completeness is a technical
103
+ cleanup ordering, terminal-path coverage, a finite injective boundary map,
104
+ per-boundary fault fixtures, and an executed collision mutant in `test-plan.md`.
105
+ Every retained failure fingerprint must identify one actionable seam; a broad
106
+ operation/cause shared by multiple emit sites is a gap. Missing or stale one-shot evidence completeness is a technical
105
107
  preflight gap; do not spend the action to learn what cleanup would erase.
106
108
  Preflight observes; it need not make future behavior pass.
107
109
  2c. **Implementation-readiness audit.** Goal-backward map every REQ/AC/NFR, interaction,
@@ -35,7 +35,7 @@ Inventory/currentness: <pass/gaps> · slice order/independence: <pass/gaps> ·
35
35
  UX/spec/architecture: <pass/n-a/gaps> · operations/rollout/rollback: <pass/n-a/gaps>
36
36
 
37
37
  Shared contract proof: <pass | gap: missing/one-sided/duplicated-contract/vague/non-consuming>
38
- One-shot evidence completeness: <n/a | pass: action + retained artifact + bounds/sanitization + cleanup-survival fixtures | gap: exact missing proof>
38
+ One-shot evidence completeness: <n/a | pass: action + retained artifact + bounds/sanitization + injective boundary map + per-seam/collision/cleanup fixtures | gap: exact missing proof>
39
39
 
40
40
  ## 3. Axis findings (floor-gated)
41
41
  | Axis | Floor band | Findings (sev · confidence) |
@@ -96,9 +96,9 @@ aliases, user-specific absolute paths, or temporary proof trees. Evidence record
96
96
  the command actually executed.
97
97
 
98
98
  ## Consumptive action gates
99
- | Action | Why one-shot/consumptive | Retained artifact | Bounds + sanitization | Terminal-path fixtures | Cleanup survival | Retry authority |
100
- |---|---|---|---|---|---|---|
101
- | <exact approved action or n/a> | <one attempt/quota/state/evidence deletion> | <durable operator-controlled path/schema> | <size/cardinality + known/unknown/malformed handling> | <success/known/unknown/hostile> | <assertion> | <none/fresh human authorization> |
99
+ | Action | Why one-shot/consumptive | Retained artifact | Bounds + sanitization | Boundary map + collision proof | Terminal-path fixtures | Cleanup survival | Retry authority |
100
+ |---|---|---|---|---|---|---|---|
101
+ | <exact approved action or n/a> | <one attempt/quota/state/evidence deletion> | <durable operator-controlled path/schema> | <size/cardinality + known/unknown/malformed handling> | <every emit seam -> stable boundary ID; per-seam injection + alias mutant rejected> | <success/known/unknown/hostile> | <assertion> | <none/fresh human authorization> |
102
102
 
103
103
  Every behavioral row names a positive, discriminating assertion and the decisive output it
104
104
  produces. A command or expected exit zero alone is not a behavioral assertion; static gates
@@ -25,6 +25,13 @@ slices in dependency order. Map every REQ and AC to a slice and executable proof
25
25
  name rollback and failure paths; keep acceptance-changing proposals separate. Durable
26
26
  proof commands must be portable repository commands, never host-local wrappers,
27
27
  user-specific absolute paths, or temporary proof trees.
28
+ For every consumptive action, apply `one-shot-actions.md`: draft a durable bounded
29
+ artifact, a finite injective map from every failure emit seam to a stable non-secret
30
+ boundary ID and offline decision, per-seam fault fixtures, cleanup-survival proof,
31
+ and a collision mutant. If prior retained evidence is missing or ambiguous, draft a
32
+ diagnostic-amplification repair and narrow-Vet proof rather than guessing the
33
+ runtime correction or declaring the old evidence loss terminal. Keep the future
34
+ evidence-acquisition attempt separately gated by fresh human authorization.
28
35
  For `plan.md`, include exactly one canonical `Shared contract proof` table when an API,
29
36
  event, schema, or other provider/consumer boundary changes. Name a reused canonical artifact
30
37
  and asserting provider/consumer tests that both consume it, ordered through slice dependencies.
@@ -58,7 +58,10 @@ line, and then assign the band. Do not choose a score and justify it afterward:
58
58
  no error handling** is a critical gap. For every consumptive action under
59
59
  `one-shot-actions.md`, require durable bounded trust-safe evidence for every
60
60
  terminal path plus unknown-well-formed, malformed/hostile, and cleanup-survival
61
- fixtures. Missing evidence completeness is `broken`: the plan must not consume
61
+ fixtures. Require a finite injective map from every failure emit site to one
62
+ stable non-secret boundary ID and one actionable failure seam, per-seam fault
63
+ injection, and a negative collision mutant. A shared broad operation/cause is
64
+ not actionable evidence. Missing evidence completeness is `broken`: the plan must not consume
62
65
  the action to discover diagnostics that cleanup can erase.
63
66
 
64
67
  ## Confidence calibration + verification gate (mandatory)
@@ -63,6 +63,11 @@ has no clear next move.
63
63
  retained artifact supplies a new Critical/Important fingerprint, continue
64
64
  offline diagnosis, correction, fixtures, and narrow Vet under that fingerprint's
65
65
  no-progress budget. Stop for fresh authorization only before the next real action.
66
+ - **Ambiguous retained evidence requires diagnostic amplification, not a guessed
67
+ runtime fix.** If a trusted in-scope seam can add a stable unique boundary ID,
68
+ repair its finite map and collision/fault fixtures offline, narrow-Vet it, and
69
+ stop for fresh authorization before the evidence-acquisition attempt. Missing
70
+ past evidence is terminal only when no safe amplification seam exists.
66
71
  - **Classify before routing** with
67
72
  [cleanup-and-classify.md](reference/cleanup-and-classify.md).
68
73
  - **Durably record class and rationale** in `decisions.md` and the applicable
@@ -60,7 +60,9 @@ output or an artifact. Use exactly one recommended next action except for
60
60
  terminal agent-owned technical exhaustion, which has no runnable action.
61
61
 
62
62
  Use that terminal case only after three recorded no-progress corrections of the
63
- exact fingerprint, or when required evidence was irretrievably absent. A spent
63
+ exact fingerprint, or when required evidence was irretrievably absent **and** no safe in-scope diagnostic-amplification seam exists. Loss from the
64
+ past attempt alone is not terminal: repair and Vet a boundary-discriminating
65
+ evidence design, then request fresh authorization for its acquisition attempt. A spent
64
66
  consumptive-action authorization plus a retained new fingerprint is not terminal;
65
67
  it continues offline recovery and waits for fresh authorization only after repair.
66
68
  For a true terminal case use:
@@ -27,7 +27,16 @@ the approved `test-plan.md` must bind all of the following:
27
27
  4. **Discriminating proof:** fixtures cover success, a known failure, an unknown
28
28
  well-formed failure, malformed/hostile input, and cleanup after failure. They
29
29
  prove cleanup cannot delete or overwrite the retained failure evidence.
30
- 5. **Recovery sufficiency:** the retained bounded evidence is enough to choose an
30
+ 5. **Causal actionability:** every failure record includes a stable non-secret `boundary_id`
31
+ whose finite map is injective: one retained fingerprint identifies
32
+ one actionable failure seam and correction class. Broad operation/cause labels
33
+ are insufficient when multiple emit sites can produce them. `test-plan.md`
34
+ enumerates every emit site, its boundary ID, expected retained relation, and
35
+ offline decision.
36
+ 6. **Collision proof:** inject a failure at every mapped seam and require its exact
37
+ boundary ID. Execute a negative mutant that aliases two seams to one retained
38
+ fingerprint and prove the validator/reviewer rejects it.
39
+ 7. **Recovery sufficiency:** the retained bounded evidence is enough to choose an
31
40
  offline correction or a truthful terminal classification without consuming
32
41
  another attempt.
33
42
 
@@ -58,9 +67,29 @@ cap, resume recovery even if a prior writer stored `blocked` / `Next step: none`
58
67
  That terminal cursor is valid only for missing retention, a human/safety gate, or
59
68
  an actually exhausted fingerprint.
60
69
 
61
- A new real attempt is admissible only after the affected plan and fixtures are
62
- re-vetted, the failure condition is shown changed, and any required fresh
70
+ A new real attempt is normally admissible only after the affected plan and fixtures
71
+ are re-vetted, the failure condition is shown changed, and any required fresh
63
72
  authorization is obtained. Stop at that authorization boundary; never infer it
64
- from successful offline repair. If the attempt ran without complete retention,
65
- stop with the observed technical blocker because a blind retry cannot manufacture
66
- the destroyed evidence.
73
+ from successful offline repair.
74
+
75
+ ## Diagnostic amplification
76
+
77
+ If a retained artifact is absent or maps one fingerprint to multiple causal
78
+ boundaries, do not guess a runtime correction. The fact that evidence from the
79
+ past attempt is irretrievable does not prove that a safe future evidence-acquisition
80
+ design is unavailable.
81
+
82
+ When an in-scope trusted seam can add the missing stable discriminator, classify
83
+ the ambiguity as an agent-owned **diagnostic-amplification plan gap**. Without
84
+ executing the action, repair the diagnostic schema, finite boundary map, per-seam
85
+ fault fixtures, cleanup-survival proof, and collision mutant; then run narrow Vet.
86
+ Once READY, stop for fresh authorization before exactly one diagnostic-amplification attempt
87
+ bound to that vetted design and artifact identity. This exception does not
88
+ claim the runtime failure condition changed: the independently proven change is the
89
+ evidence-acquisition invariant, and the attempt's acceptance signal is the promised
90
+ unique retained boundary (or action success).
91
+
92
+ Terminal `Next: none` is valid only when no safe in-scope diagnostic-amplification
93
+ seam exists, the required change is human/risk/scope owned, or the exact evidence-gap
94
+ fingerprint exhausts bounded recovery. A missing old artifact alone is not terminal,
95
+ and an amplification attempt never inherits authorization from the failed action.
@@ -46,6 +46,13 @@ no-progress corrections. A retained fingerprint with remaining offline budget is
46
46
  not terminal merely because `state.md` was written by the failed action or a prior
47
47
  session ended.
48
48
 
49
+ Past evidence being irretrievable is not by itself terminal. When an in-scope
50
+ trusted diagnostic seam can make the next retained fingerprint uniquely
51
+ actionable, Autocomplete must run diagnostic-amplification Plan repair and narrow
52
+ Vet inline, then pause for a fresh GO before the single evidence-acquisition
53
+ attempt. Use `Next: none` only after proving no safe in-scope amplification seam
54
+ exists, a real human/risk/scope gate owns it, or bounded recovery is exhausted.
55
+
49
56
  ## Stop on gate severity
50
57
 
51
58
  - `blocking` gate fires → synchronous pause.
@@ -81,6 +81,10 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
81
81
  `devrites-plan-drafter` in `repair` mode with only the selected mode, affected artifact
82
82
  paths, settled contract, and observed failure/drift. Await one atomic `plan-candidate`;
83
83
  the drafter writes nothing and returns human-owned choices separately.
84
+ When the observed failure is missing or ambiguous consumptive-action evidence,
85
+ require the drafter to apply `one-shot-actions.md` and return the bounded
86
+ diagnostic-amplification design, injective boundary map, per-seam fixtures, and
87
+ collision mutant. Past evidence loss alone is not a terminal conclusion.
84
88
  3. Reason about dependencies: [dependency-graph](reference/dependency-graph.md).
85
89
  Reconcile `plan.md`'s canonical `Shared contract proof`: changed provider/consumer
86
90
  boundaries keep one reused contract artifact ahead of both asserting tests, and unaffected
@@ -114,7 +114,8 @@ failure is a blocker; this Upgrade admission never authorizes source or test cha
114
114
  gates prove only their named static criterion.
115
115
  Immediately before any consumptive action, apply `one-shot-actions.md` to the
116
116
  live candidate: require the vetted retained-artifact identity, bounds,
117
- sanitization, terminal-path fixtures, and cleanup-survival proof. A missing,
117
+ sanitization, injective boundary map, per-seam fault fixtures, collision mutant,
118
+ terminal-path fixtures, and cleanup-survival proof. A missing,
118
119
  stale, or disposable-only evidence surface returns to Vet inline and consumes
119
120
  no attempt. Record the admitted artifact identity before execution. After a
120
121
  failed consumptive action, triage from that artifact; never reproduce it by
@@ -155,6 +156,11 @@ failure is a blocker; this Upgrade admission never authorizes source or test cha
155
156
  reproduction to fix and re-vet the retained fingerprint. Once the failure
156
157
  condition is demonstrably changed, stop at the fresh-authorization boundary;
157
158
  only a new human GO may admit the next real attempt.
159
+ If the retained fingerprint is missing or ambiguous, the lost past evidence
160
+ does not prove that no safe future acquisition design exists. Treat an in-scope
161
+ discriminator as a diagnostic-amplification Plan gap: repair and narrow-Vet the
162
+ boundary map and collision proof inline, then stop for fresh GO before one
163
+ evidence-acquisition attempt. Do not guess the runtime fix or reuse the old GO.
158
164
  8. The root updates `evidence.md`, `browser-evidence.md` (when present),
159
165
  `traceability.md`, and `state.md`. Record exactly one binding for the observed
160
166
  digest in evidence and browser evidence. New proof goes to canonical
@@ -17,6 +17,10 @@ loop to `devrites-debug-recovery`.
17
17
  - flaky (passes on re-run, timing/order) → note it; don't paper over with retries.
18
18
  - external dependency down → record blocker; don't fake the result.
19
19
  3. **Isolate:** minimize to the smallest failing case; bisect the diff if needed.
20
+ If consumptive evidence maps to multiple causal seams, this is a
21
+ diagnostic-amplification plan gap: design and Vet an injective boundary
22
+ discriminator offline instead of guessing a runtime correction or declaring
23
+ the cleaned-away past state terminal.
20
24
  4. **Fix within scope:** the current slice/feature only. If the fix reaches outside
21
25
  scope, stop and record a blocker in `state.md` (then `/rite-plan unblock`).
22
26
  5. **Re-run** the same command when it is repeatable; confirm green and record both
@@ -24,6 +28,8 @@ loop to `devrites-debug-recovery`.
24
28
  completeness and any fresh authorization before a new attempt. Its spent
25
29
  action authorization does not stop offline recovery: a retained new fingerprint
26
30
  enters caller-owned diagnosis, correction, fixtures, and narrow Vet immediately.
31
+ A separately authorized diagnostic-amplification attempt may acquire the missing
32
+ discriminator after its evidence design passes Vet; it is not a blind rerun.
27
33
 
28
34
  ## Rules
29
35
  - Quote the real error text; don't paraphrase it away.
@@ -100,8 +100,10 @@ Pull the standard named by the active axis: `principles.md`, `patterns.md`,
100
100
  discriminating assertion and decisive signal, not merely a command or expected exit zero.
101
101
  Identify every consumptive action under `one-shot-actions.md`. Before admitting
102
102
  it, require the exact durable retention surface, trust-safe diagnostic schema,
103
- cleanup ordering, terminal-path coverage, and discriminating fixtures in
104
- `test-plan.md`. Missing or stale one-shot evidence completeness is a technical
103
+ cleanup ordering, terminal-path coverage, a finite injective boundary map,
104
+ per-boundary fault fixtures, and an executed collision mutant in `test-plan.md`.
105
+ Every retained failure fingerprint must identify one actionable seam; a broad
106
+ operation/cause shared by multiple emit sites is a gap. Missing or stale one-shot evidence completeness is a technical
105
107
  preflight gap; do not spend the action to learn what cleanup would erase.
106
108
  Preflight observes; it need not make future behavior pass.
107
109
  2c. **Implementation-readiness audit.** Goal-backward map every REQ/AC/NFR, interaction,
@@ -35,7 +35,7 @@ Inventory/currentness: <pass/gaps> · slice order/independence: <pass/gaps> ·
35
35
  UX/spec/architecture: <pass/n-a/gaps> · operations/rollout/rollback: <pass/n-a/gaps>
36
36
 
37
37
  Shared contract proof: <pass | gap: missing/one-sided/duplicated-contract/vague/non-consuming>
38
- One-shot evidence completeness: <n/a | pass: action + retained artifact + bounds/sanitization + cleanup-survival fixtures | gap: exact missing proof>
38
+ One-shot evidence completeness: <n/a | pass: action + retained artifact + bounds/sanitization + injective boundary map + per-seam/collision/cleanup fixtures | gap: exact missing proof>
39
39
 
40
40
  ## 3. Axis findings (floor-gated)
41
41
  | Axis | Floor band | Findings (sev · confidence) |
@@ -96,9 +96,9 @@ aliases, user-specific absolute paths, or temporary proof trees. Evidence record
96
96
  the command actually executed.
97
97
 
98
98
  ## Consumptive action gates
99
- | Action | Why one-shot/consumptive | Retained artifact | Bounds + sanitization | Terminal-path fixtures | Cleanup survival | Retry authority |
100
- |---|---|---|---|---|---|---|
101
- | <exact approved action or n/a> | <one attempt/quota/state/evidence deletion> | <durable operator-controlled path/schema> | <size/cardinality + known/unknown/malformed handling> | <success/known/unknown/hostile> | <assertion> | <none/fresh human authorization> |
99
+ | Action | Why one-shot/consumptive | Retained artifact | Bounds + sanitization | Boundary map + collision proof | Terminal-path fixtures | Cleanup survival | Retry authority |
100
+ |---|---|---|---|---|---|---|---|
101
+ | <exact approved action or n/a> | <one attempt/quota/state/evidence deletion> | <durable operator-controlled path/schema> | <size/cardinality + known/unknown/malformed handling> | <every emit seam -> stable boundary ID; per-seam injection + alias mutant rejected> | <success/known/unknown/hostile> | <assertion> | <none/fresh human authorization> |
102
102
 
103
103
  Every behavioral row names a positive, discriminating assertion and the decisive output it
104
104
  produces. A command or expected exit zero alone is not a behavioral assertion; static gates
@@ -23,6 +23,13 @@ slices in dependency order. Map every REQ and AC to a slice and executable proof
23
23
  name rollback and failure paths; keep acceptance-changing proposals separate. Durable
24
24
  proof commands must be portable repository commands, never host-local wrappers,
25
25
  user-specific absolute paths, or temporary proof trees.
26
+ For every consumptive action, apply `one-shot-actions.md`: draft a durable bounded
27
+ artifact, a finite injective map from every failure emit seam to a stable non-secret
28
+ boundary ID and offline decision, per-seam fault fixtures, cleanup-survival proof,
29
+ and a collision mutant. If prior retained evidence is missing or ambiguous, draft a
30
+ diagnostic-amplification repair and narrow-Vet proof rather than guessing the
31
+ runtime correction or declaring the old evidence loss terminal. Keep the future
32
+ evidence-acquisition attempt separately gated by fresh human authorization.
26
33
  For `plan.md`, include exactly one canonical `Shared contract proof` table when an API,
27
34
  event, schema, or other provider/consumer boundary changes. Name a reused canonical artifact
28
35
  and asserting provider/consumer tests that both consume it, ordered through slice dependencies.
@@ -56,7 +56,10 @@ line, and then assign the band. Do not choose a score and justify it afterward:
56
56
  no error handling** is a critical gap. For every consumptive action under
57
57
  `one-shot-actions.md`, require durable bounded trust-safe evidence for every
58
58
  terminal path plus unknown-well-formed, malformed/hostile, and cleanup-survival
59
- fixtures. Missing evidence completeness is `broken`: the plan must not consume
59
+ fixtures. Require a finite injective map from every failure emit site to one
60
+ stable non-secret boundary ID and one actionable failure seam, per-seam fault
61
+ injection, and a negative collision mutant. A shared broad operation/cause is
62
+ not actionable evidence. Missing evidence completeness is `broken`: the plan must not consume
60
63
  the action to discover diagnostics that cleanup can erase.
61
64
 
62
65
  ## Confidence calibration + verification gate (mandatory)
@@ -63,6 +63,11 @@ has no clear next move.
63
63
  retained artifact supplies a new Critical/Important fingerprint, continue
64
64
  offline diagnosis, correction, fixtures, and narrow Vet under that fingerprint's
65
65
  no-progress budget. Stop for fresh authorization only before the next real action.
66
+ - **Ambiguous retained evidence requires diagnostic amplification, not a guessed
67
+ runtime fix.** If a trusted in-scope seam can add a stable unique boundary ID,
68
+ repair its finite map and collision/fault fixtures offline, narrow-Vet it, and
69
+ stop for fresh authorization before the evidence-acquisition attempt. Missing
70
+ past evidence is terminal only when no safe amplification seam exists.
66
71
  - **Classify before routing** with
67
72
  [cleanup-and-classify.md](reference/cleanup-and-classify.md).
68
73
  - **Durably record class and rationale** in `decisions.md` and the applicable
@@ -60,7 +60,9 @@ output or an artifact. Use exactly one recommended next action except for
60
60
  terminal agent-owned technical exhaustion, which has no runnable action.
61
61
 
62
62
  Use that terminal case only after three recorded no-progress corrections of the
63
- exact fingerprint, or when required evidence was irretrievably absent. A spent
63
+ exact fingerprint, or when required evidence was irretrievably absent **and** no safe in-scope diagnostic-amplification seam exists. Loss from the
64
+ past attempt alone is not terminal: repair and Vet a boundary-discriminating
65
+ evidence design, then request fresh authorization for its acquisition attempt. A spent
64
66
  consumptive-action authorization plus a retained new fingerprint is not terminal;
65
67
  it continues offline recovery and waits for fresh authorization only after repair.
66
68
  For a true terminal case use:
@@ -27,7 +27,16 @@ the approved `test-plan.md` must bind all of the following:
27
27
  4. **Discriminating proof:** fixtures cover success, a known failure, an unknown
28
28
  well-formed failure, malformed/hostile input, and cleanup after failure. They
29
29
  prove cleanup cannot delete or overwrite the retained failure evidence.
30
- 5. **Recovery sufficiency:** the retained bounded evidence is enough to choose an
30
+ 5. **Causal actionability:** every failure record includes a stable non-secret `boundary_id`
31
+ whose finite map is injective: one retained fingerprint identifies
32
+ one actionable failure seam and correction class. Broad operation/cause labels
33
+ are insufficient when multiple emit sites can produce them. `test-plan.md`
34
+ enumerates every emit site, its boundary ID, expected retained relation, and
35
+ offline decision.
36
+ 6. **Collision proof:** inject a failure at every mapped seam and require its exact
37
+ boundary ID. Execute a negative mutant that aliases two seams to one retained
38
+ fingerprint and prove the validator/reviewer rejects it.
39
+ 7. **Recovery sufficiency:** the retained bounded evidence is enough to choose an
31
40
  offline correction or a truthful terminal classification without consuming
32
41
  another attempt.
33
42
 
@@ -58,9 +67,29 @@ cap, resume recovery even if a prior writer stored `blocked` / `Next step: none`
58
67
  That terminal cursor is valid only for missing retention, a human/safety gate, or
59
68
  an actually exhausted fingerprint.
60
69
 
61
- A new real attempt is admissible only after the affected plan and fixtures are
62
- re-vetted, the failure condition is shown changed, and any required fresh
70
+ A new real attempt is normally admissible only after the affected plan and fixtures
71
+ are re-vetted, the failure condition is shown changed, and any required fresh
63
72
  authorization is obtained. Stop at that authorization boundary; never infer it
64
- from successful offline repair. If the attempt ran without complete retention,
65
- stop with the observed technical blocker because a blind retry cannot manufacture
66
- the destroyed evidence.
73
+ from successful offline repair.
74
+
75
+ ## Diagnostic amplification
76
+
77
+ If a retained artifact is absent or maps one fingerprint to multiple causal
78
+ boundaries, do not guess a runtime correction. The fact that evidence from the
79
+ past attempt is irretrievable does not prove that a safe future evidence-acquisition
80
+ design is unavailable.
81
+
82
+ When an in-scope trusted seam can add the missing stable discriminator, classify
83
+ the ambiguity as an agent-owned **diagnostic-amplification plan gap**. Without
84
+ executing the action, repair the diagnostic schema, finite boundary map, per-seam
85
+ fault fixtures, cleanup-survival proof, and collision mutant; then run narrow Vet.
86
+ Once READY, stop for fresh authorization before exactly one diagnostic-amplification attempt
87
+ bound to that vetted design and artifact identity. This exception does not
88
+ claim the runtime failure condition changed: the independently proven change is the
89
+ evidence-acquisition invariant, and the attempt's acceptance signal is the promised
90
+ unique retained boundary (or action success).
91
+
92
+ Terminal `Next: none` is valid only when no safe in-scope diagnostic-amplification
93
+ seam exists, the required change is human/risk/scope owned, or the exact evidence-gap
94
+ fingerprint exhausts bounded recovery. A missing old artifact alone is not terminal,
95
+ and an amplification attempt never inherits authorization from the failed action.
@@ -46,6 +46,13 @@ no-progress corrections. A retained fingerprint with remaining offline budget is
46
46
  not terminal merely because `state.md` was written by the failed action or a prior
47
47
  session ended.
48
48
 
49
+ Past evidence being irretrievable is not by itself terminal. When an in-scope
50
+ trusted diagnostic seam can make the next retained fingerprint uniquely
51
+ actionable, Autocomplete must run diagnostic-amplification Plan repair and narrow
52
+ Vet inline, then pause for a fresh GO before the single evidence-acquisition
53
+ attempt. Use `Next: none` only after proving no safe in-scope amplification seam
54
+ exists, a real human/risk/scope gate owns it, or bounded recovery is exhausted.
55
+
49
56
  ## Stop on gate severity
50
57
 
51
58
  - `blocking` gate fires → synchronous pause.
@@ -81,6 +81,10 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
81
81
  `devrites-plan-drafter` in `repair` mode with only the selected mode, affected artifact
82
82
  paths, settled contract, and observed failure/drift. Await one atomic `plan-candidate`;
83
83
  the drafter writes nothing and returns human-owned choices separately.
84
+ When the observed failure is missing or ambiguous consumptive-action evidence,
85
+ require the drafter to apply `one-shot-actions.md` and return the bounded
86
+ diagnostic-amplification design, injective boundary map, per-seam fixtures, and
87
+ collision mutant. Past evidence loss alone is not a terminal conclusion.
84
88
  3. Reason about dependencies: [dependency-graph](reference/dependency-graph.md).
85
89
  Reconcile `plan.md`'s canonical `Shared contract proof`: changed provider/consumer
86
90
  boundaries keep one reused contract artifact ahead of both asserting tests, and unaffected
@@ -114,7 +114,8 @@ failure is a blocker; this Upgrade admission never authorizes source or test cha
114
114
  gates prove only their named static criterion.
115
115
  Immediately before any consumptive action, apply `one-shot-actions.md` to the
116
116
  live candidate: require the vetted retained-artifact identity, bounds,
117
- sanitization, terminal-path fixtures, and cleanup-survival proof. A missing,
117
+ sanitization, injective boundary map, per-seam fault fixtures, collision mutant,
118
+ terminal-path fixtures, and cleanup-survival proof. A missing,
118
119
  stale, or disposable-only evidence surface returns to Vet inline and consumes
119
120
  no attempt. Record the admitted artifact identity before execution. After a
120
121
  failed consumptive action, triage from that artifact; never reproduce it by
@@ -155,6 +156,11 @@ failure is a blocker; this Upgrade admission never authorizes source or test cha
155
156
  reproduction to fix and re-vet the retained fingerprint. Once the failure
156
157
  condition is demonstrably changed, stop at the fresh-authorization boundary;
157
158
  only a new human GO may admit the next real attempt.
159
+ If the retained fingerprint is missing or ambiguous, the lost past evidence
160
+ does not prove that no safe future acquisition design exists. Treat an in-scope
161
+ discriminator as a diagnostic-amplification Plan gap: repair and narrow-Vet the
162
+ boundary map and collision proof inline, then stop for fresh GO before one
163
+ evidence-acquisition attempt. Do not guess the runtime fix or reuse the old GO.
158
164
  8. The root updates `evidence.md`, `browser-evidence.md` (when present),
159
165
  `traceability.md`, and `state.md`. Record exactly one binding for the observed
160
166
  digest in evidence and browser evidence. New proof goes to canonical
@@ -17,6 +17,10 @@ loop to `devrites-debug-recovery`.
17
17
  - flaky (passes on re-run, timing/order) → note it; don't paper over with retries.
18
18
  - external dependency down → record blocker; don't fake the result.
19
19
  3. **Isolate:** minimize to the smallest failing case; bisect the diff if needed.
20
+ If consumptive evidence maps to multiple causal seams, this is a
21
+ diagnostic-amplification plan gap: design and Vet an injective boundary
22
+ discriminator offline instead of guessing a runtime correction or declaring
23
+ the cleaned-away past state terminal.
20
24
  4. **Fix within scope:** the current slice/feature only. If the fix reaches outside
21
25
  scope, stop and record a blocker in `state.md` (then `$rite-plan unblock`).
22
26
  5. **Re-run** the same command when it is repeatable; confirm green and record both
@@ -24,6 +28,8 @@ loop to `devrites-debug-recovery`.
24
28
  completeness and any fresh authorization before a new attempt. Its spent
25
29
  action authorization does not stop offline recovery: a retained new fingerprint
26
30
  enters caller-owned diagnosis, correction, fixtures, and narrow Vet immediately.
31
+ A separately authorized diagnostic-amplification attempt may acquire the missing
32
+ discriminator after its evidence design passes Vet; it is not a blind rerun.
27
33
 
28
34
  ## Rules
29
35
  - Quote the real error text; don't paraphrase it away.
@@ -100,8 +100,10 @@ Pull the standard named by the active axis: `principles.md`, `patterns.md`,
100
100
  discriminating assertion and decisive signal, not merely a command or expected exit zero.
101
101
  Identify every consumptive action under `one-shot-actions.md`. Before admitting
102
102
  it, require the exact durable retention surface, trust-safe diagnostic schema,
103
- cleanup ordering, terminal-path coverage, and discriminating fixtures in
104
- `test-plan.md`. Missing or stale one-shot evidence completeness is a technical
103
+ cleanup ordering, terminal-path coverage, a finite injective boundary map,
104
+ per-boundary fault fixtures, and an executed collision mutant in `test-plan.md`.
105
+ Every retained failure fingerprint must identify one actionable seam; a broad
106
+ operation/cause shared by multiple emit sites is a gap. Missing or stale one-shot evidence completeness is a technical
105
107
  preflight gap; do not spend the action to learn what cleanup would erase.
106
108
  Preflight observes; it need not make future behavior pass.
107
109
  2c. **Implementation-readiness audit.** Goal-backward map every REQ/AC/NFR, interaction,
@@ -35,7 +35,7 @@ Inventory/currentness: <pass/gaps> · slice order/independence: <pass/gaps> ·
35
35
  UX/spec/architecture: <pass/n-a/gaps> · operations/rollout/rollback: <pass/n-a/gaps>
36
36
 
37
37
  Shared contract proof: <pass | gap: missing/one-sided/duplicated-contract/vague/non-consuming>
38
- One-shot evidence completeness: <n/a | pass: action + retained artifact + bounds/sanitization + cleanup-survival fixtures | gap: exact missing proof>
38
+ One-shot evidence completeness: <n/a | pass: action + retained artifact + bounds/sanitization + injective boundary map + per-seam/collision/cleanup fixtures | gap: exact missing proof>
39
39
 
40
40
  ## 3. Axis findings (floor-gated)
41
41
  | Axis | Floor band | Findings (sev · confidence) |
@@ -96,9 +96,9 @@ aliases, user-specific absolute paths, or temporary proof trees. Evidence record
96
96
  the command actually executed.
97
97
 
98
98
  ## Consumptive action gates
99
- | Action | Why one-shot/consumptive | Retained artifact | Bounds + sanitization | Terminal-path fixtures | Cleanup survival | Retry authority |
100
- |---|---|---|---|---|---|---|
101
- | <exact approved action or n/a> | <one attempt/quota/state/evidence deletion> | <durable operator-controlled path/schema> | <size/cardinality + known/unknown/malformed handling> | <success/known/unknown/hostile> | <assertion> | <none/fresh human authorization> |
99
+ | Action | Why one-shot/consumptive | Retained artifact | Bounds + sanitization | Boundary map + collision proof | Terminal-path fixtures | Cleanup survival | Retry authority |
100
+ |---|---|---|---|---|---|---|---|
101
+ | <exact approved action or n/a> | <one attempt/quota/state/evidence deletion> | <durable operator-controlled path/schema> | <size/cardinality + known/unknown/malformed handling> | <every emit seam -> stable boundary ID; per-seam injection + alias mutant rejected> | <success/known/unknown/hostile> | <assertion> | <none/fresh human authorization> |
102
102
 
103
103
  Every behavioral row names a positive, discriminating assertion and the decisive output it
104
104
  produces. A command or expected exit zero alone is not a behavioral assertion; static gates
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devrites",
3
- "version": "4.0.7",
3
+ "version": "4.0.8",
4
4
  "description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code and Codex",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://github.com/ViktorsBaikers/DevRites#readme",