devrites 3.0.7 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +67 -47
- package/SECURITY.md +31 -29
- package/docs/adr/0001-go-engine-as-control-plane.md +1 -1
- package/docs/adr/0002-dual-host-harness.md +1 -1
- package/docs/adr/0004-state-schema-phases-sections.md +1 -2
- package/docs/adr/0006-clock-seam-and-engine-ci-gates.md +3 -4
- package/docs/adr/0009-prebuild-decision-coverage-and-readiness.md +67 -0
- package/docs/adr/0010-agent-first-fresh-context-orchestration.md +71 -0
- package/docs/adr/0011-define-plan-transition-rights.md +28 -0
- package/docs/adr/README.md +3 -0
- package/docs/agents/triage-labels.md +7 -7
- package/docs/architecture.md +157 -140
- package/docs/cli.md +41 -12
- package/docs/command-map.md +49 -35
- package/docs/engine/agent-contract.md +92 -15
- package/docs/engine/commands.md +242 -72
- package/docs/engine/state-schema.md +52 -23
- package/docs/engine/workspace-schema.md +94 -15
- package/docs/extensions.md +1 -1
- package/docs/flow.md +80 -50
- package/docs/harness-compliance.md +29 -5
- package/docs/orchestration.md +107 -79
- package/docs/quick-reference.md +7 -3
- package/docs/release.md +4 -3
- package/docs/skills.md +64 -38
- package/docs/usage.md +57 -38
- package/engine/cmd/releasepack/main.go +219 -0
- package/engine/cmd/releasepack/main_test.go +170 -0
- package/engine/commands.go +170 -23
- package/engine/git_guard.go +187 -0
- package/engine/git_guard_test.go +283 -0
- package/engine/hookpolicy.go +53 -55
- package/engine/hookpolicy_test.go +91 -1
- package/engine/hooks.go +296 -75
- package/engine/hooks_events_test.go +276 -6
- package/engine/hooks_workspace.go +640 -159
- package/engine/internal/devritespaths/paths.go +65 -10
- package/engine/internal/devritespaths/paths_test.go +110 -0
- package/engine/internal/doctor/doctor.go +153 -23
- package/engine/internal/doctor/doctor_test.go +74 -0
- package/engine/internal/forge/forge.go +940 -0
- package/engine/internal/forge/forge_test.go +576 -0
- package/engine/internal/forge/git.go +245 -0
- package/engine/internal/forge/liveness_unix.go +48 -0
- package/engine/internal/forge/liveness_windows.go +67 -0
- package/engine/internal/forge/manifest.go +402 -0
- package/engine/internal/gate/gate.go +90 -71
- package/engine/internal/gate/gate_test.go +71 -2
- package/engine/internal/harness/compliance.go +18 -24
- package/engine/internal/harness/harness.go +37 -44
- package/engine/internal/harness/harness_test.go +21 -5
- package/engine/internal/install/install.go +486 -38
- package/engine/internal/install/install_test.go +383 -10
- package/engine/internal/iohooks/iohooks.go +350 -59
- package/engine/internal/iohooks/iohooks_test.go +421 -1
- package/engine/internal/lib/buildreadiness.go +35 -18
- package/engine/internal/lib/clarifyreturn.go +91 -0
- package/engine/internal/lib/clarifyreturn_test.go +123 -0
- package/engine/internal/lib/context.go +54 -15
- package/engine/internal/lib/cursor_compat_test.go +8 -0
- package/engine/internal/lib/extensions.go +2 -3
- package/engine/internal/lib/gitauthority.go +601 -0
- package/engine/internal/lib/gitauthority_test.go +346 -0
- package/engine/internal/lib/jsonout.go +25 -11
- package/engine/internal/lib/jsonout_test.go +16 -0
- package/engine/internal/lib/lanes.go +14 -8
- package/engine/internal/lib/observability_test.go +358 -0
- package/engine/internal/lib/packageexistence.go +151 -35
- package/engine/internal/lib/packageexistence_test.go +163 -0
- package/engine/internal/lib/progress.go +11 -9
- package/engine/internal/lib/provenance.go +462 -0
- package/engine/internal/lib/provenance_test.go +154 -0
- package/engine/internal/lib/readiness_contract.json +111 -0
- package/engine/internal/lib/readinessartifact.go +510 -0
- package/engine/internal/lib/readinessartifact_test.go +321 -0
- package/engine/internal/lib/reconcile.go +712 -88
- package/engine/internal/lib/reconcile_test.go +335 -16
- package/engine/internal/lib/recoveryattempts.go +298 -0
- package/engine/internal/lib/recoveryattempts_test.go +215 -0
- package/engine/internal/lib/resolve.go +23 -19
- package/engine/internal/lib/runbook_context_test.go +20 -0
- package/engine/internal/lib/session.go +701 -9
- package/engine/internal/lib/session_test.go +80 -13
- package/engine/internal/lib/testintegrity.go +33 -37
- package/engine/internal/lib/testintegrity_test.go +63 -1
- package/engine/internal/migrate/migrate.go +81 -1
- package/engine/internal/migrate/migrate_test.go +22 -1
- package/engine/internal/reason/reason.go +180 -0
- package/engine/internal/reason/reason_test.go +35 -0
- package/engine/internal/rootfacts/facts.go +466 -0
- package/engine/internal/rootfacts/facts_test.go +306 -0
- package/engine/internal/safepath/safepath.go +55 -0
- package/engine/internal/safepath/safepath_test.go +69 -0
- package/engine/internal/safepath/safepath_windows_test.go +26 -0
- package/engine/internal/state/clarify_transition.go +165 -0
- package/engine/internal/state/clarify_transition_test.go +130 -0
- package/engine/internal/state/cmd/workflowmanifest/main.go +12 -8
- package/engine/internal/state/cursor.go +58 -0
- package/engine/internal/state/cursor_test.go +42 -1
- package/engine/internal/state/feature.go +35 -48
- package/engine/internal/state/schema.go +90 -37
- package/engine/internal/state/snapshot.go +18 -2
- package/engine/internal/state/state_test.go +187 -7
- package/engine/internal/state/status.go +48 -11
- package/engine/internal/state/workflow_manifest.json +231 -50
- package/engine/internal/toolpolicy/classifier.go +533 -0
- package/engine/internal/toolpolicy/classifier_test.go +424 -0
- package/engine/internal/toolpolicy/git.go +616 -0
- package/engine/internal/toolpolicy/scanner.go +382 -0
- package/engine/main.go +160 -77
- package/engine/observability_cli_test.go +52 -0
- package/engine/root_routing_test.go +277 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=noclarify.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=novet.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=stalevet.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=vetnotready.golden +1 -0
- package/engine/testdata/golden/TestParityProgress/arg=allbuilt.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=done.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=mid.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=nophase.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=noslice.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=plan.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=seal.golden +1 -1
- package/engine/testdata/golden/TestParityReconcile/check-clean.golden +1 -1
- package/engine/testdata/golden/TestParityReconcile/inline-fallback.golden +1 -0
- package/engine/testdata/golden/TestParityReconcile/snapshot-no-allowlist.golden +1 -0
- package/engine/testdata/golden/TestParityWrightScope/devrites-edit-denied.golden +2 -0
- package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +1 -1
- package/engine/tests/adr_0011_define_plan_test.go +30 -0
- package/engine/tests/budget_test.go +19 -8
- package/engine/tests/concurrency_cli_test.go +7 -1
- package/engine/tests/doctor_cli_test.go +148 -2
- package/engine/tests/forge_cli_test.go +463 -0
- package/engine/tests/gate_test.go +63 -8
- package/engine/tests/hook_test.go +260 -8
- package/engine/tests/hooks_io_test.go +94 -3
- package/engine/tests/json_contract_test.go +127 -2
- package/engine/tests/migrate_cli_test.go +2 -2
- package/engine/tests/parity_buildreadiness_test.go +141 -10
- package/engine/tests/parity_learnings_test.go +16 -17
- package/engine/tests/parity_reconcile_test.go +20 -17
- package/engine/tests/parity_resolve_test.go +12 -11
- package/engine/tests/parity_test.go +21 -17
- package/pack/.claude/agents/devrites-code-reviewer.md +62 -48
- package/pack/.claude/agents/devrites-devex-reviewer.md +69 -53
- package/pack/.claude/agents/devrites-doubt-reviewer.md +29 -22
- package/pack/.claude/agents/devrites-evidence-scout.md +69 -0
- package/pack/.claude/agents/devrites-forge-judge.md +74 -61
- package/pack/.claude/agents/devrites-frontend-reviewer.md +48 -39
- package/pack/.claude/agents/devrites-performance-reviewer.md +49 -40
- package/pack/.claude/agents/devrites-plan-drafter.md +71 -0
- package/pack/.claude/agents/devrites-plan-reviewer.md +80 -47
- package/pack/.claude/agents/devrites-proof-runner.md +74 -0
- package/pack/.claude/agents/devrites-retrospector.md +48 -45
- package/pack/.claude/agents/devrites-security-auditor.md +46 -36
- package/pack/.claude/agents/devrites-simplifier-reviewer.md +50 -46
- package/pack/.claude/agents/devrites-slice-wright.md +153 -165
- package/pack/.claude/agents/devrites-spec-reviewer.md +34 -32
- package/pack/.claude/agents/devrites-strategy-reviewer.md +63 -34
- package/pack/.claude/agents/devrites-test-analyst.md +40 -30
- package/pack/.claude/settings.json +2 -1
- package/pack/.claude/skills/devrites-audit/SKILL.md +40 -61
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +24 -13
- package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
- package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
- package/pack/.claude/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
- package/pack/.claude/skills/devrites-doubt/SKILL.md +25 -17
- package/pack/.claude/skills/devrites-interview/SKILL.md +53 -52
- package/pack/.claude/skills/devrites-lib/SKILL.md +11 -9
- package/pack/.claude/skills/devrites-lib/reference/intent-map.md +3 -2
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
- package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +8 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/README.md +38 -55
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +198 -190
- package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
- package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +16 -52
- package/pack/.claude/skills/devrites-lib/reference/standards/coding-style.md +2 -10
- package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +23 -18
- package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +17 -57
- package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
- package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
- package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +3 -14
- package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +9 -25
- package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +0 -9
- package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +1 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/security.md +17 -7
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +1 -27
- package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +46 -50
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +23 -10
- package/pack/.claude/skills/devrites-source-driven/SKILL.md +23 -22
- package/pack/.claude/skills/rite/SKILL.md +8 -6
- package/pack/.claude/skills/rite/reference/menu.md +8 -6
- package/pack/.claude/skills/rite-adopt/SKILL.md +33 -37
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +33 -28
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +21 -21
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
- package/pack/.claude/skills/rite-build/SKILL.md +35 -30
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +38 -38
- package/pack/.claude/skills/rite-build/reference/evidence-standard.md +10 -0
- package/pack/.claude/skills/rite-build/reference/forge.md +186 -156
- package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +4 -3
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +96 -175
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +129 -134
- package/pack/.claude/skills/rite-clarify/SKILL.md +89 -0
- package/pack/.claude/skills/rite-clarify/reference/decision-coverage.md +59 -0
- package/pack/.claude/skills/rite-converge/SKILL.md +35 -25
- package/pack/.claude/skills/rite-define/SKILL.md +57 -32
- package/pack/.claude/skills/rite-define/reference/gates.md +16 -15
- package/pack/.claude/skills/rite-define/reference/plan-template.md +16 -8
- package/pack/.claude/skills/rite-frame/reference/failure-modes.md +22 -24
- package/pack/.claude/skills/rite-plan/SKILL.md +44 -16
- package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +4 -0
- package/pack/.claude/skills/rite-polish/SKILL.md +27 -23
- package/pack/.claude/skills/rite-prototype/SKILL.md +25 -26
- package/pack/.claude/skills/rite-prove/SKILL.md +27 -17
- package/pack/.claude/skills/rite-resolve/SKILL.md +12 -11
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +3 -0
- package/pack/.claude/skills/rite-review/SKILL.md +37 -28
- package/pack/.claude/skills/rite-seal/reference/phase-contract.md +27 -92
- package/pack/.claude/skills/rite-seal/reference/risk-and-rollback.md +13 -0
- package/pack/.claude/skills/rite-ship/reference/design-memory.md +31 -36
- package/pack/.claude/skills/rite-spec/SKILL.md +84 -135
- package/pack/.claude/skills/rite-spec/reference/investigation.md +37 -33
- package/pack/.claude/skills/rite-spec/reference/question-protocol.md +6 -2
- package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +25 -24
- package/pack/.claude/skills/rite-spec/reference/spec-template.md +9 -2
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +13 -3
- package/pack/.claude/skills/rite-temper/SKILL.md +62 -47
- package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +24 -22
- package/pack/.claude/skills/rite-vet/SKILL.md +110 -113
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +42 -9
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +39 -37
- package/pack/generated/claude/agents/devrites-code-reviewer.md +62 -48
- package/pack/generated/claude/agents/devrites-devex-reviewer.md +69 -53
- package/pack/generated/claude/agents/devrites-doubt-reviewer.md +29 -22
- package/pack/generated/claude/agents/devrites-evidence-scout.md +69 -0
- package/pack/generated/claude/agents/devrites-forge-judge.md +74 -61
- package/pack/generated/claude/agents/devrites-frontend-reviewer.md +48 -39
- package/pack/generated/claude/agents/devrites-performance-reviewer.md +49 -40
- package/pack/generated/claude/agents/devrites-plan-drafter.md +71 -0
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +80 -47
- package/pack/generated/claude/agents/devrites-proof-runner.md +74 -0
- package/pack/generated/claude/agents/devrites-retrospector.md +48 -45
- package/pack/generated/claude/agents/devrites-security-auditor.md +46 -36
- package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +50 -46
- package/pack/generated/claude/agents/devrites-slice-wright.md +153 -165
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +34 -32
- package/pack/generated/claude/agents/devrites-strategy-reviewer.md +63 -34
- package/pack/generated/claude/agents/devrites-test-analyst.md +40 -30
- package/pack/generated/claude/settings.json +2 -1
- package/pack/generated/claude/skills/devrites-audit/SKILL.md +40 -61
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +24 -13
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +25 -17
- package/pack/generated/claude/skills/devrites-interview/SKILL.md +53 -52
- package/pack/generated/claude/skills/devrites-lib/SKILL.md +11 -9
- package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +3 -2
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
- package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +8 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +38 -55
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +198 -190
- package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
- package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +16 -52
- package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +2 -10
- package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +23 -18
- package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +17 -57
- package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
- package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
- package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +3 -14
- package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +9 -25
- package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +0 -9
- package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +1 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +17 -7
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +1 -27
- package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +46 -50
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +23 -10
- package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +23 -22
- package/pack/generated/claude/skills/rite/SKILL.md +8 -6
- package/pack/generated/claude/skills/rite/reference/menu.md +8 -6
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +33 -37
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +33 -28
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +21 -21
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
- package/pack/generated/claude/skills/rite-build/SKILL.md +35 -30
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +38 -38
- package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +10 -0
- package/pack/generated/claude/skills/rite-build/reference/forge.md +186 -156
- package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +4 -3
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +96 -175
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +129 -134
- package/pack/generated/claude/skills/rite-clarify/SKILL.md +89 -0
- package/pack/generated/claude/skills/rite-clarify/reference/decision-coverage.md +59 -0
- package/pack/generated/claude/skills/rite-converge/SKILL.md +35 -25
- package/pack/generated/claude/skills/rite-define/SKILL.md +57 -32
- package/pack/generated/claude/skills/rite-define/reference/gates.md +16 -15
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +16 -8
- package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +22 -24
- package/pack/generated/claude/skills/rite-plan/SKILL.md +44 -16
- package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +4 -0
- package/pack/generated/claude/skills/rite-polish/SKILL.md +27 -23
- package/pack/generated/claude/skills/rite-prototype/SKILL.md +25 -26
- package/pack/generated/claude/skills/rite-prove/SKILL.md +27 -17
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +12 -11
- package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +3 -0
- package/pack/generated/claude/skills/rite-review/SKILL.md +37 -28
- package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +27 -92
- package/pack/generated/claude/skills/rite-seal/reference/risk-and-rollback.md +13 -0
- package/pack/generated/claude/skills/rite-ship/reference/design-memory.md +31 -36
- package/pack/generated/claude/skills/rite-spec/SKILL.md +84 -135
- package/pack/generated/claude/skills/rite-spec/reference/investigation.md +37 -33
- package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +6 -2
- package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +25 -24
- package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +9 -2
- package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +13 -3
- package/pack/generated/claude/skills/rite-temper/SKILL.md +62 -47
- package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +24 -22
- package/pack/generated/claude/skills/rite-vet/SKILL.md +110 -113
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +42 -9
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +39 -37
- package/pack/generated/codex/AGENTS.md +5 -2
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +69 -47
- package/pack/generated/codex/agents/devrites-devex-reviewer.toml +75 -51
- package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +35 -20
- package/pack/generated/codex/agents/devrites-evidence-scout.toml +75 -0
- package/pack/generated/codex/agents/devrites-forge-judge.toml +80 -59
- package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +54 -37
- package/pack/generated/codex/agents/devrites-performance-reviewer.toml +55 -38
- package/pack/generated/codex/agents/devrites-plan-drafter.toml +77 -0
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +82 -47
- package/pack/generated/codex/agents/devrites-proof-runner.toml +80 -0
- package/pack/generated/codex/agents/devrites-retrospector.toml +54 -43
- package/pack/generated/codex/agents/devrites-security-auditor.toml +53 -35
- package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +56 -44
- package/pack/generated/codex/agents/devrites-slice-wright.toml +159 -163
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +40 -30
- package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +65 -34
- package/pack/generated/codex/agents/devrites-test-analyst.toml +46 -28
- package/pack/generated/codex/hooks.json +4 -14
- package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-audit/SKILL.md +47 -64
- package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +31 -16
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +32 -20
- package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-interview/SKILL.md +60 -55
- package/pack/generated/codex/skills/devrites-lib/SKILL.md +18 -12
- package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +3 -2
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
- package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +8 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +38 -55
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +198 -190
- package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
- package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +16 -52
- package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +2 -10
- package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +23 -18
- package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +17 -57
- package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
- package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
- package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +3 -14
- package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +9 -25
- package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +0 -9
- package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +1 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +17 -7
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +1 -27
- package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +46 -50
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +23 -10
- package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +29 -24
- package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite/SKILL.md +19 -13
- package/pack/generated/codex/skills/rite/reference/menu.md +8 -6
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +40 -40
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +40 -31
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +21 -21
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
- package/pack/generated/codex/skills/rite-build/SKILL.md +42 -33
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +38 -38
- package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +10 -0
- package/pack/generated/codex/skills/rite-build/reference/forge.md +186 -156
- package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +4 -3
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +96 -175
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +129 -134
- package/pack/generated/codex/skills/rite-clarify/SKILL.md +105 -0
- package/pack/generated/codex/skills/rite-clarify/reference/decision-coverage.md +59 -0
- package/pack/generated/codex/skills/rite-converge/SKILL.md +42 -28
- package/pack/generated/codex/skills/rite-customize/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-define/SKILL.md +64 -35
- package/pack/generated/codex/skills/rite-define/reference/gates.md +16 -15
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +16 -8
- package/pack/generated/codex/skills/rite-doctor/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-dogfood/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-explain/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-frame/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +22 -24
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-learn/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-plan/SKILL.md +51 -19
- package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +5 -1
- package/pack/generated/codex/skills/rite-polish/SKILL.md +34 -26
- package/pack/generated/codex/skills/rite-pov/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-prototype/SKILL.md +32 -29
- package/pack/generated/codex/skills/rite-prove/SKILL.md +34 -20
- package/pack/generated/codex/skills/rite-quick/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +19 -14
- package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +3 -0
- package/pack/generated/codex/skills/rite-review/SKILL.md +44 -31
- package/pack/generated/codex/skills/rite-seal/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +27 -92
- package/pack/generated/codex/skills/rite-seal/reference/risk-and-rollback.md +13 -0
- package/pack/generated/codex/skills/rite-ship/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-ship/reference/design-memory.md +31 -36
- package/pack/generated/codex/skills/rite-spec/SKILL.md +91 -138
- package/pack/generated/codex/skills/rite-spec/reference/investigation.md +37 -33
- package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +6 -2
- package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +25 -24
- package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +9 -2
- package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +13 -3
- package/pack/generated/codex/skills/rite-status/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-temper/SKILL.md +69 -50
- package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +24 -22
- package/pack/generated/codex/skills/rite-vet/SKILL.md +117 -116
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +42 -9
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +40 -38
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +7 -3
- package/package.json +1 -1
- package/scripts/build-release-tarball.sh +32 -15
- package/scripts/check-authority-drift.py +125 -0
- package/scripts/check-instruction-size-baseline.mjs +19 -11
- package/scripts/check-invocation-integrity.py +2 -0
- package/scripts/codex-generate.sh +69 -33
- package/scripts/grade-feature.sh +121 -40
- package/scripts/live-hosts/agent-result.schema.json +230 -0
- package/scripts/live-hosts/claude.sh +87 -0
- package/scripts/live-hosts/codex.sh +81 -0
- package/scripts/live-hosts/common.sh +113 -0
- package/scripts/live-hosts/fake-host.py +264 -0
- package/scripts/live-hosts/host-transport.py +287 -0
- package/scripts/release-check.sh +5 -1
- package/scripts/run-agent-contract-evals.py +1380 -0
- package/scripts/run-behavioral-evals.sh +24 -30
- package/scripts/run-evals.sh +1 -5
- package/scripts/run-live-behavioral-evals.py +1274 -144
- package/scripts/run-outcome-evals.sh +414 -88
- package/scripts/run-tests.mjs +30 -2
- package/scripts/skills-inventory.mjs +1 -1
- package/scripts/validate-workflow-security.py +39 -20
- package/scripts/validate-workspace-schema.py +362 -10
- package/scripts/validate.sh +21 -15
- package/engine/testdata/golden/TestParityWrightScope/devrites-edit-allowed.golden +0 -1
- /package/engine/testdata/golden/{TestParityReconcile/check-no-claimed.golden → TestParityBuildReadiness/arg=clarifyopen.golden} +0 -0
|
@@ -11,21 +11,25 @@ This is the Codex mirror of a DevRites skill. In Codex:
|
|
|
11
11
|
|
|
12
12
|
- Load DevRites engineering standards from `.agents/skills/devrites-lib/reference/standards/`. Read `.agents/skills/devrites-lib/reference/standards/core.md` before workflow work, then load the other `.agents/skills/devrites-lib/reference/standards/*.md` files exactly when this skill asks for them.
|
|
13
13
|
- Use the installed `devrites-engine` binary as the canonical runtime helper surface for orientation, gates, and state mutation.
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
14
|
+
- **Invocation and dispatch are different:** invoke means run a skill in this context; dispatch means start a fresh agent with `spawn_agent`, await it, and reconcile its result. Never describe inline skill work as a dispatch.
|
|
15
|
+
- For every DevRites specialist or writer dispatch, first call `spawn_agent` with the named `devrites-<role>` custom role. The matching project contract is `.codex/agents/devrites-<role>.toml`.
|
|
16
|
+
- If `spawn_agent` is callable but a named read-only role is unavailable, use generic `explorer` only when the host proves that run has a runtime-enforced read-only sandbox. Tell it to read `.codex/agents/devrites-<role>.toml`, follow its `developer_instructions`, and execute the unchanged packet. A missing read-only custom role is not evidence that spawning is unavailable.
|
|
17
|
+
- Never dispatch generic `worker` for `devrites-slice-wright` unless the host proves that worker run carries exact DevRites identity and the same `.wright-allowlist` enforcement as the named role. Codex reports a generic run as `agent_type=worker`, so the generated global hooks cannot prove that binding. Reject that unsafe rung and use the documented labelled inline wright path with `.reconcile-inline` plus the full reconcile gate.
|
|
18
|
+
- If the host cannot prove the generic explorer is runtime read-only, reject that rung too. Only when no spawn primitive exists or a higher-priority policy rejects a safe spawn may the root run the documented discipline inline. Label it `independence: fallback`, never call it independent, and apply every fallback risk gate. An unbound generic wright or unconfined generic explorer is such a safety rejection, not evidence that no agents exist.
|
|
19
|
+
- Wait for every required fresh-context dispatch before reconciling or advancing. A backgrounded or lost result is incomplete.
|
|
20
|
+
- Codex project hooks are installed in `.codex/hooks.json`; declared-leaf hooks are scoped inside `.codex/agents/devrites-*.toml`. Review and trust them with `/hooks` before relying on hook enforcement.
|
|
17
21
|
- When this skill asks a HITL question via `AskUserQuestion`: Codex's equivalent (`request_user_input`) exists only in Plan mode. Outside Plan mode, render the option set as a plain numbered list in chat and **end the turn** so the human answers: NEVER silently pick an option yourself; auto-picking is AFK's contract, gated by the `.devrites/AFK` sentinel.
|
|
18
22
|
|
|
19
23
|
|
|
20
24
|
# devrites-lib: internal shared helpers (not a command)
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
Do **not** run this skill directly. It lists shared references and control-plane
|
|
27
|
+
operations. Skills call `devrites-engine <command>` from any workspace without a pack
|
|
28
|
+
script path.
|
|
25
29
|
|
|
26
30
|
## Operations
|
|
27
31
|
|
|
28
|
-
These are selected `devrites-engine` contracts
|
|
32
|
+
These are selected `devrites-engine` contracts. Run `devrites-engine help` for the full list.
|
|
29
33
|
|
|
30
34
|
**Read-only: orient / gate (never mutate the workspace):**
|
|
31
35
|
|
|
@@ -34,13 +38,13 @@ These are selected `devrites-engine` contracts; `devrites-engine help` is exhaus
|
|
|
34
38
|
open-question tally by gate. Run first (step 0) by every workspace-operating
|
|
35
39
|
`rite-*` skill so the model orients deterministically instead of re-deriving
|
|
36
40
|
state from raw Markdown.
|
|
37
|
-
- `devrites-engine progress`: progress footer
|
|
38
|
-
|
|
41
|
+
- `devrites-engine progress`: progress footer and counterpart to the initial
|
|
42
|
+
`devrites-engine preamble`. Run it **last** in every lifecycle `rite-*` skill to render from
|
|
39
43
|
`state.md`, with zero model drift) the `── rite-<phase> ──` header rule, the **slice
|
|
40
44
|
meter** (`Slice 3/5 ██████░░░░ <last-built> ✓`, or `Slices 5/5 ██████████ ✅ ALL
|
|
41
45
|
BUILT` at completion), and the **flow ribbon** (`spec ✓ define ✓ build ◉ … ship ○`).
|
|
42
46
|
The meter answers "how many slices left"; the `✅ ALL BUILT` marker answers "is the
|
|
43
|
-
build done". The skill prints its own
|
|
47
|
+
build done". The skill prints its own result, next step, and hygiene lines beneath
|
|
44
48
|
it. Read-only; silent (exit 0) when there is no active workspace. Not for the workspace-less
|
|
45
49
|
utilities (`$rite-prototype`, `$rite-zoom-out`, `$rite-pressure-test`, `$rite-handoff`,
|
|
46
50
|
the `$rite` menu). They have no phase/slice state to render.
|
|
@@ -55,7 +59,9 @@ These are selected `devrites-engine` contracts; `devrites-engine help` is exhaus
|
|
|
55
59
|
- `devrites-engine build-readiness`: build-readiness gate. Exits non-zero on `$rite-build`'s
|
|
56
60
|
step-0 stop conditions so they hold by exit code, not by prose the model must
|
|
57
61
|
remember: `2` no `Plan approved` (→ `$rite-define`), `3` `awaiting_human`
|
|
58
|
-
(→ `$rite-resolve`), `4` `blocked` (→ `$rite-plan`), `5` no workspace
|
|
62
|
+
(→ `$rite-resolve`), `4` `blocked` (→ `$rite-plan`), `5` no workspace
|
|
63
|
+
(→ `$rite-spec`), `6` decision coverage missing/not CLEAR (→ `$rite-clarify`),
|
|
64
|
+
`7` implementation readiness missing/not READY (→ `$rite-vet`), `0` ready.
|
|
59
65
|
- `devrites-engine evidence-fresh`: evidence-freshness gate for `$rite-seal`. Exits `3`
|
|
60
66
|
when any file in `touched-files.md` is newer than `evidence.md` /
|
|
61
67
|
`browser-evidence.md` (stale proof = NO-GO until re-proven), `0` when fresh.
|
|
@@ -76,7 +82,7 @@ These are selected `devrites-engine` contracts; `devrites-engine help` is exhaus
|
|
|
76
82
|
- `devrites-engine resolve`: backs the `$rite-resolve` contract (answer / drop / batch).
|
|
77
83
|
- `devrites-engine close-out`: archive the workspace + clear `ACTIVE` on `$rite-ship`.
|
|
78
84
|
|
|
79
|
-
### Canonical footer
|
|
85
|
+
### Canonical footer
|
|
80
86
|
|
|
81
87
|
Every lifecycle `rite-*` skill prints this as the **first lines of its output**, then its
|
|
82
88
|
own compact fact lines below per [`reply-contract.md`](reference/reply-contract.md):
|
|
@@ -4,9 +4,10 @@ This is an explicit reference, not a session-start autoload. Load it when the us
|
|
|
4
4
|
|
|
5
5
|
| User intent | Route | Notes |
|
|
6
6
|
|---|---|---|
|
|
7
|
-
| New feature / vague product idea | `$rite-spec` (Codex: `$rite-spec`) | Investigate
|
|
7
|
+
| New feature / vague product idea | `$rite-spec` (Codex: `$rite-spec`) | Investigate before planning. |
|
|
8
|
+
| Written spec still has unknowns / missing decision coverage | `$rite-clarify` | Required before planning; topology scan, zero-question fast path when clear. |
|
|
8
9
|
| Existing codebase / resume reality | `$rite-adopt` or `$rite-converge` | Adopt derives intent from code; converge appends remaining slices. |
|
|
9
|
-
| Review plan before code | `$rite-vet` | Every defined plan; depth scales to stakes. |
|
|
10
|
+
| Review plan before code | `$rite-vet` | Every defined plan; depth scales to stakes and emits the implementation-readiness verdict. |
|
|
10
11
|
| Small safe fix | `$rite-quick` | Escalates on auth, migration, public API, destructive, ambiguous, or multi-slice work. |
|
|
11
12
|
| Prove UI/runtime | `$rite-prove` plus `devrites-browser-proof` | Capture real evidence. |
|
|
12
13
|
| Stuck / unfamiliar area | `$rite-zoom-out` | Map structure before changing code. |
|
|
@@ -1,165 +1,110 @@
|
|
|
1
1
|
# Parallel review dispatch
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
This file defines reviewer rosters for `$rite-review` and `$rite-seal`. The shared
|
|
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
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
here: the roster table below names them under **Not in this fan-out** so the set is unambiguous.
|
|
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.
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
them concurrently, reconcile on return.
|
|
12
|
+
## Roster
|
|
15
13
|
|
|
16
|
-
|
|
14
|
+
`$rite-seal` accounts for all seven roles. `$rite-review` runs the first two.
|
|
15
|
+
Conditional triggers use the listed signals.
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
plus each conditional, either dispatched or skip-recorded; `$rite-review` runs the two always-on
|
|
20
|
-
axes. Each trigger is a *checkable signal*, not a judgement call, so a conditional reviewer is
|
|
21
|
-
either fired or consciously skipped: never silently dropped.
|
|
22
|
-
|
|
23
|
-
| Reviewer | Fires | Trigger: the checkable signal |
|
|
17
|
+
| Reviewer | Fires | Trigger |
|
|
24
18
|
|---|---|---|
|
|
25
|
-
| `devrites-spec-reviewer` | always |
|
|
26
|
-
| `devrites-code-reviewer` | always |
|
|
27
|
-
| `devrites-test-analyst` | always
|
|
28
|
-
| `devrites-frontend-reviewer` | conditional |
|
|
29
|
-
| `devrites-security-auditor` | conditional |
|
|
30
|
-
| `devrites-performance-reviewer` | conditional |
|
|
31
|
-
| `devrites-devex-reviewer` | conditional |
|
|
32
|
-
|
|
33
|
-
### Hit-rate gating: consult before dispatching conditionals
|
|
34
|
-
|
|
35
|
-
Before dispatching, run `devrites-engine reviewer-stats report`. It grades each reviewer from the
|
|
36
|
-
cross-feature dispatch ledger (`.devrites/reviewer-stats.jsonl`):
|
|
37
|
-
|
|
38
|
-
- `run` / `run (always-on)` / `run (insurance — never gated)`: dispatch per the trigger table above.
|
|
39
|
-
- `gate-candidate`: this **conditional** reviewer produced zero surviving findings in its last 10+
|
|
40
|
-
dispatches on this project. Skip it as a *recorded* skip:
|
|
41
|
-
`devrites-engine footprint log <slug> skip devrites-<x>-reviewer` with the reason
|
|
42
|
-
`gated: zero surviving findings in <N> dispatches`. The roster gate stays satisfied: a gated
|
|
43
|
-
skip is a conscious skip.
|
|
44
|
-
|
|
45
|
-
The verdict is engine-owned and deterministic; never gate by your own judgement of a reviewer's
|
|
46
|
-
past usefulness. Two hard bounds: the always-on axes (`spec`, `code-review`, `test-analyst`) and
|
|
47
|
-
the insurance reviewers (`security-auditor`, `doubt-reviewer`) are **never** gated: the engine
|
|
48
|
-
never grades them `gate-candidate`, and a caller must not skip them on hit-rate grounds. The user
|
|
49
|
-
can override gating for one run by asking for a full panel (`--full`): then dispatch every
|
|
50
|
-
triggered reviewer regardless of verdict.
|
|
51
|
-
|
|
52
|
-
After reconciliation, close the loop: record each **dispatched** reviewer's outcome so the
|
|
53
|
-
ledger stays live:
|
|
19
|
+
| `devrites-spec-reviewer` | always | review Spec axis; seal may carry it forward only on the identical candidate |
|
|
20
|
+
| `devrites-code-reviewer` | always | review Code-review axis; seal may carry it forward only on the identical candidate |
|
|
21
|
+
| `devrites-test-analyst` | always at seal | completed feature |
|
|
22
|
+
| `devrites-frontend-reviewer` | conditional | diff touches a component, template, stylesheet, story, route, screen, or design token |
|
|
23
|
+
| `devrites-security-auditor` | conditional | input, auth/authz, data access/storage, external integration, permission, dependency, or secret |
|
|
24
|
+
| `devrites-performance-reviewer` | conditional | spec has a performance budget, or diff adds a query, growing-set loop, render/hot-path work, or material payload |
|
|
25
|
+
| `devrites-devex-reviewer` | conditional | public API, CLI, SDK/export, webhook, config/env, error message, docs, or getting-started path |
|
|
54
26
|
|
|
55
|
-
|
|
56
|
-
devrites-
|
|
57
|
-
|
|
27
|
+
Not in this roster: `devrites-simplifier-reviewer` (polish), `devrites-doubt-reviewer`
|
|
28
|
+
(doubt), `devrites-strategy-reviewer` (temper), `devrites-plan-reviewer` (vet),
|
|
29
|
+
`devrites-forge-judge` (build), and `devrites-retrospector` (ship).
|
|
58
30
|
|
|
59
|
-
|
|
60
|
-
false positive does not count. Record `0` honestly; dry streaks are the signal.
|
|
31
|
+
## Hit-rate gating
|
|
61
32
|
|
|
62
|
-
|
|
63
|
-
at `$rite-polish` Phase 1 (via `devrites-audit simplify`) and `devrites-doubt-reviewer` fires from
|
|
64
|
-
`devrites-doubt` when a decision is stood up: neither is a seal reviewer, so neither is part of
|
|
65
|
-
the seal accounting. `devrites-strategy-reviewer` (pre-plan, `$rite-temper`), `devrites-plan-reviewer`
|
|
66
|
-
(pre-build, `$rite-vet`), `devrites-forge-judge` (`$rite-build` forge), and `devrites-retrospector`
|
|
67
|
-
(`$rite-ship` close) are single-agent, phase-locked gates. They fire iff their phase runs, not here.
|
|
33
|
+
Before conditionals, run:
|
|
68
34
|
|
|
69
|
-
|
|
70
|
-
|
|
35
|
+
```bash
|
|
36
|
+
devrites-engine reviewer-stats report
|
|
37
|
+
```
|
|
71
38
|
|
|
72
|
-
|
|
39
|
+
- `run`, `run (always-on)`, or `run (insurance — never gated)`: apply the roster.
|
|
40
|
+
- `gate-candidate`: a conditional produced zero surviving findings in its last 10+
|
|
41
|
+
dispatches. Record a skip with `gated: zero surviving findings in <N> dispatches`.
|
|
42
|
+
- `--full`: dispatch every triggered reviewer despite gating.
|
|
73
43
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
44
|
+
Always-on reviewers and insurance reviewers (security and doubt) are never hit-rate
|
|
45
|
+
gated. After reconciliation, record each dispatched reviewer's surviving
|
|
46
|
+
Critical+Important count:
|
|
77
47
|
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
Workspace: .devrites/work/<slug>/
|
|
82
|
-
Read (yourself, fresh context):
|
|
83
|
-
- spec.md (+ acceptance criteria)
|
|
84
|
-
- touched-files.md
|
|
85
|
-
- the git diff
|
|
86
|
-
- <any axis-specific files: decisions.md, evidence.md, references/...>
|
|
87
|
-
|
|
88
|
-
Before judging the diff, derive the expected behaviour from the spec
|
|
89
|
-
yourself, then compare it against what the code does. Anchor every finding
|
|
90
|
-
to file:line plus the spec criterion or command output that proves it —
|
|
91
|
-
an unanchored finding is a Suggestion at most. The order or length of the
|
|
92
|
-
diff is not evidence.
|
|
93
|
-
|
|
94
|
-
Apply your documented discipline. Return labeled findings (Critical /
|
|
95
|
-
Important / Suggestion / Nit / FYI) using your documented output format,
|
|
96
|
-
ONE FINDING PER LINE, cite file:line.
|
|
97
|
-
|
|
98
|
-
Feature scope only. No edits. Do not summarize or re-rank — the caller
|
|
99
|
-
reconciles.
|
|
48
|
+
```bash
|
|
49
|
+
devrites-engine reviewer-stats record devrites-<x>-reviewer <count> <slug>
|
|
100
50
|
```
|
|
101
51
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
+
```
|
|
115
70
|
|
|
116
|
-
|
|
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.
|
|
117
75
|
|
|
118
|
-
|
|
119
|
-
consciously skipped with a one-line reason. A conditional reviewer that genuinely does not apply
|
|
120
|
-
(no UI in the diff → `frontend-reviewer`) is a *recorded* skip, not a silent no-op. That record
|
|
121
|
-
is the difference between "reviewed" and "declared done after firing three of seven": the silent
|
|
122
|
-
skip is exactly how a needed reviewer never runs.
|
|
76
|
+
Dispatch rules:
|
|
123
77
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
78
|
+
- Fresh-context dispatch through the capability ladder; one packet per reviewer.
|
|
79
|
+
- No author context, sibling findings, severity coaching, or plan justification.
|
|
80
|
+
- Feature scope is `touched-files.md` plus the frozen diff.
|
|
81
|
+
- Await every required batch before any write or verdict. Never background/detach.
|
|
128
82
|
|
|
129
|
-
|
|
130
|
-
- skipped → `devrites-engine footprint log <slug> skip devrites-<x>-reviewer` # e.g. `skip devrites-frontend-reviewer`: no UI in the diff
|
|
83
|
+
## Account for every reviewer
|
|
131
84
|
|
|
132
|
-
|
|
85
|
+
Log exact agent names as decisions are made:
|
|
133
86
|
|
|
134
87
|
```bash
|
|
135
|
-
devrites-engine footprint
|
|
88
|
+
devrites-engine footprint log <slug> reviewer devrites-<x>-reviewer
|
|
89
|
+
devrites-engine footprint log <slug> skip devrites-<x>-reviewer
|
|
90
|
+
devrites-engine footprint roster <slug>
|
|
136
91
|
```
|
|
137
92
|
|
|
138
|
-
`rc=3
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
93
|
+
`roster` rc=3 means an unaccounted reviewer: dispatch or record why it does not apply.
|
|
94
|
+
rc=1 means an always-on skip; this is valid only for an unchanged-candidate carry-forward
|
|
95
|
+
or the explicit independence fallback in
|
|
96
|
+
[`../../rite-seal/reference/risk-and-rollback.md`](../../rite-seal/reference/risk-and-rollback.md).
|
|
142
97
|
|
|
143
98
|
## Reconciliation
|
|
144
99
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
by declaring no `model:` in the agent definition (see
|
|
157
|
-
[`model-tiers.md`](model-tiers.md)). Adversarial review is exactly where a cheaper model costs the
|
|
158
|
-
most: a missed Critical is far more expensive than the tokens saved. Do not downgrade a reviewer to
|
|
159
|
-
save cost. Extraction-tier savings belong to scouts (archive-search, footprint), not to the panel.
|
|
160
|
-
|
|
161
|
-
## Fallback
|
|
162
|
-
|
|
163
|
-
If the harness has **no subagent primitive at all** (neither Claude's `Task` nor Codex's
|
|
164
|
-
`spawn_agent`: an absent tool on one harness while the other's equivalent exists does NOT
|
|
165
|
-
qualify), the caller runs the relevant subagent discipline **inline** in its own context and flags the result as a fallback (not an independent review). The seal weighs the fallback differently: see [`../../rite-seal/reference/risk-and-rollback.md`](../../rite-seal/reference/risk-and-rollback.md). This is the [`model-tiers.md`](model-tiers.md) degradation rule applied to the review panel: no subagent primitive → run inline under the same discipline and budget.
|
|
100
|
+
1. Preserve each valid report verbatim under `## <axis>` in `review.md`/`seal.md`.
|
|
101
|
+
2. Surface contradictions explicitly; the root decides them.
|
|
102
|
+
3. Keep the shared five-label scale. The simplifier's Suggestion/Nit/FYI subset is valid.
|
|
103
|
+
4. Resolve every `CANNOT-VERIFY` before the gate or retain it as a gap.
|
|
104
|
+
5. Add a deduped roll-up only after the verbatim record. Mark matching `file:line`
|
|
105
|
+
findings from two or more axes as consensus; do not hide lone findings.
|
|
106
|
+
6. Apply the caller's gate; do not invent a composite score.
|
|
107
|
+
|
|
108
|
+
Every panel reviewer runs at the ceiling or inherited tier. If the named role is
|
|
109
|
+
unavailable, use the universal ladder. Record an inline fallback as non-independent
|
|
110
|
+
under the seal risk rule, never as a fresh-context pass.
|
|
@@ -9,7 +9,14 @@ Before the final reply, persist the phase event, then render the deterministic
|
|
|
9
9
|
progress chrome:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
devrites-engine timeline log
|
|
12
|
+
devrites-engine timeline log run-finished \
|
|
13
|
+
--slug "$(cat .devrites/ACTIVE 2>/dev/null)" \
|
|
14
|
+
--outcome "<passed|blocked>" \
|
|
15
|
+
--execution-mode named \
|
|
16
|
+
--guard-strength n/a \
|
|
17
|
+
--reason-id "<stable DRV-* reason for the result>" \
|
|
18
|
+
--host "<claude|codex>" \
|
|
19
|
+
--evidence "<project-relative primary artifact>"
|
|
13
20
|
devrites-engine budget
|
|
14
21
|
devrites-engine progress
|
|
15
22
|
```
|
|
@@ -1,61 +1,44 @@
|
|
|
1
1
|
# DevRites rules
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
the standards the DevRites workflow holds code to: quality, safety, testing, and review
|
|
5
|
-
discipline that apply in any language.
|
|
3
|
+
These stack-agnostic rules ship under `.agents/skills/devrites-lib/reference/standards/`. Project-specific conventions win where they exist.
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
Project-specific conventions always win where they exist (DevRites reads the codebase and
|
|
9
|
-
prefers what's already there).
|
|
5
|
+
## Loading model
|
|
10
6
|
|
|
11
|
-
|
|
7
|
+
Every workspace-operating `rite-*` skill reads [`core.md`](core.md) first. Load the smallest topic file needed for the current step; each file owns its full rule.
|
|
12
8
|
|
|
13
|
-
|
|
14
|
-
skill Reads `.agents/skills/devrites-lib/reference/standards/core.md` as its first step;
|
|
15
|
-
the remaining rule files load on demand by the phase that needs them.
|
|
16
|
-
|
|
17
|
-
### Always-on (read by each `rite-*` skill as step 0)
|
|
18
|
-
|
|
19
|
-
| Rule | Covers |
|
|
9
|
+
| Rule | Load when |
|
|
20
10
|
|---|---|
|
|
21
|
-
| `core.md` |
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
|
26
|
-
|
|
27
|
-
| `
|
|
28
|
-
| `
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
31
|
-
| `
|
|
32
|
-
| `
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
37
|
-
| `
|
|
38
|
-
| `
|
|
39
|
-
| `
|
|
40
|
-
| `
|
|
41
|
-
| `
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
| `
|
|
48
|
-
| `
|
|
49
|
-
| `
|
|
50
|
-
| `
|
|
51
|
-
| `
|
|
52
|
-
| `
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
| `test-proof-checklist.md` | Proof-quality checklist for tests and evidence. | `$rite-prove`, `$rite-seal`. |
|
|
56
|
-
| `browser-proof-checklist.md` | Browser/UI proof checklist. | UI features in `$rite-prove`, `$rite-polish`, `$rite-seal`. |
|
|
57
|
-
| `security-checklist.md` | Security review checklist. | Auth/input/data/integration changes. |
|
|
58
|
-
|
|
59
|
-
How they're used: DevRites skills follow these rules; you and Claude can reference them
|
|
60
|
-
directly. They are guidance, not enforced gates: the enforced gates live in the
|
|
61
|
-
workflow skills (Spec Drift Guard, readiness gates, the seal).
|
|
11
|
+
| `core.md` | Every workflow phase: operating, persistence, evidence, and precedence rules. |
|
|
12
|
+
| `coding-style.md` | Writing or simplifying code. |
|
|
13
|
+
| `prose-style.md` | Writing prose artifacts or user replies. |
|
|
14
|
+
| `error-handling.md` | Adding or reviewing failure paths. |
|
|
15
|
+
| `testing.md` | Designing tests or judging proof quality. |
|
|
16
|
+
| `spec-grammar.md` | Structuring high-risk behavioral requirements or capability deltas. |
|
|
17
|
+
| `code-review.md` | Reviewing a change or sealing review findings. |
|
|
18
|
+
| `edge-case-trace.md` | Sweeping branches, boundaries, fixed-set siblings, or deletion contracts. |
|
|
19
|
+
| `security.md` | Handling input, auth, data, secrets, dependencies, or integrations. |
|
|
20
|
+
| `performance.md` | A measured performance concern is in scope. |
|
|
21
|
+
| `observability.md` | A changed runtime path must be diagnosed in production. |
|
|
22
|
+
| `developer-experience.md` | A public API, CLI, SDK, webhook, config, error, or getting-started surface changes. |
|
|
23
|
+
| `patterns.md` | Choosing or simplifying architecture. |
|
|
24
|
+
| `git-workflow.md` | Preparing commits, branches, tags, or changelog entries. |
|
|
25
|
+
| `hooks.md` | Creating or changing repository hooks. |
|
|
26
|
+
| `ci-cd.md` | Creating or changing a build/deploy pipeline. |
|
|
27
|
+
| `documentation.md` | Behavior, commands, contracts, or durable decisions change. |
|
|
28
|
+
| `elicitation.md` | Temper or Vet needs a sharper reasoning move for one section. |
|
|
29
|
+
| `development-workflow.md` | Planning batch size, integration, or the standing done bar. |
|
|
30
|
+
| `principles.md` | Authoring or checking project invariants and approved exceptions. |
|
|
31
|
+
| `deprecation.md` | Removing, replacing, or migrating behavior, code, APIs, or data. |
|
|
32
|
+
| `agents.md` | Dispatching, awaiting, validating, or reconciling fresh-context agents. |
|
|
33
|
+
| `context-hygiene.md` | Choosing `/clear`, `/compact`, or a handoff. |
|
|
34
|
+
| `anti-patterns.md` | A pack-wide rationalization or red flag appears. |
|
|
35
|
+
| `afk-hitl.md` | A pause, question, resume, or AFK decision is possible. |
|
|
36
|
+
| `tooling.md` | Structural lookup, current external facts, or architecture memory is needed. |
|
|
37
|
+
| `skill-authoring.md` | Creating, editing, routing, evaluating, or pruning a DevRites skill. |
|
|
38
|
+
| `definition-of-done.md` | Prove, Seal, Ship, or Quick must decide whether work is finished. |
|
|
39
|
+
| `review-checklist.md` | A compact review pass/fail sweep is enough. |
|
|
40
|
+
| `test-proof-checklist.md` | Test and evidence quality needs a compact sweep. |
|
|
41
|
+
| `browser-proof-checklist.md` | UI behavior needs browser proof. |
|
|
42
|
+
| `security-checklist.md` | Auth, input, data, or integration work needs a compact security sweep. |
|
|
43
|
+
|
|
44
|
+
These files guide judgment. Workflow skills and engine gates own enforcement.
|