devrites 3.2.27 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -144
- package/NOTICE.md +6 -5
- package/README.md +187 -95
- package/SECURITY.md +103 -79
- package/bin/devrites.mjs +140 -24
- package/docs/adr/0003-gate-model-hitl-pause.md +1 -1
- package/docs/adr/0013-native-codex-agent-orchestration.md +74 -0
- package/docs/adr/0014-native-host-hook-boundary.md +64 -0
- package/docs/adr/0015-read-only-root-native-orchestration.md +96 -0
- package/docs/adr/0016-codex-writer-fail-closed.md +53 -0
- package/docs/adr/0017-native-codex-writer-agent.md +63 -0
- package/docs/adr/0018-native-sandbox-instruction-writer-boundary.md +66 -0
- package/docs/adr/0019-native-boundary-with-deterministic-gates.md +48 -0
- package/docs/adr/0020-thin-engine-native-orchestration-boundary.md +54 -0
- package/docs/adr/0021-observable-workspace-compatibility.md +49 -0
- package/docs/adr/0022-native-orchestration-thin-engine.md +90 -0
- package/docs/adr/0023-native-workspace-reads-line-output.md +71 -0
- package/docs/adr/0024-native-policy-offline-installer-boundary.md +111 -0
- package/docs/adr/0025-evidence-gated-workspace-upgrades.md +64 -0
- package/docs/adr/0026-content-bound-proof-and-bounded-inputs.md +169 -0
- package/docs/adr/0027-content-bound-build-readiness.md +77 -0
- package/docs/adr/README.md +26 -11
- package/docs/agents/domain.md +2 -1
- package/docs/agents/issue-driven-rites.md +1 -1
- package/docs/architecture.md +191 -103
- package/docs/candidate-integrity.md +138 -0
- package/docs/capability-surface-selection.md +15 -5
- package/docs/cli.md +139 -92
- package/docs/command-map.md +88 -63
- package/docs/engine/commands.md +115 -507
- package/docs/engine/state-schema.md +94 -113
- package/docs/engine/workspace-schema.md +169 -229
- package/docs/flow.md +113 -68
- package/docs/harness-compliance.md +29 -56
- package/docs/markdown-instruction-upgrade-2026-08-02.md +302 -0
- package/docs/orchestration.md +136 -149
- package/docs/porting-to-a-new-harness.md +22 -7
- package/docs/quick-reference.md +21 -8
- package/docs/release.md +47 -4
- package/docs/skills.md +111 -72
- package/docs/templates/CRITIC_REVIEW_PACKET_TEMPLATE.md +2 -0
- package/docs/upstream-workflow-benchmark-2026-08-01.md +655 -0
- package/docs/usage.md +99 -65
- package/engine/Makefile +1 -2
- package/engine/cmd/releasepack/main.go +45 -25
- package/engine/cmd/releasepack/main_test.go +69 -0
- package/engine/commands.go +8 -258
- package/engine/harnessmatrix_test.go +28 -41
- package/engine/internal/devritespaths/paths.go +12 -28
- package/engine/internal/fsutil/copy.go +8 -0
- package/engine/internal/gate/gate.go +104 -105
- package/engine/internal/gate/gate_test.go +94 -84
- package/engine/internal/gate/readiness_binding.go +203 -0
- package/engine/internal/gate/readiness_binding_test.go +271 -0
- package/engine/internal/gitenv/env.go +46 -0
- package/engine/internal/gitenv/env_test.go +48 -0
- package/engine/internal/hostpack/hostpack.go +16 -20
- package/engine/internal/hostpack/hostpack_test.go +6 -6
- package/engine/internal/install/install.go +289 -511
- package/engine/internal/install/install_test.go +218 -306
- package/engine/internal/lib/candidate.go +475 -0
- package/engine/internal/lib/candidate_test.go +503 -0
- package/engine/internal/lib/closeout.go +17 -21
- package/engine/internal/lib/closeout_test.go +23 -0
- package/engine/internal/lib/cursor_compat_test.go +12 -75
- package/engine/internal/lib/evidencefresh.go +58 -47
- package/engine/internal/lib/evidencefresh_test.go +120 -0
- package/engine/internal/lib/resolve.go +13 -35
- package/engine/internal/lib/resolve_remediation_test.go +5 -17
- package/engine/internal/lib/secretscan.go +432 -0
- package/engine/internal/lib/secretscan_test.go +555 -0
- package/engine/internal/lib/util.go +24 -65
- package/engine/internal/lib/util_test.go +44 -0
- package/engine/internal/markdowntext/markdowntext.go +108 -0
- package/engine/internal/markdowntext/markdowntext_test.go +58 -0
- package/engine/internal/markdowntext/testdata/structural.json +27 -0
- package/engine/internal/reason/reason.go +2 -123
- package/engine/internal/reason/reason_test.go +4 -2
- package/engine/internal/rootfacts/facts.go +6 -8
- package/engine/internal/rootfacts/facts_test.go +20 -0
- package/engine/internal/state/cmd/workflowmanifest/main.go +10 -12
- package/engine/internal/state/cursor.go +53 -14
- package/engine/internal/state/cursor_test.go +57 -0
- package/engine/internal/state/feature.go +64 -154
- package/engine/internal/state/schema.go +24 -50
- package/engine/internal/state/state_test.go +151 -140
- package/engine/internal/state/status.go +4 -17
- package/engine/internal/state/workflow_manifest.json +9 -89
- package/engine/main.go +73 -502
- package/engine/root_routing_test.go +183 -212
- package/engine/testdata/fixtures/basic/devrites-root/{features/auth-tokens/feature.md → work/auth-tokens/README.md} +0 -1
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/architecture.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/assumptions.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/brief.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/decision-coverage.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/eng-review.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/questions.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/{features/auth-tokens/status.md → work/auth-tokens/state.md} +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/test-plan.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/traceability.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/{features/search-ranking/feature.md → work/search-ranking/README.md} +0 -1
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/assumptions.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/brief.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/decisions.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/questions.md +3 -0
- package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/state.md +2 -0
- package/engine/testdata/golden/TestParityCloseOut/active_pointed_elsewhere.golden +1 -1
- package/engine/testdata/golden/TestParityCloseOut/active_slug_cleared.golden +1 -1
- package/engine/tests/adr_0003_gate_exit_code_test.go +2 -2
- package/engine/tests/adr_0011_define_plan_test.go +2 -2
- package/engine/tests/adr_0027_readiness_binding_test.go +106 -0
- package/engine/tests/cli_test.go +24 -107
- package/engine/tests/gate_test.go +177 -200
- package/engine/tests/meta_test.go +5 -35
- package/engine/tests/parity_closeout_test.go +12 -12
- package/engine/tests/parity_resolve_test.go +6 -16
- package/engine/tests/parity_test.go +8 -302
- package/install.sh +201 -34
- package/pack/.claude/agents/devrites-code-reviewer.md +9 -18
- package/pack/.claude/agents/devrites-devex-reviewer.md +10 -18
- package/pack/.claude/agents/devrites-doubt-reviewer.md +10 -20
- package/pack/.claude/agents/devrites-evidence-scout.md +14 -26
- package/pack/.claude/agents/devrites-frontend-reviewer.md +9 -15
- package/pack/.claude/agents/devrites-performance-reviewer.md +13 -21
- package/pack/.claude/agents/devrites-plan-drafter.md +24 -28
- package/pack/.claude/agents/devrites-plan-reviewer.md +30 -47
- package/pack/.claude/agents/devrites-proof-runner.md +41 -47
- package/pack/.claude/agents/devrites-retrospector.md +34 -79
- package/pack/.claude/agents/devrites-security-auditor.md +9 -17
- package/pack/.claude/agents/devrites-simplifier-reviewer.md +9 -18
- package/pack/.claude/agents/devrites-slice-wright.md +44 -62
- package/pack/.claude/agents/devrites-spec-reviewer.md +38 -50
- package/pack/.claude/agents/devrites-strategy-reviewer.md +10 -19
- package/pack/.claude/agents/devrites-test-analyst.md +22 -21
- package/pack/.claude/agents/devrites-upgrade-planner.md +52 -71
- package/pack/.claude/settings.json +12 -100
- package/pack/.claude/skills/devrites-api-interface/SKILL.md +1 -2
- package/pack/.claude/skills/devrites-audit/SKILL.md +6 -9
- package/pack/.claude/skills/devrites-browser-proof/SKILL.md +0 -1
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +21 -27
- package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +22 -33
- package/pack/.claude/skills/devrites-doubt/SKILL.md +4 -6
- package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +1 -2
- package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +2 -1
- package/pack/.claude/skills/devrites-interview/SKILL.md +31 -36
- package/pack/.claude/skills/devrites-lib/SKILL.md +37 -66
- package/pack/.claude/skills/devrites-lib/reference/candidate-integrity.md +51 -0
- package/pack/.claude/skills/devrites-lib/reference/intent-map.md +20 -12
- package/pack/.claude/skills/devrites-lib/reference/orchestration-profiles.md +22 -0
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +35 -110
- package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +26 -93
- package/pack/.claude/skills/devrites-lib/reference/standards/README.md +6 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +43 -34
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +90 -216
- package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +9 -28
- package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +13 -11
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +59 -54
- package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +3 -5
- package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +29 -143
- package/pack/.claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +5 -6
- package/pack/.claude/skills/devrites-lib/reference/standards/security.md +13 -31
- package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +112 -82
- package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +71 -45
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +22 -11
- package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +15 -24
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +106 -37
- package/pack/.claude/skills/devrites-prose-craft/SKILL.md +3 -4
- package/pack/.claude/skills/devrites-source-driven/SKILL.md +3 -4
- package/pack/.claude/skills/devrites-ux-shape/SKILL.md +3 -3
- package/pack/.claude/skills/rite/SKILL.md +12 -13
- package/pack/.claude/skills/rite/reference/menu.md +11 -11
- package/pack/.claude/skills/rite-adopt/SKILL.md +29 -84
- package/pack/.claude/skills/rite-adopt/reference/adoption.md +16 -50
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +65 -54
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +24 -17
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +18 -21
- package/pack/.claude/skills/rite-build/SKILL.md +28 -34
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +36 -34
- package/pack/.claude/skills/rite-build/reference/anti-patterns.md +5 -19
- package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +10 -9
- package/pack/.claude/skills/rite-build/reference/checkpoint.md +17 -17
- package/pack/.claude/skills/rite-build/reference/frontend-trigger.md +3 -3
- package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +11 -14
- package/pack/.claude/skills/rite-build/reference/output.md +14 -24
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +49 -188
- package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +43 -133
- package/pack/.claude/skills/rite-clarify/SKILL.md +46 -40
- package/pack/.claude/skills/rite-clarify/reference/decision-coverage.md +4 -10
- package/pack/.claude/skills/rite-converge/SKILL.md +9 -33
- package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +2 -2
- package/pack/.claude/skills/rite-customize/SKILL.md +34 -50
- package/pack/.claude/skills/rite-define/SKILL.md +34 -58
- package/pack/.claude/skills/rite-define/reference/plan-template.md +15 -0
- package/pack/.claude/skills/rite-doctor/SKILL.md +52 -64
- package/pack/.claude/skills/rite-dogfood/SKILL.md +1 -2
- package/pack/.claude/skills/rite-explain/SKILL.md +1 -20
- package/pack/.claude/skills/rite-frame/SKILL.md +1 -7
- package/pack/.claude/skills/rite-frame/reference/failure-modes.md +1 -1
- package/pack/.claude/skills/rite-handoff/SKILL.md +1 -2
- package/pack/.claude/skills/rite-handoff/reference/handoff-template.md +1 -1
- package/pack/.claude/skills/rite-learn/SKILL.md +44 -104
- package/pack/.claude/skills/rite-plan/SKILL.md +14 -26
- package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +4 -1
- package/pack/.claude/skills/rite-polish/SKILL.md +20 -28
- package/pack/.claude/skills/rite-polish/reference/adr-promotion.md +11 -0
- package/pack/{generated/claude/skills/rite-ship → .claude/skills/rite-polish}/reference/design-memory.md +23 -21
- package/pack/.claude/skills/rite-polish/reference/ledger.md +62 -0
- package/pack/.claude/skills/rite-pov/SKILL.md +28 -32
- package/pack/.claude/skills/rite-pr-feedback/SKILL.md +0 -1
- package/pack/.claude/skills/rite-pressure-test/SKILL.md +6 -13
- package/pack/.claude/skills/rite-prototype/SKILL.md +0 -6
- package/pack/.claude/skills/rite-prove/SKILL.md +73 -68
- package/pack/.claude/skills/rite-prove/reference/acceptance-proof.md +34 -30
- package/pack/.claude/skills/rite-prove/reference/test-command-discovery.md +15 -14
- package/pack/.claude/skills/rite-quick/SKILL.md +5 -19
- package/pack/.claude/skills/rite-resolve/SKILL.md +4 -21
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +2 -2
- package/pack/.claude/skills/rite-review/SKILL.md +34 -57
- package/pack/.claude/skills/rite-seal/SKILL.md +54 -87
- package/pack/.claude/skills/rite-seal/reference/anti-patterns.md +2 -2
- package/pack/.claude/skills/rite-seal/reference/final-evidence.md +31 -56
- package/pack/.claude/skills/rite-seal/reference/go-no-go.md +27 -51
- package/pack/.claude/skills/rite-seal/reference/output.md +2 -4
- package/pack/.claude/skills/rite-seal/reference/phase-contract.md +42 -140
- package/pack/.claude/skills/rite-seal/reference/risk-and-rollback.md +2 -2
- package/pack/.claude/skills/rite-seal/reference/seal-template.md +17 -28
- package/pack/.claude/skills/rite-ship/SKILL.md +65 -93
- package/pack/.claude/skills/rite-ship/reference/anti-patterns.md +4 -1
- package/pack/.claude/skills/rite-ship/reference/close-out.md +4 -12
- package/pack/.claude/skills/rite-ship/reference/git-ship.md +86 -48
- package/pack/.claude/skills/rite-ship/reference/ship-template.md +22 -16
- package/pack/.claude/skills/rite-spec/SKILL.md +62 -95
- package/pack/.claude/skills/rite-spec/reference/investigation.md +1 -4
- package/pack/.claude/skills/rite-spec/reference/question-protocol.md +21 -20
- package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +16 -17
- package/pack/.claude/skills/rite-spec/reference/spec-template.md +47 -49
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +28 -13
- package/pack/.claude/skills/rite-status/SKILL.md +30 -88
- package/pack/.claude/skills/rite-temper/SKILL.md +12 -31
- package/pack/.claude/skills/rite-upgrade/SKILL.md +86 -101
- package/pack/.claude/skills/rite-vet/SKILL.md +88 -117
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +56 -50
- package/pack/.claude/skills/rite-vet/reference/cross-model.md +15 -39
- package/pack/.claude/skills/rite-vet/reference/depth.md +2 -2
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +3 -6
- package/pack/.claude/skills/rite-zoom-out/SKILL.md +0 -6
- package/pack/generated/README.md +2 -2
- package/pack/generated/claude/agents/devrites-code-reviewer.md +9 -18
- package/pack/generated/claude/agents/devrites-devex-reviewer.md +10 -18
- package/pack/generated/claude/agents/devrites-doubt-reviewer.md +10 -20
- package/pack/generated/claude/agents/devrites-evidence-scout.md +14 -26
- package/pack/generated/claude/agents/devrites-frontend-reviewer.md +9 -15
- package/pack/generated/claude/agents/devrites-performance-reviewer.md +13 -21
- package/pack/generated/claude/agents/devrites-plan-drafter.md +24 -28
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +30 -47
- package/pack/generated/claude/agents/devrites-proof-runner.md +41 -47
- package/pack/generated/claude/agents/devrites-retrospector.md +34 -79
- package/pack/generated/claude/agents/devrites-security-auditor.md +9 -17
- package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +9 -18
- package/pack/generated/claude/agents/devrites-slice-wright.md +44 -62
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +38 -50
- package/pack/generated/claude/agents/devrites-strategy-reviewer.md +10 -19
- package/pack/generated/claude/agents/devrites-test-analyst.md +22 -21
- package/pack/generated/claude/agents/devrites-upgrade-planner.md +52 -71
- package/pack/generated/claude/settings.json +12 -100
- package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +1 -2
- package/pack/generated/claude/skills/devrites-audit/SKILL.md +6 -9
- package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +0 -1
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +21 -27
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +22 -33
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +4 -6
- package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +1 -2
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +2 -1
- package/pack/generated/claude/skills/devrites-interview/SKILL.md +31 -36
- package/pack/generated/claude/skills/devrites-lib/SKILL.md +37 -66
- package/pack/generated/claude/skills/devrites-lib/reference/candidate-integrity.md +51 -0
- package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +20 -12
- package/pack/generated/claude/skills/devrites-lib/reference/orchestration-profiles.md +22 -0
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +35 -110
- package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +26 -93
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +6 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +43 -34
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +90 -216
- package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +9 -28
- package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +13 -11
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +59 -54
- package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +3 -5
- package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +29 -143
- package/pack/generated/claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +5 -6
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +13 -31
- package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +112 -82
- package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +71 -45
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +22 -11
- package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +15 -24
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +106 -37
- package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +3 -4
- package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +3 -4
- package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +3 -3
- package/pack/generated/claude/skills/rite/SKILL.md +12 -13
- package/pack/generated/claude/skills/rite/reference/menu.md +11 -11
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +29 -84
- package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +16 -50
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +65 -54
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +24 -17
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +18 -21
- package/pack/generated/claude/skills/rite-build/SKILL.md +28 -34
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +36 -34
- package/pack/generated/claude/skills/rite-build/reference/anti-patterns.md +5 -19
- package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +10 -9
- package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +17 -17
- package/pack/generated/claude/skills/rite-build/reference/frontend-trigger.md +3 -3
- package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +11 -14
- package/pack/generated/claude/skills/rite-build/reference/output.md +14 -24
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +49 -188
- package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +43 -133
- package/pack/generated/claude/skills/rite-clarify/SKILL.md +46 -40
- package/pack/generated/claude/skills/rite-clarify/reference/decision-coverage.md +4 -10
- package/pack/generated/claude/skills/rite-converge/SKILL.md +9 -33
- package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +2 -2
- package/pack/generated/claude/skills/rite-customize/SKILL.md +34 -50
- package/pack/generated/claude/skills/rite-define/SKILL.md +34 -58
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +15 -0
- package/pack/generated/claude/skills/rite-doctor/SKILL.md +52 -64
- package/pack/generated/claude/skills/rite-dogfood/SKILL.md +1 -2
- package/pack/generated/claude/skills/rite-explain/SKILL.md +1 -20
- package/pack/generated/claude/skills/rite-frame/SKILL.md +1 -7
- package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +1 -1
- package/pack/generated/claude/skills/rite-handoff/SKILL.md +1 -2
- package/pack/generated/claude/skills/rite-handoff/reference/handoff-template.md +1 -1
- package/pack/generated/claude/skills/rite-learn/SKILL.md +44 -104
- package/pack/generated/claude/skills/rite-plan/SKILL.md +14 -26
- package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +4 -1
- package/pack/generated/claude/skills/rite-polish/SKILL.md +20 -28
- package/pack/generated/claude/skills/rite-polish/reference/adr-promotion.md +11 -0
- package/pack/generated/{codex/skills/rite-ship → claude/skills/rite-polish}/reference/design-memory.md +23 -21
- package/pack/generated/claude/skills/rite-polish/reference/ledger.md +62 -0
- package/pack/generated/claude/skills/rite-pov/SKILL.md +28 -32
- package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +0 -1
- package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +6 -13
- package/pack/generated/claude/skills/rite-prototype/SKILL.md +0 -6
- package/pack/generated/claude/skills/rite-prove/SKILL.md +73 -68
- package/pack/generated/claude/skills/rite-prove/reference/acceptance-proof.md +34 -30
- package/pack/generated/claude/skills/rite-prove/reference/test-command-discovery.md +15 -14
- package/pack/generated/claude/skills/rite-quick/SKILL.md +5 -19
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +4 -21
- package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +2 -2
- package/pack/generated/claude/skills/rite-review/SKILL.md +34 -57
- package/pack/generated/claude/skills/rite-seal/SKILL.md +54 -87
- package/pack/generated/claude/skills/rite-seal/reference/anti-patterns.md +2 -2
- package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +31 -56
- package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +27 -51
- package/pack/generated/claude/skills/rite-seal/reference/output.md +2 -4
- package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +42 -140
- package/pack/generated/claude/skills/rite-seal/reference/risk-and-rollback.md +2 -2
- package/pack/generated/claude/skills/rite-seal/reference/seal-template.md +17 -28
- package/pack/generated/claude/skills/rite-ship/SKILL.md +65 -93
- package/pack/generated/claude/skills/rite-ship/reference/anti-patterns.md +4 -1
- package/pack/generated/claude/skills/rite-ship/reference/close-out.md +4 -12
- package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +86 -48
- package/pack/generated/claude/skills/rite-ship/reference/ship-template.md +22 -16
- package/pack/generated/claude/skills/rite-spec/SKILL.md +62 -95
- package/pack/generated/claude/skills/rite-spec/reference/investigation.md +1 -4
- package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +21 -20
- package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +16 -17
- package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +47 -49
- package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +28 -13
- package/pack/generated/claude/skills/rite-status/SKILL.md +30 -88
- package/pack/generated/claude/skills/rite-temper/SKILL.md +12 -31
- package/pack/generated/claude/skills/rite-upgrade/SKILL.md +86 -101
- package/pack/generated/claude/skills/rite-vet/SKILL.md +88 -117
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +56 -50
- package/pack/generated/claude/skills/rite-vet/reference/cross-model.md +15 -39
- package/pack/generated/claude/skills/rite-vet/reference/depth.md +2 -2
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +3 -6
- package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +0 -6
- package/pack/generated/codex/AGENTS.md +5 -4
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +8 -27
- package/pack/generated/codex/agents/devrites-devex-reviewer.toml +9 -27
- package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +9 -29
- package/pack/generated/codex/agents/devrites-evidence-scout.toml +14 -36
- package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +8 -24
- package/pack/generated/codex/agents/devrites-performance-reviewer.toml +12 -30
- package/pack/generated/codex/agents/devrites-plan-drafter.toml +24 -38
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +30 -57
- package/pack/generated/codex/agents/devrites-proof-runner.toml +41 -57
- package/pack/generated/codex/agents/devrites-retrospector.toml +34 -89
- package/pack/generated/codex/agents/devrites-security-auditor.toml +8 -26
- package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +8 -27
- package/pack/generated/codex/agents/devrites-slice-wright.toml +44 -71
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +38 -60
- package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +9 -28
- package/pack/generated/codex/agents/devrites-test-analyst.toml +21 -30
- package/pack/generated/codex/agents/devrites-upgrade-planner.toml +52 -81
- package/pack/generated/codex/config.toml +7 -0
- package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +1 -21
- package/pack/generated/codex/skills/devrites-audit/SKILL.md +6 -28
- package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +1 -21
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +21 -46
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +22 -33
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +4 -25
- package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +1 -21
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +2 -1
- package/pack/generated/codex/skills/devrites-interview/SKILL.md +32 -56
- package/pack/generated/codex/skills/devrites-lib/SKILL.md +38 -86
- package/pack/generated/codex/skills/devrites-lib/reference/candidate-integrity.md +51 -0
- package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +20 -12
- package/pack/generated/codex/skills/devrites-lib/reference/orchestration-profiles.md +22 -0
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +35 -110
- package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +26 -93
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +6 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +43 -34
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +90 -216
- package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +9 -28
- package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +13 -11
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +59 -54
- package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +3 -5
- package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +29 -143
- package/pack/generated/codex/skills/devrites-lib/reference/standards/release/ship-checklist.md +5 -6
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +13 -31
- package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +112 -82
- package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +71 -45
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +22 -11
- package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +15 -24
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +106 -37
- package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +3 -23
- package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +3 -23
- package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +3 -22
- package/pack/generated/codex/skills/rite/SKILL.md +12 -32
- package/pack/generated/codex/skills/rite/reference/menu.md +11 -11
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +29 -103
- package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +16 -50
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +65 -73
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +24 -17
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +18 -21
- package/pack/generated/codex/skills/rite-build/SKILL.md +28 -53
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +36 -34
- package/pack/generated/codex/skills/rite-build/reference/anti-patterns.md +5 -19
- package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +10 -9
- package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +17 -17
- package/pack/generated/codex/skills/rite-build/reference/frontend-trigger.md +3 -3
- package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +11 -14
- package/pack/generated/codex/skills/rite-build/reference/output.md +14 -24
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +49 -188
- package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +43 -133
- package/pack/generated/codex/skills/rite-clarify/SKILL.md +46 -59
- package/pack/generated/codex/skills/rite-clarify/reference/decision-coverage.md +4 -10
- package/pack/generated/codex/skills/rite-converge/SKILL.md +9 -52
- package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +2 -2
- package/pack/generated/codex/skills/rite-customize/SKILL.md +32 -67
- package/pack/generated/codex/skills/rite-define/SKILL.md +34 -77
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +15 -0
- package/pack/generated/codex/skills/rite-doctor/SKILL.md +52 -83
- package/pack/generated/codex/skills/rite-dogfood/SKILL.md +1 -21
- package/pack/generated/codex/skills/rite-explain/SKILL.md +1 -39
- package/pack/generated/codex/skills/rite-frame/SKILL.md +1 -26
- package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +1 -1
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +1 -21
- package/pack/generated/codex/skills/rite-handoff/reference/handoff-template.md +1 -1
- package/pack/generated/codex/skills/rite-learn/SKILL.md +44 -123
- package/pack/generated/codex/skills/rite-plan/SKILL.md +14 -45
- package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +4 -1
- package/pack/generated/codex/skills/rite-polish/SKILL.md +20 -47
- package/pack/generated/codex/skills/rite-polish/reference/adr-promotion.md +11 -0
- package/pack/{.claude/skills/rite-ship → generated/codex/skills/rite-polish}/reference/design-memory.md +23 -21
- package/pack/generated/codex/skills/rite-polish/reference/ledger.md +62 -0
- package/pack/generated/codex/skills/rite-pov/SKILL.md +28 -51
- package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +0 -20
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +6 -32
- package/pack/generated/codex/skills/rite-prototype/SKILL.md +0 -25
- package/pack/generated/codex/skills/rite-prove/SKILL.md +73 -87
- package/pack/generated/codex/skills/rite-prove/reference/acceptance-proof.md +34 -30
- package/pack/generated/codex/skills/rite-prove/reference/test-command-discovery.md +15 -14
- package/pack/generated/codex/skills/rite-quick/SKILL.md +5 -38
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +4 -40
- package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +2 -2
- package/pack/generated/codex/skills/rite-review/SKILL.md +34 -76
- package/pack/generated/codex/skills/rite-seal/SKILL.md +51 -103
- package/pack/generated/codex/skills/rite-seal/reference/anti-patterns.md +2 -2
- package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +31 -56
- package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +27 -51
- package/pack/generated/codex/skills/rite-seal/reference/output.md +2 -4
- package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +42 -140
- package/pack/generated/codex/skills/rite-seal/reference/risk-and-rollback.md +2 -2
- package/pack/generated/codex/skills/rite-seal/reference/seal-template.md +17 -28
- package/pack/generated/codex/skills/rite-ship/SKILL.md +65 -112
- package/pack/generated/codex/skills/rite-ship/reference/anti-patterns.md +4 -1
- package/pack/generated/codex/skills/rite-ship/reference/close-out.md +4 -12
- package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +86 -48
- package/pack/generated/codex/skills/rite-ship/reference/ship-template.md +22 -16
- package/pack/generated/codex/skills/rite-spec/SKILL.md +62 -114
- package/pack/generated/codex/skills/rite-spec/reference/investigation.md +1 -4
- package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +21 -20
- package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +16 -17
- package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +47 -49
- package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +28 -13
- package/pack/generated/codex/skills/rite-status/SKILL.md +30 -107
- package/pack/generated/codex/skills/rite-temper/SKILL.md +12 -50
- package/pack/generated/codex/skills/rite-upgrade/SKILL.md +86 -120
- package/pack/generated/codex/skills/rite-vet/SKILL.md +88 -136
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +56 -50
- package/pack/generated/codex/skills/rite-vet/reference/cross-model.md +15 -39
- package/pack/generated/codex/skills/rite-vet/reference/depth.md +2 -2
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +3 -6
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +0 -25
- package/package.json +6 -5
- package/scripts/build-host-artifacts.sh +5 -9
- package/scripts/codex-generate.sh +18 -278
- package/scripts/install-lib.sh +121 -34
- package/uninstall.sh +19 -17
- package/update.sh +26 -18
- package/docs/engine/agent-contract.md +0 -172
- package/docs/extensions.md +0 -178
- package/engine/git_guard.go +0 -187
- package/engine/git_guard_test.go +0 -283
- package/engine/harnessmatrix.go +0 -60
- package/engine/hookpolicy.go +0 -113
- package/engine/hookpolicy_test.go +0 -160
- package/engine/hooks.go +0 -677
- package/engine/hooks_agent_dispatch.go +0 -1637
- package/engine/hooks_events_test.go +0 -431
- package/engine/hooks_workspace.go +0 -1196
- package/engine/internal/doctor/doctor.go +0 -306
- package/engine/internal/doctor/doctor_test.go +0 -252
- package/engine/internal/forge/forge.go +0 -938
- package/engine/internal/forge/forge_test.go +0 -576
- package/engine/internal/forge/git.go +0 -245
- package/engine/internal/forge/liveness_unix.go +0 -48
- package/engine/internal/forge/liveness_windows.go +0 -67
- package/engine/internal/forge/manifest.go +0 -402
- package/engine/internal/harness/compliance.go +0 -96
- package/engine/internal/harness/harness.go +0 -301
- package/engine/internal/harness/harness_test.go +0 -124
- package/engine/internal/iohooks/detach_other.go +0 -11
- package/engine/internal/iohooks/detach_unix.go +0 -11
- package/engine/internal/iohooks/iohooks.go +0 -839
- package/engine/internal/iohooks/iohooks_test.go +0 -561
- package/engine/internal/lib/adoption.go +0 -659
- package/engine/internal/lib/adoption_test.go +0 -121
- package/engine/internal/lib/analyze.go +0 -232
- package/engine/internal/lib/archivesearch.go +0 -125
- package/engine/internal/lib/archivesearch_test.go +0 -138
- package/engine/internal/lib/budget.go +0 -172
- package/engine/internal/lib/buildreadiness.go +0 -111
- package/engine/internal/lib/checkacceptance.go +0 -176
- package/engine/internal/lib/clarifyreturn.go +0 -91
- package/engine/internal/lib/clarifyreturn_test.go +0 -123
- package/engine/internal/lib/command_other.go +0 -7
- package/engine/internal/lib/command_unix.go +0 -24
- package/engine/internal/lib/context.go +0 -280
- package/engine/internal/lib/conventions.go +0 -449
- package/engine/internal/lib/coverage.go +0 -145
- package/engine/internal/lib/dispatchwaive.go +0 -31
- package/engine/internal/lib/dispatchwaive_test.go +0 -23
- package/engine/internal/lib/doubtcoverage.go +0 -78
- package/engine/internal/lib/extensions.go +0 -622
- package/engine/internal/lib/extensions_test.go +0 -305
- package/engine/internal/lib/footprint.go +0 -239
- package/engine/internal/lib/gitauthority.go +0 -601
- package/engine/internal/lib/gitauthority_test.go +0 -346
- package/engine/internal/lib/jsonout.go +0 -129
- package/engine/internal/lib/jsonout_test.go +0 -73
- package/engine/internal/lib/lanes.go +0 -112
- package/engine/internal/lib/learnings.go +0 -397
- package/engine/internal/lib/learnings_inject_test.go +0 -77
- package/engine/internal/lib/learnings_remediation_test.go +0 -24
- package/engine/internal/lib/ledger.go +0 -311
- package/engine/internal/lib/ledger_test.go +0 -186
- package/engine/internal/lib/mutationgate.go +0 -89
- package/engine/internal/lib/observability_test.go +0 -358
- package/engine/internal/lib/overrides.go +0 -164
- package/engine/internal/lib/overrides_test.go +0 -112
- package/engine/internal/lib/preamble.go +0 -159
- package/engine/internal/lib/preamble_questions_test.go +0 -10
- package/engine/internal/lib/progress.go +0 -210
- package/engine/internal/lib/provenance.go +0 -462
- package/engine/internal/lib/provenance_test.go +0 -154
- package/engine/internal/lib/readiness_contract.json +0 -118
- package/engine/internal/lib/readinessartifact.go +0 -533
- package/engine/internal/lib/readinessartifact_test.go +0 -422
- package/engine/internal/lib/reconcile.go +0 -1496
- package/engine/internal/lib/reconcile_test.go +0 -1071
- package/engine/internal/lib/recoveryattempts.go +0 -298
- package/engine/internal/lib/recoveryattempts_test.go +0 -215
- package/engine/internal/lib/reviewers.go +0 -143
- package/engine/internal/lib/reviewers_test.go +0 -45
- package/engine/internal/lib/reviewerstats.go +0 -199
- package/engine/internal/lib/reviewerstats_test.go +0 -104
- package/engine/internal/lib/reviewintegrity.go +0 -143
- package/engine/internal/lib/reviewintegrity_test.go +0 -103
- package/engine/internal/lib/runbook.go +0 -295
- package/engine/internal/lib/runbook_context_test.go +0 -182
- package/engine/internal/lib/session.go +0 -1020
- package/engine/internal/lib/session_test.go +0 -177
- package/engine/internal/lib/specparse.go +0 -125
- package/engine/internal/lib/specskeleton.go +0 -79
- package/engine/internal/lib/specvalidate.go +0 -391
- package/engine/internal/lib/specvalidate_test.go +0 -185
- package/engine/internal/lib/stuck.go +0 -206
- package/engine/internal/lib/templates/conventions_drift.tmpl +0 -6
- package/engine/internal/lib/templates/conventions_ledger_header.md +0 -6
- package/engine/internal/lib/templates/conventions_orient_header.txt +0 -1
- package/engine/internal/lib/testintegrity.go +0 -199
- package/engine/internal/lib/testintegrity_test.go +0 -149
- package/engine/internal/lib/tickafk.go +0 -86
- package/engine/internal/migrate/migrate.go +0 -279
- package/engine/internal/migrate/migrate_test.go +0 -157
- package/engine/internal/orient/firstrun.go +0 -50
- package/engine/internal/orient/firstrun_test.go +0 -72
- package/engine/internal/orient/orient.go +0 -69
- package/engine/internal/orient/orient_test.go +0 -25
- package/engine/internal/profile/profile.go +0 -284
- package/engine/internal/profile/profile_test.go +0 -13
- package/engine/internal/state/clarify_transition.go +0 -165
- package/engine/internal/state/clarify_transition_test.go +0 -130
- package/engine/internal/state/snapshot.go +0 -457
- package/engine/internal/toolpolicy/classifier.go +0 -533
- package/engine/internal/toolpolicy/classifier_test.go +0 -424
- package/engine/internal/toolpolicy/git.go +0 -616
- package/engine/internal/toolpolicy/scanner.go +0 -382
- package/engine/observability_cli_test.go +0 -52
- package/engine/profile_test.go +0 -76
- package/engine/subagent_orient_context.txt +0 -8
- package/engine/testdata/golden/TestParityA1Guard/devrites-edit-allowed.golden +0 -1
- package/engine/testdata/golden/TestParityA1Guard/no-window-silent.golden +0 -1
- package/engine/testdata/golden/TestParityA1Guard/non-edit-tool.golden +0 -1
- package/engine/testdata/golden/TestParityA1Guard/observe-mode-silent.golden +0 -1
- package/engine/testdata/golden/TestParityA1Guard/source-edit-enforce-denies.golden +0 -2
- package/engine/testdata/golden/TestParityA1Guard/subagent-allowed.golden +0 -1
- package/engine/testdata/golden/TestParityAnalyze/noactive.golden +0 -1
- package/engine/testdata/golden/TestParityAnalyze/slug=covered.golden +0 -15
- package/engine/testdata/golden/TestParityAnalyze/slug=dangling.golden +0 -16
- package/engine/testdata/golden/TestParityAnalyze/slug=ghost.golden +0 -1
- package/engine/testdata/golden/TestParityAnalyze/slug=noac.golden +0 -15
- package/engine/testdata/golden/TestParityAnalyze/slug=order.golden +0 -17
- package/engine/testdata/golden/TestParityAnalyze/slug=orphan.golden +0 -16
- package/engine/testdata/golden/TestParityAnalyze/slug=uncovered.golden +0 -16
- package/engine/testdata/golden/TestParityBudget/default-active.golden +0 -4
- package/engine/testdata/golden/TestParityBudget/extra-md.golden +0 -5
- package/engine/testdata/golden/TestParityBudget/no-active.golden +0 -1
- package/engine/testdata/golden/TestParityBudget/no-feature.golden +0 -1
- package/engine/testdata/golden/TestParityBudget/over-advisory.golden +0 -6
- package/engine/testdata/golden/TestParityBudget/over-strict.golden +0 -6
- package/engine/testdata/golden/TestParityBudget/within.golden +0 -6
- package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +0 -2
- package/engine/testdata/golden/TestParityBuildReadiness/arg=approvenone.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=await.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=blocked.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=clarifyopen.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +0 -2
- package/engine/testdata/golden/TestParityBuildReadiness/arg=ghost.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=legacycontract.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=noapprove.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=noclarify.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=novet.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=stalevet.golden +0 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +0 -2
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +0 -2
- package/engine/testdata/golden/TestParityBuildReadiness/arg=vetnotready.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=blank-section.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=empty.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-dropped.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-ok.golden +0 -2
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-unchecked.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-gap.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-ok.golden +0 -2
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=no-seal.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=no-section.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=nonexistent.golden +0 -1
- package/engine/testdata/golden/TestParityCheckAcceptance.golden +0 -1
- package/engine/testdata/golden/TestParityCoverage/arg=flat.golden +0 -7
- package/engine/testdata/golden/TestParityCoverage/arg=full.golden +0 -10
- package/engine/testdata/golden/TestParityCoverage/arg=nonexistent.golden +0 -1
- package/engine/testdata/golden/TestParityCoverage/arg=nospec.golden +0 -1
- package/engine/testdata/golden/TestParityCoverage/arg=speconly.golden +0 -9
- package/engine/testdata/golden/TestParityCoverage.golden +0 -1
- package/engine/testdata/golden/TestParityCursor/bare.golden +0 -3
- package/engine/testdata/golden/TestParityCursor/full-afk.golden +0 -6
- package/engine/testdata/golden/TestParityCursor/full-hitl.golden +0 -5
- package/engine/testdata/golden/TestParityCursor/no-active.golden +0 -1
- package/engine/testdata/golden/TestParityCursor/red.golden +0 -5
- package/engine/testdata/golden/TestParityCursor/zerogates.golden +0 -5
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=doubted.golden +0 -2
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=ghost.golden +0 -2
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing.golden +0 -3
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=nodoubt.golden +0 -4
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=nolog.golden +0 -2
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=nowright.golden +0 -2
- package/engine/testdata/golden/TestParityDoubtCoverage.golden +0 -1
- package/engine/testdata/golden/TestParityMutationGate/active-slug.golden +0 -3
- package/engine/testdata/golden/TestParityMutationGate/explicit-slug.golden +0 -3
- package/engine/testdata/golden/TestParityMutationGate/ghost.golden +0 -1
- package/engine/testdata/golden/TestParityOrientSilentPath.golden +0 -1
- package/engine/testdata/golden/TestParityReconcile/bad-mode.golden +0 -1
- package/engine/testdata/golden/TestParityReconcile/check-clean/snapshot.golden +0 -2
- package/engine/testdata/golden/TestParityReconcile/check-clean.golden +0 -2
- package/engine/testdata/golden/TestParityReconcile/check-no-base.golden +0 -1
- package/engine/testdata/golden/TestParityReconcile/check-no-claimed/snapshot.golden +0 -2
- package/engine/testdata/golden/TestParityReconcile/check-violation/snapshot.golden +0 -2
- package/engine/testdata/golden/TestParityReconcile/check-violation.golden +0 -1
- package/engine/testdata/golden/TestParityReconcile/close-window/snapshot.golden +0 -2
- package/engine/testdata/golden/TestParityReconcile/close-window.golden +0 -3
- package/engine/testdata/golden/TestParityReconcile/not-git.golden +0 -1
- package/engine/testdata/golden/TestParityReconcile/snapshot/snapshot.golden +0 -2
- package/engine/testdata/golden/TestParityReconcile/snapshot-no-allowlist.golden +0 -1
- package/engine/testdata/golden/TestParityReconcile/snapshot.golden +0 -2
- package/engine/testdata/golden/TestParityRedwatch/fail-writes-red.golden +0 -2
- package/engine/testdata/golden/TestParityRedwatch/non-bash-tool.golden +0 -1
- package/engine/testdata/golden/TestParityRedwatch/non-test-command.golden +0 -1
- package/engine/testdata/golden/TestParityRedwatch/pass-clears-red.golden +0 -1
- package/engine/testdata/golden/TestParityResolve/next-qid.golden +0 -2
- package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-devrites-agent-denies.golden +0 -2
- package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-non-devrites-allows.golden +0 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-subagent-type-only-allows.golden +0 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-git-commit.golden +0 -2
- package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-mutating.golden +0 -2
- package/engine/testdata/golden/TestParityReviewerReadonly/non-bash-tool.golden +0 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/non-tool-input.golden +0 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/observe-mutating-silent.golden +0 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/safe-bash-command.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=dup.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=empty.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=flat.golden +0 -2
- package/engine/testdata/golden/TestParitySpecValidate/arg=nonexistent.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=noscenario.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=noshall.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=nothen.golden +0 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=valid/spec.md.golden +0 -2
- package/engine/testdata/golden/TestParitySpecValidate/arg=valid.golden +0 -2
- package/engine/testdata/golden/TestParitySpecValidate.golden +0 -1
- package/engine/testdata/golden/TestParityStatusline/full-afk.golden +0 -2
- package/engine/testdata/golden/TestParityStatusline/full-hitl.golden +0 -2
- package/engine/testdata/golden/TestParityStatusline/no-active.golden +0 -1
- package/engine/testdata/golden/TestParityStatusline/nophase.golden +0 -2
- package/engine/testdata/golden/TestParityStatusline/red.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/bad-cmd.golden +0 -1
- package/engine/testdata/golden/TestParityStuckCheck/custom-window-2.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/dominant.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/few.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/ghost.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/identical.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/no-cmd.golden +0 -1
- package/engine/testdata/golden/TestParityStuckCheck/no-slug.golden +0 -1
- package/engine/testdata/golden/TestParityStuckCheck/nolog.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/pingpong.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/varied.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/window-04-identical.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/window-2.5-varied4.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/window-4x-varied4.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/window-leadspace-varied4.golden +0 -2
- package/engine/testdata/golden/TestParityStuckCheck/window-plus4-identical.golden +0 -2
- package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent-subagent-type-key.golden +0 -2
- package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent.golden +0 -2
- package/engine/testdata/golden/TestParitySubagentOrient/garbage-input.golden +0 -1
- package/engine/testdata/golden/TestParitySubagentOrient/non-devrites-agent.golden +0 -1
- package/engine/testdata/golden/TestParityTestIntegrity/assertion-dropped.golden +0 -1
- package/engine/testdata/golden/TestParityTestIntegrity/clean.golden +0 -2
- package/engine/testdata/golden/TestParityTestIntegrity/deleted.golden +0 -1
- package/engine/testdata/golden/TestParityTestIntegrity/ghost-workspace.golden +0 -1
- package/engine/testdata/golden/TestParityTestIntegrity/not-git.golden +0 -1
- package/engine/testdata/golden/TestParityTestIntegrity/skip-added.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/budget1/state.md.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/budget1.golden +0 -2
- package/engine/testdata/golden/TestParityTickAfk/budget3/state.md.golden +0 -5
- package/engine/testdata/golden/TestParityTickAfk/budget3.golden +0 -2
- package/engine/testdata/golden/TestParityTickAfk/bulletPipe/state.md.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/bulletPipe.golden +0 -2
- package/engine/testdata/golden/TestParityTickAfk/missingField/state.md.golden +0 -3
- package/engine/testdata/golden/TestParityTickAfk/missingField.golden +0 -2
- package/engine/testdata/golden/TestParityTickAfk/missingFile.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/nonNumeric/state.md.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/nonNumeric.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/none/state.md.golden +0 -1
- package/engine/testdata/golden/TestParityTickAfk/none.golden +0 -2
- package/engine/testdata/golden/TestParityWrightScope/agent-required-non-wright.golden +0 -1
- package/engine/testdata/golden/TestParityWrightScope/devrites-edit-denied.golden +0 -2
- package/engine/testdata/golden/TestParityWrightScope/in-scope-allowed.golden +0 -1
- package/engine/testdata/golden/TestParityWrightScope/non-edit-tool.golden +0 -1
- package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +0 -2
- package/engine/testdata/golden/TestParityWrightScope/out-of-scope-observe-silent.golden +0 -1
- package/engine/testdata/golden/TestSpecSkeleton/missing-some.golden +0 -2
- package/engine/testdata/golden/TestSpecSkeleton/present-all.golden +0 -2
- package/engine/testdata/golden/TestStuckLogHashParity.golden +0 -1
- package/engine/tests/adr_0006_clock_seam_test.go +0 -36
- package/engine/tests/budget_test.go +0 -88
- package/engine/tests/canonical_ac_ids_test.go +0 -44
- package/engine/tests/concurrency_cli_test.go +0 -131
- package/engine/tests/conventions_test.go +0 -106
- package/engine/tests/doctor_cli_test.go +0 -223
- package/engine/tests/forge_cli_test.go +0 -463
- package/engine/tests/hook_test.go +0 -2732
- package/engine/tests/hooks_io_test.go +0 -309
- package/engine/tests/json_contract_test.go +0 -224
- package/engine/tests/lib_parity_test.go +0 -930
- package/engine/tests/migrate_cli_test.go +0 -195
- package/engine/tests/parity_analyze_test.go +0 -55
- package/engine/tests/parity_buildreadiness_test.go +0 -199
- package/engine/tests/parity_learnings_test.go +0 -89
- package/engine/tests/parity_mutationgate_test.go +0 -36
- package/engine/tests/parity_reconcile_test.go +0 -94
- package/engine/tests/parity_testintegrity_test.go +0 -65
- package/engine/tests/parity_tickafk_test.go +0 -83
- package/engine/validatepack.go +0 -192
- package/engine/validatepack_test.go +0 -79
- package/engine/validatepackskills.go +0 -181
- package/engine/validatepackskills_test.go +0 -171
- package/pack/.claude/agents/devrites-forge-judge.md +0 -118
- package/pack/.claude/skills/devrites-lib/reference/model-tiers.md +0 -44
- package/pack/.claude/skills/devrites-refresh-indexes/SKILL.md +0 -52
- package/pack/.claude/skills/rite-build/reference/evidence-standard.md +0 -45
- package/pack/.claude/skills/rite-build/reference/forge.md +0 -210
- package/pack/.claude/skills/rite-seal/reference/conventions-ledger.md +0 -60
- package/pack/.claude/skills/rite-ship/reference/adr-promotion.md +0 -9
- package/pack/.claude/skills/rite-ship/reference/ledger.md +0 -56
- package/pack/generated/claude/agents/devrites-forge-judge.md +0 -118
- package/pack/generated/claude/skills/devrites-lib/reference/model-tiers.md +0 -44
- package/pack/generated/claude/skills/devrites-refresh-indexes/SKILL.md +0 -52
- package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +0 -45
- package/pack/generated/claude/skills/rite-build/reference/forge.md +0 -210
- package/pack/generated/claude/skills/rite-seal/reference/conventions-ledger.md +0 -60
- package/pack/generated/claude/skills/rite-ship/reference/adr-promotion.md +0 -9
- package/pack/generated/claude/skills/rite-ship/reference/ledger.md +0 -56
- package/pack/generated/codex/agents/devrites-forge-judge.toml +0 -128
- package/pack/generated/codex/hooks.json +0 -185
- package/pack/generated/codex/skills/devrites-api-interface/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-audit/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-browser-proof/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-debug-recovery/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-doubt/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-frontend-craft/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-interview/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-lib/reference/model-tiers.md +0 -44
- package/pack/generated/codex/skills/devrites-prose-craft/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +0 -71
- package/pack/generated/codex/skills/devrites-refresh-indexes/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-source-driven/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/devrites-ux-shape/agents/openai.yaml +0 -2
- package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +0 -45
- package/pack/generated/codex/skills/rite-build/reference/forge.md +0 -210
- package/pack/generated/codex/skills/rite-seal/reference/conventions-ledger.md +0 -60
- package/pack/generated/codex/skills/rite-ship/reference/adr-promotion.md +0 -9
- package/pack/generated/codex/skills/rite-ship/reference/ledger.md +0 -56
- package/scripts/build-binaries.sh +0 -75
- package/scripts/build-release-tarball.sh +0 -105
- package/scripts/check-authority-drift.py +0 -125
- package/scripts/check-cross-refs.py +0 -139
- package/scripts/check-generated-skill-budget.mjs +0 -42
- package/scripts/check-instruction-size-baseline.mjs +0 -88
- package/scripts/check-invocation-integrity.py +0 -115
- package/scripts/check-no-global-writes.sh +0 -66
- package/scripts/check-no-personal-paths.py +0 -50
- package/scripts/check-npm-audit.mjs +0 -110
- package/scripts/check-reference-governance.mjs +0 -83
- package/scripts/check-reply-contract.sh +0 -64
- package/scripts/check-rule-uniqueness.sh +0 -45
- package/scripts/devrites-detect.sh +0 -176
- package/scripts/grade-feature.sh +0 -204
- package/scripts/live-hosts/agent-result.schema.json +0 -231
- package/scripts/live-hosts/claude.sh +0 -87
- package/scripts/live-hosts/codex.sh +0 -85
- package/scripts/live-hosts/common.sh +0 -113
- package/scripts/live-hosts/fake-host.py +0 -257
- package/scripts/live-hosts/host-transport.py +0 -286
- package/scripts/npm-audit-exceptions.json +0 -26
- package/scripts/pin.sh +0 -249
- package/scripts/release-check.sh +0 -75
- package/scripts/run-agent-contract-evals.py +0 -1380
- package/scripts/run-behavioral-evals.sh +0 -196
- package/scripts/run-evals.sh +0 -132
- package/scripts/run-live-behavioral-evals.py +0 -1310
- package/scripts/run-outcome-evals.sh +0 -454
- package/scripts/run-routing-evals.py +0 -342
- package/scripts/run-tests.mjs +0 -232
- package/scripts/scan-pack-security.py +0 -209
- package/scripts/scan-supply-chain-iocs.py +0 -127
- package/scripts/skill-pruning-audit.mjs +0 -121
- package/scripts/skills-inventory.mjs +0 -125
- package/scripts/supply-chain-iocs.json +0 -11
- package/scripts/sync-version.sh +0 -54
- package/scripts/validate-agent-composition.py +0 -57
- package/scripts/validate-command-parity.py +0 -70
- package/scripts/validate-frontmatter.py +0 -218
- package/scripts/validate-skill-anatomy.py +0 -139
- package/scripts/validate-workflow-security.py +0 -184
- package/scripts/validate-workspace-schema.py +0 -800
- package/scripts/validate.sh +0 -354
- package/scripts/workflow_schema.py +0 -69
- /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/auth-tokens/decisions.md +0 -0
- /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/auth-tokens/plan.md +0 -0
- /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/auth-tokens/spec.md +0 -0
- /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/auth-tokens/tasks.md +0 -0
- /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/search-ranking/spec.md +0 -0
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
name: devrites-interview
|
|
3
3
|
description: Interview the user one question at a time to extract intent. Use when the user says "interview me", "I am not sure what I want", or the ask is underspecified. Not for casual clarification.
|
|
4
4
|
user-invocable: false
|
|
5
|
-
required-agent-roles: none
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
# devrites-interview: extract intent
|
|
@@ -11,22 +10,22 @@ Resolve the difference between the request and the user's intent before writing
|
|
|
11
10
|
spec, plan, or code.
|
|
12
11
|
|
|
13
12
|
## Protocol
|
|
14
|
-
- **
|
|
15
|
-
|
|
16
|
-
if you cannot predict the user's answers, lower it. Below **~70%**, append the single unresolved
|
|
17
|
-
point so the user can answer it directly.
|
|
13
|
+
- **Open with a working hypothesis.** State in one line what the user wants, then ask about the
|
|
14
|
+
highest-value unresolved human-owned material decision.
|
|
18
15
|
- **One question per turn.** Multiple questions get one answered and the rest ignored.
|
|
19
|
-
- **Attach
|
|
20
|
-
> "I
|
|
21
|
-
|
|
16
|
+
- **Attach an explicit recommendation** and its reason to every question:
|
|
17
|
+
> "I recommend CSV only because it covers the use case. Choose CSV, CSV + XLSX,
|
|
18
|
+
> or something else?"
|
|
19
|
+
This is a concrete candidate for the user's decision, not an assumption or confirmation.
|
|
22
20
|
- **Highest-value question first:** order by how much the answer changes the build. A
|
|
23
21
|
question that moves the data model or acceptance criteria beats a cosmetic one.
|
|
24
|
-
- **Prioritize impact and
|
|
25
|
-
technical**.
|
|
26
|
-
the
|
|
27
|
-
|
|
22
|
+
- **Prioritize impact and bound each pass.** Order unknowns **scope > security/privacy > UX >
|
|
23
|
+
technical**. A pass MAY contain at most **3 questions** for cognitive load. After each pass,
|
|
24
|
+
rescan the decision tree and continue in later turns until every human-owned material decision
|
|
25
|
+
is explicitly selected or explicitly deferred by the user. A cap MUST NOT move a blocker to
|
|
26
|
+
`assumptions.md`. Own and log reversible, low-impact technical details instead of asking.
|
|
28
27
|
- **Structured options** when the space is enumerable: present them as the standard ranked
|
|
29
|
-
**option set** (`
|
|
28
|
+
**option set** ([`afk-hitl.md` → "Option set"](../devrites-lib/reference/standards/afk-hitl.md#option-set-how-every-gap-is-presented)): recommended **first**, labelled
|
|
30
29
|
`(Recommended)`, each with a dimension-tagged rationale (`logic · infra · business ·
|
|
31
30
|
architecture`, + `security`/`UX`/`risk` when in scope), plus the escape hatch. Render via
|
|
32
31
|
`AskUserQuestion` when the harness has it:
|
|
@@ -36,20 +35,14 @@ spec, plan, or code.
|
|
|
36
35
|
3. Something else — I'll describe it
|
|
37
36
|
```
|
|
38
37
|
|
|
39
|
-
##
|
|
40
|
-
|
|
41
|
-
material decision
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
reaction to the next three questions. If so, stop. If several rounds pass without that
|
|
45
|
-
confidence, name the missing premise instead of asking more narrow questions.
|
|
46
|
-
- **Convergence:** the last 2-3 answers only rubber-stamped your guesses and didn't
|
|
47
|
-
move the spec.
|
|
48
|
-
- **Soft cap:** after ~8 material questions, proceed with your best-guess answers logged
|
|
49
|
-
in `assumptions.md` rather than asking more (hard-stop sooner if the ask is small).
|
|
38
|
+
## Completion condition
|
|
39
|
+
Complete only when a topology and decision-tree rescan finds no unresolved human-owned
|
|
40
|
+
material decision. Such a decision closes only through the user's option selection,
|
|
41
|
+
free-form answer, or explicit deferral. A recommendation is not confirmation. If the user
|
|
42
|
+
stops early, persist every visible blocker and MUST NOT claim readiness or advance.
|
|
50
43
|
|
|
51
|
-
Ask fewer, deeper questions. If answers stop converging
|
|
52
|
-
|
|
44
|
+
Ask fewer, deeper questions. If answers stop converging around one area, **reframe once**
|
|
45
|
+
instead of asking another version of the same question.
|
|
53
46
|
|
|
54
47
|
## Want vs. should-want
|
|
55
48
|
Users sometimes name the convention or best practice they think they should want instead
|
|
@@ -61,14 +54,14 @@ than designing to the generic one.
|
|
|
61
54
|
## What counts as a yes
|
|
62
55
|
Approval requires an **explicit** yes. Treat these replies differently:
|
|
63
56
|
- *"Whatever you think is best"* / *"you decide"*: **delegation, not approval.** Offer two
|
|
64
|
-
concrete options so the user chooses the substance.
|
|
57
|
+
concrete options so the user chooses the substance or explicitly defers it.
|
|
65
58
|
- *"Sounds good"* / *"sure, let's go"*: confirm once for a material decision rather than
|
|
66
59
|
treating a polite exit as approval.
|
|
67
60
|
- **Silence:** not consent. State what is out of scope and get explicit approval for it.
|
|
68
61
|
|
|
69
62
|
## Don't ask
|
|
70
63
|
- Things the codebase answers (read it first).
|
|
71
|
-
- Reversible
|
|
64
|
+
- Reversible, low-impact technical details (decide and log as agent-owned assumptions).
|
|
72
65
|
- Everything at once "to be thorough."
|
|
73
66
|
|
|
74
67
|
## When the ask is vague: map the decision tree first
|
|
@@ -86,21 +79,23 @@ protocol with the revised premise.
|
|
|
86
79
|
When clarifying a written spec rather than extracting intent from scratch, first enumerate
|
|
87
80
|
its actors, journeys/components, states, data boundaries, interfaces/integrations, and
|
|
88
81
|
operational/proof surfaces. Scan every material surface against the caller's fixed taxonomy and mark
|
|
89
|
-
**Clear / Partial / Missing** with evidence. Ask
|
|
90
|
-
targeting Missing before Partial, one per turn with
|
|
82
|
+
**Clear / Partial / Missing** with evidence. Ask at most **3 prioritized decision packets per
|
|
83
|
+
pass**, targeting Missing before Partial, one per turn with an explicit recommendation and reason.
|
|
84
|
+
A packet may close
|
|
91
85
|
several cells only when they share one owner and trade-off.
|
|
92
86
|
|
|
93
87
|
**Integrate each answer into the relevant spec section** immediately. A Q&A log alone is
|
|
94
88
|
insufficient.
|
|
95
89
|
Append a dated **`## Clarifications`** block to `spec.md` with the question and resolution.
|
|
96
|
-
Re-run the scan after
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
90
|
+
Re-run the scan after each pass. Packet limits control cognitive load, never readiness. Continue
|
|
91
|
+
later passes while human-owned blockers remain, and stop only when every row is clear, agent-owned,
|
|
92
|
+
not applicable, or explicitly deferred by the user with a nonblocking reason, owner, and validation
|
|
93
|
+
gate. Then re-score the affected
|
|
100
94
|
`checklists/<domain>.md`.
|
|
101
95
|
|
|
102
96
|
## Output
|
|
103
97
|
A short summary for the caller: objective in one sentence, confirmed decisions,
|
|
104
98
|
open non-blocking items, and the recommended next step. If a workspace is active, write
|
|
105
|
-
Q&A to `questions.md`, confirmed calls to `decisions.md`,
|
|
106
|
-
`assumptions.md`. If not,
|
|
99
|
+
Q&A to `questions.md`, confirmed calls to `decisions.md`, and only agent-owned reversible,
|
|
100
|
+
low-impact technical details to `assumptions.md`. If not, return the summary without creating
|
|
101
|
+
a workspace.
|
|
@@ -3,82 +3,53 @@ name: devrites-lib
|
|
|
3
3
|
description: Internal shared DevRites helper library. Documents cross-cutting engine commands and references; not a user workflow. Do not invoke directly.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
disable-model-invocation: true
|
|
6
|
-
required-agent-roles: none
|
|
7
6
|
---
|
|
8
7
|
|
|
9
|
-
# devrites-lib:
|
|
8
|
+
# devrites-lib: shared workflow contracts
|
|
10
9
|
|
|
11
|
-
Do **not**
|
|
12
|
-
operations. Skills call `devrites-engine <command>` from any workspace without a pack
|
|
13
|
-
script path.
|
|
10
|
+
Do **not** invoke this skill directly.
|
|
14
11
|
|
|
15
|
-
##
|
|
12
|
+
## Ownership boundary
|
|
16
13
|
|
|
17
|
-
|
|
14
|
+
- The host owns instruction loading, exact-agent dispatch, scheduling, waiting,
|
|
15
|
+
follow-up, results, and history. Skills state the role/result, never native
|
|
16
|
+
fields or dispatch receipts.
|
|
17
|
+
- Dispatch every workflow-required role fresh. A missing role stops for HITL;
|
|
18
|
+
never skip, substitute, or perform its work in the root.
|
|
19
|
+
- The root owns DevRites state/artifacts but never source/tests. Codex grants it
|
|
20
|
+
workspace permission only because children cannot elevate; writing follows
|
|
21
|
+
[`reference/standards/agents.md`](reference/standards/agents.md).
|
|
22
|
+
- The engine owns the retained deterministic structure, atomic-write, install,
|
|
23
|
+
evidence-freshness, and safety primitives only.
|
|
18
24
|
|
|
19
|
-
|
|
25
|
+
## Workspace orientation
|
|
20
26
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
`rite-*` skill so the model orients deterministically instead of re-deriving
|
|
25
|
-
state from raw Markdown.
|
|
26
|
-
- `devrites-engine progress`: progress footer and counterpart to the initial
|
|
27
|
-
`devrites-engine preamble`. Run it **last** in every lifecycle `rite-*` skill to render from
|
|
28
|
-
`state.md`, with zero model drift) the `── rite-<phase> ──` header rule, the **slice
|
|
29
|
-
meter** (`Slice 3/5 ██████░░░░ <last-built> ✓`, or `Slices 5/5 ██████████ ✅ ALL
|
|
30
|
-
BUILT` at completion), and the **flow ribbon** (`spec ✓ define ✓ build ◉ … ship ○`).
|
|
31
|
-
The meter answers "how many slices left"; the `✅ ALL BUILT` marker answers "is the
|
|
32
|
-
build done". The skill prints its own result, next step, and hygiene lines beneath
|
|
33
|
-
it. Read-only; silent (exit 0) when there is no active workspace. Not for the workspace-less
|
|
34
|
-
utilities (`/rite-prototype`, `/rite-zoom-out`, `/rite-pressure-test`, `/rite-handoff`,
|
|
35
|
-
the `/rite` menu). They have no phase/slice state to render.
|
|
36
|
-
- `reference/reply-contract.md`: the shared user-facing completion reply contract. It
|
|
37
|
-
standardizes the compact chat lines printed below `devrites-engine progress` for success,
|
|
38
|
-
awaiting-human, stopped/blocked, GO, NO-GO, and shipped states. The chat reply is a
|
|
39
|
-
status summary; durable detail stays in the workspace artifacts.
|
|
40
|
-
- `reference/model-tiers.md`: the dispatch-by-task-shape contract (extraction / generation /
|
|
41
|
-
ceiling). A skill names a **tier** by the shape of the work and never hardcodes a model name;
|
|
42
|
-
reviewers are ceiling on purpose. Carries the degradation rule for harnesses that cannot pick
|
|
43
|
-
models per agent. Loaded on demand by any skill that dispatches subagents.
|
|
44
|
-
- `devrites-engine build-readiness`: build-readiness gate. Exits non-zero on `/rite-build`'s
|
|
45
|
-
step-0 stop conditions so they hold by exit code, not by prose the model must
|
|
46
|
-
remember: `2` no `Plan approved` (→ `/rite-define`), `3` `awaiting_human`
|
|
47
|
-
(→ `/rite-resolve`), `4` `blocked` (→ `/rite-plan`), `5` no workspace
|
|
48
|
-
(→ `/rite-spec`), `6` decision coverage missing/not CLEAR (→ `/rite-clarify`),
|
|
49
|
-
`7` implementation readiness missing/not READY (→ `/rite-vet`), `8` older or unknown
|
|
50
|
-
semantic readiness contract (→ `/rite-upgrade`), `0` ready.
|
|
51
|
-
- `devrites-engine evidence-fresh`: evidence-freshness gate for `/rite-seal`. Exits `3`
|
|
52
|
-
when any file in `touched-files.md` is newer than `evidence.md` /
|
|
53
|
-
`browser-evidence.md` (stale proof = NO-GO until re-proven), `0` when fresh.
|
|
54
|
-
- `devrites-engine check-acceptance`: executable acceptance gate. Compiles `spec.md`'s
|
|
55
|
-
acceptance IDs and exits `1` unless every one is checked (proven) in `seal.md`;
|
|
56
|
-
new workspaces use `AC-###`, while legacy archives may still carry old `[ACn]`
|
|
57
|
-
ids. Used by `/rite-seal` and by the outcome grader.
|
|
58
|
-
- `devrites-engine spec-validate`: spec-grammar gate (the spec-side mirror of
|
|
59
|
-
`devrites-engine check-acceptance`). Lints `spec.md`'s structured `### Requirement:` / `#### Scenario:`
|
|
60
|
-
blocks (SHALL/MUST present, ≥1 scenario each, every scenario has WHEN + THEN, headers
|
|
61
|
-
unique). Exits `1` on a grammar violation, `0` when valid **or** when the spec uses the flat
|
|
62
|
-
`AC-###` flat-bullet form (no structured blocks: nothing to lint, never a failure). Used by
|
|
63
|
-
`/rite-spec`'s readiness gate; see [`standards/spec-grammar.md`](reference/standards/spec-grammar.md).
|
|
27
|
+
Use the supplied slug or read `.devrites/ACTIVE`. Require its authoritative
|
|
28
|
+
`state.md`; read it directly, then only needed phase artifacts. Never infer
|
|
29
|
+
lifecycle state from chat or optional `README.md`.
|
|
64
30
|
|
|
65
|
-
|
|
31
|
+
## Shared references
|
|
66
32
|
|
|
67
|
-
- `
|
|
68
|
-
|
|
69
|
-
- `
|
|
33
|
+
- [`reference/standards/agents.md`](reference/standards/agents.md): native custom-agent roles,
|
|
34
|
+
immutable inputs, result contracts, and source-boundary review.
|
|
35
|
+
- [`reference/candidate-integrity.md`](reference/candidate-integrity.md): the
|
|
36
|
+
content-bound candidate lifecycle from Build through Ship.
|
|
37
|
+
- [`reference/reply-contract.md`](reference/reply-contract.md): compact user-facing
|
|
38
|
+
completion states. The host renders the response normally.
|
|
70
39
|
|
|
71
|
-
|
|
40
|
+
## Deterministic engine surface
|
|
72
41
|
|
|
73
|
-
|
|
74
|
-
own compact fact lines below per [`reply-contract.md`](reference/reply-contract.md):
|
|
42
|
+
The engine is limited to:
|
|
75
43
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
44
|
+
- `check readiness` for structure, `check candidate` for content-bound identity,
|
|
45
|
+
and `check seal` for structure plus exact artifact bindings; `secret-scan` and
|
|
46
|
+
`version` remain read-only helpers.
|
|
47
|
+
- Atomic state: `state resolve` for answer/drop/batch and transactional
|
|
48
|
+
`state close`.
|
|
49
|
+
- Offline, local `install`, `update`, and `uninstall`; their shell/npm callers
|
|
50
|
+
acquire the candidate bundle, source, and binary before invoking the engine.
|
|
79
51
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
proxies other commands.
|
|
52
|
+
Exact native agents/checklists own semantics; the host filesystem owns ledger
|
|
53
|
+
reads/preview/confirmed no-clobber writes, spec grammar re-reading, question-id
|
|
54
|
+
allocation, clarify cursor edits, AFK accounting, recovery accounting, and
|
|
55
|
+
read-only diagnostics. Repository scripts and CI own gates.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Candidate integrity
|
|
2
|
+
|
|
3
|
+
This file owns the Build-to-Ship lifecycle for one content-bound candidate. The
|
|
4
|
+
exact `touched-files.md` and binding grammar remain in
|
|
5
|
+
[`workspace-artifact-schema.md`](workspace-artifact-schema.md); phase skills link
|
|
6
|
+
here and state only their phase action.
|
|
7
|
+
|
|
8
|
+
`devrites-engine check candidate <slug>` is the only candidate hash authority.
|
|
9
|
+
Record its exact digest with this unindented standalone line:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
Candidate SHA-256: <64 lowercase hex>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The line appears exactly once in `evidence.md`, `review.md`, and `seal.md`, and
|
|
16
|
+
exactly once in `browser-evidence.md` when that file exists. A missing,
|
|
17
|
+
duplicate, malformed, or mismatched binding stops the lifecycle.
|
|
18
|
+
|
|
19
|
+
## Lifecycle
|
|
20
|
+
|
|
21
|
+
- **Build maintains** the authoritative manifest from each green slice's actual
|
|
22
|
+
scoped diff. It may change until Polish closes the candidate.
|
|
23
|
+
- **Prove binds** approved real proof to one digest. Check the candidate before
|
|
24
|
+
commands and again after them; the digest must be identical and proof must not
|
|
25
|
+
mutate candidate sources. Record it in evidence and browser evidence when present.
|
|
26
|
+
- **Polish closes** the candidate only after every code/UI correction, capability
|
|
27
|
+
fold, optional design-memory update, and durable ADR promotion. Update the
|
|
28
|
+
manifest for every such path; a digest change requires affected real re-proof
|
|
29
|
+
and refreshed evidence/browser bindings before Review.
|
|
30
|
+
- **Review binds** all immutable reviewers and `review.md` to the same closed
|
|
31
|
+
digest. A candidate correction updates the manifest and returns through affected
|
|
32
|
+
Prove, then a fresh Review.
|
|
33
|
+
- **Seal binds** `seal.md` to that reviewed digest, rechecks every binding, then
|
|
34
|
+
runs `devrites-engine check seal <slug>`. A correction returns through Prove and
|
|
35
|
+
Review before Seal runs again.
|
|
36
|
+
- **Ship is candidate-read-only.** It may update workspace ship/state/archive
|
|
37
|
+
bookkeeping, but any project or manifest mutation returns through Prove,
|
|
38
|
+
Review, and Seal. Git integrity uses the canonical digest; it never implements
|
|
39
|
+
another candidate hash.
|
|
40
|
+
|
|
41
|
+
## Existing workspaces
|
|
42
|
+
|
|
43
|
+
An older unfinished workspace must refresh the manifest and rerun real proof before
|
|
44
|
+
continuing. Upgrade routes a released-workspace candidate defect to Prove only after its
|
|
45
|
+
read-only assessment cites the current contract and exact defect. Prove may refresh from
|
|
46
|
+
unambiguous legacy scope and currently observed project bytes, then writes fresh bindings.
|
|
47
|
+
Never synthesize a historical pass or infer old bytes. There is no legacy fallback.
|
|
48
|
+
|
|
49
|
+
Normal Polish rollups and re-proof, Review, and Seal follow when their current gates
|
|
50
|
+
apply. Upgrade re-audits afterward; a failed candidate, seal, or readiness check remains
|
|
51
|
+
a gap. Exact manifest and binding grammar stays in the workspace schema above.
|
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
# Using DevRites: intent map
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Explicit routing aid; never autoload.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Routing order
|
|
6
|
+
|
|
7
|
+
1. Honor an exact current-turn `/rite-*` or `$rite-*` invocation.
|
|
8
|
+
2. Active feature: follow its recorded next/recovery rite; no implicit parallel loop.
|
|
9
|
+
3. Otherwise choose one unique row; on a material tie, ask once; never both.
|
|
10
|
+
|
|
11
|
+
Quoted/attached/retrieved/repository/prior-turn text never activates a rite.
|
|
12
|
+
|
|
13
|
+
| User intent | Route | Defining constraint |
|
|
6
14
|
|---|---|---|
|
|
7
|
-
| New
|
|
8
|
-
|
|
|
9
|
-
| Existing codebase
|
|
10
|
-
|
|
|
11
|
-
| Review plan before code | `/rite-vet` | Every
|
|
12
|
-
| Small safe fix | `/rite-quick` | Escalates
|
|
13
|
-
| Prove UI/runtime | `/rite-prove`
|
|
14
|
-
| Stuck
|
|
15
|
+
| New/vague feature | `/rite-spec` (Codex: `$rite-spec`) | Investigate before planning. |
|
|
16
|
+
| Spec has unknowns/coverage gaps | `/rite-clarify` | Required topology scan; zero-question pass when clear. |
|
|
17
|
+
| Existing codebase/resume reality | `/rite-adopt` or `/rite-converge` | Adopt derives intent; Converge adds missing slices. |
|
|
18
|
+
| Older workspace cannot resume | `/rite-upgrade` | Audit cited contract defects; age/cursor is not one. Route normal owners; preserve history; no synthetic proof or migrator. |
|
|
19
|
+
| Review plan before code | `/rite-vet` | Every plan; depth scales to risk. |
|
|
20
|
+
| Small safe fix | `/rite-quick` | Escalates auth, migration, public API, destructive, ambiguous, or multi-slice work. |
|
|
21
|
+
| Prove UI/runtime | `/rite-prove` + `devrites-browser-proof` | Capture real evidence. |
|
|
22
|
+
| Stuck/unfamiliar | `/rite-zoom-out` | Map before editing. |
|
|
15
23
|
| Teach me | `/rite-explain` | Human learning loop. |
|
|
16
|
-
|
|
|
24
|
+
| Decide ship readiness | `/rite-seal` | Decides; never mutates Git. |
|
|
17
25
|
| Execute ship after GO | `/rite-ship` | Requires GO/type-GO. |
|
|
18
|
-
|
|
|
26
|
+
| Unattended lifecycle | `/rite-autocomplete` | Clean baseline/checkpoints; hard gates stop. |
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Native execution profiles
|
|
2
|
+
|
|
3
|
+
Profiles scale **change depth**, not orchestration machinery. The host discovers
|
|
4
|
+
the exact project specialist named by a workflow, dispatches it in fresh context,
|
|
5
|
+
waits for the result, validates the result shape, and reconciles the evidence.
|
|
6
|
+
DevRites does not provide an engine broker, agent API version, tier protocol,
|
|
7
|
+
receipt, polling loop, or fallback agent.
|
|
8
|
+
|
|
9
|
+
| Profile | Use when | Depth |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| **Quick** | One small, reversible, unambiguous change | One bounded implementation pass and focused proof; escape to Standard as soon as the significance gate fails. |
|
|
12
|
+
| **Standard** | Default feature work | Full required lifecycle, named independent passes, focused then feature-level proof. |
|
|
13
|
+
| **Full** | Security, migration, public contracts, high blast radius, or explicit `--full` | Same phases and exact roles as Standard, with every applicable conditional axis, broader failure-mode proof, and stricter final review. |
|
|
14
|
+
|
|
15
|
+
A profile never skips a workflow-named specialist, changes source-write
|
|
16
|
+
ownership, relaxes a gate, or authorizes an irreversible action. Missing or
|
|
17
|
+
incompatible exact roles stop for HITL; the root never substitutes a generic
|
|
18
|
+
agent or performs the specialist's work inline.
|
|
19
|
+
|
|
20
|
+
The complete 17-role catalog and source-writing boundary live in
|
|
21
|
+
[`standards/agents.md`](standards/agents.md). Review-specific applicability
|
|
22
|
+
lives in [`parallel-dispatch.md`](parallel-dispatch.md).
|
|
@@ -1,117 +1,42 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Native review dispatch
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
packet, result, capability ladder, concurrency limit, retry, and reconciliation rules live in
|
|
5
|
-
[`standards/agents.md`](standards/agents.md); do not restate them here.
|
|
6
|
-
|
|
7
|
-
All reviewers read the same **immutable candidate**, but no more than three run
|
|
8
|
-
concurrently. For a larger panel, use awaited batches of at most three; after resource
|
|
9
|
-
or process errors, reduce the batch or run serially. A batch boundary does not permit a
|
|
10
|
-
write.
|
|
3
|
+
Host dispatches; DevRites governs.
|
|
11
4
|
|
|
12
5
|
## Roster
|
|
13
6
|
|
|
14
|
-
|
|
15
|
-
Conditional triggers use the listed signals.
|
|
7
|
+
Review: Spec/Code; Seal: all applicable roles.
|
|
16
8
|
|
|
17
9
|
| Reviewer | Fires | Trigger |
|
|
18
10
|
|---|---|---|
|
|
19
|
-
| `devrites-spec-reviewer` | always |
|
|
20
|
-
| `devrites-code-reviewer` | always |
|
|
21
|
-
| `devrites-test-analyst` |
|
|
22
|
-
| `devrites-frontend-reviewer` | conditional |
|
|
23
|
-
| `devrites-security-auditor` | conditional | input
|
|
24
|
-
| `devrites-performance-reviewer` | conditional |
|
|
25
|
-
| `devrites-devex-reviewer` | conditional | public API
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
## Reviewer packet
|
|
53
|
-
|
|
54
|
-
Create `agent-packet/v1` per `standards/agents.md`. In addition to the common fields:
|
|
55
|
-
|
|
56
|
-
```yaml
|
|
57
|
-
objective: Audit the active feature on <axis>; derive expected behavior independently.
|
|
58
|
-
inputs:
|
|
59
|
-
- path: .devrites/work/<slug>/spec.md
|
|
60
|
-
purpose: acceptance contract
|
|
61
|
-
- path: .devrites/work/<slug>/touched-files.md
|
|
62
|
-
purpose: feature boundary
|
|
63
|
-
- path: <scratch_root>/candidate.diff
|
|
64
|
-
purpose: reviewed candidate
|
|
65
|
-
scope:
|
|
66
|
-
in: [<axis-specific workspace paths>, <touched source/test paths>]
|
|
67
|
-
out: [author reasoning, sibling findings, unrelated repository debt]
|
|
68
|
-
allowed_repo_writes: []
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Tell the role to apply its documented discipline and return `payload.type:
|
|
72
|
-
review-findings`, one finding per line, labeled Critical / Important / Suggestion /
|
|
73
|
-
Nit / FYI and anchored to `file:line` plus the spec criterion or observed command.
|
|
74
|
-
The exact result `CANNOT-VERIFY: <requirement> — <why>` is never a pass.
|
|
75
|
-
|
|
76
|
-
Before dispatching `devrites-devex-reviewer` in measured mode, the root runs the
|
|
77
|
-
documented quickstart in an isolated clean checkout and adds immutable commands,
|
|
78
|
-
timings, output, candidate identity, and log hashes to the packet. Before
|
|
79
|
-
dispatching `devrites-performance-reviewer`, the root supplies the immutable diff
|
|
80
|
-
and any already-authorized measurement artifacts. Reviewers validate these inputs;
|
|
81
|
-
their read-only identity never executes quickstarts, builds, browser runs, or
|
|
82
|
-
assignment-only shell setup.
|
|
83
|
-
|
|
84
|
-
Dispatch rules:
|
|
85
|
-
|
|
86
|
-
- Fresh-context dispatch through the capability ladder; one packet per reviewer.
|
|
87
|
-
- No author context, sibling findings, severity coaching, or plan justification.
|
|
88
|
-
- Feature scope is `touched-files.md` plus the frozen diff.
|
|
89
|
-
- Await every required batch before any write or verdict. Never background/detach.
|
|
90
|
-
|
|
91
|
-
## Account for every reviewer
|
|
92
|
-
|
|
93
|
-
Log exact agent names as decisions are made:
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
devrites-engine footprint log <slug> reviewer devrites-<x>-reviewer
|
|
97
|
-
devrites-engine footprint log <slug> skip devrites-<x>-reviewer
|
|
98
|
-
devrites-engine footprint roster <slug>
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
`roster` rc=3 means an unaccounted reviewer: dispatch or record why it does not apply.
|
|
102
|
-
rc=1 means an always-on skip; this is valid only for an unchanged-candidate
|
|
103
|
-
carry-forward. A required reviewer that cannot be dispatched blocks the phase.
|
|
104
|
-
|
|
105
|
-
## Reconciliation
|
|
106
|
-
|
|
107
|
-
1. Preserve each valid report verbatim under `## <axis>` in `review.md`/`seal.md`.
|
|
108
|
-
2. Surface contradictions explicitly; the root decides them.
|
|
109
|
-
3. Keep the shared five-label scale. The simplifier's Suggestion/Nit/FYI subset is valid.
|
|
110
|
-
4. Resolve every `CANNOT-VERIFY` before the gate or retain it as a gap.
|
|
111
|
-
5. Add a deduped roll-up only after the verbatim record. Mark matching `file:line`
|
|
112
|
-
findings from two or more axes as consensus; do not hide lone findings.
|
|
113
|
-
6. Apply the caller's gate; do not invent a composite score.
|
|
114
|
-
|
|
115
|
-
Every panel reviewer runs at the ceiling or inherited tier. If the named role is
|
|
116
|
-
unavailable, use the universal ladder. If no fresh-agent rung is available, stop for
|
|
117
|
-
HITL; never execute the reviewer in the root context.
|
|
11
|
+
| `devrites-spec-reviewer` | always | acceptance/scope |
|
|
12
|
+
| `devrites-code-reviewer` | always | implementation correctness |
|
|
13
|
+
| `devrites-test-analyst` | seal | completed feature |
|
|
14
|
+
| `devrites-frontend-reviewer` | conditional | UI/route/screen/style/design-token change |
|
|
15
|
+
| `devrites-security-auditor` | conditional | input/auth/data/permission/dependency/integration/secret |
|
|
16
|
+
| `devrites-performance-reviewer` | conditional | performance budget or hot path/query/growing set |
|
|
17
|
+
| `devrites-devex-reviewer` | conditional | public API/CLI/SDK/webhook/config/error/docs/onboarding |
|
|
18
|
+
|
|
19
|
+
Also: `devrites-simplifier-reviewer`, `devrites-doubt-reviewer`,
|
|
20
|
+
`devrites-strategy-reviewer`, `devrites-plan-reviewer`, or `devrites-retrospector`.
|
|
21
|
+
|
|
22
|
+
## Dispatch contract
|
|
23
|
+
|
|
24
|
+
1. Freeze one candidate; give each reviewer the same spec, paths, and diff.
|
|
25
|
+
Parallelize only when writes/state/locks/tool sessions/scarce resources
|
|
26
|
+
(ports/processes/quotas/FDs/browsers/MCP) are compatible. Frozen read-only
|
|
27
|
+
usually is; pressure requires batches or serial work.
|
|
28
|
+
2. Ask for each exact named agent in fresh context; omit native syntax and
|
|
29
|
+
`agent_type`/`task_name`/`fork_turns` from the instruction.
|
|
30
|
+
3. Wait for all applicable results before reconciling.
|
|
31
|
+
4. Apply [`agents.md` § Result admission](standards/agents.md#result-admission)
|
|
32
|
+
and dedupe by evidence/root cause. Account for all seven in
|
|
33
|
+
`review.md`/`seal.md`: `Outcome:` plus admitted account, or
|
|
34
|
+
`Not-applicable: <inspected-scope reason>`. Spec/Code may cite unchanged
|
|
35
|
+
`review.md`; persist no dispatch telemetry.
|
|
36
|
+
5. Missing profile, null/failure, or malformed output is a `gap`; never
|
|
37
|
+
infer approval or substitute inline review.
|
|
38
|
+
|
|
39
|
+
On exhaustion/contention: stop spawning; collect running results; batch/serialize.
|
|
40
|
+
Never restart/orphan the cohort or infer approval.
|
|
41
|
+
|
|
42
|
+
Reviewers are read-only; accounts store evidence, never telemetry.
|