devrites 3.0.4 → 3.0.6
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 +40 -1
- package/README.md +280 -521
- package/SECURITY.md +91 -77
- package/docs/adr/README.md +7 -9
- package/docs/agents/domain.md +5 -5
- package/docs/agents/issue-driven-rites.md +5 -5
- package/docs/agents/issue-tracker.md +1 -1
- package/docs/agents/triage-labels.md +2 -2
- package/docs/architecture.md +101 -85
- package/docs/capability-surface-selection.md +3 -1
- package/docs/cli.md +20 -13
- package/docs/command-map.md +39 -35
- package/docs/engine/agent-contract.md +11 -9
- package/docs/engine/commands.md +92 -78
- package/docs/engine/state-schema.md +23 -19
- package/docs/engine/workspace-schema.md +12 -11
- package/docs/extensions.md +17 -17
- package/docs/flow.md +34 -23
- package/docs/harness-compliance.md +2 -2
- package/docs/orchestration.md +21 -20
- package/docs/porting-to-a-new-harness.md +6 -2
- package/docs/release.md +30 -12
- package/docs/research/go-authoritative-workflow-schema-and-quality-2026-07-20.md +3 -3
- package/docs/skills.md +77 -52
- package/docs/templates/CRITIC_REVIEW_PACKET_TEMPLATE.md +35 -0
- package/docs/usage.md +56 -45
- package/engine/Makefile +2 -2
- package/engine/commands.go +3 -3
- package/engine/harnessmatrix.go +2 -2
- package/engine/hookpolicy.go +9 -9
- package/engine/hooks.go +11 -11
- package/engine/hooks_workspace.go +11 -11
- package/engine/internal/doctor/doctor.go +7 -7
- package/engine/internal/gate/gate.go +11 -11
- package/engine/internal/harness/compliance.go +1 -1
- package/engine/internal/harness/harness.go +7 -7
- package/engine/internal/install/install.go +2 -0
- package/engine/internal/install/install_test.go +3 -3
- package/engine/internal/iohooks/detach_unix.go +1 -1
- package/engine/internal/iohooks/iohooks.go +8 -8
- package/engine/internal/lib/adoption.go +1 -1
- package/engine/internal/lib/analyze.go +15 -15
- package/engine/internal/lib/archivesearch.go +3 -3
- package/engine/internal/lib/budget.go +3 -3
- package/engine/internal/lib/buildreadiness.go +6 -6
- package/engine/internal/lib/checkacceptance.go +10 -10
- package/engine/internal/lib/closeout.go +5 -5
- package/engine/internal/lib/conventions.go +3 -3
- package/engine/internal/lib/coverage.go +4 -4
- package/engine/internal/lib/doubtcoverage.go +9 -9
- package/engine/internal/lib/evidencefresh.go +6 -6
- package/engine/internal/lib/extensions.go +9 -9
- package/engine/internal/lib/footprint.go +13 -13
- package/engine/internal/lib/jsonout.go +2 -2
- package/engine/internal/lib/lanes.go +2 -2
- package/engine/internal/lib/learnings.go +9 -9
- package/engine/internal/lib/ledger.go +8 -8
- package/engine/internal/lib/ledger_test.go +5 -5
- package/engine/internal/lib/mutationgate.go +4 -4
- package/engine/internal/lib/overrides.go +9 -9
- package/engine/internal/lib/overrides_test.go +2 -2
- package/engine/internal/lib/packageexistence.go +732 -55
- package/engine/internal/lib/packageexistence_test.go +343 -0
- package/engine/internal/lib/preamble.go +6 -6
- package/engine/internal/lib/progress.go +5 -5
- package/engine/internal/lib/reconcile.go +80 -20
- package/engine/internal/lib/reconcile_test.go +13 -5
- package/engine/internal/lib/resolve.go +3 -3
- package/engine/internal/lib/reviewerstats.go +2 -2
- package/engine/internal/lib/reviewintegrity.go +13 -13
- package/engine/internal/lib/reviewintegrity_test.go +6 -6
- package/engine/internal/lib/runbook.go +1 -1
- package/engine/internal/lib/session.go +1 -1
- package/engine/internal/lib/session_test.go +2 -2
- package/engine/internal/lib/specparse.go +4 -4
- package/engine/internal/lib/specskeleton.go +2 -2
- package/engine/internal/lib/specvalidate.go +13 -13
- package/engine/internal/lib/stuck.go +13 -13
- package/engine/internal/lib/templates/conventions_ledger_header.md +1 -1
- package/engine/internal/lib/templates/conventions_orient_header.txt +1 -1
- package/engine/internal/lib/testintegrity.go +9 -9
- package/engine/internal/lib/tickafk.go +4 -4
- package/engine/internal/lib/util.go +1 -1
- package/engine/internal/migrate/migrate.go +2 -2
- package/engine/internal/migrate/migrate_test.go +1 -0
- package/engine/internal/orient/firstrun.go +8 -8
- package/engine/internal/orient/orient.go +5 -5
- package/engine/internal/state/concurrency_test.go +4 -4
- package/engine/internal/state/feature.go +6 -6
- package/engine/internal/state/lock_unix.go +1 -1
- package/engine/internal/state/schema.go +1 -1
- package/engine/internal/state/snapshot.go +2 -2
- package/engine/internal/state/write.go +1 -1
- package/engine/internal/version/version.go +1 -1
- package/engine/main.go +5 -5
- package/engine/subagent_orient_context.txt +4 -4
- package/engine/testdata/golden/TestParityA1Guard/source-edit-enforce-denies.golden +1 -1
- package/engine/testdata/golden/TestParityAnalyze/slug=covered.golden +2 -2
- package/engine/testdata/golden/TestParityAnalyze/slug=dangling.golden +3 -3
- package/engine/testdata/golden/TestParityAnalyze/slug=noac.golden +2 -2
- package/engine/testdata/golden/TestParityAnalyze/slug=order.golden +4 -4
- package/engine/testdata/golden/TestParityAnalyze/slug=orphan.golden +3 -3
- package/engine/testdata/golden/TestParityAnalyze/slug=uncovered.golden +3 -3
- package/engine/testdata/golden/TestParityBudget/extra-md.golden +1 -1
- package/engine/testdata/golden/TestParityBudget/over-advisory.golden +1 -1
- package/engine/testdata/golden/TestParityBudget/over-strict.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +1 -1
- package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +1 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-ok.golden +1 -1
- package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-ok.golden +1 -1
- package/engine/testdata/golden/TestParityCloseOut/active_pointed_elsewhere.golden +1 -1
- package/engine/testdata/golden/TestParityCoverage/arg=speconly.golden +2 -2
- package/engine/testdata/golden/TestParityCursor/bare.golden +1 -1
- package/engine/testdata/golden/TestParityCursor/full-afk.golden +1 -1
- package/engine/testdata/golden/TestParityCursor/full-hitl.golden +1 -1
- package/engine/testdata/golden/TestParityCursor/red.golden +2 -2
- package/engine/testdata/golden/TestParityCursor/zerogates.golden +1 -1
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=ghost.golden +1 -1
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=inline.golden +1 -1
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing-inline.golden +1 -1
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing.golden +1 -1
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=nodoubt.golden +1 -1
- package/engine/testdata/golden/TestParityDoubtCoverage/arg=nolog.golden +1 -1
- package/engine/testdata/golden/TestParityLearnings/mine-no-archive.golden +1 -1
- package/engine/testdata/golden/TestParityLearnings/mine.golden +1 -1
- package/engine/testdata/golden/TestParityLearnings/nudge.golden +1 -1
- package/engine/testdata/golden/TestParityMutationGate/active-slug.golden +1 -1
- package/engine/testdata/golden/TestParityMutationGate/explicit-slug.golden +1 -1
- package/engine/testdata/golden/TestParityPackageExistence/declared.golden +1 -1
- package/engine/testdata/golden/TestParityPackageExistence/default-import-subpath.golden +1 -1
- package/engine/testdata/golden/TestParityReconcile/check-clean.golden +1 -1
- package/engine/testdata/golden/TestParityRedwatch/fail-writes-red.golden +1 -1
- package/engine/testdata/golden/TestParityResolve/answer/state.md.golden +1 -1
- package/engine/testdata/golden/TestParityResolve/batch.golden +1 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-devrites-agent-denies.golden +1 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-git-commit.golden +1 -1
- package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-mutating.golden +1 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=flat.golden +1 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=valid/spec.md.golden +1 -1
- package/engine/testdata/golden/TestParitySpecValidate/arg=valid.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/custom-window-2.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/dominant.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/few.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/ghost.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/identical.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/nolog.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/pingpong.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/varied.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/window-04-identical.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/window-2.5-varied4.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/window-4x-varied4.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/window-leadspace-varied4.golden +1 -1
- package/engine/testdata/golden/TestParityStuckCheck/window-plus4-identical.golden +1 -1
- package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent-subagent-type-key.golden +1 -1
- package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent.golden +1 -1
- package/engine/testdata/golden/TestParityTestIntegrity/clean.golden +1 -1
- package/engine/testdata/golden/TestParityTickAfk/missingField.golden +1 -1
- package/engine/testdata/golden/TestParityTickAfk/none.golden +1 -1
- package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +1 -1
- package/engine/testdata/golden/TestSpecSkeleton/missing-some.golden +1 -1
- package/engine/testdata/golden/TestSpecSkeleton/present-all.golden +1 -1
- package/engine/tests/adr_0004_required_by_phase_test.go +2 -2
- package/engine/tests/adr_0006_clock_seam_test.go +1 -1
- package/engine/tests/budget_test.go +1 -1
- package/engine/tests/canonical_ac_ids_test.go +2 -2
- package/engine/tests/cli_test.go +1 -1
- package/engine/tests/concurrency_cli_test.go +1 -1
- package/engine/tests/gate_test.go +4 -4
- package/engine/tests/hook_test.go +3 -3
- package/engine/tests/hooks_io_test.go +1 -1
- package/engine/tests/lib_parity_test.go +29 -29
- package/engine/tests/meta_test.go +2 -2
- package/engine/tests/parity_closeout_test.go +1 -1
- package/engine/tests/parity_learnings_test.go +2 -2
- package/engine/tests/parity_mutationgate_test.go +2 -2
- package/engine/tests/parity_resolve_test.go +1 -1
- package/engine/tests/parity_test.go +3 -3
- package/engine/tests/parity_tickafk_test.go +1 -1
- package/engine/validatepack.go +5 -5
- package/engine/validatepackskills.go +9 -9
- package/pack/.claude/agents/devrites-code-reviewer.md +21 -22
- package/pack/.claude/agents/devrites-devex-reviewer.md +17 -17
- package/pack/.claude/agents/devrites-doubt-reviewer.md +6 -6
- package/pack/.claude/agents/devrites-forge-judge.md +26 -26
- package/pack/.claude/agents/devrites-frontend-reviewer.md +17 -17
- package/pack/.claude/agents/devrites-performance-reviewer.md +19 -18
- package/pack/.claude/agents/devrites-plan-reviewer.md +29 -27
- package/pack/.claude/agents/devrites-retrospector.md +19 -19
- package/pack/.claude/agents/devrites-security-auditor.md +15 -15
- package/pack/.claude/agents/devrites-simplifier-reviewer.md +14 -14
- package/pack/.claude/agents/devrites-slice-wright.md +52 -51
- package/pack/.claude/agents/devrites-spec-reviewer.md +11 -11
- package/pack/.claude/agents/devrites-strategy-reviewer.md +21 -21
- package/pack/.claude/agents/devrites-test-analyst.md +13 -13
- package/pack/.claude/settings.json +1 -1
- package/pack/.claude/skills/devrites-api-interface/SKILL.md +12 -12
- package/pack/.claude/skills/devrites-audit/SKILL.md +7 -7
- package/pack/.claude/skills/devrites-browser-proof/SKILL.md +16 -16
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +14 -14
- package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
- package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
- package/pack/.claude/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
- package/pack/.claude/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
- package/pack/.claude/skills/devrites-debug-recovery/reference/trace.md +4 -4
- package/pack/.claude/skills/devrites-doubt/SKILL.md +14 -14
- package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +18 -18
- package/pack/.claude/skills/devrites-frontend-craft/reference/craft.md +17 -17
- package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +25 -25
- package/pack/.claude/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
- package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
- package/pack/.claude/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
- package/pack/.claude/skills/devrites-frontend-craft/reference/shape.md +13 -13
- package/pack/.claude/skills/devrites-interview/SKILL.md +27 -27
- package/pack/.claude/skills/devrites-lib/SKILL.md +25 -27
- package/pack/.claude/skills/devrites-lib/reference/model-tiers.md +5 -5
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
- package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +11 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/README.md +10 -10
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +37 -37
- package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
- package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
- package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +40 -40
- package/pack/.claude/skills/devrites-lib/reference/standards/coding-style.md +7 -7
- package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +23 -23
- package/pack/.claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +18 -18
- package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
- package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +12 -13
- package/pack/.claude/skills/devrites-lib/reference/standards/documentation.md +4 -4
- package/pack/.claude/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/elicitation.md +26 -26
- package/pack/.claude/skills/devrites-lib/reference/standards/error-handling.md +4 -4
- package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
- package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +3 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/observability.md +15 -15
- package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +8 -8
- package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +5 -5
- package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +31 -31
- package/pack/.claude/skills/devrites-lib/reference/standards/prose-style.md +25 -25
- package/pack/.claude/skills/devrites-lib/reference/standards/security.md +30 -30
- package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
- package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
- package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +40 -40
- package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +26 -26
- package/pack/.claude/skills/devrites-prose-craft/SKILL.md +5 -5
- package/pack/.claude/skills/devrites-refresh-indexes/SKILL.md +6 -6
- package/pack/.claude/skills/devrites-source-driven/SKILL.md +8 -8
- package/pack/.claude/skills/devrites-ux-shape/SKILL.md +33 -33
- package/pack/.claude/skills/devrites-ux-shape/reference/brief-template.md +6 -6
- package/pack/.claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
- package/pack/.claude/skills/rite/SKILL.md +13 -14
- package/pack/.claude/skills/rite/reference/menu.md +10 -10
- package/pack/.claude/skills/rite-adopt/SKILL.md +17 -18
- package/pack/.claude/skills/rite-adopt/reference/adoption.md +9 -9
- package/pack/.claude/skills/rite-adopt/reference/anti-patterns.md +6 -6
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +14 -14
- package/pack/.claude/skills/rite-autocomplete/reference/decision-policy.md +4 -4
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +7 -7
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
- package/pack/.claude/skills/rite-build/SKILL.md +22 -22
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +9 -9
- package/pack/.claude/skills/rite-build/reference/anti-patterns.md +6 -6
- package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +14 -14
- package/pack/.claude/skills/rite-build/reference/checkpoint.md +8 -8
- package/pack/.claude/skills/rite-build/reference/evidence-standard.md +1 -1
- package/pack/.claude/skills/rite-build/reference/forge.md +28 -29
- package/pack/.claude/skills/rite-build/reference/frontend-trigger.md +2 -2
- package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +3 -3
- package/pack/.claude/skills/rite-build/reference/output.md +1 -1
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +44 -44
- package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
- package/pack/.claude/skills/rite-build/reference/tdd.md +6 -6
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +23 -23
- package/pack/.claude/skills/rite-converge/SKILL.md +17 -17
- package/pack/.claude/skills/rite-converge/reference/anti-patterns.md +7 -7
- package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +14 -14
- package/pack/.claude/skills/rite-customize/SKILL.md +2 -2
- package/pack/.claude/skills/rite-define/SKILL.md +25 -25
- package/pack/.claude/skills/rite-define/reference/anti-patterns.md +5 -5
- package/pack/.claude/skills/rite-define/reference/gates.md +13 -13
- package/pack/.claude/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/.claude/skills/rite-doctor/SKILL.md +11 -11
- package/pack/.claude/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/.claude/skills/rite-explain/SKILL.md +22 -22
- package/pack/.claude/skills/rite-explain/reference/intake.md +16 -16
- package/pack/.claude/skills/rite-frame/SKILL.md +22 -22
- package/pack/.claude/skills/rite-frame/reference/failure-modes.md +13 -13
- package/pack/.claude/skills/rite-handoff/SKILL.md +12 -12
- package/pack/.claude/skills/rite-learn/SKILL.md +23 -23
- package/pack/.claude/skills/rite-plan/SKILL.md +21 -21
- package/pack/.claude/skills/rite-plan/reference/anti-patterns.md +3 -3
- package/pack/.claude/skills/rite-plan/reference/dependency-graph.md +1 -1
- package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +3 -3
- package/pack/.claude/skills/rite-plan/reference/slicing.md +9 -9
- package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +3 -3
- package/pack/.claude/skills/rite-polish/SKILL.md +11 -11
- package/pack/.claude/skills/rite-polish/reference/anti-patterns.md +8 -8
- package/pack/.claude/skills/rite-polish/reference/backend-polish.md +13 -13
- package/pack/.claude/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
- package/pack/.claude/skills/rite-polish/reference/code.md +26 -26
- package/pack/.claude/skills/rite-polish/reference/harden-checklist.md +31 -31
- package/pack/.claude/skills/rite-polish/reference/ui.md +23 -23
- package/pack/.claude/skills/rite-pov/SKILL.md +3 -3
- package/pack/.claude/skills/rite-pr-feedback/SKILL.md +2 -2
- package/pack/.claude/skills/rite-pressure-test/SKILL.md +14 -14
- package/pack/.claude/skills/rite-prototype/SKILL.md +13 -13
- package/pack/.claude/skills/rite-prove/SKILL.md +17 -17
- package/pack/.claude/skills/rite-prove/reference/anti-patterns.md +4 -4
- package/pack/.claude/skills/rite-prove/reference/browser-proof.md +2 -2
- package/pack/.claude/skills/rite-prove/reference/failure-triage.md +4 -4
- package/pack/.claude/skills/rite-prove/reference/proof-ladder.md +6 -6
- package/pack/.claude/skills/rite-prove/reference/test-command-discovery.md +1 -1
- package/pack/.claude/skills/rite-quick/SKILL.md +22 -22
- package/pack/.claude/skills/rite-resolve/SKILL.md +18 -18
- package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +7 -7
- package/pack/.claude/skills/rite-review/SKILL.md +34 -34
- package/pack/.claude/skills/rite-review/reference/anti-patterns.md +4 -4
- package/pack/.claude/skills/rite-review/reference/cognitive-load.md +22 -22
- package/pack/.claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
- package/pack/.claude/skills/rite-review/reference/five-axis-review.md +8 -8
- package/pack/.claude/skills/rite-review/reference/nielsen-heuristics.md +14 -14
- package/pack/.claude/skills/rite-review/reference/performance-checklist.md +14 -14
- package/pack/.claude/skills/rite-review/reference/security-review.md +9 -9
- package/pack/.claude/skills/rite-seal/SKILL.md +26 -26
- package/pack/.claude/skills/rite-seal/reference/anti-patterns.md +8 -8
- package/pack/.claude/skills/rite-seal/reference/conventions-ledger.md +8 -8
- package/pack/.claude/skills/rite-seal/reference/final-evidence.md +9 -9
- package/pack/.claude/skills/rite-seal/reference/go-no-go.md +9 -9
- package/pack/.claude/skills/rite-seal/reference/phase-contract.md +43 -43
- package/pack/.claude/skills/rite-ship/SKILL.md +12 -12
- package/pack/.claude/skills/rite-ship/reference/anti-patterns.md +5 -5
- package/pack/.claude/skills/rite-ship/reference/close-out.md +2 -2
- package/pack/.claude/skills/rite-ship/reference/design-memory.md +22 -22
- package/pack/.claude/skills/rite-ship/reference/git-ship.md +10 -10
- package/pack/.claude/skills/rite-ship/reference/ledger.md +9 -9
- package/pack/.claude/skills/rite-ship/reference/rollout.md +11 -11
- package/pack/.claude/skills/rite-ship/reference/ship-template.md +1 -1
- package/pack/.claude/skills/rite-spec/SKILL.md +45 -45
- package/pack/.claude/skills/rite-spec/reference/acceptance-criteria.md +4 -4
- package/pack/.claude/skills/rite-spec/reference/anti-patterns.md +6 -6
- package/pack/.claude/skills/rite-spec/reference/interview-patterns.md +3 -3
- package/pack/.claude/skills/rite-spec/reference/investigation.md +21 -21
- package/pack/.claude/skills/rite-spec/reference/question-protocol.md +9 -9
- package/pack/.claude/skills/rite-spec/reference/references-intake.md +8 -8
- package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +19 -19
- package/pack/.claude/skills/rite-status/SKILL.md +13 -13
- package/pack/.claude/skills/rite-temper/SKILL.md +29 -29
- package/pack/.claude/skills/rite-temper/reference/anti-patterns.md +11 -11
- package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +20 -20
- package/pack/.claude/skills/rite-temper/reference/scope-modes.md +16 -16
- package/pack/.claude/skills/rite-temper/reference/significance.md +10 -10
- package/pack/.claude/skills/rite-temper/reference/strategy-template.md +14 -14
- package/pack/.claude/skills/rite-vet/SKILL.md +31 -31
- package/pack/.claude/skills/rite-vet/reference/anti-patterns.md +14 -14
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +10 -10
- package/pack/.claude/skills/rite-vet/reference/cross-model.md +9 -9
- package/pack/.claude/skills/rite-vet/reference/depth.md +14 -14
- package/pack/.claude/skills/rite-vet/reference/eng-lenses.md +9 -9
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +28 -28
- package/pack/.claude/skills/rite-zoom-out/SKILL.md +18 -18
- package/pack/generated/claude/agents/devrites-code-reviewer.md +21 -22
- package/pack/generated/claude/agents/devrites-devex-reviewer.md +17 -17
- package/pack/generated/claude/agents/devrites-doubt-reviewer.md +6 -6
- package/pack/generated/claude/agents/devrites-forge-judge.md +26 -26
- package/pack/generated/claude/agents/devrites-frontend-reviewer.md +17 -17
- package/pack/generated/claude/agents/devrites-performance-reviewer.md +19 -18
- package/pack/generated/claude/agents/devrites-plan-reviewer.md +29 -27
- package/pack/generated/claude/agents/devrites-retrospector.md +19 -19
- package/pack/generated/claude/agents/devrites-security-auditor.md +15 -15
- package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +14 -14
- package/pack/generated/claude/agents/devrites-slice-wright.md +52 -51
- package/pack/generated/claude/agents/devrites-spec-reviewer.md +11 -11
- package/pack/generated/claude/agents/devrites-strategy-reviewer.md +21 -21
- package/pack/generated/claude/agents/devrites-test-analyst.md +13 -13
- package/pack/generated/claude/settings.json +1 -1
- package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +12 -12
- package/pack/generated/claude/skills/devrites-audit/SKILL.md +7 -7
- package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +16 -16
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +14 -14
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
- package/pack/generated/claude/skills/devrites-debug-recovery/reference/trace.md +4 -4
- package/pack/generated/claude/skills/devrites-doubt/SKILL.md +14 -14
- package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +18 -18
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/craft.md +17 -17
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +25 -25
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
- package/pack/generated/claude/skills/devrites-frontend-craft/reference/shape.md +13 -13
- package/pack/generated/claude/skills/devrites-interview/SKILL.md +27 -27
- package/pack/generated/claude/skills/devrites-lib/SKILL.md +25 -27
- package/pack/generated/claude/skills/devrites-lib/reference/model-tiers.md +5 -5
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
- package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +11 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +10 -10
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +37 -37
- package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
- package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +40 -40
- package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +7 -7
- package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +23 -23
- package/pack/generated/claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +18 -18
- package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
- package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +12 -13
- package/pack/generated/claude/skills/devrites-lib/reference/standards/documentation.md +4 -4
- package/pack/generated/claude/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/elicitation.md +26 -26
- package/pack/generated/claude/skills/devrites-lib/reference/standards/error-handling.md +4 -4
- package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
- package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +3 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/observability.md +15 -15
- package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +8 -8
- package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +5 -5
- package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +31 -31
- package/pack/generated/claude/skills/devrites-lib/reference/standards/prose-style.md +25 -25
- package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +30 -30
- package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
- package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
- package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +40 -40
- package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +26 -26
- package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +5 -5
- package/pack/generated/claude/skills/devrites-refresh-indexes/SKILL.md +6 -6
- package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +8 -8
- package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +33 -33
- package/pack/generated/claude/skills/devrites-ux-shape/reference/brief-template.md +6 -6
- package/pack/generated/claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
- package/pack/generated/claude/skills/rite/SKILL.md +13 -14
- package/pack/generated/claude/skills/rite/reference/menu.md +10 -10
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +17 -18
- package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +9 -9
- package/pack/generated/claude/skills/rite-adopt/reference/anti-patterns.md +6 -6
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +14 -14
- package/pack/generated/claude/skills/rite-autocomplete/reference/decision-policy.md +4 -4
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +7 -7
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
- package/pack/generated/claude/skills/rite-build/SKILL.md +22 -22
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +9 -9
- package/pack/generated/claude/skills/rite-build/reference/anti-patterns.md +6 -6
- package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +14 -14
- package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +8 -8
- package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/forge.md +28 -29
- package/pack/generated/claude/skills/rite-build/reference/frontend-trigger.md +2 -2
- package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +3 -3
- package/pack/generated/claude/skills/rite-build/reference/output.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +44 -44
- package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/tdd.md +6 -6
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +23 -23
- package/pack/generated/claude/skills/rite-converge/SKILL.md +17 -17
- package/pack/generated/claude/skills/rite-converge/reference/anti-patterns.md +7 -7
- package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +14 -14
- package/pack/generated/claude/skills/rite-customize/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-define/SKILL.md +25 -25
- package/pack/generated/claude/skills/rite-define/reference/anti-patterns.md +5 -5
- package/pack/generated/claude/skills/rite-define/reference/gates.md +13 -13
- package/pack/generated/claude/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/generated/claude/skills/rite-doctor/SKILL.md +11 -11
- package/pack/generated/claude/skills/rite-dogfood/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-explain/SKILL.md +22 -22
- package/pack/generated/claude/skills/rite-explain/reference/intake.md +16 -16
- package/pack/generated/claude/skills/rite-frame/SKILL.md +22 -22
- package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +13 -13
- package/pack/generated/claude/skills/rite-handoff/SKILL.md +12 -12
- package/pack/generated/claude/skills/rite-learn/SKILL.md +23 -23
- package/pack/generated/claude/skills/rite-plan/SKILL.md +21 -21
- package/pack/generated/claude/skills/rite-plan/reference/anti-patterns.md +3 -3
- package/pack/generated/claude/skills/rite-plan/reference/dependency-graph.md +1 -1
- package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +3 -3
- package/pack/generated/claude/skills/rite-plan/reference/slicing.md +9 -9
- package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +3 -3
- package/pack/generated/claude/skills/rite-polish/SKILL.md +11 -11
- package/pack/generated/claude/skills/rite-polish/reference/anti-patterns.md +8 -8
- package/pack/generated/claude/skills/rite-polish/reference/backend-polish.md +13 -13
- package/pack/generated/claude/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
- package/pack/generated/claude/skills/rite-polish/reference/code.md +26 -26
- package/pack/generated/claude/skills/rite-polish/reference/harden-checklist.md +31 -31
- package/pack/generated/claude/skills/rite-polish/reference/ui.md +23 -23
- package/pack/generated/claude/skills/rite-pov/SKILL.md +3 -3
- package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +14 -14
- package/pack/generated/claude/skills/rite-prototype/SKILL.md +13 -13
- package/pack/generated/claude/skills/rite-prove/SKILL.md +17 -17
- package/pack/generated/claude/skills/rite-prove/reference/anti-patterns.md +4 -4
- package/pack/generated/claude/skills/rite-prove/reference/browser-proof.md +2 -2
- package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +4 -4
- package/pack/generated/claude/skills/rite-prove/reference/proof-ladder.md +6 -6
- package/pack/generated/claude/skills/rite-prove/reference/test-command-discovery.md +1 -1
- package/pack/generated/claude/skills/rite-quick/SKILL.md +22 -22
- package/pack/generated/claude/skills/rite-resolve/SKILL.md +18 -18
- package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +7 -7
- package/pack/generated/claude/skills/rite-review/SKILL.md +34 -34
- package/pack/generated/claude/skills/rite-review/reference/anti-patterns.md +4 -4
- package/pack/generated/claude/skills/rite-review/reference/cognitive-load.md +22 -22
- package/pack/generated/claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
- package/pack/generated/claude/skills/rite-review/reference/five-axis-review.md +8 -8
- package/pack/generated/claude/skills/rite-review/reference/nielsen-heuristics.md +14 -14
- package/pack/generated/claude/skills/rite-review/reference/performance-checklist.md +14 -14
- package/pack/generated/claude/skills/rite-review/reference/security-review.md +9 -9
- package/pack/generated/claude/skills/rite-seal/SKILL.md +26 -26
- package/pack/generated/claude/skills/rite-seal/reference/anti-patterns.md +8 -8
- package/pack/generated/claude/skills/rite-seal/reference/conventions-ledger.md +8 -8
- package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +9 -9
- package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +9 -9
- package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +43 -43
- package/pack/generated/claude/skills/rite-ship/SKILL.md +12 -12
- package/pack/generated/claude/skills/rite-ship/reference/anti-patterns.md +5 -5
- package/pack/generated/claude/skills/rite-ship/reference/close-out.md +2 -2
- package/pack/generated/claude/skills/rite-ship/reference/design-memory.md +22 -22
- package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +10 -10
- package/pack/generated/claude/skills/rite-ship/reference/ledger.md +9 -9
- package/pack/generated/claude/skills/rite-ship/reference/rollout.md +11 -11
- package/pack/generated/claude/skills/rite-ship/reference/ship-template.md +1 -1
- package/pack/generated/claude/skills/rite-spec/SKILL.md +45 -45
- package/pack/generated/claude/skills/rite-spec/reference/acceptance-criteria.md +4 -4
- package/pack/generated/claude/skills/rite-spec/reference/anti-patterns.md +6 -6
- package/pack/generated/claude/skills/rite-spec/reference/interview-patterns.md +3 -3
- package/pack/generated/claude/skills/rite-spec/reference/investigation.md +21 -21
- package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +9 -9
- package/pack/generated/claude/skills/rite-spec/reference/references-intake.md +8 -8
- package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +19 -19
- package/pack/generated/claude/skills/rite-status/SKILL.md +13 -13
- package/pack/generated/claude/skills/rite-temper/SKILL.md +29 -29
- package/pack/generated/claude/skills/rite-temper/reference/anti-patterns.md +11 -11
- package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +20 -20
- package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +16 -16
- package/pack/generated/claude/skills/rite-temper/reference/significance.md +10 -10
- package/pack/generated/claude/skills/rite-temper/reference/strategy-template.md +14 -14
- package/pack/generated/claude/skills/rite-vet/SKILL.md +31 -31
- package/pack/generated/claude/skills/rite-vet/reference/anti-patterns.md +14 -14
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +10 -10
- package/pack/generated/claude/skills/rite-vet/reference/cross-model.md +9 -9
- package/pack/generated/claude/skills/rite-vet/reference/depth.md +14 -14
- package/pack/generated/claude/skills/rite-vet/reference/eng-lenses.md +9 -9
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +28 -28
- package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +18 -18
- package/pack/generated/codex/agents/devrites-code-reviewer.toml +21 -22
- package/pack/generated/codex/agents/devrites-devex-reviewer.toml +17 -17
- package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +6 -6
- package/pack/generated/codex/agents/devrites-forge-judge.toml +26 -26
- package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +17 -17
- package/pack/generated/codex/agents/devrites-performance-reviewer.toml +19 -18
- package/pack/generated/codex/agents/devrites-plan-reviewer.toml +29 -27
- package/pack/generated/codex/agents/devrites-retrospector.toml +19 -19
- package/pack/generated/codex/agents/devrites-security-auditor.toml +15 -15
- package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +14 -14
- package/pack/generated/codex/agents/devrites-slice-wright.toml +52 -51
- package/pack/generated/codex/agents/devrites-spec-reviewer.toml +11 -11
- package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +21 -21
- package/pack/generated/codex/agents/devrites-test-analyst.toml +13 -13
- package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +15 -15
- package/pack/generated/codex/skills/devrites-audit/SKILL.md +10 -10
- package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +19 -19
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +17 -17
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
- package/pack/generated/codex/skills/devrites-debug-recovery/reference/trace.md +4 -4
- package/pack/generated/codex/skills/devrites-doubt/SKILL.md +17 -17
- package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +20 -20
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/craft.md +17 -17
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +25 -25
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
- package/pack/generated/codex/skills/devrites-frontend-craft/reference/shape.md +13 -13
- package/pack/generated/codex/skills/devrites-interview/SKILL.md +30 -30
- package/pack/generated/codex/skills/devrites-lib/SKILL.md +28 -30
- package/pack/generated/codex/skills/devrites-lib/reference/model-tiers.md +5 -5
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
- package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +11 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +10 -10
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +37 -37
- package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
- package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +40 -40
- package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +7 -7
- package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +23 -23
- package/pack/generated/codex/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +18 -18
- package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
- package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +12 -13
- package/pack/generated/codex/skills/devrites-lib/reference/standards/documentation.md +4 -4
- package/pack/generated/codex/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/elicitation.md +26 -26
- package/pack/generated/codex/skills/devrites-lib/reference/standards/error-handling.md +4 -4
- package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
- package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +3 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/observability.md +15 -15
- package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +8 -8
- package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +5 -5
- package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +31 -31
- package/pack/generated/codex/skills/devrites-lib/reference/standards/prose-style.md +25 -25
- package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +30 -30
- package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
- package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
- package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +40 -40
- package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +26 -26
- package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +8 -8
- package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +9 -9
- package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +11 -11
- package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +36 -36
- package/pack/generated/codex/skills/devrites-ux-shape/reference/brief-template.md +6 -6
- package/pack/generated/codex/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
- package/pack/generated/codex/skills/rite/SKILL.md +16 -17
- package/pack/generated/codex/skills/rite/reference/menu.md +10 -10
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +20 -21
- package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +9 -9
- package/pack/generated/codex/skills/rite-adopt/reference/anti-patterns.md +6 -6
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +17 -17
- package/pack/generated/codex/skills/rite-autocomplete/reference/decision-policy.md +4 -4
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +7 -7
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
- package/pack/generated/codex/skills/rite-build/SKILL.md +25 -25
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +9 -9
- package/pack/generated/codex/skills/rite-build/reference/anti-patterns.md +6 -6
- package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +14 -14
- package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +8 -8
- package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/forge.md +28 -29
- package/pack/generated/codex/skills/rite-build/reference/frontend-trigger.md +2 -2
- package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +3 -3
- package/pack/generated/codex/skills/rite-build/reference/output.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +44 -44
- package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/tdd.md +6 -6
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +23 -23
- package/pack/generated/codex/skills/rite-converge/SKILL.md +20 -20
- package/pack/generated/codex/skills/rite-converge/reference/anti-patterns.md +7 -7
- package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +14 -14
- package/pack/generated/codex/skills/rite-customize/SKILL.md +5 -5
- package/pack/generated/codex/skills/rite-define/SKILL.md +28 -28
- package/pack/generated/codex/skills/rite-define/reference/anti-patterns.md +5 -5
- package/pack/generated/codex/skills/rite-define/reference/gates.md +13 -13
- package/pack/generated/codex/skills/rite-define/reference/plan-template.md +1 -1
- package/pack/generated/codex/skills/rite-doctor/SKILL.md +14 -14
- package/pack/generated/codex/skills/rite-dogfood/SKILL.md +5 -5
- package/pack/generated/codex/skills/rite-explain/SKILL.md +25 -25
- package/pack/generated/codex/skills/rite-explain/reference/intake.md +16 -16
- package/pack/generated/codex/skills/rite-frame/SKILL.md +25 -25
- package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +13 -13
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +15 -15
- package/pack/generated/codex/skills/rite-learn/SKILL.md +26 -26
- package/pack/generated/codex/skills/rite-plan/SKILL.md +24 -24
- package/pack/generated/codex/skills/rite-plan/reference/anti-patterns.md +3 -3
- package/pack/generated/codex/skills/rite-plan/reference/dependency-graph.md +1 -1
- package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +3 -3
- package/pack/generated/codex/skills/rite-plan/reference/slicing.md +9 -9
- package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +3 -3
- package/pack/generated/codex/skills/rite-polish/SKILL.md +14 -14
- package/pack/generated/codex/skills/rite-polish/reference/anti-patterns.md +8 -8
- package/pack/generated/codex/skills/rite-polish/reference/backend-polish.md +13 -13
- package/pack/generated/codex/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
- package/pack/generated/codex/skills/rite-polish/reference/code.md +26 -26
- package/pack/generated/codex/skills/rite-polish/reference/harden-checklist.md +31 -31
- package/pack/generated/codex/skills/rite-polish/reference/ui.md +23 -23
- package/pack/generated/codex/skills/rite-pov/SKILL.md +6 -6
- package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +5 -5
- package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +17 -17
- package/pack/generated/codex/skills/rite-prototype/SKILL.md +16 -16
- package/pack/generated/codex/skills/rite-prove/SKILL.md +20 -20
- package/pack/generated/codex/skills/rite-prove/reference/anti-patterns.md +4 -4
- package/pack/generated/codex/skills/rite-prove/reference/browser-proof.md +2 -2
- package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +4 -4
- package/pack/generated/codex/skills/rite-prove/reference/proof-ladder.md +6 -6
- package/pack/generated/codex/skills/rite-prove/reference/test-command-discovery.md +1 -1
- package/pack/generated/codex/skills/rite-quick/SKILL.md +25 -25
- package/pack/generated/codex/skills/rite-resolve/SKILL.md +21 -21
- package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +7 -7
- package/pack/generated/codex/skills/rite-review/SKILL.md +37 -37
- package/pack/generated/codex/skills/rite-review/reference/anti-patterns.md +4 -4
- package/pack/generated/codex/skills/rite-review/reference/cognitive-load.md +22 -22
- package/pack/generated/codex/skills/rite-review/reference/feature-scoped-review.md +2 -2
- package/pack/generated/codex/skills/rite-review/reference/five-axis-review.md +8 -8
- package/pack/generated/codex/skills/rite-review/reference/nielsen-heuristics.md +14 -14
- package/pack/generated/codex/skills/rite-review/reference/performance-checklist.md +14 -14
- package/pack/generated/codex/skills/rite-review/reference/security-review.md +9 -9
- package/pack/generated/codex/skills/rite-seal/SKILL.md +29 -29
- package/pack/generated/codex/skills/rite-seal/reference/anti-patterns.md +8 -8
- package/pack/generated/codex/skills/rite-seal/reference/conventions-ledger.md +8 -8
- package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +9 -9
- package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +9 -9
- package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +43 -43
- package/pack/generated/codex/skills/rite-ship/SKILL.md +15 -15
- package/pack/generated/codex/skills/rite-ship/reference/anti-patterns.md +5 -5
- package/pack/generated/codex/skills/rite-ship/reference/close-out.md +2 -2
- package/pack/generated/codex/skills/rite-ship/reference/design-memory.md +22 -22
- package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +10 -10
- package/pack/generated/codex/skills/rite-ship/reference/ledger.md +9 -9
- package/pack/generated/codex/skills/rite-ship/reference/rollout.md +11 -11
- package/pack/generated/codex/skills/rite-ship/reference/ship-template.md +1 -1
- package/pack/generated/codex/skills/rite-spec/SKILL.md +48 -48
- package/pack/generated/codex/skills/rite-spec/reference/acceptance-criteria.md +4 -4
- package/pack/generated/codex/skills/rite-spec/reference/anti-patterns.md +6 -6
- package/pack/generated/codex/skills/rite-spec/reference/interview-patterns.md +3 -3
- package/pack/generated/codex/skills/rite-spec/reference/investigation.md +21 -21
- package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +9 -9
- package/pack/generated/codex/skills/rite-spec/reference/references-intake.md +8 -8
- package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +19 -19
- package/pack/generated/codex/skills/rite-status/SKILL.md +16 -16
- package/pack/generated/codex/skills/rite-temper/SKILL.md +32 -32
- package/pack/generated/codex/skills/rite-temper/reference/anti-patterns.md +11 -11
- package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +20 -20
- package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +16 -16
- package/pack/generated/codex/skills/rite-temper/reference/significance.md +10 -10
- package/pack/generated/codex/skills/rite-temper/reference/strategy-template.md +14 -14
- package/pack/generated/codex/skills/rite-vet/SKILL.md +34 -34
- package/pack/generated/codex/skills/rite-vet/reference/anti-patterns.md +14 -14
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +10 -10
- package/pack/generated/codex/skills/rite-vet/reference/cross-model.md +9 -9
- package/pack/generated/codex/skills/rite-vet/reference/depth.md +14 -14
- package/pack/generated/codex/skills/rite-vet/reference/eng-lenses.md +9 -9
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +28 -28
- package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +21 -21
- package/package.json +2 -2
- package/scripts/build-binaries.sh +1 -1
- package/scripts/build-host-artifacts.sh +1 -1
- package/scripts/build-release-tarball.sh +1 -1
- package/scripts/check-cross-refs.py +8 -8
- package/scripts/check-invocation-integrity.py +4 -4
- package/scripts/check-no-global-writes.sh +2 -2
- package/scripts/check-reply-contract.sh +1 -1
- package/scripts/check-rule-uniqueness.sh +2 -2
- package/scripts/codex-generate.sh +5 -5
- package/scripts/devrites-detect.sh +33 -33
- package/scripts/eval-runner.py +7 -7
- package/scripts/grade-feature.sh +14 -14
- package/scripts/install-lib.sh +2 -2
- package/scripts/pin.sh +12 -12
- package/scripts/run-behavioral-evals.sh +12 -12
- package/scripts/run-evals.sh +1 -1
- package/scripts/run-outcome-evals.sh +12 -12
- package/scripts/scan-pack-security.py +4 -4
- package/scripts/scan-supply-chain-iocs.py +7 -7
- package/scripts/skills-inventory.mjs +21 -4
- package/scripts/sync-version.sh +2 -2
- package/scripts/validate-workflow-security.py +12 -6
- package/scripts/validate-workspace-schema.py +2 -2
- package/scripts/validate.sh +7 -7
|
@@ -11,21 +11,21 @@ This is the Codex mirror of a DevRites skill. In Codex:
|
|
|
11
11
|
|
|
12
12
|
- Load DevRites engineering standards from `.agents/skills/devrites-lib/reference/standards/`. Read `.agents/skills/devrites-lib/reference/standards/core.md` before workflow work, then load the other `.agents/skills/devrites-lib/reference/standards/*.md` files exactly when this skill asks for them.
|
|
13
13
|
- Use the installed `devrites-engine` binary as the canonical runtime helper surface for orientation, gates, and state mutation.
|
|
14
|
-
- When this skill asks for a DevRites specialist or writer agent, **explicitly** spawn the matching Codex custom agent from `.codex/agents/devrites-*.toml` through Codex subagents (`spawn_agent`), then wait for its result and reconcile it as the skill instructs. Do not do the review inline just because the instruction to spawn is embedded here
|
|
15
|
-
- The independence of a fresh-context subagent is the point. If Codex genuinely cannot spawn subagents in the current surface, run the documented inline fallback and **label the result an inline fallback, not an independent review
|
|
14
|
+
- When this skill asks for a DevRites specialist or writer agent, **explicitly** spawn the matching Codex custom agent from `.codex/agents/devrites-*.toml` through Codex subagents (`spawn_agent`), then wait for its result and reconcile it as the skill instructs. Do not do the review inline just because the instruction to spawn is embedded here: Codex under-fires embedded spawn/skill instructions (openai/codex #23496), so treat the spawn as required, not optional.
|
|
15
|
+
- The independence of a fresh-context subagent is the point. If Codex genuinely cannot spawn subagents in the current surface, run the documented inline fallback and **label the result an inline fallback, not an independent review**: an inline pass shares the calling context and is weaker evidence.
|
|
16
16
|
- Codex project hooks are installed in `.codex/hooks.json`. Review and trust them with `/hooks` before relying on hook enforcement.
|
|
17
|
-
- When this skill asks a HITL question via `AskUserQuestion`: Codex's equivalent (`request_user_input`) exists only in Plan mode. Outside Plan mode, render the option set as a plain numbered list in chat and **end the turn** so the human answers
|
|
17
|
+
- When this skill asks a HITL question via `AskUserQuestion`: Codex's equivalent (`request_user_input`) exists only in Plan mode. Outside Plan mode, render the option set as a plain numbered list in chat and **end the turn** so the human answers: NEVER silently pick an option yourself; auto-picking is AFK's contract, gated by the `.devrites/AFK` sentinel.
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
# $rite-spec
|
|
20
|
+
# $rite-spec: investigate deeply, write the spec
|
|
21
21
|
|
|
22
22
|
The spec phase. Turn a request (even a vague one) into a **fully-covered, correctly-placed
|
|
23
|
-
`spec.md`** by investigating deeply and closing every material gap with the human
|
|
24
|
-
`$rite-define` can plan it and nothing is missed. **No plan, tasks, or code here
|
|
23
|
+
`spec.md`** by investigating deeply and closing every material gap with the human, so
|
|
24
|
+
`$rite-define` can plan it and nothing is missed. **No plan, tasks, or code here**. Those
|
|
25
25
|
are `$rite-define` and `$rite-build`.
|
|
26
26
|
|
|
27
27
|
> **Too small to spec? Use `$rite-quick`.** A typo, copy tweak, config bump, or one-function
|
|
28
|
-
> fix does **not** need a full workspace + lifecycle. Stop and run `$rite-quick <change
|
|
28
|
+
> fix does **not** need a full workspace + lifecycle. Stop and run `$rite-quick <change>`: its
|
|
29
29
|
> express lane (one contract → TDD build → scoped prove → ship) escalates back here the moment
|
|
30
30
|
> the change turns out to touch auth / data / a migration / a public API / more than one slice.
|
|
31
31
|
> Spec is for real features; don't pay its ceremony for a one-off.
|
|
@@ -33,11 +33,11 @@ are `$rite-define` and `$rite-build`.
|
|
|
33
33
|
## Rules consulted (read on demand from `.agents/skills/devrites-lib/reference/standards/`)
|
|
34
34
|
Pull `documentation.md` via `Read`
|
|
35
35
|
when capturing significant spec decisions (why-not-what, ADR-style notes in `decisions.md`);
|
|
36
|
-
pull `principles.md` when the project has declared invariants (`.devrites/principles.md`)
|
|
36
|
+
pull `principles.md` when the project has declared invariants (`.devrites/principles.md`): a
|
|
37
37
|
new spec must respect them, and a requirement that can only be met by breaking one is a blocking gap.
|
|
38
38
|
Pull `spec-grammar.md` and `devrites-lib/reference/workspace-artifact-schema.md` when writing
|
|
39
39
|
acceptance for a behavioral / high-risk requirement (auth,
|
|
40
|
-
data model, state machine, public API, money, migration)
|
|
40
|
+
data model, state machine, public API, money, migration): the structured `### Requirement:` /
|
|
41
41
|
`#### Scenario:` (SHALL · WHEN/THEN) form, lint-checked by `devrites-engine spec-validate`. Simple criteria
|
|
42
42
|
stay flat `AC-###` bullets; the grammar is opt-in by rigor, never forced.
|
|
43
43
|
|
|
@@ -54,19 +54,19 @@ stay flat `AC-###` bullets; the grammar is opt-in by rigor, never forced.
|
|
|
54
54
|
the weak section.
|
|
55
55
|
|
|
56
56
|
## Workflow
|
|
57
|
-
0. **Read `.agents/skills/devrites-lib/reference/standards/core.md
|
|
57
|
+
0. **Read `.agents/skills/devrites-lib/reference/standards/core.md`:** the always-on operating rules and anti-rationalizations.
|
|
58
58
|
Then run `devrites-engine preamble` for deterministic workspace orientation.
|
|
59
|
-
0a. **Brownfield check
|
|
60
|
-
**existing codebase** (real source predating DevRites) that has **never been adopted**
|
|
61
|
-
`.devrites/conventions.md`, no prior `.devrites/work`, `.devrites/features`, or `.devrites/archive`
|
|
59
|
+
0a. **Brownfield check: onboard before speccing onto un-adopted existing code.** If this is an
|
|
60
|
+
**existing codebase** (real source predating DevRites) that has **never been adopted** (no
|
|
61
|
+
`.devrites/conventions.md`, no prior `.devrites/work`, `.devrites/features`, or `.devrites/archive`) the build has no
|
|
62
62
|
conventions ledger to follow and the first slice would guess the project's idioms. Route
|
|
63
63
|
through `$rite-adopt` **first**, carrying `$ARGUMENTS` as its *next objective*: adopt
|
|
64
64
|
reverse-derives the baseline `spec.md`, **seeds the conventions ledger**, and proposes
|
|
65
65
|
principles, so this feature is specced on top of an onboarded project (adopt owns the
|
|
66
|
-
onboarding; `$rite-spec` only detects and routes
|
|
66
|
+
onboarding; `$rite-spec` only detects and routes: no duplicated logic). In **HITL** present a
|
|
67
67
|
ranked option (recommended: *adopt first, then spec this on top*; escape hatch: *spec-only, skip
|
|
68
68
|
onboarding*); in **AFK** (adoption allowed) run `$rite-adopt` first automatically. **Greenfield
|
|
69
|
-
(no pre-existing source) or an already-onboarded project → skip silently
|
|
69
|
+
(no pre-existing source) or an already-onboarded project → skip silently**: never block a spec
|
|
70
70
|
for the absence of adoption (the same no-op discipline as the principles gate). Cheap probe:
|
|
71
71
|
```bash
|
|
72
72
|
if [ ! -f .devrites/conventions.md ] && [ ! -d .devrites/archive ] \
|
|
@@ -84,75 +84,75 @@ stay flat `AC-###` bullets; the grammar is opt-in by rigor, never forced.
|
|
|
84
84
|
```
|
|
85
85
|
If it finds a close match, ask the user: extend existing / adopt / new spec. Record the choice in
|
|
86
86
|
`decisions.md` once the workspace exists. No match → continue silently.
|
|
87
|
-
2. **Investigate deeply
|
|
87
|
+
2. **Investigate deeply:** [investigation](reference/investigation.md). Produce, and
|
|
88
88
|
later write into the spec: **current behavior**; **placement** (which module/layer/
|
|
89
|
-
file/component should own it, the seam, patterns to reuse, and integration points
|
|
89
|
+
file/component should own it, the seam, patterns to reuse, and integration points:
|
|
90
90
|
callers, dependents, data, APIs/events); **what it resolves**; **issues**
|
|
91
91
|
(conflicts/constraints); **gaps** (unknowns); **blast radius**. Use a code-intelligence
|
|
92
|
-
index **if available
|
|
92
|
+
index **if available**: `codebase-memory-mcp` first, cross-checked with `codegraph`
|
|
93
93
|
(`.codegraph/` / `codegraph_*`) + `graphify` (`graphify-out/`), else standard methods
|
|
94
|
-
(LSP / `Read`/`Grep`/`Glob`); see `.agents/skills/devrites-lib/reference/standards/tooling.md
|
|
94
|
+
(LSP / `Read`/`Grep`/`Glob`); see `.agents/skills/devrites-lib/reference/standards/tooling.md`:
|
|
95
95
|
for placement/callers/impact instead of broad file reads; fall back to reading files. For
|
|
96
96
|
uncertain external library/framework facts that bear on placement or feasibility, consult
|
|
97
|
-
context7 if available. When a material decision turns on a fact outside the codebase
|
|
98
|
-
common UX pattern, a standard, a prevailing best practice, how comparable products solve it
|
|
97
|
+
context7 if available. When a material decision turns on a fact outside the codebase: a
|
|
98
|
+
common UX pattern, a standard, a prevailing best practice, how comparable products solve it:
|
|
99
99
|
**search the web if available** (brave MCP preferred; see `.agents/skills/devrites-lib/reference/standards/tooling.md`), and
|
|
100
100
|
carry the cited finding into the option you put to the human at step 4.
|
|
101
101
|
Also discover the project's **test / build/typecheck/lint** commands and the
|
|
102
102
|
frontend/backend systems; read `PRODUCT.md` / `DESIGN.md` / `CLAUDE.md` / `AGENTS.md` if
|
|
103
|
-
present (`AGENTS.md` is the cross-tool agent-conventions standard
|
|
103
|
+
present (`AGENTS.md` is the cross-tool agent-conventions standard (treat it as project
|
|
104
104
|
conventions the build must follow, same standing as `CLAUDE.md`), and read
|
|
105
|
-
`.devrites/principles.md` if present
|
|
106
|
-
**Consult the capability ledger
|
|
105
|
+
`.devrites/principles.md` if present) the declared invariants the feature must respect.
|
|
106
|
+
**Consult the capability ledger**: the living record of what the system already does
|
|
107
107
|
([`ledger.md`](../rite-ship/reference/ledger.md)): `devrites-engine ledger list` for the
|
|
108
108
|
capabilities on record, then `devrites-engine ledger show <capability>` for any this feature
|
|
109
109
|
touches. Also search prior decisions with `devrites-engine decisions search "<2-4 feature nouns>"`
|
|
110
110
|
before asking the human to re-decide a settled architecture/API/auth choice. Starting from the proven contract (not a cold re-derive) is what makes the spec store
|
|
111
111
|
compound across features; it also tells you which requirements are new vs a change to existing
|
|
112
112
|
behavior, which decides the delta kind in step 5.
|
|
113
|
-
3. **Gather design references (optional)
|
|
114
|
-
The human **may** attach screenshots, mockups, a Figma link, a video, or links
|
|
113
|
+
3. **Gather design references (optional):** [references-intake](reference/references-intake.md).
|
|
114
|
+
The human **may** attach screenshots, mockups, a Figma link, a video, or links, or
|
|
115
115
|
**none at all** (perfectly normal; skip this step then). If any are given: **view/fetch**
|
|
116
116
|
them, **save local files** into `.devrites/work/<slug>/references/`, and index them in
|
|
117
117
|
`references.md` as target, constraint, or inspiration. Later phases honor that role
|
|
118
118
|
rather than treating every reference as a fidelity target.
|
|
119
119
|
**Completion:** every supplied reference is saved and classified, or absence is explicit.
|
|
120
|
-
3a. **Shape the UX/UI before code (if the feature touches UI)
|
|
120
|
+
3a. **Shape the UX/UI before code (if the feature touches UI)**, when this feature is
|
|
121
121
|
frontend ([frontend-trigger](../rite-build/reference/frontend-trigger.md)), apply
|
|
122
|
-
`devrites-ux-shape` **now**, woven into the spec
|
|
122
|
+
`devrites-ux-shape` **now**, woven into the spec, not as a separate phase. It turns the
|
|
123
123
|
references + the spec into a feature-level **`design-brief.md`** (design direction, key
|
|
124
124
|
states, interaction model, optional Figma/image visual-direction probe) that `$rite-build`
|
|
125
125
|
targets so the UI is built to plan, not guessed. In HITL it pauses for the human to
|
|
126
126
|
confirm the direction; in AFK it asserts the best guess and logs it. Pure
|
|
127
127
|
backend/data/CLI features skip this.
|
|
128
|
-
4. **Close the gaps with the human
|
|
128
|
+
4. **Close the gaps with the human. You recommend, the human decides.** Every material gap
|
|
129
129
|
(one that moves **objective · scope · placement · data model · UX · integration ·
|
|
130
130
|
non-functional · security · migration risk · acceptance**) is **put to the human as a ranked
|
|
131
|
-
option set**, one gap at a time, via the harness `AskUserQuestion` in HITL: **2
|
|
131
|
+
option set**, one gap at a time, via the harness `AskUserQuestion` in HITL: **2-4 concrete
|
|
132
132
|
options, your recommended one first and marked `(Recommended)`**, each with a one-line
|
|
133
133
|
rationale + trade-off tagged by the dimensions that matter, plus an escape hatch (*Something
|
|
134
|
-
else
|
|
134
|
+
else. I'll describe it*). Render contract + AFK behaviour: the **Option set** section of
|
|
135
135
|
[`afk-hitl.md`](../devrites-lib/reference/standards/afk-hitl.md); spec-phase question discipline:
|
|
136
136
|
[question-protocol](reference/question-protocol.md). Your job is to **investigate, rank, and
|
|
137
|
-
recommend
|
|
138
|
-
the question, not its *owner*:** when you're near-certain, you still present the set
|
|
139
|
-
human just confirms your `(Recommended)` option in one pick
|
|
137
|
+
recommend**, not to settle a material decision yourself. **Confidence changes the *cost* of
|
|
138
|
+
the question, not its *owner*:** when you're near-certain, you still present the set (the
|
|
139
|
+
human just confirms your `(Recommended)` option in one pick) you do **not** silently decide
|
|
140
140
|
it because you predicted the answer. Only a **genuinely reversible, low-impact** detail is
|
|
141
141
|
auto-decided and logged to `assumptions.md`; when unsure whether a gap is material, ask.
|
|
142
142
|
(Vague ask → `devrites-interview`; rough idea → `$rite-pressure-test`.) For a vague ask,
|
|
143
143
|
load [`reference/interview-patterns.md`](reference/interview-patterns.md), **map the decision
|
|
144
|
-
tree**, and resolve each branch depth-first; **cover every dimension
|
|
144
|
+
tree**, and resolve each branch depth-first; **cover every dimension**:
|
|
145
145
|
each resolved by a human pick or explicitly deferred (logged, non-blocking), never silently
|
|
146
146
|
skipped. Aim for **zero blocking gaps**. *If a gap is genuinely undecidable on paper (state
|
|
147
147
|
machine that may deadlock, data shape ambiguity, "which UX wins") → suggest a
|
|
148
148
|
scoped detour to `$rite-prototype` to answer that ONE question before
|
|
149
149
|
continuing.* **Invariant conflict is a blocking gap:** if a requirement or acceptance
|
|
150
150
|
criterion can only be satisfied by breaking a declared principle (`.devrites/principles.md`),
|
|
151
|
-
surface it
|
|
151
|
+
surface it: the principle wins by default; breaking it needs a recorded, scoped exception a
|
|
152
152
|
human approves, never a spec that silently contradicts an invariant.
|
|
153
153
|
5. **Create the workspace** + set `.devrites/ACTIVE`
|
|
154
154
|
([state-workspace](reference/state-workspace.md)). Write compact `README.md`,
|
|
155
|
-
`brief.md`, and `spec.md` ([spec-template](reference/spec-template.md))
|
|
155
|
+
`brief.md`, and `spec.md` ([spec-template](reference/spec-template.md)). WHAT/WHY,
|
|
156
156
|
technology-agnostic, with requirements, acceptance, edge cases, scope boundaries, links
|
|
157
157
|
to future `architecture.md` / `traceability.md`, and measurable acceptance
|
|
158
158
|
([acceptance-criteria](reference/acceptance-criteria.md)). For a
|
|
@@ -160,8 +160,8 @@ stay flat `AC-###` bullets; the grammar is opt-in by rigor, never forced.
|
|
|
160
160
|
`### Requirement:` (SHALL) + `#### Scenario:` (WHEN/THEN) block per
|
|
161
161
|
[`spec-grammar.md`](../devrites-lib/reference/standards/spec-grammar.md), nesting the `AC-###` id inside each scenario
|
|
162
162
|
so `$rite-seal` still grades it; routine criteria stay flat `AC-###` bullets. **When a
|
|
163
|
-
capability the ledger already holds is changing, write those requirements as deltas
|
|
164
|
-
`## ADDED / MODIFIED / REMOVED Requirements — capability: <c>` (spec-grammar.md § Delta form)
|
|
163
|
+
capability the ledger already holds is changing, write those requirements as deltas**:
|
|
164
|
+
`## ADDED / MODIFIED / REMOVED Requirements — capability: <c>` (spec-grammar.md § Delta form):
|
|
165
165
|
so the change, not just the end state, is explicit and `$rite-ship` folds it cleanly; a
|
|
166
166
|
capability with no ledger entry stays flat (the first sync seeds it). Also
|
|
167
167
|
write `brief.md`, `references.md`, `questions.md`, `decisions.md`, `assumptions.md`,
|
|
@@ -176,19 +176,19 @@ stay flat `AC-###` bullets; the grammar is opt-in by rigor, never forced.
|
|
|
176
176
|
```bash
|
|
177
177
|
devrites-engine context sync || true
|
|
178
178
|
```
|
|
179
|
-
5a. **Score the spec prose
|
|
179
|
+
5a. **Score the spec prose: "unit tests for English"** ([spec-checklists](reference/spec-checklists.md)).
|
|
180
180
|
Emit `.devrites/work/<slug>/checklists/<domain>.md` (one per requirement domain the spec covers:
|
|
181
181
|
functional · data-model · interaction · non-functional · edge-cases). Each tests the *requirement
|
|
182
|
-
prose* for completeness / clarity / measurability
|
|
183
|
-
enumeration closed?"
|
|
182
|
+
prose* for completeness / clarity / measurability: "is 'prominent' quantified?", "is every
|
|
183
|
+
enumeration closed?", **not** the implementation. Fix each CRITICAL fail by editing the spec
|
|
184
184
|
(not by softening the question); minor fails are logged. The checklists feed the readiness gate.
|
|
185
185
|
6. **Run the spec readiness gate** (bottom of spec-template): no blocking
|
|
186
186
|
`[NEEDS CLARIFICATION]`, placement decided, all material gaps resolved, any design
|
|
187
187
|
references provided are saved, **UX/UI shaped into `design-brief.md` if the feature is
|
|
188
188
|
UI**, requirements testable, success criteria measurable, **one-sentence intent** (the whole
|
|
189
|
-
change states its intent in a single sentence
|
|
189
|
+
change states its intent in a single sentence (if it can't, it is two features: split it or
|
|
190
190
|
narrow the scope), **every `checklists/<domain>.md` at
|
|
191
|
-
`Verdict: pass`**, and **any structured requirement blocks are grammar-valid**
|
|
191
|
+
`Verdict: pass`**, and **any structured requirement blocks are grammar-valid**) run
|
|
192
192
|
`devrites-engine spec-skeleton` first, then `devrites-engine spec-validate` with
|
|
193
193
|
`--against .devrites/specs` so any delta sections are also
|
|
194
194
|
reconciled against the ledger (an ADDED that already exists, or a MODIFIED/REMOVED that doesn't,
|
|
@@ -205,11 +205,11 @@ stay flat `AC-###` bullets; the grammar is opt-in by rigor, never forced.
|
|
|
205
205
|
plus the hard gates), and `Build exactly this?` (yes → next phase; no → revise now). The digest
|
|
206
206
|
is a view over `spec.md`, not a new artifact. **Stop** after the digest.
|
|
207
207
|
|
|
208
|
-
> **Mid-flight discipline.** When tempted to skip investigation depth, gap-closing, or placement decisions
|
|
208
|
+
> **Mid-flight discipline.** When tempted to skip investigation depth, gap-closing, or placement decisions: see [`anti-patterns`](reference/anti-patterns.md) (Common Rationalizations + Red Flags). Load it the moment you reach for the excuse.
|
|
209
209
|
|
|
210
210
|
## Output
|
|
211
211
|
|
|
212
|
-
**Progress first
|
|
212
|
+
**Progress first**: run `devrites-engine progress`, then use the shared completion reply contract
|
|
213
213
|
([`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md)).
|
|
214
214
|
Default success shape:
|
|
215
215
|
```
|
|
@@ -221,11 +221,11 @@ Next: $rite-temper
|
|
|
221
221
|
Record: .devrites/work/<slug>/spec.md
|
|
222
222
|
↻ Hygiene: /clear before the next phase; $rite-handoff if away > a few hours
|
|
223
223
|
```
|
|
224
|
-
If a workspace with the slug already exists, update its spec rather than overwriting blindly
|
|
224
|
+
If a workspace with the slug already exists, update its spec rather than overwriting blindly:
|
|
225
225
|
and **show the human a short diff of what changed** in `spec.md` (acceptance criteria added /
|
|
226
226
|
removed / reworded) before proceeding. A spec edit reviewed as a diff catches silent scope
|
|
227
227
|
drift that a full re-read buries; this is the spec-review view (`$rite-spec --review` renders
|
|
228
228
|
just the diff + the open-question delta, no re-investigation).
|
|
229
229
|
|
|
230
230
|
When the ask overlaps the ACTIVE feature (same intent, >50% scope), route to
|
|
231
|
-
`$rite-plan revise`
|
|
231
|
+
`$rite-plan revise` (its gate decides) rather than minting a parallel workspace.
|
|
@@ -5,7 +5,7 @@ Acceptance criteria are the contract the seal checks. Write them so each is
|
|
|
5
5
|
|
|
6
6
|
## A good criterion
|
|
7
7
|
- Is observable: a test passes, a command outputs X, a screenshot shows Y.
|
|
8
|
-
- Is binary: met or not
|
|
8
|
+
- Is binary: met or not: no "mostly".
|
|
9
9
|
- Names the evidence: "`npm test path/x.test.ts` passes" or "POST /export returns 200
|
|
10
10
|
with a CSV body" or "empty state renders 'No exports yet' at 375px".
|
|
11
11
|
- Belongs to a slice: every criterion maps to at least one slice (mapped in `$rite-define`).
|
|
@@ -21,10 +21,10 @@ Acceptance criteria are the contract the seal checks. Write them so each is
|
|
|
21
21
|
| Negative | "<invalid input> is rejected with <message>, no <side effect>." |
|
|
22
22
|
|
|
23
23
|
## Anti-patterns
|
|
24
|
-
- "Works well" / "is fast" / "looks good"
|
|
24
|
+
- "Works well" / "is fast" / "looks good": unverifiable. Attach a number or an
|
|
25
25
|
observation.
|
|
26
|
-
- Criteria with no slice
|
|
27
|
-
- Criteria only provable by reading the code
|
|
26
|
+
- Criteria with no slice: orphaned scope.
|
|
27
|
+
- Criteria only provable by reading the code: require runtime/test evidence instead.
|
|
28
28
|
|
|
29
29
|
## At seal time
|
|
30
30
|
Each criterion gets a checkbox + the evidence that proves it. Unproven critical
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# rite-spec
|
|
1
|
+
# rite-spec: anti-patterns
|
|
2
2
|
|
|
3
3
|
Load this when standing a non-trivial decision in `$rite-spec`, or when the
|
|
4
4
|
agent feels reluctance toward investigation depth, gap-closing, or
|
|
@@ -10,19 +10,19 @@ Pack-wide rationalizations + red flags: see [standards/anti-patterns.md](../../d
|
|
|
10
10
|
|
|
11
11
|
| Excuse | Rebuttal |
|
|
12
12
|
|---|---|
|
|
13
|
-
| "User said *just make it work
|
|
13
|
+
| "User said *just make it work*: no spec needed." | Vague asks are exactly where `$rite-spec` earns its keep; load `devrites-interview` and ask one question at a time. |
|
|
14
14
|
| "I already understand the request." | Then writing the placement + acceptance criteria takes minutes and saves drift later. Investigation isn't for *you*, it's for `$rite-define`. |
|
|
15
15
|
| "Too small for a spec." | If it's big enough for `$rite-build`, it's big enough for one paragraph of WHAT/WHY + measurable acceptance. |
|
|
16
|
-
| "No design refs were attached, so skip references." | Skip the *gathering*, not the *acknowledgement*. Note "no references provided" in the spec
|
|
16
|
+
| "No design refs were attached, so skip references." | Skip the *gathering*, not the *acknowledgement*. Note "no references provided" in the spec: silence is ambiguous. |
|
|
17
17
|
| "I can resolve gaps as I build." | Drift discovered at slice 3 costs more than 5 questions answered now. |
|
|
18
|
-
| "I'm confident of the answer, so I'll just decide this myself." | Confidence changes the *cost* of the question, not its *owner*. A material decision (scope · placement · data model · UX · security · migration · acceptance) is put to the human as a ranked option set
|
|
18
|
+
| "I'm confident of the answer, so I'll just decide this myself." | Confidence changes the *cost* of the question, not its *owner*. A material decision (scope · placement · data model · UX · security · migration · acceptance) is put to the human as a ranked option set: near-certainty just makes it a one-pick confirm, never a silent decision. |
|
|
19
19
|
| "Presenting options for every gap is over-asking." | Over-asking is many questions at once or asking what the codebase answers. One ranked option set per *material* gap, recommended-first, is the opposite: it hands the human the decision cheaply. Reversible low-impact details you still auto-decide and log. |
|
|
20
20
|
|
|
21
21
|
## Red Flags
|
|
22
22
|
|
|
23
23
|
- About to start writing `spec.md` without a Placement & integration section.
|
|
24
|
-
- Spec has no measurable acceptance criteria
|
|
24
|
+
- Spec has no measurable acceptance criteria: "works as expected" is not measurable.
|
|
25
25
|
- A `[NEEDS CLARIFICATION]` marker remains on a blocking item.
|
|
26
26
|
- Design references were attached but never opened, saved, or indexed in `references.md`.
|
|
27
27
|
- The investigation didn't read the module/component that currently owns this area.
|
|
28
|
-
- A material decision landed in `spec.md` / `assumptions.md` that the human never picked from an option set
|
|
28
|
+
- A material decision landed in `spec.md` / `assumptions.md` that the human never picked from an option set: decided on the agent's confidence alone.
|
|
@@ -5,7 +5,7 @@ Each question still follows the protocol: one at a time, best guess attached.
|
|
|
5
5
|
|
|
6
6
|
## Vague ask? Map the decision tree first
|
|
7
7
|
For a fuzzy one-liner (`"design a contact page"`, `"add reporting"`), sketch the branches
|
|
8
|
-
the answer splits into, then resolve each **depth-first
|
|
8
|
+
the answer splits into, then resolve each **depth-first**: one branch to a decision before
|
|
9
9
|
opening the next:
|
|
10
10
|
|
|
11
11
|
```text
|
|
@@ -17,7 +17,7 @@ contact page
|
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
Once per interview you may **challenge the premise** instead of refining it
|
|
20
|
-
(*"is a form even the right answer, or a mailto / booking link?"*)
|
|
20
|
+
(*"is a form even the right answer, or a mailto / booking link?"*): a good reframe
|
|
21
21
|
collapses whole branches. Then use the domain ladders below for each open branch.
|
|
22
22
|
|
|
23
23
|
## Objective / problem
|
|
@@ -49,7 +49,7 @@ collapses whole branches. Then use the domain ladders below for each open branch
|
|
|
49
49
|
- "Auth/permission rules? Anything sensitive (PII, secrets, payments)?"
|
|
50
50
|
|
|
51
51
|
## Acceptance
|
|
52
|
-
- "How will we *prove* this works
|
|
52
|
+
- "How will we *prove* this works: what's the test or observation?"
|
|
53
53
|
- "What would make you reject the PR?"
|
|
54
54
|
|
|
55
55
|
## Anti-references (taste)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# Investigation
|
|
1
|
+
# Investigation: understand deeply before specifying
|
|
2
2
|
|
|
3
3
|
The spec is only as good as the investigation behind it. Goal: understand the
|
|
4
4
|
requirement **completely**, decide **where it correctly belongs**, name what it
|
|
5
|
-
**resolves**, and surface every **issue and gap
|
|
5
|
+
**resolves**, and surface every **issue and gap**, then drive the gaps to closure with
|
|
6
6
|
the user so the spec ships fully-covered and correctly-placed. A gap found here is cheap;
|
|
7
7
|
a gap found in `$rite-build` is a drift event.
|
|
8
8
|
|
|
@@ -10,47 +10,47 @@ Use a code-intelligence index if available (see
|
|
|
10
10
|
`../../devrites-lib/reference/standards/tooling.md`) for the structural parts below; it answers "where does this
|
|
11
11
|
live / what calls it / what would it break" far more cheaply and accurately than reading files.
|
|
12
12
|
With none present, fall back to Read/Grep/Glob. When a gap turns on a fact the codebase can't
|
|
13
|
-
answer
|
|
13
|
+
answer: a standard, a prevailing UX pattern, how comparable products solve it: **search the
|
|
14
14
|
web if available** (brave MCP preferred; `../../devrites-lib/reference/standards/tooling.md`) and cite the finding in
|
|
15
15
|
the option you present, so the human's pick is informed rather than guessed.
|
|
16
16
|
|
|
17
|
-
## Prior art
|
|
17
|
+
## Prior art: check our own archive first (cheap, silent when empty)
|
|
18
18
|
Before investigating outward, check whether we already shipped this. Grep the shipped
|
|
19
|
-
archive for the feature's key nouns
|
|
19
|
+
archive for the feature's key nouns: a hit means an extension, a conflict, or a re-spec of
|
|
20
20
|
solved work, and you inherit its decisions instead of re-deriving them:
|
|
21
21
|
```bash
|
|
22
22
|
devrites-engine archive-search "<key nouns>" 2>/dev/null \
|
|
23
23
|
|| grep -rliE '<noun1>|<noun2>' .devrites/archive/*/spec.md 2>/dev/null
|
|
24
24
|
```
|
|
25
25
|
- **Overlap found** → read the overlapping `spec.md` + its `decisions.md`, then put it to
|
|
26
|
-
the human as a ranked option
|
|
27
|
-
*genuinely distinct*
|
|
26
|
+
the human as a ranked option (*extend the shipped feature* · *this supersedes it* ·
|
|
27
|
+
*genuinely distinct*) same option-set contract as a gap.
|
|
28
28
|
- **No archive / no hit** → skip silently; never block a spec on absent history (the
|
|
29
29
|
brownfield / principles no-op discipline).
|
|
30
30
|
|
|
31
31
|
## Produce these findings (write into spec.md)
|
|
32
|
-
1. **The real ask
|
|
32
|
+
1. **The real ask:** restate the goal and the *problem behind the request* (people ask
|
|
33
33
|
for "a dashboard" when they want an answer to a question). Who hits it, how often,
|
|
34
34
|
what they do today instead.
|
|
35
|
-
2. **Current behavior
|
|
35
|
+
2. **Current behavior:** how it works today, or what's absent. Read the actual code and
|
|
36
36
|
flows; don't assume.
|
|
37
|
-
3. **Placement
|
|
37
|
+
3. **Placement, where it should live** *(so it's correctly placed to be used)*
|
|
38
38
|
- Which module / layer / file / component should own this; the right seam.
|
|
39
39
|
- Existing patterns/components/utilities to **extend or reuse** instead of duplicating.
|
|
40
40
|
- **Integration points**: callers and dependents, the data it reads/writes, the
|
|
41
|
-
APIs/events/contracts it touches (interface analysis
|
|
41
|
+
APIs/events/contracts it touches (interface analysis: how it interacts with the
|
|
42
42
|
rest of the system).
|
|
43
|
-
4. **What it resolves
|
|
43
|
+
4. **What it resolves:** the outcome/value and how we'll *observe* it's resolved (feeds
|
|
44
44
|
success + acceptance criteria).
|
|
45
|
-
5. **Issues
|
|
45
|
+
5. **Issues:** conflicts with existing code/UX/data/permissions, constraints, and
|
|
46
46
|
anything that makes the obvious approach wrong. Each issue gets a disposition.
|
|
47
|
-
6. **Gaps
|
|
47
|
+
6. **Gaps:** unknowns, ambiguities, undecided behavior, missing inputs. **Every gap
|
|
48
48
|
becomes a question** (next section).
|
|
49
|
-
7. **Blast radius
|
|
49
|
+
7. **Blast radius:** what this change could break (use the code graph's impact/callers).
|
|
50
50
|
Informs risks, test strategy, and rollback.
|
|
51
51
|
|
|
52
52
|
Also gather any **design/reference materials** the human supplies (screenshots, Figma,
|
|
53
|
-
links, video)
|
|
53
|
+
links, video): see [references-intake](references-intake.md). They're part of
|
|
54
54
|
understanding the requirement and become the target later phases verify against.
|
|
55
55
|
|
|
56
56
|
## Gap analysis (present → desired)
|
|
@@ -58,9 +58,9 @@ State the **present state** and the **desired state**; the delta is the work, an
|
|
|
58
58
|
**unknowns in the delta are the gaps**. Drive the count of open gaps toward zero before
|
|
59
59
|
handing off to `$rite-define`. Mark each gap inline with `[NEEDS CLARIFICATION: question]`.
|
|
60
60
|
|
|
61
|
-
## Turn gaps & issues into questions WITH options
|
|
61
|
+
## Turn gaps & issues into questions WITH options: you recommend, the human decides
|
|
62
62
|
For each material gap/issue (one that changes scope, placement, data model, UX, security,
|
|
63
|
-
migration risk, or acceptance), **put it to the human
|
|
63
|
+
migration risk, or acceptance), **put it to the human**: one gap at a time, as a ranked
|
|
64
64
|
option set with the recommended option **first and marked `(Recommended)`** plus an escape
|
|
65
65
|
hatch (via `AskUserQuestion` in HITL):
|
|
66
66
|
```
|
|
@@ -71,7 +71,7 @@ hatch (via `AskUserQuestion` in HITL):
|
|
|
71
71
|
4. Something else — I'll describe it
|
|
72
72
|
```
|
|
73
73
|
Investigate and recommend; don't settle a material decision yourself. Confidence in the answer
|
|
74
|
-
lowers the *cost* of the question (a one-pick confirm), not its owner
|
|
74
|
+
lowers the *cost* of the question (a one-pick confirm), not its owner: present the set anyway.
|
|
75
75
|
Only a **genuinely reversible, low-impact** gap is decided and recorded in `assumptions.md`
|
|
76
76
|
without asking. Full render contract + AFK behaviour: [`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md).
|
|
77
77
|
|
|
@@ -79,6 +79,6 @@ without asking. Full render contract + AFK behaviour: [`afk-hitl.md`](../../devr
|
|
|
79
79
|
- The shipped archive was checked for prior art; any overlap was surfaced to the human.
|
|
80
80
|
- The real problem, current behavior, placement, and what-it-resolves are written down.
|
|
81
81
|
- Every issue has a disposition; every material gap is resolved **by a human pick** from its
|
|
82
|
-
option set (or explicitly deferred as non-blocking)
|
|
83
|
-
- No blocking `[NEEDS CLARIFICATION]` remains
|
|
82
|
+
option set (or explicitly deferred as non-blocking), not settled silently on your confidence.
|
|
83
|
+
- No blocking `[NEEDS CLARIFICATION]` remains: the spec is **fully covered and correctly
|
|
84
84
|
placed**. This is the `$rite-spec` readiness gate before `$rite-define` plans it.
|
|
@@ -7,16 +7,16 @@ and completion. The shared HITL/AFK rendering contract lives in
|
|
|
7
7
|
|
|
8
8
|
This reference owns only the spec-specific coverage and recording rules below.
|
|
9
9
|
|
|
10
|
-
## Coverage gate
|
|
10
|
+
## Coverage gate: am I done asking?
|
|
11
11
|
Before declaring the interview complete, each dimension is **resolved** or **explicitly
|
|
12
|
-
deferred** (logged
|
|
13
|
-
- [ ] **Objective
|
|
14
|
-
- [ ] **Scope
|
|
15
|
-
- [ ] **Data model
|
|
16
|
-
- [ ] **UX / flow
|
|
17
|
-
- [ ] **Integration
|
|
18
|
-
- [ ] **Non-functional
|
|
19
|
-
- [ ] **Acceptance
|
|
12
|
+
deferred** (logged and non-blocking), never silently skipped:
|
|
13
|
+
- [ ] **Objective:** one-sentence success + the real problem behind it.
|
|
14
|
+
- [ ] **Scope**: what's in vs explicitly out for v1.
|
|
15
|
+
- [ ] **Data model**: core entities + relationships (or "none").
|
|
16
|
+
- [ ] **UX / flow**: happy path + empty / loading / error / permission states (or "no UI").
|
|
17
|
+
- [ ] **Integration**: external systems / APIs / contracts (or "none").
|
|
18
|
+
- [ ] **Non-functional**: auth, sensitive data, latency / scale (or "n/a").
|
|
19
|
+
- [ ] **Acceptance**: how each requirement is *proven* (test / observation).
|
|
20
20
|
|
|
21
21
|
A blocking gap in any dimension keeps the interview open; a deferred one goes to
|
|
22
22
|
`questions.md` and doesn't block. This feeds the `$rite-spec` readiness gate.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Reference intake
|
|
1
|
+
# Reference intake: design/style materials from the human
|
|
2
2
|
|
|
3
3
|
During spec, the human may supply screenshots, Figma, video, sites, or docs showing how the
|
|
4
4
|
feature should look or behave. When present, inspect them, save local copies, and classify
|
|
@@ -6,14 +6,14 @@ each as a fidelity **target**, hard **constraint**, or **inspiration** so a mood
|
|
|
6
6
|
cannot become a pixel-match contract. No references is valid; skip this intake.
|
|
7
7
|
|
|
8
8
|
## Gather + understand each reference
|
|
9
|
-
- **Images / screenshots / mockups
|
|
9
|
+
- **Images / screenshots / mockups:** open and **view** them (the Read tool renders
|
|
10
10
|
images). Describe what they show: layout, components, spacing, states, the target look.
|
|
11
|
-
- **Figma link
|
|
11
|
+
- **Figma link:** if a Figma integration is available, pull its design context (frames,
|
|
12
12
|
tokens, components); otherwise record the link and ask the human for an export/screenshot
|
|
13
13
|
so there's something concrete to match offline.
|
|
14
|
-
- **Links / reference sites / docs
|
|
14
|
+
- **Links / reference sites / docs:** fetch and read for the relevant intent (tone,
|
|
15
15
|
layout, interaction, quality bar). Capture *why* it's a reference, not just the URL.
|
|
16
|
-
- **Video
|
|
16
|
+
- **Video:** note what it demonstrates (the expected interaction/flow). Save it; later
|
|
17
17
|
phases can step through it as tooling allows.
|
|
18
18
|
|
|
19
19
|
## Save local assets into the workspace
|
|
@@ -45,14 +45,14 @@ composition, copy, or distinctive assets. Usage is normative too: only **may shi
|
|
|
45
45
|
enter product code.
|
|
46
46
|
|
|
47
47
|
## Feed them into the spec + the design brief
|
|
48
|
-
- Use references to sharpen `spec.md` (UI impact, success/acceptance
|
|
48
|
+
- Use references to sharpen `spec.md` (UI impact, success/acceptance: e.g. "matches R1").
|
|
49
49
|
- When the feature touches UI, these references are the primary input to **`devrites-ux-shape`**
|
|
50
50
|
(spec step 3a): they anchor the design direction and can seed the visual-direction probe
|
|
51
51
|
(a Figma link → pulled design context; reference sites → screenshots). The resulting
|
|
52
52
|
`design-brief.md` cites them by R-id **and role**.
|
|
53
|
-
- A reference can *resolve a gap* ("which layout?")
|
|
53
|
+
- A reference can *resolve a gap* ("which layout?"): record that in the gaps table.
|
|
54
54
|
- If a reference **conflicts** with the existing design system, that's an issue to raise
|
|
55
|
-
with the human (match the system, or adopt the reference
|
|
55
|
+
with the human (match the system, or adopt the reference: their call).
|
|
56
56
|
|
|
57
57
|
## Later phases use them (wire-through)
|
|
58
58
|
`devrites-frontend-craft` builds to the approved brief and its **target** references,
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
# Spec-quality checklists
|
|
1
|
+
# Spec-quality checklists: "unit tests for the English"
|
|
2
2
|
|
|
3
3
|
Before the spec hands off to `$rite-define`, test the **requirement prose itself** the way you'd
|
|
4
4
|
unit-test code: is each requirement complete, unambiguous, and measurable? These checklists
|
|
5
|
-
interrogate the *writing*, not the implementation
|
|
5
|
+
interrogate the *writing*, not the implementation. There is no code to run yet. A criterion like
|
|
6
6
|
"the banner is prominent" passes a human skim and fails here ("prominent" is unquantified).
|
|
7
7
|
Catching it now is a one-line spec edit; catching it at `$rite-prove` is a reslice.
|
|
8
8
|
|
|
9
|
-
**Not implementation tests.** A checklist item asks "is *export* defined for an empty dataset?"
|
|
9
|
+
**Not implementation tests.** A checklist item asks "is *export* defined for an empty dataset?":
|
|
10
10
|
it does **not** ask "does `exportCsv()` handle `[]`?". The first tests the spec; the second is
|
|
11
11
|
`$rite-vet`'s test-plan and `$rite-prove`'s job. These files never name a function, file, or library.
|
|
12
12
|
|
|
13
|
-
## Output
|
|
13
|
+
## Output: one file per requirement domain
|
|
14
14
|
|
|
15
|
-
Emit `.devrites/work/<slug>/checklists/<domain>.md`, one per domain the spec
|
|
15
|
+
Emit `.devrites/work/<slug>/checklists/<domain>.md`, one per domain the spec covers (skip
|
|
16
16
|
a domain the spec marks "none"). The domains mirror the interview taxonomy, so a gap here maps to a
|
|
17
17
|
`devrites-interview` dimension:
|
|
18
18
|
|
|
19
19
|
| Domain file | Tests the prose of |
|
|
20
20
|
|---|---|
|
|
21
|
-
| `functional.md` | Functional requirements + scenarios
|
|
22
|
-
| `data-model.md` | Key entities / data model
|
|
23
|
-
| `interaction.md` | API / UI impact + UX states
|
|
21
|
+
| `functional.md` | Functional requirements + scenarios: is each capability stated, bounded, testable? |
|
|
22
|
+
| `data-model.md` | Key entities / data model: shapes, fields, lifecycle, relationships (skip if "none"). |
|
|
23
|
+
| `interaction.md` | API / UI impact + UX states: every screen state and contract named (skip if no UI/API). |
|
|
24
24
|
| `non-functional.md` | Constraints, auth / data sensitivity, latency / scale / compatibility budgets. |
|
|
25
25
|
| `edge-cases.md` | Empty / boundary / invalid / concurrent / failure paths the requirements imply. |
|
|
26
26
|
|
|
27
|
-
## Each item
|
|
27
|
+
## Each item: a question, a verdict, the line it interrogates
|
|
28
28
|
|
|
29
29
|
```markdown
|
|
30
30
|
# Spec checklist: <domain> — <slug>
|
|
@@ -38,24 +38,24 @@ Scored: <iso> Verdict: pass | gaps (<n CRITICAL / n minor>)
|
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
Verdict is `pass` / `fail` / `n/a`. A `fail` carries a severity:
|
|
41
|
-
- **CRITICAL
|
|
41
|
+
- **CRITICAL:** the ambiguity would change the build or its acceptance: an unquantified
|
|
42
42
|
acceptance/success criterion, an incomplete enumeration in a requirement, an ambiguous data
|
|
43
43
|
shape, an undefined edge case on a stated flow, a contradictory pair of requirements.
|
|
44
|
-
- **minor
|
|
44
|
+
- **minor:** vague but non-load-bearing prose. Record it; it does not block.
|
|
45
45
|
|
|
46
|
-
## The question bank (seed
|
|
46
|
+
## The question bank (seed: extend per domain)
|
|
47
47
|
|
|
48
48
|
Each question tests one of the failure modes of requirement prose:
|
|
49
|
-
- **Measurability
|
|
49
|
+
- **Measurability:** every "good / fast / prominent / simple / secure" carries a number, a budget,
|
|
50
50
|
or a named reference. No adjective stands in for a threshold.
|
|
51
|
-
- **Completeness
|
|
51
|
+
- **Completeness:** every enumeration is closed (no "etc."); every requirement with a precondition
|
|
52
52
|
states the failure branch; every entity names its required fields + lifecycle; every stated flow
|
|
53
53
|
names its empty / error / boundary behaviour.
|
|
54
|
-
- **Clarity
|
|
54
|
+
- **Clarity:** one entity, one name (no `user`/`customer`/`account` drift); no requirement two
|
|
55
55
|
readers would implement differently; no "should" where "MUST" is meant.
|
|
56
|
-
- **Testability
|
|
56
|
+
- **Testability:** each acceptance criterion is binary and names (or clearly implies) its evidence.
|
|
57
57
|
A criterion only provable by reading code is a fail.
|
|
58
|
-
- **Consistency
|
|
58
|
+
- **Consistency:** no requirement contradicts another, the data model, or a non-goal.
|
|
59
59
|
|
|
60
60
|
## How it feeds the readiness gate
|
|
61
61
|
|
|
@@ -63,11 +63,11 @@ The spec **Readiness gate** (bottom of [`spec-template.md`](spec-template.md)) f
|
|
|
63
63
|
emitted `checklists/<domain>.md` must reach `Verdict: pass` (zero CRITICAL fails) before the gate
|
|
64
64
|
passes. Minor fails are logged, not blocking. A single open CRITICAL keeps the spec `Status: Draft`.
|
|
65
65
|
`$rite-define` reads the checklists at its step 0 and **hard-blocks while any CRITICAL is unchecked**;
|
|
66
|
-
a spec that skips the checklists is treated as not-yet-scored
|
|
66
|
+
a spec that skips the checklists is treated as not-yet-scored: define stops and routes back here.
|
|
67
67
|
|
|
68
68
|
## Discipline
|
|
69
69
|
- Score honestly. A checklist you pass by softening the *question* instead of the *spec* is the
|
|
70
|
-
spec-quality version of weakening a test to go green
|
|
70
|
+
spec-quality version of weakening a test to go green. It defeats the gate.
|
|
71
71
|
- Don't pad. Five real questions that find one CRITICAL beat thirty rubber-stamped rows.
|
|
72
72
|
- These are *English* tests. The moment a question needs a function name to answer, it belongs in
|
|
73
73
|
`$rite-vet`'s `test-plan.md`, not here.
|