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,267 @@
|
|
|
1
|
+
# Workspace artifact schema
|
|
2
|
+
|
|
3
|
+
Feature truth: `.devrites/work/<slug>/`, discovered by `state.md`; remnants/archives
|
|
4
|
+
are inactive. Spec writes optional `README.md`. Use canonical filenames; both released
|
|
5
|
+
cursor forms remain valid. `/rite-upgrade` audits without path/alias/format migration.
|
|
6
|
+
|
|
7
|
+
## Slug identity
|
|
8
|
+
|
|
9
|
+
New slugs derive from the objective: lowercase ASCII kebab-case matching
|
|
10
|
+
`[a-z0-9]+(?:-[a-z0-9]+)*`, at most 64 characters. Shorten at word boundaries.
|
|
11
|
+
After the final shortening or suffix step, trim boundary hyphens; reject empty results.
|
|
12
|
+
|
|
13
|
+
Before creation, compare a matching workspace's `brief.md` objective: reuse only the
|
|
14
|
+
same feature. Otherwise append the smallest unused suffix (`-2`, `-3`, ...), keeping
|
|
15
|
+
the trimmed base within 64 characters. Never overwrite a workspace by slug alone;
|
|
16
|
+
accept safe legacy basenames. Ordinary phases never rename them.
|
|
17
|
+
|
|
18
|
+
## Required by phase
|
|
19
|
+
|
|
20
|
+
| Phase | Required artifacts |
|
|
21
|
+
| --- | --- |
|
|
22
|
+
| frame | `state.md` |
|
|
23
|
+
| spec | `README.md`, `brief.md`, `spec.md`, `state.md`, `decisions.md`, `assumptions.md`, `questions.md` |
|
|
24
|
+
| clarify | spec artifacts plus `decision-coverage.md` |
|
|
25
|
+
| temper | clarified spec artifacts plus `strategy.md` when temper runs |
|
|
26
|
+
| define/plan | clarified spec artifacts plus `architecture.md`, `plan.md`, `tasks.md`, `traceability.md` |
|
|
27
|
+
| vet/build/converge | plan artifacts plus `eng-review.md`, `test-plan.md`; Build creates and maintains `touched-files.md` after its first green slice |
|
|
28
|
+
| prove/polish/review | vetted plan artifacts plus `evidence.md`, `touched-files.md` |
|
|
29
|
+
| seal/ship/done | proof artifacts plus `review.md`, `seal.md`; Ship writes `ship.md` |
|
|
30
|
+
| conditional | `flows.md` when diagrams clarify; `visual/` HTML+`.outline.md` companions when a richer reviewable visual earns it (optional; never readiness-required); `design-brief.md` and `browser-evidence.md` for UI; `drift.md` for drift; `polish-report.md` for polish; `handoff.md` only when requested; `references.md` + `references/` when references exist; `investigation-map.md` for pressure-test; `dogfood.md` for dogfood; `packets/` for by-reference dispatch packets and admitted accounts (≤ 64 KiB each; older closed rounds may be deleted; never transcripts); `history/` for verbatim relocated checkpoint narrative (append-only, never a read-next) |
|
|
31
|
+
|
|
32
|
+
## What each file owns
|
|
33
|
+
|
|
34
|
+
| File | Job | Budget |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| `README.md` | map: phase/status/next action, artifacts/read-next, blocking gates, last update | 120 lines |
|
|
37
|
+
| `brief.md` | user request, objective, non-goals, success definition | 80 lines |
|
|
38
|
+
| `spec.md` | product WHAT/WHY, requirements, acceptance criteria, edge cases, measurable success, scope boundaries | 260 lines |
|
|
39
|
+
| `decision-coverage.md` | topology-first coverage matrix, assumption audit, residual uncertainty, and typed clarity verdict | 200 lines |
|
|
40
|
+
| `strategy.md` | temper verdict, scope mode/deltas, pre-mortem risks, deferred ambition | 180 lines |
|
|
41
|
+
| `architecture.md` | owning layer, integration points, data/API/events, dependencies, risks, affected boundaries | 180 lines |
|
|
42
|
+
| `flows.md` | useful Mermaid sequence/state/data/lifecycle diagrams with why-it-matters text and related IDs | 160 lines |
|
|
43
|
+
| `visual/<name>.html` | optional portable human-viewable visualization; pair with sibling `.outline.md`; self-contained preferred | 400 lines |
|
|
44
|
+
| `visual/<name>.outline.md` | required machine dual-read companion for the sibling HTML; outline wins on conflict; never a candidate path | 200 lines |
|
|
45
|
+
| `visual/README.md` | optional index of visuals in the workspace | 80 lines |
|
|
46
|
+
| `decisions.md` | ADR-style `DEC-###` log: status, context, options, decision, consequences, related IDs | 200 lines |
|
|
47
|
+
| `assumptions.md` | assumptions with confidence, owner, validation status | 160 lines |
|
|
48
|
+
| `questions.md` | current `q-YYYY-MM-DD-NNN` (or released `Q-###`) open/resolved questions, gate, answer, impact | 180 lines |
|
|
49
|
+
| `plan.md` | technical approach, slice strategy, canonical shared-contract proof, validation strategy, rollback | 220 lines |
|
|
50
|
+
| `tasks.md` | `SLICE-###` vertical slices with AC IDs, likely files, tests/proof, mode/gate, dependencies, done condition | 280 lines |
|
|
51
|
+
| `traceability.md` | matrix: AC/REQ ID, slice IDs, test/proof, evidence ID, touched files, status | 220 lines |
|
|
52
|
+
| `eng-review.md` | vetted scope/architecture/quality/performance, failure modes, preflight, stable-input binding, `## Deferred findings` (late rows: severity · site · role · kind · round) for Review | 240 lines |
|
|
53
|
+
| `test-plan.md` | executable proof commands, preflight/provenance contract, acceptance and interaction coverage | 260 lines |
|
|
54
|
+
| `state.md` | compact cursor table/key-values; no narrative log | 120 lines |
|
|
55
|
+
| `evidence.md` | `EVID-###` command/action, result, timestamp if available, related AC/slice IDs, limitation | 280 lines |
|
|
56
|
+
| `browser-evidence.md` | UI route/viewports/screenshots/console/network/interactions and Visual Verdict | 220 lines |
|
|
57
|
+
| `drift.md` | `DRIFT-###` spec/plan drift and resolution | 160 lines |
|
|
58
|
+
| `touched-files.md` | sole candidate manifest plus a concern-ordered `## Review trail` of `path:line` stops for human review and Build's deferred late findings (severity · site · role · round) that `/rite-review` must close | 160 lines |
|
|
59
|
+
| `design-brief.md` | UI design direction, states, interaction model | 160 lines |
|
|
60
|
+
| `handoff.md` | resume objective/last slice/next action/blockers/read-next; sections hold content or `Nothing yet`; unevidenced recollections: `Not tried yet`, never results | 120 lines |
|
|
61
|
+
| `polish-report.md` | polish axis deltas, re-verification lines, residual subjective preferences | 200 lines |
|
|
62
|
+
| `ship.md` | ship preflight, disclosed Git plan, commit/push/tag/PR record | 120 lines |
|
|
63
|
+
| `review.md` | reconciled Review verdict: `## Spec` and `## Code review` accounts, deferred-finding labels/actions, drift | 240 lines |
|
|
64
|
+
| `seal.md` | seal preflight, exact reviewer roster accounts, GO/NO-GO verdict and disclosures | 200 lines |
|
|
65
|
+
| `ai-spec.md` | model/RAG/agent/eval/LLM-output scope for AI surfaces | 160 lines |
|
|
66
|
+
|
|
67
|
+
For visual pairs load only matching [playbooks](visual-playbooks/index.md); use
|
|
68
|
+
the [required outline headings](visual-playbooks/outline-template.md).
|
|
69
|
+
|
|
70
|
+
## Candidate manifest and bindings
|
|
71
|
+
|
|
72
|
+
`touched-files.md` contains exactly one `## Touched files` heading and exactly
|
|
73
|
+
one authoritative `## Candidate manifest` heading. The first describes scope
|
|
74
|
+
without repeating candidate paths; the manifest is the sole authority for candidate scope.
|
|
75
|
+
|
|
76
|
+
The manifest body is exactly either `No project files.` or this table with one
|
|
77
|
+
or more rows:
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
| State | File | Slice | Reason |
|
|
81
|
+
| --- | --- | --- | --- |
|
|
82
|
+
| present | `path/to/file` | SLICE-001 | Observable reason |
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Rows are sorted by File: they must already be strictly sorted by normalized
|
|
86
|
+
`File`, and readers reject rather than reorder them. `State` is exactly
|
|
87
|
+
`present` or `deleted`; `File` is a unique
|
|
88
|
+
project-relative UTF-8 path wrapped in one backtick pair; `Slice` and `Reason`
|
|
89
|
+
are nonempty. Paths must also be unique under case folding. Every component
|
|
90
|
+
rejects Windows-reserved characters and device names (including names with an
|
|
91
|
+
extension) plus a trailing dot or space. `## Review trail` may cite
|
|
92
|
+
concern-ordered `path:line` review stops, but it cannot define or expand
|
|
93
|
+
candidate scope; only manifest rows do.
|
|
94
|
+
|
|
95
|
+
The public candidate limits are a 1 MiB manifest, 4,096 rows, a 4,096-byte
|
|
96
|
+
path, 64 MiB per present file, and 256 MiB across all present files.
|
|
97
|
+
|
|
98
|
+
A release milestone's union manifest is produced by `devrites-engine state
|
|
99
|
+
merge-manifest <release-slug>` — it walks the recorded `sequence_parent` chain,
|
|
100
|
+
folds every predecessor manifest, and resolves a path collision in favor of the
|
|
101
|
+
later sequence position; a hand-assembled union is not authoritative. When the
|
|
102
|
+
workspace cursor declares `sequence_role: release`, `check candidate` and
|
|
103
|
+
`check seal` require the manifest to cover the whole recorded chain.
|
|
104
|
+
|
|
105
|
+
Workspace and audit artifacts are not candidate paths, including all
|
|
106
|
+
`.devrites/work/<slug>/visual/`. Durable owners include `.devrites/specs/**`,
|
|
107
|
+
`DESIGN.md`, and `docs/adr/**`, plus `.devrites/principles.md`. Under `.devrites`,
|
|
108
|
+
only those spec/principles owners qualify; all other siblings (`ACTIVE`, `AFK`,
|
|
109
|
+
`CHECKPOINT`, `archive/**`, `work/**`) fail closed. Engine owns malformed path, type,
|
|
110
|
+
and size rejection; phases never reinterpret a rejected manifest.
|
|
111
|
+
|
|
112
|
+
`evidence.md`, `review.md`, and `seal.md` each contain exactly one unindented standalone
|
|
113
|
+
binding line; `browser-evidence.md` does too when that file exists:
|
|
114
|
+
|
|
115
|
+
```text
|
|
116
|
+
Candidate SHA-256: <64 lowercase hex>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Old unfinished workspaces refresh the manifest and rerun real proof. They never
|
|
120
|
+
synthesize a historical pass or use a legacy fallback.
|
|
121
|
+
|
|
122
|
+
The worktree digest is deterministic but is not an atomic filesystem snapshot
|
|
123
|
+
against a malicious concurrent same-size rewrite. Ship's exact Git-index scope,
|
|
124
|
+
byte, binding, and secret checks own the final freeze immediately before commit.
|
|
125
|
+
|
|
126
|
+
Only a structural `Budget override: <reason>` line (not a fenced example)
|
|
127
|
+
permits excess. Each line budget also bounds bytes at 400 bytes per budgeted line
|
|
128
|
+
(`state.md` 120 lines → 48 KiB); long lines do not evade it.
|
|
129
|
+
`devrites-engine orient <slug>` reports `artifact_budgets` (lines/bytes/over/override)
|
|
130
|
+
and `bulk_files` (non-canonical files over 64 KiB) so a phase can decide what to read
|
|
131
|
+
before loading. Phase writers check these limits before returning; there is no
|
|
132
|
+
repository-local script assumption in the installed workflow.
|
|
133
|
+
|
|
134
|
+
`check readiness` and `check seal` enforce the material band deterministically: a
|
|
135
|
+
required artifact at or above 1.5× its line or byte budget with no structural override
|
|
136
|
+
line blocks with the exact measurement and the three legal remedies (relocate history
|
|
137
|
+
via `/rite-plan revise`, split via `/rite-plan course-correct`, or record the override).
|
|
138
|
+
Overshoot below that band stays advisory and is reported by `orient`. Proof ledgers
|
|
139
|
+
(`evidence.md`, `browser-evidence.md`, `touched-files.md`) are always advisory: they
|
|
140
|
+
scale with proof volume, and `touched-files.md` keeps its own manifest limits.
|
|
141
|
+
Because they are never gate-blocked they are also the only artifacts that can grow
|
|
142
|
+
unboundedly — so phases read them by index, not whole-file: the standalone binding
|
|
143
|
+
line, a `EVID-###`/section-header index (`grep -n`), then bodies only for entries
|
|
144
|
+
naming this candidate's AC/slice IDs. An entry naming no in-scope ID is anomaly
|
|
145
|
+
evidence to inspect, not skip. A whole-file read is allowed only when `orient`
|
|
146
|
+
reports the artifact within budget; completeness for seal is engine-checked
|
|
147
|
+
(literal `AC-###` presence), the reader judges quality.
|
|
148
|
+
|
|
149
|
+
Two reasons are not durable fixes: slice or acceptance-criteria count (an over-budget
|
|
150
|
+
`tasks.md`/`plan.md`/`traceability.md` from decomposition size is a
|
|
151
|
+
[feature-sequence split](../../rite-plan/reference/slicing.md#feature-ceiling-split-an-epic-never-override-the-budget)),
|
|
152
|
+
and history in `state.md` (checkpoint narrative moves verbatim to
|
|
153
|
+
`history/<file>-<YYYYMMDD>.md`, append-only, never a phase read-next, with a one-line
|
|
154
|
+
pointer left behind). A legacy workspace may carry a temporary `Budget override:` line
|
|
155
|
+
as a bridge; `/rite-upgrade` routes it to relocation or the split, and new writers never
|
|
156
|
+
create one for those two reasons.
|
|
157
|
+
Apply [[`context-hygiene.md`](standards/context-hygiene.md) dispatch packets](standards/context-hygiene.md#dispatch-packets)
|
|
158
|
+
for byte-size checks and lossless retrieval; budget overrides neither rewrite protected
|
|
159
|
+
history nor require loading it all.
|
|
160
|
+
|
|
161
|
+
## Native readiness ownership
|
|
162
|
+
|
|
163
|
+
`decision-coverage.md` owns topology; `test-plan.md`, executable proof; `eng-review.md`,
|
|
164
|
+
reviewer verdicts, `Implementation readiness`, and `Readiness inputs SHA-256`. Root
|
|
165
|
+
re-reads their IDs/meaning. The digest binds bytes, never semantic correctness.
|
|
166
|
+
Readiness checks structure/binding; Seal rechecks both.
|
|
167
|
+
|
|
168
|
+
Proof commands must be repository-portable: no host wrappers, user-specific absolute paths,
|
|
169
|
+
or temporary proof trees. Evidence records the executed command. Optional `visual/`
|
|
170
|
+
artifacts never inflate readiness: they are not readiness inputs and do not substitute
|
|
171
|
+
for `decision-coverage.md`, `eng-review.md`, or `test-plan.md`.
|
|
172
|
+
|
|
173
|
+
## Canonical slice grammar
|
|
174
|
+
|
|
175
|
+
Every producer of `tasks.md` uses this field set. `Dependencies` is slice
|
|
176
|
+
ordering; package and service requirements belong in `External dependencies`.
|
|
177
|
+
|
|
178
|
+
<!-- canonical-slice:start -->
|
|
179
|
+
```markdown
|
|
180
|
+
## SLICE-001 <observable capability>
|
|
181
|
+
Goal: <single observable capability>
|
|
182
|
+
Satisfies: AC-001[, AC-002]
|
|
183
|
+
Acceptance criteria: <binary criteria this slice closes>
|
|
184
|
+
Complexity: <1..5> — <reason>
|
|
185
|
+
Mode: <AFK | HITL>
|
|
186
|
+
Gate: <advisory | validating | blocking | escalating>
|
|
187
|
+
SLA: <15m | 4h | 24h | none>
|
|
188
|
+
Checkpoint: <question + why it needs unavailable pre-code evidence or action-time approval | none>
|
|
189
|
+
Dependencies: <SLICE-### list | none>
|
|
190
|
+
depends_on: [<SLICE-### IDs>]
|
|
191
|
+
Consumes / Produces: <interfaces read and exposed>
|
|
192
|
+
Known-Gotchas: <ordering hazards and framework footguns | none>
|
|
193
|
+
Prior-slice learnings: <constraints learned earlier | none>
|
|
194
|
+
Files likely touched: <real paths>
|
|
195
|
+
Tests/proof: <exact command + cwd + expected signal + prerequisites/provenance inputs>
|
|
196
|
+
Browser proof required: <yes | no>
|
|
197
|
+
Frontend craft required: <yes | no>
|
|
198
|
+
Design brief states: <UI states/interaction | none>
|
|
199
|
+
Visual acceptance: <state × viewport × input target | none>
|
|
200
|
+
Fullstack (FE+BE): <yes | no>
|
|
201
|
+
External dependencies: <libraries/services | none>
|
|
202
|
+
Existing to reuse / extend: <components/utilities/patterns | none>
|
|
203
|
+
Rollback notes: <reversal path>
|
|
204
|
+
Evidence required: <evidence /rite-prove must capture>
|
|
205
|
+
Edge/Prohibition coverage: <EDGE/PROH IDs | none>
|
|
206
|
+
Done condition: <checkable, exhaustive completion criterion>
|
|
207
|
+
```
|
|
208
|
+
<!-- canonical-slice:end -->
|
|
209
|
+
|
|
210
|
+
`depends_on` is the machine-readable mirror of `Dependencies`; keep the sets
|
|
211
|
+
identical and cycle-free. `Gate`, `SLA`, and `Checkpoint` are required for HITL
|
|
212
|
+
slices; use `none` when they do not apply. Complexity above 3 triggers reslicing
|
|
213
|
+
unless the stated reason makes the boundary irreducible.
|
|
214
|
+
|
|
215
|
+
## Read next by phase
|
|
216
|
+
|
|
217
|
+
| Phase | Read |
|
|
218
|
+
| --- | --- |
|
|
219
|
+
| spec | `README.md`, `brief.md`, `spec.md`, `references.md`, `questions.md` |
|
|
220
|
+
| clarify | `README.md`, `state.md`, `brief.md`, `spec.md`, `decisions.md`, `assumptions.md`, `questions.md` |
|
|
221
|
+
| temper | `spec.md`, `decision-coverage.md`, `decisions.md`, `assumptions.md`, `design-brief.md` |
|
|
222
|
+
| define | `README.md`, `state.md`, `spec.md`, `decision-coverage.md`, `architecture.md`, `decisions.md`, `assumptions.md` |
|
|
223
|
+
| vet | `state.md`, `spec.md`, `decision-coverage.md`, `README.md`, `traceability.md`, `plan.md`, `tasks.md`, `architecture.md`, `decisions.md` |
|
|
224
|
+
| build | `devrites-engine orient <slug>` first; then `state.md`, `eng-review.md` (Build readback + `## Deferred findings`), the selected slice and its `depends_on` via `devrites-engine observe slice <slug> <SLICE-ID>`, the `test-plan.md` and `traceability.md` rows that slice's AC IDs name, open `questions.md` gates, and `touched-files.md` when present. Load whole `tasks.md`/`plan.md`/`architecture.md`/`decision-coverage.md` only when `orient` shows them within budget or the slice cites a section by ID |
|
|
225
|
+
| prove | `traceability.md`, `touched-files.md`; each built slice's `Tests/proof` and `Evidence required` via `observe slice`; `evidence.md`/`browser-evidence.md` via the bounded advisory read above |
|
|
226
|
+
| review/seal | `README.md`, `traceability.md`, `spec.md`, `decisions.md`, `drift.md`, `touched-files.md`; `evidence.md`/`browser-evidence.md` via the bounded advisory read above |
|
|
227
|
+
| handoff | `README.md`, `state.md`, `handoff.md`, then the linked source artifacts |
|
|
228
|
+
|
|
229
|
+
## Do not duplicate
|
|
230
|
+
|
|
231
|
+
- Do not make `spec.md` carry deep architecture; link to `architecture.md`/`flows.md`.
|
|
232
|
+
- Do not copy acceptance criteria into `plan.md`; reference `AC-###`.
|
|
233
|
+
- Do not copy full proof into `handoff.md`; link to `evidence.md`.
|
|
234
|
+
- Do not make `state.md` an append-only log; keep only the current cursor. A
|
|
235
|
+
checkpoint entry is at most three lines: what changed, the canonical record path or
|
|
236
|
+
DEC/EVID ID, and the next action. Digests, packet hashes, and finding narratives
|
|
237
|
+
belong to the record they identify, not the cursor.
|
|
238
|
+
- Give each normative fact one owner and stable ID; reference rather than copy it.
|
|
239
|
+
Required schema mirrors remain required. Derive counts/mirrors or mechanically
|
|
240
|
+
check equality using available tools, never invented commands. Repair stale
|
|
241
|
+
derived values and assess consumer impact; they are not new policy decisions.
|
|
242
|
+
- Do not create optional files before their phase; absence is meaningful. Do not
|
|
243
|
+
treat `visual/` as required for readiness; emit HTML+outline only when a writer
|
|
244
|
+
earns a richer visual, and keep Mermaid in `flows.md` when that is enough.
|
|
245
|
+
|
|
246
|
+
## ID contract
|
|
247
|
+
|
|
248
|
+
Use stable IDs: `REQ-001`, `AC-001`, `EDGE-001`, `PROH-001`, `SLICE-001`,
|
|
249
|
+
`DEC-001`, `ASM-001`, `DRIFT-001`, `EVID-001`. Current queued questions use
|
|
250
|
+
`q-YYYY-MM-DD-NNN`; released table registers may retain `Q-001`. IDs are
|
|
251
|
+
append-only identities, not display positions:
|
|
252
|
+
|
|
253
|
+
- Allocate the next unused numeric suffix for that prefix after scanning its
|
|
254
|
+
owning artifact. For a dated question ID, scan the current date's suffixes.
|
|
255
|
+
Never fill a gap; every deleted or retired ID remains consumed.
|
|
256
|
+
- Never renumber an ID, reuse it, or transfer it to a different meaning. Reordering
|
|
257
|
+
sections or rows does not change IDs.
|
|
258
|
+
- A wording edit that preserves the obligation keeps its ID. A materially different
|
|
259
|
+
meaning gets a new ID; record the relationship in `decisions.md` or `drift.md`
|
|
260
|
+
before updating downstream references.
|
|
261
|
+
- Re-read the owning artifact immediately before an append when another writer may
|
|
262
|
+
have changed it; recompute rather than reserving an ID from stale state.
|
|
263
|
+
|
|
264
|
+
Old `AC1` and `Slice 1` forms are legacy and should not be generated for new
|
|
265
|
+
workspaces. Preserve released legacy forms unless an explicit upgrade owns the
|
|
266
|
+
migration; never renumber them incidentally.
|
|
267
|
+
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devrites-prose-craft
|
|
3
|
+
description: Rewrite prose to remove AI tells while preserving meaning and voice. Use for artifacts, replies, commits, or PR copy; not code comments or UI craft.
|
|
4
|
+
triggers:
|
|
5
|
+
- model
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# devrites-prose-craft: prose that reads human
|
|
9
|
+
|
|
10
|
+
Write for a teammate who will rely on the result. Remove model-shaped filler without sanding
|
|
11
|
+
off the author's voice or weakening technical content.
|
|
12
|
+
|
|
13
|
+
## When this fires
|
|
14
|
+
- A text-generating phase composes an artifact: `/rite-spec` (overview, rationale),
|
|
15
|
+
`/rite-define` / `/rite-plan` (plan narrative), `/rite-temper` / `/rite-vet` (review prose),
|
|
16
|
+
`/rite-review` / `/rite-seal` (findings + verdict prose), `/rite-ship` (commit/PR body),
|
|
17
|
+
`devrites-doubt` / `/rite-handoff` (notes).
|
|
18
|
+
- Any phase composes substantive **user-facing prose** beyond the shared reply
|
|
19
|
+
labels.
|
|
20
|
+
|
|
21
|
+
## Two modes
|
|
22
|
+
- **Rewrite (default).** When DevRites writes the artifact/reply or polishes it, fix the prose
|
|
23
|
+
in place.
|
|
24
|
+
- **Detect-only.** When auditing prose you shouldn't silently change, such as a user's existing
|
|
25
|
+
`spec.md` at `/rite-adopt` or text under `/rite-review`, list the tells with quotes and leave
|
|
26
|
+
the text untouched. Mirrors `devrites-audit`'s read-only stance.
|
|
27
|
+
|
|
28
|
+
Order findings by severity: **P0** credibility-killers (vague attribution, a marketing
|
|
29
|
+
adjective standing in for evidence, a false/unsourced claim, cutoff disclaimers, unfilled
|
|
30
|
+
placeholders, citation markup, AI-tool tracking URLs) → **P1** obvious tells (negative
|
|
31
|
+
parallelism, filler openers, em-dash tics, reasoning-chain scaffolding, narrated candor)
|
|
32
|
+
→ **P2** polish (rhythm, word choice, 1B clarity edits). A quick pass fixes P0 + P1 and
|
|
33
|
+
stops; a full pass takes P2 too. Flags are writing-quality signals, not authorship proof.
|
|
34
|
+
In detect-only, report Tier 1A (figurative filler) separately from Tier 1B (wordiness).
|
|
35
|
+
|
|
36
|
+
## Process
|
|
37
|
+
|
|
38
|
+
1. **Calibrate.** Choose rewrite or detect-only mode, split prose from technical sections, and
|
|
39
|
+
set the voice baseline: an explicit user sample first, then neighboring project prose, then
|
|
40
|
+
the source text itself. Fall back to flat, direct prose. Done when every section has a
|
|
41
|
+
register and one voice baseline.
|
|
42
|
+
2. **Protect.** Apply the preservation contract in
|
|
43
|
+
[`prose-style.md`](../devrites-lib/reference/standards/prose-style.md) before changing words.
|
|
44
|
+
Leave tables, YAML frontmatter, URLs, and file paths untouched unless the caller asked to
|
|
45
|
+
change them. Scan for clusters of tells; one isolated marker is not a verdict. Done when
|
|
46
|
+
every claim, constraint, identifier, example, quotation, and deliberate uncertainty is
|
|
47
|
+
accounted for.
|
|
48
|
+
3. **Rewrite.** Remove P0/P1 tells and P2 when the caller asked for a full pass. Match the
|
|
49
|
+
baseline's vocabulary and cadence without inventing facts, opinions, or quirks. Done when the
|
|
50
|
+
same reader can make the same decisions from the rewrite as from the source.
|
|
51
|
+
4. **Audit.** Compare source and result, read the prose aloud, and run the relevant references
|
|
52
|
+
below. Done when the preservation contract passes, the technical register remains exact,
|
|
53
|
+
and no in-scope tell remains.
|
|
54
|
+
|
|
55
|
+
## References
|
|
56
|
+
|
|
57
|
+
- Always read [`prose-style.md`](../devrites-lib/reference/standards/prose-style.md) for the two
|
|
58
|
+
registers, preservation contract, and core checks.
|
|
59
|
+
- Load [`reference/banned-phrases.md`](reference/banned-phrases.md) when word choice or tone is
|
|
60
|
+
the problem.
|
|
61
|
+
- Load [`reference/structures.md`](reference/structures.md) when sentence shape, rhythm, or
|
|
62
|
+
formatting is the problem.
|
|
63
|
+
- Load [`reference/examples.md`](reference/examples.md) when the target artifact's shape is
|
|
64
|
+
unclear.
|
|
65
|
+
|
|
66
|
+
## Boundaries
|
|
67
|
+
|
|
68
|
+
This skill edits language, not facts. When style and fidelity conflict, fidelity wins.
|
|
69
|
+
|
|
70
|
+
## Output
|
|
71
|
+
|
|
72
|
+
- **Rewrite:** replace the target prose; add no editing commentary unless the caller's contract
|
|
73
|
+
asks for it.
|
|
74
|
+
- **Detect-only:** return ordered P0/P1/P2 findings with the exact phrase and a concrete fix.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Phrases & words to cut
|
|
2
|
+
|
|
3
|
+
Load this when scrubbing prose. The lists are calibrated for a coding agent: the **AI
|
|
4
|
+
vocabulary** section marks which words are *always* slop versus which are legitimate in
|
|
5
|
+
technical writing, so the skill doesn't flatten a real spec into vagueness.
|
|
6
|
+
|
|
7
|
+
## Throat-clearing openers (cut — state the point)
|
|
8
|
+
|
|
9
|
+
- "Here's the thing:" / "Here's what / why / how [X]"
|
|
10
|
+
- "It's worth noting that" / "It's important to note that"
|
|
11
|
+
- "Let me be clear" / "I'll be honest" / "To be honest"
|
|
12
|
+
- "The uncomfortable truth is" / "The reality is" / "It turns out"
|
|
13
|
+
- "Make no mistake" / "At its core" / "At the end of the day"
|
|
14
|
+
- "When it comes to [X]" / "In today's [fast-paced / digital] world"
|
|
15
|
+
|
|
16
|
+
Any "here's what/this/that" or "it's worth noting" is runway before the point. Delete it and
|
|
17
|
+
start at the point.
|
|
18
|
+
|
|
19
|
+
## Emphasis crutches (delete — they add no information)
|
|
20
|
+
|
|
21
|
+
- "Let that sink in." / "Full stop." / "Period."
|
|
22
|
+
- "This matters because" / "Here's why that matters"
|
|
23
|
+
- "This is the deepest problem" / "the stakes are high" / "the consequences are real"
|
|
24
|
+
- "Notably," / "Interestingly," / "Importantly," / "Surprisingly," stacked to tell the
|
|
25
|
+
reader how to feel. One "notably" in a long note is fine; three in a short paragraph
|
|
26
|
+
is emphasis stacking. Cut the cue; leave the fact.
|
|
27
|
+
|
|
28
|
+
## Hedging stacks (make the claim or cut it)
|
|
29
|
+
|
|
30
|
+
- "it's important to note that, generally, in most cases…"
|
|
31
|
+
- "perhaps", "could potentially", "it could be argued that", "one might say"
|
|
32
|
+
|
|
33
|
+
Stacked hedges read as a model covering itself. One honest qualifier is fine; a stack is slop.
|
|
34
|
+
|
|
35
|
+
## Sycophancy & chatbot artifacts (remove entirely)
|
|
36
|
+
|
|
37
|
+
These leak the assistant register into artifacts and replies:
|
|
38
|
+
|
|
39
|
+
- "Great question!" / "You're absolutely right!" / "Certainly!" / "Of course!"
|
|
40
|
+
- "I hope this helps!" / "Let me know if you need anything else" / "Feel free to reach out"
|
|
41
|
+
- "Let's explore" / "Let's break this down" / "Let's dive in" / "First, let's consider"
|
|
42
|
+
|
|
43
|
+
A `decisions.md` entry or a `seal.md` verdict is a document, not a chat turn. No
|
|
44
|
+
pleasantries, no tour-guide openers. Start at the point.
|
|
45
|
+
|
|
46
|
+
## Assistant leaks (P0 — delete on sight)
|
|
47
|
+
|
|
48
|
+
These are paste fingerprints, not style. Strip the leak; keep any real fact it was
|
|
49
|
+
wrapping. Presence is a publishing bug, not an authorship tribunal.
|
|
50
|
+
|
|
51
|
+
- **Cutoff disclaimers.** "As of my last update", "based on my training data", "I don't
|
|
52
|
+
have access to…". Find the fact or drop the sentence.
|
|
53
|
+
- **Unfilled placeholders.** `[Your Name]`, `[INSERT SOURCE]`, `2025-XX-XX`, HTML
|
|
54
|
+
comments that say `TODO` / `insert` / `fill in`. Fill or delete. Never ship the slot.
|
|
55
|
+
- **Citation markup.** `citeturn`, `oaicite`, `oai_citation`, `grok_card`,
|
|
56
|
+
`[attached_file:N]`. Delete the token. If the cite mattered, replace it with a real
|
|
57
|
+
link.
|
|
58
|
+
- **AI-tool tracking URLs.** Strip `utm_source=chatgpt.com` / `copilot.com` /
|
|
59
|
+
`openai` / `claude.ai` / `perplexity.ai` and `referrer=grok.com`. Keep the rest of
|
|
60
|
+
the query string (`?page=2` stays).
|
|
61
|
+
|
|
62
|
+
## Business jargon → plain language
|
|
63
|
+
|
|
64
|
+
| Avoid | Use instead |
|
|
65
|
+
|---|---|
|
|
66
|
+
| Navigate (challenges) | handle, address |
|
|
67
|
+
| Unpack (the analysis) | explain, examine |
|
|
68
|
+
| Lean into | accept, commit to |
|
|
69
|
+
| Landscape (figurative) | situation, field, area |
|
|
70
|
+
| Game-changer | significant, important |
|
|
71
|
+
| Deep dive | analysis, examination |
|
|
72
|
+
| Circle back / revisit later | return to |
|
|
73
|
+
| Moving forward | next, from now on |
|
|
74
|
+
| On the same page | aligned, agreed |
|
|
75
|
+
|
|
76
|
+
## AI vocabulary — calibrated (this is the adaptation that matters)
|
|
77
|
+
|
|
78
|
+
Word lists are blunt instruments. A coding agent must not "fix" a spec that legitimately says
|
|
79
|
+
a system is *robust* under load or exposes a *comprehensive* API. Tiers, with a 1A/1B split:
|
|
80
|
+
|
|
81
|
+
**Tier 1A — always slop, replace on sight (figurative filler, never load-bearing in a spec).**
|
|
82
|
+
A cluster is a writing-quality signal, not proof of who wrote the passage.
|
|
83
|
+
|
|
84
|
+
delve / delve into, tapestry, beacon, embark, testament to, realm, landscape (figurative),
|
|
85
|
+
pave the way, shed light on, game-changer, unlock the potential, ever-evolving, vibrant,
|
|
86
|
+
multifaceted, holistic, paradigm (as praise), groundbreaking, transformative, cutting-edge.
|
|
87
|
+
|
|
88
|
+
**Tier 1B — always replace for clarity; not authorship evidence.**
|
|
89
|
+
Wordiness and inflated formality. Same edit as 1A, weaker claim: these also appear in
|
|
90
|
+
careful human writing. In detect-only, report 1B separately from 1A. A 1B hit must not
|
|
91
|
+
push a passage toward an "AI wrote this" conclusion.
|
|
92
|
+
|
|
93
|
+
| Replace | With |
|
|
94
|
+
|---|---|
|
|
95
|
+
| utilize | use |
|
|
96
|
+
| in order to | to |
|
|
97
|
+
| due to the fact that | because |
|
|
98
|
+
| commence | start, begin |
|
|
99
|
+
| ascertain | find out, determine |
|
|
100
|
+
| endeavor | try, attempt |
|
|
101
|
+
|
|
102
|
+
**Tier 2 — slop in prose, legitimate in technical context (keep the meaning, judge by use):**
|
|
103
|
+
robust, comprehensive, seamless, leverage, harness, facilitate, underpin, streamline,
|
|
104
|
+
foster, ecosystem, scalable.
|
|
105
|
+
- In a sentence selling the work ("a robust, scalable, seamless solution") → cut; say what it
|
|
106
|
+
does and what proves it.
|
|
107
|
+
- In a precise technical claim ("the retry path is robust to a dropped connection — see
|
|
108
|
+
`evidence.md`") → keep. The word carries a real, tested meaning.
|
|
109
|
+
|
|
110
|
+
**Tier 3 — flag by density, not per-word:** ordinary words (`important`, `key`, `various`,
|
|
111
|
+
`significant`) become slop only when they cluster. If a paragraph leans on three of them, it's
|
|
112
|
+
saying nothing — name the specific thing instead.
|
|
113
|
+
|
|
114
|
+
**Co-occurrence tell:** these words travel in packs. Where you find one Tier-1 word, look for
|
|
115
|
+
its neighbours (delve / boasts / bolstered / crucial / pivotal cluster together). One sighting
|
|
116
|
+
means scan the whole passage.
|
|
117
|
+
|
|
118
|
+
**Match inflected forms.** Each entry covers the word *and* its variants — adverb (`-ly`),
|
|
119
|
+
gerund (`-ing`), plural, conjugations: `delve` also catches `delving` / `delved`; `leverage`
|
|
120
|
+
catches `leveraging` / `leveraged`. The exception is a variant with a distinct, legitimate
|
|
121
|
+
meaning (`real` the intensifier vs `real` meaning factual) — judge it by use, same as the
|
|
122
|
+
tier calibration above.
|
|
123
|
+
|
|
124
|
+
## Adverbs (cut empty intensifiers; keep load-bearing ones)
|
|
125
|
+
|
|
126
|
+
Cut the emphasis adverbs that add nothing: really, very, just, literally, genuinely, honestly,
|
|
127
|
+
simply, actually, truly, fundamentally, inherently, inevitably, basically.
|
|
128
|
+
|
|
129
|
+
Keep adverbs that change meaning or precision: "validate **server-side**", "fail **closed**",
|
|
130
|
+
"runs **concurrently**", "**explicitly** typed". The rule is "cut the empty intensifier", not
|
|
131
|
+
"delete every -ly word" — over-applying the no-adverb rule is its own kind of damage in
|
|
132
|
+
technical writing.
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Before / after — DevRites artifacts & replies
|
|
2
|
+
|
|
3
|
+
Real shapes DevRites emits. Each pair keeps the technical content and strips the voice. Note
|
|
4
|
+
how the calibration preserves precise lists and identifiers while cutting the prose slop.
|
|
5
|
+
|
|
6
|
+
## 1. `spec.md` overview
|
|
7
|
+
|
|
8
|
+
**Before (slop):**
|
|
9
|
+
> In today's fast-paced data landscape, this feature delivers a robust, scalable, and seamless
|
|
10
|
+
> CSV export capability. It's not just about exporting data — it's about empowering users to
|
|
11
|
+
> unlock the full potential of their information. This is a pivotal step forward.
|
|
12
|
+
|
|
13
|
+
**After:**
|
|
14
|
+
> Export the report table to CSV. Users currently copy rows by hand; this adds a one-click
|
|
15
|
+
> download. Scope: the reports table only, server-side streaming so memory stays flat on large
|
|
16
|
+
> exports.
|
|
17
|
+
|
|
18
|
+
Cut the jargon, the negative-parallelism hook, and the importance inflation. Kept what the
|
|
19
|
+
feature is, who it's for, and the scope boundary.
|
|
20
|
+
|
|
21
|
+
## 2. Acceptance criteria (technical register — precision stays)
|
|
22
|
+
|
|
23
|
+
**Keep this as-is — do NOT "humanize" it:**
|
|
24
|
+
> - AC-001: A `GET /reports/:id/export?format=csv` returns `200` with `Content-Type: text/csv`.
|
|
25
|
+
> - AC-002: Rows stream; peak memory stays under 50 MB for a 1M-row export.
|
|
26
|
+
> - AC-003: An unknown `format` returns `400` with `{ "error": "unsupported format" }`.
|
|
27
|
+
|
|
28
|
+
Three items, exact identifiers, exact status codes. This is the technical register working
|
|
29
|
+
correctly. The skill leaves it alone.
|
|
30
|
+
|
|
31
|
+
## 3. `decisions.md` entry
|
|
32
|
+
|
|
33
|
+
**Before (slop):**
|
|
34
|
+
> We made the strategic decision to leverage a streaming approach. This robust solution
|
|
35
|
+
> seamlessly handles large datasets and represents a best-in-class architecture that will
|
|
36
|
+
> empower the system to scale effortlessly.
|
|
37
|
+
|
|
38
|
+
**After:**
|
|
39
|
+
> Stream rows to the response instead of buffering the full file. Buffering OOM-ed on a
|
|
40
|
+
> 1M-row export in testing (see `evidence.md`). Trade-off: streaming rules out a total-row
|
|
41
|
+
> count in the header. Revisit if the UI needs an upfront progress bar.
|
|
42
|
+
|
|
43
|
+
Named the decision, the reason (with evidence), and the trade-off. That's what an ADR is for.
|
|
44
|
+
|
|
45
|
+
## 4. `review.md` / `seal.md` finding
|
|
46
|
+
|
|
47
|
+
**Before (slop):**
|
|
48
|
+
> It's worth noting that the error handling here could potentially be more robust. This is a
|
|
49
|
+
> critical area that fundamentally matters for production readiness.
|
|
50
|
+
|
|
51
|
+
**After:**
|
|
52
|
+
> Critical — `export.ts:42` catches every error and returns `500 "something went wrong"`. A
|
|
53
|
+
> bad `format` param should be a `400` with the specific message (AC-003). Catch the parse error
|
|
54
|
+
> narrowly; let the rest propagate.
|
|
55
|
+
|
|
56
|
+
Severity label, `file:line`, the specific problem, the fix. No hedging, no "fundamentally".
|
|
57
|
+
|
|
58
|
+
## 5. Chat reply
|
|
59
|
+
|
|
60
|
+
**Before (slop):**
|
|
61
|
+
> Great question! I've gone ahead and implemented the export feature. It's not just functional
|
|
62
|
+
> — it's production-ready. Let me know if you need anything else!
|
|
63
|
+
|
|
64
|
+
**After:**
|
|
65
|
+
> Built slice 3 (CSV streaming). Tests pass (`npm test -- export` → 14 passing), peak memory
|
|
66
|
+
> 38 MB on the 1M-row fixture. Next: slice 4 (pagination). Want me to continue?
|
|
67
|
+
|
|
68
|
+
Dropped the pleasantries and the "not just X" inflation. Led with what's done and the evidence.
|
|
69
|
+
|
|
70
|
+
## 6. Commit body
|
|
71
|
+
|
|
72
|
+
**Before (slop):**
|
|
73
|
+
> This commit introduces a comprehensive and robust solution that seamlessly enables users to
|
|
74
|
+
> leverage powerful new export capabilities.
|
|
75
|
+
|
|
76
|
+
**After:**
|
|
77
|
+
> Buffering the whole CSV OOM-ed on >100k rows. Stream rows to the response so memory stays
|
|
78
|
+
> flat. Rules out an upfront total-count header; tracked in #123.
|
|
79
|
+
|
|
80
|
+
Followed [`git-workflow.md`](../../devrites-lib/reference/standards/git-workflow.md): the *why*, wrapped, in plain language.
|
|
81
|
+
|
|
82
|
+
## 7. Fidelity when evidence is incomplete
|
|
83
|
+
|
|
84
|
+
**Before (slop, but informative):**
|
|
85
|
+
> It is important to note that the importer retries twice after a `429`. The available evidence
|
|
86
|
+
> does not clearly indicate whether a third attempt is dropped or queued. In either case, the
|
|
87
|
+
> alert text is `Import delayed`.
|
|
88
|
+
|
|
89
|
+
**After:**
|
|
90
|
+
> The importer retries twice after a `429`. We do not have a production trace showing whether a
|
|
91
|
+
> third attempt is dropped or queued. The alert text remains `Import delayed`.
|
|
92
|
+
|
|
93
|
+
Cut the opener and vague phrasing. Kept the retry count, status code, evidence gap, two possible
|
|
94
|
+
outcomes, and exact alert text. A smoother sentence that picked one outcome would be fabrication.
|
|
95
|
+
|
|
96
|
+
## 8. `review.md` finding (narrated candor)
|
|
97
|
+
|
|
98
|
+
**Before (slop):**
|
|
99
|
+
> I want to be upfront: two caveats I would rather flag than let you discover later. First,
|
|
100
|
+
> Windows is untested. Second, the numbers in the commit message don't reproduce on this
|
|
101
|
+
> hardware. Let me think step by step about what that means for seal.
|
|
102
|
+
|
|
103
|
+
**After:**
|
|
104
|
+
> Two caveats: Windows is untested, and the numbers in the commit message don't reproduce on
|
|
105
|
+
> this hardware. Seal stays NO-GO until those are measured or scoped out.
|
|
106
|
+
|
|
107
|
+
Cut the candor frame and the reasoning-chain opener. Kept both caveats and the gate implication.
|
|
108
|
+
|
|
109
|
+
## 9. Chat reply (prompt restatement)
|
|
110
|
+
|
|
111
|
+
**Before (slop):**
|
|
112
|
+
> That's a great question. You're asking about whether we should stream the export. Thanks for
|
|
113
|
+
> the rollback plan you already wrote — that legwork is what made this possible. Breaking this
|
|
114
|
+
> down: streaming avoids the OOM.
|
|
115
|
+
|
|
116
|
+
**After:**
|
|
117
|
+
> Stream the export. Buffering OOM-ed on the 1M-row fixture (see `evidence.md`). Your rollback
|
|
118
|
+
> plan still applies.
|
|
119
|
+
|
|
120
|
+
Dropped the prompt echo, the recap-flattery, and "Breaking this down". Led with the decision
|
|
121
|
+
and the evidence.
|
|
122
|
+
|
|
123
|
+
## The pattern across all nine
|
|
124
|
+
|
|
125
|
+
1. Lead with the concrete thing (what it is, what's done, what's wrong).
|
|
126
|
+
2. Replace every "robust/seamless/leverage" flourish with the specific behavior + its proof.
|
|
127
|
+
3. Drop negative-parallelism hooks ("not just X, it's Y"), importance labels ("pivotal"),
|
|
128
|
+
candor frames ("I want to be upfront"), and reasoning-chain scaffolding ("let me think
|
|
129
|
+
step by step").
|
|
130
|
+
4. Keep the technical register intact: exact identifiers, status codes, numbered criteria,
|
|
131
|
+
real enumerations. Precision is not slop.
|