devrites 7.1.2 → 7.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +9 -4
- package/docs/dsh.md +85 -0
- package/engine/internal/devritespaths/paths.go +2 -0
- package/engine/internal/hostpack/hostpack.go +29 -5
- package/engine/internal/install/apply.go +14 -2
- package/engine/internal/install/install.go +7 -3
- package/engine/internal/install/merge.go +1 -0
- package/engine/internal/install/preflight.go +9 -2
- package/engine/internal/install/update.go +1 -1
- package/engine/internal/lib/dispatch_packet.go +1 -1
- package/pack/generated/README.md +3 -1
- package/pack/generated/dsh/AGENTS.md +27 -0
- package/pack/generated/dsh/agents/devrites-code-reviewer.md +180 -0
- package/pack/generated/dsh/agents/devrites-devex-reviewer.md +137 -0
- package/pack/generated/dsh/agents/devrites-doubt-reviewer.md +100 -0
- package/pack/generated/dsh/agents/devrites-evidence-scout.md +93 -0
- package/pack/generated/dsh/agents/devrites-frontend-reviewer.md +139 -0
- package/pack/generated/dsh/agents/devrites-performance-reviewer.md +142 -0
- package/pack/generated/dsh/agents/devrites-plan-drafter.md +113 -0
- package/pack/generated/dsh/agents/devrites-plan-reviewer.md +167 -0
- package/pack/generated/dsh/agents/devrites-proof-runner.md +101 -0
- package/pack/generated/dsh/agents/devrites-retrospector.md +82 -0
- package/pack/generated/dsh/agents/devrites-security-auditor.md +146 -0
- package/pack/generated/dsh/agents/devrites-simplifier-reviewer.md +113 -0
- package/pack/generated/dsh/agents/devrites-slice-wright.md +240 -0
- package/pack/generated/dsh/agents/devrites-spec-reviewer.md +105 -0
- package/pack/generated/dsh/agents/devrites-strategy-reviewer.md +109 -0
- package/pack/generated/dsh/agents/devrites-test-analyst.md +110 -0
- package/pack/generated/dsh/agents/devrites-upgrade-planner.md +107 -0
- package/pack/generated/dsh/agents/fast-builder.md +92 -0
- package/pack/generated/dsh/agents/fast-checker.md +61 -0
- package/pack/generated/dsh/agents/fast-critic.md +71 -0
- package/pack/generated/dsh/agents/fast-planner.md +95 -0
- package/pack/generated/dsh/agents/overhaul-backend-engineer.md +70 -0
- package/pack/generated/dsh/agents/overhaul-boundary.md +64 -0
- package/pack/generated/dsh/agents/overhaul-craft.md +85 -0
- package/pack/generated/dsh/agents/overhaul-frontend-engineer.md +73 -0
- package/pack/generated/dsh/agents/overhaul-implementer.md +72 -0
- package/pack/generated/dsh/agents/overhaul-recon.md +77 -0
- package/pack/generated/dsh/agents/overhaul-specialist.md +67 -0
- package/pack/generated/dsh/agents/overhaul-verifier.md +73 -0
- package/pack/generated/dsh/runtime/codebase-memory.patch.yml +16 -0
- package/pack/generated/dsh/runtime/cordis.patch.yml +1762 -0
- package/pack/generated/dsh/runtime/specialist.mjs +85 -0
- package/pack/generated/dsh/skills/devrites-api-interface/SKILL.md +65 -0
- package/pack/generated/dsh/skills/devrites-audit/SKILL.md +60 -0
- package/pack/generated/dsh/skills/devrites-browser-proof/SKILL.md +109 -0
- package/pack/generated/dsh/skills/devrites-browser-proof/reference/browser-performance.md +19 -0
- package/pack/generated/dsh/skills/devrites-browser-proof/reference/visual-verdict.md +38 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/SKILL.md +119 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +41 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/reference/hypotheses.md +23 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/reference/regression-test.md +33 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/reference/trace.md +25 -0
- package/pack/generated/dsh/skills/devrites-doubt/SKILL.md +83 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/SKILL.md +89 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/reference/craft.md +63 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/reference/design-references.md +120 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/reference/fullstack.md +46 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/reference/quality-standards.md +286 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/reference/reuse-first.md +53 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/reference/shape.md +61 -0
- package/pack/generated/dsh/skills/devrites-interview/SKILL.md +107 -0
- package/pack/generated/dsh/skills/devrites-lib/SKILL.md +98 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/candidate-integrity.md +59 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/intent-map.md +86 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/orchestration-profiles.md +48 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/parallel-dispatch.md +184 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/reply-contract.md +123 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/README.md +70 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +32 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/afk-hitl.md +467 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/agents.md +231 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/anti-patterns.md +50 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/audit-coverage.md +107 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/browser-proof-checklist.md +37 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/ci-cd.md +62 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/code-index.md +111 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/code-navigation.md +69 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/code-review.md +178 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/coding-style.md +53 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/context-hygiene.md +136 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/core.md +202 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/data-integrity.md +144 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/debug-recovery.md +42 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/definition-of-done.md +25 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/deprecation.md +49 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/developer-experience.md +128 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/development-workflow.md +31 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/documentation.md +55 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/duplicate-code.md +129 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/edge-case-trace.md +94 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/elicitation.md +114 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/error-handling.md +49 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/gates.md +159 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/git-workflow.md +51 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/glossary.md +40 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/hooks.md +41 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/integration-reliability.md +121 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/loop-operations.md +123 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/observability.md +90 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/one-shot-actions.md +105 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/patterns.md +70 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/performance.md +88 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/principles.md +56 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/prose-style.md +127 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/release/ship-checklist.md +12 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/repository-topology.md +82 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/README.md +28 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/default.md +42 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/go.md +47 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/python.md +46 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/react.md +55 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/shell.md +40 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/ts-js.md +74 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review-checklist.md +14 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/security-checklist.md +30 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/security.md +283 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/skill-authoring.md +269 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/spec-grammar.md +214 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/test-proof-checklist.md +18 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/testing.md +295 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/tooling.md +125 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/verification-methods.md +143 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/windows.md +60 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/workflow-artifacts.md +435 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/code.md +44 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/comparison.md +42 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/diagram.md +51 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/index.md +66 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/input.md +46 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/outline-template.md +106 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/plan.md +48 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/slides.md +40 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/table.md +42 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/workspace-artifact-schema.md +312 -0
- package/pack/generated/dsh/skills/devrites-prose-craft/SKILL.md +81 -0
- package/pack/generated/dsh/skills/devrites-prose-craft/reference/banned-phrases.md +132 -0
- package/pack/generated/dsh/skills/devrites-prose-craft/reference/examples.md +136 -0
- package/pack/generated/dsh/skills/devrites-prose-craft/reference/structures.md +196 -0
- package/pack/generated/dsh/skills/devrites-source-driven/SKILL.md +54 -0
- package/pack/generated/dsh/skills/devrites-ux-shape/SKILL.md +135 -0
- package/pack/generated/dsh/skills/devrites-ux-shape/reference/brief-template.md +108 -0
- package/pack/generated/dsh/skills/devrites-ux-shape/reference/visual-direction-probe.md +50 -0
- package/pack/generated/dsh/skills/overhaul/SKILL.md +221 -0
- package/pack/generated/dsh/skills/overhaul/references/audit-domains.md +390 -0
- package/pack/generated/dsh/skills/overhaul/references/lifecycle.md +314 -0
- package/pack/generated/dsh/skills/overhaul/references/orchestration.md +291 -0
- package/pack/generated/dsh/skills/overhaul/references/records.md +203 -0
- package/pack/generated/dsh/skills/overhaul/references/repair-and-measurement.md +310 -0
- package/pack/generated/dsh/skills/overhaul/references/review-and-report.md +139 -0
- package/pack/generated/dsh/skills/overhaul/references/scope-and-safety.md +233 -0
- package/pack/generated/dsh/skills/overhaul/references/scoring.md +261 -0
- package/pack/generated/dsh/skills/overhaul/references/stack-profiles.md +316 -0
- package/pack/generated/dsh/skills/rite/SKILL.md +157 -0
- package/pack/generated/dsh/skills/rite/reference/menu.md +49 -0
- package/pack/generated/dsh/skills/rite-adopt/SKILL.md +64 -0
- package/pack/generated/dsh/skills/rite-adopt/reference/adoption.md +25 -0
- package/pack/generated/dsh/skills/rite-adopt/reference/anti-patterns.md +19 -0
- package/pack/generated/dsh/skills/rite-autocomplete/SKILL.md +167 -0
- package/pack/generated/dsh/skills/rite-autocomplete/reference/decision-policy.md +44 -0
- package/pack/generated/dsh/skills/rite-autocomplete/reference/lookahead.md +50 -0
- package/pack/generated/dsh/skills/rite-autocomplete/reference/loop.md +164 -0
- package/pack/generated/dsh/skills/rite-autocomplete/reference/stop-conditions.md +118 -0
- package/pack/generated/dsh/skills/rite-build/SKILL.md +126 -0
- package/pack/generated/dsh/skills/rite-build/reference/afk-discipline.md +153 -0
- package/pack/generated/dsh/skills/rite-build/reference/anti-patterns.md +27 -0
- package/pack/generated/dsh/skills/rite-build/reference/checkpoint-protocol.md +115 -0
- package/pack/generated/dsh/skills/rite-build/reference/checkpoint.md +79 -0
- package/pack/generated/dsh/skills/rite-build/reference/frontend-trigger.md +39 -0
- package/pack/generated/dsh/skills/rite-build/reference/one-slice-cycle.md +57 -0
- package/pack/generated/dsh/skills/rite-build/reference/output.md +29 -0
- package/pack/generated/dsh/skills/rite-build/reference/parallel-batch.md +260 -0
- package/pack/generated/dsh/skills/rite-build/reference/phase-contract.md +130 -0
- package/pack/generated/dsh/skills/rite-build/reference/spec-drift-guard.md +91 -0
- package/pack/generated/dsh/skills/rite-build/reference/tdd.md +27 -0
- package/pack/generated/dsh/skills/rite-build/reference/wright-dispatch.md +198 -0
- package/pack/generated/dsh/skills/rite-clarify/SKILL.md +104 -0
- package/pack/generated/dsh/skills/rite-clarify/reference/anti-patterns.md +24 -0
- package/pack/generated/dsh/skills/rite-clarify/reference/decision-coverage.md +56 -0
- package/pack/generated/dsh/skills/rite-converge/SKILL.md +167 -0
- package/pack/generated/dsh/skills/rite-converge/reference/anti-patterns.md +35 -0
- package/pack/generated/dsh/skills/rite-converge/reference/convergence-assessment.md +70 -0
- package/pack/generated/dsh/skills/rite-customize/SKILL.md +64 -0
- package/pack/generated/dsh/skills/rite-define/SKILL.md +203 -0
- package/pack/generated/dsh/skills/rite-define/reference/anti-patterns.md +26 -0
- package/pack/generated/dsh/skills/rite-define/reference/gates.md +160 -0
- package/pack/generated/dsh/skills/rite-define/reference/plan-template.md +153 -0
- package/pack/generated/dsh/skills/rite-doctor/SKILL.md +107 -0
- package/pack/generated/dsh/skills/rite-dogfood/SKILL.md +57 -0
- package/pack/generated/dsh/skills/rite-explain/SKILL.md +154 -0
- package/pack/generated/dsh/skills/rite-explain/reference/intake.md +89 -0
- package/pack/generated/dsh/skills/rite-fast/SKILL.md +185 -0
- package/pack/generated/dsh/skills/rite-fast/reference/artifacts.md +107 -0
- package/pack/generated/dsh/skills/rite-fast/reference/check-and-triage.md +51 -0
- package/pack/generated/dsh/skills/rite-frame/SKILL.md +119 -0
- package/pack/generated/dsh/skills/rite-frame/reference/failure-modes.md +66 -0
- package/pack/generated/dsh/skills/rite-handoff/SKILL.md +117 -0
- package/pack/generated/dsh/skills/rite-handoff/reference/handoff-template.md +56 -0
- package/pack/generated/dsh/skills/rite-harness/SKILL.md +76 -0
- package/pack/generated/dsh/skills/rite-harness/reference/feature-map.md +60 -0
- package/pack/generated/dsh/skills/rite-learn/SKILL.md +107 -0
- package/pack/generated/dsh/skills/rite-plan/SKILL.md +215 -0
- package/pack/generated/dsh/skills/rite-plan/reference/anti-patterns.md +34 -0
- package/pack/generated/dsh/skills/rite-plan/reference/dependency-graph.md +48 -0
- package/pack/generated/dsh/skills/rite-plan/reference/replan-and-repair.md +114 -0
- package/pack/generated/dsh/skills/rite-plan/reference/slicing.md +187 -0
- package/pack/generated/dsh/skills/rite-plan/reference/task-breakdown.md +50 -0
- package/pack/generated/dsh/skills/rite-polish/SKILL.md +128 -0
- package/pack/generated/dsh/skills/rite-polish/reference/adr-promotion.md +11 -0
- package/pack/generated/dsh/skills/rite-polish/reference/anti-ai-slop.md +210 -0
- package/pack/generated/dsh/skills/rite-polish/reference/anti-patterns.md +30 -0
- package/pack/generated/dsh/skills/rite-polish/reference/backend-polish.md +80 -0
- package/pack/generated/dsh/skills/rite-polish/reference/browser-polish-evidence.md +33 -0
- package/pack/generated/dsh/skills/rite-polish/reference/code.md +87 -0
- package/pack/generated/dsh/skills/rite-polish/reference/design-memory.md +117 -0
- package/pack/generated/dsh/skills/rite-polish/reference/design-system-discovery.md +8 -0
- package/pack/generated/dsh/skills/rite-polish/reference/harden-checklist.md +110 -0
- package/pack/generated/dsh/skills/rite-polish/reference/ledger.md +67 -0
- package/pack/generated/dsh/skills/rite-polish/reference/ui.md +146 -0
- package/pack/generated/dsh/skills/rite-pov/SKILL.md +71 -0
- package/pack/generated/dsh/skills/rite-pr-feedback/SKILL.md +61 -0
- package/pack/generated/dsh/skills/rite-pressure-test/SKILL.md +76 -0
- package/pack/generated/dsh/skills/rite-prototype/SKILL.md +106 -0
- package/pack/generated/dsh/skills/rite-prove/SKILL.md +151 -0
- package/pack/generated/dsh/skills/rite-prove/reference/acceptance-proof.md +88 -0
- package/pack/generated/dsh/skills/rite-prove/reference/anti-patterns.md +25 -0
- package/pack/generated/dsh/skills/rite-prove/reference/browser-proof.md +51 -0
- package/pack/generated/dsh/skills/rite-prove/reference/failure-triage.md +53 -0
- package/pack/generated/dsh/skills/rite-prove/reference/proof-ladder.md +39 -0
- package/pack/generated/dsh/skills/rite-prove/reference/test-command-discovery.md +36 -0
- package/pack/generated/dsh/skills/rite-quick/SKILL.md +97 -0
- package/pack/generated/dsh/skills/rite-resolve/SKILL.md +113 -0
- package/pack/generated/dsh/skills/rite-resolve/reference/answer-protocol.md +129 -0
- package/pack/generated/dsh/skills/rite-review/SKILL.md +190 -0
- package/pack/generated/dsh/skills/rite-review/reference/anti-patterns.md +32 -0
- package/pack/generated/dsh/skills/rite-review/reference/cognitive-load.md +90 -0
- package/pack/generated/dsh/skills/rite-review/reference/feature-scoped-review.md +26 -0
- package/pack/generated/dsh/skills/rite-review/reference/five-axis-review.md +66 -0
- package/pack/generated/dsh/skills/rite-review/reference/nielsen-heuristics.md +126 -0
- package/pack/generated/dsh/skills/rite-review/reference/performance-checklist.md +99 -0
- package/pack/generated/dsh/skills/rite-review/reference/performance-review.md +14 -0
- package/pack/generated/dsh/skills/rite-review/reference/security-review.md +44 -0
- package/pack/generated/dsh/skills/rite-seal/SKILL.md +99 -0
- package/pack/generated/dsh/skills/rite-seal/reference/anti-patterns.md +29 -0
- package/pack/generated/dsh/skills/rite-seal/reference/final-evidence.md +41 -0
- package/pack/generated/dsh/skills/rite-seal/reference/go-no-go.md +32 -0
- package/pack/generated/dsh/skills/rite-seal/reference/output.md +5 -0
- package/pack/generated/dsh/skills/rite-seal/reference/phase-contract.md +56 -0
- package/pack/generated/dsh/skills/rite-seal/reference/risk-and-rollback.md +56 -0
- package/pack/generated/dsh/skills/rite-seal/reference/seal-template.md +32 -0
- package/pack/generated/dsh/skills/rite-ship/SKILL.md +101 -0
- package/pack/generated/dsh/skills/rite-ship/reference/anti-patterns.md +28 -0
- package/pack/generated/dsh/skills/rite-ship/reference/close-out.md +69 -0
- package/pack/generated/dsh/skills/rite-ship/reference/git-ship.md +128 -0
- package/pack/generated/dsh/skills/rite-ship/reference/rollout.md +62 -0
- package/pack/generated/dsh/skills/rite-ship/reference/ship-template.md +40 -0
- package/pack/generated/dsh/skills/rite-spec/SKILL.md +169 -0
- package/pack/generated/dsh/skills/rite-spec/reference/acceptance-criteria.md +31 -0
- package/pack/generated/dsh/skills/rite-spec/reference/ai-spec-template.md +40 -0
- package/pack/generated/dsh/skills/rite-spec/reference/anti-patterns.md +27 -0
- package/pack/generated/dsh/skills/rite-spec/reference/interview-patterns.md +56 -0
- package/pack/generated/dsh/skills/rite-spec/reference/investigation.md +83 -0
- package/pack/generated/dsh/skills/rite-spec/reference/question-protocol.md +36 -0
- package/pack/generated/dsh/skills/rite-spec/reference/references-intake.md +62 -0
- package/pack/generated/dsh/skills/rite-spec/reference/spec-checklists.md +89 -0
- package/pack/generated/dsh/skills/rite-spec/reference/spec-template.md +160 -0
- package/pack/generated/dsh/skills/rite-spec/reference/state-workspace.md +240 -0
- package/pack/generated/dsh/skills/rite-status/SKILL.md +74 -0
- package/pack/generated/dsh/skills/rite-temper/SKILL.md +137 -0
- package/pack/generated/dsh/skills/rite-temper/reference/anti-patterns.md +30 -0
- package/pack/generated/dsh/skills/rite-temper/reference/review-dimensions.md +66 -0
- package/pack/generated/dsh/skills/rite-temper/reference/scope-modes.md +52 -0
- package/pack/generated/dsh/skills/rite-temper/reference/significance.md +55 -0
- package/pack/generated/dsh/skills/rite-temper/reference/strategy-template.md +101 -0
- package/pack/generated/dsh/skills/rite-upgrade/SKILL.md +142 -0
- package/pack/generated/dsh/skills/rite-vet/SKILL.md +242 -0
- package/pack/generated/dsh/skills/rite-vet/reference/anti-patterns.md +43 -0
- package/pack/generated/dsh/skills/rite-vet/reference/artifacts.md +248 -0
- package/pack/generated/dsh/skills/rite-vet/reference/cross-model.md +19 -0
- package/pack/generated/dsh/skills/rite-vet/reference/depth.md +59 -0
- package/pack/generated/dsh/skills/rite-vet/reference/eng-lenses.md +48 -0
- package/pack/generated/dsh/skills/rite-vet/reference/review-axes.md +210 -0
- package/pack/generated/dsh/skills/rite-watch-pr/SKILL.md +87 -0
- package/pack/generated/dsh/skills/rite-zoom-out/SKILL.md +76 -0
- package/package.json +3 -1
- package/scripts/build-host-artifacts.sh +6 -2
- package/scripts/dsh-generate.py +165 -0
- package/scripts/dsh-specialist.mjs +85 -0
- package/scripts/install-lib.sh +3 -1
|
@@ -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
|
|
28
|
+
codebase-memory `trace_path` 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,52 @@
|
|
|
1
|
+
# Scope modes + the two passes
|
|
2
|
+
|
|
3
|
+
`/rite-temper`: two ordered passes (heat, then quench), converging on one scope mode. Ambition is a **generative** move followed by a **required convergence**: the
|
|
4
|
+
divergence is never the spec; the converged sweet spot is.
|
|
5
|
+
|
|
6
|
+
## Pass 1: FORWARD (heat: raise ambition on the outcome)
|
|
7
|
+
Diverge on the *real problem*, not the obvious path. Ask:
|
|
8
|
+
- What would an order-of-magnitude-better **outcome** look like (the 10-star version)? Design
|
|
9
|
+
the extreme, then come back to the feasible sweet spot: don't ship the extreme.
|
|
10
|
+
- Is a **premise** load-bearing and wrong? Name the assumptions the spec rests on; challenge
|
|
11
|
+
the one that, if false, changes everything.
|
|
12
|
+
- Where is **under-reaching** the real risk: a timid improvement to a path we should reframe?
|
|
13
|
+
|
|
14
|
+
Ambition aims at the **outcome** (problem definition, success bar, user value) and at
|
|
15
|
+
complexity-**neutral** future-proofing. It never aims at the **solution surface** (that's Pass 2's
|
|
16
|
+
job to prune). Ground every ambitious idea in the codebase's real seams and blast radius. Use
|
|
17
|
+
codebase-memory `get_architecture` and `trace_path` if available (see `../../devrites-lib/reference/standards/code-navigation.md`). Don't invent greenfield scope a
|
|
18
|
+
constrained codebase can't absorb.
|
|
19
|
+
|
|
20
|
+
## Pass 2: INVERSION (quench: pre-mortem + prune)
|
|
21
|
+
Invert. Two subtractive moves:
|
|
22
|
+
- **Pre-mortem (prospective hindsight).** State it in past tense: *"It's six months out. This
|
|
23
|
+
shipped and failed. What went wrong?"* List the top failure modes; for each: likelihood,
|
|
24
|
+
mitigation, and the slice that will own the mitigation. Unmitigated top risks are **gating**.
|
|
25
|
+
- **YAGNI ledger.** Each candidate scope item gets the "imagine the later refactor" test: if
|
|
26
|
+
adding it *later* isn't materially more expensive, **defer it** (with a revisit note).
|
|
27
|
+
Bias hard toward defer: most presumed-needed features are never used. Reuse the
|
|
28
|
+
pack's existing [`patterns.md`](../../devrites-lib/reference/standards/patterns.md) standard ('no speculative abstraction or pattern
|
|
29
|
+
without a current need'). Don't invent a new YAGNI rule.
|
|
30
|
+
|
|
31
|
+
## The four modes: commit exactly one
|
|
32
|
+
Mode selection is the first convergence move. Record the chosen mode + rationale + the
|
|
33
|
+
**hinge** (what would change the call) in `strategy.md` and `decisions.md`.
|
|
34
|
+
|
|
35
|
+
| Mode | When | What it does | YAGNI / Drift Guard |
|
|
36
|
+
|---|---|---|---|
|
|
37
|
+
| **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. Under AFK it escalates via `ask_user_question` and the fold **holds** until the human answers; an unattended run never auto-applies it |
|
|
38
|
+
| **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 |
|
|
39
|
+
| **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) |
|
|
40
|
+
| **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 |
|
|
41
|
+
|
|
42
|
+
## Bound ambition by reversibility
|
|
43
|
+
Bigger bets need more reversibility. Auth, migrations, public API, and data-model
|
|
44
|
+
changes need maximum conservatism, full review, and explicit rollback.
|
|
45
|
+
Pause only for actual [canonical irreversible-risk items](../../devrites-lib/reference/standards/afk-hitl.md#irreversible-risk-list-always-pause)
|
|
46
|
+
or unresolved human-owned decisions, not an already-approved reversible internal
|
|
47
|
+
data-model change. Size bets to tolerate their disappearance tomorrow.
|
|
48
|
+
|
|
49
|
+
## Effort foresight (frame it now, not "later")
|
|
50
|
+
While choosing scope, surface the late-stage questions early: *"What will surprise us at
|
|
51
|
+
integration? What will we wish we'd planned for at polish/test time?"* Turn each into a
|
|
52
|
+
constraint, a risk, or a deferred Non-goal **now**, not a "figure it out later".
|
|
@@ -0,0 +1,55 @@
|
|
|
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 codebase-memory `trace_path` per
|
|
14
|
+
`../../devrites-lib/reference/standards/code-navigation.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
|
+
- **Low detectability:** no existing test, gate, or monitor would show a wrong result
|
|
19
|
+
in the affected area (no suite there, silent data change), so a mistake ships unseen.
|
|
20
|
+
- **Multi-slice / multi-day:** the work decomposes into several slices (large enough that a
|
|
21
|
+
wrong scope call is expensive to unwind).
|
|
22
|
+
- **The user asked:** "think bigger", "is this ambitious enough", "scope check", "pre-mortem",
|
|
23
|
+
an explicit `/rite-temper` invocation, or a chosen `--mode`. An explicit ask always fires.
|
|
24
|
+
|
|
25
|
+
## Skip (low stakes) when ALL hold
|
|
26
|
+
- Single-module, reversible, behavior-shaped-not-structural change.
|
|
27
|
+
- No irreversible-risk contact; blast radius contained to the touched files.
|
|
28
|
+
- Scope is unambiguous: there's one obvious right size and the spec already has it.
|
|
29
|
+
|
|
30
|
+
On skip, **don't run the passes**. Write only the one-line verdict to `strategy.md`:
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
# Strategy: <slug>
|
|
34
|
+
Tempered: <iso>
|
|
35
|
+
|
|
36
|
+
## 1. Significance
|
|
37
|
+
skipped — low stakes (<trigger>)
|
|
38
|
+
Next: /rite-define
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Then recommend `/rite-define`. A skip is a *recorded* decision, not a silent omission: the
|
|
42
|
+
seal can see the call was made deliberately.
|
|
43
|
+
|
|
44
|
+
## In `/rite-autocomplete`
|
|
45
|
+
Autocomplete runs the significance test every feature. On skip → straight to `/rite-define`
|
|
46
|
+
(no pause). On fire → run the full review, then apply the mode under the AFK rule in
|
|
47
|
+
[`scope-modes.md`](scope-modes.md): `hold-rigor`, `reduce-to-MVP`, and a skip apply unattended.
|
|
48
|
+
`expand` and any extra acceptance **do not** apply unattended — acceptance is never auto-grown.
|
|
49
|
+
When the review lands on `expand` or any acceptance growth, the agent presents the scope call as a
|
|
50
|
+
ranked `ask_user_question` option set per the HITL rule, records the open `questions.md` qid, and
|
|
51
|
+
**holds the fold**: do not write *Success metrics* or *Acceptance criteria* rows, do not fold via
|
|
52
|
+
Spec Drift Guard, and do not recommend `/rite-define` until a human answers the qid. A self-written
|
|
53
|
+
`decisions.md` ADR is not that human answer (see [`strategy-template.md`](strategy-template.md)
|
|
54
|
+
§ Write discipline); the growth stays blocked until the qid resolves. Irreversible-risk findings
|
|
55
|
+
always pause.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# `strategy.md` template + fold-back rules
|
|
2
|
+
|
|
3
|
+
`/rite-temper` produces two kinds of output. The `strategy.md` artifact is the durable
|
|
4
|
+
**record** of the review; the **fold-back edits** are what the build follows. The
|
|
5
|
+
record without the fold-back is dead prose: the build reads `spec.md`, not `strategy.md`.
|
|
6
|
+
|
|
7
|
+
## `strategy.md`: the record
|
|
8
|
+
Write to `.devrites/work/<slug>/strategy.md`. If one exists for the slug, **update** it, don't
|
|
9
|
+
clobber.
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
12
|
+
# Strategy: <slug>
|
|
13
|
+
Tempered: <iso>
|
|
14
|
+
|
|
15
|
+
## 1. Significance
|
|
16
|
+
full | skipped — low stakes (<trigger>) # if skipped, stop here (see significance.md)
|
|
17
|
+
|
|
18
|
+
## 2. Scope mode
|
|
19
|
+
Mode: expand | selective | hold-rigor | reduce-to-MVP
|
|
20
|
+
Rationale: <why this mode>
|
|
21
|
+
Hinge: <what evidence/answer would change the call>
|
|
22
|
+
|
|
23
|
+
## 3. Forward pass (ambition)
|
|
24
|
+
10-star outcome (the deliberate overshoot): <one or two lines>
|
|
25
|
+
Premises challenged: <load-bearing assumption(s) + verdict>
|
|
26
|
+
Converged sweet spot: <where we landed and why — this, not the overshoot, is what folds in>
|
|
27
|
+
|
|
28
|
+
## 4. Pre-mortem (inversion)
|
|
29
|
+
| Failure mode (past tense) | Likelihood | Mitigation | Owning slice/criterion |
|
|
30
|
+
|---|---|---|---|
|
|
31
|
+
| It shipped and <…> | high/med/low | <mitigation> | <slice or FR it binds to> |
|
|
32
|
+
|
|
33
|
+
## 5. YAGNI ledger
|
|
34
|
+
| Candidate scope item | later-refactor cost | Verdict |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| <item> | trivial / large | build-now / defer (revisit: <trigger>) |
|
|
37
|
+
|
|
38
|
+
## 6. Cross-cutting coverage
|
|
39
|
+
| Concern | Addressed? |
|
|
40
|
+
|---|---|
|
|
41
|
+
| Security / trust boundary | <how | N/A — why> |
|
|
42
|
+
| Data & migration | <… | N/A> |
|
|
43
|
+
| Observability | <… | N/A> |
|
|
44
|
+
| Modifiability | <… | N/A> |
|
|
45
|
+
|
|
46
|
+
## 7. Dimension scores (floor-gate)
|
|
47
|
+
| Dimension | Band | Evidence |
|
|
48
|
+
|---|---|---|
|
|
49
|
+
| Problem altitude & ambition | strong/adequate/thin/broken | <spec line / absence> |
|
|
50
|
+
| … (all 9) | … | … |
|
|
51
|
+
Floor verdict: <weakest band> on <dimension> → pass | blocked
|
|
52
|
+
|
|
53
|
+
## 8. Deferred / Won't-have-this-time
|
|
54
|
+
- <item> — <one-line reason> (revisit when: <trigger>)
|
|
55
|
+
|
|
56
|
+
## 9. Reviewer loop
|
|
57
|
+
- iter 1: <findings → resolution> · iter 2: … (≤3)
|
|
58
|
+
- Final: floor = <band>; unresolved → <none | blocking qid>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Fold-back: the part the build follows
|
|
62
|
+
Apply through the **Spec Drift Guard** (these are spec changes, not free edits). If a plan
|
|
63
|
+
already exists, record in `drift.md` and route via `/rite-plan repair` instead of editing
|
|
64
|
+
`spec.md` blind.
|
|
65
|
+
|
|
66
|
+
- **`spec.md`:** these are the spec template's actual section headings. Edit each named one;
|
|
67
|
+
don't collapse pairs.
|
|
68
|
+
- Add to *Success metrics* **and** *Acceptance criteria* (separate sections) for
|
|
69
|
+
every opt-in **expansion**; remove (via the Guard) from both for every **reduction**. Each
|
|
70
|
+
must stay measurable + technology-agnostic.
|
|
71
|
+
- *Non-goals*: append every deferred item (from the YAGNI ledger + the Deferred register), so
|
|
72
|
+
it is neither silently dropped nor silently re-injected mid-build.
|
|
73
|
+
- *Constraints and invariants*: tighten where the pre-mortem demands; top failure modes +
|
|
74
|
+
mitigations go to *Failure and recovery behavior* rows.
|
|
75
|
+
- *Open questions* table: one row per scope call (options offered → decision → owner).
|
|
76
|
+
- **Re-run the Readiness gate** at the bottom of the spec after edits; it must still pass, and
|
|
77
|
+
**every folded scope delta must trace to a recorded decision**: a reduction or non-growth
|
|
78
|
+
delta traces to a `questions.md` qid **or** a `decisions.md` ADR, but an **acceptance-growth**
|
|
79
|
+
delta (`expand` or any added *Success metrics* / *Acceptance criteria* row) traces **only** to a
|
|
80
|
+
**resolved human `questions.md` qid** (`status: answered` plus an unindented, lowercase `answered_by: human` line; a qid without exactly
|
|
81
|
+
that line, including every qid written before the field existed, does not satisfy growth traceability).
|
|
82
|
+
A `decisions.md` ADR written by the same run is **not**
|
|
83
|
+
the human approval that growth requires, so an ADR-only growth fold is untraceable and the
|
|
84
|
+
Readiness gate fails closed — `/rite-define` step 0 hard-blocks while it is unresolved. An
|
|
85
|
+
untraceable change is the batch-dump failure.
|
|
86
|
+
- **`decisions.md`:** one ADR-style entry per scope call and accepted trade-off:
|
|
87
|
+
`context · decision · why-not-the-alternative · what-would-change-it`.
|
|
88
|
+
- **`assumptions.md`:** every "we'll probably need X" demoted to an explicit
|
|
89
|
+
**assumption-to-verify**, never smuggled into scope as a fact.
|
|
90
|
+
|
|
91
|
+
## Write discipline
|
|
92
|
+
- **Single canonical writer.** The skill writes `strategy.md` and edits the canonical files; the
|
|
93
|
+
`devrites-strategy-reviewer` agent is **read-only** and only returns findings + bands.
|
|
94
|
+
- **No silent scope.** An expansion that the human didn't opt into, or a reduction that drops an
|
|
95
|
+
acceptance criterion without a recorded decision, is a defect, not a convenience.
|
|
96
|
+
- **An ADR is not its own approval.** A `decisions.md` ADR the run writes about its own scope call
|
|
97
|
+
records *why* it chose that mode; it never stands in for the human's answer. Acceptance growth
|
|
98
|
+
stays blocked until a resolved human `questions.md` qid lands, so an unattended run cannot fold
|
|
99
|
+
an expansion by citing its own record.
|
|
100
|
+
- Add `strategy.md` to the workspace between `spec.md` and `plan.md`; `/rite-define` and
|
|
101
|
+
`/rite-ship` read it.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-upgrade
|
|
3
|
+
description: Audit and reconcile an older released DevRites workspace. Proves a current-contract defect, then routes its phase owner while preserving completed work and history.
|
|
4
|
+
argument-hint: "[feature-slug]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
disable-model-invocation: true
|
|
7
|
+
---
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/agents.md"],"triggers":{"reslice":["rite-plan/reference/slicing.md"]},"workspace":["state.md","spec.md","plan.md","tasks.md","decisions.md","questions.md","evidence.md","touched-files.md","review.md","seal.md","polish-report.md","browser-evidence.md"],"workspaceByRole":{"upgrade-planner":["state.md","spec.md","plan.md","tasks.md","decisions.md","questions.md"]}} -->
|
|
9
|
+
> Read-set manifest: `devrites-engine context --skills-root .dsh/skills <slug> --skill rite-upgrade` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read.
|
|
10
|
+
|
|
11
|
+
# /rite-upgrade: reconcile a released workspace safely
|
|
12
|
+
|
|
13
|
+
Use when an unfinished workspace from an older release cannot resume. This is an
|
|
14
|
+
audit/orchestrator—not a pack update, cursor conversion, release replay,
|
|
15
|
+
structural migration, or generic cleanup.
|
|
16
|
+
|
|
17
|
+
## Rules consulted
|
|
18
|
+
|
|
19
|
+
Read [`core.md`](../devrites-lib/reference/standards/core.md), its agent and workspace-schema
|
|
20
|
+
references, and only current phase contracts needed for the observed gap.
|
|
21
|
+
|
|
22
|
+
## Invariants
|
|
23
|
+
|
|
24
|
+
- Upgrade writes no workspace artifact and never edits source, tests, dependencies,
|
|
25
|
+
or Git. It observes, admits, invokes current owners, and re-audits only.
|
|
26
|
+
- Recognize only released workspace forms: `.devrites/work/<slug>/state.md` with v1/v2
|
|
27
|
+
bullet fields (`- Phase:`, `- Next step:`, optional `- qid:`) or the v3 cursor table.
|
|
28
|
+
A cursor with no `schema` row (every v1/v2 form, older v3 tables) is refused by the
|
|
29
|
+
engine until the human runs the `migrate` command its refusal names (step 0). Otherwise
|
|
30
|
+
preserve its encoding; only its owning rite may change fields. Never create aliases,
|
|
31
|
+
journals, telemetry, version markers, or an engine migrator.
|
|
32
|
+
- Older provenance, cursor form, or pack version alone is never a defect. A repair requires
|
|
33
|
+
a current rule, exact workspace evidence, affected gate, owning rite, exact paths, and
|
|
34
|
+
the smallest behavior-neutral delta.
|
|
35
|
+
- Existing rites own semantic changes. Upgrade may sequence `/rite-clarify`,
|
|
36
|
+
`/rite-plan repair|revise|course-correct`, `/rite-converge`, `/rite-vet`, `/rite-prove`, `/rite-polish`,
|
|
37
|
+
`/rite-review`, and `/rite-seal`; it never reimplements them or starts Build or Ship.
|
|
38
|
+
`/rite-doctor` owns install/config diagnosis.
|
|
39
|
+
- An admitted candidate route may name only the exact current gate artifacts its owner
|
|
40
|
+
must refresh: `touched-files.md`, `evidence.md`, optional `browser-evidence.md`,
|
|
41
|
+
`polish-report.md`, `review.md`, `seal.md`, and the owner's `state.md` fields as
|
|
42
|
+
applicable. Source, completed-slice identities, answers, decisions, and unrelated
|
|
43
|
+
history remain protected. Each owner preserves unrelated content and normal gates.
|
|
44
|
+
- Archived/`done` workspaces are no-ops. Unknown or unverifiable inputs stop without
|
|
45
|
+
writes. There is no legacy fallback: never synthesize or guess scope, bytes, proof,
|
|
46
|
+
freshness, or a historical pass.
|
|
47
|
+
- The explicit invocation authorizes only admitted, behavior-neutral workspace repairs.
|
|
48
|
+
Product/policy choices, acceptance changes, irreversible risk, and human-only actions
|
|
49
|
+
remain HITL.
|
|
50
|
+
|
|
51
|
+
## Workflow
|
|
52
|
+
|
|
53
|
+
0. **Orient read-only.** Apply `/rite-doctor`. Resolve the explicit or active slug.
|
|
54
|
+
Archive-only is `current`; otherwise require contained regular `state.md` and read its
|
|
55
|
+
cursor. A damaged/mismatched install stops at Doctor; missing live work routes
|
|
56
|
+
`/rite-spec`; `done` is `current`. An unknown cursor is `unsupported`.
|
|
57
|
+
A `state.md` whose cursor carries no `schema` row — or any engine refusal naming the
|
|
58
|
+
workspace schema — means the workspace predates the current engine schema: structural
|
|
59
|
+
normalization is a human-approved engine step that precedes this audit, not part of
|
|
60
|
+
it. Stop and surface the refusal verbatim (it names the fail-closed `migrate`
|
|
61
|
+
command with `--dry-run`/`--answer`); after the human runs it, restart at step 0.
|
|
62
|
+
1. **Freeze preservation evidence.** Record `git status --short`, cursor form/fields,
|
|
63
|
+
`devrites-engine orient <slug>` (cursor, `task_graph`, `artifact_budgets`,
|
|
64
|
+
`bulk_files`), and
|
|
65
|
+
hashes of completed-slice fields, candidate gate artifacts, existing answers/decisions,
|
|
66
|
+
and protected history. Inventory every path that could change; absence is evidence,
|
|
67
|
+
never permission to synthesize history. **Rerun after a mid-run stop:** frozen hashes die
|
|
68
|
+
with the stopped run, so never re-baseline over bytes its owners may have changed. The
|
|
69
|
+
durable baseline is `HEAD`: a workspace path that differs from it is recorded
|
|
70
|
+
`pre-changed` with its diff, not frozen as clean, and step 5 accepts it only as an
|
|
71
|
+
admitted path of this run's assessment, else `gap`. An untracked workspace has no durable
|
|
72
|
+
baseline: if its `state.md` cursor shows an owner's HITL/blocked stop, stop for the human
|
|
73
|
+
to confirm the current bytes as baseline before step 2. For a post-Build workspace, also retain the
|
|
74
|
+
exact result of `devrites-engine check candidate <slug>`; at or after Seal retain the
|
|
75
|
+
exact result of `devrites-engine check seal <slug>`.
|
|
76
|
+
2. **Assess from fresh context.** Dispatch exact `devrites-upgrade-planner` with the named
|
|
77
|
+
installed contracts, workspace paths, cursor form, current phase, and frozen baseline.
|
|
78
|
+
Require one read-only typed assessment. It writes and asks nothing.
|
|
79
|
+
3. **Admit the assessment fail closed.** Accept `current` only when every applicable axis has
|
|
80
|
+
cited evidence and no finding. Accept `repairable` only when every finding names the
|
|
81
|
+
current rule, exact workspace evidence, affected gate, owning rite, exact writable paths,
|
|
82
|
+
minimal delta, and protected invariants. Missing fields become `gap`.
|
|
83
|
+
Unsupported shapes remain untouched. Reject version-only, speculative, alias-creating,
|
|
84
|
+
source-changing, history-changing, or acceptance-changing advice.
|
|
85
|
+
4. **Route; do not duplicate.** For `repairable`, invoke only the admitted current owners,
|
|
86
|
+
one at a time:
|
|
87
|
+
- decision coverage or a material assumption → `/rite-clarify`;
|
|
88
|
+
- stale/inconsistent planning or traceability with settled intent → `/rite-plan repair`;
|
|
89
|
+
- over-budget `state.md` or planning artifacts carrying checkpoint narrative, or
|
|
90
|
+
packets/traces in the workspace root → `/rite-plan revise` (verbatim relocation to
|
|
91
|
+
`history/` / `packets/`, current view only; IDs, meaning, answers and decisions
|
|
92
|
+
unchanged; nothing deleted);
|
|
93
|
+
- unbuilt slices beyond the [feature ceiling](../rite-plan/reference/slicing.md#feature-ceiling-split-an-epic-never-override-the-budget)
|
|
94
|
+
→ `/rite-plan course-correct` (trigger `reslice` loads [`slicing.md`](../rite-plan/reference/slicing.md);
|
|
95
|
+
`MVP cut` plus the named continuation sequence;
|
|
96
|
+
built slices and their evidence stay);
|
|
97
|
+
- live code and recorded intent disagreement → `/rite-converge`;
|
|
98
|
+
- any changed planning input or readiness defect → `/rite-vet`;
|
|
99
|
+
- a missing/malformed strict manifest, missing/malformed/mismatched evidence binding,
|
|
100
|
+
a browser-binding defect when that file exists, or current candidate-check failure
|
|
101
|
+
→ `/rite-prove`;
|
|
102
|
+
- required candidate-affecting capability-ledger, `DESIGN.md`, or ADR rollups still
|
|
103
|
+
deferred by an old Ship-era workspace → `gap`: no admitted route. STOP with an
|
|
104
|
+
explicit `/rite-polish` handoff for separate user authorization; never invoke
|
|
105
|
+
those rollup writes inside Upgrade. After authorization outside Upgrade, normal
|
|
106
|
+
affected Prove → Review → Seal applies;
|
|
107
|
+
- workspace-only Polish refresh → `/rite-polish` only when its exact paths remain
|
|
108
|
+
within the admitted gate artifacts and no candidate-affecting rollup is required;
|
|
109
|
+
- a missing, stale, or mismatched review binding → `/rite-review`;
|
|
110
|
+
- a missing, stale, or mismatched seal binding or failed Seal gate → `/rite-seal`.
|
|
111
|
+
|
|
112
|
+
Sequence only applicable owners; candidate owners stay in the Prove → Polish → Review
|
|
113
|
+
→ Seal order above. Each owner keeps normal gates/write limits. Stop on HITL/blocked.
|
|
114
|
+
Never infer `/rite-customize --import-legacy`; that mode requires the exact token in the
|
|
115
|
+
user's current invocation.
|
|
116
|
+
5. **Re-audit and prove preservation.** Re-dispatch the planner once against the changed
|
|
117
|
+
candidate. `gap`, `unsupported`, or a remaining finding stops. Compare the frozen hashes
|
|
118
|
+
and Git status; only admitted paths may differ. Cursor changes must match the owning
|
|
119
|
+
rite while preserving form. Any unadmitted, protected, or source change is a gap and
|
|
120
|
+
stops; Upgrade never restores it itself.
|
|
121
|
+
For a post-Build workspace, run `devrites-engine check candidate <slug>` and require
|
|
122
|
+
the assessed bindings to match it. At or after Seal, also run
|
|
123
|
+
`devrites-engine check seal <slug>`. Run readiness where applicable:
|
|
124
|
+
```bash
|
|
125
|
+
devrites-engine check readiness <slug>; echo "readiness rc=$?"
|
|
126
|
+
```
|
|
127
|
+
Any nonzero result or mismatch remains a `gap` and stops.
|
|
128
|
+
6. **STOP.** Do not advance to Build or Ship. A repeated `/rite-upgrade` is a no-op only
|
|
129
|
+
when the fresh assessment independently returns `current`; no marker may manufacture
|
|
130
|
+
that result.
|
|
131
|
+
|
|
132
|
+
## Output
|
|
133
|
+
|
|
134
|
+
```text
|
|
135
|
+
Done: workspace <slug> compatibility <current | reconciled>.
|
|
136
|
+
Changed: <admitted active-workspace paths | none>
|
|
137
|
+
Evidence: assessment=current; candidate rc=<n|n/a>; seal rc=<n|n/a>; readiness rc=<n|n/a>; protected history/source unchanged
|
|
138
|
+
Open: <none | exact unsupported shape, evidence gap, or human gate>
|
|
139
|
+
Next: <state.md next action | one owning rite>
|
|
140
|
+
Record: <owning rite's state.md — written by the owner, not Upgrade>
|
|
141
|
+
↻ Hygiene: /clear before the next lifecycle step
|
|
142
|
+
```
|