devrites 7.1.1 → 7.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +9 -4
- package/docs/dsh.md +46 -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/.claude/agents/devrites-upgrade-planner.md +12 -4
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +21 -4
- package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
- package/pack/.claude/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
- package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +11 -11
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +11 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +41 -40
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +12 -14
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +34 -38
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
- package/pack/.claude/skills/rite-define/SKILL.md +28 -27
- package/pack/.claude/skills/rite-plan/SKILL.md +7 -2
- package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +5 -2
- package/pack/.claude/skills/rite-resolve/SKILL.md +17 -10
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +18 -6
- package/pack/.claude/skills/rite-review/SKILL.md +4 -4
- package/pack/.claude/skills/rite-review/reference/security-review.md +4 -2
- package/pack/.claude/skills/rite-seal/SKILL.md +28 -33
- package/pack/.claude/skills/rite-ship/SKILL.md +14 -7
- package/pack/.claude/skills/rite-temper/SKILL.md +18 -18
- package/pack/.claude/skills/rite-temper/reference/scope-modes.md +6 -7
- package/pack/.claude/skills/rite-upgrade/SKILL.md +7 -2
- package/pack/.claude/skills/rite-vet/SKILL.md +33 -34
- package/pack/generated/README.md +3 -1
- package/pack/generated/claude/agents/devrites-upgrade-planner.md +12 -4
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +21 -4
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
- package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +11 -11
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +11 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +41 -40
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +12 -14
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +34 -38
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
- package/pack/generated/claude/skills/rite-define/SKILL.md +28 -27
- package/pack/generated/claude/skills/rite-plan/SKILL.md +7 -2
- package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +5 -2
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +17 -10
- package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +18 -6
- package/pack/generated/claude/skills/rite-review/SKILL.md +4 -4
- package/pack/generated/claude/skills/rite-review/reference/security-review.md +4 -2
- package/pack/generated/claude/skills/rite-seal/SKILL.md +28 -33
- package/pack/generated/claude/skills/rite-ship/SKILL.md +14 -7
- package/pack/generated/claude/skills/rite-temper/SKILL.md +18 -18
- package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +6 -7
- package/pack/generated/claude/skills/rite-upgrade/SKILL.md +7 -2
- package/pack/generated/claude/skills/rite-vet/SKILL.md +33 -34
- package/pack/generated/codex/agents/devrites-upgrade-planner.toml +12 -4
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +21 -4
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
- package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +11 -11
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +11 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +41 -40
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +12 -14
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +34 -38
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
- package/pack/generated/codex/skills/rite-define/SKILL.md +28 -27
- package/pack/generated/codex/skills/rite-plan/SKILL.md +7 -2
- package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +5 -2
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +17 -10
- package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +18 -6
- package/pack/generated/codex/skills/rite-review/SKILL.md +4 -4
- package/pack/generated/codex/skills/rite-review/reference/security-review.md +4 -2
- package/pack/generated/codex/skills/rite-seal/SKILL.md +28 -33
- package/pack/generated/codex/skills/rite-ship/SKILL.md +14 -7
- package/pack/generated/codex/skills/rite-temper/SKILL.md +18 -18
- package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +6 -7
- package/pack/generated/codex/skills/rite-upgrade/SKILL.md +7 -2
- package/pack/generated/codex/skills/rite-vet/SKILL.md +33 -34
- package/pack/generated/devin/agents/devrites-upgrade-planner.md +12 -4
- package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +21 -4
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
- package/pack/generated/devin/skills/devrites-lib/reference/reply-contract.md +11 -11
- package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
- package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +11 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +41 -40
- package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +12 -14
- package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +34 -38
- package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
- package/pack/generated/devin/skills/rite-define/SKILL.md +28 -27
- package/pack/generated/devin/skills/rite-plan/SKILL.md +7 -2
- package/pack/generated/devin/skills/rite-plan/reference/replan-and-repair.md +5 -2
- package/pack/generated/devin/skills/rite-resolve/SKILL.md +17 -10
- package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +18 -6
- package/pack/generated/devin/skills/rite-review/SKILL.md +4 -4
- package/pack/generated/devin/skills/rite-review/reference/security-review.md +4 -2
- package/pack/generated/devin/skills/rite-seal/SKILL.md +28 -33
- package/pack/generated/devin/skills/rite-ship/SKILL.md +14 -7
- package/pack/generated/devin/skills/rite-temper/SKILL.md +18 -18
- package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +6 -7
- package/pack/generated/devin/skills/rite-upgrade/SKILL.md +7 -2
- package/pack/generated/devin/skills/rite-vet/SKILL.md +33 -34
- package/pack/generated/dsh/AGENTS.md +20 -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/cordis.patch.yml +1450 -0
- package/pack/generated/dsh/runtime/specialist.mjs +62 -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/pack/generated/omp/agents/devrites-upgrade-planner.md +12 -4
- package/pack/generated/omp/skills/devrites-debug-recovery/SKILL.md +21 -4
- package/pack/generated/omp/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
- package/pack/generated/omp/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
- package/pack/generated/omp/skills/devrites-lib/reference/reply-contract.md +11 -11
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
- package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +11 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +41 -40
- package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +12 -14
- package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +34 -38
- package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
- package/pack/generated/omp/skills/rite-define/SKILL.md +28 -27
- package/pack/generated/omp/skills/rite-plan/SKILL.md +7 -2
- package/pack/generated/omp/skills/rite-plan/reference/replan-and-repair.md +5 -2
- package/pack/generated/omp/skills/rite-resolve/SKILL.md +17 -10
- package/pack/generated/omp/skills/rite-resolve/reference/answer-protocol.md +18 -6
- package/pack/generated/omp/skills/rite-review/SKILL.md +4 -4
- package/pack/generated/omp/skills/rite-review/reference/security-review.md +4 -2
- package/pack/generated/omp/skills/rite-seal/SKILL.md +28 -33
- package/pack/generated/omp/skills/rite-ship/SKILL.md +14 -7
- package/pack/generated/omp/skills/rite-temper/SKILL.md +18 -18
- package/pack/generated/omp/skills/rite-temper/reference/scope-modes.md +6 -7
- package/pack/generated/omp/skills/rite-upgrade/SKILL.md +7 -2
- package/pack/generated/omp/skills/rite-vet/SKILL.md +33 -34
- package/pack/generated/pi/agents/devrites-upgrade-planner.md +12 -4
- package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +21 -4
- package/pack/generated/pi/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
- package/pack/generated/pi/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
- package/pack/generated/pi/skills/devrites-lib/reference/reply-contract.md +11 -11
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
- package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +11 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +41 -40
- package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +12 -14
- package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +34 -38
- package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
- package/pack/generated/pi/skills/rite-define/SKILL.md +28 -27
- package/pack/generated/pi/skills/rite-plan/SKILL.md +7 -2
- package/pack/generated/pi/skills/rite-plan/reference/replan-and-repair.md +5 -2
- package/pack/generated/pi/skills/rite-resolve/SKILL.md +17 -10
- package/pack/generated/pi/skills/rite-resolve/reference/answer-protocol.md +18 -6
- package/pack/generated/pi/skills/rite-review/SKILL.md +4 -4
- package/pack/generated/pi/skills/rite-review/reference/security-review.md +4 -2
- package/pack/generated/pi/skills/rite-seal/SKILL.md +28 -33
- package/pack/generated/pi/skills/rite-ship/SKILL.md +14 -7
- package/pack/generated/pi/skills/rite-temper/SKILL.md +18 -18
- package/pack/generated/pi/skills/rite-temper/reference/scope-modes.md +6 -7
- package/pack/generated/pi/skills/rite-upgrade/SKILL.md +7 -2
- package/pack/generated/pi/skills/rite-vet/SKILL.md +33 -34
- package/package.json +3 -1
- package/scripts/build-host-artifacts.sh +6 -2
- package/scripts/dsh-generate.py +135 -0
- package/scripts/dsh-specialist.mjs +62 -0
- package/scripts/install-lib.sh +3 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Risk & rollback
|
|
2
|
+
|
|
3
|
+
Before GO, know how to undo the change and what could go wrong in production.
|
|
4
|
+
|
|
5
|
+
## Risk scan
|
|
6
|
+
Rank risks; for each, note likelihood × impact and any mitigation:
|
|
7
|
+
- **Topology/ownership**: affected roots/deployables, shared contracts/state/resources,
|
|
8
|
+
dependency cycles, and intermediate deployment combinations.
|
|
9
|
+
- **Data**: schema changes, migration/backfill interruption, concurrent/duplicate writes,
|
|
10
|
+
tenant/retention boundaries, destructive operations, and invariant reconciliation.
|
|
11
|
+
- **Security**: new trust boundaries, auth/authz changes, secret handling, new deps.
|
|
12
|
+
- **Compatibility**: API contract changes, breaking changes for existing clients,
|
|
13
|
+
feature interactions.
|
|
14
|
+
- **Integration/operational**: timeouts/unknown outcomes, retry/idempotency, duplicate/order,
|
|
15
|
+
partial/invalid responses, provider/queue/cache outage, config/env, and rate limits.
|
|
16
|
+
- **Delivery**: schema/config/application/worker/flag order, environment mismatch,
|
|
17
|
+
monitoring gap, exposure stages, and time to detect/recover.
|
|
18
|
+
- **UX**: changed flows users rely on; unverified UI.
|
|
19
|
+
|
|
20
|
+
## Rollback plan (required for risky changes)
|
|
21
|
+
For each risky step, state how to back it out:
|
|
22
|
+
- **Migrations**: is there a reversible `down` / a documented manual revert? Is data
|
|
23
|
+
loss possible on rollback? If rollback is unsafe, is bounded forward recovery rehearsed?
|
|
24
|
+
- **Feature flag**: can it be disabled without a deploy?
|
|
25
|
+
- **Revert boundary**: can the change be `git revert`-ed cleanly, or does it entangle
|
|
26
|
+
with other work?
|
|
27
|
+
- **Data**: is there a backup / a way to restore prior state?
|
|
28
|
+
- **External/async effects**: can an unknown outcome be reconciled without duplicating it;
|
|
29
|
+
who drains/replays/quarantines work and repairs partial state?
|
|
30
|
+
- **Configuration/deployables**: what order restores compatible versions and values at
|
|
31
|
+
every root/environment?
|
|
32
|
+
|
|
33
|
+
## Blocking rules
|
|
34
|
+
- A **destructive or data-migration change with no rollback plan** is a **NO-GO**.
|
|
35
|
+
- A data change with unknown invariant/tenant impact, no interruption/retry proof, or no
|
|
36
|
+
rollback/forward-recovery rehearsal is **NO-GO**.
|
|
37
|
+
- A new/changed external or asynchronous boundary with blind retry, silent partial success,
|
|
38
|
+
or no outage/backlog recovery and monitoring is **NO-GO**.
|
|
39
|
+
- Unsafe intermediate deployment order, unvalidated required configuration, or no watched
|
|
40
|
+
rollout signal/owner is **NO-GO** for live exposure.
|
|
41
|
+
- Record the chosen rollback path in `seal.md` → "Risks / Rollback".
|
|
42
|
+
|
|
43
|
+
## Fresh-context availability
|
|
44
|
+
|
|
45
|
+
A required review must run in a fresh spawned agent:
|
|
46
|
+
|
|
47
|
+
- If the named role is unavailable, record the roster skip reason and keep seal
|
|
48
|
+
**NO-GO**.
|
|
49
|
+
- Never run the reviewer in the root context or log root work as a dispatched review.
|
|
50
|
+
- AFK never auto-accepts a missing reviewer.
|
|
51
|
+
- Security or irreversible-risk scope remains NO-GO while independent review is
|
|
52
|
+
unavailable.
|
|
53
|
+
|
|
54
|
+
## Destructive operations
|
|
55
|
+
Confirm any destructive step with the user before shipping. Verify backups exist where
|
|
56
|
+
relevant. Never treat an irreversible action as routine.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# `seal.md` template
|
|
2
|
+
|
|
3
|
+
```md
|
|
4
|
+
# Seal: <Feature>
|
|
5
|
+
Verdict: GO / NO-GO
|
|
6
|
+
Candidate SHA-256: <64 lowercase hex>
|
|
7
|
+
## Acceptance Criteria
|
|
8
|
+
- <AC>: <evidence>
|
|
9
|
+
## Verification Evidence
|
|
10
|
+
<proof>
|
|
11
|
+
## Reviewer Accounts
|
|
12
|
+
- devrites-spec-reviewer: <outcome>
|
|
13
|
+
- devrites-code-reviewer.<lane>: <outcome> (one account per engineering lane)
|
|
14
|
+
Lane map: <lane → path set, one per lane>
|
|
15
|
+
- devrites-test-analyst: <outcome>
|
|
16
|
+
- devrites-frontend-reviewer: <outcome>
|
|
17
|
+
- devrites-security-auditor: <outcome>
|
|
18
|
+
- devrites-performance-reviewer: <outcome>
|
|
19
|
+
- devrites-devex-reviewer: <outcome>
|
|
20
|
+
- devrites-proof-runner: <outcome>
|
|
21
|
+
- devrites-doubt-reviewer: <outcome, or Not-applicable: no decision stood>
|
|
22
|
+
## Risks / Rollback
|
|
23
|
+
<risks/recovery>
|
|
24
|
+
## Stood Decisions
|
|
25
|
+
<doubt verdict per stood decision>
|
|
26
|
+
## Blockers / Follow-ups
|
|
27
|
+
Blockers: <none | - blocker>
|
|
28
|
+
Follow-ups:
|
|
29
|
+
- <non-blocking follow-up>
|
|
30
|
+
## Final Decision
|
|
31
|
+
<verdict/reason>
|
|
32
|
+
```
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-ship
|
|
3
|
+
description: Commit, push, tag, archive, or close a sealed feature after /rite-seal GO. Use for repository mutation; not for GO/NO-GO readiness.
|
|
4
|
+
argument-hint: "[feature-slug]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/candidate-integrity.md","devrites-lib/reference/standards/git-workflow.md","devrites-lib/reference/standards/definition-of-done.md","devrites-lib/reference/standards/release/ship-checklist.md","rite-ship/reference/git-ship.md","rite-ship/reference/rollout.md","rite-ship/reference/close-out.md","rite-ship/reference/ship-template.md","rite-ship/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md","evidence.md","touched-files.md","review.md","seal.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md"]} -->
|
|
9
|
+
> Read-set manifest: `devrites-engine context --skills-root .dsh/skills <slug> --phase ship` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
# /rite-ship: ship + close the task
|
|
13
|
+
|
|
14
|
+
`/rite-seal` decides; `/rite-ship` mutates Git and closes. Read the active workspace;
|
|
15
|
+
if absent, route to `/rite-spec <feature>`. Ship only with current **GO** in `seal.md`.
|
|
16
|
+
|
|
17
|
+
## Rules consulted (read on demand from `.dsh/skills/devrites-lib/reference/standards/`)
|
|
18
|
+
**Step 0:** Read [`core.md`](../devrites-lib/reference/standards/core.md), then pull as needed:
|
|
19
|
+
- [`git-workflow.md`](../devrites-lib/reference/standards/git-workflow.md): Conventional Commits, atomicity, never-commit list.
|
|
20
|
+
- [`afk-hitl.md`](../devrites-lib/reference/standards/afk-hitl.md): AFK pause rules for irreversible actions (the type-GO gate itself: [`git-ship.md`](reference/git-ship.md), [`rollout.md`](reference/rollout.md)). Trigger `afk` — load when `.devrites/AFK` exists.
|
|
21
|
+
- [`definition-of-done.md`](../devrites-lib/reference/standards/definition-of-done.md): acceptance, evidence, drift, rollback, docs.
|
|
22
|
+
- [`release/ship-checklist.md`](../devrites-lib/reference/standards/release/ship-checklist.md): final pass/fail sweep.
|
|
23
|
+
|
|
24
|
+
## Operating rules
|
|
25
|
+
- **GO is prerequisite.** No current `seal.md` GO → stop at `/rite-seal`.
|
|
26
|
+
- **Ship is candidate-read-only.** Follow
|
|
27
|
+
[`candidate-integrity.md`](../devrites-lib/reference/candidate-integrity.md).
|
|
28
|
+
Ship must not change any candidate path or `touched-files.md`; it may write only
|
|
29
|
+
workspace `ship.md`, `state.md`, and archive bookkeeping. Project/manifest mutation
|
|
30
|
+
returns through Prove → Review → Seal.
|
|
31
|
+
- **Bindings stay exact.** Rerun candidate/Seal checks; require the digest bound in
|
|
32
|
+
evidence, optional browser evidence, review, and seal. Any mismatch stops.
|
|
33
|
+
- **Fresh approval.** Disclose the exact Git attempt; literal `GO` authorizes it once.
|
|
34
|
+
Change/retry means re-prompt. Native approval remains separate/authoritative.
|
|
35
|
+
- **Archive, never delete,** every audit `.md`.
|
|
36
|
+
|
|
37
|
+
## Workflow
|
|
38
|
+
1. **Orient.** Snapshot; read seal, state, spec, touched files, evidence, and any UI
|
|
39
|
+
brief. Confirm GO/closed digest, then run:
|
|
40
|
+
```bash
|
|
41
|
+
devrites-engine check candidate <slug>
|
|
42
|
+
devrites-engine check seal <slug>
|
|
43
|
+
```
|
|
44
|
+
Nonzero/mismatch stops; never reinterpret it.
|
|
45
|
+
1a. **Health (advisory).** Apply `/rite-doctor` read-only; surface WARN/FAIL without
|
|
46
|
+
repair. If ACTIVE is flagged, confirm the slug.
|
|
47
|
+
2. **Prepare the exact Git candidate.** Follow
|
|
48
|
+
[`git-ship.md`](reference/git-ship.md)'s read-only pre-GO ladder: inspect the
|
|
49
|
+
candidate and existing NUL-delimited staged state/path set, refuse out-of-manifest
|
|
50
|
+
staged work, and rerun candidate/Seal checks. Do not stage or collapse checkpoints
|
|
51
|
+
before fresh literal `GO`. From the verified candidate, disclose the exact proposed
|
|
52
|
+
staging/collapse commands, project-conformant message/trailers, branch, tag/PR,
|
|
53
|
+
commands, and skips; the existing index need not yet equal the candidate.
|
|
54
|
+
2a. **Credential guard (HIGH blocks).** Before type-GO, run only read-only scans of
|
|
55
|
+
existing staged blobs and the proposed PR body. This is not a final candidate-clean
|
|
56
|
+
claim; after literal `GO` and exact staging, repeat the full staged scan before commit.
|
|
57
|
+
HIGH stops
|
|
58
|
+
and requires rotation/redaction; MEDIUM needs confirmation recorded in `ship.md`;
|
|
59
|
+
LOW is FYI.
|
|
60
|
+
```bash
|
|
61
|
+
devrites-engine secret-scan --staged
|
|
62
|
+
```
|
|
63
|
+
Scan a PR body with `devrites-engine secret-scan --stdin` only through non-logging
|
|
64
|
+
process stdin, then close it—never command/argv/env/heredoc/log/temp file. If that
|
|
65
|
+
channel is unavailable, stop. **rc=3 → STOP:** no type-GO/commit/push/archive.
|
|
66
|
+
2b. **Reconcile residuals before type-GO.** Scan `strategy.md` deferrals,
|
|
67
|
+
`decisions.md` FYIs/revisit triggers, unresolved `review.md` non-blocking/if-minor/
|
|
68
|
+
FYI findings, and `seal.md` follow-ups. Deduplicate only rows with identical
|
|
69
|
+
obligation + disposition, preserving every source pointer. Each residual appears
|
|
70
|
+
once in the pending `ship.md` table as `tracked` (durable path/ID) or `no-action`
|
|
71
|
+
(prior decision or explicit human acceptance + reason/revisit). Type-GO never
|
|
72
|
+
implies `no-action`. Missing/vague/conflicting disposition blocks; `none` requires
|
|
73
|
+
empty sources.
|
|
74
|
+
3. **Type-GO.** Render [`git-ship.md`](reference/git-ship.md)'s prompt and wait.
|
|
75
|
+
Literal `GO` proceeds once; anything else records cancellation in `ship.md` and
|
|
76
|
+
stops. Any command/scope/branch/message/tag/PR change or retry needs a fresh prompt;
|
|
77
|
+
native approval is still required.
|
|
78
|
+
4. On literal GO plus native approval, follow `git-ship.md`'s post-GO ladder:
|
|
79
|
+
disclosed collapse/staging, staged scope/byte comparisons, candidate/Seal revalidation,
|
|
80
|
+
and full staged secret scan BEFORE commit. Then commit; verify committed state/path
|
|
81
|
+
set and exact candidate digest; then push →
|
|
82
|
+
tag/PR as applicable via `git-ship.md`. Record SHA and push state in `ship.md` before
|
|
83
|
+
push (git-ship 7a); a push/tag/PR failure stops, and a rerun resumes at push under
|
|
84
|
+
fresh type-GO. Capture branch, tag/PR URL. Mismatch stops before push/tag; retry
|
|
85
|
+
needs fresh approval.
|
|
86
|
+
4a. **PR only:** render [`git-ship.md`](reference/git-ship.md#pull-request-body)'s
|
|
87
|
+
structured body; omit empty sections.
|
|
88
|
+
5. Re-scan the four residual sources; any new/missing/changed item blocks archive.
|
|
89
|
+
Write [the template](reference/ship-template.md) with shipment metadata and the
|
|
90
|
+
unchanged pre-GO reconciliation.
|
|
91
|
+
6. **Close.** Set `state.md` phase `done`; follow
|
|
92
|
+
[`close-out.md`](reference/close-out.md) and run `devrites-engine state close <slug>`
|
|
93
|
+
to move `.devrites/work/<slug>` → `.devrites/archive/<slug>` and clear `ACTIVE`
|
|
94
|
+
only if it names this slug; preserve another active feature's cursor.
|
|
95
|
+
Preserve every `.md`; stable hierarchical instructions need no active-workspace sync.
|
|
96
|
+
Report the recorded `Next step` verbatim — the exact `/rite-spec <parent>-<n> "<objective>"`
|
|
97
|
+
when a continuation sequence remains — so the next increment starts from one line,
|
|
98
|
+
never from chat memory.
|
|
99
|
+
|
|
100
|
+
> **Mid-flight discipline.** No seal GO, skipped type-GO, out-of-manifest stage, or
|
|
101
|
+
> deleted workspace. Stop and use [`anti-patterns`](reference/anti-patterns.md).
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# rite-ship: anti-patterns
|
|
2
|
+
|
|
3
|
+
Load this before any irreversible action: `git commit`, `push`, `tag`, publish, deploy,
|
|
4
|
+
or when tempted to skip the close-out.
|
|
5
|
+
|
|
6
|
+
Pack-wide rationalizations + red flags: see
|
|
7
|
+
[standards/anti-patterns.md](../../devrites-lib/reference/standards/anti-patterns.md).
|
|
8
|
+
|
|
9
|
+
## Phase-specific rationalizations
|
|
10
|
+
|
|
11
|
+
| Excuse | Rebuttal |
|
|
12
|
+
|---|---|
|
|
13
|
+
| "Seal said GO, so I can just push." | A GO verdict is a decision, not authorization. **Render the type-GO prompt every time** and wait for the literal `GO`. |
|
|
14
|
+
| "I'll push the tag now; type-GO is a formality." | Type-GO is the last safety net before an irreversible action. Always render it: even under auto-trigger. |
|
|
15
|
+
| "`git add -A` is faster than listing touched files." | Stage only what's in `touched-files.md`. `-A` sweeps secrets, scratch files, and out-of-scope edits into the ship. |
|
|
16
|
+
| "The evidence is probably still good." | Recheck the canonical candidate digest and every artifact binding. Any mismatch stops. |
|
|
17
|
+
| "The ledger/DESIGN/ADR update is just ship bookkeeping." | Those are candidate paths. Route the change through Polish, affected Prove, Review, and Seal; Ship is read-only. |
|
|
18
|
+
| "Delete the workspace, the feature's done." | Closing **archives** the workspace (`.devrites/archive/<slug>/`); it never deletes the audit trail. |
|
|
19
|
+
|
|
20
|
+
## Red Flags
|
|
21
|
+
|
|
22
|
+
- About to run `git push` / `git tag` without rendering the type-GO prompt.
|
|
23
|
+
- Shipping without a `GO` verdict recorded in `seal.md`.
|
|
24
|
+
- Staging files not listed in `touched-files.md`, or any secret / `.env`.
|
|
25
|
+
- Changing a candidate path or the manifest after Seal.
|
|
26
|
+
- Pushing or tagging before the committed NUL-delimited state/path and digest checks pass.
|
|
27
|
+
- `rm`-ing `.devrites/work/<slug>/` instead of archiving it.
|
|
28
|
+
- Marking the feature `done` but leaving `.devrites/ACTIVE` pointing at it.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Close-out: archive the workspace, free the active slot
|
|
2
|
+
|
|
3
|
+
Closing a feature means it stops being the *active* work, not that its record is
|
|
4
|
+
deleted. DevRites keeps the audit trail; it just moves out of the live path.
|
|
5
|
+
|
|
6
|
+
## What close-out does
|
|
7
|
+
|
|
8
|
+
1. **Mark done.** Set `state.md` → `Phase: done`, `Status: done`, and a `Next step`.
|
|
9
|
+
When this workspace's `decisions.md` records an unfinished
|
|
10
|
+
[continuation sequence](../../rite-plan/reference/slicing.md#continuation-workspaces),
|
|
11
|
+
that step is the **exact** next command — `/rite-spec <parent>-<n> "<objective>"` —
|
|
12
|
+
and the ship reply prints the same line. Otherwise it stays
|
|
13
|
+
`/rite-spec <next feature>`. Nothing spawns the continuation automatically:
|
|
14
|
+
the recorded command is the handoff, so the human starts each increment knowingly.
|
|
15
|
+
2. **Archive.** Run the deterministic script:
|
|
16
|
+
```bash
|
|
17
|
+
devrites-engine state close <slug>
|
|
18
|
+
```
|
|
19
|
+
It moves `.devrites/work/<slug>/` → `.devrites/archive/<slug>/` (every `.md`
|
|
20
|
+
intact) and clears `.devrites/ACTIVE` **only if** ACTIVE still points at `<slug>`.
|
|
21
|
+
It refuses to clobber an existing `.devrites/archive/<slug>/` (exit 5).
|
|
22
|
+
3. **Confirm the observed post-state.** The archive exists with its audit records
|
|
23
|
+
intact and the live workspace is absent. If ACTIVE named this slug, verify it is
|
|
24
|
+
empty; if it named another feature, verify that value remains unchanged. Only an
|
|
25
|
+
empty cursor permits the claim "no active feature".
|
|
26
|
+
|
|
27
|
+
Any nonzero exit stops close-out. Archive collision (exit 5) never authorizes overwrite.
|
|
28
|
+
If clearing ACTIVE fails, the engine attempts to move the archive back; that rollback
|
|
29
|
+
can also fail. Inspect the actual live path, archive and cursor before reporting or
|
|
30
|
+
retrying. Record the command/error and observed locations; never claim restored state
|
|
31
|
+
from an attempted rollback or repeat a move against an unverified destination.
|
|
32
|
+
|
|
33
|
+
## Sequence predecessors
|
|
34
|
+
|
|
35
|
+
A deferred-ship sequence leaves earlier milestones sealed and unarchived in
|
|
36
|
+
`.devrites/work/`. The release ship's disclosed plan may close them
|
|
37
|
+
(`devrites-engine state close '<slug>'` per predecessor) after the release commit
|
|
38
|
+
lands; each close is safe because `ACTIVE` names the release workspace. Closing is
|
|
39
|
+
bookkeeping only: the release commit already carries their bytes, and their audit
|
|
40
|
+
records move intact.
|
|
41
|
+
|
|
42
|
+
## Why archive, not delete
|
|
43
|
+
|
|
44
|
+
- The `.md` files (`spec`, `decisions`, `assumptions`, `evidence`, `seal`, `ship`, …)
|
|
45
|
+
are the project's record of *why* the feature is the way it is. A future
|
|
46
|
+
`/rite-zoom-out` or incident review reads them.
|
|
47
|
+
- Deleting them would make the workflow's own "evidence over confidence" rule a lie.
|
|
48
|
+
|
|
49
|
+
## Re-opening an archived feature
|
|
50
|
+
|
|
51
|
+
Before restoring an archive, verify its identity, released cursor form and declared
|
|
52
|
+
workspace schema, that the live destination is absent, and that ACTIVE is empty or
|
|
53
|
+
already names this slug. A collision or another active feature stops restoration;
|
|
54
|
+
do not replace its workspace or cursor. A cursor with no `schema` row predates the
|
|
55
|
+
engine schema and needs a human-approved `devrites-engine migrate <slug>` before the
|
|
56
|
+
engine accepts it; beyond that, age or encoding alone never requires normalization (see
|
|
57
|
+
[workspace-artifact-schema.md](../../devrites-lib/reference/workspace-artifact-schema.md)).
|
|
58
|
+
An unsupported declared schema stops restoration: record the observed version,
|
|
59
|
+
installed engine's recovery diagnostic and pending normalization owner. Do not guess
|
|
60
|
+
a repair or claim `/rite-upgrade` migrates archives; archived/done work is its no-op.
|
|
61
|
+
|
|
62
|
+
After an authorized restoration, verify the actual paths and cursor and preserve the
|
|
63
|
+
audit records. Reconcile the resumed scope through `/rite-converge`; changes return to
|
|
64
|
+
the applicable earlier lifecycle stage. Historical proof/GO remains historical: a new
|
|
65
|
+
candidate requires fresh Prove → Polish → Review → Seal bindings before Ship. Restoring files
|
|
66
|
+
does not reactivate an old GO.
|
|
67
|
+
|
|
68
|
+
Cross-feature review is user-invoked through `/rite-learn`; close-out does not
|
|
69
|
+
mine, score, nudge, or write a retrospective ledger.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# The irreversible ship: type-GO + git ladder
|
|
2
|
+
|
|
3
|
+
`/rite-ship` alone runs irreversible actions. A seal GO is never authorization for Git.
|
|
4
|
+
Require fresh approval for one disclosed attempt plus native permission.
|
|
5
|
+
|
|
6
|
+
## The type-GO prompt (render verbatim, wait)
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
Feature: <slug>
|
|
10
|
+
Verdict: GO (seal.md)
|
|
11
|
+
Acceptance criteria proven: <n / total>
|
|
12
|
+
Branch: <target branch>
|
|
13
|
+
Candidate paths: <exact project-relative paths>
|
|
14
|
+
Checkpoint collapse: <exact `git reset --soft '<merge-base>'` command | skip>
|
|
15
|
+
Collapse slugs: <active slug plus every recorded sequence slug in the range | n/a>
|
|
16
|
+
Stage plan: <exact argv-safe `git add -- '<path>'` command for every manifest row>
|
|
17
|
+
Commit: <exact git commit command>
|
|
18
|
+
Push: <exact git push command | skip>
|
|
19
|
+
Tag: <exact git tag command | skip>
|
|
20
|
+
PR: <exact PR command, target, title, and body source | skip>
|
|
21
|
+
Close: <exact `devrites-engine state close '<slug>'` for each sealed sequence predecessor | skip>
|
|
22
|
+
|
|
23
|
+
Type "GO" exactly to approve this attempt once. Anything else cancels.
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Rules:
|
|
27
|
+
- Render every attempt; autocomplete flags only reach this boundary.
|
|
28
|
+
- Only literal `GO` proceeds. Anything else cancels, records
|
|
29
|
+
`user declined irreversible step at <ts>` in `ship.md`, and stops.
|
|
30
|
+
- `GO` is one-use for the shown scope/commands; changed/retried plans re-prompt.
|
|
31
|
+
- Prior answers, AFK, seal GO, and native approval do not replace type-GO;
|
|
32
|
+
type-GO never replaces/bypasses native permission or sandbox approval.
|
|
33
|
+
|
|
34
|
+
## The candidate-safe Git ladder
|
|
35
|
+
|
|
36
|
+
Follow [`git-workflow.md`](../../devrites-lib/reference/standards/git-workflow.md) and project convention; invent no release flow.
|
|
37
|
+
Candidate identity always comes from `devrites-engine check candidate`; do not
|
|
38
|
+
implement a Git-side hash.
|
|
39
|
+
|
|
40
|
+
### Before type-GO
|
|
41
|
+
|
|
42
|
+
Pre-GO is read-only. Do not run the disclosed collapse or staging commands.
|
|
43
|
+
|
|
44
|
+
0. **Protect existing index work.** Read the NUL-delimited staged state/path set.
|
|
45
|
+
Refuse a pre-existing staged path outside the manifest; never unstage, stage,
|
|
46
|
+
reset, or discard user work.
|
|
47
|
+
1. **Analyze checkpoint history without mutating it.** Read the upstream, merge
|
|
48
|
+
base, commit OIDs, and full subjects. If no checkpoint commit exists, disclose
|
|
49
|
+
`skip`. A collapse is eligible only when every commit in its range has the exact
|
|
50
|
+
`WIP(<slug>):` prefix for the validated active slug — or, for a release ship of a
|
|
51
|
+
deferred-ship sequence, for a slug recorded in the parent's `decisions.md`
|
|
52
|
+
sequence whose workspace is sealed in this run
|
|
53
|
+
([afk-hitl.md § Sequence continuation](../../devrites-lib/reference/standards/afk-hitl.md#sequence-continuation-continue_sequence-max_workspaces));
|
|
54
|
+
disclose the exact slug set. A different slug, missing colon, broad `WIP(` match,
|
|
55
|
+
ordinary commit, or mixed history blocks; never reinterpret the range. The recorded
|
|
56
|
+
ship commit of a resumed ship (step 7a) is not an ordinary commit for that rerun.
|
|
57
|
+
2. **Verify the candidate.** Rerun `devrites-engine check candidate <slug>` and
|
|
58
|
+
`devrites-engine check seal <slug>`, compare every binding, require the
|
|
59
|
+
candidate worktree paths to be unchanged, and inspect the existing staged
|
|
60
|
+
scope. These checks do not prepare the index.
|
|
61
|
+
3. **Prepare the disclosure.** Build argv-safe commands from literal validated
|
|
62
|
+
paths, without `eval` or command-string interpolation. Run only read-only
|
|
63
|
+
secret scans of the existing staged state and proposed PR body. Render the
|
|
64
|
+
literal prompt with the exact optional collapse command or `skip`, exact stage
|
|
65
|
+
plan, commit, push, tag, and PR commands; then wait.
|
|
66
|
+
|
|
67
|
+
### After type-GO
|
|
68
|
+
|
|
69
|
+
1. **Optional checkpoint collapse.** If and only if the prompt disclosed it,
|
|
70
|
+
recheck that `HEAD`, merge base, and every subject are unchanged and that each
|
|
71
|
+
subject starts exactly `WIP(<slug>):` for the disclosed slug set, then run the
|
|
72
|
+
exact disclosed `git reset --soft "$mb"`. Otherwise skip. Any different or mixed
|
|
73
|
+
subject blocks without mutation.
|
|
74
|
+
2. **Exact staging.** Run `git add -- "$path"` once for each disclosed manifest
|
|
75
|
+
row, passing each validated project-relative path as its own quoted argv
|
|
76
|
+
element. Use no glob, directory, `-A`, `.env`, secret, out-of-scope path,
|
|
77
|
+
`eval`, or interpolated command string. A row that `git check-ignore -v --no-index`
|
|
78
|
+
matches, tracked or not, is disclosed and staged with `git add -f --`: plain
|
|
79
|
+
`git add` exits 1 on a named ignored path even after staging it.
|
|
80
|
+
3. **Compare staged scope.** Compare the NUL-delimited output of
|
|
81
|
+
`git diff --cached --name-status --no-renames -z` to the manifest's exact
|
|
82
|
+
state/path set. `present` maps only to `A` or `M`; `deleted` maps only to `D`.
|
|
83
|
+
Reject missing, extra, renamed, duplicated, or differently classified paths.
|
|
84
|
+
4. **Compare staged bytes.** Require no index-to-worktree difference for any
|
|
85
|
+
manifest path. A dirty manifest path stops; never stage or reinterpret it
|
|
86
|
+
after this comparison.
|
|
87
|
+
5. **Revalidate immediately before commit.** With no intervening mutation,
|
|
88
|
+
rerun `devrites-engine check candidate <slug>` and
|
|
89
|
+
`devrites-engine check seal <slug>`, require the exact candidate digest and
|
|
90
|
+
every evidence/browser/review/Seal binding, then run the staged secret scan.
|
|
91
|
+
Any scope, byte, identity, binding, scan, history, or command drift invalidates
|
|
92
|
+
the one-use approval. Stop and render a fresh type-GO prompt; do not repair the
|
|
93
|
+
drift under the old approval.
|
|
94
|
+
6. **Commit** one logical change using Conventional Commit and a why-body.
|
|
95
|
+
Non-trivial work adds applicable `Constraint:`, `Rejected:`, `Confidence:`,
|
|
96
|
+
`Scope-risk:`, and `Not-tested:` workspace trailers; trivial edits omit them.
|
|
97
|
+
7. **Verify the commit.** Immediately after the authorized commit and before any
|
|
98
|
+
push or tag, compare
|
|
99
|
+
`git diff-tree --root --no-commit-id --name-status --no-renames -r -z HEAD`
|
|
100
|
+
to the manifest using the same exact state/path mapping. Require candidate
|
|
101
|
+
paths still match `HEAD`, then rerun `devrites-engine check candidate <slug>`
|
|
102
|
+
and `devrites-engine check seal <slug>` and compare the exact digest again.
|
|
103
|
+
Any mismatch stops; do not reinterpret it.
|
|
104
|
+
7a. **Record before push.** Write `ship.md` `Commit(s)` and `Push: pending`. A failed
|
|
105
|
+
push/tag/PR records `failed`, an unanswered or timed-out one `unknown`; stop. Check
|
|
106
|
+
the remote ref (`git ls-remote`) before any retry. A rerun whose HEAD equals the
|
|
107
|
+
recorded commit and whose candidate digest is unchanged skips steps 1-7 and
|
|
108
|
+
prompts a fresh type-GO for only the remaining push/tag/PR commands.
|
|
109
|
+
8. **Push** to the project-conventional target branch.
|
|
110
|
+
9. **Tag / PR** only when project convention requires it; otherwise skip.
|
|
111
|
+
10. **Close sealed predecessors** only when the prompt disclosed them: run the
|
|
112
|
+
exact `devrites-engine state close '<slug>'` once per predecessor. Each is safe
|
|
113
|
+
because `ACTIVE` names the release workspace; a nonzero exit stops the rest and
|
|
114
|
+
is reported, never retried against an unverified destination.
|
|
115
|
+
|
|
116
|
+
Update `Push:` to `pushed` and record branch and tag/PR URL in `ship.md`.
|
|
117
|
+
|
|
118
|
+
## Pull request body
|
|
119
|
+
|
|
120
|
+
When this ship opens a PR, include only applicable sections:
|
|
121
|
+
|
|
122
|
+
- **Summary:** what shipped and acceptance proven.
|
|
123
|
+
- **Risk & rollback:** migration/auth/destructive risk and reversal from `seal.md`.
|
|
124
|
+
- **What to scrutinize:** highest-blast-radius review stops.
|
|
125
|
+
- **Evidence:** condensed proof plus the archived evidence bundle.
|
|
126
|
+
|
|
127
|
+
For an agent-owned staged rollout, apply [`rollout.md`](rollout.md). CI-owned deploys
|
|
128
|
+
skip that branch. Delete empty sections rather than writing `N/A`.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Staged rollout and recovery: live deploys only
|
|
2
|
+
|
|
3
|
+
Load this only when `/rite-ship` itself is explicitly authorized to drive a live
|
|
4
|
+
deployment. Git-only Ship stops before rollout; CI-owned deployment follows the pipeline's
|
|
5
|
+
runbook. A Seal GO or AFK setting never authorizes production action.
|
|
6
|
+
|
|
7
|
+
## Preconditions before exposure
|
|
8
|
+
|
|
9
|
+
Record one rollout sheet in `ship.md`:
|
|
10
|
+
|
|
11
|
+
| Item | Required decision/evidence |
|
|
12
|
+
| --- | --- |
|
|
13
|
+
| Units and order | Repository/deployable, schema, config, application, worker, contract, and flag order; safe old/new combinations. |
|
|
14
|
+
| Exposure stages | Project-native internal/canary/cohort/percentage/region stages and hold window. |
|
|
15
|
+
| Advance/hold/abort signals | Project baseline or SLO, measurement window, minimum sample, exact threshold, and owner. |
|
|
16
|
+
| Recovery | Fastest safe mechanism, steps, owner, measured/rehearsed time, and data/external-effect reconciliation. |
|
|
17
|
+
| Observability | Watched dashboard/query/alert, failure signal, and executable first action. |
|
|
18
|
+
| Authorization | Exact target/action approved for this attempt; no inferred retry permission. |
|
|
19
|
+
|
|
20
|
+
Do not import generic percentage, latency, error-rate, or time-to-rollback numbers. Use
|
|
21
|
+
accepted product risk, current baseline/SLO, traffic volume, and platform capability. If the
|
|
22
|
+
project has no defensible threshold or signal, the monitoring gap blocks live exposure.
|
|
23
|
+
|
|
24
|
+
## Choose the smallest reversible mechanism
|
|
25
|
+
|
|
26
|
+
- A feature flag is useful only when the off path preserves current behavior, both states
|
|
27
|
+
are tested, disabling it stops the risky effect, and it has an owner/removal trigger.
|
|
28
|
+
Do not add a flag to a change already reversible by a safe atomic deploy.
|
|
29
|
+
- A flag cannot reverse destructive data/schema effects. Apply
|
|
30
|
+
[`data-integrity.md`](../../devrites-lib/reference/standards/data-integrity.md) and prove
|
|
31
|
+
restore or forward recovery separately.
|
|
32
|
+
- External APIs, webhooks, queues, jobs, and caches apply
|
|
33
|
+
[`integration-reliability.md`](../../devrites-lib/reference/standards/integration-reliability.md):
|
|
34
|
+
reconcile unknown outcomes, drain/quarantine/replay safely, and protect downstream capacity.
|
|
35
|
+
- Multi-root/service rollout follows
|
|
36
|
+
[`repository-topology.md`](../../devrites-lib/reference/standards/repository-topology.md);
|
|
37
|
+
references to another repository never grant write/deploy authority there.
|
|
38
|
+
|
|
39
|
+
## Stage, observe, decide
|
|
40
|
+
|
|
41
|
+
At each authorized stage:
|
|
42
|
+
|
|
43
|
+
1. Verify the intended versions/config/schema and candidate identity on the exact target.
|
|
44
|
+
2. Exercise one critical success path and the declared degradation/recovery signal.
|
|
45
|
+
3. Observe for the recorded window and sample; bind results to the stage and baseline.
|
|
46
|
+
4. **Advance** only when every advance condition holds. **Hold** on ambiguous or
|
|
47
|
+
insufficient evidence. **Abort/recover** immediately on an abort condition, security or
|
|
48
|
+
tenant breach, data-integrity violation, unreconciled duplicate/unknown effect, or loss of
|
|
49
|
+
observability.
|
|
50
|
+
5. Re-verify after recovery; record partial effects and reconciliation. A rollback command
|
|
51
|
+
exiting zero is not proof the prior state or data was restored.
|
|
52
|
+
|
|
53
|
+
Never compress stages because an early sample "looks fine," continue through a monitoring
|
|
54
|
+
gap, or retry a failed live action without fresh authorization when the attempt/target changes.
|
|
55
|
+
|
|
56
|
+
## Completion
|
|
57
|
+
|
|
58
|
+
Rollout is complete only when full intended exposure meets the recorded window/signals,
|
|
59
|
+
telemetry is still watched, migrations/backfills and queues/reconciliation are settled,
|
|
60
|
+
documentation matches deployed behavior, and temporary flags/compatibility paths have a
|
|
61
|
+
dated removal owner. Otherwise report the exact current stage and remaining risk; do not call
|
|
62
|
+
the launch done.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# `ship.md` template
|
|
2
|
+
|
|
3
|
+
Write Commit(s)/Push at git-ship step 7a; complete before close-out; it moves to `.devrites/archive/<slug>/ship.md`.
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# Ship: <slug>
|
|
7
|
+
|
|
8
|
+
- Shipped at: <iso>
|
|
9
|
+
- Verdict: GO (seal.md)
|
|
10
|
+
- Branch: <branch>
|
|
11
|
+
- Commit(s): <sha> [<sha> …]
|
|
12
|
+
- Tag/PR: <value|none>
|
|
13
|
+
- Push: <pushed|pending|failed|unknown>
|
|
14
|
+
|
|
15
|
+
## What shipped
|
|
16
|
+
<project-vocabulary paragraph>
|
|
17
|
+
|
|
18
|
+
## Acceptance
|
|
19
|
+
- Proven: <n/total> (evidence.md/seal.md)
|
|
20
|
+
- Outstanding: <rows below | none>
|
|
21
|
+
|
|
22
|
+
## Evidence
|
|
23
|
+
- seal.md — verdict/reconciliation
|
|
24
|
+
- evidence.md — acceptance; browser-evidence.md if UI
|
|
25
|
+
- review.md — review findings
|
|
26
|
+
|
|
27
|
+
## Follow-up reconciliation
|
|
28
|
+
Checked: strategy.md (if present), decisions.md, review.md, seal.md.
|
|
29
|
+
|
|
30
|
+
| Source | Item | Disposition | Destination / rationale |
|
|
31
|
+
|---|---|---|---|
|
|
32
|
+
| <file + section> | <item> | tracked | <durable path/ID> |
|
|
33
|
+
| <file + section> | <item> | no-action | <decision or explicit human no-action approval + reason/revisit> |
|
|
34
|
+
|
|
35
|
+
<If empty: No residual items found.>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Keep pointers short. Acceptance MUST match `seal.md`. Each source residual appears
|
|
39
|
+
once; a missing target, unsupported `no-action`, vague disposition, or conflict blocks
|
|
40
|
+
close-out.
|