devrites 3.0.6 → 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 +18 -0
- package/README.md +67 -45
- 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 +575 -58
- package/engine/internal/install/install_test.go +490 -9
- 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
|
@@ -10,16 +10,20 @@ This is the Codex mirror of a DevRites skill. In Codex:
|
|
|
10
10
|
|
|
11
11
|
- 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.
|
|
12
12
|
- Use the installed `devrites-engine` binary as the canonical runtime helper surface for orientation, gates, and state mutation.
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
13
|
+
- **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.
|
|
14
|
+
- 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`.
|
|
15
|
+
- 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.
|
|
16
|
+
- 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.
|
|
17
|
+
- 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.
|
|
18
|
+
- Wait for every required fresh-context dispatch before reconciling or advancing. A backgrounded or lost result is incomplete.
|
|
19
|
+
- 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.
|
|
16
20
|
- 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.
|
|
17
21
|
|
|
18
22
|
|
|
19
23
|
# devrites-source-driven: verify, don't guess
|
|
20
24
|
|
|
21
|
-
|
|
22
|
-
|
|
25
|
+
When library behavior matters and is uncertain, verify it against installed source or
|
|
26
|
+
authoritative documentation before relying on it.
|
|
23
27
|
|
|
24
28
|
## When to trigger
|
|
25
29
|
- You're about to rely on an API signature, default, config key, or behavior you're not
|
|
@@ -33,32 +37,33 @@ matters and isn't certain, check the source of truth.
|
|
|
33
37
|
version-specific.
|
|
34
38
|
2. **Consult the source of truth**, in order: the installed package's own source/types
|
|
35
39
|
in `node_modules`/gem/site-packages; context7 if available (`resolve-library-id` →
|
|
36
|
-
`query-docs`) for current upstream docs; official docs for *that version
|
|
37
|
-
existing usage of the same API.
|
|
40
|
+
`query-docs`) for current upstream docs; official docs for *that version*.
|
|
38
41
|
3. **Confirm the specific fact:** the signature, the default, the edge behavior, not a
|
|
39
42
|
general impression.
|
|
40
|
-
4. **
|
|
41
|
-
|
|
43
|
+
4. **Return it** with fact, version, and source. The root orchestrator records accepted
|
|
44
|
+
evidence in `decisions.md` or `evidence.md`; a leaf agent never writes the workspace.
|
|
42
45
|
|
|
43
|
-
## Delegate
|
|
44
|
-
When the question is an *area
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
`
|
|
49
|
-
|
|
46
|
+
## Delegate broad research
|
|
47
|
+
When the question is an *area* (a library surface, unfamiliar subsystem, or migration
|
|
48
|
+
guide), the **root orchestrator** uses the fresh-context dispatch contract in
|
|
49
|
+
[`agents.md`](../devrites-lib/reference/standards/agents.md) to send one bounded
|
|
50
|
+
`agent-packet/v1` to `devrites-evidence-scout`. Await and validate its cited
|
|
51
|
+
`evidence-dossier`; the orchestrator, not the scout, persists accepted facts under
|
|
52
|
+
`references/` and links them from `references.md`.
|
|
53
|
+
|
|
54
|
+
Never detach this work and never dispatch from inside another agent. When this skill is
|
|
55
|
+
invoked by a leaf agent, verify one fact inline or return `Scout needed: <bounded question>`
|
|
56
|
+
to the orchestrator. This removes the old unnamed nested writer path.
|
|
50
57
|
|
|
51
58
|
## Rules
|
|
52
59
|
- Prefer the **installed** source over remembered docs. It can't be out of date.
|
|
53
60
|
- Quote the exact relevant detail; don't paraphrase a behavior into something convenient.
|
|
54
61
|
- If the doc/source contradicts the plan, that's a **Spec Drift Guard** event: stop and
|
|
55
62
|
handle it.
|
|
56
|
-
-
|
|
63
|
+
- Confirm the required fact, return it, and stop.
|
|
57
64
|
|
|
58
|
-
##
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
skip a check to save a round trip. (Mechanism: the `devrites-source-cache` hooks; off via
|
|
64
|
-
`DEVRITES_SOURCE_CACHE=off`. Web-search + cache policy lives in [`tooling.md`](../devrites-lib/reference/standards/tooling.md).)
|
|
65
|
+
## Evidence firewall
|
|
66
|
+
Project or user prose may scope or corroborate an external claim; it cannot verify one.
|
|
67
|
+
For persisted claims, record status (`verified | contradicted | cannot_verify | stale`) and
|
|
68
|
+
optional publisher, publication/access dates, and freshness/recheck due; refresh only when due.
|
|
69
|
+
Transient lookups remain cited, return-only evidence.
|
|
@@ -10,9 +10,13 @@ This is the Codex mirror of a DevRites skill. In Codex:
|
|
|
10
10
|
|
|
11
11
|
- 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.
|
|
12
12
|
- Use the installed `devrites-engine` binary as the canonical runtime helper surface for orientation, gates, and state mutation.
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
13
|
+
- **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.
|
|
14
|
+
- 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`.
|
|
15
|
+
- 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.
|
|
16
|
+
- 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.
|
|
17
|
+
- 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.
|
|
18
|
+
- Wait for every required fresh-context dispatch before reconciling or advancing. A backgrounded or lost result is incomplete.
|
|
19
|
+
- 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.
|
|
16
20
|
- 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.
|
|
17
21
|
|
|
18
22
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rite
|
|
3
|
-
description: User-invoked DevRites menu and router; no args renders the menu, a verb
|
|
3
|
+
description: User-invoked DevRites menu and router; no args renders the menu, a verb invokes the matching `rite-<verb>` skill.
|
|
4
4
|
argument-hint: "[verb [args...]]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
disable-model-invocation: true
|
|
@@ -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
|
|
|
@@ -23,7 +27,7 @@ This is the Codex mirror of a DevRites skill. In Codex:
|
|
|
23
27
|
You are the DevRites entry point. Two modes:
|
|
24
28
|
|
|
25
29
|
- **No args** → run `devrites-engine first-task`, render one recommended-start line above the menu, then stop. Do not execute a phase or read `state.md`: status is `$rite-status`.
|
|
26
|
-
- **Verb arg** → pass-through
|
|
30
|
+
- **Verb arg** → pass-through invocation of the matching `rite-<verb>` skill (`$rite spec foo` ≡ `$rite-spec foo`); the called skill owns the output.
|
|
27
31
|
|
|
28
32
|
When the user asks which rite fits, load [`devrites-lib/reference/intent-map.md`](../devrites-lib/reference/intent-map.md).
|
|
29
33
|
When they ask how phases connect, load [`reference/menu.md`](reference/menu.md).
|
|
@@ -39,12 +43,13 @@ F=.agents/skills/rite-$V/SKILL.md
|
|
|
39
43
|
# Then Read "$F" and follow its workflow with $ARGS as that skill's $ARGUMENTS.
|
|
40
44
|
```
|
|
41
45
|
|
|
42
|
-
What each verb does lives once, in the Menu below; this table is the
|
|
46
|
+
What each verb does lives once, in the Menu below; this table is the invocation map only.
|
|
43
47
|
|
|
44
48
|
| Verb | Skill |
|
|
45
49
|
|---|---|
|
|
46
50
|
| `spec [feature]` | `$rite-spec` |
|
|
47
51
|
| `adopt [area]` | `$rite-adopt` |
|
|
52
|
+
| `clarify [feature]` | `$rite-clarify` |
|
|
48
53
|
| `temper [--mode]` | `$rite-temper` |
|
|
49
54
|
| `define` | `$rite-define` |
|
|
50
55
|
| `vet [--cross-model]` | `$rite-vet` |
|
|
@@ -75,17 +80,17 @@ What each verb does lives once, in the Menu below; this table is the dispatch ma
|
|
|
75
80
|
| `quick [change]` | `$rite-quick` |
|
|
76
81
|
| `frame [task]` | `$rite-frame` |
|
|
77
82
|
|
|
78
|
-
Both forms
|
|
83
|
+
Both forms call the same skill. The menu supports discovery; `/rite-<verb>` is the direct form.
|
|
79
84
|
|
|
80
85
|
`use <slug>` is handled **inline**. There is no `rite-use` skill. Confirm
|
|
81
86
|
`.devrites/work/<slug>/` exists, then re-point `.devrites/ACTIVE` to `<slug>` and report
|
|
82
87
|
the now-active feature. It is cheap context-switching only: no re-spec, no phase run. If
|
|
83
88
|
the workspace is missing, list the slugs under `.devrites/work/` and stop.
|
|
84
89
|
|
|
85
|
-
`guide` is an inline first
|
|
86
|
-
change, then run spec → temper → define → vet → build → prove → polish → review → seal →
|
|
90
|
+
`guide` is an inline walkthrough for the first feature. Agree on one **real, small**
|
|
91
|
+
change, then run spec → clarify → temper → define → vet → build → prove → polish → review → seal →
|
|
87
92
|
ship. Before each phase, say what it decides; after, name what it wrote and why. Pause at
|
|
88
|
-
every boundary
|
|
93
|
+
every boundary and explain only what the user needs for the next decision.
|
|
89
94
|
|
|
90
95
|
Specialist triggers (model-invoked inside the above):
|
|
91
96
|
`devrites-frontend-craft` (UI) · `devrites-browser-proof` (UI verify) ·
|
|
@@ -101,7 +106,7 @@ Reply-contract exception: `$rite` is the menu/router, not a workspace completion
|
|
|
101
106
|
Called phase skills own the shared completion reply contract
|
|
102
107
|
([`reply-contract.md`](../devrites-lib/reference/reply-contract.md)).
|
|
103
108
|
|
|
104
|
-
1. **Verb in `$ARGUMENTS`** →
|
|
109
|
+
1. **Verb in `$ARGUMENTS`** → invoke the matching skill per the table above.
|
|
105
110
|
2. **No args** → menu mode, as above.
|
|
106
111
|
3. **Unrecognized first token** → tell the user the known verbs and stop. Don't guess.
|
|
107
112
|
4. **No active feature** and the user asked "where am I" or named no verb → point at `$rite spec <feature>` (or `$rite-spec`). Don't summarize state yourself: `$rite status` (or `$rite-status`) owns that.
|
|
@@ -114,6 +119,7 @@ Recommended start: <greenfield: $rite spec <feature> | brownfield-unadopted: $ri
|
|
|
114
119
|
menu form direct shortcut
|
|
115
120
|
SPEC $rite spec ≡ $rite-spec investigate deeply → write spec.md
|
|
116
121
|
ADOPT $rite adopt ≡ $rite-adopt onboard existing code → reverse-derive spec.md + seed conventions
|
|
122
|
+
CLARIFY $rite clarify ≡ $rite-clarify close the complete decision surface before planning
|
|
117
123
|
TEMPER $rite temper ≡ $rite-temper optional — strategic review: scope mode + pre-mortem, harden the spec
|
|
118
124
|
PLAN $rite define ≡ $rite-define turn the spec into plan + task slices + state
|
|
119
125
|
VET $rite vet ≡ $rite-vet mandatory every plan — light/full engineering review by stakes
|
|
@@ -143,8 +149,8 @@ UTILITY $rite frame | prototype | handoff | zoom-out | pressure-test (or
|
|
|
143
149
|
|
|
144
150
|
> **Small one-off change?** A typo, copy tweak, config bump, or one-function fix → **`$rite-quick`**
|
|
145
151
|
> (express lane: one contract → build → prove → ship, no full workspace). It escalates to
|
|
146
|
-
> `$rite-spec`
|
|
147
|
-
> lifecycle above
|
|
152
|
+
> `$rite-spec` when the change is no longer small, reversible, and unambiguous. Use the
|
|
153
|
+
> full lifecycle above for features.
|
|
148
154
|
|
|
149
155
|
## Core operating rules (every DevRites skill enforces)
|
|
150
156
|
|
|
@@ -7,16 +7,17 @@ what each command does or how phases connect.
|
|
|
7
7
|
|
|
8
8
|
| Phase | Command | Use when |
|
|
9
9
|
|---|---|---|
|
|
10
|
-
| Spec | `$rite-spec <feature>` | **New feature.** Investigate
|
|
10
|
+
| Spec | `$rite-spec <feature>` | **New feature.** Investigate → write spec.md. Asks with options; gathers attached design references (optional). |
|
|
11
11
|
| Adopt | `$rite-adopt` | Onboard an existing codebase instead of starting fresh: reverse-derive spec.md + seed the conventions ledger. |
|
|
12
|
+
| Clarify | `$rite-clarify` | _Required after spec._ Topology-first decision-coverage scan; zero-question fast path when already clear. |
|
|
12
13
|
| Temper | `$rite-temper` | _Optional, before define._ Strategic review of the spec: scope mode (expand/selective/hold-rigor/reduce) + pre-mortem; hardens the spec. Best on big/risky features; mandatory in `$rite-autocomplete`. |
|
|
13
14
|
| Plan | `$rite-define` | Turn the approved spec into plan + vertical task slices + state. |
|
|
14
15
|
| Vet | `$rite-vet` | _Required before build._ Review every plan: scope · architecture · tests · perf; light for simple/reversible, full for high stakes. |
|
|
15
16
|
| Re-plan | `$rite-plan` | The active plan is too big, wrong, stale, ambiguous, or blocked. |
|
|
16
17
|
| Build | `$rite-build` | Implement the next single vertical slice. Stops after one slice. |
|
|
17
|
-
| Converge | `$rite-converge` | _Recovery._ Code drifted from
|
|
18
|
+
| Converge | `$rite-converge` | _Recovery._ Code drifted from or falls short of intent after a resume, adoption, or stalled build: compare live code with spec/plan/tasks and append remaining work as new slices for `$rite-build`. |
|
|
18
19
|
| Prove | `$rite-prove` | Prove the current scope: tests, build, runtime, browser evidence. |
|
|
19
|
-
| Polish | `$rite-polish` | Code polish always;
|
|
20
|
+
| Polish | `$rite-polish` | Code polish always; normalize and polish UI when in scope. Modes: `bolder/quieter/distill/harden/normalize-only`. |
|
|
20
21
|
| Review | `$rite-review` | Feature-scoped review before sealing. |
|
|
21
22
|
| Seal | `$rite-seal` | Final GO / NO-GO decision (no git). |
|
|
22
23
|
| Ship | `$rite-ship` | Type-GO → commit/push/tag, then archive the task + clear ACTIVE. |
|
|
@@ -26,14 +27,15 @@ what each command does or how phases connect.
|
|
|
26
27
|
|
|
27
28
|
## Typical orderings
|
|
28
29
|
|
|
29
|
-
- **Every feature**: `$rite-spec` (spec) →
|
|
30
|
+
- **Every feature**: `$rite-spec` (spec) → `$rite-clarify` (decision coverage) →
|
|
31
|
+
*(big feature? `$rite-temper`: strategic review)* →
|
|
30
32
|
`$rite-define` (plan) → `$rite-vet` (engineering review; light or full) →
|
|
31
33
|
`$rite-build` ×N (all slices) → `$rite-prove` (once all built) →
|
|
32
34
|
`$rite-polish` (always: code + UI if UI) → `$rite-review` → `$rite-seal` → `$rite-ship`.
|
|
33
|
-
- **Existing codebase**: `$rite-adopt` → `$rite-define` → `$rite-vet` → build.
|
|
35
|
+
- **Existing codebase**: `$rite-adopt` → `$rite-clarify` → `$rite-define` → `$rite-vet` → build.
|
|
34
36
|
- **Drift mid-build**: stop → drift question → `$rite-plan` (repair) → resume build.
|
|
35
37
|
- **Resumed / adopted / stalled**: `$rite-converge` (assess live code vs intent → append the
|
|
36
|
-
remaining slices) → `$rite-build` ×N → continue at `$rite-prove`.
|
|
38
|
+
remaining slices) → `$rite-vet` → `$rite-build` ×N → continue at `$rite-prove`.
|
|
37
39
|
|
|
38
40
|
## Rules this menu obeys
|
|
39
41
|
|
|
@@ -11,26 +11,27 @@ 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-adopt:
|
|
24
|
+
# $rite-adopt: onboard existing code
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
`spec.md` the rest of the lifecycle expects, plus a head start in the conventions ledger
|
|
26
|
-
so the very first new slice already knows the project's idioms.
|
|
26
|
+
`$rite-adopt` derives a spec and initial conventions from existing code. It produces the
|
|
27
|
+
same `spec.md` used by the rest of the lifecycle and seeds the conventions ledger with
|
|
28
|
+
observed project idioms.
|
|
27
29
|
|
|
28
|
-
Use it once
|
|
29
|
-
|
|
30
|
+
Use it once when onboarding a repository or one of its sub-areas. Continue with
|
|
31
|
+
`$rite-clarify`, `$rite-temper`, `$rite-define`, and `$rite-build`.
|
|
30
32
|
|
|
31
|
-
> **
|
|
32
|
-
>
|
|
33
|
-
> it *commits the project to the lifecycle*. Pick zoom-out to look, adopt to begin.
|
|
33
|
+
> **Need only a code map?** `$rite-zoom-out` maps unfamiliar code without creating a
|
|
34
|
+
> workspace or ledger. Use `$rite-adopt` when the project should enter the lifecycle.
|
|
34
35
|
|
|
35
36
|
## Rules consulted (read on demand from `.agents/skills/devrites-lib/reference/standards/`)
|
|
36
37
|
Pull `documentation.md` when recording the adoption decisions (why-not-what) in
|
|
@@ -49,7 +50,7 @@ upholds invariants worth proposing as project principles (step 4a).
|
|
|
49
50
|
if stated: what the user wants to build *next* on top of it. If the next-build objective
|
|
50
51
|
is missing, ask once (it shapes the spec's acceptance); if the area is ambiguous, confirm
|
|
51
52
|
before investigating the whole tree.
|
|
52
|
-
2. **
|
|
53
|
+
2. **Inspect the existing code** to establish the project's current structure. Use a
|
|
53
54
|
code-intelligence index if available (codebase-memory-mcp first (its `get_architecture`
|
|
54
55
|
gives a fast overview), cross-checked with codegraph + graphify, else standard methods
|
|
55
56
|
(LSP / Read/Grep/Glob); see `.agents/skills/devrites-lib/reference/standards/tooling.md`) for
|
|
@@ -64,10 +65,10 @@ upholds invariants worth proposing as project principles (step 4a).
|
|
|
64
65
|
**current behavior as the baseline** and the **next objective** (what adoption is for) with
|
|
65
66
|
measurable acceptance. Also write `decisions.md`, `assumptions.md`, `questions.md`, and
|
|
66
67
|
`state.md` (phase: spec).
|
|
67
|
-
3a. **Seed the capability ledger** from the baseline. If the
|
|
68
|
+
3a. **Seed the capability ledger** from the baseline. If the derived `spec.md` carries
|
|
68
69
|
structured `### Requirement:` blocks, fold them into the living
|
|
69
|
-
`.devrites/specs/<capability>/spec.md` ledger so the project's
|
|
70
|
-
|
|
70
|
+
`.devrites/specs/<capability>/spec.md` ledger so the project's current proven behavior is
|
|
71
|
+
recorded before the first new feature. The next `$rite-spec` writes deltas against this ledger
|
|
71
72
|
([ledger.md](../rite-ship/reference/ledger.md)). A flat baseline folds as all-ADDED into the
|
|
72
73
|
feature slug's capability; tag capabilities in the spec first if you want finer granularity.
|
|
73
74
|
```bash
|
|
@@ -75,29 +76,28 @@ upholds invariants worth proposing as project principles (step 4a).
|
|
|
75
76
|
devrites-engine ledger sync .devrites/work/<slug> # seed
|
|
76
77
|
```
|
|
77
78
|
Skip when the baseline records no structured requirements (nothing to seed).
|
|
78
|
-
4. **Seed the conventions ledger** from
|
|
79
|
-
[adoption § seeding](reference/adoption.md). This is the
|
|
80
|
-
evidence-gated promotion
|
|
81
|
-
|
|
82
|
-
(fresh-wins) contradict them.
|
|
79
|
+
4. **Seed the conventions ledger** from observed behavior:
|
|
80
|
+
[adoption § seeding](reference/adoption.md). This is the bootstrap exception to
|
|
81
|
+
evidence-gated promotion. Seeds start at the base band with onboarding provenance;
|
|
82
|
+
later sealed slices may confirm or contradict them, and fresh evidence wins.
|
|
83
83
|
**Completion:** every seed names observed evidence, provenance, and the base band.
|
|
84
|
-
4a. **Propose candidate principles** (human-ratified
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
`
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
84
|
+
4a. **Propose candidate principles** (optional and human-ratified). When the code
|
|
85
|
+
consistently enforces an invariant, such as integer cents for money, redacted PII in
|
|
86
|
+
logs, or preserved v1 endpoints, propose it as a **candidate principle** rather than a
|
|
87
|
+
convention. Principles are prescriptive gates, so **never seed them automatically**.
|
|
88
|
+
Present each candidate through `AskUserQuestion` with evidence, and write human-ratified
|
|
89
|
+
candidates to `.devrites/principles.md` with a dated Governance entry
|
|
90
|
+
([`principles.md`](../devrites-lib/reference/standards/principles.md)). An unratified
|
|
91
|
+
candidate remains a convention, not a gate. If no invariant qualifies, declare no
|
|
92
|
+
principles.
|
|
93
|
+
5. **Hand off.** Continue with `$rite-clarify`. Its topology scan asks no questions when
|
|
94
|
+
the derived contract is already clear. Every plan then runs `$rite-vet` before build.
|
|
95
|
+
Do not plan or build here.
|
|
96
96
|
**Completion:** one next rite is reported and no plan or application code was written.
|
|
97
97
|
|
|
98
|
-
> **Mid-flight discipline.**
|
|
99
|
-
>
|
|
100
|
-
>
|
|
98
|
+
> **Mid-flight discipline.** Do not invent conventions, seed an assumed idiom, or turn
|
|
99
|
+
> adoption into a rewrite. Adoption records existing behavior; a later feature changes it.
|
|
100
|
+
> See [`anti-patterns`](reference/anti-patterns.md).
|
|
101
101
|
|
|
102
102
|
## Output
|
|
103
103
|
|
|
@@ -108,8 +108,8 @@ Default success shape:
|
|
|
108
108
|
Done: adopted existing behavior into <slug>; baseline spec and placement recorded.
|
|
109
109
|
Changed: spec.md, decisions.md, conventions ledger, principles proposals <updated|none>
|
|
110
110
|
Evidence: not applicable; reverse-derived behavior is recorded for review
|
|
111
|
-
Open: <none | adoption questions
|
|
112
|
-
Next: $rite-
|
|
111
|
+
Open: <none | adoption questions>
|
|
112
|
+
Next: $rite-clarify
|
|
113
113
|
Record: .devrites/work/<slug>/spec.md
|
|
114
114
|
↻ Hygiene: /clear before the next phase
|
|
115
115
|
```
|
|
@@ -11,41 +11,48 @@ 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
|
# $rite-autocomplete: full lifecycle, unattended
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
Runs every DevRites phase in order without pausing for discretionary input. It asks
|
|
27
|
+
clarifying questions **before** unattended work begins. Safety gates remain active:
|
|
28
|
+
hard irreversible-risk,<!-- pack-scan-ignore: negated statement: gates are NOT disabled -->
|
|
25
29
|
blocking / escalating gates, and any NO-GO still pause.
|
|
26
30
|
|
|
27
31
|
## Rules consulted (read on demand from `.agents/skills/devrites-lib/reference/standards/`)
|
|
28
32
|
**Step 0:** Read `.agents/skills/devrites-lib/reference/standards/core.md` and `.agents/skills/devrites-lib/reference/standards/afk-hitl.md` first.
|
|
29
33
|
|
|
30
34
|
## Operating rules
|
|
31
|
-
- **
|
|
32
|
-
`
|
|
33
|
-
|
|
35
|
+
- **Use one initial human window.** Run spec and topology-first clarify; arm AFK only after
|
|
36
|
+
`Decision coverage: CLEAR`. Later discretionary calls are recorded, not asked
|
|
37
|
+
([decision policy](reference/decision-policy.md)).
|
|
34
38
|
- **Safety gates are not bypassable.** AFK never auto-passes destructive migration /
|
|
35
|
-
auth-authz change / public-API break / external-contract change
|
|
39
|
+
auth-authz change / public-API break / external-contract change; blocking
|
|
36
40
|
and escalating gates and any open `gate: validating` always pause. `--ship` auto-confirms
|
|
37
41
|
the **final** type-GO only: nothing else. A change that violates a declared project
|
|
38
42
|
principle (`.devrites/principles.md`) with no recorded exception pauses too: autocomplete
|
|
39
43
|
never grants a principle exception on its own (`principles.md`: that's a human decision).
|
|
40
|
-
|
|
44
|
+
Red checks never advance the loop: autocomplete runs the shared bounded debug recovery, then
|
|
45
|
+
stops as `blocked` if the objective failure remains; it asks only if recovery exposes a
|
|
46
|
+
human-owned decision.
|
|
47
|
+
- **Set the loop budget from the plan's slice count.** After `$rite-vet`
|
|
41
48
|
(not `$rite-define`: vet may split or add slices, so the count isn't final until then),
|
|
42
49
|
set the AFK budget to however many slices the plan has, so the loop builds exactly the
|
|
43
|
-
|
|
44
|
-
cap
|
|
45
|
-
|
|
46
|
-
- **
|
|
47
|
-
specialist
|
|
48
|
-
- **Strategic review runs, but never auto-grows scope.** After `$rite-
|
|
50
|
+
planned slices and stops when they are done. `--max-slices N` is an optional lower
|
|
51
|
+
safety cap for a partial run; omit it to run the whole plan. The planned slice count
|
|
52
|
+
keeps the default run finite.
|
|
53
|
+
- **Record each discretionary choice.** Pick the option recommended by the relevant
|
|
54
|
+
specialist or reviewer and record the rationale. Do not choose arbitrarily.
|
|
55
|
+
- **Strategic review runs, but never auto-grows scope.** After `$rite-clarify`, run `$rite-temper`
|
|
49
56
|
(significance-gated; it skips low-stakes specs in one line). Unattended it auto-applies only
|
|
50
57
|
`hold-rigor` + `reduce-to-MVP` (these never grow acceptance); **any `expand` is a blocking
|
|
51
58
|
pause**, and irreversible-risk findings always pause. Autocomplete hardens and may *prune* the
|
|
@@ -61,19 +68,22 @@ blocking / escalating gates, and any NO-GO still pause.
|
|
|
61
68
|
## Workflow
|
|
62
69
|
1. **Orient + parse args.** Run `devrites-engine preamble` for deterministic workspace orientation.
|
|
63
70
|
The idea + flags: `--ship` / `--yolo` (auto-confirm the final
|
|
64
|
-
type-GO), `--max-slices N` (
|
|
71
|
+
type-GO), `--max-slices N` (optional lower safety cap for a partial run; default =
|
|
65
72
|
the plan's slice count, i.e. run all planned slices).
|
|
66
|
-
2. **
|
|
67
|
-
|
|
68
|
-
|
|
73
|
+
2. **Specify and clarify up front.** Use `devrites-interview`, `$rite-spec`, and
|
|
74
|
+
`$rite-clarify` as one interactive window. Clear specs ask zero questions; Partial/Missing
|
|
75
|
+
coverage never arms AFK. **Completion:** `decision-coverage.md` records `CLEAR`.
|
|
76
|
+
3. **Arm AFK after clarity.** Require `Decision coverage: CLEAR`, then write `.devrites/AFK`
|
|
77
|
+
with `allow_gates: [advisory]`; set the slice budget
|
|
69
78
|
from the plan's count after `$rite-vet` (the slice count is only final post-vet), or from
|
|
70
79
|
an explicit `--max-slices` ([reference/loop.md](reference/loop.md)). validating / blocking / escalating +
|
|
71
|
-
irreversible-risk still pause. Also `touch .devrites/CHECKPOINT`:
|
|
72
|
-
|
|
73
|
-
|
|
80
|
+
irreversible-risk still pause. Also `touch .devrites/CHECKPOINT`: unattended runs use
|
|
81
|
+
checkpoint mode so each proven slice is committed locally as a crash-survivable `WIP`
|
|
82
|
+
([rite-build/reference/checkpoint.md](../rite-build/reference/checkpoint.md));
|
|
74
83
|
`$rite-ship` collapses them into the one feature commit.
|
|
75
|
-
4. **Drive the phases** ([reference/loop.md](reference/loop.md))
|
|
76
|
-
|
|
84
|
+
4. **Drive the phases** ([reference/loop.md](reference/loop.md)). The canonical arc is
|
|
85
|
+
`$rite-spec` → **`$rite-clarify`** → **`$rite-temper`** → `$rite-define` →
|
|
86
|
+
**`$rite-vet`** → `$rite-build` (repeat until all slices
|
|
77
87
|
built; `devrites-engine tick-afk` each) → `$rite-prove` → `$rite-polish` → `$rite-review` → `$rite-seal`.
|
|
78
88
|
Run each by Reading its `SKILL.md` and executing its workflow; state is carried by the
|
|
79
89
|
workspace files, not chat.
|
|
@@ -83,12 +93,11 @@ blocking / escalating gates, and any NO-GO still pause.
|
|
|
83
93
|
6. **Seal GO → ship.** With `--ship`, proceed to `$rite-ship` and auto-confirm the
|
|
84
94
|
type-GO. Without it, render the type-GO prompt and stop for the human.
|
|
85
95
|
|
|
86
|
-
> **Mid-flight discipline.**
|
|
87
|
-
>
|
|
88
|
-
> Autonomy is for the routine path; the gates exist for everything else.
|
|
96
|
+
> **Mid-flight discipline.** Stop rather than auto-passing a blocking gate, answering a
|
|
97
|
+
> human-owned material question, or continuing past red tests.
|
|
89
98
|
|
|
90
99
|
## Output
|
|
91
|
-
A compact phase
|
|
100
|
+
A compact phase log followed by the final status. **Progress first for the final
|
|
92
101
|
status**: run `devrites-engine progress`, then use the shared typed states from
|
|
93
102
|
[`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md):
|
|
94
103
|
`Shipped`, `Stopped`, `Awaiting human`, `NO-GO`, or `GO`.
|
|
@@ -96,7 +105,7 @@ status**: run `devrites-engine progress`, then use the shared typed states from
|
|
|
96
105
|
Keep the log terse:
|
|
97
106
|
```
|
|
98
107
|
Autocomplete: <slug>
|
|
99
|
-
spec <done|stopped> · temper <done|skipped|stopped> · define <done|stopped> · vet <
|
|
108
|
+
spec <done|stopped> · clarify <clear|stopped> · temper <done|skipped|stopped> · define <done|stopped> · vet <ready|stopped> · build <n/N|stopped> · prove <done|stopped> · polish <done|stopped> · review <done|stopped> · seal <GO|NO-GO|stopped>
|
|
100
109
|
```
|
|
101
110
|
|
|
102
111
|
Final state examples: `Shipped: <feature>`, `Stopped: <reason>`, `Awaiting human:
|