devrites 5.10.1 → 5.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +24 -10
- package/bin/devrites.mjs +2 -0
- package/docs/cli.md +4 -1
- package/docs/command-map.md +7 -5
- package/docs/engine/commands.md +7 -5
- package/docs/orchestration.md +5 -2
- package/docs/skills.md +10 -4
- package/docs/usage.md +3 -1
- package/engine/commands.go +3 -0
- package/engine/help.go +190 -0
- package/engine/help_test.go +98 -0
- package/engine/internal/devritespaths/paths.go +2 -0
- package/engine/internal/hostpack/hostpack.go +39 -5
- package/engine/internal/hostpack/hostpack_test.go +27 -13
- package/engine/internal/install/apply.go +17 -4
- package/engine/internal/install/install.go +9 -2
- package/engine/internal/install/install_test.go +15 -2
- package/engine/internal/install/preflight.go +8 -2
- package/engine/internal/install/update.go +1 -1
- package/engine/internal/parallel/cli.go +90 -32
- package/engine/internal/parallel/cli_test.go +32 -0
- package/engine/main.go +15 -8
- package/engine/root_routing_test.go +4 -0
- package/install.sh +4 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +10 -5
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +12 -7
- package/pack/.claude/skills/rite-build/SKILL.md +3 -1
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +4 -3
- package/pack/.claude/skills/rite-build/reference/parallel-batch.md +3 -1
- package/pack/.claude/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/generated/README.md +4 -2
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +10 -5
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +12 -7
- package/pack/generated/claude/skills/rite-build/SKILL.md +3 -1
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +4 -3
- package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +3 -1
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +10 -5
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +12 -7
- package/pack/generated/codex/skills/rite-build/SKILL.md +3 -1
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +4 -3
- package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +3 -1
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/generated/devin/AGENTS.md +23 -0
- package/pack/generated/devin/agents/devrites-code-reviewer.md +145 -0
- package/pack/generated/devin/agents/devrites-devex-reviewer.md +126 -0
- package/pack/generated/devin/agents/devrites-doubt-reviewer.md +91 -0
- package/pack/generated/devin/agents/devrites-evidence-scout.md +77 -0
- package/pack/generated/devin/agents/devrites-frontend-reviewer.md +119 -0
- package/pack/generated/devin/agents/devrites-performance-reviewer.md +117 -0
- package/pack/generated/devin/agents/devrites-plan-drafter.md +102 -0
- package/pack/generated/devin/agents/devrites-plan-reviewer.md +144 -0
- package/pack/generated/devin/agents/devrites-proof-runner.md +76 -0
- package/pack/generated/devin/agents/devrites-retrospector.md +64 -0
- package/pack/generated/devin/agents/devrites-security-auditor.md +112 -0
- package/pack/generated/devin/agents/devrites-simplifier-reviewer.md +97 -0
- package/pack/generated/devin/agents/devrites-slice-wright.md +219 -0
- package/pack/generated/devin/agents/devrites-spec-reviewer.md +99 -0
- package/pack/generated/devin/agents/devrites-strategy-reviewer.md +102 -0
- package/pack/generated/devin/agents/devrites-test-analyst.md +97 -0
- package/pack/generated/devin/agents/devrites-upgrade-planner.md +91 -0
- package/pack/generated/devin/skills/devrites-api-interface/SKILL.md +64 -0
- package/pack/generated/devin/skills/devrites-audit/SKILL.md +51 -0
- package/pack/generated/devin/skills/devrites-browser-proof/SKILL.md +77 -0
- package/pack/generated/devin/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
- package/pack/generated/devin/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +97 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/hypotheses.md +17 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/regression-test.md +30 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/trace.md +25 -0
- package/pack/generated/devin/skills/devrites-doubt/SKILL.md +80 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/SKILL.md +87 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/craft.md +63 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/design-references.md +116 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/fullstack.md +46 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/quality-standards.md +294 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/reuse-first.md +53 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/shape.md +56 -0
- package/pack/generated/devin/skills/devrites-interview/SKILL.md +103 -0
- package/pack/generated/devin/skills/devrites-lib/SKILL.md +57 -0
- package/pack/generated/devin/skills/devrites-lib/reference/candidate-integrity.md +42 -0
- package/pack/generated/devin/skills/devrites-lib/reference/intent-map.md +64 -0
- package/pack/generated/devin/skills/devrites-lib/reference/orchestration-profiles.md +27 -0
- package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +73 -0
- package/pack/generated/devin/skills/devrites-lib/reference/reply-contract.md +88 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/README.md +60 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +30 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +415 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +99 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/anti-patterns.md +48 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/browser-proof-checklist.md +24 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/ci-cd.md +50 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/code-navigation.md +43 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/code-review.md +108 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/coding-style.md +48 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/context-hygiene.md +109 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +167 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/data-integrity.md +118 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/debug-recovery.md +28 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/definition-of-done.md +19 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/deprecation.md +31 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/developer-experience.md +119 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/development-workflow.md +29 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/documentation.md +43 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/edge-case-trace.md +92 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/elicitation.md +85 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/error-handling.md +47 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/git-workflow.md +49 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/hooks.md +25 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/integration-reliability.md +102 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/loop-operations.md +85 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/observability.md +88 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/one-shot-actions.md +97 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/patterns.md +68 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/performance.md +51 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/principles.md +42 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/prose-style.md +123 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/release/ship-checklist.md +8 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/repository-topology.md +80 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/review-checklist.md +12 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/security-checklist.md +25 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/security.md +202 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/skill-authoring.md +209 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/spec-grammar.md +197 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/test-proof-checklist.md +13 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/testing.md +212 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/tooling.md +92 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/workflow-artifacts.md +427 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/code.md +44 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/comparison.md +42 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/diagram.md +51 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/index.md +66 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/input.md +46 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/outline-template.md +106 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/plan.md +48 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/slides.md +40 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/table.md +42 -0
- package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +267 -0
- package/pack/generated/devin/skills/devrites-prose-craft/SKILL.md +74 -0
- package/pack/generated/devin/skills/devrites-prose-craft/reference/banned-phrases.md +132 -0
- package/pack/generated/devin/skills/devrites-prose-craft/reference/examples.md +131 -0
- package/pack/generated/devin/skills/devrites-prose-craft/reference/structures.md +196 -0
- package/pack/generated/devin/skills/devrites-source-driven/SKILL.md +53 -0
- package/pack/generated/devin/skills/devrites-ux-shape/SKILL.md +135 -0
- package/pack/generated/devin/skills/devrites-ux-shape/reference/brief-template.md +108 -0
- package/pack/generated/devin/skills/devrites-ux-shape/reference/visual-direction-probe.md +48 -0
- package/pack/generated/devin/skills/rite/SKILL.md +148 -0
- package/pack/generated/devin/skills/rite/reference/menu.md +48 -0
- package/pack/generated/devin/skills/rite-adopt/SKILL.md +51 -0
- package/pack/generated/devin/skills/rite-adopt/reference/adoption.md +19 -0
- package/pack/generated/devin/skills/rite-adopt/reference/anti-patterns.md +19 -0
- package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +142 -0
- package/pack/generated/devin/skills/rite-autocomplete/reference/decision-policy.md +43 -0
- package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +151 -0
- package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +97 -0
- package/pack/generated/devin/skills/rite-build/SKILL.md +102 -0
- package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +148 -0
- package/pack/generated/devin/skills/rite-build/reference/anti-patterns.md +27 -0
- package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +120 -0
- package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +56 -0
- package/pack/generated/devin/skills/rite-build/reference/frontend-trigger.md +39 -0
- package/pack/generated/devin/skills/rite-build/reference/one-slice-cycle.md +51 -0
- package/pack/generated/devin/skills/rite-build/reference/output.md +33 -0
- package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +214 -0
- package/pack/generated/devin/skills/rite-build/reference/phase-contract.md +89 -0
- package/pack/generated/devin/skills/rite-build/reference/spec-drift-guard.md +84 -0
- package/pack/generated/devin/skills/rite-build/reference/tdd.md +27 -0
- package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +96 -0
- package/pack/generated/devin/skills/rite-clarify/SKILL.md +98 -0
- package/pack/generated/devin/skills/rite-clarify/reference/anti-patterns.md +24 -0
- package/pack/generated/devin/skills/rite-clarify/reference/decision-coverage.md +55 -0
- package/pack/generated/devin/skills/rite-converge/SKILL.md +144 -0
- package/pack/generated/devin/skills/rite-converge/reference/anti-patterns.md +35 -0
- package/pack/generated/devin/skills/rite-converge/reference/convergence-assessment.md +65 -0
- package/pack/generated/devin/skills/rite-customize/SKILL.md +60 -0
- package/pack/generated/devin/skills/rite-define/SKILL.md +168 -0
- package/pack/generated/devin/skills/rite-define/reference/anti-patterns.md +26 -0
- package/pack/generated/devin/skills/rite-define/reference/gates.md +159 -0
- package/pack/generated/devin/skills/rite-define/reference/plan-template.md +149 -0
- package/pack/generated/devin/skills/rite-doctor/SKILL.md +68 -0
- package/pack/generated/devin/skills/rite-dogfood/SKILL.md +55 -0
- package/pack/generated/devin/skills/rite-explain/SKILL.md +152 -0
- package/pack/generated/devin/skills/rite-explain/reference/intake.md +89 -0
- package/pack/generated/devin/skills/rite-frame/SKILL.md +114 -0
- package/pack/generated/devin/skills/rite-frame/reference/failure-modes.md +66 -0
- package/pack/generated/devin/skills/rite-handoff/SKILL.md +97 -0
- package/pack/generated/devin/skills/rite-handoff/reference/handoff-template.md +44 -0
- package/pack/generated/devin/skills/rite-learn/SKILL.md +72 -0
- package/pack/generated/devin/skills/rite-plan/SKILL.md +185 -0
- package/pack/generated/devin/skills/rite-plan/reference/anti-patterns.md +34 -0
- package/pack/generated/devin/skills/rite-plan/reference/dependency-graph.md +48 -0
- package/pack/generated/devin/skills/rite-plan/reference/replan-and-repair.md +105 -0
- package/pack/generated/devin/skills/rite-plan/reference/slicing.md +168 -0
- package/pack/generated/devin/skills/rite-plan/reference/task-breakdown.md +42 -0
- package/pack/generated/devin/skills/rite-polish/SKILL.md +105 -0
- package/pack/generated/devin/skills/rite-polish/reference/adr-promotion.md +11 -0
- package/pack/generated/devin/skills/rite-polish/reference/anti-ai-slop.md +187 -0
- package/pack/generated/devin/skills/rite-polish/reference/anti-patterns.md +30 -0
- package/pack/generated/devin/skills/rite-polish/reference/backend-polish.md +80 -0
- package/pack/generated/devin/skills/rite-polish/reference/browser-polish-evidence.md +33 -0
- package/pack/generated/devin/skills/rite-polish/reference/code.md +82 -0
- package/pack/generated/devin/skills/rite-polish/reference/design-memory.md +117 -0
- package/pack/generated/devin/skills/rite-polish/reference/design-system-discovery.md +8 -0
- package/pack/generated/devin/skills/rite-polish/reference/harden-checklist.md +109 -0
- package/pack/generated/devin/skills/rite-polish/reference/ledger.md +65 -0
- package/pack/generated/devin/skills/rite-polish/reference/ui.md +137 -0
- package/pack/generated/devin/skills/rite-pov/SKILL.md +57 -0
- package/pack/generated/devin/skills/rite-pr-feedback/SKILL.md +54 -0
- package/pack/generated/devin/skills/rite-pressure-test/SKILL.md +66 -0
- package/pack/generated/devin/skills/rite-prototype/SKILL.md +104 -0
- package/pack/generated/devin/skills/rite-prove/SKILL.md +122 -0
- package/pack/generated/devin/skills/rite-prove/reference/acceptance-proof.md +88 -0
- package/pack/generated/devin/skills/rite-prove/reference/anti-patterns.md +25 -0
- package/pack/generated/devin/skills/rite-prove/reference/browser-proof.md +51 -0
- package/pack/generated/devin/skills/rite-prove/reference/failure-triage.md +43 -0
- package/pack/generated/devin/skills/rite-prove/reference/proof-ladder.md +28 -0
- package/pack/generated/devin/skills/rite-prove/reference/test-command-discovery.md +30 -0
- package/pack/generated/devin/skills/rite-quick/SKILL.md +81 -0
- package/pack/generated/devin/skills/rite-resolve/SKILL.md +98 -0
- package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +118 -0
- package/pack/generated/devin/skills/rite-review/SKILL.md +171 -0
- package/pack/generated/devin/skills/rite-review/reference/anti-patterns.md +32 -0
- package/pack/generated/devin/skills/rite-review/reference/cognitive-load.md +90 -0
- package/pack/generated/devin/skills/rite-review/reference/feature-scoped-review.md +26 -0
- package/pack/generated/devin/skills/rite-review/reference/five-axis-review.md +66 -0
- package/pack/generated/devin/skills/rite-review/reference/nielsen-heuristics.md +126 -0
- package/pack/generated/devin/skills/rite-review/reference/performance-checklist.md +80 -0
- package/pack/generated/devin/skills/rite-review/reference/performance-review.md +14 -0
- package/pack/generated/devin/skills/rite-review/reference/security-review.md +42 -0
- package/pack/generated/devin/skills/rite-seal/SKILL.md +74 -0
- package/pack/generated/devin/skills/rite-seal/reference/anti-patterns.md +29 -0
- package/pack/generated/devin/skills/rite-seal/reference/final-evidence.md +41 -0
- package/pack/generated/devin/skills/rite-seal/reference/go-no-go.md +29 -0
- package/pack/generated/devin/skills/rite-seal/reference/output.md +5 -0
- package/pack/generated/devin/skills/rite-seal/reference/phase-contract.md +47 -0
- package/pack/generated/devin/skills/rite-seal/reference/risk-and-rollback.md +56 -0
- package/pack/generated/devin/skills/rite-seal/reference/seal-template.md +27 -0
- package/pack/generated/devin/skills/rite-ship/SKILL.md +87 -0
- package/pack/generated/devin/skills/rite-ship/reference/anti-patterns.md +28 -0
- package/pack/generated/devin/skills/rite-ship/reference/close-out.md +68 -0
- package/pack/generated/devin/skills/rite-ship/reference/git-ship.md +120 -0
- package/pack/generated/devin/skills/rite-ship/reference/rollout.md +62 -0
- package/pack/generated/devin/skills/rite-ship/reference/ship-template.md +39 -0
- package/pack/generated/devin/skills/rite-spec/SKILL.md +149 -0
- package/pack/generated/devin/skills/rite-spec/reference/acceptance-criteria.md +31 -0
- package/pack/generated/devin/skills/rite-spec/reference/ai-spec-template.md +40 -0
- package/pack/generated/devin/skills/rite-spec/reference/anti-patterns.md +27 -0
- package/pack/generated/devin/skills/rite-spec/reference/interview-patterns.md +56 -0
- package/pack/generated/devin/skills/rite-spec/reference/investigation.md +83 -0
- package/pack/generated/devin/skills/rite-spec/reference/question-protocol.md +36 -0
- package/pack/generated/devin/skills/rite-spec/reference/references-intake.md +62 -0
- package/pack/generated/devin/skills/rite-spec/reference/spec-checklists.md +89 -0
- package/pack/generated/devin/skills/rite-spec/reference/spec-template.md +154 -0
- package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +227 -0
- package/pack/generated/devin/skills/rite-status/SKILL.md +57 -0
- package/pack/generated/devin/skills/rite-temper/SKILL.md +129 -0
- package/pack/generated/devin/skills/rite-temper/reference/anti-patterns.md +30 -0
- package/pack/generated/devin/skills/rite-temper/reference/review-dimensions.md +66 -0
- package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +53 -0
- package/pack/generated/devin/skills/rite-temper/reference/significance.md +46 -0
- package/pack/generated/devin/skills/rite-temper/reference/strategy-template.md +90 -0
- package/pack/generated/devin/skills/rite-upgrade/SKILL.md +121 -0
- package/pack/generated/devin/skills/rite-vet/SKILL.md +192 -0
- package/pack/generated/devin/skills/rite-vet/reference/anti-patterns.md +43 -0
- package/pack/generated/devin/skills/rite-vet/reference/artifacts.md +202 -0
- package/pack/generated/devin/skills/rite-vet/reference/cross-model.md +19 -0
- package/pack/generated/devin/skills/rite-vet/reference/depth.md +59 -0
- package/pack/generated/devin/skills/rite-vet/reference/eng-lenses.md +48 -0
- package/pack/generated/devin/skills/rite-vet/reference/review-axes.md +201 -0
- package/pack/generated/devin/skills/rite-watch-pr/SKILL.md +84 -0
- package/pack/generated/devin/skills/rite-zoom-out/SKILL.md +69 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
- package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +10 -5
- package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +12 -7
- package/pack/generated/omp/skills/rite-build/SKILL.md +3 -1
- package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +4 -3
- package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +3 -1
- package/pack/generated/omp/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
- package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +10 -5
- package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +12 -7
- package/pack/generated/pi/skills/rite-build/SKILL.md +3 -1
- package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +4 -3
- package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +3 -1
- package/pack/generated/pi/skills/rite-define/reference/plan-template.md +1 -1
- package/package.json +4 -2
- package/scripts/build-host-artifacts.sh +48 -5
- package/scripts/devin-generate.sh +222 -0
- package/update.sh +2 -1
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# `.devrites/` state workspace
|
|
2
|
+
|
|
3
|
+
This is the writer-facing companion to the canonical schema in
|
|
4
|
+
[`devrites-lib/reference/workspace-artifact-schema.md`](../../devrites-lib/reference/workspace-artifact-schema.md).
|
|
5
|
+
Load that schema before creating or updating workspace artifacts.
|
|
6
|
+
|
|
7
|
+
## Layout
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
.devrites/
|
|
11
|
+
ACTIVE
|
|
12
|
+
work/
|
|
13
|
+
<feature-slug>/
|
|
14
|
+
README.md # compact workspace map
|
|
15
|
+
brief.md
|
|
16
|
+
spec.md
|
|
17
|
+
checklists/ # from /rite-spec step 5a
|
|
18
|
+
architecture.md # from /rite-define
|
|
19
|
+
flows.md # optional Mermaid-first; only when useful
|
|
20
|
+
visual/ # optional HTML+outline companions (never readiness)
|
|
21
|
+
decisions.md
|
|
22
|
+
assumptions.md
|
|
23
|
+
questions.md
|
|
24
|
+
decision-coverage.md # from /rite-clarify
|
|
25
|
+
strategy.md # from /rite-temper
|
|
26
|
+
plan.md # from /rite-define
|
|
27
|
+
tasks.md # from /rite-define
|
|
28
|
+
traceability.md # from /rite-define
|
|
29
|
+
eng-review.md # from /rite-vet
|
|
30
|
+
test-plan.md # from /rite-vet
|
|
31
|
+
state.md
|
|
32
|
+
evidence.md # from /rite-build or /rite-prove
|
|
33
|
+
browser-evidence.md # UI only
|
|
34
|
+
drift.md # drift only
|
|
35
|
+
touched-files.md # from /rite-build
|
|
36
|
+
design-brief.md # UI only
|
|
37
|
+
handoff.md # from /rite-handoff
|
|
38
|
+
references.md
|
|
39
|
+
references/
|
|
40
|
+
archive/
|
|
41
|
+
<feature-slug>/
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## `flows.md` (optional Mermaid-first)
|
|
45
|
+
|
|
46
|
+
Write `flows.md` only when sequence/state/data/lifecycle diagrams clarify the feature.
|
|
47
|
+
Keep **Mermaid in `flows.md`** when that is enough. When a richer reviewable presentation
|
|
48
|
+
is needed, **also** emit `.devrites/work/<slug>/visual/<flow>.html` +
|
|
49
|
+
`visual/<flow>.outline.md` and link the pair from `flows.md`.
|
|
50
|
+
|
|
51
|
+
Before any HTML:
|
|
52
|
+
|
|
53
|
+
1. Open matching playbooks via
|
|
54
|
+
[`../../devrites-lib/reference/visual-playbooks/index.md`](../../devrites-lib/reference/visual-playbooks/index.md)
|
|
55
|
+
(progressive; never preload all seven).
|
|
56
|
+
2. Copy required outline headings from
|
|
57
|
+
[`outline-template.md`](../../devrites-lib/reference/visual-playbooks/outline-template.md).
|
|
58
|
+
3. Dual-read: agents treat the outline as SSOT; **outline wins** on conflict. No Lavish
|
|
59
|
+
runtime; this is not a new lifecycle phase and never inflates readiness.
|
|
60
|
+
|
|
61
|
+
`/rite-spec` may seed a thin `flows.md` when investigation already needs a diagram;
|
|
62
|
+
`/rite-define` owns richer architecture/flow companions beside `architecture.md`.
|
|
63
|
+
|
|
64
|
+
## Creation rules
|
|
65
|
+
|
|
66
|
+
- Create or reuse the slug exactly under the canonical schema's
|
|
67
|
+
[Slug identity](../../devrites-lib/reference/workspace-artifact-schema.md#slug-identity)
|
|
68
|
+
contract.
|
|
69
|
+
- `/rite-spec` creates the workspace map, `brief.md`, `spec.md`, `decisions.md`,
|
|
70
|
+
`assumptions.md`, `questions.md`, `state.md`, optional `references.md` /
|
|
71
|
+
`references/`, optional `flows.md` when a diagram already clarifies investigation,
|
|
72
|
+
and optional `design-brief.md` for UI.
|
|
73
|
+
- `/rite-clarify` adds `decision-coverage.md`.
|
|
74
|
+
- `/rite-define` adds `architecture.md`, `plan.md`, `tasks.md`, and
|
|
75
|
+
`traceability.md`; may add or enrich `flows.md` and optional `visual/` HTML+outline
|
|
76
|
+
companions when Mermaid alone is not enough.
|
|
77
|
+
- `/rite-vet` adds `eng-review.md` and `test-plan.md`.
|
|
78
|
+
- Later phases add only the artifact they own. Do not create optional files as
|
|
79
|
+
empty placeholders; absence means the phase has not produced that artifact.
|
|
80
|
+
- Each artifact starts with a summary and links to deeper source files instead of
|
|
81
|
+
copying their content.
|
|
82
|
+
- Use stable IDs: `REQ-001`, `AC-001`, `EDGE-001`, `PROH-001`, `SLICE-001`,
|
|
83
|
+
`DEC-001`, `ASM-001`, `DRIFT-001`, `EVID-001`; apply the canonical schema's
|
|
84
|
+
append-only ID contract. Queued questions use `q-YYYY-MM-DD-NNN` below.
|
|
85
|
+
|
|
86
|
+
## README.md template
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
# <Feature> Workspace
|
|
90
|
+
phase: spec
|
|
91
|
+
status: running
|
|
92
|
+
next_action: /rite-clarify after spec readiness passes
|
|
93
|
+
last_updated: <date>
|
|
94
|
+
|
|
95
|
+
## Artifact map
|
|
96
|
+
| File | Job |
|
|
97
|
+
| --- | --- |
|
|
98
|
+
| brief.md | Objective and bounds |
|
|
99
|
+
| spec.md | Product contract |
|
|
100
|
+
| decision-coverage.md | Clarification verdict; absent until /rite-clarify |
|
|
101
|
+
| strategy.md | Temper record; absent until /rite-temper |
|
|
102
|
+
| architecture.md | Technical map; absent until /rite-define |
|
|
103
|
+
| plan.md | Technical approach; absent until /rite-define |
|
|
104
|
+
| tasks.md | Vertical slices; absent until /rite-define |
|
|
105
|
+
| traceability.md | Coverage dashboard; absent until /rite-define |
|
|
106
|
+
| evidence.md | Proof log; absent until /rite-build or /rite-prove |
|
|
107
|
+
|
|
108
|
+
## Read next
|
|
109
|
+
| Phase / role | Read |
|
|
110
|
+
| --- | --- |
|
|
111
|
+
| Spec | brief.md, spec.md, questions.md |
|
|
112
|
+
| Clarify | spec.md, decisions.md, assumptions.md, questions.md |
|
|
113
|
+
| Build | state.md, decision-coverage.md, eng-review.md, test-plan.md, tasks.md, plan.md |
|
|
114
|
+
| Review | traceability.md, evidence.md, decisions.md |
|
|
115
|
+
|
|
116
|
+
## Blocking gates
|
|
117
|
+
None.
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## state.md template
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
# State
|
|
124
|
+
|
|
125
|
+
## Cursor
|
|
126
|
+
| Key | Value |
|
|
127
|
+
| --- | --- |
|
|
128
|
+
| phase | spec |
|
|
129
|
+
| status | running |
|
|
130
|
+
| active_slice | none |
|
|
131
|
+
| slice_mode | none |
|
|
132
|
+
| risk | none |
|
|
133
|
+
| next_action | <single command + reason, or terminal: none — technical recovery exhausted for an unchanged causal fingerprint> |
|
|
134
|
+
| return_phase | <originating later phase; clarification or agent-owned technical backtracking only> |
|
|
135
|
+
| return_next_action | <saved originating command> |
|
|
136
|
+
|
|
137
|
+
## Awaiting human
|
|
138
|
+
Only present when status is awaiting_human.
|
|
139
|
+
| Key | Value |
|
|
140
|
+
| --- | --- |
|
|
141
|
+
| question_id | q-YYYY-MM-DD-NNN |
|
|
142
|
+
| gate | blocking |
|
|
143
|
+
| blocking_slices | SLICE-001 |
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
`state.md` is a compact cursor, not a history file. Put proof in `evidence.md`,
|
|
147
|
+
decisions in `decisions.md`, assumptions in `assumptions.md`, and drift in
|
|
148
|
+
`drift.md`. Omit both `return_*` rows outside a later-phase `/rite-clarify`
|
|
149
|
+
retrofit or agent-owned technical backtracking chain.
|
|
150
|
+
|
|
151
|
+
Before an active caller moves backward, it copies its current phase and
|
|
152
|
+
non-empty action into the two return rows. Nested Plan, Vet, Build, and proof
|
|
153
|
+
work preserves that valid cursor. Once the prerequisite chain is green, the
|
|
154
|
+
controlling caller restores the saved phase/action and removes both rows in one
|
|
155
|
+
rewrite. A real HITL or exhausted-recovery stop retains the cursor for cold
|
|
156
|
+
resume. Never overwrite an existing valid return cursor, and preserve every
|
|
157
|
+
unrelated Markdown byte. `/rite-clarify` applies its stricter native cursor protocol in `/rite-clarify`.
|
|
158
|
+
|
|
159
|
+
On cold resume, a terminal `next_action` is a claim to verify, not a counter.
|
|
160
|
+
Reconcile the exact fingerprint and its attempts in `drift.md` / `evidence.md`.
|
|
161
|
+
If a consumptive action retained a distinct fingerprint below the no-progress
|
|
162
|
+
cap, rewrite the cursor into caller-owned recovery and preserve or reconstruct
|
|
163
|
+
the return rows only from the current phase and approved recorded action. The
|
|
164
|
+
spent action authorization blocks another execution, not that rewrite.
|
|
165
|
+
|
|
166
|
+
`afk_slices_remaining` is mutable runtime state, not `.devrites/AFK`
|
|
167
|
+
configuration. Only the controlling root writes it under the shared
|
|
168
|
+
[`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md#the-sentinel-devritesafk)
|
|
169
|
+
contract and Build's
|
|
170
|
+
[`afk-discipline.md`](../../rite-build/reference/afk-discipline.md#iteration-cap).
|
|
171
|
+
Ordinary workspace creation preserves the field without initializing,
|
|
172
|
+
increasing, renaming, or deleting it. Released bullet workspaces spell it `AFK
|
|
173
|
+
slices remaining`; preserve that presentation rather than migrating it.
|
|
174
|
+
|
|
175
|
+
When the brief records a [sequence continuation](../../rite-plan/reference/slicing.md#continuation-workspaces),
|
|
176
|
+
seed the `sequence_parent`, `sequence_position`, `sequence_workspaces_remaining`,
|
|
177
|
+
and — for the release entry — `sequence_role` rows at creation per that contract.
|
|
178
|
+
Without them `state merge-manifest` cannot walk the chain and the release-union
|
|
179
|
+
gate never engages.
|
|
180
|
+
|
|
181
|
+
## questions.md entry format
|
|
182
|
+
|
|
183
|
+
```markdown
|
|
184
|
+
## q-YYYY-MM-DD-NNN
|
|
185
|
+
status: open | answered | dropped
|
|
186
|
+
slice: spec | plan | SLICE-001
|
|
187
|
+
gate: advisory | validating | blocking | escalating
|
|
188
|
+
route: <specialist tag> (escalating only; omit otherwise)
|
|
189
|
+
question: <one crisp sentence>
|
|
190
|
+
options:
|
|
191
|
+
1. <recommended> (Recommended) - <trade-off>
|
|
192
|
+
2. <alternative> - <trade-off>
|
|
193
|
+
proposed: <best current answer>
|
|
194
|
+
raised_at: <iso>
|
|
195
|
+
answered_at:
|
|
196
|
+
answer:
|
|
197
|
+
impact: <affected AC/REQ/slice IDs>
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
No open blocking/escalating question may remain before define/build/prove gates.
|
|
201
|
+
For a new entry, scan every `## q-YYYY-MM-DD-NNN` header for the current date,
|
|
202
|
+
choose one above the highest suffix (or `001` when none exist), advancing until
|
|
203
|
+
it is unused, then re-read
|
|
204
|
+
`questions.md` immediately before the append and recompute. If the candidate is
|
|
205
|
+
no longer unused, retry the scan; never reserve or derive it with an engine
|
|
206
|
+
command.
|
|
207
|
+
|
|
208
|
+
## brief.md template
|
|
209
|
+
|
|
210
|
+
```markdown
|
|
211
|
+
# Brief: <Feature>
|
|
212
|
+
|
|
213
|
+
## Objective
|
|
214
|
+
<One sentence.>
|
|
215
|
+
|
|
216
|
+
## Non-goals
|
|
217
|
+
- <Explicitly out of scope.>
|
|
218
|
+
|
|
219
|
+
## Success definition
|
|
220
|
+
<One sentence that says what "done" means.>
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Compactness
|
|
224
|
+
|
|
225
|
+
High-traffic files should stay within the budgets in
|
|
226
|
+
[`workspace-artifact-schema.md`](../../devrites-lib/reference/workspace-artifact-schema.md). If a file truly must exceed its budget, add
|
|
227
|
+
`Budget override: <reason>` near the top.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-status
|
|
3
|
+
description: "User-invoked read-only active-feature report: phase, active slice, next action, evidence, open questions, drift, risks, and handoff readiness."
|
|
4
|
+
argument-hint: "[feature-slug]"
|
|
5
|
+
triggers:
|
|
6
|
+
- user
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /rite-status: active feature status
|
|
10
|
+
|
|
11
|
+
Read-only. Report the active workspace; do not run a phase or write files.
|
|
12
|
+
|
|
13
|
+
## Load
|
|
14
|
+
|
|
15
|
+
Use the supplied slug or `.devrites/ACTIVE`; require its authoritative
|
|
16
|
+
`state.md` and read the cursor directly. Read question, evidence, and risk
|
|
17
|
+
artifacts only as needed. Never infer lifecycle state from `README.md` or chat.
|
|
18
|
+
|
|
19
|
+
If no workspace exists: when archived workspaces record an unfinished
|
|
20
|
+
[continuation sequence](../rite-plan/reference/slicing.md#continuation-workspaces),
|
|
21
|
+
list each next command (`/rite-spec <parent>-<n> "<objective>"`); otherwise
|
|
22
|
+
recommend `/rite-spec <feature>`. Then stop.
|
|
23
|
+
|
|
24
|
+
If `state.md` is unreadable/malformed: report a gap with the defect and stop — never infer the phase from other files; `/rite-doctor`/`/rite-upgrade` own repair.
|
|
25
|
+
|
|
26
|
+
## Report
|
|
27
|
+
|
|
28
|
+
1. feature and one-line objective;
|
|
29
|
+
2. phase, run mode, and active slice;
|
|
30
|
+
3. status from `state.md`;
|
|
31
|
+
4. the single `Next step` recorded in `state.md`;
|
|
32
|
+
5. proven versus unproven evidence;
|
|
33
|
+
6. open questions by gate, including the exact resolving command when awaiting
|
|
34
|
+
a human; list `gate: escalating` entries separately under **Escalating:**
|
|
35
|
+
with their `route:` specialist tag (do not mix with synchronous blockers);
|
|
36
|
+
7. unresolved drift and material risks;
|
|
37
|
+
8. handoff readiness.
|
|
38
|
+
|
|
39
|
+
A workspace is handoff-ready when it records one next action, all unresolved
|
|
40
|
+
questions, non-obvious decisions, load-bearing assumptions, current drift
|
|
41
|
+
status, and evidence for its claims. If chat contains missing durable context,
|
|
42
|
+
recommend `/rite-handoff` before the lifecycle command.
|
|
43
|
+
|
|
44
|
+
Do not derive a command from host identity or invent one from phase names. Read
|
|
45
|
+
the persisted `Next step`.
|
|
46
|
+
|
|
47
|
+
## Output
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
Feature: <slug> — <objective>
|
|
51
|
+
Phase: <phase>; slice: <slice|n/a>; mode: <HITL|AFK>; status: <status>
|
|
52
|
+
Evidence: <fresh/proven summary | gaps>
|
|
53
|
+
Open: <questions/drift/blockers | none>
|
|
54
|
+
Escalating: <qid route:tag … | none>
|
|
55
|
+
Handoff: <ready | missing durable context>
|
|
56
|
+
Next: <single persisted command>
|
|
57
|
+
```
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-temper
|
|
3
|
+
description: Temper a readied spec before planning. Use when the user says "temper this", "strategy review", "pre-mortem the spec", or asks if we are over/under-building. Not for code review or final seal.
|
|
4
|
+
argument-hint: "[feature-slug] [--mode expand|selective|hold|reduce]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /rite-temper: review scope and risk before planning
|
|
8
|
+
|
|
9
|
+
Review the readied spec for ambition, scope, pre-mortem risk and unnecessary surface. Fold accepted decisions into the canonical contract before
|
|
10
|
+
`/rite-define`. This step is optional for small work and skips low-stakes specs, but
|
|
11
|
+
`/rite-autocomplete` always invokes it. **Read the active workspace first**; if there
|
|
12
|
+
is no readied `spec.md`, tell the user to run `/rite-spec`. Review depth follows
|
|
13
|
+
[`devrites-lib/reference/orchestration-profiles.md`](../devrites-lib/reference/orchestration-profiles.md);
|
|
14
|
+
the required exact strategy reviewer never changes with profile.
|
|
15
|
+
|
|
16
|
+
## Rules consulted (read on demand from `.devin/skills/devrites-lib/reference/standards/`)
|
|
17
|
+
Pull on demand: [`patterns.md`](../devrites-lib/reference/standards/patterns.md) +
|
|
18
|
+
[`coding-style.md`](../devrites-lib/reference/standards/coding-style.md) (the over-engineering / YAGNI rubric (reuse the pack's standard, don't
|
|
19
|
+
invent one), [`documentation.md`](../devrites-lib/reference/standards/documentation.md) (ADR-style `decisions.md` entries), [`afk-hitl.md`](../devrites-lib/reference/standards/afk-hitl.md)
|
|
20
|
+
(irreversible-risk list + gate ceiling), [`elicitation.md`](../devrites-lib/reference/standards/elicitation.md) (the move-set to deepen a section
|
|
21
|
+
that needs more than the default pre-mortem) selected by the section's risk). Load
|
|
22
|
+
[`repository-topology.md`](../devrites-lib/reference/standards/repository-topology.md), [`data-integrity.md`](../devrites-lib/reference/standards/data-integrity.md), or [`integration-reliability.md`](../devrites-lib/reference/standards/integration-reliability.md) only when
|
|
23
|
+
the spec applicability map triggers that risk family.
|
|
24
|
+
|
|
25
|
+
## Operating rules
|
|
26
|
+
- **Raise outcome ambition without expanding the solution unnecessarily.** Solve the
|
|
27
|
+
underlying problem without adding speculative capability or abstraction.
|
|
28
|
+
- **Route every scope change through the Spec Drift Guard.** A scope change takes effect
|
|
29
|
+
only when `spec.md` records the confirmed decision. HITL confirms expand;
|
|
30
|
+
autocomplete auto-applies it. Irreversible-risk still pauses.
|
|
31
|
+
- **Apply maximum caution to hard-to-reverse changes.** Auth, migration, public API, and
|
|
32
|
+
data-model changes always pause under the irreversible-risk list.
|
|
33
|
+
- **Honest verdict.** Never round "needs work" up to "ready"; record every scope call's *why*.
|
|
34
|
+
- **Search before asking.** Apply [`afk-hitl.md`](../devrites-lib/reference/standards/afk-hitl.md) decision ownership; only human-owned calls
|
|
35
|
+
enter the interactive walk.
|
|
36
|
+
- **You write; the reviewer judges.** You are the single canonical writer (`strategy.md` +
|
|
37
|
+
the spec edits); the reviewer agent is read-only.
|
|
38
|
+
- **Require spec-quality checklists for significant features.** Before hardening,
|
|
39
|
+
confirm `checklists/<domain>.md` exist and pass ([`spec-checklists.md`](../rite-spec/reference/spec-checklists.md)); a
|
|
40
|
+
scope expansion you fold in **adds its own** rows (new Success/Acceptance criteria get
|
|
41
|
+
checklist rows too). A folded expansion with an unquantified criterion is a CRITICAL
|
|
42
|
+
failure that reopens the readiness gate.
|
|
43
|
+
|
|
44
|
+
## Workflow
|
|
45
|
+
0. **Read `.devin/skills/devrites-lib/reference/standards/core.md`**, then
|
|
46
|
+
resolve the active slug, require its `state.md`, and read the cursor directly.
|
|
47
|
+
Then read the workspace: `spec.md`, `decision-coverage.md` (+ `decisions.md`,
|
|
48
|
+
`assumptions.md`, `design-brief.md` if UI), `state.md`. Require `Spec gate: passed`: else
|
|
49
|
+
STOP → `/rite-spec`. Require `Decision coverage: CLEAR`: else STOP →
|
|
50
|
+
`/rite-clarify`. If a plan already exists, scope changes route through `/rite-plan
|
|
51
|
+
repair` (record in `drift.md`), not a blind spec edit.
|
|
52
|
+
1. **Significance test:** [`reference/significance.md`](reference/significance.md). Low-stakes
|
|
53
|
+
/ shape-not-meaning work → write the exact one-line `skipped — low stakes (<trigger>)` verdict to `strategy.md`,
|
|
54
|
+
set `state.md` `Phase: temper` + `Next step: /rite-define`, and recommend it. Otherwise fire the full pass below.
|
|
55
|
+
2. **FORWARD pass + mode selection:** [`reference/scope-modes.md`](reference/scope-modes.md).
|
|
56
|
+
First, the **one-sentence-intent test**: state the whole change's intent in a single sentence.
|
|
57
|
+
If you can't without an "and" that joins two unrelated outcomes, it is **two features**: the
|
|
58
|
+
scope-creep signal; recommend splitting or narrowing the spec before continuing.
|
|
59
|
+
Apply the same test to size: a spec whose honest decomposition would exceed the
|
|
60
|
+
[feature ceiling](../rite-plan/reference/slicing.md#feature-ceiling-split-an-epic-never-override-the-budget)
|
|
61
|
+
(roughly ten slices or more than ~20 acceptance criteria) is a feature sequence;
|
|
62
|
+
recommend the thinnest shippable subset now and name the continuations as Non-goals.
|
|
63
|
+
Then consider the 10-star outcome for the underlying problem and choose **exactly one**
|
|
64
|
+
scope mode (`expand` opt-in · `selective` · `hold-rigor` · `reduce-to-MVP`) with its
|
|
65
|
+
rationale and the condition that would change the choice. `$ARGUMENTS` `--mode` is a
|
|
66
|
+
hint, not a command.
|
|
67
|
+
3. **INVERSION pass:** pre-mortem in past tense ("it shipped and failed: what went wrong"),
|
|
68
|
+
each top risk carrying likelihood + mitigation + the slice it will bind to; then the **YAGNI
|
|
69
|
+
ledger** (each candidate scope item gets the "imagine the later refactor" test; defer unless
|
|
70
|
+
now-cost is trivial AND deferred-cost is large).
|
|
71
|
+
**Interruption pre-mortem:** audit the spec forecast and assumptions for unresolved behavior,
|
|
72
|
+
proof prerequisites, approvals, access, and irreversible gates. Resolve facts and reversible
|
|
73
|
+
details now; retain only unavailable-pre-code or mandatory action-time checkpoints.
|
|
74
|
+
Challenge each `not applicable` decision against live evidence and each applicable
|
|
75
|
+
topology/data/integration row against its worst credible partial-state/recovery case.
|
|
76
|
+
- **Deepen on demand.** When a scope decision, requirement, or risk needs more analysis
|
|
77
|
+
than the default pre-mortem provides, choose 3-5 techniques from
|
|
78
|
+
[`elicitation.md`](../devrites-lib/reference/standards/elicitation.md) whose *when-to-reach-for-it* matches that
|
|
79
|
+
section's risk (irreversible decision → Red-Team/Blue-Team + Assumption Audit; sizing → Delphi;
|
|
80
|
+
vague requirement → Steelman-then-Attack), offer them, and run the chosen one **on that
|
|
81
|
+
section**. Record what changed, not the technique name. The default passes remain
|
|
82
|
+
sufficient when no deeper analysis is needed.
|
|
83
|
+
4. **Score the 9 dimensions:** [`reference/review-dimensions.md`](reference/review-dimensions.md).
|
|
84
|
+
Cite evidence *before* the band; **gate on the floor** (the weakest dimension, not an average).
|
|
85
|
+
**Completion:** all nine dimensions have cited evidence, a band, and one explicit floor verdict.
|
|
86
|
+
5. **Review human-owned findings with the human; do not batch them.** `strategy.md`
|
|
87
|
+
records the interactive review but does not replace it. Present each material scope decision through
|
|
88
|
+
`AskUserQuestion`, one at a time, best-guess + **why**. Each material scope call ends as a
|
|
89
|
+
**recorded decision**: a resolved `questions.md` qid (HITL) or a `decisions.md` ADR (AFK):
|
|
90
|
+
so the review leaves an auditable record outside chat. (AFK gate policy —
|
|
91
|
+
[`reference/significance.md`](reference/significance.md) — autocomplete applies
|
|
92
|
+
the recommended mode including `expand`; irreversible-risk always pauses.)
|
|
93
|
+
Apply objective clarity, mitigation, and assumption fixes directly.
|
|
94
|
+
6. **Write `strategy.md` + fold back:** [`reference/strategy-template.md`](reference/strategy-template.md).
|
|
95
|
+
**Choose the drift path based on whether a plan exists:** *no `plan.md` yet* (the normal pre-define
|
|
96
|
+
case) → update `spec.md` **through the Spec Drift Guard**. *Success metrics* (outcome-level, no AC id)
|
|
97
|
+
**and** *Acceptance criteria* for each opt-in expansion / cut, **Non-goals** for every deferred item,
|
|
98
|
+
*Constraints and invariants*, with top failure modes + mitigations folded into *Failure and recovery
|
|
99
|
+
behavior* rows, and the *Open questions* table; *`plan.md`
|
|
100
|
+
already exists* → do **not** edit `spec.md` here: write the deltas to `drift.md` and hand off
|
|
101
|
+
to `/rite-plan repair`. Either way, append `decisions.md` (one ADR per scope call: context ·
|
|
102
|
+
decision · why-not · what-would-change-it) and `assumptions.md` (every "we'll probably need X" →
|
|
103
|
+
assumption-to-verify). (every delta carries the step-5 recorded decision; an untraceable
|
|
104
|
+
fold is invalid). **Re-check the spec Readiness gate** (it fails if
|
|
105
|
+
any folded scope delta lacks its decision or leaves a foreseeable human build choice).
|
|
106
|
+
After any edit to `brief.md`, `spec.md`, `decisions.md`, `assumptions.md`, or
|
|
107
|
+
`questions.md`, re-scan the affected coverage rows, assumption audit, residual uncertainty,
|
|
108
|
+
and closed gates. Partial/Missing, an unowned material assumption, or an open
|
|
109
|
+
blocking/escalating question routes `/rite-clarify`/HITL. Only after the
|
|
110
|
+
matrix is re-closed may the phase advance.
|
|
111
|
+
Set `Phase: temper`; `Next step: /rite-define` only after verification.
|
|
112
|
+
Unapproved irreversible choices set `Awaiting human`. Autocomplete expand does
|
|
113
|
+
not. Objective below-bar findings continue correction.
|
|
114
|
+
7. **Adversarial verification loop:** ask the exact
|
|
115
|
+
[`devrites-strategy-reviewer`](.devin/agents/devrites-strategy-reviewer.md)
|
|
116
|
+
through the native fresh-context contract in
|
|
117
|
+
[`agents.md`](../devrites-lib/reference/standards/agents.md), with **only** the hardened
|
|
118
|
+
spec + rubric, no authoring reasoning. Fold technical findings into one correction;
|
|
119
|
+
exact strategy reviewer rechecks open findings and affected coverage/regressions under
|
|
120
|
+
[the canonical retry contract](../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve):
|
|
121
|
+
Product/scope choices and unapproved irreversible risk remain human gates;
|
|
122
|
+
technical exhaustion preserves blocker/reproduction.
|
|
123
|
+
If the named agent is unavailable, stop for HITL. After an accepted edit to a
|
|
124
|
+
coverage-bound input, repeat step 6's native coverage revalidation before handoff.
|
|
125
|
+
8. **STOP.** Report the mode, the scope deltas, and the floor verdict; recommend `/rite-define`.
|
|
126
|
+
|
|
127
|
+
> **Mid-flight discipline.** Do not replace the interactive review with `strategy.md`,
|
|
128
|
+
> expand implementation surface without need, grow scope outside the Drift Guard, or score
|
|
129
|
+
> before citing evidence. See [`reference/anti-patterns.md`](reference/anti-patterns.md).
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# /rite-temper: anti-patterns
|
|
2
|
+
|
|
3
|
+
For cross-phase issues, read [universal anti-patterns](../../devrites-lib/reference/standards/anti-patterns.md).
|
|
4
|
+
|
|
5
|
+
## Phase rationalizations
|
|
6
|
+
|
|
7
|
+
| Excuse | Rebuttal |
|
|
8
|
+
|---|---|
|
|
9
|
+
| "I'll write all the findings into `strategy.md` and let the user read it." | Fold and recheck objective corrections preserving scope, behavior, and risk policy. Ask human-owned strategy/acceptance choices with recommendations and await answers. Recording alone resolves nothing; never silently expand or trim the spec. |
|
|
10
|
+
| "Bigger is better: let's add the extra capability while we're thinking big." | Ambition belongs on the **outcome**, not the **solution surface**. A speculative capability/abstraction is gold plating. Expand the problem + acceptance; never the machinery. |
|
|
11
|
+
| "The user obviously wants the ambitious version. I'll add it to the spec." | Expansion is **opt-in**, recorded, and confirmed (HITL) or paused (AFK). Adding acceptance the human didn't approve is silent scope growth: route it through the Spec Drift Guard or don't add it. |
|
|
12
|
+
| "It's over-scoped, I'll just trim those criteria." | Reducing scope is **still a spec change**. Cut acceptance only as a recorded Spec-Drift-Guard decision, and park the rest in Non-goals with a revisit note: never a silent trim. |
|
|
13
|
+
| "This dimension is weak but the others are strong: net it's fine." | The gate is the **floor**, not the average; strong clarity cannot offset broken risk. |
|
|
14
|
+
| "I can see it's adequate. I'll note the band, evidence is obvious." | Cite spec evidence **before** the band; never score first and rationalize later. |
|
|
15
|
+
| "It's a strategy doc, the implementation concerns don't apply yet." | Cross-cutting concerns (security/data/observability/modifiability) are where strategy breaks down. Address each or mark it explicitly N/A: silent omission is a gap. |
|
|
16
|
+
| "This greenfield design is elegant." | Ground ambition in live seams/blast radius; a new dependency or second design system needs an explicit decision. |
|
|
17
|
+
|
|
18
|
+
## Red flags
|
|
19
|
+
- An accepted strategy change recorded in `strategy.md` but not reflected in its
|
|
20
|
+
owning spec acceptance/Non-goals. A clean review does not require gratuitous spec edits.
|
|
21
|
+
- An `expand` decision auto-applied in AFK, an unapproved risk-policy change, or an
|
|
22
|
+
irreversible operation without its required authorization.
|
|
23
|
+
- A pre-mortem with risks listed but no mitigation + owning slice: a risk without an owner is a
|
|
24
|
+
wish.
|
|
25
|
+
- Repeating an exhausted causal failure under the shared no-progress rule in
|
|
26
|
+
[`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md), or stopping a
|
|
27
|
+
distinct cause solely because the total review round exceeds three.
|
|
28
|
+
- The reviewer being handed the author's reasoning as independent evidence
|
|
29
|
+
(defeats the fresh-context point).
|
|
30
|
+
- The skill writing a `plan.md`, slicing, or touching code. That's `/rite-define` / `/rite-build`.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Review dimensions and floor-gate rubric
|
|
2
|
+
|
|
3
|
+
Score the spec on nine dimensions. A strong dimension cannot offset a failed one, so
|
|
4
|
+
the gate uses the **lowest band**, not an average.
|
|
5
|
+
|
|
6
|
+
## The nine dimensions
|
|
7
|
+
1. **Problem choice and ambition:** does the spec solve the underlying problem, or only
|
|
8
|
+
make a minor improvement to the obvious path? It may also reach beyond the actual need.
|
|
9
|
+
Both insufficient outcome ambition and over-building are failures.
|
|
10
|
+
2. **Scope and boundary:** are non-goals explicit? Is there a Minimum Usable Subset and
|
|
11
|
+
a clear IN/OUT line? Flag unrelated bundles and a missing "Won't-have-this-time".
|
|
12
|
+
3. **Premise and alternatives:** are the consequential premises stated and challenged, and is at
|
|
13
|
+
least one genuinely different approach (different data model / flow / boundary) considered
|
|
14
|
+
with its trade-off? ("Alternatives considered" is one of the most useful parts of a spec.)
|
|
15
|
+
4. **Pre-mortem risk coverage:** assess the feature as if it shipped and failed. Each top risk carries likelihood
|
|
16
|
+
+ mitigation + the slice that owns it. The interruption pre-mortem accounts for foreseeable
|
|
17
|
+
human prerequisites and action-time approvals instead of deferring generic uncertainty to
|
|
18
|
+
build. **Unmitigated top risks are gating.**
|
|
19
|
+
5. **Over-engineering / YAGNI:** speculative capability, unused extension points, premature
|
|
20
|
+
abstraction, second-system bloat. Apply the pack's standard ([`patterns.md`](../../devrites-lib/reference/standards/patterns.md)) and the YAGNI
|
|
21
|
+
ledger test (scope-modes.md Pass 2).
|
|
22
|
+
6. **Acceptance testability and completion:** every acceptance criterion measurable, technology-
|
|
23
|
+
agnostic, and comparable **down to a baseline** ("better than the current workaround"), not
|
|
24
|
+
up to an unbounded ideal. Vague adjectives ("fast/robust/intuitive") and "handles X
|
|
25
|
+
gracefully" are flagged.
|
|
26
|
+
7. **Irreversibility & blast radius:** are auth / migration / public-API / data-model touches
|
|
27
|
+
treated with conservatism + rollback, and is the blast radius understood (from a
|
|
28
|
+
code-intelligence index if available)?
|
|
29
|
+
8. **Cross-cutting coverage:** security/trust-boundary, data & migration, observability, and
|
|
30
|
+
modifiability each explicitly addressed **or explicitly N/A**: no silent omission.
|
|
31
|
+
9. **Convention fit & placement realism:** does the ambition fit the codebase's existing seams
|
|
32
|
+
and patterns, or assume greenfield freedom a constrained space doesn't have? Prefer existing
|
|
33
|
+
conventions; flag a new dependency / second design system for explicit decision.
|
|
34
|
+
|
|
35
|
+
UI specs also inherit [`anti-ai-slop.md`](../../rite-polish/reference/anti-ai-slop.md) at the cross-cutting
|
|
36
|
+
dimension (design-system fit, anti-AI-slop), but `/rite-temper` reviews the *spec/design-brief*,
|
|
37
|
+
not pixels; the built UI is judged later by `devrites-frontend-reviewer`.
|
|
38
|
+
|
|
39
|
+
## Rubric
|
|
40
|
+
Score each dimension on a **labeled band**, never a 1-10 float or composite number:
|
|
41
|
+
|
|
42
|
+
| Band | Meaning |
|
|
43
|
+
|---|---|
|
|
44
|
+
| **strong** | Addressed well; no action needed. |
|
|
45
|
+
| **adequate** | Addressed; minor sharpening only (Suggestion/Nit). |
|
|
46
|
+
| **thin** | Under-addressed; a real gap to close before planning (Important). |
|
|
47
|
+
| **broken** | Missing or wrong in a way that will cost a redo (Critical). |
|
|
48
|
+
|
|
49
|
+
**Cite evidence before assigning the band.** Name the spec line or absence that
|
|
50
|
+
justifies it. Review a borderline dimension twice if needed and use the **lower** band.
|
|
51
|
+
|
|
52
|
+
## The floor-gate
|
|
53
|
+
- **Pass** only when every dimension is `adequate` or `strong` **and** no unmitigated top
|
|
54
|
+
pre-mortem risk remains. The verdict is the **weakest** dimension: a spec strong on clarity
|
|
55
|
+
but `broken` on risk does **not** pass.
|
|
56
|
+
- Individual findings carry the pack's standard severity labels (**Critical / Important /
|
|
57
|
+
Suggestion / Nit / FYI**) so they compose with `/rite-review` and `/rite-seal`. `broken` →
|
|
58
|
+
Critical, `thin` → Important; **FYI is band-independent**: an observation on a `strong` /
|
|
59
|
+
`adequate` dimension, not a failing band.
|
|
60
|
+
- **Do not double-count overlap.** Some dimensions use the same evidence (e.g. #7
|
|
61
|
+
irreversibility & #9 convention-fit both touch codebase realism; #1 ambition & #2 scope both
|
|
62
|
+
touch over/under-reach). Don't fail two dimensions for the *same* root cause: cite the
|
|
63
|
+
evidence once and assign one band so one problem does not create two floor failures.
|
|
64
|
+
- Below-bar blocks readiness; objective fixes return to the caller under
|
|
65
|
+
[the canonical retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve).
|
|
66
|
+
Human-owned scope/risk choices keep their gate; exhaustion blocks technically.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Scope modes + the two passes
|
|
2
|
+
|
|
3
|
+
The heart of `/rite-temper`: two ordered passes (heat, then quench), converging on exactly
|
|
4
|
+
one scope mode. Ambition is a **generative** move followed by a **required convergence**: the
|
|
5
|
+
divergence is never the spec; the converged sweet spot is.
|
|
6
|
+
|
|
7
|
+
## Pass 1: FORWARD (heat: raise ambition on the outcome)
|
|
8
|
+
Diverge on the *real problem*, not the obvious path. Ask:
|
|
9
|
+
- What would an order-of-magnitude-better **outcome** look like (the 10-star version)? Design
|
|
10
|
+
the extreme, then come back to the feasible sweet spot: don't ship the extreme.
|
|
11
|
+
- Is a **premise** load-bearing and wrong? Name the assumptions the spec rests on; challenge
|
|
12
|
+
the one that, if false, changes everything.
|
|
13
|
+
- Where is **under-reaching** the real risk: a timid improvement to a path we should reframe?
|
|
14
|
+
|
|
15
|
+
Ambition aims at the **outcome** (problem definition, success bar, user value) and at
|
|
16
|
+
complexity-**neutral** future-proofing. It never aims at the **solution surface** (that's Pass 2's
|
|
17
|
+
job to prune). Ground every ambitious idea in the codebase's real seams and blast radius. Use a
|
|
18
|
+
code-intelligence index if available (see `../../devrites-lib/reference/standards/tooling.md`). Don't invent greenfield scope a
|
|
19
|
+
constrained codebase can't absorb.
|
|
20
|
+
|
|
21
|
+
## Pass 2: INVERSION (quench: pre-mortem + prune)
|
|
22
|
+
Invert. Two subtractive moves:
|
|
23
|
+
- **Pre-mortem (prospective hindsight).** State it in past tense: *"It's six months out. This
|
|
24
|
+
shipped and failed. What went wrong?"* List the top failure modes; for each: likelihood,
|
|
25
|
+
mitigation, and the slice that will own the mitigation. Unmitigated top risks are **gating**.
|
|
26
|
+
- **YAGNI ledger.** Each candidate scope item gets the "imagine the later refactor" test: if
|
|
27
|
+
adding it *later* isn't materially more expensive, **defer it** (with a revisit note).
|
|
28
|
+
Bias hard toward defer: most presumed-needed features are never used. Reuse the
|
|
29
|
+
pack's existing [`patterns.md`](../../devrites-lib/reference/standards/patterns.md) standard ('no speculative abstraction or pattern
|
|
30
|
+
without a current need'). Don't invent a new YAGNI rule.
|
|
31
|
+
|
|
32
|
+
## The four modes: commit exactly one
|
|
33
|
+
Mode selection is the first convergence move. Record the chosen mode + rationale + the
|
|
34
|
+
**hinge** (what would change the call) in `strategy.md` and `decisions.md`.
|
|
35
|
+
|
|
36
|
+
| Mode | When | What it does | YAGNI / Drift Guard |
|
|
37
|
+
|---|---|---|---|
|
|
38
|
+
| **EXPAND** *(opt-in, default OFF)* | Under-reaching on the outcome is the real risk | Raise the success bar / reframe to the deeper problem; thinner-but-more-complete path to a bigger target | Expands the *problem + acceptance*, not machinery. Each added criterion is a Drift-Guard-recorded, human-confirmed (HITL) decision: never auto-grown |
|
|
39
|
+
| **SELECTIVE** | One or two high-leverage dimensions deserve more; the rest is right | Expand only the high-upside dimension; hold the rest at spec scope | Each selected expansion routes through the Guard; everything not selected is parked in Non-goals so it's neither dropped nor re-injected mid-build |
|
|
40
|
+
| **HOLD-RIGOR** | The spec is right-sized (default for irreversible-risk-heavy or already-tight specs) | No scope change: pure hardening: pre-mortem, risk mitigations, acceptance sharpening, cross-cutting coverage | Adds zero surface; trivially Drift-Guard-clean (no acceptance change) |
|
|
41
|
+
| **REDUCE-TO-MVP** | Over-scoped: second-system bloat, ~all must-haves, gold-plating | Hammer scope to the Minimum Usable Subset; move the rest to Non-goals with one-line reasons + revisit notes | Strongest YAGNI alignment. Cutting acceptance is **still a spec change**: record it via the Guard, never a silent trim |
|
|
42
|
+
|
|
43
|
+
## Bound ambition by reversibility
|
|
44
|
+
The bigger the bet, the more it must be reversible. Irreversible-risk areas (auth, migrations,
|
|
45
|
+
public API, data model) get the **opposite** of ambition: maximum conservatism, explicit
|
|
46
|
+
rollback, and they **always pause** regardless of mode (the [`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md) irreversible-risk
|
|
47
|
+
list is honored verbatim). Size big bets so that if the whole thing vanished tomorrow, you'd be
|
|
48
|
+
fine.
|
|
49
|
+
|
|
50
|
+
## Effort foresight (frame it now, not "later")
|
|
51
|
+
While choosing scope, surface the late-stage questions early: *"What will surprise us at
|
|
52
|
+
integration? What will we wish we'd planned for at polish/test time?"* Turn each into a
|
|
53
|
+
constraint, a risk, or a deferred Non-goal **now**, not a "figure it out later".
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Significance test: fire the full review, or skip it
|
|
2
|
+
|
|
3
|
+
`/rite-temper` is **significance-gated**: full strategic rigor only when the work is big
|
|
4
|
+
enough to earn it, a one-line skip otherwise. This is the shared definition used by both the
|
|
5
|
+
optional `/rite-temper` path and the always-run (significance-gated) `/rite-autocomplete` step,
|
|
6
|
+
so they agree on when it fires.
|
|
7
|
+
|
|
8
|
+
## Fire the FULL review when ANY trips
|
|
9
|
+
- **Irreversible-risk contact:** the slice/spec touches anything on the [`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md)
|
|
10
|
+
irreversible-risk list: destructive data migration, auth/authz boundary, public-API break,
|
|
11
|
+
external-service contract, filesystem destruction outside the workspace.
|
|
12
|
+
- **Data model:** new/changed entities, relationships, or persistence shape.
|
|
13
|
+
- **Cross-module blast radius:** the impact (from a code-intelligence index if available (see
|
|
14
|
+
`../../devrites-lib/reference/standards/tooling.md`) or an honest estimate) crosses
|
|
15
|
+
module/service boundaries or has many dependents.
|
|
16
|
+
- **Greenfield / ambiguous scope:** a new surface with no existing seam to follow, or a spec
|
|
17
|
+
whose "right size" is genuinely open (multiple defensible scopes).
|
|
18
|
+
- **Multi-slice / multi-day:** the work decomposes into several slices (large enough that a
|
|
19
|
+
wrong scope call is expensive to unwind).
|
|
20
|
+
- **The user asked:** "think bigger", "is this ambitious enough", "scope check", "pre-mortem",
|
|
21
|
+
an explicit `/rite-temper` invocation, or a chosen `--mode`. An explicit ask always fires.
|
|
22
|
+
|
|
23
|
+
## Skip (low stakes) when ALL hold
|
|
24
|
+
- Single-module, reversible, behavior-shaped-not-structural change.
|
|
25
|
+
- No irreversible-risk contact; blast radius contained to the touched files.
|
|
26
|
+
- Scope is unambiguous: there's one obvious right size and the spec already has it.
|
|
27
|
+
|
|
28
|
+
On skip, **don't run the passes**. Write only the one-line verdict to `strategy.md`:
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
# Strategy: <slug>
|
|
32
|
+
Tempered: <iso>
|
|
33
|
+
|
|
34
|
+
## 1. Significance
|
|
35
|
+
skipped — low stakes (<trigger>)
|
|
36
|
+
Next: /rite-define
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Then recommend `/rite-define`. A skip is a *recorded* decision, not a silent omission: the
|
|
40
|
+
seal can see the call was made deliberately.
|
|
41
|
+
|
|
42
|
+
## In `/rite-autocomplete`
|
|
43
|
+
Autocomplete runs the significance test every feature. On skip → straight to `/rite-define`
|
|
44
|
+
(no pause). On fire → run the full review and auto-apply the recommended mode, including
|
|
45
|
+
`expand` and extra acceptance (record the ADR; fold via Spec Drift Guard).
|
|
46
|
+
Irreversible-risk findings always pause.
|