devrites 5.10.1 → 5.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +24 -10
- package/bin/devrites.mjs +2 -0
- package/docs/cli.md +4 -1
- package/docs/command-map.md +7 -5
- package/docs/engine/commands.md +7 -5
- package/docs/orchestration.md +5 -2
- package/docs/skills.md +10 -4
- package/docs/usage.md +3 -1
- package/engine/commands.go +3 -0
- package/engine/help.go +190 -0
- package/engine/help_test.go +98 -0
- package/engine/internal/devritespaths/paths.go +2 -0
- package/engine/internal/hostpack/hostpack.go +39 -5
- package/engine/internal/hostpack/hostpack_test.go +27 -13
- package/engine/internal/install/apply.go +17 -4
- package/engine/internal/install/install.go +9 -2
- package/engine/internal/install/install_test.go +15 -2
- package/engine/internal/install/preflight.go +8 -2
- package/engine/internal/install/update.go +1 -1
- package/engine/internal/parallel/cli.go +90 -32
- package/engine/internal/parallel/cli_test.go +32 -0
- package/engine/main.go +15 -8
- package/engine/root_routing_test.go +4 -0
- package/install.sh +4 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +10 -5
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +12 -7
- package/pack/.claude/skills/rite-build/SKILL.md +3 -1
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +4 -3
- package/pack/.claude/skills/rite-build/reference/parallel-batch.md +3 -1
- package/pack/.claude/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/generated/README.md +4 -2
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +10 -5
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +12 -7
- package/pack/generated/claude/skills/rite-build/SKILL.md +3 -1
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +4 -3
- package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +3 -1
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +10 -5
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +12 -7
- package/pack/generated/codex/skills/rite-build/SKILL.md +3 -1
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +4 -3
- package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +3 -1
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/generated/devin/AGENTS.md +23 -0
- package/pack/generated/devin/agents/devrites-code-reviewer.md +145 -0
- package/pack/generated/devin/agents/devrites-devex-reviewer.md +126 -0
- package/pack/generated/devin/agents/devrites-doubt-reviewer.md +91 -0
- package/pack/generated/devin/agents/devrites-evidence-scout.md +77 -0
- package/pack/generated/devin/agents/devrites-frontend-reviewer.md +119 -0
- package/pack/generated/devin/agents/devrites-performance-reviewer.md +117 -0
- package/pack/generated/devin/agents/devrites-plan-drafter.md +102 -0
- package/pack/generated/devin/agents/devrites-plan-reviewer.md +144 -0
- package/pack/generated/devin/agents/devrites-proof-runner.md +76 -0
- package/pack/generated/devin/agents/devrites-retrospector.md +64 -0
- package/pack/generated/devin/agents/devrites-security-auditor.md +112 -0
- package/pack/generated/devin/agents/devrites-simplifier-reviewer.md +97 -0
- package/pack/generated/devin/agents/devrites-slice-wright.md +219 -0
- package/pack/generated/devin/agents/devrites-spec-reviewer.md +99 -0
- package/pack/generated/devin/agents/devrites-strategy-reviewer.md +102 -0
- package/pack/generated/devin/agents/devrites-test-analyst.md +97 -0
- package/pack/generated/devin/agents/devrites-upgrade-planner.md +91 -0
- package/pack/generated/devin/skills/devrites-api-interface/SKILL.md +64 -0
- package/pack/generated/devin/skills/devrites-audit/SKILL.md +51 -0
- package/pack/generated/devin/skills/devrites-browser-proof/SKILL.md +77 -0
- package/pack/generated/devin/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
- package/pack/generated/devin/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +97 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/hypotheses.md +17 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/regression-test.md +30 -0
- package/pack/generated/devin/skills/devrites-debug-recovery/reference/trace.md +25 -0
- package/pack/generated/devin/skills/devrites-doubt/SKILL.md +80 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/SKILL.md +87 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/craft.md +63 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/design-references.md +116 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/fullstack.md +46 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/quality-standards.md +294 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/reuse-first.md +53 -0
- package/pack/generated/devin/skills/devrites-frontend-craft/reference/shape.md +56 -0
- package/pack/generated/devin/skills/devrites-interview/SKILL.md +103 -0
- package/pack/generated/devin/skills/devrites-lib/SKILL.md +57 -0
- package/pack/generated/devin/skills/devrites-lib/reference/candidate-integrity.md +42 -0
- package/pack/generated/devin/skills/devrites-lib/reference/intent-map.md +64 -0
- package/pack/generated/devin/skills/devrites-lib/reference/orchestration-profiles.md +27 -0
- package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +73 -0
- package/pack/generated/devin/skills/devrites-lib/reference/reply-contract.md +88 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/README.md +60 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +30 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +415 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +99 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/anti-patterns.md +48 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/browser-proof-checklist.md +24 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/ci-cd.md +50 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/code-navigation.md +43 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/code-review.md +108 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/coding-style.md +48 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/context-hygiene.md +109 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +167 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/data-integrity.md +118 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/debug-recovery.md +28 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/definition-of-done.md +19 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/deprecation.md +31 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/developer-experience.md +119 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/development-workflow.md +29 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/documentation.md +43 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/edge-case-trace.md +92 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/elicitation.md +85 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/error-handling.md +47 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/git-workflow.md +49 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/hooks.md +25 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/integration-reliability.md +102 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/loop-operations.md +85 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/observability.md +88 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/one-shot-actions.md +97 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/patterns.md +68 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/performance.md +51 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/principles.md +42 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/prose-style.md +123 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/release/ship-checklist.md +8 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/repository-topology.md +80 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/review-checklist.md +12 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/security-checklist.md +25 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/security.md +202 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/skill-authoring.md +209 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/spec-grammar.md +197 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/test-proof-checklist.md +13 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/testing.md +212 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/tooling.md +92 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/workflow-artifacts.md +427 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/code.md +44 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/comparison.md +42 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/diagram.md +51 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/index.md +66 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/input.md +46 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/outline-template.md +106 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/plan.md +48 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/slides.md +40 -0
- package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/table.md +42 -0
- package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +267 -0
- package/pack/generated/devin/skills/devrites-prose-craft/SKILL.md +74 -0
- package/pack/generated/devin/skills/devrites-prose-craft/reference/banned-phrases.md +132 -0
- package/pack/generated/devin/skills/devrites-prose-craft/reference/examples.md +131 -0
- package/pack/generated/devin/skills/devrites-prose-craft/reference/structures.md +196 -0
- package/pack/generated/devin/skills/devrites-source-driven/SKILL.md +53 -0
- package/pack/generated/devin/skills/devrites-ux-shape/SKILL.md +135 -0
- package/pack/generated/devin/skills/devrites-ux-shape/reference/brief-template.md +108 -0
- package/pack/generated/devin/skills/devrites-ux-shape/reference/visual-direction-probe.md +48 -0
- package/pack/generated/devin/skills/rite/SKILL.md +148 -0
- package/pack/generated/devin/skills/rite/reference/menu.md +48 -0
- package/pack/generated/devin/skills/rite-adopt/SKILL.md +51 -0
- package/pack/generated/devin/skills/rite-adopt/reference/adoption.md +19 -0
- package/pack/generated/devin/skills/rite-adopt/reference/anti-patterns.md +19 -0
- package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +142 -0
- package/pack/generated/devin/skills/rite-autocomplete/reference/decision-policy.md +43 -0
- package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +151 -0
- package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +97 -0
- package/pack/generated/devin/skills/rite-build/SKILL.md +102 -0
- package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +148 -0
- package/pack/generated/devin/skills/rite-build/reference/anti-patterns.md +27 -0
- package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +120 -0
- package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +56 -0
- package/pack/generated/devin/skills/rite-build/reference/frontend-trigger.md +39 -0
- package/pack/generated/devin/skills/rite-build/reference/one-slice-cycle.md +51 -0
- package/pack/generated/devin/skills/rite-build/reference/output.md +33 -0
- package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +214 -0
- package/pack/generated/devin/skills/rite-build/reference/phase-contract.md +89 -0
- package/pack/generated/devin/skills/rite-build/reference/spec-drift-guard.md +84 -0
- package/pack/generated/devin/skills/rite-build/reference/tdd.md +27 -0
- package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +96 -0
- package/pack/generated/devin/skills/rite-clarify/SKILL.md +98 -0
- package/pack/generated/devin/skills/rite-clarify/reference/anti-patterns.md +24 -0
- package/pack/generated/devin/skills/rite-clarify/reference/decision-coverage.md +55 -0
- package/pack/generated/devin/skills/rite-converge/SKILL.md +144 -0
- package/pack/generated/devin/skills/rite-converge/reference/anti-patterns.md +35 -0
- package/pack/generated/devin/skills/rite-converge/reference/convergence-assessment.md +65 -0
- package/pack/generated/devin/skills/rite-customize/SKILL.md +60 -0
- package/pack/generated/devin/skills/rite-define/SKILL.md +168 -0
- package/pack/generated/devin/skills/rite-define/reference/anti-patterns.md +26 -0
- package/pack/generated/devin/skills/rite-define/reference/gates.md +159 -0
- package/pack/generated/devin/skills/rite-define/reference/plan-template.md +149 -0
- package/pack/generated/devin/skills/rite-doctor/SKILL.md +68 -0
- package/pack/generated/devin/skills/rite-dogfood/SKILL.md +55 -0
- package/pack/generated/devin/skills/rite-explain/SKILL.md +152 -0
- package/pack/generated/devin/skills/rite-explain/reference/intake.md +89 -0
- package/pack/generated/devin/skills/rite-frame/SKILL.md +114 -0
- package/pack/generated/devin/skills/rite-frame/reference/failure-modes.md +66 -0
- package/pack/generated/devin/skills/rite-handoff/SKILL.md +97 -0
- package/pack/generated/devin/skills/rite-handoff/reference/handoff-template.md +44 -0
- package/pack/generated/devin/skills/rite-learn/SKILL.md +72 -0
- package/pack/generated/devin/skills/rite-plan/SKILL.md +185 -0
- package/pack/generated/devin/skills/rite-plan/reference/anti-patterns.md +34 -0
- package/pack/generated/devin/skills/rite-plan/reference/dependency-graph.md +48 -0
- package/pack/generated/devin/skills/rite-plan/reference/replan-and-repair.md +105 -0
- package/pack/generated/devin/skills/rite-plan/reference/slicing.md +168 -0
- package/pack/generated/devin/skills/rite-plan/reference/task-breakdown.md +42 -0
- package/pack/generated/devin/skills/rite-polish/SKILL.md +105 -0
- package/pack/generated/devin/skills/rite-polish/reference/adr-promotion.md +11 -0
- package/pack/generated/devin/skills/rite-polish/reference/anti-ai-slop.md +187 -0
- package/pack/generated/devin/skills/rite-polish/reference/anti-patterns.md +30 -0
- package/pack/generated/devin/skills/rite-polish/reference/backend-polish.md +80 -0
- package/pack/generated/devin/skills/rite-polish/reference/browser-polish-evidence.md +33 -0
- package/pack/generated/devin/skills/rite-polish/reference/code.md +82 -0
- package/pack/generated/devin/skills/rite-polish/reference/design-memory.md +117 -0
- package/pack/generated/devin/skills/rite-polish/reference/design-system-discovery.md +8 -0
- package/pack/generated/devin/skills/rite-polish/reference/harden-checklist.md +109 -0
- package/pack/generated/devin/skills/rite-polish/reference/ledger.md +65 -0
- package/pack/generated/devin/skills/rite-polish/reference/ui.md +137 -0
- package/pack/generated/devin/skills/rite-pov/SKILL.md +57 -0
- package/pack/generated/devin/skills/rite-pr-feedback/SKILL.md +54 -0
- package/pack/generated/devin/skills/rite-pressure-test/SKILL.md +66 -0
- package/pack/generated/devin/skills/rite-prototype/SKILL.md +104 -0
- package/pack/generated/devin/skills/rite-prove/SKILL.md +122 -0
- package/pack/generated/devin/skills/rite-prove/reference/acceptance-proof.md +88 -0
- package/pack/generated/devin/skills/rite-prove/reference/anti-patterns.md +25 -0
- package/pack/generated/devin/skills/rite-prove/reference/browser-proof.md +51 -0
- package/pack/generated/devin/skills/rite-prove/reference/failure-triage.md +43 -0
- package/pack/generated/devin/skills/rite-prove/reference/proof-ladder.md +28 -0
- package/pack/generated/devin/skills/rite-prove/reference/test-command-discovery.md +30 -0
- package/pack/generated/devin/skills/rite-quick/SKILL.md +81 -0
- package/pack/generated/devin/skills/rite-resolve/SKILL.md +98 -0
- package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +118 -0
- package/pack/generated/devin/skills/rite-review/SKILL.md +171 -0
- package/pack/generated/devin/skills/rite-review/reference/anti-patterns.md +32 -0
- package/pack/generated/devin/skills/rite-review/reference/cognitive-load.md +90 -0
- package/pack/generated/devin/skills/rite-review/reference/feature-scoped-review.md +26 -0
- package/pack/generated/devin/skills/rite-review/reference/five-axis-review.md +66 -0
- package/pack/generated/devin/skills/rite-review/reference/nielsen-heuristics.md +126 -0
- package/pack/generated/devin/skills/rite-review/reference/performance-checklist.md +80 -0
- package/pack/generated/devin/skills/rite-review/reference/performance-review.md +14 -0
- package/pack/generated/devin/skills/rite-review/reference/security-review.md +42 -0
- package/pack/generated/devin/skills/rite-seal/SKILL.md +74 -0
- package/pack/generated/devin/skills/rite-seal/reference/anti-patterns.md +29 -0
- package/pack/generated/devin/skills/rite-seal/reference/final-evidence.md +41 -0
- package/pack/generated/devin/skills/rite-seal/reference/go-no-go.md +29 -0
- package/pack/generated/devin/skills/rite-seal/reference/output.md +5 -0
- package/pack/generated/devin/skills/rite-seal/reference/phase-contract.md +47 -0
- package/pack/generated/devin/skills/rite-seal/reference/risk-and-rollback.md +56 -0
- package/pack/generated/devin/skills/rite-seal/reference/seal-template.md +27 -0
- package/pack/generated/devin/skills/rite-ship/SKILL.md +87 -0
- package/pack/generated/devin/skills/rite-ship/reference/anti-patterns.md +28 -0
- package/pack/generated/devin/skills/rite-ship/reference/close-out.md +68 -0
- package/pack/generated/devin/skills/rite-ship/reference/git-ship.md +120 -0
- package/pack/generated/devin/skills/rite-ship/reference/rollout.md +62 -0
- package/pack/generated/devin/skills/rite-ship/reference/ship-template.md +39 -0
- package/pack/generated/devin/skills/rite-spec/SKILL.md +149 -0
- package/pack/generated/devin/skills/rite-spec/reference/acceptance-criteria.md +31 -0
- package/pack/generated/devin/skills/rite-spec/reference/ai-spec-template.md +40 -0
- package/pack/generated/devin/skills/rite-spec/reference/anti-patterns.md +27 -0
- package/pack/generated/devin/skills/rite-spec/reference/interview-patterns.md +56 -0
- package/pack/generated/devin/skills/rite-spec/reference/investigation.md +83 -0
- package/pack/generated/devin/skills/rite-spec/reference/question-protocol.md +36 -0
- package/pack/generated/devin/skills/rite-spec/reference/references-intake.md +62 -0
- package/pack/generated/devin/skills/rite-spec/reference/spec-checklists.md +89 -0
- package/pack/generated/devin/skills/rite-spec/reference/spec-template.md +154 -0
- package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +227 -0
- package/pack/generated/devin/skills/rite-status/SKILL.md +57 -0
- package/pack/generated/devin/skills/rite-temper/SKILL.md +129 -0
- package/pack/generated/devin/skills/rite-temper/reference/anti-patterns.md +30 -0
- package/pack/generated/devin/skills/rite-temper/reference/review-dimensions.md +66 -0
- package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +53 -0
- package/pack/generated/devin/skills/rite-temper/reference/significance.md +46 -0
- package/pack/generated/devin/skills/rite-temper/reference/strategy-template.md +90 -0
- package/pack/generated/devin/skills/rite-upgrade/SKILL.md +121 -0
- package/pack/generated/devin/skills/rite-vet/SKILL.md +192 -0
- package/pack/generated/devin/skills/rite-vet/reference/anti-patterns.md +43 -0
- package/pack/generated/devin/skills/rite-vet/reference/artifacts.md +202 -0
- package/pack/generated/devin/skills/rite-vet/reference/cross-model.md +19 -0
- package/pack/generated/devin/skills/rite-vet/reference/depth.md +59 -0
- package/pack/generated/devin/skills/rite-vet/reference/eng-lenses.md +48 -0
- package/pack/generated/devin/skills/rite-vet/reference/review-axes.md +201 -0
- package/pack/generated/devin/skills/rite-watch-pr/SKILL.md +84 -0
- package/pack/generated/devin/skills/rite-zoom-out/SKILL.md +69 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
- package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +10 -5
- package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +12 -7
- package/pack/generated/omp/skills/rite-build/SKILL.md +3 -1
- package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +4 -3
- package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +3 -1
- package/pack/generated/omp/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
- package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +10 -5
- package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +12 -7
- package/pack/generated/pi/skills/rite-build/SKILL.md +3 -1
- package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +4 -3
- package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +3 -1
- package/pack/generated/pi/skills/rite-define/reference/plan-template.md +1 -1
- package/package.json +4 -2
- package/scripts/build-host-artifacts.sh +48 -5
- package/scripts/devin-generate.sh +222 -0
- package/update.sh +2 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Reuse first: frontend application
|
|
2
|
+
|
|
3
|
+
Frontend application of the canonical rule in
|
|
4
|
+
[`coding-style.md`](../../devrites-lib/reference/standards/coding-style.md#reuse-before-you-write):
|
|
5
|
+
reuse → extend → build new, AHA caveat below. Before creating any new component, style,
|
|
6
|
+
token, icon, hook, util, or helper, search the project first.
|
|
7
|
+
|
|
8
|
+
This applies to UI **and** non-UI code: utilities, helpers, types, validators, schemas,
|
|
9
|
+
formatters, hooks, query helpers: anything that might already exist.
|
|
10
|
+
|
|
11
|
+
## The decision (in order)
|
|
12
|
+
1. **Search first.** Apply `../../devrites-lib/reference/standards/tooling.md`: use the
|
|
13
|
+
primary available code index to find similar definitions, cross-check only a named
|
|
14
|
+
unresolved predicate, then fall back to grep/glob over `components/`, design tokens, hooks/,
|
|
15
|
+
utils/, lib/. Look for things doing the *same job*, not just the same name.
|
|
16
|
+
2. **Exact fit → REUSE.** Compose / import the existing thing. No copy, no fork.
|
|
17
|
+
3. **Close fit → EXTEND.** Add a variant/prop/option that the existing component or util
|
|
18
|
+
can carry without distortion. Adding a prop to a button is fine; adding ten props that
|
|
19
|
+
each branch the internals is not.
|
|
20
|
+
4. **No fit → BUILD NEW**, in the project's idiom. If a similar need is likely to recur,
|
|
21
|
+
propose adding it to the shared system (component library / utils module). If it's
|
|
22
|
+
truly one-off, build it locally: don't pre-abstract.
|
|
23
|
+
|
|
24
|
+
## When to *avoid* reuse (the AHA caveat)
|
|
25
|
+
Reuse is good; **forcing** it isn't. **Avoid Hasty Abstractions**: if making the existing
|
|
26
|
+
thing fit means warping its API or breaking its contract for one caller, **don't**.
|
|
27
|
+
Duplication is cheaper than the wrong abstraction. Build a sibling component/util and let
|
|
28
|
+
a real pattern emerge from two or three callers before consolidating.
|
|
29
|
+
|
|
30
|
+
## Record the decision (per slice)
|
|
31
|
+
On each slice, note what was reused / extended / created new, so the seal can see the
|
|
32
|
+
consistency story and reviewers can spot silent duplication.
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
Existing reused: <Button, useToast, formatCents>
|
|
36
|
+
Extended: <Card — added variant="elevated">
|
|
37
|
+
Created new: <ExportProgress (no prior equivalent; propose for shared lib)>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Anti-patterns to name
|
|
41
|
+
- Silently re-implementing an existing component / hook / util because it was easier than
|
|
42
|
+
finding it. Search first.
|
|
43
|
+
- Copy-pasting a component from `components/` into the feature folder. That's a fork.
|
|
44
|
+
- Adding a second icon set / second toast library / second date util because the existing
|
|
45
|
+
one didn't quite fit: almost always extend the existing or ask first.
|
|
46
|
+
- Forcing reuse via 8 boolean props that branch the internals. That's an abstraction
|
|
47
|
+
collapsing under its own weight. Split it.
|
|
48
|
+
|
|
49
|
+
## Search hints
|
|
50
|
+
- **UI**: `components/ui/`, design-system package imports neighboring features use,
|
|
51
|
+
`tokens.*` / Tailwind config / theme files, icon barrel files, layout primitives.
|
|
52
|
+
- **Non-UI**: `lib/`, `utils/`, `helpers/`, `services/`, `validators/`, `schemas/`,
|
|
53
|
+
`hooks/`, language stdlib equivalents.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Shape before code
|
|
2
|
+
|
|
3
|
+
Decide what the UI *is* before how it looks. Aesthetics follow structure; structure
|
|
4
|
+
follows the user's goal. Skipping this is how you get pretty UI that doesn't work.
|
|
5
|
+
|
|
6
|
+
**The feature-level shape already exists.** `/rite-spec` ran `devrites-ux-shape` and wrote
|
|
7
|
+
`design-brief.md` (design direction, key states, interaction model). In `/rite-build` this
|
|
8
|
+
is a **per-slice refinement of that brief for the surface you're about to code**: confirm
|
|
9
|
+
the answers below against the brief and fill any slice-specific gaps; don't re-derive the
|
|
10
|
+
design. **Only shape from scratch here** when a UI slice has no `design-brief.md` (a spec
|
|
11
|
+
written before shaping), then run `devrites-ux-shape` first; only if it cannot run, answer
|
|
12
|
+
these and write the brief per `../../devrites-ux-shape/reference/brief-template.md`, and
|
|
13
|
+
return through `/rite-vet` before code.
|
|
14
|
+
|
|
15
|
+
## Answer these before writing markup
|
|
16
|
+
1. **User goal:** what is the user here to accomplish? One sentence.
|
|
17
|
+
2. **Primary action:** the single most important thing on this surface. It must be
|
|
18
|
+
visually obvious. Everything else is secondary.
|
|
19
|
+
3. **Information hierarchy:** what must be seen first, second, third. Rank content;
|
|
20
|
+
the layout expresses the ranking.
|
|
21
|
+
4. **States:** design all of them, not just the happy path:
|
|
22
|
+
- default / populated
|
|
23
|
+
- loading (initial + subsequent)
|
|
24
|
+
- empty (with a clear next action: welcoming, not a dead end)
|
|
25
|
+
- error (what happened + how to recover)
|
|
26
|
+
- success
|
|
27
|
+
- disabled / read-only / no-permission
|
|
28
|
+
- long content / overflow / many items
|
|
29
|
+
5. **Responsive:** how it reflows from small (320) to large (1440). What collapses,
|
|
30
|
+
stacks, hides, or scrolls.
|
|
31
|
+
6. **Accessibility:** focus order, labels, contrast, keyboard operability, semantics.
|
|
32
|
+
7. **Interaction model:** what's inline vs. navigated vs. (rarely) a modal; optimistic
|
|
33
|
+
vs. pending; how feedback is given.
|
|
34
|
+
|
|
35
|
+
## Output
|
|
36
|
+
The answers live in the feature's `design-brief.md` (shaped at spec by `devrites-ux-shape`).
|
|
37
|
+
In build, append any slice-specific refinement to its **Build-time refinements** section;
|
|
38
|
+
if you shaped from scratch (no brief existed), write the brief now per
|
|
39
|
+
`../../devrites-ux-shape/reference/brief-template.md`. This drives the build and the polish
|
|
40
|
+
checklist.
|
|
41
|
+
|
|
42
|
+
## NEVER (shape)
|
|
43
|
+
|
|
44
|
+
- Never start coding markup without naming the **primary action** for the
|
|
45
|
+
surface.
|
|
46
|
+
- Never design only the populated/happy state. Empty / loading / error /
|
|
47
|
+
disabled / long-content are not optional.
|
|
48
|
+
- Never decide the visual direction by personal taste when the project has
|
|
49
|
+
an existing system. Discover first (`design-references.md`).
|
|
50
|
+
- Never invent a new flow when a neighboring feature already has one: match
|
|
51
|
+
the neighbor, then deviate only with a recorded reason.
|
|
52
|
+
- Never paper over an ambiguous spec with a "reasonable guess". Ask the user
|
|
53
|
+
with 2 - 3 concrete options.
|
|
54
|
+
- Never name a state for the *technical* condition (`isLoadingTrue`) when
|
|
55
|
+
the *user-facing* name (`Loading your invoices…`) tells the user what's
|
|
56
|
+
happening.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devrites-interview
|
|
3
|
+
description: Interview the user one question at a time to extract intent. Use when the user says "interview me", "I am not sure what I want", or the ask is underspecified. Not for casual clarification.
|
|
4
|
+
triggers:
|
|
5
|
+
- model
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# devrites-interview: extract intent
|
|
9
|
+
|
|
10
|
+
Resolve the difference between the request and the user's intent before writing a
|
|
11
|
+
spec, plan, or code.
|
|
12
|
+
|
|
13
|
+
## Protocol
|
|
14
|
+
- **Open with a working hypothesis.** State in one line what the user wants, then ask about the
|
|
15
|
+
highest-value unresolved human-owned material decision.
|
|
16
|
+
- **One question per turn.** Multiple questions get one answered and the rest ignored.
|
|
17
|
+
- **Attach an explicit recommendation** and its reason to every question:
|
|
18
|
+
> "I recommend CSV only because it covers the use case. Choose CSV, CSV + XLSX,
|
|
19
|
+
> or something else?"
|
|
20
|
+
This is a concrete candidate for the user's decision, not an assumption or confirmation.
|
|
21
|
+
- **Highest-value question first:** order by how much the answer changes the build. A
|
|
22
|
+
question that moves the data model or acceptance criteria beats a cosmetic one.
|
|
23
|
+
- **Prioritize impact and bound each pass.** Order unknowns **scope > security/privacy > UX >
|
|
24
|
+
technical**. A pass MAY contain at most **3 questions** for cognitive load. After each pass,
|
|
25
|
+
rescan the decision tree and continue in later turns until every human-owned material decision
|
|
26
|
+
is explicitly selected or explicitly deferred by the user. A cap MUST NOT move a blocker to
|
|
27
|
+
`assumptions.md`. Own and log reversible, low-impact technical details instead of asking.
|
|
28
|
+
- **Structured options** when the space is enumerable: present them as the standard ranked
|
|
29
|
+
**option set** ([[`afk-hitl.md`](../devrites-lib/reference/standards/afk-hitl.md) → "Option set"](../devrites-lib/reference/standards/afk-hitl.md#option-set-how-every-gap-is-presented)): recommended **first**, labelled
|
|
30
|
+
`(Recommended)`, each with a dimension-tagged rationale (`logic · infra · business ·
|
|
31
|
+
architecture`, + `security`/`UX`/`risk` when in scope), plus the escape hatch. Render via
|
|
32
|
+
`AskUserQuestion` when the harness has it:
|
|
33
|
+
```
|
|
34
|
+
1. <recommended> (Recommended) — logic: … · infra: … · business: … · architecture: …
|
|
35
|
+
2. <alternative> — <rationale + the trade-off it accepts>
|
|
36
|
+
3. Something else — I'll describe it
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Completion condition
|
|
40
|
+
Complete only when a topology and decision-tree rescan finds no unresolved human-owned
|
|
41
|
+
material decision. Such a decision closes only through the user's option selection,
|
|
42
|
+
free-form answer, or explicit deferral. A recommendation is not confirmation. If the user
|
|
43
|
+
stops early, persist every visible blocker and MUST NOT claim readiness or advance.
|
|
44
|
+
|
|
45
|
+
Ask fewer, deeper questions. If answers stop converging around one area, **reframe once**
|
|
46
|
+
instead of asking another version of the same question.
|
|
47
|
+
|
|
48
|
+
## Want vs. should-want
|
|
49
|
+
Users sometimes name the convention or best practice they think they should want instead
|
|
50
|
+
of their actual preference. Signals include abstract virtues ("scalable", "clean",
|
|
51
|
+
"modern"), deference to convention, or an answer that fits any project. Ask: *"if you
|
|
52
|
+
didn't have to justify this to anyone, what would you want?"* Record that answer rather
|
|
53
|
+
than designing to the generic one.
|
|
54
|
+
|
|
55
|
+
## What counts as a yes
|
|
56
|
+
Approval requires an **explicit** yes. Treat these replies differently:
|
|
57
|
+
- *"Whatever you think is best"* / *"you decide"*: **delegation, not approval.** Offer two
|
|
58
|
+
concrete options so the user chooses the substance or explicitly defers it.
|
|
59
|
+
- *"Sounds good"* / *"sure, let's go"*: confirm once for a material decision rather than
|
|
60
|
+
treating a polite exit as approval.
|
|
61
|
+
- **Silence:** not consent. State what is out of scope and get explicit approval for it.
|
|
62
|
+
|
|
63
|
+
## Don't ask
|
|
64
|
+
- Things the codebase answers (read it first).
|
|
65
|
+
- Reversible, low-impact technical details (decide and log as agent-owned assumptions).
|
|
66
|
+
- Everything at once "to be thorough."
|
|
67
|
+
|
|
68
|
+
## When the ask is vague: map the decision tree first
|
|
69
|
+
For a short or vague request (`"design a contact page"`), do not ask isolated questions.
|
|
70
|
+
Sketch the **decision tree** first, then resolve each branch **depth-first** with the
|
|
71
|
+
protocol above. Domain branches per area:
|
|
72
|
+
[`../rite-spec/reference/interview-patterns.md`](../rite-spec/reference/interview-patterns.md).
|
|
73
|
+
|
|
74
|
+
## Reframe (once, when stuck)
|
|
75
|
+
If the interview is not converging, use **one** turn to challenge the premise:
|
|
76
|
+
*"is a form even the right answer here, or a mailto / booking link?"* Then resume the
|
|
77
|
+
protocol with the revised premise.
|
|
78
|
+
|
|
79
|
+
## /clarify mode: coverage scan of an existing spec
|
|
80
|
+
When clarifying a written spec rather than extracting intent from scratch, first enumerate
|
|
81
|
+
its actors, journeys/components, states, data boundaries, interfaces/integrations, and
|
|
82
|
+
operational/proof surfaces. Scan every material surface against that taxonomy and mark
|
|
83
|
+
**Clear / Partial / Missing** with evidence. Ask at most **3 prioritized decision packets per
|
|
84
|
+
pass**, targeting Missing before Partial, one per turn with an explicit recommendation and reason.
|
|
85
|
+
A packet may close
|
|
86
|
+
several cells only when they share one owner and trade-off.
|
|
87
|
+
|
|
88
|
+
**Integrate each answer into the relevant spec section** immediately. A Q&A log alone is
|
|
89
|
+
insufficient.
|
|
90
|
+
Record each question and resolution in `decision-coverage.md` as scan evidence, not a
|
|
91
|
+
transcript block in `spec.md`.
|
|
92
|
+
Re-run the scan after each pass. Packet limits control cognitive load, never readiness. Continue
|
|
93
|
+
later passes while human-owned blockers remain, and stop only when every row is clear, agent-owned,
|
|
94
|
+
not applicable, or explicitly deferred by the user with a nonblocking reason, owner, and validation
|
|
95
|
+
gate. Then re-score the affected
|
|
96
|
+
`checklists/<domain>.md`.
|
|
97
|
+
|
|
98
|
+
## Output
|
|
99
|
+
A short summary for the caller: objective in one sentence, confirmed decisions,
|
|
100
|
+
open non-blocking items, and the recommended next step. If a workspace is active, write
|
|
101
|
+
Q&A to `questions.md`, confirmed calls to `decisions.md`, and only agent-owned reversible,
|
|
102
|
+
low-impact technical details to `assumptions.md`. If not, return the summary without creating
|
|
103
|
+
a workspace.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devrites-lib
|
|
3
|
+
description: Internal shared DevRites helper library. Documents cross-cutting engine commands and references; not a user workflow. Do not invoke directly.
|
|
4
|
+
triggers: []
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# devrites-lib: shared workflow contracts
|
|
8
|
+
|
|
9
|
+
Do **not** invoke this skill directly.
|
|
10
|
+
|
|
11
|
+
## Ownership boundary
|
|
12
|
+
|
|
13
|
+
- The host owns instruction loading, exact-agent dispatch, scheduling, waiting,
|
|
14
|
+
follow-up, results, and history. Skills state the role/result, never native
|
|
15
|
+
fields or dispatch receipts.
|
|
16
|
+
- Dispatch every workflow-required role fresh. A missing role stops for HITL;
|
|
17
|
+
never skip, substitute, or perform its work in the root.
|
|
18
|
+
- The root owns DevRites state/artifacts but never source/tests. Codex grants it
|
|
19
|
+
workspace permission only because children cannot elevate; writing follows
|
|
20
|
+
[`reference/standards/agents.md`](reference/standards/agents.md).
|
|
21
|
+
- The engine owns the retained deterministic structure, atomic-write, install,
|
|
22
|
+
evidence-freshness, and safety primitives only.
|
|
23
|
+
|
|
24
|
+
## Workspace orientation
|
|
25
|
+
|
|
26
|
+
Use the supplied slug or read `.devrites/ACTIVE`. Require its authoritative
|
|
27
|
+
`state.md`; read it directly, then only needed phase artifacts. Never infer
|
|
28
|
+
lifecycle state from chat or optional `README.md`.
|
|
29
|
+
|
|
30
|
+
## Shared references
|
|
31
|
+
|
|
32
|
+
- [`reference/standards/agents.md`](reference/standards/agents.md): native custom-agent roles,
|
|
33
|
+
immutable inputs, result contracts, and source-boundary review.
|
|
34
|
+
- [`reference/candidate-integrity.md`](reference/candidate-integrity.md): the
|
|
35
|
+
content-bound candidate lifecycle from Build through Ship
|
|
36
|
+
([`workspace-artifact-schema.md`](reference/workspace-artifact-schema.md)).
|
|
37
|
+
- [`reference/reply-contract.md`](reference/reply-contract.md): compact user-facing
|
|
38
|
+
completion states. The host renders the response normally.
|
|
39
|
+
- [`reference/visual-playbooks/index.md`](reference/visual-playbooks/index.md): progressive
|
|
40
|
+
visual HTML playbook router (load matching ids only; dual-read outline).
|
|
41
|
+
|
|
42
|
+
## Deterministic engine surface
|
|
43
|
+
|
|
44
|
+
The engine is limited to:
|
|
45
|
+
|
|
46
|
+
- `check readiness` for structure, `check candidate` for content-bound identity,
|
|
47
|
+
and `check seal` for structure plus exact artifact bindings; `secret-scan` and
|
|
48
|
+
`version` remain read-only helpers.
|
|
49
|
+
- Atomic state: `state resolve` for answer/drop/batch and transactional
|
|
50
|
+
`state close`.
|
|
51
|
+
- Offline, local `install`, `update`, and `uninstall`; their shell/npm callers
|
|
52
|
+
acquire the candidate bundle, source, and binary before invoking the engine.
|
|
53
|
+
|
|
54
|
+
Exact native agents/checklists own semantics; the host filesystem owns ledger
|
|
55
|
+
reads/preview/confirmed no-clobber writes, spec grammar re-reading, question-id
|
|
56
|
+
allocation, clarify cursor edits, AFK accounting, recovery accounting, and
|
|
57
|
+
read-only diagnostics. Repository scripts and CI own gates.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Candidate integrity
|
|
2
|
+
|
|
3
|
+
Manifest and binding grammar remain in
|
|
4
|
+
[`workspace-artifact-schema.md`](workspace-artifact-schema.md).
|
|
5
|
+
`devrites-engine check candidate <slug>` alone hashes candidates.
|
|
6
|
+
Missing/duplicate/malformed/mismatched bindings block.
|
|
7
|
+
|
|
8
|
+
## Lifecycle
|
|
9
|
+
|
|
10
|
+
- Build maintains actual scoped `present`/`deleted` manifest rows.
|
|
11
|
+
- Prove binds approved real proof in evidence/browser artifacts; candidate checks
|
|
12
|
+
before/after commands match; no source mutation.
|
|
13
|
+
- Polish closes only after code/UI corrections, capability folds, design-memory
|
|
14
|
+
updates and ADR promotion; update manifest/affected proof for every path.
|
|
15
|
+
- Review binds reconciled coverage to that closed digest; corrections return
|
|
16
|
+
through affected Prove and fresh affected reviewers.
|
|
17
|
+
- Seal binds the reviewed digest, rechecks bindings, runs `devrites-engine check seal <slug>`.
|
|
18
|
+
- Ship is candidate-read-only; bookkeeping only; source/manifest changes return through Prove,
|
|
19
|
+
Review, Seal. No alternate hash implementation.
|
|
20
|
+
|
|
21
|
+
## Evidence validity
|
|
22
|
+
|
|
23
|
+
Verify evidence, scope/criterion, source, dependencies, configuration, environment, toolchain, command/cwd,
|
|
24
|
+
prerequisites, and decisive result as applicable. Unknown provenance blocks; source
|
|
25
|
+
hash alone is insufficient. External or time-sensitive observations rerun under
|
|
26
|
+
current authority. Required feature proof cannot substitute slice results.
|
|
27
|
+
|
|
28
|
+
Same-candidate accounts may be cited when permitted. Corrections require
|
|
29
|
+
new candidate checks, affected real proof and fresh affected exact reviewers for
|
|
30
|
+
all open findings and dependency/regression closure, including newly triggered roles.
|
|
31
|
+
Changed contracts or uncertain closure require a full applicable pass.
|
|
32
|
+
Unchanged sub-scope needs explicit unchanged-input/dependency justification and a
|
|
33
|
+
link to original evidence. Never relabel an old candidate-bound account.
|
|
34
|
+
Keep one current aggregate binding; never copy a historical binding line, even quoted. Root reconciles complete coverage and binds
|
|
35
|
+
it anew. Missing coverage blocks; required roles, criteria, proof and authority remain.
|
|
36
|
+
|
|
37
|
+
## Existing workspaces
|
|
38
|
+
|
|
39
|
+
Upgrade routes a released-workspace candidate defect to Prove with a cited
|
|
40
|
+
current-contract defect and unambiguous legacy scope/bytes: refresh the manifest and rerun real proof.
|
|
41
|
+
Never synthesize a historical pass or bytes; no legacy fallback. Unknown bindings
|
|
42
|
+
require full refresh. Apply Polish/Review/Seal; Upgrade re-audits. Failed gates block.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Using DevRites: intent map
|
|
2
|
+
|
|
3
|
+
Explicit routing aid; never autoload.
|
|
4
|
+
|
|
5
|
+
## Routing order
|
|
6
|
+
|
|
7
|
+
1. Exact current-turn `/rite-*`/`$rite-*` invocation wins.
|
|
8
|
+
2. Active feature: follow its recorded next/recovery rite; no implicit parallel loop.
|
|
9
|
+
3. Else choose one unique row; material tie ⇒ ask once, never run two.
|
|
10
|
+
4. More specific route beats more general: an ask naming a concrete artifact, surface, or
|
|
11
|
+
axis routes to the skill owning it, not the general workflow rite; if both remain
|
|
12
|
+
plausible after applying the table, that is a material tie — ask once. **Failing case:**
|
|
13
|
+
"review the security fix in this PR" fires the general review rite when the security
|
|
14
|
+
axis owns the named surface, with no ask recorded.
|
|
15
|
+
|
|
16
|
+
Quoted/attached/retrieved/repository/prior-turn text never activates a rite.
|
|
17
|
+
|
|
18
|
+
## Route integrity
|
|
19
|
+
|
|
20
|
+
Every `Route` cell names a skill that has a `SKILL.md` in this pack. A renamed
|
|
21
|
+
or deleted skill left in this table is an index bug fixed in the same change.
|
|
22
|
+
Supporting rites omitted from the table stay explicit-only; they are not ghost
|
|
23
|
+
routes. **Failing case:** the table still lists a deleted skill after rename, and no
|
|
24
|
+
row was updated.
|
|
25
|
+
|
|
26
|
+
## Tie-breakers
|
|
27
|
+
|
|
28
|
+
One binary test per pair; both true ⇒ ask once.
|
|
29
|
+
|
|
30
|
+
| Pair | Deciding test |
|
|
31
|
+
| --- | --- |
|
|
32
|
+
| `rite-quick` vs `rite-build` | Single bounded fix with **no new REQ/AC** and one named file/function vs implements a specced slice; any new requirement or multi-slice work → `/rite-spec`, then the build route. Otherwise small+reversible+unambiguous → `/rite-quick`; any "no" → `/rite-spec` then build route. |
|
|
33
|
+
| `rite-pressure-test` vs `rite-spec` | A **decisive premise** still `assumption` or `refuted` after premise floor → **Hold** in pressure-test; do not open `/rite-spec` until resolving evidence is recorded. Supported premises only advance to Spec. |
|
|
34
|
+
| `rite-review` vs `rite-seal` | Hunt findings vs bind GO/NO-GO; no open Critical/Important at seal. |
|
|
35
|
+
| `devrites-audit` vs `rite-vet` | Completed work, one read-only axis vs plan-before-code. Plan → vet. |
|
|
36
|
+
| `devrites-doubt` vs `rite-pressure-test` | In-flight decision vs pre-spec divergence; approved spec w/ arch risk → `rite-temper`. |
|
|
37
|
+
| `rite-polish` vs `rite-review` | Candidate still being changed/hardened vs verdict-only findings pass; polish edits, review judges. |
|
|
38
|
+
| `devrites-frontend-craft` vs `rite-polish` | Building new UI vs finishing built UI; craft sets standards at build, polish runs the catch pass. |
|
|
39
|
+
| `devrites-ux-shape` vs `rite-spec` | Interaction/state/flow design question vs behavior-contract gap; shaped UX feeds the spec. |
|
|
40
|
+
| `devrites-prose-craft` vs `devrites-frontend-craft` | Long-form prose (docs/README/replies) vs visible product copy; boundary lives in [`browser-proof-checklist.md`](standards/browser-proof-checklist.md). |
|
|
41
|
+
| `rite-frame` vs `rite-quick` | Ask underspecified/vague vs small, reversible, unambiguous; frame first when the ask cannot name its outcome. |
|
|
42
|
+
| `devrites-interview` vs `rite-pressure-test` | No stated idea yet (extract intent) vs idea exists (stress-test it). |
|
|
43
|
+
| `rite-handoff` vs `rite-status` | Syncing chat-only context into the workspace for a fresh agent vs read-only current-state report. |
|
|
44
|
+
| `rite-pov` vs `rite-pressure-test` | Named external candidate needs a project-fit verdict (adopt/trial/hold/reject) vs a pre-spec premise still unproven; surveys stay pressure-test. |
|
|
45
|
+
| `rite-pov` vs `rite-spec` | Technology, library, CVE, or pattern choice vs a behavior contract; pov never writes REQ/AC. |
|
|
46
|
+
|
|
47
|
+
Wrong-skill fire: stop, admit it, switch rites.
|
|
48
|
+
|
|
49
|
+
| User intent | Route | Defining constraint |
|
|
50
|
+
| --- | --- | --- |
|
|
51
|
+
| New/vague feature | `/rite-spec` (Codex: `$rite-spec`) | Investigate before planning. |
|
|
52
|
+
| Spec has unknowns/coverage gaps | `/rite-clarify` | Required topology scan; zero-question pass when clear. |
|
|
53
|
+
| Derive intent from existing code without an active feature contract | `/rite-adopt` | Establish the brownfield contract. |
|
|
54
|
+
| Reconcile implementation with an active feature contract | `/rite-converge` | Identify gaps and add missing slices. |
|
|
55
|
+
| Older workspace cannot resume | `/rite-upgrade` | Audit cited current-contract defects; age alone is no defect. Route semantic repairs to normal owners; preserve history without synthetic proof. |
|
|
56
|
+
| Review plan before code | `/rite-vet` | Every plan; depth scales to risk. |
|
|
57
|
+
| Small safe fix | `/rite-quick` | Escalates auth, migration, public API, destructive, ambiguous, or multi-slice work. |
|
|
58
|
+
| Prove UI/runtime | `/rite-prove` + `devrites-browser-proof` | Capture real evidence. |
|
|
59
|
+
| Stuck/unfamiliar | `/rite-zoom-out` | Map before editing. |
|
|
60
|
+
| Teach me | `/rite-explain` | Human learning loop. |
|
|
61
|
+
| Decide ship readiness | `/rite-seal` | Decides; never mutates Git. |
|
|
62
|
+
| Execute ship after GO | `/rite-ship` | Requires GO/type-GO. |
|
|
63
|
+
| Unattended lifecycle | `/rite-autocomplete` | Clean baseline/checkpoints; hard gates stop. |
|
|
64
|
+
| Adopt/reject a named library, platform, CVE, or pattern | `/rite-pov` | Project evidence + live primary source; Hold if either is missing. |
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Native execution profiles
|
|
2
|
+
|
|
3
|
+
Profiles scale **change depth**, not orchestration machinery. The host discovers
|
|
4
|
+
the exact project specialist named by a workflow, dispatches it in fresh context,
|
|
5
|
+
waits for the result, validates the result shape, and reconciles the evidence.
|
|
6
|
+
DevRites does not provide an engine broker, agent API version, tier protocol,
|
|
7
|
+
receipt, polling loop, or fallback agent.
|
|
8
|
+
|
|
9
|
+
| Profile | Use when | Depth |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| **Quick** | One small, reversible, unambiguous change | One bounded implementation pass and focused proof; escape to Standard as soon as the significance gate fails. |
|
|
12
|
+
| **Standard** | Default feature work | Full required lifecycle, named independent passes, focused then feature-level proof. |
|
|
13
|
+
| **Full** | Security, migration, public contracts, high blast radius, or explicit `--full` | Same phases and exact roles as Standard, with every applicable conditional axis, broader failure-mode proof, and stricter final review. |
|
|
14
|
+
|
|
15
|
+
A profile never skips a workflow-named specialist, changes source-write
|
|
16
|
+
ownership, relaxes a gate, or authorizes an irreversible action. Missing or
|
|
17
|
+
incompatible exact roles stop for HITL; the root never substitutes a generic
|
|
18
|
+
agent or performs the specialist's work inline.
|
|
19
|
+
|
|
20
|
+
A child result is a claim. Admit it only against observations (`git diff
|
|
21
|
+
--name-only`, recorded commands, artifact existence) — never against the
|
|
22
|
+
child's prose. **Failing case:** a wright reports "done" and the parent
|
|
23
|
+
advances without comparing touched paths to the path contract.
|
|
24
|
+
|
|
25
|
+
The complete 17-role catalog and source-writing boundary live in
|
|
26
|
+
[`standards/agents.md`](standards/agents.md). Review-specific applicability
|
|
27
|
+
lives in [`parallel-dispatch.md`](parallel-dispatch.md).
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Native review dispatch
|
|
2
|
+
|
|
3
|
+
Host dispatch; DevRites governs.
|
|
4
|
+
|
|
5
|
+
## Roster
|
|
6
|
+
|
|
7
|
+
Review: Spec/Code; Seal: all applicable roles.
|
|
8
|
+
|
|
9
|
+
| Reviewer | Fires | Trigger |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| `devrites-spec-reviewer` | always | acceptance/scope |
|
|
12
|
+
| `devrites-code-reviewer` | always | implementation correctness |
|
|
13
|
+
| `devrites-test-analyst` | seal | completed feature |
|
|
14
|
+
| `devrites-frontend-reviewer` | conditional | UI/route/screen/style/design-token change |
|
|
15
|
+
| `devrites-security-auditor` | conditional | input/auth/data/permission/dependency/integration/secret |
|
|
16
|
+
| `devrites-performance-reviewer` | conditional | performance budget or hot path/query/growing set |
|
|
17
|
+
| `devrites-devex-reviewer` | conditional | public API/CLI/SDK/webhook/config/error/docs/onboarding |
|
|
18
|
+
|
|
19
|
+
Also: `devrites-simplifier-reviewer`, `devrites-doubt-reviewer`,
|
|
20
|
+
`devrites-strategy-reviewer`, `devrites-plan-reviewer`, or `devrites-retrospector`.
|
|
21
|
+
|
|
22
|
+
If the candidate diff has no matching surfaces, record
|
|
23
|
+
`Not-applicable: no relevant paths in diff` for `frontend-reviewer`,
|
|
24
|
+
`security-auditor`, and `performance-reviewer`; do not dispatch them.
|
|
25
|
+
|
|
26
|
+
## Dispatch contract
|
|
27
|
+
|
|
28
|
+
1. Freeze one candidate; give each reviewer the same spec, paths, and diff.
|
|
29
|
+
Parallelize only when writes/state/locks/tool sessions/scarce resources
|
|
30
|
+
(ports/processes/quotas/FDs/browsers/MCP) are compatible. Frozen read-only
|
|
31
|
+
usually is; pressure requires batches or serial work.
|
|
32
|
+
One fresh-context preflight before fan-out checks host configuration/evidence for
|
|
33
|
+
inherited history/memory/sibling summaries. Use supported clean-context settings;
|
|
34
|
+
unverified independence is a gap. Do not launch a probe agent per task;
|
|
35
|
+
still validate each result's context and candidate.
|
|
36
|
+
2. Ask for each exact named agent in fresh context; omit native syntax and
|
|
37
|
+
`agent_type`/`task_name`/`fork_turns` from the instruction.
|
|
38
|
+
3. Every dispatch reaches a terminal classification before reconciliation:
|
|
39
|
+
`Outcome: findings`, `Outcome: no-findings`, `Outcome: gap`, or
|
|
40
|
+
`unavailable: <reason>` when the step could not run at all. Reconciling over a
|
|
41
|
+
partial roster is forbidden; an unavailable conditional step is recorded with its
|
|
42
|
+
marker in `review.md`/`seal.md` — an omitted sub-step reads as a clean run.
|
|
43
|
+
Findings later withdrawn at reconciliation stay visible: the account records
|
|
44
|
+
`withdrawn: <n> (<reason>)` rather than silently dropping them.
|
|
45
|
+
4. Apply [[`agents.md`](standards/agents.md) § Result admission](standards/agents.md#result-admission)
|
|
46
|
+
and dedupe by evidence/root cause. Account for all seven in
|
|
47
|
+
`review.md`/`seal.md`: `Outcome:` plus admitted account, or
|
|
48
|
+
`Not-applicable: <inspected-scope reason>`. Spec/Code may cite valid unchanged
|
|
49
|
+
`review.md` under [evidence validity](candidate-integrity.md#evidence-validity); persist no dispatch telemetry.
|
|
50
|
+
5. Missing profile, null/failure, or malformed output is a `gap`; never
|
|
51
|
+
infer approval or substitute inline review.
|
|
52
|
+
|
|
53
|
+
On exhaustion/contention: stop spawning; collect running results; batch/serialize.
|
|
54
|
+
Never restart/orphan the cohort or infer approval. Reviewers are read-only;
|
|
55
|
+
accounts store evidence, never telemetry. Same-file writers stay serial.
|
|
56
|
+
Capacity rejection is backpressure: retry batches; never shrink a roster.
|
|
57
|
+
|
|
58
|
+
## Scale limits
|
|
59
|
+
|
|
60
|
+
The role table bounds rosters. Use roughly four concurrent read-only reviewers;
|
|
61
|
+
eight only with disjoint paths/resources. Refuse unbounded swarms and role
|
|
62
|
+
substitution: sharpen scope or use a bounded second pass when coverage is missing.
|
|
63
|
+
Overlapping reviewers increase duplicate findings and reconciliation work.
|
|
64
|
+
|
|
65
|
+
## Children are tools, not peers
|
|
66
|
+
|
|
67
|
+
A dispatched agent is a tool invocation: the parent owns the prompt, the
|
|
68
|
+
expected artifact, and admission. Reviewers do not negotiate with each other
|
|
69
|
+
or with the implementer. A mesh without a parent is not a DevRites profile.
|
|
70
|
+
**Failing case:** two reviewers agree a compromise in a shared channel and the
|
|
71
|
+
parent records that compromise as independent review.
|
|
72
|
+
|
|
73
|
+
Arbitration/independence → [agents.md § Independence](standards/agents.md#independence); writer batches → [`parallel-batch.md`](../../rite-build/reference/parallel-batch.md).
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# DevRites completion reply contract
|
|
2
|
+
|
|
3
|
+
Use the host's normal response. Do not run a progress renderer, emit session
|
|
4
|
+
telemetry, assign a health score, or repeat state already visible in the durable
|
|
5
|
+
artifact.
|
|
6
|
+
|
|
7
|
+
Keep the reply compact and evidence-backed:
|
|
8
|
+
|
|
9
|
+
When an active rite is the controlling caller, Intermediate `NEEDS_REPLAN` (the reply
|
|
10
|
+
token for the workspace's `NEEDS REPLAN` readiness value), a nested phase `STOP`, and a
|
|
11
|
+
routine Plan/Vet `Next step` are not eligible completion states. Autocomplete may
|
|
12
|
+
use the shapes below only after its requested rest point or a shared genuine
|
|
13
|
+
human/safety/access/exhausted-recovery stop is reached.
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
Done: <result in one sentence>
|
|
17
|
+
Changed: <artifact or source paths>
|
|
18
|
+
Evidence: <commands and observed outcomes, or not applicable>
|
|
19
|
+
Open: <none | unresolved items>
|
|
20
|
+
Next: <one recommended action>
|
|
21
|
+
Record: <primary durable artifact path>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Pre-send check: delete an opening sentence that only announces ("I'll now…") and a
|
|
25
|
+
closing sentence that only recaps; then apply the two-line test — a reader seeing only
|
|
26
|
+
the first and last lines must know what happened and what to do next.
|
|
27
|
+
|
|
28
|
+
If a required decision, proof, or invariant is missing, use one of these states
|
|
29
|
+
instead of `Done`:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
Awaiting human: <question id and gate>
|
|
33
|
+
Question: <exact decision needed>
|
|
34
|
+
Recommended: <one option and reason>
|
|
35
|
+
Resume: /rite-resolve <qid> "<answer>"
|
|
36
|
+
Record: .devrites/work/<slug>/questions.md
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
Stopped: <reason>
|
|
41
|
+
Blocking: <specific invariant>
|
|
42
|
+
Fix: <one action>
|
|
43
|
+
Record: <artifact path>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
NO-GO: <verdict>
|
|
48
|
+
Blockers: <top blockers>
|
|
49
|
+
Fix: <one action>
|
|
50
|
+
Record: .devrites/work/<slug>/seal.md
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
GO: feature cleared to ship
|
|
55
|
+
Follow-ups: <none | count>
|
|
56
|
+
Next: /rite-ship
|
|
57
|
+
Record: .devrites/work/<slug>/seal.md
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```text
|
|
61
|
+
Shipped: <feature>
|
|
62
|
+
Commit: <sha and branch>
|
|
63
|
+
Acceptance: <proven count>
|
|
64
|
+
Archived: .devrites/archive/<slug>/
|
|
65
|
+
Record: .devrites/archive/<slug>/ship.md
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Claims such as proved, reviewed, sealed, shipped, or complete must point to real
|
|
69
|
+
output or an artifact. Use exactly one recommended next action except for
|
|
70
|
+
terminal agent-owned technical exhaustion, which has no runnable action.
|
|
71
|
+
|
|
72
|
+
Use that terminal case only per [`one-shot-actions.md`](standards/one-shot-actions.md):
|
|
73
|
+
three recorded no-progress corrections of the exact fingerprint, or required evidence
|
|
74
|
+
irretrievably absent with **no safe in-scope diagnostic-amplification seam**. A spent
|
|
75
|
+
consumptive-action authorization plus a retained new fingerprint is not terminal. For a
|
|
76
|
+
true terminal case use:
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
Stopped: Technical recovery exhausted
|
|
80
|
+
Blocking: <causal fingerprint and invariant>
|
|
81
|
+
Attempts: <three failed approaches and decisive reproduction>
|
|
82
|
+
No runnable recovery command: unchanged reinvocation remains blocked
|
|
83
|
+
Next: none — requires new evidence or changed failure conditions
|
|
84
|
+
Record: <artifact path>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
The terminal cursor marker is `Next: none` exactly as shown; a stored `Next step: none`
|
|
88
|
+
names the same exhausted state.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# DevRites rules
|
|
2
|
+
|
|
3
|
+
Stack-agnostic rules: `.devin/skills/devrites-lib/reference/standards/`.
|
|
4
|
+
[`core.md` § Precedence](core.md#precedence) governs: repository conventions
|
|
5
|
+
select technical form only inside its safety, source-writing, and evidence gates.
|
|
6
|
+
|
|
7
|
+
## Loading model
|
|
8
|
+
|
|
9
|
+
Each workspace rite reads [`core.md`](core.md); then load only the current
|
|
10
|
+
topic's owner.
|
|
11
|
+
|
|
12
|
+
| Rule | Load when |
|
|
13
|
+
|---|---|
|
|
14
|
+
| `core.md` | Every workflow phase: operating, persistence, evidence, and precedence rules. |
|
|
15
|
+
| `coding-style.md` | Writing or simplifying code. |
|
|
16
|
+
| `prose-style.md` | Writing prose artifacts or user replies. |
|
|
17
|
+
| `error-handling.md` | Adding or reviewing failure paths. |
|
|
18
|
+
| `testing.md` | Designing tests or judging proof quality. |
|
|
19
|
+
| `spec-grammar.md` | Structuring high-risk behavioral requirements or capability deltas. |
|
|
20
|
+
| `code-review.md` | Reviewing a change or sealing review findings. |
|
|
21
|
+
| `edge-case-trace.md` | Resolving relevant edge/prohibition classes and their evidence disposition. |
|
|
22
|
+
| `security.md` | Handling input, auth, data, secrets, dependencies, or integrations. |
|
|
23
|
+
| `repository-topology.md` | Work spans a monorepo member, nested root, multiple languages/services, or repositories. |
|
|
24
|
+
| `data-integrity.md` | Durable writes, schemas, migrations/backfills, concurrency, retention, or tenant data are touched. |
|
|
25
|
+
| `integration-reliability.md` | APIs, webhooks, queues/jobs, caches, or cross-service failure behavior is touched. |
|
|
26
|
+
| `performance.md` | A measured performance concern is in scope. |
|
|
27
|
+
| `observability.md` | A changed runtime path must be diagnosed in production. |
|
|
28
|
+
| `developer-experience.md` | A public API, CLI, SDK, webhook, config, error, or getting-started surface changes. |
|
|
29
|
+
| `patterns.md` | Choosing or simplifying architecture. |
|
|
30
|
+
| `git-workflow.md` | Preparing commits, branches, tags, or changelog entries. |
|
|
31
|
+
| `hooks.md` | Creating or changing repository hooks. |
|
|
32
|
+
| `ci-cd.md` | Creating or changing a build/deploy pipeline. |
|
|
33
|
+
| `documentation.md` | Behavior, commands, contracts, or durable decisions change. |
|
|
34
|
+
| `elicitation.md` | Temper or Vet needs a sharper reasoning move for one section. |
|
|
35
|
+
| `development-workflow.md` | Planning batch size, integration, or the standing done bar. |
|
|
36
|
+
| `principles.md` | Authoring or checking project invariants and approved exceptions. |
|
|
37
|
+
| `deprecation.md` | Removing, replacing, or migrating behavior, code, APIs, or data. |
|
|
38
|
+
| `agents.md` | Dispatching, awaiting, validating, or reconciling fresh-context agents. |
|
|
39
|
+
| `loop-operations.md` | Running a goal-, time-, or event-activated loop through native host scheduling. |
|
|
40
|
+
| `workflow-artifacts.md` | Materializing executable proof/controller/harness files under the active `.devrites/work/<slug>/`. |
|
|
41
|
+
| `context-hygiene.md` | Choosing `/clear`, `/compact`, or a handoff. |
|
|
42
|
+
| `anti-patterns.md` | A pack-wide rationalization or red flag appears. |
|
|
43
|
+
| `afk-hitl.md` | A pause, question, resume, or AFK decision is possible. |
|
|
44
|
+
| `one-shot-actions.md` | A proof/action may be attempted once, needs fresh retry authorization, consumes external state/quota, or can delete its own failure evidence. |
|
|
45
|
+
| `tooling.md` | Structural lookup, current external facts, or architecture memory is needed. |
|
|
46
|
+
| `code-navigation.md` | Choosing graph, LSP, grep, or read routes before cross-file edits. |
|
|
47
|
+
| `skill-authoring.md` | Creating, editing, routing, evaluating, or pruning a DevRites skill. |
|
|
48
|
+
| `definition-of-done.md` | Prove, Seal, Ship, or Quick must decide whether work is finished. |
|
|
49
|
+
| `review-checklist.md` | A compact review pass/fail sweep is enough. |
|
|
50
|
+
| `test-proof-checklist.md` | Test and evidence quality needs a compact sweep. |
|
|
51
|
+
| `browser-proof-checklist.md` | UI behavior needs browser proof. |
|
|
52
|
+
| `security-checklist.md` | Auth, input, data, or integration work needs a compact security sweep. |
|
|
53
|
+
| `acceptance-preserving-reslice.md` | Classifying or reviewing a Reslice in Plan, Vet, or Autocomplete. |
|
|
54
|
+
| `debug-recovery.md` | Waiting on async readiness (server start, job completion, browser signal) needs a bounded condition-based poll. |
|
|
55
|
+
|
|
56
|
+
The table is a load trigger, not an exemption. [`core.md` § Rule summary](core.md#rule-summary-load-the-full-file-when-in-scope)
|
|
57
|
+
makes every *applicable* owner mandatory. **Failing case:** a security or data-integrity
|
|
58
|
+
gate is skipped because the standard is "on-demand / modular."
|
|
59
|
+
|
|
60
|
+
These guide judgment; workflows and engine gates enforce.
|