devrites 6.1.2 → 6.1.4
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 +1 -1
- package/engine/commands.go +1 -1
- package/engine/help.go +5 -1
- package/engine/internal/acceptance/cli.go +14 -5
- package/engine/internal/acceptance/run.go +20 -5
- package/engine/internal/lib/apply_bundle.go +474 -0
- package/engine/internal/lib/claims.go +4 -0
- package/engine/internal/lib/claims_holder.go +35 -5
- package/engine/internal/lib/diffscope.go +2 -1
- package/engine/internal/lib/dispatch.go +3 -0
- package/engine/main.go +4 -0
- package/pack/.claude/agents/devrites-plan-drafter.md +11 -2
- package/pack/.claude/agents/devrites-slice-wright.md +4 -1
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +7 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +21 -7
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +3 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/gates.md +3 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +7 -0
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +1 -1
- package/pack/.claude/skills/rite-build/SKILL.md +3 -0
- package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +2 -1
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +7 -0
- package/pack/.claude/skills/rite-define/SKILL.md +10 -1
- package/pack/.claude/skills/rite-plan/SKILL.md +20 -9
- package/pack/.claude/skills/rite-polish/SKILL.md +6 -4
- package/pack/.claude/skills/rite-prove/SKILL.md +3 -2
- package/pack/.claude/skills/rite-review/SKILL.md +6 -1
- package/pack/.claude/skills/rite-seal/SKILL.md +2 -2
- package/pack/.claude/skills/rite-seal/reference/phase-contract.md +7 -1
- package/pack/.claude/skills/rite-vet/SKILL.md +9 -5
- package/pack/generated/claude/agents/devrites-plan-drafter.md +11 -2
- package/pack/generated/claude/agents/devrites-slice-wright.md +4 -1
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +7 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +21 -7
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +3 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/gates.md +3 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +7 -0
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +1 -1
- package/pack/generated/claude/skills/rite-build/SKILL.md +3 -0
- package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +2 -1
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +7 -0
- package/pack/generated/claude/skills/rite-define/SKILL.md +10 -1
- package/pack/generated/claude/skills/rite-plan/SKILL.md +20 -9
- package/pack/generated/claude/skills/rite-polish/SKILL.md +6 -4
- package/pack/generated/claude/skills/rite-prove/SKILL.md +3 -2
- package/pack/generated/claude/skills/rite-review/SKILL.md +6 -1
- package/pack/generated/claude/skills/rite-seal/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +7 -1
- package/pack/generated/claude/skills/rite-vet/SKILL.md +9 -5
- package/pack/generated/codex/agents/devrites-plan-drafter.toml +11 -2
- package/pack/generated/codex/agents/devrites-slice-wright.toml +4 -1
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +7 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +21 -7
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +3 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/gates.md +3 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +7 -0
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +1 -1
- package/pack/generated/codex/skills/rite-build/SKILL.md +3 -0
- package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +2 -1
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +7 -0
- package/pack/generated/codex/skills/rite-define/SKILL.md +10 -1
- package/pack/generated/codex/skills/rite-plan/SKILL.md +20 -9
- package/pack/generated/codex/skills/rite-polish/SKILL.md +6 -4
- package/pack/generated/codex/skills/rite-prove/SKILL.md +3 -2
- package/pack/generated/codex/skills/rite-review/SKILL.md +6 -1
- package/pack/generated/codex/skills/rite-seal/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +7 -1
- package/pack/generated/codex/skills/rite-vet/SKILL.md +9 -5
- package/pack/generated/devin/agents/devrites-plan-drafter.md +11 -2
- package/pack/generated/devin/agents/devrites-slice-wright.md +4 -1
- package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +7 -3
- package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +21 -7
- package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +3 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/gates.md +3 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/testing.md +7 -0
- package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +1 -1
- package/pack/generated/devin/skills/rite-build/SKILL.md +3 -0
- package/pack/generated/devin/skills/rite-build/reference/one-slice-cycle.md +2 -1
- package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +7 -0
- package/pack/generated/devin/skills/rite-define/SKILL.md +10 -1
- package/pack/generated/devin/skills/rite-plan/SKILL.md +20 -9
- package/pack/generated/devin/skills/rite-polish/SKILL.md +6 -4
- package/pack/generated/devin/skills/rite-prove/SKILL.md +3 -2
- package/pack/generated/devin/skills/rite-review/SKILL.md +6 -1
- package/pack/generated/devin/skills/rite-seal/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-seal/reference/phase-contract.md +7 -1
- package/pack/generated/devin/skills/rite-vet/SKILL.md +9 -5
- package/pack/generated/omp/agents/devrites-plan-drafter.md +11 -2
- package/pack/generated/omp/agents/devrites-slice-wright.md +4 -1
- package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +7 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +21 -7
- package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +3 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/gates.md +3 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/testing.md +7 -0
- package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +1 -1
- package/pack/generated/omp/skills/rite-build/SKILL.md +3 -0
- package/pack/generated/omp/skills/rite-build/reference/one-slice-cycle.md +2 -1
- package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +7 -0
- package/pack/generated/omp/skills/rite-define/SKILL.md +10 -1
- package/pack/generated/omp/skills/rite-plan/SKILL.md +20 -9
- package/pack/generated/omp/skills/rite-polish/SKILL.md +6 -4
- package/pack/generated/omp/skills/rite-prove/SKILL.md +3 -2
- package/pack/generated/omp/skills/rite-review/SKILL.md +6 -1
- package/pack/generated/omp/skills/rite-seal/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +7 -1
- package/pack/generated/omp/skills/rite-vet/SKILL.md +9 -5
- package/pack/generated/pi/agents/devrites-plan-drafter.md +11 -2
- package/pack/generated/pi/agents/devrites-slice-wright.md +4 -1
- package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +7 -3
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +21 -7
- package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +3 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/gates.md +3 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/testing.md +7 -0
- package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +1 -1
- package/pack/generated/pi/skills/rite-build/SKILL.md +3 -0
- package/pack/generated/pi/skills/rite-build/reference/one-slice-cycle.md +2 -1
- package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +7 -0
- package/pack/generated/pi/skills/rite-define/SKILL.md +10 -1
- package/pack/generated/pi/skills/rite-plan/SKILL.md +20 -9
- package/pack/generated/pi/skills/rite-polish/SKILL.md +6 -4
- package/pack/generated/pi/skills/rite-prove/SKILL.md +3 -2
- package/pack/generated/pi/skills/rite-review/SKILL.md +6 -1
- package/pack/generated/pi/skills/rite-seal/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-seal/reference/phase-contract.md +7 -1
- package/pack/generated/pi/skills/rite-vet/SKILL.md +9 -5
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ argument-hint: "[slug] [--cross-model] [--full]"
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/gates.md","rite-vet/reference/review-axes.md","rite-vet/reference/artifacts.md","rite-vet/reference/depth.md","rite-vet/reference/eng-lenses.md","rite-vet/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"assumption-delta":["devrites-lib/reference/standards/assumption-checkpoints.md"],"cross-model":["rite-vet/reference/cross-model.md"],"devex":["devrites-lib/reference/standards/developer-experience.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"elicitation":["devrites-lib/reference/standards/elicitation.md"],"errors":["devrites-lib/reference/standards/error-handling.md"],"grammar":["devrites-lib/reference/standards/spec-grammar.md"],"one-shot":["devrites-lib/reference/standards/one-shot-actions.md"],"performance":["devrites-lib/reference/standards/performance.md"],"principles":["devrites-lib/reference/standards/principles.md"],"reslice":["devrites-lib/reference/standards/acceptance-preserving-reslice.md"],"testing":["devrites-lib/reference/standards/testing.md"],"workflow":["devrites-lib/reference/standards/development-workflow.md"],"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"yagni":["devrites-lib/reference/standards/patterns.md","devrites-lib/reference/standards/coding-style.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","strategy.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md"],"workspaceByRole":{"devex-reviewer":["spec.md","plan.md","tasks.md","decisions.md","state.md"],"plan-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","decision-coverage.md","architecture.md","decisions.md","state.md"],"strategy-reviewer":["brief.md","spec.md","plan.md","decisions.md","decision-coverage.md","strategy.md","state.md"]}} -->
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/gates.md","rite-vet/reference/review-axes.md","rite-vet/reference/artifacts.md","rite-vet/reference/depth.md","rite-vet/reference/eng-lenses.md","rite-vet/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"assumption-delta":["devrites-lib/reference/standards/assumption-checkpoints.md"],"cross-model":["rite-vet/reference/cross-model.md"],"devex":["devrites-lib/reference/standards/developer-experience.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"elicitation":["devrites-lib/reference/standards/elicitation.md"],"errors":["devrites-lib/reference/standards/error-handling.md"],"grammar":["devrites-lib/reference/standards/spec-grammar.md"],"one-shot":["devrites-lib/reference/standards/one-shot-actions.md"],"performance":["devrites-lib/reference/standards/performance.md"],"principles":["devrites-lib/reference/standards/principles.md"],"reslice":["devrites-lib/reference/standards/acceptance-preserving-reslice.md"],"testing":["devrites-lib/reference/standards/testing.md"],"workflow":["devrites-lib/reference/standards/development-workflow.md"],"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"yagni":["devrites-lib/reference/standards/patterns.md","devrites-lib/reference/standards/coding-style.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","strategy.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/elicitation.md"],"workspaceByRole":{"doubt-reviewer":["spec.md","architecture.md","plan.md","tasks.md","test-plan.md","decisions.md","state.md"],"devex-reviewer":["spec.md","plan.md","tasks.md","decisions.md","state.md"],"plan-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","decision-coverage.md","architecture.md","decisions.md","state.md"],"strategy-reviewer":["brief.md","spec.md","plan.md","decisions.md","decision-coverage.md","strategy.md","state.md"]}} -->
|
|
9
9
|
> Read-set manifest: `devrites-engine context --skills-root .omp/skills <slug> --phase vet` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
10
|
|
|
11
11
|
|
|
@@ -85,7 +85,9 @@ plan declares a root-authored executable workflow file, read
|
|
|
85
85
|
Temper — in
|
|
86
86
|
parallel under `skill://devrites-lib/reference/parallel-dispatch.md`; they are
|
|
87
87
|
independent read-only passes on one frozen candidate. Missing
|
|
88
|
-
required account blocks.
|
|
88
|
+
required account blocks. Run root steps 2–4, including step 3's preflight
|
|
89
|
+
commands, on the same frozen candidate while the wave is out; reconcile the
|
|
90
|
+
accounts when they return.
|
|
89
91
|
1b. **Recovery recheck.** Require valid return cursor, accepted prior finding,
|
|
90
92
|
exact fingerprint/reproduction, repaired candidate identity, changed
|
|
91
93
|
paths/criteria, affected drift/evidence, and the recorded delta self-check.
|
|
@@ -108,8 +110,8 @@ plan declares a root-authored executable workflow file, read
|
|
|
108
110
|
marked as a refinement of an already-pinned clause; the recheck may re-raise
|
|
109
111
|
it only by naming a concrete failure path the declaration omits. A
|
|
110
112
|
`new_failure_mode` finding is never residual-eligible. A fold whose
|
|
111
|
-
findings are all Suggestion-or-lower rechecks mechanically at the
|
|
112
|
-
materialization gate — anchors applied, mirrors consistent, invariants
|
|
113
|
+
findings are all `mechanism` kind or Suggestion-or-lower rechecks mechanically at the
|
|
114
|
+
materialization gate — anchors applied (a clean `state apply-bundle`), mirrors consistent, invariants
|
|
113
115
|
pass — without a dispatched reviewer; sub-Important findings already
|
|
114
116
|
cannot keep recovery open. Reconcile
|
|
115
117
|
shared artifact/readiness gates, then enter step 8 or the next repair.
|
|
@@ -142,7 +144,9 @@ plan declares a root-authored executable workflow file, read
|
|
|
142
144
|
ownership. The plan's `Shared contract proof` names one reused boundary
|
|
143
145
|
artifact plus two consuming tests for every changed API/event/schema/provider-
|
|
144
146
|
consumer seam, or an explicit no-impact statement. Missing, one-sided,
|
|
145
|
-
duplicated-contract, vague, or non-consuming proof fails closed.
|
|
147
|
+
duplicated-contract, vague, or non-consuming proof fails closed. Each slice
|
|
148
|
+
names a fast writer-safe check its wright can run; proof reachable only through
|
|
149
|
+
root-owned full gates is a `mechanism` finding.
|
|
146
150
|
|
|
147
151
|
Technical gaps are `NEEDS REPLAN` and Plan repair — each finding marks
|
|
148
152
|
itself `new_failure_mode` or names the already-pinned clause/fingerprint
|
|
@@ -76,10 +76,13 @@ Return this result:
|
|
|
76
76
|
|
|
77
77
|
```yaml
|
|
78
78
|
mode: define | repair
|
|
79
|
+
base_hashes: {} # <path>: sha256 of the bytes you read, for every replace/patch target
|
|
79
80
|
candidate_files:
|
|
80
81
|
- path: <requested canonical target>
|
|
81
82
|
operation: create | replace | patch
|
|
82
|
-
content: <complete
|
|
83
|
+
content: <complete file; create/replace only>
|
|
84
|
+
hunks: [] # patch only: {id, old_text, new_text}; old_text byte-exact, unique in the pinned file
|
|
85
|
+
retired_ids: [] # tracked IDs (AC/REQ/HZN/SLICE/DEC/...) the delta removes on purpose
|
|
83
86
|
acceptance_map: []
|
|
84
87
|
dependency_order: []
|
|
85
88
|
technical_decisions: []
|
|
@@ -89,7 +92,13 @@ applicability_disposition: []
|
|
|
89
92
|
self_attack_exposures: []
|
|
90
93
|
```
|
|
91
94
|
|
|
92
|
-
The root
|
|
95
|
+
The root saves the bundle as JSON and applies it with `devrites-engine state
|
|
96
|
+
apply-bundle <slug> <bundle.json>`, which refuses a stale pin, a missing,
|
|
97
|
+
duplicate, or overlapping `old_text`, an unlisted vanished ID, a new task-graph
|
|
98
|
+
problem, new budget overshoot, or a new dated delta section, and writes nothing on refusal. Pin each
|
|
99
|
+
`base_hashes` entry with `shasum -a 256` (or `sha256sum`) on the exact file you
|
|
100
|
+
read, and prefer short anchored hunks to whole-file `replace`. Patch the owning
|
|
101
|
+
clause in place; never add a dated delta section beside superseded text.
|
|
93
102
|
|
|
94
103
|
## Tools / read-write mode
|
|
95
104
|
|
|
@@ -103,7 +103,10 @@ unclear boundary is underspecified: return `Escalation` without proceeding.
|
|
|
103
103
|
- **No process residue.** Do not put `SLICE-###`, slice numbers, or "this slice"
|
|
104
104
|
in product source, tests, comments, or filenames.
|
|
105
105
|
4. **VERIFY (fail-on-red).** Run writer-safe tests/types/lint: `Tests/proof` plus
|
|
106
|
-
tests of changed code; `## Feature gates` rows are root-owned.
|
|
106
|
+
tests of changed code; `## Feature gates` rows are root-owned. Writer-safe means
|
|
107
|
+
local and non-consumptive — syntax/type/lint, unit and self-check suites, and a
|
|
108
|
+
narrow smoke of the changed path — never only a syntax check; contract text
|
|
109
|
+
cannot strip it. Report required
|
|
107
110
|
build/browser/E2E as `not-run` (root-owned, artifact-producing gates), and only
|
|
108
111
|
when the exact command, cwd, and prerequisites already appear in the unchanged
|
|
109
112
|
vetted `test-plan.md`; never synthesize or rewrite a root command. Root runs
|
|
@@ -4,7 +4,9 @@ Host dispatch; DevRites governs.
|
|
|
4
4
|
|
|
5
5
|
## Roster
|
|
6
6
|
|
|
7
|
-
Review: Spec/Code
|
|
7
|
+
Review: Spec/Code, triggered frontend/security/performance, and the seal roles that can
|
|
8
|
+
judge the frozen digest (test-analyst, doubt, devex); Seal: all applicable roles, citing
|
|
9
|
+
same-candidate Review accounts.
|
|
8
10
|
|
|
9
11
|
| Reviewer | Fires | Trigger |
|
|
10
12
|
|---|---|---|
|
|
@@ -74,8 +76,10 @@ If the candidate diff has no matching surfaces, record
|
|
|
74
76
|
and dedupe by evidence/root cause. Account for all seven (and, in `seal.md`, `devrites-proof-runner` and `devrites-doubt-reviewer`) in
|
|
75
77
|
`review.md`/`seal.md`, each [engineering lane](#engineering-lanes) separately:
|
|
76
78
|
`Outcome:` plus admitted account, or
|
|
77
|
-
`Not-applicable: <inspected-scope reason>`.
|
|
78
|
-
`review.md`
|
|
79
|
+
`Not-applicable: <inspected-scope reason>`. Seal cites, rather than re-dispatches, any
|
|
80
|
+
role `review.md` admitted on the identical candidate under
|
|
81
|
+
[evidence validity](candidate-integrity.md#evidence-validity); a changed digest or newly
|
|
82
|
+
triggered surface needs a fresh account. Persist no dispatch telemetry.
|
|
79
83
|
7. Missing profile, null/failure, or malformed output is a `gap`; never
|
|
80
84
|
infer approval or substitute inline review.
|
|
81
85
|
|
|
@@ -376,6 +376,14 @@ access, safety and irreversible-action boundaries independently stop work.
|
|
|
376
376
|
closes every deferred row with a labeled verdict; Seal blocks on any without one.
|
|
377
377
|
**Failing case:** round 4 finds three Important items on clauses untouched since
|
|
378
378
|
round 1 and dispatches another repair.
|
|
379
|
+
- **Recovery findings need a discriminator; recovery scope stays frozen.** While a
|
|
380
|
+
fingerprint is in recovery, a new Important finding keeps it open or opens another
|
|
381
|
+
only with an executed reproduction or a quoted AC/INV/PROH/accepted-DEC line whose
|
|
382
|
+
observable outcome fails; root turns it into a control the next wright must pass.
|
|
383
|
+
A static counterexample against plan-invented hardening goes to the Review trail or
|
|
384
|
+
`## Deferred findings` (Review gives it a verdict; Seal blocks without one). A
|
|
385
|
+
Critical with a concrete failure path always opens a fingerprint. A correction adds
|
|
386
|
+
no proof site or mechanism its fingerprint's closure does not need. No reviewer is skipped.
|
|
379
387
|
- **Separate consumptive authority from recovery.** Spent one-shot authorization
|
|
380
388
|
blocks another execution, not offline recovery. Retained evidence starts caller-owned
|
|
381
389
|
diagnosis/correction immediately; the next consumptive execution needs fresh authority.
|
|
@@ -389,13 +397,19 @@ access, safety and irreversible-action boundaries independently stop work.
|
|
|
389
397
|
the fingerprint's current *strategy*, not the work. Record that strategy and its
|
|
390
398
|
attempts under `## Dead ends`, then the controlling caller escalates inline in the
|
|
391
399
|
same invocation: re-diagnose from the reproduction and dead ends, take the first
|
|
392
|
-
class below that still has an untried strategy,
|
|
393
|
-
|
|
394
|
-
(
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
400
|
+
class below that still has an untried strategy, and resume with a fresh
|
|
401
|
+
three-attempt budget. Re-plan only when the strategy must change a planning
|
|
402
|
+
input (writer allowlist, interface or contract, slice topology, or a
|
|
403
|
+
`test-plan.md` proof row): run `/rite-plan repair` plus narrow Vet for it. A
|
|
404
|
+
strategy that fits the vetted plan, with `devrites-engine check readiness <slug>`
|
|
405
|
+
still passing, goes straight to the wright with the dead ends in its contract;
|
|
406
|
+
Build's review and proof still gate it. Classes, in order, cheapest evidence
|
|
407
|
+
before costliest change: (1) **shared root cause**: fix the owner every failing
|
|
408
|
+
path routes through and enforce it across all callers instead of another local
|
|
409
|
+
guard; (2) **diagnostic amplification**: add discriminating probes or fixtures,
|
|
410
|
+
then correct from that evidence (last for a consumptive action, whose attempt
|
|
411
|
+
needs fresh authorization); (3) **boundary redesign**: acceptance-preserving
|
|
412
|
+
reslice or redesign of the failing seam, built on that evidence. A recorded strategy, or a rewording of one, never
|
|
399
413
|
repeats. Escalation never weakens tests, validators or acceptance. Each
|
|
400
414
|
fingerprint gets at most three escalations per activation; record each in
|
|
401
415
|
`drift.md` with its class and strategy.
|
|
@@ -163,6 +163,9 @@ A skill that stops without doing this leaves the workspace incomplete.
|
|
|
163
163
|
|
|
164
164
|
Long contexts degrade reasoning quality. Act on context at **50-70% used, not 95%**.
|
|
165
165
|
|
|
166
|
+
Read the engine `context` bundle once per phase instead of re-reading the files it
|
|
167
|
+
contains; after compaction re-read the bundle, not its sources.
|
|
168
|
+
|
|
166
169
|
Every rite names the single resume command on its action line; a `↻ Hygiene:` footer
|
|
167
170
|
advises `/clear`, `/compact`, or `/rite-handoff` and never a competing command. Full phase-by-phase guidance:
|
|
168
171
|
[`context-hygiene.md`](context-hygiene.md).
|
|
@@ -124,6 +124,9 @@ an error because the runner can never execute it.
|
|
|
124
124
|
(an invariant the output must always satisfy) over example (one concrete
|
|
125
125
|
input/output case). An example-shaped oracle on a property-shaped outcome is
|
|
126
126
|
a weak gate — reviewers flag it even when it passes.
|
|
127
|
+
- One CHECK, one oracle: never chain another artifact's self-test before the
|
|
128
|
+
AC's oracle with `&&` — give the self-test its own gate, so a red self-test
|
|
129
|
+
never hides the AC's own result.
|
|
127
130
|
- When an outcome becomes impossible, `gates abandon` it and route the
|
|
128
131
|
handoff — never delete the row to make the ledger pass.
|
|
129
132
|
- The gate set is the coverage denominator: it never shrinks to reach
|
|
@@ -250,6 +250,13 @@ Dismiss an irrelevant case with a reason; silently omitting an applicable case i
|
|
|
250
250
|
- A flaky test is a broken test. Isolate and fix it immediately; don't paper over it with
|
|
251
251
|
retries or `sleep`. **Failing case:** a known-flaky test is left with retries so the
|
|
252
252
|
suite is paper-green at Prove/Seal → NO-GO.
|
|
253
|
+
- **A diagnostic rerun is allowed, never proof.** Rerun a timing-shaped failure on
|
|
254
|
+
the unchanged candidate to classify it flaky or deterministic before a repair;
|
|
255
|
+
record it as diagnostic, never as a pass.
|
|
256
|
+
- **Attributable RED.** A negative control or mutant counts RED only on a positive
|
|
257
|
+
marker from the targeted assertion; a setup, construction, or observation failure
|
|
258
|
+
is never credited as RED. Prove the classifier with an injected setup failure
|
|
259
|
+
that must stay uncredited.
|
|
253
260
|
- **A retry-only pass is `flaky`, never green.** A pass earned by rerun on an unchanged
|
|
254
261
|
candidate digest (no admitted correction between attempts), or by a runner retry
|
|
255
262
|
setting, is `flaky`: record every attempt with the first attempt's outcome. It never
|
|
@@ -38,7 +38,7 @@ Agent-owned backtracking is not a stop condition while the exact causal
|
|
|
38
38
|
fingerprint has budget. Invoke the earlier phase, affected Vet, remediation, and
|
|
39
39
|
proof; then resume the origin. Three no-progress corrections of that exact
|
|
40
40
|
fingerprint spend only its current strategy: escalate to the next correction
|
|
41
|
-
class inline (shared root cause,
|
|
41
|
+
class inline (shared root cause, diagnostic amplification, boundary redesign)
|
|
42
42
|
with a fresh budget, never asking permission. After three escalations in this
|
|
43
43
|
activation the fingerprint parks; finish all independent work, then stop once.
|
|
44
44
|
Preserve reproduction, attempts, and dead ends; never offer `/rite-plan unblock`
|
|
@@ -27,6 +27,9 @@ Execute [`reference/phase-contract.md`](reference/phase-contract.md)
|
|
|
27
27
|
([`one-slice-cycle.md`](reference/one-slice-cycle.md),
|
|
28
28
|
[`afk-discipline.md`](reference/afk-discipline.md)); dispatch uses
|
|
29
29
|
[`reference/wright-dispatch.md`](reference/wright-dispatch.md).
|
|
30
|
+
Every wright contract names the writer-safe checks the wright runs (syntax/type/lint,
|
|
31
|
+
unit and self-check suites, a narrow local smoke) and never forbids them; only
|
|
32
|
+
artifact-producing, consumptive, or full canonical gates stay root-owned.
|
|
30
33
|
|
|
31
34
|
## Required rules
|
|
32
35
|
|
|
@@ -22,7 +22,8 @@ DISPATCH → hand the slice contract to devrites-slice-wright (fresh context).
|
|
|
22
22
|
— dispatch the initial read-only reviews of distinct decisions in parallel
|
|
23
23
|
(independent claims, fresh contexts); wright fixes stay serial — writers share files
|
|
24
24
|
PROVE → root, concurrent with the reviews on the same frozen candidate:
|
|
25
|
-
required build/browser/E2E
|
|
25
|
+
required build/browser/E2E (narrow self-check/smoke first, full gate only
|
|
26
|
+
after it is green, long runs in the background), then returned-diff/path recheck; fail-on-red
|
|
26
27
|
(red/gap → repair wright, then re-review and re-prove; do not commit yet)
|
|
27
28
|
RECORD → orchestrator: after green verification, update state.md/evidence.md and
|
|
28
29
|
upsert the authoritative candidate manifest from the actual scoped diff
|
|
@@ -76,6 +76,11 @@ worktrees stay forbidden.
|
|
|
76
76
|
Quote every active `decisions.md` carry-forward constraint whose `Files:`
|
|
77
77
|
overlap the task paths (or that names no files).
|
|
78
78
|
A new path requires a new bounded contract; the wright cannot widen the task.
|
|
79
|
+
Name the writer-safe commands the wright must run (syntax/type/lint, unit and
|
|
80
|
+
self-check suites, a narrow local smoke of the changed path) and never forbid
|
|
81
|
+
them: a wright that cannot execute writes blind and its failures surface a
|
|
82
|
+
whole review round later. Only artifact-producing, consumptive, or full
|
|
83
|
+
canonical feature gates stay root-owned.
|
|
79
84
|
3. Record `git diff --name-only` before dispatch so unrelated work remains
|
|
80
85
|
distinguishable. For an isolated pilot, also record committed base SHA and exact
|
|
81
86
|
baseline status before asking the host for isolation. **Failing case:** paths that
|
|
@@ -99,6 +104,8 @@ acceptance-preserving split (`root_no_change_analysis` → `FOLD` per
|
|
|
99
104
|
[acceptance-preserving-reslice](../../devrites-lib/reference/standards/acceptance-preserving-reslice.md);
|
|
100
105
|
open findings move to the new slice owning their paths), or record
|
|
101
106
|
`## <DRIFT-ID> — <SLICE-ID> reslice review` with why no smaller split exists and
|
|
107
|
+
a spec trace of the slice's obligations (hardening no AC/INV/PROH requires moves to
|
|
108
|
+
a sibling slice dependents do not need, still gated before Seal), and
|
|
102
109
|
reopen with `--reslice-review <DRIFT-ID>`. Use
|
|
103
110
|
at most one writer across all linked worktrees for this workspace. Never run two
|
|
104
111
|
writers in one worktree, run isolated and same-worktree writers concurrently, or
|
|
@@ -77,6 +77,13 @@ Pull these via `Read` when shaping the plan:
|
|
|
77
77
|
`devrites-plan-drafter` in `define` mode for one atomic candidate bundle:
|
|
78
78
|
`architecture.md`, `plan.md`, `tasks.md`, and `traceability.md` with proof mapping.
|
|
79
79
|
Validate its bounded result; it does not write/ask, and returns human choices to root.
|
|
80
|
+
In the same parallel wave, dispatch one `devrites-evidence-scout` per external
|
|
81
|
+
capability the plan will rest on — OS/SDK/native API, permission or sandbox,
|
|
82
|
+
file format, toolchain, or third-party behavior — that neither live code nor a
|
|
83
|
+
cited dossier already proves (at most three, as in Spec). Fold each dossier
|
|
84
|
+
before step 2a: cite a proven capability in `architecture.md`; an unproven or
|
|
85
|
+
contradicted one becomes a risk spike ordered before its dependent slices,
|
|
86
|
+
never an assumption the build discovers.
|
|
80
87
|
2. **Reconcile architecture + approach** against live seams; root writes at step 6.
|
|
81
88
|
`architecture.md` owns layers/boundaries/integrations/data/dependencies/risks/impact;
|
|
82
89
|
`plan.md` owns build strategy. Use the code index for structure/impact
|
|
@@ -148,7 +155,9 @@ Pull these via `Read` when shaping the plan:
|
|
|
148
155
|
intended, route it through the Spec Drift Guard plus a recorded decision and a scoped principle
|
|
149
156
|
exception a human approves. Never ready a plan that silently violates an invariant. (Re-scored
|
|
150
157
|
as a blocking gate at `/rite-vet`; no file → none declared → nothing to check.)
|
|
151
|
-
6. **Write** `architecture.md`, `plan.md`, `tasks.md`, and `traceability.md
|
|
158
|
+
6. **Write** `architecture.md`, `plan.md`, `tasks.md`, and `traceability.md` — save the
|
|
159
|
+
accepted bundle under `packets/` and apply it with `devrites-engine state
|
|
160
|
+
apply-bundle <slug> <bundle.json>` before root reconciliation edits; update
|
|
152
161
|
`state.md` (phase: plan → next `/rite-vet`). When diagrams clarify, also write optional
|
|
153
162
|
`flows.md` (**Mermaid-first**). If a richer reviewable visual earns it, emit
|
|
154
163
|
`visual/<flow>.html` + `visual/<flow>.outline.md` after loading matching playbooks from
|
|
@@ -5,7 +5,7 @@ argument-hint: "[mode: decompose|reslice|repair|reorder|split|unblock|course-cor
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/acceptance-preserving-reslice.md","devrites-lib/reference/standards/tooling.md","devrites-lib/reference/standards/agents.md","rite-plan/reference/slicing.md","rite-plan/reference/replan-and-repair.md","rite-plan/reference/dependency-graph.md","rite-plan/reference/task-breakdown.md","rite-plan/reference/anti-patterns.md","rite-define/reference/plan-template.md"],"triggers":{"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"one-shot":["devrites-lib/reference/standards/one-shot-actions.md"],"assumption-delta":["devrites-lib/reference/standards/assumption-checkpoints.md"],"workflow":["devrites-lib/reference/standards/development-workflow.md"],"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md","drift.md"],"workspaceByRole":{"plan-drafter":["brief.md","spec.md","plan.md","tasks.md","decision-coverage.md","questions.md","decisions.md","assumptions.md","architecture.md","state.md","drift.md"]}} -->
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/acceptance-preserving-reslice.md","devrites-lib/reference/standards/tooling.md","devrites-lib/reference/standards/agents.md","rite-plan/reference/slicing.md","rite-plan/reference/replan-and-repair.md","rite-plan/reference/dependency-graph.md","rite-plan/reference/task-breakdown.md","rite-plan/reference/anti-patterns.md","rite-define/reference/plan-template.md"],"triggers":{"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"one-shot":["devrites-lib/reference/standards/one-shot-actions.md"],"assumption-delta":["devrites-lib/reference/standards/assumption-checkpoints.md"],"workflow":["devrites-lib/reference/standards/development-workflow.md"],"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md","drift.md"],"workspaceByRole":{"evidence-scout":["spec.md","architecture.md","decisions.md","state.md"],"plan-drafter":["brief.md","spec.md","plan.md","tasks.md","decision-coverage.md","questions.md","decisions.md","assumptions.md","architecture.md","state.md","drift.md"]}} -->
|
|
9
9
|
> Read-set manifest: `devrites-engine context --skills-root .pi/skills <slug> --phase plan` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
10
|
|
|
11
11
|
|
|
@@ -95,15 +95,21 @@ Before classifying any Reslice, read `.pi/skills/devrites-lib/reference/standard
|
|
|
95
95
|
never re-derives them by exhaustive search. It also carries a bounded
|
|
96
96
|
self-attack over the delta (`self_attack_exposures`), catching the shallow
|
|
97
97
|
next-round findings before Vet's dispatch rather than after a full loop.
|
|
98
|
-
|
|
98
|
+
During recovery, a non-Critical exposure off the failing fingerprint's causal
|
|
99
|
+
path goes to `eng-review.md` `## Deferred findings` (Review gives it a verdict;
|
|
100
|
+
Seal blocks without one), so a repair never widens past its fingerprint.
|
|
101
|
+
Root dispositions every other exposure — fold as a finding, accept as a declared
|
|
99
102
|
residual, or reject with reason; none silently drops.
|
|
100
103
|
Packet mechanics: dedupe at assembly — findings with an identical
|
|
101
104
|
required-fix and site set merge into one entry that closes all their
|
|
102
105
|
fingerprints. The packet may carry digest-pinned site excerpts so the
|
|
103
|
-
drafter spot-verifies anchors instead of re-scanning whole files
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
106
|
+
drafter spot-verifies anchors instead of re-scanning whole files. Root
|
|
107
|
+
partitions findings into anchor-disjoint clusters — findings sharing any
|
|
108
|
+
anchor or mirrored clause stay in one cluster — and, with two or more,
|
|
109
|
+
dispatches one drafter per cluster in one parallel wave within the scale
|
|
110
|
+
limits. Every cluster pins the same base; their bundles apply together in
|
|
111
|
+
one `state apply-bundle` call, and an overlap refusal merges those clusters
|
|
112
|
+
for the re-dispatch. A `partial`-
|
|
107
113
|
continuation re-dispatch continues the same packet; it does not advance the
|
|
108
114
|
same-seam counter. Count consecutive repair packets whose findings' cited clause sets overlap
|
|
109
115
|
the immediately previous packet's — the overlap is the seam. Carry it as an explicit
|
|
@@ -142,9 +148,14 @@ Before classifying any Reslice, read `.pi/skills/devrites-lib/reference/standard
|
|
|
142
148
|
4. Re-slice using vertical-slice rules: [slicing](reference/slicing.md) and
|
|
143
149
|
[task-breakdown](reference/task-breakdown.md). Prefer thin, shippable, verifiable.
|
|
144
150
|
**Completion:** every slice is independently shippable/provable or carries an irreducibility reason.
|
|
145
|
-
5. Reconcile the candidate against steps 3 and 4,
|
|
146
|
-
`
|
|
147
|
-
|
|
151
|
+
5. Reconcile the candidate's meaning against steps 3 and 4, save each bundle
|
|
152
|
+
under `packets/`, and apply its hunks with `devrites-engine state apply-bundle
|
|
153
|
+
<slug> <bundle.json>...` (all-or-nothing; `--dry-run` previews); never
|
|
154
|
+
hand-copy hunks or stage file copies. Rewrite each owning clause in place; never
|
|
155
|
+
append a dated delta or fold section beside the clause it supersedes (apply-bundle
|
|
156
|
+
refuses one). Then update `state.md` and append
|
|
157
|
+
rationale to `decisions.md`. A rejected candidate
|
|
158
|
+
(malformed bundle, stale or non-unique anchor, any apply-bundle refusal) or a drafter `Outcome: gap`
|
|
148
159
|
is one no-progress outcome on every open fingerprint in the fold; the
|
|
149
160
|
re-dispatch packet must name the rejection so the same hunks don't recur.
|
|
150
161
|
A gap naming genuinely human-owned information routes to `/rite-clarify`.
|
|
@@ -77,8 +77,10 @@ Incomplete comparison is **not** agreement. Record axis deltas in `polish-report
|
|
|
77
77
|
captures.
|
|
78
78
|
3. **Always** read [`reference/code.md`](reference/code.md) and assess **Phase 1
|
|
79
79
|
(code polish)**; if backend was touched, assess **Phase 2 (backend polish)** from
|
|
80
|
-
the same file.
|
|
81
|
-
|
|
80
|
+
the same file. Assess step 4's UI phases on the same frozen digest while the
|
|
81
|
+
code assessment runs, reconcile both, then send every accepted code and UI
|
|
82
|
+
correction as one bounded wright contract (normalize corrections before polish
|
|
83
|
+
ones): build its read-set with
|
|
82
84
|
`devrites-engine context --skills-root .pi/skills <slug> --phase polish --role slice-wright`, run the
|
|
83
85
|
single-agent wave through `devrites-engine dispatch <slug> open|start|seal|return`
|
|
84
86
|
(auto-records dispatch/return metrics), and gate returned paths
|
|
@@ -91,8 +93,8 @@ Incomplete comparison is **not** agreement. Record axis deltas in `polish-report
|
|
|
91
93
|
its `FAIL` and `PARTIAL` rows are the normalize/quality-bar worklist**: identify the root
|
|
92
94
|
cause of each (a missing state, an off-token CTA, or an anti-slop hit) rather than
|
|
93
95
|
hiding it with decoration. Assess **Phase 3 (normalize)** → **Phase 4 (UI polish)**,
|
|
94
|
-
|
|
95
|
-
corrections
|
|
96
|
+
and fold accepted UI
|
|
97
|
+
corrections into step 3's single wright contract (the wright invokes the relevant craft skill). Honor argument modes:
|
|
96
98
|
- `bolder | quieter | distill | harden`: passed to Phase 4 as the
|
|
97
99
|
emphasis dial.
|
|
98
100
|
- `normalize-only`: assess Phase 3 and stop (no Phase 4).
|
|
@@ -76,7 +76,8 @@ test changes.
|
|
|
76
76
|
command, cwd, prerequisites, exit, and sanitized
|
|
77
77
|
decisive output, plus the test selector, runner counts
|
|
78
78
|
(collected/ran/passed/failed/skipped), and attempt number with first-attempt
|
|
79
|
-
outcome; output and exit come from one execution. Run relevant suite plus build/typecheck/lint
|
|
79
|
+
outcome; output and exit come from one execution. Run relevant suite plus build/typecheck/lint,
|
|
80
|
+
concurrently when they share no build directory, port, or lock. Recheck the
|
|
80
81
|
candidate and require identical digest/no source mutation. Reject substituted
|
|
81
82
|
commands, malformed manifests, zero-test/skipped/filtered behavioral claims,
|
|
82
83
|
exit-status-only claims, status-masking forms, and source drift. A retry-only
|
|
@@ -109,7 +110,7 @@ test changes.
|
|
|
109
110
|
described screenshots, console/network, interaction, target comparisons, and
|
|
110
111
|
every required state. Material mismatch fails.
|
|
111
112
|
7. **Independent validation.** Fresh read-only `devrites-proof-runner` and
|
|
112
|
-
`devrites-spec-reviewer
|
|
113
|
+
`devrites-spec-reviewer`, in one parallel wave, judge the same candidate/commands/evidence/acceptance map.
|
|
113
114
|
Neither runs commands; reject missing/stale, invented-ID, label-only or self-attested reports.
|
|
114
115
|
8. **Map proof.** Reconcile verdicts under [acceptance-proof.md](reference/acceptance-proof.md).
|
|
115
116
|
Every criterion/scenario/interaction/key link needs discriminating evidence or a
|
|
@@ -79,7 +79,8 @@ Pull these via `Read` when the diff demands them:
|
|
|
79
79
|
reviewer's brief without severity) and ends in `review.md` with its own label and
|
|
80
80
|
action tag — never silently dropped. Hand each lane reviewer the
|
|
81
81
|
`devrites-engine recall --paths <its touched paths>` pointers as prior context, not findings.
|
|
82
|
-
2. **Review tests first
|
|
82
|
+
2. **Review tests first** while the step-3 cohort runs — launch it first; this
|
|
83
|
+
root pass needs none of its output: do they prove the acceptance criteria? Missing,
|
|
83
84
|
weak, or wrong tests are the first findings.
|
|
84
85
|
**Completion:** every acceptance criterion maps to a proven test or a labeled finding.
|
|
85
86
|
3. **Review spec and code separately in parallel.** A change can pass
|
|
@@ -100,6 +101,10 @@ Pull these via `Read` when the diff demands them:
|
|
|
100
101
|
(scope creep / drift), (c) criteria implemented incorrectly. Quote the spec
|
|
101
102
|
line per finding. If the spec is missing or unreadable, report `Review gap:
|
|
102
103
|
missing spec` and do not infer requirements from the diff."
|
|
104
|
+
- **Seal roles** → `devrites-test-analyst`, plus `devrites-doubt-reviewer` per
|
|
105
|
+
stood decision and `devrites-devex-reviewer` when triggered, join this cohort on
|
|
106
|
+
the same digest. Their findings join step 7's single correction, and Seal cites
|
|
107
|
+
their unchanged same-candidate accounts instead of re-dispatching them.
|
|
103
108
|
- **Code-review axis** → `devrites-code-reviewer`: "Apply your full documented
|
|
104
109
|
discipline (tests-first, correctness, readability, architecture, maintainability,
|
|
105
110
|
standards) on the feature workspace + diff. Cite file:line; skip tooling-enforced
|
|
@@ -61,8 +61,8 @@ Follow [`reference/phase-contract.md`](reference/phase-contract.md)
|
|
|
61
61
|
|
|
62
62
|
1. read workspace and final diff;
|
|
63
63
|
2. recheck the canonical candidate/bindings and approved repository/CI proof;
|
|
64
|
-
3. admit valid
|
|
65
|
-
`../devrites-lib/reference/parallel-dispatch.md` on the same frozen candidate,
|
|
64
|
+
3. admit every valid same-candidate Review account; dispatch remaining required exact roles under
|
|
65
|
+
`../devrites-lib/reference/parallel-dispatch.md` in one wave, proof-runner included, on the same frozen candidate,
|
|
66
66
|
code review through its § Engineering lanes;
|
|
67
67
|
4. reconcile their read-only verdicts against source and immutable evidence;
|
|
68
68
|
5. draft GO/NO-GO `seal.md` with acceptance, tests, decisions, and seven roster accounts plus proof-runner and doubt-reviewer
|
|
@@ -13,12 +13,18 @@
|
|
|
13
13
|
candidate check afterward and require the identical digest and no source
|
|
14
14
|
mutation. Capture command, cwd, exit, decisive output, and identity.
|
|
15
15
|
Missing/red/mismatched blocks; unavailable is `cannot_verify`, never pass.
|
|
16
|
+
Steps 3–6 share one dispatch wave: launch every role they still need
|
|
17
|
+
(proof-runner, test-analyst, doubt-reviewer, roster) together, admit valid
|
|
18
|
+
same-candidate Review accounts instead, and do the root work of steps 4–6 while
|
|
19
|
+
the wave runs.
|
|
20
|
+
|
|
16
21
|
3. **Judge acceptance.** Dispatch exact `devrites-proof-runner` on immutable
|
|
17
22
|
proof; admit valid same-candidate `devrites-spec-reviewer` evidence from Review
|
|
18
23
|
or dispatch that exact reviewer. Reconcile every
|
|
19
24
|
AC/REQ/scenario/key link by ID and meaning; missing/stale/self-attested/mismatched is NO-GO.
|
|
20
25
|
4. **Judge tests.** Diff baseline/candidate tests for deletion, skip/focus,
|
|
21
|
-
tautology, or weakening;
|
|
26
|
+
tautology, or weakening; admit the same-candidate `devrites-test-analyst` account
|
|
27
|
+
from Review or dispatch that exact analyst. Missing or
|
|
22
28
|
adverse account, or green tests not asserting mapped behavior, is Critical.
|
|
23
29
|
5. **Resolve gates.** Open blocking/escalating/validating questions and drift
|
|
24
30
|
block. Each stood decision needs a reconciled exact `devrites-doubt-reviewer` verdict.
|
|
@@ -5,7 +5,7 @@ argument-hint: "[slug] [--cross-model] [--full]"
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/gates.md","rite-vet/reference/review-axes.md","rite-vet/reference/artifacts.md","rite-vet/reference/depth.md","rite-vet/reference/eng-lenses.md","rite-vet/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"assumption-delta":["devrites-lib/reference/standards/assumption-checkpoints.md"],"cross-model":["rite-vet/reference/cross-model.md"],"devex":["devrites-lib/reference/standards/developer-experience.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"elicitation":["devrites-lib/reference/standards/elicitation.md"],"errors":["devrites-lib/reference/standards/error-handling.md"],"grammar":["devrites-lib/reference/standards/spec-grammar.md"],"one-shot":["devrites-lib/reference/standards/one-shot-actions.md"],"performance":["devrites-lib/reference/standards/performance.md"],"principles":["devrites-lib/reference/standards/principles.md"],"reslice":["devrites-lib/reference/standards/acceptance-preserving-reslice.md"],"testing":["devrites-lib/reference/standards/testing.md"],"workflow":["devrites-lib/reference/standards/development-workflow.md"],"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"yagni":["devrites-lib/reference/standards/patterns.md","devrites-lib/reference/standards/coding-style.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","strategy.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md"],"workspaceByRole":{"devex-reviewer":["spec.md","plan.md","tasks.md","decisions.md","state.md"],"plan-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","decision-coverage.md","architecture.md","decisions.md","state.md"],"strategy-reviewer":["brief.md","spec.md","plan.md","decisions.md","decision-coverage.md","strategy.md","state.md"]}} -->
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/gates.md","rite-vet/reference/review-axes.md","rite-vet/reference/artifacts.md","rite-vet/reference/depth.md","rite-vet/reference/eng-lenses.md","rite-vet/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"assumption-delta":["devrites-lib/reference/standards/assumption-checkpoints.md"],"cross-model":["rite-vet/reference/cross-model.md"],"devex":["devrites-lib/reference/standards/developer-experience.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"elicitation":["devrites-lib/reference/standards/elicitation.md"],"errors":["devrites-lib/reference/standards/error-handling.md"],"grammar":["devrites-lib/reference/standards/spec-grammar.md"],"one-shot":["devrites-lib/reference/standards/one-shot-actions.md"],"performance":["devrites-lib/reference/standards/performance.md"],"principles":["devrites-lib/reference/standards/principles.md"],"reslice":["devrites-lib/reference/standards/acceptance-preserving-reslice.md"],"testing":["devrites-lib/reference/standards/testing.md"],"workflow":["devrites-lib/reference/standards/development-workflow.md"],"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"yagni":["devrites-lib/reference/standards/patterns.md","devrites-lib/reference/standards/coding-style.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","strategy.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/elicitation.md"],"workspaceByRole":{"doubt-reviewer":["spec.md","architecture.md","plan.md","tasks.md","test-plan.md","decisions.md","state.md"],"devex-reviewer":["spec.md","plan.md","tasks.md","decisions.md","state.md"],"plan-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","decision-coverage.md","architecture.md","decisions.md","state.md"],"strategy-reviewer":["brief.md","spec.md","plan.md","decisions.md","decision-coverage.md","strategy.md","state.md"]}} -->
|
|
9
9
|
> Read-set manifest: `devrites-engine context --skills-root .pi/skills <slug> --phase vet` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
10
|
|
|
11
11
|
|
|
@@ -85,7 +85,9 @@ plan declares a root-authored executable workflow file, read
|
|
|
85
85
|
Temper — in
|
|
86
86
|
parallel under `../devrites-lib/reference/parallel-dispatch.md`; they are
|
|
87
87
|
independent read-only passes on one frozen candidate. Missing
|
|
88
|
-
required account blocks.
|
|
88
|
+
required account blocks. Run root steps 2–4, including step 3's preflight
|
|
89
|
+
commands, on the same frozen candidate while the wave is out; reconcile the
|
|
90
|
+
accounts when they return.
|
|
89
91
|
1b. **Recovery recheck.** Require valid return cursor, accepted prior finding,
|
|
90
92
|
exact fingerprint/reproduction, repaired candidate identity, changed
|
|
91
93
|
paths/criteria, affected drift/evidence, and the recorded delta self-check.
|
|
@@ -108,8 +110,8 @@ plan declares a root-authored executable workflow file, read
|
|
|
108
110
|
marked as a refinement of an already-pinned clause; the recheck may re-raise
|
|
109
111
|
it only by naming a concrete failure path the declaration omits. A
|
|
110
112
|
`new_failure_mode` finding is never residual-eligible. A fold whose
|
|
111
|
-
findings are all Suggestion-or-lower rechecks mechanically at the
|
|
112
|
-
materialization gate — anchors applied, mirrors consistent, invariants
|
|
113
|
+
findings are all `mechanism` kind or Suggestion-or-lower rechecks mechanically at the
|
|
114
|
+
materialization gate — anchors applied (a clean `state apply-bundle`), mirrors consistent, invariants
|
|
113
115
|
pass — without a dispatched reviewer; sub-Important findings already
|
|
114
116
|
cannot keep recovery open. Reconcile
|
|
115
117
|
shared artifact/readiness gates, then enter step 8 or the next repair.
|
|
@@ -142,7 +144,9 @@ plan declares a root-authored executable workflow file, read
|
|
|
142
144
|
ownership. The plan's `Shared contract proof` names one reused boundary
|
|
143
145
|
artifact plus two consuming tests for every changed API/event/schema/provider-
|
|
144
146
|
consumer seam, or an explicit no-impact statement. Missing, one-sided,
|
|
145
|
-
duplicated-contract, vague, or non-consuming proof fails closed.
|
|
147
|
+
duplicated-contract, vague, or non-consuming proof fails closed. Each slice
|
|
148
|
+
names a fast writer-safe check its wright can run; proof reachable only through
|
|
149
|
+
root-owned full gates is a `mechanism` finding.
|
|
146
150
|
|
|
147
151
|
Technical gaps are `NEEDS REPLAN` and Plan repair — each finding marks
|
|
148
152
|
itself `new_failure_mode` or names the already-pinned clause/fingerprint
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.4",
|
|
4
4
|
"description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code, Codex, omp, pi, and Devin CLI",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"homepage": "https://github.com/ViktorsBaikers/DevRites#readme",
|