devrites 7.1.2 → 7.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +9 -4
- package/docs/dsh.md +46 -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 +20 -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/cordis.patch.yml +1450 -0
- package/pack/generated/dsh/runtime/specialist.mjs +62 -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 +135 -0
- package/scripts/dsh-specialist.mjs +62 -0
- package/scripts/install-lib.sh +3 -1
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
# Audit domains: the floor, not the ceiling
|
|
2
|
+
|
|
3
|
+
## Contents
|
|
4
|
+
|
|
5
|
+
- [Applicability matrix](#applicability-matrix)
|
|
6
|
+
- [Correctness and data integrity](#correctness-and-data-integrity)
|
|
7
|
+
- [Database, queries, migrations and storage](#database-queries-migrations-and-storage)
|
|
8
|
+
- [Concurrency, caching, retries and distributed reliability](#concurrency-caching-retries-and-distributed-reliability)
|
|
9
|
+
- [Security, privacy and trust boundaries](#security-privacy-and-trust-boundaries)
|
|
10
|
+
- [Architecture, maintainability and anti-slop](#architecture-maintainability-and-anti-slop)
|
|
11
|
+
- [Over-engineering and dead weight](#over-engineering-and-dead-weight)
|
|
12
|
+
- [Tests and verification quality](#tests-and-verification-quality)
|
|
13
|
+
- [Dependencies and supply chain](#dependencies-and-supply-chain)
|
|
14
|
+
- [Backend performance](#backend-performance)
|
|
15
|
+
- [Frontend engineering](#frontend-engineering)
|
|
16
|
+
- [Frontend craft, interaction and accessibility](#frontend-craft-interaction-and-accessibility)
|
|
17
|
+
- [Classifying frontend guidance](#classifying-frontend-guidance)
|
|
18
|
+
- [Cross-layer contracts](#cross-layer-contracts)
|
|
19
|
+
- [Public API and developer experience](#public-api-and-developer-experience)
|
|
20
|
+
- [Documentation](#documentation)
|
|
21
|
+
- [Operations and project-specific extensions](#operations-and-project-specific-extensions)
|
|
22
|
+
|
|
23
|
+
## Applicability matrix
|
|
24
|
+
|
|
25
|
+
Before a review shard starts, build the matrix domain × component × lane × active
|
|
26
|
+
profile and record it in `coverage.json` `applicability[]` (`domain` as one of the
|
|
27
|
+
eight [score keys](scoring.md#audit-sections-and-score-domains), `component`, `lane`,
|
|
28
|
+
`state`, `reason`, `receipts[]`). Each cell is `applicable` (reviewed under the
|
|
29
|
+
correct semantics), `not-applicable` (with a reason and evidence), or `blocked` (with
|
|
30
|
+
the missing capability). Missing expertise, tools or browser access is `blocked`,
|
|
31
|
+
never `not-applicable`. Extend the matrix for discovered stacks, risks and
|
|
32
|
+
requirements. Every item below is a question to answer with evidence, not a finding
|
|
33
|
+
to assume. A cell is closed only by an admitted receipt that lists its domain in
|
|
34
|
+
`domains_checked`; a cell with no such receipt is not checked, never clean, and
|
|
35
|
+
`G-COVERAGE` cannot pass over it.
|
|
36
|
+
|
|
37
|
+
## Correctness and data integrity
|
|
38
|
+
|
|
39
|
+
Check: business invariants across API, service, job, database and UI; validation
|
|
40
|
+
versus normalization; null, empty and missing as distinct; boundaries and
|
|
41
|
+
off-by-one; precision, overflow, currency, units and rounding; locale, time zones,
|
|
42
|
+
DST and clocks; exhaustive enum, union and state-machine handling;
|
|
43
|
+
authorization-sensitive defaults; partial implementations, stubbed success and fake
|
|
44
|
+
integrations; unreachable flows; TODOs in required behavior; silently ignored
|
|
45
|
+
errors; dead code; schema/application disagreement; serialization and version drift;
|
|
46
|
+
undocumented behavior changes.
|
|
47
|
+
|
|
48
|
+
Trace reads and writes through the whole use case. Prove uniqueness, referential
|
|
49
|
+
integrity, tenant scoping, ordering, pagination, deletion and retention, and
|
|
50
|
+
invariants under failure and concurrency, not only the happy path. Identify the
|
|
51
|
+
authoritative contract; when code, docs and tests disagree, ask.
|
|
52
|
+
|
|
53
|
+
## Database, queries, migrations and storage
|
|
54
|
+
|
|
55
|
+
Check: N+1 and repeated queries; over-fetching; unbounded results; joins and
|
|
56
|
+
cardinality; fan-out; pagination strategy; aggregates, sorting, filtering;
|
|
57
|
+
parameterization; query shape and planner estimates; indexes and selectivity; lock
|
|
58
|
+
duration; connection pools; transaction scope and isolation; deadlocks; stale
|
|
59
|
+
replicas and read-after-write needs; backfills; large-table and mixed-version
|
|
60
|
+
migrations; constraints; rollback.
|
|
61
|
+
|
|
62
|
+
Judge indexes by cost and benefit: never recommend one from a filter alone, never
|
|
63
|
+
treat every sequential scan as a bug, and weigh realistic cardinality and skew, the
|
|
64
|
+
engine and version, read/write mix, write amplification, storage, maintenance and
|
|
65
|
+
deployment locks (for example PostgreSQL `CREATE INDEX CONCURRENTLY` cannot run in a
|
|
66
|
+
transaction and needs a failed-build cleanup). Measure app-visible latency and query
|
|
67
|
+
count as well as plans. `EXPLAIN ANALYZE` executes the statement: use it only in an
|
|
68
|
+
authorized disposable environment.
|
|
69
|
+
|
|
70
|
+
## Concurrency, caching, retries and distributed reliability
|
|
71
|
+
|
|
72
|
+
Check: check-then-act races; lost updates; write skew; stale reads; ABA and TOCTOU
|
|
73
|
+
where relevant; lock ordering; atomicity; cancellation; leaked tasks, goroutines or
|
|
74
|
+
threads; shared mutable state; async context; transaction retry boundaries; cache
|
|
75
|
+
keys and invalidation; tenant-aware caches; stampedes; stale authorization
|
|
76
|
+
decisions; duplicate and out-of-order messages; idempotency key scope and expiry;
|
|
77
|
+
atomic side-effect recording; poison jobs; queue starvation and backpressure; retry
|
|
78
|
+
amplification; timeout budgets; jitter; circuit breaking; recovery after partial
|
|
79
|
+
completion.
|
|
80
|
+
|
|
81
|
+
Prove interleavings deterministically with barriers or a controllable scheduler,
|
|
82
|
+
never arbitrary sleeps. Distinguish data races from logical races; a race detector
|
|
83
|
+
covers only the first. Retries must preserve intent and handle outcomes unknown to
|
|
84
|
+
the caller; never retry non-idempotent work indiscriminately.
|
|
85
|
+
|
|
86
|
+
## Security, privacy and trust boundaries
|
|
87
|
+
|
|
88
|
+
Map assets, entry points, principals, privileges, tenants, trust transitions and
|
|
89
|
+
sensitive outputs first. Then check as applicable: authentication, authorization and
|
|
90
|
+
ownership checks; session and token lifetimes; credentials; injection; path
|
|
91
|
+
traversal; uploads; deserialization; SSRF; XSS; CSRF; CORS; browser messaging; cache
|
|
92
|
+
poisoning; request framing; cryptographic misuse; unsafe defaults; resource
|
|
93
|
+
exhaustion; sensitive logs; privacy and data lifecycle; local IPC; CI/build
|
|
94
|
+
permissions; IaC and container configuration; supply-chain entry points.
|
|
95
|
+
|
|
96
|
+
For AI-facing software add: untrusted retrieved, repository or tool content; prompt
|
|
97
|
+
injection; model-output validation; tool authorization and approval binding (tool,
|
|
98
|
+
full arguments, requester, target, expiry — a retry or resumed session must not
|
|
99
|
+
authorize a changed or duplicate side effect); RAG poisoning; excessive privileges;
|
|
100
|
+
agent state poisoning; secret exfiltration paths. A guardrail prompt is not a
|
|
101
|
+
security boundary.
|
|
102
|
+
|
|
103
|
+
A confirmed finding shows the lower-trust principal, the input, the boundary crossed,
|
|
104
|
+
the affected resource and the concrete effect, traced entry point → propagation →
|
|
105
|
+
sink. A missing defense-in-depth layer is hardening, not an exploit. Validate only in
|
|
106
|
+
authorized local or test scope. Map to CWE (base or variant level, pinned list
|
|
107
|
+
version) or an ASVS requirement (`v5.0.0-x.y.z` style) only after looking the ID up;
|
|
108
|
+
`unmapped` is an honest outcome, and no CWE↔ASVS link may be inferred.
|
|
109
|
+
|
|
110
|
+
## Architecture, maintainability and anti-slop
|
|
111
|
+
|
|
112
|
+
Check: real dependency direction and cycles; responsibility boundaries; hidden
|
|
113
|
+
globals; duplicated sources of truth; over-centralized modules; abstraction leakage;
|
|
114
|
+
expensive coupling; error semantics; resource ownership; unsafe casts and type
|
|
115
|
+
escapes; broad catches; shotgun changes; superficial wrappers; cargo-cult patterns;
|
|
116
|
+
speculative infrastructure; copy-paste divergence; placeholder code;
|
|
117
|
+
performance-obscuring indirection. Complexity without a current need has its own
|
|
118
|
+
floor in [Over-engineering and dead weight](#over-engineering-and-dead-weight).
|
|
119
|
+
|
|
120
|
+
A refactor needs a concrete defect, inconsistency, maintenance cost or measurable
|
|
121
|
+
risk. Never rewrite working idiomatic code toward a personal style. Similar-looking
|
|
122
|
+
code is a lead, not proof of one abstraction: verify behavior before consolidating.
|
|
123
|
+
Never remove defensive checks, audit logs, comments explaining invariants,
|
|
124
|
+
intentional compatibility layers or legal notices as "slop". "Slop" means an
|
|
125
|
+
observable defect or unhelpful prose, never a claim about who wrote the code.
|
|
126
|
+
Prose clean-up applies only to approved docs, comments or report text and must keep
|
|
127
|
+
facts, terminology, identifiers and meaning. No UI or copy change rides on a backend
|
|
128
|
+
approval.
|
|
129
|
+
|
|
130
|
+
## Over-engineering and dead weight
|
|
131
|
+
|
|
132
|
+
Code that serves no current requirement still costs reading, testing, securing and
|
|
133
|
+
migrating. Agent-written code shows these patterns more often — larger patches, more
|
|
134
|
+
duplicated blocks, fewer reuses of existing helpers — but authorship is never
|
|
135
|
+
evidence: check every codebase the same way. Tag each candidate with its cheapest cut:
|
|
136
|
+
|
|
137
|
+
- `delete`: unreferenced code, exports, routes, flags, config keys and environment
|
|
138
|
+
variables; scratch and debug files, commented-out blocks, leftover debug output;
|
|
139
|
+
parameters and options every caller leaves at the default; compatibility shims,
|
|
140
|
+
aliases and "legacy" branches for forms that never shipped; features and edge-case
|
|
141
|
+
paths no requirement, caller or test needs.
|
|
142
|
+
- `yagni`: an interface, abstract base or protocol with one implementation (fakes
|
|
143
|
+
count); a factory, builder, registry or plugin system with one product; a type
|
|
144
|
+
parameter used with one type; a strategy, hook or options bag nobody varies; a
|
|
145
|
+
layer that only passes data along; configuration or a flag whose value never
|
|
146
|
+
differs across real deployments.
|
|
147
|
+
- `reuse`: a near-duplicate of a helper, type or pattern that already exists under
|
|
148
|
+
another name. Search by what the code does, not by its name.
|
|
149
|
+
- `stdlib` / `native`: hand-written code that the standard library, the platform
|
|
150
|
+
(HTML, CSS, database constraints, the runtime) or an installed dependency already
|
|
151
|
+
provides. Name the replacement and the version that has it.
|
|
152
|
+
- `dependency`: a package used for a few lines, a manifest entry nothing imports, two
|
|
153
|
+
packages doing one job, or a name that does not resolve on its registry
|
|
154
|
+
(hallucinated or typosquat risk: route to security).
|
|
155
|
+
- `shrink`: wrappers that only delegate; single-use helpers whose name says no more
|
|
156
|
+
than their body; checks for states the types or an internal caller already exclude;
|
|
157
|
+
the same validation repeated across internal layers; broad catches and
|
|
158
|
+
success-shaped fallbacks that hide failure; retries, timeouts or circuit breakers
|
|
159
|
+
around local work, or nested retry layers; caching without a measurement; one error
|
|
160
|
+
logged at every layer; comments and docstrings that restate the code.
|
|
161
|
+
|
|
162
|
+
Evidence for each candidate: the population count (implementations, callers,
|
|
163
|
+
non-default arguments, importers, values across deploy configuration) with tool,
|
|
164
|
+
scope and file count reconciled with `git ls-files`, covering tests, reflection and
|
|
165
|
+
string dispatch, dependency injection, generated code, entry points (CLI, handlers,
|
|
166
|
+
plugins, serverless), public exports and external consumers; history (`git log -S`)
|
|
167
|
+
showing whether the form shipped or the value ever varied; the lines and dependencies
|
|
168
|
+
removable; and the concrete cost. Dead-code, unused-dependency and clone tools yield
|
|
169
|
+
candidates, not findings; token clone detectors miss renamed copies, so a low
|
|
170
|
+
duplication figure proves nothing.
|
|
171
|
+
|
|
172
|
+
Never flag: validation at trust boundaries (user input, network, files,
|
|
173
|
+
deserialization, environment, IPC) — generated code misses these more often than it
|
|
174
|
+
repeats them; exported, published or persisted contracts and their documented
|
|
175
|
+
migration windows; test seams that tests use; real plural implementations, including
|
|
176
|
+
fakes and plugins; audit, security and compliance logging; caching, retries or
|
|
177
|
+
low-level code backed by a linked measurement, incident or SLO; decisions recorded in
|
|
178
|
+
an ADR (report a mismatch with the ADR instead); refactoring and tests that make
|
|
179
|
+
change easier; a single smoke test or assertion self-check. When nobody can say why
|
|
180
|
+
code exists, check its history and owners before proposing removal.
|
|
181
|
+
|
|
182
|
+
Severity follows consequence: most cuts are low or medium `maintainability`.
|
|
183
|
+
Duplicated logic that can diverge on money, authorization, tenancy or time is a
|
|
184
|
+
correctness finding; a swallowed error is correctness or reliability; an unresolvable
|
|
185
|
+
dependency is security.
|
|
186
|
+
|
|
187
|
+
## Tests and verification quality
|
|
188
|
+
|
|
189
|
+
Check assertion strength, observable behavior, unhappy paths, boundaries, state
|
|
190
|
+
transitions, retries, races, idempotency, time dependence, migrations, rollback,
|
|
191
|
+
compatibility, tenant and security isolation, service contracts, flakiness and test
|
|
192
|
+
isolation. Mocks must not remove the database, network or concurrency behavior the
|
|
193
|
+
defect lives in. Confirm tests are discovered and actually run. Detect flakiness by rerunning, in
|
|
194
|
+
random order with a recorded seed (`go test -shuffle=on -count=N`, `pytest -p
|
|
195
|
+
randomly`, Jest `--randomize`): a test that fails then passes on unchanged code is
|
|
196
|
+
flaky and cannot serve as an oracle; order dependence is its most common cause.
|
|
197
|
+
Flag tautological
|
|
198
|
+
tests (asserting what a mock returns, or only "not null"), mocks of internal
|
|
199
|
+
collaborators or of the unit under test, near-duplicate tests that differ by one
|
|
200
|
+
literal, and production code special-cased to pass a test.
|
|
201
|
+
|
|
202
|
+
Line and branch coverage locate gaps; they never prove correctness. Use focused
|
|
203
|
+
mutation testing, property-based tests, fuzzing, differential checks or fault
|
|
204
|
+
injection where they fit; keep counterexamples and seeds; inspect surviving mutants
|
|
205
|
+
and account for equivalent or invalid mutants and tool limits. Never write tests
|
|
206
|
+
that merely restate the implementation.
|
|
207
|
+
|
|
208
|
+
## Dependencies and supply chain
|
|
209
|
+
|
|
210
|
+
Inventory direct and transitive **resolved** versions, their runtime/build/test
|
|
211
|
+
roles, origins, licenses, support and end-of-life status, advisories, deprecated
|
|
212
|
+
APIs, provenance, integrity and install scripts, plus the unused, redundant or
|
|
213
|
+
unresolvable entries named under [Over-engineering and dead weight](#over-engineering-and-dead-weight). Verify the latest compatible and
|
|
214
|
+
the latest upstream versions separately against official registries, releases and
|
|
215
|
+
advisories at run time; "newer" alone justifies nothing.
|
|
216
|
+
|
|
217
|
+
For serious candidates compare keep, minimal patch, compatible upgrade, major
|
|
218
|
+
upgrade, replacement and removal on behavior and API differences, maturity, platform
|
|
219
|
+
support, maintenance, migration cost, transitive risk, bundle/startup/runtime
|
|
220
|
+
effect, licensing, rollback and tests. Consider "no change" seriously; stars and
|
|
221
|
+
novelty are not evidence. Use OSV or the ecosystem's advisory tooling; an advisory
|
|
222
|
+
match is not proven reachability, and a reachability tool that cannot prove use does
|
|
223
|
+
not prove safety. Unavailable advisory access is `UNKNOWN`. OpenSSF Scorecard
|
|
224
|
+
informs supply-chain practice only. Any dependency change needs plan approval; no
|
|
225
|
+
blind force-upgrades or blanket churn.
|
|
226
|
+
|
|
227
|
+
## Backend performance
|
|
228
|
+
|
|
229
|
+
Profile algorithms and hot paths, database, IO and network behavior, allocation and
|
|
230
|
+
GC, CPU contention, event-loop blocking, thread and connection pools, fan-out,
|
|
231
|
+
serialization, compression, cold start, batch behavior, memory leaks, cache hit and
|
|
232
|
+
miss behavior, throughput at fixed latency and error SLOs, and tail latency under
|
|
233
|
+
expected and overload traffic. Measure real work with representative data and
|
|
234
|
+
concurrency; a microbenchmark win is never a proportional application claim. Track
|
|
235
|
+
CPU, memory, IO, cost and correctness trade-offs next to latency, and keep
|
|
236
|
+
degradation and recovery behavior intact. Methods: [`repair-and-measurement.md`](repair-and-measurement.md#performance-measurement).
|
|
237
|
+
|
|
238
|
+
## Frontend engineering
|
|
239
|
+
|
|
240
|
+
Review real source semantics under the active client profiles:
|
|
241
|
+
|
|
242
|
+
- **Components and state:** ownership, state placement, derived versus duplicated
|
|
243
|
+
state, render purity, lifecycle cleanup, stable identities, effect or reactivity
|
|
244
|
+
misuse, subscription/timer/resource leaks, stale closures, navigation and URL
|
|
245
|
+
state, deep links, back/forward, and the line between reusable UI and business
|
|
246
|
+
logic. Async UI state should be a discriminated union or state machine, not
|
|
247
|
+
independent booleans.
|
|
248
|
+
- **Data flow:** request ownership, waterfalls, duplicate fetches, cache keys and
|
|
249
|
+
invalidation, stale results arriving out of order (a cancellation signal alone is
|
|
250
|
+
not a stale-response guard), cancellation, optimistic updates and rollback, double
|
|
251
|
+
submission, offline and reconnect, auth and tenant transitions, error propagation,
|
|
252
|
+
retries, client/server disagreement.
|
|
253
|
+
- **Trust:** untrusted HTML, URLs and messages; sanitization versus output encoding;
|
|
254
|
+
secrets or server-only modules reachable from client bundles; sensitive state in
|
|
255
|
+
local persistence; CSP and integrity; client-only authorization illusions;
|
|
256
|
+
server-to-client serialization carrying unused or sensitive fields; mutable
|
|
257
|
+
module-level state shared across server requests.
|
|
258
|
+
- **Performance:** bundle and chunk cost, critical rendering path, hydration and
|
|
259
|
+
streaming, long tasks, scheduling, unnecessary work, large tables and lists,
|
|
260
|
+
layout thrash, memory/CPU/frame budgets. Check the real build mode and compiler or
|
|
261
|
+
framework optimizations before proposing memoization, virtualization or caching;
|
|
262
|
+
a memoization change needs profiler evidence, and removing existing memoization
|
|
263
|
+
under an optimizing compiler needs tests first.
|
|
264
|
+
- **Tests:** component, integration and end-to-end tests that observe behavior, cover
|
|
265
|
+
asynchronous ordering and error states, assert something real and are discovered
|
|
266
|
+
and run. Native clients use their platform harness, not a forced DOM test.
|
|
267
|
+
|
|
268
|
+
## Frontend craft, interaction and accessibility
|
|
269
|
+
|
|
270
|
+
The craft role ([`overhaul-craft`](../../../agents/overhaul-craft.md)) examines the existing brief and
|
|
271
|
+
design system, hierarchy, typography, spacing, density, tokens, theming, semantics,
|
|
272
|
+
focus, keyboard operation, touch and pointer, zoom and reflow, responsive or native
|
|
273
|
+
layout, localization and long or RTL content; every UI state (loading, empty, error,
|
|
274
|
+
partial, stale, offline, disabled, pending, permission-denied, success, conflict,
|
|
275
|
+
destructive) including transitions and interruption; actionable feedback and
|
|
276
|
+
recovery without inventing product copy or business decisions; motion purpose,
|
|
277
|
+
interruptibility and reduced-motion behavior.
|
|
278
|
+
|
|
279
|
+
Two frontend verdicts stay separate: engineering/behavior/performance assurance, and
|
|
280
|
+
design/interaction/accessibility evidence. A beautiful screenshot cannot pass a
|
|
281
|
+
broken state machine; passing API tests cannot clear an inaccessible UI. Subjective
|
|
282
|
+
visual direction is a human decision, never a number.
|
|
283
|
+
|
|
284
|
+
For web targets report LCP, INP, CLS, TTFB and critical-journey timings with
|
|
285
|
+
field/lab labels; Lighthouse TBT is not INP and CLS is not latency. Missing field
|
|
286
|
+
data is "unavailable", never "passing". Native, desktop and game targets use
|
|
287
|
+
platform frame and interaction measures. Automated accessibility checks cover a
|
|
288
|
+
subset of criteria, not conformance; prefer native semantics and verify keyboard,
|
|
289
|
+
focus and relevant assistive-technology behavior. ARIA alone does not implement a
|
|
290
|
+
widget. The WCAG 2.2 AA target-size floor is 24 CSS px (SC 2.5.8); larger values are
|
|
291
|
+
advisory. A visual snapshot update is a proposed changed expectation, never automatic
|
|
292
|
+
approval of a regression.
|
|
293
|
+
|
|
294
|
+
## Classifying frontend guidance
|
|
295
|
+
|
|
296
|
+
Upstream design skills conflict with each other and with product brands. Record every
|
|
297
|
+
frontend check as exactly one of: engineering requirement; accessibility or platform
|
|
298
|
+
requirement; approved design-system constraint; optional aesthetic proposal. Only the
|
|
299
|
+
first three can fail a control; aesthetic proposals earn no security, correctness or
|
|
300
|
+
score credit. A generic visual cue (a font, a palette, a card grid, a plain table,
|
|
301
|
+
an eyebrow label) is a lead that needs a concrete mismatch with the product brief,
|
|
302
|
+
usability, accessibility or the accepted design system before it is a defect. Never
|
|
303
|
+
import palette, font or radius bans, marketing layouts, compulsory animation
|
|
304
|
+
libraries, default React or Tailwind assumptions, automatic redesigns, foreign
|
|
305
|
+
scoring formulas, or another skill's stop and permission rules. Prefer current
|
|
306
|
+
official semantics and accessibility evidence plus accepted product constraints when
|
|
307
|
+
sources disagree; ask the user about material design choices, new UI libraries or
|
|
308
|
+
major restructuring.
|
|
309
|
+
|
|
310
|
+
## Cross-layer contracts
|
|
311
|
+
|
|
312
|
+
The boundary role ([`overhaul-boundary`](../../../agents/overhaul-boundary.md)) owns the live graph of
|
|
313
|
+
API operations, events and messages, server actions, IPC/FFI, shared models,
|
|
314
|
+
generated clients and the critical journeys consuming them, and checks both
|
|
315
|
+
producer and consumer: schema, version, enum and nullability; numeric, ID and date
|
|
316
|
+
precision; pagination, order and filter semantics; auth and error behavior; retries
|
|
317
|
+
and idempotency; cache freshness; tenant scoping; timeouts and cancellation;
|
|
318
|
+
deployment compatibility. Compile-time shared types do not prove runtime conformance;
|
|
319
|
+
a mock written from the frontend's expectations does not prove compatibility; a
|
|
320
|
+
schema-generated test does not prove domain correctness or the final UI journey.
|
|
321
|
+
Contract and fuzz tests may send mutating requests: run them only against isolated
|
|
322
|
+
systems with authorization. When a producer or consumer is out of reach, separate
|
|
323
|
+
documented or observed contract evidence from unverifiable internals. A coordinated
|
|
324
|
+
interface change needs one reconciled contract revision, explicit write owners,
|
|
325
|
+
ordered tasks and approval.
|
|
326
|
+
|
|
327
|
+
## Public API and developer experience
|
|
328
|
+
|
|
329
|
+
For libraries, SDKs, CLIs, plugins and configuration consumed outside the repository:
|
|
330
|
+
|
|
331
|
+
- **Compatibility:** diff the exported surface against the last release with the
|
|
332
|
+
ecosystem's checker (`gorelease` or `apidiff`, `cargo-semver-checks`, `griffe
|
|
333
|
+
check`, api-extractor with publint and `attw`, japicmp); a breaking change needs a
|
|
334
|
+
major version or a documented migration. `gorelease` does not fail on `v0`
|
|
335
|
+
modules; report their breaking changes anyway.
|
|
336
|
+
- **CLI:** data on stdout and diagnostics on stderr; exit 0 only on success, with
|
|
337
|
+
distinct non-zero codes for usage and runtime errors; `--help` and `--version`;
|
|
338
|
+
machine-readable output where scripts consume it; no color when not a TTY or when
|
|
339
|
+
`NO_COLOR` is set; never prompt without a TTY, and a flag for every prompt.
|
|
340
|
+
- **Errors:** name the cause and the offending value, the constraint, and how to fix
|
|
341
|
+
it; no stack trace as the only message; never rely on color alone.
|
|
342
|
+
- **Configuration:** documented precedence (flags, environment, project, user,
|
|
343
|
+
system); unknown keys rejected with a suggestion; a validate command or dry run.
|
|
344
|
+
|
|
345
|
+
Each claim gets an executed check: the compatibility diff, `cmd --json` parsing,
|
|
346
|
+
`NO_COLOR=1 cmd` containing no escape codes, a bad argument giving a non-zero exit
|
|
347
|
+
with empty stdout, golden tests on error text.
|
|
348
|
+
|
|
349
|
+
## Documentation
|
|
350
|
+
|
|
351
|
+
Inventoried docs are reviewed, not skipped. Check that install, setup and quick-start
|
|
352
|
+
commands run on a clean checkout; examples compile or run (Go `Example` tests,
|
|
353
|
+
doctests, `cargo test --doc`); generated references (CLI help, OpenAPI, config
|
|
354
|
+
schemas) match a fresh regeneration with no diff (`cog --check`, `mdox fmt --check`,
|
|
355
|
+
`git diff --exit-code`); documented flags, endpoints and settings exist in code and
|
|
356
|
+
the reverse; local links and anchors resolve (`lychee --offline`). Wrong docs that
|
|
357
|
+
send a user down a broken path are findings with the same severity rules as code.
|
|
358
|
+
|
|
359
|
+
## Operations and project-specific extensions
|
|
360
|
+
|
|
361
|
+
For every long-running service, check with a fault test where possible:
|
|
362
|
+
|
|
363
|
+
- **Signals:** structured logs carrying the trace or correlation ID from the inbound
|
|
364
|
+
`traceparent` to outbound calls and jobs; RED metrics per endpoint and USE metrics
|
|
365
|
+
per resource under stable OpenTelemetry semantic-convention names; no secrets,
|
|
366
|
+
tokens or personal data in logs, spans or metrics; bounded metric cardinality.
|
|
367
|
+
- **Health:** liveness checks only the process, never a dependency; readiness checks
|
|
368
|
+
what serving needs; a startup probe covers slow boot. Stop the database: readiness
|
|
369
|
+
fails, liveness stays up.
|
|
370
|
+
- **Shutdown:** on SIGTERM readiness fails first, in-flight work drains and consumers
|
|
371
|
+
stop fetching, all within the platform's grace period.
|
|
372
|
+
- **Timeouts and retries:** every outbound call has connect and total timeouts from
|
|
373
|
+
the caller's deadline; retries are bounded, jittered, at one layer, only for
|
|
374
|
+
idempotent work; queues and concurrency are bounded.
|
|
375
|
+
- **Configuration:** from environment or mounted files, never secrets in the
|
|
376
|
+
repository or image; a missing required setting fails startup and names it.
|
|
377
|
+
- **Change safety:** rollback or roll-forward path, staged rollout, feature-flag
|
|
378
|
+
kill switches with owners and removal dates, expand-and-contract migrations with
|
|
379
|
+
lock and statement timeouts (squawk, `atlas migrate lint`), version skew between
|
|
380
|
+
old and new instances.
|
|
381
|
+
- **Recovery:** backups proven by a restore that queries data against RTO and RPO;
|
|
382
|
+
alerts on symptoms and SLO burn, each with a runbook; SLOs on user-visible
|
|
383
|
+
behavior; CPU and memory requests and a memory limit.
|
|
384
|
+
|
|
385
|
+
Also check deployment order, configuration drift, resilience and diagnosability.
|
|
386
|
+
Add language- or domain-specific extensions when applicable: memory ownership and
|
|
387
|
+
FFI, native sanitizers, embedded constraints, GPU and frame budgets, numerical, data
|
|
388
|
+
and ML reproducibility, regulated or safety requirements. An unfamiliar domain is
|
|
389
|
+
`blocked` until researched ([`stack-profiles.md`](stack-profiles.md#unknown-stack-procedure)),
|
|
390
|
+
never silently labeled safe.
|