devrites 3.0.7 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +82 -50
- package/SECURITY.md +31 -29
- package/docs/adr/0001-go-engine-as-control-plane.md +1 -1
- package/docs/adr/0002-dual-host-harness.md +1 -1
- package/docs/adr/0004-state-schema-phases-sections.md +1 -2
- package/docs/adr/0006-clock-seam-and-engine-ci-gates.md +3 -4
- package/docs/adr/0009-prebuild-decision-coverage-and-readiness.md +67 -0
- package/docs/adr/0010-agent-first-fresh-context-orchestration.md +71 -0
- package/docs/adr/0011-define-plan-transition-rights.md +28 -0
- package/docs/adr/0012-semantic-workspace-upgrades.md +77 -0
- package/docs/adr/README.md +4 -0
- package/docs/agents/triage-labels.md +7 -7
- package/docs/architecture.md +179 -141
- package/docs/cli.md +47 -12
- package/docs/command-map.md +61 -38
- package/docs/engine/agent-contract.md +92 -15
- package/docs/engine/commands.md +248 -72
- package/docs/engine/state-schema.md +52 -23
- package/docs/engine/workspace-schema.md +103 -15
- package/docs/extensions.md +1 -1
- package/docs/flow.md +86 -51
- package/docs/harness-compliance.md +29 -5
- package/docs/orchestration.md +107 -79
- package/docs/quick-reference.md +11 -3
- package/docs/release.md +4 -3
- package/docs/skills.md +67 -38
- package/docs/usage.md +84 -39
- package/engine/cmd/releasepack/main.go +219 -0
- package/engine/cmd/releasepack/main_test.go +170 -0
- package/engine/commands.go +170 -23
- package/engine/git_guard.go +187 -0
- package/engine/git_guard_test.go +283 -0
- package/engine/hookpolicy.go +53 -55
- package/engine/hookpolicy_test.go +91 -1
- package/engine/hooks.go +296 -75
- package/engine/hooks_events_test.go +276 -6
- package/engine/hooks_workspace.go +640 -159
- package/engine/internal/devritespaths/paths.go +65 -10
- package/engine/internal/devritespaths/paths_test.go +110 -0
- package/engine/internal/doctor/doctor.go +153 -23
- package/engine/internal/doctor/doctor_test.go +74 -0
- package/engine/internal/forge/forge.go +940 -0
- package/engine/internal/forge/forge_test.go +576 -0
- package/engine/internal/forge/git.go +245 -0
- package/engine/internal/forge/liveness_unix.go +48 -0
- package/engine/internal/forge/liveness_windows.go +67 -0
- package/engine/internal/forge/manifest.go +402 -0
- package/engine/internal/gate/gate.go +90 -71
- package/engine/internal/gate/gate_test.go +71 -2
- package/engine/internal/harness/compliance.go +18 -24
- package/engine/internal/harness/harness.go +37 -44
- package/engine/internal/harness/harness_test.go +21 -5
- package/engine/internal/install/install.go +486 -38
- package/engine/internal/install/install_test.go +383 -10
- package/engine/internal/iohooks/iohooks.go +350 -59
- package/engine/internal/iohooks/iohooks_test.go +421 -1
- package/engine/internal/lib/buildreadiness.go +43 -18
- package/engine/internal/lib/clarifyreturn.go +91 -0
- package/engine/internal/lib/clarifyreturn_test.go +123 -0
- package/engine/internal/lib/context.go +54 -15
- package/engine/internal/lib/cursor_compat_test.go +8 -0
- package/engine/internal/lib/extensions.go +2 -3
- package/engine/internal/lib/gitauthority.go +601 -0
- package/engine/internal/lib/gitauthority_test.go +346 -0
- package/engine/internal/lib/jsonout.go +25 -11
- package/engine/internal/lib/jsonout_test.go +16 -0
- package/engine/internal/lib/lanes.go +14 -8
- package/engine/internal/lib/observability_test.go +358 -0
- package/engine/internal/lib/packageexistence.go +151 -35
- package/engine/internal/lib/packageexistence_test.go +163 -0
- package/engine/internal/lib/progress.go +11 -9
- package/engine/internal/lib/provenance.go +462 -0
- package/engine/internal/lib/provenance_test.go +154 -0
- package/engine/internal/lib/readiness_contract.json +118 -0
- package/engine/internal/lib/readinessartifact.go +533 -0
- package/engine/internal/lib/readinessartifact_test.go +422 -0
- package/engine/internal/lib/reconcile.go +712 -88
- package/engine/internal/lib/reconcile_test.go +335 -16
- package/engine/internal/lib/recoveryattempts.go +298 -0
- package/engine/internal/lib/recoveryattempts_test.go +215 -0
- package/engine/internal/lib/resolve.go +23 -19
- package/engine/internal/lib/runbook_context_test.go +20 -0
- package/engine/internal/lib/session.go +701 -9
- package/engine/internal/lib/session_test.go +80 -13
- package/engine/internal/lib/testintegrity.go +33 -37
- package/engine/internal/lib/testintegrity_test.go +63 -1
- package/engine/internal/migrate/migrate.go +81 -1
- package/engine/internal/migrate/migrate_test.go +22 -1
- package/engine/internal/reason/reason.go +180 -0
- package/engine/internal/reason/reason_test.go +35 -0
- package/engine/internal/rootfacts/facts.go +466 -0
- package/engine/internal/rootfacts/facts_test.go +306 -0
- package/engine/internal/safepath/safepath.go +55 -0
- package/engine/internal/safepath/safepath_test.go +69 -0
- package/engine/internal/safepath/safepath_windows_test.go +26 -0
- package/engine/internal/state/clarify_transition.go +165 -0
- package/engine/internal/state/clarify_transition_test.go +130 -0
- package/engine/internal/state/cmd/workflowmanifest/main.go +12 -8
- package/engine/internal/state/cursor.go +58 -0
- package/engine/internal/state/cursor_test.go +42 -1
- package/engine/internal/state/feature.go +35 -48
- package/engine/internal/state/schema.go +90 -37
- package/engine/internal/state/snapshot.go +18 -2
- package/engine/internal/state/state_test.go +187 -7
- package/engine/internal/state/status.go +48 -11
- package/engine/internal/state/workflow_manifest.json +231 -50
- package/engine/internal/toolpolicy/classifier.go +533 -0
- package/engine/internal/toolpolicy/classifier_test.go +424 -0
- package/engine/internal/toolpolicy/git.go +616 -0
- package/engine/internal/toolpolicy/scanner.go +382 -0
- package/engine/main.go +160 -77
- package/engine/observability_cli_test.go +52 -0
- package/engine/root_routing_test.go +277 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=legacycontract.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=noclarify.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=novet.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=stalevet.golden +1 -0
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=vetnotready.golden +1 -0
- package/engine/testdata/golden/TestParityProgress/arg=allbuilt.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=done.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=mid.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=nophase.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=noslice.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=plan.golden +1 -1
- package/engine/testdata/golden/TestParityProgress/arg=seal.golden +1 -1
- package/engine/testdata/golden/TestParityReconcile/check-clean.golden +1 -1
- package/engine/testdata/golden/TestParityReconcile/inline-fallback.golden +1 -0
- package/engine/testdata/golden/TestParityReconcile/snapshot-no-allowlist.golden +1 -0
- package/engine/testdata/golden/TestParityWrightScope/devrites-edit-denied.golden +2 -0
- package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +1 -1
- package/engine/tests/adr_0011_define_plan_test.go +30 -0
- package/engine/tests/budget_test.go +19 -8
- package/engine/tests/concurrency_cli_test.go +7 -1
- package/engine/tests/doctor_cli_test.go +148 -2
- package/engine/tests/forge_cli_test.go +463 -0
- package/engine/tests/gate_test.go +63 -8
- package/engine/tests/hook_test.go +260 -8
- package/engine/tests/hooks_io_test.go +94 -3
- package/engine/tests/json_contract_test.go +127 -2
- package/engine/tests/migrate_cli_test.go +2 -2
- package/engine/tests/parity_buildreadiness_test.go +167 -10
- package/engine/tests/parity_learnings_test.go +16 -17
- package/engine/tests/parity_reconcile_test.go +20 -17
- package/engine/tests/parity_resolve_test.go +12 -11
- package/engine/tests/parity_test.go +21 -17
- package/pack/.claude/agents/devrites-code-reviewer.md +62 -48
- package/pack/.claude/agents/devrites-devex-reviewer.md +69 -53
- package/pack/.claude/agents/devrites-doubt-reviewer.md +29 -22
- package/pack/.claude/agents/devrites-evidence-scout.md +69 -0
- package/pack/.claude/agents/devrites-forge-judge.md +74 -61
- package/pack/.claude/agents/devrites-frontend-reviewer.md +48 -39
- package/pack/.claude/agents/devrites-performance-reviewer.md +49 -40
- package/pack/.claude/agents/devrites-plan-drafter.md +73 -0
- package/pack/.claude/agents/devrites-plan-reviewer.md +80 -47
- package/pack/.claude/agents/devrites-proof-runner.md +74 -0
- package/pack/.claude/agents/devrites-retrospector.md +48 -45
- package/pack/.claude/agents/devrites-security-auditor.md +46 -36
- package/pack/.claude/agents/devrites-simplifier-reviewer.md +50 -46
- package/pack/.claude/agents/devrites-slice-wright.md +153 -165
- package/pack/.claude/agents/devrites-spec-reviewer.md +34 -32
- package/pack/.claude/agents/devrites-strategy-reviewer.md +63 -34
- package/pack/.claude/agents/devrites-test-analyst.md +40 -30
- package/pack/.claude/agents/devrites-upgrade-planner.md +100 -0
- package/pack/.claude/settings.json +2 -1
- package/pack/.claude/skills/devrites-audit/SKILL.md +40 -61
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +24 -13
- package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
- package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
- package/pack/.claude/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
- package/pack/.claude/skills/devrites-doubt/SKILL.md +25 -17
- package/pack/.claude/skills/devrites-interview/SKILL.md +53 -52
- package/pack/.claude/skills/devrites-lib/SKILL.md +12 -9
- package/pack/.claude/skills/devrites-lib/reference/intent-map.md +4 -2
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
- package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +8 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/README.md +38 -55
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +200 -190
- package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
- package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +16 -52
- package/pack/.claude/skills/devrites-lib/reference/standards/coding-style.md +2 -10
- package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +23 -18
- package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +17 -57
- package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
- package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
- package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +3 -14
- package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +9 -25
- package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +0 -9
- package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +1 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/security.md +17 -7
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +1 -27
- package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +46 -50
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +40 -10
- package/pack/.claude/skills/devrites-source-driven/SKILL.md +23 -22
- package/pack/.claude/skills/rite/SKILL.md +10 -6
- package/pack/.claude/skills/rite/reference/menu.md +13 -7
- package/pack/.claude/skills/rite-adopt/SKILL.md +33 -37
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +33 -28
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +21 -21
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
- package/pack/.claude/skills/rite-build/SKILL.md +35 -30
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +41 -39
- package/pack/.claude/skills/rite-build/reference/evidence-standard.md +10 -0
- package/pack/.claude/skills/rite-build/reference/forge.md +186 -156
- package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +4 -3
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +96 -175
- package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +10 -4
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +129 -134
- package/pack/.claude/skills/rite-clarify/SKILL.md +90 -0
- package/pack/.claude/skills/rite-clarify/reference/decision-coverage.md +61 -0
- package/pack/.claude/skills/rite-converge/SKILL.md +35 -25
- package/pack/.claude/skills/rite-define/SKILL.md +58 -32
- package/pack/.claude/skills/rite-define/reference/gates.md +16 -15
- package/pack/.claude/skills/rite-define/reference/plan-template.md +18 -8
- package/pack/.claude/skills/rite-frame/reference/failure-modes.md +22 -24
- package/pack/.claude/skills/rite-plan/SKILL.md +47 -16
- package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +4 -0
- package/pack/.claude/skills/rite-polish/SKILL.md +27 -23
- package/pack/.claude/skills/rite-prototype/SKILL.md +25 -26
- package/pack/.claude/skills/rite-prove/SKILL.md +27 -17
- package/pack/.claude/skills/rite-resolve/SKILL.md +12 -11
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +3 -0
- package/pack/.claude/skills/rite-review/SKILL.md +37 -28
- package/pack/.claude/skills/rite-seal/reference/phase-contract.md +27 -92
- package/pack/.claude/skills/rite-seal/reference/risk-and-rollback.md +13 -0
- package/pack/.claude/skills/rite-ship/reference/design-memory.md +31 -36
- package/pack/.claude/skills/rite-spec/SKILL.md +84 -135
- package/pack/.claude/skills/rite-spec/reference/investigation.md +37 -33
- package/pack/.claude/skills/rite-spec/reference/question-protocol.md +6 -2
- package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +25 -24
- package/pack/.claude/skills/rite-spec/reference/spec-template.md +9 -2
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +13 -3
- package/pack/.claude/skills/rite-temper/SKILL.md +62 -47
- package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +24 -22
- package/pack/.claude/skills/rite-upgrade/SKILL.md +125 -0
- package/pack/.claude/skills/rite-vet/SKILL.md +114 -113
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +50 -9
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +39 -37
- package/pack/generated/claude/agents/devrites-code-reviewer.md +62 -48
- package/pack/generated/claude/agents/devrites-devex-reviewer.md +69 -53
- package/pack/generated/claude/agents/devrites-doubt-reviewer.md +29 -22
- package/pack/generated/claude/agents/devrites-evidence-scout.md +69 -0
- package/pack/generated/claude/agents/devrites-forge-judge.md +74 -61
- package/pack/generated/claude/agents/devrites-frontend-reviewer.md +48 -39
- package/pack/generated/claude/agents/devrites-performance-reviewer.md +49 -40
- package/pack/generated/claude/agents/devrites-plan-drafter.md +73 -0
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +80 -47
- package/pack/generated/claude/agents/devrites-proof-runner.md +74 -0
- package/pack/generated/claude/agents/devrites-retrospector.md +48 -45
- package/pack/generated/claude/agents/devrites-security-auditor.md +46 -36
- package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +50 -46
- package/pack/generated/claude/agents/devrites-slice-wright.md +153 -165
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +34 -32
- package/pack/generated/claude/agents/devrites-strategy-reviewer.md +63 -34
- package/pack/generated/claude/agents/devrites-test-analyst.md +40 -30
- package/pack/generated/claude/agents/devrites-upgrade-planner.md +100 -0
- package/pack/generated/claude/settings.json +2 -1
- package/pack/generated/claude/skills/devrites-audit/SKILL.md +40 -61
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +24 -13
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +25 -17
- package/pack/generated/claude/skills/devrites-interview/SKILL.md +53 -52
- package/pack/generated/claude/skills/devrites-lib/SKILL.md +12 -9
- package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +4 -2
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
- package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +8 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +38 -55
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +200 -190
- package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
- package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +16 -52
- package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +2 -10
- package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +23 -18
- package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +17 -57
- package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
- package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
- package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +3 -14
- package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +9 -25
- package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +0 -9
- package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +1 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +17 -7
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +1 -27
- package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +46 -50
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +40 -10
- package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +23 -22
- package/pack/generated/claude/skills/rite/SKILL.md +10 -6
- package/pack/generated/claude/skills/rite/reference/menu.md +13 -7
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +33 -37
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +33 -28
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +21 -21
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
- package/pack/generated/claude/skills/rite-build/SKILL.md +35 -30
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +41 -39
- package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +10 -0
- package/pack/generated/claude/skills/rite-build/reference/forge.md +186 -156
- package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +4 -3
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +96 -175
- package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +10 -4
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +129 -134
- package/pack/generated/claude/skills/rite-clarify/SKILL.md +90 -0
- package/pack/generated/claude/skills/rite-clarify/reference/decision-coverage.md +61 -0
- package/pack/generated/claude/skills/rite-converge/SKILL.md +35 -25
- package/pack/generated/claude/skills/rite-define/SKILL.md +58 -32
- package/pack/generated/claude/skills/rite-define/reference/gates.md +16 -15
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +18 -8
- package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +22 -24
- package/pack/generated/claude/skills/rite-plan/SKILL.md +47 -16
- package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +4 -0
- package/pack/generated/claude/skills/rite-polish/SKILL.md +27 -23
- package/pack/generated/claude/skills/rite-prototype/SKILL.md +25 -26
- package/pack/generated/claude/skills/rite-prove/SKILL.md +27 -17
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +12 -11
- package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +3 -0
- package/pack/generated/claude/skills/rite-review/SKILL.md +37 -28
- package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +27 -92
- package/pack/generated/claude/skills/rite-seal/reference/risk-and-rollback.md +13 -0
- package/pack/generated/claude/skills/rite-ship/reference/design-memory.md +31 -36
- package/pack/generated/claude/skills/rite-spec/SKILL.md +84 -135
- package/pack/generated/claude/skills/rite-spec/reference/investigation.md +37 -33
- package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +6 -2
- package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +25 -24
- package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +9 -2
- package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +13 -3
- package/pack/generated/claude/skills/rite-temper/SKILL.md +62 -47
- package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +24 -22
- package/pack/generated/claude/skills/rite-upgrade/SKILL.md +125 -0
- package/pack/generated/claude/skills/rite-vet/SKILL.md +114 -113
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +50 -9
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +39 -37
- package/pack/generated/codex/AGENTS.md +5 -2
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +69 -47
- package/pack/generated/codex/agents/devrites-devex-reviewer.toml +75 -51
- package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +35 -20
- package/pack/generated/codex/agents/devrites-evidence-scout.toml +75 -0
- package/pack/generated/codex/agents/devrites-forge-judge.toml +80 -59
- package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +54 -37
- package/pack/generated/codex/agents/devrites-performance-reviewer.toml +55 -38
- package/pack/generated/codex/agents/devrites-plan-drafter.toml +79 -0
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +82 -47
- package/pack/generated/codex/agents/devrites-proof-runner.toml +80 -0
- package/pack/generated/codex/agents/devrites-retrospector.toml +54 -43
- package/pack/generated/codex/agents/devrites-security-auditor.toml +53 -35
- package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +56 -44
- package/pack/generated/codex/agents/devrites-slice-wright.toml +159 -163
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +40 -30
- package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +65 -34
- package/pack/generated/codex/agents/devrites-test-analyst.toml +46 -28
- package/pack/generated/codex/agents/devrites-upgrade-planner.toml +106 -0
- package/pack/generated/codex/hooks.json +4 -14
- package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-audit/SKILL.md +47 -64
- package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +31 -16
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +32 -20
- package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-interview/SKILL.md +60 -55
- package/pack/generated/codex/skills/devrites-lib/SKILL.md +19 -12
- package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +4 -2
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
- package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +8 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +38 -55
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +200 -190
- package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
- package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +16 -52
- package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +2 -10
- package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +23 -18
- package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +17 -57
- package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
- package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
- package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +3 -14
- package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +9 -25
- package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +0 -9
- package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +1 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +17 -7
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +1 -27
- package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +46 -50
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +40 -10
- package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +7 -3
- package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +29 -24
- package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite/SKILL.md +21 -13
- package/pack/generated/codex/skills/rite/reference/menu.md +13 -7
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +40 -40
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +40 -31
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +21 -21
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
- package/pack/generated/codex/skills/rite-build/SKILL.md +42 -33
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +41 -39
- package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +10 -0
- package/pack/generated/codex/skills/rite-build/reference/forge.md +186 -156
- package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +4 -3
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +96 -175
- package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +10 -4
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +129 -134
- package/pack/generated/codex/skills/rite-clarify/SKILL.md +106 -0
- package/pack/generated/codex/skills/rite-clarify/reference/decision-coverage.md +61 -0
- package/pack/generated/codex/skills/rite-converge/SKILL.md +42 -28
- package/pack/generated/codex/skills/rite-customize/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-define/SKILL.md +65 -35
- package/pack/generated/codex/skills/rite-define/reference/gates.md +16 -15
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +18 -8
- package/pack/generated/codex/skills/rite-doctor/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-dogfood/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-explain/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-frame/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +22 -24
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-learn/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-plan/SKILL.md +54 -19
- package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +5 -1
- package/pack/generated/codex/skills/rite-polish/SKILL.md +34 -26
- package/pack/generated/codex/skills/rite-pov/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-prototype/SKILL.md +32 -29
- package/pack/generated/codex/skills/rite-prove/SKILL.md +34 -20
- package/pack/generated/codex/skills/rite-quick/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +19 -14
- package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +3 -0
- package/pack/generated/codex/skills/rite-review/SKILL.md +44 -31
- package/pack/generated/codex/skills/rite-seal/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +27 -92
- package/pack/generated/codex/skills/rite-seal/reference/risk-and-rollback.md +13 -0
- package/pack/generated/codex/skills/rite-ship/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-ship/reference/design-memory.md +31 -36
- package/pack/generated/codex/skills/rite-spec/SKILL.md +91 -138
- package/pack/generated/codex/skills/rite-spec/reference/investigation.md +37 -33
- package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +6 -2
- package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +25 -24
- package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +9 -2
- package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +13 -3
- package/pack/generated/codex/skills/rite-status/SKILL.md +7 -3
- package/pack/generated/codex/skills/rite-temper/SKILL.md +69 -50
- package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +24 -22
- package/pack/generated/codex/skills/rite-upgrade/SKILL.md +141 -0
- package/pack/generated/codex/skills/rite-upgrade/agents/openai.yaml +2 -0
- package/pack/generated/codex/skills/rite-vet/SKILL.md +121 -116
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +50 -9
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +40 -38
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +7 -3
- package/package.json +1 -1
- package/scripts/build-release-tarball.sh +32 -15
- package/scripts/check-authority-drift.py +125 -0
- package/scripts/check-instruction-size-baseline.mjs +19 -11
- package/scripts/check-invocation-integrity.py +2 -0
- package/scripts/codex-generate.sh +69 -33
- package/scripts/grade-feature.sh +121 -40
- package/scripts/live-hosts/agent-result.schema.json +230 -0
- package/scripts/live-hosts/claude.sh +87 -0
- package/scripts/live-hosts/codex.sh +81 -0
- package/scripts/live-hosts/common.sh +113 -0
- package/scripts/live-hosts/fake-host.py +264 -0
- package/scripts/live-hosts/host-transport.py +287 -0
- package/scripts/release-check.sh +5 -1
- package/scripts/run-agent-contract-evals.py +1380 -0
- package/scripts/run-behavioral-evals.sh +24 -30
- package/scripts/run-evals.sh +1 -5
- package/scripts/run-live-behavioral-evals.py +1274 -144
- package/scripts/run-outcome-evals.sh +445 -88
- package/scripts/run-tests.mjs +30 -2
- package/scripts/skills-inventory.mjs +1 -1
- package/scripts/validate-workflow-security.py +39 -20
- package/scripts/validate-workspace-schema.py +362 -10
- package/scripts/validate.sh +21 -15
- package/engine/testdata/golden/TestParityWrightScope/devrites-edit-allowed.golden +0 -1
- /package/engine/testdata/golden/{TestParityReconcile/check-no-claimed.golden → TestParityBuildReadiness/arg=clarifyopen.golden} +0 -0
|
@@ -1,27 +1,26 @@
|
|
|
1
|
-
# Spec-quality checklists
|
|
1
|
+
# Spec-quality checklists
|
|
2
2
|
|
|
3
|
-
Before
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Catching it now is a one-line spec edit; catching it at `$rite-prove` is a reslice.
|
|
3
|
+
Before `$rite-define`, check that each requirement is complete, unambiguous, and
|
|
4
|
+
measurable. These checklists evaluate the prose, not the implementation. For example,
|
|
5
|
+
"the banner is prominent" fails because "prominent" has no threshold. Fixing that in
|
|
6
|
+
the spec avoids a later reslice.
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
`$rite-
|
|
8
|
+
These are not implementation tests. Ask "is *export* defined for an empty dataset?", not
|
|
9
|
+
"does `exportCsv()` handle `[]`?". Implementation checks belong to `$rite-vet` and
|
|
10
|
+
`$rite-prove`. These files never name a function, file, or library.
|
|
12
11
|
|
|
13
12
|
## Output: one file per requirement domain
|
|
14
13
|
|
|
15
|
-
Emit `.devrites/work/<slug>/checklists/<domain>.md`, one per domain the spec covers
|
|
16
|
-
a domain
|
|
17
|
-
`devrites-interview` dimension:
|
|
14
|
+
Emit `.devrites/work/<slug>/checklists/<domain>.md`, one per domain the spec covers.
|
|
15
|
+
Skip a domain marked "none". The domains match the interview taxonomy, so each gap maps
|
|
16
|
+
to a `devrites-interview` dimension:
|
|
18
17
|
|
|
19
18
|
| Domain file | Tests the prose of |
|
|
20
19
|
|---|---|
|
|
21
20
|
| `functional.md` | Functional requirements + scenarios: is each capability stated, bounded, testable? |
|
|
22
21
|
| `data-model.md` | Key entities / data model: shapes, fields, lifecycle, relationships (skip if "none"). |
|
|
23
22
|
| `interaction.md` | API / UI impact + UX states: every screen state and contract named (skip if no UI/API). |
|
|
24
|
-
| `non-functional.md` | Constraints, auth / data sensitivity, latency / scale / compatibility budgets. |
|
|
23
|
+
| `non-functional.md` | Constraints, auth / data sensitivity, latency / scale / compatibility budgets, human-only proof prerequisites. |
|
|
25
24
|
| `edge-cases.md` | Empty / boundary / invalid / concurrent / failure paths the requirements imply. |
|
|
26
25
|
|
|
27
26
|
## Each item: a question, a verdict, the line it interrogates
|
|
@@ -41,11 +40,11 @@ Verdict is `pass` / `fail` / `n/a`. A `fail` carries a severity:
|
|
|
41
40
|
- **CRITICAL:** the ambiguity would change the build or its acceptance: an unquantified
|
|
42
41
|
acceptance/success criterion, an incomplete enumeration in a requirement, an ambiguous data
|
|
43
42
|
shape, an undefined edge case on a stated flow, a contradictory pair of requirements.
|
|
44
|
-
- **minor:** vague but
|
|
43
|
+
- **minor:** vague but nonessential prose. Record it; it does not block.
|
|
45
44
|
|
|
46
|
-
##
|
|
45
|
+
## Question bank
|
|
47
46
|
|
|
48
|
-
Each question
|
|
47
|
+
Each question checks one requirement-prose failure mode:
|
|
49
48
|
- **Measurability:** every "good / fast / prominent / simple / secure" carries a number, a budget,
|
|
50
49
|
or a named reference. No adjective stands in for a threshold.
|
|
51
50
|
- **Completeness:** every enumeration is closed (no "etc."); every requirement with a precondition
|
|
@@ -56,18 +55,20 @@ Each question tests one of the failure modes of requirement prose:
|
|
|
56
55
|
- **Testability:** each acceptance criterion is binary and names (or clearly implies) its evidence.
|
|
57
56
|
A criterion only provable by reading code is a fail.
|
|
58
57
|
- **Consistency:** no requirement contradicts another, the data model, or a non-goal.
|
|
58
|
+
- **Non-functional:** each NFR names affected REQ/AC IDs or a bounded `global` scope;
|
|
59
|
+
human-only proof prerequisites name their owner.
|
|
59
60
|
|
|
60
|
-
##
|
|
61
|
+
## Readiness gate
|
|
61
62
|
|
|
62
|
-
The spec **Readiness gate**
|
|
63
|
+
The spec **Readiness gate** at the bottom of
|
|
64
|
+
[`spec-template.md`](spec-template.md) requires every
|
|
63
65
|
emitted `checklists/<domain>.md` must reach `Verdict: pass` (zero CRITICAL fails) before the gate
|
|
64
66
|
passes. Minor fails are logged, not blocking. A single open CRITICAL keeps the spec `Status: Draft`.
|
|
65
|
-
`$rite-define` reads the checklists at
|
|
66
|
-
|
|
67
|
+
`$rite-define` reads the checklists at step 0 and **hard-blocks while any CRITICAL is
|
|
68
|
+
unchecked**. A spec without checklists is not yet checked, so define stops and routes
|
|
69
|
+
back here.
|
|
67
70
|
|
|
68
71
|
## Discipline
|
|
69
|
-
- Score honestly.
|
|
70
|
-
spec-quality version of weakening a test to go green. It defeats the gate.
|
|
72
|
+
- Score honestly. Do not soften a checklist question to pass a weak spec.
|
|
71
73
|
- Don't pad. Five real questions that find one CRITICAL beat thirty rubber-stamped rows.
|
|
72
|
-
-
|
|
73
|
-
`$rite-vet`'s `test-plan.md`, not here.
|
|
74
|
+
- If a question needs a function name, it belongs in `$rite-vet`'s `test-plan.md`.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# `spec.md` template
|
|
2
2
|
|
|
3
3
|
Write the product contract: WHAT users get, WHY it matters, how success is
|
|
4
|
-
measured, and what is out of scope. Keep HOW in `plan.md`; put topology and
|
|
4
|
+
measured, and what is out of scope. Keep HOW in `plan.md`; put technical topology and
|
|
5
5
|
diagrams in `architecture.md` / `flows.md`; put coverage in `traceability.md`.
|
|
6
6
|
|
|
7
7
|
Rules:
|
|
8
8
|
|
|
9
9
|
1. Mark unknowns with `[NEEDS CLARIFICATION: <question>]`; blocking unknowns
|
|
10
|
-
stop `$rite-
|
|
10
|
+
stop `$rite-clarify`.
|
|
11
11
|
2. Use stable IDs: `REQ-001` for requirements and `AC-001` for acceptance.
|
|
12
12
|
3. Link to source artifacts instead of duplicating them.
|
|
13
13
|
4. Keep the file compact. If it exceeds the schema budget, add
|
|
@@ -84,11 +84,17 @@ Use `resolved/test`, `resolved/judgment`, `dismissed`, or `unresolved`.
|
|
|
84
84
|
- Does not own: <adjacent area>.
|
|
85
85
|
- Placement summary: <one-line module/layer summary>; full technical map lives in `architecture.md`.
|
|
86
86
|
|
|
87
|
+
## Coverage seed
|
|
88
|
+
- Actors/journeys/components: <material surfaces discovered while authoring>.
|
|
89
|
+
- States/data/contracts/integrations: <material boundaries discovered>.
|
|
90
|
+
- Operations/proof surfaces: <configuration, observability, rollout/rollback, evidence constraints>.
|
|
91
|
+
|
|
87
92
|
## References
|
|
88
93
|
- `brief.md` - request, objective, non-goals, success definition.
|
|
89
94
|
- `architecture.md` - technical placement and integration points.
|
|
90
95
|
- `flows.md` - diagrams when useful.
|
|
91
96
|
- `decisions.md` - ADR-style product/technical decisions.
|
|
97
|
+
- `decision-coverage.md` - topology scan and clarity verdict once `$rite-clarify` runs.
|
|
92
98
|
- `traceability.md` - AC/REQ coverage once `$rite-define` runs.
|
|
93
99
|
- `design-brief.md` - UI direction when UI is in scope.
|
|
94
100
|
|
|
@@ -107,4 +113,5 @@ Use `resolved/test`, `resolved/judgment`, `dismissed`, or `unresolved`.
|
|
|
107
113
|
- [ ] Non-goals and scope boundaries are explicit.
|
|
108
114
|
- [ ] Architecture/flows/decisions are linked out instead of duplicated here.
|
|
109
115
|
- [ ] UI work has `design-brief.md`; non-UI work states UI is out of scope.
|
|
116
|
+
- [ ] Coverage seed names the material surfaces `$rite-clarify` must scan.
|
|
110
117
|
```
|
|
@@ -19,9 +19,12 @@ Load that schema before creating or updating workspace artifacts.
|
|
|
19
19
|
decisions.md
|
|
20
20
|
assumptions.md
|
|
21
21
|
questions.md
|
|
22
|
+
decision-coverage.md # from $rite-clarify
|
|
22
23
|
plan.md # from $rite-define
|
|
23
24
|
tasks.md # from $rite-define
|
|
24
25
|
traceability.md # from $rite-define
|
|
26
|
+
eng-review.md # from $rite-vet
|
|
27
|
+
test-plan.md # from $rite-vet
|
|
25
28
|
state.md
|
|
26
29
|
evidence.md # from $rite-build or $rite-prove (proof.md alias supported)
|
|
27
30
|
browser-evidence.md # UI only
|
|
@@ -46,8 +49,10 @@ canonical files and preserves aliases rather than deleting old ones.
|
|
|
46
49
|
- `$rite-spec` creates the workspace map, `brief.md`, `spec.md`, `decisions.md`,
|
|
47
50
|
`assumptions.md`, `questions.md`, `state.md`, optional `references.md` /
|
|
48
51
|
`references/`, and optional `design-brief.md` for UI.
|
|
52
|
+
- `$rite-clarify` adds `decision-coverage.md`.
|
|
49
53
|
- `$rite-define` adds `architecture.md`, `plan.md`, `tasks.md`, and
|
|
50
54
|
`traceability.md`.
|
|
55
|
+
- `$rite-vet` adds `eng-review.md` and `test-plan.md`.
|
|
51
56
|
- Later phases add only the artifact they own. Do not create optional files as
|
|
52
57
|
empty placeholders; absence means the phase has not produced that artifact.
|
|
53
58
|
- Each artifact starts with a summary and links to deeper source files instead of
|
|
@@ -61,7 +66,7 @@ canonical files and preserves aliases rather than deleting old ones.
|
|
|
61
66
|
# <Feature> Workspace
|
|
62
67
|
phase: spec
|
|
63
68
|
status: running
|
|
64
|
-
next_action: $rite-
|
|
69
|
+
next_action: $rite-clarify after spec readiness passes
|
|
65
70
|
last_updated: <date>
|
|
66
71
|
|
|
67
72
|
## Artifact map
|
|
@@ -69,6 +74,7 @@ last_updated: <date>
|
|
|
69
74
|
| --- | --- |
|
|
70
75
|
| brief.md | Objective and bounds |
|
|
71
76
|
| spec.md | Product contract |
|
|
77
|
+
| decision-coverage.md | Clarification verdict; absent until $rite-clarify |
|
|
72
78
|
| architecture.md | Technical map; absent until $rite-define |
|
|
73
79
|
| plan.md | Technical approach; absent until $rite-define |
|
|
74
80
|
| tasks.md | Vertical slices; absent until $rite-define |
|
|
@@ -79,7 +85,8 @@ last_updated: <date>
|
|
|
79
85
|
| Phase / role | Read |
|
|
80
86
|
| --- | --- |
|
|
81
87
|
| Spec | brief.md, spec.md, questions.md |
|
|
82
|
-
|
|
|
88
|
+
| Clarify | spec.md, decisions.md, assumptions.md, questions.md |
|
|
89
|
+
| Build | state.md, decision-coverage.md, eng-review.md, test-plan.md, tasks.md, plan.md |
|
|
83
90
|
| Review | traceability.md, evidence.md, decisions.md |
|
|
84
91
|
|
|
85
92
|
## Blocking gates
|
|
@@ -100,6 +107,8 @@ None.
|
|
|
100
107
|
| slice_mode | none |
|
|
101
108
|
| risk | none |
|
|
102
109
|
| next_action | <single command + reason> |
|
|
110
|
+
| return_phase | <later phase; retrofit clarification only> |
|
|
111
|
+
| return_next_action | <saved command; retrofit clarification only> |
|
|
103
112
|
|
|
104
113
|
## Awaiting human
|
|
105
114
|
Only present when status is awaiting_human.
|
|
@@ -112,7 +121,8 @@ Only present when status is awaiting_human.
|
|
|
112
121
|
|
|
113
122
|
`state.md` is a compact cursor, not a history file. Put proof in `evidence.md`,
|
|
114
123
|
decisions in `decisions.md`, assumptions in `assumptions.md`, and drift in
|
|
115
|
-
`drift.md`.
|
|
124
|
+
`drift.md`. Omit both `return_*` rows outside a later-phase `$rite-clarify`
|
|
125
|
+
retrofit; `devrites-engine clarify-return` owns their atomic lifecycle.
|
|
116
126
|
|
|
117
127
|
## questions.md entry format
|
|
118
128
|
|
|
@@ -12,9 +12,13 @@ This is the Codex mirror of a DevRites skill. In Codex:
|
|
|
12
12
|
|
|
13
13
|
- Load DevRites engineering standards from `.agents/skills/devrites-lib/reference/standards/`. Read `.agents/skills/devrites-lib/reference/standards/core.md` before workflow work, then load the other `.agents/skills/devrites-lib/reference/standards/*.md` files exactly when this skill asks for them.
|
|
14
14
|
- Use the installed `devrites-engine` binary as the canonical runtime helper surface for orientation, gates, and state mutation.
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
15
|
+
- **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.
|
|
16
|
+
- 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`.
|
|
17
|
+
- 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.
|
|
18
|
+
- 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.
|
|
19
|
+
- 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.
|
|
20
|
+
- Wait for every required fresh-context dispatch before reconciling or advancing. A backgrounded or lost result is incomplete.
|
|
21
|
+
- 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.
|
|
18
22
|
- 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.
|
|
19
23
|
|
|
20
24
|
|
|
@@ -11,21 +11,23 @@ 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
|
-
# $rite-temper:
|
|
24
|
+
# $rite-temper: review scope and risk before planning
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
`$rite-autocomplete`. **Read the active workspace first**; if there's no readied
|
|
28
|
-
`spec.md`, tell the user to run `$rite-spec`.
|
|
26
|
+
Review a readied spec for outcome ambition, scope, pre-mortem risks, and unnecessary
|
|
27
|
+
solution surface. Fold accepted decisions into the canonical contract before
|
|
28
|
+
`$rite-define`. This step is optional for small work and skips low-stakes specs, but
|
|
29
|
+
`$rite-autocomplete` always invokes it. **Read the active workspace first**; if there
|
|
30
|
+
is no readied `spec.md`, tell the user to run `$rite-spec`.
|
|
29
31
|
|
|
30
32
|
## Rules consulted (read on demand from `.agents/skills/devrites-lib/reference/standards/`)
|
|
31
33
|
Pull on demand: `patterns.md` +
|
|
@@ -35,65 +37,70 @@ invent one), `documentation.md` (ADR-style `decisions.md` entries), `afk-hitl.md
|
|
|
35
37
|
that needs more than the default pre-mortem) selected by the section's risk).
|
|
36
38
|
|
|
37
39
|
## Operating rules
|
|
38
|
-
- **
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
written into `spec.md` as a recorded, confirmable decision. Expansion is **opt-in** (HITL
|
|
40
|
+
- **Raise outcome ambition without expanding the solution unnecessarily.** Solve the
|
|
41
|
+
underlying problem without adding speculative capability or abstraction.
|
|
42
|
+
- **Route every scope change through the Spec Drift Guard.** A scope change takes effect
|
|
43
|
+
only when `spec.md` records the confirmed decision. Expansion is **opt-in** (HITL
|
|
43
44
|
confirm; AFK pauses: see autocomplete policy). Nothing auto-grows into the build.
|
|
44
|
-
- **
|
|
45
|
-
|
|
45
|
+
- **Apply maximum caution to hard-to-reverse changes.** Auth, migration, public API, and
|
|
46
|
+
data-model changes always pause under the irreversible-risk list.
|
|
46
47
|
- **Honest verdict.** Never round "needs work" up to "ready"; record every scope call's *why*.
|
|
48
|
+
- **Search before asking.** Apply `afk-hitl.md` decision ownership; only human-owned calls
|
|
49
|
+
enter the interactive walk.
|
|
47
50
|
- **You write; the reviewer judges.** You are the single canonical writer (`strategy.md` +
|
|
48
51
|
the spec edits); the reviewer agent is read-only.
|
|
49
|
-
- **
|
|
50
|
-
significant specs: exactly where vague requirement prose is most expensive. Before hardening,
|
|
52
|
+
- **Require spec-quality checklists for significant features.** Before hardening,
|
|
51
53
|
confirm `checklists/<domain>.md` exist and pass (`rite-spec/reference/spec-checklists.md`); a
|
|
52
54
|
scope expansion you fold in **adds its own** rows (new Success/Acceptance criteria get
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
checklist rows too). A folded expansion with an unquantified criterion is a CRITICAL
|
|
56
|
+
failure that reopens the readiness gate.
|
|
55
57
|
|
|
56
58
|
## Workflow
|
|
57
59
|
0. **Read `.agents/skills/devrites-lib/reference/standards/core.md`**, then run
|
|
58
60
|
`devrites-engine preamble` for deterministic workspace orientation.
|
|
59
|
-
Then read the workspace: `spec.md` (+ `decisions.md`,
|
|
61
|
+
Then read the workspace: `spec.md`, `decision-coverage.md` (+ `decisions.md`,
|
|
60
62
|
`assumptions.md`, `design-brief.md` if UI), `state.md`. Require `Spec gate: passed`: else
|
|
61
|
-
STOP → `$rite-spec`.
|
|
63
|
+
STOP → `$rite-spec`. Require `Decision coverage: CLEAR`: else STOP →
|
|
64
|
+
`$rite-clarify`. If a plan already exists, scope changes route through `$rite-plan
|
|
62
65
|
repair` (record in `drift.md`), not a blind spec edit.
|
|
63
66
|
1. **Significance test:** [`reference/significance.md`](reference/significance.md). Low-stakes
|
|
64
|
-
/ shape-not-meaning work → write the one-line `skipped — low stakes (<trigger>)` verdict to `strategy.md`,
|
|
67
|
+
/ shape-not-meaning work → write the exact one-line `skipped — low stakes (<trigger>)` verdict to `strategy.md`,
|
|
65
68
|
set `state.md` `Next step: $rite-define`, and recommend it. Otherwise fire the full pass below.
|
|
66
69
|
2. **FORWARD pass + mode selection:** [`reference/scope-modes.md`](reference/scope-modes.md).
|
|
67
70
|
First, the **one-sentence-intent test**: state the whole change's intent in a single sentence.
|
|
68
71
|
If you can't without an "and" that joins two unrelated outcomes, it is **two features**: the
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
scope-creep signal; recommend splitting or narrowing the spec before continuing.
|
|
73
|
+
Then consider the 10-star outcome for the underlying problem and choose **exactly one**
|
|
74
|
+
scope mode (`expand` opt-in · `selective` · `hold-rigor` · `reduce-to-MVP`) with its
|
|
75
|
+
rationale and the condition that would change the choice. `$ARGUMENTS` `--mode` is a
|
|
73
76
|
hint, not a command.
|
|
74
77
|
3. **INVERSION pass:** pre-mortem in past tense ("it shipped and failed: what went wrong"),
|
|
75
78
|
each top risk carrying likelihood + mitigation + the slice it will bind to; then the **YAGNI
|
|
76
79
|
ledger** (each candidate scope item gets the "imagine the later refactor" test; defer unless
|
|
77
80
|
now-cost is trivial AND deferred-cost is large).
|
|
78
|
-
-
|
|
79
|
-
|
|
81
|
+
**Interruption pre-mortem:** audit the spec forecast and assumptions for unresolved behavior,
|
|
82
|
+
proof prerequisites, approvals, access, and irreversible gates. Resolve facts and reversible
|
|
83
|
+
details now; retain only unavailable-pre-code or mandatory action-time checkpoints.
|
|
84
|
+
- **Deepen on demand.** When a scope decision, requirement, or risk needs more analysis
|
|
85
|
+
than the default pre-mortem provides, choose 3-5 techniques from
|
|
80
86
|
[`elicitation.md`](../devrites-lib/reference/standards/elicitation.md) whose *when-to-reach-for-it* matches that
|
|
81
87
|
section's risk (irreversible decision → Red-Team/Blue-Team + Assumption Audit; sizing → Delphi;
|
|
82
|
-
vague requirement → Steelman-then-Attack), offer them, and run the chosen one **on that
|
|
83
|
-
section**. Record what
|
|
84
|
-
|
|
88
|
+
vague requirement → Steelman-then-Attack), offer them, and run the chosen one **on that
|
|
89
|
+
section**. Record what changed, not the technique name. The default passes remain
|
|
90
|
+
sufficient when no deeper analysis is needed.
|
|
85
91
|
4. **Score the 9 dimensions:** [`reference/review-dimensions.md`](reference/review-dimensions.md).
|
|
86
92
|
Cite evidence *before* the band; **gate on the floor** (the weakest dimension, not an average).
|
|
87
93
|
**Completion:** all nine dimensions have cited evidence, a band, and one explicit floor verdict.
|
|
88
|
-
5. **
|
|
89
|
-
interactive review
|
|
94
|
+
5. **Review human-owned findings with the human; do not batch them.** `strategy.md`
|
|
95
|
+
records the interactive review but does not replace it. Present each material scope decision through
|
|
90
96
|
`AskUserQuestion`, one at a time, best-guess + **why**. Each material scope call ends as a
|
|
91
97
|
**recorded decision**: a resolved `questions.md` qid (HITL) or a `decisions.md` ADR (AFK):
|
|
92
|
-
so the
|
|
98
|
+
so the review leaves an auditable record outside chat. (AFK gate policy is single-sourced in
|
|
93
99
|
[`reference/significance.md`](reference/significance.md): `hold-rigor` + `reduce-to-MVP`
|
|
94
100
|
auto-apply, **any `expand` is a blocking pause**, irreversible-risk always pauses.)
|
|
101
|
+
Apply objective clarity, mitigation, and assumption fixes directly.
|
|
95
102
|
6. **Write `strategy.md` + fold back:** [`reference/strategy-template.md`](reference/strategy-template.md).
|
|
96
|
-
**
|
|
103
|
+
**Choose the drift path based on whether a plan exists:** *no `plan.md` yet* (the normal pre-define
|
|
97
104
|
case) → update `spec.md` **through the Spec Drift Guard**. *Success criteria* **and**
|
|
98
105
|
*Acceptance criteria* for each opt-in expansion / cut, **Non-goals** for every deferred item,
|
|
99
106
|
*Constraints* **and** *Risks* the pre-mortem demands, and the gaps/decisions table; *`plan.md`
|
|
@@ -102,22 +109,33 @@ that needs more than the default pre-mortem) selected by the section's risk).
|
|
|
102
109
|
decision · why-not · what-would-change-it) and `assumptions.md` (every "we'll probably need X" →
|
|
103
110
|
assumption-to-verify). **Every scope delta must carry a recorded human decision**: a resolved
|
|
104
111
|
`questions.md` qid (HITL) or a `decisions.md` ADR (AFK within the ceiling); a folded change with
|
|
105
|
-
no recorded decision is
|
|
106
|
-
any folded scope delta lacks its decision
|
|
112
|
+
no recorded decision is invalid. **Re-check the spec Readiness gate** (it fails if
|
|
113
|
+
any folded scope delta lacks its decision or leaves a foreseeable human build choice).
|
|
114
|
+
After any edit to `brief.md`, `spec.md`, `decisions.md`, `assumptions.md`, or
|
|
115
|
+
`questions.md`, re-scan the affected coverage rows, assumption audit, residual uncertainty,
|
|
116
|
+
and closed gates. Partial/Missing, an unowned material assumption, or an open
|
|
117
|
+
blocking/escalating question routes `$rite-clarify`/HITL; never refresh past it. Only after the
|
|
118
|
+
matrix is re-closed, run `devrites-engine readiness-digest coverage <slug>` and replace the
|
|
119
|
+
complete `Coverage inputs SHA-256` line in `decision-coverage.md`.
|
|
120
|
+
Update `state.md`: `Phase: temper`,
|
|
107
121
|
`Next step: $rite-define`; on a blocking pause (expand / irreversible / a dimension still below
|
|
108
122
|
bar) write the `Awaiting human` block + `Status: awaiting_human` before stopping.
|
|
109
123
|
7. **Adversarial verification loop:** dispatch [`devrites-strategy-reviewer`](.codex/agents/devrites-strategy-reviewer.toml)
|
|
110
|
-
|
|
124
|
+
through the file-backed fresh-context contract in
|
|
125
|
+
[`agents.md`](../devrites-lib/reference/standards/agents.md), with **only** the hardened
|
|
126
|
+
spec + rubric: no authoring reasoning. Resolve
|
|
111
127
|
actionable findings by editing `spec.md`/`strategy.md`, re-dispatch; **cap ≤3 iterations**. A
|
|
112
|
-
dimension still below bar after 3
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
128
|
+
dimension still below bar after 3 is classified by decision ownership: a product/scope/risk
|
|
129
|
+
choice becomes a blocking question; an objective spec defect stays blocked with the exact
|
|
130
|
+
required edit and routes to `$rite-spec`, not `$rite-resolve`. Irreversible-risk findings
|
|
131
|
+
always pause. Use the shared capability ladder; an inline final-rung pass is labeled
|
|
132
|
+
`independence: fallback`, never an independent review. After an accepted edit to a
|
|
133
|
+
coverage-bound input, repeat step 6's revalidation and digest refresh before handoff.
|
|
116
134
|
8. **STOP.** Report the mode, the scope deltas, and the floor verdict; recommend `$rite-define`.
|
|
117
135
|
|
|
118
|
-
> **Mid-flight discipline.**
|
|
119
|
-
>
|
|
120
|
-
>
|
|
136
|
+
> **Mid-flight discipline.** Do not replace the interactive review with `strategy.md`,
|
|
137
|
+
> expand implementation surface without need, grow scope outside the Drift Guard, or score
|
|
138
|
+
> before citing evidence. See [`reference/anti-patterns.md`](reference/anti-patterns.md).
|
|
121
139
|
|
|
122
140
|
## Output
|
|
123
141
|
|
|
@@ -127,12 +145,13 @@ Default success shape:
|
|
|
127
145
|
```
|
|
128
146
|
Done: spec tempered for <slug>; mode <expand|selective|hold-rigor|reduce-to-MVP|skipped-low-stakes>.
|
|
129
147
|
Changed: strategy.md, spec.md, decisions.md, assumptions.md
|
|
130
|
-
Evidence: dimension floor <band>; reviewer loop <n>; spec readiness re-checked pass
|
|
148
|
+
Evidence: dimension floor <band>; reviewer loop <n>; spec readiness + decision coverage re-checked pass
|
|
131
149
|
Open: <none | n deferred non-goals>
|
|
132
150
|
Next: $rite-define
|
|
133
151
|
Record: .devrites/work/<slug>/strategy.md
|
|
134
152
|
↻ Hygiene: /clear before $rite-define
|
|
135
153
|
```
|
|
136
154
|
If readiness is blocked, use the shared `Stopped / blocked` form and route `Fix:`
|
|
137
|
-
to `$rite-
|
|
155
|
+
to `$rite-clarify` for an uncovered decision surface or `$rite-spec` for an objective
|
|
156
|
+
spec defect; do not recommend `$rite-define`.
|
|
138
157
|
**DO NOT plan, slice, or write code here**. That's `$rite-define` and `$rite-build`.
|
|
@@ -1,23 +1,25 @@
|
|
|
1
|
-
# Review dimensions
|
|
1
|
+
# Review dimensions and floor-gate rubric
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Score the spec on nine dimensions. A strong dimension cannot offset a failed one, so
|
|
4
|
+
the gate uses the **lowest band**, not an average.
|
|
5
5
|
|
|
6
6
|
## The nine dimensions
|
|
7
|
-
1. **Problem
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
2. **Scope
|
|
11
|
-
clear IN/OUT line?
|
|
12
|
-
3. **Premise
|
|
7
|
+
1. **Problem choice and ambition:** does the spec solve the underlying problem, or only
|
|
8
|
+
make a minor improvement to the obvious path? It may also reach beyond the actual need.
|
|
9
|
+
Both insufficient outcome ambition and over-building are failures.
|
|
10
|
+
2. **Scope and boundary:** are non-goals explicit? Is there a Minimum Usable Subset and
|
|
11
|
+
a clear IN/OUT line? Flag unrelated bundles and a missing "Won't-have-this-time".
|
|
12
|
+
3. **Premise and alternatives:** are the consequential premises stated and challenged, and is at
|
|
13
13
|
least one genuinely different approach (different data model / flow / boundary) considered
|
|
14
14
|
with its trade-off? ("Alternatives considered" is one of the most useful parts of a spec.)
|
|
15
|
-
4. **Pre-mortem risk coverage:**
|
|
16
|
-
+ mitigation + the slice that owns it.
|
|
15
|
+
4. **Pre-mortem risk coverage:** assess the feature as if it shipped and failed. Each top risk carries likelihood
|
|
16
|
+
+ mitigation + the slice that owns it. The interruption pre-mortem accounts for foreseeable
|
|
17
|
+
human prerequisites and action-time approvals instead of deferring generic uncertainty to
|
|
18
|
+
build. **Unmitigated top risks are gating.**
|
|
17
19
|
5. **Over-engineering / YAGNI:** speculative capability, unused extension points, premature
|
|
18
20
|
abstraction, second-system bloat. Apply the pack's standard (`patterns.md`) + the "imagine
|
|
19
21
|
the later refactor" test. Defer unless now-cost is trivial AND deferred-cost is large.
|
|
20
|
-
6. **Acceptance testability
|
|
22
|
+
6. **Acceptance testability and completion:** every acceptance criterion measurable, technology-
|
|
21
23
|
agnostic, and comparable **down to a baseline** ("better than the current workaround"), not
|
|
22
24
|
up to an unbounded ideal. Vague adjectives ("fast/robust/intuitive") and "handles X
|
|
23
25
|
gracefully" are flagged.
|
|
@@ -34,9 +36,8 @@ UI specs also inherit `rite-polish/reference/anti-ai-slop.md` at the cross-cutti
|
|
|
34
36
|
dimension (design-system fit, anti-AI-slop), but `$rite-temper` reviews the *spec/design-brief*,
|
|
35
37
|
not pixels; the built UI is judged later by `devrites-frontend-reviewer`.
|
|
36
38
|
|
|
37
|
-
##
|
|
38
|
-
Score each dimension on a **labeled band**, never a 1-10 float or
|
|
39
|
-
the work: matches the pack's severity-vocabulary stance):
|
|
39
|
+
## Rubric
|
|
40
|
+
Score each dimension on a **labeled band**, never a 1-10 float or composite number:
|
|
40
41
|
|
|
41
42
|
| Band | Meaning |
|
|
42
43
|
|---|---|
|
|
@@ -45,9 +46,8 @@ the work: matches the pack's severity-vocabulary stance):
|
|
|
45
46
|
| **thin** | Under-addressed; a real gap to close before planning (Important). |
|
|
46
47
|
| **broken** | Missing or wrong in a way that will cost a redo (Critical). |
|
|
47
48
|
|
|
48
|
-
**Cite evidence before the band
|
|
49
|
-
|
|
50
|
-
(don't average up).
|
|
49
|
+
**Cite evidence before assigning the band.** Name the spec line or absence that
|
|
50
|
+
justifies it. Review a borderline dimension twice if needed and use the **lower** band.
|
|
51
51
|
|
|
52
52
|
## The floor-gate
|
|
53
53
|
- **Pass** only when every dimension is `adequate` or `strong` **and** no unmitigated top
|
|
@@ -57,9 +57,11 @@ first and rationalize after. Borderline dimensions may be sampled twice; take th
|
|
|
57
57
|
Suggestion / Nit / FYI**) so they compose with `$rite-review` and `$rite-seal`. `broken` →
|
|
58
58
|
Critical, `thin` → Important; **FYI is band-independent**: an observation on a `strong` /
|
|
59
59
|
`adequate` dimension, not a failing band.
|
|
60
|
-
- **
|
|
60
|
+
- **Do not double-count overlap.** Some dimensions use the same evidence (e.g. #7
|
|
61
61
|
irreversibility & #9 convention-fit both touch codebase realism; #1 ambition & #2 scope both
|
|
62
62
|
touch over/under-reach). Don't fail two dimensions for the *same* root cause: cite the
|
|
63
|
-
evidence once
|
|
64
|
-
- Below-bar dimension after the ≤3-iteration reviewer loop →
|
|
65
|
-
|
|
63
|
+
evidence once and assign one band so one problem does not create two floor failures.
|
|
64
|
+
- Below-bar dimension after the ≤3-iteration reviewer loop → classify by decision ownership:
|
|
65
|
+
product/scope/risk uncertainty becomes a blocking question; an objective prose/coverage defect
|
|
66
|
+
routes back to `$rite-spec` without inventing a human decision. Irreversible-risk findings
|
|
67
|
+
always pause regardless of band.
|