devrites 3.2.27 → 4.0.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 +22 -144
- package/NOTICE.md +6 -5
- package/README.md +187 -95
- package/SECURITY.md +103 -79
- package/bin/devrites.mjs +140 -24
- package/docs/adr/0003-gate-model-hitl-pause.md +1 -1
- package/docs/adr/0013-native-codex-agent-orchestration.md +74 -0
- package/docs/adr/0014-native-host-hook-boundary.md +64 -0
- package/docs/adr/0015-read-only-root-native-orchestration.md +96 -0
- package/docs/adr/0016-codex-writer-fail-closed.md +53 -0
- package/docs/adr/0017-native-codex-writer-agent.md +63 -0
- package/docs/adr/0018-native-sandbox-instruction-writer-boundary.md +66 -0
- package/docs/adr/0019-native-boundary-with-deterministic-gates.md +48 -0
- package/docs/adr/0020-thin-engine-native-orchestration-boundary.md +54 -0
- package/docs/adr/0021-observable-workspace-compatibility.md +49 -0
- package/docs/adr/0022-native-orchestration-thin-engine.md +90 -0
- package/docs/adr/0023-native-workspace-reads-line-output.md +71 -0
- package/docs/adr/0024-native-policy-offline-installer-boundary.md +111 -0
- package/docs/adr/0025-evidence-gated-workspace-upgrades.md +64 -0
- package/docs/adr/0026-content-bound-proof-and-bounded-inputs.md +169 -0
- package/docs/adr/0027-content-bound-build-readiness.md +77 -0
- package/docs/adr/README.md +26 -11
- package/docs/agents/domain.md +2 -1
- package/docs/agents/issue-driven-rites.md +1 -1
- package/docs/architecture.md +191 -103
- package/docs/candidate-integrity.md +138 -0
- package/docs/capability-surface-selection.md +15 -5
- package/docs/cli.md +139 -92
- package/docs/command-map.md +88 -63
- package/docs/engine/commands.md +115 -507
- package/docs/engine/state-schema.md +94 -113
- package/docs/engine/workspace-schema.md +169 -229
- package/docs/flow.md +113 -68
- package/docs/harness-compliance.md +29 -56
- package/docs/markdown-instruction-upgrade-2026-08-02.md +302 -0
- package/docs/orchestration.md +136 -149
- package/docs/porting-to-a-new-harness.md +22 -7
- package/docs/quick-reference.md +21 -8
- package/docs/release.md +47 -4
- package/docs/skills.md +111 -72
- package/docs/templates/CRITIC_REVIEW_PACKET_TEMPLATE.md +2 -0
- package/docs/upstream-workflow-benchmark-2026-08-01.md +655 -0
- package/docs/usage.md +99 -65
- package/engine/Makefile +1 -2
- package/engine/cmd/releasepack/main.go +45 -25
- package/engine/cmd/releasepack/main_test.go +69 -0
- package/engine/commands.go +8 -258
- package/engine/harnessmatrix_test.go +28 -41
- package/engine/internal/devritespaths/paths.go +12 -28
- package/engine/internal/fsutil/copy.go +8 -0
- package/engine/internal/gate/gate.go +104 -105
- package/engine/internal/gate/gate_test.go +94 -84
- package/engine/internal/gate/readiness_binding.go +203 -0
- package/engine/internal/gate/readiness_binding_test.go +271 -0
- package/engine/internal/gitenv/env.go +46 -0
- package/engine/internal/gitenv/env_test.go +48 -0
- package/engine/internal/hostpack/hostpack.go +16 -20
- package/engine/internal/hostpack/hostpack_test.go +6 -6
- package/engine/internal/install/install.go +289 -511
- package/engine/internal/install/install_test.go +218 -306
- package/engine/internal/lib/candidate.go +475 -0
- package/engine/internal/lib/candidate_test.go +503 -0
- package/engine/internal/lib/closeout.go +17 -21
- package/engine/internal/lib/closeout_test.go +23 -0
- package/engine/internal/lib/cursor_compat_test.go +12 -75
- package/engine/internal/lib/evidencefresh.go +58 -47
- package/engine/internal/lib/evidencefresh_test.go +120 -0
- package/engine/internal/lib/resolve.go +13 -35
- package/engine/internal/lib/resolve_remediation_test.go +5 -17
- package/engine/internal/lib/secretscan.go +432 -0
- package/engine/internal/lib/secretscan_test.go +555 -0
- package/engine/internal/lib/util.go +24 -65
- package/engine/internal/lib/util_test.go +44 -0
- package/engine/internal/markdowntext/markdowntext.go +108 -0
- package/engine/internal/markdowntext/markdowntext_test.go +58 -0
- package/engine/internal/markdowntext/testdata/structural.json +27 -0
- package/engine/internal/reason/reason.go +2 -123
- package/engine/internal/reason/reason_test.go +4 -2
- package/engine/internal/rootfacts/facts.go +6 -8
- package/engine/internal/rootfacts/facts_test.go +20 -0
- package/engine/internal/state/cmd/workflowmanifest/main.go +10 -12
- package/engine/internal/state/cursor.go +53 -14
- package/engine/internal/state/cursor_test.go +57 -0
- package/engine/internal/state/feature.go +64 -154
- package/engine/internal/state/schema.go +24 -50
- package/engine/internal/state/state_test.go +151 -140
- package/engine/internal/state/status.go +4 -17
- package/engine/internal/state/workflow_manifest.json +9 -89
- package/engine/main.go +73 -502
- package/engine/root_routing_test.go +183 -212
- package/engine/testdata/fixtures/basic/devrites-root/{features/auth-tokens/feature.md → work/auth-tokens/README.md} +0 -1
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/architecture.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/assumptions.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/brief.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/decision-coverage.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/eng-review.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/questions.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/{features/auth-tokens/status.md → work/auth-tokens/state.md} +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/test-plan.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/traceability.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/{features/search-ranking/feature.md → work/search-ranking/README.md} +0 -1
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/assumptions.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/brief.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/decisions.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/questions.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/state.md +2 -0
- package/engine/testdata/golden/TestParityCloseOut/active_pointed_elsewhere.golden +1 -1
- package/engine/testdata/golden/TestParityCloseOut/active_slug_cleared.golden +1 -1
- package/engine/tests/adr_0003_gate_exit_code_test.go +2 -2
- package/engine/tests/adr_0011_define_plan_test.go +2 -2
- package/engine/tests/adr_0027_readiness_binding_test.go +106 -0
- package/engine/tests/cli_test.go +24 -107
- package/engine/tests/gate_test.go +177 -200
- package/engine/tests/meta_test.go +5 -35
- package/engine/tests/parity_closeout_test.go +12 -12
- package/engine/tests/parity_resolve_test.go +6 -16
- package/engine/tests/parity_test.go +8 -302
- package/install.sh +201 -34
- package/pack/.claude/agents/devrites-code-reviewer.md +9 -18
- package/pack/.claude/agents/devrites-devex-reviewer.md +10 -18
- package/pack/.claude/agents/devrites-doubt-reviewer.md +10 -20
- package/pack/.claude/agents/devrites-evidence-scout.md +14 -26
- package/pack/.claude/agents/devrites-frontend-reviewer.md +9 -15
- package/pack/.claude/agents/devrites-performance-reviewer.md +13 -21
- package/pack/.claude/agents/devrites-plan-drafter.md +24 -28
- package/pack/.claude/agents/devrites-plan-reviewer.md +30 -47
- package/pack/.claude/agents/devrites-proof-runner.md +41 -47
- package/pack/.claude/agents/devrites-retrospector.md +34 -79
- package/pack/.claude/agents/devrites-security-auditor.md +9 -17
- package/pack/.claude/agents/devrites-simplifier-reviewer.md +9 -18
- package/pack/.claude/agents/devrites-slice-wright.md +44 -62
- package/pack/.claude/agents/devrites-spec-reviewer.md +38 -50
- package/pack/.claude/agents/devrites-strategy-reviewer.md +10 -19
- package/pack/.claude/agents/devrites-test-analyst.md +22 -21
- package/pack/.claude/agents/devrites-upgrade-planner.md +52 -71
- package/pack/.claude/settings.json +12 -100
- package/pack/.claude/skills/devrites-api-interface/SKILL.md +1 -2
- package/pack/.claude/skills/devrites-audit/SKILL.md +6 -9
- package/pack/.claude/skills/devrites-browser-proof/SKILL.md +0 -1
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +21 -27
- package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +22 -33
- package/pack/.claude/skills/devrites-doubt/SKILL.md +4 -6
- package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +1 -2
- package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +2 -1
- package/pack/.claude/skills/devrites-interview/SKILL.md +31 -36
- package/pack/.claude/skills/devrites-lib/SKILL.md +37 -66
- package/pack/.claude/skills/devrites-lib/reference/candidate-integrity.md +51 -0
- package/pack/.claude/skills/devrites-lib/reference/intent-map.md +20 -12
- package/pack/.claude/skills/devrites-lib/reference/orchestration-profiles.md +22 -0
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +35 -110
- package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +26 -93
- package/pack/.claude/skills/devrites-lib/reference/standards/README.md +6 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +43 -34
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +90 -216
- package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +9 -28
- package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +13 -11
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +59 -54
- package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +3 -5
- package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +29 -143
- package/pack/.claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +5 -6
- package/pack/.claude/skills/devrites-lib/reference/standards/security.md +13 -31
- package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +112 -82
- package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +71 -45
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +22 -11
- package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +15 -24
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +106 -37
- package/pack/.claude/skills/devrites-prose-craft/SKILL.md +3 -4
- package/pack/.claude/skills/devrites-source-driven/SKILL.md +3 -4
- package/pack/.claude/skills/devrites-ux-shape/SKILL.md +3 -3
- package/pack/.claude/skills/rite/SKILL.md +12 -13
- package/pack/.claude/skills/rite/reference/menu.md +11 -11
- package/pack/.claude/skills/rite-adopt/SKILL.md +29 -84
- package/pack/.claude/skills/rite-adopt/reference/adoption.md +16 -50
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +65 -54
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +24 -17
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +18 -21
- package/pack/.claude/skills/rite-build/SKILL.md +28 -34
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +36 -34
- package/pack/.claude/skills/rite-build/reference/anti-patterns.md +5 -19
- package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +10 -9
- package/pack/.claude/skills/rite-build/reference/checkpoint.md +17 -17
- package/pack/.claude/skills/rite-build/reference/frontend-trigger.md +3 -3
- package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +11 -14
- package/pack/.claude/skills/rite-build/reference/output.md +14 -24
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +49 -188
- package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +43 -133
- package/pack/.claude/skills/rite-clarify/SKILL.md +46 -40
- package/pack/.claude/skills/rite-clarify/reference/decision-coverage.md +4 -10
- package/pack/.claude/skills/rite-converge/SKILL.md +9 -33
- package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +2 -2
- package/pack/.claude/skills/rite-customize/SKILL.md +34 -50
- package/pack/.claude/skills/rite-define/SKILL.md +34 -58
- package/pack/.claude/skills/rite-define/reference/plan-template.md +15 -0
- package/pack/.claude/skills/rite-doctor/SKILL.md +52 -64
- package/pack/.claude/skills/rite-dogfood/SKILL.md +1 -2
- package/pack/.claude/skills/rite-explain/SKILL.md +1 -20
- package/pack/.claude/skills/rite-frame/SKILL.md +1 -7
- package/pack/.claude/skills/rite-frame/reference/failure-modes.md +1 -1
- package/pack/.claude/skills/rite-handoff/SKILL.md +1 -2
- package/pack/.claude/skills/rite-handoff/reference/handoff-template.md +1 -1
- package/pack/.claude/skills/rite-learn/SKILL.md +44 -104
- package/pack/.claude/skills/rite-plan/SKILL.md +14 -26
- package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +4 -1
- package/pack/.claude/skills/rite-polish/SKILL.md +20 -28
- package/pack/.claude/skills/rite-polish/reference/adr-promotion.md +11 -0
- package/pack/{generated/claude/skills/rite-ship → .claude/skills/rite-polish}/reference/design-memory.md +23 -21
- package/pack/.claude/skills/rite-polish/reference/ledger.md +62 -0
- package/pack/.claude/skills/rite-pov/SKILL.md +28 -32
- package/pack/.claude/skills/rite-pr-feedback/SKILL.md +0 -1
- package/pack/.claude/skills/rite-pressure-test/SKILL.md +6 -13
- package/pack/.claude/skills/rite-prototype/SKILL.md +0 -6
- package/pack/.claude/skills/rite-prove/SKILL.md +73 -68
- package/pack/.claude/skills/rite-prove/reference/acceptance-proof.md +34 -30
- package/pack/.claude/skills/rite-prove/reference/test-command-discovery.md +15 -14
- package/pack/.claude/skills/rite-quick/SKILL.md +5 -19
- package/pack/.claude/skills/rite-resolve/SKILL.md +4 -21
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +2 -2
- package/pack/.claude/skills/rite-review/SKILL.md +34 -57
- package/pack/.claude/skills/rite-seal/SKILL.md +54 -87
- package/pack/.claude/skills/rite-seal/reference/anti-patterns.md +2 -2
- package/pack/.claude/skills/rite-seal/reference/final-evidence.md +31 -56
- package/pack/.claude/skills/rite-seal/reference/go-no-go.md +27 -51
- package/pack/.claude/skills/rite-seal/reference/output.md +2 -4
- package/pack/.claude/skills/rite-seal/reference/phase-contract.md +42 -140
- package/pack/.claude/skills/rite-seal/reference/risk-and-rollback.md +2 -2
- package/pack/.claude/skills/rite-seal/reference/seal-template.md +17 -28
- package/pack/.claude/skills/rite-ship/SKILL.md +65 -93
- package/pack/.claude/skills/rite-ship/reference/anti-patterns.md +4 -1
- package/pack/.claude/skills/rite-ship/reference/close-out.md +4 -12
- package/pack/.claude/skills/rite-ship/reference/git-ship.md +86 -48
- package/pack/.claude/skills/rite-ship/reference/ship-template.md +22 -16
- package/pack/.claude/skills/rite-spec/SKILL.md +62 -95
- package/pack/.claude/skills/rite-spec/reference/investigation.md +1 -4
- package/pack/.claude/skills/rite-spec/reference/question-protocol.md +21 -20
- package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +16 -17
- package/pack/.claude/skills/rite-spec/reference/spec-template.md +47 -49
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +28 -13
- package/pack/.claude/skills/rite-status/SKILL.md +30 -88
- package/pack/.claude/skills/rite-temper/SKILL.md +12 -31
- package/pack/.claude/skills/rite-upgrade/SKILL.md +86 -101
- package/pack/.claude/skills/rite-vet/SKILL.md +88 -117
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +56 -50
- package/pack/.claude/skills/rite-vet/reference/cross-model.md +15 -39
- package/pack/.claude/skills/rite-vet/reference/depth.md +2 -2
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +3 -6
- package/pack/.claude/skills/rite-zoom-out/SKILL.md +0 -6
- package/pack/generated/README.md +2 -2
- package/pack/generated/claude/agents/devrites-code-reviewer.md +9 -18
- package/pack/generated/claude/agents/devrites-devex-reviewer.md +10 -18
- package/pack/generated/claude/agents/devrites-doubt-reviewer.md +10 -20
- package/pack/generated/claude/agents/devrites-evidence-scout.md +14 -26
- package/pack/generated/claude/agents/devrites-frontend-reviewer.md +9 -15
- package/pack/generated/claude/agents/devrites-performance-reviewer.md +13 -21
- package/pack/generated/claude/agents/devrites-plan-drafter.md +24 -28
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +30 -47
- package/pack/generated/claude/agents/devrites-proof-runner.md +41 -47
- package/pack/generated/claude/agents/devrites-retrospector.md +34 -79
- package/pack/generated/claude/agents/devrites-security-auditor.md +9 -17
- package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +9 -18
- package/pack/generated/claude/agents/devrites-slice-wright.md +44 -62
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +38 -50
- package/pack/generated/claude/agents/devrites-strategy-reviewer.md +10 -19
- package/pack/generated/claude/agents/devrites-test-analyst.md +22 -21
- package/pack/generated/claude/agents/devrites-upgrade-planner.md +52 -71
- package/pack/generated/claude/settings.json +12 -100
- package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +1 -2
- package/pack/generated/claude/skills/devrites-audit/SKILL.md +6 -9
- package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +0 -1
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +21 -27
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +22 -33
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +4 -6
- package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +1 -2
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +2 -1
- package/pack/generated/claude/skills/devrites-interview/SKILL.md +31 -36
- package/pack/generated/claude/skills/devrites-lib/SKILL.md +37 -66
- package/pack/generated/claude/skills/devrites-lib/reference/candidate-integrity.md +51 -0
- package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +20 -12
- package/pack/generated/claude/skills/devrites-lib/reference/orchestration-profiles.md +22 -0
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +35 -110
- package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +26 -93
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +6 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +43 -34
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +90 -216
- package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +9 -28
- package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +13 -11
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +59 -54
- package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +3 -5
- package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +29 -143
- package/pack/generated/claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +5 -6
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +13 -31
- package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +112 -82
- package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +71 -45
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +22 -11
- package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +15 -24
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +106 -37
- package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +3 -4
- package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +3 -4
- package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +3 -3
- package/pack/generated/claude/skills/rite/SKILL.md +12 -13
- package/pack/generated/claude/skills/rite/reference/menu.md +11 -11
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +29 -84
- package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +16 -50
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +65 -54
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +24 -17
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +18 -21
- package/pack/generated/claude/skills/rite-build/SKILL.md +28 -34
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +36 -34
- package/pack/generated/claude/skills/rite-build/reference/anti-patterns.md +5 -19
- package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +10 -9
- package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +17 -17
- package/pack/generated/claude/skills/rite-build/reference/frontend-trigger.md +3 -3
- package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +11 -14
- package/pack/generated/claude/skills/rite-build/reference/output.md +14 -24
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +49 -188
- package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +43 -133
- package/pack/generated/claude/skills/rite-clarify/SKILL.md +46 -40
- package/pack/generated/claude/skills/rite-clarify/reference/decision-coverage.md +4 -10
- package/pack/generated/claude/skills/rite-converge/SKILL.md +9 -33
- package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +2 -2
- package/pack/generated/claude/skills/rite-customize/SKILL.md +34 -50
- package/pack/generated/claude/skills/rite-define/SKILL.md +34 -58
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +15 -0
- package/pack/generated/claude/skills/rite-doctor/SKILL.md +52 -64
- package/pack/generated/claude/skills/rite-dogfood/SKILL.md +1 -2
- package/pack/generated/claude/skills/rite-explain/SKILL.md +1 -20
- package/pack/generated/claude/skills/rite-frame/SKILL.md +1 -7
- package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +1 -1
- package/pack/generated/claude/skills/rite-handoff/SKILL.md +1 -2
- package/pack/generated/claude/skills/rite-handoff/reference/handoff-template.md +1 -1
- package/pack/generated/claude/skills/rite-learn/SKILL.md +44 -104
- package/pack/generated/claude/skills/rite-plan/SKILL.md +14 -26
- package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +4 -1
- package/pack/generated/claude/skills/rite-polish/SKILL.md +20 -28
- package/pack/generated/claude/skills/rite-polish/reference/adr-promotion.md +11 -0
- package/pack/generated/{codex/skills/rite-ship → claude/skills/rite-polish}/reference/design-memory.md +23 -21
- package/pack/generated/claude/skills/rite-polish/reference/ledger.md +62 -0
- package/pack/generated/claude/skills/rite-pov/SKILL.md +28 -32
- package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +0 -1
- package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +6 -13
- package/pack/generated/claude/skills/rite-prototype/SKILL.md +0 -6
- package/pack/generated/claude/skills/rite-prove/SKILL.md +73 -68
- package/pack/generated/claude/skills/rite-prove/reference/acceptance-proof.md +34 -30
- package/pack/generated/claude/skills/rite-prove/reference/test-command-discovery.md +15 -14
- package/pack/generated/claude/skills/rite-quick/SKILL.md +5 -19
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +4 -21
- package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +2 -2
- package/pack/generated/claude/skills/rite-review/SKILL.md +34 -57
- package/pack/generated/claude/skills/rite-seal/SKILL.md +54 -87
- package/pack/generated/claude/skills/rite-seal/reference/anti-patterns.md +2 -2
- package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +31 -56
- package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +27 -51
- package/pack/generated/claude/skills/rite-seal/reference/output.md +2 -4
- package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +42 -140
- package/pack/generated/claude/skills/rite-seal/reference/risk-and-rollback.md +2 -2
- package/pack/generated/claude/skills/rite-seal/reference/seal-template.md +17 -28
- package/pack/generated/claude/skills/rite-ship/SKILL.md +65 -93
- package/pack/generated/claude/skills/rite-ship/reference/anti-patterns.md +4 -1
- package/pack/generated/claude/skills/rite-ship/reference/close-out.md +4 -12
- package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +86 -48
- package/pack/generated/claude/skills/rite-ship/reference/ship-template.md +22 -16
- package/pack/generated/claude/skills/rite-spec/SKILL.md +62 -95
- package/pack/generated/claude/skills/rite-spec/reference/investigation.md +1 -4
- package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +21 -20
- package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +16 -17
- package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +47 -49
- package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +28 -13
- package/pack/generated/claude/skills/rite-status/SKILL.md +30 -88
- package/pack/generated/claude/skills/rite-temper/SKILL.md +12 -31
- package/pack/generated/claude/skills/rite-upgrade/SKILL.md +86 -101
- package/pack/generated/claude/skills/rite-vet/SKILL.md +88 -117
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +56 -50
- package/pack/generated/claude/skills/rite-vet/reference/cross-model.md +15 -39
- package/pack/generated/claude/skills/rite-vet/reference/depth.md +2 -2
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +3 -6
- package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +0 -6
- package/pack/generated/codex/AGENTS.md +5 -4
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +8 -27
- package/pack/generated/codex/agents/devrites-devex-reviewer.toml +9 -27
- package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +9 -29
- package/pack/generated/codex/agents/devrites-evidence-scout.toml +14 -36
- package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +8 -24
- package/pack/generated/codex/agents/devrites-performance-reviewer.toml +12 -30
- package/pack/generated/codex/agents/devrites-plan-drafter.toml +24 -38
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +30 -57
- package/pack/generated/codex/agents/devrites-proof-runner.toml +41 -57
- package/pack/generated/codex/agents/devrites-retrospector.toml +34 -89
- package/pack/generated/codex/agents/devrites-security-auditor.toml +8 -26
- package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +8 -27
- package/pack/generated/codex/agents/devrites-slice-wright.toml +44 -71
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +38 -60
- package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +9 -28
- package/pack/generated/codex/agents/devrites-test-analyst.toml +21 -30
- package/pack/generated/codex/agents/devrites-upgrade-planner.toml +52 -81
- package/pack/generated/codex/config.toml +7 -0
- package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +1 -21
- package/pack/generated/codex/skills/devrites-audit/SKILL.md +6 -28
- package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +1 -21
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +21 -46
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +22 -33
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +4 -25
- package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +1 -21
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +2 -1
- package/pack/generated/codex/skills/devrites-interview/SKILL.md +32 -56
- package/pack/generated/codex/skills/devrites-lib/SKILL.md +38 -86
- package/pack/generated/codex/skills/devrites-lib/reference/candidate-integrity.md +51 -0
- package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +20 -12
- package/pack/generated/codex/skills/devrites-lib/reference/orchestration-profiles.md +22 -0
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +35 -110
- package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +26 -93
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +6 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +43 -34
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +90 -216
- package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +9 -28
- package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +13 -11
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +59 -54
- package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +3 -5
- package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +29 -143
- package/pack/generated/codex/skills/devrites-lib/reference/standards/release/ship-checklist.md +5 -6
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +13 -31
- package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +112 -82
- package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +71 -45
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +22 -11
- package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +15 -24
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +106 -37
- package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +3 -23
- package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +3 -23
- package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +3 -22
- package/pack/generated/codex/skills/rite/SKILL.md +12 -32
- package/pack/generated/codex/skills/rite/reference/menu.md +11 -11
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +29 -103
- package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +16 -50
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +65 -73
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +24 -17
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +18 -21
- package/pack/generated/codex/skills/rite-build/SKILL.md +28 -53
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +36 -34
- package/pack/generated/codex/skills/rite-build/reference/anti-patterns.md +5 -19
- package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +10 -9
- package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +17 -17
- package/pack/generated/codex/skills/rite-build/reference/frontend-trigger.md +3 -3
- package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +11 -14
- package/pack/generated/codex/skills/rite-build/reference/output.md +14 -24
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +49 -188
- package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +43 -133
- package/pack/generated/codex/skills/rite-clarify/SKILL.md +46 -59
- package/pack/generated/codex/skills/rite-clarify/reference/decision-coverage.md +4 -10
- package/pack/generated/codex/skills/rite-converge/SKILL.md +9 -52
- package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +2 -2
- package/pack/generated/codex/skills/rite-customize/SKILL.md +32 -67
- package/pack/generated/codex/skills/rite-define/SKILL.md +34 -77
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +15 -0
- package/pack/generated/codex/skills/rite-doctor/SKILL.md +52 -83
- package/pack/generated/codex/skills/rite-dogfood/SKILL.md +1 -21
- package/pack/generated/codex/skills/rite-explain/SKILL.md +1 -39
- package/pack/generated/codex/skills/rite-frame/SKILL.md +1 -26
- package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +1 -1
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +1 -21
- package/pack/generated/codex/skills/rite-handoff/reference/handoff-template.md +1 -1
- package/pack/generated/codex/skills/rite-learn/SKILL.md +44 -123
- package/pack/generated/codex/skills/rite-plan/SKILL.md +14 -45
- package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +4 -1
- package/pack/generated/codex/skills/rite-polish/SKILL.md +20 -47
- package/pack/generated/codex/skills/rite-polish/reference/adr-promotion.md +11 -0
- package/pack/{.claude/skills/rite-ship → generated/codex/skills/rite-polish}/reference/design-memory.md +23 -21
- package/pack/generated/codex/skills/rite-polish/reference/ledger.md +62 -0
- package/pack/generated/codex/skills/rite-pov/SKILL.md +28 -51
- package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +0 -20
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +6 -32
- package/pack/generated/codex/skills/rite-prototype/SKILL.md +0 -25
- package/pack/generated/codex/skills/rite-prove/SKILL.md +73 -87
- package/pack/generated/codex/skills/rite-prove/reference/acceptance-proof.md +34 -30
- package/pack/generated/codex/skills/rite-prove/reference/test-command-discovery.md +15 -14
- package/pack/generated/codex/skills/rite-quick/SKILL.md +5 -38
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +4 -40
- package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +2 -2
- package/pack/generated/codex/skills/rite-review/SKILL.md +34 -76
- package/pack/generated/codex/skills/rite-seal/SKILL.md +51 -103
- package/pack/generated/codex/skills/rite-seal/reference/anti-patterns.md +2 -2
- package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +31 -56
- package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +27 -51
- package/pack/generated/codex/skills/rite-seal/reference/output.md +2 -4
- package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +42 -140
- package/pack/generated/codex/skills/rite-seal/reference/risk-and-rollback.md +2 -2
- package/pack/generated/codex/skills/rite-seal/reference/seal-template.md +17 -28
- package/pack/generated/codex/skills/rite-ship/SKILL.md +65 -112
- package/pack/generated/codex/skills/rite-ship/reference/anti-patterns.md +4 -1
- package/pack/generated/codex/skills/rite-ship/reference/close-out.md +4 -12
- package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +86 -48
- package/pack/generated/codex/skills/rite-ship/reference/ship-template.md +22 -16
- package/pack/generated/codex/skills/rite-spec/SKILL.md +62 -114
- package/pack/generated/codex/skills/rite-spec/reference/investigation.md +1 -4
- package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +21 -20
- package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +16 -17
- package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +47 -49
- package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +28 -13
- package/pack/generated/codex/skills/rite-status/SKILL.md +30 -107
- package/pack/generated/codex/skills/rite-temper/SKILL.md +12 -50
- package/pack/generated/codex/skills/rite-upgrade/SKILL.md +86 -120
- package/pack/generated/codex/skills/rite-vet/SKILL.md +88 -136
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +56 -50
- package/pack/generated/codex/skills/rite-vet/reference/cross-model.md +15 -39
- package/pack/generated/codex/skills/rite-vet/reference/depth.md +2 -2
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +3 -6
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +0 -25
- package/package.json +6 -5
- package/scripts/build-host-artifacts.sh +5 -9
- package/scripts/codex-generate.sh +18 -278
- package/scripts/install-lib.sh +121 -34
- package/uninstall.sh +19 -17
- package/update.sh +26 -18
- package/docs/engine/agent-contract.md +0 -172
- package/docs/extensions.md +0 -178
- package/engine/git_guard.go +0 -187
- package/engine/git_guard_test.go +0 -283
- package/engine/harnessmatrix.go +0 -60
- package/engine/hookpolicy.go +0 -113
- package/engine/hookpolicy_test.go +0 -160
- package/engine/hooks.go +0 -677
- package/engine/hooks_agent_dispatch.go +0 -1637
- package/engine/hooks_events_test.go +0 -431
- package/engine/hooks_workspace.go +0 -1196
- package/engine/internal/doctor/doctor.go +0 -306
- package/engine/internal/doctor/doctor_test.go +0 -252
- package/engine/internal/forge/forge.go +0 -938
- package/engine/internal/forge/forge_test.go +0 -576
- package/engine/internal/forge/git.go +0 -245
- package/engine/internal/forge/liveness_unix.go +0 -48
- package/engine/internal/forge/liveness_windows.go +0 -67
- package/engine/internal/forge/manifest.go +0 -402
- package/engine/internal/harness/compliance.go +0 -96
- package/engine/internal/harness/harness.go +0 -301
- package/engine/internal/harness/harness_test.go +0 -124
- package/engine/internal/iohooks/detach_other.go +0 -11
- package/engine/internal/iohooks/detach_unix.go +0 -11
- package/engine/internal/iohooks/iohooks.go +0 -839
- package/engine/internal/iohooks/iohooks_test.go +0 -561
- package/engine/internal/lib/adoption.go +0 -659
- package/engine/internal/lib/adoption_test.go +0 -121
- package/engine/internal/lib/analyze.go +0 -232
- package/engine/internal/lib/archivesearch.go +0 -125
- package/engine/internal/lib/archivesearch_test.go +0 -138
- package/engine/internal/lib/budget.go +0 -172
- package/engine/internal/lib/buildreadiness.go +0 -111
- package/engine/internal/lib/checkacceptance.go +0 -176
- package/engine/internal/lib/clarifyreturn.go +0 -91
- package/engine/internal/lib/clarifyreturn_test.go +0 -123
- package/engine/internal/lib/command_other.go +0 -7
- package/engine/internal/lib/command_unix.go +0 -24
- package/engine/internal/lib/context.go +0 -280
- package/engine/internal/lib/conventions.go +0 -449
- package/engine/internal/lib/coverage.go +0 -145
- package/engine/internal/lib/dispatchwaive.go +0 -31
- package/engine/internal/lib/dispatchwaive_test.go +0 -23
- package/engine/internal/lib/doubtcoverage.go +0 -78
- package/engine/internal/lib/extensions.go +0 -622
- package/engine/internal/lib/extensions_test.go +0 -305
- package/engine/internal/lib/footprint.go +0 -239
- package/engine/internal/lib/gitauthority.go +0 -601
- package/engine/internal/lib/gitauthority_test.go +0 -346
- package/engine/internal/lib/jsonout.go +0 -129
- package/engine/internal/lib/jsonout_test.go +0 -73
- package/engine/internal/lib/lanes.go +0 -112
- package/engine/internal/lib/learnings.go +0 -397
- package/engine/internal/lib/learnings_inject_test.go +0 -77
- package/engine/internal/lib/learnings_remediation_test.go +0 -24
- package/engine/internal/lib/ledger.go +0 -311
- package/engine/internal/lib/ledger_test.go +0 -186
- package/engine/internal/lib/mutationgate.go +0 -89
- package/engine/internal/lib/observability_test.go +0 -358
- package/engine/internal/lib/overrides.go +0 -164
- package/engine/internal/lib/overrides_test.go +0 -112
- package/engine/internal/lib/preamble.go +0 -159
- package/engine/internal/lib/preamble_questions_test.go +0 -10
- package/engine/internal/lib/progress.go +0 -210
- package/engine/internal/lib/provenance.go +0 -462
- package/engine/internal/lib/provenance_test.go +0 -154
- package/engine/internal/lib/readiness_contract.json +0 -118
- package/engine/internal/lib/readinessartifact.go +0 -533
- package/engine/internal/lib/readinessartifact_test.go +0 -422
- package/engine/internal/lib/reconcile.go +0 -1496
- package/engine/internal/lib/reconcile_test.go +0 -1071
- package/engine/internal/lib/recoveryattempts.go +0 -298
- package/engine/internal/lib/recoveryattempts_test.go +0 -215
- package/engine/internal/lib/reviewers.go +0 -143
- package/engine/internal/lib/reviewers_test.go +0 -45
- package/engine/internal/lib/reviewerstats.go +0 -199
- package/engine/internal/lib/reviewerstats_test.go +0 -104
- package/engine/internal/lib/reviewintegrity.go +0 -143
- package/engine/internal/lib/reviewintegrity_test.go +0 -103
- package/engine/internal/lib/runbook.go +0 -295
- package/engine/internal/lib/runbook_context_test.go +0 -182
- package/engine/internal/lib/session.go +0 -1020
- package/engine/internal/lib/session_test.go +0 -177
- package/engine/internal/lib/specparse.go +0 -125
- package/engine/internal/lib/specskeleton.go +0 -79
- package/engine/internal/lib/specvalidate.go +0 -391
- package/engine/internal/lib/specvalidate_test.go +0 -185
- package/engine/internal/lib/stuck.go +0 -206
- package/engine/internal/lib/templates/conventions_drift.tmpl +0 -6
- package/engine/internal/lib/templates/conventions_ledger_header.md +0 -6
- package/engine/internal/lib/templates/conventions_orient_header.txt +0 -1
- package/engine/internal/lib/testintegrity.go +0 -199
- package/engine/internal/lib/testintegrity_test.go +0 -149
- package/engine/internal/lib/tickafk.go +0 -86
- package/engine/internal/migrate/migrate.go +0 -279
- package/engine/internal/migrate/migrate_test.go +0 -157
- package/engine/internal/orient/firstrun.go +0 -50
- package/engine/internal/orient/firstrun_test.go +0 -72
- package/engine/internal/orient/orient.go +0 -69
- package/engine/internal/orient/orient_test.go +0 -25
- package/engine/internal/profile/profile.go +0 -284
- package/engine/internal/profile/profile_test.go +0 -13
- package/engine/internal/state/clarify_transition.go +0 -165
- package/engine/internal/state/clarify_transition_test.go +0 -130
- package/engine/internal/state/snapshot.go +0 -457
- package/engine/internal/toolpolicy/classifier.go +0 -533
- package/engine/internal/toolpolicy/classifier_test.go +0 -424
- package/engine/internal/toolpolicy/git.go +0 -616
- package/engine/internal/toolpolicy/scanner.go +0 -382
- package/engine/observability_cli_test.go +0 -52
- package/engine/profile_test.go +0 -76
- package/engine/subagent_orient_context.txt +0 -8
- package/engine/testdata/golden/TestParityA1Guard/devrites-edit-allowed.golden +0 -1
- package/engine/testdata/golden/TestParityA1Guard/no-window-silent.golden +0 -1
- package/engine/testdata/golden/TestParityA1Guard/non-edit-tool.golden +0 -1
- package/engine/testdata/golden/TestParityA1Guard/observe-mode-silent.golden +0 -1
- package/engine/testdata/golden/TestParityA1Guard/source-edit-enforce-denies.golden +0 -2
- package/engine/testdata/golden/TestParityA1Guard/subagent-allowed.golden +0 -1
- package/engine/testdata/golden/TestParityAnalyze/noactive.golden +0 -1
- package/engine/testdata/golden/TestParityAnalyze/slug=covered.golden +0 -15
- package/engine/testdata/golden/TestParityAnalyze/slug=dangling.golden +0 -16
- package/engine/testdata/golden/TestParityAnalyze/slug=ghost.golden +0 -1
- package/engine/testdata/golden/TestParityAnalyze/slug=noac.golden +0 -15
- package/engine/testdata/golden/TestParityAnalyze/slug=order.golden +0 -17
- package/engine/testdata/golden/TestParityAnalyze/slug=orphan.golden +0 -16
- package/engine/testdata/golden/TestParityAnalyze/slug=uncovered.golden +0 -16
- package/engine/testdata/golden/TestParityBudget/default-active.golden +0 -4
- package/engine/testdata/golden/TestParityBudget/extra-md.golden +0 -5
- package/engine/testdata/golden/TestParityBudget/no-active.golden +0 -1
- package/engine/testdata/golden/TestParityBudget/no-feature.golden +0 -1
- package/engine/testdata/golden/TestParityBudget/over-advisory.golden +0 -6
- package/engine/testdata/golden/TestParityBudget/over-strict.golden +0 -6
- package/engine/testdata/golden/TestParityBudget/within.golden +0 -6
- package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +0 -2
- package/engine/testdata/golden/TestParityBuildReadiness/arg=approvenone.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=await.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=blocked.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=clarifyopen.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +0 -2
- package/engine/testdata/golden/TestParityBuildReadiness/arg=ghost.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=legacycontract.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=noapprove.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=noclarify.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=novet.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=stalevet.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +0 -2
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +0 -2
- package/engine/testdata/golden/TestParityBuildReadiness/arg=vetnotready.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=blank-section.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=empty.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-dropped.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-ok.golden +0 -2
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-unchecked.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-gap.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-ok.golden +0 -2
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=no-seal.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=no-section.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=nonexistent.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance.golden +0 -1
- package/engine/testdata/golden/TestParityCoverage/arg=flat.golden +0 -7
- package/engine/testdata/golden/TestParityCoverage/arg=full.golden +0 -10
- package/engine/testdata/golden/TestParityCoverage/arg=nonexistent.golden +0 -1
- package/engine/testdata/golden/TestParityCoverage/arg=nospec.golden +0 -1
- package/engine/testdata/golden/TestParityCoverage/arg=speconly.golden +0 -9
- package/engine/testdata/golden/TestParityCoverage.golden +0 -1
- package/engine/testdata/golden/TestParityCursor/bare.golden +0 -3
- package/engine/testdata/golden/TestParityCursor/full-afk.golden +0 -6
- package/engine/testdata/golden/TestParityCursor/full-hitl.golden +0 -5
- package/engine/testdata/golden/TestParityCursor/no-active.golden +0 -1
- package/engine/testdata/golden/TestParityCursor/red.golden +0 -5
- package/engine/testdata/golden/TestParityCursor/zerogates.golden +0 -5
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=doubted.golden +0 -2
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=ghost.golden +0 -2
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing.golden +0 -3
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=nodoubt.golden +0 -4
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=nolog.golden +0 -2
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=nowright.golden +0 -2
- package/engine/testdata/golden/TestParityDoubtCoverage.golden +0 -1
- package/engine/testdata/golden/TestParityMutationGate/active-slug.golden +0 -3
- package/engine/testdata/golden/TestParityMutationGate/explicit-slug.golden +0 -3
- package/engine/testdata/golden/TestParityMutationGate/ghost.golden +0 -1
- package/engine/testdata/golden/TestParityOrientSilentPath.golden +0 -1
- package/engine/testdata/golden/TestParityReconcile/bad-mode.golden +0 -1
- package/engine/testdata/golden/TestParityReconcile/check-clean/snapshot.golden +0 -2
- package/engine/testdata/golden/TestParityReconcile/check-clean.golden +0 -2
- package/engine/testdata/golden/TestParityReconcile/check-no-base.golden +0 -1
- package/engine/testdata/golden/TestParityReconcile/check-no-claimed/snapshot.golden +0 -2
- package/engine/testdata/golden/TestParityReconcile/check-violation/snapshot.golden +0 -2
- package/engine/testdata/golden/TestParityReconcile/check-violation.golden +0 -1
- package/engine/testdata/golden/TestParityReconcile/close-window/snapshot.golden +0 -2
- package/engine/testdata/golden/TestParityReconcile/close-window.golden +0 -3
- package/engine/testdata/golden/TestParityReconcile/not-git.golden +0 -1
- package/engine/testdata/golden/TestParityReconcile/snapshot/snapshot.golden +0 -2
- package/engine/testdata/golden/TestParityReconcile/snapshot-no-allowlist.golden +0 -1
- package/engine/testdata/golden/TestParityReconcile/snapshot.golden +0 -2
- package/engine/testdata/golden/TestParityRedwatch/fail-writes-red.golden +0 -2
- package/engine/testdata/golden/TestParityRedwatch/non-bash-tool.golden +0 -1
- package/engine/testdata/golden/TestParityRedwatch/non-test-command.golden +0 -1
- package/engine/testdata/golden/TestParityRedwatch/pass-clears-red.golden +0 -1
- package/engine/testdata/golden/TestParityResolve/next-qid.golden +0 -2
- package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-devrites-agent-denies.golden +0 -2
- package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-non-devrites-allows.golden +0 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-subagent-type-only-allows.golden +0 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-git-commit.golden +0 -2
- package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-mutating.golden +0 -2
- package/engine/testdata/golden/TestParityReviewerReadonly/non-bash-tool.golden +0 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/non-tool-input.golden +0 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/observe-mutating-silent.golden +0 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/safe-bash-command.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=dup.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=empty.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=flat.golden +0 -2
- package/engine/testdata/golden/TestParitySpecValidate/arg=nonexistent.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=noscenario.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=noshall.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=nothen.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=valid/spec.md.golden +0 -2
- package/engine/testdata/golden/TestParitySpecValidate/arg=valid.golden +0 -2
- package/engine/testdata/golden/TestParitySpecValidate.golden +0 -1
- package/engine/testdata/golden/TestParityStatusline/full-afk.golden +0 -2
- package/engine/testdata/golden/TestParityStatusline/full-hitl.golden +0 -2
- package/engine/testdata/golden/TestParityStatusline/no-active.golden +0 -1
- package/engine/testdata/golden/TestParityStatusline/nophase.golden +0 -2
- package/engine/testdata/golden/TestParityStatusline/red.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/bad-cmd.golden +0 -1
- package/engine/testdata/golden/TestParityStuckCheck/custom-window-2.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/dominant.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/few.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/ghost.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/identical.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/no-cmd.golden +0 -1
- package/engine/testdata/golden/TestParityStuckCheck/no-slug.golden +0 -1
- package/engine/testdata/golden/TestParityStuckCheck/nolog.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/pingpong.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/varied.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/window-04-identical.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/window-2.5-varied4.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/window-4x-varied4.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/window-leadspace-varied4.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/window-plus4-identical.golden +0 -2
- package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent-subagent-type-key.golden +0 -2
- package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent.golden +0 -2
- package/engine/testdata/golden/TestParitySubagentOrient/garbage-input.golden +0 -1
- package/engine/testdata/golden/TestParitySubagentOrient/non-devrites-agent.golden +0 -1
- package/engine/testdata/golden/TestParityTestIntegrity/assertion-dropped.golden +0 -1
- package/engine/testdata/golden/TestParityTestIntegrity/clean.golden +0 -2
- package/engine/testdata/golden/TestParityTestIntegrity/deleted.golden +0 -1
- package/engine/testdata/golden/TestParityTestIntegrity/ghost-workspace.golden +0 -1
- package/engine/testdata/golden/TestParityTestIntegrity/not-git.golden +0 -1
- package/engine/testdata/golden/TestParityTestIntegrity/skip-added.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/budget1/state.md.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/budget1.golden +0 -2
- package/engine/testdata/golden/TestParityTickAfk/budget3/state.md.golden +0 -5
- package/engine/testdata/golden/TestParityTickAfk/budget3.golden +0 -2
- package/engine/testdata/golden/TestParityTickAfk/bulletPipe/state.md.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/bulletPipe.golden +0 -2
- package/engine/testdata/golden/TestParityTickAfk/missingField/state.md.golden +0 -3
- package/engine/testdata/golden/TestParityTickAfk/missingField.golden +0 -2
- package/engine/testdata/golden/TestParityTickAfk/missingFile.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/nonNumeric/state.md.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/nonNumeric.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/none/state.md.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/none.golden +0 -2
- package/engine/testdata/golden/TestParityWrightScope/agent-required-non-wright.golden +0 -1
- package/engine/testdata/golden/TestParityWrightScope/devrites-edit-denied.golden +0 -2
- package/engine/testdata/golden/TestParityWrightScope/in-scope-allowed.golden +0 -1
- package/engine/testdata/golden/TestParityWrightScope/non-edit-tool.golden +0 -1
- package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +0 -2
- package/engine/testdata/golden/TestParityWrightScope/out-of-scope-observe-silent.golden +0 -1
- package/engine/testdata/golden/TestSpecSkeleton/missing-some.golden +0 -2
- package/engine/testdata/golden/TestSpecSkeleton/present-all.golden +0 -2
- package/engine/testdata/golden/TestStuckLogHashParity.golden +0 -1
- package/engine/tests/adr_0006_clock_seam_test.go +0 -36
- package/engine/tests/budget_test.go +0 -88
- package/engine/tests/canonical_ac_ids_test.go +0 -44
- package/engine/tests/concurrency_cli_test.go +0 -131
- package/engine/tests/conventions_test.go +0 -106
- package/engine/tests/doctor_cli_test.go +0 -223
- package/engine/tests/forge_cli_test.go +0 -463
- package/engine/tests/hook_test.go +0 -2732
- package/engine/tests/hooks_io_test.go +0 -309
- package/engine/tests/json_contract_test.go +0 -224
- package/engine/tests/lib_parity_test.go +0 -930
- package/engine/tests/migrate_cli_test.go +0 -195
- package/engine/tests/parity_analyze_test.go +0 -55
- package/engine/tests/parity_buildreadiness_test.go +0 -199
- package/engine/tests/parity_learnings_test.go +0 -89
- package/engine/tests/parity_mutationgate_test.go +0 -36
- package/engine/tests/parity_reconcile_test.go +0 -94
- package/engine/tests/parity_testintegrity_test.go +0 -65
- package/engine/tests/parity_tickafk_test.go +0 -83
- package/engine/validatepack.go +0 -192
- package/engine/validatepack_test.go +0 -79
- package/engine/validatepackskills.go +0 -181
- package/engine/validatepackskills_test.go +0 -171
- package/pack/.claude/agents/devrites-forge-judge.md +0 -118
- package/pack/.claude/skills/devrites-lib/reference/model-tiers.md +0 -44
- package/pack/.claude/skills/devrites-refresh-indexes/SKILL.md +0 -52
- package/pack/.claude/skills/rite-build/reference/evidence-standard.md +0 -45
- package/pack/.claude/skills/rite-build/reference/forge.md +0 -210
- package/pack/.claude/skills/rite-seal/reference/conventions-ledger.md +0 -60
- package/pack/.claude/skills/rite-ship/reference/adr-promotion.md +0 -9
- package/pack/.claude/skills/rite-ship/reference/ledger.md +0 -56
- package/pack/generated/claude/agents/devrites-forge-judge.md +0 -118
- package/pack/generated/claude/skills/devrites-lib/reference/model-tiers.md +0 -44
- package/pack/generated/claude/skills/devrites-refresh-indexes/SKILL.md +0 -52
- package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +0 -45
- package/pack/generated/claude/skills/rite-build/reference/forge.md +0 -210
- package/pack/generated/claude/skills/rite-seal/reference/conventions-ledger.md +0 -60
- package/pack/generated/claude/skills/rite-ship/reference/adr-promotion.md +0 -9
- package/pack/generated/claude/skills/rite-ship/reference/ledger.md +0 -56
- package/pack/generated/codex/agents/devrites-forge-judge.toml +0 -128
- package/pack/generated/codex/hooks.json +0 -185
- package/pack/generated/codex/skills/devrites-api-interface/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-audit/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-browser-proof/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-debug-recovery/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-doubt/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-frontend-craft/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-interview/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-lib/reference/model-tiers.md +0 -44
- package/pack/generated/codex/skills/devrites-prose-craft/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +0 -71
- package/pack/generated/codex/skills/devrites-refresh-indexes/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-source-driven/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-ux-shape/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +0 -45
- package/pack/generated/codex/skills/rite-build/reference/forge.md +0 -210
- package/pack/generated/codex/skills/rite-seal/reference/conventions-ledger.md +0 -60
- package/pack/generated/codex/skills/rite-ship/reference/adr-promotion.md +0 -9
- package/pack/generated/codex/skills/rite-ship/reference/ledger.md +0 -56
- package/scripts/build-binaries.sh +0 -75
- package/scripts/build-release-tarball.sh +0 -105
- package/scripts/check-authority-drift.py +0 -125
- package/scripts/check-cross-refs.py +0 -139
- package/scripts/check-generated-skill-budget.mjs +0 -42
- package/scripts/check-instruction-size-baseline.mjs +0 -88
- package/scripts/check-invocation-integrity.py +0 -115
- package/scripts/check-no-global-writes.sh +0 -66
- package/scripts/check-no-personal-paths.py +0 -50
- package/scripts/check-npm-audit.mjs +0 -110
- package/scripts/check-reference-governance.mjs +0 -83
- package/scripts/check-reply-contract.sh +0 -64
- package/scripts/check-rule-uniqueness.sh +0 -45
- package/scripts/devrites-detect.sh +0 -176
- package/scripts/grade-feature.sh +0 -204
- package/scripts/live-hosts/agent-result.schema.json +0 -231
- package/scripts/live-hosts/claude.sh +0 -87
- package/scripts/live-hosts/codex.sh +0 -85
- package/scripts/live-hosts/common.sh +0 -113
- package/scripts/live-hosts/fake-host.py +0 -257
- package/scripts/live-hosts/host-transport.py +0 -286
- package/scripts/npm-audit-exceptions.json +0 -26
- package/scripts/pin.sh +0 -249
- package/scripts/release-check.sh +0 -75
- package/scripts/run-agent-contract-evals.py +0 -1380
- package/scripts/run-behavioral-evals.sh +0 -196
- package/scripts/run-evals.sh +0 -132
- package/scripts/run-live-behavioral-evals.py +0 -1310
- package/scripts/run-outcome-evals.sh +0 -454
- package/scripts/run-routing-evals.py +0 -342
- package/scripts/run-tests.mjs +0 -232
- package/scripts/scan-pack-security.py +0 -209
- package/scripts/scan-supply-chain-iocs.py +0 -127
- package/scripts/skill-pruning-audit.mjs +0 -121
- package/scripts/skills-inventory.mjs +0 -125
- package/scripts/supply-chain-iocs.json +0 -11
- package/scripts/sync-version.sh +0 -54
- package/scripts/validate-agent-composition.py +0 -57
- package/scripts/validate-command-parity.py +0 -70
- package/scripts/validate-frontmatter.py +0 -218
- package/scripts/validate-skill-anatomy.py +0 -139
- package/scripts/validate-workflow-security.py +0 -184
- package/scripts/validate-workspace-schema.py +0 -800
- package/scripts/validate.sh +0 -354
- package/scripts/workflow_schema.py +0 -69
- /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/auth-tokens/decisions.md +0 -0
- /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/auth-tokens/plan.md +0 -0
- /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/auth-tokens/spec.md +0 -0
- /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/auth-tokens/tasks.md +0 -0
- /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/search-ranking/spec.md +0 -0
|
@@ -1,193 +1,54 @@
|
|
|
1
1
|
# rite-build phase contract
|
|
2
2
|
|
|
3
|
-
See
|
|
3
|
+
See [`one-slice-cycle.md`](one-slice-cycle.md); candidate lifecycle is
|
|
4
|
+
[`candidate-integrity.md`](../../devrites-lib/reference/candidate-integrity.md).
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
devrites-engine
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
right next slice. Write the slice's `Mode` to `state.md` as `Slice mode: <HITL|AFK>` on
|
|
34
|
-
**every** selection, including the non-HITL path; `/rite-resolve` clears or updates
|
|
35
|
-
it on resume.
|
|
36
|
-
2a. **HITL gate (pre-action pause).** Resolve any `HITL` slice checkpoint before code,
|
|
37
|
-
exactly as [`checkpoint-protocol.md`](checkpoint-protocol.md) defines. An interactive
|
|
38
|
-
human answers inline and the build continues in place. AFK may auto-pick only allowed
|
|
39
|
-
gates; otherwise persist the question and awaiting-human cursor, notify, and STOP for
|
|
40
|
-
`/rite-resolve`. Blocking, escalating, and irreversible-risk gates always take that stop path.
|
|
41
|
-
3. **Authorize exact paths, snapshot, then fresh-context dispatch the build core to
|
|
42
|
-
`devrites-slice-wright`.** First write the root-owned exact project-relative file list to
|
|
43
|
-
`.devrites/work/<slug>/.wright-allowlist`; mirror it in the packet's
|
|
44
|
-
`scope.allowed_repo_writes`. The wright's later `Files changed` report cannot widen it.
|
|
45
|
-
**Forge branch: only for a fully typed `Forge: yes` slice.** Follow
|
|
46
|
-
[`forge.md`](forge.md) sections 1 through 3: require the scorecard, strategies, and
|
|
47
|
-
real `manifest-env-v1` host binding; run `forge plan` before reconciliation; snapshot after a
|
|
48
|
-
planned result; bind, dispatch, record, and extract every candidate; judge the
|
|
49
|
-
immutable deltas; record one winner; and merge it. A typed serial degradation has
|
|
50
|
-
no Forge side effects and uses the default branch below. A later error preserves
|
|
51
|
-
the manifest-owned run for technical recovery; never degrade silently. After merge,
|
|
52
|
-
validate the winner envelope and enter the common return check at the end of this
|
|
53
|
-
step. Do not also dispatch a serial wright.
|
|
6
|
+
1. **Orient and gate.** Read core, `.devrites/ACTIVE`, `state.md`, and required
|
|
7
|
+
slice artifacts. Require `Implementation readiness: READY`, its current
|
|
8
|
+
`Readiness inputs SHA-256`, all applicable exact reviewer accounts,
|
|
9
|
+
ID-and-meaning traceability, and green proof preflight; run
|
|
10
|
+
`devrites-engine check readiness <slug>`. Any miss/nonzero stops.
|
|
11
|
+
2. **Select one slice.** Restate goal, acceptance criteria, exclusions, and exact
|
|
12
|
+
source/test paths. Before dispatch, validate relevant `assumptions.md` rows
|
|
13
|
+
against live evidence. If one is disproved and changes acceptance, architecture,
|
|
14
|
+
scope, or proof, use the Spec Drift Guard/plan recovery; a human-owned unknown
|
|
15
|
+
stops. Resolve HITL before source work. AFK answers only permitted gates;
|
|
16
|
+
human-owned or irreversible risk persists a question and stops for `/rite-resolve`.
|
|
17
|
+
3. **Dispatch the sole writer.** Apply [`wright-dispatch.md`](wright-dispatch.md).
|
|
18
|
+
Put the smallest exact project-relative source/test path list directly in the task;
|
|
19
|
+
dispatch the exact `devrites-slice-wright` fresh. Root never writes, wright never
|
|
20
|
+
widens, and a missing profile stops.
|
|
21
|
+
4. **Inspect the return.** Wait; compare its file list and `git diff --name-only`
|
|
22
|
+
with the contract. Reject stale, partial, malformed, or out-of-scope work.
|
|
23
|
+
Preserve user work; source restoration uses the same bounded wright.
|
|
24
|
+
5. **Challenge stood decisions.** For each stood decision, run exact
|
|
25
|
+
`devrites-doubt-reviewer` fresh/read-only and record accepted or resolved-rejected
|
|
26
|
+
in `decisions.md`. A missing verdict, principle breach, scope change, or
|
|
27
|
+
irreversible risk blocks.
|
|
28
|
+
6. **Prove without guessing.** Against the frozen pre-slice candidate, inspect
|
|
29
|
+
test hunks for deletion, skipping/focus, tautology, or weaker expectations. Dispatch exact
|
|
30
|
+
`devrites-test-analyst` on that immutable diff; missing account or adverse criterion
|
|
31
|
+
verdict is Critical. Run only `test-plan.md` repository/CI commands, capture output,
|
|
32
|
+
and recheck `git diff --name-only`. Missing, weakened, red, or source-mutating proof
|
|
33
|
+
is not success.
|
|
54
34
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
`
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
never doubt-and-accept it.
|
|
72
|
-
**Principle check (same standing):** a wright return that breaks a declared principle
|
|
73
|
-
(reported in its `Principles` field, or that you detect against `.devrites/principles.md`) is
|
|
74
|
-
handled here like an irreversible-risk item: block, route to a human-approved scoped
|
|
75
|
-
exception in the register or stop; never doubt-and-accept a principle violation into the slice.
|
|
76
|
-
5. **Run retained-baseline integrity and every root-owned proof gate, then recover
|
|
77
|
-
any objective red.**
|
|
78
|
-
```bash
|
|
79
|
-
devrites-engine test-integrity; echo "test-integrity rc=$?"
|
|
80
|
-
```
|
|
81
|
-
Run only root-owned gates already authorized byte-for-byte by the vetted
|
|
82
|
-
`test-plan.md` and unchanged `agent-packet/v1`, including exact command, cwd,
|
|
83
|
-
prerequisites, and expected artifact boundary. A wright result may report one
|
|
84
|
-
of those commands as `not-run`; it cannot invent, rewrite, widen, or authorize a
|
|
85
|
-
command. Reject any reported command that does not exactly match the frozen
|
|
86
|
-
plan/packet. Opaque wrapper, build, Playwright, and browser commands are root-owned
|
|
87
|
-
only when pre-authorized there; this transfers no source/test write authority.
|
|
88
|
-
A missing approved command is unverifiable proof.
|
|
89
|
-
After they pass, run `devrites-engine reconcile check` again after the root-owned gates
|
|
90
|
-
and before close, proving their child processes did not change tracked source:
|
|
91
|
-
```bash
|
|
92
|
-
devrites-engine reconcile check; echo "reconcile rc=$?"
|
|
93
|
-
```
|
|
94
|
-
If a root-owned gate changes source after the clean pre-gate check, run the exact
|
|
95
|
-
engine-owned rollback and verify the retained tree before recovery:
|
|
96
|
-
```bash
|
|
97
|
-
devrites-engine reconcile restore-check
|
|
98
|
-
devrites-engine reconcile check; echo "reconcile rc=$?"
|
|
99
|
-
```
|
|
100
|
-
Never manually restore, truncate, resnapshot, or widen an allowlist to hide
|
|
101
|
-
post-check drift.
|
|
35
|
+
Technical failure uses bounded `devrites-debug-recovery`: reapply the host gate
|
|
36
|
+
before an accepted in-slice correction, keep one root cause/three total attempts,
|
|
37
|
+
and never rerun an unchanged check. Ask humans only for product decisions,
|
|
38
|
+
irreversible risk, or genuinely human-only access.
|
|
39
|
+
7. **Record.** After green proof, upsert `touched-files.md`'s authoritative candidate
|
|
40
|
+
manifest from the actual scoped diff with explicit `present`/`deleted` rows;
|
|
41
|
+
update `state.md`, `evidence.md`, and applicable UI/browser evidence. The manifest
|
|
42
|
+
stays mutable until Polish closes it.
|
|
43
|
+
Record stood decisions/dead ends in `decisions.md`; update checked assumptions'
|
|
44
|
+
status/evidence, never leaving a disproved row live. If code reveals a durable
|
|
45
|
+
project rule, propose a reviewed `AGENTS.md`/nearest-doc update, not a scored ledger.
|
|
46
|
+
8. **AFK and reply.** Under `afk-discipline.md`, root charges
|
|
47
|
+
exactly once after each green built slice, never below zero; stop before another dispatch at zero, and fail closed
|
|
48
|
+
on malformed budget. Use the reply contract; name the next pending slice or, only
|
|
49
|
+
when all slices are built, `/rite-prove`. Emit no decorative progress renderer or
|
|
50
|
+
dispatch telemetry.
|
|
102
51
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
Classify each causal fingerprint through
|
|
107
|
-
[`cleanup-and-classify.md`](../../devrites-debug-recovery/reference/cleanup-and-classify.md),
|
|
108
|
-
run `devrites-engine recovery route <class>`, and follow the `recovery-route/v1`
|
|
109
|
-
owner/action. Only `humanPause: true` or an exact human-only predicate opens a question;
|
|
110
|
-
technical repair, environment stabilization, and proof reruns remain agent-owned.
|
|
111
|
-
For an agent-owned defect route, continue the same wright under
|
|
112
|
-
`devrites-debug-recovery`, carrying command/output, attempt count, and dead ends. Wright
|
|
113
|
-
plus recovery share **three total attempts per root cause** and never
|
|
114
|
-
rerun an unchanged check. Persist the initial and retry failures with
|
|
115
|
-
`devrites-engine recovery record --class <class> "<root cause>" "<exact failure>" <slug>`,
|
|
116
|
-
run `recovery check` before each retry, and
|
|
117
|
-
`recovery clear --class <class> "<root cause>" <slug>` only after green. Before every
|
|
118
|
-
re-dispatch, update the root-owned allowlist only for an accepted in-slice path and run
|
|
119
|
-
`reconcile snapshot`: after a clean check this refreshes canonical-state scope while
|
|
120
|
-
retaining the original source baseline. Repeat reconcile and the integrity gate on every
|
|
121
|
-
return. This owns red gates, missing coverage, browser/runtime failures, and
|
|
122
|
-
workflow-tool defects.
|
|
123
|
-
After recovery:
|
|
124
|
-
- green → continue to record;
|
|
125
|
-
- product-contract/acceptance ambiguity or irreversible risk → open the genuine human gate
|
|
126
|
-
(and use `/rite-plan repair` only when the durable plan or contract changes);
|
|
127
|
-
- human-only access/action → gate with the exact needed input;
|
|
128
|
-
- exhausted objective failure → preserve reproduction/dead ends, set `Status: blocked` and
|
|
129
|
-
`Next step: /rite-plan unblock`, then STOP without a question or `/rite-resolve`.
|
|
130
|
-
6. **Close the retained baseline, then record. You are the canonical writer.**
|
|
131
|
-
Reconciliation ran immediately on return; step 5 ran integrity, root-owned proof,
|
|
132
|
-
and a final clean reconciliation.
|
|
133
|
-
**Exit 3 → hard STOP:** a test was deleted, skipped, or de-asserted since the slice base: the
|
|
134
|
-
slice went green by weakening its tests, a Critical protocol violation. Revert the weakening and
|
|
135
|
-
re-dispatch the wright; do **not** mark the slice `built`.
|
|
136
|
-
|
|
137
|
-
Once every gate and doubt verdict is accepted, a forged slice records successful
|
|
138
|
-
verification and runs manifest-only cleanup per [`forge.md`](forge.md). Then close the
|
|
139
|
-
private window:
|
|
140
|
-
```bash
|
|
141
|
-
devrites-engine reconcile close
|
|
142
|
-
```
|
|
143
|
-
Keep it open across a genuine human wait that resumes the same slice; close it before a
|
|
144
|
-
scope/plan transition.
|
|
145
|
-
|
|
146
|
-
Then, from the wright's artifact, update `state.md`,
|
|
147
|
-
`evidence.md`, `touched-files.md` (and `browser-evidence.md` for UI). For a forged
|
|
148
|
-
slice, write `forge-report.md` after reconciliation, verification, and cleanup;
|
|
149
|
-
it records the run but owns nothing. Add a `## Review trail`
|
|
150
|
-
to `touched-files.md`: group the slice's important `path:line` stops by concern (design intent,
|
|
151
|
-
not file order), 1-5 concerns, each stop under 15 words. This is for a later human walkthrough;
|
|
152
|
-
keep it factual and skip invented rationale. **Persist every
|
|
153
|
-
`Decisions stood` entry from the wright's artifact to a `## Decisions stood` section in
|
|
154
|
-
`decisions.md`, one line each ending `— doubt: <accept | reject-resolved | MISSING>`**: the
|
|
155
|
-
verdict from step 4, or `MISSING` if step 4 was skipped for that entry. Write this ledger at
|
|
156
|
-
record-time **independent of the doubt step**, so a stood decision lands on disk even when it
|
|
157
|
-
was never doubted: `/rite-seal` cross-checks the ledger, and a `doubt: MISSING` entry is the
|
|
158
|
-
skipped-doubt finding that would otherwise leave no trace (the per-slice skip the footprint
|
|
159
|
-
count alone can't catch). If the wright stood no decisions, write `## Decisions stood` with
|
|
160
|
-
`- none` so the absence is recorded, not assumed. If the wright reported
|
|
161
|
-
an approach it tried and backed out of, record it under a `## Dead ends` section in
|
|
162
|
-
`decisions.md` so a retry or the next agent doesn't repeat it.
|
|
163
|
-
**If the wright's `Conventions` field reports a contradiction** (the live code now
|
|
164
|
-
disagrees with a held convention), record the drift. You own this bookkeeping:
|
|
165
|
-
```bash
|
|
166
|
-
devrites-engine conventions contradict --key <key> --slug <slug> \
|
|
167
|
-
--evidence "<what the live code does>" --drift-file .devrites/work/<slug>/drift.md
|
|
168
|
-
```
|
|
169
|
-
It lowers the convention's band (or retires it) and appends a `convention-drift` entry to
|
|
170
|
-
`drift.md`. The ledger is **promoted only at `/rite-seal` on GO**: build only records
|
|
171
|
-
contradictions, never new conventions. **Evidence is the
|
|
172
|
-
wright's real command output, not its say-so.** Capture per
|
|
173
|
-
[`evidence-standard.md`](evidence-standard.md). Append a footprint record for this
|
|
174
|
-
slice's wright dispatch (deterministic run-weight bookkeeping the seal reports):
|
|
175
|
-
```bash
|
|
176
|
-
devrites-engine footprint log <slug> wright "<slice id>"
|
|
177
|
-
```
|
|
178
|
-
If `.devrites/AFK` is present, decrement
|
|
179
|
-
the budget by running `devrites-engine tick-afk <state.md path>`:
|
|
180
|
-
it decrements `state.md`'s `AFK slices remaining` field, prints the new value, and exits `3`
|
|
181
|
-
when it hits 0. **Exit 3 → STOP** (forced HITL stop; the cap is exhausted). Never rewrite
|
|
182
|
-
`.devrites/AFK` `max_slices` in place. It is read-only initial budget.
|
|
183
|
-
7. **STOP.** Render the progress footer, then report and recommend the next step. Run the
|
|
184
|
-
shared footer (mirror of the step-0 preamble) so the slice meter + flow ribbon are
|
|
185
|
-
deterministic, not model-typed:
|
|
186
|
-
```bash
|
|
187
|
-
devrites-engine progress
|
|
188
|
-
```
|
|
189
|
-
It reads `state.md` (already updated in step 6), so the meter reflects the slice you
|
|
190
|
-
just built. **When every slice is built** (`✅ ALL BUILT`) say so explicitly (the build
|
|
191
|
-
phase is complete, the next phase is `/rite-prove`) don't leave completion implicit.
|
|
192
|
-
|
|
193
|
-
> **Mid-flight discipline.** The wright must resist doing two slices, skipping TDD, adding a defensive check, or wandering outside `touched-files.md`; you must resist skipping the post-return `devrites-doubt` because the wright "seems confident": see [`anti-patterns.md`](anti-patterns.md). Load it the moment you reach for the excuse.
|
|
52
|
+
> **Mid-flight discipline.** One writer contract builds one slice. Do not skip
|
|
53
|
+
> TDD, widen paths, fold in a second slice, or accept the writer's judgment as
|
|
54
|
+
> independent review.
|
|
@@ -28,7 +28,7 @@ other phases reference it here.
|
|
|
28
28
|
re-vet, then resume.
|
|
29
29
|
NO, product/policy/irreversible-risk decision → ask the user (format below).
|
|
30
30
|
5. Never continue on a known-wrong durable plan. A repaired active-slice implementation
|
|
31
|
-
may continue only after
|
|
31
|
+
may continue only after bounded recovery, returned-diff review, and proof gates pass.
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
## User question format
|
|
@@ -1,135 +1,45 @@
|
|
|
1
1
|
# Slice-wright dispatch
|
|
2
2
|
|
|
3
|
-
`/rite-build`
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## Prepare
|
|
15
|
-
|
|
16
|
-
1. Derive the smallest exact
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
candidate strategy, and set all five bindings before the first tool call:
|
|
47
|
-
|
|
48
|
-
```text
|
|
49
|
-
DEVRITES_FORGE_RUN_ID
|
|
50
|
-
DEVRITES_FORGE_CANDIDATE
|
|
51
|
-
DEVRITES_FORGE_WORKER_ID
|
|
52
|
-
DEVRITES_FORGE_WORKER_PID
|
|
53
|
-
DEVRITES_FORGE_PROCESS_START
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
The candidate cwd must equal its manifest worktree, and the environment is all-or-none.
|
|
57
|
-
Only a real adapter declared as `manifest-env-v1` may supply it. The live PID,
|
|
58
|
-
engine `forge process-token` value, and worker ID must match the prior `forge record ... started`
|
|
59
|
-
transition. A partial or mismatched binding denies the writer; return to the orchestrator
|
|
60
|
-
instead of widening scope. The candidate writes only source/tests in its own tree and
|
|
61
|
-
returns the normal typed artifact.
|
|
62
|
-
|
|
63
|
-
## Validate the return before accepting it
|
|
64
|
-
|
|
65
|
-
Validate the `agent-result/v1` identity, baseline, budget, payload type, side effects,
|
|
66
|
-
and exact changed-file set. Before the root writes any canonical record, run:
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
devrites-engine reconcile check; echo "reconcile rc=$?"
|
|
70
|
-
devrites-engine test-integrity; echo "test-integrity rc=$?"
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
- Reconcile `5`: reject; run standalone `devrites-engine reconcile abort` to restore
|
|
74
|
-
pre-snapshot source/user work and close with a receipt. Never widen scope.
|
|
75
|
-
- Test integrity `3`: a test was deleted, muted, focused, or de-asserted. Treat it as a
|
|
76
|
-
Critical protocol failure and correct it through the wright.
|
|
77
|
-
- A setup/corrupt-baseline error blocks acceptance; never fall back silently to `HEAD`.
|
|
78
|
-
|
|
79
|
-
The clean reconcile check records that source has not changed since inspection. The
|
|
80
|
-
baseline and private object database stay open until every later gate succeeds.
|
|
81
|
-
|
|
82
|
-
## Decisions, failures, and bounded recovery
|
|
83
|
-
|
|
84
|
-
After the immediate check, independently doubt every `Decisions stood` item. Human-owned
|
|
85
|
-
product, policy, public-contract, irreversible-risk, or human-only access decisions use
|
|
86
|
-
their real gate. Objective red tests, browser/runtime failures, missing technical
|
|
87
|
-
coverage, package-scanner defects, and review corrections stay agent-owned.
|
|
88
|
-
|
|
89
|
-
Classify each causal fingerprint through
|
|
90
|
-
[`cleanup-and-classify.md`](../../devrites-debug-recovery/reference/cleanup-and-classify.md).
|
|
91
|
-
The engine route is canonical; technical defects stay agent-owned.
|
|
92
|
-
Each objective root cause then shares one durable three-attempt budget:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
devrites-engine recovery route <class>
|
|
96
|
-
devrites-engine recovery record --class <class> "<root cause>" "<exact failure>" <slug>
|
|
97
|
-
devrites-engine recovery check "<root cause>" <slug>
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Before every retry:
|
|
101
|
-
|
|
102
|
-
1. update `.wright-allowlist` only for an accepted path still inside the settled slice;
|
|
103
|
-
2. run `devrites-engine reconcile snapshot`.
|
|
104
|
-
|
|
105
|
-
That refresh requires the prior clean check, re-fingerprints root-owned state, and keeps
|
|
106
|
-
the original source baseline. Re-dispatch with the exact output, attempt count, and dead
|
|
107
|
-
ends. Then repeat reconcile and `test-integrity` from zero. Clear recovery only after
|
|
108
|
-
green with `recovery clear --class <class> "<root cause>" <slug>`. An exhausted objective
|
|
109
|
-
failure becomes a technical blocker with its reproduction, not a `rite-resolve` question.
|
|
110
|
-
|
|
111
|
-
## Close and record
|
|
112
|
-
|
|
113
|
-
Run the root gates and final reconciliation from `phase-contract.md` step 5. Then:
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
devrites-engine reconcile close
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
Only then persist `state.md`, `evidence.md`, `touched-files.md`, decision/doubt records,
|
|
120
|
-
and browser evidence. Keep the retained window across a genuine human wait that will
|
|
121
|
-
resume the same slice. Close it before abandoning the slice for a scope/plan transition.
|
|
122
|
-
|
|
123
|
-
## Host dispatch
|
|
124
|
-
|
|
125
|
-
Use the named wright. Hidden V2 `agent_type` is not V1/unavailable: send
|
|
126
|
-
`agent_type=devrites-slice-wright` anyway. Use guarded generic only after explicit
|
|
127
|
-
V1; if V2 rejects the call, stop before generic/default. The rollout proves role,
|
|
128
|
-
wait, and result. Root hooks keep the pending canonical boundary current until spawn, then freeze it apart from the
|
|
129
|
-
retained source baseline: pre-start root recovery records are excluded, while
|
|
130
|
-
post-start canonical changes fail.
|
|
131
|
-
Any generic worker still needs the exact allowlist or an isolated checkout;
|
|
132
|
-
reconciliation alone is insufficient. If no safe fresh-agent rung is available, stop
|
|
133
|
-
for HITL. On Codex, `reconcile check` and `reconcile close` require the completed
|
|
134
|
-
wright receipt bound to the current reconcile snapshot.
|
|
135
|
-
The root never performs wright work.
|
|
3
|
+
`/rite-build` gives one bounded task to exact `devrites-slice-wright`.
|
|
4
|
+
Root owns scope, artifacts, inspection, and routing but never writes source/tests; only
|
|
5
|
+
the wright writes them and invokes no agent.
|
|
6
|
+
|
|
7
|
+
## Host gate
|
|
8
|
+
|
|
9
|
+
Follow the canonical [source-writing boundary](../../devrites-lib/reference/standards/agents.md#source-writing-boundary):
|
|
10
|
+
Claude grants only the exact wright `acceptEdits`; Codex uses its workspace root,
|
|
11
|
+
the exact `:workspace` wright, and read-only specialists. Never bypass/substitute
|
|
12
|
+
the wright or recreate an engine bridge.
|
|
13
|
+
|
|
14
|
+
## Prepare
|
|
15
|
+
|
|
16
|
+
1. Derive the smallest exact project-relative source/test path list; reject
|
|
17
|
+
directories/globs, traversal, symlink escapes, duplicates, and `.devrites/**`.
|
|
18
|
+
2. Put it in the task with goal, verbatim acceptance, exclusions, context,
|
|
19
|
+
`test-plan.md` proof commands, and applicable standards.
|
|
20
|
+
A new path requires a new bounded contract; the wright cannot widen the task.
|
|
21
|
+
3. Record `git diff --name-only` before dispatch so unrelated work remains
|
|
22
|
+
distinguishable.
|
|
23
|
+
|
|
24
|
+
## Run
|
|
25
|
+
|
|
26
|
+
Ask the host for the exact writer in fresh context and wait. Never run two
|
|
27
|
+
writers in one worktree or substitute a generic agent.
|
|
28
|
+
|
|
29
|
+
## Inspect and prove
|
|
30
|
+
|
|
31
|
+
1. Compare the returned file list and `git diff --name-only` with task paths.
|
|
32
|
+
Reject a result that omits any required key, including empty-or-filled
|
|
33
|
+
bookkeeping arrays, or adds a path. Restore only through the same bounded
|
|
34
|
+
wright; root never widens scope or edits source.
|
|
35
|
+
2. Inspect the test diff for deletion, skipping, focus markers, or loosened
|
|
36
|
+
assertions. Dedicated test analysis treats weakening as Critical.
|
|
37
|
+
3. Run only repository proof already approved by `test-plan.md`, then inspect
|
|
38
|
+
`git diff --name-only` again in case a proof tool changed source.
|
|
39
|
+
4. Challenge decisions. Human choices return; native diagnosis routes failures.
|
|
40
|
+
The root counts the wright plus recovery failures by causal fingerprint from
|
|
41
|
+
the current context and recorded Dead ends/evidence. Three total failed
|
|
42
|
+
attempts is the limit; persist each and never dispatch a fourth related try.
|
|
43
|
+
5. Reconcile returned reuse, conventions, principles, sources, assumptions,
|
|
44
|
+
decisions, dead ends, follow-ups, gates, and touched files. Persist the
|
|
45
|
+
relevant facts in canonical artifacts, not the wholesale report.
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rite-clarify
|
|
3
|
-
description:
|
|
3
|
+
description: Audit a completed spec for missing decisions before strategy or architecture. Use after /rite-spec when coverage is incomplete or stale; not for spec writing.
|
|
4
4
|
argument-hint: "[feature-slug]"
|
|
5
5
|
user-invocable: true
|
|
6
|
-
required-agent-roles: none
|
|
7
6
|
---
|
|
8
7
|
|
|
9
8
|
# /rite-clarify: resolve product decisions
|
|
@@ -36,46 +35,53 @@ dispatch uses
|
|
|
36
35
|
|
|
37
36
|
## Workflow
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
`Spec gate: passed`; otherwise
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
5. **Close human-owned gaps** using the shared option-set contract: one highest-impact packet
|
|
61
|
-
per turn. Persist answers immediately in `spec.md` plus `decisions.md`/`questions.md`.
|
|
62
|
-
AFK remains within its gate ceiling; irreversible risk and principle exceptions pause.
|
|
63
|
-
6. **Re-scan after edits** until each material row is `closed`, `agent-owned`,
|
|
64
|
-
`not-applicable`, or justified `deferred-nonblocking` with owner and validation gate.
|
|
65
|
-
Partial/Missing, an unowned material assumption, or an open blocking/escalating question
|
|
66
|
-
means `NEEDS CLARIFICATION`.
|
|
67
|
-
7. **Write the verdict.** Update `decision-coverage.md`; success requires exactly one
|
|
68
|
-
`DevRites contract: devrites.readiness-artifacts.v2` field and exactly
|
|
69
|
-
`Decision coverage: CLEAR`. Normal state is `Phase: clarify`, `Next step: /rite-temper`.
|
|
70
|
-
A contract-neutral retrofit runs `devrites-engine clarify-return restore <slug>`; a
|
|
71
|
-
changed behavior/acceptance contract leaves the return cursor unconsumed, writes
|
|
72
|
-
`drift.md`, and routes `/rite-plan repair`. Normal first-pass flow sets `/rite-temper`.
|
|
73
|
-
8. **STOP.** Run `devrites-engine progress`; hand off only on `CLEAR`.
|
|
38
|
+
1. **Orient.** Read `.devrites/ACTIVE`, `state.md`, and `spec.md`. Require
|
|
39
|
+
`Spec gate: passed`; otherwise stop at `/rite-spec`. Apply the native cursor
|
|
40
|
+
protocol below before changing workspace artifacts.
|
|
41
|
+
2. **Enumerate the topology.** From the spec, live code, contracts, references,
|
|
42
|
+
and recorded decisions, list every material actor, journey/component, state,
|
|
43
|
+
data lifecycle, integration, operation, proof surface, and must-NOT boundary.
|
|
44
|
+
3. **Scan coverage.** Apply `devrites-interview` in clarify mode and mark each
|
|
45
|
+
material surface Clear, Partial, Missing, not-applicable, or justified
|
|
46
|
+
deferred-nonblocking with evidence and an owner. Use native repository search
|
|
47
|
+
first. Ask the host to run `devrites-evidence-scout` only for a bounded missing
|
|
48
|
+
fact, then reconcile its cited result.
|
|
49
|
+
4. **Close decisions.** Record facts and reversible technical choices directly.
|
|
50
|
+
Ask one coherent option packet only for product, scope, policy, irreversible
|
|
51
|
+
risk, or human-only access. Persist answers in the owning artifacts and repeat
|
|
52
|
+
the scan until no blocking Partial/Missing row or unowned material assumption
|
|
53
|
+
remains.
|
|
54
|
+
5. **Write the verdict.** Write `Decision coverage: CLEAR` only after re-reading all inputs and confirming
|
|
55
|
+
every material row has current evidence and an owner. Normal flow sets `Phase: clarify` and
|
|
56
|
+
`Next step: /rite-temper`. A contract-neutral later-phase return uses
|
|
57
|
+
the native restore below; changed behavior or acceptance routes to
|
|
58
|
+
`/rite-plan repair` instead. Stop without starting the next phase.
|
|
74
59
|
|
|
75
|
-
##
|
|
60
|
+
## Native clarify cursor protocol
|
|
61
|
+
|
|
62
|
+
The controlling root edits only cursor rows in `state.md`; it must preserve unrelated Markdown and the file's existing table/bullet presentation.
|
|
63
|
+
|
|
64
|
+
- **Normal entry from Spec:** set `phase=clarify`, `status=running`, and
|
|
65
|
+
`next_action=/rite-clarify <slug>`; omit both return fields.
|
|
66
|
+
- **Already in Clarify:** no-op. Do not overwrite an existing valid return
|
|
67
|
+
cursor.
|
|
68
|
+
- **Later-phase entry:** only `temper`, `define`, `plan`, `vet`, `build`,
|
|
69
|
+
`converge`, `prove`, `polish`, `review`, `seal`, or `ship` may return. First
|
|
70
|
+
copy the current `phase` and non-empty `next_action` to `return_phase` and
|
|
71
|
+
`return_next_action`; then set `phase=clarify`, `status=running`, and
|
|
72
|
+
`next_action=/rite-clarify <slug>`. Missing/unknown cursor values fail closed
|
|
73
|
+
before any write.
|
|
74
|
+
- **Contract-neutral restore:** after a fresh `Decision coverage: CLEAR`, require
|
|
75
|
+
`phase=clarify`, both return fields, a recognized later `return_phase`, and a
|
|
76
|
+
non-empty `return_next_action`. Restore those values to `phase` and
|
|
77
|
+
`next_action`, set `status=running`, and remove both return fields in the same
|
|
78
|
+
rewrite. Re-read the cursor and confirm the return rows are absent.
|
|
79
|
+
- **Contract changed:** do not restore the saved cursor. Record drift and route
|
|
80
|
+
through `/rite-plan repair`, which owns the changed plan and next action.
|
|
76
81
|
|
|
77
|
-
|
|
78
|
-
|
|
82
|
+
Never normalize or rewrite the rest of `state.md` while applying this protocol.
|
|
83
|
+
|
|
84
|
+
## Output
|
|
79
85
|
|
|
80
86
|
```text
|
|
81
87
|
Done: decision coverage closed for <slug>; <n> topology surfaces scanned.
|
|
@@ -26,9 +26,7 @@ environment, credentials/approvals, and evidence limits.
|
|
|
26
26
|
```markdown
|
|
27
27
|
# Decision coverage
|
|
28
28
|
|
|
29
|
-
DevRites contract: devrites.readiness-artifacts.v2
|
|
30
29
|
Decision coverage: <CLEAR | NEEDS CLARIFICATION>
|
|
31
|
-
Coverage inputs SHA-256: <exact value from `devrites-engine readiness-digest coverage <slug>`>
|
|
32
30
|
|
|
33
31
|
## Topology
|
|
34
32
|
| Surface | Kind | Related IDs | Evidence |
|
|
@@ -51,11 +49,7 @@ No Partial, Missing, unowned material assumption, or unresolved blocking/escalat
|
|
|
51
49
|
question remains.
|
|
52
50
|
```
|
|
53
51
|
|
|
54
|
-
Combine rows only when one decision and owner genuinely close them.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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`.
|
|
52
|
+
Combine rows only when one decision and owner genuinely close them. Re-read the current
|
|
53
|
+
`brief.md`, `spec.md`, `decisions.md`, `assumptions.md`, and `questions.md` before writing
|
|
54
|
+
`CLEAR`; the matrix itself is the freshness check. Any open blocking, validating, or
|
|
55
|
+
escalating question prevents `CLEAR`.
|