devrites 5.3.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 +12 -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 -17
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/.claude/skills/rite-build/reference/parallel-batch.md +101 -39
- 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 -17
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +101 -39
- 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 -17
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +101 -39
- 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 -17
- package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +101 -39
- 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
|
@@ -1,67 +1,87 @@
|
|
|
1
1
|
# rite-build phase contract
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Apply [`one-slice-cycle.md`](one-slice-cycle.md) and
|
|
4
4
|
[`candidate-integrity.md`](../../devrites-lib/reference/candidate-integrity.md).
|
|
5
|
-
Opt-in `--parallel N`
|
|
6
|
-
Spec Drift Guard still applies
|
|
5
|
+
Opt-in `--parallel N` replaces steps 2–8 with [`parallel-batch.md`](parallel-batch.md);
|
|
6
|
+
Spec Drift Guard still applies.
|
|
7
7
|
|
|
8
|
-
1. **
|
|
9
|
-
|
|
10
|
-
`
|
|
11
|
-
|
|
12
|
-
`
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
3. **Dispatch
|
|
25
|
-
|
|
26
|
-
dispatch the exact `devrites-slice-wright` fresh. Root never writes
|
|
27
|
-
paths
|
|
8
|
+
1. **Gate.** Read core, `.devrites/ACTIVE`, then `devrites-engine orient <slug>`
|
|
9
|
+
and the Build read-next in
|
|
10
|
+
[`workspace-artifact-schema.md`](../../devrites-lib/reference/workspace-artifact-schema.md#read-next-by-phase):
|
|
11
|
+
the selected slice via `devrites-engine observe slice <slug> <SLICE-ID>`, not whole
|
|
12
|
+
`tasks.md`; over-budget or `bulk_files` artifacts are read by anchor only. Require
|
|
13
|
+
`Implementation readiness: READY`, current `Readiness inputs SHA-256`, exact
|
|
14
|
+
required accounts, ID/meaning traceability and green proof preflight.
|
|
15
|
+
Run `devrites-engine check readiness <slug>`; any miss/nonzero blocks.
|
|
16
|
+
2. **Select.** Pick the lowest pending slice whose `depends_on` are all built, using
|
|
17
|
+
`orient` `task_graph.slices` plus the `state.md` built list — never by scanning
|
|
18
|
+
`tasks.md`; then `observe slice` it. Restate its goal, ACs, exclusions and exact paths. Include
|
|
19
|
+
applicable topology/data/integration invariants and failure/recovery/proof cases.
|
|
20
|
+
Verify relevant assumptions live; falsified acceptance/architecture/scope/proof
|
|
21
|
+
routes through Spec Drift Guard. Resolve human-owned/irreversible gates before
|
|
22
|
+
source work; AFK follows its ceiling. Vet-ready Workflow Artifacts use
|
|
23
|
+
[`workflow-artifacts.md`](../../devrites-lib/reference/standards/workflow-artifacts.md).
|
|
24
|
+
3. **Dispatch.** Apply [`wright-dispatch.md`](wright-dispatch.md). Put the smallest
|
|
25
|
+
exact project-relative source/test path list directly in the task;
|
|
26
|
+
dispatch the exact `devrites-slice-wright` fresh. Root never writes product
|
|
27
|
+
paths; wright cannot widen scope; missing profile blocks.
|
|
28
28
|
<!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"Build gate enters or resumes transaction","action":"invoke canonical operation table; reconcile exact result","return":"same slice/checkpoint cursor or Plan/Vet route"} -->
|
|
29
|
-
4. **Inspect
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
5. **
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
`
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
is not success.
|
|
29
|
+
4. **Inspect.** Wait; compare returned paths and `git diff --name-only` with the
|
|
30
|
+
contract. Reject stale/partial/malformed/out-of-scope work; preserve user work.
|
|
31
|
+
Restoration uses the bounded wright.
|
|
32
|
+
5. **Review.** Apply [Independent Build review](#independent-build-review).
|
|
33
|
+
Missing verdicts, principle breaches and open Critical/Important block acceptance.
|
|
34
|
+
6. **Prove.** Against the frozen pre-slice candidate inspect
|
|
35
|
+
test hunks for deletion, skipping/focus, tautology, or weaker expectations.
|
|
36
|
+
Use step 5's exact test-analyst account; missing/adverse criterion verdict is
|
|
37
|
+
Critical. Run only `test-plan.md` repository/CI commands, record output, recheck
|
|
38
|
+
`git diff --name-only`. Missing/weakened/red/source-mutating proof cannot pass.
|
|
39
|
+
Pre-existing/environment-specific claims need a predating same-command,
|
|
40
|
+
same-environment baseline; otherwise unresolved.
|
|
42
41
|
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
Technical failure uses `devrites-debug-recovery` and
|
|
43
|
+
[canonical recovery](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve).
|
|
44
|
+
Reapply host admission before correction; affected proof/evidence follows candidate
|
|
45
|
+
integrity. Human gates remain product/irreversible/access decisions.
|
|
46
|
+
7. **Record green.** Upsert actual scoped `present`/`deleted` rows in `touched-files.md`;
|
|
47
|
+
update state, evidence and applicable UI/browser proof. Manifest stays mutable
|
|
48
|
+
until Polish. For a release milestone, after the last slice's rows run
|
|
49
|
+
`devrites-engine state merge-manifest <slug>` to fold the recorded
|
|
50
|
+
predecessor chain into the union manifest before Prove. Record stood
|
|
51
|
+
decisions/dead ends; refresh verified/falsified
|
|
52
|
+
assumptions. Propose reviewed durable project rules in the nearest guidance.
|
|
53
|
+
8. **Account/reply.** Apply `afk-discipline.md`: charge
|
|
54
|
+
exactly once after each green built slice; never negative, stop at zero,
|
|
55
|
+
malformed budget fails closed. Reply names next pending slice or `/rite-prove`
|
|
56
|
+
only when all built; no decorative renderer/dispatch telemetry.
|
|
45
57
|
|
|
46
|
-
|
|
47
|
-
before an accepted in-slice correction, keep one exact fingerprint/three
|
|
48
|
-
no-progress attempts, and never rerun an unchanged check. A closed reproduction
|
|
49
|
-
is progress; a different Critical/Important invariant gets its own fingerprint.
|
|
50
|
-
Ask humans only for product decisions,
|
|
51
|
-
irreversible risk, or genuinely human-only access.
|
|
52
|
-
7. **Record.** After green proof, upsert `touched-files.md`'s authoritative candidate
|
|
53
|
-
manifest from the actual scoped diff with explicit `present`/`deleted` rows;
|
|
54
|
-
update `state.md`, `evidence.md`, and applicable UI/browser evidence. The manifest
|
|
55
|
-
stays mutable until Polish closes it.
|
|
56
|
-
Record stood decisions/dead ends in `decisions.md`; update checked assumptions'
|
|
57
|
-
status/evidence, never leaving a disproved row live. If code reveals a durable
|
|
58
|
-
project rule, propose a reviewed `AGENTS.md`/nearest-doc update, not a scored ledger.
|
|
59
|
-
8. **AFK and reply.** Under `afk-discipline.md`, root charges
|
|
60
|
-
exactly once after each green built slice, never below zero; stop before another dispatch at zero, and fail closed
|
|
61
|
-
on malformed budget. Use the reply contract; name the next pending slice or, only
|
|
62
|
-
when all slices are built, `/rite-prove`. Emit no decorative progress renderer or
|
|
63
|
-
dispatch telemetry.
|
|
58
|
+
One contract builds one slice: preserve TDD, exact paths and independent judgment.
|
|
64
59
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
## Independent Build review
|
|
61
|
+
|
|
62
|
+
After inspection, freeze full slice scope and cumulative baseline diff. Initial
|
|
63
|
+
inventory: one full-diff `devrites-code-reviewer`, one `devrites-test-analyst`,
|
|
64
|
+
and one exact `devrites-doubt-reviewer` per stood decision that meets
|
|
65
|
+
`devrites-doubt` § When to use (boundary, data model, auth, public API, migration,
|
|
66
|
+
user flow, assumption tests cannot prove); other stood decisions are recorded in
|
|
67
|
+
`decisions.md` without dispatch. Dispatch fresh,
|
|
68
|
+
read-only under [`parallel-dispatch.md`](../../devrites-lib/reference/parallel-dispatch.md).
|
|
69
|
+
Wait for every required account to become terminal; missing/gap needs a valid result.
|
|
70
|
+
Fold supported in-scope Critical/Important findings by cause into one inventory.
|
|
71
|
+
Dispatch one repair-all wright instructed to fix every finding, then attack its own
|
|
72
|
+
correction for fix-introduced defects before returning; durable contract defects use Spec
|
|
73
|
+
Drift Guard.
|
|
74
|
+
Suggestion/Nit/FYI cannot prolong recovery.
|
|
75
|
+
|
|
76
|
+
Rechecks use Vet's bounded pattern: each exact responsible reviewer checks
|
|
77
|
+
all open findings owned by that role and affected dependency/regression closure
|
|
78
|
+
in one fresh dispatch. Supply new candidate, inventory, correction diff, tests
|
|
79
|
+
and unchanged-coverage evidence under candidate integrity; include newly triggered
|
|
80
|
+
roles. A changed contract or uncertain impact requires the full inventory.
|
|
81
|
+
Collect all required rechecks before another folded correction. Canonical recovery
|
|
82
|
+
owns fingerprints/budget and the
|
|
83
|
+
[late-finding rule](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve):
|
|
84
|
+
a recheck's `Late:` rows on hunks unchanged since that role's previous pass go to
|
|
85
|
+
`touched-files.md` `## Review trail` for `/rite-review`, not into another slice
|
|
86
|
+
repair, unless Critical with a failure path. Evidenced scope coverage never
|
|
87
|
+
guarantees no later defect; the feature-level Review and Seal gates still run.
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
# Spec Drift Guard (build phase)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
silently code against a plan
|
|
5
|
-
other phases reference it here.
|
|
3
|
+
Canonical Spec Drift Guard, active in `/rite-build` and referenced by other
|
|
4
|
+
phases. Never silently code against a known-wrong plan.
|
|
6
5
|
|
|
7
6
|
## Drift has occurred when
|
|
8
7
|
- the spec says X but the code makes X impossible/wrong;
|
|
@@ -16,7 +15,7 @@ other phases reference it here.
|
|
|
16
15
|
## Workflow
|
|
17
16
|
```
|
|
18
17
|
1. STOP coding.
|
|
19
|
-
2. Record
|
|
18
|
+
2. Record drift.md (assumed vs observed, when).
|
|
20
19
|
3. Classify: requirement ambiguity | implementation-plan error | codebase reality
|
|
21
20
|
mismatch | design-system mismatch | test/evidence mismatch | external-doc mismatch
|
|
22
21
|
| user-decision required.
|
|
@@ -35,12 +34,14 @@ other phases reference it here.
|
|
|
35
34
|
|
|
36
35
|
## Batch sweep (before repair)
|
|
37
36
|
|
|
38
|
-
|
|
37
|
+
Repair durable-plan drift as a folded set:
|
|
39
38
|
|
|
40
|
-
1.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
1. Trace the falsified assumption's full dependency/consumer closure and affected
|
|
40
|
+
frontier, including dependent future slices. Verify unchecked paths, symbols/APIs/
|
|
41
|
+
signatures, routes, commands, versions, and artifacts there against live source.
|
|
42
|
+
Reuse the wright inventory and unchanged evidence; deterministic existence checks
|
|
43
|
+
need no dispatch. Do not rescan unrelated slices. Broaden unknown closure or shared
|
|
44
|
+
contract changes until coverage is justified; retain every known gap.
|
|
44
45
|
2. Record each violation as its own `drift.md` entry/fingerprint; one folded
|
|
45
46
|
repair + one batched recheck resolves the set.
|
|
46
47
|
3. A recheck-surfaced gap is a new fingerprint with its own budget — loop
|
|
@@ -75,11 +76,9 @@ human permission question. Re-plan only when the durable plan changed.
|
|
|
75
76
|
|
|
76
77
|
## Inline return contract
|
|
77
78
|
|
|
78
|
-
The phase
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
acceptance; then restore the cursor and resume the failed step. Do not hand an
|
|
83
|
-
intermediate command to the human. The shared three-attempt causal-fingerprint
|
|
79
|
+
The detecting phase owns backtracking and the batch sweep. Save
|
|
80
|
+
`return_phase`/`return_next_action`; consume nested Plan/Vet `STOP` internally, complete
|
|
81
|
+
vetted acceptance-preserving remediation, then restore the cursor and failed step.
|
|
82
|
+
Never hand the human an intermediate command. The shared three-attempt causal-fingerprint
|
|
84
83
|
cap still applies: exhaustion produces one technical blocker, while a genuinely
|
|
85
84
|
human-owned decision uses the question format below.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Slice-wright dispatch
|
|
2
2
|
|
|
3
3
|
`/rite-build` gives one bounded task to exact `devrites-slice-wright`.
|
|
4
|
-
Root owns scope
|
|
5
|
-
|
|
4
|
+
Root owns scope/artifacts/inspection; never writes source/tests.
|
|
5
|
+
Wright alone writes; no agents.
|
|
6
6
|
|
|
7
7
|
## Host gate
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Apply [source-writing boundary](../../devrites-lib/reference/standards/agents.md#source-writing-boundary):
|
|
10
10
|
Claude grants only the exact wright `acceptEdits`; Codex uses its workspace root,
|
|
11
11
|
the exact `:workspace` wright, and read-only specialists. Never bypass/substitute
|
|
12
12
|
the wright or recreate an engine bridge.
|
|
@@ -47,7 +47,7 @@ worktrees stay forbidden.
|
|
|
47
47
|
controlling root under
|
|
48
48
|
[`workflow-artifacts.md`](../../devrites-lib/reference/standards/workflow-artifacts.md);
|
|
49
49
|
its rejection here is not a blocker.
|
|
50
|
-
2.
|
|
50
|
+
2. Include goal, verbatim acceptance, exclusions, context,
|
|
51
51
|
`test-plan.md` proof commands, and applicable standards. For each triggered
|
|
52
52
|
topology/data/integration standard, include only the feature-specific owner/invariant,
|
|
53
53
|
failure or partial-state case, recovery rule, and required proof from the vetted plan.
|
|
@@ -77,10 +77,10 @@ Opt-in `/rite-build --parallel N` fans out only under [`parallel-batch.md`](para
|
|
|
77
77
|
mocks that erase it and one-root proof offered for another root are unproven.
|
|
78
78
|
3. Run only repository proof already approved by `test-plan.md`, then inspect
|
|
79
79
|
`git diff --name-only` again in case a proof tool changed source.
|
|
80
|
-
4.
|
|
81
|
-
|
|
82
|
-
the
|
|
83
|
-
|
|
80
|
+
4. Apply [independent Build review](phase-contract.md#independent-build-review) before
|
|
81
|
+
proof acceptance. Human choices return; technical failures follow
|
|
82
|
+
[the canonical retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve).
|
|
83
|
+
Derive accounting from recorded reproductions, corrections, and decisive rechecks.
|
|
84
84
|
5. Reconcile returned reuse, conventions, principles, sources, assumptions,
|
|
85
85
|
decisions, dead ends, follow-ups, gates, and touched files. Persist the
|
|
86
86
|
relevant facts in canonical artifacts, not the wholesale report. A plan-gap
|
|
@@ -33,7 +33,10 @@ Pull these via `Read` when shaping the plan:
|
|
|
33
33
|
- **Derive the slice count from the work.**
|
|
34
34
|
One per independently-shippable increment, sized by `slicing.md`; map every acceptance
|
|
35
35
|
criterion. User counts are hints: explain honest differences, never pad/compress.
|
|
36
|
-
`.devrites/AFK` `max_slices` is an iteration budget, not decomposition.
|
|
36
|
+
`.devrites/AFK` `max_slices` is an iteration budget, not decomposition. A derivation
|
|
37
|
+
over the [feature ceiling](../rite-plan/reference/slicing.md#feature-ceiling-split-an-epic-never-override-the-budget)
|
|
38
|
+
is a split signal, never a `Budget override`: keep the thinnest shippable subset
|
|
39
|
+
here and route the rest to Non-goals + continuation workspaces via the Drift Guard.
|
|
37
40
|
- **Complexity does not shrink scope.** Split/reorder; never drop/defer approved REQ/AC.
|
|
38
41
|
Reduction needs Drift Guard + human decision; hard/large means decompose.
|
|
39
42
|
- **Wide refactors use expand → migrate → contract.** Add compatibility, migrate green
|
|
@@ -97,7 +97,10 @@ Before classifying any Reslice, read `.claude/skills/devrites-lib/reference/stan
|
|
|
97
97
|
in one cluster, and each bundle applies independently. A `partial`-
|
|
98
98
|
continuation re-dispatch continues the same packet; it does not advance the
|
|
99
99
|
same-seam counter. Count consecutive repair packets whose findings' cited clause sets overlap
|
|
100
|
-
the immediately previous packet's — the overlap is the seam.
|
|
100
|
+
the immediately previous packet's — the overlap is the seam. Carry it as an explicit
|
|
101
|
+
integer `same_seam_count` in every packet (previous value + 1 when the seam repeats,
|
|
102
|
+
else 1) so the threshold is counted rather than judged; a packet that reports the same
|
|
103
|
+
seam without the counter is malformed. At the third
|
|
101
104
|
same-seam packet, mark it `convergence_pressure: true` with the seam named.
|
|
102
105
|
Under pressure the drafter may close a finding marked as a refinement of an
|
|
103
106
|
already-pinned clause by folding an explicit, bounded declared
|
|
@@ -31,6 +31,11 @@ A drift event stopped the build. Steps:
|
|
|
31
31
|
2. If the user answered a drift question, encode that decision in `decisions.md`.
|
|
32
32
|
3. Update `spec.md` (only the affected sections) and `plan.md`/`tasks.md` to match
|
|
33
33
|
reality. Adjust acceptance criteria if they were wrong.
|
|
34
|
+
**Write the pointer, not the history.** Name the findings a fold closes by ID, one line
|
|
35
|
+
of meaning each; never restate prior folds, prior DEC lists, or closed-round narrative in
|
|
36
|
+
`architecture.md`/`plan.md`/`tasks.md`/`traceability.md`. That text belongs in
|
|
37
|
+
`decisions.md`, or in `history/` via [Budget relocation](#revise) once closed, so each
|
|
38
|
+
fold appends a bounded line. A banner that grows with the round count is the defect.
|
|
34
39
|
4. Mark each `drift.md` entry **resolved** with the resolution + date.
|
|
35
40
|
5. **Self-check and self-attack the repaired candidate on the delta before
|
|
36
41
|
handoff** — re-verify every invariant the correction touched (acyclic
|
|
@@ -68,6 +73,14 @@ Mid-build user pivot. Apply the marked action, choose rollback or forward-fix, a
|
|
|
68
73
|
update permitted artifacts atomically (`MVP cut` is the named retreat). Invalidate
|
|
69
74
|
Vet/readiness when contract or topology changes.
|
|
70
75
|
|
|
76
|
+
**Feature-ceiling cut.** When unbuilt slices exceed the
|
|
77
|
+
[feature ceiling](slicing.md#feature-ceiling-split-an-epic-never-override-the-budget),
|
|
78
|
+
`MVP cut` keeps the built slices plus the thinnest shippable unbuilt subset here; the
|
|
79
|
+
remaining slices, their REQ/AC IDs and proof rows move verbatim into a named
|
|
80
|
+
continuation list (spec `Non-goals` → future `/rite-spec <slug>-2`, `-3`, …) through
|
|
81
|
+
the Spec Drift Guard. IDs never renumber; each ID is owned by exactly one workspace.
|
|
82
|
+
Record the sequence once in `decisions.md`.
|
|
83
|
+
|
|
71
84
|
## revise
|
|
72
85
|
|
|
73
86
|
Artifact-only reconciliation of `spec.md`, `architecture.md`, `plan.md`, `tasks.md`,
|
|
@@ -78,6 +91,14 @@ Unchanged acceptance/behavior with non-equivalent `proposed_coverage` is a
|
|
|
78
91
|
contradictory input: the canonical classifier blocks it — there is no fourth
|
|
79
92
|
route (see `acceptance-preserving-reslice.md`).
|
|
80
93
|
|
|
94
|
+
**Budget relocation** (admitted by `/rite-upgrade`, or by the phase owner when
|
|
95
|
+
`orient` reports `over: true`): move checkpoint narrative, historical fold text and
|
|
96
|
+
closed-round accounts verbatim from `state.md`/`tasks.md`/`plan.md`/`architecture.md`/
|
|
97
|
+
`eng-review.md` into `history/<file>-<YYYYMMDD>.md`, packets/accounts from the root
|
|
98
|
+
into `packets/`, leaving a one-line pointer. Cursor, live slices, open findings, IDs,
|
|
99
|
+
answers, decisions and bindings stay unchanged; nothing is deleted or reworded.
|
|
100
|
+
Re-emit the readiness binding when a readiness input moved.
|
|
101
|
+
|
|
81
102
|
## Always
|
|
82
103
|
|
|
83
104
|
Update `state.md` (phase, next step) and append a dated line to `decisions.md`
|
|
@@ -4,9 +4,7 @@ DevRites builds in **thin vertical slices**: each slice cuts through every layer
|
|
|
4
4
|
needs (data → logic → API → UI) and leaves the system in a working, testable state.
|
|
5
5
|
|
|
6
6
|
## Vertical, not horizontal
|
|
7
|
-
Horizontal
|
|
8
|
-
software and hides integration risk until the end. Vertical delivers a usable path each
|
|
9
|
-
slice:
|
|
7
|
+
Horizontal layering delays integration feedback. Vertical slicing delivers a usable path:
|
|
10
8
|
```
|
|
11
9
|
SLICE-001: Create a task (DB + API + minimal UI) -> user can create + test passes
|
|
12
10
|
SLICE-002: List tasks (query + API + UI) -> user can see them
|
|
@@ -17,20 +15,21 @@ SLICE-004: Delete a task (delete + API + UI + confirm) -> full CRUD
|
|
|
17
15
|
## Sizing a slice
|
|
18
16
|
A slice is the right size when it:
|
|
19
17
|
- delivers one observable capability end-to-end;
|
|
20
|
-
- can
|
|
18
|
+
- can finish its writer, independent review, and slice proof within `/rite-build`;
|
|
21
19
|
- has acceptance criteria you can verify with evidence;
|
|
22
20
|
- can be rolled back on its own;
|
|
23
21
|
- is worth its own review gate: a reviewer could meaningfully reject *this* slice while
|
|
24
22
|
approving its neighbor. If two slices can only pass or fail together, they're one slice.
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
Size by independent invariants, failure modes, and proof seams, not file count or
|
|
25
|
+
the word "and". Split independently acceptable/provable responsibilities; several
|
|
26
|
+
files may serve one inseparable capability. Full feature `/rite-prove` follows all
|
|
27
|
+
slices; slice proof never replaces final integration or acceptance proof.
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
For `Complexity` and irreducible boundaries, use the canonical
|
|
30
|
+
[`tasks.md` slice grammar](../../devrites-lib/reference/workspace-artifact-schema.md#canonical-slice-grammar).
|
|
31
|
+
Keep the smallest cut that stands alone end-to-end; do not add slices or gates for
|
|
32
|
+
fragments that can only pass together. No slice size guarantees first-pass correctness.
|
|
34
33
|
|
|
35
34
|
## How many slices?: derive, don't dictate
|
|
36
35
|
The slice **count is an output, not an input.** It falls out of the work: one slice per
|
|
@@ -46,10 +45,113 @@ a 12-criterion feature is however many thin end-to-end cuts those 12 need.
|
|
|
46
45
|
- **Re-size by the rule, not the tally** (`/rite-plan reslice`): split a slice because it
|
|
47
46
|
failed the sizing test, not to hit a count.
|
|
48
47
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
`.devrites/AFK` `max_slices` limits unattended execution, never plan decomposition.
|
|
49
|
+
|
|
50
|
+
## Feature ceiling: split an epic, never override the budget
|
|
51
|
+
|
|
52
|
+
The derived count is also a size signal. A decomposition that cannot fit the
|
|
53
|
+
`tasks.md` / `plan.md` / `traceability.md` budgets in
|
|
54
|
+
[`workspace-artifact-schema.md`](../../devrites-lib/reference/workspace-artifact-schema.md)
|
|
55
|
+
(about ten canonical slices) is an epic: every Vet/Doubt/Build review re-reads the
|
|
56
|
+
whole surface, each round finds new material, and the loop never converges.
|
|
57
|
+
`Budget override` never covers slice or acceptance-criteria count.
|
|
58
|
+
|
|
59
|
+
- Keep the thinnest independently shippable subset here; the rest becomes spec
|
|
60
|
+
`Non-goals` (via the Spec Drift Guard), each continuation a named future `/rite-spec`
|
|
61
|
+
workspace. Record the sequence once in `decisions.md`.
|
|
62
|
+
- Acceptance-preserving: every REQ/AC keeps its ID, owned by exactly one workspace.
|
|
63
|
+
- Earliest owner wins: Temper's one-sentence test → Define/Plan decomposition → Vet §0
|
|
64
|
+
scope finding → `/rite-plan course-correct` (`MVP cut`). Mid-build, unbuilt slices
|
|
65
|
+
beyond the ceiling move; built slices stay.
|
|
66
|
+
- The ceiling bounds one **workspace**, never the product: the sequence delivers every
|
|
67
|
+
slice, in order, each with its own Vet/Build/Review loop. A human may still accept a
|
|
68
|
+
single larger workspace by recording the decision in `decisions.md` and a structural
|
|
69
|
+
`Budget override:` in the affected artifacts; the extra review rounds on the whole
|
|
70
|
+
surface are then the accepted, named cost. The deterministic gate
|
|
71
|
+
(`check readiness`/`check seal`) blocks only a material overshoot without such an
|
|
72
|
+
override, so the choice stays explicit rather than accidental.
|
|
73
|
+
|
|
74
|
+
### Continuation workspaces
|
|
75
|
+
|
|
76
|
+
Granularity is a real cost choice, not a formality: a workspace costs ~8–12 fixed
|
|
77
|
+
dispatches (drafter, plan reviewer, proof runner, spec/code reviewers, seal roster;
|
|
78
|
+
Temper is skippable when the parent's `strategy.md` already covers the scope) plus
|
|
79
|
+
~3–5 per slice. The split does not remove per-slice cost; it bounds each round's
|
|
80
|
+
context, stops the non-convergent whole-surface loop, isolates a plan defect's blast
|
|
81
|
+
radius to its own workspace, and lets independent continuations run in parallel.
|
|
82
|
+
|
|
83
|
+
Make each continuation cheap and drift-free:
|
|
84
|
+
|
|
85
|
+
- `brief.md` names the parent slug and the sequence position; `decisions.md` holds the
|
|
86
|
+
sequence once (in the parent).
|
|
87
|
+
- The child's `state.md` seeds the durable cursor at creation — `sequence_parent` =
|
|
88
|
+
parent slug, `sequence_position` = parent position + 1,
|
|
89
|
+
`sequence_workspaces_remaining` = parent remaining − 1, and `sequence_role:
|
|
90
|
+
release` only when the recorded entry is the sequence's release milestone.
|
|
91
|
+
Values derive from the parent's `state.md` and its `decisions.md` record,
|
|
92
|
+
exactly once; resume re-derives the same values rather than charging again.
|
|
93
|
+
A workspace that is not a recorded continuation leaves all four rows absent.
|
|
94
|
+
This is what `state merge-manifest` walks and what the release-union gate reads,
|
|
95
|
+
so a manually opened continuation needs the same seeding as an armed run.
|
|
96
|
+
- Read the parent's `architecture.md`, `plan.md`, `decisions.md` (or its archived copy)
|
|
97
|
+
as **design input** — never re-derive settled architecture, dependency choices, or
|
|
98
|
+
interfaces. Proof is always fresh for the new candidate; parent evidence is cited as
|
|
99
|
+
input, never as proof for this workspace.
|
|
100
|
+
- Shared interfaces, data shapes, and contracts are pinned **once**, in the workspace
|
|
101
|
+
that introduces them, and referenced afterwards. A continuation that must change a
|
|
102
|
+
pinned contract does so through its own `plan.md` shared-contract proof and an ADR
|
|
103
|
+
that names the superseded owner — never by silently re-deciding it.
|
|
104
|
+
- A request that names a recorded continuation is a new workspace, not
|
|
105
|
+
`/rite-plan revise` on the parent.
|
|
106
|
+
- Phases chain automatically only **inside** one workspace (`/rite-autocomplete`
|
|
107
|
+
drives spec → clarify → temper → define → vet → build × slices → prove → polish →
|
|
108
|
+
review → seal; plain HITL chains plan↔vet inline and stops at each other boundary).
|
|
109
|
+
Crossing into the next continuation is a new invocation by design, so the human sees
|
|
110
|
+
each delivered increment before the next one starts.
|
|
111
|
+
|
|
112
|
+
### Release milestone (full-picture gate)
|
|
113
|
+
|
|
114
|
+
Milestone gates are feature-scoped: `prove` proves *that* workspace's acceptance,
|
|
115
|
+
`review`/`seal` judge *that* candidate. A product release therefore needs one more
|
|
116
|
+
workspace — the **release milestone** — planned last, whose subject is the assembled
|
|
117
|
+
product:
|
|
118
|
+
|
|
119
|
+
- Its ACs are product-level: cross-milestone integration, end-to-end journeys,
|
|
120
|
+
performance/release budgets, docs/rollout. Milestone ACs stay owned by their
|
|
121
|
+
milestones and are **referenced** here, never re-owned.
|
|
122
|
+
- Its candidate manifest lists the union of shipped surfaces, so one `prove` → `review`
|
|
123
|
+
→ `seal` binds the whole product, and one `ship` commits/pushes/tags the release.
|
|
124
|
+
Its `state.md` cursor carries `sequence_role: release` (seeded when the recorded
|
|
125
|
+
continuation is the sequence's release entry); `check candidate`/`check seal`
|
|
126
|
+
then require the manifest to cover the whole recorded chain. Build that union
|
|
127
|
+
deterministically: `devrites-engine state merge-manifest <release-slug>` walks
|
|
128
|
+
the recorded `sequence_parent` chain (live `work/` first, then `archive/`) and
|
|
129
|
+
folds every predecessor's manifest into the release `## Candidate manifest`;
|
|
130
|
+
on a path collision the later sequence position's row wins. An explicit
|
|
131
|
+
ordered `<pred>...` argument exists for chains recorded before the sequence
|
|
132
|
+
cursor fields.
|
|
133
|
+
- Earlier milestones keep their own slice-level proof and their own prove/review/seal;
|
|
134
|
+
that is what stops a late defect from invalidating 170 slices of work. Skipping a
|
|
135
|
+
milestone's proof is allowed only by recording the decision — the release milestone
|
|
136
|
+
then carries the full acceptance burden, and that cost is the named trade-off.
|
|
137
|
+
- The capability ledger (`.devrites/specs/<capability>/spec.md`) accumulates the
|
|
138
|
+
product picture across milestones; Polish folds each milestone's deltas.
|
|
139
|
+
- **Deferred-ship sequence** (`.devrites/AFK` `continue_sequence: true`, `max_workspaces: N`):
|
|
140
|
+
milestones are sealed but not shipped, and the armed run opens the next recorded
|
|
141
|
+
continuation automatically; per-slice `WIP(<slug>)` checkpoints still land locally,
|
|
142
|
+
so the tree stays clean. One release ship at the end collapses the sequence's
|
|
143
|
+
checkpoints into the single release commit, pushes/tags it, and may archive the
|
|
144
|
+
sealed predecessors. Because no milestone boundary was shipped, later work can touch
|
|
145
|
+
an earlier milestone's surfaces without an affected-re-proof trigger — so the release
|
|
146
|
+
milestone re-proves the union acceptance map, and that full re-proof is this mode's
|
|
147
|
+
named cost. Trade-off against per-milestone ship: no shared-history rollback point
|
|
148
|
+
per increment, one Git approval at the end.
|
|
149
|
+
- What is full-surface here is the **review**: reviewers see the whole product diff.
|
|
150
|
+
Re-proof stays targeted — this milestone's product ACs, everything a later milestone
|
|
151
|
+
touched, and any uncertain closure. Milestone evidence is cited only under
|
|
152
|
+
[evidence validity](../../devrites-lib/reference/candidate-integrity.md#evidence-validity)
|
|
153
|
+
with explicit unchanged-input/dependency justification and a link to the original
|
|
154
|
+
account; a blind re-proof of every milestone AC is a recorded decision, not a default.
|
|
53
155
|
|
|
54
156
|
## First slice
|
|
55
157
|
Make slice 1 the **thinnest useful end-to-end path**. It flushes out integration and
|
|
@@ -7,10 +7,12 @@ user-invocable: true
|
|
|
7
7
|
|
|
8
8
|
# /rite-prove: prove the completed feature
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
Never
|
|
13
|
-
criteria and bind
|
|
10
|
+
Prove the assembled feature once. No workspace: use `/verify` or `/run`;
|
|
11
|
+
pending tasks: stop for `/rite-build`.
|
|
12
|
+
Never assert unobserved passes. After Polish/Review edits, repeat affected
|
|
13
|
+
criteria/dependencies and bind under
|
|
14
|
+
[evidence validity](../devrites-lib/reference/candidate-integrity.md#evidence-validity).
|
|
15
|
+
Initial full feature proof and required mutable observations still run.
|
|
14
16
|
|
|
15
17
|
## Rules
|
|
16
18
|
|
|
@@ -21,21 +23,19 @@ Read the applicable standards: `testing.md`, `test-proof-checklist.md`,
|
|
|
21
23
|
`workflow-artifacts.md`. Developer surfaces require an observed flow, measured
|
|
22
24
|
TTHW, and exact signal-bearing errors; never assert DX.
|
|
23
25
|
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
signal is unproven.
|
|
26
|
+
- Each claim needs an executed positive, discriminating assertion and decisive
|
|
27
|
+
signal; green commands alone are unproven.
|
|
27
28
|
- Follow [`candidate-integrity.md`](../devrites-lib/reference/candidate-integrity.md). Prove owns proof binding, not candidate
|
|
28
29
|
grammar/hashing. Spec Drift Guard owns revealed contract drift.
|
|
29
|
-
- Root
|
|
30
|
-
|
|
31
|
-
source/tests; root never does.
|
|
30
|
+
- Root runs vetted gates/browser and records immutable evidence; proof runner
|
|
31
|
+
validates it. Only the bounded wright fixes product source/tests.
|
|
32
32
|
- **Prove remains the controlling caller** during technical backtracking. Save
|
|
33
33
|
its cursor; run Plan repair, Recovery Vet, remediation, and re-proof inline;
|
|
34
34
|
consume nested boundaries; resume the failed rung. Recovery exhausts after
|
|
35
35
|
three no-progress attempts on the exact same fingerprint. Closing one or exposing a distinct
|
|
36
36
|
Critical/Important invariant is progress, not a reason to hand work off.
|
|
37
37
|
<!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"Prove consumes installed Workflow Artifact or CLEANED rerun","action":"VERIFY_EXISTING or admitted proof path ending PROVE_AND_RETURN","return":"saved Prove cursor; stop before real action"} -->
|
|
38
|
-
## Released-workspace refresh
|
|
38
|
+
## Released-workspace refresh
|
|
39
39
|
|
|
40
40
|
Only an admitted `/rite-upgrade` assessment proving a released-format candidate
|
|
41
41
|
defect enters. Require legacy touched-file scope, live diff, tasks, and traceability agree unambiguously
|
|
@@ -85,19 +85,17 @@ test changes.
|
|
|
85
85
|
[browser proof](reference/browser-proof.md): routes, viewports, opened and
|
|
86
86
|
described screenshots, console/network, interaction, target comparisons, and
|
|
87
87
|
every required state. Material mismatch fails.
|
|
88
|
-
7. **Independent validation.**
|
|
89
|
-
`devrites-
|
|
90
|
-
commands
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
scenario, interaction, and planned key link gets positive discriminating
|
|
95
|
-
evidence or a blocker, including applicable critical-path, observability,
|
|
96
|
-
developer, and wiring branches.
|
|
88
|
+
7. **Independent validation.** Fresh read-only `devrites-proof-runner` and
|
|
89
|
+
`devrites-spec-reviewer` judge the same candidate/commands/evidence/acceptance map.
|
|
90
|
+
Neither runs commands; reject missing/stale, invented-ID, label-only or self-attested reports.
|
|
91
|
+
8. **Map proof.** Reconcile verdicts under [acceptance-proof.md](reference/acceptance-proof.md).
|
|
92
|
+
Every criterion/scenario/interaction/key link needs discriminating evidence or a
|
|
93
|
+
blocker, including critical-path, observability, developer and wiring branches.
|
|
97
94
|
9. **Recover red.** Use [failure triage](reference/failure-triage.md) and Debug
|
|
98
95
|
Recovery. Reconcile reproduction; send accepted in-scope source/test correction
|
|
99
96
|
to the sole wright; update actual manifest; rerun affected proof, both candidate
|
|
100
|
-
checks, and fresh proof runner.
|
|
97
|
+
checks, and fresh proof runner. Recheck affected acceptance with the exact spec
|
|
98
|
+
reviewer; reconcile both validators under evidence validity. Scope growth blocks.
|
|
101
99
|
|
|
102
100
|
Agent-owned durable-plan errors run Spec Drift Guard, Plan, and Vet inline,
|
|
103
101
|
preserving Prove as origin. Consumptive failures use retained fixtures, repair,
|
|
@@ -112,7 +110,7 @@ test changes.
|
|
|
112
110
|
> Do not claim an unobserved pass, skip browser proof, or proceed with pending
|
|
113
111
|
> slices. Load `reference/anti-patterns.md` when tempted to do so.
|
|
114
112
|
|
|
115
|
-
## Phase exit
|
|
113
|
+
## Phase exit
|
|
116
114
|
|
|
117
115
|
**Complete when:** every criterion in `acceptance-proof.md` has discriminating
|
|
118
116
|
evidence bound to the current candidate digest, both independent validators admit
|