devrites 3.0.5 → 3.0.7
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 +21 -0
- package/README.md +282 -533
- package/SECURITY.md +26 -26
- package/docs/adr/README.md +7 -9
- package/docs/agents/domain.md +5 -5
- package/docs/agents/issue-driven-rites.md +1 -1
- package/docs/agents/issue-tracker.md +1 -1
- package/docs/agents/triage-labels.md +2 -2
- package/docs/architecture.md +45 -45
- package/docs/cli.md +11 -11
- package/docs/command-map.md +33 -33
- package/docs/engine/agent-contract.md +6 -6
- package/docs/engine/commands.md +66 -65
- package/docs/engine/state-schema.md +15 -15
- package/docs/engine/workspace-schema.md +7 -7
- package/docs/extensions.md +17 -17
- package/docs/flow.md +17 -17
- package/docs/harness-compliance.md +2 -2
- package/docs/orchestration.md +21 -20
- package/docs/release.md +22 -5
- package/docs/research/go-authoritative-workflow-schema-and-quality-2026-07-20.md +3 -3
- package/docs/skills.md +77 -52
- package/docs/usage.md +33 -32
- package/engine/Makefile +2 -2
- package/engine/commands.go +3 -3
- package/engine/harnessmatrix.go +2 -2
- package/engine/hookpolicy.go +9 -9
- package/engine/hooks.go +11 -11
- package/engine/hooks_workspace.go +11 -11
- package/engine/internal/doctor/doctor.go +7 -7
- package/engine/internal/gate/gate.go +11 -11
- package/engine/internal/harness/compliance.go +1 -1
- package/engine/internal/harness/harness.go +7 -7
- package/engine/internal/install/install.go +95 -24
- package/engine/internal/install/install_test.go +111 -3
- package/engine/internal/iohooks/detach_unix.go +1 -1
- package/engine/internal/iohooks/iohooks.go +8 -8
- package/engine/internal/lib/adoption.go +1 -1
- package/engine/internal/lib/analyze.go +15 -15
- package/engine/internal/lib/archivesearch.go +3 -3
- package/engine/internal/lib/budget.go +3 -3
- package/engine/internal/lib/buildreadiness.go +6 -6
- package/engine/internal/lib/checkacceptance.go +10 -10
- package/engine/internal/lib/closeout.go +5 -5
- package/engine/internal/lib/conventions.go +3 -3
- package/engine/internal/lib/coverage.go +4 -4
- package/engine/internal/lib/doubtcoverage.go +9 -9
- package/engine/internal/lib/evidencefresh.go +6 -6
- package/engine/internal/lib/extensions.go +9 -9
- package/engine/internal/lib/footprint.go +13 -13
- package/engine/internal/lib/jsonout.go +2 -2
- package/engine/internal/lib/lanes.go +2 -2
- package/engine/internal/lib/learnings.go +9 -9
- package/engine/internal/lib/ledger.go +8 -8
- package/engine/internal/lib/ledger_test.go +5 -5
- package/engine/internal/lib/mutationgate.go +4 -4
- package/engine/internal/lib/overrides.go +9 -9
- package/engine/internal/lib/overrides_test.go +2 -2
- package/engine/internal/lib/packageexistence.go +5 -5
- package/engine/internal/lib/preamble.go +6 -6
- package/engine/internal/lib/progress.go +5 -5
- package/engine/internal/lib/reconcile.go +80 -20
- package/engine/internal/lib/reconcile_test.go +13 -5
- package/engine/internal/lib/resolve.go +3 -3
- package/engine/internal/lib/reviewerstats.go +2 -2
- package/engine/internal/lib/reviewintegrity.go +13 -13
- package/engine/internal/lib/reviewintegrity_test.go +6 -6
- package/engine/internal/lib/runbook.go +1 -1
- package/engine/internal/lib/session.go +1 -1
- package/engine/internal/lib/session_test.go +2 -2
- package/engine/internal/lib/specparse.go +4 -4
- package/engine/internal/lib/specskeleton.go +2 -2
- package/engine/internal/lib/specvalidate.go +13 -13
- package/engine/internal/lib/stuck.go +13 -13
- package/engine/internal/lib/templates/conventions_ledger_header.md +1 -1
- package/engine/internal/lib/templates/conventions_orient_header.txt +1 -1
- package/engine/internal/lib/testintegrity.go +9 -9
- package/engine/internal/lib/tickafk.go +4 -4
- package/engine/internal/migrate/migrate.go +2 -2
- package/engine/internal/migrate/migrate_test.go +1 -0
- package/engine/internal/orient/firstrun.go +8 -8
- package/engine/internal/orient/orient.go +5 -5
- package/engine/internal/state/concurrency_test.go +4 -4
- package/engine/internal/state/feature.go +6 -6
- package/engine/internal/state/lock_unix.go +1 -1
- package/engine/internal/state/schema.go +1 -1
- package/engine/internal/state/snapshot.go +2 -2
- package/engine/internal/state/write.go +1 -1
- package/engine/internal/version/version.go +1 -1
- package/engine/main.go +5 -5
- package/engine/subagent_orient_context.txt +4 -4
- package/engine/testdata/golden/TestParityA1Guard/source-edit-enforce-denies.golden +1 -1
- package/engine/testdata/golden/TestParityAnalyze/slug=covered.golden +2 -2
- package/engine/testdata/golden/TestParityAnalyze/slug=dangling.golden +3 -3
- package/engine/testdata/golden/TestParityAnalyze/slug=noac.golden +2 -2
- package/engine/testdata/golden/TestParityAnalyze/slug=order.golden +4 -4
- package/engine/testdata/golden/TestParityAnalyze/slug=orphan.golden +3 -3
- package/engine/testdata/golden/TestParityAnalyze/slug=uncovered.golden +3 -3
- package/engine/testdata/golden/TestParityBudget/extra-md.golden +1 -1
- package/engine/testdata/golden/TestParityBudget/over-advisory.golden +1 -1
- package/engine/testdata/golden/TestParityBudget/over-strict.golden +1 -1
- 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=trailhash.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +1 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-ok.golden +1 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-ok.golden +1 -1
- package/engine/testdata/golden/TestParityCloseOut/active_pointed_elsewhere.golden +1 -1
- package/engine/testdata/golden/TestParityCoverage/arg=speconly.golden +2 -2
- package/engine/testdata/golden/TestParityCursor/bare.golden +1 -1
- package/engine/testdata/golden/TestParityCursor/full-afk.golden +1 -1
- package/engine/testdata/golden/TestParityCursor/full-hitl.golden +1 -1
- package/engine/testdata/golden/TestParityCursor/red.golden +2 -2
- package/engine/testdata/golden/TestParityCursor/zerogates.golden +1 -1
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=ghost.golden +1 -1
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=inline.golden +1 -1
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing-inline.golden +1 -1
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing.golden +1 -1
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=nodoubt.golden +1 -1
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=nolog.golden +1 -1
- package/engine/testdata/golden/TestParityLearnings/mine-no-archive.golden +1 -1
- package/engine/testdata/golden/TestParityLearnings/mine.golden +1 -1
- package/engine/testdata/golden/TestParityLearnings/nudge.golden +1 -1
- package/engine/testdata/golden/TestParityMutationGate/active-slug.golden +1 -1
- package/engine/testdata/golden/TestParityMutationGate/explicit-slug.golden +1 -1
- package/engine/testdata/golden/TestParityPackageExistence/declared.golden +1 -1
- package/engine/testdata/golden/TestParityPackageExistence/default-import-subpath.golden +1 -1
- package/engine/testdata/golden/TestParityReconcile/check-clean.golden +1 -1
- package/engine/testdata/golden/TestParityRedwatch/fail-writes-red.golden +1 -1
- package/engine/testdata/golden/TestParityResolve/answer/state.md.golden +1 -1
- package/engine/testdata/golden/TestParityResolve/batch.golden +1 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-devrites-agent-denies.golden +1 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-git-commit.golden +1 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-mutating.golden +1 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=flat.golden +1 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=valid/spec.md.golden +1 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=valid.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/custom-window-2.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/dominant.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/few.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/ghost.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/identical.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/nolog.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/pingpong.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/varied.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/window-04-identical.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/window-2.5-varied4.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/window-4x-varied4.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/window-leadspace-varied4.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/window-plus4-identical.golden +1 -1
- package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent-subagent-type-key.golden +1 -1
- package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent.golden +1 -1
- package/engine/testdata/golden/TestParityTestIntegrity/clean.golden +1 -1
- package/engine/testdata/golden/TestParityTickAfk/missingField.golden +1 -1
- package/engine/testdata/golden/TestParityTickAfk/none.golden +1 -1
- package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +1 -1
- package/engine/testdata/golden/TestSpecSkeleton/missing-some.golden +1 -1
- package/engine/testdata/golden/TestSpecSkeleton/present-all.golden +1 -1
- package/engine/tests/adr_0004_required_by_phase_test.go +2 -2
- package/engine/tests/adr_0006_clock_seam_test.go +1 -1
- package/engine/tests/budget_test.go +1 -1
- package/engine/tests/canonical_ac_ids_test.go +2 -2
- package/engine/tests/cli_test.go +1 -1
- package/engine/tests/concurrency_cli_test.go +1 -1
- package/engine/tests/gate_test.go +4 -4
- package/engine/tests/hook_test.go +3 -3
- package/engine/tests/hooks_io_test.go +1 -1
- package/engine/tests/lib_parity_test.go +29 -29
- package/engine/tests/meta_test.go +2 -2
- package/engine/tests/parity_closeout_test.go +1 -1
- package/engine/tests/parity_learnings_test.go +2 -2
- package/engine/tests/parity_mutationgate_test.go +2 -2
- package/engine/tests/parity_resolve_test.go +1 -1
- package/engine/tests/parity_test.go +3 -3
- package/engine/tests/parity_tickafk_test.go +1 -1
- package/engine/validatepack.go +5 -5
- package/engine/validatepackskills.go +9 -9
- package/pack/.claude/agents/devrites-code-reviewer.md +21 -22
- package/pack/.claude/agents/devrites-devex-reviewer.md +17 -17
- package/pack/.claude/agents/devrites-doubt-reviewer.md +6 -6
- package/pack/.claude/agents/devrites-forge-judge.md +26 -26
- package/pack/.claude/agents/devrites-frontend-reviewer.md +17 -17
- package/pack/.claude/agents/devrites-performance-reviewer.md +19 -18
- package/pack/.claude/agents/devrites-plan-reviewer.md +29 -27
- package/pack/.claude/agents/devrites-retrospector.md +19 -19
- package/pack/.claude/agents/devrites-security-auditor.md +15 -15
- package/pack/.claude/agents/devrites-simplifier-reviewer.md +14 -14
- package/pack/.claude/agents/devrites-slice-wright.md +52 -51
- package/pack/.claude/agents/devrites-spec-reviewer.md +11 -11
- package/pack/.claude/agents/devrites-strategy-reviewer.md +21 -21
- package/pack/.claude/agents/devrites-test-analyst.md +13 -13
- package/pack/.claude/settings.json +1 -1
- package/pack/.claude/skills/devrites-api-interface/SKILL.md +12 -12
- package/pack/.claude/skills/devrites-audit/SKILL.md +7 -7
- package/pack/.claude/skills/devrites-browser-proof/SKILL.md +16 -16
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +14 -14
- package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
- package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
- package/pack/.claude/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
- package/pack/.claude/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
- package/pack/.claude/skills/devrites-debug-recovery/reference/trace.md +4 -4
- package/pack/.claude/skills/devrites-doubt/SKILL.md +14 -14
- package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +18 -18
- package/pack/.claude/skills/devrites-frontend-craft/reference/craft.md +17 -17
- package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +25 -25
- package/pack/.claude/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
- package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
- package/pack/.claude/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
- package/pack/.claude/skills/devrites-frontend-craft/reference/shape.md +13 -13
- package/pack/.claude/skills/devrites-interview/SKILL.md +27 -27
- package/pack/.claude/skills/devrites-lib/SKILL.md +18 -18
- package/pack/.claude/skills/devrites-lib/reference/model-tiers.md +5 -5
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
- package/pack/.claude/skills/devrites-lib/reference/standards/README.md +10 -10
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +37 -37
- package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
- package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +40 -40
- package/pack/.claude/skills/devrites-lib/reference/standards/coding-style.md +7 -7
- package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +23 -23
- package/pack/.claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +18 -18
- package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
- package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +10 -10
- package/pack/.claude/skills/devrites-lib/reference/standards/documentation.md +4 -4
- package/pack/.claude/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/elicitation.md +26 -26
- package/pack/.claude/skills/devrites-lib/reference/standards/error-handling.md +4 -4
- package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
- package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +3 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/observability.md +15 -15
- package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +8 -8
- package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +5 -5
- package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +31 -31
- package/pack/.claude/skills/devrites-lib/reference/standards/prose-style.md +25 -25
- package/pack/.claude/skills/devrites-lib/reference/standards/security.md +30 -30
- package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
- package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +40 -40
- package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +26 -26
- package/pack/.claude/skills/devrites-prose-craft/SKILL.md +5 -5
- package/pack/.claude/skills/devrites-refresh-indexes/SKILL.md +6 -6
- package/pack/.claude/skills/devrites-source-driven/SKILL.md +8 -8
- package/pack/.claude/skills/devrites-ux-shape/SKILL.md +33 -33
- package/pack/.claude/skills/devrites-ux-shape/reference/brief-template.md +6 -6
- package/pack/.claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
- package/pack/.claude/skills/rite/SKILL.md +7 -7
- package/pack/.claude/skills/rite/reference/menu.md +6 -6
- package/pack/.claude/skills/rite-adopt/SKILL.md +15 -15
- package/pack/.claude/skills/rite-adopt/reference/adoption.md +9 -9
- package/pack/.claude/skills/rite-adopt/reference/anti-patterns.md +6 -6
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +14 -14
- package/pack/.claude/skills/rite-autocomplete/reference/decision-policy.md +4 -4
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +7 -7
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
- package/pack/.claude/skills/rite-build/SKILL.md +22 -22
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +9 -9
- package/pack/.claude/skills/rite-build/reference/anti-patterns.md +6 -6
- package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +14 -14
- package/pack/.claude/skills/rite-build/reference/checkpoint.md +8 -8
- package/pack/.claude/skills/rite-build/reference/evidence-standard.md +1 -1
- package/pack/.claude/skills/rite-build/reference/forge.md +28 -29
- package/pack/.claude/skills/rite-build/reference/frontend-trigger.md +2 -2
- package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +3 -3
- package/pack/.claude/skills/rite-build/reference/output.md +1 -1
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +44 -44
- package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
- package/pack/.claude/skills/rite-build/reference/tdd.md +6 -6
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +23 -23
- package/pack/.claude/skills/rite-converge/SKILL.md +17 -17
- package/pack/.claude/skills/rite-converge/reference/anti-patterns.md +7 -7
- package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +14 -14
- package/pack/.claude/skills/rite-customize/SKILL.md +2 -2
- package/pack/.claude/skills/rite-define/SKILL.md +25 -25
- package/pack/.claude/skills/rite-define/reference/anti-patterns.md +5 -5
- package/pack/.claude/skills/rite-define/reference/gates.md +13 -13
- package/pack/.claude/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/.claude/skills/rite-doctor/SKILL.md +11 -11
- package/pack/.claude/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/.claude/skills/rite-explain/SKILL.md +22 -22
- package/pack/.claude/skills/rite-explain/reference/intake.md +16 -16
- package/pack/.claude/skills/rite-frame/SKILL.md +22 -22
- package/pack/.claude/skills/rite-frame/reference/failure-modes.md +13 -13
- package/pack/.claude/skills/rite-handoff/SKILL.md +12 -12
- package/pack/.claude/skills/rite-learn/SKILL.md +23 -23
- package/pack/.claude/skills/rite-plan/SKILL.md +21 -21
- package/pack/.claude/skills/rite-plan/reference/anti-patterns.md +3 -3
- package/pack/.claude/skills/rite-plan/reference/dependency-graph.md +1 -1
- package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +3 -3
- package/pack/.claude/skills/rite-plan/reference/slicing.md +9 -9
- package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +3 -3
- package/pack/.claude/skills/rite-polish/SKILL.md +11 -11
- package/pack/.claude/skills/rite-polish/reference/anti-patterns.md +8 -8
- package/pack/.claude/skills/rite-polish/reference/backend-polish.md +13 -13
- package/pack/.claude/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
- package/pack/.claude/skills/rite-polish/reference/code.md +26 -26
- package/pack/.claude/skills/rite-polish/reference/harden-checklist.md +31 -31
- package/pack/.claude/skills/rite-polish/reference/ui.md +23 -23
- package/pack/.claude/skills/rite-pov/SKILL.md +3 -3
- package/pack/.claude/skills/rite-pr-feedback/SKILL.md +2 -2
- package/pack/.claude/skills/rite-pressure-test/SKILL.md +14 -14
- package/pack/.claude/skills/rite-prototype/SKILL.md +13 -13
- package/pack/.claude/skills/rite-prove/SKILL.md +17 -17
- package/pack/.claude/skills/rite-prove/reference/anti-patterns.md +4 -4
- package/pack/.claude/skills/rite-prove/reference/browser-proof.md +2 -2
- package/pack/.claude/skills/rite-prove/reference/failure-triage.md +4 -4
- package/pack/.claude/skills/rite-prove/reference/proof-ladder.md +6 -6
- package/pack/.claude/skills/rite-prove/reference/test-command-discovery.md +1 -1
- package/pack/.claude/skills/rite-quick/SKILL.md +22 -22
- package/pack/.claude/skills/rite-resolve/SKILL.md +18 -18
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +7 -7
- package/pack/.claude/skills/rite-review/SKILL.md +34 -34
- package/pack/.claude/skills/rite-review/reference/anti-patterns.md +4 -4
- package/pack/.claude/skills/rite-review/reference/cognitive-load.md +22 -22
- package/pack/.claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
- package/pack/.claude/skills/rite-review/reference/five-axis-review.md +8 -8
- package/pack/.claude/skills/rite-review/reference/nielsen-heuristics.md +14 -14
- package/pack/.claude/skills/rite-review/reference/performance-checklist.md +14 -14
- package/pack/.claude/skills/rite-review/reference/security-review.md +9 -9
- package/pack/.claude/skills/rite-seal/SKILL.md +26 -26
- package/pack/.claude/skills/rite-seal/reference/anti-patterns.md +8 -8
- package/pack/.claude/skills/rite-seal/reference/conventions-ledger.md +8 -8
- package/pack/.claude/skills/rite-seal/reference/final-evidence.md +9 -9
- package/pack/.claude/skills/rite-seal/reference/go-no-go.md +9 -9
- package/pack/.claude/skills/rite-seal/reference/phase-contract.md +43 -43
- package/pack/.claude/skills/rite-ship/SKILL.md +12 -12
- package/pack/.claude/skills/rite-ship/reference/anti-patterns.md +5 -5
- package/pack/.claude/skills/rite-ship/reference/close-out.md +2 -2
- package/pack/.claude/skills/rite-ship/reference/design-memory.md +22 -22
- package/pack/.claude/skills/rite-ship/reference/git-ship.md +10 -10
- package/pack/.claude/skills/rite-ship/reference/ledger.md +9 -9
- package/pack/.claude/skills/rite-ship/reference/rollout.md +11 -11
- package/pack/.claude/skills/rite-ship/reference/ship-template.md +1 -1
- package/pack/.claude/skills/rite-spec/SKILL.md +45 -45
- package/pack/.claude/skills/rite-spec/reference/acceptance-criteria.md +4 -4
- package/pack/.claude/skills/rite-spec/reference/anti-patterns.md +6 -6
- package/pack/.claude/skills/rite-spec/reference/interview-patterns.md +3 -3
- package/pack/.claude/skills/rite-spec/reference/investigation.md +21 -21
- package/pack/.claude/skills/rite-spec/reference/question-protocol.md +9 -9
- package/pack/.claude/skills/rite-spec/reference/references-intake.md +8 -8
- package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +19 -19
- package/pack/.claude/skills/rite-status/SKILL.md +13 -13
- package/pack/.claude/skills/rite-temper/SKILL.md +29 -29
- package/pack/.claude/skills/rite-temper/reference/anti-patterns.md +11 -11
- package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +20 -20
- package/pack/.claude/skills/rite-temper/reference/scope-modes.md +16 -16
- package/pack/.claude/skills/rite-temper/reference/significance.md +10 -10
- package/pack/.claude/skills/rite-temper/reference/strategy-template.md +14 -14
- package/pack/.claude/skills/rite-vet/SKILL.md +31 -31
- package/pack/.claude/skills/rite-vet/reference/anti-patterns.md +14 -14
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +10 -10
- package/pack/.claude/skills/rite-vet/reference/cross-model.md +9 -9
- package/pack/.claude/skills/rite-vet/reference/depth.md +14 -14
- package/pack/.claude/skills/rite-vet/reference/eng-lenses.md +9 -9
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +28 -28
- package/pack/.claude/skills/rite-zoom-out/SKILL.md +18 -18
- package/pack/generated/claude/agents/devrites-code-reviewer.md +21 -22
- package/pack/generated/claude/agents/devrites-devex-reviewer.md +17 -17
- package/pack/generated/claude/agents/devrites-doubt-reviewer.md +6 -6
- package/pack/generated/claude/agents/devrites-forge-judge.md +26 -26
- package/pack/generated/claude/agents/devrites-frontend-reviewer.md +17 -17
- package/pack/generated/claude/agents/devrites-performance-reviewer.md +19 -18
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +29 -27
- package/pack/generated/claude/agents/devrites-retrospector.md +19 -19
- package/pack/generated/claude/agents/devrites-security-auditor.md +15 -15
- package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +14 -14
- package/pack/generated/claude/agents/devrites-slice-wright.md +52 -51
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +11 -11
- package/pack/generated/claude/agents/devrites-strategy-reviewer.md +21 -21
- package/pack/generated/claude/agents/devrites-test-analyst.md +13 -13
- package/pack/generated/claude/settings.json +1 -1
- package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +12 -12
- package/pack/generated/claude/skills/devrites-audit/SKILL.md +7 -7
- package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +16 -16
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +14 -14
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/trace.md +4 -4
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +14 -14
- package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +18 -18
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/craft.md +17 -17
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +25 -25
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/shape.md +13 -13
- package/pack/generated/claude/skills/devrites-interview/SKILL.md +27 -27
- package/pack/generated/claude/skills/devrites-lib/SKILL.md +18 -18
- package/pack/generated/claude/skills/devrites-lib/reference/model-tiers.md +5 -5
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +10 -10
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +37 -37
- package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
- package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +40 -40
- package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +7 -7
- package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +23 -23
- package/pack/generated/claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +18 -18
- package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
- package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +10 -10
- package/pack/generated/claude/skills/devrites-lib/reference/standards/documentation.md +4 -4
- package/pack/generated/claude/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/elicitation.md +26 -26
- package/pack/generated/claude/skills/devrites-lib/reference/standards/error-handling.md +4 -4
- package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
- package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +3 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/observability.md +15 -15
- package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +8 -8
- package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +5 -5
- package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +31 -31
- package/pack/generated/claude/skills/devrites-lib/reference/standards/prose-style.md +25 -25
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +30 -30
- package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
- package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +40 -40
- package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +26 -26
- package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +5 -5
- package/pack/generated/claude/skills/devrites-refresh-indexes/SKILL.md +6 -6
- package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +8 -8
- package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +33 -33
- package/pack/generated/claude/skills/devrites-ux-shape/reference/brief-template.md +6 -6
- package/pack/generated/claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
- package/pack/generated/claude/skills/rite/SKILL.md +7 -7
- package/pack/generated/claude/skills/rite/reference/menu.md +6 -6
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +15 -15
- package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +9 -9
- package/pack/generated/claude/skills/rite-adopt/reference/anti-patterns.md +6 -6
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +14 -14
- package/pack/generated/claude/skills/rite-autocomplete/reference/decision-policy.md +4 -4
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +7 -7
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
- package/pack/generated/claude/skills/rite-build/SKILL.md +22 -22
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +9 -9
- package/pack/generated/claude/skills/rite-build/reference/anti-patterns.md +6 -6
- package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +14 -14
- package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +8 -8
- package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/forge.md +28 -29
- package/pack/generated/claude/skills/rite-build/reference/frontend-trigger.md +2 -2
- package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +3 -3
- package/pack/generated/claude/skills/rite-build/reference/output.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +44 -44
- package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/tdd.md +6 -6
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +23 -23
- package/pack/generated/claude/skills/rite-converge/SKILL.md +17 -17
- package/pack/generated/claude/skills/rite-converge/reference/anti-patterns.md +7 -7
- package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +14 -14
- package/pack/generated/claude/skills/rite-customize/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-define/SKILL.md +25 -25
- package/pack/generated/claude/skills/rite-define/reference/anti-patterns.md +5 -5
- package/pack/generated/claude/skills/rite-define/reference/gates.md +13 -13
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/generated/claude/skills/rite-doctor/SKILL.md +11 -11
- package/pack/generated/claude/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-explain/SKILL.md +22 -22
- package/pack/generated/claude/skills/rite-explain/reference/intake.md +16 -16
- package/pack/generated/claude/skills/rite-frame/SKILL.md +22 -22
- package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +13 -13
- package/pack/generated/claude/skills/rite-handoff/SKILL.md +12 -12
- package/pack/generated/claude/skills/rite-learn/SKILL.md +23 -23
- package/pack/generated/claude/skills/rite-plan/SKILL.md +21 -21
- package/pack/generated/claude/skills/rite-plan/reference/anti-patterns.md +3 -3
- package/pack/generated/claude/skills/rite-plan/reference/dependency-graph.md +1 -1
- package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +3 -3
- package/pack/generated/claude/skills/rite-plan/reference/slicing.md +9 -9
- package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +3 -3
- package/pack/generated/claude/skills/rite-polish/SKILL.md +11 -11
- package/pack/generated/claude/skills/rite-polish/reference/anti-patterns.md +8 -8
- package/pack/generated/claude/skills/rite-polish/reference/backend-polish.md +13 -13
- package/pack/generated/claude/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
- package/pack/generated/claude/skills/rite-polish/reference/code.md +26 -26
- package/pack/generated/claude/skills/rite-polish/reference/harden-checklist.md +31 -31
- package/pack/generated/claude/skills/rite-polish/reference/ui.md +23 -23
- package/pack/generated/claude/skills/rite-pov/SKILL.md +3 -3
- package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +14 -14
- package/pack/generated/claude/skills/rite-prototype/SKILL.md +13 -13
- package/pack/generated/claude/skills/rite-prove/SKILL.md +17 -17
- package/pack/generated/claude/skills/rite-prove/reference/anti-patterns.md +4 -4
- package/pack/generated/claude/skills/rite-prove/reference/browser-proof.md +2 -2
- package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +4 -4
- package/pack/generated/claude/skills/rite-prove/reference/proof-ladder.md +6 -6
- package/pack/generated/claude/skills/rite-prove/reference/test-command-discovery.md +1 -1
- package/pack/generated/claude/skills/rite-quick/SKILL.md +22 -22
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +18 -18
- package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +7 -7
- package/pack/generated/claude/skills/rite-review/SKILL.md +34 -34
- package/pack/generated/claude/skills/rite-review/reference/anti-patterns.md +4 -4
- package/pack/generated/claude/skills/rite-review/reference/cognitive-load.md +22 -22
- package/pack/generated/claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
- package/pack/generated/claude/skills/rite-review/reference/five-axis-review.md +8 -8
- package/pack/generated/claude/skills/rite-review/reference/nielsen-heuristics.md +14 -14
- package/pack/generated/claude/skills/rite-review/reference/performance-checklist.md +14 -14
- package/pack/generated/claude/skills/rite-review/reference/security-review.md +9 -9
- package/pack/generated/claude/skills/rite-seal/SKILL.md +26 -26
- package/pack/generated/claude/skills/rite-seal/reference/anti-patterns.md +8 -8
- package/pack/generated/claude/skills/rite-seal/reference/conventions-ledger.md +8 -8
- package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +9 -9
- package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +9 -9
- package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +43 -43
- package/pack/generated/claude/skills/rite-ship/SKILL.md +12 -12
- package/pack/generated/claude/skills/rite-ship/reference/anti-patterns.md +5 -5
- package/pack/generated/claude/skills/rite-ship/reference/close-out.md +2 -2
- package/pack/generated/claude/skills/rite-ship/reference/design-memory.md +22 -22
- package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +10 -10
- package/pack/generated/claude/skills/rite-ship/reference/ledger.md +9 -9
- package/pack/generated/claude/skills/rite-ship/reference/rollout.md +11 -11
- package/pack/generated/claude/skills/rite-ship/reference/ship-template.md +1 -1
- package/pack/generated/claude/skills/rite-spec/SKILL.md +45 -45
- package/pack/generated/claude/skills/rite-spec/reference/acceptance-criteria.md +4 -4
- package/pack/generated/claude/skills/rite-spec/reference/anti-patterns.md +6 -6
- package/pack/generated/claude/skills/rite-spec/reference/interview-patterns.md +3 -3
- package/pack/generated/claude/skills/rite-spec/reference/investigation.md +21 -21
- package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +9 -9
- package/pack/generated/claude/skills/rite-spec/reference/references-intake.md +8 -8
- package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +19 -19
- package/pack/generated/claude/skills/rite-status/SKILL.md +13 -13
- package/pack/generated/claude/skills/rite-temper/SKILL.md +29 -29
- package/pack/generated/claude/skills/rite-temper/reference/anti-patterns.md +11 -11
- package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +20 -20
- package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +16 -16
- package/pack/generated/claude/skills/rite-temper/reference/significance.md +10 -10
- package/pack/generated/claude/skills/rite-temper/reference/strategy-template.md +14 -14
- package/pack/generated/claude/skills/rite-vet/SKILL.md +31 -31
- package/pack/generated/claude/skills/rite-vet/reference/anti-patterns.md +14 -14
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +10 -10
- package/pack/generated/claude/skills/rite-vet/reference/cross-model.md +9 -9
- package/pack/generated/claude/skills/rite-vet/reference/depth.md +14 -14
- package/pack/generated/claude/skills/rite-vet/reference/eng-lenses.md +9 -9
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +28 -28
- package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +18 -18
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +21 -22
- package/pack/generated/codex/agents/devrites-devex-reviewer.toml +17 -17
- package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +6 -6
- package/pack/generated/codex/agents/devrites-forge-judge.toml +26 -26
- package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +17 -17
- package/pack/generated/codex/agents/devrites-performance-reviewer.toml +19 -18
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +29 -27
- package/pack/generated/codex/agents/devrites-retrospector.toml +19 -19
- package/pack/generated/codex/agents/devrites-security-auditor.toml +15 -15
- package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +14 -14
- package/pack/generated/codex/agents/devrites-slice-wright.toml +52 -51
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +11 -11
- package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +21 -21
- package/pack/generated/codex/agents/devrites-test-analyst.toml +13 -13
- package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +15 -15
- package/pack/generated/codex/skills/devrites-audit/SKILL.md +10 -10
- package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +19 -19
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +17 -17
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/trace.md +4 -4
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +17 -17
- package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +20 -20
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/craft.md +17 -17
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +25 -25
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/shape.md +13 -13
- package/pack/generated/codex/skills/devrites-interview/SKILL.md +30 -30
- package/pack/generated/codex/skills/devrites-lib/SKILL.md +21 -21
- package/pack/generated/codex/skills/devrites-lib/reference/model-tiers.md +5 -5
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +10 -10
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +37 -37
- package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
- package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +40 -40
- package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +7 -7
- package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +23 -23
- package/pack/generated/codex/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +18 -18
- package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
- package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +10 -10
- package/pack/generated/codex/skills/devrites-lib/reference/standards/documentation.md +4 -4
- package/pack/generated/codex/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/elicitation.md +26 -26
- package/pack/generated/codex/skills/devrites-lib/reference/standards/error-handling.md +4 -4
- package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
- package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +3 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/observability.md +15 -15
- package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +8 -8
- package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +5 -5
- package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +31 -31
- package/pack/generated/codex/skills/devrites-lib/reference/standards/prose-style.md +25 -25
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +30 -30
- package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
- package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +40 -40
- package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +26 -26
- package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +8 -8
- package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +9 -9
- package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +11 -11
- package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +36 -36
- package/pack/generated/codex/skills/devrites-ux-shape/reference/brief-template.md +6 -6
- package/pack/generated/codex/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
- package/pack/generated/codex/skills/rite/SKILL.md +10 -10
- package/pack/generated/codex/skills/rite/reference/menu.md +6 -6
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +18 -18
- package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +9 -9
- package/pack/generated/codex/skills/rite-adopt/reference/anti-patterns.md +6 -6
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +17 -17
- package/pack/generated/codex/skills/rite-autocomplete/reference/decision-policy.md +4 -4
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +7 -7
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
- package/pack/generated/codex/skills/rite-build/SKILL.md +25 -25
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +9 -9
- package/pack/generated/codex/skills/rite-build/reference/anti-patterns.md +6 -6
- package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +14 -14
- package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +8 -8
- package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/forge.md +28 -29
- package/pack/generated/codex/skills/rite-build/reference/frontend-trigger.md +2 -2
- package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +3 -3
- package/pack/generated/codex/skills/rite-build/reference/output.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +44 -44
- package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/tdd.md +6 -6
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +23 -23
- package/pack/generated/codex/skills/rite-converge/SKILL.md +20 -20
- package/pack/generated/codex/skills/rite-converge/reference/anti-patterns.md +7 -7
- package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +14 -14
- package/pack/generated/codex/skills/rite-customize/SKILL.md +5 -5
- package/pack/generated/codex/skills/rite-define/SKILL.md +28 -28
- package/pack/generated/codex/skills/rite-define/reference/anti-patterns.md +5 -5
- package/pack/generated/codex/skills/rite-define/reference/gates.md +13 -13
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/generated/codex/skills/rite-doctor/SKILL.md +14 -14
- package/pack/generated/codex/skills/rite-dogfood/SKILL.md +5 -5
- package/pack/generated/codex/skills/rite-explain/SKILL.md +25 -25
- package/pack/generated/codex/skills/rite-explain/reference/intake.md +16 -16
- package/pack/generated/codex/skills/rite-frame/SKILL.md +25 -25
- package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +13 -13
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +15 -15
- package/pack/generated/codex/skills/rite-learn/SKILL.md +26 -26
- package/pack/generated/codex/skills/rite-plan/SKILL.md +24 -24
- package/pack/generated/codex/skills/rite-plan/reference/anti-patterns.md +3 -3
- package/pack/generated/codex/skills/rite-plan/reference/dependency-graph.md +1 -1
- package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +3 -3
- package/pack/generated/codex/skills/rite-plan/reference/slicing.md +9 -9
- package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +3 -3
- package/pack/generated/codex/skills/rite-polish/SKILL.md +14 -14
- package/pack/generated/codex/skills/rite-polish/reference/anti-patterns.md +8 -8
- package/pack/generated/codex/skills/rite-polish/reference/backend-polish.md +13 -13
- package/pack/generated/codex/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
- package/pack/generated/codex/skills/rite-polish/reference/code.md +26 -26
- package/pack/generated/codex/skills/rite-polish/reference/harden-checklist.md +31 -31
- package/pack/generated/codex/skills/rite-polish/reference/ui.md +23 -23
- package/pack/generated/codex/skills/rite-pov/SKILL.md +6 -6
- package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +5 -5
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +17 -17
- package/pack/generated/codex/skills/rite-prototype/SKILL.md +16 -16
- package/pack/generated/codex/skills/rite-prove/SKILL.md +20 -20
- package/pack/generated/codex/skills/rite-prove/reference/anti-patterns.md +4 -4
- package/pack/generated/codex/skills/rite-prove/reference/browser-proof.md +2 -2
- package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +4 -4
- package/pack/generated/codex/skills/rite-prove/reference/proof-ladder.md +6 -6
- package/pack/generated/codex/skills/rite-prove/reference/test-command-discovery.md +1 -1
- package/pack/generated/codex/skills/rite-quick/SKILL.md +25 -25
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +21 -21
- package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +7 -7
- package/pack/generated/codex/skills/rite-review/SKILL.md +37 -37
- package/pack/generated/codex/skills/rite-review/reference/anti-patterns.md +4 -4
- package/pack/generated/codex/skills/rite-review/reference/cognitive-load.md +22 -22
- package/pack/generated/codex/skills/rite-review/reference/feature-scoped-review.md +2 -2
- package/pack/generated/codex/skills/rite-review/reference/five-axis-review.md +8 -8
- package/pack/generated/codex/skills/rite-review/reference/nielsen-heuristics.md +14 -14
- package/pack/generated/codex/skills/rite-review/reference/performance-checklist.md +14 -14
- package/pack/generated/codex/skills/rite-review/reference/security-review.md +9 -9
- package/pack/generated/codex/skills/rite-seal/SKILL.md +29 -29
- package/pack/generated/codex/skills/rite-seal/reference/anti-patterns.md +8 -8
- package/pack/generated/codex/skills/rite-seal/reference/conventions-ledger.md +8 -8
- package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +9 -9
- package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +9 -9
- package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +43 -43
- package/pack/generated/codex/skills/rite-ship/SKILL.md +15 -15
- package/pack/generated/codex/skills/rite-ship/reference/anti-patterns.md +5 -5
- package/pack/generated/codex/skills/rite-ship/reference/close-out.md +2 -2
- package/pack/generated/codex/skills/rite-ship/reference/design-memory.md +22 -22
- package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +10 -10
- package/pack/generated/codex/skills/rite-ship/reference/ledger.md +9 -9
- package/pack/generated/codex/skills/rite-ship/reference/rollout.md +11 -11
- package/pack/generated/codex/skills/rite-ship/reference/ship-template.md +1 -1
- package/pack/generated/codex/skills/rite-spec/SKILL.md +48 -48
- package/pack/generated/codex/skills/rite-spec/reference/acceptance-criteria.md +4 -4
- package/pack/generated/codex/skills/rite-spec/reference/anti-patterns.md +6 -6
- package/pack/generated/codex/skills/rite-spec/reference/interview-patterns.md +3 -3
- package/pack/generated/codex/skills/rite-spec/reference/investigation.md +21 -21
- package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +9 -9
- package/pack/generated/codex/skills/rite-spec/reference/references-intake.md +8 -8
- package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +19 -19
- package/pack/generated/codex/skills/rite-status/SKILL.md +16 -16
- package/pack/generated/codex/skills/rite-temper/SKILL.md +32 -32
- package/pack/generated/codex/skills/rite-temper/reference/anti-patterns.md +11 -11
- package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +20 -20
- package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +16 -16
- package/pack/generated/codex/skills/rite-temper/reference/significance.md +10 -10
- package/pack/generated/codex/skills/rite-temper/reference/strategy-template.md +14 -14
- package/pack/generated/codex/skills/rite-vet/SKILL.md +34 -34
- package/pack/generated/codex/skills/rite-vet/reference/anti-patterns.md +14 -14
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +10 -10
- package/pack/generated/codex/skills/rite-vet/reference/cross-model.md +9 -9
- package/pack/generated/codex/skills/rite-vet/reference/depth.md +14 -14
- package/pack/generated/codex/skills/rite-vet/reference/eng-lenses.md +9 -9
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +28 -28
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +21 -21
- package/package.json +2 -2
- package/scripts/build-binaries.sh +1 -1
- package/scripts/build-host-artifacts.sh +1 -1
- package/scripts/build-release-tarball.sh +1 -1
- package/scripts/check-cross-refs.py +8 -8
- package/scripts/check-invocation-integrity.py +4 -4
- package/scripts/check-no-global-writes.sh +2 -2
- package/scripts/check-reply-contract.sh +1 -1
- package/scripts/check-rule-uniqueness.sh +2 -2
- package/scripts/codex-generate.sh +5 -5
- package/scripts/devrites-detect.sh +33 -33
- package/scripts/eval-runner.py +7 -7
- package/scripts/grade-feature.sh +14 -14
- package/scripts/install-lib.sh +2 -2
- package/scripts/pin.sh +12 -12
- package/scripts/run-behavioral-evals.sh +12 -12
- package/scripts/run-evals.sh +1 -1
- package/scripts/run-outcome-evals.sh +12 -12
- package/scripts/scan-pack-security.py +4 -4
- package/scripts/scan-supply-chain-iocs.py +7 -7
- package/scripts/skills-inventory.mjs +7 -8
- package/scripts/sync-version.sh +2 -2
- package/scripts/validate-workflow-security.py +12 -6
- package/scripts/validate-workspace-schema.py +2 -2
- package/scripts/validate.sh +7 -7
|
@@ -40,7 +40,7 @@ gates.
|
|
|
40
40
|
> but phase gates should treat a missing engine as a setup problem.
|
|
41
41
|
|
|
42
42
|
0. **Rules + AFK + readiness check.** Read `.claude/skills/devrites-lib/reference/standards/core.md` first. Then **run the
|
|
43
|
-
shared orientation preamble
|
|
43
|
+
shared orientation preamble**. It prints `state.md`, the artifacts present, the run
|
|
44
44
|
mode (HITL/AFK), and the open-question tally by gate, deterministically:
|
|
45
45
|
```bash
|
|
46
46
|
devrites-engine preamble
|
|
@@ -48,7 +48,7 @@ gates.
|
|
|
48
48
|
```
|
|
49
49
|
Treat the snapshot as the canonical machine-readable status; if you need to tell the
|
|
50
50
|
user the next command, use `nextCommands.claude` in Claude Code or `nextCommands.codex`
|
|
51
|
-
in Codex. Then **run the readiness gate
|
|
51
|
+
in Codex. Then **run the readiness gate**. It enforces the step-0 stop conditions by exit code,
|
|
52
52
|
not by memory:
|
|
53
53
|
```bash
|
|
54
54
|
devrites-engine build-readiness; echo "readiness rc=$?"
|
|
@@ -65,9 +65,9 @@ gates.
|
|
|
65
65
|
the count in `state.md` or remove the sentinel to continue). See
|
|
66
66
|
[`afk-discipline.md`](afk-discipline.md).
|
|
67
67
|
1. Read `spec.md`, `plan.md`, `tasks.md`, `assumptions.md`, `drift.md`, and `test-plan.md`
|
|
68
|
-
if present (the vetted coverage target from `/rite-vet
|
|
68
|
+
if present (the vetted coverage target from `/rite-vet`: the slice's tests come from
|
|
69
69
|
here when it exists). `state.md` and the open-`questions.md` tally are already in the
|
|
70
|
-
preamble digest from step 0
|
|
70
|
+
preamble digest from step 0: re-read `questions.md` only for the full text of a flagged
|
|
71
71
|
blocking question.
|
|
72
72
|
If a **blocking `[NEEDS CLARIFICATION]`** remains or the spec/plan readiness gates
|
|
73
73
|
don't pass, stop → `/rite-spec` (to resolve) or `/rite-plan` (to repair). Don't build
|
|
@@ -81,22 +81,22 @@ gates.
|
|
|
81
81
|
checkpoint as a ranked **option set** and resolve it **before** any code lands, per
|
|
82
82
|
[`checkpoint-protocol.md`](checkpoint-protocol.md). Branch on whether
|
|
83
83
|
a human is here:
|
|
84
|
-
- **Human present (interactive
|
|
84
|
+
- **Human present (interactive: no `.devrites/AFK`) → ask inline via `AskUserQuestion`.**
|
|
85
85
|
This is the default for an interactive build. Render 2-4 options, the recommended one
|
|
86
86
|
**first and labelled `(Recommended)`**, each with its dimension-tagged rationale + the
|
|
87
87
|
trade-off it accepts, plus the `Something else — I'll describe it` escape hatch. The
|
|
88
88
|
human picks; record the pick to `questions.md` (`answered`) + `decisions.md` (through the
|
|
89
|
-
`devrites-engine resolve` writer), clear the gate, and **continue to step 3 in place
|
|
89
|
+
`devrites-engine resolve` writer), clear the gate, and **continue to step 3 in place**: do **not**
|
|
90
90
|
STOP, do **not** route through `/rite-resolve`.
|
|
91
91
|
- **Human absent / AFK (`.devrites/AFK` present) → auto-pick or persist + STOP.** For a gate
|
|
92
92
|
in `allow_gates`, auto-pick the recommended option (option 1) and proceed; otherwise
|
|
93
93
|
append the `questions.md` entry, write the `Awaiting human` block to `state.md`, set
|
|
94
|
-
`Status: awaiting_human`, fire the `notify:` hook, then **STOP
|
|
94
|
+
`Status: awaiting_human`, fire the `notify:` hook, then **STOP**: resume when the user
|
|
95
95
|
runs `/rite-resolve <qid> "<answer>"`. `blocking` / `escalating` / irreversible-risk gates
|
|
96
96
|
always take this stop path, never the AFK auto-pick.
|
|
97
|
-
3. **Snapshot the tree, then dispatch the build core to `devrites-slice-wright
|
|
97
|
+
3. **Snapshot the tree, then dispatch the build core to `devrites-slice-wright`:** one `Task`
|
|
98
98
|
call, fresh context. **First**, capture the pre-dispatch tree so the reconcile gate (step 6)
|
|
99
|
-
can prove you never touched source
|
|
99
|
+
can prove you never touched source: run this immediately before the `Task` call:
|
|
100
100
|
```bash
|
|
101
101
|
devrites-engine reconcile snapshot
|
|
102
102
|
```
|
|
@@ -105,7 +105,7 @@ gates.
|
|
|
105
105
|
```bash
|
|
106
106
|
devrites-engine stuck log "$(cat .devrites/ACTIVE 2>/dev/null)" dispatch "<slice id>"
|
|
107
107
|
```
|
|
108
|
-
**Forge branch
|
|
108
|
+
**Forge branch: only if the selected slice is `Forge: yes`.** Instead of the single dispatch
|
|
109
109
|
below, run the competitive build per [`forge.md`](forge.md): K=2-3 candidate
|
|
110
110
|
wrights, each in an **isolated git worktree** on the distinct strategy `/rite-vet` named, then a
|
|
111
111
|
fresh-context [`devrites-forge-judge`](../../../agents/devrites-forge-judge.md) scores them against
|
|
@@ -115,7 +115,7 @@ gates.
|
|
|
115
115
|
a single wright does (one structured artifact, for the winner), so steps 4-7 (doubt, fail-on-red,
|
|
116
116
|
reconcile against the winner's claimed set, record, stop) run **unchanged**. If you cannot give
|
|
117
117
|
the judge an objective scorecard (the slice lacks acceptance / `test-plan.md` coverage) or cannot
|
|
118
|
-
name two genuinely different strategies, the flag is stale
|
|
118
|
+
name two genuinely different strategies, the flag is stale: clear it and build single-path. The
|
|
119
119
|
single-writer invariant is intact: each candidate owns its own tree, exactly one author's diff
|
|
120
120
|
lands. Then **stop** here for this slice; the steps below are the default single-path dispatch.
|
|
121
121
|
|
|
@@ -123,33 +123,33 @@ gates.
|
|
|
123
123
|
[`wright-dispatch.md`](wright-dispatch.md): the slice goal, acceptance
|
|
124
124
|
criteria, and **scope boundary**; the paths it may touch (`touched-files.md`); the context
|
|
125
125
|
paths to read (`spec.md`, `plan.md`, `decisions.md`, `assumptions.md`, `.devrites/principles.md`
|
|
126
|
-
when present
|
|
127
|
-
when present
|
|
128
|
-
coverage the wright must write
|
|
126
|
+
when present (the binding invariants the slice must honor) plus `test-plan.md`
|
|
127
|
+
when present (its per-gap test requirements + regression-criticals for this slice are the
|
|
128
|
+
coverage the wright must write) and `design-brief.md`
|
|
129
129
|
when the slice touches UI per [`frontend-trigger.md`](frontend-trigger.md)); and the
|
|
130
130
|
`.claude/skills/devrites-lib/reference/standards/` files in scope. The wright **orients** on the project's idiom (using a
|
|
131
|
-
code-intelligence index **if available**
|
|
131
|
+
code-intelligence index **if available** (`codebase-memory-mcp` first, cross-checked with
|
|
132
132
|
`codegraph` (`.codegraph/` / `codegraph_*`) + `graphify` (`graphify-out/`), else standard
|
|
133
|
-
methods (LSP / `Read`/`Grep`/`Glob`); see `.claude/skills/devrites-lib/reference/standards/tooling.md`
|
|
133
|
+
methods (LSP / `Read`/`Grep`/`Glob`); see `.claude/skills/devrites-lib/reference/standards/tooling.md`) for
|
|
134
134
|
placement/callers/impact), writes the **failing test first** when
|
|
135
135
|
behaviour changes ([`tdd.md`](tdd.md)), implements the **smallest complete** version in
|
|
136
136
|
the project's style (applying `devrites-frontend-craft` to `design-brief.md` for UI, and
|
|
137
|
-
`devrites-source-driven`
|
|
137
|
+
`devrites-source-driven` (with context7 if available) for uncertain framework facts), runs the slice's **targeted tests**
|
|
138
138
|
(plus typecheck / lint / build where the project has them), and returns a structured artifact
|
|
139
|
-
|
|
139
|
+
: **code + tests only; it does not write the workspace files.** If the slice is UI but no `design-brief.md` exists (e.g. a spec written before
|
|
140
140
|
shaping), shape it via `devrites-ux-shape` before the wright codes. If the `Task` tool is
|
|
141
|
-
unavailable, run the wright's discipline **inline** as a flagged fallback (see the reference)
|
|
142
|
-
|
|
141
|
+
unavailable, run the wright's discipline **inline** as a flagged fallback (see the reference).
|
|
142
|
+
Same one-slice cycle, no isolation; in that case write
|
|
143
143
|
`.devrites/work/<slug>/.reconcile-inline` so the reconcile gate skips (you are legitimately
|
|
144
144
|
the writer in this fallback).
|
|
145
145
|
4. **Doubt the decisions it stood up.** For each entry in the wright's `Decisions stood`
|
|
146
146
|
(branching, boundary crossing, data model, auth, public API, migration, user-flow change,
|
|
147
|
-
"this is safe/scales") apply `devrites-doubt` **before accepting the slice
|
|
147
|
+
"this is safe/scales") apply `devrites-doubt` **before accepting the slice**: the writer
|
|
148
148
|
doesn't grade its own decisions. Each `devrites-doubt` invocation **dispatches the
|
|
149
149
|
`devrites-doubt-reviewer` subagent** (doing the adversarial pass inline is the writer grading
|
|
150
|
-
itself
|
|
150
|
+
itself: the thing this step exists to forbid). **Completion criterion (checkable):** step 4
|
|
151
151
|
is done only when **every** `Decisions stood` entry carries a recorded `devrites-doubt`
|
|
152
|
-
verdict
|
|
152
|
+
verdict (`accept`, or `reject` + the required changes) in `decisions.md` (accepted
|
|
153
153
|
trade-offs) / `questions.md` (open gates). A `Decisions stood` entry with **no verdict on
|
|
154
154
|
record** means doubt did not run for it: **do not enter step 5 and do not mark the slice
|
|
155
155
|
`built`.** Log each dispatch so the seal can prove doubt ran (the footprint already counts a
|
|
@@ -163,49 +163,49 @@ gates.
|
|
|
163
163
|
`Status: awaiting_human`; a scope-changing answer → `/rite-plan repair` (Spec Drift Guard),
|
|
164
164
|
never silently into the slice. **If an irreversible-risk item shows up under the wright's
|
|
165
165
|
`Decisions stood` rather than `Escalation`**, treat that misclassification as itself a
|
|
166
|
-
blocking protocol violation
|
|
167
|
-
**not** doubt-and-accept it. (The wright's return is the not-yet-load-bearing moment
|
|
168
|
-
slice isn't `built` or merged yet
|
|
166
|
+
blocking protocol violation: pause and re-dispatch with the item flagged out-of-bounds, do
|
|
167
|
+
**not** doubt-and-accept it. (The wright's return is the not-yet-load-bearing moment (the
|
|
168
|
+
slice isn't `built` or merged yet) so this post-return doubt is still pre-commit.)
|
|
169
169
|
**Principle check (same standing):** a wright return that breaks a declared principle
|
|
170
170
|
(reported in its `Principles` field, or that you detect against `.devrites/principles.md`) is
|
|
171
|
-
handled here like an irreversible-risk item
|
|
171
|
+
handled here like an irreversible-risk item: block, route to a human-approved scoped
|
|
172
172
|
exception in the register or stop; never doubt-and-accept a principle violation into the slice.
|
|
173
173
|
5. **Fail-on-red.** If the wright's `Gates` were red (targeted tests / types / lint) or it
|
|
174
174
|
couldn't verify: do **not** mark the slice `built`, and **do not fix the code yourself**.
|
|
175
|
-
First remedy
|
|
175
|
+
First remedy: **continue the same wright once** (`SendMessage` to it, carrying the failing
|
|
176
176
|
gate + its real output) so it fixes in its own context. This retry is for **objective
|
|
177
|
-
failures only
|
|
177
|
+
failures only**: red gate / type / lint / missing test coverage / UI browser-proof fail:
|
|
178
178
|
never a contested decision (that routes to `/rite-plan repair`). **Still red after the one
|
|
179
179
|
retry** → escalate: AFK → append a blocking question to `questions.md` (gate=blocking,
|
|
180
180
|
slice's SLA) + set `Status: awaiting_human`; HITL → pause as a blocking gate. Either way,
|
|
181
181
|
`Next step: /rite-plan unblock` until resolved.
|
|
182
|
-
6. **Record
|
|
182
|
+
6. **Record. You are the canonical writer.** **First, run the reconcile gate (A1):** write the
|
|
183
183
|
wright's reported `Files changed` paths (one per line) to
|
|
184
184
|
`.devrites/work/<slug>/.reconcile-claimed` (or the active legacy
|
|
185
185
|
`.devrites/features/<slug>/` workspace during migration), then:
|
|
186
186
|
```bash
|
|
187
187
|
devrites-engine reconcile check; echo "reconcile rc=$?"
|
|
188
188
|
```
|
|
189
|
-
**Exit 5 → hard STOP:** a source file changed outside the wright's claimed set
|
|
189
|
+
**Exit 5 → hard STOP:** a source file changed outside the wright's claimed set: code was
|
|
190
190
|
edited by something other than the wright (A1 breach). Revert it and re-dispatch the wright;
|
|
191
191
|
do **not** mark the slice `built`.
|
|
192
192
|
|
|
193
|
-
**Then run the test-integrity gate (anti-reward-hacking)
|
|
193
|
+
**Then run the test-integrity gate (anti-reward-hacking)**: prove the slice didn't reach
|
|
194
194
|
green by weakening its tests:
|
|
195
195
|
```bash
|
|
196
196
|
devrites-engine test-integrity; echo "test-integrity rc=$?"
|
|
197
197
|
```
|
|
198
|
-
**Exit 3 → hard STOP:** a test was deleted, skipped, or de-asserted since the slice base
|
|
198
|
+
**Exit 3 → hard STOP:** a test was deleted, skipped, or de-asserted since the slice base: the
|
|
199
199
|
slice went green by weakening its tests, a Critical protocol violation. Revert the weakening and
|
|
200
200
|
re-dispatch the wright; do **not** mark the slice `built`.
|
|
201
201
|
|
|
202
|
-
**Then run the package-existence gate (anti-hallucination)
|
|
202
|
+
**Then run the package-existence gate (anti-hallucination)**: every new third-party import must
|
|
203
203
|
be declared in a project manifest, not just imported:
|
|
204
204
|
```bash
|
|
205
205
|
devrites-engine package-existence; echo "package-existence rc=$?"
|
|
206
206
|
```
|
|
207
207
|
**Exit 3 → STOP:** an imported package is not declared in any manifest (`package.json`, `go.mod`,
|
|
208
|
-
`requirements.txt`, `pyproject.toml`, `Pipfile`, `Cargo.toml`)
|
|
208
|
+
`requirements.txt`, `pyproject.toml`, `Pipfile`, `Cargo.toml`): the classic shape of a
|
|
209
209
|
hallucinated or typo-squatted dependency. Confirm the name on the registry and declare it via the
|
|
210
210
|
package manager, or remove the import; do **not** mark the slice `built`. The gate is deterministic
|
|
211
211
|
and fail-open (not a git repo / no manifest / stdlib-only import → rc 0).
|
|
@@ -213,10 +213,10 @@ gates.
|
|
|
213
213
|
Then, from the wright's artifact, update `state.md`,
|
|
214
214
|
`evidence.md`, `touched-files.md` (and `browser-evidence.md` for UI). Add a `## Review trail`
|
|
215
215
|
to `touched-files.md`: group the slice's important `path:line` stops by concern (design intent,
|
|
216
|
-
not file order), 1
|
|
216
|
+
not file order), 1-5 concerns, each stop under 15 words. This is for a later human walkthrough;
|
|
217
217
|
keep it factual and skip invented rationale. **Persist every
|
|
218
218
|
`Decisions stood` entry from the wright's artifact to a `## Decisions stood` section in
|
|
219
|
-
`decisions.md`, one line each ending `— doubt: <accept | reject-resolved | MISSING
|
|
219
|
+
`decisions.md`, one line each ending `— doubt: <accept | reject-resolved | MISSING>`**: the
|
|
220
220
|
verdict from step 4, or `MISSING` if step 4 was skipped for that entry. Write this ledger at
|
|
221
221
|
record-time **independent of the doubt step**, so a stood decision lands on disk even when it
|
|
222
222
|
was never doubted: `/rite-seal` cross-checks the ledger, and a `doubt: MISSING` entry is the
|
|
@@ -226,13 +226,13 @@ gates.
|
|
|
226
226
|
an approach it tried and backed out of, record it under a `## Dead ends` section in
|
|
227
227
|
`decisions.md` so a retry or the next agent doesn't repeat it.
|
|
228
228
|
**If the wright's `Conventions` field reports a contradiction** (the live code now
|
|
229
|
-
disagrees with a held convention), record the drift
|
|
229
|
+
disagrees with a held convention), record the drift. You own this bookkeeping:
|
|
230
230
|
```bash
|
|
231
231
|
devrites-engine conventions contradict --key <key> --slug <slug> \
|
|
232
232
|
--evidence "<what the live code does>" --drift-file .devrites/work/<slug>/drift.md
|
|
233
233
|
```
|
|
234
234
|
It lowers the convention's band (or retires it) and appends a `convention-drift` entry to
|
|
235
|
-
`drift.md`. The ledger is **promoted only at `/rite-seal` on GO
|
|
235
|
+
`drift.md`. The ledger is **promoted only at `/rite-seal` on GO**: build only records
|
|
236
236
|
contradictions, never new conventions. **Evidence is the
|
|
237
237
|
wright's real command output, not its say-so.** Capture per
|
|
238
238
|
[`evidence-standard.md`](evidence-standard.md). Append a footprint record for this
|
|
@@ -241,10 +241,10 @@ gates.
|
|
|
241
241
|
devrites-engine footprint log <slug> wright "<slice id>"
|
|
242
242
|
```
|
|
243
243
|
If `.devrites/AFK` is present, decrement
|
|
244
|
-
the budget by running `devrites-engine tick-afk <state.md path
|
|
244
|
+
the budget by running `devrites-engine tick-afk <state.md path>`:
|
|
245
245
|
it decrements `state.md`'s `AFK slices remaining` field, prints the new value, and exits `3`
|
|
246
246
|
when it hits 0. **Exit 3 → STOP** (forced HITL stop; the cap is exhausted). Never rewrite
|
|
247
|
-
`.devrites/AFK` `max_slices` in place
|
|
247
|
+
`.devrites/AFK` `max_slices` in place. It is read-only initial budget.
|
|
248
248
|
7. **STOP.** Render the progress footer, then report and recommend the next step. Run the
|
|
249
249
|
shared footer (mirror of the step-0 preamble) so the slice meter + flow ribbon are
|
|
250
250
|
deterministic, not model-typed:
|
|
@@ -252,7 +252,7 @@ gates.
|
|
|
252
252
|
devrites-engine progress
|
|
253
253
|
```
|
|
254
254
|
It reads `state.md` (already updated in step 6), so the meter reflects the slice you
|
|
255
|
-
just built. **When every slice is built** (`✅ ALL BUILT`) say so explicitly
|
|
256
|
-
phase is complete, the next phase is `/rite-prove`
|
|
255
|
+
just built. **When every slice is built** (`✅ ALL BUILT`) say so explicitly (the build
|
|
256
|
+
phase is complete, the next phase is `/rite-prove`) don't leave completion implicit.
|
|
257
257
|
|
|
258
|
-
> **Mid-flight discipline.** The wright (or you, in the inline fallback) must resist doing two slices, skipping TDD, adding a defensive check, or wandering outside `touched-files.md`; you must resist skipping the post-return `devrites-doubt` because the wright "seems confident"
|
|
258
|
+
> **Mid-flight discipline.** The wright (or you, in the inline fallback) must resist doing two slices, skipping TDD, adding a defensive check, or wandering outside `touched-files.md`; you must resist skipping the post-return `devrites-doubt` because the wright "seems confident": see [`anti-patterns.md`](anti-patterns.md). Load it the moment you reach for the excuse.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Spec Drift Guard (build phase)
|
|
2
2
|
|
|
3
|
-
Active throughout `/rite-build`. The spec is living, not sacred
|
|
3
|
+
Active throughout `/rite-build`. The spec is living, not sacred, but you may not
|
|
4
4
|
silently code against a plan you know is wrong. This is the canonical Spec Drift Guard;
|
|
5
5
|
other phases reference it here.
|
|
6
6
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
# TDD / Prove-It pattern
|
|
2
2
|
|
|
3
|
-
When a slice changes behavior, prove the change with a test that fails first
|
|
3
|
+
When a slice changes behavior, prove the change with a test that fails first, so you
|
|
4
4
|
know the test can fail, and that your code is what makes it pass.
|
|
5
5
|
|
|
6
6
|
## Red → Green → Refactor
|
|
7
|
-
1. **Red
|
|
7
|
+
1. **Red:** write the smallest test that expresses the new behavior. Run it; watch it
|
|
8
8
|
fail for the *expected* reason (not a typo/import error).
|
|
9
|
-
2. **Green
|
|
10
|
-
3. **Refactor
|
|
9
|
+
2. **Green:** write the minimum code to pass. Resist gold-plating.
|
|
10
|
+
3. **Refactor:** clean up with the test as a safety net. Re-run; stay green.
|
|
11
11
|
|
|
12
12
|
## Prove-It (when strict TDD doesn't fit)
|
|
13
13
|
For code where a test-first flow is awkward (exploratory glue, config, some UI), still
|
|
14
14
|
produce evidence:
|
|
15
|
-
- Capture the current (wrong/absent) behavior
|
|
15
|
+
- Capture the current (wrong/absent) behavior: a failing assertion, a screenshot, a
|
|
16
16
|
log line.
|
|
17
17
|
- Make the change.
|
|
18
18
|
- Capture the new behavior the same way. The before/after pair *is* the proof.
|
|
@@ -21,6 +21,6 @@ produce evidence:
|
|
|
21
21
|
- Use the project's existing test framework and commands (discovered in `spec.md` →
|
|
22
22
|
"Commands discovered"). Don't introduce a new test runner to prove a slice.
|
|
23
23
|
- One behavior per test; name it for the behavior, not the function.
|
|
24
|
-
- A green test you never saw fail proves nothing
|
|
24
|
+
- A green test you never saw fail proves nothing: always see red first.
|
|
25
25
|
- Don't delete or weaken a failing test to "pass". If it's wrong, that may be drift.
|
|
26
26
|
- Record the test command + result in `evidence.md`.
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
# Slice-wright dispatch
|
|
2
2
|
|
|
3
|
-
How `/rite-build` hands the **build core** of one slice to `devrites-slice-wright
|
|
3
|
+
How `/rite-build` hands the **build core** of one slice to `devrites-slice-wright`: the
|
|
4
4
|
fresh-context, **write-capable** executor under `.claude/agents/`. Loaded on demand by
|
|
5
5
|
`/rite-build`; not a skill itself. Sibling of
|
|
6
6
|
[`../../devrites-lib/reference/parallel-dispatch.md`](../../devrites-lib/reference/parallel-dispatch.md)
|
|
7
|
-
(the read-only reviewer fan-out)
|
|
7
|
+
(the read-only reviewer fan-out): same isolation principle, opposite direction: this one
|
|
8
8
|
**writes**.
|
|
9
9
|
|
|
10
10
|
Pattern: the orchestrator owns the **gates and the workspace**; the wright owns the **writing**.
|
|
11
|
-
Brief it precisely, in a clean context, with only the slice contract
|
|
11
|
+
Brief it precisely, in a clean context, with only the slice contract, then doubt, record, and
|
|
12
12
|
gate its return.
|
|
13
13
|
|
|
14
14
|
## Why a fresh context writes the slice
|
|
15
15
|
The orchestrator's window is full of spec investigation, planning, prior slices, and tool
|
|
16
|
-
output
|
|
16
|
+
output: the exact "lost-in-the-middle" load that degrades instruction-following and pulls the
|
|
17
17
|
model toward generic code. The wright starts clean and sees only the contract, so it holds the
|
|
18
18
|
slice boundary strictly and writes to the *project's* idiom instead of drifting. Single-threaded
|
|
19
|
-
by design: **one** wright per slice, never a parallel fan-out of writers *sharing a tree
|
|
19
|
+
by design: **one** wright per slice, never a parallel fan-out of writers *sharing a tree*:
|
|
20
20
|
concurrent writers on one working tree make conflicting implicit decisions and produce incoherent
|
|
21
21
|
code. The one sanctioned exception is a **forge** slice, which competes K candidates in *isolated*
|
|
22
|
-
worktrees and lands exactly one
|
|
22
|
+
worktrees and lands exactly one: no tree ever has two authors, so the invariant holds (see
|
|
23
23
|
[Forge](#forge--competing-candidates-the-deliberate-exception)).
|
|
24
24
|
|
|
25
25
|
## The contract `/rite-build` sends
|
|
@@ -58,29 +58,29 @@ bookkeeping files; return that data. Return your structured artifact, not your t
|
|
|
58
58
|
Rules:
|
|
59
59
|
- **One `Task` call, one wright.** Never dispatch two writers on the same slice.
|
|
60
60
|
- **No author reasoning beyond the contract.** Give the slice spec, not your analysis of *how*
|
|
61
|
-
to code it
|
|
61
|
+
to code it: a clean, undirected read is the point.
|
|
62
62
|
- **Name the boundary explicitly.** The scope boundary is the single most load-bearing field; an
|
|
63
63
|
underspecified one is the main cause of drift.
|
|
64
64
|
|
|
65
|
-
## On return
|
|
65
|
+
## On return: the orchestrator's job (don't delegate these)
|
|
66
66
|
**You never edit source here.** The wright is the only writer of code + tests; you write only
|
|
67
67
|
`.devrites/` bookkeeping. Every remedy below is **continue the same wright once** or **stop +
|
|
68
|
-
escalate
|
|
68
|
+
escalate**: never an inline patch. You snapshotted the tree before dispatch (`devrites-engine reconcile snapshot`); the reconcile check in step 4 proves no source changed outside the wright's claimed
|
|
69
69
|
set.
|
|
70
70
|
|
|
71
71
|
1. **Doubt the surfaced decisions.** For each entry in the wright's `Decisions stood`, apply
|
|
72
|
-
`devrites-doubt` (→ `devrites-doubt-reviewer`) before accepting
|
|
72
|
+
`devrites-doubt` (→ `devrites-doubt-reviewer`) before accepting: the writer must not grade
|
|
73
73
|
its own decisions. The wright's return is the not-yet-load-bearing moment (slice not `built`,
|
|
74
74
|
not merged), so this post-return doubt is still pre-commit. Irreversible-risk items always
|
|
75
|
-
pause
|
|
75
|
+
pause, and an irreversible item that the wright filed under `Decisions stood` instead of
|
|
76
76
|
`Escalation` is a protocol violation: pause and re-dispatch with it flagged out-of-bounds,
|
|
77
77
|
don't doubt-and-accept.
|
|
78
78
|
2. **Honor escalations.** A non-empty `Escalation` → do **not** mark the slice built. Write the
|
|
79
79
|
`questions.md` entry + `state.md` `Awaiting human` (blocking gate), or route a scope change
|
|
80
80
|
through `/rite-plan repair` (Spec Drift Guard). You are the canonical writer of these files.
|
|
81
81
|
3. **Fail-on-red.** If `Gates` show red (or the wright couldn't verify), the slice is **not
|
|
82
|
-
built
|
|
83
|
-
(`SendMessage`, carrying the failing gate + real output) so it fixes in its own context
|
|
82
|
+
built**, and you do **not** fix the code. First remedy: **continue the same wright once**
|
|
83
|
+
(`SendMessage`, carrying the failing gate + real output) so it fixes in its own context:
|
|
84
84
|
objective failures only (red gate / type / lint / missing coverage / UI browser-proof fail),
|
|
85
85
|
never a contested decision. Still red after that one retry → blocking question (AFK) or
|
|
86
86
|
blocking gate (HITL); `Next: /rite-plan unblock`.
|
|
@@ -89,17 +89,17 @@ set.
|
|
|
89
89
|
slice (don't mark it built). Continue the same wright to cover it, or record a blocker.
|
|
90
90
|
4. **Reconcile, then record.** First prove A1 held: write the wright's `Files changed` paths
|
|
91
91
|
(one per line) to `.devrites/work/<slug>/.reconcile-claimed` and run `devrites-engine reconcile check`.
|
|
92
|
-
**Exit 5 → STOP
|
|
92
|
+
**Exit 5 → STOP**: a source file changed outside the wright's claimed set (A1 breach); revert
|
|
93
93
|
it and re-dispatch, don't mark the slice built. Then persist the wright's artifact to
|
|
94
94
|
`state.md`, `evidence.md`, `touched-files.md` (and `browser-evidence.md` for UI) per
|
|
95
95
|
[`evidence-standard.md`](evidence-standard.md). Evidence is the wright's real command output,
|
|
96
96
|
not its say-so. Add a concern-ordered `## Review trail` to `touched-files.md` from the wright's changed paths and summary so a human can review by design intent instead of file order. **Persist every `Decisions stood` entry to a `## Decisions stood` section in
|
|
97
|
-
`decisions.md`, one line each ending `— doubt: <accept | reject-resolved | MISSING
|
|
97
|
+
`decisions.md`, one line each ending `— doubt: <accept | reject-resolved | MISSING>`**:
|
|
98
98
|
independent of the doubt step (step 1 above), so a skipped decision still lands on record for
|
|
99
99
|
the seal's doubt-coverage cross-check (`- none` when the wright stood nothing). Then tick AFK if
|
|
100
100
|
`.devrites/AFK` is present (`devrites-engine tick-afk`; exit 3 → STOP).
|
|
101
101
|
|
|
102
|
-
## Forge
|
|
102
|
+
## Forge: competing candidates (the deliberate exception)
|
|
103
103
|
|
|
104
104
|
The single-writer rule forbids parallel writers **sharing one tree**. A `Forge: yes` slice
|
|
105
105
|
(flagged by `/rite-vet` as a genuine architecture fork at Complexity ≥4) is the one sanctioned
|
|
@@ -112,29 +112,29 @@ tree. No tree ever has two authors; exactly one author's work ships. Everything
|
|
|
112
112
|
fail-on-red, reconcile against the winner's claimed set, record) runs on the winner as if a single
|
|
113
113
|
wright had built it.
|
|
114
114
|
|
|
115
|
-
Full mechanics
|
|
116
|
-
winner, `forge-report.md`, AFK budgeting, and the worktree-unavailable fallback
|
|
115
|
+
Full mechanics (strategy derivation, worktree setup, the judge contract, landing + grafting the
|
|
116
|
+
winner, `forge-report.md`, AFK budgeting, and the worktree-unavailable fallback) live in
|
|
117
117
|
[`forge.md`](forge.md).
|
|
118
118
|
|
|
119
119
|
## Fallback
|
|
120
120
|
If the `Task` tool / sub-agent dispatch is unavailable, `/rite-build` runs the wright's
|
|
121
121
|
discipline **inline** in its own context and flags it as a fallback (no clean-context benefit).
|
|
122
|
-
The slice still gets the full one-slice cycle
|
|
122
|
+
The slice still gets the full one-slice cycle (orient → RED → implement → verify) under the
|
|
123
123
|
same anti-slop charter; it just doesn't get the isolation. In this path the orchestrator is
|
|
124
|
-
legitimately the writer, so write `.devrites/work/<slug>/.reconcile-inline` before editing
|
|
124
|
+
legitimately the writer, so write `.devrites/work/<slug>/.reconcile-inline` before editing: the
|
|
125
125
|
reconcile gate (step 4) skips when that sentinel is present. Mirrors the reviewer-dispatch
|
|
126
126
|
fallback in
|
|
127
127
|
[`../../devrites-lib/reference/parallel-dispatch.md`](../../devrites-lib/reference/parallel-dispatch.md).
|
|
128
128
|
|
|
129
129
|
## Optional pre-block hook (defense in depth)
|
|
130
|
-
`devrites-engine reconcile` is the **post-hoc** gate
|
|
130
|
+
`devrites-engine reconcile` is the **post-hoc** gate. It always runs and catches an A1 breach at record time.
|
|
131
131
|
A companion **pre-block** hook, `devrites-engine hook a1-guard` (a `PreToolUse` matcher on
|
|
132
132
|
`Edit|Write|MultiEdit`), stops the breach *before* the write lands. It is armed only inside the
|
|
133
133
|
mid-build window (between `devrites-engine reconcile snapshot` and a clean `check`, keyed on `.reconcile-base`),
|
|
134
134
|
allows the wright (subagent calls carry `agent_id`), the inline fallback (`.reconcile-inline`),
|
|
135
|
-
and any `.devrites/` write
|
|
135
|
+
and any `.devrites/` write, so it never touches `/rite-polish`, `/rite-quick`, or ordinary
|
|
136
136
|
manual edits. It ships **observe-only** (logs would-be blocks to `.a1-guard.log`, never blocks);
|
|
137
137
|
flip to enforce with `DEVRITES_A1_HOOK=enforce` or a `.devrites/work/<slug>/.a1-enforce` file once
|
|
138
138
|
the log confirms it never flags the wright's own edits (older Claude Code builds may not populate
|
|
139
|
-
`agent_id
|
|
139
|
+
`agent_id`: the log is the proof before you enforce). The post-hoc gate stands on its own; the
|
|
140
140
|
hook is belt-and-suspenders.
|
|
@@ -5,11 +5,11 @@ argument-hint: "[feature-slug]"
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# /rite-converge
|
|
8
|
+
# /rite-converge: make the code and the intent converge
|
|
9
9
|
|
|
10
10
|
Read `spec.md` + `plan.md` + `tasks.md` as the **sole source of intent** (with
|
|
11
11
|
`.devrites/principles.md` as governing constraints), assess what the **live codebase**
|
|
12
|
-
|
|
12
|
+
implements, and **append every unmet piece as a new traceable `SLICE-###`** at the
|
|
13
13
|
bottom of `tasks.md` so `/rite-build` can finish it. The recovery bridge for work that fell
|
|
14
14
|
out of sync with its plan: a half-built feature picked up cold, a `/rite-adopt`'d codebase
|
|
15
15
|
that drifted from its derived spec, or a build that stalled mid-slice. **Read the active
|
|
@@ -17,37 +17,37 @@ workspace first**; if there's no `spec.md`/`plan.md`/`tasks.md`, tell the user w
|
|
|
17
17
|
prerequisite skill to run.
|
|
18
18
|
|
|
19
19
|
> **Not a diff tool.** `/rite-converge` assesses the **present state** of the code against
|
|
20
|
-
> intent
|
|
21
|
-
> what the artifacts asked for"
|
|
20
|
+
> intent: no git, no branch comparison, no history. "What does this codebase do *now* vs
|
|
21
|
+
> what the artifacts asked for", not "what changed since commit X". For a change-scoped
|
|
22
22
|
> review use `/rite-review`; to prove a finished feature use `/rite-prove`.
|
|
23
23
|
|
|
24
24
|
## Rules consulted (read on demand from `.claude/skills/devrites-lib/reference/standards/`)
|
|
25
25
|
Pull on demand:
|
|
26
|
-
- `principles.md
|
|
26
|
+
- `principles.md`: the project invariants (`.devrites/principles.md`); code that violates a
|
|
27
27
|
MUST principle is the highest-severity gap and produces a remediation slice.
|
|
28
|
-
- `spec-grammar.md
|
|
28
|
+
- `spec-grammar.md`: buildable acceptance criteria vs `## Success metrics` (outcome KPIs the
|
|
29
29
|
code can't make true and this pass never enqueues); structured `### Requirement:` /
|
|
30
30
|
`#### Scenario:` blocks, each scenario one behavior to check as built / partial / absent.
|
|
31
|
-
- `tooling.md
|
|
31
|
+
- `tooling.md`: prefer a code-intelligence index (codebase-memory-mcp → codegraph → graphify,
|
|
32
32
|
else LSP / Read/Grep/Glob) to read the live code, not assumptions.
|
|
33
|
-
- `testing.md
|
|
33
|
+
- `testing.md`: a criterion with code but no covering test is *partial*, not done.
|
|
34
34
|
|
|
35
35
|
## Operating rules
|
|
36
36
|
- **APPEND-ONLY, never rewrite.** The only write to `tasks.md` is **appending** new
|
|
37
37
|
`SLICE-###` entries. Never rewrite, renumber, reorder, or delete an existing slice
|
|
38
38
|
(including slices a prior convergence appended). Never edit `spec.md` or `plan.md`. Never
|
|
39
|
-
touch application code
|
|
39
|
+
touch application code: completing the appended slices is `/rite-build`'s job, not this
|
|
40
40
|
skill's.
|
|
41
41
|
- **Clean means byte-for-byte unchanged.** When the code already satisfies everything, leave
|
|
42
|
-
`tasks.md` untouched
|
|
42
|
+
`tasks.md` untouched (no empty convergence header) and report a clean result. Recommend
|
|
43
43
|
`/rite-prove`.
|
|
44
44
|
- **Intent is the artifacts, not your memory.** The spec/plan/tasks (+ principles) are the
|
|
45
45
|
contract. If assessing reveals the *spec* is wrong (the code is right and the requirement is
|
|
46
|
-
stale), that's **Spec Drift
|
|
46
|
+
stale), that's **Spec Drift**: stop and route it through the Spec Drift Guard
|
|
47
47
|
(`rite-build/reference/spec-drift-guard.md`) + a recorded decision; never paper over a spec
|
|
48
48
|
bug by appending a task that "fixes" the code to a wrong requirement.
|
|
49
49
|
- **Partial is not done.** Code that exists but is untested, half-wired, or covers only the
|
|
50
|
-
happy path is an unmet gap
|
|
50
|
+
happy path is an unmet gap: enqueue the remainder, don't round it up.
|
|
51
51
|
- **Principles are non-negotiable.** A live violation of a declared invariant with no recorded
|
|
52
52
|
exception is the top-severity gap, walked first. Absent/empty principles file → none declared
|
|
53
53
|
→ skip the check gracefully, never block for its absence.
|
|
@@ -59,7 +59,7 @@ Pull on demand:
|
|
|
59
59
|
any is missing, **STOP** and name the prerequisite (`/rite-spec` for a missing spec,
|
|
60
60
|
`/rite-define` for a missing plan/tasks, `/rite-adopt` to onboard existing code). Do not
|
|
61
61
|
produce partial output.
|
|
62
|
-
2. **Load intent
|
|
62
|
+
2. **Load intent:** [`reference/convergence-assessment.md`](reference/convergence-assessment.md).
|
|
63
63
|
From `spec.md`: buildable `AC-###` / `### Requirement:` scenarios (skip `## Success metrics`);
|
|
64
64
|
from `plan.md`: architecture decisions + named touch-points (files/components the plan says
|
|
65
65
|
get built); from `tasks.md`: existing slices + their `Satisfies:`; from
|
|
@@ -67,7 +67,7 @@ Pull on demand:
|
|
|
67
67
|
**Completion:** every buildable criterion, touch-point, slice output, and principle is in the assessment inventory.
|
|
68
68
|
3. **Run the mechanical backbone**, then read the code. `devrites-engine analyze` gives coverage +
|
|
69
69
|
consistency; `devrites-engine coverage` gives the AC→slice→proven matrix. They catch *unmapped*
|
|
70
|
-
criteria; they do **not** see whether mapped code is
|
|
70
|
+
criteria; they do **not** see whether mapped code is built and correct, for that,
|
|
71
71
|
read the live code (code-intelligence index per `tooling.md`).
|
|
72
72
|
```bash
|
|
73
73
|
S="$(cat .devrites/ACTIVE 2>/dev/null)"
|
|
@@ -107,13 +107,13 @@ Convergence: 2026-07-07 # marks this as a convergence-appended slice, not a
|
|
|
107
107
|
|
|
108
108
|
> **Mid-flight discipline.** When tempted to rewrite an existing slice instead of appending, to
|
|
109
109
|
> edit the code directly "while you're in there", to mark a happy-path-only implementation as
|
|
110
|
-
> built, or to enqueue a task that bends the code to a spec you suspect is wrong
|
|
110
|
+
> built, or to enqueue a task that bends the code to a spec you suspect is wrong: see
|
|
111
111
|
> [`reference/anti-patterns.md`](reference/anti-patterns.md). Load it the moment you reach for
|
|
112
112
|
> the excuse.
|
|
113
113
|
|
|
114
114
|
## Output
|
|
115
115
|
|
|
116
|
-
**Progress first
|
|
116
|
+
**Progress first**: run `devrites-engine progress`, then use the shared completion reply contract
|
|
117
117
|
([`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md)).
|
|
118
118
|
Default success shape:
|
|
119
119
|
```
|
|
@@ -128,4 +128,4 @@ Record: .devrites/work/<slug>/tasks.md
|
|
|
128
128
|
When nothing was unmet, render the same green form with `Next: /rite-prove`.
|
|
129
129
|
If spec drift or another blocker remains, use the shared `Stopped / blocked` form
|
|
130
130
|
and route `Fix:` to `/rite-plan`; do not recommend `/rite-build`.
|
|
131
|
-
**DO NOT write application code, rewrite existing slices, or edit spec.md/plan.md here
|
|
131
|
+
**DO NOT write application code, rewrite existing slices, or edit spec.md/plan.md here**: convergence assesses and enqueues; `/rite-build` implements.
|
|
@@ -4,23 +4,23 @@ Load the moment you reach for one of these excuses.
|
|
|
4
4
|
|
|
5
5
|
## Common rationalizations
|
|
6
6
|
|
|
7
|
-
- *"I'll just fix this existing slice instead of appending a new one."
|
|
7
|
+
- *"I'll just fix this existing slice instead of appending a new one."*. No. The append-only
|
|
8
8
|
rule is what makes convergence **re-runnable** and its output **auditable**: a reader diffs
|
|
9
9
|
`tasks.md` and sees exactly what this pass added. Rewriting an existing slice destroys that
|
|
10
10
|
and can silently drop coverage. Append; never edit an existing `SLICE-###`.
|
|
11
|
-
- *"The gap is tiny
|
|
11
|
+
- *"The gap is tiny. I'll just patch the code while I'm here."*. No. Convergence **assesses
|
|
12
12
|
and enqueues**; `/rite-build` implements. The moment you edit application code you've skipped
|
|
13
13
|
the build's slice discipline, tests, and reviewer. Enqueue it, however small.
|
|
14
|
-
- *"It's basically built
|
|
14
|
+
- *"It's basically built. I'll call it done."*. Happy-path-only, untested, or half-wired is
|
|
15
15
|
**partial**, not built (`convergence-assessment.md`). Rounding partial up to built is how a
|
|
16
16
|
feature ships with the edge cases that were the whole reason for the scenario.
|
|
17
|
-
- *"The code does X, the spec says Y
|
|
17
|
+
- *"The code does X, the spec says Y. I'll enqueue a slice to make the code match the spec."*:
|
|
18
18
|
Only if you're sure the **spec** is right. If the code is right and the requirement is stale,
|
|
19
|
-
that's **Spec Drift
|
|
20
|
-
- *"The spec has no `AC-###` ids, so there's nothing to converge."
|
|
19
|
+
that's **Spec Drift**: route it through the guard, don't launder a spec bug into a code task.
|
|
20
|
+
- *"The spec has no `AC-###` ids, so there's nothing to converge."*. Assess plan touch-points
|
|
21
21
|
and existing-slice Produces directly against the code; a coverage id is convenient, not
|
|
22
22
|
required. (And flag the untagged spec so `/rite-spec` can add ids.)
|
|
23
|
-
- *"I'll rewrite the whole tasks.md to be clean while I'm at it."
|
|
23
|
+
- *"I'll rewrite the whole tasks.md to be clean while I'm at it."*, That is a **reslice**, and
|
|
24
24
|
it belongs to `/rite-plan`, not here. Convergence only ever *appends*.
|
|
25
25
|
|
|
26
26
|
## Red flags in your own output
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
# Convergence assessment
|
|
1
|
+
# Convergence assessment: built / partial / absent
|
|
2
2
|
|
|
3
|
-
The rubric `/rite-converge` applies to every unit of intent. Load when running step 2
|
|
3
|
+
The rubric `/rite-converge` applies to every unit of intent. Load when running step 2-5.
|
|
4
4
|
|
|
5
5
|
## The unit set
|
|
6
6
|
|
|
7
7
|
Assess three kinds of unit against the live code:
|
|
8
8
|
|
|
9
|
-
1. **Acceptance criteria / scenarios
|
|
10
|
-
(WHEN/THEN) in `spec.md`. `## Success metrics` lines are **not** units
|
|
9
|
+
1. **Acceptance criteria / scenarios:** each buildable `AC-###` and each `#### Scenario:`
|
|
10
|
+
(WHEN/THEN) in `spec.md`. `## Success metrics` lines are **not** units. They carry no
|
|
11
11
|
`AC-###` id, no slice can satisfy them, and this pass never enqueues one (`spec-grammar.md`).
|
|
12
|
-
2. **Plan touch-points
|
|
12
|
+
2. **Plan touch-points:** the files/components/modules `plan.md` says get built or edited, and
|
|
13
13
|
each existing slice's stated **Produces** (the interface it was meant to expose).
|
|
14
|
-
3. **Principles
|
|
14
|
+
3. **Principles:** each invariant in `.devrites/principles.md`, checked against the code as it
|
|
15
15
|
stands.
|
|
16
16
|
|
|
17
17
|
## The three verdicts
|
|
18
18
|
|
|
19
|
-
For each unit, decide **built / partial / absent
|
|
19
|
+
For each unit, decide **built / partial / absent**, and only *partial* and *absent* enqueue a
|
|
20
20
|
slice.
|
|
21
21
|
|
|
22
22
|
| Verdict | Test | Action |
|
|
23
23
|
|---|---|---|
|
|
24
|
-
| **built** | The behavior exists in the code **and** a test covers it (a criterion with code but no covering test is not built
|
|
24
|
+
| **built** | The behavior exists in the code **and** a test covers it (a criterion with code but no covering test is not built: `testing.md`). | Nothing: do not append. |
|
|
25
25
|
| **partial** | Some of it exists: happy path only, un-wired, untested, a TODO stub, or an edge case from the scenario's WHEN/THEN missing. | Append a slice for the **remainder**, its `Known-Gotchas` naming what's already there so `/rite-build` extends rather than rebuilds. |
|
|
26
26
|
| **absent** | No code implements it. | Append a full slice. |
|
|
27
27
|
|
|
28
|
-
Read the code to decide
|
|
28
|
+
Read the code to decide: do not infer from the plan. Use the code-intelligence index
|
|
29
29
|
(codebase-memory-mcp → codegraph → graphify, else LSP / grep) so the verdict reflects live
|
|
30
30
|
code, not the artifacts' claims. `devrites-engine analyze` / `devrites-engine coverage` tell you what's
|
|
31
31
|
*mapped*; only reading the code tells you what's *built*.
|
|
@@ -34,16 +34,16 @@ code, not the artifacts' claims. `devrites-engine analyze` / `devrites-engine co
|
|
|
34
34
|
|
|
35
35
|
A live violation of a declared invariant (secret in logs, money as float, a datastore added
|
|
36
36
|
with no ADR) is the **top-severity** gap regardless of coverage. It sorts **first** in the
|
|
37
|
-
appended batch as a remediation slice, and
|
|
38
|
-
irreversible-risk change
|
|
37
|
+
appended batch as a remediation slice, and (because reshaping to honor an invariant can be an
|
|
38
|
+
irreversible-risk change) it pauses for a human even under AFK. Absent/empty principles file →
|
|
39
39
|
none declared → skip, never block.
|
|
40
40
|
|
|
41
41
|
## Spec drift vs code gap
|
|
42
42
|
|
|
43
43
|
Before appending a slice, separate the two failure directions:
|
|
44
44
|
|
|
45
|
-
- **Code gap
|
|
46
|
-
- **Spec drift
|
|
45
|
+
- **Code gap:** the spec is right, the code falls short. → append a slice. (This skill's job.)
|
|
46
|
+
- **Spec drift:** the code is right, the requirement is stale or wrong. → **do not** append a
|
|
47
47
|
slice that bends correct code to a wrong spec. Stop, route through the Spec Drift Guard
|
|
48
48
|
(`rite-build/reference/spec-drift-guard.md`) + a recorded decision, and let `/rite-plan
|
|
49
49
|
repair` reshape intent. Convergence enqueues work; it never launders a spec bug into a code
|
|
@@ -51,7 +51,7 @@ Before appending a slice, separate the two failure directions:
|
|
|
51
51
|
|
|
52
52
|
## Numbering + ordering the appended batch
|
|
53
53
|
|
|
54
|
-
- **Continue the ids
|
|
54
|
+
- **Continue the ids:** the highest existing `SLICE-###` + 1, ascending. Never reuse or
|
|
55
55
|
renumber an existing id.
|
|
56
56
|
- **Order after the existing slices**, dependency-first among the new ones (`depends_on`);
|
|
57
57
|
a principle-remediation slice sorts before feature gaps.
|