devrites 7.1.2 → 7.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +9 -4
- package/docs/dsh.md +85 -0
- package/engine/internal/devritespaths/paths.go +2 -0
- package/engine/internal/hostpack/hostpack.go +29 -5
- package/engine/internal/install/apply.go +14 -2
- package/engine/internal/install/install.go +7 -3
- package/engine/internal/install/merge.go +1 -0
- package/engine/internal/install/preflight.go +9 -2
- package/engine/internal/install/update.go +1 -1
- package/engine/internal/lib/dispatch_packet.go +1 -1
- package/pack/generated/README.md +3 -1
- package/pack/generated/dsh/AGENTS.md +27 -0
- package/pack/generated/dsh/agents/devrites-code-reviewer.md +180 -0
- package/pack/generated/dsh/agents/devrites-devex-reviewer.md +137 -0
- package/pack/generated/dsh/agents/devrites-doubt-reviewer.md +100 -0
- package/pack/generated/dsh/agents/devrites-evidence-scout.md +93 -0
- package/pack/generated/dsh/agents/devrites-frontend-reviewer.md +139 -0
- package/pack/generated/dsh/agents/devrites-performance-reviewer.md +142 -0
- package/pack/generated/dsh/agents/devrites-plan-drafter.md +113 -0
- package/pack/generated/dsh/agents/devrites-plan-reviewer.md +167 -0
- package/pack/generated/dsh/agents/devrites-proof-runner.md +101 -0
- package/pack/generated/dsh/agents/devrites-retrospector.md +82 -0
- package/pack/generated/dsh/agents/devrites-security-auditor.md +146 -0
- package/pack/generated/dsh/agents/devrites-simplifier-reviewer.md +113 -0
- package/pack/generated/dsh/agents/devrites-slice-wright.md +240 -0
- package/pack/generated/dsh/agents/devrites-spec-reviewer.md +105 -0
- package/pack/generated/dsh/agents/devrites-strategy-reviewer.md +109 -0
- package/pack/generated/dsh/agents/devrites-test-analyst.md +110 -0
- package/pack/generated/dsh/agents/devrites-upgrade-planner.md +107 -0
- package/pack/generated/dsh/agents/fast-builder.md +92 -0
- package/pack/generated/dsh/agents/fast-checker.md +61 -0
- package/pack/generated/dsh/agents/fast-critic.md +71 -0
- package/pack/generated/dsh/agents/fast-planner.md +95 -0
- package/pack/generated/dsh/agents/overhaul-backend-engineer.md +70 -0
- package/pack/generated/dsh/agents/overhaul-boundary.md +64 -0
- package/pack/generated/dsh/agents/overhaul-craft.md +85 -0
- package/pack/generated/dsh/agents/overhaul-frontend-engineer.md +73 -0
- package/pack/generated/dsh/agents/overhaul-implementer.md +72 -0
- package/pack/generated/dsh/agents/overhaul-recon.md +77 -0
- package/pack/generated/dsh/agents/overhaul-specialist.md +67 -0
- package/pack/generated/dsh/agents/overhaul-verifier.md +73 -0
- package/pack/generated/dsh/runtime/codebase-memory.patch.yml +16 -0
- package/pack/generated/dsh/runtime/cordis.patch.yml +1762 -0
- package/pack/generated/dsh/runtime/specialist.mjs +85 -0
- package/pack/generated/dsh/skills/devrites-api-interface/SKILL.md +65 -0
- package/pack/generated/dsh/skills/devrites-audit/SKILL.md +60 -0
- package/pack/generated/dsh/skills/devrites-browser-proof/SKILL.md +109 -0
- package/pack/generated/dsh/skills/devrites-browser-proof/reference/browser-performance.md +19 -0
- package/pack/generated/dsh/skills/devrites-browser-proof/reference/visual-verdict.md +38 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/SKILL.md +119 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +41 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/reference/hypotheses.md +23 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/reference/regression-test.md +33 -0
- package/pack/generated/dsh/skills/devrites-debug-recovery/reference/trace.md +25 -0
- package/pack/generated/dsh/skills/devrites-doubt/SKILL.md +83 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/SKILL.md +89 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/reference/craft.md +63 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/reference/design-references.md +120 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/reference/fullstack.md +46 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/reference/quality-standards.md +286 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/reference/reuse-first.md +53 -0
- package/pack/generated/dsh/skills/devrites-frontend-craft/reference/shape.md +61 -0
- package/pack/generated/dsh/skills/devrites-interview/SKILL.md +107 -0
- package/pack/generated/dsh/skills/devrites-lib/SKILL.md +98 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/candidate-integrity.md +59 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/intent-map.md +86 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/orchestration-profiles.md +48 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/parallel-dispatch.md +184 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/reply-contract.md +123 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/README.md +70 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +32 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/afk-hitl.md +467 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/agents.md +231 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/anti-patterns.md +50 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/audit-coverage.md +107 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/browser-proof-checklist.md +37 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/ci-cd.md +62 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/code-index.md +111 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/code-navigation.md +69 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/code-review.md +178 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/coding-style.md +53 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/context-hygiene.md +136 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/core.md +202 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/data-integrity.md +144 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/debug-recovery.md +42 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/definition-of-done.md +25 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/deprecation.md +49 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/developer-experience.md +128 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/development-workflow.md +31 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/documentation.md +55 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/duplicate-code.md +129 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/edge-case-trace.md +94 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/elicitation.md +114 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/error-handling.md +49 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/gates.md +159 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/git-workflow.md +51 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/glossary.md +40 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/hooks.md +41 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/integration-reliability.md +121 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/loop-operations.md +123 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/observability.md +90 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/one-shot-actions.md +105 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/patterns.md +70 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/performance.md +88 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/principles.md +56 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/prose-style.md +127 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/release/ship-checklist.md +12 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/repository-topology.md +82 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/README.md +28 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/default.md +42 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/go.md +47 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/python.md +46 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/react.md +55 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/shell.md +40 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/ts-js.md +74 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/review-checklist.md +14 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/security-checklist.md +30 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/security.md +283 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/skill-authoring.md +269 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/spec-grammar.md +214 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/test-proof-checklist.md +18 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/testing.md +295 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/tooling.md +125 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/verification-methods.md +143 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/windows.md +60 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/workflow-artifacts.md +435 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/code.md +44 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/comparison.md +42 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/diagram.md +51 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/index.md +66 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/input.md +46 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/outline-template.md +106 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/plan.md +48 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/slides.md +40 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/table.md +42 -0
- package/pack/generated/dsh/skills/devrites-lib/reference/workspace-artifact-schema.md +312 -0
- package/pack/generated/dsh/skills/devrites-prose-craft/SKILL.md +81 -0
- package/pack/generated/dsh/skills/devrites-prose-craft/reference/banned-phrases.md +132 -0
- package/pack/generated/dsh/skills/devrites-prose-craft/reference/examples.md +136 -0
- package/pack/generated/dsh/skills/devrites-prose-craft/reference/structures.md +196 -0
- package/pack/generated/dsh/skills/devrites-source-driven/SKILL.md +54 -0
- package/pack/generated/dsh/skills/devrites-ux-shape/SKILL.md +135 -0
- package/pack/generated/dsh/skills/devrites-ux-shape/reference/brief-template.md +108 -0
- package/pack/generated/dsh/skills/devrites-ux-shape/reference/visual-direction-probe.md +50 -0
- package/pack/generated/dsh/skills/overhaul/SKILL.md +221 -0
- package/pack/generated/dsh/skills/overhaul/references/audit-domains.md +390 -0
- package/pack/generated/dsh/skills/overhaul/references/lifecycle.md +314 -0
- package/pack/generated/dsh/skills/overhaul/references/orchestration.md +291 -0
- package/pack/generated/dsh/skills/overhaul/references/records.md +203 -0
- package/pack/generated/dsh/skills/overhaul/references/repair-and-measurement.md +310 -0
- package/pack/generated/dsh/skills/overhaul/references/review-and-report.md +139 -0
- package/pack/generated/dsh/skills/overhaul/references/scope-and-safety.md +233 -0
- package/pack/generated/dsh/skills/overhaul/references/scoring.md +261 -0
- package/pack/generated/dsh/skills/overhaul/references/stack-profiles.md +316 -0
- package/pack/generated/dsh/skills/rite/SKILL.md +157 -0
- package/pack/generated/dsh/skills/rite/reference/menu.md +49 -0
- package/pack/generated/dsh/skills/rite-adopt/SKILL.md +64 -0
- package/pack/generated/dsh/skills/rite-adopt/reference/adoption.md +25 -0
- package/pack/generated/dsh/skills/rite-adopt/reference/anti-patterns.md +19 -0
- package/pack/generated/dsh/skills/rite-autocomplete/SKILL.md +167 -0
- package/pack/generated/dsh/skills/rite-autocomplete/reference/decision-policy.md +44 -0
- package/pack/generated/dsh/skills/rite-autocomplete/reference/lookahead.md +50 -0
- package/pack/generated/dsh/skills/rite-autocomplete/reference/loop.md +164 -0
- package/pack/generated/dsh/skills/rite-autocomplete/reference/stop-conditions.md +118 -0
- package/pack/generated/dsh/skills/rite-build/SKILL.md +126 -0
- package/pack/generated/dsh/skills/rite-build/reference/afk-discipline.md +153 -0
- package/pack/generated/dsh/skills/rite-build/reference/anti-patterns.md +27 -0
- package/pack/generated/dsh/skills/rite-build/reference/checkpoint-protocol.md +115 -0
- package/pack/generated/dsh/skills/rite-build/reference/checkpoint.md +79 -0
- package/pack/generated/dsh/skills/rite-build/reference/frontend-trigger.md +39 -0
- package/pack/generated/dsh/skills/rite-build/reference/one-slice-cycle.md +57 -0
- package/pack/generated/dsh/skills/rite-build/reference/output.md +29 -0
- package/pack/generated/dsh/skills/rite-build/reference/parallel-batch.md +260 -0
- package/pack/generated/dsh/skills/rite-build/reference/phase-contract.md +130 -0
- package/pack/generated/dsh/skills/rite-build/reference/spec-drift-guard.md +91 -0
- package/pack/generated/dsh/skills/rite-build/reference/tdd.md +27 -0
- package/pack/generated/dsh/skills/rite-build/reference/wright-dispatch.md +198 -0
- package/pack/generated/dsh/skills/rite-clarify/SKILL.md +104 -0
- package/pack/generated/dsh/skills/rite-clarify/reference/anti-patterns.md +24 -0
- package/pack/generated/dsh/skills/rite-clarify/reference/decision-coverage.md +56 -0
- package/pack/generated/dsh/skills/rite-converge/SKILL.md +167 -0
- package/pack/generated/dsh/skills/rite-converge/reference/anti-patterns.md +35 -0
- package/pack/generated/dsh/skills/rite-converge/reference/convergence-assessment.md +70 -0
- package/pack/generated/dsh/skills/rite-customize/SKILL.md +64 -0
- package/pack/generated/dsh/skills/rite-define/SKILL.md +203 -0
- package/pack/generated/dsh/skills/rite-define/reference/anti-patterns.md +26 -0
- package/pack/generated/dsh/skills/rite-define/reference/gates.md +160 -0
- package/pack/generated/dsh/skills/rite-define/reference/plan-template.md +153 -0
- package/pack/generated/dsh/skills/rite-doctor/SKILL.md +107 -0
- package/pack/generated/dsh/skills/rite-dogfood/SKILL.md +57 -0
- package/pack/generated/dsh/skills/rite-explain/SKILL.md +154 -0
- package/pack/generated/dsh/skills/rite-explain/reference/intake.md +89 -0
- package/pack/generated/dsh/skills/rite-fast/SKILL.md +185 -0
- package/pack/generated/dsh/skills/rite-fast/reference/artifacts.md +107 -0
- package/pack/generated/dsh/skills/rite-fast/reference/check-and-triage.md +51 -0
- package/pack/generated/dsh/skills/rite-frame/SKILL.md +119 -0
- package/pack/generated/dsh/skills/rite-frame/reference/failure-modes.md +66 -0
- package/pack/generated/dsh/skills/rite-handoff/SKILL.md +117 -0
- package/pack/generated/dsh/skills/rite-handoff/reference/handoff-template.md +56 -0
- package/pack/generated/dsh/skills/rite-harness/SKILL.md +76 -0
- package/pack/generated/dsh/skills/rite-harness/reference/feature-map.md +60 -0
- package/pack/generated/dsh/skills/rite-learn/SKILL.md +107 -0
- package/pack/generated/dsh/skills/rite-plan/SKILL.md +215 -0
- package/pack/generated/dsh/skills/rite-plan/reference/anti-patterns.md +34 -0
- package/pack/generated/dsh/skills/rite-plan/reference/dependency-graph.md +48 -0
- package/pack/generated/dsh/skills/rite-plan/reference/replan-and-repair.md +114 -0
- package/pack/generated/dsh/skills/rite-plan/reference/slicing.md +187 -0
- package/pack/generated/dsh/skills/rite-plan/reference/task-breakdown.md +50 -0
- package/pack/generated/dsh/skills/rite-polish/SKILL.md +128 -0
- package/pack/generated/dsh/skills/rite-polish/reference/adr-promotion.md +11 -0
- package/pack/generated/dsh/skills/rite-polish/reference/anti-ai-slop.md +210 -0
- package/pack/generated/dsh/skills/rite-polish/reference/anti-patterns.md +30 -0
- package/pack/generated/dsh/skills/rite-polish/reference/backend-polish.md +80 -0
- package/pack/generated/dsh/skills/rite-polish/reference/browser-polish-evidence.md +33 -0
- package/pack/generated/dsh/skills/rite-polish/reference/code.md +87 -0
- package/pack/generated/dsh/skills/rite-polish/reference/design-memory.md +117 -0
- package/pack/generated/dsh/skills/rite-polish/reference/design-system-discovery.md +8 -0
- package/pack/generated/dsh/skills/rite-polish/reference/harden-checklist.md +110 -0
- package/pack/generated/dsh/skills/rite-polish/reference/ledger.md +67 -0
- package/pack/generated/dsh/skills/rite-polish/reference/ui.md +146 -0
- package/pack/generated/dsh/skills/rite-pov/SKILL.md +71 -0
- package/pack/generated/dsh/skills/rite-pr-feedback/SKILL.md +61 -0
- package/pack/generated/dsh/skills/rite-pressure-test/SKILL.md +76 -0
- package/pack/generated/dsh/skills/rite-prototype/SKILL.md +106 -0
- package/pack/generated/dsh/skills/rite-prove/SKILL.md +151 -0
- package/pack/generated/dsh/skills/rite-prove/reference/acceptance-proof.md +88 -0
- package/pack/generated/dsh/skills/rite-prove/reference/anti-patterns.md +25 -0
- package/pack/generated/dsh/skills/rite-prove/reference/browser-proof.md +51 -0
- package/pack/generated/dsh/skills/rite-prove/reference/failure-triage.md +53 -0
- package/pack/generated/dsh/skills/rite-prove/reference/proof-ladder.md +39 -0
- package/pack/generated/dsh/skills/rite-prove/reference/test-command-discovery.md +36 -0
- package/pack/generated/dsh/skills/rite-quick/SKILL.md +97 -0
- package/pack/generated/dsh/skills/rite-resolve/SKILL.md +113 -0
- package/pack/generated/dsh/skills/rite-resolve/reference/answer-protocol.md +129 -0
- package/pack/generated/dsh/skills/rite-review/SKILL.md +190 -0
- package/pack/generated/dsh/skills/rite-review/reference/anti-patterns.md +32 -0
- package/pack/generated/dsh/skills/rite-review/reference/cognitive-load.md +90 -0
- package/pack/generated/dsh/skills/rite-review/reference/feature-scoped-review.md +26 -0
- package/pack/generated/dsh/skills/rite-review/reference/five-axis-review.md +66 -0
- package/pack/generated/dsh/skills/rite-review/reference/nielsen-heuristics.md +126 -0
- package/pack/generated/dsh/skills/rite-review/reference/performance-checklist.md +99 -0
- package/pack/generated/dsh/skills/rite-review/reference/performance-review.md +14 -0
- package/pack/generated/dsh/skills/rite-review/reference/security-review.md +44 -0
- package/pack/generated/dsh/skills/rite-seal/SKILL.md +99 -0
- package/pack/generated/dsh/skills/rite-seal/reference/anti-patterns.md +29 -0
- package/pack/generated/dsh/skills/rite-seal/reference/final-evidence.md +41 -0
- package/pack/generated/dsh/skills/rite-seal/reference/go-no-go.md +32 -0
- package/pack/generated/dsh/skills/rite-seal/reference/output.md +5 -0
- package/pack/generated/dsh/skills/rite-seal/reference/phase-contract.md +56 -0
- package/pack/generated/dsh/skills/rite-seal/reference/risk-and-rollback.md +56 -0
- package/pack/generated/dsh/skills/rite-seal/reference/seal-template.md +32 -0
- package/pack/generated/dsh/skills/rite-ship/SKILL.md +101 -0
- package/pack/generated/dsh/skills/rite-ship/reference/anti-patterns.md +28 -0
- package/pack/generated/dsh/skills/rite-ship/reference/close-out.md +69 -0
- package/pack/generated/dsh/skills/rite-ship/reference/git-ship.md +128 -0
- package/pack/generated/dsh/skills/rite-ship/reference/rollout.md +62 -0
- package/pack/generated/dsh/skills/rite-ship/reference/ship-template.md +40 -0
- package/pack/generated/dsh/skills/rite-spec/SKILL.md +169 -0
- package/pack/generated/dsh/skills/rite-spec/reference/acceptance-criteria.md +31 -0
- package/pack/generated/dsh/skills/rite-spec/reference/ai-spec-template.md +40 -0
- package/pack/generated/dsh/skills/rite-spec/reference/anti-patterns.md +27 -0
- package/pack/generated/dsh/skills/rite-spec/reference/interview-patterns.md +56 -0
- package/pack/generated/dsh/skills/rite-spec/reference/investigation.md +83 -0
- package/pack/generated/dsh/skills/rite-spec/reference/question-protocol.md +36 -0
- package/pack/generated/dsh/skills/rite-spec/reference/references-intake.md +62 -0
- package/pack/generated/dsh/skills/rite-spec/reference/spec-checklists.md +89 -0
- package/pack/generated/dsh/skills/rite-spec/reference/spec-template.md +160 -0
- package/pack/generated/dsh/skills/rite-spec/reference/state-workspace.md +240 -0
- package/pack/generated/dsh/skills/rite-status/SKILL.md +74 -0
- package/pack/generated/dsh/skills/rite-temper/SKILL.md +137 -0
- package/pack/generated/dsh/skills/rite-temper/reference/anti-patterns.md +30 -0
- package/pack/generated/dsh/skills/rite-temper/reference/review-dimensions.md +66 -0
- package/pack/generated/dsh/skills/rite-temper/reference/scope-modes.md +52 -0
- package/pack/generated/dsh/skills/rite-temper/reference/significance.md +55 -0
- package/pack/generated/dsh/skills/rite-temper/reference/strategy-template.md +101 -0
- package/pack/generated/dsh/skills/rite-upgrade/SKILL.md +142 -0
- package/pack/generated/dsh/skills/rite-vet/SKILL.md +242 -0
- package/pack/generated/dsh/skills/rite-vet/reference/anti-patterns.md +43 -0
- package/pack/generated/dsh/skills/rite-vet/reference/artifacts.md +248 -0
- package/pack/generated/dsh/skills/rite-vet/reference/cross-model.md +19 -0
- package/pack/generated/dsh/skills/rite-vet/reference/depth.md +59 -0
- package/pack/generated/dsh/skills/rite-vet/reference/eng-lenses.md +48 -0
- package/pack/generated/dsh/skills/rite-vet/reference/review-axes.md +210 -0
- package/pack/generated/dsh/skills/rite-watch-pr/SKILL.md +87 -0
- package/pack/generated/dsh/skills/rite-zoom-out/SKILL.md +76 -0
- package/package.json +3 -1
- package/scripts/build-host-artifacts.sh +6 -2
- package/scripts/dsh-generate.py +165 -0
- package/scripts/dsh-specialist.mjs +85 -0
- package/scripts/install-lib.sh +3 -1
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Five-axis review: tests first, then six axes
|
|
2
|
+
|
|
3
|
+
The dispatched `devrites-code-reviewer` checks tests first, then correctness, readability,
|
|
4
|
+
architecture, maintainability, and standards under one severity scale (Critical / Important / Suggestion / Nit / FYI).
|
|
5
|
+
The `/rite-review` inline lead **reconciles** the returned report against the Spec
|
|
6
|
+
axis. It does not re-run these axes itself. This file is the shared definition of
|
|
7
|
+
what "full code-review discipline" covers; use it to judge whether the agent's report
|
|
8
|
+
is complete, and to scope anything the agent could not (e.g. UI-only lenses below).
|
|
9
|
+
|
|
10
|
+
## 0. Tests (first)
|
|
11
|
+
- Do tests exist for the changed behavior, and do they prove the acceptance criteria?
|
|
12
|
+
- Would they fail if the code were wrong? (No assertion-free or tautological tests.)
|
|
13
|
+
- Edge cases: empty, boundary, error, permission-denied, concurrency.
|
|
14
|
+
- Applicable data/integration/topology cases use a risk-capable boundary; no
|
|
15
|
+
risk-erasing mock, one-tenant isolation claim, or one-root proof for another root.
|
|
16
|
+
|
|
17
|
+
## 1. Correctness
|
|
18
|
+
- Does it do what the spec says? Off-by-one, null/undefined, error paths, race
|
|
19
|
+
conditions, incorrect assumptions about inputs.
|
|
20
|
+
- Does it handle the states the slice promised (loading/empty/error for UI)?
|
|
21
|
+
- Does retry/interruption converge without duplicate effects; do partial/unknown external
|
|
22
|
+
outcomes, migrations, old/new versions, tenant scope, and rollback follow the accepted plan?
|
|
23
|
+
|
|
24
|
+
## 2. Readability
|
|
25
|
+
- Can the next engineer understand it without the author? Naming, function length,
|
|
26
|
+
nesting depth, comments that explain *why* not *what*.
|
|
27
|
+
- Structural smells: a conditional **bolted onto an unrelated flow** (wants its own
|
|
28
|
+
helper/state/policy: a design smell, not a nit); **repeated conditionals on the same
|
|
29
|
+
shape** (a missing model or dispatcher).
|
|
30
|
+
|
|
31
|
+
## 3. Architecture
|
|
32
|
+
- Right seam/boundary? Coupling and cohesion. Does it fit existing patterns or
|
|
33
|
+
introduce a competing one? Is the abstraction earned (not premature)?
|
|
34
|
+
- Does a refactor **reduce** complexity or just **relocate** it? Count the concepts a
|
|
35
|
+
reader must hold; a "cleaner" version that leaves that count unchanged isn't cleaner.
|
|
36
|
+
- Is feature-specific logic **leaking into a shared module** instead of its owning layer?
|
|
37
|
+
Is a **type boundary** left implicit by a gratuitous `any`/cast or a silent fallback?
|
|
38
|
+
- **Name the remedy, not just the smell:** replace a conditional chain with a typed
|
|
39
|
+
dispatcher, separate orchestration from business logic, move feature logic to its owning
|
|
40
|
+
package, delete a pass-through wrapper, split a large file. Prefer the move that removes
|
|
41
|
+
moving pieces over one that re-centralizes the same complexity.
|
|
42
|
+
- Are repository/deployable roots, canonical contract and mutable-state owners, shared
|
|
43
|
+
resources, and synchronous/asynchronous consistency boundaries preserved without a cycle?
|
|
44
|
+
|
|
45
|
+
## 4. Security
|
|
46
|
+
- Trust boundaries, input validation, authz checks, secrets handling. Hand off to
|
|
47
|
+
`devrites-audit security` when input/auth/data/integration is in scope.
|
|
48
|
+
|
|
49
|
+
## 5. Performance
|
|
50
|
+
- Obvious N+1s, unnecessary work in hot paths, payload sizes. Hand off to
|
|
51
|
+
`devrites-audit perf` when perf is relevant: **measure before claiming**.
|
|
52
|
+
|
|
53
|
+
## 6. Maintainability
|
|
54
|
+
- Tests, docs/comments where needed, no dead code added, no TODOs left, consistent
|
|
55
|
+
with project conventions.
|
|
56
|
+
|
|
57
|
+
## Frontend axes (if UI)
|
|
58
|
+
- UX flow matches neighbors; all interaction states; a11y (focus, labels, contrast,
|
|
59
|
+
keyboard); responsive; design-system alignment (no drift, no anti-AI-slop).
|
|
60
|
+
|
|
61
|
+
## Sizing & speed
|
|
62
|
+
Prefer reviewing roughly one slice / ~100 lines of meaningful change at a time. Larger
|
|
63
|
+
diffs hide defects: recommend splitting rather than rubber-stamping. Watch **file size,
|
|
64
|
+
not just diff size**: a small diff that pushes an already-large file further past a healthy
|
|
65
|
+
boundary wants decomposition (extract helpers / split modules) *first*: decompose, then
|
|
66
|
+
add.
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Nielsen's 10 usability heuristics: DevRites scoring rubric
|
|
2
|
+
|
|
3
|
+
A structured UX rubric for `/rite-review` when the feature touches UI. Score each
|
|
4
|
+
heuristic on a **0-4** scale; the per-heuristic scores feed the UX axis of the
|
|
5
|
+
multi-axis review and shape the severity labels on UX findings.
|
|
6
|
+
|
|
7
|
+
**Score honestly.** 4 means *genuinely excellent*, not "good enough", not "no
|
|
8
|
+
findings". 3 is "good with minor gaps". 2 is "partial: significant gaps". 0-1 is a
|
|
9
|
+
Critical / Important.
|
|
10
|
+
|
|
11
|
+
## 1. Visibility of system status
|
|
12
|
+
Users know what's happening, when, and where.
|
|
13
|
+
- Loading indicators on async operations.
|
|
14
|
+
- Confirmation when actions complete (save, submit, delete).
|
|
15
|
+
- Progress on multi-step flows.
|
|
16
|
+
- Current location in nav (active state, breadcrumbs).
|
|
17
|
+
- Inline form validation, not just on submit.
|
|
18
|
+
|
|
19
|
+
| 0 | 1 | 2 | 3 | 4 |
|
|
20
|
+
|---|---|---|---|---|
|
|
21
|
+
| No feedback. | Critical actions lack feedback. | Most actions have feedback; gaps. | Consistent feedback; minor lag/lateness. | Anticipates uncertainty; reassures throughout. |
|
|
22
|
+
|
|
23
|
+
## 2. Match between system and the real world
|
|
24
|
+
The UI speaks the user's language and follows real-world conventions.
|
|
25
|
+
- Domain vocabulary the *user* shares, not the team's internal names.
|
|
26
|
+
- Familiar metaphors where they help (cart, inbox, draft).
|
|
27
|
+
- Information ordered the way the user thinks about it, not the way the DB stores it.
|
|
28
|
+
|
|
29
|
+
| 0 | 1 | 2 | 3 | 4 |
|
|
30
|
+
|---|---|---|---|---|
|
|
31
|
+
| Jargon throughout. | Mostly internal vocabulary. | Mixed: some user terms, some internal. | Clear user terms; a couple of leaks. | Reads like the user's own words. |
|
|
32
|
+
|
|
33
|
+
## 3. User control and freedom
|
|
34
|
+
Easy escape, undo, and back-out from any state.
|
|
35
|
+
- Cancel / close / back on every modal, route, and form.
|
|
36
|
+
- Undo on destructive operations (delete, archive, reset).
|
|
37
|
+
- No dead-end states ("Error: refresh the page" with no recovery).
|
|
38
|
+
|
|
39
|
+
| 0 | 1 | 2 | 3 | 4 |
|
|
40
|
+
|---|---|---|---|---|
|
|
41
|
+
| Users trapped in states. | Limited escape on key flows. | Most flows reversible; gaps on destructive ops. | Good escape + undo on most flows. | Confident exploration possible everywhere. |
|
|
42
|
+
|
|
43
|
+
## 4. Consistency and standards
|
|
44
|
+
Internal consistency (this feature matches the project) + external consistency (the
|
|
45
|
+
project matches platform / web norms).
|
|
46
|
+
- Same concept named the same way across screens.
|
|
47
|
+
- Same affordance (button vs link vs row) means the same thing across screens.
|
|
48
|
+
- Platform conventions respected (browser back, focus rings, native controls where appropriate).
|
|
49
|
+
|
|
50
|
+
| 0 | 1 | 2 | 3 | 4 |
|
|
51
|
+
|---|---|---|---|---|
|
|
52
|
+
| Inconsistent vocabulary + affordances. | Major drift from neighbours. | Mostly aligned; visible drift. | Well-aligned; minor inconsistencies. | Indistinguishable from the rest of the product. |
|
|
53
|
+
|
|
54
|
+
## 5. Error prevention
|
|
55
|
+
Designed so the user *can't* make the error in the first place.
|
|
56
|
+
- Confirmations on destructive operations.
|
|
57
|
+
- Disabled / hidden actions when they're not valid.
|
|
58
|
+
- Smart defaults; constrained inputs (date pickers vs free text).
|
|
59
|
+
- Field formats validated as you type, not just on submit.
|
|
60
|
+
|
|
61
|
+
| 0 | 1 | 2 | 3 | 4 |
|
|
62
|
+
|---|---|---|---|---|
|
|
63
|
+
| Many error-prone flows. | Some preventable errors still possible. | Common errors prevented; edge cases slip. | Most errors prevented before they occur. | Errors are genuinely rare; the easy path is the safe path. |
|
|
64
|
+
|
|
65
|
+
## 6. Recognition rather than recall
|
|
66
|
+
Show options; don't force the user to remember them.
|
|
67
|
+
- Visible choices rather than free-text "type the command".
|
|
68
|
+
- Recently-used values surfaced.
|
|
69
|
+
- Labels persist (don't disappear after focus).
|
|
70
|
+
- Context (where the user is, what they were doing) survives navigation.
|
|
71
|
+
|
|
72
|
+
| 0 | 1 | 2 | 3 | 4 |
|
|
73
|
+
|---|---|---|---|---|
|
|
74
|
+
| Heavy recall required. | Critical flows demand recall. | Mixed: some visible, some hidden. | Mostly recognition; minor recall asks. | Pure recognition; nothing the user needs is hidden. |
|
|
75
|
+
|
|
76
|
+
## 7. Flexibility and efficiency of use
|
|
77
|
+
Novices and experts both productive.
|
|
78
|
+
- Keyboard shortcuts on power flows; visible affordances for everyone else.
|
|
79
|
+
- Sensible defaults for the common case; depth available when needed.
|
|
80
|
+
- Saved views / templates / bulk actions on tasks done repeatedly.
|
|
81
|
+
|
|
82
|
+
| 0 | 1 | 2 | 3 | 4 |
|
|
83
|
+
|---|---|---|---|---|
|
|
84
|
+
| One-size-fits-all; no acceleration. | Limited shortcuts; novice-only. | Some efficiency for experts; uneven. | Strong shortcut + default story; small gaps. | Both populations measurably fast. |
|
|
85
|
+
|
|
86
|
+
## 8. Aesthetic and minimalist design
|
|
87
|
+
Every element earns its place. No decorative noise.
|
|
88
|
+
- One primary action per screen / surface.
|
|
89
|
+
- Visual hierarchy carries the eye to the next step.
|
|
90
|
+
- Decoration in service of meaning, not for its own sake.
|
|
91
|
+
- Whitespace used as a tool, not because the page felt empty.
|
|
92
|
+
|
|
93
|
+
| 0 | 1 | 2 | 3 | 4 |
|
|
94
|
+
|---|---|---|---|---|
|
|
95
|
+
| Cluttered; no hierarchy. | Visible noise / competing actions. | Generally clean; some clutter. | Strong hierarchy; minor noise. | Every pixel deliberate; nothing extraneous. |
|
|
96
|
+
|
|
97
|
+
## 9. Help users recognize, diagnose, and recover from errors
|
|
98
|
+
Error states are designed, not afterthoughts.
|
|
99
|
+
- Errors named in user language ("Your card was declined") not codes ("Stripe 4002").
|
|
100
|
+
- A concrete next step ("Try a different card" + "Use PayPal instead").
|
|
101
|
+
- Inline location: the error appears next to the field / action that caused it.
|
|
102
|
+
- No blame: the message describes the situation, not the user.
|
|
103
|
+
|
|
104
|
+
| 0 | 1 | 2 | 3 | 4 |
|
|
105
|
+
|---|---|---|---|---|
|
|
106
|
+
| Cryptic codes / silent failures. | Errors visible but unhelpful. | Some errors recoverable; others stranded. | Most errors actionable; minor gaps. | Every error has a clear cause + clear next step. |
|
|
107
|
+
|
|
108
|
+
## 10. Help and documentation
|
|
109
|
+
Users can find what they need without leaving the surface.
|
|
110
|
+
- Inline hints on novel patterns.
|
|
111
|
+
- Search-friendly help for deeper questions.
|
|
112
|
+
- No help is needed for the common path, and that's documented as a goal.
|
|
113
|
+
|
|
114
|
+
| 0 | 1 | 2 | 3 | 4 |
|
|
115
|
+
|---|---|---|---|---|
|
|
116
|
+
| No in-product help. | Help exists but hidden / stale. | Help exists; quality uneven. | Good inline help; reachable docs. | Help feels native; users barely need it. |
|
|
117
|
+
|
|
118
|
+
## Reporting
|
|
119
|
+
|
|
120
|
+
In `/rite-review` output, surface heuristics scoring **≤2**, plus any 3 with a specific
|
|
121
|
+
noted gap, as findings; every score feeds the UX axis. Each surfaced finding gets a
|
|
122
|
+
severity label per [`SKILL.md`](../SKILL.md).
|
|
123
|
+
|
|
124
|
+
The rubric is descriptive, not gating. A score of 2 on aesthetic-minimalist isn't
|
|
125
|
+
an automatic NO-GO; the `rite-seal` gate is `Critical == 0`, not "every heuristic
|
|
126
|
+
≥ 3".
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Performance checklist (baseline for the perf reviewer)
|
|
2
|
+
|
|
3
|
+
The minimum baseline `devrites-performance-reviewer` checks against, in feature scope. It
|
|
4
|
+
is a checklist, not a mandate: flag what the diff touches or what a measurement
|
|
5
|
+
flags, never a project-wide sweep. The philosophy lives in
|
|
6
|
+
[`standards/performance.md`](../../devrites-lib/reference/standards/performance.md) (measure first). This file is the
|
|
7
|
+
concrete what-to-look-for.
|
|
8
|
+
|
|
9
|
+
## Core Web Vitals targets
|
|
10
|
+
|
|
11
|
+
| Metric | Good | Needs work | Poor |
|
|
12
|
+
|---|---|---|---|
|
|
13
|
+
| LCP: Largest Contentful Paint | ≤ 2.5s | ≤ 4.0s | > 4.0s |
|
|
14
|
+
| INP: Interaction to Next Paint | ≤ 200ms | ≤ 500ms | > 500ms |
|
|
15
|
+
| CLS: Cumulative Layout Shift | ≤ 0.1 | ≤ 0.25 | > 0.25 |
|
|
16
|
+
|
|
17
|
+
A CWV value only counts when it carries a source: `Field (CrUX)`, `Lab (Lighthouse)`, or
|
|
18
|
+
`Trace (DevTools)`. No source → it's a Source-mode hypothesis, not a measurement.
|
|
19
|
+
|
|
20
|
+
## Frontend (only when the feature is UI-facing)
|
|
21
|
+
|
|
22
|
+
Identify the framework first; apply only its idioms.
|
|
23
|
+
|
|
24
|
+
- **Images:** modern format (WebP/AVIF); responsive `srcset`/`sizes`; explicit
|
|
25
|
+
`width`/`height` to reserve space (CLS); below-the-fold `loading="lazy"`; the LCP image
|
|
26
|
+
gets `fetchpriority="high"` and is **not** lazy-loaded.
|
|
27
|
+
- **JavaScript:** initial bundle stays small (≈200KB gzipped is the usual line); code-split
|
|
28
|
+
routes and heavy features; no blocking script in `<head>` without `defer`/`async`; break
|
|
29
|
+
long tasks (>50ms) so the main thread stays free (the main INP lever); `memo`/`useMemo`/
|
|
30
|
+
`useCallback` only where profiling shows a win, not wrapped over everything.
|
|
31
|
+
- **CSS:** critical CSS not render-blocking; no per-render CSS-in-JS runtime cost in prod.
|
|
32
|
+
- **Fonts:** 2-3 families max; WOFF2; self-hosted where possible; preload the LCP font;
|
|
33
|
+
`font-display: swap`; subset with `unicode-range`.
|
|
34
|
+
- **Rendering:** no layout thrashing (batch reads, then writes); animate `transform`/
|
|
35
|
+
`opacity` only; virtualize long lists; `content-visibility: auto` for off-screen sections;
|
|
36
|
+
check bfcache eligibility and restoration in supported browsers. Avoid `unload`
|
|
37
|
+
handlers, but preserve sensitive-data cache policy: `Cache-Control: no-store`
|
|
38
|
+
eligibility varies by browser and conditions. Never remove a security control
|
|
39
|
+
for a performance score; test account-switch and restored-page behavior.
|
|
40
|
+
- **CLS attribution:** name the initiator (content inserted above, late
|
|
41
|
+
validation message, font swap), not only the shifted element, and exercise the
|
|
42
|
+
post-load state; a navigation-only run misses it. A CLS change is layout stability,
|
|
43
|
+
never reported as speed or latency. **Failing case:** space reserved on the shifted
|
|
44
|
+
card while the banner inserted above still causes the shift.
|
|
45
|
+
|
|
46
|
+
## Backend (every feature, UI or not)
|
|
47
|
+
|
|
48
|
+
- No N+1 queries; eager-load / join / batch instead.
|
|
49
|
+
- Compare query plans and representative measurements before/after adding an
|
|
50
|
+
index; account for write and storage costs, not just filter/sort columns.
|
|
51
|
+
- Before raising connection caps, count pools across processes and instances,
|
|
52
|
+
inspect held connections and transactions, and compare aggregate demand with
|
|
53
|
+
database capacity.
|
|
54
|
+
- List endpoints paginate: never an unbounded `SELECT *`.
|
|
55
|
+
- Consider caching or hoisting measured repeated work only when its freshness
|
|
56
|
+
and sensitive-data contract allows it. Keys include every varying input and
|
|
57
|
+
principal when results differ; bound eviction and coalesce concurrent misses
|
|
58
|
+
where needed. Distinguish genuine negative results from origin failures; never
|
|
59
|
+
cache an outage as absence.
|
|
60
|
+
- Responses compressed (gzip/brotli); bulk operations instead of a loop of single calls.
|
|
61
|
+
|
|
62
|
+
## Network
|
|
63
|
+
|
|
64
|
+
- Static assets cached with a long `max-age` + content hashing.
|
|
65
|
+
- Known origins `preconnect`-ed; no unnecessary redirects; HTTP/2 or HTTP/3 where available.
|
|
66
|
+
|
|
67
|
+
## AI-codegen perf smells (fold into the area above, not a separate finding category)
|
|
68
|
+
|
|
69
|
+
- State duplicated instead of lifted; effects with over-broad deps that re-run needlessly.
|
|
70
|
+
- Sequential `await`s where `Promise.all` / parallel fetch fits, only after
|
|
71
|
+
authorization: a reorder never starts a private fetch before the auth check.
|
|
72
|
+
**Failing case:** after a "waterfall fix" an unauthenticated request reaches the
|
|
73
|
+
private fetch → Critical.
|
|
74
|
+
- Over-fetching "just in case"; redundant calls a dedup would collapse.
|
|
75
|
+
- Defensive memoization wrapping cheap components: cost with no benefit.
|
|
76
|
+
|
|
77
|
+
## Modern APIs to consider (one-liners: reach for these, don't gate on them)
|
|
78
|
+
|
|
79
|
+
`scheduler.yield()` to keep input responsive in long loops · Speculation Rules for
|
|
80
|
+
prefetch/prerender · View Transitions on SPA navigation · Long Animation Frames (LoAF) for
|
|
81
|
+
production INP attribution · `fetchpriority` on critical non-image resources.
|
|
82
|
+
|
|
83
|
+
## Measurement commands (name these in Source mode; don't run installs in review)
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Lighthouse (lab)
|
|
87
|
+
npx lighthouse <url> --output json --output-path ./report.json
|
|
88
|
+
# or via the Chrome DevTools MCP CLI, no install:
|
|
89
|
+
npx -p chrome-devtools-mcp chrome-devtools lighthouse_audit --output-format=json > report.json
|
|
90
|
+
|
|
91
|
+
# Bundle size
|
|
92
|
+
npx vite-bundle-visualizer # Vite
|
|
93
|
+
npx webpack-bundle-analyzer stats.json # webpack
|
|
94
|
+
|
|
95
|
+
# Field data: CrUX / PageSpeed Insights (real users, p75) — needs an API key
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Field is what real users experienced; lab is one synthetic run. Don't present one as the
|
|
99
|
+
other.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Performance review (feature-scoped)
|
|
2
|
+
|
|
3
|
+
Apply only when a stated budget or visible regression risk makes performance relevant.
|
|
4
|
+
The canonical measurement, pitfall, optimization, and scope rules live in
|
|
5
|
+
[`performance.md`](../../devrites-lib/reference/standards/performance.md); apply every
|
|
6
|
+
one before filing a performance finding.
|
|
7
|
+
|
|
8
|
+
The agent runs **Source mode** (static scan, findings tagged `potential` + the verify
|
|
9
|
+
command) or **Measured mode** (real CWV numbers → a source-labeled scorecard). Baseline
|
|
10
|
+
checks + measurement commands: [`performance-checklist.md`](performance-checklist.md).
|
|
11
|
+
|
|
12
|
+
## Labels
|
|
13
|
+
A perf issue that breaches a stated budget is **Important** or **Critical**; a
|
|
14
|
+
speculative micro-optimization is a **Suggestion** at most.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Security review (feature-scoped)
|
|
2
|
+
|
|
3
|
+
Use the canonical [parallel-dispatch roster trigger](../../devrites-lib/reference/parallel-dispatch.md#roster),
|
|
4
|
+
including dependency and integration changes. A dependency-only diff still requires
|
|
5
|
+
`devrites-security-auditor`; a docs-only diff with no matching surfaces records
|
|
6
|
+
`Not-applicable: no relevant paths in diff`. Delegates to `devrites-audit security`.
|
|
7
|
+
|
|
8
|
+
## OWASP-Top-10-oriented checks
|
|
9
|
+
|
|
10
|
+
This is the **single-sourced OWASP-web checklist** both `/rite-review` and the
|
|
11
|
+
`devrites-security-auditor` agent apply (trust-boundary + the OWASP **LLM** Top 10 live in
|
|
12
|
+
[`standards/security.md`](../../devrites-lib/reference/standards/security.md)). Keep the enumeration here; don't restate it.
|
|
13
|
+
|
|
14
|
+
- **Injection:** parameterized queries; no string-built SQL/shell/HTML; validate &
|
|
15
|
+
encode at boundaries.
|
|
16
|
+
- **Broken access control:** every sensitive action checks authz server-side; no
|
|
17
|
+
trusting client-supplied IDs/roles/tenant; no IDOR, cross-tenant read/write/cache/search,
|
|
18
|
+
confused-deputy path, or privilege change without re-authorization.
|
|
19
|
+
- **Auth / session:** secure session handling; no credentials in code/logs; correct
|
|
20
|
+
password/token handling.
|
|
21
|
+
- **Sensitive data:** PII/secrets not logged or returned; encryption where required;
|
|
22
|
+
least data exposed.
|
|
23
|
+
- **SSRF / external calls:** validate/allowlist outbound URLs; timeouts; don't reflect
|
|
24
|
+
untrusted input into requests.
|
|
25
|
+
- **Misconfiguration:** safe defaults; debug off; CORS scoped; security headers as the
|
|
26
|
+
project uses them.
|
|
27
|
+
- **Files / request integrity:** resolved paths remain below the allowed root across
|
|
28
|
+
traversal/encoding/symlink/archive cases; state-changing browser requests use the
|
|
29
|
+
framework's forgery protection; CORS is not treated as CSRF defense.
|
|
30
|
+
- **Vulnerable dependencies:** new/updated deps audited; no known-vuln versions added.
|
|
31
|
+
- **Integrity / deserialization:** safe non-executable parsing with type/size/depth limits;
|
|
32
|
+
untrusted data cannot instantiate executable objects.
|
|
33
|
+
|
|
34
|
+
## Trust boundary
|
|
35
|
+
Apply the three-tier discipline (untrusted → boundary → trusted) per the canonical rule
|
|
36
|
+
in [`standards/security.md`](../../devrites-lib/reference/standards/security.md#trust-boundary-three-tiers). A value
|
|
37
|
+
that skips the boundary tier is a finding.
|
|
38
|
+
|
|
39
|
+
## Rules
|
|
40
|
+
- Findings labeled Critical/Important/Suggestion. A real auth/data-exposure issue is
|
|
41
|
+
**Critical** → NO-GO until fixed.
|
|
42
|
+
- Secrets management: never commit secrets; use the project's secret mechanism.
|
|
43
|
+
- Don't expand into a project-wide security audit: feature scope. Record out-of-scope
|
|
44
|
+
risks as follow-ups.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rite-seal
|
|
3
|
+
description: Decide GO/NO-GO for an active feature; /rite-ship owns commit, push, tag, and close.
|
|
4
|
+
argument-hint: "[feature-slug] [--full]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/candidate-integrity.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/verification-methods.md","rite-seal/reference/phase-contract.md","rite-seal/reference/final-evidence.md","rite-seal/reference/go-no-go.md","rite-seal/reference/risk-and-rollback.md","rite-seal/reference/seal-template.md","rite-seal/reference/output.md","rite-seal/reference/anti-patterns.md"],"triggers":{"agents":["devrites-lib/reference/standards/agents.md"],"browser":["devrites-lib/reference/standards/browser-proof-checklist.md"],"code-review":["devrites-lib/reference/standards/code-review.md"],"deprecation":["devrites-lib/reference/standards/deprecation.md"],"documentation":["devrites-lib/reference/standards/documentation.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"observability":["devrites-lib/reference/standards/observability.md"],"principles":["devrites-lib/reference/standards/principles.md"],"security":["devrites-lib/reference/standards/security.md"],"testing":["devrites-lib/reference/standards/testing.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md","evidence.md","touched-files.md","review.md","seal.md"],"workspaceByRole":{"code-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","architecture.md","decisions.md","state.md","evidence.md","touched-files.md","review.md"],"devex-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","devex.md","review.md"],"doubt-reviewer":["spec.md","plan.md","tasks.md","state.md","decisions.md","review.md"],"frontend-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","review.md"],"performance-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","review.md"],"proof-runner":["spec.md","test-plan.md","tasks.md","gates.md","evidence.md","state.md"],"security-auditor":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","review.md"],"simplifier-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","review.md"],"spec-reviewer":["brief.md","spec.md","decision-coverage.md","questions.md","decisions.md","assumptions.md","state.md","review.md"],"test-analyst":["spec.md","tasks.md","test-plan.md","state.md","evidence.md","review.md"]},"rootOnly":["devrites-lib/reference/standards/code-index.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md"]} -->
|
|
9
|
+
> Read-set manifest: `devrites-engine context --skills-root .dsh/skills <slug> --phase seal` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
# /rite-seal: GO / NO-GO
|
|
13
|
+
|
|
14
|
+
Verify final candidate in `seal.md`; `/rite-ship` owns authorized irreversible actions/close-out.
|
|
15
|
+
|
|
16
|
+
## Authority
|
|
17
|
+
|
|
18
|
+
Read [`core.md`](../devrites-lib/reference/standards/core.md) plus only
|
|
19
|
+
final-diff-relevant standards: agents, code-review, testing, browser-proof-checklist,
|
|
20
|
+
security, principles, documentation, observability, deprecation,
|
|
21
|
+
definition-of-done, and [`verification-methods.md`](../devrites-lib/reference/standards/verification-methods.md)
|
|
22
|
+
for coverage-denominator and evidence-status judgment.
|
|
23
|
+
Load [`final-evidence.md`](reference/final-evidence.md) and
|
|
24
|
+
[`go-no-go.md`](reference/go-no-go.md) for proof/verdict safety.
|
|
25
|
+
Follow [`candidate-integrity.md`](../devrites-lib/reference/candidate-integrity.md)
|
|
26
|
+
for reviewed digest/artifact bindings.
|
|
27
|
+
|
|
28
|
+
Host runs/reconciles named read-only reviewers; engine checks invariants.
|
|
29
|
+
**Standard** default; **Full** broadens conditional axes per
|
|
30
|
+
[`devrites-lib/reference/orchestration-profiles.md`](../devrites-lib/reference/orchestration-profiles.md).
|
|
31
|
+
|
|
32
|
+
## Gate
|
|
33
|
+
|
|
34
|
+
| State | Verdict |
|
|
35
|
+
|---|---|
|
|
36
|
+
| Acceptance proven, deterministic checks pass, no unresolved drift or human gate, `Critical == 0`, `Important == 0` | **GO** |
|
|
37
|
+
| Same, but `Important > 0` | Ask `Important findings remain. Proceed to seal? [y/N]`; default **N**, unattended keeps **N**. Only humans answer `y`; standalone AFK stops for a human if Important remains. Autocomplete repairs agent-owned findings, re-enters Seal; only human-owned risk acceptance stops for a human |
|
|
38
|
+
| `Critical > 0` | **NO-GO** |
|
|
39
|
+
| Any acceptance criterion, resolved prohibition, or declared key link lacks proof | **NO-GO** |
|
|
40
|
+
| `gates status` is not `all-met` — an unmet, stale, unapproved, or abandoned ledger gate remains | **NO-GO** |
|
|
41
|
+
| Evidence is stale, or native diff review plus the exact test analyst finds weakened tests | **NO-GO: Critical** |
|
|
42
|
+
| Any exact required reviewer account is missing or silent | **NO-GO** |
|
|
43
|
+
| Any deferred finding (`touched-files.md` `## Review trail`, `eng-review.md` `## Deferred findings`) lacks a `review.md` verdict | **NO-GO** |
|
|
44
|
+
| Any `gate: validating` question remains open | **NO-GO** |
|
|
45
|
+
| Material UI acceptance lacks or fails required browser proof | **NO-GO** |
|
|
46
|
+
| Unresolved drift, unsafe migration/removal, or unapproved principle violation remains | **NO-GO** |
|
|
47
|
+
| `check regression` reports an unblessed loss vs the recorded progress baseline | **NO-GO** |
|
|
48
|
+
| `check windows` reports a deferral marker the change introduced without a `windows.md` waiver | **NO-GO** |
|
|
49
|
+
|
|
50
|
+
Judgment-only criteria need humans. AFK records a validating question
|
|
51
|
+
(`slice: seal`), stops; Autocomplete never auto-picks.
|
|
52
|
+
|
|
53
|
+
## Workflow
|
|
54
|
+
|
|
55
|
+
Follow [`reference/phase-contract.md`](reference/phase-contract.md)
|
|
56
|
+
([`risk-and-rollback.md`](reference/risk-and-rollback.md),
|
|
57
|
+
[`seal-template.md`](reference/seal-template.md),
|
|
58
|
+
[`anti-patterns.md`](reference/anti-patterns.md)):
|
|
59
|
+
|
|
60
|
+
1. read workspace and final diff;
|
|
61
|
+
2. recheck the canonical candidate/bindings and approved repository/CI proof;
|
|
62
|
+
3. admit every valid same-candidate Review account; dispatch remaining required exact roles under
|
|
63
|
+
`../devrites-lib/reference/parallel-dispatch.md` in one wave, proof-runner included, on the same frozen candidate,
|
|
64
|
+
code review through its § Engineering lanes;
|
|
65
|
+
4. reconcile their read-only verdicts against source and immutable evidence;
|
|
66
|
+
5. draft GO/NO-GO `seal.md` with acceptance, tests, decisions, and seven roster accounts plus proof-runner and doubt-reviewer
|
|
67
|
+
(each engineering lane its own account);
|
|
68
|
+
6. write exactly one candidate binding, then run
|
|
69
|
+
`devrites-engine check seal <slug>` for structure/identity, never semantics.
|
|
70
|
+
For stale readiness-input bindings, run `devrites-engine check drift <slug>`
|
|
71
|
+
before returning to Vet; start repair at the named changed/missing/added input.
|
|
72
|
+
Run `devrites-engine check regression <slug>` for progress lost since last
|
|
73
|
+
checkpoint: `BLOCKED` is NO-GO; `unproven` (no baseline) does not block.
|
|
74
|
+
Run `devrites-engine check windows <slug>` twice,
|
|
75
|
+
one with `--base <release-base>` and one with `--worktree` (the only mode that scans
|
|
76
|
+
untracked files; never pass both flags in one command, the last one wins) so each deferral marker the feature diff introduced
|
|
77
|
+
carries a `windows.md` waiver row ([`windows.md`](../devrites-lib/reference/standards/windows.md));
|
|
78
|
+
unwaived hits are NO-GO. The engine rejects malformed, unmet, stale, unapproved, or abandoned
|
|
79
|
+
`gates.md` ledgers. Unless Seal-side `gates status` says `all-met`, return to
|
|
80
|
+
Prove: evidence is not current; never attest past it. Before Seal wave, run `devrites-engine gates reverify <slug>
|
|
81
|
+
--transcripts` on the frozen candidate: bind every gate transcript to this
|
|
82
|
+
digest for the proof runner. It also rejects malformed `notes.md` or non-`exact` anchors:
|
|
83
|
+
`devrites-engine note check <slug> --repair` re-anchors `moved` notes;
|
|
84
|
+
fix/remove `stale`/`ambiguous`/`lost` notes before GO. Repeat each `note: unexecuted driver` line `check seal` prints in GO/NO-GO reply.
|
|
85
|
+
|
|
86
|
+
Corrections pass affected Prove/Review before Seal restarts under
|
|
87
|
+
[evidence validity](../devrites-lib/reference/candidate-integrity.md#evidence-validity).
|
|
88
|
+
|
|
89
|
+
Only repo scripts/CI authorize commands; never guess.
|
|
90
|
+
|
|
91
|
+
## On GO
|
|
92
|
+
|
|
93
|
+
Set `state.md` `Next step: /rite-ship`. Standalone Seal stops. Under active `/rite-autocomplete`, return internally to the caller
|
|
94
|
+
for recorded sequence continuation or [Ship preflight](../rite-ship/reference/git-ship.md#before-type-go),
|
|
95
|
+
no intermediate final reply. GO grants no irreversible-action authority.
|
|
96
|
+
|
|
97
|
+
## Output
|
|
98
|
+
|
|
99
|
+
Use [`reference/output.md`](reference/output.md).
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# rite-seal: anti-patterns
|
|
2
|
+
|
|
3
|
+
Load this when standing the final GO/NO-GO decision, or when tempted to round
|
|
4
|
+
NO-GO up to GO. (The irreversible push/tag/deploy and its type-GO gate now live in
|
|
5
|
+
`/rite-ship`: see that skill's anti-patterns for the type-GO discipline.)
|
|
6
|
+
|
|
7
|
+
Pack-wide rationalizations + red flags (incl. user-wants-it-bypass-gate):
|
|
8
|
+
see [standards/anti-patterns.md](../../devrites-lib/reference/standards/anti-patterns.md).
|
|
9
|
+
|
|
10
|
+
## Phase-specific rationalizations
|
|
11
|
+
|
|
12
|
+
| Excuse | Rebuttal |
|
|
13
|
+
|---|---|
|
|
14
|
+
| "All Important findings are minor; just GO." | `Important > 0` triggers an interactive y/N: do not bypass the prompt, present it. |
|
|
15
|
+
| "User clearly wants this to ship." | Ship is evidence-driven, not consent-driven. With a Critical open the verdict stays NO-GO and `seal.md` records the user's override request; the user may accept named Important risks at the y/N prompt, but no request turns an open Critical or failed gate into GO. |
|
|
16
|
+
| "Drift is small; resolve it inline and seal." | Unresolved drift = NO-GO, no exceptions. Route through `/rite-plan` to repair, then seal. |
|
|
17
|
+
| "Reviewer findings overlap; average them away." | Surface disagreements explicitly. Averaging hides where the reviewers disagree. |
|
|
18
|
+
| "Carry the old reviewer verdicts though the diff changed." | If the diff changed since `/rite-review`, re-run the Spec + Code axes: don't carry stale verdicts forward. |
|
|
19
|
+
| "The wright was confident in a material decision. GO without independent review." | Confidence is not independent evidence. Ask the exact `devrites-doubt-reviewer` to test a boundary / data-model / auth / public-API / migration claim, reconcile its result against source, and record the verdict in `decisions.md`; unresolved irreversible risk is NO-GO. |
|
|
20
|
+
|
|
21
|
+
## Red Flags
|
|
22
|
+
|
|
23
|
+
- About to write `Verdict: GO` while any `Critical` finding is open.
|
|
24
|
+
- Writing `Next step` as anything other than `/rite-ship` after a GO verdict.
|
|
25
|
+
- Reviewer subagents spawned with the author's reasoning attached (defeats the fresh-context point).
|
|
26
|
+
- `seal.md` written before walking *every* acceptance criterion one by one.
|
|
27
|
+
- A NO-GO rounded up to GO "to be agreeable".
|
|
28
|
+
- Unresolved drift, unresolved questions, or pending tasks, and you're sealing anyway.
|
|
29
|
+
- A stood irreversible-risk decision (auth / public-API / migration) has no recorded independent `devrites-doubt` verdict, and you are sealing GO anyway.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Final evidence check
|
|
2
|
+
|
|
3
|
+
Map spec promises to valid observed proof.
|
|
4
|
+
|
|
5
|
+
## Acceptance
|
|
6
|
+
|
|
7
|
+
For each AC/REQ/scenario/key link, exact `devrites-proof-runner` maps immutable
|
|
8
|
+
results and exact `devrites-spec-reviewer` checks implementation and proof
|
|
9
|
+
against its meaning. Bug fixes require original-symptom proof; self-report,
|
|
10
|
+
inspection alone, and generic "tests pass" do not count.
|
|
11
|
+
|
|
12
|
+
Apply [[`testing.md`](../../devrites-lib/reference/standards/testing.md)'s positive, discriminating proof](../../devrites-lib/reference/standards/testing.md#positive-discriminating-proof),
|
|
13
|
+
including invalid-result exclusions and static/textual criterion boundaries.
|
|
14
|
+
Unproven behavior: NO-GO.
|
|
15
|
+
|
|
16
|
+
## Cross-check
|
|
17
|
+
|
|
18
|
+
Require built slices, resolved or accepted findings, no drift/open validating
|
|
19
|
+
question, required UI/boundary proof, and an exact doubt verdict per stood decision.
|
|
20
|
+
Reconcile the final diff with the spec applicability map. Every triggered topology,
|
|
21
|
+
data, integration, security, and delivery owner needs its relevant observed failure/
|
|
22
|
+
recovery evidence or an evidence-backed dismissal; a generic green suite cannot close it.
|
|
23
|
+
|
|
24
|
+
## Candidate binding and test integrity
|
|
25
|
+
|
|
26
|
+
Run `devrites-engine check candidate <slug>` and require its digest to match the
|
|
27
|
+
single evidence/review bindings and browser binding when present. Diff tests,
|
|
28
|
+
dispatch exact `devrites-test-analyst`; apply
|
|
29
|
+
[evidence validity](../../devrites-lib/reference/candidate-integrity.md#evidence-validity)
|
|
30
|
+
to approved proof, then require unchanged digest/sources. Deleted/skipped/focused/
|
|
31
|
+
weakened/tautological tests are Critical.
|
|
32
|
+
|
|
33
|
+
After recording verdicts in `seal.md`, run:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
devrites-engine check seal "<slug>"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
This checks structure and exact candidate bindings, never acceptance, test
|
|
40
|
+
quality, doubt, or review. Apply [[`testing.md`](../../devrites-lib/reference/standards/testing.md)'s safe perturbation](../../devrites-lib/reference/standards/testing.md#safe-perturbation)
|
|
41
|
+
for its mandatory critical/regression cases and any additional project/test-plan requirement.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# GO / NO-GO
|
|
2
|
+
|
|
3
|
+
[`../SKILL.md`](../SKILL.md) owns gates. Draft native acceptance, test, doubt,
|
|
4
|
+
and seven reviewer accounts in `seal.md`; then run
|
|
5
|
+
`devrites-engine check seal <slug>` for structure/freshness.
|
|
6
|
+
|
|
7
|
+
## NO-GO
|
|
8
|
+
|
|
9
|
+
NO-GO on unproven acceptance/prohibitions/key links, red repository checks,
|
|
10
|
+
stale proof, drift/open validating questions, Critical code/security, unsafe
|
|
11
|
+
rollback, or an unapproved principle violation. Also block:
|
|
12
|
+
- missing/adverse exact proof, spec, or test verdict;
|
|
13
|
+
- deleted/skipped/focused/tautological/weakened tests;
|
|
14
|
+
- missing/silent required review or invalid conditional account;
|
|
15
|
+
- a stood decision without reconciled exact doubt verdict;
|
|
16
|
+
- an unblessed loss vs the recorded progress baseline (`check regression` `BLOCKED`);
|
|
17
|
+
- opted-in mutation missing/below threshold (otherwise optional).
|
|
18
|
+
|
|
19
|
+
## GO
|
|
20
|
+
|
|
21
|
+
GO needs fresh acceptance, green proof, resolved drift/human gates, acceptable
|
|
22
|
+
security/data/rollback risk, every account, and no Critical.
|
|
23
|
+
|
|
24
|
+
When only Important findings remain, ask:
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
Important findings remain. Proceed to seal? [y/N]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Default NO-GO. `y` accepts named Important risks only, never Critical/missing proof.
|
|
31
|
+
Only a human answers `y`: an unattended (AFK/autocomplete) run keeps N and, if Important
|
|
32
|
+
findings remain after its recovery, stops for the human.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# rite-seal phase contract
|
|
2
|
+
|
|
3
|
+
1. **Read.** Resolve the explicit slug or `.devrites/ACTIVE`, require its
|
|
4
|
+
`state.md`, then read required workspace artifacts, conditional
|
|
5
|
+
browser/design/devex evidence, and final diff.
|
|
6
|
+
2. **Recheck identity and real proof.** Run
|
|
7
|
+
`devrites-engine check candidate <slug>` and require its exact digest to match
|
|
8
|
+
the single evidence/review bindings and the browser binding when present.
|
|
9
|
+
Apply [`spec-grammar.md`](../../devrites-lib/reference/standards/spec-grammar.md)'s Native grammar re-read checklist and
|
|
10
|
+
[evidence validity](../../devrites-lib/reference/candidate-integrity.md#evidence-validity).
|
|
11
|
+
Run required `test-plan.md` commands unless valid observed proof already satisfies
|
|
12
|
+
them under that contract. Rerun the
|
|
13
|
+
candidate check afterward and require the identical digest and no source
|
|
14
|
+
mutation. Capture command, cwd, exit, decisive output, and identity.
|
|
15
|
+
Missing/red/mismatched blocks; unavailable is `cannot_verify`, never pass.
|
|
16
|
+
Steps 3–6 share one dispatch wave: launch every role they still need
|
|
17
|
+
(proof-runner, test-analyst, doubt-reviewer, roster) together, admit valid
|
|
18
|
+
same-candidate Review accounts instead, and do the root work of steps 4–6 while
|
|
19
|
+
the wave runs.
|
|
20
|
+
|
|
21
|
+
3. **Judge acceptance.** Dispatch exact `devrites-proof-runner` on immutable
|
|
22
|
+
proof; admit valid same-candidate `devrites-spec-reviewer` evidence from Review
|
|
23
|
+
or dispatch that exact reviewer. Reconcile every
|
|
24
|
+
AC/REQ/scenario/key link by ID and meaning; missing/stale/self-attested/mismatched is NO-GO.
|
|
25
|
+
4. **Judge tests.** Diff baseline/candidate tests for deletion, skip/focus,
|
|
26
|
+
tautology, or weakening; admit the same-candidate `devrites-test-analyst` account
|
|
27
|
+
from Review or dispatch that exact analyst. Missing or
|
|
28
|
+
adverse account, or green tests not asserting mapped behavior, is Critical.
|
|
29
|
+
5. **Resolve gates.** Open blocking/escalating/validating questions and drift
|
|
30
|
+
block. Each stood decision needs a reconciled exact `devrites-doubt-reviewer` verdict.
|
|
31
|
+
Every deferred finding (`touched-files.md` `## Review trail`, `eng-review.md`
|
|
32
|
+
`## Deferred findings`) needs its `review.md` verdict; a row without one blocks.
|
|
33
|
+
6. **Risk and native review.** Apply [`risk-and-rollback.md`](risk-and-rollback.md)
|
|
34
|
+
and the [`review roster`](../../devrites-lib/reference/parallel-dispatch.md) on
|
|
35
|
+
the candidate. Admit each result through
|
|
36
|
+
[`result admission`](../../devrites-lib/reference/standards/agents.md#result-admission).
|
|
37
|
+
`## Reviewer Accounts` preserves the seven roster roles, each engineering lane as its own account, plus
|
|
38
|
+
`devrites-proof-runner` and, when any decision stood, `devrites-doubt-reviewer`; gap/missing/malformed blocks;
|
|
39
|
+
conditional `Not-applicable` names why.
|
|
40
|
+
7. **Route corrections.** Reconcile cited findings/disagreements, but do not
|
|
41
|
+
edit the candidate or manifest in Seal. Route an accepted correction through
|
|
42
|
+
one bounded wright, update the manifest, run affected Prove, complete a fresh
|
|
43
|
+
Review under evidence validity, then restart Seal on the new digest.
|
|
44
|
+
8. **Draft/check.** Write `seal.md` from
|
|
45
|
+
[`seal-template.md`](seal-template.md) with the GO/NO-GO rationale, acceptance map,
|
|
46
|
+
test-analysis account, stood-decision verdicts, all seven roster reviewer accounts plus proof-runner and doubt-reviewer,
|
|
47
|
+
and exactly one `Candidate SHA-256: <64 lowercase hex>` line. Then run:
|
|
48
|
+
```bash
|
|
49
|
+
devrites-engine check seal "<slug>"
|
|
50
|
+
devrites-engine check regression "<slug>"
|
|
51
|
+
```
|
|
52
|
+
Structure/bindings only: blocks exit `3`, invalid state `2`. A regression
|
|
53
|
+
`BLOCKED` is NO-GO; `unproven` (no baseline) does not block. GO sets
|
|
54
|
+
`Next step: /rite-ship`; NO-GO names the fix. No commit/push/tag/publish/deploy/close.
|
|
55
|
+
|
|
56
|
+
Apply [`anti-patterns.md`](anti-patterns.md); never average away disagreement.
|