devrites 5.5.0 → 5.7.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 +12 -0
- package/README.md +8 -6
- package/engine/internal/devritespaths/paths.go +3 -0
- package/engine/internal/hostpack/hostpack.go +45 -6
- package/engine/internal/hostpack/hostpack_test.go +29 -13
- package/engine/internal/install/apply.go +14 -5
- package/engine/internal/install/install.go +8 -2
- package/engine/internal/install/install_test.go +12 -5
- package/engine/internal/install/merge.go +5 -0
- package/engine/internal/install/preflight.go +20 -2
- package/engine/internal/install/uninstall.go +5 -0
- package/engine/internal/install/update.go +1 -1
- package/install.sh +107 -38
- package/pack/.claude/skills/rite-define/SKILL.md +1 -1
- package/pack/.claude/skills/rite-handoff/SKILL.md +1 -1
- package/pack/.claude/skills/rite-plan/SKILL.md +1 -1
- package/pack/.claude/skills/rite-pressure-test/SKILL.md +1 -1
- package/pack/.claude/skills/rite-quick/SKILL.md +1 -1
- package/pack/.claude/skills/rite-status/SKILL.md +1 -1
- package/pack/.claude/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/README.md +5 -1
- package/pack/generated/claude/skills/rite-define/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-handoff/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-plan/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-quick/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-define/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-plan/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-quick/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-define/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-handoff/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-plan/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-pressure-test/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-quick/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-status/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-zoom-out/SKILL.md +1 -1
- package/pack/generated/pi/AGENTS.md +22 -0
- package/pack/generated/pi/agents/devrites-code-reviewer.md +142 -0
- package/pack/generated/pi/agents/devrites-devex-reviewer.md +124 -0
- package/pack/generated/pi/agents/devrites-doubt-reviewer.md +88 -0
- package/pack/generated/pi/agents/devrites-evidence-scout.md +72 -0
- package/pack/generated/pi/agents/devrites-frontend-reviewer.md +116 -0
- package/pack/generated/pi/agents/devrites-performance-reviewer.md +115 -0
- package/pack/generated/pi/agents/devrites-plan-drafter.md +99 -0
- package/pack/generated/pi/agents/devrites-plan-reviewer.md +142 -0
- package/pack/generated/pi/agents/devrites-proof-runner.md +74 -0
- package/pack/generated/pi/agents/devrites-retrospector.md +61 -0
- package/pack/generated/pi/agents/devrites-security-auditor.md +109 -0
- package/pack/generated/pi/agents/devrites-simplifier-reviewer.md +94 -0
- package/pack/generated/pi/agents/devrites-slice-wright.md +204 -0
- package/pack/generated/pi/agents/devrites-spec-reviewer.md +96 -0
- package/pack/generated/pi/agents/devrites-strategy-reviewer.md +100 -0
- package/pack/generated/pi/agents/devrites-test-analyst.md +94 -0
- package/pack/generated/pi/agents/devrites-upgrade-planner.md +89 -0
- package/pack/generated/pi/prompts/rite-adopt.md +5 -0
- package/pack/generated/pi/prompts/rite-autocomplete.md +5 -0
- package/pack/generated/pi/prompts/rite-build.md +5 -0
- package/pack/generated/pi/prompts/rite-clarify.md +5 -0
- package/pack/generated/pi/prompts/rite-converge.md +5 -0
- package/pack/generated/pi/prompts/rite-customize.md +5 -0
- package/pack/generated/pi/prompts/rite-define.md +5 -0
- package/pack/generated/pi/prompts/rite-doctor.md +5 -0
- package/pack/generated/pi/prompts/rite-dogfood.md +5 -0
- package/pack/generated/pi/prompts/rite-explain.md +5 -0
- package/pack/generated/pi/prompts/rite-frame.md +5 -0
- package/pack/generated/pi/prompts/rite-handoff.md +5 -0
- package/pack/generated/pi/prompts/rite-learn.md +5 -0
- package/pack/generated/pi/prompts/rite-plan.md +5 -0
- package/pack/generated/pi/prompts/rite-polish.md +5 -0
- package/pack/generated/pi/prompts/rite-pov.md +5 -0
- package/pack/generated/pi/prompts/rite-pr-feedback.md +5 -0
- package/pack/generated/pi/prompts/rite-pressure-test.md +5 -0
- package/pack/generated/pi/prompts/rite-prototype.md +5 -0
- package/pack/generated/pi/prompts/rite-prove.md +5 -0
- package/pack/generated/pi/prompts/rite-quick.md +5 -0
- package/pack/generated/pi/prompts/rite-resolve.md +5 -0
- package/pack/generated/pi/prompts/rite-review.md +5 -0
- package/pack/generated/pi/prompts/rite-seal.md +5 -0
- package/pack/generated/pi/prompts/rite-ship.md +5 -0
- package/pack/generated/pi/prompts/rite-spec.md +5 -0
- package/pack/generated/pi/prompts/rite-status.md +5 -0
- package/pack/generated/pi/prompts/rite-temper.md +5 -0
- package/pack/generated/pi/prompts/rite-upgrade.md +5 -0
- package/pack/generated/pi/prompts/rite-vet.md +5 -0
- package/pack/generated/pi/prompts/rite-watch-pr.md +5 -0
- package/pack/generated/pi/prompts/rite-zoom-out.md +5 -0
- package/pack/generated/pi/prompts/rite.md +5 -0
- package/pack/generated/pi/skills/devrites-api-interface/SKILL.md +63 -0
- package/pack/generated/pi/skills/devrites-audit/SKILL.md +50 -0
- package/pack/generated/pi/skills/devrites-browser-proof/SKILL.md +76 -0
- package/pack/generated/pi/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
- package/pack/generated/pi/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
- package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +96 -0
- package/pack/generated/pi/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
- package/pack/generated/pi/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -0
- package/pack/generated/pi/skills/devrites-debug-recovery/reference/hypotheses.md +17 -0
- package/pack/generated/pi/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
- package/pack/generated/pi/skills/devrites-debug-recovery/reference/regression-test.md +30 -0
- package/pack/generated/pi/skills/devrites-debug-recovery/reference/trace.md +25 -0
- package/pack/generated/pi/skills/devrites-doubt/SKILL.md +79 -0
- package/pack/generated/pi/skills/devrites-frontend-craft/SKILL.md +86 -0
- package/pack/generated/pi/skills/devrites-frontend-craft/reference/craft.md +63 -0
- package/pack/generated/pi/skills/devrites-frontend-craft/reference/design-references.md +116 -0
- package/pack/generated/pi/skills/devrites-frontend-craft/reference/fullstack.md +46 -0
- package/pack/generated/pi/skills/devrites-frontend-craft/reference/quality-standards.md +294 -0
- package/pack/generated/pi/skills/devrites-frontend-craft/reference/reuse-first.md +53 -0
- package/pack/generated/pi/skills/devrites-frontend-craft/reference/shape.md +56 -0
- package/pack/generated/pi/skills/devrites-interview/SKILL.md +102 -0
- package/pack/generated/pi/skills/devrites-lib/SKILL.md +58 -0
- package/pack/generated/pi/skills/devrites-lib/reference/candidate-integrity.md +42 -0
- package/pack/generated/pi/skills/devrites-lib/reference/intent-map.md +64 -0
- package/pack/generated/pi/skills/devrites-lib/reference/orchestration-profiles.md +27 -0
- package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +73 -0
- package/pack/generated/pi/skills/devrites-lib/reference/reply-contract.md +88 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/README.md +60 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +30 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +398 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +99 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/anti-patterns.md +48 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/browser-proof-checklist.md +24 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/ci-cd.md +50 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/code-navigation.md +43 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/code-review.md +108 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/coding-style.md +48 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/context-hygiene.md +109 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +167 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/data-integrity.md +118 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/debug-recovery.md +28 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/definition-of-done.md +19 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/deprecation.md +31 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/developer-experience.md +119 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/development-workflow.md +29 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/documentation.md +43 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/edge-case-trace.md +92 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/elicitation.md +85 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/error-handling.md +47 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/git-workflow.md +49 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/hooks.md +25 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/integration-reliability.md +102 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/loop-operations.md +85 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/observability.md +88 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/one-shot-actions.md +97 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/patterns.md +68 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/performance.md +51 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/principles.md +42 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/prose-style.md +123 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/release/ship-checklist.md +8 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/repository-topology.md +80 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/review-checklist.md +12 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/security-checklist.md +25 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/security.md +202 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/skill-authoring.md +209 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/spec-grammar.md +197 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/test-proof-checklist.md +13 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/testing.md +212 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/tooling.md +92 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/workflow-artifacts.md +427 -0
- package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/code.md +44 -0
- package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/comparison.md +42 -0
- package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/diagram.md +51 -0
- package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/index.md +66 -0
- package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/input.md +46 -0
- package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/outline-template.md +106 -0
- package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/plan.md +48 -0
- package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/slides.md +40 -0
- package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/table.md +42 -0
- package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +267 -0
- package/pack/generated/pi/skills/devrites-prose-craft/SKILL.md +73 -0
- package/pack/generated/pi/skills/devrites-prose-craft/reference/banned-phrases.md +132 -0
- package/pack/generated/pi/skills/devrites-prose-craft/reference/examples.md +131 -0
- package/pack/generated/pi/skills/devrites-prose-craft/reference/structures.md +196 -0
- package/pack/generated/pi/skills/devrites-source-driven/SKILL.md +52 -0
- package/pack/generated/pi/skills/devrites-ux-shape/SKILL.md +134 -0
- package/pack/generated/pi/skills/devrites-ux-shape/reference/brief-template.md +108 -0
- package/pack/generated/pi/skills/devrites-ux-shape/reference/visual-direction-probe.md +48 -0
- package/pack/generated/pi/skills/rite/SKILL.md +148 -0
- package/pack/generated/pi/skills/rite/reference/menu.md +48 -0
- package/pack/generated/pi/skills/rite-adopt/SKILL.md +52 -0
- package/pack/generated/pi/skills/rite-adopt/reference/adoption.md +19 -0
- package/pack/generated/pi/skills/rite-adopt/reference/anti-patterns.md +19 -0
- package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +132 -0
- package/pack/generated/pi/skills/rite-autocomplete/reference/decision-policy.md +41 -0
- package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +148 -0
- package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +92 -0
- package/pack/generated/pi/skills/rite-build/SKILL.md +96 -0
- package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +145 -0
- package/pack/generated/pi/skills/rite-build/reference/anti-patterns.md +23 -0
- package/pack/generated/pi/skills/rite-build/reference/checkpoint-protocol.md +120 -0
- package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +44 -0
- package/pack/generated/pi/skills/rite-build/reference/frontend-trigger.md +39 -0
- package/pack/generated/pi/skills/rite-build/reference/one-slice-cycle.md +50 -0
- package/pack/generated/pi/skills/rite-build/reference/output.md +33 -0
- package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +205 -0
- package/pack/generated/pi/skills/rite-build/reference/phase-contract.md +87 -0
- package/pack/generated/pi/skills/rite-build/reference/spec-drift-guard.md +84 -0
- package/pack/generated/pi/skills/rite-build/reference/tdd.md +27 -0
- package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +89 -0
- package/pack/generated/pi/skills/rite-clarify/SKILL.md +99 -0
- package/pack/generated/pi/skills/rite-clarify/reference/anti-patterns.md +24 -0
- package/pack/generated/pi/skills/rite-clarify/reference/decision-coverage.md +55 -0
- package/pack/generated/pi/skills/rite-converge/SKILL.md +145 -0
- package/pack/generated/pi/skills/rite-converge/reference/anti-patterns.md +35 -0
- package/pack/generated/pi/skills/rite-converge/reference/convergence-assessment.md +65 -0
- package/pack/generated/pi/skills/rite-customize/SKILL.md +60 -0
- package/pack/generated/pi/skills/rite-define/SKILL.md +169 -0
- package/pack/generated/pi/skills/rite-define/reference/anti-patterns.md +26 -0
- package/pack/generated/pi/skills/rite-define/reference/gates.md +154 -0
- package/pack/generated/pi/skills/rite-define/reference/plan-template.md +149 -0
- package/pack/generated/pi/skills/rite-doctor/SKILL.md +69 -0
- package/pack/generated/pi/skills/rite-dogfood/SKILL.md +55 -0
- package/pack/generated/pi/skills/rite-explain/SKILL.md +152 -0
- package/pack/generated/pi/skills/rite-explain/reference/intake.md +89 -0
- package/pack/generated/pi/skills/rite-frame/SKILL.md +115 -0
- package/pack/generated/pi/skills/rite-frame/reference/failure-modes.md +66 -0
- package/pack/generated/pi/skills/rite-handoff/SKILL.md +97 -0
- package/pack/generated/pi/skills/rite-handoff/reference/handoff-template.md +44 -0
- package/pack/generated/pi/skills/rite-learn/SKILL.md +72 -0
- package/pack/generated/pi/skills/rite-plan/SKILL.md +186 -0
- package/pack/generated/pi/skills/rite-plan/reference/anti-patterns.md +34 -0
- package/pack/generated/pi/skills/rite-plan/reference/dependency-graph.md +48 -0
- package/pack/generated/pi/skills/rite-plan/reference/replan-and-repair.md +105 -0
- package/pack/generated/pi/skills/rite-plan/reference/slicing.md +167 -0
- package/pack/generated/pi/skills/rite-plan/reference/task-breakdown.md +42 -0
- package/pack/generated/pi/skills/rite-polish/SKILL.md +104 -0
- package/pack/generated/pi/skills/rite-polish/reference/adr-promotion.md +11 -0
- package/pack/generated/pi/skills/rite-polish/reference/anti-ai-slop.md +187 -0
- package/pack/generated/pi/skills/rite-polish/reference/anti-patterns.md +30 -0
- package/pack/generated/pi/skills/rite-polish/reference/backend-polish.md +80 -0
- package/pack/generated/pi/skills/rite-polish/reference/browser-polish-evidence.md +33 -0
- package/pack/generated/pi/skills/rite-polish/reference/code.md +82 -0
- package/pack/generated/pi/skills/rite-polish/reference/design-memory.md +117 -0
- package/pack/generated/pi/skills/rite-polish/reference/design-system-discovery.md +8 -0
- package/pack/generated/pi/skills/rite-polish/reference/harden-checklist.md +109 -0
- package/pack/generated/pi/skills/rite-polish/reference/ledger.md +65 -0
- package/pack/generated/pi/skills/rite-polish/reference/ui.md +137 -0
- package/pack/generated/pi/skills/rite-pov/SKILL.md +58 -0
- package/pack/generated/pi/skills/rite-pr-feedback/SKILL.md +54 -0
- package/pack/generated/pi/skills/rite-pressure-test/SKILL.md +67 -0
- package/pack/generated/pi/skills/rite-prototype/SKILL.md +104 -0
- package/pack/generated/pi/skills/rite-prove/SKILL.md +120 -0
- package/pack/generated/pi/skills/rite-prove/reference/acceptance-proof.md +88 -0
- package/pack/generated/pi/skills/rite-prove/reference/anti-patterns.md +25 -0
- package/pack/generated/pi/skills/rite-prove/reference/browser-proof.md +51 -0
- package/pack/generated/pi/skills/rite-prove/reference/failure-triage.md +43 -0
- package/pack/generated/pi/skills/rite-prove/reference/proof-ladder.md +28 -0
- package/pack/generated/pi/skills/rite-prove/reference/test-command-discovery.md +30 -0
- package/pack/generated/pi/skills/rite-quick/SKILL.md +82 -0
- package/pack/generated/pi/skills/rite-resolve/SKILL.md +95 -0
- package/pack/generated/pi/skills/rite-resolve/reference/answer-protocol.md +118 -0
- package/pack/generated/pi/skills/rite-review/SKILL.md +170 -0
- package/pack/generated/pi/skills/rite-review/reference/anti-patterns.md +32 -0
- package/pack/generated/pi/skills/rite-review/reference/cognitive-load.md +90 -0
- package/pack/generated/pi/skills/rite-review/reference/feature-scoped-review.md +26 -0
- package/pack/generated/pi/skills/rite-review/reference/five-axis-review.md +66 -0
- package/pack/generated/pi/skills/rite-review/reference/nielsen-heuristics.md +126 -0
- package/pack/generated/pi/skills/rite-review/reference/performance-checklist.md +80 -0
- package/pack/generated/pi/skills/rite-review/reference/performance-review.md +14 -0
- package/pack/generated/pi/skills/rite-review/reference/security-review.md +42 -0
- package/pack/generated/pi/skills/rite-seal/SKILL.md +75 -0
- package/pack/generated/pi/skills/rite-seal/reference/anti-patterns.md +29 -0
- package/pack/generated/pi/skills/rite-seal/reference/final-evidence.md +41 -0
- package/pack/generated/pi/skills/rite-seal/reference/go-no-go.md +29 -0
- package/pack/generated/pi/skills/rite-seal/reference/output.md +5 -0
- package/pack/generated/pi/skills/rite-seal/reference/phase-contract.md +47 -0
- package/pack/generated/pi/skills/rite-seal/reference/risk-and-rollback.md +56 -0
- package/pack/generated/pi/skills/rite-seal/reference/seal-template.md +27 -0
- package/pack/generated/pi/skills/rite-ship/SKILL.md +88 -0
- package/pack/generated/pi/skills/rite-ship/reference/anti-patterns.md +28 -0
- package/pack/generated/pi/skills/rite-ship/reference/close-out.md +68 -0
- package/pack/generated/pi/skills/rite-ship/reference/git-ship.md +120 -0
- package/pack/generated/pi/skills/rite-ship/reference/rollout.md +62 -0
- package/pack/generated/pi/skills/rite-ship/reference/ship-template.md +39 -0
- package/pack/generated/pi/skills/rite-spec/SKILL.md +150 -0
- package/pack/generated/pi/skills/rite-spec/reference/acceptance-criteria.md +31 -0
- package/pack/generated/pi/skills/rite-spec/reference/ai-spec-template.md +40 -0
- package/pack/generated/pi/skills/rite-spec/reference/anti-patterns.md +27 -0
- package/pack/generated/pi/skills/rite-spec/reference/interview-patterns.md +56 -0
- package/pack/generated/pi/skills/rite-spec/reference/investigation.md +83 -0
- package/pack/generated/pi/skills/rite-spec/reference/question-protocol.md +36 -0
- package/pack/generated/pi/skills/rite-spec/reference/references-intake.md +62 -0
- package/pack/generated/pi/skills/rite-spec/reference/spec-checklists.md +89 -0
- package/pack/generated/pi/skills/rite-spec/reference/spec-template.md +154 -0
- package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +227 -0
- package/pack/generated/pi/skills/rite-status/SKILL.md +57 -0
- package/pack/generated/pi/skills/rite-temper/SKILL.md +130 -0
- package/pack/generated/pi/skills/rite-temper/reference/anti-patterns.md +30 -0
- package/pack/generated/pi/skills/rite-temper/reference/review-dimensions.md +66 -0
- package/pack/generated/pi/skills/rite-temper/reference/scope-modes.md +53 -0
- package/pack/generated/pi/skills/rite-temper/reference/significance.md +46 -0
- package/pack/generated/pi/skills/rite-temper/reference/strategy-template.md +90 -0
- package/pack/generated/pi/skills/rite-upgrade/SKILL.md +121 -0
- package/pack/generated/pi/skills/rite-vet/SKILL.md +193 -0
- package/pack/generated/pi/skills/rite-vet/reference/anti-patterns.md +43 -0
- package/pack/generated/pi/skills/rite-vet/reference/artifacts.md +202 -0
- package/pack/generated/pi/skills/rite-vet/reference/cross-model.md +19 -0
- package/pack/generated/pi/skills/rite-vet/reference/depth.md +59 -0
- package/pack/generated/pi/skills/rite-vet/reference/eng-lenses.md +48 -0
- package/pack/generated/pi/skills/rite-vet/reference/review-axes.md +201 -0
- package/pack/generated/pi/skills/rite-watch-pr/SKILL.md +85 -0
- package/pack/generated/pi/skills/rite-zoom-out/SKILL.md +69 -0
- package/package.json +3 -2
- package/scripts/build-host-artifacts.sh +100 -37
- package/scripts/pi-generate.sh +198 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-prove
|
|
3
|
+
description: Prove a completed feature with tests and the full test suite, build/typecheck/lint, end-to-end/browser evidence, screenshots, commands, and outputs for seal. Not for single-slice proof.
|
|
4
|
+
argument-hint: "[feature-slug]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /rite-prove: prove the completed feature
|
|
9
|
+
|
|
10
|
+
Prove the assembled feature once. No workspace: use `/verify` or `/run`;
|
|
11
|
+
pending tasks: stop for `/rite-build`.
|
|
12
|
+
Never assert unobserved passes. After Polish/Review edits, repeat affected
|
|
13
|
+
criteria/dependencies and bind under
|
|
14
|
+
[evidence validity](../devrites-lib/reference/candidate-integrity.md#evidence-validity).
|
|
15
|
+
Initial full feature proof and required mutable observations still run.
|
|
16
|
+
|
|
17
|
+
## Rules
|
|
18
|
+
|
|
19
|
+
Read the applicable standards: `testing.md`, `test-proof-checklist.md`,
|
|
20
|
+
`browser-proof-checklist.md` for UI, `spec-grammar.md`, `performance.md`,
|
|
21
|
+
`observability.md`, topology/data/integration rules named by the plan,
|
|
22
|
+
`developer-experience.md`, `definition-of-done.md`, `one-shot-actions.md`, and
|
|
23
|
+
`workflow-artifacts.md`. Developer surfaces require an observed flow, measured
|
|
24
|
+
TTHW, and exact signal-bearing errors; never assert DX.
|
|
25
|
+
|
|
26
|
+
- Each claim needs an executed positive, discriminating assertion and decisive
|
|
27
|
+
signal; green commands alone are unproven.
|
|
28
|
+
- Follow [`candidate-integrity.md`](../devrites-lib/reference/candidate-integrity.md). Prove owns proof binding, not candidate
|
|
29
|
+
grammar/hashing. Spec Drift Guard owns revealed contract drift.
|
|
30
|
+
- Root runs vetted gates/browser and records immutable evidence; proof runner
|
|
31
|
+
validates it. Only the bounded wright fixes product source/tests.
|
|
32
|
+
- **Prove remains the controlling caller** during technical backtracking. Save
|
|
33
|
+
its cursor; run Plan repair, Recovery Vet, remediation, and re-proof inline;
|
|
34
|
+
consume nested boundaries; resume the failed rung. Recovery exhausts after
|
|
35
|
+
three no-progress attempts on the exact same fingerprint. Closing one or exposing a distinct
|
|
36
|
+
Critical/Important invariant is progress, not a reason to hand work off.
|
|
37
|
+
<!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"Prove consumes installed Workflow Artifact or CLEANED rerun","action":"VERIFY_EXISTING or admitted proof path ending PROVE_AND_RETURN","return":"saved Prove cursor; stop before real action"} -->
|
|
38
|
+
## Released-workspace refresh
|
|
39
|
+
|
|
40
|
+
Only an admitted `/rite-upgrade` assessment proving a released-format candidate
|
|
41
|
+
defect enters. Require legacy touched-file scope, live diff, tasks, and traceability agree unambiguously
|
|
42
|
+
on every candidate path/state. Missing or
|
|
43
|
+
ambiguous scope stops; never guess from Git. Preserve unrelated manifest content
|
|
44
|
+
and refresh only the strict manifest from observed bytes.
|
|
45
|
+
|
|
46
|
+
Discard old passes. Run all current approved real proof from scratch. Establish
|
|
47
|
+
pre-proof and post-proof engine digest with `devrites-engine check candidate
|
|
48
|
+
<slug>` and require equality, then write one fresh exact binding in evidence and
|
|
49
|
+
browser evidence. Current failure blocks; Upgrade does not authorize source or
|
|
50
|
+
test changes.
|
|
51
|
+
|
|
52
|
+
## Workflow
|
|
53
|
+
|
|
54
|
+
1. **Orient.** Read core, resolve active slug, require `state.md`, and read its
|
|
55
|
+
cursor. On blocked Prove cold resume, reconcile retained consumptive evidence
|
|
56
|
+
and no-progress corrections before accepting terminal none; a distinct
|
|
57
|
+
fingerprint below cap resumes offline triage without another real action.
|
|
58
|
+
2. **Freeze scope.** Read spec, tasks, state, test plan, and full diff. Require
|
|
59
|
+
every slice built. Missing `test-plan.md` returns to Vet inline (Prove stays the controlling
|
|
60
|
+
caller) and resumes here; it never authorizes ad hoc proof.
|
|
61
|
+
3. **Approve commands.** If absent, use
|
|
62
|
+
[test-command-discovery](reference/test-command-discovery.md) over repository
|
|
63
|
+
manifests/CI. Discovery is evidence only: `test-plan.md` is the sole approved runtime
|
|
64
|
+
command list. A newly found command must return to the current Vet contract,
|
|
65
|
+
refresh readiness, then resume without user handoff.
|
|
66
|
+
4. **Execute a frozen candidate.** Run `devrites-engine check candidate <slug>` and retain its digest.
|
|
67
|
+
The root runs only commands declared by `test-plan.md`, with exact approved
|
|
68
|
+
command, cwd, prerequisites, exit, and sanitized
|
|
69
|
+
decisive output. Run relevant suite plus build/typecheck/lint. Recheck the
|
|
70
|
+
candidate and require identical digest/no source mutation. Reject substituted
|
|
71
|
+
commands, malformed manifests, zero-test/skipped/filtered behavioral claims,
|
|
72
|
+
exit-status-only claims, and source drift. Static gates prove only their named
|
|
73
|
+
static criterion.
|
|
74
|
+
5. **Gate consumptive actions.** Immediately before execution, apply
|
|
75
|
+
`one-shot-actions.md`: current retained identity, bounds/sanitization,
|
|
76
|
+
injective boundary map, per-seam fault fixtures, collision mutant, terminal
|
|
77
|
+
fixtures, and cleanup-survival proof must be green. Missing/stale/disposable-
|
|
78
|
+
only evidence returns to Vet without spending an attempt. Record the admitted artifact identity before execution.
|
|
79
|
+
After failure, retained evidence is the
|
|
80
|
+
reproduction; never rerun for diagnosis. Spent authorization blocks another
|
|
81
|
+
action, but when action budget is zero it does not exhaust a newly identified
|
|
82
|
+
offline fingerprint.
|
|
83
|
+
6. **Prove UI when applicable.** Use design brief/references, browser harness,
|
|
84
|
+
allowed scratch path, [proof ladder](reference/proof-ladder.md), and
|
|
85
|
+
[browser proof](reference/browser-proof.md): routes, viewports, opened and
|
|
86
|
+
described screenshots, console/network, interaction, target comparisons, and
|
|
87
|
+
every required state. Material mismatch fails.
|
|
88
|
+
7. **Independent validation.** Fresh read-only `devrites-proof-runner` and
|
|
89
|
+
`devrites-spec-reviewer` judge the same candidate/commands/evidence/acceptance map.
|
|
90
|
+
Neither runs commands; reject missing/stale, invented-ID, label-only or self-attested reports.
|
|
91
|
+
8. **Map proof.** Reconcile verdicts under [acceptance-proof.md](reference/acceptance-proof.md).
|
|
92
|
+
Every criterion/scenario/interaction/key link needs discriminating evidence or a
|
|
93
|
+
blocker, including critical-path, observability, developer and wiring branches.
|
|
94
|
+
9. **Recover red.** Use [failure triage](reference/failure-triage.md) and Debug
|
|
95
|
+
Recovery. Reconcile reproduction; send accepted in-scope source/test correction
|
|
96
|
+
to the sole wright; update actual manifest; rerun affected proof, both candidate
|
|
97
|
+
checks, and fresh proof runner. Recheck affected acceptance with the exact spec
|
|
98
|
+
reviewer; reconcile both validators under evidence validity. Scope growth blocks.
|
|
99
|
+
|
|
100
|
+
Agent-owned durable-plan errors run Spec Drift Guard, Plan, and Vet inline,
|
|
101
|
+
preserving Prove as origin. Consumptive failures use retained fixtures, repair,
|
|
102
|
+
and Vet, then stop for fresh GO after changed conditions. Ambiguous retained
|
|
103
|
+
evidence does not prove that no safe future acquisition design exists: treat
|
|
104
|
+
an in-scope discriminator as diagnostic-amplification Plan gap, repair its
|
|
105
|
+
finite map/collision proof, narrow-Vet, then seek fresh GO before one evidence
|
|
106
|
+
attempt. Never guess the runtime fix or reuse old GO.
|
|
107
|
+
10. **Record.** Root updates `evidence.md`, optional `browser-evidence.md`,
|
|
108
|
+
traceability, and state, with exactly one observed candidate binding.
|
|
109
|
+
|
|
110
|
+
> Do not claim an unobserved pass, skip browser proof, or proceed with pending
|
|
111
|
+
> slices. Load `reference/anti-patterns.md` when tempted to do so.
|
|
112
|
+
|
|
113
|
+
## Phase exit
|
|
114
|
+
|
|
115
|
+
**Complete when:** every criterion in `acceptance-proof.md` has discriminating
|
|
116
|
+
evidence bound to the current candidate digest, both independent validators admit
|
|
117
|
+
accounts, and `state.md` records Prove complete with no open `cannot_verify` rows.
|
|
118
|
+
|
|
119
|
+
**Failing case:** narrative "all tests passed" without `evidence.md` binding and
|
|
120
|
+
proof-runner admission → phase not complete; Seal blocks.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Acceptance proof
|
|
2
|
+
|
|
3
|
+
Map each `spec.md` criterion to `test | command | browser | judgment` evidence
|
|
4
|
+
and one-line reason. Run `spec-grammar.md`'s Native grammar re-read on the saved
|
|
5
|
+
spec before mapping; reopen after corrections. No parser/script may replace it.
|
|
6
|
+
|
|
7
|
+
Every structured WHEN/THEN scenario needs a passing asserting test. When
|
|
8
|
+
`test-plan.md` exists, every acceptance/gap requirement, interactive element, and
|
|
9
|
+
user flow needs a passing result. Missing coverage blocks.
|
|
10
|
+
|
|
11
|
+
Apply [`testing.md`'s positive, discriminating proof](../../devrites-lib/reference/standards/testing.md#positive-discriminating-proof),
|
|
12
|
+
including invalid-result exclusions and static/textual criterion boundaries.
|
|
13
|
+
Unsupported behavioral claims are `cannot_verify` and block proof.
|
|
14
|
+
|
|
15
|
+
## Silent-failure probe
|
|
16
|
+
|
|
17
|
+
When tests pass but error paths, dropped results, or partial success could hide
|
|
18
|
+
failure, require at least one **discriminating** check that would fail if the silent
|
|
19
|
+
path regressed (assert the failure surface, not only the happy path).
|
|
20
|
+
|
|
21
|
+
**Failing case:** handler returns success while logging or swallowing internally; the
|
|
22
|
+
suite stays green → map `cannot_verify` unless a test asserts the user-visible or
|
|
23
|
+
contract failure outcome.
|
|
24
|
+
|
|
25
|
+
## Backstop disposition
|
|
26
|
+
|
|
27
|
+
A `backstop` passes only on its spec-named independent held-out,
|
|
28
|
+
property/metamorphic, or direct behavioral check plus discriminating observed
|
|
29
|
+
output. Presence, test names without results, author judgment, or an expectation
|
|
30
|
+
copied from the same implementation logic fails.
|
|
31
|
+
|
|
32
|
+
Undefined/unavailable signal: `cannot_verify`, evidence
|
|
33
|
+
`insufficient_spec: <missing fact or evidence surface>`, then Spec Drift; never
|
|
34
|
+
judgment or pass.
|
|
35
|
+
|
|
36
|
+
## Applicable system-risk proof
|
|
37
|
+
|
|
38
|
+
Reconcile `spec.md`'s applicability map with the final diff. For each triggered owner:
|
|
39
|
+
|
|
40
|
+
- `repository-topology.md`: prove commands ran at every affected root and both provider
|
|
41
|
+
and consumer used the same canonical contract; identify generated/vendor sources.
|
|
42
|
+
- `data-integrity.md`: prove declared invariants plus relevant duplicate/retry,
|
|
43
|
+
concurrency, interruption/resume, old/new coexistence, tenant isolation, and
|
|
44
|
+
rollback/forward-recovery cases with recorded scale/counts.
|
|
45
|
+
- `integration-reliability.md`: prove relevant invalid/partial response, auth failure,
|
|
46
|
+
timeout/unknown outcome, rate limit/outage, duplicate/order, poison/backlog, cache/partition,
|
|
47
|
+
degradation, and recovery behavior.
|
|
48
|
+
|
|
49
|
+
An evidence-backed dismissal is valid for an irrelevant case. An applicable case with no
|
|
50
|
+
executable proof surface is `cannot_verify`; do not infer it from an implementation review
|
|
51
|
+
or a mock that cannot produce the risk.
|
|
52
|
+
|
|
53
|
+
## Critical-path assertion strength
|
|
54
|
+
|
|
55
|
+
For regression-Critical, irreversible, and data-loss paths, require
|
|
56
|
+
[`testing.md`'s safe perturbation](../../devrites-lib/reference/standards/testing.md#safe-perturbation).
|
|
57
|
+
Missing evidence is `cannot_verify`; a green test on broken code is unproven.
|
|
58
|
+
Pure transforms also get a round-trip or
|
|
59
|
+
metamorphic property check when applicable.
|
|
60
|
+
|
|
61
|
+
## Runtime observability branch
|
|
62
|
+
|
|
63
|
+
For endpoints, jobs, consumers, integrations, user flows, or new error paths,
|
|
64
|
+
trigger failure and observe the required log/metric/trace per `observability.md`;
|
|
65
|
+
record it. Skip pure internal, docs, config, and type-only changes.
|
|
66
|
+
|
|
67
|
+
## Developer-facing branch
|
|
68
|
+
|
|
69
|
+
For public API/CLI/SDK/webhook/config/error/onboarding, execute the real entry on
|
|
70
|
+
clean state, measure time-to-hello-world, and capture verbatim failure output.
|
|
71
|
+
Browser-capture docs/quickstarts when applicable. Write the scorecard to
|
|
72
|
+
`devex.md` and headline evidence to `evidence.md`.
|
|
73
|
+
|
|
74
|
+
## Wiring branch
|
|
75
|
+
|
|
76
|
+
Exercise/follow every key `plan.md` link in the assembled feature; record each as
|
|
77
|
+
`EVID-###`, or record none declared. An unwired link blocks.
|
|
78
|
+
|
|
79
|
+
For every critical link, apply safe perturbation to the load-bearing input/link and observe the
|
|
80
|
+
promised surface fail. Existence/registration/spy-call evidence is insufficient when a
|
|
81
|
+
different path can coincidentally produce the expected result.
|
|
82
|
+
|
|
83
|
+
## Baseline and environment claims
|
|
84
|
+
|
|
85
|
+
Classify a failure as pre-existing or environment-specific only with a dated
|
|
86
|
+
before-candidate result for the same command, working directory, prerequisites, and
|
|
87
|
+
material environment. Otherwise record it as an unresolved candidate result. For time/local
|
|
88
|
+
behavior, bind the instant, time zone, locale, and relevant old/new configuration.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# rite-prove: anti-patterns
|
|
2
|
+
|
|
3
|
+
Load this when standing a non-trivial proof decision, or when tempted to
|
|
4
|
+
report a pass you didn't observe, skip a rung of the browser-proof ladder,
|
|
5
|
+
or proceed without all slices built.
|
|
6
|
+
|
|
7
|
+
Pack-wide rationalizations + red flags (incl. observed-but-not-recorded):
|
|
8
|
+
see [standards/anti-patterns.md](../../devrites-lib/reference/standards/anti-patterns.md).
|
|
9
|
+
|
|
10
|
+
## Phase-specific rationalizations
|
|
11
|
+
|
|
12
|
+
| Excuse | Rebuttal |
|
|
13
|
+
|---|---|
|
|
14
|
+
| "Tests passed during build; that's enough." | Build = per-slice sanity check. Prove = whole-feature suite + build/typecheck/lint + browser. |
|
|
15
|
+
| "Browser proof is overkill for this UI change." | If it's UI and a browser can run, the ladder applies. If you can't, document which rung and why. |
|
|
16
|
+
| "Failure is in pre-existing code, not in this feature." | Still surfaces as a blocker. Feature scope = fix in scope or record + halt. |
|
|
17
|
+
| "Some slices are still pending but the rest can be proved." | No: `/rite-prove` runs once, when every slice is built. Otherwise you're proving a partial system. |
|
|
18
|
+
|
|
19
|
+
## Red Flags
|
|
20
|
+
|
|
21
|
+
- Reporting "pass" for a command you didn't run.
|
|
22
|
+
- Skipping browser-proof rungs 1-3 because rung 4 (project E2E) was easier.
|
|
23
|
+
- An acceptance criterion left "unproven" without a corresponding blocker note.
|
|
24
|
+
- Tests recorded green but the diff shows the test file wasn't touched (stale run).
|
|
25
|
+
- About to write `evidence.md` without command + output.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Browser proof: evidence schema
|
|
2
|
+
|
|
3
|
+
What `browser-evidence.md` must capture for a UI slice. Delegates to
|
|
4
|
+
`devrites-browser-proof`; this is the record contract.
|
|
5
|
+
|
|
6
|
+
```markdown
|
|
7
|
+
# Browser Evidence
|
|
8
|
+
|
|
9
|
+
## Browser evidence
|
|
10
|
+
| Evidence ID | Route | State/input | Viewport | Compared with | Tooling | Result | Related IDs | Limitation |
|
|
11
|
+
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
12
|
+
| EVID-003 | <route> | empty/keyboard | 375 | brief Proof targets + target reference 1 | playwright-mcp | <observed result> | AC-002, SLICE-002 | <none / exact gap> |
|
|
13
|
+
|
|
14
|
+
## Visual Verdict
|
|
15
|
+
| State | Result | Notes |
|
|
16
|
+
| --- | --- | --- |
|
|
17
|
+
| default | PASS / FAIL | <what is visible> |
|
|
18
|
+
| loading | PASS / FAIL | <what is visible> |
|
|
19
|
+
| error | PASS / FAIL | <what is visible> |
|
|
20
|
+
|
|
21
|
+
## Comparison deltas
|
|
22
|
+
| State / viewport | Target | Material delta observed | Disposition | Result |
|
|
23
|
+
| --- | --- | --- | --- | --- |
|
|
24
|
+
| empty / 375 | design-brief.md + R1 | <hierarchy/layout/spacing/type/behavior difference> | fixed + re-rendered / accepted with reason | PASS / FAIL |
|
|
25
|
+
|
|
26
|
+
## Run notes
|
|
27
|
+
- Screenshots: <path(s)> — opened and described above.
|
|
28
|
+
- Console: <errors/warnings, or "clean">.
|
|
29
|
+
- Network: <failures, or "no failures">.
|
|
30
|
+
- Interaction path: <clicks/inputs performed and result>.
|
|
31
|
+
- Accessibility: <focus order / labels / contrast spot-check>.
|
|
32
|
+
- Responsive: <what changed across viewports; any breakage>.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Rules
|
|
36
|
+
- Open every screenshot path and describe it: never assert from the filename.
|
|
37
|
+
- Read `design-brief.md` + `references.md` first. Compare fidelity only with references
|
|
38
|
+
classified **target**; check constraints as rules and never pixel-match inspiration.
|
|
39
|
+
- Render every proof target named by the brief/slice using the canonical viewport
|
|
40
|
+
set and state coverage in [quality-standards.md](../../devrites-frontend-craft/reference/quality-standards.md).
|
|
41
|
+
Apply [capture admissibility](../../devrites-lib/reference/standards/browser-proof-checklist.md)
|
|
42
|
+
before assigning a visual verdict; invalid captures leave proof `cannot_verify`.
|
|
43
|
+
- Compare structure before decoration: hierarchy/layout → responsive/state behavior →
|
|
44
|
+
type/spacing/color → polish. Record each material delta, fix it, and re-render. A visual
|
|
45
|
+
PASS requires zero unresolved material deltas; an accepted departure needs its reason in
|
|
46
|
+
the design brief's build-time refinements.
|
|
47
|
+
- A clean console + no layout shift are part of the evidence, not extras.
|
|
48
|
+
- If no browser can run, write the manual verification steps a human would follow and
|
|
49
|
+
mark the slice's browser proof as **pending (manual)**.
|
|
50
|
+
- Every browser evidence row uses `EVID-###` and names the related `AC-###` and
|
|
51
|
+
`SLICE-###`; `/rite-prove` mirrors the evidence ID in `traceability.md`.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Failure triage
|
|
2
|
+
|
|
3
|
+
When a test/build/runtime/browser check fails, triage before fixing. Delegates the deep
|
|
4
|
+
loop to `devrites-debug-recovery`.
|
|
5
|
+
|
|
6
|
+
## Triage ladder
|
|
7
|
+
1. **Reproduce:** for a repeatable command, run it again and capture the exact
|
|
8
|
+
error (quote it). For a consumptive action under
|
|
9
|
+
[`one-shot-actions.md`](../../devrites-lib/reference/standards/one-shot-actions.md),
|
|
10
|
+
never rerun it: use the retained bounded artifact as the reproduction input.
|
|
11
|
+
2. **Classify** the failure:
|
|
12
|
+
- test is right, code is wrong → fix the code (in scope).
|
|
13
|
+
- test is wrong/outdated → that may be **spec drift** (acceptance criteria wrong).
|
|
14
|
+
- environment/setup (missing dep, wrong node/ruby) → fix it when agent-owned;
|
|
15
|
+
record a blocker only for human/access ownership, scope overflow, or exhausted
|
|
16
|
+
fingerprint recovery.
|
|
17
|
+
- flaky (passes on re-run, timing/order) → note it; don't paper over with retries.
|
|
18
|
+
- external dependency down → record blocker; don't fake the result.
|
|
19
|
+
3. **Isolate:** minimize to the smallest failing case; bisect the diff if needed.
|
|
20
|
+
If consumptive evidence maps to multiple causal seams, this is a
|
|
21
|
+
diagnostic-amplification plan gap: design and Vet an injective boundary
|
|
22
|
+
discriminator offline instead of guessing a runtime correction or declaring
|
|
23
|
+
the cleaned-away past state terminal.
|
|
24
|
+
4. **Fix within scope:** the current slice/feature only. If the fix reaches outside
|
|
25
|
+
scope, stop and record a blocker in `state.md` (then `/rite-plan unblock`).
|
|
26
|
+
5. **Re-run** the same command when it is repeatable; confirm green and record both
|
|
27
|
+
attempts in `evidence.md`. A consumptive action needs re-vetted evidence
|
|
28
|
+
completeness and any fresh authorization before a new attempt. Its spent
|
|
29
|
+
action authorization does not stop offline recovery: a retained new fingerprint
|
|
30
|
+
enters caller-owned diagnosis, correction, fixtures, and narrow Vet immediately.
|
|
31
|
+
A separately authorized diagnostic-amplification attempt may acquire the missing
|
|
32
|
+
discriminator after its evidence design passes Vet; it is not a blind rerun.
|
|
33
|
+
|
|
34
|
+
## Rules
|
|
35
|
+
- Quote the real error text; don't paraphrase it away.
|
|
36
|
+
- Don't loosen/delete a failing assertion to get green: investigate whether it's drift.
|
|
37
|
+
- Don't add blanket retries/sleeps to hide flakiness.
|
|
38
|
+
- Three no-progress attempts on the exact same causal fingerprint consume the
|
|
39
|
+
shared recovery cap. A recheck that closes the reproduction is progress; a
|
|
40
|
+
different evidenced Critical/Important invariant gets its own fingerprint.
|
|
41
|
+
Preserve the reproduction and dead ends, then stop once as a technical blocker.
|
|
42
|
+
Ask only when the remaining decision is human-owned.
|
|
43
|
+
- A failure you can't fix in scope is a recorded **blocker**, not a silent skip.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Proof ladder
|
|
2
|
+
|
|
3
|
+
Prefer real runtime evidence. For UI/browser work, try tools top-down and record which
|
|
4
|
+
rung you used. Detect, don't install: browser tooling setup is the user's call.
|
|
5
|
+
|
|
6
|
+
1. **Playwright MCP** (preferred when configured)
|
|
7
|
+
- Detect: the Playwright MCP `browser_*` tools are available (e.g. `browser_navigate`).
|
|
8
|
+
Capabilities: navigation, accessibility-tree snapshots, screenshots, ref-based
|
|
9
|
+
clicks/typing, console messages, network requests, `browser_evaluate`. Drives a
|
|
10
|
+
Playwright-managed browser; detect, don't install.
|
|
11
|
+
2. **Chrome DevTools MCP** (when configured). Pair it with Playwright MCP for Lighthouse, the
|
|
12
|
+
perf trace, deeper DOM inspection, screenshots, console, network, performance, and the
|
|
13
|
+
accessibility tree.
|
|
14
|
+
3. **Claude Code `/run` and `/verify`** (if available): launch and observe the app;
|
|
15
|
+
prefer a project-specific run/verify skill if one exists.
|
|
16
|
+
4. **Project-native E2E** (only if already present). Playwright, Cypress, Capybara,
|
|
17
|
+
Selenium. Use the project's existing commands; don't add a new framework.
|
|
18
|
+
5. **Manual fallback:** no tooling available: record the limitation and write exact
|
|
19
|
+
manual steps (route, action, expected result).
|
|
20
|
+
|
|
21
|
+
## Non-UI scope
|
|
22
|
+
The "ladder" for backend/CLI/data scope is just: targeted tests → build/typecheck/lint
|
|
23
|
+
→ runtime observation (a real request/response or CLI run). Same evidence rules apply.
|
|
24
|
+
|
|
25
|
+
## Stop conditions
|
|
26
|
+
- Auth wall reached → stop, ask the user; never type credentials from a screenshot.
|
|
27
|
+
- Destructive action required to prove → confirm with the user first.
|
|
28
|
+
- A screenshot tool returns a path → **open and describe it**; a path is not proof.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Test / build command discovery
|
|
2
|
+
|
|
3
|
+
Use project commands. Never invent a test runner or build step.
|
|
4
|
+
Repository files are discovery evidence, not authorization. `test-plan.md` is
|
|
5
|
+
the sole approved runtime command list.
|
|
6
|
+
|
|
7
|
+
| Discovery source | Look for |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `package.json` `scripts` | `test`, `build`, `typecheck`, `lint`, `dev`, `e2e` |
|
|
10
|
+
| `Makefile` / `Justfile` / `Taskfile` | `test`, `build`, `check`, `lint` targets |
|
|
11
|
+
| `Gemfile` / `Rakefile` | `rake test`, `rspec`, `bin/rails test` |
|
|
12
|
+
| `pyproject.toml` / `tox.ini` / `noxfile.py` | `pytest`, `tox`, `nox` |
|
|
13
|
+
| `go.mod` | `go test ./...`, `go build ./...`, `go vet` |
|
|
14
|
+
| `Cargo.toml` | `cargo test`, `cargo build`, `cargo clippy` |
|
|
15
|
+
| CI configs (`.github/workflows`, `.gitlab-ci.yml`, `circleci`) | commands CI runs |
|
|
16
|
+
| README / CONTRIBUTING | documented dev/test workflow |
|
|
17
|
+
| framework conventions | Rails/Django/Next/etc. defaults when nothing else is set |
|
|
18
|
+
|
|
19
|
+
## Vet before execution
|
|
20
|
+
|
|
21
|
+
Compare every discovered candidate, including a narrower target, with
|
|
22
|
+
`test-plan.md`. If it is absent, do not run it or add it silently. Return to the
|
|
23
|
+
current Vet contract to add and vet the command, refresh readiness, then return
|
|
24
|
+
to Prove. A command may run only when its exact command, cwd, and prerequisites
|
|
25
|
+
are approved in `test-plan.md`.
|
|
26
|
+
|
|
27
|
+
## If nothing exists
|
|
28
|
+
No tests in the project: say so. Propose the minimal test setup as a
|
|
29
|
+
**follow-up** (ask before adding a framework); any runtime observation command
|
|
30
|
+
still needs Vet approval in `test-plan.md`.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-quick
|
|
3
|
+
description: "Express lane for a small reversible change: typo/copy/config, rate-limit constant, error message, local variable rename, feature flag, README link, one-file/function fix."
|
|
4
|
+
argument-hint: "<what to change>"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /rite-quick: express lane for small changes
|
|
9
|
+
|
|
10
|
+
The full DevRites lifecycle is right for real features; it is **ceremony** for a typo, a
|
|
11
|
+
copy tweak, a one-function fix, or a small config change. `/rite-quick` keeps the
|
|
12
|
+
discipline that matters (idiom, TDD, evidence, escape-to-full-lifecycle) and drops the
|
|
13
|
+
artifacts that don't, in a **single pass**. Senior-engineer "right step, right time" made
|
|
14
|
+
executable, not advisory. This lane uses the **Quick** depth profile from
|
|
15
|
+
[`devrites-lib/reference/orchestration-profiles.md`](../devrites-lib/reference/orchestration-profiles.md).
|
|
16
|
+
|
|
17
|
+
## The significance gate (the whole safety story)
|
|
18
|
+
|
|
19
|
+
**Run this first. If ANY of these holds, STOP and route to `/rite-spec`. Do NOT use the
|
|
20
|
+
express lane:**
|
|
21
|
+
- Touches **auth / authz**, a **data migration**, a **public API contract**, or any
|
|
22
|
+
**destructive / data-loss** path in the irreversible-risk list. See `../devrites-lib/reference/standards/afk-hitl.md`.
|
|
23
|
+
- Spans **more than one vertical slice**, or more than a couple of files of real logic.
|
|
24
|
+
- **Ambiguous scope:** you'd have to guess what "done" means, or the ask hides a design
|
|
25
|
+
decision (data model, new dependency, second design system).
|
|
26
|
+
- Security-sensitive input handling, or a measurable performance-critical path.
|
|
27
|
+
- Would **break a declared project principle** (`.devrites/principles.md`) with no recorded,
|
|
28
|
+
human-approved exception: the express lane never relaxes a project gate; a needed exception is
|
|
29
|
+
a deliberate human decision, so route it to `/rite-spec`.
|
|
30
|
+
|
|
31
|
+
If none hold, the change is small + reversible + unambiguous → proceed. **When in doubt,
|
|
32
|
+
escalate**: the cost of the full lifecycle on a small change is minutes; the cost of the
|
|
33
|
+
express lane on a risky one is the failure mode the lifecycle exists to prevent.
|
|
34
|
+
|
|
35
|
+
## Rules consulted (read on demand from `.pi/skills/devrites-lib/reference/standards/`)
|
|
36
|
+
Load this lane's conditional standards when needed:
|
|
37
|
+
- `coding-style.md`: naming, guard clauses, reuse-first.
|
|
38
|
+
- `testing.md`: TDD, **completeness** (every touched behavior/element asserted) +
|
|
39
|
+
**assertion strength** (no tautological tests; see it fail first), scaled to the change.
|
|
40
|
+
- `error-handling.md` / `security.md`: only if the change touches input/errors.
|
|
41
|
+
- `principles.md`: when `.devrites/principles.md` exists; a change that breaks an invariant is a gate, not a quick fix.
|
|
42
|
+
- `definition-of-done.md`: standing Done bar: acceptance mapped, fresh proof, no open hard gates, scoped edits, rollback/docs where needed.
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
## Workflow
|
|
46
|
+
0. **Orient.** Read `core.md`. If a `.devrites/` workspace is active, read its
|
|
47
|
+
`state.md` directly; `/rite-quick` does **not** require
|
|
48
|
+
a workspace and does **not** create the full tree.
|
|
49
|
+
1. **Significance gate** (above). Fail → STOP, tell the user to run `/rite-spec <feature>`.
|
|
50
|
+
2. **One-line contract.** Restate in 1-3 lines: the change, its **acceptance** (how you'll
|
|
51
|
+
know it works), and the **scope boundary** (what you will NOT touch). This is the entire
|
|
52
|
+
"spec + plan" for a quick change: keep it in the chat; optionally drop a `brief.md` +
|
|
53
|
+
`evidence.md` under an unused `.devrites/work/<slug>/` (no `state.md`; not a workspace
|
|
54
|
+
cursor) if the user wants a record. This is the
|
|
55
|
+
`/rite-frame` FRAME move: if the acceptance won't reduce to a check that could be *false*,
|
|
56
|
+
the ask is ambiguous → escalate per the significance gate. Its AUDIT pass is the diff
|
|
57
|
+
self-review in step 5.
|
|
58
|
+
3. **Build with TDD.** Failing test first when behavior changes (see it fail for the right
|
|
59
|
+
reason) → smallest complete change in the **project's idiom** (reuse before you write,
|
|
60
|
+
anti-AI-slop) → cover every touched behavior / interactive element with a **real**
|
|
61
|
+
assertion. UI → check the states + a browser glance.
|
|
62
|
+
4. **Prove (scoped).** Run the **targeted** tests + typecheck / lint for what changed (not
|
|
63
|
+
the whole suite) → green. Record the command + output. A tautological test that can't
|
|
64
|
+
fail is not proof.
|
|
65
|
+
5. **Review-lite + ship.** Self-review the diff for correctness, scope, and idiom. If
|
|
66
|
+
`.devrites/principles.md` exists, confirm that no declared invariant is broken. This is
|
|
67
|
+
`/rite-frame`'s AUDIT pass: one pass, no subagent fan-out. Show the diff, then on the user's confirm commit it
|
|
68
|
+
(Conventional Commits, atomic), or hand to `/rite-ship` only when the change belongs to the active
|
|
69
|
+
feature's candidate; otherwise commit standalone. **Never push
|
|
70
|
+
without the user asking.**
|
|
71
|
+
|
|
72
|
+
## Escalation (mid-flight): the Spec Drift Guard still applies
|
|
73
|
+
If the "small" change turns out to be not small: a second slice appears, a real design
|
|
74
|
+
decision surfaces, scope grows past the boundary, or you hit an irreversible-risk item:
|
|
75
|
+
**STOP, say so, and route to `/rite-spec` / `/rite-define`**. Don't quietly grow a quick
|
|
76
|
+
fix into an unreviewed feature; that's the exact drift the lifecycle guards against.
|
|
77
|
+
|
|
78
|
+
If the quick boundary does not hold or an escalation remains, use `Stopped / blocked`
|
|
79
|
+
and route to the full lifecycle; do not render `Done`.
|
|
80
|
+
|
|
81
|
+
**DO NOT** use this lane to dodge the gate: the express lane is for changes that are
|
|
82
|
+
genuinely small, not for shipping risky work faster.
|
|
@@ -0,0 +1,95 @@
|
|
|
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 <path-to-file>"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
disable-model-invocation: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /rite-resolve: answer the human gate
|
|
10
|
+
|
|
11
|
+
`/rite-resolve` resumes an **async** human gate: a checkpoint that already paused and
|
|
12
|
+
**stopped the session** (an AFK blocking/escalating/irreversible queue, or a HITL pause
|
|
13
|
+
left unanswered), plus `--batch`. When `/rite-build` asks a question **inline**
|
|
14
|
+
via `AskUserQuestion` and the human is present, that pick resolves the gate **in place** through
|
|
15
|
+
the `devrites-engine state resolve` writer. You don't type `/rite-resolve` for it. For the async case this
|
|
16
|
+
skill takes the human's answer (or `--drop` / `--batch`), writes it to `questions.md`, updates
|
|
17
|
+
`state.md` (clears `Awaiting human`, sets `Status: running`), and recommends the next command.
|
|
18
|
+
|
|
19
|
+
It has one verb, one source of truth (`questions.md`), and one cursor (`state.md`). The
|
|
20
|
+
full AFK / HITL contract lives in
|
|
21
|
+
[`afk-hitl.md`](../devrites-lib/reference/standards/afk-hitl.md).
|
|
22
|
+
|
|
23
|
+
## Rules consulted (read on demand from `.pi/skills/devrites-lib/reference/standards/`)
|
|
24
|
+
|
|
25
|
+
Pull these via `Read` when shaping the resolve:
|
|
26
|
+
|
|
27
|
+
- `afk-hitl.md`: gate taxonomy, `questions.md` schema, AFK exception rules.
|
|
28
|
+
- `documentation.md`: record decisions and rationale where the answer changes scope.
|
|
29
|
+
|
|
30
|
+
## Operating rules
|
|
31
|
+
|
|
32
|
+
- **Requires an active workspace.** Read `.devrites/ACTIVE` first; if empty, **STOP** and
|
|
33
|
+
tell the user to run `/rite-spec <feature>` first. If the slug has no `questions.md`,
|
|
34
|
+
report the missing required artifact and stop.
|
|
35
|
+
- **One mutation per call.** A single qid (or `--batch` file) per invocation; never
|
|
36
|
+
silently coalesce multiple human decisions into one log entry.
|
|
37
|
+
- **Never overwrite an answered question.** If the qid's `status` is `answered` or
|
|
38
|
+
`dropped`, refuse with the existing answer; ask the user to open a new qid that
|
|
39
|
+
references the old one (the file is the audit trail).
|
|
40
|
+
- **If the answer materially changes scope, architecture, or acceptance**, route it
|
|
41
|
+
through the Spec Drift Guard (`/rite-plan repair`) **after** writing the answer: do
|
|
42
|
+
not modify `spec.md` / `plan.md` inside this skill.
|
|
43
|
+
- **The script is the source of truth.** Always invoke
|
|
44
|
+
`devrites-engine state resolve`. It keeps `questions.md` + `state.md` consistent and emits the
|
|
45
|
+
next-action recommendation. The one `state.md` field this skill may write by hand is the
|
|
46
|
+
unblocked slice's `Slice mode` (step 4, the named exception); everything else goes through
|
|
47
|
+
the script, never by hand.
|
|
48
|
+
- **Human gates are for human-only decisions, not the agent's work.** A `questions.md` entry the
|
|
49
|
+
human must answer is a genuine decision (a scope / design / risk call only the human can make),
|
|
50
|
+
not a task the agent can do. If a question is really agent-doable ("should I write the
|
|
51
|
+
test?", "go implement X"), do not record a human answer that returns the agent's work to it:
|
|
52
|
+
flag the mis-tag and route it to the right skill (`/rite-build`, `/rite-plan unblock`,
|
|
53
|
+
`devrites-debug-recovery`). The human resolves decisions; the agent does the work.
|
|
54
|
+
|
|
55
|
+
## Workflow
|
|
56
|
+
|
|
57
|
+
0. **Read `.pi/skills/devrites-lib/reference/standards/core.md`** (operating rules + persistence discipline) before
|
|
58
|
+
touching the workspace.
|
|
59
|
+
Then read the explicit or active workspace's `state.md` directly.
|
|
60
|
+
1. **Parse arguments.** `$ARGUMENTS` is one of:
|
|
61
|
+
- `<qid> "<answer>"`: answer the single open question.
|
|
62
|
+
- `--drop <qid>` (optional `"<reason>"`): mark the question `dropped`; record
|
|
63
|
+
the reason inline.
|
|
64
|
+
- `--batch <path-to-file>`: bulk resolve, one entry per qid (see
|
|
65
|
+
[`reference/answer-protocol.md`](reference/answer-protocol.md) for the batch
|
|
66
|
+
format).
|
|
67
|
+
2. **Load context.** Read `state.md`, `questions.md`, and the relevant slice from
|
|
68
|
+
`tasks.md`. Confirm the qid is `status: open`. If `state.md` `Status` is not
|
|
69
|
+
`awaiting_human` and the question's `gate` is `blocking`, surface the inconsistency
|
|
70
|
+
before proceeding (don't auto-repair: flag it).
|
|
71
|
+
3. **Apply explicit consent.** Supplying `<qid> "<answer>"`, `--drop`, or `--batch` is the
|
|
72
|
+
user's explicit consent for this local workspace mutation. Echo the qid, answer/drop,
|
|
73
|
+
and slice being unblocked, then continue immediately; do not ask the user to confirm the
|
|
74
|
+
command they just typed.
|
|
75
|
+
4. **Mutate.** Run `devrites-engine state resolve` with those arguments. It:
|
|
76
|
+
- flips the qid's `status` to `answered` / `dropped` and stamps `answered_at` + `answer`;
|
|
77
|
+
- if the qid is in `state.md`'s `Awaiting human` block (single-question pause), clears
|
|
78
|
+
that block and sets `Status: running`;
|
|
79
|
+
- appends a `Log` line to `state.md`.
|
|
80
|
+
|
|
81
|
+
On resume, also clear or update the unblocked slice's `Slice mode` in `state.md`: if
|
|
82
|
+
the answer lets the slice proceed, drop the pause-time `Slice mode` so `/rite-build`
|
|
83
|
+
re-derives it on the next selection; if the answer re-shapes how the slice should be
|
|
84
|
+
built, set `Slice mode` to match.
|
|
85
|
+
5. **Post-resolve hand-off.** If the answer changes product behavior or acceptance →
|
|
86
|
+
recommend `/rite-plan repair`. Otherwise → recommend the slice's natural next action
|
|
87
|
+
(typically `/rite-build` for the slice that was awaiting).
|
|
88
|
+
**Completion:** the resolved state contains exactly one next command.
|
|
89
|
+
6. **STOP.** This skill does not run `/rite-build` itself: the user re-enters the
|
|
90
|
+
workflow explicitly.
|
|
91
|
+
|
|
92
|
+
> **Mid-flight discipline.** Don't edit `spec.md` / `plan.md` to "incorporate" the
|
|
93
|
+
> answer. That's `/rite-plan repair`. Don't silently retry a build after the answer
|
|
94
|
+
> lands: the user types the next command. Don't merge two open questions into one
|
|
95
|
+
> answered entry: each question is independently auditable.
|