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,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-resolve
|
|
3
|
+
description: User-invoked resume verb for answering, dropping, or batch-resolving open `questions.md` gates.
|
|
4
|
+
argument-hint: "<qid> \"<answer>\" | --drop <qid> [\"<reason>\"] | --batch <plain-text-file>"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
disable-model-invocation: true
|
|
7
|
+
---
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","rite-resolve/reference/answer-protocol.md"],"triggers":{"standards":["devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/documentation.md"]},"rootOnly":["devrites-lib/reference/standards/afk-hitl.md"]} -->
|
|
9
|
+
> Read-set manifest: `devrites-engine context --skills-root .dsh/skills <slug> --skill rite-resolve` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
|
+
|
|
11
|
+
# /rite-resolve: answer the human gate
|
|
12
|
+
|
|
13
|
+
`/rite-resolve` resumes an **async** human gate: a checkpoint that already paused and
|
|
14
|
+
**stopped the session** (an AFK blocking/escalating/irreversible queue, or a HITL pause
|
|
15
|
+
left unanswered), plus `--batch`. When `/rite-build` asks a question **inline**
|
|
16
|
+
via `ask_user_question` and the human is present, that pick resolves the gate **in place** through
|
|
17
|
+
the `devrites-engine state resolve` writer. You don't type `/rite-resolve` for it. For the async case this
|
|
18
|
+
skill takes the human's answer (or `--drop` / `--batch`), writes it to `questions.md`, updates
|
|
19
|
+
`state.md` (clears `Awaiting human`, sets `Status: running`), and recommends the next command.
|
|
20
|
+
|
|
21
|
+
It has one verb, one source of truth (`questions.md`), and one cursor (`state.md`). The
|
|
22
|
+
full AFK / HITL contract lives in
|
|
23
|
+
[`afk-hitl.md`](../devrites-lib/reference/standards/afk-hitl.md).
|
|
24
|
+
|
|
25
|
+
## Rules consulted (read on demand from `.dsh/skills/devrites-lib/reference/standards/`)
|
|
26
|
+
|
|
27
|
+
Pull these via `Read` when shaping the resolve:
|
|
28
|
+
|
|
29
|
+
- [`afk-hitl.md`](../devrites-lib/reference/standards/afk-hitl.md): gate taxonomy, `questions.md` schema, AFK exception rules.
|
|
30
|
+
- [`documentation.md`](../devrites-lib/reference/standards/documentation.md): record decisions and rationale where the answer changes scope.
|
|
31
|
+
|
|
32
|
+
## Operating rules
|
|
33
|
+
|
|
34
|
+
- **Requires an active workspace.** Read `.devrites/ACTIVE` first; if empty, **STOP** and
|
|
35
|
+
tell the user to run `/rite-spec <feature>` first. If the slug has no `questions.md`,
|
|
36
|
+
report the missing required artifact and stop.
|
|
37
|
+
- **One mutation per call.** A single qid (or `--batch` file) per invocation; never
|
|
38
|
+
silently coalesce multiple human decisions into one log entry.
|
|
39
|
+
- **Never overwrite an answered question.** If the qid's `status` is `answered` or
|
|
40
|
+
`dropped`, refuse with the existing answer; ask the user to open a new qid that
|
|
41
|
+
references the old one (the file is the audit trail).
|
|
42
|
+
- **Phase-aware handoff after writing the answer:** before planning artifacts exist,
|
|
43
|
+
recommend the current phase owner's action emitted by `state resolve` (for example,
|
|
44
|
+
`/rite-spec`), not Plan repair. Once a plan exists, material scope, architecture,
|
|
45
|
+
or acceptance changes route through the Spec Drift Guard (`/rite-plan repair`).
|
|
46
|
+
Never modify `spec.md` / `plan.md` inside this skill.
|
|
47
|
+
- **The script is the source of truth.** Always invoke
|
|
48
|
+
`devrites-engine state resolve`. It keeps `questions.md` + `state.md` consistent and emits the
|
|
49
|
+
next-action recommendation. The one `state.md` field this skill may write by hand is the
|
|
50
|
+
unblocked slice's `Slice mode` (step 4, the named exception); everything else goes through
|
|
51
|
+
the script, never by hand.
|
|
52
|
+
- **Human gates are for human-only decisions, not the agent's work.** A `questions.md` entry the
|
|
53
|
+
human must answer is a genuine decision (a scope / design / risk call only the human can make),
|
|
54
|
+
not a task the agent can do. If a question is really agent-doable ("should I write the
|
|
55
|
+
test?", "go implement X"), do not record a human answer that returns the agent's work to it:
|
|
56
|
+
flag the mis-tag and route it to the right skill (`/rite-build`, `/rite-plan unblock`,
|
|
57
|
+
`devrites-debug-recovery`). The human resolves decisions; the agent does the work.
|
|
58
|
+
|
|
59
|
+
## Workflow
|
|
60
|
+
|
|
61
|
+
0. **Read `.dsh/skills/devrites-lib/reference/standards/core.md`** (operating rules + persistence discipline) before
|
|
62
|
+
touching the workspace.
|
|
63
|
+
Then read the explicit or active workspace's `state.md` directly.
|
|
64
|
+
1. **Parse arguments.** `$ARGUMENTS` is one of:
|
|
65
|
+
- `<qid> "<answer>"`: answer the single open question.
|
|
66
|
+
- `--drop <qid>` (optional `"<reason>"`): mark the question `dropped`; record
|
|
67
|
+
the reason inline.
|
|
68
|
+
- `--batch <plain-text-file>`: bulk resolve, one entry per qid (see
|
|
69
|
+
[`reference/answer-protocol.md`](reference/answer-protocol.md) for the batch
|
|
70
|
+
format).
|
|
71
|
+
2. **Load context.** Read `state.md` and `questions.md`; require the relevant slice
|
|
72
|
+
from `tasks.md` only for an actual `SLICE-###` question, not `slice: spec | plan`.
|
|
73
|
+
Confirm the qid is `status: open`. If `state.md` `Status` is not
|
|
74
|
+
`awaiting_human` and the question's `gate` is `blocking`, surface the inconsistency
|
|
75
|
+
before proceeding (don't auto-repair: flag it).
|
|
76
|
+
3. **Apply explicit consent.** Supplying `<qid> "<answer>"`, `--drop`, or `--batch` is the
|
|
77
|
+
user's explicit consent for this local workspace mutation. Echo the qid, answer/drop,
|
|
78
|
+
and slice being unblocked, then continue immediately; do not ask the user to confirm the
|
|
79
|
+
command they just typed.
|
|
80
|
+
4. **Mutate.** Run `devrites-engine state resolve --human` with those arguments (a human is resolving). It:
|
|
81
|
+
- flips the qid's `status` to `answered` / `dropped` and stamps `answered_at` + `answer` + `answered_by: human`;
|
|
82
|
+
- if the qid is in `state.md`'s `Awaiting human` block (single-question pause), clears
|
|
83
|
+
that block and sets `Status: running`;
|
|
84
|
+
- appends a `Log` line to `state.md`.
|
|
85
|
+
|
|
86
|
+
**Writer failure:** command not found or nonzero exit → STOP. Do not hand-edit
|
|
87
|
+
`Slice mode`, `questions.md`, or `state.md`; report the exact command, its exit code,
|
|
88
|
+
and the decisive stderr line, and recommend `/rite-doctor`. Both files stay as the
|
|
89
|
+
writer left them.
|
|
90
|
+
**Completion:** zero exit, or the failure reported with no hand edit.
|
|
91
|
+
|
|
92
|
+
On resume, only for an actual `SLICE-###` question and after a zero exit, clear or
|
|
93
|
+
update the unblocked slice's `Slice mode` in `state.md`: if
|
|
94
|
+
the answer lets the slice proceed, drop the pause-time `Slice mode` so `/rite-build`
|
|
95
|
+
re-derives it on the next selection; if the answer re-shapes how the slice should be
|
|
96
|
+
built, set `Slice mode` to match.
|
|
97
|
+
5. **Post-resolve hand-off.** Before planning artifacts exist, recommend the emitted
|
|
98
|
+
phase-native next action (for example, `/rite-spec`); do not require or create a plan.
|
|
99
|
+
Once a plan exists, material scope, architecture, behavior, or acceptance changes →
|
|
100
|
+
recommend `/rite-plan repair` through the Spec Drift Guard. Otherwise → recommend
|
|
101
|
+
the emitted phase-native next action (typically `/rite-build` for a waiting slice).
|
|
102
|
+
**Completion:** the resolved state contains exactly one next command.
|
|
103
|
+
6. **STOP.** User-invoked `/rite-resolve` does not run `/rite-build` itself: the
|
|
104
|
+
user re-enters the workflow explicitly. A controlling `/rite-autocomplete`
|
|
105
|
+
caller invokes the same `devrites-engine state resolve` writer internally (never with `--human`) and
|
|
106
|
+
continues; it must not emit this skill as a user handoff for a question that
|
|
107
|
+
already names a ranked recommended option.
|
|
108
|
+
|
|
109
|
+
> **Mid-flight discipline.** Don't edit `spec.md` / `plan.md` to "incorporate" the
|
|
110
|
+
> answer. Before planning artifacts exist, return to the emitted current phase owner;
|
|
111
|
+
> once a plan exists, material changes need `/rite-plan repair`. Don't silently retry a build after the answer
|
|
112
|
+
> lands: the user types the next command. Don't merge two open questions into one
|
|
113
|
+
> answered entry: each question is independently auditable.
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Answer protocol: how `/rite-resolve` mutates the workspace
|
|
2
|
+
|
|
3
|
+
`/rite-resolve` is the single canonical writer for `questions.md` `status` flips and
|
|
4
|
+
`state.md` `Awaiting human` clearance. This file is the reference for the three input
|
|
5
|
+
shapes, the batch file format, and the `devrites-engine state resolve` rules.
|
|
6
|
+
|
|
7
|
+
## Three input shapes
|
|
8
|
+
|
|
9
|
+
Each form is an explicit local mutation command. Supplying it is the confirmation; the
|
|
10
|
+
skill applies it once after validation and reports the result instead of asking for `y` again.
|
|
11
|
+
|
|
12
|
+
### 1. Single answer
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/rite-resolve q-2026-05-28-001 "composite index — single key is fine for now, revisit at 1M rows"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
- The qid must be `status: open`. Re-answering is refused (see "Never overwrite").
|
|
19
|
+
- The answer is recorded verbatim. Use straight quotes around the answer so the shell
|
|
20
|
+
preserves whitespace.
|
|
21
|
+
|
|
22
|
+
### 2. Drop
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
/rite-resolve --drop q-2026-05-28-002 "merged into q-...-003 after we narrowed the scope"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
- A drop is **not** an answer. It removes the question from the active queue without
|
|
29
|
+
recording a decision. Use it when the question is obsolete, a duplicate, or absorbed
|
|
30
|
+
by a re-plan.
|
|
31
|
+
- The reason is an optional single trailing string, **strongly recommended** for the
|
|
32
|
+
audit trail. "obsolete" / "duplicate" / "absorbed by Slice N" are sufficient; if omitted,
|
|
33
|
+
`devrites-engine state resolve` records it as `dropped`.
|
|
34
|
+
|
|
35
|
+
### 3. Batch
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
/rite-resolve --batch .devrites/work/<slug>/answers.batch
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The batch file is plain text, one resolution per line. Two line shapes:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
q-2026-05-28-001: composite index, revisit at 1M rows
|
|
45
|
+
q-2026-05-28-002: clinician sign-off required at runtime, not at plan time
|
|
46
|
+
--drop q-2026-05-28-003: merged into q-...-004
|
|
47
|
+
# Lines starting with # are comments. Blank lines ignored.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
- One qid per line. The first colon is the separator; the rest of the line is the value.
|
|
51
|
+
- The batch is all-or-nothing: every line is validated before one atomic write, then
|
|
52
|
+
`Awaiting human` is cleared for the resolved qids.
|
|
53
|
+
- An error applies nothing. Report the failing line and exit code, fix that line, and
|
|
54
|
+
re-run the whole file.
|
|
55
|
+
|
|
56
|
+
## Never overwrite
|
|
57
|
+
|
|
58
|
+
A qid that is already `answered` or `dropped` refuses to be re-resolved. The audit trail
|
|
59
|
+
is the file. You do not edit history. If the original answer was wrong:
|
|
60
|
+
|
|
61
|
+
1. Open a new qid (the agent will, during the next `/rite-build` if the bad answer
|
|
62
|
+
re-surfaces; or you write it manually).
|
|
63
|
+
2. Reference the old qid in the new question's body (`supersedes: q-...-001`).
|
|
64
|
+
3. Resolve the new qid.
|
|
65
|
+
|
|
66
|
+
The same rule applies to `--drop`: a dropped question is not undropped. Re-raise it as
|
|
67
|
+
a new qid if it turns out to matter after all.
|
|
68
|
+
|
|
69
|
+
## State machine
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
open ──answer──▶ answered (terminal)
|
|
73
|
+
│
|
|
74
|
+
└──drop────▶ dropped (terminal)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Both terminals stamp `answered_at: <iso>` and write the answer/reason to `answer:`.
|
|
78
|
+
|
|
79
|
+
## `state.md` clearance rules
|
|
80
|
+
|
|
81
|
+
`state.md`'s `Awaiting human` block is **single-question by default**: `/rite-build`
|
|
82
|
+
writes one block at a time and pauses. When `/rite-resolve` matches the block's qid:
|
|
83
|
+
|
|
84
|
+
- the entire `Awaiting human` block is removed (header + fields);
|
|
85
|
+
- `- Status: running` is set;
|
|
86
|
+
- a `Log` line is appended: `- <iso> <resuming phase>: resolved <qid>`.
|
|
87
|
+
|
|
88
|
+
If `state.md`'s `Status` is `awaiting_human` but no `Awaiting human` block matches the
|
|
89
|
+
qid (drift between the two files), `/rite-resolve` flags the inconsistency and refuses
|
|
90
|
+
to silently fix it. Report it to the current phase owner; once a plan exists,
|
|
91
|
+
reconciliation uses `/rite-plan repair`.
|
|
92
|
+
|
|
93
|
+
## Phase-aware handoff and slice context
|
|
94
|
+
|
|
95
|
+
Read `tasks.md` and update `Slice mode` only for an actual `SLICE-###` question,
|
|
96
|
+
never for `slice: spec | plan`; the update is allowed only after the writer exits zero.
|
|
97
|
+
Before planning artifacts exist, recommend the current phase owner's action emitted
|
|
98
|
+
by `state resolve` (for example, `/rite-spec`), not Plan repair. Never create planning
|
|
99
|
+
artifacts as part of Resolve.
|
|
100
|
+
|
|
101
|
+
If the answer materially changes spec/plan, **do not** edit `spec.md` or `plan.md` inside
|
|
102
|
+
`/rite-resolve`. Once a plan exists, material acceptance, behavior, scope, or architecture
|
|
103
|
+
changes route through the Spec Drift Guard (`/rite-plan repair`); otherwise retain the
|
|
104
|
+
emitted phase-native next action. User-invoked resolutions use `state resolve --human`;
|
|
105
|
+
an internal Autocomplete caller uses the same writer without `--human` and continues.
|
|
106
|
+
Resolve itself never auto-runs the recommended phase owner.
|
|
107
|
+
|
|
108
|
+
## Multi-question awaiting
|
|
109
|
+
|
|
110
|
+
If a future evolution lets `/rite-build` queue multiple questions per pause, the
|
|
111
|
+
`Awaiting human` block becomes a YAML list. `/rite-resolve` will:
|
|
112
|
+
|
|
113
|
+
- match the qid in the list and remove only that entry;
|
|
114
|
+
- leave the rest of the list intact;
|
|
115
|
+
- flip `Status: running` only when the list is empty.
|
|
116
|
+
|
|
117
|
+
This shape is reserved: current `/rite-build` writes one question per pause.
|
|
118
|
+
|
|
119
|
+
## Why no auto-`/rite-build` after resolve
|
|
120
|
+
|
|
121
|
+
The user types the next command explicitly. Reasons:
|
|
122
|
+
|
|
123
|
+
1. Before planning artifacts exist, the emitted current phase owner must resume;
|
|
124
|
+
once a plan exists, material changes may need `/rite-plan repair` first.
|
|
125
|
+
Auto-continuing a build would skip that owner or use a stale plan.
|
|
126
|
+
2. The user may want to `/rite-status` before resuming.
|
|
127
|
+
3. Atomicity: one verb, one mutation. Chaining is a hidden side-effect that hides bugs.
|
|
128
|
+
|
|
129
|
+
The output's `Next:` line is a recommendation, not an auto-run.
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-review
|
|
3
|
+
description: Review polished feature diff for correctness, readability, architecture, security, tests proving acceptance, Critical/Important findings, and quality dimensions before seal.
|
|
4
|
+
argument-hint: "[scope: slice N | feature] [--full]"
|
|
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/candidate-integrity.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/agents.md","devrites-lib/reference/standards/tooling.md","rite-review/reference/feature-scoped-review.md","rite-review/reference/five-axis-review.md","rite-review/reference/anti-patterns.md"],"triggers":{"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"code-review":["devrites-lib/reference/standards/code-review.md","devrites-lib/reference/standards/review-checklist.md","devrites-lib/reference/standards/review/README.md","devrites-lib/reference/standards/duplicate-code.md"],"performance":["devrites-lib/reference/standards/performance.md","rite-review/reference/performance-review.md","rite-review/reference/performance-checklist.md"],"principles":["devrites-lib/reference/standards/principles.md"],"security":["devrites-lib/reference/standards/security.md","devrites-lib/reference/standards/security-checklist.md","rite-review/reference/security-review.md"],"testing":["devrites-lib/reference/standards/testing.md"],"ui":["rite-review/reference/nielsen-heuristics.md","rite-review/reference/cognitive-load.md","rite-review/reference/performance-checklist.md"],"workflow-artifacts":["devrites-lib/reference/workspace-artifact-schema.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","design-brief.md","browser-evidence.md"],"workspaceByRole":{"code-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","architecture.md","decisions.md","state.md","evidence.md","touched-files.md"],"devex-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md"],"doubt-reviewer":["spec.md","plan.md","tasks.md","state.md","decisions.md"],"frontend-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","design-brief.md"],"performance-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md"],"plan-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","decision-coverage.md","architecture.md","state.md"],"security-auditor":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md"],"simplifier-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md"],"spec-reviewer":["brief.md","spec.md","decision-coverage.md","questions.md","decisions.md","assumptions.md","state.md"],"test-analyst":["spec.md","tasks.md","test-plan.md","state.md","evidence.md"]},"rootOnly":["devrites-lib/reference/standards/code-index.md","devrites-lib/reference/standards/tooling.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md"]} -->
|
|
9
|
+
> Read-set manifest: `devrites-engine context --skills-root .dsh/skills <slug> --phase review` 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-review: feature-scoped review
|
|
13
|
+
|
|
14
|
+
Review the **active feature scope only**. **Read the active workspace first**; if none,
|
|
15
|
+
tell the user to run `/rite-spec <feature>`.
|
|
16
|
+
|
|
17
|
+
> **Scope:** `/code-review` is a generic diff review with no workspace context.
|
|
18
|
+
> `/rite-review` reads
|
|
19
|
+
> `.devrites/work/<slug>/spec.md` first, runs Spec ↔ Code-review axes as
|
|
20
|
+
> parallel fresh-context reviewers (see [`parallel-dispatch.md`](../devrites-lib/reference/parallel-dispatch.md)), and gates feeding
|
|
21
|
+
> into `/rite-seal`. Use `/code-review` for a one-off diff; use
|
|
22
|
+
> `/rite-review` for a DevRites feature where the spec is the contract. Use the shared depth rules in
|
|
23
|
+
[`devrites-lib/reference/orchestration-profiles.md`](../devrites-lib/reference/orchestration-profiles.md);
|
|
24
|
+
all workflow-named roles remain mandatory at every depth.
|
|
25
|
+
|
|
26
|
+
## Rules consulted (read on demand from `.dsh/skills/devrites-lib/reference/standards/`)
|
|
27
|
+
|
|
28
|
+
Pull these via `Read` when the diff demands them:
|
|
29
|
+
|
|
30
|
+
- [`code-review.md`](../devrites-lib/reference/standards/code-review.md): small PRs, severity labels, tests-first review focus.
|
|
31
|
+
- [`review-checklist.md`](../devrites-lib/reference/standards/review-checklist.md): compact pass/fail sweep before reporting the verdict.
|
|
32
|
+
- [`principles.md`](../devrites-lib/reference/standards/principles.md): declared project invariants (`.devrites/principles.md`); a diff that violates one with no recorded exception is a Critical, blocking finding.
|
|
33
|
+
- [`testing.md`](../devrites-lib/reference/standards/testing.md): confirm that passing tests actually prove the spec.
|
|
34
|
+
- [`agents.md`](../devrites-lib/reference/standards/agents.md): when to fan out to which review subagent.
|
|
35
|
+
- [`security.md`](../devrites-lib/reference/standards/security.md): when the shared [`parallel-dispatch.md`](../devrites-lib/reference/parallel-dispatch.md#roster) roster triggers the security auditor.
|
|
36
|
+
- [`security-checklist.md`](../devrites-lib/reference/standards/security-checklist.md): for the same security-sensitive scope, the compact trust-boundary sweep.
|
|
37
|
+
- [`repository-topology.md`](../devrites-lib/reference/standards/repository-topology.md), [`data-integrity.md`](../devrites-lib/reference/standards/data-integrity.md), [`integration-reliability.md`](../devrites-lib/reference/standards/integration-reliability.md): only
|
|
38
|
+
when the spec applicability map or final diff triggers their ownership/failure/proof checks.
|
|
39
|
+
- [`performance.md`](../devrites-lib/reference/standards/performance.md): only when perf is relevant or a regression risk is visible.
|
|
40
|
+
|
|
41
|
+
## Operating rules
|
|
42
|
+
|
|
43
|
+
- **Feature scope only** — see
|
|
44
|
+
[feature-scoped-review](reference/feature-scoped-review.md). Spec Drift Guard applies.
|
|
45
|
+
- **Silent-failure hunt:** when the suite is green, require proof that error paths and
|
|
46
|
+
partial-success branches would fail tests if broken. **Failing case:** tests pass but
|
|
47
|
+
handler returns success on internal error → Critical until an asserting test exists.
|
|
48
|
+
- **Review the finished product.** `/rite-polish` has already simplified code and
|
|
49
|
+
normalized or polished UI. If review finds a remaining complexity issue, record it as
|
|
50
|
+
a finding rather than rerunning a simplification pass.
|
|
51
|
+
- Follow the shared
|
|
52
|
+
[`candidate-integrity.md`](../devrites-lib/reference/candidate-integrity.md).
|
|
53
|
+
Review starts only from the digest Polish closed.
|
|
54
|
+
- Findings are labeled (below). Re-prove after any accepted correction.
|
|
55
|
+
- **Reviewers judge; root reconciles; wright fixes.** Per
|
|
56
|
+
[`agents.md`](../devrites-lib/reference/standards/agents.md), root directly
|
|
57
|
+
reconciles verdicts/writes artifacts; engines do not. Accepted corrections
|
|
58
|
+
route to `devrites-slice-wright`.
|
|
59
|
+
|
|
60
|
+
## Workflow
|
|
61
|
+
|
|
62
|
+
0. Read `.dsh/skills/devrites-lib/reference/standards/core.md` first (the always-on operating rules); pull the
|
|
63
|
+
on-demand rules above as the diff demands them.
|
|
64
|
+
1. Read `spec.md`, `tasks.md`, `state.md`, `decisions.md`,
|
|
65
|
+
`touched-files.md`, `.devrites/principles.md` (if present: the binding invariants to score
|
|
66
|
+
the diff against), and the `git diff`. For "what would this change break"
|
|
67
|
+
questions, apply `.dsh/skills/devrites-lib/reference/standards/code-navigation.md`:
|
|
68
|
+
`detect_changes` (explicit `base_branch`, `scope: "impact"`), then `trace_path` on the
|
|
69
|
+
symbols that matter, before falling back to LSP/file search. When a finding hinges on an external library's
|
|
70
|
+
current API, context7 if available can confirm the signature. Run
|
|
71
|
+
`devrites-engine check candidate <slug>` and require its digest to match the
|
|
72
|
+
single `evidence.md` binding and the `browser-evidence.md` binding when that
|
|
73
|
+
file exists. Read those ledgers via the bounded advisory read
|
|
74
|
+
([`workspace-artifact-schema.md`](../devrites-lib/reference/workspace-artifact-schema.md) § Read next by phase; trigger `workflow-artifacts`): binding line, `EVID-###`
|
|
75
|
+
index, then bodies for this candidate's AC/slice IDs only. A missing,
|
|
76
|
+
malformed, or open candidate returns to Polish/Prove.
|
|
77
|
+
Read `touched-files.md` `## Review trail` and `eng-review.md` `## Deferred findings`:
|
|
78
|
+
every deferred row is an input finding for the step-3 cohort (quoted in the owning
|
|
79
|
+
reviewer's brief without severity) and ends in `review.md` with its own label and
|
|
80
|
+
action tag — never silently dropped. Hand each lane reviewer the
|
|
81
|
+
`devrites-engine recall --paths <its touched paths>` pointers as prior context, not findings.
|
|
82
|
+
2. **Review tests first** while the step-3 cohort runs — launch it first; this
|
|
83
|
+
root pass needs none of its output: do they prove the acceptance criteria? Missing,
|
|
84
|
+
weak, or wrong tests are the first findings.
|
|
85
|
+
**Completion:** every acceptance criterion maps to a proven test or a labeled finding.
|
|
86
|
+
3. **Review spec and code separately in parallel.** A change can pass
|
|
87
|
+
one axis and fail the other: code that follows every project standard but
|
|
88
|
+
implements the wrong thing (Code-review pass, Spec fail), or code that does exactly
|
|
89
|
+
what the spec asked but breaks project conventions (Spec pass, Code-review fail).
|
|
90
|
+
Separate contexts prevent one axis from masking the other. This is the initial
|
|
91
|
+
full pass; a correction uses step 7's bounded recheck:
|
|
92
|
+
- Freeze that closed digest: write the candidate diff (feature base to HEAD, plus any
|
|
93
|
+
uncommitted candidate change) to `packets/<wave>.diff` and name that file in the
|
|
94
|
+
packet. `dispatch open` refuses a Review or Seal reviewer wave whose packet names
|
|
95
|
+
no existing diff, or whose manifest omits a path the feature's `WIP(<slug>):`
|
|
96
|
+
checkpoints changed.
|
|
97
|
+
Give the same digest and diff to the **two** axis reviewers (three when
|
|
98
|
+
[engineering lanes](../devrites-lib/reference/parallel-dispatch.md) split the code axis) in
|
|
99
|
+
parallel, each with its own narrow brief and no
|
|
100
|
+
cross-pollination — and evaluate the frontend (step 4), security (step 5),
|
|
101
|
+
and performance (step 6) dispatch conditions from this same diff now,
|
|
102
|
+
joining the cohort when applicable rather than dispatching later waves:
|
|
103
|
+
- **Spec axis** → `devrites-spec-reviewer`: "Apply your documented discipline on
|
|
104
|
+
the active feature workspace + diff. Report (a) criteria the spec asked for that
|
|
105
|
+
are missing or partial, (b) behaviour in the diff the spec did not ask for
|
|
106
|
+
(scope creep / drift), (c) criteria implemented incorrectly. Quote the spec
|
|
107
|
+
line per finding. If the spec is missing or unreadable, report `Review gap:
|
|
108
|
+
missing spec` and do not infer requirements from the diff."
|
|
109
|
+
- **Seal roles** → `devrites-test-analyst`, plus `devrites-doubt-reviewer` per
|
|
110
|
+
stood decision and `devrites-devex-reviewer` when triggered, join this cohort on
|
|
111
|
+
the same digest. Their findings join step 7's single correction, and Seal cites
|
|
112
|
+
their unchanged same-candidate accounts instead of re-dispatching them.
|
|
113
|
+
- **Code-review axis** → `devrites-code-reviewer`: "Apply your full documented
|
|
114
|
+
discipline (tests-first, correctness, readability, architecture, maintainability,
|
|
115
|
+
standards) on the feature workspace + diff. Cite file:line; skip tooling-enforced
|
|
116
|
+
checks. Apply canonical anti-slop and silent-failure lenses; inspect each hunk
|
|
117
|
+
for unrequested deletion. Unexcepted `.devrites/principles.md` violations are
|
|
118
|
+
Critical. Distinguish binding standards from judgment-only baseline smells."
|
|
119
|
+
Route it through [parallel-dispatch.md § Engineering lanes](../devrites-lib/reference/parallel-dispatch.md#engineering-lanes):
|
|
120
|
+
a frontend+backend diff gets two lane reviewers in this cohort.
|
|
121
|
+
- **Do NOT merge or re-rank** their findings. Present them under separate
|
|
122
|
+
`## Spec` and `## Code review` sub-sections in `review.md`. Surface contradictions
|
|
123
|
+
between the axes explicitly (e.g. "Spec axis says complete, Code-review axis says
|
|
124
|
+
untestable"): `/rite-seal` decides what blocks. Preserve each reviewer's
|
|
125
|
+
`Outcome:` and admit its account through
|
|
126
|
+
[[`agents.md`](../devrites-lib/reference/standards/agents.md) § Result admission](../devrites-lib/reference/standards/agents.md#result-admission).
|
|
127
|
+
Either `Outcome: gap` stops Review; silence, failure, or malformed output never
|
|
128
|
+
becomes an empty findings list.
|
|
129
|
+
4. **Reconcile, don't re-review.** With the two parallel reports in hand, the inline
|
|
130
|
+
lead reconciles. It does **not** re-run the code-review axes over correctness /
|
|
131
|
+
readability / architecture / maintainability that `devrites-code-reviewer` already
|
|
132
|
+
covered. Stay in scope ([feature-scoped-review](reference/feature-scoped-review.md)).
|
|
133
|
+
Add only what the dispatched agents could not, then resolve overlaps and
|
|
134
|
+
contradictions before labeling. ([five-axis-review.md](reference/five-axis-review.md)
|
|
135
|
+
documents the axes the code-review agent applies.)
|
|
136
|
+
- **UI feature?** `devrites-frontend-reviewer` joins the step-3 cohort; apply the **UX rubric**
|
|
137
|
+
([nielsen-heuristics](reference/nielsen-heuristics.md)) and the
|
|
138
|
+
**cognitive-load lens** ([cognitive-load](reference/cognitive-load.md),
|
|
139
|
+
[performance-checklist](reference/performance-checklist.md)). No UI/route/style
|
|
140
|
+
paths: record `Not-applicable: no relevant paths in diff`.
|
|
141
|
+
5. **Security:** `devrites-security-auditor`
|
|
142
|
+
([security-review](reference/security-review.md)) joins the step-3 cohort under the
|
|
143
|
+
canonical [parallel-dispatch roster trigger](../devrites-lib/reference/parallel-dispatch.md#roster),
|
|
144
|
+
including a dependency-only diff; else `Not-applicable: no relevant paths in diff`.
|
|
145
|
+
6. **Performance:** `devrites-performance-reviewer`
|
|
146
|
+
([performance-review](reference/performance-review.md),
|
|
147
|
+
[performance-checklist](reference/performance-checklist.md)) joins the step-3 cohort
|
|
148
|
+
only on a budget or
|
|
149
|
+
hot path; else `Not-applicable: no relevant paths in diff`.
|
|
150
|
+
7. Reconcile and accept only in-scope fixes. Consolidate them into one bounded
|
|
151
|
+
wright correction; never edit source in the reviewing context. Any correction
|
|
152
|
+
updates the candidate manifest, returns through affected Prove, and then starts
|
|
153
|
+
a fresh Review binding on the new digest. Dispatch affected exact reviewers on
|
|
154
|
+
all their open findings and the dependency/regression closure under
|
|
155
|
+
[evidence validity](../devrites-lib/reference/candidate-integrity.md#evidence-validity).
|
|
156
|
+
Cite unchanged sub-scope coverage only with its original identity and explicit
|
|
157
|
+
justification; never relabel old accounts. Changed contracts or uncertain impact
|
|
158
|
+
require the full applicable pass.
|
|
159
|
+
8. The root updates `review.md` and `state.md`, writing exactly one candidate
|
|
160
|
+
binding in `review.md` for the current digest, distinguishing fresh accounts from
|
|
161
|
+
cited unchanged sub-scope evidence and reconciling complete coverage.
|
|
162
|
+
**Completion:** the records name the reviewed candidate identity and every accepted
|
|
163
|
+
correction has affected proof plus a fresh Review. Then checkpoint remaining
|
|
164
|
+
candidate diffs per [`checkpoint.md`](../rite-build/reference/checkpoint.md);
|
|
165
|
+
a wright correction does not commit on control until that Review is green.
|
|
166
|
+
|
|
167
|
+
## Finding labels
|
|
168
|
+
|
|
169
|
+
- **Critical:** must fix before seal (correctness/security/data loss).
|
|
170
|
+
- **Important:** should fix before seal (likely bug, real maintainability risk).
|
|
171
|
+
- **Suggestion:** worth doing, not blocking.
|
|
172
|
+
- **Nit:** trivial/style.
|
|
173
|
+
- **FYI:** context, no action implied.
|
|
174
|
+
|
|
175
|
+
**Action tag (separate from severity).** Tag each finding with how to act on it:
|
|
176
|
+
`blocking` (fix before seal), `non-blocking` (fix when convenient), or `if-minor` (fix only if the
|
|
177
|
+
change is already small: a pure noise-economics lever). Every Critical is `blocking` and gates the
|
|
178
|
+
seal; `non-blocking` / `if-minor` findings are recorded, not a stop.
|
|
179
|
+
|
|
180
|
+
## Confidence and severity
|
|
181
|
+
|
|
182
|
+
Apply [[`agents.md`](../devrites-lib/reference/standards/agents.md) § Result admission](../devrites-lib/reference/standards/agents.md#result-admission).
|
|
183
|
+
Roll trivia into one line. `/rite-seal` gates on `Critical == 0`,
|
|
184
|
+
`Important == 0` (y/N override), acceptance, and drift. No composite score.
|
|
185
|
+
|
|
186
|
+
> **Mid-flight discipline.** When tempted to demote a Critical, hide a finding, fix without re-verification, or wander out of scope: see [`anti-patterns`](reference/anti-patterns.md). Load it the moment you reach for the excuse.
|
|
187
|
+
|
|
188
|
+
## Output → `review.md`
|
|
189
|
+
|
|
190
|
+
Write the detailed review to `review.md`.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# rite-review: anti-patterns
|
|
2
|
+
|
|
3
|
+
Load this when standing a non-trivial review decision, when tempted to
|
|
4
|
+
demote severity to hide a finding, or when crossing out of feature scope.
|
|
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
|
+
| "Polish already cleaned this up; nothing to flag." | Polish finishes; review judges. If review still spots a real issue, flag it: don't re-run polish here. |
|
|
14
|
+
| "Tests pass, so they're adequate." | Adequacy = do they prove acceptance, including failure / boundary / empty paths? A passing test is not automatically a good test. |
|
|
15
|
+
| "Security audit isn't needed for this feature." | If the feature touches user input, auth, data storage, external integrations, secrets, or permissions: yes it is. |
|
|
16
|
+
| "I'll just fix everything I find in scope." | Some fixes belong in `/rite-plan` as drift, not as smuggled redesigns inside review. |
|
|
17
|
+
| "Performance is fine without measuring." | No claim without a number or a specified measurement. "Feels fast" is not a finding. |
|
|
18
|
+
|
|
19
|
+
## Severity gaming
|
|
20
|
+
|
|
21
|
+
| Excuse | Rebuttal |
|
|
22
|
+
|---|---|
|
|
23
|
+
| "Demoting a Critical to Important keeps the review clean." | Severity reflects the actual risk to ship, not the review you'd like. |
|
|
24
|
+
| "I won't surface this Critical; user can find it later." | Hidden Criticals are the worst-case play. The seal blocks anyway, and now you've burned trust. |
|
|
25
|
+
|
|
26
|
+
## Red Flags
|
|
27
|
+
|
|
28
|
+
- A finding without `file:line`.
|
|
29
|
+
- A finding without a severity label (Critical / Important / Suggestion / Nit / FYI).
|
|
30
|
+
- A Critical recorded but silently fixed instead of surfaced to the seal.
|
|
31
|
+
- A fix applied without re-verification afterwards.
|
|
32
|
+
- Review crossing into out-of-scope files because they "looked wrong".
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Cognitive load: a UX review lens
|
|
2
|
+
|
|
3
|
+
Cognitive load is the total mental effort the interface demands. Overloaded users
|
|
4
|
+
hesitate, misclick, abandon. Reviewing UI without this lens misses a whole class of
|
|
5
|
+
defects that no a11y checker or perf tool will flag.
|
|
6
|
+
|
|
7
|
+
DevRites' `/rite-review` uses this reference when the feature touches UI. It is
|
|
8
|
+
descriptive (helps you spot defects) rather than scored: findings raised here
|
|
9
|
+
roll up under the UX axis of the multi-axis review with the usual severity labels.
|
|
10
|
+
|
|
11
|
+
## Three kinds of load
|
|
12
|
+
|
|
13
|
+
| Type | Source | Reviewer's job |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| **Intrinsic** | The task itself: its inherent steps, decisions, and required knowledge. | Can't be eliminated, only **structured**: step the user through it, provide defaults, group related decisions, defer what isn't needed yet. |
|
|
16
|
+
| **Extraneous** | Bad design: friction the task doesn't require: noisy hierarchy, redundant choices, jargon, layout that hides the next step. | **Eliminate it ruthlessly.** It's pure waste, and the easiest class of finding to land. |
|
|
17
|
+
| **Germane** | Effort the user spends *forming a mental model* of the product. | **Invest deliberately.** Consistent flows, shared vocabulary, predictable affordances: anything that lets the user re-use what they already learned. |
|
|
18
|
+
|
|
19
|
+
A surface can be intrinsic-heavy *and* extraneously-fine. That's a hard task done
|
|
20
|
+
right. A simple surface that still feels heavy is extraneous load disguised as
|
|
21
|
+
"complexity."
|
|
22
|
+
|
|
23
|
+
## Symptoms reviewers should flag
|
|
24
|
+
|
|
25
|
+
Treat each as a finding when present; classify by load type so the fix is obvious.
|
|
26
|
+
|
|
27
|
+
### Extraneous (reduce / remove)
|
|
28
|
+
- **Visual noise** that doesn't earn its place: redundant borders, shadows,
|
|
29
|
+
dividers, gratuitous icons next to every label, colour used decoratively.
|
|
30
|
+
- **Competing primary actions:** two or three buttons of equal weight when one
|
|
31
|
+
is clearly the next step.
|
|
32
|
+
- **Jargon and abbreviations** the user doesn't share: names from the codebase
|
|
33
|
+
or internal team that leaked into the UI.
|
|
34
|
+
- **Restated headings** (the body of a section repeats the section title in
|
|
35
|
+
long-form).
|
|
36
|
+
- **Decision paralysis:** too many options when one default + a "more options"
|
|
37
|
+
toggle would do.
|
|
38
|
+
- **Form fields without obvious priority:** required vs optional, primary vs
|
|
39
|
+
secondary mixed in a single column with no rhythm.
|
|
40
|
+
- **Premature error messaging** (validation that fires before the user has
|
|
41
|
+
finished typing).
|
|
42
|
+
|
|
43
|
+
### Intrinsic (structure, don't try to eliminate)
|
|
44
|
+
- **No progressive disclosure** on a genuinely complex task: every field
|
|
45
|
+
visible at once because "the user might need it".
|
|
46
|
+
- **No safe defaults** on multi-step flows: the user has to choose at every step
|
|
47
|
+
even when one path is the obvious answer.
|
|
48
|
+
- **Decisions grouped wrong:** "billing address" sandwiched between two
|
|
49
|
+
unrelated sections rather than next to "shipping address".
|
|
50
|
+
- **No scaffolding** (no template, no example input, no recently-used value)
|
|
51
|
+
for tasks that have a high blank-page cost.
|
|
52
|
+
|
|
53
|
+
### Germane (invest in)
|
|
54
|
+
- **Inconsistent vocabulary** across the feature: same concept named two ways
|
|
55
|
+
(e.g. "member" in one screen, "user" in the next).
|
|
56
|
+
- **Flow-shape divergence** from neighbouring features (modal where the project
|
|
57
|
+
uses inline; route-change where the project uses an overlay).
|
|
58
|
+
- **Affordances that look interactive but aren't** (and vice versa): destroys
|
|
59
|
+
the mental model the user is trying to build.
|
|
60
|
+
|
|
61
|
+
## Reviewing a flow: three-pass discipline
|
|
62
|
+
|
|
63
|
+
1. **First pass: silent.** Walk the flow without reading any explainer copy.
|
|
64
|
+
Anything that stops you cold without copy is a finding: either extraneous
|
|
65
|
+
load you can't dismiss, or a germane-load problem (the user is missing a
|
|
66
|
+
mental model the UI assumes).
|
|
67
|
+
2. **Second pass: with copy.** Read every label, helper, and error. Does the
|
|
68
|
+
copy resolve the friction the first pass surfaced, or just paper over it?
|
|
69
|
+
"Tooltip explaining a confusing button" is rarely the right fix: usually
|
|
70
|
+
the button needs a different label.
|
|
71
|
+
3. **Third pass: empty + error.** Run the flow with no data, partial data, and
|
|
72
|
+
the worst inputs (offline / 500 / permission-denied). Most cognitive-load
|
|
73
|
+
defects hide in non-happy paths because nobody designs them.
|
|
74
|
+
|
|
75
|
+
## The cheap-fix test
|
|
76
|
+
|
|
77
|
+
If a finding would take more than 30 minutes to fix, classify it (token gap /
|
|
78
|
+
component miss / flow misalignment per [`ui.md`](../../rite-polish/reference/ui.md)) and
|
|
79
|
+
route to the appropriate bucket. Cognitive-load review surfaces problems; it
|
|
80
|
+
doesn't decide the rewrite strategy.
|
|
81
|
+
|
|
82
|
+
## What this lens **doesn't** cover
|
|
83
|
+
|
|
84
|
+
- **Accessibility:** separate axis (WCAG 2.2; see
|
|
85
|
+
[`devrites-frontend-craft/reference/quality-standards.md`](../../devrites-frontend-craft/reference/quality-standards.md)).
|
|
86
|
+
- **Performance:** separate axis (Core Web Vitals; see
|
|
87
|
+
[`performance-checklist.md`](performance-checklist.md)).
|
|
88
|
+
- **Code quality:** covered by the simplification audit
|
|
89
|
+
(`devrites-audit simplify`).
|
|
90
|
+
- **Security:** covered by the security audit (`devrites-audit security`).
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Feature-scoped review
|
|
2
|
+
|
|
3
|
+
The review boundary is the **active feature**: the files in `touched-files.md` and the
|
|
4
|
+
current diff. This is a hard rule, not a guideline.
|
|
5
|
+
|
|
6
|
+
## In scope
|
|
7
|
+
- Code added/changed by this feature.
|
|
8
|
+
- Tests for this feature.
|
|
9
|
+
- Files this feature intentionally inspected and depends on (read for context, but
|
|
10
|
+
don't refactor them).
|
|
11
|
+
|
|
12
|
+
## Out of scope (do NOT)
|
|
13
|
+
- Refactor unrelated modules because they're "nearby" or "while we're here".
|
|
14
|
+
- Delete suspected dead code outside this feature without asking the user.
|
|
15
|
+
- Restyle/upgrade dependencies or change project-wide config to suit this feature.
|
|
16
|
+
- Expand the review into a project audit.
|
|
17
|
+
|
|
18
|
+
## When you spot a real problem outside scope
|
|
19
|
+
Record it as an **[FYI] follow-up** in `review.md` (and suggest a separate feature/issue).
|
|
20
|
+
Don't fix it inline. Drive-by changes balloon the diff, dodge their own review, and
|
|
21
|
+
mix concerns the seal can't cleanly evaluate.
|
|
22
|
+
|
|
23
|
+
## Why scope discipline matters
|
|
24
|
+
A tight diff gets a real review; a sprawling one gets a rubber stamp. Scope creep is how
|
|
25
|
+
"a small fix" becomes an unreviewable, unprovable change. Keep the feature shippable and
|
|
26
|
+
the review honest.
|