devrites 4.0.12 → 4.1.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 +8 -0
- package/README.md +3 -3
- package/docs/architecture.md +4 -4
- package/docs/command-map.md +4 -3
- package/docs/flow.md +2 -1
- package/docs/orchestration.md +45 -4
- package/docs/skills.md +4 -3
- package/engine/internal/devritespaths/paths.go +5 -4
- package/engine/internal/hostpack/hostpack.go +9 -4
- package/engine/internal/hostpack/hostpack_test.go +16 -7
- package/engine/internal/install/install_test.go +5 -0
- package/pack/.claude/agents/devrites-code-reviewer.md +6 -1
- package/pack/.claude/agents/devrites-plan-drafter.md +5 -0
- package/pack/.claude/agents/devrites-plan-reviewer.md +6 -0
- package/pack/.claude/agents/devrites-proof-runner.md +7 -1
- package/pack/.claude/agents/devrites-retrospector.md +21 -25
- package/pack/.claude/agents/devrites-security-auditor.md +7 -3
- package/pack/.claude/agents/devrites-slice-wright.md +30 -4
- package/pack/.claude/agents/devrites-spec-reviewer.md +5 -0
- package/pack/.claude/agents/devrites-strategy-reviewer.md +3 -4
- package/pack/.claude/agents/devrites-test-analyst.md +5 -0
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +12 -16
- package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +11 -14
- package/pack/.claude/skills/devrites-doubt/SKILL.md +3 -4
- package/pack/.claude/skills/devrites-frontend-craft/reference/reuse-first.md +3 -4
- package/pack/.claude/skills/devrites-lib/reference/standards/README.md +5 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -8
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +11 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +19 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +5 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/data-integrity.md +95 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +5 -5
- package/pack/.claude/skills/devrites-lib/reference/standards/documentation.md +28 -29
- package/pack/.claude/skills/devrites-lib/reference/standards/edge-case-trace.md +70 -10
- package/pack/.claude/skills/devrites-lib/reference/standards/integration-reliability.md +79 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/loop-operations.md +85 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/observability.md +10 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +20 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/repository-topology.md +73 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/security-checklist.md +6 -2
- package/pack/.claude/skills/devrites-lib/reference/standards/security.md +51 -16
- package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +35 -40
- package/pack/.claude/skills/devrites-lib/reference/standards/test-proof-checklist.md +4 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +51 -6
- package/pack/.claude/skills/rite/SKILL.md +2 -0
- package/pack/.claude/skills/rite-adopt/SKILL.md +8 -10
- package/pack/.claude/skills/rite-adopt/reference/adoption.md +13 -15
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +18 -11
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +29 -6
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -0
- package/pack/.claude/skills/rite-build/SKILL.md +7 -1
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +6 -1
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +37 -4
- package/pack/.claude/skills/rite-clarify/SKILL.md +3 -2
- package/pack/.claude/skills/rite-converge/SKILL.md +4 -2
- package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +8 -4
- package/pack/.claude/skills/rite-customize/SKILL.md +16 -18
- package/pack/.claude/skills/rite-define/SKILL.md +60 -62
- package/pack/.claude/skills/rite-define/reference/plan-template.md +88 -71
- package/pack/.claude/skills/rite-explain/SKILL.md +2 -1
- package/pack/.claude/skills/rite-learn/SKILL.md +28 -32
- package/pack/.claude/skills/rite-plan/SKILL.md +42 -45
- package/pack/.claude/skills/rite-plan/reference/dependency-graph.md +11 -2
- package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +2 -0
- package/pack/.claude/skills/rite-polish/reference/adr-promotion.md +7 -7
- package/pack/.claude/skills/rite-pressure-test/SKILL.md +24 -31
- package/pack/.claude/skills/rite-prove/SKILL.md +12 -15
- package/pack/.claude/skills/rite-prove/reference/acceptance-proof.md +28 -0
- package/pack/.claude/skills/rite-review/SKILL.md +5 -4
- package/pack/.claude/skills/rite-review/reference/five-axis-review.md +6 -0
- package/pack/.claude/skills/rite-review/reference/security-review.md +7 -2
- package/pack/.claude/skills/rite-seal/reference/final-evidence.md +3 -0
- package/pack/.claude/skills/rite-seal/reference/risk-and-rollback.md +19 -4
- package/pack/.claude/skills/rite-ship/reference/rollout.md +62 -43
- package/pack/.claude/skills/rite-spec/SKILL.md +8 -1
- package/pack/.claude/skills/rite-spec/reference/ai-spec-template.md +13 -6
- package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +14 -2
- package/pack/.claude/skills/rite-spec/reference/spec-template.md +33 -4
- package/pack/.claude/skills/rite-temper/SKILL.md +5 -1
- package/pack/.claude/skills/rite-vet/SKILL.md +8 -8
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +5 -3
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +67 -77
- package/pack/.claude/skills/rite-watch-pr/SKILL.md +85 -0
- package/pack/.claude/skills/rite-zoom-out/SKILL.md +4 -5
- package/pack/.claude/workflows/devrites-readonly-review.js +194 -0
- package/pack/generated/README.md +1 -1
- package/pack/generated/claude/agents/devrites-code-reviewer.md +6 -1
- package/pack/generated/claude/agents/devrites-plan-drafter.md +5 -0
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +6 -0
- package/pack/generated/claude/agents/devrites-proof-runner.md +7 -1
- package/pack/generated/claude/agents/devrites-retrospector.md +21 -25
- package/pack/generated/claude/agents/devrites-security-auditor.md +7 -3
- package/pack/generated/claude/agents/devrites-slice-wright.md +30 -4
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +5 -0
- package/pack/generated/claude/agents/devrites-strategy-reviewer.md +3 -4
- package/pack/generated/claude/agents/devrites-test-analyst.md +5 -0
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +12 -16
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +11 -14
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +3 -4
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/reuse-first.md +3 -4
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +5 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -8
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +11 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +19 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +5 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/data-integrity.md +95 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +5 -5
- package/pack/generated/claude/skills/devrites-lib/reference/standards/documentation.md +28 -29
- package/pack/generated/claude/skills/devrites-lib/reference/standards/edge-case-trace.md +70 -10
- package/pack/generated/claude/skills/devrites-lib/reference/standards/integration-reliability.md +79 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/loop-operations.md +85 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/observability.md +10 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +20 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/repository-topology.md +73 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security-checklist.md +6 -2
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +51 -16
- package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +35 -40
- package/pack/generated/claude/skills/devrites-lib/reference/standards/test-proof-checklist.md +4 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +51 -6
- package/pack/generated/claude/skills/rite/SKILL.md +2 -0
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +8 -10
- package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +13 -15
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +18 -11
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +29 -6
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -0
- package/pack/generated/claude/skills/rite-build/SKILL.md +7 -1
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +6 -1
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +37 -4
- package/pack/generated/claude/skills/rite-clarify/SKILL.md +3 -2
- package/pack/generated/claude/skills/rite-converge/SKILL.md +4 -2
- package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +8 -4
- package/pack/generated/claude/skills/rite-customize/SKILL.md +16 -18
- package/pack/generated/claude/skills/rite-define/SKILL.md +60 -62
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +88 -71
- package/pack/generated/claude/skills/rite-explain/SKILL.md +2 -1
- package/pack/generated/claude/skills/rite-learn/SKILL.md +28 -32
- package/pack/generated/claude/skills/rite-plan/SKILL.md +42 -45
- package/pack/generated/claude/skills/rite-plan/reference/dependency-graph.md +11 -2
- package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +2 -0
- package/pack/generated/claude/skills/rite-polish/reference/adr-promotion.md +7 -7
- package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +24 -31
- package/pack/generated/claude/skills/rite-prove/SKILL.md +12 -15
- package/pack/generated/claude/skills/rite-prove/reference/acceptance-proof.md +28 -0
- package/pack/generated/claude/skills/rite-review/SKILL.md +5 -4
- package/pack/generated/claude/skills/rite-review/reference/five-axis-review.md +6 -0
- package/pack/generated/claude/skills/rite-review/reference/security-review.md +7 -2
- package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +3 -0
- package/pack/generated/claude/skills/rite-seal/reference/risk-and-rollback.md +19 -4
- package/pack/generated/claude/skills/rite-ship/reference/rollout.md +62 -43
- package/pack/generated/claude/skills/rite-spec/SKILL.md +8 -1
- package/pack/generated/claude/skills/rite-spec/reference/ai-spec-template.md +13 -6
- package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +14 -2
- package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +33 -4
- package/pack/generated/claude/skills/rite-temper/SKILL.md +5 -1
- package/pack/generated/claude/skills/rite-vet/SKILL.md +8 -8
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +5 -3
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +67 -77
- package/pack/generated/claude/skills/rite-watch-pr/SKILL.md +85 -0
- package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +4 -5
- package/pack/generated/claude/workflows/devrites-readonly-review.js +194 -0
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +6 -1
- package/pack/generated/codex/agents/devrites-plan-drafter.toml +5 -0
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +6 -0
- package/pack/generated/codex/agents/devrites-proof-runner.toml +7 -1
- package/pack/generated/codex/agents/devrites-retrospector.toml +21 -25
- package/pack/generated/codex/agents/devrites-security-auditor.toml +7 -3
- package/pack/generated/codex/agents/devrites-slice-wright.toml +30 -4
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +5 -0
- package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +3 -4
- package/pack/generated/codex/agents/devrites-test-analyst.toml +5 -0
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +12 -16
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +11 -14
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +3 -4
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/reuse-first.md +3 -4
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +5 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +33 -8
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +11 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +19 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +5 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/data-integrity.md +95 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +5 -5
- package/pack/generated/codex/skills/devrites-lib/reference/standards/documentation.md +28 -29
- package/pack/generated/codex/skills/devrites-lib/reference/standards/edge-case-trace.md +70 -10
- package/pack/generated/codex/skills/devrites-lib/reference/standards/integration-reliability.md +79 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/loop-operations.md +85 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/observability.md +10 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +20 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/repository-topology.md +73 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security-checklist.md +6 -2
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +51 -16
- package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +35 -40
- package/pack/generated/codex/skills/devrites-lib/reference/standards/test-proof-checklist.md +4 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +51 -6
- package/pack/generated/codex/skills/rite/SKILL.md +2 -0
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +8 -10
- package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +13 -15
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +18 -11
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +29 -6
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +7 -0
- package/pack/generated/codex/skills/rite-build/SKILL.md +7 -1
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +6 -1
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +37 -4
- package/pack/generated/codex/skills/rite-clarify/SKILL.md +3 -2
- package/pack/generated/codex/skills/rite-converge/SKILL.md +4 -2
- package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +8 -4
- package/pack/generated/codex/skills/rite-customize/SKILL.md +16 -18
- package/pack/generated/codex/skills/rite-define/SKILL.md +60 -62
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +88 -71
- package/pack/generated/codex/skills/rite-explain/SKILL.md +2 -1
- package/pack/generated/codex/skills/rite-learn/SKILL.md +28 -32
- package/pack/generated/codex/skills/rite-plan/SKILL.md +42 -45
- package/pack/generated/codex/skills/rite-plan/reference/dependency-graph.md +11 -2
- package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +2 -0
- package/pack/generated/codex/skills/rite-polish/reference/adr-promotion.md +7 -7
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +24 -31
- package/pack/generated/codex/skills/rite-prove/SKILL.md +12 -15
- package/pack/generated/codex/skills/rite-prove/reference/acceptance-proof.md +28 -0
- package/pack/generated/codex/skills/rite-review/SKILL.md +5 -4
- package/pack/generated/codex/skills/rite-review/reference/five-axis-review.md +6 -0
- package/pack/generated/codex/skills/rite-review/reference/security-review.md +7 -2
- package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +3 -0
- package/pack/generated/codex/skills/rite-seal/reference/risk-and-rollback.md +19 -4
- package/pack/generated/codex/skills/rite-ship/reference/rollout.md +62 -43
- package/pack/generated/codex/skills/rite-spec/SKILL.md +8 -1
- package/pack/generated/codex/skills/rite-spec/reference/ai-spec-template.md +13 -6
- package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +14 -2
- package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +33 -4
- package/pack/generated/codex/skills/rite-temper/SKILL.md +5 -1
- package/pack/generated/codex/skills/rite-vet/SKILL.md +8 -8
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +5 -3
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +67 -77
- package/pack/generated/codex/skills/rite-watch-pr/SKILL.md +85 -0
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +4 -5
- package/package.json +1 -1
- package/scripts/build-host-artifacts.sh +3 -1
|
@@ -7,34 +7,33 @@ user-invocable: true
|
|
|
7
7
|
|
|
8
8
|
# /rite-plan: (re)plan an active feature
|
|
9
9
|
|
|
10
|
-
Update
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
user to run `/rite-spec <feature>`. **Revise mode is artifact-only**: reconcile
|
|
10
|
+
Update a plan invalidated by evidence, drift, or user decision. **Read the active workspace
|
|
11
|
+
first.** Missing `.devrites/ACTIVE`/workspace stops to `/rite-spec <feature>`. **Revise is
|
|
12
|
+
artifact-only**: reconcile
|
|
14
13
|
`spec.md` / `architecture.md` / `plan.md` / `tasks.md` / `traceability.md` without
|
|
15
14
|
editing source code.
|
|
16
15
|
|
|
17
16
|
## Rules consulted (read on demand from `.claude/skills/devrites-lib/reference/standards/`)
|
|
18
17
|
Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD criteria.
|
|
18
|
+
Load `repository-topology.md`, `data-integrity.md`, or `integration-reliability.md`
|
|
19
|
+
when the spec applicability map or observed drift triggers them.
|
|
19
20
|
|
|
20
21
|
## Operating rules
|
|
21
22
|
- Update the spec when needed, but never plan around a known-wrong assumption.
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
agent-owned and must not become a question.
|
|
23
|
+
- For product behavior, scope, architecture, data, UX, security, or migration changes,
|
|
24
|
+
search facts then route human-owned contract decisions through `/rite-clarify`/Drift
|
|
25
|
+
Guard. Reversible technical repair is agent-owned, not a question.
|
|
26
26
|
- Keep each slice small enough for one focused build → prove cycle.
|
|
27
|
-
- **
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
[`reference/slicing.md`](reference/slicing.md) ("How many slices?").
|
|
27
|
+
- **Derive slice count:** reslice when work cannot build+prove in one cycle, not to hit a
|
|
28
|
+
requested tally. Treat counts as hints and explain honest differences; see
|
|
29
|
+
[`slicing.md`](reference/slicing.md).
|
|
31
30
|
- **Size by complexity, order by dependency.** A slice carries a `Complexity: N/5` score (from
|
|
32
31
|
`/rite-define`); a slice scoring **>3** is a reslice trigger unless its inline reason justifies
|
|
33
32
|
the irreducible complexity. Honor each slice's `depends_on:`: the next *buildable* slice is the
|
|
34
33
|
lowest pending one whose dependencies are all built. This preserves one-slice-at-a-time execution.
|
|
35
34
|
- **Root writes; drafter proposes.** Follow
|
|
36
35
|
[`agents.md`](../devrites-lib/reference/standards/agents.md). The controlling chat owns
|
|
37
|
-
human questions, decisions, reconciliation, and
|
|
36
|
+
human questions, decisions, reconciliation, and planning writes.
|
|
38
37
|
- **Nested repair preserves its caller.** When `state.md` contains a valid
|
|
39
38
|
technical-backtracking return cursor, preserve any valid return cursor
|
|
40
39
|
byte-for-byte. `/rite-vet` is the next internal prerequisite, not a command to
|
|
@@ -47,12 +46,9 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
|
|
|
47
46
|
1. Read `spec.md`, `decision-coverage.md`, `plan.md`, `tasks.md`, `state.md`, `drift.md`,
|
|
48
47
|
`eng-review.md`, and the current `git diff` (if a repo). Read `decisions.md` and
|
|
49
48
|
`assumptions.md`. Require `Decision coverage: CLEAR`; otherwise STOP → `/rite-clarify`.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
(LSP / `Read`/`Grep`/`Glob`); see `.claude/skills/devrites-lib/reference/standards/tooling.md`:
|
|
54
|
-
prefer it for structural questions (what calls X, what would
|
|
55
|
-
changing Y break) over reading whole files, to keep planning context lean. For an external
|
|
49
|
+
Apply `.claude/skills/devrites-lib/reference/standards/tooling.md`: use the
|
|
50
|
+
primary available structural index, and cross-check only for a named unresolved
|
|
51
|
+
predicate rather than reassurance. For an external
|
|
56
52
|
dependency's current API surface, consult context7 if available.
|
|
57
53
|
2. **Pick the mode** (`$ARGUMENTS` or infer):
|
|
58
54
|
- **decompose:** first/again break the feature into vertical slices.
|
|
@@ -61,41 +57,40 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
|
|
|
61
57
|
- **reorder:** fix the dependency order.
|
|
62
58
|
- **split:** separate backend/frontend contracts (see `devrites-api-interface`).
|
|
63
59
|
- **unblock:** a verification failed; re-route around the blocker.
|
|
64
|
-
- **course-correct:**
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
admitted `repairable` assessment naming current rule, evidence, gate, exact paths, and
|
|
74
|
-
delta; it authorizes only that neutral workspace edit, never source or history.
|
|
75
|
-
**Gate first: revise or new?** Same intent? More than 50% of existing scope
|
|
76
|
-
survives? original *not* completable without this? Two "no"s → new work: recommend
|
|
77
|
-
sealing/shipping the current workspace (MVP cut if named) then `/rite-spec` for the new
|
|
78
|
-
intent, and stop. Revise preserves context; a new workspace separates the work.
|
|
60
|
+
- **course-correct:** deliberate mid-build user pivot. Classify impact on remaining slices,
|
|
61
|
+
choose rollback/forward-fix, and update spec/plan/tasks/decisions atomically. Acceptance or
|
|
62
|
+
behavior still needs the user first; an `MVP cut` is the pre-agreed retreat.
|
|
63
|
+
- **revise:** reconcile a requested artifact revision; propose/confirm its file set and
|
|
64
|
+
**never edit source**. Only explicit `/rite-upgrade` with a `repairable` assessment naming
|
|
65
|
+
rule, evidence, gate, paths, and delta can authorize its neutral workspace edit—not source/history.
|
|
66
|
+
**Revise or new?** Same intent? >50% scope survives? Original not completable without it?
|
|
67
|
+
Two “no” answers mean new work: seal/ship current scope (`MVP cut` if named), then
|
|
68
|
+
`/rite-spec`, and stop.
|
|
79
69
|
See [replan-and-repair](reference/replan-and-repair.md) for each mode's steps.
|
|
80
|
-
2a. **Draft
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
the drafter writes nothing and returns human-owned choices separately.
|
|
70
|
+
2a. **Draft fresh.** Dispatch `devrites-plan-drafter` in `repair` mode with frozen mode,
|
|
71
|
+
affected artifacts, settled contract, and failure/drift. Await one atomic, read-only
|
|
72
|
+
`plan-candidate`; human choices return separately.
|
|
84
73
|
When the observed failure is missing or ambiguous consumptive-action evidence,
|
|
85
74
|
require the drafter to apply `one-shot-actions.md` and return the bounded
|
|
86
75
|
diagnostic-amplification design, injective boundary map, per-seam fixtures, and
|
|
87
|
-
collision mutant. Past evidence loss
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
READY, the controlling root materializes the exact vetted workflow-artifact paths
|
|
91
|
-
under
|
|
76
|
+
collision mutant. Past evidence loss is not terminal. The drafter supplies no bodies.
|
|
77
|
+
Bind exact active `.devrites/work/<slug>/` targets and executable contract; after Vet READY, root
|
|
78
|
+
materializes the exact vetted workflow-artifact paths under
|
|
92
79
|
[`workflow-artifacts.md`](../devrites-lib/reference/standards/workflow-artifacts.md)
|
|
93
80
|
without dispatching the product wright.
|
|
94
81
|
3. Reason about dependencies: [dependency-graph](reference/dependency-graph.md).
|
|
82
|
+
Reconcile the horizon register against `../rite-define/reference/plan-template.md`.
|
|
83
|
+
Preserve every `HZN-###` and unresolved item. Cite evidence when reclassifying the earliest
|
|
84
|
+
honest decision point; resolution or supersession also needs evidence. Never silently delete
|
|
85
|
+
an item. Planning choices resolve from source evidence or become bounded risk spikes with
|
|
86
|
+
discriminating criteria and fallback branches; local/checkpoint entries retain their owner,
|
|
87
|
+
trigger, bounds/fallback, and proof. A new human-owned blocker stops to `/rite-clarify`.
|
|
95
88
|
Reconcile `plan.md`'s canonical `Shared contract proof`: changed provider/consumer
|
|
96
89
|
boundaries keep one reused contract artifact ahead of both asserting tests, and unaffected
|
|
97
90
|
plans retain the specific no-impact statement. Missing, one-sided, duplicated-contract, vague, or
|
|
98
91
|
non-consuming proof routes to `/rite-vet` only after repair.
|
|
92
|
+
Reconcile the spec applicability map and retain every applicable standard's required
|
|
93
|
+
topology/data/integration owner, failure/recovery, deployment order, and proof output.
|
|
99
94
|
**Completion:** the slice graph is cycle-free and every dependency names an existing slice.
|
|
100
95
|
4. Re-slice using vertical-slice rules: [slicing](reference/slicing.md) and
|
|
101
96
|
[task-breakdown](reference/task-breakdown.md). Prefer thin, shippable, verifiable.
|
|
@@ -106,7 +101,8 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
|
|
|
106
101
|
the previous vet verdict: set `Phase: plan`, `Next step: /rite-vet`, and, when
|
|
107
102
|
`eng-review.md` exists, set `Implementation readiness: NEEDS REPLAN`. Never retain READY
|
|
108
103
|
across changed planning inputs. Preserve `Plan approved` only for behavior/acceptance-neutral
|
|
109
|
-
technical repair; clear
|
|
104
|
+
technical repair; clear it for a contract-changing or newly blocking horizon item and
|
|
105
|
+
reconfirm only after Clarify and Vet close it. If you stopped for drift,
|
|
110
106
|
mark the `drift.md` entry resolved. Never remove or overwrite a valid caller
|
|
111
107
|
return cursor while writing the Plan checkpoint.
|
|
112
108
|
6. If product behavior/acceptance criteria change, confirm through `/rite-clarify` before
|
|
@@ -122,7 +118,8 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
|
|
|
122
118
|
left unjustified), the dependency order is acyclic, every `drift.md` entry you stopped for
|
|
123
119
|
is marked resolved, revised artifacts agree with each other, no source files changed in
|
|
124
120
|
`revise` mode, behavior-change-vs-not is confirmed (`no`, or clarified), and every changed
|
|
125
|
-
plan ends at `/rite-vet` rather than returning directly to build
|
|
121
|
+
plan ends at `/rite-vet` rather than returning directly to build; horizon IDs stay stable,
|
|
122
|
+
reclassifications cite evidence, and no unresolved item vanished. The `Shared contract proof`
|
|
126
123
|
table or justified no-impact statement must still match the revised boundary set.
|
|
127
124
|
If any check fails, loop back: don't hand off a half-reshaped plan.
|
|
128
125
|
|
|
@@ -4,7 +4,8 @@ Order slices by what must exist before what. Keep it in `plan.md` as plain text.
|
|
|
4
4
|
|
|
5
5
|
## Build the graph
|
|
6
6
|
1. For each slice, list its hard prerequisites (a model it queries, an endpoint it
|
|
7
|
-
calls, a component it composes
|
|
7
|
+
calls, a component it composes, a contract/schema/config it consumes, or a deployable
|
|
8
|
+
version that must already tolerate the change).
|
|
8
9
|
2. Draw edges prerequisite → dependent.
|
|
9
10
|
3. Topologically sort. Independent slices can be built in any order (or noted as
|
|
10
11
|
parallelizable for the user).
|
|
@@ -24,10 +25,18 @@ Finding drift early is cheap; finding it at seal time is not.
|
|
|
24
25
|
- A slice with many prerequisites → probably too big; reslice for a thinner cut that
|
|
25
26
|
stands alone.
|
|
26
27
|
- A cycle (A needs B needs A) → the boundary is wrong; split the contract
|
|
27
|
-
(`devrites-api-interface`) so one side can land
|
|
28
|
+
(`devrites-api-interface`) so one side can land against one canonical contract.
|
|
29
|
+
Do not hide the cycle with duplicated types, a service locator, or an unowned stub.
|
|
28
30
|
- Everything depends on slice 1 → slice 1 is doing too much.
|
|
31
|
+
- File-disjoint slices share a database migration chain, generated contract, lockfile,
|
|
32
|
+
queue/port, environment, or deployable → serialize that resource or isolate it explicitly.
|
|
29
33
|
|
|
30
34
|
## Cross-boundary edges
|
|
31
35
|
Mark edges that cross a frontend/backend or service boundary. Those slices should
|
|
32
36
|
define the contract first (so both sides can proceed) and trigger `devrites-doubt`
|
|
33
37
|
before standing the interface.
|
|
38
|
+
|
|
39
|
+
For monorepos/multiple repositories, annotate the proven root and deployable on each node.
|
|
40
|
+
For data/integration changes, include recovery ordering: expand before new writers,
|
|
41
|
+
backfill before contract, consumer compatibility before provider exposure, and monitoring
|
|
42
|
+
before rollout. The graph is incomplete if code order is safe but deploy order is not.
|
|
@@ -19,6 +19,8 @@ This reference owns decomposition; the shared schema owns field names and meanin
|
|
|
19
19
|
provider/consumer boundary, map the plan's `Shared contract proof` artifact before its
|
|
20
20
|
provider- and consumer-side asserting tests; both tests consume that same artifact and
|
|
21
21
|
their slice dependencies preserve the order. Do not duplicate the contract in each slice.
|
|
22
|
+
For each applicable topology/data/integration row, assign its owner, failure/recovery
|
|
23
|
+
case, and proof to a slice; preserve deployment/resource ordering from the plan.
|
|
22
24
|
5. Write or update `traceability.md` so every `AC-###` maps to ≥1 `SLICE-###`, a
|
|
23
25
|
planned proof, evidence status, and likely touched files.
|
|
24
26
|
6. Sanity check: every acceptance criterion in `spec.md` maps to ≥1 slice; no slice has
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# ADR promotion
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
project has no `docs/adr/`, ask before creating that
|
|
3
|
+
During Polish, promote a `decisions.md` architecture/interface choice only when it is
|
|
4
|
+
hard to reverse, surprising without context, and a real trade-off. Otherwise leave it in
|
|
5
|
+
the archived workspace. If the project has no `docs/adr/`, ask before creating that
|
|
6
|
+
convention.
|
|
6
7
|
|
|
7
8
|
Write the next append-only `docs/adr/ADR-NNN.md` with Context, Decision, Status
|
|
8
|
-
`accepted`, and Consequences. Never rewrite an accepted ADR; supersede it with a
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Review. Ship performs no ADR promotion.
|
|
9
|
+
`accepted`, and Consequences. Never rewrite an accepted ADR; supersede it with a linked
|
|
10
|
+
new ADR. Add it to the candidate manifest, run affected real re-proof, and refresh evidence
|
|
11
|
+
and browser bindings before Review. Ship performs no ADR promotion.
|
|
@@ -7,42 +7,35 @@ user-invocable: true
|
|
|
7
7
|
|
|
8
8
|
# /rite-pressure-test: diverge then converge
|
|
9
9
|
|
|
10
|
-
Use when the
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
A thinking stance, not a build phase: capturing thinking is not implementing. Write
|
|
14
|
-
workspace/ticket artifacts freely; source edits wait for `/rite-build`, via `/rite-spec`.
|
|
15
|
-
|
|
16
|
-
Read `.claude/skills/devrites-lib/reference/standards/core.md` first: its operating rules (no silent assumptions, prefer
|
|
17
|
-
existing conventions) shape the divergence. The other rule files load on demand.
|
|
10
|
+
Use when the idea—not only requirements—is rough. Compare directions before
|
|
11
|
+
`/rite-spec`; never implement. Read [`core.md`](../devrites-lib/reference/standards/core.md)
|
|
12
|
+
first and write only workspace/ticket artifacts.
|
|
18
13
|
|
|
19
14
|
## Diverge (widen)
|
|
20
|
-
- Search
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- Generate from **named lenses** so each option exists for a reason, not to pad the count:
|
|
27
|
-
*inversion* (do the opposite), *constraint-removal* (what if the hard limit vanished),
|
|
28
|
-
*audience-shift* (build it for a different user), *10×* (what if it had to handle ten times
|
|
29
|
-
the scale or scope), *expert-lens* (how a specialist in the domain would do it). Borrow the
|
|
30
|
-
*structure* of an analogous product, not its surface. "Uber for X" copies the veneer, not
|
|
31
|
-
the mechanism that made it work.
|
|
32
|
-
- For each: one-line description, what it optimizes for, rough cost, main risk.
|
|
33
|
-
- Stay concrete: name real entities, flows, and surfaces, not abstractions.
|
|
15
|
+
- Search `decisions.md`, accepted ADRs, and relevant archives for rejected directions;
|
|
16
|
+
revive one only with evidence that answers its recorded reason, citing both.
|
|
17
|
+
- Generate 3-5 different shapes, including obvious, smaller, and different-boundary/data/
|
|
18
|
+
flow options. Use named lenses— inversion, constraint removal, audience shift, 10×, or
|
|
19
|
+
expert practice—without padding. Borrow analogous mechanisms, not branding.
|
|
20
|
+
- For each, name concrete entities/flows/surfaces, optimization, rough cost, and main risk.
|
|
34
21
|
|
|
35
22
|
## Converge (commit)
|
|
36
23
|
- Weigh options against the goal, constraints, and existing codebase conventions.
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
vitamin dressed as a painkiller is the most common ideation trap.
|
|
40
|
-
- **Rank the differentiation**, strongest to weakest: a new capability > a 10× improvement > a
|
|
41
|
-
new audience > a new context > better UX > cheaper. The higher an option sits, the more
|
|
42
|
-
defensible the direction.
|
|
24
|
+
- Prefer felt pain over nice-to-have. Rank differentiation: new capability > 10× gain >
|
|
25
|
+
new audience > new context > better UX > cheaper; do not dress a vitamin as a painkiller.
|
|
43
26
|
- Recommend one, with the reason and the key trade-off accepted.
|
|
44
27
|
- Note what would change the recommendation (the decision's hinge).
|
|
45
28
|
|
|
29
|
+
## Premise evidence floor
|
|
30
|
+
|
|
31
|
+
If the hinge is an uncertain material fact, freeze at most three questions for
|
|
32
|
+
`devrites-evidence-scout`. Validate every citation; missing/malformed/unverifiable output is
|
|
33
|
+
`unavailable`, never support. Record claim, support, strongest contrary evidence, and
|
|
34
|
+
`supported | assumption | refuted`. Refutation changes the recommendation; an assumption
|
|
35
|
+
advances only when non-decisive with bounded downside. Weak/conflicting decisive evidence
|
|
36
|
+
returns **Hold** with the resolving evidence, never `/rite-spec`. Do not research preferences
|
|
37
|
+
or reversible implementation choices.
|
|
38
|
+
|
|
46
39
|
## Boundaries
|
|
47
40
|
- This is exploration, not specification. Output a **direction**, not a finished spec:
|
|
48
41
|
`/rite-spec` writes the spec.
|
|
@@ -60,9 +53,9 @@ existing conventions) shape the divergence. The other rule files load on demand.
|
|
|
60
53
|
```
|
|
61
54
|
Done: pressure test complete for <goal>.
|
|
62
55
|
Changed: workspace only
|
|
63
|
-
Evidence: options compared <n>; recommendation <option>; hinge <condition>
|
|
64
|
-
Open: <none | unresolved premise>
|
|
65
|
-
Next: /rite-spec <feature
|
|
56
|
+
Evidence: options compared <n>; recommendation <option>; hinge <condition>; premises <supported/assumption/refuted + sources>
|
|
57
|
+
Open: <none | unresolved premise and resolving evidence>
|
|
58
|
+
Next: <when supported: /rite-spec <feature>; when Hold: none — requires <resolving evidence>>
|
|
66
59
|
Record: not applicable
|
|
67
60
|
↻ Hygiene: /clear before starting the lifecycle
|
|
68
61
|
```
|
|
@@ -34,9 +34,10 @@ Pull these via `Read` when relevant:
|
|
|
34
34
|
blocks, each scenario (WHEN/THEN) is one observable behavior to walk and prove.
|
|
35
35
|
- `performance.md`: measure first when perf is in scope.
|
|
36
36
|
- `observability.md`: runtime telemetry must be observed to emit.
|
|
37
|
-
- `
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
- `repository-topology.md`, `data-integrity.md`, `integration-reliability.md`: only
|
|
38
|
+
for applicable spec/plan rows; their required proof cases cannot be replaced by a generic green suite.
|
|
39
|
+
- `developer-experience.md`: for developer surfaces, run the flow and measure TTHW plus exact
|
|
40
|
+
signal-bearing error text with typed redactions; never assert DX.
|
|
40
41
|
- `definition-of-done.md`: acceptance, proof, gates, scope, rollback/docs.
|
|
41
42
|
- `one-shot-actions.md`: pre-attempt evidence completeness and no-rerun handling for
|
|
42
43
|
consumptive proof actions.
|
|
@@ -54,16 +55,11 @@ Pull these via `Read` when relevant:
|
|
|
54
55
|
Prove owns proof binding, not manifest grammar or candidate hashing.
|
|
55
56
|
- Spec Drift Guard applies: if tests/evidence reveal the spec is wrong, stop and handle
|
|
56
57
|
drift (`rite-build/reference/spec-drift-guard.md`).
|
|
57
|
-
- **Root executes; runner validates;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
Every accepted product source/test correction is one bounded
|
|
63
|
-
`devrites-slice-wright` task, never an inline edit.
|
|
64
|
-
Exact Vet-ready executable workflow artifacts under the active `.devrites/**`
|
|
65
|
-
workspace follow `workflow-artifacts.md` and are materialized by the controlling
|
|
66
|
-
root; they are not product writer work.
|
|
58
|
+
- **Root executes/records; runner validates; wright fixes.** Under
|
|
59
|
+
[`agents.md`](../devrites-lib/reference/standards/agents.md), root owns vetted gates, browser,
|
|
60
|
+
verdict, and canonical writes; read-only proof runner checks immutable evidence; each source/
|
|
61
|
+
test fix is one bounded wright task. Root materializes exact Vet-ready `.devrites/**`
|
|
62
|
+
executables under `workflow-artifacts.md`; they are not product writer work.
|
|
67
63
|
- **Prove remains the controlling caller during technical backtracking.** Save
|
|
68
64
|
its return cursor, invoke Plan/Vet or bounded remediation inline, consume each
|
|
69
65
|
nested phase boundary, then resume the failed Prove step. Never make the human
|
|
@@ -110,8 +106,9 @@ failure is a blocker; this Upgrade admission never authorizes source or test cha
|
|
|
110
106
|
3. **Execute proof against a frozen candidate.** Run
|
|
111
107
|
`devrites-engine check candidate <slug>` before any approved proof and retain
|
|
112
108
|
its exact digest. The root runs only commands declared by `test-plan.md`,
|
|
113
|
-
byte-for-byte, with exact cwd
|
|
114
|
-
|
|
109
|
+
byte-for-byte, with exact cwd/prerequisites, exit code, and sanitized decisive output per
|
|
110
|
+
[`security.md` § Secrets](../devrites-lib/reference/standards/security.md#secrets). Never retain
|
|
111
|
+
raw secrets; lost signal is `cannot_verify` plus a safe manual step. Run the full relevant suite
|
|
115
112
|
plus **build / typecheck / lint**. Then rerun the candidate check: require the
|
|
116
113
|
identical digest and no candidate-source mutation. Reject synthesized or
|
|
117
114
|
substituted commands, malformed manifests, zero-test/skipped/filtered results used as
|
|
@@ -25,6 +25,23 @@ Undefined/unavailable signal: `cannot_verify`, evidence
|
|
|
25
25
|
`insufficient_spec: <missing fact or evidence surface>`, then Spec Drift; never
|
|
26
26
|
judgment or pass.
|
|
27
27
|
|
|
28
|
+
## Applicable system-risk proof
|
|
29
|
+
|
|
30
|
+
Reconcile `spec.md`'s applicability map with the final diff. For each triggered owner:
|
|
31
|
+
|
|
32
|
+
- `repository-topology.md`: prove commands ran at every affected root and both provider
|
|
33
|
+
and consumer used the same canonical contract; identify generated/vendor sources.
|
|
34
|
+
- `data-integrity.md`: prove declared invariants plus relevant duplicate/retry,
|
|
35
|
+
concurrency, interruption/resume, old/new coexistence, tenant isolation, and
|
|
36
|
+
rollback/forward-recovery cases with recorded scale/counts.
|
|
37
|
+
- `integration-reliability.md`: prove relevant invalid/partial response, auth failure,
|
|
38
|
+
timeout/unknown outcome, rate limit/outage, duplicate/order, poison/backlog, cache/partition,
|
|
39
|
+
degradation, and recovery behavior.
|
|
40
|
+
|
|
41
|
+
An evidence-backed dismissal is valid for an irrelevant case. An applicable case with no
|
|
42
|
+
executable proof surface is `cannot_verify`; do not infer it from an implementation review
|
|
43
|
+
or a mock that cannot produce the risk.
|
|
44
|
+
|
|
28
45
|
## Critical-path assertion strength
|
|
29
46
|
|
|
30
47
|
For regression-Critical, irreversible, and data-loss paths, inject a small break,
|
|
@@ -49,3 +66,14 @@ Browser-capture docs/quickstarts when applicable. Write the scorecard to
|
|
|
49
66
|
|
|
50
67
|
Exercise/follow every key `plan.md` link in the assembled feature; record each as
|
|
51
68
|
`EVID-###`, or record none declared. An unwired link blocks.
|
|
69
|
+
|
|
70
|
+
For every critical link, perturb or break the load-bearing input/link and observe the
|
|
71
|
+
promised surface fail. Existence/registration/spy-call evidence is insufficient when a
|
|
72
|
+
different path can coincidentally produce the expected result.
|
|
73
|
+
|
|
74
|
+
## Baseline and environment claims
|
|
75
|
+
|
|
76
|
+
Classify a failure as pre-existing or environment-specific only with a dated
|
|
77
|
+
before-candidate result for the same command, working directory, prerequisites, and
|
|
78
|
+
material environment. Otherwise record it as an unresolved candidate result. For time/local
|
|
79
|
+
behavior, bind the instant, time zone, locale, and relevant old/new configuration.
|
|
@@ -28,6 +28,8 @@ Pull these via `Read` when the diff demands them:
|
|
|
28
28
|
- `agents.md`: when to fan out to which review subagent.
|
|
29
29
|
- `security.md`: when input / auth / data / integrations / secrets are in scope.
|
|
30
30
|
- `security-checklist.md`: for the same security-sensitive scope, the compact trust-boundary sweep.
|
|
31
|
+
- `repository-topology.md`, `data-integrity.md`, `integration-reliability.md`: only
|
|
32
|
+
when the spec applicability map or final diff triggers their ownership/failure/proof checks.
|
|
31
33
|
- `performance.md`: only when perf is relevant or a regression risk is visible.
|
|
32
34
|
|
|
33
35
|
## Operating rules
|
|
@@ -53,10 +55,9 @@ Pull these via `Read` when the diff demands them:
|
|
|
53
55
|
1. Read `spec.md`, `tasks.md`, `state.md`, `decisions.md`, `evidence.md`,
|
|
54
56
|
`touched-files.md`, `.devrites/principles.md` (if present: the binding invariants to score
|
|
55
57
|
the diff against), and the `git diff`. For "what would this change break"
|
|
56
|
-
questions,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
they answer impact/callers in one call. When a finding hinges on an external library's
|
|
58
|
+
questions, apply `.claude/skills/devrites-lib/reference/standards/tooling.md`: use
|
|
59
|
+
the primary available index and cross-check only one named unresolved predicate before
|
|
60
|
+
falling back to LSP/file search. When a finding hinges on an external library's
|
|
60
61
|
current API, context7 if available can confirm the signature. Run
|
|
61
62
|
`devrites-engine check candidate <slug>` and require its digest to match the
|
|
62
63
|
single `evidence.md` binding and the `browser-evidence.md` binding when that
|
|
@@ -11,11 +11,15 @@ is complete, and to scope anything the agent could not (e.g. UI-only lenses belo
|
|
|
11
11
|
- Do tests exist for the changed behavior, and do they prove the acceptance criteria?
|
|
12
12
|
- Would they fail if the code were wrong? (No assertion-free or tautological tests.)
|
|
13
13
|
- Edge cases: empty, boundary, error, permission-denied, concurrency.
|
|
14
|
+
- Applicable data/integration/topology cases use a risk-capable boundary; no
|
|
15
|
+
risk-erasing mock, one-tenant isolation claim, or one-root proof for another root.
|
|
14
16
|
|
|
15
17
|
## 1. Correctness
|
|
16
18
|
- Does it do what the spec says? Off-by-one, null/undefined, error paths, race
|
|
17
19
|
conditions, incorrect assumptions about inputs.
|
|
18
20
|
- Does it handle the states the slice promised (loading/empty/error for UI)?
|
|
21
|
+
- Does retry/interruption converge without duplicate effects; do partial/unknown external
|
|
22
|
+
outcomes, migrations, old/new versions, tenant scope, and rollback follow the accepted plan?
|
|
19
23
|
|
|
20
24
|
## 2. Readability
|
|
21
25
|
- Can the next engineer understand it without the author? Naming, function length,
|
|
@@ -35,6 +39,8 @@ is complete, and to scope anything the agent could not (e.g. UI-only lenses belo
|
|
|
35
39
|
dispatcher, separate orchestration from business logic, move feature logic to its owning
|
|
36
40
|
package, delete a pass-through wrapper, split a large file. Prefer the move that removes
|
|
37
41
|
moving pieces over one that re-centralizes the same complexity.
|
|
42
|
+
- Are repository/deployable roots, canonical contract and mutable-state owners, shared
|
|
43
|
+
resources, and synchronous/asynchronous consistency boundaries preserved without a cycle?
|
|
38
44
|
|
|
39
45
|
## 4. Security
|
|
40
46
|
- Trust boundaries, input validation, authz checks, secrets handling. Hand off to
|
|
@@ -12,7 +12,8 @@ This is the **single-sourced OWASP-web checklist** both `/rite-review` and the
|
|
|
12
12
|
- **Injection:** parameterized queries; no string-built SQL/shell/HTML; validate &
|
|
13
13
|
encode at boundaries.
|
|
14
14
|
- **Broken access control:** every sensitive action checks authz server-side; no
|
|
15
|
-
trusting client-supplied IDs/roles; no IDOR
|
|
15
|
+
trusting client-supplied IDs/roles/tenant; no IDOR, cross-tenant read/write/cache/search,
|
|
16
|
+
confused-deputy path, or privilege change without re-authorization.
|
|
16
17
|
- **Auth / session:** secure session handling; no credentials in code/logs; correct
|
|
17
18
|
password/token handling.
|
|
18
19
|
- **Sensitive data:** PII/secrets not logged or returned; encryption where required;
|
|
@@ -21,8 +22,12 @@ This is the **single-sourced OWASP-web checklist** both `/rite-review` and the
|
|
|
21
22
|
untrusted input into requests.
|
|
22
23
|
- **Misconfiguration:** safe defaults; debug off; CORS scoped; security headers as the
|
|
23
24
|
project uses them.
|
|
25
|
+
- **Files / request integrity:** resolved paths remain below the allowed root across
|
|
26
|
+
traversal/encoding/symlink/archive cases; state-changing browser requests use the
|
|
27
|
+
framework's forgery protection; CORS is not treated as CSRF defense.
|
|
24
28
|
- **Vulnerable dependencies:** new/updated deps audited; no known-vuln versions added.
|
|
25
|
-
- **Integrity / deserialization:**
|
|
29
|
+
- **Integrity / deserialization:** safe non-executable parsing with type/size/depth limits;
|
|
30
|
+
untrusted data cannot instantiate executable objects.
|
|
26
31
|
|
|
27
32
|
## Trust boundary
|
|
28
33
|
Apply the three-tier discipline (untrusted → boundary → trusted) per the canonical rule
|
|
@@ -18,6 +18,9 @@ discriminating shell/golden/text assertions remain valid for textual or CLI acce
|
|
|
18
18
|
|
|
19
19
|
Require built slices, resolved or accepted findings, no drift/open validating
|
|
20
20
|
question, required UI/boundary proof, and an exact doubt verdict per stood decision.
|
|
21
|
+
Reconcile the final diff with the spec applicability map. Every triggered topology,
|
|
22
|
+
data, integration, security, and delivery owner needs its relevant observed failure/
|
|
23
|
+
recovery evidence or an evidence-backed dismissal; a generic green suite cannot close it.
|
|
21
24
|
|
|
22
25
|
## Candidate binding and test integrity
|
|
23
26
|
|
|
@@ -4,25 +4,40 @@ Before GO, know how to undo the change and what could go wrong in production.
|
|
|
4
4
|
|
|
5
5
|
## Risk scan
|
|
6
6
|
Rank risks; for each, note likelihood × impact and any mitigation:
|
|
7
|
-
- **
|
|
7
|
+
- **Topology/ownership**: affected roots/deployables, shared contracts/state/resources,
|
|
8
|
+
dependency cycles, and intermediate deployment combinations.
|
|
9
|
+
- **Data**: schema changes, migration/backfill interruption, concurrent/duplicate writes,
|
|
10
|
+
tenant/retention boundaries, destructive operations, and invariant reconciliation.
|
|
8
11
|
- **Security**: new trust boundaries, auth/authz changes, secret handling, new deps.
|
|
9
12
|
- **Compatibility**: API contract changes, breaking changes for existing clients,
|
|
10
13
|
feature interactions.
|
|
11
|
-
- **
|
|
14
|
+
- **Integration/operational**: timeouts/unknown outcomes, retry/idempotency, duplicate/order,
|
|
15
|
+
partial/invalid responses, provider/queue/cache outage, config/env, and rate limits.
|
|
16
|
+
- **Delivery**: schema/config/application/worker/flag order, environment mismatch,
|
|
17
|
+
monitoring gap, exposure stages, and time to detect/recover.
|
|
12
18
|
- **UX**: changed flows users rely on; unverified UI.
|
|
13
19
|
|
|
14
20
|
## Rollback plan (required for risky changes)
|
|
15
21
|
For each risky step, state how to back it out:
|
|
16
22
|
- **Migrations**: is there a reversible `down` / a documented manual revert? Is data
|
|
17
|
-
loss possible on rollback?
|
|
23
|
+
loss possible on rollback? If rollback is unsafe, is bounded forward recovery rehearsed?
|
|
18
24
|
- **Feature flag**: can it be disabled without a deploy?
|
|
19
25
|
- **Revert boundary**: can the change be `git revert`-ed cleanly, or does it entangle
|
|
20
26
|
with other work?
|
|
21
27
|
- **Data**: is there a backup / a way to restore prior state?
|
|
28
|
+
- **External/async effects**: can an unknown outcome be reconciled without duplicating it;
|
|
29
|
+
who drains/replays/quarantines work and repairs partial state?
|
|
30
|
+
- **Configuration/deployables**: what order restores compatible versions and values at
|
|
31
|
+
every root/environment?
|
|
22
32
|
|
|
23
33
|
## Blocking rules
|
|
24
34
|
- A **destructive or data-migration change with no rollback plan** is a **NO-GO**.
|
|
25
|
-
- A
|
|
35
|
+
- A data change with unknown invariant/tenant impact, no interruption/retry proof, or no
|
|
36
|
+
rollback/forward-recovery rehearsal is **NO-GO**.
|
|
37
|
+
- A new/changed external or asynchronous boundary with blind retry, silent partial success,
|
|
38
|
+
or no outage/backlog recovery and monitoring is **NO-GO**.
|
|
39
|
+
- Unsafe intermediate deployment order, unvalidated required configuration, or no watched
|
|
40
|
+
rollout signal/owner is **NO-GO** for live exposure.
|
|
26
41
|
- Record the chosen rollback path in `seal.md` → "Rollback / Recovery".
|
|
27
42
|
|
|
28
43
|
## Fresh-context availability
|