devrites 3.0.5 → 3.0.7
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 +21 -0
- package/README.md +282 -533
- package/SECURITY.md +26 -26
- package/docs/adr/README.md +7 -9
- package/docs/agents/domain.md +5 -5
- package/docs/agents/issue-driven-rites.md +1 -1
- package/docs/agents/issue-tracker.md +1 -1
- package/docs/agents/triage-labels.md +2 -2
- package/docs/architecture.md +45 -45
- package/docs/cli.md +11 -11
- package/docs/command-map.md +33 -33
- package/docs/engine/agent-contract.md +6 -6
- package/docs/engine/commands.md +66 -65
- package/docs/engine/state-schema.md +15 -15
- package/docs/engine/workspace-schema.md +7 -7
- package/docs/extensions.md +17 -17
- package/docs/flow.md +17 -17
- package/docs/harness-compliance.md +2 -2
- package/docs/orchestration.md +21 -20
- package/docs/release.md +22 -5
- package/docs/research/go-authoritative-workflow-schema-and-quality-2026-07-20.md +3 -3
- package/docs/skills.md +77 -52
- package/docs/usage.md +33 -32
- 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 +95 -24
- package/engine/internal/install/install_test.go +111 -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 +5 -5
- 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/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 +18 -18
- 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/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 +10 -10
- 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 +7 -7
- package/pack/.claude/skills/rite/reference/menu.md +6 -6
- package/pack/.claude/skills/rite-adopt/SKILL.md +15 -15
- 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 +18 -18
- 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/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 +10 -10
- 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 +7 -7
- package/pack/generated/claude/skills/rite/reference/menu.md +6 -6
- package/pack/generated/claude/skills/rite-adopt/SKILL.md +15 -15
- 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 +21 -21
- 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/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 +10 -10
- 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 +10 -10
- package/pack/generated/codex/skills/rite/reference/menu.md +6 -6
- package/pack/generated/codex/skills/rite-adopt/SKILL.md +18 -18
- 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 +7 -8
- 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
|
@@ -12,16 +12,16 @@ This is the Codex mirror of a DevRites skill. In Codex:
|
|
|
12
12
|
|
|
13
13
|
- 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.
|
|
14
14
|
- Use the installed `devrites-engine` binary as the canonical runtime helper surface for orientation, gates, and state mutation.
|
|
15
|
-
- 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
|
|
16
|
-
- 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
|
|
15
|
+
- 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.
|
|
16
|
+
- 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.
|
|
17
17
|
- Codex project hooks are installed in `.codex/hooks.json`. Review and trust them with `/hooks` before relying on hook enforcement.
|
|
18
|
-
- 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
|
|
18
|
+
- 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.
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
# $rite-learn
|
|
21
|
+
# $rite-learn: the cross-feature learning loop
|
|
22
22
|
|
|
23
23
|
Recurring corrections, dismissed review findings, timeline decisions, and health dips are durable
|
|
24
|
-
signal. **Capture is automatic
|
|
24
|
+
signal. **Capture is automatic**: `$rite-seal` appends lessons to `.devrites/learnings.md` on every
|
|
25
25
|
GO (step 9a), while the engine can keep `.devrites/timeline.jsonl`,
|
|
26
26
|
`.devrites/health-history.jsonl`, and per-feature review fingerprints as supporting evidence. The
|
|
27
27
|
review skills load the learning ledger **before** a fan-out, so a dismissed-finding class stops
|
|
@@ -29,22 +29,22 @@ being re-flagged without anyone running a command. The system learns as it ships
|
|
|
29
29
|
|
|
30
30
|
`$rite-learn` is the periodic **review + promote** pass on that auto-populated ledger: cluster the
|
|
31
31
|
signal across features and decide which recurring lessons graduate into a project rule. **Propose,
|
|
32
|
-
never impose
|
|
32
|
+
never impose**: promotion is the human's call, which is why it stays a deliberate command rather
|
|
33
33
|
than firing on its own.
|
|
34
34
|
|
|
35
35
|
Read-mostly. It reads the auto-populated ledger + the archive; it writes only `.devrites/learnings.md`
|
|
36
|
-
(consolidation, via `devrites-engine learnings`) and drafts proposed rule/ledger edits for the user to confirm
|
|
36
|
+
(consolidation, via `devrites-engine learnings`) and drafts proposed rule/ledger edits for the user to confirm:
|
|
37
37
|
it never edits source or rule files on its own.
|
|
38
38
|
|
|
39
39
|
## Modes
|
|
40
40
|
|
|
41
|
-
- `$rite-learn` or `$rite-learn --mine
|
|
42
|
-
- `$rite-learn "<lesson>"
|
|
41
|
+
- `$rite-learn` or `$rite-learn --mine`: **mine + propose** (the default).
|
|
42
|
+
- `$rite-learn "<lesson>"`: **record one lesson** directly to the ledger and stop.
|
|
43
43
|
|
|
44
44
|
## Workflow (mine + propose)
|
|
45
45
|
|
|
46
46
|
1. **Gather the signal.** Start from the **auto-populated ledger** `.devrites/learnings.md` (seal
|
|
47
|
-
appends to it on every GO
|
|
47
|
+
appends to it on every GO: step 9a), then run `devrites-engine learnings mine` over the archive (it clusters
|
|
48
48
|
repeated finding / decision / drift phrases across shipped
|
|
49
49
|
features) to surface cross-feature patterns the per-feature entries don't show on their own:
|
|
50
50
|
```bash
|
|
@@ -54,38 +54,38 @@ it never edits source or rule files on its own.
|
|
|
54
54
|
`.devrites/work/*/review-fingerprints.jsonl` as supporting evidence when they exist; do not
|
|
55
55
|
promote from those traces without the same repeated-feature threshold.
|
|
56
56
|
2. **Cluster + name.** Group the recurring corrections into candidate lessons. A candidate needs
|
|
57
|
-
**≥2 occurrences across distinct features
|
|
57
|
+
**≥2 occurrences across distinct features**: one-offs are noise, not a pattern. Name the
|
|
58
58
|
pattern in one specific sentence (the specificity rule from `prose-style.md` applies: a lesson
|
|
59
59
|
you could swap onto any project says nothing).
|
|
60
60
|
**Completion:** every candidate cites two distinct features, except a single deliberate
|
|
61
61
|
rejected direction with its durable reason.
|
|
62
62
|
3. **Classify each candidate** into its durable home:
|
|
63
|
-
- **project rule
|
|
64
|
-
- **project principle
|
|
63
|
+
- **project rule:** a craft/standard that belongs in a `.agents/skills/devrites-lib/reference/standards/*` file or `CLAUDE.md`.
|
|
64
|
+
- **project principle:** a recurring correction that is really a *non-negotiable invariant*
|
|
65
65
|
(not just an idiom or a craft standard): graduate it to `.devrites/principles.md`
|
|
66
|
-
([`principles.md`](../devrites-lib/reference/standards/principles.md)). This is the **trusted, gating** layer
|
|
67
|
-
stakes than a rule
|
|
66
|
+
([`principles.md`](../devrites-lib/reference/standards/principles.md)). This is the **trusted, gating** layer (higher
|
|
67
|
+
stakes than a rule) so `$rite-learn` **drafts** the principle + a dated Governance entry for
|
|
68
68
|
the human to confirm; it never writes a principle silently.
|
|
69
|
-
- **conventions-ledger entry
|
|
70
|
-
- **dismissed-finding class
|
|
69
|
+
- **conventions-ledger entry:** a proven project idiom for `.devrites/conventions.md`.
|
|
70
|
+
- **dismissed-finding class:** a pattern reviewers keep flagging that is *intentional here*;
|
|
71
71
|
recording it stops the recurring false positive (`learnings.md`, loaded pre-fan-out).
|
|
72
|
-
- **rejected direction
|
|
72
|
+
- **rejected direction:** an approach or product direction weighed and ruled out with a
|
|
73
73
|
reason that outlives one feature; recording it (tag `rejected-direction`) stops ideation
|
|
74
74
|
skills (`$rite-pressure-test`, `$rite-pov`) from re-proposing it. Exempt from the
|
|
75
|
-
≥2-occurrence rule
|
|
76
|
-
- **drop
|
|
75
|
+
≥2-occurrence rule: one deliberate rejection is the whole pattern.
|
|
76
|
+
- **drop:** not durable; let it go.
|
|
77
77
|
4. **Propose, don't impose.** Present the candidates with their evidence (which features, how many
|
|
78
|
-
times, the proposed home) via `AskUserQuestion
|
|
78
|
+
times, the proposed home) via `AskUserQuestion`: the human picks which to promote. Never
|
|
79
79
|
promote a lesson to a rule silently; an unproven "lesson" hardened into a rule is its own slop.
|
|
80
80
|
**Completion:** every candidate is explicitly accepted, rejected, or deferred by the human.
|
|
81
81
|
5. **Record the accepted.** For each the user accepts, append it with `devrites-engine learnings add <slug>
|
|
82
82
|
"<lesson>" <tag>` (`tag` ∈ `rule | convention | dismiss`). If the user approves a **rule**,
|
|
83
83
|
**principle**, or **ledger** promotion, draft the exact edit and let the user confirm it through
|
|
84
|
-
the normal flow
|
|
84
|
+
the normal flow: `$rite-learn` writes the ledger, not the rule or principle files. A
|
|
85
85
|
**principle** promotion is the highest-stakes of these: draft the `.devrites/principles.md` entry
|
|
86
|
-
**plus its dated Governance line**, and let the human confirm before it lands
|
|
86
|
+
**plus its dated Governance line**, and let the human confirm before it lands: a principle is a
|
|
87
87
|
gate, so it is amended deliberately, never auto-written. **Amendment ripple:** a confirmed
|
|
88
|
-
add/change/retire of a principle has a blast radius
|
|
88
|
+
add/change/retire of a principle has a blast radius: grep its `P#` (and its key nouns) across
|
|
89
89
|
`.devrites/` and every open `.devrites/work/*/` workspace, and append to the same dated
|
|
90
90
|
Governance entry one line per referencing artifact: *still-aligned* or *needs-follow-up (what)*.
|
|
91
91
|
An open plan that bakes in the now-retired or now-tightened invariant is a `needs-follow-up`
|
|
@@ -99,11 +99,11 @@ The review skills (`$rite-review`, `$rite-seal`) read `.devrites/learnings.md` b
|
|
|
99
99
|
out: a **dismissed-finding class** suppresses the recurring false positive; a **proven
|
|
100
100
|
convention** raises the bar. The ideation skills (`$rite-pressure-test`, `$rite-pov`) read the
|
|
101
101
|
**rejected-direction** entries before proposing, so a ruled-out direction returns only with new
|
|
102
|
-
evidence against its recorded why. The ledger is an **untrusted prior
|
|
102
|
+
evidence against its recorded why. The ledger is an **untrusted prior**: a fresh observation of the
|
|
103
103
|
live code always overrides a ledger entry (see `.agents/skills/devrites-lib/reference/standards/security.md`). Confidence in a
|
|
104
104
|
recorded lesson never raises its authority.
|
|
105
105
|
|
|
106
|
-
A **project principle** (`.devrites/principles.md`) is the opposite layer
|
|
106
|
+
A **project principle** (`.devrites/principles.md`) is the opposite layer: prescriptive,
|
|
107
107
|
trusted, and **gating**. Promoting a lesson there is a deliberate amendment, not a prior the next
|
|
108
108
|
fan-out can override: a violation becomes a blocking finding, not a suppressed false positive.
|
|
109
109
|
That asymmetry is why principle promotion is human-confirmed and dated, never auto-written.
|
|
@@ -11,13 +11,13 @@ 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-plan
|
|
20
|
+
# $rite-plan: (re)plan an active feature
|
|
21
21
|
|
|
22
22
|
Reshape the plan when reality and the plan disagree. **Read the active workspace
|
|
23
23
|
first.** If `.devrites/ACTIVE` is empty or its workspace is missing, stop and tell the
|
|
@@ -29,17 +29,17 @@ editing source code.
|
|
|
29
29
|
Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD criteria.
|
|
30
30
|
|
|
31
31
|
## Operating rules
|
|
32
|
-
- Spec is living, not sacred
|
|
32
|
+
- Spec is living, not sacred, but never plan around a known-wrong assumption silently.
|
|
33
33
|
- If a change alters product behavior, scope, architecture, data model, UX, security,
|
|
34
34
|
or migration risk → **ask the user first** (use the Spec Drift Guard question format).
|
|
35
35
|
- Keep each slice small enough for one focused build → prove cycle.
|
|
36
|
-
- **Slice count is derived, never dictated
|
|
36
|
+
- **Slice count is derived, never dictated:** reslice when a slice fails the sizing rule
|
|
37
37
|
(multiple "and"s, can't build+prove in one cycle), not to hit a user-named tally. A
|
|
38
38
|
requested count is a hint at most; slice logically and explain if it differs. See
|
|
39
39
|
[`reference/slicing.md`](reference/slicing.md) ("How many slices?").
|
|
40
40
|
- **Size by complexity, order by dependency.** A slice carries a `Complexity: N/5` score (from
|
|
41
41
|
`$rite-define`); a slice scoring **>3** is a reslice trigger unless its inline reason justifies
|
|
42
|
-
the irreducible complexity. Honor each slice's `depends_on
|
|
42
|
+
the irreducible complexity. Honor each slice's `depends_on:`: the next *buildable* slice is the
|
|
43
43
|
lowest pending one whose dependencies are all built (keeps one-slice-at-a-time correct, not parallel).
|
|
44
44
|
|
|
45
45
|
## Workflow
|
|
@@ -47,35 +47,35 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
|
|
|
47
47
|
Then run `devrites-engine preamble` for deterministic workspace orientation.
|
|
48
48
|
1. Read `spec.md`, `plan.md`, `tasks.md`, `state.md`, `drift.md`, and the current
|
|
49
49
|
`git diff` (if a repo). Read `decisions.md` and `assumptions.md`. If a code-intelligence
|
|
50
|
-
index is available
|
|
50
|
+
index is available: `codebase-memory-mcp` first, cross-checked with `codegraph`
|
|
51
51
|
(`.codegraph/` / `codegraph_*` tools) + `graphify` (`graphify-out/`), else standard methods
|
|
52
|
-
(LSP / `Read`/`Grep`/`Glob`); see `.agents/skills/devrites-lib/reference/standards/tooling.md
|
|
52
|
+
(LSP / `Read`/`Grep`/`Glob`); see `.agents/skills/devrites-lib/reference/standards/tooling.md`:
|
|
53
53
|
prefer it for structural questions (what calls X, what would
|
|
54
54
|
changing Y break) over reading whole files, to keep planning context lean. For an external
|
|
55
55
|
dependency's current API surface, consult context7 if available.
|
|
56
56
|
2. **Pick the mode** (`$ARGUMENTS` or infer):
|
|
57
|
-
- **decompose
|
|
58
|
-
- **reslice
|
|
59
|
-
- **repair
|
|
60
|
-
- **reorder
|
|
61
|
-
- **split
|
|
62
|
-
- **unblock
|
|
63
|
-
- **course-correct
|
|
57
|
+
- **decompose:** first/again break the feature into vertical slices.
|
|
58
|
+
- **reslice:** a slice is too large; split into thinner end-to-end slices.
|
|
59
|
+
- **repair:** a Spec Drift Guard event; fold the resolution into plan + tasks.
|
|
60
|
+
- **reorder:** fix the dependency order.
|
|
61
|
+
- **split:** separate backend/frontend contracts (see `devrites-api-interface`).
|
|
62
|
+
- **unblock:** a verification failed; re-route around the blocker.
|
|
63
|
+
- **course-correct:** a deliberate mid-build *pivot* (the user changed their mind), distinct
|
|
64
64
|
from accidental drift: classify the change, assess its impact across the remaining slices,
|
|
65
65
|
decide rollback vs forward-fix, and update `spec.md` + `plan.md` + `tasks.md` + `decisions.md`
|
|
66
66
|
atomically. An acceptance/behavior change still goes through the user first. When the plan
|
|
67
67
|
names an `MVP cut`, offer it as the retreat option: falling back to the cut is a pre-agreed
|
|
68
68
|
scope, not a new negotiation.
|
|
69
|
-
- **revise
|
|
69
|
+
- **revise:** apply a requested planning-artifact revision and reconcile existing artifacts in
|
|
70
70
|
any direction; propose the file edit set first, confirm each file before writing, and **never
|
|
71
|
-
edit source code**. **Gate first
|
|
71
|
+
edit source code**. **Gate first: revise or new?** Same intent? >50% of existing scope
|
|
72
72
|
survives? original *not* completable without this? Two "no"s → new work: recommend
|
|
73
73
|
sealing/shipping the current workspace (MVP cut if named) then `$rite-spec` for the new
|
|
74
74
|
intent, and stop. Revise preserves context; a new workspace provides clarity.
|
|
75
75
|
See [replan-and-repair](reference/replan-and-repair.md) for each mode's steps.
|
|
76
|
-
3. Reason about dependencies
|
|
76
|
+
3. Reason about dependencies: [dependency-graph](reference/dependency-graph.md).
|
|
77
77
|
**Completion:** the slice graph is cycle-free and every dependency names an existing slice.
|
|
78
|
-
4. Re-slice using vertical-slice rules
|
|
78
|
+
4. Re-slice using vertical-slice rules: [slicing](reference/slicing.md) and
|
|
79
79
|
[task-breakdown](reference/task-breakdown.md). Prefer thin, shippable, verifiable.
|
|
80
80
|
**Completion:** every slice is independently shippable/provable or carries an irreducibility reason.
|
|
81
81
|
5. Update `plan.md`, `tasks.md`, `state.md`, and append rationale to `decisions.md`.
|
|
@@ -83,17 +83,17 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
|
|
|
83
83
|
6. If product behavior/acceptance criteria change, confirm with the user before writing.
|
|
84
84
|
**Completion:** the change is classified, and every behavior/acceptance change has explicit
|
|
85
85
|
confirmation recorded before the artifacts are updated.
|
|
86
|
-
7. **Done when
|
|
86
|
+
7. **Done when:** every slice is sized (builds + proves in one cycle; no slice scoring >3
|
|
87
87
|
left unjustified), the dependency order is acyclic, every `drift.md` entry you stopped for
|
|
88
88
|
is marked resolved, revised artifacts agree with each other, no source files changed in
|
|
89
89
|
`revise` mode, and behavior-change-vs-not is confirmed (`no`, or asked + answered).
|
|
90
|
-
If any check fails, loop back
|
|
90
|
+
If any check fails, loop back: don't hand off a half-reshaped plan.
|
|
91
91
|
|
|
92
|
-
> **Mid-flight discipline.** When tempted to change product behavior without asking, absorb drift silently, or skip the user
|
|
92
|
+
> **Mid-flight discipline.** When tempted to change product behavior without asking, absorb drift silently, or skip the user: see [`anti-patterns`](reference/anti-patterns.md). Load it the moment you reach for the excuse.
|
|
93
93
|
|
|
94
94
|
## Output
|
|
95
95
|
|
|
96
|
-
**Progress first
|
|
96
|
+
**Progress first**: run `devrites-engine progress`, then use the shared completion reply contract
|
|
97
97
|
([`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md)).
|
|
98
98
|
Default success shape:
|
|
99
99
|
```
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# rite-plan
|
|
1
|
+
# rite-plan: anti-patterns
|
|
2
2
|
|
|
3
3
|
Load this when standing a non-trivial re-plan decision, or when the agent
|
|
4
4
|
feels reluctance toward asking the user before a behavior change.
|
|
@@ -9,7 +9,7 @@ Pack-wide rationalizations + red flags: see [standards/anti-patterns.md](../../d
|
|
|
9
9
|
|
|
10
10
|
| Excuse | Rebuttal |
|
|
11
11
|
|---|---|
|
|
12
|
-
| "User didn't ask for a re-plan." | A Spec Drift Guard event *is* a re-plan trigger
|
|
12
|
+
| "User didn't ask for a re-plan." | A Spec Drift Guard event *is* a re-plan trigger: ask is courtesy, the route is automatic. |
|
|
13
13
|
| "I can fix the slice mid-build, no need to update tasks." | `tasks.md` is the contract `$rite-build` reads. A fix that isn't there isn't visible to the next phase. |
|
|
14
14
|
| "Reordering slices is cosmetic." | Dependency order controls risk discovery; risk-first wins because it surfaces blockers early. |
|
|
15
15
|
| "This drift is small enough to absorb silently." | Silent drift = unrecorded decision = future "why does this work?" debugging session. |
|
|
@@ -20,5 +20,5 @@ Pack-wide rationalizations + red flags: see [standards/anti-patterns.md](../../d
|
|
|
20
20
|
- About to change product behavior, acceptance, or scope without asking the user.
|
|
21
21
|
- `drift.md` entry unresolved while planning the next slice.
|
|
22
22
|
- A "mode" invented that isn't one of `decompose / reslice / repair / reorder / split / unblock`.
|
|
23
|
-
- Slices reordered without updating dependency notes
|
|
23
|
+
- Slices reordered without updating dependency notes: order changed, rationale didn't.
|
|
24
24
|
- Repairing a drift event by silently widening the spec rather than narrowing the plan.
|
|
@@ -16,7 +16,7 @@ SLICE-006 (config) -> independent
|
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
## Within a tier: risk-first
|
|
19
|
-
Among slices that are equally unblocked, do the **riskiest** first
|
|
19
|
+
Among slices that are equally unblocked, do the **riskiest** first: the one most
|
|
20
20
|
likely to invalidate the plan (new integration, uncertain library behavior, migration).
|
|
21
21
|
Finding drift early is cheap; finding it at seal time is not.
|
|
22
22
|
|
|
@@ -8,7 +8,7 @@ First (or fresh) breakdown into vertical slices. Use `task-breakdown.md` +
|
|
|
8
8
|
|
|
9
9
|
## reslice
|
|
10
10
|
A slice proved too large (couldn't build+prove in one cycle, or its goal has multiple
|
|
11
|
-
"and"s). Split into thinner end-to-end slices, preserving acceptance coverage
|
|
11
|
+
"and"s). Split into thinner end-to-end slices, preserving acceptance coverage: split
|
|
12
12
|
**by the sizing rule, not to a target count**. Update `tasks.md`; renumber; fix
|
|
13
13
|
dependency edges.
|
|
14
14
|
|
|
@@ -20,7 +20,7 @@ A drift event stopped the build. Steps:
|
|
|
20
20
|
reality. Adjust acceptance criteria if they were wrong.
|
|
21
21
|
4. Mark the `drift.md` entry **resolved** with the resolution + date.
|
|
22
22
|
5. Resume at the corrected slice.
|
|
23
|
-
Never repair by quietly deleting the inconvenient requirement
|
|
23
|
+
Never repair by quietly deleting the inconvenient requirement, if behavior changes,
|
|
24
24
|
that was a user question.
|
|
25
25
|
|
|
26
26
|
## reorder
|
|
@@ -29,7 +29,7 @@ re-sort risk-first within tiers, update `plan.md`'s implementation order.
|
|
|
29
29
|
|
|
30
30
|
## split (backend/frontend contract)
|
|
31
31
|
A slice couples two sides too tightly. Define the contract first (shape, status codes,
|
|
32
|
-
errors
|
|
32
|
+
errors: `devrites-api-interface`), then split into a backend slice (can land with a
|
|
33
33
|
stub consumer) and a frontend slice (can land against a mock/real contract).
|
|
34
34
|
|
|
35
35
|
## unblock
|
|
@@ -25,41 +25,41 @@ A slice is the right size when it:
|
|
|
25
25
|
|
|
26
26
|
Too big if: it touches many unrelated files, or you can't name its single observable outcome.
|
|
27
27
|
**The "and" test:** if the slice's *name* needs an "and" ("create **and** list tasks"), it's two
|
|
28
|
-
slices
|
|
28
|
+
slices: split on the "and". → reslice.
|
|
29
29
|
|
|
30
30
|
Sizing isn't cosmetic. An agent builds a small or medium slice reliably in one pass but drifts on
|
|
31
31
|
an outsized one, which is why a slice over `Complexity: 3/5` reslices (the `tasks.md` slice format
|
|
32
32
|
in [`rite-define`](../../rite-define/SKILL.md)). Push every slice to the smallest cut that still
|
|
33
33
|
stands alone end-to-end.
|
|
34
34
|
|
|
35
|
-
## How many slices
|
|
35
|
+
## How many slices?: derive, don't dictate
|
|
36
36
|
The slice **count is an output, not an input.** It falls out of the work: one slice per
|
|
37
37
|
independently-shippable vertical increment that satisfies one (or a tight group of)
|
|
38
|
-
acceptance criteria and passes the sizing test above. A 2-criterion feature is 1
|
|
38
|
+
acceptance criteria and passes the sizing test above. A 2-criterion feature is 1-2 slices;
|
|
39
39
|
a 12-criterion feature is however many thin end-to-end cuts those 12 need.
|
|
40
40
|
|
|
41
41
|
- **Never slice to a target number.** Don't pad a small feature into "5 slices" or
|
|
42
42
|
compress a large one into "3" because a figure was named.
|
|
43
43
|
- **A user-supplied count is a hint at most.** If the user says "do it in 4", slice the
|
|
44
44
|
work logically first; if your honest decomposition differs, present the logical count
|
|
45
|
-
and *why*, then let them redirect
|
|
45
|
+
and *why*, then let them redirect: don't silently force their number.
|
|
46
46
|
- **Re-size by the rule, not the tally** (`$rite-plan reslice`): split a slice because it
|
|
47
47
|
failed the sizing test, not to hit a count.
|
|
48
48
|
|
|
49
|
-
Not to be confused with `.devrites/AFK` `max_slices
|
|
49
|
+
Not to be confused with `.devrites/AFK` `max_slices`. That's an AFK *iteration budget*
|
|
50
50
|
capping how many slices the unattended loop builds before it stops, **not** the plan's
|
|
51
51
|
decomposition. The plan always holds exactly the slices the work needs; `max_slices` only
|
|
52
52
|
limits how many run unattended.
|
|
53
53
|
|
|
54
54
|
## First slice
|
|
55
|
-
Make slice 1 the **thinnest useful end-to-end path
|
|
55
|
+
Make slice 1 the **thinnest useful end-to-end path**. It flushes out integration and
|
|
56
56
|
convention surprises early, while changes are cheap.
|
|
57
57
|
|
|
58
|
-
**Risk-first exception.** When the biggest risk is a technical *unknown
|
|
59
|
-
even do X?", "can we hit the latency target?"
|
|
58
|
+
**Risk-first exception.** When the biggest risk is a technical *unknown*: "will this library
|
|
59
|
+
even do X?", "can we hit the latency target?": let slice 1 (or a throwaway spike ahead of it)
|
|
60
60
|
prove that unknown, even if it isn't the thinnest user-facing path. Fail the risky bet first,
|
|
61
61
|
while pivoting is still cheap.
|
|
62
62
|
|
|
63
63
|
## Slice independence
|
|
64
64
|
Order by dependency, but minimize coupling. A slice that needs three other slices first
|
|
65
|
-
is a smell
|
|
65
|
+
is a smell: look for a thinner cut that stands alone.
|
|
@@ -24,10 +24,10 @@ This reference owns decomposition; the shared schema owns field names and meanin
|
|
|
24
24
|
## Keep it honest
|
|
25
25
|
- **Interfaces prevent cross-slice drift.** A slice-wright sees only its own contract; the
|
|
26
26
|
`Interfaces` line is how it learns the names and types neighboring slices use. A function
|
|
27
|
-
called `clearLayers()` in slice 3 and `clearFullLayers()` in slice 7 is a planning bug
|
|
27
|
+
called `clearLayers()` in slice 3 and `clearFullLayers()` in slice 7 is a planning bug:
|
|
28
28
|
name shared symbols once, here.
|
|
29
|
-
- Don't pre-write code in the task
|
|
29
|
+
- Don't pre-write code in the task: describe the outcome, not the implementation.
|
|
30
30
|
- Don't bundle "while we're here" work into a slice. That's scope creep; log it as a
|
|
31
31
|
follow-up instead.
|
|
32
|
-
- Don't slice to a target number
|
|
32
|
+
- Don't slice to a target number: the count comes from the capabilities + the sizing
|
|
33
33
|
rule (`slicing.md`), not a figure anyone named.
|
|
@@ -11,18 +11,18 @@ 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-polish
|
|
20
|
+
# $rite-polish: finish before review
|
|
21
21
|
|
|
22
22
|
The "finish" phase. **Always** code-polishes; **and** runs UI normalize +
|
|
23
23
|
design polish when the feature touches UI. Self-review the work to ship
|
|
24
24
|
quality *before* handing it to `$rite-review`. The two-phase split (code,
|
|
25
|
-
UI) lives in `reference/code.md` and `reference/ui.md
|
|
25
|
+
UI) lives in `reference/code.md` and `reference/ui.md`: read each on demand,
|
|
26
26
|
don't load both up front.
|
|
27
27
|
|
|
28
28
|
## Operating rules
|
|
@@ -30,7 +30,7 @@ don't load both up front.
|
|
|
30
30
|
- **Functionality complete first.** Polish runs after `$rite-prove` (full
|
|
31
31
|
feature proven).
|
|
32
32
|
- Feature scope only.
|
|
33
|
-
- For UI: **NEVER polish without normalizing first
|
|
33
|
+
- For UI: **NEVER polish without normalizing first**: decoration on drift is
|
|
34
34
|
banned.
|
|
35
35
|
|
|
36
36
|
## Orchestration
|
|
@@ -42,7 +42,7 @@ don't load both up front.
|
|
|
42
42
|
Then run `devrites-engine preamble` for deterministic workspace orientation.
|
|
43
43
|
1. **Read** `state.md`, `touched-files.md`, and the `git diff` for the active
|
|
44
44
|
workspace (or `$ARGUMENTS` if a target was given).
|
|
45
|
-
2. **Detect UI scope
|
|
45
|
+
2. **Detect UI scope:** UI is touched if the diff or `touched-files.md`
|
|
46
46
|
contains any of: `.tsx`, `.jsx`, `.vue`, `.svelte`, `.html`, `.css`,
|
|
47
47
|
`.scss`, `.sass`, `.less`, `.styl`, component dirs (`components/`,
|
|
48
48
|
`pages/`, `routes/`, `app/`, `views/`, `screens/`), Storybook stories,
|
|
@@ -55,29 +55,29 @@ don't load both up front.
|
|
|
55
55
|
`design-brief.md` if present (the UX/UI contract `devrites-ux-shape` shaped at spec and
|
|
56
56
|
`devrites-frontend-craft` refined while building) so the polish honors the agreed
|
|
57
57
|
direction + states. **Read the `## Visual Verdict` table in `browser-evidence.md` if present:
|
|
58
|
-
its `FAIL` and `PARTIAL` rows are the normalize/quality-bar worklist
|
|
58
|
+
its `FAIL` and `PARTIAL` rows are the normalize/quality-bar worklist**: fix the root cause of
|
|
59
59
|
each (a missing state, an off-token CTA, an anti-slop hit), don't decorate around it. Then run
|
|
60
60
|
**Phase 3 (normalize)** → **Phase 4 (UI polish)**. Honor argument modes:
|
|
61
|
-
- `bolder | quieter | distill | harden
|
|
61
|
+
- `bolder | quieter | distill | harden`: passed to Phase 4 as the
|
|
62
62
|
emphasis dial.
|
|
63
|
-
- `normalize-only
|
|
64
|
-
5. **Re-verify after any code edit
|
|
63
|
+
- `normalize-only`: run Phase 3 and stop (no Phase 4).
|
|
64
|
+
5. **Re-verify after any code edit:** polish edits code, so the proof from
|
|
65
65
|
`$rite-prove` no longer post-dates it. Run the relevant fast checks (the
|
|
66
66
|
targeted tests for the touched files + typecheck/lint; browser re-check if UI
|
|
67
67
|
changed) and record a **`Re-verification:`** line in `polish-report.md`. A
|
|
68
68
|
polish that changed code without a green re-verification isn't finished.
|
|
69
|
-
6. **Aggregate output
|
|
69
|
+
6. **Aggregate output:** both phases append to the single `polish-report.md`.
|
|
70
70
|
|
|
71
71
|
## Refinement modes
|
|
72
72
|
|
|
73
73
|
When the user (or your own assessment) names a direction the UI should move,
|
|
74
|
-
pass it through to Phase 4. Modes don't bypass normalize + quality-bar work
|
|
74
|
+
pass it through to Phase 4. Modes don't bypass normalize + quality-bar work:
|
|
75
75
|
they shape the polish *after* the system is aligned. See `reference/ui.md` for
|
|
76
76
|
the mode table.
|
|
77
77
|
|
|
78
78
|
> **Mid-flight discipline.** When tempted to polish UI without normalize, cite
|
|
79
79
|
> clean lint as proof of quality, skip Phase 2 on a backend diff, or delete a
|
|
80
|
-
> Chesterton's Fence
|
|
80
|
+
> Chesterton's Fence: see [anti-patterns](reference/anti-patterns.md).
|
|
81
81
|
|
|
82
82
|
## Output → `polish-report.md`
|
|
83
83
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# rite-polish
|
|
1
|
+
# rite-polish: anti-patterns
|
|
2
2
|
|
|
3
3
|
Load this when standing a non-trivial polish decision, or when tempted to
|
|
4
4
|
skip normalize, polish without Chesterton's Fence, or cite clean lint/build
|
|
@@ -12,11 +12,11 @@ Pack-wide rationalizations + red flags (incl. lint-pass-as-quality): see
|
|
|
12
12
|
| Excuse | Rebuttal |
|
|
13
13
|
|---|---|
|
|
14
14
|
| "Tests pass; the feature is done." | Tests don't measure ship-quality, design drift, anti-slop, or backend polish. |
|
|
15
|
-
| "UI looks fine to me." | Must align to the design system + meet CWV/WCAG 2.2
|
|
16
|
-
| "Code is simple enough; no need to audit." | Measure first. If there's no hotspot, that's fine
|
|
17
|
-
| "It's a small UI change; polish without normalize is fine." | **NO
|
|
18
|
-
| "Backend looks OK; skip Phase 2." | If the diff touched BE, Phase 2 runs
|
|
19
|
-
| "Fewer lines is simpler, so this is done." | The bar is the comprehension test, not line count: would a new reader understand it *faster* than the original? A cryptic one-liner fails it. Fewer-but-slower is churn
|
|
15
|
+
| "UI looks fine to me." | Must align to the design system + meet CWV/WCAG 2.2, not match a personal taste. |
|
|
16
|
+
| "Code is simple enough; no need to audit." | Measure first. If there's no hotspot, that's fine, but record "no hotspots found", don't skip silently. |
|
|
17
|
+
| "It's a small UI change; polish without normalize is fine." | **NO**: decoration on drift is banned. Phase 3 runs before Phase 4, always. |
|
|
18
|
+
| "Backend looks OK; skip Phase 2." | If the diff touched BE, Phase 2 runs: error responses, logging hygiene, queries, anti-slop. |
|
|
19
|
+
| "Fewer lines is simpler, so this is done." | The bar is the comprehension test, not line count: would a new reader understand it *faster* than the original? A cryptic one-liner fails it. Fewer-but-slower is churn: revert it. |
|
|
20
20
|
|
|
21
21
|
## Red Flags
|
|
22
22
|
|
|
@@ -24,7 +24,7 @@ Pack-wide rationalizations + red flags (incl. lint-pass-as-quality): see
|
|
|
24
24
|
- No browser evidence saved for a UI polish.
|
|
25
25
|
- Code polish ran without naming a single technique (guard clauses, Extract Method, ...).
|
|
26
26
|
- Backend was touched but `polish-report.md` shows no Phase 2 section.
|
|
27
|
-
- A "simplification" that changes observable behavior
|
|
27
|
+
- A "simplification" that changes observable behavior. That's not behavior-preserving.
|
|
28
28
|
- Reading a Chesterton's Fence as "looks dead" and deleting without explaining what it guards.
|
|
29
|
-
- Simplifying, reflowing, or "tidying" a block marked `devrites:keep` / `simplify-ignore
|
|
29
|
+
- Simplifying, reflowing, or "tidying" a block marked `devrites:keep` / `simplify-ignore`: the marker is an explicit fence; leave it in place.
|
|
30
30
|
- Hand-editing a >500-line simplification that a codemod / AST transform should have applied uniformly.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Backend polish (when backend touched)
|
|
2
2
|
|
|
3
|
-
Runs as Phase 2 of `$rite-polish` when the feature touches server-side code
|
|
3
|
+
Runs as Phase 2 of `$rite-polish` when the feature touches server-side code: handlers /
|
|
4
4
|
controllers / services / routes / models / migrations / queries / jobs / workers / auth /
|
|
5
5
|
schemas. Polishes the **server side** to ship-quality before review, the way UI normalize
|
|
6
6
|
+ polish does for the client side.
|
|
@@ -17,17 +17,17 @@ schemas. Polishes the **server side** to ship-quality before review, the way UI
|
|
|
17
17
|
|
|
18
18
|
### Error handling (consistent + meaningful)
|
|
19
19
|
- [ ] **Consistent error response shape** across endpoints (e.g. an RFC 7807 problem
|
|
20
|
-
document or the project's existing convention). One shape
|
|
20
|
+
document or the project's existing convention). One shape, not three.
|
|
21
21
|
- [ ] **Correct HTTP / protocol status codes** (4xx for client errors, 5xx for server
|
|
22
22
|
errors; not 200 with `{ error: ... }`).
|
|
23
23
|
- [ ] **Custom error classes** (or equivalent) so callers can distinguish error kinds.
|
|
24
|
-
- [ ] **Fail closed** on auth/permission/transaction errors
|
|
24
|
+
- [ ] **Fail closed** on auth/permission/transaction errors: deny + roll back; never
|
|
25
25
|
default to allow or partial commit (`error-handling.md`, `security.md`).
|
|
26
|
-
- [ ] **Narrow `catch
|
|
26
|
+
- [ ] **Narrow `catch`**: no blanket `catch (e) {}` swallows. If you catch, recover or
|
|
27
27
|
rethrow with context.
|
|
28
28
|
|
|
29
29
|
### Logging hygiene
|
|
30
|
-
- [ ] **Structured logs** (key/value or JSON) with **context
|
|
30
|
+
- [ ] **Structured logs** (key/value or JSON) with **context**: request id, user/actor
|
|
31
31
|
id, operation, duration.
|
|
32
32
|
- [ ] Log the **events that matter**: failures, access violations, validation rejections,
|
|
33
33
|
retries, auth events.
|
|
@@ -36,22 +36,22 @@ schemas. Polishes the **server side** to ship-quality before review, the way UI
|
|
|
36
36
|
- [ ] No `console.log` / debug prints left in. No noisy "got here" lines.
|
|
37
37
|
|
|
38
38
|
### Data & queries
|
|
39
|
-
- [ ] **No N+1
|
|
40
|
-
- [ ] **No unbounded result sets
|
|
39
|
+
- [ ] **No N+1**: fetch in batches / use joins or includes.
|
|
40
|
+
- [ ] **No unbounded result sets**: pagination/limits where data can grow.
|
|
41
41
|
- [ ] **Parameterized queries** only; never string-built SQL/shell/HTML.
|
|
42
42
|
- [ ] **Indexes** exist for new query patterns (or recorded as a follow-up if the project
|
|
43
43
|
adds them by migration).
|
|
44
|
-
- [ ] **Transaction boundaries** are right
|
|
44
|
+
- [ ] **Transaction boundaries** are right: one logical write = one transaction; rollback
|
|
45
45
|
on error; no partial commits.
|
|
46
46
|
- [ ] Don't return more fields than the caller needs.
|
|
47
47
|
|
|
48
48
|
### API contract
|
|
49
49
|
- [ ] Response shape matches the contract the spec set (and what the UI / consumers
|
|
50
|
-
expect
|
|
50
|
+
expect: match against `references/` if any).
|
|
51
51
|
- [ ] **Idempotency** where applicable (PUT/DELETE; retry-safe POSTs with idempotency
|
|
52
52
|
keys).
|
|
53
53
|
- [ ] **Pagination, sorting, filtering** consistent with neighboring endpoints.
|
|
54
|
-
- [ ] **Validation at the boundary
|
|
54
|
+
- [ ] **Validation at the boundary**: type/length/format/range on untrusted input;
|
|
55
55
|
reject what doesn't match (see `security.md` three-tier).
|
|
56
56
|
|
|
57
57
|
### Performance (measure first)
|
|
@@ -67,14 +67,14 @@ schemas. Polishes the **server side** to ship-quality before review, the way UI
|
|
|
67
67
|
- [ ] No leftover `TODO`s without an owner/issue.
|
|
68
68
|
- [ ] **Migrations** are reversible where reasonable; destructive ones have rollback notes.
|
|
69
69
|
|
|
70
|
-
### Anti-slop (code patterns
|
|
70
|
+
### Anti-slop (code patterns: see `anti-ai-slop.md`)
|
|
71
71
|
- [ ] No over-defensive null/length checks layered redundantly.
|
|
72
72
|
- [ ] No useless wrapper functions ("`function getUser(id) { return User.find(id); }`").
|
|
73
73
|
- [ ] No generic AI naming (`process_data`, `handle_thing`, `do_it`).
|
|
74
74
|
- [ ] No "robust" code that catches everything and hides bugs.
|
|
75
|
-
- [ ] Didn't go **beyond the spec
|
|
75
|
+
- [ ] Didn't go **beyond the spec**: implemented what the spec asked, no extras.
|
|
76
76
|
|
|
77
77
|
## Rules
|
|
78
78
|
- Feature scope only. Don't refactor unrelated server code.
|
|
79
79
|
- Re-prove after changes: targeted tests + a real request/response observation.
|
|
80
|
-
- A polish change that breaks a test isn't behavior-preserving
|
|
80
|
+
- A polish change that breaks a test isn't behavior-preserving: revert and reconsider.
|
|
@@ -6,14 +6,14 @@ in `polish-report.md`).
|
|
|
6
6
|
|
|
7
7
|
## Required when a browser can run
|
|
8
8
|
- Screenshots of the polished UI at the target viewports (375 / 768 / 1280 as relevant).
|
|
9
|
-
**Open each screenshot and describe what's
|
|
9
|
+
**Open each screenshot and describe what's visible**: a path is not proof.
|
|
10
10
|
- All key interaction states captured or exercised: hover, focus, active, disabled,
|
|
11
11
|
loading, empty, error, success.
|
|
12
|
-
- Console clean (no errors/warnings)
|
|
13
|
-
- No layout shift on load
|
|
12
|
+
- Console clean (no errors/warnings): captured.
|
|
13
|
+
- No layout shift on load: observed.
|
|
14
14
|
- Reduced-motion behavior checked if motion was added.
|
|
15
15
|
- **Design references**: if the spec saved references in `.devrites/work/<slug>/references/`,
|
|
16
|
-
compare the polished UI against them
|
|
16
|
+
compare the polished UI against them: does it match the agreed target? Note any diffs.
|
|
17
17
|
|
|
18
18
|
## Before/after
|
|
19
19
|
Where polish changed something visible, capture a **before/after** pair. The pair is the
|