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,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-build
|
|
3
|
+
description: Build the next approved vertical slice with evidence. HITL one-slice default; AFK/autocomplete chain serially or in eligible path-disjoint batches (dynamic size, cap 10); `--parallel N` caps a batch.
|
|
4
|
+
argument-hint: "[--parallel N] [slice number or name]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/standards/agents.md","rite-build/reference/phase-contract.md","rite-build/reference/one-slice-cycle.md","rite-build/reference/wright-dispatch.md","rite-build/reference/checkpoint.md","rite-build/reference/spec-drift-guard.md","rite-build/reference/output.md","rite-build/reference/anti-patterns.md"],"rootOnly":["devrites-lib/reference/standards/code-index.md","rite-build/reference/phase-contract.md","rite-build/reference/wright-dispatch.md","rite-build/reference/checkpoint.md","rite-build/reference/output.md","rite-build/reference/afk-discipline.md","rite-build/reference/checkpoint-protocol.md","rite-build/reference/parallel-batch.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/workflow-artifacts.md"],"triggers":{"afk":["rite-build/reference/afk-discipline.md","devrites-lib/reference/standards/afk-hitl.md","rite-build/reference/checkpoint-protocol.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"coding":["devrites-lib/reference/standards/coding-style.md"],"debug-recovery":["devrites-lib/reference/standards/debug-recovery.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"errors":["devrites-lib/reference/standards/error-handling.md"],"frontend":["rite-build/reference/frontend-trigger.md"],"parallel":["rite-build/reference/parallel-batch.md"],"patterns":["devrites-lib/reference/standards/patterns.md"],"principles":["devrites-lib/reference/standards/principles.md"],"security":["devrites-lib/reference/standards/security.md"],"tdd":["rite-build/reference/tdd.md","devrites-lib/reference/standards/testing.md"],"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.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","strategy.md"],"workspaceByRole":{"code-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","architecture.md","decisions.md","state.md"],"doubt-reviewer":["spec.md","plan.md","tasks.md","state.md","decisions.md"],"slice-wright":["brief.md","spec.md","architecture.md","plan.md","tasks.md","test-plan.md","state.md","decisions.md","assumptions.md","questions.md"],"test-analyst":["spec.md","tasks.md","test-plan.md","state.md"]}} -->
|
|
9
|
+
> Read-set manifest: `devrites-engine context --skills-root .dsh/skills <slug> --phase build` 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-build: one verified slice
|
|
13
|
+
|
|
14
|
+
Active caller takes precedence per [output.md](reference/output.md#caller-owned-continuation).
|
|
15
|
+
Standalone HITL stops; standalone AFK chains under green proof, caps and pause
|
|
16
|
+
rules. Every wright returns after one slice.
|
|
17
|
+
**HITL:** `/rite-build --parallel N` (2≤N≤10; N=1≡serial) follows
|
|
18
|
+
[`reference/parallel-batch.md`](reference/parallel-batch.md)
|
|
19
|
+
([`one-slice-cycle.md`](reference/one-slice-cycle.md)).
|
|
20
|
+
|
|
21
|
+
Root owns gates/bookkeeping; fresh
|
|
22
|
+
[`devrites-slice-wright`](../../agents/devrites-slice-wright.md) writes source/tests.
|
|
23
|
+
Workflow Artifacts use
|
|
24
|
+
[`workflow-artifacts.md`](../devrites-lib/reference/standards/workflow-artifacts.md)
|
|
25
|
+
(trigger `workflow-artifacts` — only when the plan declares them).
|
|
26
|
+
Execute [`reference/phase-contract.md`](reference/phase-contract.md)
|
|
27
|
+
([`one-slice-cycle.md`](reference/one-slice-cycle.md),
|
|
28
|
+
[`afk-discipline.md`](reference/afk-discipline.md)); dispatch uses
|
|
29
|
+
[`reference/wright-dispatch.md`](reference/wright-dispatch.md).
|
|
30
|
+
Every wright contract names the writer-safe checks the wright runs (syntax/type/lint,
|
|
31
|
+
unit and self-check suites, a narrow local smoke) and never forbids them; only
|
|
32
|
+
artifact-producing, consumptive, or full canonical gates stay root-owned, and a
|
|
33
|
+
`RUN: writer` gate adds `gates precheck` to them;
|
|
34
|
+
`dispatch open --contract` refuses a contract that breaks this. Prior contracts in `evidence.md` are not a template for this. **Failing case:** the
|
|
35
|
+
contract says "skip tests mid-flight; root runs them after return", and the wright
|
|
36
|
+
returns three unit failures that a 20 s `go test` would have caught in-round.
|
|
37
|
+
|
|
38
|
+
## Required rules
|
|
39
|
+
|
|
40
|
+
Read `.dsh/skills/devrites-lib/reference/standards/core.md` first. Load only triggered rules:
|
|
41
|
+
coding/error/testing/[`tdd.md`](reference/tdd.md)/patterns/DoD; binding
|
|
42
|
+
`.devrites/principles.md`; security; topology; data integrity; integration reliability.
|
|
43
|
+
Wright applies anti-slop; root verifies returns and never patches source. Refuse the rationalizations in
|
|
44
|
+
[`anti-patterns`](reference/anti-patterns.md).
|
|
45
|
+
|
|
46
|
+
## Invariants
|
|
47
|
+
|
|
48
|
+
- Standalone HITL default: serial on control (core.md #5). AFK/`--parallel N`
|
|
49
|
+
uses [`parallel-batch.md`](reference/parallel-batch.md).
|
|
50
|
+
Same-worktree multi-writer / root-emulated concurrency forbidden.
|
|
51
|
+
Native-worktree pilot = single-slice isolation when `wright-dispatch.md`
|
|
52
|
+
preflight + reconcile hold.
|
|
53
|
+
- Exact feature scope only (core.md #7); reject out-of-allowlist diffs
|
|
54
|
+
(`devrites-engine check diff-scope <slug> --allow <contract-paths>`); record
|
|
55
|
+
adjacent issues. An adjacent issue or non-obvious rationale bound to specific
|
|
56
|
+
code anchors as a note — `devrites-engine note add <slug> <file> "<verbatim
|
|
57
|
+
quote>" <title>` — so refactors regrade it instead of losing it
|
|
58
|
+
([`notes.md`](../devrites-lib/reference/workspace-artifact-schema.md#anchored-notes)).
|
|
59
|
+
- Re-prove affected behavior after edits (core.md #6); reuse observations only
|
|
60
|
+
under [evidence validity](../devrites-lib/reference/candidate-integrity.md#evidence-validity).
|
|
61
|
+
- Unplanned dependency/design-system/gap/repair → Vet/Spec Drift Guard batch
|
|
62
|
+
sweep: every contract-assumption violation recorded before one folded
|
|
63
|
+
repair+vet. Ask only for licensing/cost/security/product or explicit
|
|
64
|
+
architecture-policy decisions (core.md #8).
|
|
65
|
+
- Root never edits product source/tests (`.devrites/` + Workflow Artifact only;
|
|
66
|
+
[agents.md](../devrites-lib/reference/standards/agents.md) source-writing
|
|
67
|
+
boundary). Wright is sole product writer; extras in returned paths/`git diff
|
|
68
|
+
--name-only` hard-stop via `check diff-scope`.
|
|
69
|
+
- Principles bind; irreversible conflict needs human exception or stop.
|
|
70
|
+
- Evidence beats confidence (core.md #6). Never weaken tests, skip TDD, widen
|
|
71
|
+
writers, or self-approve. Drift →
|
|
72
|
+
[`spec-drift-guard.md`](reference/spec-drift-guard.md); checkpoint →
|
|
73
|
+
[`checkpoint.md`](reference/checkpoint.md).
|
|
74
|
+
- Async readiness waits during slice work follow
|
|
75
|
+
[`debug-recovery.md`](../devrites-lib/reference/standards/debug-recovery.md)
|
|
76
|
+
(bounded poll + last-signal artifact; no blind sleep as primary strategy).
|
|
77
|
+
|
|
78
|
+
## Workflow Artifact branch
|
|
79
|
+
|
|
80
|
+
<!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"Vet-ready admitted bytes require root authorship outside product wright","action":"ROOT_TRANSACTION; root writes only admitted .devrites/** targets","return":"saved Build slice cursor; wright product allowlist unchanged"} -->
|
|
81
|
+
## `--parallel N` (opt-in)
|
|
82
|
+
|
|
83
|
+
HITL default/explicit `1` ≡ serial; AFK inherits cap.
|
|
84
|
+
`2`–`10` is a **cap** — the root runs an eligible
|
|
85
|
+
path-disjoint set it can start now (`N_eff`, from `parallel select --from-plan`), takes fewer when the cap cannot be
|
|
86
|
+
filled, and refills a slot per landing (serial slice or one sibling) until
|
|
87
|
+
no pending slice remains
|
|
88
|
+
([`parallel-batch.md` § Dynamic selection](reference/parallel-batch.md#dynamic-selection-and-re-batching)).
|
|
89
|
+
Unattended runs (`/rite-autocomplete`, `.devrites/AFK` `max_parallel`) refill
|
|
90
|
+
inside the same run; HITL stops after each landing. This invocation's `--parallel N`
|
|
91
|
+
is the cap: leftover sentinel `max_parallel` is not consulted. Autocomplete with
|
|
92
|
+
that flag also writes or replaces only `max_parallel: N`. Non-integer/`N≤0`/`N>10` hard refuse.
|
|
93
|
+
Each sibling lands alone when its review + proof are green (`integrate --slice`):
|
|
94
|
+
one local `WIP(<slug>):` commit onto the control branch (never pushed). Do not
|
|
95
|
+
integrate a sibling because the wright returned. A red/gap sibling gets a bounded repair
|
|
96
|
+
round in its own worktree — never rebuilt from scratch while budget remains.
|
|
97
|
+
Post-writer inventory and affected rechecks follow `phase-contract.md` § Independent
|
|
98
|
+
Build review; fold accounts before one repair-all wright.
|
|
99
|
+
Plan-owned gaps still route through Spec Drift Guard
|
|
100
|
+
(batch sweep, one folded plan repair + one vet recheck inline); do not emit
|
|
101
|
+
a human `Fix`. Exhausted repair blocks and preserves everything;
|
|
102
|
+
`cleanup --force` salvages slice branches before removing worktrees —
|
|
103
|
+
human-gated to abandon a batch, orchestrator-emitted only as the salvage
|
|
104
|
+
step of an automatic frozen-lease re-batch.
|
|
105
|
+
AFK charges per landed sibling only. Running lease blocks another
|
|
106
|
+
`/rite-build`. Details: `parallel-batch.md`.
|
|
107
|
+
|
|
108
|
+
## Execute and reply
|
|
109
|
+
|
|
110
|
+
Run every step in `reference/phase-contract.md`: readiness, one target, dispatch
|
|
111
|
+
or canonical transaction, return inspection, independent code/doubt/test analysis,
|
|
112
|
+
approved fail-on-red proof, record, and applicable accounting. Continue/reply via
|
|
113
|
+
[`reference/output.md`](reference/output.md) plus the shared
|
|
114
|
+
[`reply contract`](../devrites-lib/reference/reply-contract.md). Standalone AFK obeys remaining budget; Prove requires every slice built except a
|
|
115
|
+
[deferred slice](../rite-plan/reference/slicing.md#deferred-slice).
|
|
116
|
+
|
|
117
|
+
## Phase exit
|
|
118
|
+
|
|
119
|
+
**Complete when:** Independent Build review and fail-on-red proof are green,
|
|
120
|
+
`git diff --name-only` ⊆ allowlist, no open Critical/Important, `state.md` cursor
|
|
121
|
+
advances with recorded evidence, and the control-branch checkpoint has landed
|
|
122
|
+
per [`checkpoint.md`](reference/checkpoint.md).
|
|
123
|
+
|
|
124
|
+
**Failing case:** wright reports "done" but independent review or proof was
|
|
125
|
+
skipped, red, or followed by an uncommitted repair → slice incomplete; do not
|
|
126
|
+
advance cursor or commit on control.
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# AFK discipline for unattended `/rite-build`
|
|
2
|
+
|
|
3
|
+
> Root-only: not inlined in --role bundles.
|
|
4
|
+
|
|
5
|
+
`.devrites/AFK` enables unattended slice chaining. Load the shared
|
|
6
|
+
[`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md#the-sentinel-devritesafk)
|
|
7
|
+
for sentinel schema, defaults, gate ceiling, and mutable-counter ownership.
|
|
8
|
+
This file owns Build dispatch, charging, and red paths.
|
|
9
|
+
|
|
10
|
+
Rules: green before `built`; gates before their action; irreversible work
|
|
11
|
+
(destructive/auth/public API) pauses; no tick ends with an open/sealed wave —
|
|
12
|
+
wait for returns or `dispatch abandon --reason`.
|
|
13
|
+
|
|
14
|
+
## Iteration cap
|
|
15
|
+
|
|
16
|
+
Under active `/rite-autocomplete`, skip the slice-cap checks, charges, and cap-stop message below;
|
|
17
|
+
use its [admission rules](../../rite-autocomplete/reference/loop.md#admit-each-unattended-cycle).
|
|
18
|
+
Otherwise root owns cap:
|
|
19
|
+
|
|
20
|
+
1. **Before every dispatch**, re-read `.devrites/AFK`, `state.md`, and the
|
|
21
|
+
selected slice. This invocation's `--parallel N` is the cap when present;
|
|
22
|
+
leftover sentinel `max_parallel` is not consulted in that case. When that
|
|
23
|
+
flag or sentinel `max_parallel` is greater than 1, recompute `N_eff` via
|
|
24
|
+
`parallel select` before the next dispatch — a prior one-slice round does not keep the run serial. A configured `max_slices` and any existing
|
|
25
|
+
`afk_slices_remaining` value, including its released bullet form, must each
|
|
26
|
+
be a decimal nonnegative integer. A missing
|
|
27
|
+
`state.md` or malformed configured value fails closed; an omitted cap is the
|
|
28
|
+
documented unlimited default only when no remaining counter exists. If the
|
|
29
|
+
effective remaining value is zero, stop before dispatching another slice.
|
|
30
|
+
2. **After proof is green**, combine the pending → built record and budget
|
|
31
|
+
charge in one `state.md` rewrite. If the remaining field is absent, add
|
|
32
|
+
`afk_slices_remaining` to a cursor table or `AFK slices remaining` to a
|
|
33
|
+
legacy bullet cursor, seed it from `max_slices`, and write
|
|
34
|
+
`max_slices - 1`; otherwise preserve its spelling and write `remaining - 1`.
|
|
35
|
+
The counter is never below zero: a value that would go negative is an invariant failure and
|
|
36
|
+
stops. A missing `max_slices` means unlimited and no remaining field is
|
|
37
|
+
created.
|
|
38
|
+
A controlling orchestrator may pre-seed the remaining field from a validated
|
|
39
|
+
post-plan budget before the first dispatch; never increase or reinitialize an
|
|
40
|
+
existing value.
|
|
41
|
+
3. **Charge exactly once after each green built slice.** On the control tree, a slice
|
|
42
|
+
already marked built is not charged again after retry, resume, or
|
|
43
|
+
compaction. Re-read the saved cursor; if it is zero, report the cap and stop
|
|
44
|
+
before the next dispatch.
|
|
45
|
+
- **Serial:** charge when fail-on-red is green and the built record is written
|
|
46
|
+
(same rewrite as step 2).
|
|
47
|
+
- **Parallel `--parallel`:** charge only after **successful integrate**
|
|
48
|
+
— once per landed green sibling. Abort / integrate-failed → charge **0**.
|
|
49
|
+
Do not charge on worktree-green before integrate. See
|
|
50
|
+
[`parallel-batch.md`](parallel-batch.md).
|
|
51
|
+
|
|
52
|
+
Use this stop message:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
AFK cap reached. Raise `state.md` `afk_slices_remaining`/`AFK slices remaining` or remove the sentinel to continue.
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
`max_slices` itself is read-only and never rewritten. No exit-code command
|
|
59
|
+
enforces this policy.
|
|
60
|
+
|
|
61
|
+
Choose caps deliberately (≈5–10 small, ≈30–50 larger). Avoid `unlimited` until HITL
|
|
62
|
+
has succeeded for the work.
|
|
63
|
+
|
|
64
|
+
## Fail-on-red
|
|
65
|
+
|
|
66
|
+
The **fail-on-red step** refuses `built` when targeted tests/types/lint are red. Red means
|
|
67
|
+
wrong contract or proof path — agent-owned recovery; never advance on broken state.
|
|
68
|
+
|
|
69
|
+
The fail-on-red path:
|
|
70
|
+
|
|
71
|
+
1. Continue the same wright under `devrites-debug-recovery`, carrying exact output and dead
|
|
72
|
+
ends; cap writer + recovery at three no-progress attempts per exact causal fingerprint
|
|
73
|
+
and strategy.
|
|
74
|
+
A correction that closes the reproduction is progress; a different evidenced
|
|
75
|
+
Critical/Important invariant starts a separate fingerprint.
|
|
76
|
+
2. Green → record the slice. Product-contract/irreversible ambiguity → write the genuine
|
|
77
|
+
human gate. Missing human-only credential/permission → write a human-intervention gate.
|
|
78
|
+
3. Any other spent strategy → escalate inline to the next correction class; after three
|
|
79
|
+
escalations park the fingerprint and build every slice that does not depend on it,
|
|
80
|
+
per the [retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve).
|
|
81
|
+
Never ask a qid or permission to retry; never hand back a routine phase command.
|
|
82
|
+
4. Fire `notify:` only for an actual `awaiting_human` transition.
|
|
83
|
+
|
|
84
|
+
AFK never starts the next slice while checks are red and never asks the human to approve
|
|
85
|
+
agent-owned diagnosis or parser/test repair.
|
|
86
|
+
|
|
87
|
+
## Irreversible-risk list (always pause)
|
|
88
|
+
|
|
89
|
+
Regardless of `allow_gates`, AFK invokes the checkpoint protocol when the slice touches
|
|
90
|
+
any of:
|
|
91
|
+
|
|
92
|
+
- Destructive data migration (drop column, drop table, irreversible backfill).
|
|
93
|
+
- Auth / authz boundary change (new role, changed permission check, new public auth endpoint).
|
|
94
|
+
- Public API break (response shape change, removed endpoint, changed status code semantics).
|
|
95
|
+
- External-service contract change (webhook payload, partner-facing schema).
|
|
96
|
+
- Filesystem destructive operation outside the workspace (`rm -rf` of project paths,
|
|
97
|
+
rewriting `.gitignore`-listed paths, deleting fixtures).
|
|
98
|
+
- Anything the slice's `Gate: blocking` plus its `Checkpoint:` line in `tasks.md` flags as irreversible.
|
|
99
|
+
|
|
100
|
+
This is the Claude Code auto-mode transcript classifier list adapted to the DevRites
|
|
101
|
+
workspace.
|
|
102
|
+
|
|
103
|
+
## The `notify:` hook contract
|
|
104
|
+
|
|
105
|
+
The hook is a single shell command run on the `awaiting_human` transition. Environment
|
|
106
|
+
the hook receives:
|
|
107
|
+
|
|
108
|
+
| Var | Value |
|
|
109
|
+
| --- | --- |
|
|
110
|
+
| `DEVRITES_QID` | the new qid (e.g. `q-2026-05-28-001`) |
|
|
111
|
+
| `DEVRITES_GATE` | `advisory` / `validating` / `blocking` / `escalating` |
|
|
112
|
+
| `DEVRITES_SLICE` | `<N — name>` |
|
|
113
|
+
| `DEVRITES_SLUG` | active feature slug |
|
|
114
|
+
| `DEVRITES_QUESTION` | the checkpoint text |
|
|
115
|
+
| `DEVRITES_PROPOSED` | the proposed answer |
|
|
116
|
+
|
|
117
|
+
The hook is best effort: a non-zero exit does **not** roll back the pause. Failures are
|
|
118
|
+
logged to `evidence.md` so the user sees them on return.
|
|
119
|
+
|
|
120
|
+
Example targets:
|
|
121
|
+
|
|
122
|
+
- `curl -fsS -m 10 -d "$DEVRITES_QID: $DEVRITES_QUESTION" ntfy.sh/my-topic`
|
|
123
|
+
- `osascript -e "display notification \"$DEVRITES_QUESTION\" with title \"DevRites: $DEVRITES_GATE\""`
|
|
124
|
+
- `pb push "$DEVRITES_SLUG: $DEVRITES_QUESTION"` (via pushbullet CLI)
|
|
125
|
+
|
|
126
|
+
DevRites does not implement notifications; the configured hook does.
|
|
127
|
+
|
|
128
|
+
## When to leave AFK
|
|
129
|
+
|
|
130
|
+
Drop the sentinel before:
|
|
131
|
+
|
|
132
|
+
- A new feature when `/rite-build` has not yet completed successfully on this codebase
|
|
133
|
+
in HITL.
|
|
134
|
+
- A risky slice you marked `Mode: HITL` and want to walk through interactively even if
|
|
135
|
+
the gate is technically `validating`.
|
|
136
|
+
- Any time you'd rather review per-slice than batch-resolve afterwards.
|
|
137
|
+
|
|
138
|
+
AFK allows routine work to continue automatically. Re-enable it for another batch of
|
|
139
|
+
low-stakes work.
|
|
140
|
+
|
|
141
|
+
## What AFK does NOT do
|
|
142
|
+
|
|
143
|
+
- It does not bypass `/rite-prove`, `/rite-review`, or `/rite-seal`. Those gates are
|
|
144
|
+
feature-scoped and always run when their phase runs.
|
|
145
|
+
- It does not skip `/rite-plan repair` when the Spec Drift Guard finds that the
|
|
146
|
+
durable plan is wrong. Objective implementation and tool failures stay in
|
|
147
|
+
bounded recovery instead.
|
|
148
|
+
- It does not skip `devrites-source-driven` checks. Uncertain framework behavior still
|
|
149
|
+
triggers the doc lookup.
|
|
150
|
+
- It does not skip `evidence.md` writes. AFK runs that don't record evidence are
|
|
151
|
+
unproven and get rejected at `/rite-prove` regardless.
|
|
152
|
+
|
|
153
|
+
The sentinel widens *human pauses*, nothing else.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# rite-build: anti-patterns
|
|
2
|
+
|
|
3
|
+
Load when a non-trivial decision stands or stopping, TDD, or doubt discipline
|
|
4
|
+
feels inconvenient.
|
|
5
|
+
|
|
6
|
+
Pack-wide rationalizations and red flags live in
|
|
7
|
+
[standards/anti-patterns.md](../../devrites-lib/reference/standards/anti-patterns.md).
|
|
8
|
+
|
|
9
|
+
## Phase-specific rationalizations
|
|
10
|
+
|
|
11
|
+
| Excuse | Rebuttal |
|
|
12
|
+
|---|---|
|
|
13
|
+
| "Slices 1 and 2 are related; let me do both." | Caller first: [output.md](output.md#caller-owned-continuation). Standalone HITL stops; standalone AFK chains after green proof and cap/pause gates; each wright returns after one. |
|
|
14
|
+
| "It's faster to skip `devrites-doubt` for this small change." | Doubt is cheapest *before* the decision is standing. After is debugging. |
|
|
15
|
+
|
|
16
|
+
## Red Flags
|
|
17
|
+
|
|
18
|
+
- Next slice violates caller/standalone routing or proof/cap/pause gates.
|
|
19
|
+
- Skipping `devrites-doubt` on a branching, boundary, data-model, auth, public-API, or migration decision.
|
|
20
|
+
- Adding a dependency or a second design system without recording rationale in `decisions.md`.
|
|
21
|
+
- Writing a `try/catch` block wider than what you handle.
|
|
22
|
+
- A comment that restates what the next line does.
|
|
23
|
+
- Touching files that aren't in `touched-files.md` for "tidiness".
|
|
24
|
+
- A comment, filename, test name, or commit subject that mentions `SLICE-###`,
|
|
25
|
+
a slice number, or "this slice".
|
|
26
|
+
- Committing onto control when the wright returns, or before Independent Build
|
|
27
|
+
review and fail-on-red proof are green.
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Checkpoint protocol: what `/rite-build` does when a slice is HITL
|
|
2
|
+
|
|
3
|
+
> Root-only: not inlined in --role bundles.
|
|
4
|
+
|
|
5
|
+
HITL slices pause **pre-action** as a ranked **option set** before any code:
|
|
6
|
+
|
|
7
|
+
- **Interactive:** `ask_user_question`; record to `questions.md`/`decisions.md`; clear gate;
|
|
8
|
+
continue in place (no `/rite-resolve` round-trip).
|
|
9
|
+
- **Absent / AFK / notify-only:** persist open question + `Awaiting human`, notify, **stop**.
|
|
10
|
+
Resume via `/rite-resolve` (or `--batch`).
|
|
11
|
+
|
|
12
|
+
## Render contract
|
|
13
|
+
|
|
14
|
+
Render the checkpoint in user-facing output **and** persist it for the next session / AFK
|
|
15
|
+
observer.
|
|
16
|
+
|
|
17
|
+
### User-facing render: the option set
|
|
18
|
+
|
|
19
|
+
Present as `ask_user_question` ranked **option set** ([`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md)): 2–4 options,
|
|
20
|
+
recommended first + `(Recommended)`, dimension-tagged trade-offs, plus escape hatch.
|
|
21
|
+
Header names slice + gate:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Slice <N — name> — HITL (<gate>, SLA <SLA>). <Checkpoint text from tasks.md>
|
|
25
|
+
|
|
26
|
+
▸ 1. <recommended> (Recommended)
|
|
27
|
+
logic: … · infra: … · business: … · architecture: … (+ security/UX/risk if in scope)
|
|
28
|
+
2. <alternative> — <rationale + the trade-off it accepts>
|
|
29
|
+
3. <alternative> — <rationale>
|
|
30
|
+
4. Something else — I'll describe it
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Option #1 (recommended) is **required** and must reflect *this* project. Interactive pick →
|
|
34
|
+
resolve in place; pause → persist the same set to `questions.md` `options:` with resume
|
|
35
|
+
`/rite-resolve <qid> "<answer>"` (or `--drop <qid> "<reason>"`).
|
|
36
|
+
|
|
37
|
+
### Workspace mutations
|
|
38
|
+
|
|
39
|
+
In one bounded root-owned update (one `questions.md` append and one `state.md`
|
|
40
|
+
rewrite; do not claim cross-file atomicity):
|
|
41
|
+
|
|
42
|
+
1. **`questions.md` append:**
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
## q-<YYYY-MM-DD>-<NNN>
|
|
46
|
+
status: open
|
|
47
|
+
slice: <N — name>
|
|
48
|
+
gate: <gate from tasks.md>
|
|
49
|
+
question: <Checkpoint text from tasks.md>
|
|
50
|
+
options: | # the ranked set, recommended first (matches the render)
|
|
51
|
+
1. <recommended> (Recommended) — logic: … · infra: … · business: … · architecture: …
|
|
52
|
+
2. <alternative> — <rationale>
|
|
53
|
+
3. Something else — describe it
|
|
54
|
+
proposed: <the recommended option restated; matches option 1>
|
|
55
|
+
raised_at: <full RFC 3339 timestamp, e.g. 2026-10-19T08:17:08Z>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
2. **`state.md` updates:** cursor `status` = `awaiting_human`, `active_slice` =
|
|
59
|
+
`<N — name>`, `slice_mode` = `HITL`, `next_action` = `/rite-resolve <qid> "<answer>"`;
|
|
60
|
+
then the `Awaiting human` table (`question_id`, `gate`, `blocking_slices` from
|
|
61
|
+
`Blocked by` lookups) per its owner,
|
|
62
|
+
[`state-workspace.md`](../../rite-spec/reference/state-workspace.md#statemd-template) § state.md template.
|
|
63
|
+
Question text, `proposed`, and `raised_at` stay in the step 1 entry. Legacy
|
|
64
|
+
`- Status:`/`- Next step:`/`- qid:` bullets are engine-accepted aliases, not the
|
|
65
|
+
authoring format.
|
|
66
|
+
|
|
67
|
+
3. **`notify:` hook (if `.devrites/AFK` defines one):** export all six env vars from the
|
|
68
|
+
canonical contract in [`afk-discipline.md`](afk-discipline.md) (the `notify:` hook
|
|
69
|
+
contract table is the source of truth):
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
DEVRITES_QID="$qid" \
|
|
73
|
+
DEVRITES_GATE="$gate" \
|
|
74
|
+
DEVRITES_SLICE="$slice_id" \
|
|
75
|
+
DEVRITES_SLUG="$slug" \
|
|
76
|
+
DEVRITES_QUESTION="$question" \
|
|
77
|
+
DEVRITES_PROPOSED="$proposed" \
|
|
78
|
+
sh -c "$notify_cmd"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Fire after workspace write under a bounded tool timeout (e.g. 30 s). Hook failure does **not** roll back the pause (best-effort); append the exit code to `evidence.md`.
|
|
82
|
+
|
|
83
|
+
## qid generation
|
|
84
|
+
|
|
85
|
+
Format: `q-YYYY-MM-DD-NNN`, where `NNN` is the next sequential integer for that date in
|
|
86
|
+
`questions.md`. The controlling root must scan every question header matching
|
|
87
|
+
today's prefix, collect its numeric suffixes, and select one above the highest
|
|
88
|
+
observed suffix (or `001` when none exist), advancing until it is unused. Then
|
|
89
|
+
re-read `questions.md` immediately before the append and repeat the scan. Append only if
|
|
90
|
+
the same candidate is still the next unused id; otherwise recompute. There is no
|
|
91
|
+
reservation or engine command for qids.
|
|
92
|
+
|
|
93
|
+
## When AFK is active
|
|
94
|
+
|
|
95
|
+
If `.devrites/AFK` exists and the slice `Gate` is in `allow_gates`, skip this protocol and
|
|
96
|
+
auto-pick recommended option 1:
|
|
97
|
+
|
|
98
|
+
- `advisory`: log `gate: advisory` + `decisions.md`, then dispatch wright.
|
|
99
|
+
- `validating` (only if allowed): dispatch wright; on return log `gate: validating`, mark
|
|
100
|
+
`built (pending review)`, continue. Slice states remain `pending|built`; feature
|
|
101
|
+
acceptance is `/rite-prove`. Open `validating` is NO-GO at seal until `/rite-resolve`.
|
|
102
|
+
|
|
103
|
+
`blocking` / `escalating` / irreversible-risk always use this protocol (`afk-discipline.md`).
|
|
104
|
+
|
|
105
|
+
## Multi-question pauses
|
|
106
|
+
|
|
107
|
+
**One question per pause.** Multiple HITL checkpoints → `/rite-plan reslice`.
|
|
108
|
+
|
|
109
|
+
## What NOT to do
|
|
110
|
+
|
|
111
|
+
- Don't write code then pause — pre-action only.
|
|
112
|
+
- Don't render without persisting `state.md` + `questions.md`.
|
|
113
|
+
- Don't self-answer a human pause via `proposed:` — `/rite-resolve` needs an explicit
|
|
114
|
+
answer (distinct from interactive pick / AFK auto-pick on `allow_gates`).
|
|
115
|
+
- Don't put `notify:` output in chat; don't fire `notify:` on advisory-only entries.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Checkpoint: land local WIP only after the check loop is green
|
|
2
|
+
|
|
3
|
+
> Root-only: not inlined in --role bundles.
|
|
4
|
+
|
|
5
|
+
The wright does not commit onto the control/primary branch. Independent review
|
|
6
|
+
and fail-on-red proof run first; a red or gap finding dispatches another wright.
|
|
7
|
+
Only when that loop is green does the orchestrator land the local unpushed
|
|
8
|
+
`WIP(<slug>):` commit. Same rule for `/rite-build`, `/rite-prove`, `/rite-polish`,
|
|
9
|
+
`/rite-review`, and `/rite-autocomplete`. Never push. `.devrites/CHECKPOINT` is
|
|
10
|
+
not a gate.
|
|
11
|
+
|
|
12
|
+
The checkpoint stays local, unpushed scratch folded at `/rite-ship`; where the
|
|
13
|
+
host repository's own agent contract requires approval before commits — an
|
|
14
|
+
ask-first rule such as this repository's `AGENTS.md` — that contract wins, and
|
|
15
|
+
the orchestrator pauses for approval before landing it. The DevRites-generated
|
|
16
|
+
`AGENTS.md` block is not such a rule: under it the checkpoint lands without a
|
|
17
|
+
prompt, AFK or HITL. Push, tag, PR, and the ship commit stay human-gated.
|
|
18
|
+
|
|
19
|
+
## When (and when not)
|
|
20
|
+
|
|
21
|
+
- **Do:** after Independent Build review (or the phase's independent validators)
|
|
22
|
+
and fail-on-red proof are green, with no open Critical/Important and no repair
|
|
23
|
+
wright still in flight. Serial: git recipe below (skip empty index) or isolated
|
|
24
|
+
FF of a matching `transfer_commit`. Parallel: `devrites-engine parallel
|
|
25
|
+
integrate --slice <id> --apply-to-control` (no second control `git commit`).
|
|
26
|
+
- **Do not:** when a wright returns; before review/proof; with red/gap findings;
|
|
27
|
+
fast-forward an isolated transfer onto control before those checks.
|
|
28
|
+
|
|
29
|
+
A native-worktree `transfer_commit` is transport on the worker branch only.
|
|
30
|
+
|
|
31
|
+
## The commit
|
|
32
|
+
Stage the exact candidate paths from the manifest, each as its own argv.
|
|
33
|
+
Never stage `touched-files.md`, a directory, glob, unrelated path, or user change.
|
|
34
|
+
Before planning, run `git check-ignore -v --no-index -- <paths>`: every match, tracked
|
|
35
|
+
or not, goes in the `git add -f --` list, because `git add` exits 1 on a named ignored
|
|
36
|
+
path even after staging it. Keep each command's stderr. Verify the staged set, then
|
|
37
|
+
commit locally.
|
|
38
|
+
|
|
39
|
+
Subject: `WIP(<slug>):` plus an imperative summary of the change (from the
|
|
40
|
+
goal). Never a slice id, `SLICE-###`, a slice number, or "this slice"
|
|
41
|
+
(`WIP(admin-report): add CSV export for usage rows`, not `SLICE-003` or
|
|
42
|
+
`complete slice 3`). Product source, tests, comments, and filenames omit the
|
|
43
|
+
same marks; they stay in `.devrites/` only.
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
git commit -m "WIP(<slug>): <imperative summary>" -m "$(cat <<'BODY'
|
|
47
|
+
[devrites-context]
|
|
48
|
+
decisions: <one-line delta this work added to decisions.md>
|
|
49
|
+
remaining: <pending count>
|
|
50
|
+
dead-ends: <approaches ruled out, if any>
|
|
51
|
+
BODY
|
|
52
|
+
)"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Local-only:** never push or let scratch work trigger CI.
|
|
56
|
+
|
|
57
|
+
After green landing (parallel: successful integrate), check `state.md`
|
|
58
|
+
outside fences before reselecting:
|
|
59
|
+
|
|
60
|
+
```text
|
|
61
|
+
- [x] SLICE-004 built — <proof/checkpoint reference>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
A cursor `built_slices` value or a tasks.md `Status: built` field is not a substitute.
|
|
65
|
+
After landing: `devrites-engine check regression <slug> --update`. Before landing,
|
|
66
|
+
restore or route `BLOCKED` lost facts.
|
|
67
|
+
|
|
68
|
+
## Restore
|
|
69
|
+
After a crash, a fresh session may read the last `WIP(<slug>)` body as crash context.
|
|
70
|
+
Authoritative state remains in `.devrites/`: validate the body against that workspace;
|
|
71
|
+
never reconstruct or advance state from the commit body. Reload per
|
|
72
|
+
[`context-hygiene.md`](../../devrites-lib/reference/standards/context-hygiene.md)
|
|
73
|
+
(`.devrites/ACTIVE`, `state.md`, `questions.md`, `decisions.md`, `test-plan.md`/`evidence.md`).
|
|
74
|
+
|
|
75
|
+
## Collapse at ship
|
|
76
|
+
WIP commits are scratch and never reach shared history. `/rite-ship` folds them into the
|
|
77
|
+
one atomic feature commit before the Conventional-Commit ladder: see the collapse step in
|
|
78
|
+
[git-ship.md](../../rite-ship/reference/git-ship.md). Result: one clean commit, bisect
|
|
79
|
+
stays green.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Frontend trigger
|
|
2
|
+
|
|
3
|
+
A slice is **frontend/UI** if it touches or plans to touch any of:
|
|
4
|
+
|
|
5
|
+
- React / TSX / JSX; Vue, Svelte, Astro, Angular;
|
|
6
|
+
- Rails Slim / Haml / ERB views; any server-rendered template;
|
|
7
|
+
- CSS, SCSS, Tailwind, design tokens, theme files;
|
|
8
|
+
- components, forms, layout, navigation, dashboard, landing/marketing page;
|
|
9
|
+
- UI copy, empty states, error states, onboarding, settings;
|
|
10
|
+
- screenshots, mockups, visual direction;
|
|
11
|
+
- browser behavior, responsive behavior, accessibility, frontend performance.
|
|
12
|
+
|
|
13
|
+
## When triggered
|
|
14
|
+
- `/rite-spec` applies **`devrites-ux-shape`** (spec step 3a) to write the feature-level
|
|
15
|
+
**`design-brief.md`** before any code: design direction, key states, interaction model,
|
|
16
|
+
optional Figma/image visual-direction probe.
|
|
17
|
+
- `/rite-build` applies **`devrites-frontend-craft`** to the vetted `design-brief.md`
|
|
18
|
+
(register, system, states, anti-AI-slop). If missing or materially changed, shape it
|
|
19
|
+
and return through `/rite-vet` before code.
|
|
20
|
+
- `/rite-prove` applies **`devrites-browser-proof`** (proof ladder + evidence schema).
|
|
21
|
+
- `/rite-polish` runs the full **normalize + polish** workflow.
|
|
22
|
+
- `/rite-review` and `/rite-seal` include frontend UX / a11y / responsive / design-
|
|
23
|
+
system checks.
|
|
24
|
+
|
|
25
|
+
## Fullstack (UI slice that also needs backend)
|
|
26
|
+
If the slice spans both layers, it's both a frontend **and** a backend slice. Define the
|
|
27
|
+
**API/data contract first** (`devrites-api-interface`), build it as one **vertical slice**
|
|
28
|
+
(DB → service → API → UI), apply the engineering rules to the backend and
|
|
29
|
+
`devrites-frontend-craft` to the UI, map each contract error to a real UI state, and
|
|
30
|
+
**prove both layers** (contract tests + browser proof). See
|
|
31
|
+
[`fullstack.md`](../../devrites-frontend-craft/reference/fullstack.md).
|
|
32
|
+
|
|
33
|
+
## When NOT triggered
|
|
34
|
+
Pure backend/data/CLI/infra slices skip craft and browser proof, but still get tests
|
|
35
|
+
and evidence. If unsure whether a slice is "UI enough", treat copy/empty/error states
|
|
36
|
+
and any rendered output as UI.
|
|
37
|
+
|
|
38
|
+
Mark `Frontend craft required: yes/no` and `Browser proof required: yes/no` on the
|
|
39
|
+
slice in `tasks.md` so the trigger is explicit, not rediscovered each cycle.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# One-slice cycle
|
|
2
|
+
|
|
3
|
+
Each wright returns after one proven slice. Root follows
|
|
4
|
+
[`output.md`](output.md#caller-owned-continuation); standalone AFK uses
|
|
5
|
+
`afk-discipline.md`.
|
|
6
|
+
This serial cycle is the default `/rite-build`. Opt-in fan-out: [`parallel-batch.md`](parallel-batch.md) (`--parallel N`).
|
|
7
|
+
|
|
8
|
+
## The cycle
|
|
9
|
+
|
|
10
|
+
The orchestrator (`/rite-build`) gates and records; the **wright** writes. See
|
|
11
|
+
[`wright-dispatch.md`](wright-dispatch.md).
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
SELECT → orchestrator: restate slice goal + acceptance + scope boundary; HITL gate (pause pre-code)
|
|
15
|
+
(SHAPE) → orchestrator: missing UI design-brief.md → shape it, then /rite-vet before dispatch
|
|
16
|
+
DISPATCH → hand the slice contract to devrites-slice-wright (fresh context). Inside the wright:
|
|
17
|
+
ORIENT → load only the files this slice touches; learn the project's idiom; reuse-first; affected set via `trace_path` (`../../devrites-lib/reference/standards/code-navigation.md`)
|
|
18
|
+
(RED) → if behavior change: write the failing test first
|
|
19
|
+
IMPLEMENT → smallest complete version; match conventions; devrites-frontend-craft for UI
|
|
20
|
+
VERIFY → writer-safe tests/types/lint; return code + tests (no control-branch commit)
|
|
21
|
+
(DOUBT) → orchestrator, on return: devrites-doubt each non-trivial decision the wright stood up
|
|
22
|
+
— dispatch the initial read-only reviews of distinct decisions in parallel
|
|
23
|
+
(independent claims, fresh contexts); wright fixes stay serial — writers share files
|
|
24
|
+
PROVE → root, concurrent with the reviews on the same frozen candidate:
|
|
25
|
+
required build/browser/E2E (narrow self-check/smoke first, full gate only
|
|
26
|
+
after it is green, long runs in the background; cancel one still running once
|
|
27
|
+
review or proof sends the candidate back, keeping its partial output as
|
|
28
|
+
diagnostics), then returned-diff/path recheck; fail-on-red
|
|
29
|
+
(red/gap → repair wright, then re-review and re-prove; do not commit yet)
|
|
30
|
+
RECORD → orchestrator: after green verification, update state.md/evidence.md and
|
|
31
|
+
upsert the authoritative candidate manifest from the actual scoped diff
|
|
32
|
+
(CHECKPOINT) → only now, with review+proof green: local WIP(<slug>): <imperative summary>
|
|
33
|
+
on the control branch (no slice id) → checkpoint.md
|
|
34
|
+
NEXT → controlling caller first: return internally via output.md; no user-facing reply.
|
|
35
|
+
HITL stops. Standalone AFK with parallel cap>1:
|
|
36
|
+
return to parallel-batch selection to refill; otherwise repeat under afk-discipline.md
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Why the boundary matters
|
|
40
|
+
|
|
41
|
+
Reviewable diffs, early drift signal, HITL decision point, no unproven pile-ups.
|
|
42
|
+
|
|
43
|
+
## Restate the scope boundary
|
|
44
|
+
|
|
45
|
+
Before coding, write what this slice will and will **not** touch. This is the contract
|
|
46
|
+
you check yourself against: anything outside it is scope creep or a drift event.
|
|
47
|
+
|
|
48
|
+
## When the slice can't be completed cleanly
|
|
49
|
+
|
|
50
|
+
- Discovered the plan is wrong → **Spec Drift Guard** (record, classify;
|
|
51
|
+
sweep every remaining contract assumption, then one folded repair+vet inline;
|
|
52
|
+
ask only for product/policy/irreversible-risk).
|
|
53
|
+
- Slice is bigger than one cycle → `/rite-plan reslice` inline when AC is
|
|
54
|
+
preserved; do not emit a human Fix.
|
|
55
|
+
- Blocked on a failing dependency → record in `state.md`, `/rite-plan unblock`
|
|
56
|
+
inline when the reroute is technical.
|
|
57
|
+
Never power through by guessing.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# rite-build output
|
|
2
|
+
|
|
3
|
+
> Root-only: not inlined in --role bundles.
|
|
4
|
+
|
|
5
|
+
## Caller-owned continuation
|
|
6
|
+
|
|
7
|
+
Before standalone replies, return internally to active `/rite-autocomplete` or
|
|
8
|
+
another controlling rite after green proof, checkpoint, and accounting:
|
|
9
|
+
- Slices remain: re-read durable state and reselect/refill; no user-facing reply.
|
|
10
|
+
- All built: return internally to the caller to invoke `/rite-prove` under its own contract.
|
|
11
|
+
|
|
12
|
+
Human/safety/access/Git stops still use the shared reply contract.
|
|
13
|
+
|
|
14
|
+
## Standalone response
|
|
15
|
+
|
|
16
|
+
HITL returns after one green slice; AFK chains per `afk-discipline.md`.
|
|
17
|
+
Every wright returns after one slice. Build alone never invokes Prove.
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
Done: built slice <n> — <name>[; all slices built].
|
|
21
|
+
Changed: <files>; state.md, touched-files.md, evidence.md
|
|
22
|
+
Evidence: acceptance met; tests <cmd> → pass; browser <summary|n/a>; drift <none|handled>
|
|
23
|
+
Open: <none|blockers|questions>
|
|
24
|
+
Next: /rite-build [all built: /rite-prove]
|
|
25
|
+
Record: .devrites/work/<slug>/evidence.md
|
|
26
|
+
↻ Hygiene: /clear between slices (none in `orient` `inflight_waves`); /rite-handoff if away > a few hours
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Awaiting-human or stopped states use the shared reply contract.
|