devrites 3.2.28 → 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 +16 -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 -1726
- 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 -2778
- 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,64 +1,102 @@
|
|
|
1
1
|
# The irreversible ship: type-GO + git ladder
|
|
2
2
|
|
|
3
|
-
`$rite-ship`
|
|
4
|
-
|
|
5
|
-
*action*.
|
|
3
|
+
`$rite-ship` alone runs irreversible actions. A seal GO is never authorization for Git.
|
|
4
|
+
Require fresh approval for one disclosed attempt plus native permission.
|
|
6
5
|
|
|
7
6
|
## The type-GO prompt (render verbatim, wait)
|
|
8
7
|
|
|
9
8
|
```
|
|
10
|
-
About to: <git commit + git push [+ git tag vX.Y.Z | open PR]>
|
|
11
9
|
Feature: <slug>
|
|
12
10
|
Verdict: GO (seal.md)
|
|
13
11
|
Acceptance criteria proven: <n / total>
|
|
14
12
|
Branch: <target branch>
|
|
13
|
+
Candidate paths: <exact project-relative paths>
|
|
14
|
+
Checkpoint collapse: <exact `git reset --soft '<merge-base>'` command | skip>
|
|
15
|
+
Stage plan: <exact argv-safe `git add -- '<path>'` command for every manifest row>
|
|
16
|
+
Commit: <exact git commit command>
|
|
17
|
+
Push: <exact git push command | skip>
|
|
18
|
+
Tag: <exact git tag command | skip>
|
|
19
|
+
PR: <exact PR command, target, title, and body source | skip>
|
|
15
20
|
|
|
16
|
-
Type "GO" exactly to
|
|
21
|
+
Type "GO" exactly to approve this attempt once. Anything else cancels.
|
|
17
22
|
```
|
|
18
23
|
|
|
19
|
-
Rules
|
|
20
|
-
- Render
|
|
21
|
-
- Only
|
|
22
|
-
`
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
## The
|
|
28
|
-
|
|
29
|
-
Follow
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
24
|
+
Rules:
|
|
25
|
+
- Render every attempt; autocomplete flags only reach this boundary.
|
|
26
|
+
- Only literal `GO` proceeds. Anything else cancels, records
|
|
27
|
+
`user declined irreversible step at <ts>` in `ship.md`, and stops.
|
|
28
|
+
- `GO` is one-use for the shown scope/commands; changed/retried plans re-prompt.
|
|
29
|
+
- Prior answers, AFK, seal GO, and native approval do not replace type-GO;
|
|
30
|
+
type-GO never replaces/bypasses native permission or sandbox approval.
|
|
31
|
+
|
|
32
|
+
## The candidate-safe Git ladder
|
|
33
|
+
|
|
34
|
+
Follow `standards/git-workflow.md` and project convention; invent no release flow.
|
|
35
|
+
Candidate identity always comes from `devrites-engine check candidate`; do not
|
|
36
|
+
implement a Git-side hash.
|
|
37
|
+
|
|
38
|
+
### Before type-GO
|
|
39
|
+
|
|
40
|
+
Pre-GO is read-only. Do not run the disclosed collapse or staging commands.
|
|
41
|
+
|
|
42
|
+
0. **Protect existing index work.** Read the NUL-delimited staged state/path set.
|
|
43
|
+
Refuse a pre-existing staged path outside the manifest; never unstage, stage,
|
|
44
|
+
reset, or discard user work.
|
|
45
|
+
1. **Analyze checkpoint history without mutating it.** Read the upstream, merge
|
|
46
|
+
base, commit OIDs, and full subjects. If no checkpoint commit exists, disclose
|
|
47
|
+
`skip`. A collapse is eligible only when every commit in its range has the exact
|
|
48
|
+
`WIP(<active-slug>):` prefix for the validated active slug. A different slug,
|
|
49
|
+
missing colon, broad `WIP(` match, ordinary commit, or mixed history blocks;
|
|
50
|
+
never reinterpret the range.
|
|
51
|
+
2. **Verify the candidate.** Rerun `devrites-engine check candidate <slug>` and
|
|
52
|
+
`devrites-engine check seal <slug>`, compare every binding, require the
|
|
53
|
+
candidate worktree paths to be unchanged, and inspect the existing staged
|
|
54
|
+
scope. These checks do not prepare the index.
|
|
55
|
+
3. **Prepare the disclosure.** Build argv-safe commands from literal validated
|
|
56
|
+
paths, without `eval` or command-string interpolation. Run only read-only
|
|
57
|
+
secret scans of the existing staged state and proposed PR body. Render the
|
|
58
|
+
literal prompt with the exact optional collapse command or `skip`, exact stage
|
|
59
|
+
plan, commit, push, tag, and PR commands; then wait.
|
|
60
|
+
|
|
61
|
+
### After type-GO
|
|
62
|
+
|
|
63
|
+
1. **Optional checkpoint collapse.** If and only if the prompt disclosed it,
|
|
64
|
+
recheck that `HEAD`, merge base, and every subject are unchanged and that each
|
|
65
|
+
subject starts exactly `WIP(<slug>):` for the active slug, then run the exact
|
|
66
|
+
disclosed `git reset --soft "$mb"`. Otherwise skip. Any different or mixed
|
|
67
|
+
subject blocks without mutation.
|
|
68
|
+
2. **Exact staging.** Run `git add -- "$path"` once for each disclosed manifest
|
|
69
|
+
row, passing each validated project-relative path as its own quoted argv
|
|
70
|
+
element. Use no glob, directory, `-A`, `.env`, secret, out-of-scope path,
|
|
71
|
+
`eval`, or interpolated command string.
|
|
72
|
+
3. **Compare staged scope.** Compare the NUL-delimited output of
|
|
73
|
+
`git diff --cached --name-status --no-renames -z` to the manifest's exact
|
|
74
|
+
state/path set. `present` maps only to `A` or `M`; `deleted` maps only to `D`.
|
|
75
|
+
Reject missing, extra, renamed, duplicated, or differently classified paths.
|
|
76
|
+
4. **Compare staged bytes.** Require no index-to-worktree difference for any
|
|
77
|
+
manifest path. A dirty manifest path stops; never stage or reinterpret it
|
|
78
|
+
after this comparison.
|
|
79
|
+
5. **Revalidate immediately before commit.** With no intervening mutation,
|
|
80
|
+
rerun `devrites-engine check candidate <slug>` and
|
|
81
|
+
`devrites-engine check seal <slug>`, require the exact candidate digest and
|
|
82
|
+
every evidence/browser/review/Seal binding, then run the staged secret scan.
|
|
83
|
+
Any scope, byte, identity, binding, scan, history, or command drift invalidates
|
|
84
|
+
the one-use approval. Stop and render a fresh type-GO prompt; do not repair the
|
|
85
|
+
drift under the old approval.
|
|
86
|
+
6. **Commit** one logical change using Conventional Commit and a why-body.
|
|
87
|
+
Non-trivial work adds applicable `Constraint:`, `Rejected:`, `Confidence:`,
|
|
88
|
+
`Scope-risk:`, and `Not-tested:` workspace trailers; trivial edits omit them.
|
|
89
|
+
7. **Verify the commit.** Immediately after the authorized commit and before any
|
|
90
|
+
push or tag, compare
|
|
91
|
+
`git diff-tree --root --no-commit-id --name-status --no-renames -r -z HEAD`
|
|
92
|
+
to the manifest using the same exact state/path mapping. Require candidate
|
|
93
|
+
paths still match `HEAD`, then rerun `devrites-engine check candidate <slug>`
|
|
94
|
+
and `devrites-engine check seal <slug>` and compare the exact digest again.
|
|
95
|
+
Any mismatch stops; do not reinterpret it.
|
|
96
|
+
8. **Push** to the project-conventional target branch.
|
|
97
|
+
9. **Tag / PR** only when project convention requires it; otherwise skip.
|
|
98
|
+
|
|
99
|
+
Record SHA(s), branch, and tag/PR URL in `ship.md`.
|
|
62
100
|
|
|
63
101
|
## Pull request body
|
|
64
102
|
|
|
@@ -1,33 +1,39 @@
|
|
|
1
1
|
# `ship.md` template
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
workspace **before** close-out, so it travels into `.devrites/archive/<slug>/ship.md`.
|
|
3
|
+
Write before close-out; it moves to `.devrites/archive/<slug>/ship.md`.
|
|
5
4
|
|
|
6
5
|
```markdown
|
|
7
6
|
# Ship: <slug>
|
|
8
7
|
|
|
9
8
|
- Shipped at: <iso>
|
|
10
|
-
- Verdict: GO (
|
|
9
|
+
- Verdict: GO (seal.md)
|
|
11
10
|
- Branch: <branch>
|
|
12
11
|
- Commit(s): <sha> [<sha> …]
|
|
13
|
-
- Tag
|
|
12
|
+
- Tag/PR: <value|none>
|
|
14
13
|
|
|
15
14
|
## What shipped
|
|
16
|
-
<
|
|
15
|
+
<project-vocabulary paragraph>
|
|
17
16
|
|
|
18
17
|
## Acceptance
|
|
19
|
-
-
|
|
20
|
-
- Outstanding
|
|
18
|
+
- Proven: <n/total> (evidence.md/seal.md)
|
|
19
|
+
- Outstanding: <rows below | none>
|
|
21
20
|
|
|
22
|
-
## Evidence
|
|
23
|
-
- seal.md —
|
|
24
|
-
- evidence.md — acceptance
|
|
25
|
-
- review.md —
|
|
21
|
+
## Evidence
|
|
22
|
+
- seal.md — verdict/reconciliation
|
|
23
|
+
- evidence.md — acceptance; browser-evidence.md if UI
|
|
24
|
+
- review.md — review findings
|
|
26
25
|
|
|
27
|
-
## Follow-
|
|
28
|
-
|
|
26
|
+
## Follow-up reconciliation
|
|
27
|
+
Checked: strategy.md (if present), decisions.md, review.md, seal.md.
|
|
28
|
+
|
|
29
|
+
| Source | Item | Disposition | Destination / rationale |
|
|
30
|
+
|---|---|---|---|
|
|
31
|
+
| <file + section> | <item> | tracked | <durable path/ID> |
|
|
32
|
+
| <file + section> | <item> | no-action | <decision or explicit human no-action approval + reason/revisit> |
|
|
33
|
+
|
|
34
|
+
<If empty: No residual items found.>
|
|
29
35
|
```
|
|
30
36
|
|
|
31
|
-
Keep
|
|
32
|
-
|
|
33
|
-
|
|
37
|
+
Keep pointers short. Acceptance MUST match `seal.md`. Each source residual appears
|
|
38
|
+
once; a missing target, unsupported `no-action`, vague disposition, or conflict blocks
|
|
39
|
+
close-out.
|
|
@@ -1,111 +1,72 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rite-spec
|
|
3
|
-
description:
|
|
3
|
+
description: Specify new, vague, or high-risk behavior before code. Use for features, auth, migrations, or public API changes; not for planning an approved spec.
|
|
4
4
|
argument-hint: "<feature or idea>"
|
|
5
5
|
user-invocable: true
|
|
6
|
-
required-agent-roles: none
|
|
7
6
|
---
|
|
8
7
|
|
|
9
|
-
## Codex compatibility
|
|
10
|
-
|
|
11
|
-
This is the Codex mirror of a DevRites skill. In Codex:
|
|
12
|
-
|
|
13
|
-
- Load DevRites engineering standards from `.agents/skills/devrites-lib/reference/standards/`. Read `.agents/skills/devrites-lib/reference/standards/core.md` before workflow work, then load the other `.agents/skills/devrites-lib/reference/standards/*.md` files exactly when this skill asks for them.
|
|
14
|
-
- Installed `.agents/` mirrors may be Git-ignored. If a repository-aware file tool refuses an ignored path, read it with a native filesystem command instead; a tool refusal is not a completed task.
|
|
15
|
-
- For automatic Engram calls, omit optional `project` and `session_id` unless an exact value came from Engram or repository configuration. Never derive either from `task_name`, a run ID, directory name, or normalized slug. Call `mem_session_summary` without them by default; on `unknown_session` or `unknown_project`, retry once with both optional fields omitted. If auto-detection is ambiguous, ask the user instead of guessing.
|
|
16
|
-
- Use the installed `devrites-engine` binary as the canonical runtime helper surface for orientation, gates, and state mutation.
|
|
17
|
-
- **Invocation and dispatch are different:** invoke means run a skill in this context; dispatch means start a fresh agent with `spawn_agent`, await it, and reconcile its result. Never describe inline skill work as a dispatch.
|
|
18
|
-
- On MultiAgent V2, call `spawn_agent` with the exact named `agent_type=devrites-<role>`, a unique `task_name`, and `fork_turns="none"`. A missing visible `agent_type` field is still V2—not capability loss, V1, or HITL—so send it anyway. If the named call rejects it, stop before any generic/default spawn. Codex loads the role TOML's `developer_instructions` natively; DevRites verifies the durable rollout, wait, completion, and delivered result.
|
|
19
|
-
- Only after the runtime explicitly identifies MultiAgent V1, use generic `explorer` for a read-only role with `fork_turns="none"` and name exactly one `.codex/agents/devrites-<role>.toml` contract in the message. Trusted `.codex/hooks.json` injects that contract's exact `developer_instructions` and binds the child to the fail-closed reviewer read-only guard.
|
|
20
|
-
- On explicitly identified MultiAgent V1, `devrites-slice-wright` uses generic `worker` with `fork_turns="none"` and the exact role TOML named in the message. Trusted `.codex/hooks.json` binds it to the active reconcile window and `.wright-allowlist`.
|
|
21
|
-
- The invoked skill's `required-agent-roles` frontmatter arms the fail-closed Stop receipt. Every listed role must have a confirmed start, wait, and non-empty result in this turn.
|
|
22
|
-
- If the required dispatch for the explicitly identified runtime is unavailable or rejected, stop for HITL. Never switch runtime lanes. Never execute a DevRites specialist role in the root context.
|
|
23
|
-
- Wait for every required fresh-context dispatch before reconciling or advancing. A backgrounded or lost result is incomplete.
|
|
24
|
-
- Codex project hooks are installed in `.codex/hooks.json`; declared-leaf hooks are scoped inside `.codex/agents/devrites-*.toml`. Review and trust them with `/hooks` before relying on hook enforcement.
|
|
25
|
-
- When this skill asks a HITL question via `AskUserQuestion`: Codex's equivalent (`request_user_input`) exists only in Plan mode. Outside Plan mode, render the option set as a plain numbered list in chat and **end the turn** so the human answers: NEVER silently pick an option yourself; auto-picking is AFK's contract, gated by the `.devrites/AFK` sentinel.
|
|
26
|
-
|
|
27
|
-
|
|
28
8
|
# $rite-spec: investigate and write the spec
|
|
29
9
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
`$rite-clarify` audits the full topology before `$rite-define` plans it. **Do not write
|
|
33
|
-
a plan, tasks, or code here.** Those belong to `$rite-define` and `$rite-build`.
|
|
10
|
+
Investigate and resolve material gaps into a placed, covered `spec.md`.
|
|
11
|
+
`$rite-clarify` audits topology next. Write no plan, task, or code here.
|
|
34
12
|
|
|
35
|
-
>
|
|
36
|
-
>
|
|
37
|
-
> `$rite-quick <change>`. It returns here if the work touches auth, data, a migration, a
|
|
38
|
-
> public API, or more than one slice.
|
|
13
|
+
> Use `$rite-quick` for a typo, copy/config edit, or one-function fix. It returns
|
|
14
|
+
> here for auth, data, migration, public API, or multi-slice work.
|
|
39
15
|
|
|
40
16
|
## Rules consulted (read on demand from `.agents/skills/devrites-lib/reference/standards/`)
|
|
41
|
-
Pull `documentation.md`
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
acceptance for a behavioral / high-risk requirement (auth,
|
|
47
|
-
data model, state machine, public API, money, migration): the structured `### Requirement:` /
|
|
48
|
-
`#### Scenario:` (SHALL · WHEN/THEN) form, lint-checked by `devrites-engine spec-validate`. Simple criteria
|
|
49
|
-
stay flat `AC-###` bullets; the grammar is opt-in by rigor, never forced. Use
|
|
50
|
-
[`reference/acceptance-criteria.md`](reference/acceptance-criteria.md) to keep each
|
|
51
|
-
criterion independently observable and binary.
|
|
17
|
+
Pull `documentation.md` for significant decisions and `principles.md` for
|
|
18
|
+
declared invariants; an unavoidable principle violation is blocking.
|
|
19
|
+
For behavioral/high-risk acceptance, use `spec-grammar.md` plus workspace schema;
|
|
20
|
+
simple criteria stay flat `AC-###`. Apply
|
|
21
|
+
[`acceptance-criteria.md`](reference/acceptance-criteria.md) so each is binary and observable.
|
|
52
22
|
|
|
53
23
|
## Operating rules (DevRites core)
|
|
54
|
-
- No silent assumptions
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
- **Author one section at a time.** Draft problem → goal → requirements → acceptance →
|
|
61
|
-
edge cases, pausing after each section. If a section contains a contested requirement,
|
|
62
|
-
boundary, or unstated assumption, apply a relevant technique from
|
|
24
|
+
- No silent assumptions or guessing; prefer conventions; ask on scope,
|
|
25
|
+
placement, data, UX, security, migration, or acceptance changes.
|
|
26
|
+
- **Root authority:** controlling chat asks humans, decides, and writes workspace;
|
|
27
|
+
evidence work follows [`agents.md`](../devrites-lib/reference/standards/agents.md).
|
|
28
|
+
- **Author one section at a time:** problem → goal → requirements → acceptance →
|
|
29
|
+
edges. For contested requirements/boundaries/assumptions, apply
|
|
63
30
|
[`elicitation.md`](../devrites-lib/reference/standards/elicitation.md) before continuing.
|
|
64
31
|
|
|
65
32
|
## Workflow
|
|
66
|
-
0.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
conventions ledger, route through `$rite-adopt` **first** and pass `$ARGUMENTS` as its
|
|
72
|
-
next objective. Adopt derives the baseline `spec.md`, seeds conventions, and proposes
|
|
73
|
-
principles; `$rite-spec` only detects and routes. In **HITL**, present a ranked option:
|
|
74
|
-
recommend adoption first and include a spec-only escape hatch. In **AFK**, when adoption
|
|
75
|
-
is allowed, run `$rite-adopt` automatically. **Skip this check silently for greenfield or
|
|
76
|
-
already-onboarded projects.** Never block a spec only because adoption is absent. Probe:
|
|
33
|
+
0. Read core; if `.devrites/ACTIVE` exists, require its `state.md`.
|
|
34
|
+
0a. **Adoption check.** For a never-adopted existing codebase, route first to
|
|
35
|
+
`$rite-adopt` with `$ARGUMENTS`; it derives baseline spec/principles. HITL
|
|
36
|
+
offers ranked adopt-first and spec-only choices; permitted AFK adopts.
|
|
37
|
+
Silently skip greenfield/onboarded projects, and never block solely on absence:
|
|
77
38
|
```bash
|
|
78
|
-
if [ ! -
|
|
79
|
-
&& [ -z "$(ls .devrites/work
|
|
39
|
+
if [ ! -d .devrites/archive ] \
|
|
40
|
+
&& [ -z "$(ls .devrites/work 2>/dev/null)" ] \
|
|
80
41
|
&& [ -n "$(git ls-files 2>/dev/null | grep -vE '^\.(devrites|claude)/' | head -1)" ]; then
|
|
81
42
|
echo "brownfield, not yet adopted → recommend $rite-adopt first (carry this idea as its next objective)"
|
|
82
43
|
else echo "greenfield or already onboarded → continue spec"; fi
|
|
83
44
|
```
|
|
84
|
-
1. **Understand the request** (`$ARGUMENTS`). State
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
devrites-engine spec-dedupe "$ARGUMENTS"
|
|
90
|
-
```
|
|
91
|
-
If it finds a close match, ask the user: extend existing / adopt / new spec. Record the choice in
|
|
92
|
-
`decisions.md` once the workspace exists. No match → continue silently.
|
|
45
|
+
1. **Understand the request** (`$ARGUMENTS`). State outcome and underlying
|
|
46
|
+
problem in one sentence. **Completion:** it includes both.
|
|
47
|
+
1a. **Dedupe.** Search local issues/PRDs, work, and archive. On a close match ask
|
|
48
|
+
extend/adopt/new, then record the choice; otherwise continue silently.
|
|
93
49
|
2. **Investigate:** follow [investigation](reference/investigation.md) through its
|
|
94
|
-
complete findings and done-when gate.
|
|
50
|
+
complete findings and done-when gate. Discover the project's **test /
|
|
95
51
|
build/typecheck/lint** commands, frontend/backend systems, and declared project guidance
|
|
96
52
|
(`PRODUCT.md`, `DESIGN.md`, `CLAUDE.md`, `AGENTS.md`, and `.devrites/principles.md` when
|
|
97
53
|
present).
|
|
98
54
|
**Consult the capability ledger**, which records current system behavior
|
|
99
|
-
([`ledger.md`](../rite-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
before asking the human to revisit a
|
|
103
|
-
|
|
104
|
-
|
|
55
|
+
([`ledger.md`](../rite-polish/reference/ledger.md)); Polish folds accepted deltas
|
|
56
|
+
before Review. List `.devrites/specs/*/spec.md` with the
|
|
57
|
+
host filesystem and read only capabilities this feature touches. Search accepted ADRs and
|
|
58
|
+
relevant `.devrites/**/decisions.md` files directly before asking the human to revisit a
|
|
59
|
+
settled architecture, API, or auth choice. Compare exact requirement headers and meanings
|
|
60
|
+
with the current ledger to choose ADDED/MODIFIED/REMOVED; never classify from memory. Use
|
|
61
|
+
`spec-grammar.md`'s singular `Capability impact:` declaration to name the affected
|
|
62
|
+
capabilities and change, or give its specific `none` justification.
|
|
63
|
+
Inventory affected observable behavior from current test/contract/runtime/source
|
|
64
|
+
evidence; map each outcome to preserving REQ/AC. Greenfield `none` needs the
|
|
65
|
+
template's specific justification.
|
|
105
66
|
Identify proof constraints now: human-only credentials, unavailable environments, approval
|
|
106
67
|
windows, or acceptance not observable through existing test/runtime/browser surfaces.
|
|
107
68
|
Split independent placement, blast-radius, and external-fact questions into at most three
|
|
108
|
-
bounded `devrites-evidence-scout`
|
|
69
|
+
bounded `devrites-evidence-scout` tasks on one frozen candidate. Wait for and reconcile every
|
|
109
70
|
cited dossier before step 4. The scout supplies facts only; it never asks the human or writes
|
|
110
71
|
the spec.
|
|
111
72
|
3. **Gather design references when provided:** [references-intake](reference/references-intake.md).
|
|
@@ -135,28 +96,33 @@ criterion independently observable and binary.
|
|
|
135
96
|
product/acceptance ambiguity, irreversible/external approval, or human-only access. Record
|
|
136
97
|
owned prerequisites. Keep a build checkpoint only for unavailable pre-code evidence or a
|
|
137
98
|
mandatory action-time approval. **Completion:** no foreseeable human choice is deferred.
|
|
138
|
-
5. **Create the workspace** + set `.devrites/ACTIVE` from
|
|
139
|
-
[state-workspace](reference/state-workspace.md).
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
99
|
+
5. **Create or update the workspace** + set `.devrites/ACTIVE` from
|
|
100
|
+
[state-workspace](reference/state-workspace.md). If the slug already exists,
|
|
101
|
+
update the existing workspace rather than overwrite it; preserve history and
|
|
102
|
+
unrelated settled content. Write every required artifact and conditional
|
|
103
|
+
annex exactly from [spec-template](reference/spec-template.md), including its
|
|
104
|
+
capability impact, existing-behavior preservation, grammar/delta,
|
|
105
|
+
coverage-seed, qualified backstops, edge/prohibition, UI, and AI rules. Native
|
|
106
|
+
hierarchical instructions remain stable; do not rewrite `AGENTS.md` or
|
|
107
|
+
`CLAUDE.md` for the active workspace.
|
|
146
108
|
5a. **Check the spec prose** with [spec-checklists](reference/spec-checklists.md).
|
|
147
109
|
Emit every applicable domain checklist and fix each CRITICAL by correcting the spec,
|
|
148
110
|
never by softening the question.
|
|
149
111
|
6. **Run the complete readiness gate** at the bottom of
|
|
150
|
-
[spec-template](reference/spec-template.md), then
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
Any failure blocks. The interruption forecast must be resolved, owned, or a justified
|
|
112
|
+
[spec-template](reference/spec-template.md), then apply the
|
|
113
|
+
**Native grammar re-read checklist** in `spec-grammar.md` to the complete
|
|
114
|
+
saved `spec.md`. Re-open the file after corrections and verify every
|
|
115
|
+
applicable item; there is no parser or replacement script. Natively compare
|
|
116
|
+
deltas with the current ledger using exact header semantics and the ledger's
|
|
117
|
+
complete-block preservation rule.
|
|
118
|
+
`tasks.md` deliberately does not exist yet; cross-artifact traceability starts in
|
|
119
|
+
`$rite-define`. Any grammar or delta failure blocks. The interruption forecast must be resolved, owned, or a justified
|
|
158
120
|
action-time gate. Then write `Spec gate: passed <iso>`.
|
|
159
|
-
6a. **
|
|
121
|
+
6a. **Existing-spec delta.** For a pre-existing slug/workspace, compare old/new
|
|
122
|
+
spec and questions, then show `Acceptance delta` (added/removed/reworded IDs)
|
|
123
|
+
and `Open-question delta` (opened/resolved/reworded IDs), using `none` for
|
|
124
|
+
empty categories. Show before proceeding; new workspaces skip.
|
|
125
|
+
6b. **Review-before-code digest.** Before planning, render the compact human review:
|
|
160
126
|
`Intent` (one sentence), `Done means` (top acceptance/scenario IDs), `Scope/risk` (what is in/out
|
|
161
127
|
plus the hard gates), and `Build exactly this?` (yes → next phase; no → revise now). The digest
|
|
162
128
|
is a view over `spec.md`, not a new artifact. **Stop** after the digest.
|
|
@@ -166,23 +132,5 @@ criterion independently observable and binary.
|
|
|
166
132
|
|
|
167
133
|
## Output
|
|
168
134
|
|
|
169
|
-
**Progress first**: run `devrites-engine progress`, then use the shared completion reply contract
|
|
170
|
-
([`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md)).
|
|
171
|
-
Default success shape:
|
|
172
|
-
```
|
|
173
|
-
Done: spec ready for <slug>; placement decided and gaps closed.
|
|
174
|
-
Changed: spec.md, decisions.md, assumptions.md, questions.md, references/ <updated|n/a>
|
|
175
|
-
Evidence: checklists passed; grammar <valid | n/a flat acceptance>; design brief <path | n/a>
|
|
176
|
-
Open: <none | n non-blocking questions | Alternative: $rite-quick if express-lane eligible>; review digest: intent + done-means + scope/risk rendered
|
|
177
|
-
Next: $rite-clarify
|
|
178
|
-
Record: .devrites/work/<slug>/spec.md
|
|
179
|
-
↻ Hygiene: /clear before $rite-clarify; $rite-handoff if away > a few hours
|
|
180
|
-
```
|
|
181
|
-
If a workspace with the slug already exists, update its spec rather than overwriting it,
|
|
182
|
-
and **show the human a short diff of what changed** in `spec.md` (acceptance criteria added /
|
|
183
|
-
removed / reworded) before proceeding. A spec edit reviewed as a diff catches silent scope
|
|
184
|
-
drift that a full re-read buries; this is the spec-review view (`$rite-spec --review` renders
|
|
185
|
-
just the diff + the open-question delta, no re-investigation).
|
|
186
|
-
|
|
187
135
|
When the ask overlaps the ACTIVE feature (same intent, >50% scope), route to
|
|
188
136
|
`$rite-plan revise` (its gate decides) rather than minting a parallel workspace.
|
|
@@ -16,10 +16,7 @@ presented to the human.
|
|
|
16
16
|
Before external research, check whether the project already shipped related work. Search
|
|
17
17
|
the archive for the feature's key nouns. A hit may indicate an extension, conflict, or
|
|
18
18
|
replacement and provides prior decisions:
|
|
19
|
-
|
|
20
|
-
devrites-engine archive-search "<key nouns>" 2>/dev/null \
|
|
21
|
-
|| grep -rliE '<noun1>|<noun2>' .devrites/archive/*/spec.md 2>/dev/null
|
|
22
|
-
```
|
|
19
|
+
Use native file search over `.devrites/archive/*/{spec,decisions}.md`.
|
|
23
20
|
- **Overlap found** → read the overlapping `spec.md` + its `decisions.md`, then put it to
|
|
24
21
|
the human as a ranked option (*extend the shipped feature* · *this supersedes it* ·
|
|
25
22
|
*genuinely distinct*) same option-set contract as a gap.
|
|
@@ -1,35 +1,36 @@
|
|
|
1
1
|
# Spec question protocol
|
|
2
2
|
|
|
3
|
-
For vague or unknown intent, invoke `devrites-interview
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
[`
|
|
7
|
-
|
|
8
|
-
This reference owns only the spec-specific coverage and recording rules below.
|
|
3
|
+
For vague or unknown intent, invoke `devrites-interview` for ordered one-question turns,
|
|
4
|
+
recommendations, option sets, pass limits, reframing, and closure.
|
|
5
|
+
This file owns only Spec-specific coverage and recording. Render through
|
|
6
|
+
[`Option set`](../../devrites-lib/reference/standards/afk-hitl.md#option-set-how-every-gap-is-presented).
|
|
9
7
|
|
|
10
8
|
## Coverage gate: am I done asking?
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
Each dimension MUST be **resolved** or **explicitly deferred** (logged, non-blocking),
|
|
10
|
+
never skipped:
|
|
13
11
|
- [ ] **Objective:** one-sentence success + the real problem behind it.
|
|
14
12
|
- [ ] **Scope**: what's in vs explicitly out for v1.
|
|
15
13
|
- [ ] **Data model**: core entities + relationships (or "none").
|
|
16
|
-
- [ ] **UX / flow**: happy path + empty
|
|
17
|
-
- [ ] **Integration**: external systems
|
|
18
|
-
- [ ] **Non-functional**: auth, sensitive data, latency
|
|
19
|
-
- [ ] **Acceptance**: how each requirement is *proven* (test
|
|
14
|
+
- [ ] **UX / flow**: happy path + empty/loading/error/permission states (or "no UI").
|
|
15
|
+
- [ ] **Integration**: external systems/APIs/contracts (or "none").
|
|
16
|
+
- [ ] **Non-functional**: auth, sensitive data, latency/scale (or "n/a").
|
|
17
|
+
- [ ] **Acceptance**: how each requirement is *proven* (test/observation).
|
|
20
18
|
- [ ] **Human prerequisites**: credentials, approval windows, irreversible action-time gates
|
|
21
19
|
(or "none").
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
An agent recommendation is not a user answer. A human-owned material product, scope, UX,
|
|
22
|
+
compatibility, or acceptance choice closes only by the user's option selection, free-form
|
|
23
|
+
answer, or explicit deferral. Packets MAY be bounded; readiness MUST NOT. Rescan and continue
|
|
24
|
+
while blockers remain. If the user stops, keep them blocking and MUST NOT pass `$rite-spec`
|
|
25
|
+
readiness.
|
|
25
26
|
|
|
26
27
|
## Spec question boundary
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
- Everything at once "to be thorough." Thoroughness is depth on the few that matter.
|
|
28
|
+
- Search code, decisions, authoritative docs before asking discoverable facts.
|
|
29
|
+
- Decide and log agent-owned reversible implementation/test details.
|
|
30
|
+
- Record tooling failures as prerequisites or blockers; never ask the human to authorize repair.
|
|
31
|
+
- Ask only material choices, not everything at once.
|
|
32
32
|
|
|
33
33
|
## Record
|
|
34
|
-
Confirmed answers → `decisions.md` (with rationale).
|
|
34
|
+
Confirmed answers → `decisions.md` (with rationale). Agent-owned reversible, low-impact
|
|
35
|
+
technical assumptions →
|
|
35
36
|
`assumptions.md`. Open non-blocking items → `questions.md`.
|
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
# Spec-quality checklists
|
|
2
2
|
|
|
3
|
-
Before `$rite-define`,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
These are not implementation tests. Ask "is *export* defined for an empty dataset?", not
|
|
9
|
-
"does `exportCsv()` handle `[]`?". Implementation checks belong to `$rite-vet` and
|
|
10
|
-
`$rite-prove`. These files never name a function, file, or library.
|
|
3
|
+
Before `$rite-define`, test requirement prose for completeness, clarity, and
|
|
4
|
+
measurability—not implementation. “Banner is prominent” lacks a threshold; ask
|
|
5
|
+
whether export defines empty data, never whether `exportCsv()` handles `[]`.
|
|
6
|
+
Function/file/library checks belong to `$rite-vet` and `$rite-prove`.
|
|
11
7
|
|
|
12
8
|
## Output: one file per requirement domain
|
|
13
9
|
|
|
14
|
-
Emit `.devrites/work/<slug>/checklists/<domain>.md
|
|
15
|
-
|
|
16
|
-
to a `devrites-interview` dimension:
|
|
10
|
+
Emit `.devrites/work/<slug>/checklists/<domain>.md` per covered domain; skip
|
|
11
|
+
`none`. Each domain maps gaps to a `devrites-interview` dimension:
|
|
17
12
|
|
|
18
13
|
| Domain file | Tests the prose of |
|
|
19
14
|
|---|---|
|
|
@@ -32,15 +27,14 @@ Scored: <iso> Verdict: pass | gaps (<n CRITICAL / n minor>)
|
|
|
32
27
|
| # | Question (tests the requirement prose) | Verdict | Spec line | Severity |
|
|
33
28
|
|---|---|---|---|---|
|
|
34
29
|
| 1 | Is every quantitative qualifier ("prominent", "fast", "large") given a number or reference? | fail | "banner is prominent" | **CRITICAL** |
|
|
35
|
-
| 2 | Does each requirement name an observable outcome a test could check? | pass |
|
|
30
|
+
| 2 | Does each requirement name an observable outcome a test could check? | pass | REQ-001..004 | — |
|
|
36
31
|
| 3 | Are all enumerations closed — no "etc." / "and so on" / open "…"? | pass | — | — |
|
|
37
32
|
```
|
|
38
33
|
|
|
39
|
-
Verdict
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
- **minor:** vague but nonessential prose. Record it; it does not block.
|
|
34
|
+
Verdict: `pass | fail | n/a`. A fail is **CRITICAL** when ambiguity changes build
|
|
35
|
+
or acceptance: unquantified success, open enumeration, ambiguous data shape,
|
|
36
|
+
undefined stated-flow edge, or contradictory requirements. Other vague prose is
|
|
37
|
+
**minor**: record it; do not block.
|
|
44
38
|
|
|
45
39
|
## Question bank
|
|
46
40
|
|
|
@@ -55,6 +49,11 @@ Each question checks one requirement-prose failure mode:
|
|
|
55
49
|
- **Testability:** each acceptance criterion is binary and names (or clearly implies) its evidence.
|
|
56
50
|
A criterion only provable by reading code is a fail.
|
|
57
51
|
- **Consistency:** no requirement contradicts another, the data model, or a non-goal.
|
|
52
|
+
- **Preservation:** each material brownfield outcome appears in `Existing behavior
|
|
53
|
+
to preserve` with preserving REQ/AC and current evidence. Missing/vague “no
|
|
54
|
+
regressions” or unjustified `none` is CRITICAL.
|
|
55
|
+
- **Backstops:** each row names an independent held-out, property/metamorphic, or
|
|
56
|
+
direct behavioral check and the failure it discriminates; confidence/presence/self-review fail.
|
|
58
57
|
- **Non-functional:** each NFR names affected REQ/AC IDs or a bounded `global` scope;
|
|
59
58
|
human-only proof prerequisites name their owner.
|
|
60
59
|
|