devrites 5.4.0 → 5.5.0
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/docs/command-map.md +2 -2
- package/docs/engine/state-schema.md +12 -0
- package/docs/flow.md +4 -0
- package/docs/orchestration.md +5 -2
- package/engine/commands.go +2 -2
- package/engine/internal/devritespaths/paths.go +15 -0
- package/engine/internal/gate/gate.go +78 -0
- package/engine/internal/gate/gate_test.go +118 -0
- package/engine/internal/lib/candidate.go +7 -3
- package/engine/internal/lib/manifest_union.go +326 -0
- package/engine/internal/lib/manifest_union_test.go +214 -0
- package/engine/internal/lib/observe_budgets.go +73 -0
- package/engine/internal/lib/observe_budgets_test.go +142 -0
- package/engine/internal/lib/observe_summary.go +74 -13
- package/engine/internal/lib/workspace_read.go +11 -6
- package/engine/internal/state/budgets.go +163 -0
- package/engine/internal/state/budgets_test.go +42 -0
- package/engine/internal/state/cursor.go +16 -10
- package/engine/internal/state/observation.go +50 -4
- package/engine/internal/state/status.go +38 -26
- package/engine/internal/state/taskgraph.go +23 -0
- package/engine/main.go +32 -13
- package/engine/root_routing_test.go +3 -1
- package/pack/.claude/agents/devrites-code-reviewer.md +9 -6
- package/pack/.claude/agents/devrites-doubt-reviewer.md +6 -0
- package/pack/.claude/agents/devrites-plan-reviewer.md +7 -1
- package/pack/.claude/agents/devrites-slice-wright.md +42 -46
- package/pack/.claude/agents/devrites-test-analyst.md +9 -4
- package/pack/.claude/agents/devrites-upgrade-planner.md +9 -1
- package/pack/.claude/settings.json +17 -0
- package/pack/.claude/skills/devrites-api-interface/SKILL.md +2 -2
- package/pack/.claude/skills/devrites-doubt/SKILL.md +9 -17
- package/pack/.claude/skills/devrites-lib/reference/candidate-integrity.md +34 -35
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +11 -12
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +104 -51
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +1 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +45 -25
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +80 -41
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +19 -8
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +33 -1
- package/pack/.claude/skills/rite-build/SKILL.md +26 -19
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/.claude/skills/rite-build/reference/parallel-batch.md +90 -40
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +79 -59
- package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +14 -15
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +8 -8
- package/pack/.claude/skills/rite-define/SKILL.md +4 -1
- package/pack/.claude/skills/rite-plan/SKILL.md +4 -1
- package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +21 -0
- package/pack/.claude/skills/rite-plan/reference/slicing.md +117 -15
- package/pack/.claude/skills/rite-prove/SKILL.md +20 -22
- package/pack/.claude/skills/rite-review/SKILL.md +23 -16
- package/pack/.claude/skills/rite-seal/SKILL.md +8 -8
- package/pack/.claude/skills/rite-seal/reference/final-evidence.md +6 -5
- package/pack/.claude/skills/rite-seal/reference/phase-contract.md +13 -13
- package/pack/.claude/skills/rite-ship/SKILL.md +3 -0
- package/pack/.claude/skills/rite-ship/reference/close-out.md +16 -2
- package/pack/.claude/skills/rite-ship/reference/git-ship.md +14 -5
- package/pack/.claude/skills/rite-spec/SKILL.md +6 -0
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +6 -0
- package/pack/.claude/skills/rite-status/SKILL.md +4 -1
- package/pack/.claude/skills/rite-temper/SKILL.md +14 -11
- package/pack/.claude/skills/rite-temper/reference/anti-patterns.md +14 -13
- package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +3 -4
- package/pack/.claude/skills/rite-upgrade/SKILL.md +11 -2
- package/pack/.claude/skills/rite-vet/SKILL.md +22 -15
- package/pack/.claude/skills/rite-vet/reference/anti-patterns.md +11 -9
- package/pack/.claude/skills/rite-vet/reference/depth.md +6 -7
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +39 -14
- package/pack/generated/claude/agents/devrites-code-reviewer.md +9 -6
- package/pack/generated/claude/agents/devrites-doubt-reviewer.md +6 -0
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +7 -1
- package/pack/generated/claude/agents/devrites-slice-wright.md +42 -46
- package/pack/generated/claude/agents/devrites-test-analyst.md +9 -4
- package/pack/generated/claude/agents/devrites-upgrade-planner.md +9 -1
- package/pack/generated/claude/settings.json +17 -0
- package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +2 -2
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +9 -17
- package/pack/generated/claude/skills/devrites-lib/reference/candidate-integrity.md +34 -35
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +11 -12
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +104 -51
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +1 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +45 -25
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +80 -41
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +19 -8
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +33 -1
- package/pack/generated/claude/skills/rite-build/SKILL.md +26 -19
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +90 -40
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +79 -59
- package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +14 -15
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +8 -8
- package/pack/generated/claude/skills/rite-define/SKILL.md +4 -1
- package/pack/generated/claude/skills/rite-plan/SKILL.md +4 -1
- package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +21 -0
- package/pack/generated/claude/skills/rite-plan/reference/slicing.md +117 -15
- package/pack/generated/claude/skills/rite-prove/SKILL.md +20 -22
- package/pack/generated/claude/skills/rite-review/SKILL.md +23 -16
- package/pack/generated/claude/skills/rite-seal/SKILL.md +8 -8
- package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +6 -5
- package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +13 -13
- package/pack/generated/claude/skills/rite-ship/SKILL.md +3 -0
- package/pack/generated/claude/skills/rite-ship/reference/close-out.md +16 -2
- package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +14 -5
- package/pack/generated/claude/skills/rite-spec/SKILL.md +6 -0
- package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +6 -0
- package/pack/generated/claude/skills/rite-status/SKILL.md +4 -1
- package/pack/generated/claude/skills/rite-temper/SKILL.md +14 -11
- package/pack/generated/claude/skills/rite-temper/reference/anti-patterns.md +14 -13
- package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +3 -4
- package/pack/generated/claude/skills/rite-upgrade/SKILL.md +11 -2
- package/pack/generated/claude/skills/rite-vet/SKILL.md +22 -15
- package/pack/generated/claude/skills/rite-vet/reference/anti-patterns.md +11 -9
- package/pack/generated/claude/skills/rite-vet/reference/depth.md +6 -7
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +39 -14
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +9 -6
- package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +6 -0
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +7 -1
- package/pack/generated/codex/agents/devrites-slice-wright.toml +42 -46
- package/pack/generated/codex/agents/devrites-test-analyst.toml +9 -4
- package/pack/generated/codex/agents/devrites-upgrade-planner.toml +9 -1
- package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +2 -2
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +9 -17
- package/pack/generated/codex/skills/devrites-lib/reference/candidate-integrity.md +34 -35
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +11 -12
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +104 -51
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +1 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +45 -25
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +80 -41
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +19 -8
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +33 -1
- package/pack/generated/codex/skills/rite-build/SKILL.md +26 -19
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +90 -40
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +79 -59
- package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +14 -15
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +8 -8
- package/pack/generated/codex/skills/rite-define/SKILL.md +4 -1
- package/pack/generated/codex/skills/rite-plan/SKILL.md +4 -1
- package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +21 -0
- package/pack/generated/codex/skills/rite-plan/reference/slicing.md +117 -15
- package/pack/generated/codex/skills/rite-prove/SKILL.md +20 -22
- package/pack/generated/codex/skills/rite-review/SKILL.md +23 -16
- package/pack/generated/codex/skills/rite-seal/SKILL.md +8 -8
- package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +6 -5
- package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +13 -13
- package/pack/generated/codex/skills/rite-ship/SKILL.md +3 -0
- package/pack/generated/codex/skills/rite-ship/reference/close-out.md +16 -2
- package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +14 -5
- package/pack/generated/codex/skills/rite-spec/SKILL.md +6 -0
- package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +6 -0
- package/pack/generated/codex/skills/rite-status/SKILL.md +4 -1
- package/pack/generated/codex/skills/rite-temper/SKILL.md +14 -11
- package/pack/generated/codex/skills/rite-temper/reference/anti-patterns.md +14 -13
- package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +3 -4
- package/pack/generated/codex/skills/rite-upgrade/SKILL.md +11 -2
- package/pack/generated/codex/skills/rite-vet/SKILL.md +22 -15
- package/pack/generated/codex/skills/rite-vet/reference/anti-patterns.md +11 -9
- package/pack/generated/codex/skills/rite-vet/reference/depth.md +6 -7
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +39 -14
- package/pack/generated/omp/agents/devrites-code-reviewer.md +9 -6
- package/pack/generated/omp/agents/devrites-doubt-reviewer.md +6 -0
- package/pack/generated/omp/agents/devrites-plan-reviewer.md +7 -1
- package/pack/generated/omp/agents/devrites-slice-wright.md +42 -46
- package/pack/generated/omp/agents/devrites-test-analyst.md +9 -4
- package/pack/generated/omp/agents/devrites-upgrade-planner.md +9 -1
- package/pack/generated/omp/skills/devrites-api-interface/SKILL.md +2 -2
- package/pack/generated/omp/skills/devrites-doubt/SKILL.md +9 -17
- package/pack/generated/omp/skills/devrites-lib/reference/candidate-integrity.md +34 -35
- package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +11 -12
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +104 -51
- package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +1 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +45 -25
- package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +80 -41
- package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +19 -8
- package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +33 -1
- package/pack/generated/omp/skills/rite-build/SKILL.md +26 -19
- package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +90 -40
- package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +79 -59
- package/pack/generated/omp/skills/rite-build/reference/spec-drift-guard.md +14 -15
- package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +8 -8
- package/pack/generated/omp/skills/rite-define/SKILL.md +4 -1
- package/pack/generated/omp/skills/rite-plan/SKILL.md +4 -1
- package/pack/generated/omp/skills/rite-plan/reference/replan-and-repair.md +21 -0
- package/pack/generated/omp/skills/rite-plan/reference/slicing.md +117 -15
- package/pack/generated/omp/skills/rite-prove/SKILL.md +20 -22
- package/pack/generated/omp/skills/rite-review/SKILL.md +23 -16
- package/pack/generated/omp/skills/rite-seal/SKILL.md +8 -8
- package/pack/generated/omp/skills/rite-seal/reference/final-evidence.md +6 -5
- package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +13 -13
- package/pack/generated/omp/skills/rite-ship/SKILL.md +3 -0
- package/pack/generated/omp/skills/rite-ship/reference/close-out.md +16 -2
- package/pack/generated/omp/skills/rite-ship/reference/git-ship.md +14 -5
- package/pack/generated/omp/skills/rite-spec/SKILL.md +6 -0
- package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +6 -0
- package/pack/generated/omp/skills/rite-status/SKILL.md +4 -1
- package/pack/generated/omp/skills/rite-temper/SKILL.md +14 -11
- package/pack/generated/omp/skills/rite-temper/reference/anti-patterns.md +14 -13
- package/pack/generated/omp/skills/rite-temper/reference/review-dimensions.md +3 -4
- package/pack/generated/omp/skills/rite-upgrade/SKILL.md +11 -2
- package/pack/generated/omp/skills/rite-vet/SKILL.md +22 -15
- package/pack/generated/omp/skills/rite-vet/reference/anti-patterns.md +11 -9
- package/pack/generated/omp/skills/rite-vet/reference/depth.md +6 -7
- package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +39 -14
- package/package.json +1 -1
- package/scripts/codex-generate.sh +6 -0
|
@@ -57,7 +57,7 @@ Pull these via `Read` when the diff demands them:
|
|
|
57
57
|
|
|
58
58
|
0. Read `.claude/skills/devrites-lib/reference/standards/core.md` first (the always-on operating rules); pull the
|
|
59
59
|
on-demand rules above as the diff demands them.
|
|
60
|
-
1. Read `spec.md`, `tasks.md`, `state.md`, `decisions.md`,
|
|
60
|
+
1. Read `spec.md`, `tasks.md`, `state.md`, `decisions.md`,
|
|
61
61
|
`touched-files.md`, `.devrites/principles.md` (if present: the binding invariants to score
|
|
62
62
|
the diff against), and the `git diff`. For "what would this change break"
|
|
63
63
|
questions, apply `.claude/skills/devrites-lib/reference/standards/tooling.md`: use
|
|
@@ -66,7 +66,14 @@ Pull these via `Read` when the diff demands them:
|
|
|
66
66
|
current API, context7 if available can confirm the signature. Run
|
|
67
67
|
`devrites-engine check candidate <slug>` and require its digest to match the
|
|
68
68
|
single `evidence.md` binding and the `browser-evidence.md` binding when that
|
|
69
|
-
file exists.
|
|
69
|
+
file exists. Read those ledgers via the bounded advisory read
|
|
70
|
+
(`workspace-artifact-schema.md` § Read next by phase): binding line, `EVID-###`
|
|
71
|
+
index, then bodies for this candidate's AC/slice IDs only. A missing,
|
|
72
|
+
malformed, or open candidate returns to Polish/Prove.
|
|
73
|
+
Read `touched-files.md` `## Review trail` and `eng-review.md` `## Deferred findings`:
|
|
74
|
+
every deferred row is an input finding for the step-3 cohort (quoted in the owning
|
|
75
|
+
reviewer's brief without severity) and ends in `review.md` with its own label and
|
|
76
|
+
action tag — never silently dropped.
|
|
70
77
|
2. **Review tests first:** do they prove the acceptance criteria? Missing,
|
|
71
78
|
weak, or wrong tests are the first findings.
|
|
72
79
|
**Completion:** every acceptance criterion maps to a proven test or a labeled finding.
|
|
@@ -74,7 +81,8 @@ Pull these via `Read` when the diff demands them:
|
|
|
74
81
|
one axis and fail the other: code that follows every project standard but
|
|
75
82
|
implements the wrong thing (Code-review pass, Spec fail), or code that does exactly
|
|
76
83
|
what the spec asked but breaks project conventions (Spec pass, Code-review fail).
|
|
77
|
-
Separate contexts prevent one axis from masking the other
|
|
84
|
+
Separate contexts prevent one axis from masking the other. This is the initial
|
|
85
|
+
full pass; a correction uses step 7's bounded recheck:
|
|
78
86
|
- Freeze that closed digest and give the same digest to **two** read-only reviewers in
|
|
79
87
|
parallel, each with its own narrow brief and no
|
|
80
88
|
cross-pollination — and evaluate the frontend (step 4), security (step 5),
|
|
@@ -88,17 +96,10 @@ Pull these via `Read` when the diff demands them:
|
|
|
88
96
|
missing spec` and do not infer requirements from the diff."
|
|
89
97
|
- **Code-review axis** → `devrites-code-reviewer`: "Apply your full documented
|
|
90
98
|
discipline (tests-first, correctness, readability, architecture, maintainability,
|
|
91
|
-
standards) on the
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
where 20 would do) and the silent-failure bugs (a missing value coerced to 0/''/[],
|
|
96
|
-
a dropped Result/err return, off-by-one / boundary, logic that contradicts the
|
|
97
|
-
comment/docstring/name). Per hunk, check whether working code was deleted that the
|
|
98
|
-
task did not ask to remove. Score the diff against `.devrites/principles.md`: a change
|
|
99
|
-
that breaks a declared invariant with no recorded, human-approved exception is a Critical.
|
|
100
|
-
Distinguish hard documented-standard violations from baseline smells; smells are judgment
|
|
101
|
-
calls unless a DevRites or project standard makes them binding."
|
|
99
|
+
standards) on the feature workspace + diff. Cite file:line; skip tooling-enforced
|
|
100
|
+
checks. Apply canonical anti-slop and silent-failure lenses; inspect each hunk
|
|
101
|
+
for unrequested deletion. Unexcepted `.devrites/principles.md` violations are
|
|
102
|
+
Critical. Distinguish binding standards from judgment-only baseline smells."
|
|
102
103
|
- **Do NOT merge or re-rank** their findings. Present them under separate
|
|
103
104
|
`## Spec` and `## Code review` sub-sections in `review.md`. Surface contradictions
|
|
104
105
|
between the axes explicitly (e.g. "Spec axis says complete, Code-review axis says
|
|
@@ -131,9 +132,15 @@ Pull these via `Read` when the diff demands them:
|
|
|
131
132
|
7. Reconcile and accept only in-scope fixes. Consolidate them into one bounded
|
|
132
133
|
wright correction; never edit source in the reviewing context. Any correction
|
|
133
134
|
updates the candidate manifest, returns through affected Prove, and then starts
|
|
134
|
-
a fresh Review on the new digest.
|
|
135
|
+
a fresh Review binding on the new digest. Dispatch affected exact reviewers on
|
|
136
|
+
all their open findings and the dependency/regression closure under
|
|
137
|
+
[evidence validity](../devrites-lib/reference/candidate-integrity.md#evidence-validity).
|
|
138
|
+
Cite unchanged sub-scope coverage only with its original identity and explicit
|
|
139
|
+
justification; never relabel old accounts. Changed contracts or uncertain impact
|
|
140
|
+
require the full applicable pass.
|
|
135
141
|
8. The root updates `review.md` and `state.md`, writing exactly one candidate
|
|
136
|
-
binding in `review.md` for the digest
|
|
142
|
+
binding in `review.md` for the current digest, distinguishing fresh accounts from
|
|
143
|
+
cited unchanged sub-scope evidence and reconciling complete coverage.
|
|
137
144
|
**Completion:** the records name the reviewed candidate identity and every accepted
|
|
138
145
|
correction has affected proof plus a fresh Review.
|
|
139
146
|
|
|
@@ -7,8 +7,8 @@ user-invocable: true
|
|
|
7
7
|
|
|
8
8
|
# /rite-seal: GO / NO-GO
|
|
9
9
|
|
|
10
|
-
Verify
|
|
11
|
-
|
|
10
|
+
Verify final candidate in `seal.md`; `/rite-ship` owns authorized irreversible
|
|
11
|
+
actions and close-out.
|
|
12
12
|
|
|
13
13
|
## Authority
|
|
14
14
|
|
|
@@ -36,6 +36,7 @@ The host runs/reconciles named read-only reviewers; engine checks invariants.
|
|
|
36
36
|
| Any acceptance criterion, resolved prohibition, or declared key link lacks proof | **NO-GO** |
|
|
37
37
|
| Evidence is stale, or native diff review plus the exact test analyst finds weakened tests | **NO-GO: Critical** |
|
|
38
38
|
| Any exact required reviewer account is missing or silent | **NO-GO** |
|
|
39
|
+
| Any deferred finding (`touched-files.md` `## Review trail`, `eng-review.md` `## Deferred findings`) lacks a `review.md` verdict | **NO-GO** |
|
|
39
40
|
| Any `gate: validating` question remains open | **NO-GO** |
|
|
40
41
|
| Material UI acceptance lacks or fails required browser proof | **NO-GO** |
|
|
41
42
|
| Unresolved drift, unsafe migration/removal, or unapproved principle violation remains | **NO-GO** |
|
|
@@ -52,18 +53,17 @@ Follow [`reference/phase-contract.md`](reference/phase-contract.md)
|
|
|
52
53
|
|
|
53
54
|
1. read workspace and final diff;
|
|
54
55
|
2. recheck the canonical candidate/bindings and approved repository/CI proof;
|
|
55
|
-
3.
|
|
56
|
-
|
|
57
|
-
read-only verdicts on one frozen candidate;
|
|
56
|
+
3. admit valid Spec/Code accounts; dispatch remaining required exact roles under
|
|
57
|
+
`../devrites-lib/reference/parallel-dispatch.md` on the same frozen candidate;
|
|
58
58
|
4. reconcile their read-only verdicts against source and immutable evidence;
|
|
59
59
|
5. draft GO/NO-GO `seal.md` with acceptance, tests, decisions, and seven accounts;
|
|
60
60
|
6. write exactly one candidate binding, then run
|
|
61
61
|
`devrites-engine check seal <slug>` for structure and identity, never semantics.
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
Corrections return through affected Prove/Review before restarting Seal under
|
|
64
|
+
[evidence validity](../devrites-lib/reference/candidate-integrity.md#evidence-validity).
|
|
65
65
|
|
|
66
|
-
Only repository scripts/CI authorize commands; never guess
|
|
66
|
+
Only repository scripts/CI authorize commands; never guess.
|
|
67
67
|
|
|
68
68
|
## On GO
|
|
69
69
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Final evidence check
|
|
2
2
|
|
|
3
|
-
Map
|
|
3
|
+
Map spec promises to valid observed proof.
|
|
4
4
|
|
|
5
5
|
## Acceptance
|
|
6
6
|
|
|
@@ -11,7 +11,7 @@ inspection alone, and generic "tests pass" do not count.
|
|
|
11
11
|
|
|
12
12
|
Apply [`testing.md`'s positive, discriminating proof](../../devrites-lib/reference/standards/testing.md#positive-discriminating-proof),
|
|
13
13
|
including invalid-result exclusions and static/textual criterion boundaries.
|
|
14
|
-
|
|
14
|
+
Unproven behavior: NO-GO.
|
|
15
15
|
|
|
16
16
|
## Cross-check
|
|
17
17
|
|
|
@@ -25,11 +25,12 @@ recovery evidence or an evidence-backed dismissal; a generic green suite cannot
|
|
|
25
25
|
|
|
26
26
|
Run `devrites-engine check candidate <slug>` and require its digest to match the
|
|
27
27
|
single evidence/review bindings and browser binding when present. Diff tests,
|
|
28
|
-
dispatch exact `devrites-test-analyst
|
|
29
|
-
|
|
28
|
+
dispatch exact `devrites-test-analyst`; apply
|
|
29
|
+
[evidence validity](../../devrites-lib/reference/candidate-integrity.md#evidence-validity)
|
|
30
|
+
to approved proof, then require unchanged digest/sources. Deleted/skipped/focused/
|
|
30
31
|
weakened/tautological tests are Critical.
|
|
31
32
|
|
|
32
|
-
After
|
|
33
|
+
After recording verdicts in `seal.md`, run:
|
|
33
34
|
|
|
34
35
|
```bash
|
|
35
36
|
devrites-engine check seal "<slug>"
|
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
# rite-seal phase contract
|
|
2
2
|
|
|
3
|
-
Seal's candidate action follows
|
|
4
|
-
[`candidate-integrity.md`](../../devrites-lib/reference/candidate-integrity.md).
|
|
5
|
-
|
|
6
3
|
1. **Read.** Resolve the explicit slug or `.devrites/ACTIVE`, require its
|
|
7
4
|
`state.md`, then read required workspace artifacts, conditional
|
|
8
5
|
browser/design/devex evidence, and final diff.
|
|
9
6
|
2. **Recheck identity and real proof.** Run
|
|
10
7
|
`devrites-engine check candidate <slug>` and require its exact digest to match
|
|
11
8
|
the single evidence/review bindings and the browser binding when present.
|
|
12
|
-
Apply `spec-grammar.md`'s Native grammar re-read checklist
|
|
13
|
-
|
|
9
|
+
Apply `spec-grammar.md`'s Native grammar re-read checklist and
|
|
10
|
+
[evidence validity](../../devrites-lib/reference/candidate-integrity.md#evidence-validity).
|
|
11
|
+
Run required `test-plan.md` commands unless valid observed proof already satisfies
|
|
12
|
+
them under that contract. Rerun the
|
|
14
13
|
candidate check afterward and require the identical digest and no source
|
|
15
14
|
mutation. Capture command, cwd, exit, decisive output, and identity.
|
|
16
15
|
Missing/red/mismatched blocks; unavailable is `cannot_verify`, never pass.
|
|
17
16
|
3. **Judge acceptance.** Dispatch exact `devrites-proof-runner` on immutable
|
|
18
|
-
proof
|
|
17
|
+
proof; admit valid same-candidate `devrites-spec-reviewer` evidence from Review
|
|
18
|
+
or dispatch that exact reviewer. Reconcile every
|
|
19
19
|
AC/REQ/scenario/key link by ID and meaning; missing/stale/self-attested/mismatched is NO-GO.
|
|
20
20
|
4. **Judge tests.** Diff baseline/candidate tests for deletion, skip/focus,
|
|
21
21
|
tautology, or weakening; dispatch exact `devrites-test-analyst`. Missing or
|
|
22
22
|
adverse account, or green tests not asserting mapped behavior, is Critical.
|
|
23
23
|
5. **Resolve gates.** Open blocking/escalating/validating questions and drift
|
|
24
24
|
block. Each stood decision needs a reconciled exact `devrites-doubt-reviewer` verdict.
|
|
25
|
+
Every deferred finding (`touched-files.md` `## Review trail`, `eng-review.md`
|
|
26
|
+
`## Deferred findings`) needs its `review.md` verdict; a row without one blocks.
|
|
25
27
|
6. **Risk and native review.** Apply [`risk-and-rollback.md`](risk-and-rollback.md)
|
|
26
28
|
and the [`review roster`](../../devrites-lib/reference/parallel-dispatch.md) on
|
|
27
29
|
the candidate. Admit each result through
|
|
@@ -31,17 +33,15 @@ Seal's candidate action follows
|
|
|
31
33
|
7. **Route corrections.** Reconcile cited findings/disagreements, but do not
|
|
32
34
|
edit the candidate or manifest in Seal. Route an accepted correction through
|
|
33
35
|
one bounded wright, update the manifest, run affected Prove, complete a fresh
|
|
34
|
-
Review, then restart Seal on the new digest.
|
|
35
|
-
8. **Draft
|
|
36
|
+
Review under evidence validity, then restart Seal on the new digest.
|
|
37
|
+
8. **Draft/check.** Write `seal.md` from
|
|
36
38
|
[`seal-template.md`](seal-template.md) with the GO/NO-GO rationale, acceptance map,
|
|
37
39
|
test-analysis account, stood-decision verdicts, all seven reviewer accounts,
|
|
38
40
|
and exactly one `Candidate SHA-256: <64 lowercase hex>` line. Then run:
|
|
39
41
|
```bash
|
|
40
42
|
devrites-engine check seal "<slug>"
|
|
41
43
|
```
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
smallest fix. Never commit, push, tag, publish, deploy, or close here.
|
|
44
|
+
Structure/bindings only: blocks exit `3`, invalid state `2`. GO sets
|
|
45
|
+
`Next step: /rite-ship`; NO-GO names the fix. No commit/push/tag/publish/deploy/close.
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
> load [`anti-patterns.md`](anti-patterns.md).
|
|
47
|
+
Apply [`anti-patterns.md`](anti-patterns.md); never average away disagreement.
|
|
@@ -80,6 +80,9 @@ if absent, route to `/rite-spec <feature>`. Ship only with current **GO** in `se
|
|
|
80
80
|
to move `.devrites/work/<slug>` → `.devrites/archive/<slug>` and clear `ACTIVE`
|
|
81
81
|
only if it names this slug; preserve another active feature's cursor.
|
|
82
82
|
Preserve every `.md`; stable hierarchical instructions need no active-workspace sync.
|
|
83
|
+
Report the recorded `Next step` verbatim — the exact `/rite-spec <parent>-<n> "<objective>"`
|
|
84
|
+
when a continuation sequence remains — so the next increment starts from one line,
|
|
85
|
+
never from chat memory.
|
|
83
86
|
|
|
84
87
|
> **Mid-flight discipline.** No seal GO, skipped type-GO, out-of-manifest stage, or
|
|
85
88
|
> deleted workspace. Stop and use [`anti-patterns`](reference/anti-patterns.md).
|
|
@@ -5,8 +5,13 @@ deleted. DevRites keeps the audit trail; it just moves out of the live path.
|
|
|
5
5
|
|
|
6
6
|
## What close-out does
|
|
7
7
|
|
|
8
|
-
1. **Mark done.** Set `state.md` → `Phase: done`, `Status: done`, and a `Next step
|
|
9
|
-
|
|
8
|
+
1. **Mark done.** Set `state.md` → `Phase: done`, `Status: done`, and a `Next step`.
|
|
9
|
+
When this workspace's `decisions.md` records an unfinished
|
|
10
|
+
[continuation sequence](../../rite-plan/reference/slicing.md#continuation-workspaces),
|
|
11
|
+
that step is the **exact** next command — `/rite-spec <parent>-<n> "<objective>"` —
|
|
12
|
+
and the ship reply prints the same line. Otherwise it stays
|
|
13
|
+
`/rite-spec <next feature>`. Nothing spawns the continuation automatically:
|
|
14
|
+
the recorded command is the handoff, so the human starts each increment knowingly.
|
|
10
15
|
2. **Archive.** Run the deterministic script:
|
|
11
16
|
```bash
|
|
12
17
|
devrites-engine state close <slug>
|
|
@@ -25,6 +30,15 @@ can also fail. Inspect the actual live path, archive and cursor before reporting
|
|
|
25
30
|
retrying. Record the command/error and observed locations; never claim restored state
|
|
26
31
|
from an attempted rollback or repeat a move against an unverified destination.
|
|
27
32
|
|
|
33
|
+
## Sequence predecessors
|
|
34
|
+
|
|
35
|
+
A deferred-ship sequence leaves earlier milestones sealed and unarchived in
|
|
36
|
+
`.devrites/work/`. The release ship's disclosed plan may close them
|
|
37
|
+
(`devrites-engine state close '<slug>'` per predecessor) after the release commit
|
|
38
|
+
lands; each close is safe because `ACTIVE` names the release workspace. Closing is
|
|
39
|
+
bookkeeping only: the release commit already carries their bytes, and their audit
|
|
40
|
+
records move intact.
|
|
41
|
+
|
|
28
42
|
## Why archive, not delete
|
|
29
43
|
|
|
30
44
|
- The `.md` files (`spec`, `decisions`, `assumptions`, `evidence`, `seal`, `ship`, …)
|
|
@@ -12,11 +12,13 @@ Acceptance criteria proven: <n / total>
|
|
|
12
12
|
Branch: <target branch>
|
|
13
13
|
Candidate paths: <exact project-relative paths>
|
|
14
14
|
Checkpoint collapse: <exact `git reset --soft '<merge-base>'` command | skip>
|
|
15
|
+
Collapse slugs: <active slug plus every recorded sequence slug in the range | n/a>
|
|
15
16
|
Stage plan: <exact argv-safe `git add -- '<path>'` command for every manifest row>
|
|
16
17
|
Commit: <exact git commit command>
|
|
17
18
|
Push: <exact git push command | skip>
|
|
18
19
|
Tag: <exact git tag command | skip>
|
|
19
20
|
PR: <exact PR command, target, title, and body source | skip>
|
|
21
|
+
Close: <exact `devrites-engine state close '<slug>'` for each sealed sequence predecessor | skip>
|
|
20
22
|
|
|
21
23
|
Type "GO" exactly to approve this attempt once. Anything else cancels.
|
|
22
24
|
```
|
|
@@ -45,9 +47,12 @@ Pre-GO is read-only. Do not run the disclosed collapse or staging commands.
|
|
|
45
47
|
1. **Analyze checkpoint history without mutating it.** Read the upstream, merge
|
|
46
48
|
base, commit OIDs, and full subjects. If no checkpoint commit exists, disclose
|
|
47
49
|
`skip`. A collapse is eligible only when every commit in its range has the exact
|
|
48
|
-
`WIP(<
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
`WIP(<slug>):` prefix for the validated active slug — or, for a release ship of a
|
|
51
|
+
deferred-ship sequence, for a slug recorded in the parent's `decisions.md`
|
|
52
|
+
sequence whose workspace is sealed in this run
|
|
53
|
+
([afk-hitl.md § Sequence continuation](../../devrites-lib/reference/standards/afk-hitl.md#sequence-continuation-continue_sequence-max_workspaces));
|
|
54
|
+
disclose the exact slug set. A different slug, missing colon, broad `WIP(` match,
|
|
55
|
+
ordinary commit, or mixed history blocks; never reinterpret the range.
|
|
51
56
|
2. **Verify the candidate.** Rerun `devrites-engine check candidate <slug>` and
|
|
52
57
|
`devrites-engine check seal <slug>`, compare every binding, require the
|
|
53
58
|
candidate worktree paths to be unchanged, and inspect the existing staged
|
|
@@ -62,8 +67,8 @@ Pre-GO is read-only. Do not run the disclosed collapse or staging commands.
|
|
|
62
67
|
|
|
63
68
|
1. **Optional checkpoint collapse.** If and only if the prompt disclosed it,
|
|
64
69
|
recheck that `HEAD`, merge base, and every subject are unchanged and that each
|
|
65
|
-
subject starts exactly `WIP(<slug>):` for the
|
|
66
|
-
disclosed `git reset --soft "$mb"`. Otherwise skip. Any different or mixed
|
|
70
|
+
subject starts exactly `WIP(<slug>):` for the disclosed slug set, then run the
|
|
71
|
+
exact disclosed `git reset --soft "$mb"`. Otherwise skip. Any different or mixed
|
|
67
72
|
subject blocks without mutation.
|
|
68
73
|
2. **Exact staging.** Run `git add -- "$path"` once for each disclosed manifest
|
|
69
74
|
row, passing each validated project-relative path as its own quoted argv
|
|
@@ -95,6 +100,10 @@ Pre-GO is read-only. Do not run the disclosed collapse or staging commands.
|
|
|
95
100
|
Any mismatch stops; do not reinterpret it.
|
|
96
101
|
8. **Push** to the project-conventional target branch.
|
|
97
102
|
9. **Tag / PR** only when project convention requires it; otherwise skip.
|
|
103
|
+
10. **Close sealed predecessors** only when the prompt disclosed them: run the
|
|
104
|
+
exact `devrites-engine state close '<slug>'` once per predecessor. Each is safe
|
|
105
|
+
because `ACTIVE` names the release workspace; a nonzero exit stops the rest and
|
|
106
|
+
is reported, never retried against an unverified destination.
|
|
98
107
|
|
|
99
108
|
Record SHA(s), branch, and tag/PR URL in `ship.md`.
|
|
100
109
|
|
|
@@ -50,6 +50,12 @@ load a routed standard to discover required behavior, not to prescribe implement
|
|
|
50
50
|
problem in one sentence. **Completion:** it includes both.
|
|
51
51
|
1a. **Dedupe.** Search local issues/PRDs, work, and archive. On a close match ask
|
|
52
52
|
extend/adopt/new, then record the choice; otherwise continue silently.
|
|
53
|
+
A recorded [feature-sequence continuation](../rite-plan/reference/slicing.md#continuation-workspaces)
|
|
54
|
+
is a **new** workspace (`<parent>-2`): carry the parent slug and position into
|
|
55
|
+
`brief.md`, read the parent artifacts as design input, and do not route to
|
|
56
|
+
`/rite-plan revise` on the parent. When the ask is open and archived work records
|
|
57
|
+
an unfinished sequence, propose that next continuation (slug + objective) as the
|
|
58
|
+
recommended option instead of a fresh slug.
|
|
53
59
|
2. **Investigate:** follow [investigation](reference/investigation.md) through its
|
|
54
60
|
complete findings and done-when gate. Discover the project's **test /
|
|
55
61
|
build/typecheck/lint** commands, frontend/backend systems, and declared project guidance
|
|
@@ -172,6 +172,12 @@ Ordinary workspace creation preserves the field without initializing,
|
|
|
172
172
|
increasing, renaming, or deleting it. Released bullet workspaces spell it `AFK
|
|
173
173
|
slices remaining`; preserve that presentation rather than migrating it.
|
|
174
174
|
|
|
175
|
+
When the brief records a [sequence continuation](../../rite-plan/reference/slicing.md#continuation-workspaces),
|
|
176
|
+
seed the `sequence_parent`, `sequence_position`, `sequence_workspaces_remaining`,
|
|
177
|
+
and — for the release entry — `sequence_role` rows at creation per that contract.
|
|
178
|
+
Without them `state merge-manifest` cannot walk the chain and the release-union
|
|
179
|
+
gate never engages.
|
|
180
|
+
|
|
175
181
|
## questions.md entry format
|
|
176
182
|
|
|
177
183
|
```markdown
|
|
@@ -16,7 +16,10 @@ Use the supplied slug or `.devrites/ACTIVE`; require its authoritative
|
|
|
16
16
|
`state.md` and read the cursor directly. Read question, evidence, and risk
|
|
17
17
|
artifacts only as needed. Never infer lifecycle state from `README.md` or chat.
|
|
18
18
|
|
|
19
|
-
If no workspace exists
|
|
19
|
+
If no workspace exists: when archived workspaces record an unfinished
|
|
20
|
+
[continuation sequence](../rite-plan/reference/slicing.md#continuation-workspaces),
|
|
21
|
+
list each next command (`/rite-spec <parent>-<n> "<objective>"`); otherwise
|
|
22
|
+
recommend `/rite-spec <feature>`. Then stop.
|
|
20
23
|
|
|
21
24
|
If `state.md` is unreadable/malformed: report a gap with the defect and stop — never infer the phase from other files; `/rite-doctor`/`/rite-upgrade` own repair.
|
|
22
25
|
|
|
@@ -7,8 +7,7 @@ user-invocable: true
|
|
|
7
7
|
|
|
8
8
|
# /rite-temper: review scope and risk before planning
|
|
9
9
|
|
|
10
|
-
Review
|
|
11
|
-
solution surface. Fold accepted decisions into the canonical contract before
|
|
10
|
+
Review the readied spec for ambition, scope, pre-mortem risk and unnecessary surface. Fold accepted decisions into the canonical contract before
|
|
12
11
|
`/rite-define`. This step is optional for small work and skips low-stakes specs, but
|
|
13
12
|
`/rite-autocomplete` always invokes it. **Read the active workspace first**; if there
|
|
14
13
|
is no readied `spec.md`, tell the user to run `/rite-spec`. Review depth follows
|
|
@@ -58,6 +57,10 @@ the spec applicability map triggers that risk family.
|
|
|
58
57
|
First, the **one-sentence-intent test**: state the whole change's intent in a single sentence.
|
|
59
58
|
If you can't without an "and" that joins two unrelated outcomes, it is **two features**: the
|
|
60
59
|
scope-creep signal; recommend splitting or narrowing the spec before continuing.
|
|
60
|
+
Apply the same test to size: a spec whose honest decomposition would exceed the
|
|
61
|
+
[feature ceiling](../rite-plan/reference/slicing.md#feature-ceiling-split-an-epic-never-override-the-budget)
|
|
62
|
+
(roughly ten slices or more than ~20 acceptance criteria) is a feature sequence;
|
|
63
|
+
recommend the thinnest shippable subset now and name the continuations as Non-goals.
|
|
61
64
|
Then consider the 10-star outcome for the underlying problem and choose **exactly one**
|
|
62
65
|
scope mode (`expand` opt-in · `selective` · `hold-rigor` · `reduce-to-MVP`) with its
|
|
63
66
|
rationale and the condition that would change the choice. `$ARGUMENTS` `--mode` is a
|
|
@@ -106,19 +109,19 @@ the spec applicability map triggers that risk family.
|
|
|
106
109
|
and closed gates. Partial/Missing, an unowned material assumption, or an open
|
|
107
110
|
blocking/escalating question routes `/rite-clarify`/HITL. Only after the
|
|
108
111
|
matrix is re-closed may the phase advance.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
+
Set `Phase: temper`; `Next step: /rite-define` only after verification.
|
|
113
|
+
Human-owned expansion/unapproved irreversible choices set `Awaiting human` +
|
|
114
|
+
`Status: awaiting_human`; objective below-bar findings continue correction.
|
|
112
115
|
7. **Adversarial verification loop:** ask the exact
|
|
113
116
|
[`devrites-strategy-reviewer`](../../agents/devrites-strategy-reviewer.md)
|
|
114
117
|
through the native fresh-context contract in
|
|
115
118
|
[`agents.md`](../devrites-lib/reference/standards/agents.md), with **only** the hardened
|
|
116
|
-
spec + rubric
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
spec + rubric, no authoring reasoning. Fold technical findings into one correction;
|
|
120
|
+
exact strategy reviewer rechecks open findings and affected coverage/regressions under
|
|
121
|
+
[the canonical retry contract](../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve):
|
|
122
|
+
Product/scope choices and unapproved irreversible risk remain human gates;
|
|
123
|
+
technical exhaustion preserves blocker/reproduction.
|
|
124
|
+
If the named agent is unavailable, stop for HITL. After an accepted edit to a
|
|
122
125
|
coverage-bound input, repeat step 6's native coverage revalidation before handoff.
|
|
123
126
|
8. **STOP.** Report the mode, the scope deltas, and the floor verdict; recommend `/rite-define`.
|
|
124
127
|
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
# /rite-temper: anti-patterns
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
[`../../devrites-lib/reference/standards/anti-patterns.md`](../../devrites-lib/reference/standards/anti-patterns.md): read it when the
|
|
5
|
-
reluctance is broader than this phase. Below are the temper-specific ones.
|
|
3
|
+
For cross-phase issues, read [universal anti-patterns](../../devrites-lib/reference/standards/anti-patterns.md).
|
|
6
4
|
|
|
7
5
|
## Phase rationalizations
|
|
8
6
|
|
|
9
7
|
| Excuse | Rebuttal |
|
|
10
8
|
|---|---|
|
|
11
|
-
| "I'll write all the findings into `strategy.md` and let the user read it." |
|
|
9
|
+
| "I'll write all the findings into `strategy.md` and let the user read it." | Fold and recheck objective corrections preserving scope, behavior, and risk policy. Ask human-owned strategy/acceptance choices with recommendations and await answers. Recording alone resolves nothing; never silently expand or trim the spec. |
|
|
12
10
|
| "Bigger is better: let's add the extra capability while we're thinking big." | Ambition belongs on the **outcome**, not the **solution surface**. A speculative capability/abstraction is gold plating. Expand the problem + acceptance; never the machinery. |
|
|
13
11
|
| "The user obviously wants the ambitious version. I'll add it to the spec." | Expansion is **opt-in**, recorded, and confirmed (HITL) or paused (AFK). Adding acceptance the human didn't approve is silent scope growth: route it through the Spec Drift Guard or don't add it. |
|
|
14
12
|
| "It's over-scoped, I'll just trim those criteria." | Reducing scope is **still a spec change**. Cut acceptance only as a recorded Spec-Drift-Guard decision, and park the rest in Non-goals with a revisit note: never a silent trim. |
|
|
15
|
-
| "This dimension is weak but the others are strong: net it's fine." | The gate is the **floor**, not the average
|
|
16
|
-
| "I can see it's adequate. I'll note the band, evidence is obvious." | Cite
|
|
13
|
+
| "This dimension is weak but the others are strong: net it's fine." | The gate is the **floor**, not the average; strong clarity cannot offset broken risk. |
|
|
14
|
+
| "I can see it's adequate. I'll note the band, evidence is obvious." | Cite spec evidence **before** the band; never score first and rationalize later. |
|
|
17
15
|
| "It's a strategy doc, the implementation concerns don't apply yet." | Cross-cutting concerns (security/data/observability/modifiability) are where strategy breaks down. Address each or mark it explicitly N/A: silent omission is a gap. |
|
|
18
|
-
| "This greenfield design is elegant." |
|
|
16
|
+
| "This greenfield design is elegant." | Ground ambition in live seams/blast radius; a new dependency or second design system needs an explicit decision. |
|
|
19
17
|
|
|
20
18
|
## Red flags
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
- An `expand` decision auto-applied in AFK
|
|
24
|
-
|
|
19
|
+
- An accepted strategy change recorded in `strategy.md` but not reflected in its
|
|
20
|
+
owning spec acceptance/Non-goals. A clean review does not require gratuitous spec edits.
|
|
21
|
+
- An `expand` decision auto-applied in AFK, an unapproved risk-policy change, or an
|
|
22
|
+
irreversible operation without its required authorization.
|
|
25
23
|
- A pre-mortem with risks listed but no mitigation + owning slice: a risk without an owner is a
|
|
26
24
|
wish.
|
|
27
|
-
-
|
|
28
|
-
|
|
25
|
+
- Repeating an exhausted causal failure under the shared no-progress rule in
|
|
26
|
+
[`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md), or stopping a
|
|
27
|
+
distinct cause solely because the total review round exceeds three.
|
|
28
|
+
- The reviewer being handed the author's reasoning as independent evidence
|
|
29
|
+
(defeats the fresh-context point).
|
|
29
30
|
- The skill writing a `plan.md`, slicing, or touching code. That's `/rite-define` / `/rite-build`.
|
|
@@ -61,7 +61,6 @@ justifies it. Review a borderline dimension twice if needed and use the **lower*
|
|
|
61
61
|
irreversibility & #9 convention-fit both touch codebase realism; #1 ambition & #2 scope both
|
|
62
62
|
touch over/under-reach). Don't fail two dimensions for the *same* root cause: cite the
|
|
63
63
|
evidence once and assign one band so one problem does not create two floor failures.
|
|
64
|
-
- Below-bar
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
always pause regardless of band.
|
|
64
|
+
- Below-bar blocks readiness; objective fixes return to the caller under
|
|
65
|
+
[the canonical retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve).
|
|
66
|
+
Human-owned scope/risk choices keep their gate; exhaustion blocks technically.
|
|
@@ -29,7 +29,7 @@ references, and only current phase contracts needed for the observed gap.
|
|
|
29
29
|
a current rule, exact workspace evidence, affected gate, owning rite, exact paths, and
|
|
30
30
|
the smallest behavior-neutral delta.
|
|
31
31
|
- Existing rites own semantic changes. Upgrade may sequence `/rite-clarify`,
|
|
32
|
-
`/rite-plan repair`, `/rite-converge`, `/rite-vet`, `/rite-prove`, `/rite-polish`,
|
|
32
|
+
`/rite-plan repair|revise|course-correct`, `/rite-converge`, `/rite-vet`, `/rite-prove`, `/rite-polish`,
|
|
33
33
|
`/rite-review`, and `/rite-seal`; it never reimplements them or starts Build or Ship.
|
|
34
34
|
`/rite-doctor` owns install/config diagnosis.
|
|
35
35
|
- An admitted candidate route may name only the exact current gate artifacts its owner
|
|
@@ -50,7 +50,9 @@ references, and only current phase contracts needed for the observed gap.
|
|
|
50
50
|
Archive-only is `current`; otherwise require contained regular `state.md` and read its
|
|
51
51
|
cursor. A damaged/mismatched install stops at Doctor; missing live work routes
|
|
52
52
|
`/rite-spec`; `done` is `current`. An unknown cursor is `unsupported`.
|
|
53
|
-
1. **Freeze preservation evidence.** Record `git status --short`, cursor form/fields,
|
|
53
|
+
1. **Freeze preservation evidence.** Record `git status --short`, cursor form/fields,
|
|
54
|
+
`devrites-engine orient <slug>` (cursor, `task_graph`, `artifact_budgets`,
|
|
55
|
+
`bulk_files`), and
|
|
54
56
|
hashes of completed-slice fields, candidate gate artifacts, existing answers/decisions,
|
|
55
57
|
and protected history. Inventory every path that could change; absence is evidence,
|
|
56
58
|
never permission to synthesize history. For a post-Build workspace, also retain the
|
|
@@ -69,6 +71,13 @@ references, and only current phase contracts needed for the observed gap.
|
|
|
69
71
|
one at a time:
|
|
70
72
|
- decision coverage or a material assumption → `/rite-clarify`;
|
|
71
73
|
- stale/inconsistent planning or traceability with settled intent → `/rite-plan repair`;
|
|
74
|
+
- over-budget `state.md` or planning artifacts carrying checkpoint narrative, or
|
|
75
|
+
packets/traces in the workspace root → `/rite-plan revise` (verbatim relocation to
|
|
76
|
+
`history/` / `packets/`, current view only; IDs, meaning, answers and decisions
|
|
77
|
+
unchanged; nothing deleted);
|
|
78
|
+
- unbuilt slices beyond the [feature ceiling](../rite-plan/reference/slicing.md#feature-ceiling-split-an-epic-never-override-the-budget)
|
|
79
|
+
→ `/rite-plan course-correct` (`MVP cut` plus the named continuation sequence;
|
|
80
|
+
built slices and their evidence stay);
|
|
72
81
|
- live code and recorded intent disagreement → `/rite-converge`;
|
|
73
82
|
- any changed planning input or readiness defect → `/rite-vet`;
|
|
74
83
|
- a missing/malformed strict manifest, missing/malformed/mismatched evidence binding,
|
|
@@ -7,10 +7,9 @@ user-invocable: true
|
|
|
7
7
|
|
|
8
8
|
# /rite-vet: review the plan before build
|
|
9
9
|
|
|
10
|
-
Vet every plan
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
scope, Vet owns implementation; current `$ARGUMENTS` (`--full`) feeds the depth triggers in
|
|
10
|
+
Vet every plan's scope, architecture, quality, proof, performance, failures and writer
|
|
11
|
+
safety. Fold cited technical findings; design Build tests. Temper owns product;
|
|
12
|
+
Vet owns implementation; current `$ARGUMENTS` (`--full`) feeds the depth triggers in
|
|
14
13
|
`reference/depth.md`; profiles never remove the exact plan-reviewer gate
|
|
15
14
|
([orchestration-profiles.md](../devrites-lib/reference/orchestration-profiles.md)).
|
|
16
15
|
|
|
@@ -36,8 +35,8 @@ plan declares a root-authored executable workflow file, read
|
|
|
36
35
|
|
|
37
36
|
- Review implementation, not ambition. Challenge creep, complexity, proof, and
|
|
38
37
|
risk without changing accepted product scope.
|
|
39
|
-
- Root
|
|
40
|
-
|
|
38
|
+
- Root owns decisions/writes/readiness; reviewers judge without route policy.
|
|
39
|
+
Cite findings/confidence; suppress
|
|
41
40
|
unverified or confidence ≤4 findings under `review-axes.md`.
|
|
42
41
|
Lens arrows in `eng-lenses.md` are heuristics; band findings only under the
|
|
43
42
|
four `review-axes.md` names.
|
|
@@ -47,8 +46,6 @@ plan declares a root-authored executable workflow file, read
|
|
|
47
46
|
`NOTICE.md` generator regions, CI/hook config named in repo docs) require explicit
|
|
48
47
|
human approval before plan slices may edit them. A slice touching a protected path
|
|
49
48
|
without approval → Vet **NEEDS CLARIFICATION**.
|
|
50
|
-
**Failing case:** plan edits another feature's `state.md` without recorded approval →
|
|
51
|
-
fail closed.
|
|
52
49
|
- Use the lowest axis band; never average or round thin to ready. Search before
|
|
53
50
|
asking and resolve reversible technical choices. Ask only human-owned choices.
|
|
54
51
|
- Preserve a valid technical return cursor. Agent-owned `NEEDS REPLAN` returns
|
|
@@ -91,7 +88,11 @@ plan declares a root-authored executable workflow file, read
|
|
|
91
88
|
changed clause — enumerate dependents via the dep graph and traceability
|
|
92
89
|
refs, not only patched sites. Otherwise record one no-progress outcome. A
|
|
93
90
|
different Critical/Important invariant needs exact evidence and a new
|
|
94
|
-
fingerprint; a Suggestion, Nit, or FYI cannot keep recovery open.
|
|
91
|
+
fingerprint; a Suggestion, Nit, or FYI cannot keep recovery open. Reviewer
|
|
92
|
+
`Late:` rows on unchanged clauses follow the canonical
|
|
93
|
+
[late-finding rule](../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve):
|
|
94
|
+
Critical with a failure path → new fingerprint; otherwise `eng-review.md`
|
|
95
|
+
`## Deferred findings` (mechanism rows become one proof row at step 6). A packet
|
|
95
96
|
marked `convergence_pressure` accepts an explicit, bounded declared
|
|
96
97
|
residual/limitation folded into the contract text as closure for a finding
|
|
97
98
|
marked as a refinement of an already-pinned clause; the recheck may re-raise
|
|
@@ -101,7 +102,10 @@ plan declares a root-authored executable workflow file, read
|
|
|
101
102
|
materialization gate — anchors applied, mirrors consistent, invariants
|
|
102
103
|
pass — without a dispatched reviewer; sub-Important findings already
|
|
103
104
|
cannot keep recovery open. Reconcile
|
|
104
|
-
shared artifact/readiness gates
|
|
105
|
+
shared artifact/readiness gates, then enter step 8 or the next repair.
|
|
106
|
+
Do not fall through to steps 2–7. Retain evidenced unchanged coverage; changed
|
|
107
|
+
global contract/uncertain impact requires full applicable review. Reopen historical
|
|
108
|
+
findings only for affected invariants/dependencies.
|
|
105
109
|
2. **Challenge scope.** Apply review-axes §0 and search accepted decisions.
|
|
106
110
|
Harden to the smallest contract-complete plan, using marked topology action.
|
|
107
111
|
Then verify bidirectional ID-and-meaning traceability across spec/plan/
|
|
@@ -133,7 +137,11 @@ plan declares a root-authored executable workflow file, read
|
|
|
133
137
|
Technical gaps are `NEEDS REPLAN` and Plan repair — each finding marks
|
|
134
138
|
itself `new_failure_mode` or names the already-pinned clause/fingerprint
|
|
135
139
|
it refines, making alias-detection and `convergence_pressure` eligibility
|
|
136
|
-
mechanical
|
|
140
|
+
mechanical — and carries `kind: contract | mechanism`
|
|
141
|
+
(`review-axes.md` § Finding kind). Only `contract` findings open a Plan
|
|
142
|
+
repair; a `mechanism` finding is closed by one `test-plan.md` proof row
|
|
143
|
+
at step 6 and leaves readiness intact when nothing else is open.
|
|
144
|
+
Product/risk gaps are
|
|
137
145
|
`NEEDS CLARIFICATION` and Clarify. Neither becomes a Build qid.
|
|
138
146
|
5. **Review axes.** Apply `review-axes.md` through `eng-lenses.md`. Fold verified
|
|
139
147
|
behavior-preserving technical findings; walk only human-owned decisions.
|
|
@@ -155,12 +163,11 @@ plan declares a root-authored executable workflow file, read
|
|
|
155
163
|
that new fingerprint as progress. Then close matrix and rerun ID/meaning audit.
|
|
156
164
|
8. **Build readback and readiness.** Add a cited five-line readback to
|
|
157
165
|
`eng-review.md` (artifacts.md §7 rows 1–5): outcome/ACs; IN/OUT/must-NOT; UI direction and architecture/
|
|
158
|
-
critical flow; slice order/first slice; decisive proof/action-time gates.
|
|
159
|
-
fresh implementer must need no product, architecture, or proof invention.
|
|
166
|
+
critical flow; slice order/first slice; decisive proof/action-time gates. No implementer should need to invent product, architecture, or proof.
|
|
160
167
|
Contradiction, ownerlessness, or material ambiguity blocks via Clarify or Plan.
|
|
161
168
|
|
|
162
169
|
Write exactly one `Implementation readiness: READY`, `NEEDS CLARIFICATION`,
|
|
163
|
-
or `NEEDS REPLAN`. Root
|
|
170
|
+
or `NEEDS REPLAN`. Root sets READY after every account, checklist,
|
|
164
171
|
preflight, and sweep is green. Write phase/next step and emit one
|
|
165
172
|
`Readiness inputs SHA-256` with
|
|
166
173
|
`devrites-engine check readiness --emit-binding <slug>`; normal readiness check
|
|
@@ -177,7 +184,7 @@ plan declares a root-authored executable workflow file, read
|
|
|
177
184
|
> Do not replace interactive review with artifacts, change acceptance through
|
|
178
185
|
> hardening, score without source evidence, or ignore unexplained complexity.
|
|
179
186
|
|
|
180
|
-
## Phase exit
|
|
187
|
+
## Phase exit
|
|
181
188
|
|
|
182
189
|
**Complete when:** `eng-review.md` records exactly one readiness verdict, readiness
|
|
183
190
|
binding SHA-256 passes, and every required reviewer account is admitted.
|