devrites 5.5.0 → 5.6.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 +6 -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 +4 -1
- package/pack/generated/README.md +5 -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 +54 -4
- package/scripts/pi-generate.sh +198 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-vet
|
|
3
|
+
description: Review a defined engineering plan before code. Use for plan vetting or lock-in; not for implementation review or final readiness sealing.
|
|
4
|
+
argument-hint: "[slug] [--cross-model] [--full]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /rite-vet: review the plan before build
|
|
9
|
+
|
|
10
|
+
Vet every plan's scope, architecture, quality, proof, performance, failures and writer
|
|
11
|
+
safety. Fold cited technical findings; design Build tests. Temper owns product;
|
|
12
|
+
Vet owns implementation; current `$ARGUMENTS` (`--full`) feeds the depth triggers in
|
|
13
|
+
`reference/depth.md`; profiles never remove the exact plan-reviewer gate
|
|
14
|
+
([orchestration-profiles.md](../devrites-lib/reference/orchestration-profiles.md)).
|
|
15
|
+
|
|
16
|
+
## Rules
|
|
17
|
+
|
|
18
|
+
Read the active standard from: `principles.md`, `patterns.md`, `coding-style.md`,
|
|
19
|
+
`testing.md`, `spec-grammar.md`, `performance.md`, `error-handling.md`,
|
|
20
|
+
`development-workflow.md`, `afk-hitl.md`, `one-shot-actions.md`,
|
|
21
|
+
`developer-experience.md`, `elicitation.md`, and `definition-of-done.md`. Load
|
|
22
|
+
repository topology, data integrity, and integration reliability only when
|
|
23
|
+
triggered. Before classifying any Reslice, read `.pi/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md`.
|
|
24
|
+
When a
|
|
25
|
+
plan declares a root-authored executable workflow file, read
|
|
26
|
+
`workflow-artifacts.md`.
|
|
27
|
+
|
|
28
|
+
<!-- BEGIN RESLICE ROUTE-TO-ACTION -->
|
|
29
|
+
- `FOLD` → fold technical topology; invalidate Vet/readiness; affected Vet before Build.
|
|
30
|
+
- `GUARD_AND_REPAIR` → no planning writes; Spec Drift Guard → Clarify → Plan repair → affected Vet.
|
|
31
|
+
- `BLOCKED_INPUT` → no planning writes; exact diagnostic; recover input; reclassify.
|
|
32
|
+
<!-- END RESLICE ROUTE-TO-ACTION -->
|
|
33
|
+
|
|
34
|
+
## Invariants
|
|
35
|
+
|
|
36
|
+
- Review implementation, not ambition. Challenge creep, complexity, proof, and
|
|
37
|
+
risk without changing accepted product scope.
|
|
38
|
+
- Root owns decisions/writes/readiness; reviewers judge without route policy.
|
|
39
|
+
Cite findings/confidence; suppress
|
|
40
|
+
unverified or confidence ≤4 findings under `review-axes.md`.
|
|
41
|
+
Lens arrows in `eng-lenses.md` are heuristics; band findings only under the
|
|
42
|
+
four `review-axes.md` names.
|
|
43
|
+
- Auth, migration, public API, and data-model changes use maximum caution and the
|
|
44
|
+
irreversible-risk stop. Project principles never become trade-offs.
|
|
45
|
+
- **Governance-protected paths** (`.devrites/**`, pack skill/agent trees,
|
|
46
|
+
`NOTICE.md` generator regions, CI/hook config named in repo docs) require explicit
|
|
47
|
+
human approval before plan slices may edit them. A slice touching a protected path
|
|
48
|
+
without approval → Vet **NEEDS CLARIFICATION**.
|
|
49
|
+
- Use the lowest axis band; never average or round thin to ready. Search before
|
|
50
|
+
asking and resolve reversible technical choices. Ask only human-owned choices.
|
|
51
|
+
- Preserve a valid technical return cursor. Agent-owned `NEEDS REPLAN` returns
|
|
52
|
+
internally to its caller, not to the human; on a direct invocation there is
|
|
53
|
+
no caller, so Vet becomes it — save a return cursor
|
|
54
|
+
(`return_phase`/`return_next_action`) naming this Vet pass as the caller and
|
|
55
|
+
invoke `/rite-plan` repair inline under the same fingerprint caps. An
|
|
56
|
+
agent-owned verdict with budget remaining is never a user-facing command.
|
|
57
|
+
- **Recovery recheck is bounded and batched.** A valid cursor plus open
|
|
58
|
+
fingerprints enters Recovery recheck; it does not start another Full Vet or
|
|
59
|
+
repeat unaffected axes/reviewers. One dispatch covers every open fingerprint
|
|
60
|
+
of the fold — each checked individually — with a mandatory correction-created
|
|
61
|
+
regression audit.
|
|
62
|
+
<!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"plan declares root-authored executable workflow file","action":"emit exact admission; stale/missing authority uses PLAN_VET_REPAIR","return":"Vet READY cursor or exact technical replan"} -->
|
|
63
|
+
## Workflow
|
|
64
|
+
|
|
65
|
+
0. **Orient.** Read core. Resolve active slug, require state, and read plan,
|
|
66
|
+
tasks, spec, decision coverage, optional strategy/design brief, decisions,
|
|
67
|
+
assumptions, and state. Require approved Plan and `Decision coverage: CLEAR`;
|
|
68
|
+
otherwise stop for Define or Clarify. Use code intelligence for placement,
|
|
69
|
+
blast radius, and reuse.
|
|
70
|
+
1. **Select depth.** Apply `reference/depth.md` exactly; never skip. Every initial
|
|
71
|
+
pass records an engineering verdict and test-plan coverage. A valid Recovery
|
|
72
|
+
recheck retains prior depth and enters 1b.
|
|
73
|
+
1a. **Independent initial pass.** Freeze candidate and dispatch the exact fresh
|
|
74
|
+
read-only plan reviewer — plus developer-experience reviewer for developer
|
|
75
|
+
surfaces and the current strategy reviewer after significant Temper — in
|
|
76
|
+
parallel under `../devrites-lib/reference/parallel-dispatch.md`; they are
|
|
77
|
+
independent read-only passes on one frozen candidate. Missing
|
|
78
|
+
required account blocks.
|
|
79
|
+
1b. **Recovery recheck.** Require valid return cursor, accepted prior finding,
|
|
80
|
+
exact fingerprint/reproduction, repaired candidate identity, changed
|
|
81
|
+
paths/criteria, affected drift/evidence, and the recorded delta self-check.
|
|
82
|
+
Freeze that packet and dispatch each exact owning reviewer once,
|
|
83
|
+
fresh/read-only, limited to it — all its open fingerprints in that dispatch.
|
|
84
|
+
Do not rerun broad inventory or unaffected reviewers. Close the prior
|
|
85
|
+
fingerprint only with discriminating evidence plus an explicit
|
|
86
|
+
correction-created regression verdict on the touched invariants (acyclic
|
|
87
|
+
deps, traceability, contract proof, sizing) and every region depending on a
|
|
88
|
+
changed clause — enumerate dependents via the dep graph and traceability
|
|
89
|
+
refs, not only patched sites. Otherwise record one no-progress outcome. A
|
|
90
|
+
different Critical/Important invariant needs exact evidence and a new
|
|
91
|
+
fingerprint; a Suggestion, Nit, or FYI cannot keep recovery open. Reviewer
|
|
92
|
+
`Late:` rows on unchanged clauses follow the canonical
|
|
93
|
+
[late-finding rule](../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve):
|
|
94
|
+
Critical with a failure path → new fingerprint; otherwise `eng-review.md`
|
|
95
|
+
`## Deferred findings` (mechanism rows become one proof row at step 6). A packet
|
|
96
|
+
marked `convergence_pressure` accepts an explicit, bounded declared
|
|
97
|
+
residual/limitation folded into the contract text as closure for a finding
|
|
98
|
+
marked as a refinement of an already-pinned clause; the recheck may re-raise
|
|
99
|
+
it only by naming a concrete failure path the declaration omits. A
|
|
100
|
+
`new_failure_mode` finding is never residual-eligible. A fold whose
|
|
101
|
+
findings are all Suggestion-or-lower rechecks mechanically at the
|
|
102
|
+
materialization gate — anchors applied, mirrors consistent, invariants
|
|
103
|
+
pass — without a dispatched reviewer; sub-Important findings already
|
|
104
|
+
cannot keep recovery open. Reconcile
|
|
105
|
+
shared artifact/readiness gates, then enter step 8 or the next repair.
|
|
106
|
+
Do not fall through to steps 2–7. Retain evidenced unchanged coverage; changed
|
|
107
|
+
global contract/uncertain impact requires full applicable review. Reopen historical
|
|
108
|
+
findings only for affected invariants/dependencies.
|
|
109
|
+
2. **Challenge scope.** Apply review-axes §0 and search accepted decisions.
|
|
110
|
+
Harden to the smallest contract-complete plan, using marked topology action.
|
|
111
|
+
Then verify bidirectional ID-and-meaning traceability across spec/plan/
|
|
112
|
+
tasks/test-plan/traceability, acceptance, terms, principles, anti-slop,
|
|
113
|
+
and conventions; every slice and test-plan row maps to a live requirement
|
|
114
|
+
and vice versa. Critical gaps and
|
|
115
|
+
unexcepted principle breaches block; record the challenge result in `eng-review.md`
|
|
116
|
+
§2 (Scope challenge) after recheck.
|
|
117
|
+
3. **Preflight Build entry.** Under `reference/artifacts.md`, verify exact
|
|
118
|
+
command/cwd/tool/version/prerequisite; output filters must preserve upstream
|
|
119
|
+
failure. Verify dependencies from authoritative source plus nearest manifest.
|
|
120
|
+
Run parser-sensitive syntax only in isolated fixtures. Remeasure mutable facts;
|
|
121
|
+
live evidence wins, conflict marks stale, and unmeasurable conflict is a gap.
|
|
122
|
+
Record complete SHA-256 provenance. Every behavioral mapping names a positive
|
|
123
|
+
discriminating assertion and decisive signal, never only exit zero.
|
|
124
|
+
|
|
125
|
+
For each consumptive action, bind every `reference/artifacts.md` Consumptive
|
|
126
|
+
action gates column; every fingerprint identifies one actionable seam; aliasing multiple
|
|
127
|
+
emit sites is a gap. Preflight observes but need not make future behavior pass.
|
|
128
|
+
4. **Audit readiness.** Goal-backward map every requirement, criterion, NFR,
|
|
129
|
+
interaction, edge/prohibition, and decision row to one slice and executable
|
|
130
|
+
proof. Verify UX/spec/architecture alignment, contracts, dependency order,
|
|
131
|
+
slice independence/wiring, prerequisites, failure/observability/rollback, and
|
|
132
|
+
ownership. The plan's `Shared contract proof` names one reused boundary
|
|
133
|
+
artifact plus two consuming tests for every changed API/event/schema/provider-
|
|
134
|
+
consumer seam, or an explicit no-impact statement. Missing, one-sided,
|
|
135
|
+
duplicated-contract, vague, or non-consuming proof fails closed.
|
|
136
|
+
|
|
137
|
+
Technical gaps are `NEEDS REPLAN` and Plan repair — each finding marks
|
|
138
|
+
itself `new_failure_mode` or names the already-pinned clause/fingerprint
|
|
139
|
+
it refines, making alias-detection and `convergence_pressure` eligibility
|
|
140
|
+
mechanical — and carries `kind: contract | mechanism`
|
|
141
|
+
(`review-axes.md` § Finding kind). Only `contract` findings open a Plan
|
|
142
|
+
repair; a `mechanism` finding is closed by one `test-plan.md` proof row
|
|
143
|
+
at step 6 and leaves readiness intact when nothing else is open.
|
|
144
|
+
Product/risk gaps are
|
|
145
|
+
`NEEDS CLARIFICATION` and Clarify. Neither becomes a Build qid.
|
|
146
|
+
5. **Review axes.** Apply `review-axes.md` through `eng-lenses.md`. Fold verified
|
|
147
|
+
behavior-preserving technical findings; walk only human-owned decisions.
|
|
148
|
+
Profile gate ceiling and Reslice marked action remain authoritative.
|
|
149
|
+
6. **Write outputs.** Produce every artifact in `reference/artifacts.md`. After
|
|
150
|
+
editing intent/decision/assumption/question owners, re-scan affected coverage,
|
|
151
|
+
assumptions, uncertainty, and gates. Keep state non-READY. Every scenario and
|
|
152
|
+
criterion needs positive, discriminating proof; every slice must be one-pass
|
|
153
|
+
implementable; developer plans need a predicted scorecard. Durable commands
|
|
154
|
+
are portable repository commands, not host wrappers.
|
|
155
|
+
7. **Narrow recheck after edits.** Dispatch the exact plan reviewer once per
|
|
156
|
+
fold — one dispatch covering every open fingerprint, preserving
|
|
157
|
+
per correction/fingerprint accounting (each checked individually with its
|
|
158
|
+
accepted findings, changed paths/criteria, new identity, and recorded delta
|
|
159
|
+
self-check); it must return an explicit correction-created regression
|
|
160
|
+
verdict over touched invariants plus every dependent of each changed clause
|
|
161
|
+
(dep-graph and traceability lookup), not only fingerprint closure. Within one correction, no broad
|
|
162
|
+
third loop. If it changes plan, fold again. A closed input plus a distinct Critical/Important invariant returns
|
|
163
|
+
that new fingerprint as progress. Then close matrix and rerun ID/meaning audit.
|
|
164
|
+
8. **Build readback and readiness.** Add a cited five-line readback to
|
|
165
|
+
`eng-review.md` (artifacts.md §7 rows 1–5): outcome/ACs; IN/OUT/must-NOT; UI direction and architecture/
|
|
166
|
+
critical flow; slice order/first slice; decisive proof/action-time gates. No implementer should need to invent product, architecture, or proof.
|
|
167
|
+
Contradiction, ownerlessness, or material ambiguity blocks via Clarify or Plan.
|
|
168
|
+
|
|
169
|
+
Write exactly one `Implementation readiness: READY`, `NEEDS CLARIFICATION`,
|
|
170
|
+
or `NEEDS REPLAN`. Root sets READY after every account, checklist,
|
|
171
|
+
preflight, and sweep is green. Write phase/next step and emit one
|
|
172
|
+
`Readiness inputs SHA-256` with
|
|
173
|
+
`devrites-engine check readiness --emit-binding <slug>`; normal readiness check
|
|
174
|
+
must pass. Technical failure records reproduction, not qid. Human gap awaits
|
|
175
|
+
Clarify. Optional cross-model follows `reference/cross-model.md`.
|
|
176
|
+
|
|
177
|
+
With READY, no pending remediation, and a valid technical return cursor,
|
|
178
|
+
restore and consume the return cursor instead of defaulting to Build. Preserve
|
|
179
|
+
it through admitted remediation. Only a real stop reaches the human.
|
|
180
|
+
9. **Stop at the Vet boundary.** Show Build readback, scope verdict, lowest axis,
|
|
181
|
+
closed gaps, preflight, action checkpoints, and critical failures. Recommend
|
|
182
|
+
Build only when READY.
|
|
183
|
+
|
|
184
|
+
> Do not replace interactive review with artifacts, change acceptance through
|
|
185
|
+
> hardening, score without source evidence, or ignore unexplained complexity.
|
|
186
|
+
|
|
187
|
+
## Phase exit
|
|
188
|
+
|
|
189
|
+
**Complete when:** `eng-review.md` records exactly one readiness verdict, readiness
|
|
190
|
+
binding SHA-256 passes, and every required reviewer account is admitted.
|
|
191
|
+
|
|
192
|
+
**Failing case:** READY written while a required reviewer returned `Outcome: gap` →
|
|
193
|
+
not complete; restore NEEDS REPLAN or dispatch missing reviewer.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# /rite-vet: anti-patterns
|
|
2
|
+
|
|
3
|
+
Read [universal anti-patterns](../../devrites-lib/reference/standards/anti-patterns.md).
|
|
4
|
+
|
|
5
|
+
Authority: `.pi/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md`.
|
|
6
|
+
|
|
7
|
+
<!-- BEGIN RESLICE ROUTE-TO-ACTION -->
|
|
8
|
+
- `FOLD` → fold technical topology; invalidate Vet/readiness; affected Vet before Build.
|
|
9
|
+
- `GUARD_AND_REPAIR` → no planning writes; Spec Drift Guard → Clarify → Plan repair → affected Vet.
|
|
10
|
+
- `BLOCKED_INPUT` → no planning writes; exact diagnostic; recover input; reclassify.
|
|
11
|
+
<!-- END RESLICE ROUTE-TO-ACTION -->
|
|
12
|
+
|
|
13
|
+
## Phase rationalizations
|
|
14
|
+
|
|
15
|
+
| Excuse | Rebuttal |
|
|
16
|
+
|---|---|
|
|
17
|
+
| "I'll write all the findings into `eng-review.md` and let the user read it." | Fold verified behavior-preserving findings together and recheck affected closure. Ask human-owned choices with recommendations and await answers. Recording alone resolves nothing; never silently change acceptance or mark unresolved choices READY. |
|
|
18
|
+
| "The plan doesn't handle X: flag it." (without checking) | Quote the line first. If you can't quote where the plan handles X, you also can't be sure it doesn't: force confidence ≤4 and suppress. The "field/case doesn't exist" finding is the most common false positive; the verification gate exists to kill it. |
|
|
19
|
+
| "It's an obvious fix. I'll just edit the plan." | Vet hardens verified plans; topology uses the marked action. |
|
|
20
|
+
| "This dimension is thin but the others are strong: net it's fine." | The gate is the **floor**, not the average. A plan `broken` on test-coverage does not pass because it's `strong` on architecture. |
|
|
21
|
+
| "I can see it's adequate. I'll note the band, the evidence is obvious." | Cite quoted evidence **before** the band; never score first and rationalize later. |
|
|
22
|
+
| "8+ files but it all needs to change: proceed." | Apply `review-axes.md` §0: justify complexity against the smallest contract-complete alternative; fold technical reductions through the marked action. File count does not justify design or require a pause. Ask only for changed scope, behavior, or risk policy. |
|
|
23
|
+
| "There's no test for this, but the user can add one later." | Coverage is designed **now**, before the code, so the build writes tests alongside it. A deferred test is a test that misses the boundary cases writing-it-now would expose. Regressions are non-negotiable. Critical, no question. |
|
|
24
|
+
| "Performance looks fine." | "Looks fine" is not a measurement. A perf finding is "measure X against budget Y" or it's nothing: don't recommend speculative tuning, and don't wave past an N+1 you can quote. |
|
|
25
|
+
| "Cross-model agrees, so apply it." | Consensus is a signal, not proof or approval. Verify the finding against source, then use the same technical-hardening or human-owned decision route; model agreement never authorizes a scope, acceptance, or policy change. |
|
|
26
|
+
|
|
27
|
+
## Reslice classifier rationalizations
|
|
28
|
+
|
|
29
|
+
**RSLICE-VET-001** — Slice/topology growth alone does not stop; fewer slices do not prove scope reduction; remediation does not grow product.
|
|
30
|
+
|
|
31
|
+
## Red flags
|
|
32
|
+
- `eng-review.md` / `test-plan.md` written but `plan.md` / `tasks.md` **not** hardened: the build
|
|
33
|
+
follows the plan, so the review changed nothing.
|
|
34
|
+
- A finding raised with confidence ≥7 but **no quoted source line**, that defeats the verification gate.
|
|
35
|
+
- Acceptance/product-behavior growth auto-applied in AFK, or an orthogonal human-owned gate that did not pause.
|
|
36
|
+
- A failure-mode table with rows but no verdict column filled: a "no test + no handling + silent" row not marked Critical.
|
|
37
|
+
- Repeating an exhausted causal failure under the shared no-progress rule in
|
|
38
|
+
[`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md), or stopping a
|
|
39
|
+
distinct cause solely because the total review round exceeds three.
|
|
40
|
+
- The reviewer / cross-model being handed the author's reasoning as independent
|
|
41
|
+
evidence (defeats the fresh-context point).
|
|
42
|
+
- The skill writing code, implementing a slice, or running the build. That's `/rite-build`. Vet reviews and hardens the plan; it never implements.
|
|
43
|
+
- Re-litigating the **spec's** scope/ambition, that was `/rite-temper`. Vet challenges *implementation* scope only.
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
# `eng-review.md` + `test-plan.md` templates + fold-back rules
|
|
2
|
+
|
|
3
|
+
`eng-review.md` records review; `test-plan.md` drives Build. Fold accepted findings
|
|
4
|
+
into `plan.md`/`tasks.md`; prose alone never changes Build.
|
|
5
|
+
|
|
6
|
+
Authority: `.pi/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md`.
|
|
7
|
+
|
|
8
|
+
<!-- BEGIN RESLICE ROUTE-TO-ACTION -->
|
|
9
|
+
- `FOLD` → fold technical topology; invalidate Vet/readiness; affected Vet before Build.
|
|
10
|
+
- `GUARD_AND_REPAIR` → no planning writes; Spec Drift Guard → Clarify → Plan repair → affected Vet.
|
|
11
|
+
- `BLOCKED_INPUT` → no planning writes; exact diagnostic; recover input; reclassify.
|
|
12
|
+
<!-- END RESLICE ROUTE-TO-ACTION -->
|
|
13
|
+
|
|
14
|
+
## `eng-review.md`: the record
|
|
15
|
+
|
|
16
|
+
Write/update `.devrites/work/<slug>/eng-review.md`; never clobber.
|
|
17
|
+
|
|
18
|
+
```markdown
|
|
19
|
+
# Eng review: <slug>
|
|
20
|
+
Vetted: <iso> Cross-model: ran (codex) | off
|
|
21
|
+
Implementation readiness: <READY | NEEDS CLARIFICATION | NEEDS REPLAN>
|
|
22
|
+
(`NEEDS REPLAN` is the eng-review field value; `NEEDS_REPLAN` with an underscore
|
|
23
|
+
is the autocomplete/reply-contract routing token — do not conflate.)
|
|
24
|
+
Readiness inputs SHA-256: <64 lowercase hex>
|
|
25
|
+
|
|
26
|
+
## 1. Depth
|
|
27
|
+
light | full (<trigger that escalated it>) # every plan is vetted — light or full, never skipped (see depth.md)
|
|
28
|
+
|
|
29
|
+
## 2. Scope challenge
|
|
30
|
+
- Existing reuse: <findings adopted by the plan>
|
|
31
|
+
- Minimum diff: <accepted | trimmed n; list in NOT-in-scope>
|
|
32
|
+
- Complexity: ok | smell (<n files, m new services) → asked → <reduce|proceed, why>
|
|
33
|
+
- Built-in / completeness / distribution: <flags, with source citations>
|
|
34
|
+
|
|
35
|
+
## 2a. Build-entry preflight
|
|
36
|
+
| Gate | Command + cwd | Tool/version | Prerequisite owner | Full provenance inputs | Fixture/smoke | Verdict |
|
|
37
|
+
|---|---|---|---|---|---|---|
|
|
38
|
+
| <test/browser/package> | <command · cwd> | <version> | <owner + item> | <tool/manifest/lockfile/config SHA-256> | <what ran> | pass/fail/blocked |
|
|
39
|
+
|
|
40
|
+
## 2b. Implementation readiness
|
|
41
|
+
| Surface | Requirement/decision | Boundary/wiring | Slice | Proof | Verdict |
|
|
42
|
+
|---|---|---|---|---|---|
|
|
43
|
+
| <journey/data/interface/ops> | <REQ/AC + coverage row> | <contract + key link> | <SLICE-###> | <test-plan row> | ready/gap |
|
|
44
|
+
|
|
45
|
+
Inventory/currentness: <pass/gaps> · slice order/independence: <pass/gaps> ·
|
|
46
|
+
UX/spec/architecture: <pass/n-a/gaps> · operations/rollout/rollback: <pass/n-a/gaps>
|
|
47
|
+
|
|
48
|
+
Shared contract proof: <pass | gap: missing/one-sided/duplicated-contract/vague/non-consuming>
|
|
49
|
+
One-shot evidence completeness: <n/a | pass: action + retained artifact + bounds/sanitization + injective boundary map + per-seam/collision/cleanup fixtures | gap: exact missing proof>
|
|
50
|
+
|
|
51
|
+
## 3. Axis findings (floor-gated)
|
|
52
|
+
| Axis | Floor band | Findings (sev · confidence) |
|
|
53
|
+
|---|---|---|
|
|
54
|
+
| Architecture | strong/adequate/thin/broken | Critical (9) … |
|
|
55
|
+
| Plan code-quality | … | … |
|
|
56
|
+
| Test-coverage design | … | see test-plan.md |
|
|
57
|
+
| Performance | … | … |
|
|
58
|
+
Suppressed (confidence ≤4, unverified): <count — one line each>
|
|
59
|
+
|
|
60
|
+
## 4. Failure modes
|
|
61
|
+
| New codepath/boundary | Realistic failure | Partial/unknown effect | Recovery owner/path | Proof? | Silent? | Verdict |
|
|
62
|
+
|---|---|---|---|---|---|---|
|
|
63
|
+
| <path> | timeout / duplicate / race / stale | <state/effect> | <owner/action> | y/n | y/n | ok / **CRITICAL gap** |
|
|
64
|
+
|
|
65
|
+
## 5. Dependency safety
|
|
66
|
+
<declared order is safe | exact dependency/order correction>
|
|
67
|
+
|
|
68
|
+
## 6. Native reviewer accounts
|
|
69
|
+
- `devrites-plan-reviewer`: <findings + resolution | evidence-based No-findings>
|
|
70
|
+
- `devrites-strategy-reviewer`: <current Temper verdict | Not-applicable: low-stakes skip>
|
|
71
|
+
- `devrites-devex-reviewer`: <findings + resolution | No-findings | Not-applicable: no developer surface>
|
|
72
|
+
- Recheck: <not-needed | one narrow recheck and result>
|
|
73
|
+
- Cross-model (if --cross-model): <overlap / unique findings — informational until approved>
|
|
74
|
+
- Final: floor = <band>; unresolved → <none | blocking qid>
|
|
75
|
+
|
|
76
|
+
## 7. Completion summary
|
|
77
|
+
- Outcome: <one sentence; REQ/AC refs>
|
|
78
|
+
- Boundaries: <IN/OUT/must-NOT refs>
|
|
79
|
+
- Design/flow: <UI/n-a; chosen seams/why; happy/error refs>
|
|
80
|
+
- Delivery: <slice order + first>
|
|
81
|
+
- Proof/gates: <test-plan rows; justified action-time gates>
|
|
82
|
+
- Review: scope <accepted/reduced>; architecture <n>; quality <n>; coverage <x/y>,
|
|
83
|
+
gaps <n>, Critical regressions <n>; failure modes <n>, Critical gaps <n>.
|
|
84
|
+
- Entry/records: preflight <pass/fail/blocked>; checkpoints <none/list>;
|
|
85
|
+
NOT-in-scope + existing written; plan <hardened | n Guard deltas>.
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## `test-plan.md`: the build-readable coverage target
|
|
89
|
+
|
|
90
|
+
Write/update `.devrites/work/<slug>/test-plan.md`. `/rite-build`'s slice-wright
|
|
91
|
+
writes tests from it; `/rite-prove` walks it against `evidence.md`. Specify
|
|
92
|
+
*what/where* to test, not implementation.
|
|
93
|
+
|
|
94
|
+
```markdown
|
|
95
|
+
# Test plan: <slug>
|
|
96
|
+
From /rite-vet on <iso>. Runner + conventions: <detected framework + command>.
|
|
97
|
+
|
|
98
|
+
## Build-entry preflight
|
|
99
|
+
| Gate | Command | Cwd | Expected | Prerequisites | Provenance to recapture |
|
|
100
|
+
|---|---|---|---|---|---|
|
|
101
|
+
| <test/browser/package> | <exact command> | <path> | <exit/output> | <service/browser/credential owner> | <tool version + full SHA-256s> |
|
|
102
|
+
|
|
103
|
+
Link any disposable parser fixture. Preflight values are planning evidence, not post-build proof;
|
|
104
|
+
Prove recaptures the observed command, candidate identity, and result.
|
|
105
|
+
|
|
106
|
+
Commands in this durable artifact are portable repository commands: no RTK or local shell
|
|
107
|
+
aliases, user-specific absolute paths, or temporary proof trees. Evidence records
|
|
108
|
+
the command actually executed.
|
|
109
|
+
|
|
110
|
+
## Consumptive action gates
|
|
111
|
+
| Action | Why one-shot/consumptive | Retained artifact | Bounds + sanitization | Boundary map + collision proof | Terminal-path fixtures | Cleanup survival | Retry authority |
|
|
112
|
+
|---|---|---|---|---|---|---|---|
|
|
113
|
+
| <exact approved action or n/a> | <one attempt/quota/state/evidence deletion> | <durable operator-controlled path/schema> | <size/cardinality + known/unknown/malformed handling> | <every emit seam -> stable boundary ID; per-seam injection + alias mutant rejected> | <success/known/unknown/hostile> | <assertion> | <none/fresh human authorization> |
|
|
114
|
+
|
|
115
|
+
Every behavioral row names a positive, discriminating assertion and the decisive output it
|
|
116
|
+
produces. A command or expected exit zero alone is not a behavioral assertion; static gates
|
|
117
|
+
prove only their named static criterion.
|
|
118
|
+
|
|
119
|
+
## Coverage diagram
|
|
120
|
+
<the ASCII code-paths + user-flows diagram from review-axes.md, with COVERAGE / GAPS / REGRESSIONS line>
|
|
121
|
+
|
|
122
|
+
## Per-gap test requirements
|
|
123
|
+
| ID | Path / flow | Test file (match conventions) | Asserts (input → expected) | Kind | Slice | Priority |
|
|
124
|
+
|---|---|---|---|---|---|---|
|
|
125
|
+
| T1 | <path> | <path/to.test> | <empty list → 200 + []> | unit / E2E / eval | <slice> | P1 / **Regression-Critical** |
|
|
126
|
+
|
|
127
|
+
## Interaction inventory (UI slices — every element + flow gets an asserting test)
|
|
128
|
+
Enumerate every interactive element and user flow the feature exposes; one row each, none
|
|
129
|
+
skipped. Level per `testing.md` "Completeness": elements/fields → unit/component, critical
|
|
130
|
+
journeys → one E2E (never one-per-field). `/rite-build` must cover every row; `/rite-prove`
|
|
131
|
+
fails any row with no passing result — an unverified element is a NO-GO, like an unproven criterion.
|
|
132
|
+
```markdown
|
|
133
|
+
| Element / flow | Kind (field/checkbox/select/radio/toggle/button/link/flow) | Level | Test file | Asserts (action → expected) |
|
|
134
|
+
|---|---|---|---|---|
|
|
135
|
+
| email field | field | unit | <form.test> | invalid → error; valid → accepted |
|
|
136
|
+
| login | flow ★★★ | E2E | <login.e2e> | submit → dashboard |
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Omit the whole section only for a slice with **no** interactive surface (pure backend/logic).
|
|
140
|
+
|
|
141
|
+
## Acceptance → test map
|
|
142
|
+
|
|
143
|
+
- <spec acceptance criterion> → <T1, T3> # every criterion maps to ≥1 test
|
|
144
|
+
|
|
145
|
+
For every row in `plan.md`'s `Shared contract proof`, the per-gap requirements name both
|
|
146
|
+
provider- and consumer-side asserting tests and state how each consumes the same canonical
|
|
147
|
+
artifact. Reference the plan row; do not reproduce its contract table here.
|
|
148
|
+
|
|
149
|
+
## Parallelization table (in `eng-review.md` §5 when there's an opportunity)
|
|
150
|
+
|
|
151
|
+
```markdown
|
|
152
|
+
| Step / workstream | Modules touched (dir-level) | Depends on |
|
|
153
|
+
|---|---|---|
|
|
154
|
+
| API endpoints | controllers/, serializers/ | — |
|
|
155
|
+
| Worker | jobs/, lib/queue/ | API endpoints |
|
|
156
|
+
|
|
157
|
+
Lanes: A: API → Worker (sequential, shared lib/) · B: migration (independent)
|
|
158
|
+
Order: launch A + B in parallel worktrees → merge → C
|
|
159
|
+
Conflicts: Lanes A and B both touch models/ — sequential or coordinate.
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Fold-back: the part the build follows
|
|
163
|
+
|
|
164
|
+
Vet hardens the plan. Use the marked action before fold-back.
|
|
165
|
+
|
|
166
|
+
- **Write directly into `plan.md` / `tasks.md`** (single canonical writer: you, not the reviewer):
|
|
167
|
+
- `plan.md` §Scope boundaries ← "NOT in scope" items.
|
|
168
|
+
- `plan.md` §Architecture decisions ← reuse-over-rebuild calls + named failure scenarios.
|
|
169
|
+
- `plan.md` §Applicability and system ownership ← corrected topology/data/integration
|
|
170
|
+
routing and each triggered standard's feature-specific output.
|
|
171
|
+
- `plan.md` §Dependency graph / §Implementation order ← any dependency or ordering fix
|
|
172
|
+
(e.g. refactor-before-feature split).
|
|
173
|
+
- `plan.md` §Complexity & deviations gate ← any deviation the §0 challenge surfaced + its justification.
|
|
174
|
+
- `tasks.md` slices ← added test requirements (point at `test-plan.md`), added error-handling /
|
|
175
|
+
failure-mode coverage, tightened slice scope, a split of a refactor+behavior slice into two.
|
|
176
|
+
Adjust a slice's `Gate:` upward when vet reveals higher stakes (e.g. an unflagged migration).
|
|
177
|
+
- Re-run the `plan.md` Readiness gate after edits; it must still pass.
|
|
178
|
+
- **Reslice:** marked action only; no local predicate.
|
|
179
|
+
- **`decisions.md`:** one ADR per material call: `context · decision · why-not-the-alternative ·
|
|
180
|
+
what-would-change-it`.
|
|
181
|
+
- **`assumptions.md`:** every "we'll probably need X" demoted to an explicit assumption-to-verify,
|
|
182
|
+
never smuggled into scope as a fact.
|
|
183
|
+
|
|
184
|
+
## Write discipline
|
|
185
|
+
|
|
186
|
+
- **Single canonical writer.** The skill writes review/test-plan and edits plan/tasks;
|
|
187
|
+
`devrites-plan-reviewer` is **read-only** and returns findings + bands.
|
|
188
|
+
- **No silent scope.** Growing acceptance without a decision, or dropping a criterion
|
|
189
|
+
without the Guard, is a defect.
|
|
190
|
+
- Put `eng-review.md` + `test-plan.md` between `tasks.md` and `state.md`. Build/Prove
|
|
191
|
+
read test-plan as coverage; Review/Seal may consult eng-review for scope/failures.
|
|
192
|
+
- Finish `test-plan.md`, fold-back, and rechecks first. Changes to `brief.md`, `spec.md`,
|
|
193
|
+
`decisions.md`, `assumptions.md`, or `questions.md` require revalidating the
|
|
194
|
+
affected decision-coverage rows, assumption audit, residual uncertainty, and closed gates.
|
|
195
|
+
Partial/Missing, an unowned material assumption, or an open blocking/escalating question routes
|
|
196
|
+
`/rite-clarify`/HITL. Re-read affected rows with current evidence; repeat the exact
|
|
197
|
+
plan-reviewer and applicable strategy/DevEx after edits. Root writes READY only after
|
|
198
|
+
the checklist. Normal readiness rejects missing/stale bindings; empty tables,
|
|
199
|
+
placeholders, non-passing preflight rows, or an
|
|
200
|
+
acceptance criterion with no meaningful test mapping remain native review blockers.
|
|
201
|
+
After the final recheck, emit the binding with `devrites-engine check readiness
|
|
202
|
+
--emit-binding <slug>` and replace its one exact line. Never refresh it without Vet.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# `--cross-model`: explicit outside integration
|
|
2
|
+
|
|
3
|
+
This optional pass runs only when the user supplies `--cross-model` and a
|
|
4
|
+
different-model plugin, MCP server, or other native integration is explicitly
|
|
5
|
+
connected. DevRites does not discover aliases, invent a fallback model, or wrap
|
|
6
|
+
availability.
|
|
7
|
+
|
|
8
|
+
Give the integration the same immutable `spec.md`, `plan.md`, and `tasks.md`
|
|
9
|
+
candidate, without author reasoning. Ask for evidence-backed findings on
|
|
10
|
+
boundaries, scope/reuse, proof design, performance, reversibility, and failure
|
|
11
|
+
modes. The integration must remain read-only.
|
|
12
|
+
|
|
13
|
+
If no explicit integration is connected, record `requested but not configured`
|
|
14
|
+
and continue with the native `devrites-plan-reviewer`; absence is neither a pass
|
|
15
|
+
nor a blocker.
|
|
16
|
+
|
|
17
|
+
Verify every returned finding against the project before accepting it. Record
|
|
18
|
+
only the integration used and accepted evidence in `eng-review.md`; do not
|
|
19
|
+
maintain availability aliases or outside-review telemetry.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Depth calibration: always vet, scale the rigor (never skip)
|
|
2
|
+
|
|
3
|
+
`/rite-vet` runs on **every** plan. Simple reversible work gets a **light pass**;
|
|
4
|
+
big/risky work gets a **full pass**, never a skip. Standalone Vet and Autocomplete
|
|
5
|
+
use these same depth rules.
|
|
6
|
+
|
|
7
|
+
A four-section deep-dive on a one-file reversible plan is wasteful; rubber-stamping a
|
|
8
|
+
migration-touching plan is dangerous. Match the effort to the stakes, but **always** leave a
|
|
9
|
+
recorded engineering verdict and a coverage plan.
|
|
10
|
+
|
|
11
|
+
Authority: `.pi/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md`.
|
|
12
|
+
|
|
13
|
+
<!-- BEGIN RESLICE ROUTE-TO-ACTION -->
|
|
14
|
+
- `FOLD` → fold technical topology; invalidate Vet/readiness; affected Vet before Build.
|
|
15
|
+
- `GUARD_AND_REPAIR` → no planning writes; Spec Drift Guard → Clarify → Plan repair → affected Vet.
|
|
16
|
+
- `BLOCKED_INPUT` → no planning writes; exact diagnostic; recover input; reclassify.
|
|
17
|
+
<!-- END RESLICE ROUTE-TO-ACTION -->
|
|
18
|
+
|
|
19
|
+
## Full pass when ANY trips
|
|
20
|
+
- **Irreversible-risk contact:** the plan touches anything on the `afk-hitl.md` irreversible-risk
|
|
21
|
+
list: destructive data migration, auth/authz boundary, public-API break, external-service
|
|
22
|
+
contract, filesystem destruction outside the workspace.
|
|
23
|
+
- **Data model:** new/changed entities, relationships, or persistence shape.
|
|
24
|
+
- **Cross-module blast radius:** the impact (from a code-intelligence index if available (see
|
|
25
|
+
`../../devrites-lib/reference/standards/tooling.md`) or an honest estimate) crosses
|
|
26
|
+
module/service boundaries or has many dependents.
|
|
27
|
+
- **Complexity:** `plan.md` touches **>8 files** or adds **>2 new services/modules/classes**.
|
|
28
|
+
- **Multi-slice / multi-day work**, new dependency/pattern/design system. Slice count alone never creates a human pause.
|
|
29
|
+
- **The user asked**, or `--full`.
|
|
30
|
+
|
|
31
|
+
Full pass = §0 scope challenge + all four axes (each walked finding-by-finding) + the failure-mode
|
|
32
|
+
table + dependency-safety review + the reviewer loop. See [`review-axes.md`](review-axes.md).
|
|
33
|
+
|
|
34
|
+
## Light pass otherwise (the default for simple plans: still never a skip)
|
|
35
|
+
When none of the full-pass triggers fire, run the **light pass**: a fast but real engineering
|
|
36
|
+
check that still leaves a verdict and a coverage plan. In a handful of lines:
|
|
37
|
+
- **§0 scope challenge, in brief:** confirm minimum diff + reuse (one line each); if a complexity
|
|
38
|
+
smell or missed reuse appears, escalate that to the full treatment.
|
|
39
|
+
- **One-line scan per axis** (architecture / plan code-quality / test-coverage / performance):
|
|
40
|
+
"No issues" is a valid result, but you must look and say so per axis, not assume.
|
|
41
|
+
- **Always** produce the acceptance→test map + any regression-Criticals in `test-plan.md`. This is
|
|
42
|
+
the part that makes "a correct engineering plan for *everything*" real. It never downgrades,
|
|
43
|
+
light or full.
|
|
44
|
+
- Write the short `eng-review.md` (`Depth: light`) and harden `tasks.md` with the test requirements.
|
|
45
|
+
|
|
46
|
+
A light-pass finding that turns out to be real **escalates that axis to full treatment** (walk it
|
|
47
|
+
with the human, confidence-banded). Light means *less ceremony*, never *less honesty*.
|
|
48
|
+
|
|
49
|
+
## In `/rite-autocomplete`
|
|
50
|
+
Autocomplete runs `/rite-vet` after `/rite-define` on **every** feature: light or full per the
|
|
51
|
+
triggers above, **never skipped**. Under the AFK gate ceiling:
|
|
52
|
+
- **Auto-apply (no pause):** hardening findings: added test requirements, error-handling /
|
|
53
|
+
failure-mode coverage, tightened scope, reuse-over-rebuild, dependency-order fixes
|
|
54
|
+
(these never grow acceptance). Record the rationale in `decisions.md`.
|
|
55
|
+
- **Topology findings:** marked action; slice count alone never pauses.
|
|
56
|
+
- **Stops:** human-owned irreversible-risk findings pause. Technical recovery follows
|
|
57
|
+
[the canonical retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve),
|
|
58
|
+
with no depth-specific round limit; no-progress exhaustion blocks, never grants readiness.
|
|
59
|
+
- **Cross-model** is off by default; it runs only if `--cross-model` was explicitly armed.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Senior-engineer lenses: how to *see* the findings
|
|
2
|
+
|
|
3
|
+
These are not extra checklist items. They are the instincts an experienced staff engineer
|
|
4
|
+
applies while reading a plan: the pattern recognition that separates "read the plan" from
|
|
5
|
+
"caught the landmine". Apply them across all four axes in [`review-axes.md`](review-axes.md):
|
|
6
|
+
each lens turns a vague unease into a concrete, quotable finding.
|
|
7
|
+
|
|
8
|
+
## The lenses
|
|
9
|
+
|
|
10
|
+
1. **Boring by default.** A team gets a few innovation tokens; everything else should be proven
|
|
11
|
+
technology. When the plan introduces something novel (a new datastore, a hand-rolled queue, a
|
|
12
|
+
bespoke pattern), ask whether this is a wise token to spend or whether a boring built-in does
|
|
13
|
+
it. → Architecture / Scope axes.
|
|
14
|
+
2. **Blast radius.** For every decision: what's the worst case, and how many systems / callers /
|
|
15
|
+
users does it touch? A change with wide blast radius and no rollback is a different risk class
|
|
16
|
+
than a leaf change. → Architecture / Reversibility.
|
|
17
|
+
3. **Reversibility preference.** Prefer the choice that's cheap to undo (feature flag, additive
|
|
18
|
+
migration, incremental rollout) over the one that's right only if you're right the first time.
|
|
19
|
+
Make the cost of being wrong low. → Architecture / Reversibility.
|
|
20
|
+
4. **Incremental over revolutionary.** Strangler-fig, not big-bang rewrite; refactor first, then
|
|
21
|
+
change behavior: never both in one slice. If the plan does a structural rewrite and a behavior
|
|
22
|
+
change together, split them. → Plan code-quality / slice shape.
|
|
23
|
+
5. **Systems over heroes.** Design for a tired engineer at 3am, not your sharpest engineer on
|
|
24
|
+
their best day. A plan that only works if every step is done perfectly is fragile. Favor
|
|
25
|
+
guard rails, explicit errors, and obvious failure paths. → Code-quality / Failure modes.
|
|
26
|
+
6. **Essential vs accidental complexity.** Before anything the plan adds, ask Brooks's question:
|
|
27
|
+
is this solving a real problem, or one we created? Accidental complexity is the cheapest thing
|
|
28
|
+
to cut. → Scope / Code-quality.
|
|
29
|
+
7. **Make the change easy, then make the easy change.** If a slice is hard because the surrounding
|
|
30
|
+
structure fights it, the first move is a (separate, behavior-preserving) refactor: call it out
|
|
31
|
+
so the plan sequences it before the feature work, not tangled into it. → Plan code-quality.
|
|
32
|
+
8. **Failure is information.** Every new codepath fails *somehow* in production: timeout, nil,
|
|
33
|
+
race, stale data, partial write. The plan should name the failure and decide: test it, handle
|
|
34
|
+
it, or accept it loudly (never silently). → Failure-mode coverage.
|
|
35
|
+
9. **DX is product quality.** Slow CI, painful local dev, untestable seams → worse software over
|
|
36
|
+
time. If the plan makes the code harder to test or run locally, that's a real finding, not a nit.
|
|
37
|
+
→ Test-coverage / Code-quality.
|
|
38
|
+
10. **Trust boundary discipline.** Every untrusted input crosses an explicit validation + authz
|
|
39
|
+
boundary before it reaches trusted core logic. A plan that lets a value skip the boundary is a
|
|
40
|
+
security finding even pre-code. → Architecture / Security seam.
|
|
41
|
+
|
|
42
|
+
## Using them
|
|
43
|
+
- A lens is a *prompt*, not a verdict. It turns "something's off here" into a finding you can
|
|
44
|
+
quote and band. If a lens fires, follow it to the specific plan line, then run it through the
|
|
45
|
+
confidence + verification gate.
|
|
46
|
+
- Don't recite the lenses in the output: recite the *findings* they produced.
|
|
47
|
+
- When a plan is genuinely clean against a lens, that's worth one line of evidence ("Reversibility:
|
|
48
|
+
additive migration + flag: strong"), not silence; it shows the lens was applied.
|