devrites 4.0.5 → 4.0.6
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.
- package/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/pack/.claude/agents/devrites-plan-reviewer.md +7 -2
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +12 -6
- package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +4 -2
- package/pack/.claude/skills/devrites-lib/reference/standards/README.md +1 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/one-shot-actions.md +46 -0
- package/pack/.claude/skills/rite-prove/SKILL.md +9 -0
- package/pack/.claude/skills/rite-prove/reference/failure-triage.md +7 -2
- package/pack/.claude/skills/rite-vet/SKILL.md +7 -1
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +6 -0
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +7 -2
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +12 -6
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +4 -2
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +1 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/one-shot-actions.md +46 -0
- package/pack/generated/claude/skills/rite-prove/SKILL.md +9 -0
- package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +7 -2
- package/pack/generated/claude/skills/rite-vet/SKILL.md +7 -1
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +6 -0
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +7 -2
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +12 -6
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +4 -2
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +1 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/one-shot-actions.md +46 -0
- package/pack/generated/codex/skills/rite-prove/SKILL.md +9 -0
- package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +7 -2
- package/pack/generated/codex/skills/rite-vet/SKILL.md +7 -1
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +6 -0
- 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.6](https://github.com/ViktorsBaikers/DevRites/compare/v4.0.5...v4.0.6) (2026-08-07)
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
* **rite:** gate one-shot evidence retention ([621a549](https://github.com/ViktorsBaikers/DevRites/commit/621a549acdf9ec2a0d427b829b0df8852502380d))
|
|
10
|
+
|
|
5
11
|
## [4.0.5](https://github.com/ViktorsBaikers/DevRites/compare/v4.0.4...v4.0.5) (2026-08-07)
|
|
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.
|
|
31
|
+
**Status:** [`v4.0.6`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v4.0.6): 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
|
|
|
@@ -55,7 +55,11 @@ line, and then assign the band. Do not choose a score and justify it afterward:
|
|
|
55
55
|
model changes conservatively. Every destructive step needs a rollback.
|
|
56
56
|
7. **Failure-mode coverage:** for each new codepath, find a realistic failure such
|
|
57
57
|
as a timeout, nil value, race, or stale state. A silent failure with **no test AND
|
|
58
|
-
no error handling** is a critical gap.
|
|
58
|
+
no error handling** is a critical gap. For every consumptive action under
|
|
59
|
+
`one-shot-actions.md`, require durable bounded trust-safe evidence for every
|
|
60
|
+
terminal path plus unknown-well-formed, malformed/hostile, and cleanup-survival
|
|
61
|
+
fixtures. Missing evidence completeness is `broken`: the plan must not consume
|
|
62
|
+
the action to discover diagnostics that cleanup can erase.
|
|
59
63
|
|
|
60
64
|
## Confidence calibration + verification gate (mandatory)
|
|
61
65
|
Give every finding a **confidence score from 1 to 10** and a quoted source:
|
|
@@ -73,7 +77,8 @@ Band each dimension `strong` / `adequate` / `thin` / `broken` (`broken` means
|
|
|
73
77
|
Critical; `thin` means Important). For a borderline dimension, sample twice and
|
|
74
78
|
take the **lower** band. The verdict uses the weakest dimension, not an average.
|
|
75
79
|
Pass only when every dimension is at least `adequate`, no critical failure-mode gap
|
|
76
|
-
remains,
|
|
80
|
+
remains, every consumptive action passes one-shot evidence completeness, the
|
|
81
|
+
shared-contract check passes, and the ID-and-meaning map contains no orphaned
|
|
77
82
|
criterion, slice, or proof.
|
|
78
83
|
|
|
79
84
|
## Rules
|
|
@@ -18,10 +18,14 @@ has no clear next move.
|
|
|
18
18
|
1. **Build the feedback loop:** create a fast, deterministic, agent-runnable pass/fail
|
|
19
19
|
signal. Spend most of the investigation here.
|
|
20
20
|
See [build-the-loop.md](reference/build-the-loop.md).
|
|
21
|
-
2. **Reproduce:** run the loop. Confirm the failure matches
|
|
22
|
-
(not a nearby failure); capture the **exact error text**;
|
|
23
|
-
reproducibility (or a high enough repro rate for flaky bugs).
|
|
24
|
-
|
|
21
|
+
2. **Reproduce:** run the loop for a repeatable action. Confirm the failure matches
|
|
22
|
+
the user's report (not a nearby failure); capture the **exact error text**;
|
|
23
|
+
confirm reproducibility (or a high enough repro rate for flaky bugs). For a
|
|
24
|
+
consumptive action under
|
|
25
|
+
[`one-shot-actions.md`](../devrites-lib/reference/standards/one-shot-actions.md),
|
|
26
|
+
the retained bounded artifact
|
|
27
|
+
is the reproduction input and the action MUST NOT be rerun during diagnosis.
|
|
28
|
+
Do not proceed without one of those reproduction inputs.
|
|
25
29
|
3. **Ranked hypotheses (3-5, falsifiable):** generate the list before testing
|
|
26
30
|
any of them. Each must state a prediction.
|
|
27
31
|
**Completion:** 3-5 distinct hypotheses each state an observable prediction.
|
|
@@ -51,8 +55,10 @@ has no clear next move.
|
|
|
51
55
|
- **Do NOT loosen / delete a failing assertion** to get green: check whether
|
|
52
56
|
it's drift first (route via `/rite-plan repair`).
|
|
53
57
|
- **Do NOT hide flakiness** with sleeps / retries: characterize it.
|
|
54
|
-
- **Re-run the original loop after the fix
|
|
55
|
-
|
|
58
|
+
- **Re-run the original loop after the fix when it is repeatable.** For a
|
|
59
|
+
consumptive action, first re-vet evidence completeness and obtain any required
|
|
60
|
+
fresh authorization; offline fixtures remain mandatory but cannot authorize the
|
|
61
|
+
real attempt.
|
|
56
62
|
- **Classify before routing** with
|
|
57
63
|
[cleanup-and-classify.md](reference/cleanup-and-classify.md).
|
|
58
64
|
- **Durably record class and rationale** in `decisions.md` and the applicable
|
|
@@ -14,7 +14,8 @@ record the dead end and classify anew. Failure alone never resets the budget.
|
|
|
14
14
|
- `preexisting`: the same failure exists outside the candidate delta. Record the baseline and fix it only when it blocks acceptance.
|
|
15
15
|
- `not_a_defect`: the observation matches current accepted authority. Record that authority and continue.
|
|
16
16
|
|
|
17
|
-
Only human credentials/quotas/actions
|
|
17
|
+
Only human credentials/quotas/actions, irreversible work, or fresh authorization
|
|
18
|
+
required by a consumptive action pause; never ask for a blind retry.
|
|
18
19
|
|
|
19
20
|
Record class/routing in `decisions.md` and each failed attempt in `evidence.md`
|
|
20
21
|
or `## Dead ends`. Use one stable causal fingerprint shaped as `<affected
|
|
@@ -30,7 +31,8 @@ file or command.
|
|
|
30
31
|
|
|
31
32
|
## Cleanup checklist: required before declaring done
|
|
32
33
|
|
|
33
|
-
- [ ] Original repro no longer reproduces
|
|
34
|
+
- [ ] Original repeatable repro no longer reproduces, or the consumptive action's
|
|
35
|
+
offline regression and evidence-completeness fixtures pass without a rerun.
|
|
34
36
|
- [ ] Regression test passes (or absence of seam is documented).
|
|
35
37
|
- [ ] All `[DEBUG-...]` instrumentation removed (`grep` the prefix).
|
|
36
38
|
- [ ] Throwaway harnesses deleted (or moved to a clearly marked debug location).
|
|
@@ -36,6 +36,7 @@ topic's owner.
|
|
|
36
36
|
| `context-hygiene.md` | Choosing `/clear`, `/compact`, or a handoff. |
|
|
37
37
|
| `anti-patterns.md` | A pack-wide rationalization or red flag appears. |
|
|
38
38
|
| `afk-hitl.md` | A pause, question, resume, or AFK decision is possible. |
|
|
39
|
+
| `one-shot-actions.md` | A proof/action may be attempted once, needs fresh retry authorization, consumes external state/quota, or can delete its own failure evidence. |
|
|
39
40
|
| `tooling.md` | Structural lookup, current external facts, or architecture memory is needed. |
|
|
40
41
|
| `skill-authoring.md` | Creating, editing, routing, evaluating, or pruning a DevRites skill. |
|
|
41
42
|
| `definition-of-done.md` | Prove, Seal, Ship, or Quick must decide whether work is finished. |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# One-shot evidence completeness
|
|
2
|
+
|
|
3
|
+
An action is **consumptive** when a failed attempt is not safely equivalent to a
|
|
4
|
+
normal rerun. This includes commands limited to one attempt, commands whose retry
|
|
5
|
+
needs fresh human authorization, actions that spend external quota or mutate
|
|
6
|
+
privileged/external state so a rerun is not equivalent, and actions whose cleanup
|
|
7
|
+
can destroy the failure state needed for diagnosis. Successful cleanup does not
|
|
8
|
+
make a consumptive action repeatable.
|
|
9
|
+
|
|
10
|
+
## Pre-attempt gate
|
|
11
|
+
|
|
12
|
+
Before Vet can emit READY, and again immediately before Prove executes the action,
|
|
13
|
+
the approved `test-plan.md` must bind all of the following:
|
|
14
|
+
|
|
15
|
+
1. **Durable retention:** an operator-controlled evidence artifact outside the
|
|
16
|
+
disposable runtime/cleanup tree, created before the first side effect, written
|
|
17
|
+
durably before cleanup, least-privilege, and bounded by schema, size, and
|
|
18
|
+
cardinality.
|
|
19
|
+
2. **Trust-safe diagnostics:** known semantic values use the normal validator;
|
|
20
|
+
unknown but lexically well-formed non-secret values survive in bounded sanitized
|
|
21
|
+
fields; malformed, hostile, or secret-bearing values become fixed reason codes
|
|
22
|
+
rather than retained raw input.
|
|
23
|
+
3. **Terminal completeness:** every success, nonzero exit, rejection, timeout,
|
|
24
|
+
signal, and cleanup failure either names the retained artifact or proves that
|
|
25
|
+
no diagnostic state exists. Failure retention preserves the original safe
|
|
26
|
+
failure family and cause through clean convergence.
|
|
27
|
+
4. **Discriminating proof:** fixtures cover success, a known failure, an unknown
|
|
28
|
+
well-formed failure, malformed/hostile input, and cleanup after failure. They
|
|
29
|
+
prove cleanup cannot delete or overwrite the retained failure evidence.
|
|
30
|
+
5. **Recovery sufficiency:** the retained bounded evidence is enough to choose an
|
|
31
|
+
offline correction or a truthful terminal classification without consuming
|
|
32
|
+
another attempt.
|
|
33
|
+
|
|
34
|
+
Missing or stale evidence is an agent-owned technical plan gap: Vet returns
|
|
35
|
+
`NEEDS REPLAN`, and Prove returns to Vet inline without executing the action. Never
|
|
36
|
+
weaken the trust validator or spend the attempt merely to discover what the
|
|
37
|
+
retention design should have preserved.
|
|
38
|
+
|
|
39
|
+
## Failure handling
|
|
40
|
+
|
|
41
|
+
After a consumptive action fails, its retained artifact is the reproduction input.
|
|
42
|
+
Do not rerun the action during triage. A new attempt is admissible only after the
|
|
43
|
+
evidence identifies a changed invariant or external condition, the affected plan
|
|
44
|
+
and fixtures are re-vetted, and any required fresh authorization is obtained. If
|
|
45
|
+
the attempt ran without complete retention, stop with the observed technical
|
|
46
|
+
blocker; a blind retry cannot manufacture the destroyed evidence.
|
|
@@ -38,6 +38,8 @@ Pull these via `Read` when relevant:
|
|
|
38
38
|
webhook / config / error messages / getting-started): **measure** the DX scorecard (run the flow,
|
|
39
39
|
measure time-to-hello-world, and capture verbatim error text), rather than asserting it.
|
|
40
40
|
- `definition-of-done.md`: acceptance, proof, gates, scope, rollback/docs.
|
|
41
|
+
- `one-shot-actions.md`: pre-attempt evidence completeness and no-rerun handling for
|
|
42
|
+
consumptive proof actions.
|
|
41
43
|
|
|
42
44
|
|
|
43
45
|
## Operating rules
|
|
@@ -107,6 +109,13 @@ failure is a blocker; this Upgrade admission never authorizes source or test cha
|
|
|
107
109
|
substituted commands, malformed manifests, zero-test/skipped/filtered results used as
|
|
108
110
|
behavioral proof, success inferred only from exit status, and any source drift. Static
|
|
109
111
|
gates prove only their named static criterion.
|
|
112
|
+
Immediately before any consumptive action, apply `one-shot-actions.md` to the
|
|
113
|
+
live candidate: require the vetted retained-artifact identity, bounds,
|
|
114
|
+
sanitization, terminal-path fixtures, and cleanup-survival proof. A missing,
|
|
115
|
+
stale, or disposable-only evidence surface returns to Vet inline and consumes
|
|
116
|
+
no attempt. Record the admitted artifact identity before execution. After a
|
|
117
|
+
failed consumptive action, triage from that artifact; never reproduce it by
|
|
118
|
+
rerunning the action.
|
|
110
119
|
4. **UI feature?** The root applies the browser proof ladder with
|
|
111
120
|
`design-brief.md`, `references.md`, the requested routes, browser harness, and
|
|
112
121
|
allowed scratch path:
|
|
@@ -4,7 +4,10 @@ When a test/build/runtime/browser check fails, triage before fixing. Delegates t
|
|
|
4
4
|
loop to `devrites-debug-recovery`.
|
|
5
5
|
|
|
6
6
|
## Triage ladder
|
|
7
|
-
1. **Reproduce:**
|
|
7
|
+
1. **Reproduce:** for a repeatable command, run it again and capture the exact
|
|
8
|
+
error (quote it). For a consumptive action under
|
|
9
|
+
[`one-shot-actions.md`](../../devrites-lib/reference/standards/one-shot-actions.md),
|
|
10
|
+
never rerun it: use the retained bounded artifact as the reproduction input.
|
|
8
11
|
2. **Classify** the failure:
|
|
9
12
|
- test is right, code is wrong → fix the code (in scope).
|
|
10
13
|
- test is wrong/outdated → that may be **spec drift** (acceptance criteria wrong).
|
|
@@ -14,7 +17,9 @@ loop to `devrites-debug-recovery`.
|
|
|
14
17
|
3. **Isolate:** minimize to the smallest failing case; bisect the diff if needed.
|
|
15
18
|
4. **Fix within scope:** the current slice/feature only. If the fix reaches outside
|
|
16
19
|
scope, stop and record a blocker in `state.md` (then `/rite-plan unblock`).
|
|
17
|
-
5. **Re-run** the same command; confirm green
|
|
20
|
+
5. **Re-run** the same command when it is repeatable; confirm green and record both
|
|
21
|
+
attempts in `evidence.md`. A consumptive action needs re-vetted evidence
|
|
22
|
+
completeness and any fresh authorization before a new attempt.
|
|
18
23
|
|
|
19
24
|
## Rules
|
|
20
25
|
- Quote the real error text; don't paraphrase it away.
|
|
@@ -20,7 +20,8 @@ but every profile keeps the exact plan-reviewer gate.
|
|
|
20
20
|
Pull the standard named by the active axis: `principles.md`, `patterns.md`,
|
|
21
21
|
`coding-style.md`, `testing.md`, `spec-grammar.md`, `performance.md`,
|
|
22
22
|
`error-handling.md`, `development-workflow.md`, `afk-hitl.md`,
|
|
23
|
-
`developer-experience.md`, `elicitation.md`, and
|
|
23
|
+
`one-shot-actions.md`, `developer-experience.md`, `elicitation.md`, and
|
|
24
|
+
`definition-of-done.md`.
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
## Operating rules
|
|
@@ -97,6 +98,11 @@ Pull the standard named by the active axis: `principles.md`, `patterns.md`,
|
|
|
97
98
|
unmeasurable conflict = gap. Record complete SHA-256 provenance inputs. Require
|
|
98
99
|
every behavioral mapping to name a positive,
|
|
99
100
|
discriminating assertion and decisive signal, not merely a command or expected exit zero.
|
|
101
|
+
Identify every consumptive action under `one-shot-actions.md`. Before admitting
|
|
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
|
|
105
|
+
preflight gap; do not spend the action to learn what cleanup would erase.
|
|
100
106
|
Preflight observes; it need not make future behavior pass.
|
|
101
107
|
2c. **Implementation-readiness audit.** Goal-backward map every REQ/AC/NFR, interaction,
|
|
102
108
|
edge/prohibition, and decision-coverage row to a slice and executable proof. Verify
|
|
@@ -35,6 +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
39
|
|
|
39
40
|
## 3. Axis findings (floor-gated)
|
|
40
41
|
| Axis | Floor band | Findings (sev · confidence) |
|
|
@@ -94,6 +95,11 @@ Commands in this durable artifact are portable repository commands: no RTK or lo
|
|
|
94
95
|
aliases, user-specific absolute paths, or temporary proof trees. Evidence records
|
|
95
96
|
the command actually executed.
|
|
96
97
|
|
|
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> |
|
|
102
|
+
|
|
97
103
|
Every behavioral row names a positive, discriminating assertion and the decisive output it
|
|
98
104
|
produces. A command or expected exit zero alone is not a behavioral assertion; static gates
|
|
99
105
|
prove only their named static criterion.
|
|
@@ -55,7 +55,11 @@ line, and then assign the band. Do not choose a score and justify it afterward:
|
|
|
55
55
|
model changes conservatively. Every destructive step needs a rollback.
|
|
56
56
|
7. **Failure-mode coverage:** for each new codepath, find a realistic failure such
|
|
57
57
|
as a timeout, nil value, race, or stale state. A silent failure with **no test AND
|
|
58
|
-
no error handling** is a critical gap.
|
|
58
|
+
no error handling** is a critical gap. For every consumptive action under
|
|
59
|
+
`one-shot-actions.md`, require durable bounded trust-safe evidence for every
|
|
60
|
+
terminal path plus unknown-well-formed, malformed/hostile, and cleanup-survival
|
|
61
|
+
fixtures. Missing evidence completeness is `broken`: the plan must not consume
|
|
62
|
+
the action to discover diagnostics that cleanup can erase.
|
|
59
63
|
|
|
60
64
|
## Confidence calibration + verification gate (mandatory)
|
|
61
65
|
Give every finding a **confidence score from 1 to 10** and a quoted source:
|
|
@@ -73,7 +77,8 @@ Band each dimension `strong` / `adequate` / `thin` / `broken` (`broken` means
|
|
|
73
77
|
Critical; `thin` means Important). For a borderline dimension, sample twice and
|
|
74
78
|
take the **lower** band. The verdict uses the weakest dimension, not an average.
|
|
75
79
|
Pass only when every dimension is at least `adequate`, no critical failure-mode gap
|
|
76
|
-
remains,
|
|
80
|
+
remains, every consumptive action passes one-shot evidence completeness, the
|
|
81
|
+
shared-contract check passes, and the ID-and-meaning map contains no orphaned
|
|
77
82
|
criterion, slice, or proof.
|
|
78
83
|
|
|
79
84
|
## Rules
|
|
@@ -18,10 +18,14 @@ has no clear next move.
|
|
|
18
18
|
1. **Build the feedback loop:** create a fast, deterministic, agent-runnable pass/fail
|
|
19
19
|
signal. Spend most of the investigation here.
|
|
20
20
|
See [build-the-loop.md](reference/build-the-loop.md).
|
|
21
|
-
2. **Reproduce:** run the loop. Confirm the failure matches
|
|
22
|
-
(not a nearby failure); capture the **exact error text**;
|
|
23
|
-
reproducibility (or a high enough repro rate for flaky bugs).
|
|
24
|
-
|
|
21
|
+
2. **Reproduce:** run the loop for a repeatable action. Confirm the failure matches
|
|
22
|
+
the user's report (not a nearby failure); capture the **exact error text**;
|
|
23
|
+
confirm reproducibility (or a high enough repro rate for flaky bugs). For a
|
|
24
|
+
consumptive action under
|
|
25
|
+
[`one-shot-actions.md`](../devrites-lib/reference/standards/one-shot-actions.md),
|
|
26
|
+
the retained bounded artifact
|
|
27
|
+
is the reproduction input and the action MUST NOT be rerun during diagnosis.
|
|
28
|
+
Do not proceed without one of those reproduction inputs.
|
|
25
29
|
3. **Ranked hypotheses (3-5, falsifiable):** generate the list before testing
|
|
26
30
|
any of them. Each must state a prediction.
|
|
27
31
|
**Completion:** 3-5 distinct hypotheses each state an observable prediction.
|
|
@@ -51,8 +55,10 @@ has no clear next move.
|
|
|
51
55
|
- **Do NOT loosen / delete a failing assertion** to get green: check whether
|
|
52
56
|
it's drift first (route via `/rite-plan repair`).
|
|
53
57
|
- **Do NOT hide flakiness** with sleeps / retries: characterize it.
|
|
54
|
-
- **Re-run the original loop after the fix
|
|
55
|
-
|
|
58
|
+
- **Re-run the original loop after the fix when it is repeatable.** For a
|
|
59
|
+
consumptive action, first re-vet evidence completeness and obtain any required
|
|
60
|
+
fresh authorization; offline fixtures remain mandatory but cannot authorize the
|
|
61
|
+
real attempt.
|
|
56
62
|
- **Classify before routing** with
|
|
57
63
|
[cleanup-and-classify.md](reference/cleanup-and-classify.md).
|
|
58
64
|
- **Durably record class and rationale** in `decisions.md` and the applicable
|
package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md
CHANGED
|
@@ -14,7 +14,8 @@ record the dead end and classify anew. Failure alone never resets the budget.
|
|
|
14
14
|
- `preexisting`: the same failure exists outside the candidate delta. Record the baseline and fix it only when it blocks acceptance.
|
|
15
15
|
- `not_a_defect`: the observation matches current accepted authority. Record that authority and continue.
|
|
16
16
|
|
|
17
|
-
Only human credentials/quotas/actions
|
|
17
|
+
Only human credentials/quotas/actions, irreversible work, or fresh authorization
|
|
18
|
+
required by a consumptive action pause; never ask for a blind retry.
|
|
18
19
|
|
|
19
20
|
Record class/routing in `decisions.md` and each failed attempt in `evidence.md`
|
|
20
21
|
or `## Dead ends`. Use one stable causal fingerprint shaped as `<affected
|
|
@@ -30,7 +31,8 @@ file or command.
|
|
|
30
31
|
|
|
31
32
|
## Cleanup checklist: required before declaring done
|
|
32
33
|
|
|
33
|
-
- [ ] Original repro no longer reproduces
|
|
34
|
+
- [ ] Original repeatable repro no longer reproduces, or the consumptive action's
|
|
35
|
+
offline regression and evidence-completeness fixtures pass without a rerun.
|
|
34
36
|
- [ ] Regression test passes (or absence of seam is documented).
|
|
35
37
|
- [ ] All `[DEBUG-...]` instrumentation removed (`grep` the prefix).
|
|
36
38
|
- [ ] Throwaway harnesses deleted (or moved to a clearly marked debug location).
|
|
@@ -36,6 +36,7 @@ topic's owner.
|
|
|
36
36
|
| `context-hygiene.md` | Choosing `/clear`, `/compact`, or a handoff. |
|
|
37
37
|
| `anti-patterns.md` | A pack-wide rationalization or red flag appears. |
|
|
38
38
|
| `afk-hitl.md` | A pause, question, resume, or AFK decision is possible. |
|
|
39
|
+
| `one-shot-actions.md` | A proof/action may be attempted once, needs fresh retry authorization, consumes external state/quota, or can delete its own failure evidence. |
|
|
39
40
|
| `tooling.md` | Structural lookup, current external facts, or architecture memory is needed. |
|
|
40
41
|
| `skill-authoring.md` | Creating, editing, routing, evaluating, or pruning a DevRites skill. |
|
|
41
42
|
| `definition-of-done.md` | Prove, Seal, Ship, or Quick must decide whether work is finished. |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# One-shot evidence completeness
|
|
2
|
+
|
|
3
|
+
An action is **consumptive** when a failed attempt is not safely equivalent to a
|
|
4
|
+
normal rerun. This includes commands limited to one attempt, commands whose retry
|
|
5
|
+
needs fresh human authorization, actions that spend external quota or mutate
|
|
6
|
+
privileged/external state so a rerun is not equivalent, and actions whose cleanup
|
|
7
|
+
can destroy the failure state needed for diagnosis. Successful cleanup does not
|
|
8
|
+
make a consumptive action repeatable.
|
|
9
|
+
|
|
10
|
+
## Pre-attempt gate
|
|
11
|
+
|
|
12
|
+
Before Vet can emit READY, and again immediately before Prove executes the action,
|
|
13
|
+
the approved `test-plan.md` must bind all of the following:
|
|
14
|
+
|
|
15
|
+
1. **Durable retention:** an operator-controlled evidence artifact outside the
|
|
16
|
+
disposable runtime/cleanup tree, created before the first side effect, written
|
|
17
|
+
durably before cleanup, least-privilege, and bounded by schema, size, and
|
|
18
|
+
cardinality.
|
|
19
|
+
2. **Trust-safe diagnostics:** known semantic values use the normal validator;
|
|
20
|
+
unknown but lexically well-formed non-secret values survive in bounded sanitized
|
|
21
|
+
fields; malformed, hostile, or secret-bearing values become fixed reason codes
|
|
22
|
+
rather than retained raw input.
|
|
23
|
+
3. **Terminal completeness:** every success, nonzero exit, rejection, timeout,
|
|
24
|
+
signal, and cleanup failure either names the retained artifact or proves that
|
|
25
|
+
no diagnostic state exists. Failure retention preserves the original safe
|
|
26
|
+
failure family and cause through clean convergence.
|
|
27
|
+
4. **Discriminating proof:** fixtures cover success, a known failure, an unknown
|
|
28
|
+
well-formed failure, malformed/hostile input, and cleanup after failure. They
|
|
29
|
+
prove cleanup cannot delete or overwrite the retained failure evidence.
|
|
30
|
+
5. **Recovery sufficiency:** the retained bounded evidence is enough to choose an
|
|
31
|
+
offline correction or a truthful terminal classification without consuming
|
|
32
|
+
another attempt.
|
|
33
|
+
|
|
34
|
+
Missing or stale evidence is an agent-owned technical plan gap: Vet returns
|
|
35
|
+
`NEEDS REPLAN`, and Prove returns to Vet inline without executing the action. Never
|
|
36
|
+
weaken the trust validator or spend the attempt merely to discover what the
|
|
37
|
+
retention design should have preserved.
|
|
38
|
+
|
|
39
|
+
## Failure handling
|
|
40
|
+
|
|
41
|
+
After a consumptive action fails, its retained artifact is the reproduction input.
|
|
42
|
+
Do not rerun the action during triage. A new attempt is admissible only after the
|
|
43
|
+
evidence identifies a changed invariant or external condition, the affected plan
|
|
44
|
+
and fixtures are re-vetted, and any required fresh authorization is obtained. If
|
|
45
|
+
the attempt ran without complete retention, stop with the observed technical
|
|
46
|
+
blocker; a blind retry cannot manufacture the destroyed evidence.
|
|
@@ -38,6 +38,8 @@ Pull these via `Read` when relevant:
|
|
|
38
38
|
webhook / config / error messages / getting-started): **measure** the DX scorecard (run the flow,
|
|
39
39
|
measure time-to-hello-world, and capture verbatim error text), rather than asserting it.
|
|
40
40
|
- `definition-of-done.md`: acceptance, proof, gates, scope, rollback/docs.
|
|
41
|
+
- `one-shot-actions.md`: pre-attempt evidence completeness and no-rerun handling for
|
|
42
|
+
consumptive proof actions.
|
|
41
43
|
|
|
42
44
|
|
|
43
45
|
## Operating rules
|
|
@@ -107,6 +109,13 @@ failure is a blocker; this Upgrade admission never authorizes source or test cha
|
|
|
107
109
|
substituted commands, malformed manifests, zero-test/skipped/filtered results used as
|
|
108
110
|
behavioral proof, success inferred only from exit status, and any source drift. Static
|
|
109
111
|
gates prove only their named static criterion.
|
|
112
|
+
Immediately before any consumptive action, apply `one-shot-actions.md` to the
|
|
113
|
+
live candidate: require the vetted retained-artifact identity, bounds,
|
|
114
|
+
sanitization, terminal-path fixtures, and cleanup-survival proof. A missing,
|
|
115
|
+
stale, or disposable-only evidence surface returns to Vet inline and consumes
|
|
116
|
+
no attempt. Record the admitted artifact identity before execution. After a
|
|
117
|
+
failed consumptive action, triage from that artifact; never reproduce it by
|
|
118
|
+
rerunning the action.
|
|
110
119
|
4. **UI feature?** The root applies the browser proof ladder with
|
|
111
120
|
`design-brief.md`, `references.md`, the requested routes, browser harness, and
|
|
112
121
|
allowed scratch path:
|
|
@@ -4,7 +4,10 @@ When a test/build/runtime/browser check fails, triage before fixing. Delegates t
|
|
|
4
4
|
loop to `devrites-debug-recovery`.
|
|
5
5
|
|
|
6
6
|
## Triage ladder
|
|
7
|
-
1. **Reproduce:**
|
|
7
|
+
1. **Reproduce:** for a repeatable command, run it again and capture the exact
|
|
8
|
+
error (quote it). For a consumptive action under
|
|
9
|
+
[`one-shot-actions.md`](../../devrites-lib/reference/standards/one-shot-actions.md),
|
|
10
|
+
never rerun it: use the retained bounded artifact as the reproduction input.
|
|
8
11
|
2. **Classify** the failure:
|
|
9
12
|
- test is right, code is wrong → fix the code (in scope).
|
|
10
13
|
- test is wrong/outdated → that may be **spec drift** (acceptance criteria wrong).
|
|
@@ -14,7 +17,9 @@ loop to `devrites-debug-recovery`.
|
|
|
14
17
|
3. **Isolate:** minimize to the smallest failing case; bisect the diff if needed.
|
|
15
18
|
4. **Fix within scope:** the current slice/feature only. If the fix reaches outside
|
|
16
19
|
scope, stop and record a blocker in `state.md` (then `/rite-plan unblock`).
|
|
17
|
-
5. **Re-run** the same command; confirm green
|
|
20
|
+
5. **Re-run** the same command when it is repeatable; confirm green and record both
|
|
21
|
+
attempts in `evidence.md`. A consumptive action needs re-vetted evidence
|
|
22
|
+
completeness and any fresh authorization before a new attempt.
|
|
18
23
|
|
|
19
24
|
## Rules
|
|
20
25
|
- Quote the real error text; don't paraphrase it away.
|
|
@@ -20,7 +20,8 @@ but every profile keeps the exact plan-reviewer gate.
|
|
|
20
20
|
Pull the standard named by the active axis: `principles.md`, `patterns.md`,
|
|
21
21
|
`coding-style.md`, `testing.md`, `spec-grammar.md`, `performance.md`,
|
|
22
22
|
`error-handling.md`, `development-workflow.md`, `afk-hitl.md`,
|
|
23
|
-
`developer-experience.md`, `elicitation.md`, and
|
|
23
|
+
`one-shot-actions.md`, `developer-experience.md`, `elicitation.md`, and
|
|
24
|
+
`definition-of-done.md`.
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
## Operating rules
|
|
@@ -97,6 +98,11 @@ Pull the standard named by the active axis: `principles.md`, `patterns.md`,
|
|
|
97
98
|
unmeasurable conflict = gap. Record complete SHA-256 provenance inputs. Require
|
|
98
99
|
every behavioral mapping to name a positive,
|
|
99
100
|
discriminating assertion and decisive signal, not merely a command or expected exit zero.
|
|
101
|
+
Identify every consumptive action under `one-shot-actions.md`. Before admitting
|
|
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
|
|
105
|
+
preflight gap; do not spend the action to learn what cleanup would erase.
|
|
100
106
|
Preflight observes; it need not make future behavior pass.
|
|
101
107
|
2c. **Implementation-readiness audit.** Goal-backward map every REQ/AC/NFR, interaction,
|
|
102
108
|
edge/prohibition, and decision-coverage row to a slice and executable proof. Verify
|
|
@@ -35,6 +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
39
|
|
|
39
40
|
## 3. Axis findings (floor-gated)
|
|
40
41
|
| Axis | Floor band | Findings (sev · confidence) |
|
|
@@ -94,6 +95,11 @@ Commands in this durable artifact are portable repository commands: no RTK or lo
|
|
|
94
95
|
aliases, user-specific absolute paths, or temporary proof trees. Evidence records
|
|
95
96
|
the command actually executed.
|
|
96
97
|
|
|
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> |
|
|
102
|
+
|
|
97
103
|
Every behavioral row names a positive, discriminating assertion and the decisive output it
|
|
98
104
|
produces. A command or expected exit zero alone is not a behavioral assertion; static gates
|
|
99
105
|
prove only their named static criterion.
|
|
@@ -53,7 +53,11 @@ line, and then assign the band. Do not choose a score and justify it afterward:
|
|
|
53
53
|
model changes conservatively. Every destructive step needs a rollback.
|
|
54
54
|
7. **Failure-mode coverage:** for each new codepath, find a realistic failure such
|
|
55
55
|
as a timeout, nil value, race, or stale state. A silent failure with **no test AND
|
|
56
|
-
no error handling** is a critical gap.
|
|
56
|
+
no error handling** is a critical gap. For every consumptive action under
|
|
57
|
+
`one-shot-actions.md`, require durable bounded trust-safe evidence for every
|
|
58
|
+
terminal path plus unknown-well-formed, malformed/hostile, and cleanup-survival
|
|
59
|
+
fixtures. Missing evidence completeness is `broken`: the plan must not consume
|
|
60
|
+
the action to discover diagnostics that cleanup can erase.
|
|
57
61
|
|
|
58
62
|
## Confidence calibration + verification gate (mandatory)
|
|
59
63
|
Give every finding a **confidence score from 1 to 10** and a quoted source:
|
|
@@ -71,7 +75,8 @@ Band each dimension `strong` / `adequate` / `thin` / `broken` (`broken` means
|
|
|
71
75
|
Critical; `thin` means Important). For a borderline dimension, sample twice and
|
|
72
76
|
take the **lower** band. The verdict uses the weakest dimension, not an average.
|
|
73
77
|
Pass only when every dimension is at least `adequate`, no critical failure-mode gap
|
|
74
|
-
remains,
|
|
78
|
+
remains, every consumptive action passes one-shot evidence completeness, the
|
|
79
|
+
shared-contract check passes, and the ID-and-meaning map contains no orphaned
|
|
75
80
|
criterion, slice, or proof.
|
|
76
81
|
|
|
77
82
|
## Rules
|
|
@@ -18,10 +18,14 @@ has no clear next move.
|
|
|
18
18
|
1. **Build the feedback loop:** create a fast, deterministic, agent-runnable pass/fail
|
|
19
19
|
signal. Spend most of the investigation here.
|
|
20
20
|
See [build-the-loop.md](reference/build-the-loop.md).
|
|
21
|
-
2. **Reproduce:** run the loop. Confirm the failure matches
|
|
22
|
-
(not a nearby failure); capture the **exact error text**;
|
|
23
|
-
reproducibility (or a high enough repro rate for flaky bugs).
|
|
24
|
-
|
|
21
|
+
2. **Reproduce:** run the loop for a repeatable action. Confirm the failure matches
|
|
22
|
+
the user's report (not a nearby failure); capture the **exact error text**;
|
|
23
|
+
confirm reproducibility (or a high enough repro rate for flaky bugs). For a
|
|
24
|
+
consumptive action under
|
|
25
|
+
[`one-shot-actions.md`](../devrites-lib/reference/standards/one-shot-actions.md),
|
|
26
|
+
the retained bounded artifact
|
|
27
|
+
is the reproduction input and the action MUST NOT be rerun during diagnosis.
|
|
28
|
+
Do not proceed without one of those reproduction inputs.
|
|
25
29
|
3. **Ranked hypotheses (3-5, falsifiable):** generate the list before testing
|
|
26
30
|
any of them. Each must state a prediction.
|
|
27
31
|
**Completion:** 3-5 distinct hypotheses each state an observable prediction.
|
|
@@ -51,8 +55,10 @@ has no clear next move.
|
|
|
51
55
|
- **Do NOT loosen / delete a failing assertion** to get green: check whether
|
|
52
56
|
it's drift first (route via `$rite-plan repair`).
|
|
53
57
|
- **Do NOT hide flakiness** with sleeps / retries: characterize it.
|
|
54
|
-
- **Re-run the original loop after the fix
|
|
55
|
-
|
|
58
|
+
- **Re-run the original loop after the fix when it is repeatable.** For a
|
|
59
|
+
consumptive action, first re-vet evidence completeness and obtain any required
|
|
60
|
+
fresh authorization; offline fixtures remain mandatory but cannot authorize the
|
|
61
|
+
real attempt.
|
|
56
62
|
- **Classify before routing** with
|
|
57
63
|
[cleanup-and-classify.md](reference/cleanup-and-classify.md).
|
|
58
64
|
- **Durably record class and rationale** in `decisions.md` and the applicable
|
package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md
CHANGED
|
@@ -14,7 +14,8 @@ record the dead end and classify anew. Failure alone never resets the budget.
|
|
|
14
14
|
- `preexisting`: the same failure exists outside the candidate delta. Record the baseline and fix it only when it blocks acceptance.
|
|
15
15
|
- `not_a_defect`: the observation matches current accepted authority. Record that authority and continue.
|
|
16
16
|
|
|
17
|
-
Only human credentials/quotas/actions
|
|
17
|
+
Only human credentials/quotas/actions, irreversible work, or fresh authorization
|
|
18
|
+
required by a consumptive action pause; never ask for a blind retry.
|
|
18
19
|
|
|
19
20
|
Record class/routing in `decisions.md` and each failed attempt in `evidence.md`
|
|
20
21
|
or `## Dead ends`. Use one stable causal fingerprint shaped as `<affected
|
|
@@ -30,7 +31,8 @@ file or command.
|
|
|
30
31
|
|
|
31
32
|
## Cleanup checklist: required before declaring done
|
|
32
33
|
|
|
33
|
-
- [ ] Original repro no longer reproduces
|
|
34
|
+
- [ ] Original repeatable repro no longer reproduces, or the consumptive action's
|
|
35
|
+
offline regression and evidence-completeness fixtures pass without a rerun.
|
|
34
36
|
- [ ] Regression test passes (or absence of seam is documented).
|
|
35
37
|
- [ ] All `[DEBUG-...]` instrumentation removed (`grep` the prefix).
|
|
36
38
|
- [ ] Throwaway harnesses deleted (or moved to a clearly marked debug location).
|
|
@@ -36,6 +36,7 @@ topic's owner.
|
|
|
36
36
|
| `context-hygiene.md` | Choosing `/clear`, `/compact`, or a handoff. |
|
|
37
37
|
| `anti-patterns.md` | A pack-wide rationalization or red flag appears. |
|
|
38
38
|
| `afk-hitl.md` | A pause, question, resume, or AFK decision is possible. |
|
|
39
|
+
| `one-shot-actions.md` | A proof/action may be attempted once, needs fresh retry authorization, consumes external state/quota, or can delete its own failure evidence. |
|
|
39
40
|
| `tooling.md` | Structural lookup, current external facts, or architecture memory is needed. |
|
|
40
41
|
| `skill-authoring.md` | Creating, editing, routing, evaluating, or pruning a DevRites skill. |
|
|
41
42
|
| `definition-of-done.md` | Prove, Seal, Ship, or Quick must decide whether work is finished. |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# One-shot evidence completeness
|
|
2
|
+
|
|
3
|
+
An action is **consumptive** when a failed attempt is not safely equivalent to a
|
|
4
|
+
normal rerun. This includes commands limited to one attempt, commands whose retry
|
|
5
|
+
needs fresh human authorization, actions that spend external quota or mutate
|
|
6
|
+
privileged/external state so a rerun is not equivalent, and actions whose cleanup
|
|
7
|
+
can destroy the failure state needed for diagnosis. Successful cleanup does not
|
|
8
|
+
make a consumptive action repeatable.
|
|
9
|
+
|
|
10
|
+
## Pre-attempt gate
|
|
11
|
+
|
|
12
|
+
Before Vet can emit READY, and again immediately before Prove executes the action,
|
|
13
|
+
the approved `test-plan.md` must bind all of the following:
|
|
14
|
+
|
|
15
|
+
1. **Durable retention:** an operator-controlled evidence artifact outside the
|
|
16
|
+
disposable runtime/cleanup tree, created before the first side effect, written
|
|
17
|
+
durably before cleanup, least-privilege, and bounded by schema, size, and
|
|
18
|
+
cardinality.
|
|
19
|
+
2. **Trust-safe diagnostics:** known semantic values use the normal validator;
|
|
20
|
+
unknown but lexically well-formed non-secret values survive in bounded sanitized
|
|
21
|
+
fields; malformed, hostile, or secret-bearing values become fixed reason codes
|
|
22
|
+
rather than retained raw input.
|
|
23
|
+
3. **Terminal completeness:** every success, nonzero exit, rejection, timeout,
|
|
24
|
+
signal, and cleanup failure either names the retained artifact or proves that
|
|
25
|
+
no diagnostic state exists. Failure retention preserves the original safe
|
|
26
|
+
failure family and cause through clean convergence.
|
|
27
|
+
4. **Discriminating proof:** fixtures cover success, a known failure, an unknown
|
|
28
|
+
well-formed failure, malformed/hostile input, and cleanup after failure. They
|
|
29
|
+
prove cleanup cannot delete or overwrite the retained failure evidence.
|
|
30
|
+
5. **Recovery sufficiency:** the retained bounded evidence is enough to choose an
|
|
31
|
+
offline correction or a truthful terminal classification without consuming
|
|
32
|
+
another attempt.
|
|
33
|
+
|
|
34
|
+
Missing or stale evidence is an agent-owned technical plan gap: Vet returns
|
|
35
|
+
`NEEDS REPLAN`, and Prove returns to Vet inline without executing the action. Never
|
|
36
|
+
weaken the trust validator or spend the attempt merely to discover what the
|
|
37
|
+
retention design should have preserved.
|
|
38
|
+
|
|
39
|
+
## Failure handling
|
|
40
|
+
|
|
41
|
+
After a consumptive action fails, its retained artifact is the reproduction input.
|
|
42
|
+
Do not rerun the action during triage. A new attempt is admissible only after the
|
|
43
|
+
evidence identifies a changed invariant or external condition, the affected plan
|
|
44
|
+
and fixtures are re-vetted, and any required fresh authorization is obtained. If
|
|
45
|
+
the attempt ran without complete retention, stop with the observed technical
|
|
46
|
+
blocker; a blind retry cannot manufacture the destroyed evidence.
|
|
@@ -38,6 +38,8 @@ Pull these via `Read` when relevant:
|
|
|
38
38
|
webhook / config / error messages / getting-started): **measure** the DX scorecard (run the flow,
|
|
39
39
|
measure time-to-hello-world, and capture verbatim error text), rather than asserting it.
|
|
40
40
|
- `definition-of-done.md`: acceptance, proof, gates, scope, rollback/docs.
|
|
41
|
+
- `one-shot-actions.md`: pre-attempt evidence completeness and no-rerun handling for
|
|
42
|
+
consumptive proof actions.
|
|
41
43
|
|
|
42
44
|
|
|
43
45
|
## Operating rules
|
|
@@ -107,6 +109,13 @@ failure is a blocker; this Upgrade admission never authorizes source or test cha
|
|
|
107
109
|
substituted commands, malformed manifests, zero-test/skipped/filtered results used as
|
|
108
110
|
behavioral proof, success inferred only from exit status, and any source drift. Static
|
|
109
111
|
gates prove only their named static criterion.
|
|
112
|
+
Immediately before any consumptive action, apply `one-shot-actions.md` to the
|
|
113
|
+
live candidate: require the vetted retained-artifact identity, bounds,
|
|
114
|
+
sanitization, terminal-path fixtures, and cleanup-survival proof. A missing,
|
|
115
|
+
stale, or disposable-only evidence surface returns to Vet inline and consumes
|
|
116
|
+
no attempt. Record the admitted artifact identity before execution. After a
|
|
117
|
+
failed consumptive action, triage from that artifact; never reproduce it by
|
|
118
|
+
rerunning the action.
|
|
110
119
|
4. **UI feature?** The root applies the browser proof ladder with
|
|
111
120
|
`design-brief.md`, `references.md`, the requested routes, browser harness, and
|
|
112
121
|
allowed scratch path:
|
|
@@ -4,7 +4,10 @@ When a test/build/runtime/browser check fails, triage before fixing. Delegates t
|
|
|
4
4
|
loop to `devrites-debug-recovery`.
|
|
5
5
|
|
|
6
6
|
## Triage ladder
|
|
7
|
-
1. **Reproduce:**
|
|
7
|
+
1. **Reproduce:** for a repeatable command, run it again and capture the exact
|
|
8
|
+
error (quote it). For a consumptive action under
|
|
9
|
+
[`one-shot-actions.md`](../../devrites-lib/reference/standards/one-shot-actions.md),
|
|
10
|
+
never rerun it: use the retained bounded artifact as the reproduction input.
|
|
8
11
|
2. **Classify** the failure:
|
|
9
12
|
- test is right, code is wrong → fix the code (in scope).
|
|
10
13
|
- test is wrong/outdated → that may be **spec drift** (acceptance criteria wrong).
|
|
@@ -14,7 +17,9 @@ loop to `devrites-debug-recovery`.
|
|
|
14
17
|
3. **Isolate:** minimize to the smallest failing case; bisect the diff if needed.
|
|
15
18
|
4. **Fix within scope:** the current slice/feature only. If the fix reaches outside
|
|
16
19
|
scope, stop and record a blocker in `state.md` (then `$rite-plan unblock`).
|
|
17
|
-
5. **Re-run** the same command; confirm green
|
|
20
|
+
5. **Re-run** the same command when it is repeatable; confirm green and record both
|
|
21
|
+
attempts in `evidence.md`. A consumptive action needs re-vetted evidence
|
|
22
|
+
completeness and any fresh authorization before a new attempt.
|
|
18
23
|
|
|
19
24
|
## Rules
|
|
20
25
|
- Quote the real error text; don't paraphrase it away.
|
|
@@ -20,7 +20,8 @@ but every profile keeps the exact plan-reviewer gate.
|
|
|
20
20
|
Pull the standard named by the active axis: `principles.md`, `patterns.md`,
|
|
21
21
|
`coding-style.md`, `testing.md`, `spec-grammar.md`, `performance.md`,
|
|
22
22
|
`error-handling.md`, `development-workflow.md`, `afk-hitl.md`,
|
|
23
|
-
`developer-experience.md`, `elicitation.md`, and
|
|
23
|
+
`one-shot-actions.md`, `developer-experience.md`, `elicitation.md`, and
|
|
24
|
+
`definition-of-done.md`.
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
## Operating rules
|
|
@@ -97,6 +98,11 @@ Pull the standard named by the active axis: `principles.md`, `patterns.md`,
|
|
|
97
98
|
unmeasurable conflict = gap. Record complete SHA-256 provenance inputs. Require
|
|
98
99
|
every behavioral mapping to name a positive,
|
|
99
100
|
discriminating assertion and decisive signal, not merely a command or expected exit zero.
|
|
101
|
+
Identify every consumptive action under `one-shot-actions.md`. Before admitting
|
|
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
|
|
105
|
+
preflight gap; do not spend the action to learn what cleanup would erase.
|
|
100
106
|
Preflight observes; it need not make future behavior pass.
|
|
101
107
|
2c. **Implementation-readiness audit.** Goal-backward map every REQ/AC/NFR, interaction,
|
|
102
108
|
edge/prohibition, and decision-coverage row to a slice and executable proof. Verify
|
|
@@ -35,6 +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
39
|
|
|
39
40
|
## 3. Axis findings (floor-gated)
|
|
40
41
|
| Axis | Floor band | Findings (sev · confidence) |
|
|
@@ -94,6 +95,11 @@ Commands in this durable artifact are portable repository commands: no RTK or lo
|
|
|
94
95
|
aliases, user-specific absolute paths, or temporary proof trees. Evidence records
|
|
95
96
|
the command actually executed.
|
|
96
97
|
|
|
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> |
|
|
102
|
+
|
|
97
103
|
Every behavioral row names a positive, discriminating assertion and the decisive output it
|
|
98
104
|
produces. A command or expected exit zero alone is not a behavioral assertion; static gates
|
|
99
105
|
prove only their named static criterion.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.6",
|
|
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",
|