devrites 3.0.7 → 3.2.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 +18 -0
- package/README.md +82 -50
- package/SECURITY.md +31 -29
- package/docs/adr/0001-go-engine-as-control-plane.md +1 -1
- package/docs/adr/0002-dual-host-harness.md +1 -1
- package/docs/adr/0004-state-schema-phases-sections.md +1 -2
- package/docs/adr/0006-clock-seam-and-engine-ci-gates.md +3 -4
- package/docs/adr/0009-prebuild-decision-coverage-and-readiness.md +67 -0
- package/docs/adr/0010-agent-first-fresh-context-orchestration.md +71 -0
- package/docs/adr/0011-define-plan-transition-rights.md +28 -0
- package/docs/adr/0012-semantic-workspace-upgrades.md +77 -0
- package/docs/adr/README.md +4 -0
- package/docs/agents/triage-labels.md +7 -7
- package/docs/architecture.md +179 -141
- package/docs/cli.md +47 -12
- package/docs/command-map.md +61 -38
- package/docs/engine/agent-contract.md +92 -15
- package/docs/engine/commands.md +248 -72
- package/docs/engine/state-schema.md +52 -23
- package/docs/engine/workspace-schema.md +103 -15
- package/docs/extensions.md +1 -1
- package/docs/flow.md +86 -51
- package/docs/harness-compliance.md +29 -5
- package/docs/orchestration.md +107 -79
- package/docs/quick-reference.md +11 -3
- package/docs/release.md +4 -3
- package/docs/skills.md +67 -38
- package/docs/usage.md +84 -39
- package/engine/cmd/releasepack/main.go +219 -0
- package/engine/cmd/releasepack/main_test.go +170 -0
- package/engine/commands.go +170 -23
- package/engine/git_guard.go +187 -0
- package/engine/git_guard_test.go +283 -0
- package/engine/hookpolicy.go +53 -55
- package/engine/hookpolicy_test.go +91 -1
- package/engine/hooks.go +296 -75
- package/engine/hooks_events_test.go +276 -6
- package/engine/hooks_workspace.go +640 -159
- package/engine/internal/devritespaths/paths.go +65 -10
- package/engine/internal/devritespaths/paths_test.go +110 -0
- package/engine/internal/doctor/doctor.go +153 -23
- package/engine/internal/doctor/doctor_test.go +74 -0
- package/engine/internal/forge/forge.go +940 -0
- package/engine/internal/forge/forge_test.go +576 -0
- package/engine/internal/forge/git.go +245 -0
- package/engine/internal/forge/liveness_unix.go +48 -0
- package/engine/internal/forge/liveness_windows.go +67 -0
- package/engine/internal/forge/manifest.go +402 -0
- package/engine/internal/gate/gate.go +90 -71
- package/engine/internal/gate/gate_test.go +71 -2
- package/engine/internal/harness/compliance.go +18 -24
- package/engine/internal/harness/harness.go +37 -44
- package/engine/internal/harness/harness_test.go +21 -5
- package/engine/internal/install/install.go +486 -38
- package/engine/internal/install/install_test.go +383 -10
- package/engine/internal/iohooks/iohooks.go +350 -59
- package/engine/internal/iohooks/iohooks_test.go +421 -1
- package/engine/internal/lib/buildreadiness.go +43 -18
- package/engine/internal/lib/clarifyreturn.go +91 -0
- package/engine/internal/lib/clarifyreturn_test.go +123 -0
- package/engine/internal/lib/context.go +54 -15
- package/engine/internal/lib/cursor_compat_test.go +8 -0
- package/engine/internal/lib/extensions.go +2 -3
- package/engine/internal/lib/gitauthority.go +601 -0
- package/engine/internal/lib/gitauthority_test.go +346 -0
- package/engine/internal/lib/jsonout.go +25 -11
- package/engine/internal/lib/jsonout_test.go +16 -0
- package/engine/internal/lib/lanes.go +14 -8
- package/engine/internal/lib/observability_test.go +358 -0
- package/engine/internal/lib/packageexistence.go +151 -35
- package/engine/internal/lib/packageexistence_test.go +163 -0
- package/engine/internal/lib/progress.go +11 -9
- package/engine/internal/lib/provenance.go +462 -0
- package/engine/internal/lib/provenance_test.go +154 -0
- package/engine/internal/lib/readiness_contract.json +118 -0
- package/engine/internal/lib/readinessartifact.go +533 -0
- package/engine/internal/lib/readinessartifact_test.go +422 -0
- package/engine/internal/lib/reconcile.go +712 -88
- package/engine/internal/lib/reconcile_test.go +335 -16
- package/engine/internal/lib/recoveryattempts.go +298 -0
- package/engine/internal/lib/recoveryattempts_test.go +215 -0
- package/engine/internal/lib/resolve.go +23 -19
- package/engine/internal/lib/runbook_context_test.go +20 -0
- package/engine/internal/lib/session.go +701 -9
- package/engine/internal/lib/session_test.go +80 -13
- package/engine/internal/lib/testintegrity.go +33 -37
- package/engine/internal/lib/testintegrity_test.go +63 -1
- package/engine/internal/migrate/migrate.go +81 -1
- package/engine/internal/migrate/migrate_test.go +22 -1
- package/engine/internal/reason/reason.go +180 -0
- package/engine/internal/reason/reason_test.go +35 -0
- package/engine/internal/rootfacts/facts.go +466 -0
- package/engine/internal/rootfacts/facts_test.go +306 -0
- package/engine/internal/safepath/safepath.go +55 -0
- package/engine/internal/safepath/safepath_test.go +69 -0
- package/engine/internal/safepath/safepath_windows_test.go +26 -0
- package/engine/internal/state/clarify_transition.go +165 -0
- package/engine/internal/state/clarify_transition_test.go +130 -0
- package/engine/internal/state/cmd/workflowmanifest/main.go +12 -8
- package/engine/internal/state/cursor.go +58 -0
- package/engine/internal/state/cursor_test.go +42 -1
- package/engine/internal/state/feature.go +35 -48
- package/engine/internal/state/schema.go +90 -37
- package/engine/internal/state/snapshot.go +18 -2
- package/engine/internal/state/state_test.go +187 -7
- package/engine/internal/state/status.go +48 -11
- package/engine/internal/state/workflow_manifest.json +231 -50
- package/engine/internal/toolpolicy/classifier.go +533 -0
- package/engine/internal/toolpolicy/classifier_test.go +424 -0
- package/engine/internal/toolpolicy/git.go +616 -0
- package/engine/internal/toolpolicy/scanner.go +382 -0
- package/engine/main.go +160 -77
- package/engine/observability_cli_test.go +52 -0
- package/engine/root_routing_test.go +277 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=legacycontract.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=noclarify.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=novet.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=stalevet.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=vetnotready.golden +1 -0
- package/engine/testdata/golden/TestParityProgress/arg=allbuilt.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=done.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=mid.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=nophase.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=noslice.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=plan.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=seal.golden +1 -1
- package/engine/testdata/golden/TestParityReconcile/check-clean.golden +1 -1
- package/engine/testdata/golden/TestParityReconcile/inline-fallback.golden +1 -0
- package/engine/testdata/golden/TestParityReconcile/snapshot-no-allowlist.golden +1 -0
- package/engine/testdata/golden/TestParityWrightScope/devrites-edit-denied.golden +2 -0
- package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +1 -1
- package/engine/tests/adr_0011_define_plan_test.go +30 -0
- package/engine/tests/budget_test.go +19 -8
- package/engine/tests/concurrency_cli_test.go +7 -1
- package/engine/tests/doctor_cli_test.go +148 -2
- package/engine/tests/forge_cli_test.go +463 -0
- package/engine/tests/gate_test.go +63 -8
- package/engine/tests/hook_test.go +260 -8
- package/engine/tests/hooks_io_test.go +94 -3
- package/engine/tests/json_contract_test.go +127 -2
- package/engine/tests/migrate_cli_test.go +2 -2
- package/engine/tests/parity_buildreadiness_test.go +167 -10
- package/engine/tests/parity_learnings_test.go +16 -17
- package/engine/tests/parity_reconcile_test.go +20 -17
- package/engine/tests/parity_resolve_test.go +12 -11
- package/engine/tests/parity_test.go +21 -17
- package/pack/.claude/agents/devrites-code-reviewer.md +62 -48
- package/pack/.claude/agents/devrites-devex-reviewer.md +69 -53
- package/pack/.claude/agents/devrites-doubt-reviewer.md +29 -22
- package/pack/.claude/agents/devrites-evidence-scout.md +69 -0
- package/pack/.claude/agents/devrites-forge-judge.md +74 -61
- package/pack/.claude/agents/devrites-frontend-reviewer.md +48 -39
- package/pack/.claude/agents/devrites-performance-reviewer.md +49 -40
- package/pack/.claude/agents/devrites-plan-drafter.md +73 -0
- package/pack/.claude/agents/devrites-plan-reviewer.md +80 -47
- package/pack/.claude/agents/devrites-proof-runner.md +74 -0
- package/pack/.claude/agents/devrites-retrospector.md +48 -45
- package/pack/.claude/agents/devrites-security-auditor.md +46 -36
- package/pack/.claude/agents/devrites-simplifier-reviewer.md +50 -46
- package/pack/.claude/agents/devrites-slice-wright.md +153 -165
- package/pack/.claude/agents/devrites-spec-reviewer.md +34 -32
- package/pack/.claude/agents/devrites-strategy-reviewer.md +63 -34
- package/pack/.claude/agents/devrites-test-analyst.md +40 -30
- package/pack/.claude/agents/devrites-upgrade-planner.md +100 -0
- package/pack/.claude/settings.json +2 -1
- package/pack/.claude/skills/devrites-audit/SKILL.md +40 -61
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +24 -13
- package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
- package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
- package/pack/.claude/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
- package/pack/.claude/skills/devrites-doubt/SKILL.md +25 -17
- package/pack/.claude/skills/devrites-interview/SKILL.md +53 -52
- package/pack/.claude/skills/devrites-lib/SKILL.md +12 -9
- package/pack/.claude/skills/devrites-lib/reference/intent-map.md +4 -2
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
- package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +8 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/README.md +38 -55
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +200 -190
- package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
- package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +16 -52
- package/pack/.claude/skills/devrites-lib/reference/standards/coding-style.md +2 -10
- package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +23 -18
- package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +17 -57
- package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
- package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
- package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +3 -14
- package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +9 -25
- package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +0 -9
- package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +1 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/security.md +17 -7
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +1 -27
- package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +46 -50
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +40 -10
- package/pack/.claude/skills/devrites-source-driven/SKILL.md +23 -22
- package/pack/.claude/skills/rite/SKILL.md +10 -6
- package/pack/.claude/skills/rite/reference/menu.md +13 -7
- package/pack/.claude/skills/rite-adopt/SKILL.md +33 -37
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +33 -28
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +21 -21
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
- package/pack/.claude/skills/rite-build/SKILL.md +35 -30
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +41 -39
- package/pack/.claude/skills/rite-build/reference/evidence-standard.md +10 -0
- package/pack/.claude/skills/rite-build/reference/forge.md +186 -156
- package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +4 -3
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +96 -175
- package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +10 -4
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +129 -134
- package/pack/.claude/skills/rite-clarify/SKILL.md +90 -0
- package/pack/.claude/skills/rite-clarify/reference/decision-coverage.md +61 -0
- package/pack/.claude/skills/rite-converge/SKILL.md +35 -25
- package/pack/.claude/skills/rite-define/SKILL.md +58 -32
- package/pack/.claude/skills/rite-define/reference/gates.md +16 -15
- package/pack/.claude/skills/rite-define/reference/plan-template.md +18 -8
- package/pack/.claude/skills/rite-frame/reference/failure-modes.md +22 -24
- package/pack/.claude/skills/rite-plan/SKILL.md +47 -16
- package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +4 -0
- package/pack/.claude/skills/rite-polish/SKILL.md +27 -23
- package/pack/.claude/skills/rite-prototype/SKILL.md +25 -26
- package/pack/.claude/skills/rite-prove/SKILL.md +27 -17
- package/pack/.claude/skills/rite-resolve/SKILL.md +12 -11
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +3 -0
- package/pack/.claude/skills/rite-review/SKILL.md +37 -28
- package/pack/.claude/skills/rite-seal/reference/phase-contract.md +27 -92
- package/pack/.claude/skills/rite-seal/reference/risk-and-rollback.md +13 -0
- package/pack/.claude/skills/rite-ship/reference/design-memory.md +31 -36
- package/pack/.claude/skills/rite-spec/SKILL.md +84 -135
- package/pack/.claude/skills/rite-spec/reference/investigation.md +37 -33
- package/pack/.claude/skills/rite-spec/reference/question-protocol.md +6 -2
- package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +25 -24
- package/pack/.claude/skills/rite-spec/reference/spec-template.md +9 -2
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +13 -3
- package/pack/.claude/skills/rite-temper/SKILL.md +62 -47
- package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +24 -22
- package/pack/.claude/skills/rite-upgrade/SKILL.md +125 -0
- package/pack/.claude/skills/rite-vet/SKILL.md +114 -113
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +50 -9
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +39 -37
- package/pack/generated/claude/agents/devrites-code-reviewer.md +62 -48
- package/pack/generated/claude/agents/devrites-devex-reviewer.md +69 -53
- package/pack/generated/claude/agents/devrites-doubt-reviewer.md +29 -22
- package/pack/generated/claude/agents/devrites-evidence-scout.md +69 -0
- package/pack/generated/claude/agents/devrites-forge-judge.md +74 -61
- package/pack/generated/claude/agents/devrites-frontend-reviewer.md +48 -39
- package/pack/generated/claude/agents/devrites-performance-reviewer.md +49 -40
- package/pack/generated/claude/agents/devrites-plan-drafter.md +73 -0
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +80 -47
- package/pack/generated/claude/agents/devrites-proof-runner.md +74 -0
- package/pack/generated/claude/agents/devrites-retrospector.md +48 -45
- package/pack/generated/claude/agents/devrites-security-auditor.md +46 -36
- package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +50 -46
- package/pack/generated/claude/agents/devrites-slice-wright.md +153 -165
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +34 -32
- package/pack/generated/claude/agents/devrites-strategy-reviewer.md +63 -34
- package/pack/generated/claude/agents/devrites-test-analyst.md +40 -30
- package/pack/generated/claude/agents/devrites-upgrade-planner.md +100 -0
- package/pack/generated/claude/settings.json +2 -1
- package/pack/generated/claude/skills/devrites-audit/SKILL.md +40 -61
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +24 -13
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +25 -17
- package/pack/generated/claude/skills/devrites-interview/SKILL.md +53 -52
- package/pack/generated/claude/skills/devrites-lib/SKILL.md +12 -9
- package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +4 -2
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
- package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +8 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +38 -55
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +200 -190
- package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
- package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +16 -52
- package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +2 -10
- package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +23 -18
- package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +17 -57
- package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
- package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
- package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +3 -14
- package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +9 -25
- package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +0 -9
- package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +1 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +17 -7
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +1 -27
- package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +46 -50
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +40 -10
- package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +23 -22
- package/pack/generated/claude/skills/rite/SKILL.md +10 -6
- package/pack/generated/claude/skills/rite/reference/menu.md +13 -7
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +33 -37
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +33 -28
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +21 -21
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
- package/pack/generated/claude/skills/rite-build/SKILL.md +35 -30
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +41 -39
- package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +10 -0
- package/pack/generated/claude/skills/rite-build/reference/forge.md +186 -156
- package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +4 -3
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +96 -175
- package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +10 -4
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +129 -134
- package/pack/generated/claude/skills/rite-clarify/SKILL.md +90 -0
- package/pack/generated/claude/skills/rite-clarify/reference/decision-coverage.md +61 -0
- package/pack/generated/claude/skills/rite-converge/SKILL.md +35 -25
- package/pack/generated/claude/skills/rite-define/SKILL.md +58 -32
- package/pack/generated/claude/skills/rite-define/reference/gates.md +16 -15
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +18 -8
- package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +22 -24
- package/pack/generated/claude/skills/rite-plan/SKILL.md +47 -16
- package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +4 -0
- package/pack/generated/claude/skills/rite-polish/SKILL.md +27 -23
- package/pack/generated/claude/skills/rite-prototype/SKILL.md +25 -26
- package/pack/generated/claude/skills/rite-prove/SKILL.md +27 -17
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +12 -11
- package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +3 -0
- package/pack/generated/claude/skills/rite-review/SKILL.md +37 -28
- package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +27 -92
- package/pack/generated/claude/skills/rite-seal/reference/risk-and-rollback.md +13 -0
- package/pack/generated/claude/skills/rite-ship/reference/design-memory.md +31 -36
- package/pack/generated/claude/skills/rite-spec/SKILL.md +84 -135
- package/pack/generated/claude/skills/rite-spec/reference/investigation.md +37 -33
- package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +6 -2
- package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +25 -24
- package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +9 -2
- package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +13 -3
- package/pack/generated/claude/skills/rite-temper/SKILL.md +62 -47
- package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +24 -22
- package/pack/generated/claude/skills/rite-upgrade/SKILL.md +125 -0
- package/pack/generated/claude/skills/rite-vet/SKILL.md +114 -113
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +50 -9
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +39 -37
- package/pack/generated/codex/AGENTS.md +5 -2
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +69 -47
- package/pack/generated/codex/agents/devrites-devex-reviewer.toml +75 -51
- package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +35 -20
- package/pack/generated/codex/agents/devrites-evidence-scout.toml +75 -0
- package/pack/generated/codex/agents/devrites-forge-judge.toml +80 -59
- package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +54 -37
- package/pack/generated/codex/agents/devrites-performance-reviewer.toml +55 -38
- package/pack/generated/codex/agents/devrites-plan-drafter.toml +79 -0
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +82 -47
- package/pack/generated/codex/agents/devrites-proof-runner.toml +80 -0
- package/pack/generated/codex/agents/devrites-retrospector.toml +54 -43
- package/pack/generated/codex/agents/devrites-security-auditor.toml +53 -35
- package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +56 -44
- package/pack/generated/codex/agents/devrites-slice-wright.toml +159 -163
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +40 -30
- package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +65 -34
- package/pack/generated/codex/agents/devrites-test-analyst.toml +46 -28
- package/pack/generated/codex/agents/devrites-upgrade-planner.toml +106 -0
- package/pack/generated/codex/hooks.json +4 -14
- package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-audit/SKILL.md +47 -64
- package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +31 -16
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +32 -20
- package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-interview/SKILL.md +60 -55
- package/pack/generated/codex/skills/devrites-lib/SKILL.md +19 -12
- package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +4 -2
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
- package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +8 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +38 -55
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +200 -190
- package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
- package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +16 -52
- package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +2 -10
- package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +23 -18
- package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +17 -57
- package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
- package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
- package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +3 -14
- package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +9 -25
- package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +0 -9
- package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +1 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +17 -7
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +1 -27
- package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +46 -50
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +40 -10
- package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +29 -24
- package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite/SKILL.md +21 -13
- package/pack/generated/codex/skills/rite/reference/menu.md +13 -7
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +40 -40
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +40 -31
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +21 -21
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
- package/pack/generated/codex/skills/rite-build/SKILL.md +42 -33
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +41 -39
- package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +10 -0
- package/pack/generated/codex/skills/rite-build/reference/forge.md +186 -156
- package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +4 -3
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +96 -175
- package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +10 -4
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +129 -134
- package/pack/generated/codex/skills/rite-clarify/SKILL.md +106 -0
- package/pack/generated/codex/skills/rite-clarify/reference/decision-coverage.md +61 -0
- package/pack/generated/codex/skills/rite-converge/SKILL.md +42 -28
- package/pack/generated/codex/skills/rite-customize/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-define/SKILL.md +65 -35
- package/pack/generated/codex/skills/rite-define/reference/gates.md +16 -15
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +18 -8
- package/pack/generated/codex/skills/rite-doctor/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-dogfood/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-explain/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-frame/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +22 -24
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-learn/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-plan/SKILL.md +54 -19
- package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +5 -1
- package/pack/generated/codex/skills/rite-polish/SKILL.md +34 -26
- package/pack/generated/codex/skills/rite-pov/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-prototype/SKILL.md +32 -29
- package/pack/generated/codex/skills/rite-prove/SKILL.md +34 -20
- package/pack/generated/codex/skills/rite-quick/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +19 -14
- package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +3 -0
- package/pack/generated/codex/skills/rite-review/SKILL.md +44 -31
- package/pack/generated/codex/skills/rite-seal/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +27 -92
- package/pack/generated/codex/skills/rite-seal/reference/risk-and-rollback.md +13 -0
- package/pack/generated/codex/skills/rite-ship/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-ship/reference/design-memory.md +31 -36
- package/pack/generated/codex/skills/rite-spec/SKILL.md +91 -138
- package/pack/generated/codex/skills/rite-spec/reference/investigation.md +37 -33
- package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +6 -2
- package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +25 -24
- package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +9 -2
- package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +13 -3
- package/pack/generated/codex/skills/rite-status/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-temper/SKILL.md +69 -50
- package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +24 -22
- package/pack/generated/codex/skills/rite-upgrade/SKILL.md +141 -0
- package/pack/generated/codex/skills/rite-upgrade/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/rite-vet/SKILL.md +121 -116
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +50 -9
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +40 -38
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +7 -3
- package/package.json +1 -1
- package/scripts/build-release-tarball.sh +32 -15
- package/scripts/check-authority-drift.py +125 -0
- package/scripts/check-instruction-size-baseline.mjs +19 -11
- package/scripts/check-invocation-integrity.py +2 -0
- package/scripts/codex-generate.sh +69 -33
- package/scripts/grade-feature.sh +121 -40
- package/scripts/live-hosts/agent-result.schema.json +230 -0
- package/scripts/live-hosts/claude.sh +87 -0
- package/scripts/live-hosts/codex.sh +81 -0
- package/scripts/live-hosts/common.sh +113 -0
- package/scripts/live-hosts/fake-host.py +264 -0
- package/scripts/live-hosts/host-transport.py +287 -0
- package/scripts/release-check.sh +5 -1
- package/scripts/run-agent-contract-evals.py +1380 -0
- package/scripts/run-behavioral-evals.sh +24 -30
- package/scripts/run-evals.sh +1 -5
- package/scripts/run-live-behavioral-evals.py +1274 -144
- package/scripts/run-outcome-evals.sh +445 -88
- package/scripts/run-tests.mjs +30 -2
- package/scripts/skills-inventory.mjs +1 -1
- package/scripts/validate-workflow-security.py +39 -20
- package/scripts/validate-workspace-schema.py +362 -10
- package/scripts/validate.sh +21 -15
- package/engine/testdata/golden/TestParityWrightScope/devrites-edit-allowed.golden +0 -1
- /package/engine/testdata/golden/{TestParityReconcile/check-no-claimed.golden → TestParityBuildReadiness/arg=clarifyopen.golden} +0 -0
|
@@ -1,140 +1,135 @@
|
|
|
1
1
|
# Slice-wright dispatch
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
3
|
+
`/rite-build` delegates one settled slice or correction set to
|
|
4
|
+
`devrites-slice-wright`. The root orchestrator owns scope, human questions,
|
|
5
|
+
`.devrites/**`, gates, reconciliation, and routing. The wright is the only source/test
|
|
6
|
+
writer and never invokes another agent.
|
|
7
|
+
|
|
8
|
+
The universal packet, result, budget, await, retry, and host fallback contract is
|
|
9
|
+
[`standards/agents.md`](../../devrites-lib/reference/standards/agents.md). This file adds
|
|
10
|
+
only the source-write lifecycle.
|
|
11
|
+
|
|
12
|
+
## Prepare and dispatch
|
|
13
|
+
|
|
14
|
+
1. Derive the smallest exact file allowlist from the selected slice, current code
|
|
15
|
+
placement, and accepted correction set. Entries are normalized project-relative file
|
|
16
|
+
paths: no directories, globs, traversal, symlink escapes, duplicates, or
|
|
17
|
+
`.devrites/**`.
|
|
18
|
+
2. Write that list, one path per line, to
|
|
19
|
+
`.devrites/work/<slug>/.wright-allowlist` (or the active compatibility workspace).
|
|
20
|
+
The root owns this file; the wright's returned `Files changed` is evidence, never
|
|
21
|
+
authorization. If a necessary unlisted path appears, the wright stops and returns it.
|
|
22
|
+
3. Create `agent-packet/v1` for `devrites-slice-wright`. Put the identical paths in
|
|
23
|
+
`scope.allowed_repo_writes`; include the slice goal, verbatim acceptance, boundary,
|
|
24
|
+
exact context paths, test-plan targets, and applicable standards. Do not include the
|
|
25
|
+
root's implementation reasoning.
|
|
26
|
+
4. Immediately before a serial dispatch:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
devrites-engine reconcile snapshot
|
|
30
|
+
devrites-engine stuck log "$(cat .devrites/ACTIVE 2>/dev/null)" dispatch "<slice id>"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
A Forge slice runs `forge plan` first, then takes this same snapshot; see
|
|
34
|
+
[`forge.md`](forge.md). The first snapshot captures the original dirty-tree baseline, private Git objects,
|
|
35
|
+
allowlist, and canonical-state fingerprint. A later snapshot after a clean check
|
|
36
|
+
refreshes only the dispatch boundary; it retains the original slice baseline.
|
|
37
|
+
5. Fresh-context dispatch the wright through the capability ladder and await its typed
|
|
38
|
+
result. Never run two possible writers in one tree.
|
|
39
|
+
|
|
40
|
+
## Forge candidate binding
|
|
41
|
+
|
|
42
|
+
[`forge.md`](forge.md) owns the state machine. This file owns the candidate packet:
|
|
43
|
+
use the same project-relative allowlist and slice contract, add only the manifest-recorded
|
|
44
|
+
candidate strategy, and set all five bindings before the first tool call:
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
DEVRITES_FORGE_RUN_ID
|
|
48
|
+
DEVRITES_FORGE_CANDIDATE
|
|
49
|
+
DEVRITES_FORGE_WORKER_ID
|
|
50
|
+
DEVRITES_FORGE_WORKER_PID
|
|
51
|
+
DEVRITES_FORGE_PROCESS_START
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The candidate cwd must equal its manifest worktree, and the environment is all-or-none.
|
|
55
|
+
Only a real adapter declared as `manifest-env-v1` may supply it. The live PID,
|
|
56
|
+
engine `forge process-token` value, and worker ID must match the prior `forge record ... started`
|
|
57
|
+
transition. A partial or mismatched binding denies the writer; return to the orchestrator
|
|
58
|
+
instead of widening scope. The candidate writes only source/tests in its own tree and
|
|
59
|
+
returns the normal typed artifact.
|
|
60
|
+
|
|
61
|
+
## Validate the return before accepting it
|
|
62
|
+
|
|
63
|
+
Validate the `agent-result/v1` identity, baseline, budget, payload type, side effects,
|
|
64
|
+
and exact changed-file set. Before the root writes any canonical record, run:
|
|
28
65
|
|
|
66
|
+
```bash
|
|
67
|
+
devrites-engine reconcile check; echo "reconcile rc=$?"
|
|
68
|
+
devrites-engine test-integrity; echo "test-integrity rc=$?"
|
|
69
|
+
devrites-engine package-existence; echo "package-existence rc=$?"
|
|
29
70
|
```
|
|
30
|
-
|
|
31
|
-
the
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
71
|
+
|
|
72
|
+
- Reconcile `5`: reject the result. Preserve pre-snapshot user work; restore only the
|
|
73
|
+
unauthorized slice delta; never widen scope from the writer's self-report.
|
|
74
|
+
- Test integrity `3`: a test was deleted, muted, focused, or de-asserted. Treat it as a
|
|
75
|
+
Critical protocol failure and correct it through the wright.
|
|
76
|
+
- Package existence `3`: verify the exact package/version and fix the bounded workflow
|
|
77
|
+
or dependency defect through recovery. It is not a reason to ask for retry approval.
|
|
78
|
+
- A setup/corrupt-baseline error blocks acceptance; never fall back silently to `HEAD`.
|
|
79
|
+
|
|
80
|
+
The clean reconcile check records that source has not changed since inspection. The
|
|
81
|
+
baseline and private object database stay open until every later gate succeeds.
|
|
82
|
+
|
|
83
|
+
## Decisions, failures, and bounded recovery
|
|
84
|
+
|
|
85
|
+
After the immediate check, independently doubt every `Decisions stood` item. Human-owned
|
|
86
|
+
product, policy, public-contract, irreversible-risk, or human-only access decisions use
|
|
87
|
+
their real gate. Objective red tests, browser/runtime failures, missing technical
|
|
88
|
+
coverage, package-scanner defects, and review corrections stay agent-owned.
|
|
89
|
+
|
|
90
|
+
Classify each causal fingerprint through
|
|
91
|
+
[`cleanup-and-classify.md`](../../devrites-debug-recovery/reference/cleanup-and-classify.md).
|
|
92
|
+
The engine route is canonical; technical defects stay agent-owned.
|
|
93
|
+
Each objective root cause then shares one durable three-attempt budget:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
devrites-engine recovery route <class>
|
|
97
|
+
devrites-engine recovery record --class <class> "<root cause>" "<exact failure>" <slug>
|
|
98
|
+
devrites-engine recovery check "<root cause>" <slug>
|
|
56
99
|
```
|
|
57
100
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
it and re-dispatch, don't mark the slice built. Then persist the wright's artifact to
|
|
94
|
-
`state.md`, `evidence.md`, `touched-files.md` (and `browser-evidence.md` for UI) per
|
|
95
|
-
[`evidence-standard.md`](evidence-standard.md). Evidence is the wright's real command output,
|
|
96
|
-
not its say-so. Add a concern-ordered `## Review trail` to `touched-files.md` from the wright's changed paths and summary so a human can review by design intent instead of file order. **Persist every `Decisions stood` entry to a `## Decisions stood` section in
|
|
97
|
-
`decisions.md`, one line each ending `— doubt: <accept | reject-resolved | MISSING>`**:
|
|
98
|
-
independent of the doubt step (step 1 above), so a skipped decision still lands on record for
|
|
99
|
-
the seal's doubt-coverage cross-check (`- none` when the wright stood nothing). Then tick AFK if
|
|
100
|
-
`.devrites/AFK` is present (`devrites-engine tick-afk`; exit 3 → STOP).
|
|
101
|
-
|
|
102
|
-
## Forge: competing candidates (the deliberate exception)
|
|
103
|
-
|
|
104
|
-
The single-writer rule forbids parallel writers **sharing one tree**. A `Forge: yes` slice
|
|
105
|
-
(flagged by `/rite-vet` as a genuine architecture fork at Complexity ≥4) is the one sanctioned
|
|
106
|
-
fan-out, and it keeps the rule intact by **isolation**: each candidate wright works in its own
|
|
107
|
-
`git worktree`, sees the identical slice contract plus one **distinct strategy**, and never
|
|
108
|
-
touches another candidate's tree. A read-only [`devrites-forge-judge`](../../../agents/devrites-forge-judge.md)
|
|
109
|
-
then scores the finished candidates against acceptance + `test-plan.md` + `.devrites/principles.md`
|
|
110
|
-
+ the anti-slop charter, and the orchestrator lands **exactly one** winner's diff in the working
|
|
111
|
-
tree. No tree ever has two authors; exactly one author's work ships. Everything downstream (doubt,
|
|
112
|
-
fail-on-red, reconcile against the winner's claimed set, record) runs on the winner as if a single
|
|
113
|
-
wright had built it.
|
|
114
|
-
|
|
115
|
-
Full mechanics (strategy derivation, worktree setup, the judge contract, landing + grafting the
|
|
116
|
-
winner, `forge-report.md`, AFK budgeting, and the worktree-unavailable fallback) live in
|
|
117
|
-
[`forge.md`](forge.md).
|
|
118
|
-
|
|
119
|
-
## Fallback
|
|
120
|
-
If the `Task` tool / sub-agent dispatch is unavailable, `/rite-build` runs the wright's
|
|
121
|
-
discipline **inline** in its own context and flags it as a fallback (no clean-context benefit).
|
|
122
|
-
The slice still gets the full one-slice cycle (orient → RED → implement → verify) under the
|
|
123
|
-
same anti-slop charter; it just doesn't get the isolation. In this path the orchestrator is
|
|
124
|
-
legitimately the writer, so write `.devrites/work/<slug>/.reconcile-inline` before editing: the
|
|
125
|
-
reconcile gate (step 4) skips when that sentinel is present. Mirrors the reviewer-dispatch
|
|
126
|
-
fallback in
|
|
127
|
-
[`../../devrites-lib/reference/parallel-dispatch.md`](../../devrites-lib/reference/parallel-dispatch.md).
|
|
128
|
-
|
|
129
|
-
## Optional pre-block hook (defense in depth)
|
|
130
|
-
`devrites-engine reconcile` is the **post-hoc** gate. It always runs and catches an A1 breach at record time.
|
|
131
|
-
A companion **pre-block** hook, `devrites-engine hook a1-guard` (a `PreToolUse` matcher on
|
|
132
|
-
`Edit|Write|MultiEdit`), stops the breach *before* the write lands. It is armed only inside the
|
|
133
|
-
mid-build window (between `devrites-engine reconcile snapshot` and a clean `check`, keyed on `.reconcile-base`),
|
|
134
|
-
allows the wright (subagent calls carry `agent_id`), the inline fallback (`.reconcile-inline`),
|
|
135
|
-
and any `.devrites/` write, so it never touches `/rite-polish`, `/rite-quick`, or ordinary
|
|
136
|
-
manual edits. It ships **observe-only** (logs would-be blocks to `.a1-guard.log`, never blocks);
|
|
137
|
-
flip to enforce with `DEVRITES_A1_HOOK=enforce` or a `.devrites/work/<slug>/.a1-enforce` file once
|
|
138
|
-
the log confirms it never flags the wright's own edits (older Claude Code builds may not populate
|
|
139
|
-
`agent_id`: the log is the proof before you enforce). The post-hoc gate stands on its own; the
|
|
140
|
-
hook is belt-and-suspenders.
|
|
101
|
+
Before every retry:
|
|
102
|
+
|
|
103
|
+
1. update `.wright-allowlist` only for an accepted path still inside the settled slice;
|
|
104
|
+
2. run `devrites-engine reconcile snapshot`.
|
|
105
|
+
|
|
106
|
+
That refresh requires the prior clean check, re-fingerprints root-owned state, and keeps
|
|
107
|
+
the original source baseline. Re-dispatch with the exact output, attempt count, and dead
|
|
108
|
+
ends. Then repeat reconcile and both integrity gates from zero. Clear recovery only after
|
|
109
|
+
green with `recovery clear --class <class> "<root cause>" <slug>`. An exhausted objective
|
|
110
|
+
failure becomes a technical blocker with its reproduction, not a `rite-resolve` question.
|
|
111
|
+
|
|
112
|
+
## Close and record
|
|
113
|
+
|
|
114
|
+
When reconciliation, integrity, package, proof, and doubt gates all pass:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
devrites-engine reconcile close
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Only then persist `state.md`, `evidence.md`, `touched-files.md`, decision/doubt records,
|
|
121
|
+
and browser evidence. Keep the retained window across a genuine human wait that will
|
|
122
|
+
resume the same slice. Close it before abandoning the slice for a scope/plan transition.
|
|
123
|
+
|
|
124
|
+
## Host fallback
|
|
125
|
+
|
|
126
|
+
Use named wright → safely enforced generic fresh worker → labelled inline fallback from
|
|
127
|
+
`standards/agents.md`. A generic worker is eligible only when the host preserves
|
|
128
|
+
recognized wright identity plus exact allowlist enforcement, or contains it in an
|
|
129
|
+
isolated/staged checkout. Post-hoc reconciliation alone cannot authorize an
|
|
130
|
+
instruction-only shared-tree writer.
|
|
131
|
+
|
|
132
|
+
When no safe fresh-context writer rung is callable, the root may execute the same bounded
|
|
133
|
+
wright discipline inline. Write `.reconcile-inline` after the initial snapshot so the legacy
|
|
134
|
+
A1 pre-hook recognizes the authorized fallback; reconciliation does **not** skip. The
|
|
135
|
+
same allowlist, baseline, integrity gates, and close command remain mandatory.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-clarify
|
|
3
|
+
description: Run the topology-first decision-coverage scan after rite-spec and before strategy or architecture. Audit actors, journeys, states, data, integrations, operations, proof, assumptions, and must-NOT boundaries; close Partial/Missing rows and emit decision-coverage.md CLEAR. Use for missing/stale coverage or a missed pre-build product decision.
|
|
4
|
+
argument-hint: "[feature-slug]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /rite-clarify: resolve product decisions
|
|
9
|
+
|
|
10
|
+
Run this required pass between spec and strategy. If the spec covers every material
|
|
11
|
+
decision, ask no questions. Otherwise stay until each material decision has an
|
|
12
|
+
owner. This phase settles behavior and constraints; `/rite-define` settles
|
|
13
|
+
implementation.
|
|
14
|
+
|
|
15
|
+
Reuse [`devrites-interview`](../devrites-interview/SKILL.md) in `/clarify mode`. Write
|
|
16
|
+
`decision-coverage.md` as scan evidence, not an interview transcript.
|
|
17
|
+
|
|
18
|
+
## Rules consulted
|
|
19
|
+
|
|
20
|
+
Read `devrites-lib/reference/standards/core.md`, its `afk-hitl.md`, and
|
|
21
|
+
[`reference/decision-coverage.md`](reference/decision-coverage.md). Fresh evidence
|
|
22
|
+
dispatch uses
|
|
23
|
+
[`agents.md`](../devrites-lib/reference/standards/agents.md).
|
|
24
|
+
|
|
25
|
+
## Rules
|
|
26
|
+
|
|
27
|
+
- Search code/docs/contracts first. Facts and reversible implementation/test choices
|
|
28
|
+
are agent-owned; ask only about product, scope, policy, irreversible risk, or human-only access.
|
|
29
|
+
- Enumerate the full topology before details so no sibling surface is omitted.
|
|
30
|
+
- Ask one coherent human-owned decision packet at a time. One packet may close several rows
|
|
31
|
+
only when owner and trade-off match; never ask permission for routine repair/retry.
|
|
32
|
+
- One scan may cap at five packets for cognitive load, but readiness has no question cap:
|
|
33
|
+
re-scan until clear.
|
|
34
|
+
- Material assumptions carry evidence, confidence, owner, validation, and consequence.
|
|
35
|
+
|
|
36
|
+
## Workflow
|
|
37
|
+
|
|
38
|
+
0. **Orient.** Run `devrites-engine preamble` and `snapshot`. Require `spec.md` plus
|
|
39
|
+
`Spec gate: passed`; otherwise STOP → `/rite-spec`. For a later-phase retrofit, run
|
|
40
|
+
`devrites-engine clarify-return enter <slug>` **before any pause**; this persists the
|
|
41
|
+
return cursor and enters `Phase: clarify`.
|
|
42
|
+
1. **Enumerate topology** from the spec, references, live code, and prior decisions: actors,
|
|
43
|
+
journeys/components, states, data lifecycles, interfaces/integrations, operations, and
|
|
44
|
+
proof. Add omitted surfaces to the spec. **Completion:** every material surface appears
|
|
45
|
+
once with a source or canonical spec reference.
|
|
46
|
+
2. **Scan coverage** with `devrites-interview /clarify mode` and the reference taxonomy.
|
|
47
|
+
Mark each surface Clear/Partial/Missing with evidence; include must-NOT and out-of-scope
|
|
48
|
+
behavior. Unmentioned never means not applicable. **Completion:** the matrix records every
|
|
49
|
+
surface with evidence.
|
|
50
|
+
3. **Eliminate factual unknowns** through code intelligence, project/decision docs,
|
|
51
|
+
manifests/lockfiles, and authoritative external docs. Dispatch independent topology/fact
|
|
52
|
+
questions to `devrites-evidence-scout` (maximum three at once), await the cited dossiers,
|
|
53
|
+
and reconcile them in the root context. The root folds accepted facts into `spec.md` or
|
|
54
|
+
`assumptions.md`; the scout never asks or writes. **Completion:** each factual unknown is
|
|
55
|
+
source-backed or reclassified as an owned decision/assumption.
|
|
56
|
+
4. **Audit assumptions and decisions.** Record the fields required above. For high-cost or
|
|
57
|
+
hard-to-reverse product/constraint choices, present two or three viable options, recommendation
|
|
58
|
+
first. A genuinely undecidable behavior may take one bounded `/rite-prototype` detour.
|
|
59
|
+
5. **Close human-owned gaps** using the shared option-set contract: one highest-impact packet
|
|
60
|
+
per turn. Persist answers immediately in `spec.md` plus `decisions.md`/`questions.md`.
|
|
61
|
+
AFK remains within its gate ceiling; irreversible risk and principle exceptions pause.
|
|
62
|
+
6. **Re-scan after edits** until each material row is `closed`, `agent-owned`,
|
|
63
|
+
`not-applicable`, or justified `deferred-nonblocking` with owner and validation gate.
|
|
64
|
+
Partial/Missing, an unowned material assumption, or an open blocking/escalating question
|
|
65
|
+
means `NEEDS CLARIFICATION`.
|
|
66
|
+
7. **Write the verdict.** Update `decision-coverage.md`; success requires exactly one
|
|
67
|
+
`DevRites contract: devrites.readiness-artifacts.v2` field and exactly
|
|
68
|
+
`Decision coverage: CLEAR`. Normal state is `Phase: clarify`, `Next step: /rite-temper`.
|
|
69
|
+
A contract-neutral retrofit runs `devrites-engine clarify-return restore <slug>`; a
|
|
70
|
+
changed behavior/acceptance contract leaves the return cursor unconsumed, writes
|
|
71
|
+
`drift.md`, and routes `/rite-plan repair`. Normal first-pass flow sets `/rite-temper`.
|
|
72
|
+
8. **STOP.** Run `devrites-engine progress`; hand off only on `CLEAR`.
|
|
73
|
+
|
|
74
|
+
## Output
|
|
75
|
+
|
|
76
|
+
Run `devrites-engine progress`, then use the shared completion reply contract
|
|
77
|
+
([`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md)):
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
Done: decision coverage closed for <slug>; <n> topology surfaces scanned.
|
|
81
|
+
Changed: decision-coverage.md, spec.md, decisions.md, assumptions.md, questions.md
|
|
82
|
+
Evidence: Decision coverage: CLEAR; human packets <n>; agent-owned facts <n>
|
|
83
|
+
Open: none blocking; deferred-nonblocking <n>
|
|
84
|
+
Next: /rite-temper
|
|
85
|
+
Record: .devrites/work/<slug>/decision-coverage.md
|
|
86
|
+
↻ Hygiene: /clear before /rite-temper
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
If not clear, name the exact rows and next genuine decision packet. An objective spec defect
|
|
90
|
+
or factual search task never routes through `/rite-resolve`.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Decision coverage contract
|
|
2
|
+
|
|
3
|
+
`decision-coverage.md` proves a topology-first scan ran; reference canonical IDs instead of
|
|
4
|
+
duplicating their prose.
|
|
5
|
+
|
|
6
|
+
## Coverage taxonomy
|
|
7
|
+
|
|
8
|
+
For each material surface scan: outcome/scope/must-NOT; behavior, permissions, and all states;
|
|
9
|
+
domain/data lifecycle/invariants/order/concurrency; interfaces/integrations and failure
|
|
10
|
+
contracts; security/privacy/compliance/accessibility/performance/reliability/compatibility;
|
|
11
|
+
configuration/observability/support/rollout/rollback; and executable acceptance proof,
|
|
12
|
+
environment, credentials/approvals, and evidence limits.
|
|
13
|
+
|
|
14
|
+
## Status vocabulary
|
|
15
|
+
|
|
16
|
+
- `closed`: the canonical artifact records the decision.
|
|
17
|
+
- `agent-owned`: a reversible technical choice is explicitly delegated to define/vet.
|
|
18
|
+
- `not-applicable`: evidence shows the dimension does not apply.
|
|
19
|
+
- `deferred-nonblocking`: pre-code evidence is impossible or the item is an explicit
|
|
20
|
+
non-goal; owner and validation gate are named.
|
|
21
|
+
|
|
22
|
+
`Partial`, `Missing`, open, unknown, or ownerless rows never produce `CLEAR`.
|
|
23
|
+
|
|
24
|
+
## Artifact shape
|
|
25
|
+
|
|
26
|
+
```markdown
|
|
27
|
+
# Decision coverage
|
|
28
|
+
|
|
29
|
+
DevRites contract: devrites.readiness-artifacts.v2
|
|
30
|
+
Decision coverage: <CLEAR | NEEDS CLARIFICATION>
|
|
31
|
+
Coverage inputs SHA-256: <exact value from `devrites-engine readiness-digest coverage <slug>`>
|
|
32
|
+
|
|
33
|
+
## Topology
|
|
34
|
+
| Surface | Kind | Related IDs | Evidence |
|
|
35
|
+
| --- | --- | --- | --- |
|
|
36
|
+
|
|
37
|
+
## Coverage matrix
|
|
38
|
+
| Surface | Dimension | Status | Canonical reference | Owner / validation gate | Consequence if wrong |
|
|
39
|
+
| --- | --- | --- | --- | --- | --- |
|
|
40
|
+
|
|
41
|
+
## Assumption audit
|
|
42
|
+
| Assumption | Evidence | Confidence | Owner | Validation | Consequence if wrong |
|
|
43
|
+
| --- | --- | --- | --- | --- | --- |
|
|
44
|
+
|
|
45
|
+
## Residual uncertainty
|
|
46
|
+
| Item | Why nonblocking | Owner | Validation gate |
|
|
47
|
+
| --- | --- | --- | --- |
|
|
48
|
+
|
|
49
|
+
## Readiness verdict
|
|
50
|
+
No Partial, Missing, unowned material assumption, or unresolved blocking/escalating
|
|
51
|
+
question remains.
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Combine rows only when one decision and owner genuinely close them.
|
|
55
|
+
|
|
56
|
+
Run the digest command only after `brief.md`, `spec.md`, `decisions.md`,
|
|
57
|
+
`assumptions.md`, and `questions.md` are final for this clarification pass, then
|
|
58
|
+
write the current contract field exactly once and copy the digest's complete field line
|
|
59
|
+
verbatim. The build gate recomputes the digest and
|
|
60
|
+
rejects stale coverage. Any open blocking, validating, or escalating question
|
|
61
|
+
also prevents `CLEAR`.
|
|
@@ -5,20 +5,19 @@ argument-hint: "[feature-slug]"
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# /rite-converge:
|
|
8
|
+
# /rite-converge: compare live code with intent
|
|
9
9
|
|
|
10
|
-
Read `spec.md
|
|
10
|
+
Read `spec.md`, `plan.md`, and `tasks.md` as the **sole source of intent** (with
|
|
11
11
|
`.devrites/principles.md` as governing constraints), assess what the **live codebase**
|
|
12
12
|
implements, and **append every unmet piece as a new traceable `SLICE-###`** at the
|
|
13
|
-
bottom of `tasks.md` so `/rite-build` can finish it.
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
bottom of `tasks.md` so `/rite-build` can finish it. Use this for a resumed half-built
|
|
14
|
+
feature, an adopted codebase that drifted from its derived spec, or a build that stalled
|
|
15
|
+
mid-slice. **Read the active
|
|
16
16
|
workspace first**; if there's no `spec.md`/`plan.md`/`tasks.md`, tell the user which
|
|
17
17
|
prerequisite skill to run.
|
|
18
18
|
|
|
19
|
-
> **
|
|
20
|
-
>
|
|
21
|
-
> what the artifacts asked for", not "what changed since commit X". For a change-scoped
|
|
19
|
+
> **This is not a diff tool.** `/rite-converge` compares current code with intent. It
|
|
20
|
+
> does not use git history or compare branches. For a change-scoped
|
|
22
21
|
> review use `/rite-review`; to prove a finished feature use `/rite-prove`.
|
|
23
22
|
|
|
24
23
|
## Rules consulted (read on demand from `.claude/skills/devrites-lib/reference/standards/`)
|
|
@@ -41,16 +40,20 @@ Pull on demand:
|
|
|
41
40
|
- **Clean means byte-for-byte unchanged.** When the code already satisfies everything, leave
|
|
42
41
|
`tasks.md` untouched (no empty convergence header) and report a clean result. Recommend
|
|
43
42
|
`/rite-prove`.
|
|
44
|
-
- **
|
|
43
|
+
- **Use artifacts as intent.** The spec, plan, tasks, and principles are the
|
|
45
44
|
contract. If assessing reveals the *spec* is wrong (the code is right and the requirement is
|
|
46
45
|
stale), that's **Spec Drift**: stop and route it through the Spec Drift Guard
|
|
47
46
|
(`rite-build/reference/spec-drift-guard.md`) + a recorded decision; never paper over a spec
|
|
48
|
-
bug by appending a task that
|
|
47
|
+
bug by appending a task that changes correct code to match a wrong requirement.
|
|
49
48
|
- **Partial is not done.** Code that exists but is untested, half-wired, or covers only the
|
|
50
49
|
happy path is an unmet gap: enqueue the remainder, don't round it up.
|
|
51
50
|
- **Principles are non-negotiable.** A live violation of a declared invariant with no recorded
|
|
52
51
|
exception is the top-severity gap, walked first. Absent/empty principles file → none declared
|
|
53
52
|
→ skip the check gracefully, never block for its absence.
|
|
53
|
+
- **Scout observes; root classifies and writes.** Use
|
|
54
|
+
[`agents.md`](../devrites-lib/reference/standards/agents.md). The evidence scout returns
|
|
55
|
+
live-code citations only; the controlling chat owns built/partial/absent calls and append-only
|
|
56
|
+
workspace changes.
|
|
54
57
|
|
|
55
58
|
## Workflow
|
|
56
59
|
0. **Read `.claude/skills/devrites-lib/reference/standards/core.md`** first (the always-on
|
|
@@ -59,14 +62,16 @@ Pull on demand:
|
|
|
59
62
|
any is missing, **STOP** and name the prerequisite (`/rite-spec` for a missing spec,
|
|
60
63
|
`/rite-define` for a missing plan/tasks, `/rite-adopt` to onboard existing code). Do not
|
|
61
64
|
produce partial output.
|
|
65
|
+
Require `decision-coverage.md` with `Decision coverage: CLEAR`; otherwise STOP →
|
|
66
|
+
`/rite-clarify`.
|
|
62
67
|
2. **Load intent:** [`reference/convergence-assessment.md`](reference/convergence-assessment.md).
|
|
63
68
|
From `spec.md`: buildable `AC-###` / `### Requirement:` scenarios (skip `## Success metrics`);
|
|
64
69
|
from `plan.md`: architecture decisions + named touch-points (files/components the plan says
|
|
65
70
|
get built); from `tasks.md`: existing slices + their `Satisfies:`; from
|
|
66
71
|
`.devrites/principles.md`: the invariants.
|
|
67
72
|
**Completion:** every buildable criterion, touch-point, slice output, and principle is in the assessment inventory.
|
|
68
|
-
3. **Run the mechanical
|
|
69
|
-
consistency; `devrites-engine coverage` gives the AC→slice→proven matrix. They catch *unmapped*
|
|
73
|
+
3. **Run the mechanical checks**, then read the code. `devrites-engine analyze` gives coverage
|
|
74
|
+
and consistency; `devrites-engine coverage` gives the AC→slice→proven matrix. They catch *unmapped*
|
|
70
75
|
criteria; they do **not** see whether mapped code is built and correct, for that,
|
|
71
76
|
read the live code (code-intelligence index per `tooling.md`).
|
|
72
77
|
```bash
|
|
@@ -78,7 +83,9 @@ Pull on demand:
|
|
|
78
83
|
[`reference/convergence-assessment.md`](reference/convergence-assessment.md)): every
|
|
79
84
|
acceptance criterion / scenario, every plan touch-point, and every existing slice's stated
|
|
80
85
|
Produces. A principle violated in the current code is its own top-severity gap.
|
|
81
|
-
|
|
86
|
+
Dispatch up to three independent inventory partitions to `devrites-evidence-scout` on the
|
|
87
|
+
same frozen candidate, await their dossiers, then reconcile the cited facts in the root
|
|
88
|
+
context. **Completion:** every inventory unit is classified once with live-code evidence.
|
|
82
89
|
5. **Enqueue the remainder as new slices.** For each *partial* or *absent* unit, append a
|
|
83
90
|
`## SLICE-###` (continue the numbering after the highest existing id) in the `rite-define`
|
|
84
91
|
slice grammar, each with a `Satisfies:` line tracing to the AC/REQ it closes and a
|
|
@@ -87,10 +94,14 @@ Pull on demand:
|
|
|
87
94
|
**Completion:** every partial/absent unit has one traceable appended slice, or the file is byte-for-byte unchanged.
|
|
88
95
|
6. **Write append-only + bookkeeping.** Append the slice batch to `tasks.md` (nothing else in
|
|
89
96
|
that file changes); refresh `traceability.md` (`devrites-engine coverage` → new rows for the
|
|
90
|
-
appended slices)
|
|
91
|
-
|
|
97
|
+
appended slices). Appending a slice changes the plan input, so invalidate the prior vet:
|
|
98
|
+
update `state.md` to `Phase: plan`, `Next step: /rite-vet`, and set an existing
|
|
99
|
+
`eng-review.md` field to `Implementation readiness: NEEDS REPLAN`. When nothing was unmet,
|
|
100
|
+
leave the plan/vet verdict untouched and set `Next step: /rite-prove`. Append
|
|
101
|
+
`decisions.md` for any material call.
|
|
92
102
|
7. **STOP.** Report units assessed, built / partial / absent counts, slices appended, and any
|
|
93
|
-
principle violation found; recommend `/rite-
|
|
103
|
+
principle violation found; recommend `/rite-vet` when slices were appended (or
|
|
104
|
+
`/rite-prove` if the code already
|
|
94
105
|
converged).
|
|
95
106
|
|
|
96
107
|
## Appended slice format
|
|
@@ -105,11 +116,9 @@ Convergence: 2026-07-07 # marks this as a convergence-appended slice, not a
|
|
|
105
116
|
<all remaining canonical slice fields>
|
|
106
117
|
```
|
|
107
118
|
|
|
108
|
-
> **Mid-flight discipline.**
|
|
109
|
-
>
|
|
110
|
-
>
|
|
111
|
-
> [`reference/anti-patterns.md`](reference/anti-patterns.md). Load it the moment you reach for
|
|
112
|
-
> the excuse.
|
|
119
|
+
> **Mid-flight discipline.** Do not rewrite an existing slice, edit source, mark a
|
|
120
|
+
> happy-path-only implementation as built, or add work for a spec you suspect is wrong.
|
|
121
|
+
> See [`reference/anti-patterns.md`](reference/anti-patterns.md).
|
|
113
122
|
|
|
114
123
|
## Output
|
|
115
124
|
|
|
@@ -118,14 +127,15 @@ Convergence: 2026-07-07 # marks this as a convergence-appended slice, not a
|
|
|
118
127
|
Default success shape:
|
|
119
128
|
```
|
|
120
129
|
Done: convergence assessed for <slug>; <n> slices appended.
|
|
121
|
-
Changed: tasks.md <appended|unchanged>, traceability.md, state.md
|
|
130
|
+
Changed: tasks.md <appended|unchanged>, traceability.md, state.md, eng-review.md <invalidated|unchanged>
|
|
122
131
|
Evidence: units <built>/<total> built · <partial> partial · <absent> absent · principle violations 0
|
|
123
132
|
Open: none
|
|
124
|
-
Next: /rite-
|
|
133
|
+
Next: /rite-vet
|
|
125
134
|
Record: .devrites/work/<slug>/tasks.md
|
|
126
|
-
↻ Hygiene: /clear before /rite-
|
|
135
|
+
↻ Hygiene: /clear before /rite-vet
|
|
127
136
|
```
|
|
128
137
|
When nothing was unmet, render the same green form with `Next: /rite-prove`.
|
|
129
138
|
If spec drift or another blocker remains, use the shared `Stopped / blocked` form
|
|
130
139
|
and route `Fix:` to `/rite-plan`; do not recommend `/rite-build`.
|
|
131
|
-
**DO NOT write application code, rewrite existing slices, or edit spec.md/plan.md here
|
|
140
|
+
**DO NOT write application code, rewrite existing slices, or edit spec.md/plan.md here.**
|
|
141
|
+
This phase assesses and enqueues; `/rite-build` implements.
|