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.
Files changed (744) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +282 -533
  3. package/SECURITY.md +26 -26
  4. package/docs/adr/README.md +7 -9
  5. package/docs/agents/domain.md +5 -5
  6. package/docs/agents/issue-driven-rites.md +1 -1
  7. package/docs/agents/issue-tracker.md +1 -1
  8. package/docs/agents/triage-labels.md +2 -2
  9. package/docs/architecture.md +45 -45
  10. package/docs/cli.md +11 -11
  11. package/docs/command-map.md +33 -33
  12. package/docs/engine/agent-contract.md +6 -6
  13. package/docs/engine/commands.md +66 -65
  14. package/docs/engine/state-schema.md +15 -15
  15. package/docs/engine/workspace-schema.md +7 -7
  16. package/docs/extensions.md +17 -17
  17. package/docs/flow.md +17 -17
  18. package/docs/harness-compliance.md +2 -2
  19. package/docs/orchestration.md +21 -20
  20. package/docs/release.md +22 -5
  21. package/docs/research/go-authoritative-workflow-schema-and-quality-2026-07-20.md +3 -3
  22. package/docs/skills.md +77 -52
  23. package/docs/usage.md +33 -32
  24. package/engine/Makefile +2 -2
  25. package/engine/commands.go +3 -3
  26. package/engine/harnessmatrix.go +2 -2
  27. package/engine/hookpolicy.go +9 -9
  28. package/engine/hooks.go +11 -11
  29. package/engine/hooks_workspace.go +11 -11
  30. package/engine/internal/doctor/doctor.go +7 -7
  31. package/engine/internal/gate/gate.go +11 -11
  32. package/engine/internal/harness/compliance.go +1 -1
  33. package/engine/internal/harness/harness.go +7 -7
  34. package/engine/internal/install/install.go +95 -24
  35. package/engine/internal/install/install_test.go +111 -3
  36. package/engine/internal/iohooks/detach_unix.go +1 -1
  37. package/engine/internal/iohooks/iohooks.go +8 -8
  38. package/engine/internal/lib/adoption.go +1 -1
  39. package/engine/internal/lib/analyze.go +15 -15
  40. package/engine/internal/lib/archivesearch.go +3 -3
  41. package/engine/internal/lib/budget.go +3 -3
  42. package/engine/internal/lib/buildreadiness.go +6 -6
  43. package/engine/internal/lib/checkacceptance.go +10 -10
  44. package/engine/internal/lib/closeout.go +5 -5
  45. package/engine/internal/lib/conventions.go +3 -3
  46. package/engine/internal/lib/coverage.go +4 -4
  47. package/engine/internal/lib/doubtcoverage.go +9 -9
  48. package/engine/internal/lib/evidencefresh.go +6 -6
  49. package/engine/internal/lib/extensions.go +9 -9
  50. package/engine/internal/lib/footprint.go +13 -13
  51. package/engine/internal/lib/jsonout.go +2 -2
  52. package/engine/internal/lib/lanes.go +2 -2
  53. package/engine/internal/lib/learnings.go +9 -9
  54. package/engine/internal/lib/ledger.go +8 -8
  55. package/engine/internal/lib/ledger_test.go +5 -5
  56. package/engine/internal/lib/mutationgate.go +4 -4
  57. package/engine/internal/lib/overrides.go +9 -9
  58. package/engine/internal/lib/overrides_test.go +2 -2
  59. package/engine/internal/lib/packageexistence.go +5 -5
  60. package/engine/internal/lib/preamble.go +6 -6
  61. package/engine/internal/lib/progress.go +5 -5
  62. package/engine/internal/lib/reconcile.go +80 -20
  63. package/engine/internal/lib/reconcile_test.go +13 -5
  64. package/engine/internal/lib/resolve.go +3 -3
  65. package/engine/internal/lib/reviewerstats.go +2 -2
  66. package/engine/internal/lib/reviewintegrity.go +13 -13
  67. package/engine/internal/lib/reviewintegrity_test.go +6 -6
  68. package/engine/internal/lib/runbook.go +1 -1
  69. package/engine/internal/lib/session.go +1 -1
  70. package/engine/internal/lib/session_test.go +2 -2
  71. package/engine/internal/lib/specparse.go +4 -4
  72. package/engine/internal/lib/specskeleton.go +2 -2
  73. package/engine/internal/lib/specvalidate.go +13 -13
  74. package/engine/internal/lib/stuck.go +13 -13
  75. package/engine/internal/lib/templates/conventions_ledger_header.md +1 -1
  76. package/engine/internal/lib/templates/conventions_orient_header.txt +1 -1
  77. package/engine/internal/lib/testintegrity.go +9 -9
  78. package/engine/internal/lib/tickafk.go +4 -4
  79. package/engine/internal/migrate/migrate.go +2 -2
  80. package/engine/internal/migrate/migrate_test.go +1 -0
  81. package/engine/internal/orient/firstrun.go +8 -8
  82. package/engine/internal/orient/orient.go +5 -5
  83. package/engine/internal/state/concurrency_test.go +4 -4
  84. package/engine/internal/state/feature.go +6 -6
  85. package/engine/internal/state/lock_unix.go +1 -1
  86. package/engine/internal/state/schema.go +1 -1
  87. package/engine/internal/state/snapshot.go +2 -2
  88. package/engine/internal/state/write.go +1 -1
  89. package/engine/internal/version/version.go +1 -1
  90. package/engine/main.go +5 -5
  91. package/engine/subagent_orient_context.txt +4 -4
  92. package/engine/testdata/golden/TestParityA1Guard/source-edit-enforce-denies.golden +1 -1
  93. package/engine/testdata/golden/TestParityAnalyze/slug=covered.golden +2 -2
  94. package/engine/testdata/golden/TestParityAnalyze/slug=dangling.golden +3 -3
  95. package/engine/testdata/golden/TestParityAnalyze/slug=noac.golden +2 -2
  96. package/engine/testdata/golden/TestParityAnalyze/slug=order.golden +4 -4
  97. package/engine/testdata/golden/TestParityAnalyze/slug=orphan.golden +3 -3
  98. package/engine/testdata/golden/TestParityAnalyze/slug=uncovered.golden +3 -3
  99. package/engine/testdata/golden/TestParityBudget/extra-md.golden +1 -1
  100. package/engine/testdata/golden/TestParityBudget/over-advisory.golden +1 -1
  101. package/engine/testdata/golden/TestParityBudget/over-strict.golden +1 -1
  102. package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +1 -1
  103. package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +1 -1
  104. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +1 -1
  105. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +1 -1
  106. package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-ok.golden +1 -1
  107. package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-ok.golden +1 -1
  108. package/engine/testdata/golden/TestParityCloseOut/active_pointed_elsewhere.golden +1 -1
  109. package/engine/testdata/golden/TestParityCoverage/arg=speconly.golden +2 -2
  110. package/engine/testdata/golden/TestParityCursor/bare.golden +1 -1
  111. package/engine/testdata/golden/TestParityCursor/full-afk.golden +1 -1
  112. package/engine/testdata/golden/TestParityCursor/full-hitl.golden +1 -1
  113. package/engine/testdata/golden/TestParityCursor/red.golden +2 -2
  114. package/engine/testdata/golden/TestParityCursor/zerogates.golden +1 -1
  115. package/engine/testdata/golden/TestParityDoubtCoverage/arg=ghost.golden +1 -1
  116. package/engine/testdata/golden/TestParityDoubtCoverage/arg=inline.golden +1 -1
  117. package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing-inline.golden +1 -1
  118. package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing.golden +1 -1
  119. package/engine/testdata/golden/TestParityDoubtCoverage/arg=nodoubt.golden +1 -1
  120. package/engine/testdata/golden/TestParityDoubtCoverage/arg=nolog.golden +1 -1
  121. package/engine/testdata/golden/TestParityLearnings/mine-no-archive.golden +1 -1
  122. package/engine/testdata/golden/TestParityLearnings/mine.golden +1 -1
  123. package/engine/testdata/golden/TestParityLearnings/nudge.golden +1 -1
  124. package/engine/testdata/golden/TestParityMutationGate/active-slug.golden +1 -1
  125. package/engine/testdata/golden/TestParityMutationGate/explicit-slug.golden +1 -1
  126. package/engine/testdata/golden/TestParityPackageExistence/declared.golden +1 -1
  127. package/engine/testdata/golden/TestParityPackageExistence/default-import-subpath.golden +1 -1
  128. package/engine/testdata/golden/TestParityReconcile/check-clean.golden +1 -1
  129. package/engine/testdata/golden/TestParityRedwatch/fail-writes-red.golden +1 -1
  130. package/engine/testdata/golden/TestParityResolve/answer/state.md.golden +1 -1
  131. package/engine/testdata/golden/TestParityResolve/batch.golden +1 -1
  132. package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-devrites-agent-denies.golden +1 -1
  133. package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-git-commit.golden +1 -1
  134. package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-mutating.golden +1 -1
  135. package/engine/testdata/golden/TestParitySpecValidate/arg=flat.golden +1 -1
  136. package/engine/testdata/golden/TestParitySpecValidate/arg=valid/spec.md.golden +1 -1
  137. package/engine/testdata/golden/TestParitySpecValidate/arg=valid.golden +1 -1
  138. package/engine/testdata/golden/TestParityStuckCheck/custom-window-2.golden +1 -1
  139. package/engine/testdata/golden/TestParityStuckCheck/dominant.golden +1 -1
  140. package/engine/testdata/golden/TestParityStuckCheck/few.golden +1 -1
  141. package/engine/testdata/golden/TestParityStuckCheck/ghost.golden +1 -1
  142. package/engine/testdata/golden/TestParityStuckCheck/identical.golden +1 -1
  143. package/engine/testdata/golden/TestParityStuckCheck/nolog.golden +1 -1
  144. package/engine/testdata/golden/TestParityStuckCheck/pingpong.golden +1 -1
  145. package/engine/testdata/golden/TestParityStuckCheck/varied.golden +1 -1
  146. package/engine/testdata/golden/TestParityStuckCheck/window-04-identical.golden +1 -1
  147. package/engine/testdata/golden/TestParityStuckCheck/window-2.5-varied4.golden +1 -1
  148. package/engine/testdata/golden/TestParityStuckCheck/window-4x-varied4.golden +1 -1
  149. package/engine/testdata/golden/TestParityStuckCheck/window-leadspace-varied4.golden +1 -1
  150. package/engine/testdata/golden/TestParityStuckCheck/window-plus4-identical.golden +1 -1
  151. package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent-subagent-type-key.golden +1 -1
  152. package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent.golden +1 -1
  153. package/engine/testdata/golden/TestParityTestIntegrity/clean.golden +1 -1
  154. package/engine/testdata/golden/TestParityTickAfk/missingField.golden +1 -1
  155. package/engine/testdata/golden/TestParityTickAfk/none.golden +1 -1
  156. package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +1 -1
  157. package/engine/testdata/golden/TestSpecSkeleton/missing-some.golden +1 -1
  158. package/engine/testdata/golden/TestSpecSkeleton/present-all.golden +1 -1
  159. package/engine/tests/adr_0004_required_by_phase_test.go +2 -2
  160. package/engine/tests/adr_0006_clock_seam_test.go +1 -1
  161. package/engine/tests/budget_test.go +1 -1
  162. package/engine/tests/canonical_ac_ids_test.go +2 -2
  163. package/engine/tests/cli_test.go +1 -1
  164. package/engine/tests/concurrency_cli_test.go +1 -1
  165. package/engine/tests/gate_test.go +4 -4
  166. package/engine/tests/hook_test.go +3 -3
  167. package/engine/tests/hooks_io_test.go +1 -1
  168. package/engine/tests/lib_parity_test.go +29 -29
  169. package/engine/tests/meta_test.go +2 -2
  170. package/engine/tests/parity_closeout_test.go +1 -1
  171. package/engine/tests/parity_learnings_test.go +2 -2
  172. package/engine/tests/parity_mutationgate_test.go +2 -2
  173. package/engine/tests/parity_resolve_test.go +1 -1
  174. package/engine/tests/parity_test.go +3 -3
  175. package/engine/tests/parity_tickafk_test.go +1 -1
  176. package/engine/validatepack.go +5 -5
  177. package/engine/validatepackskills.go +9 -9
  178. package/pack/.claude/agents/devrites-code-reviewer.md +21 -22
  179. package/pack/.claude/agents/devrites-devex-reviewer.md +17 -17
  180. package/pack/.claude/agents/devrites-doubt-reviewer.md +6 -6
  181. package/pack/.claude/agents/devrites-forge-judge.md +26 -26
  182. package/pack/.claude/agents/devrites-frontend-reviewer.md +17 -17
  183. package/pack/.claude/agents/devrites-performance-reviewer.md +19 -18
  184. package/pack/.claude/agents/devrites-plan-reviewer.md +29 -27
  185. package/pack/.claude/agents/devrites-retrospector.md +19 -19
  186. package/pack/.claude/agents/devrites-security-auditor.md +15 -15
  187. package/pack/.claude/agents/devrites-simplifier-reviewer.md +14 -14
  188. package/pack/.claude/agents/devrites-slice-wright.md +52 -51
  189. package/pack/.claude/agents/devrites-spec-reviewer.md +11 -11
  190. package/pack/.claude/agents/devrites-strategy-reviewer.md +21 -21
  191. package/pack/.claude/agents/devrites-test-analyst.md +13 -13
  192. package/pack/.claude/settings.json +1 -1
  193. package/pack/.claude/skills/devrites-api-interface/SKILL.md +12 -12
  194. package/pack/.claude/skills/devrites-audit/SKILL.md +7 -7
  195. package/pack/.claude/skills/devrites-browser-proof/SKILL.md +16 -16
  196. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +14 -14
  197. package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
  198. package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
  199. package/pack/.claude/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
  200. package/pack/.claude/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
  201. package/pack/.claude/skills/devrites-debug-recovery/reference/trace.md +4 -4
  202. package/pack/.claude/skills/devrites-doubt/SKILL.md +14 -14
  203. package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +18 -18
  204. package/pack/.claude/skills/devrites-frontend-craft/reference/craft.md +17 -17
  205. package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +25 -25
  206. package/pack/.claude/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
  207. package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
  208. package/pack/.claude/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
  209. package/pack/.claude/skills/devrites-frontend-craft/reference/shape.md +13 -13
  210. package/pack/.claude/skills/devrites-interview/SKILL.md +27 -27
  211. package/pack/.claude/skills/devrites-lib/SKILL.md +18 -18
  212. package/pack/.claude/skills/devrites-lib/reference/model-tiers.md +5 -5
  213. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
  214. package/pack/.claude/skills/devrites-lib/reference/standards/README.md +10 -10
  215. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
  216. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +37 -37
  217. package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
  218. package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
  219. package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +40 -40
  220. package/pack/.claude/skills/devrites-lib/reference/standards/coding-style.md +7 -7
  221. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
  222. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +23 -23
  223. package/pack/.claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  224. package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +18 -18
  225. package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
  226. package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +10 -10
  227. package/pack/.claude/skills/devrites-lib/reference/standards/documentation.md +4 -4
  228. package/pack/.claude/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
  229. package/pack/.claude/skills/devrites-lib/reference/standards/elicitation.md +26 -26
  230. package/pack/.claude/skills/devrites-lib/reference/standards/error-handling.md +4 -4
  231. package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
  232. package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +3 -3
  233. package/pack/.claude/skills/devrites-lib/reference/standards/observability.md +15 -15
  234. package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +8 -8
  235. package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +5 -5
  236. package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +31 -31
  237. package/pack/.claude/skills/devrites-lib/reference/standards/prose-style.md +25 -25
  238. package/pack/.claude/skills/devrites-lib/reference/standards/security.md +30 -30
  239. package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
  240. package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
  241. package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +40 -40
  242. package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +26 -26
  243. package/pack/.claude/skills/devrites-prose-craft/SKILL.md +5 -5
  244. package/pack/.claude/skills/devrites-refresh-indexes/SKILL.md +6 -6
  245. package/pack/.claude/skills/devrites-source-driven/SKILL.md +8 -8
  246. package/pack/.claude/skills/devrites-ux-shape/SKILL.md +33 -33
  247. package/pack/.claude/skills/devrites-ux-shape/reference/brief-template.md +6 -6
  248. package/pack/.claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
  249. package/pack/.claude/skills/rite/SKILL.md +7 -7
  250. package/pack/.claude/skills/rite/reference/menu.md +6 -6
  251. package/pack/.claude/skills/rite-adopt/SKILL.md +15 -15
  252. package/pack/.claude/skills/rite-adopt/reference/adoption.md +9 -9
  253. package/pack/.claude/skills/rite-adopt/reference/anti-patterns.md +6 -6
  254. package/pack/.claude/skills/rite-autocomplete/SKILL.md +14 -14
  255. package/pack/.claude/skills/rite-autocomplete/reference/decision-policy.md +4 -4
  256. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +7 -7
  257. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
  258. package/pack/.claude/skills/rite-build/SKILL.md +22 -22
  259. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +9 -9
  260. package/pack/.claude/skills/rite-build/reference/anti-patterns.md +6 -6
  261. package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +14 -14
  262. package/pack/.claude/skills/rite-build/reference/checkpoint.md +8 -8
  263. package/pack/.claude/skills/rite-build/reference/evidence-standard.md +1 -1
  264. package/pack/.claude/skills/rite-build/reference/forge.md +28 -29
  265. package/pack/.claude/skills/rite-build/reference/frontend-trigger.md +2 -2
  266. package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +3 -3
  267. package/pack/.claude/skills/rite-build/reference/output.md +1 -1
  268. package/pack/.claude/skills/rite-build/reference/phase-contract.md +44 -44
  269. package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
  270. package/pack/.claude/skills/rite-build/reference/tdd.md +6 -6
  271. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +23 -23
  272. package/pack/.claude/skills/rite-converge/SKILL.md +17 -17
  273. package/pack/.claude/skills/rite-converge/reference/anti-patterns.md +7 -7
  274. package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +14 -14
  275. package/pack/.claude/skills/rite-customize/SKILL.md +2 -2
  276. package/pack/.claude/skills/rite-define/SKILL.md +25 -25
  277. package/pack/.claude/skills/rite-define/reference/anti-patterns.md +5 -5
  278. package/pack/.claude/skills/rite-define/reference/gates.md +13 -13
  279. package/pack/.claude/skills/rite-define/reference/plan-template.md +1 -1
  280. package/pack/.claude/skills/rite-doctor/SKILL.md +11 -11
  281. package/pack/.claude/skills/rite-dogfood/SKILL.md +2 -2
  282. package/pack/.claude/skills/rite-explain/SKILL.md +22 -22
  283. package/pack/.claude/skills/rite-explain/reference/intake.md +16 -16
  284. package/pack/.claude/skills/rite-frame/SKILL.md +22 -22
  285. package/pack/.claude/skills/rite-frame/reference/failure-modes.md +13 -13
  286. package/pack/.claude/skills/rite-handoff/SKILL.md +12 -12
  287. package/pack/.claude/skills/rite-learn/SKILL.md +23 -23
  288. package/pack/.claude/skills/rite-plan/SKILL.md +21 -21
  289. package/pack/.claude/skills/rite-plan/reference/anti-patterns.md +3 -3
  290. package/pack/.claude/skills/rite-plan/reference/dependency-graph.md +1 -1
  291. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +3 -3
  292. package/pack/.claude/skills/rite-plan/reference/slicing.md +9 -9
  293. package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +3 -3
  294. package/pack/.claude/skills/rite-polish/SKILL.md +11 -11
  295. package/pack/.claude/skills/rite-polish/reference/anti-patterns.md +8 -8
  296. package/pack/.claude/skills/rite-polish/reference/backend-polish.md +13 -13
  297. package/pack/.claude/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
  298. package/pack/.claude/skills/rite-polish/reference/code.md +26 -26
  299. package/pack/.claude/skills/rite-polish/reference/harden-checklist.md +31 -31
  300. package/pack/.claude/skills/rite-polish/reference/ui.md +23 -23
  301. package/pack/.claude/skills/rite-pov/SKILL.md +3 -3
  302. package/pack/.claude/skills/rite-pr-feedback/SKILL.md +2 -2
  303. package/pack/.claude/skills/rite-pressure-test/SKILL.md +14 -14
  304. package/pack/.claude/skills/rite-prototype/SKILL.md +13 -13
  305. package/pack/.claude/skills/rite-prove/SKILL.md +17 -17
  306. package/pack/.claude/skills/rite-prove/reference/anti-patterns.md +4 -4
  307. package/pack/.claude/skills/rite-prove/reference/browser-proof.md +2 -2
  308. package/pack/.claude/skills/rite-prove/reference/failure-triage.md +4 -4
  309. package/pack/.claude/skills/rite-prove/reference/proof-ladder.md +6 -6
  310. package/pack/.claude/skills/rite-prove/reference/test-command-discovery.md +1 -1
  311. package/pack/.claude/skills/rite-quick/SKILL.md +22 -22
  312. package/pack/.claude/skills/rite-resolve/SKILL.md +18 -18
  313. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +7 -7
  314. package/pack/.claude/skills/rite-review/SKILL.md +34 -34
  315. package/pack/.claude/skills/rite-review/reference/anti-patterns.md +4 -4
  316. package/pack/.claude/skills/rite-review/reference/cognitive-load.md +22 -22
  317. package/pack/.claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
  318. package/pack/.claude/skills/rite-review/reference/five-axis-review.md +8 -8
  319. package/pack/.claude/skills/rite-review/reference/nielsen-heuristics.md +14 -14
  320. package/pack/.claude/skills/rite-review/reference/performance-checklist.md +14 -14
  321. package/pack/.claude/skills/rite-review/reference/security-review.md +9 -9
  322. package/pack/.claude/skills/rite-seal/SKILL.md +26 -26
  323. package/pack/.claude/skills/rite-seal/reference/anti-patterns.md +8 -8
  324. package/pack/.claude/skills/rite-seal/reference/conventions-ledger.md +8 -8
  325. package/pack/.claude/skills/rite-seal/reference/final-evidence.md +9 -9
  326. package/pack/.claude/skills/rite-seal/reference/go-no-go.md +9 -9
  327. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +43 -43
  328. package/pack/.claude/skills/rite-ship/SKILL.md +12 -12
  329. package/pack/.claude/skills/rite-ship/reference/anti-patterns.md +5 -5
  330. package/pack/.claude/skills/rite-ship/reference/close-out.md +2 -2
  331. package/pack/.claude/skills/rite-ship/reference/design-memory.md +22 -22
  332. package/pack/.claude/skills/rite-ship/reference/git-ship.md +10 -10
  333. package/pack/.claude/skills/rite-ship/reference/ledger.md +9 -9
  334. package/pack/.claude/skills/rite-ship/reference/rollout.md +11 -11
  335. package/pack/.claude/skills/rite-ship/reference/ship-template.md +1 -1
  336. package/pack/.claude/skills/rite-spec/SKILL.md +45 -45
  337. package/pack/.claude/skills/rite-spec/reference/acceptance-criteria.md +4 -4
  338. package/pack/.claude/skills/rite-spec/reference/anti-patterns.md +6 -6
  339. package/pack/.claude/skills/rite-spec/reference/interview-patterns.md +3 -3
  340. package/pack/.claude/skills/rite-spec/reference/investigation.md +21 -21
  341. package/pack/.claude/skills/rite-spec/reference/question-protocol.md +9 -9
  342. package/pack/.claude/skills/rite-spec/reference/references-intake.md +8 -8
  343. package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +19 -19
  344. package/pack/.claude/skills/rite-status/SKILL.md +13 -13
  345. package/pack/.claude/skills/rite-temper/SKILL.md +29 -29
  346. package/pack/.claude/skills/rite-temper/reference/anti-patterns.md +11 -11
  347. package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +20 -20
  348. package/pack/.claude/skills/rite-temper/reference/scope-modes.md +16 -16
  349. package/pack/.claude/skills/rite-temper/reference/significance.md +10 -10
  350. package/pack/.claude/skills/rite-temper/reference/strategy-template.md +14 -14
  351. package/pack/.claude/skills/rite-vet/SKILL.md +31 -31
  352. package/pack/.claude/skills/rite-vet/reference/anti-patterns.md +14 -14
  353. package/pack/.claude/skills/rite-vet/reference/artifacts.md +10 -10
  354. package/pack/.claude/skills/rite-vet/reference/cross-model.md +9 -9
  355. package/pack/.claude/skills/rite-vet/reference/depth.md +14 -14
  356. package/pack/.claude/skills/rite-vet/reference/eng-lenses.md +9 -9
  357. package/pack/.claude/skills/rite-vet/reference/review-axes.md +28 -28
  358. package/pack/.claude/skills/rite-zoom-out/SKILL.md +18 -18
  359. package/pack/generated/claude/agents/devrites-code-reviewer.md +21 -22
  360. package/pack/generated/claude/agents/devrites-devex-reviewer.md +17 -17
  361. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +6 -6
  362. package/pack/generated/claude/agents/devrites-forge-judge.md +26 -26
  363. package/pack/generated/claude/agents/devrites-frontend-reviewer.md +17 -17
  364. package/pack/generated/claude/agents/devrites-performance-reviewer.md +19 -18
  365. package/pack/generated/claude/agents/devrites-plan-reviewer.md +29 -27
  366. package/pack/generated/claude/agents/devrites-retrospector.md +19 -19
  367. package/pack/generated/claude/agents/devrites-security-auditor.md +15 -15
  368. package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +14 -14
  369. package/pack/generated/claude/agents/devrites-slice-wright.md +52 -51
  370. package/pack/generated/claude/agents/devrites-spec-reviewer.md +11 -11
  371. package/pack/generated/claude/agents/devrites-strategy-reviewer.md +21 -21
  372. package/pack/generated/claude/agents/devrites-test-analyst.md +13 -13
  373. package/pack/generated/claude/settings.json +1 -1
  374. package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +12 -12
  375. package/pack/generated/claude/skills/devrites-audit/SKILL.md +7 -7
  376. package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +16 -16
  377. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +14 -14
  378. package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
  379. package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
  380. package/pack/generated/claude/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
  381. package/pack/generated/claude/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
  382. package/pack/generated/claude/skills/devrites-debug-recovery/reference/trace.md +4 -4
  383. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +14 -14
  384. package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +18 -18
  385. package/pack/generated/claude/skills/devrites-frontend-craft/reference/craft.md +17 -17
  386. package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +25 -25
  387. package/pack/generated/claude/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
  388. package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
  389. package/pack/generated/claude/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
  390. package/pack/generated/claude/skills/devrites-frontend-craft/reference/shape.md +13 -13
  391. package/pack/generated/claude/skills/devrites-interview/SKILL.md +27 -27
  392. package/pack/generated/claude/skills/devrites-lib/SKILL.md +18 -18
  393. package/pack/generated/claude/skills/devrites-lib/reference/model-tiers.md +5 -5
  394. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
  395. package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +10 -10
  396. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
  397. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +37 -37
  398. package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
  399. package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
  400. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +40 -40
  401. package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +7 -7
  402. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
  403. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +23 -23
  404. package/pack/generated/claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  405. package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +18 -18
  406. package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
  407. package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +10 -10
  408. package/pack/generated/claude/skills/devrites-lib/reference/standards/documentation.md +4 -4
  409. package/pack/generated/claude/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
  410. package/pack/generated/claude/skills/devrites-lib/reference/standards/elicitation.md +26 -26
  411. package/pack/generated/claude/skills/devrites-lib/reference/standards/error-handling.md +4 -4
  412. package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
  413. package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +3 -3
  414. package/pack/generated/claude/skills/devrites-lib/reference/standards/observability.md +15 -15
  415. package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +8 -8
  416. package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +5 -5
  417. package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +31 -31
  418. package/pack/generated/claude/skills/devrites-lib/reference/standards/prose-style.md +25 -25
  419. package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +30 -30
  420. package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
  421. package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
  422. package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +40 -40
  423. package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +26 -26
  424. package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +5 -5
  425. package/pack/generated/claude/skills/devrites-refresh-indexes/SKILL.md +6 -6
  426. package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +8 -8
  427. package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +33 -33
  428. package/pack/generated/claude/skills/devrites-ux-shape/reference/brief-template.md +6 -6
  429. package/pack/generated/claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
  430. package/pack/generated/claude/skills/rite/SKILL.md +7 -7
  431. package/pack/generated/claude/skills/rite/reference/menu.md +6 -6
  432. package/pack/generated/claude/skills/rite-adopt/SKILL.md +15 -15
  433. package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +9 -9
  434. package/pack/generated/claude/skills/rite-adopt/reference/anti-patterns.md +6 -6
  435. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +14 -14
  436. package/pack/generated/claude/skills/rite-autocomplete/reference/decision-policy.md +4 -4
  437. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +7 -7
  438. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
  439. package/pack/generated/claude/skills/rite-build/SKILL.md +22 -22
  440. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +9 -9
  441. package/pack/generated/claude/skills/rite-build/reference/anti-patterns.md +6 -6
  442. package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +14 -14
  443. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +8 -8
  444. package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +1 -1
  445. package/pack/generated/claude/skills/rite-build/reference/forge.md +28 -29
  446. package/pack/generated/claude/skills/rite-build/reference/frontend-trigger.md +2 -2
  447. package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +3 -3
  448. package/pack/generated/claude/skills/rite-build/reference/output.md +1 -1
  449. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +44 -44
  450. package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
  451. package/pack/generated/claude/skills/rite-build/reference/tdd.md +6 -6
  452. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +23 -23
  453. package/pack/generated/claude/skills/rite-converge/SKILL.md +17 -17
  454. package/pack/generated/claude/skills/rite-converge/reference/anti-patterns.md +7 -7
  455. package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +14 -14
  456. package/pack/generated/claude/skills/rite-customize/SKILL.md +2 -2
  457. package/pack/generated/claude/skills/rite-define/SKILL.md +25 -25
  458. package/pack/generated/claude/skills/rite-define/reference/anti-patterns.md +5 -5
  459. package/pack/generated/claude/skills/rite-define/reference/gates.md +13 -13
  460. package/pack/generated/claude/skills/rite-define/reference/plan-template.md +1 -1
  461. package/pack/generated/claude/skills/rite-doctor/SKILL.md +11 -11
  462. package/pack/generated/claude/skills/rite-dogfood/SKILL.md +2 -2
  463. package/pack/generated/claude/skills/rite-explain/SKILL.md +22 -22
  464. package/pack/generated/claude/skills/rite-explain/reference/intake.md +16 -16
  465. package/pack/generated/claude/skills/rite-frame/SKILL.md +22 -22
  466. package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +13 -13
  467. package/pack/generated/claude/skills/rite-handoff/SKILL.md +12 -12
  468. package/pack/generated/claude/skills/rite-learn/SKILL.md +23 -23
  469. package/pack/generated/claude/skills/rite-plan/SKILL.md +21 -21
  470. package/pack/generated/claude/skills/rite-plan/reference/anti-patterns.md +3 -3
  471. package/pack/generated/claude/skills/rite-plan/reference/dependency-graph.md +1 -1
  472. package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +3 -3
  473. package/pack/generated/claude/skills/rite-plan/reference/slicing.md +9 -9
  474. package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +3 -3
  475. package/pack/generated/claude/skills/rite-polish/SKILL.md +11 -11
  476. package/pack/generated/claude/skills/rite-polish/reference/anti-patterns.md +8 -8
  477. package/pack/generated/claude/skills/rite-polish/reference/backend-polish.md +13 -13
  478. package/pack/generated/claude/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
  479. package/pack/generated/claude/skills/rite-polish/reference/code.md +26 -26
  480. package/pack/generated/claude/skills/rite-polish/reference/harden-checklist.md +31 -31
  481. package/pack/generated/claude/skills/rite-polish/reference/ui.md +23 -23
  482. package/pack/generated/claude/skills/rite-pov/SKILL.md +3 -3
  483. package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +2 -2
  484. package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +14 -14
  485. package/pack/generated/claude/skills/rite-prototype/SKILL.md +13 -13
  486. package/pack/generated/claude/skills/rite-prove/SKILL.md +17 -17
  487. package/pack/generated/claude/skills/rite-prove/reference/anti-patterns.md +4 -4
  488. package/pack/generated/claude/skills/rite-prove/reference/browser-proof.md +2 -2
  489. package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +4 -4
  490. package/pack/generated/claude/skills/rite-prove/reference/proof-ladder.md +6 -6
  491. package/pack/generated/claude/skills/rite-prove/reference/test-command-discovery.md +1 -1
  492. package/pack/generated/claude/skills/rite-quick/SKILL.md +22 -22
  493. package/pack/generated/claude/skills/rite-resolve/SKILL.md +18 -18
  494. package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +7 -7
  495. package/pack/generated/claude/skills/rite-review/SKILL.md +34 -34
  496. package/pack/generated/claude/skills/rite-review/reference/anti-patterns.md +4 -4
  497. package/pack/generated/claude/skills/rite-review/reference/cognitive-load.md +22 -22
  498. package/pack/generated/claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
  499. package/pack/generated/claude/skills/rite-review/reference/five-axis-review.md +8 -8
  500. package/pack/generated/claude/skills/rite-review/reference/nielsen-heuristics.md +14 -14
  501. package/pack/generated/claude/skills/rite-review/reference/performance-checklist.md +14 -14
  502. package/pack/generated/claude/skills/rite-review/reference/security-review.md +9 -9
  503. package/pack/generated/claude/skills/rite-seal/SKILL.md +26 -26
  504. package/pack/generated/claude/skills/rite-seal/reference/anti-patterns.md +8 -8
  505. package/pack/generated/claude/skills/rite-seal/reference/conventions-ledger.md +8 -8
  506. package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +9 -9
  507. package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +9 -9
  508. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +43 -43
  509. package/pack/generated/claude/skills/rite-ship/SKILL.md +12 -12
  510. package/pack/generated/claude/skills/rite-ship/reference/anti-patterns.md +5 -5
  511. package/pack/generated/claude/skills/rite-ship/reference/close-out.md +2 -2
  512. package/pack/generated/claude/skills/rite-ship/reference/design-memory.md +22 -22
  513. package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +10 -10
  514. package/pack/generated/claude/skills/rite-ship/reference/ledger.md +9 -9
  515. package/pack/generated/claude/skills/rite-ship/reference/rollout.md +11 -11
  516. package/pack/generated/claude/skills/rite-ship/reference/ship-template.md +1 -1
  517. package/pack/generated/claude/skills/rite-spec/SKILL.md +45 -45
  518. package/pack/generated/claude/skills/rite-spec/reference/acceptance-criteria.md +4 -4
  519. package/pack/generated/claude/skills/rite-spec/reference/anti-patterns.md +6 -6
  520. package/pack/generated/claude/skills/rite-spec/reference/interview-patterns.md +3 -3
  521. package/pack/generated/claude/skills/rite-spec/reference/investigation.md +21 -21
  522. package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +9 -9
  523. package/pack/generated/claude/skills/rite-spec/reference/references-intake.md +8 -8
  524. package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +19 -19
  525. package/pack/generated/claude/skills/rite-status/SKILL.md +13 -13
  526. package/pack/generated/claude/skills/rite-temper/SKILL.md +29 -29
  527. package/pack/generated/claude/skills/rite-temper/reference/anti-patterns.md +11 -11
  528. package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +20 -20
  529. package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +16 -16
  530. package/pack/generated/claude/skills/rite-temper/reference/significance.md +10 -10
  531. package/pack/generated/claude/skills/rite-temper/reference/strategy-template.md +14 -14
  532. package/pack/generated/claude/skills/rite-vet/SKILL.md +31 -31
  533. package/pack/generated/claude/skills/rite-vet/reference/anti-patterns.md +14 -14
  534. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +10 -10
  535. package/pack/generated/claude/skills/rite-vet/reference/cross-model.md +9 -9
  536. package/pack/generated/claude/skills/rite-vet/reference/depth.md +14 -14
  537. package/pack/generated/claude/skills/rite-vet/reference/eng-lenses.md +9 -9
  538. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +28 -28
  539. package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +18 -18
  540. package/pack/generated/codex/agents/devrites-code-reviewer.toml +21 -22
  541. package/pack/generated/codex/agents/devrites-devex-reviewer.toml +17 -17
  542. package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +6 -6
  543. package/pack/generated/codex/agents/devrites-forge-judge.toml +26 -26
  544. package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +17 -17
  545. package/pack/generated/codex/agents/devrites-performance-reviewer.toml +19 -18
  546. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +29 -27
  547. package/pack/generated/codex/agents/devrites-retrospector.toml +19 -19
  548. package/pack/generated/codex/agents/devrites-security-auditor.toml +15 -15
  549. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +14 -14
  550. package/pack/generated/codex/agents/devrites-slice-wright.toml +52 -51
  551. package/pack/generated/codex/agents/devrites-spec-reviewer.toml +11 -11
  552. package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +21 -21
  553. package/pack/generated/codex/agents/devrites-test-analyst.toml +13 -13
  554. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +15 -15
  555. package/pack/generated/codex/skills/devrites-audit/SKILL.md +10 -10
  556. package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +19 -19
  557. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +17 -17
  558. package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
  559. package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
  560. package/pack/generated/codex/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
  561. package/pack/generated/codex/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
  562. package/pack/generated/codex/skills/devrites-debug-recovery/reference/trace.md +4 -4
  563. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +17 -17
  564. package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +20 -20
  565. package/pack/generated/codex/skills/devrites-frontend-craft/reference/craft.md +17 -17
  566. package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +25 -25
  567. package/pack/generated/codex/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
  568. package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
  569. package/pack/generated/codex/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
  570. package/pack/generated/codex/skills/devrites-frontend-craft/reference/shape.md +13 -13
  571. package/pack/generated/codex/skills/devrites-interview/SKILL.md +30 -30
  572. package/pack/generated/codex/skills/devrites-lib/SKILL.md +21 -21
  573. package/pack/generated/codex/skills/devrites-lib/reference/model-tiers.md +5 -5
  574. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
  575. package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +10 -10
  576. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
  577. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +37 -37
  578. package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
  579. package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
  580. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +40 -40
  581. package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +7 -7
  582. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
  583. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +23 -23
  584. package/pack/generated/codex/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  585. package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +18 -18
  586. package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
  587. package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +10 -10
  588. package/pack/generated/codex/skills/devrites-lib/reference/standards/documentation.md +4 -4
  589. package/pack/generated/codex/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
  590. package/pack/generated/codex/skills/devrites-lib/reference/standards/elicitation.md +26 -26
  591. package/pack/generated/codex/skills/devrites-lib/reference/standards/error-handling.md +4 -4
  592. package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
  593. package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +3 -3
  594. package/pack/generated/codex/skills/devrites-lib/reference/standards/observability.md +15 -15
  595. package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +8 -8
  596. package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +5 -5
  597. package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +31 -31
  598. package/pack/generated/codex/skills/devrites-lib/reference/standards/prose-style.md +25 -25
  599. package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +30 -30
  600. package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
  601. package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
  602. package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +40 -40
  603. package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +26 -26
  604. package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +8 -8
  605. package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +9 -9
  606. package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +11 -11
  607. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +36 -36
  608. package/pack/generated/codex/skills/devrites-ux-shape/reference/brief-template.md +6 -6
  609. package/pack/generated/codex/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
  610. package/pack/generated/codex/skills/rite/SKILL.md +10 -10
  611. package/pack/generated/codex/skills/rite/reference/menu.md +6 -6
  612. package/pack/generated/codex/skills/rite-adopt/SKILL.md +18 -18
  613. package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +9 -9
  614. package/pack/generated/codex/skills/rite-adopt/reference/anti-patterns.md +6 -6
  615. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +17 -17
  616. package/pack/generated/codex/skills/rite-autocomplete/reference/decision-policy.md +4 -4
  617. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +7 -7
  618. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
  619. package/pack/generated/codex/skills/rite-build/SKILL.md +25 -25
  620. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +9 -9
  621. package/pack/generated/codex/skills/rite-build/reference/anti-patterns.md +6 -6
  622. package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +14 -14
  623. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +8 -8
  624. package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +1 -1
  625. package/pack/generated/codex/skills/rite-build/reference/forge.md +28 -29
  626. package/pack/generated/codex/skills/rite-build/reference/frontend-trigger.md +2 -2
  627. package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +3 -3
  628. package/pack/generated/codex/skills/rite-build/reference/output.md +1 -1
  629. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +44 -44
  630. package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +1 -1
  631. package/pack/generated/codex/skills/rite-build/reference/tdd.md +6 -6
  632. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +23 -23
  633. package/pack/generated/codex/skills/rite-converge/SKILL.md +20 -20
  634. package/pack/generated/codex/skills/rite-converge/reference/anti-patterns.md +7 -7
  635. package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +14 -14
  636. package/pack/generated/codex/skills/rite-customize/SKILL.md +5 -5
  637. package/pack/generated/codex/skills/rite-define/SKILL.md +28 -28
  638. package/pack/generated/codex/skills/rite-define/reference/anti-patterns.md +5 -5
  639. package/pack/generated/codex/skills/rite-define/reference/gates.md +13 -13
  640. package/pack/generated/codex/skills/rite-define/reference/plan-template.md +1 -1
  641. package/pack/generated/codex/skills/rite-doctor/SKILL.md +14 -14
  642. package/pack/generated/codex/skills/rite-dogfood/SKILL.md +5 -5
  643. package/pack/generated/codex/skills/rite-explain/SKILL.md +25 -25
  644. package/pack/generated/codex/skills/rite-explain/reference/intake.md +16 -16
  645. package/pack/generated/codex/skills/rite-frame/SKILL.md +25 -25
  646. package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +13 -13
  647. package/pack/generated/codex/skills/rite-handoff/SKILL.md +15 -15
  648. package/pack/generated/codex/skills/rite-learn/SKILL.md +26 -26
  649. package/pack/generated/codex/skills/rite-plan/SKILL.md +24 -24
  650. package/pack/generated/codex/skills/rite-plan/reference/anti-patterns.md +3 -3
  651. package/pack/generated/codex/skills/rite-plan/reference/dependency-graph.md +1 -1
  652. package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +3 -3
  653. package/pack/generated/codex/skills/rite-plan/reference/slicing.md +9 -9
  654. package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +3 -3
  655. package/pack/generated/codex/skills/rite-polish/SKILL.md +14 -14
  656. package/pack/generated/codex/skills/rite-polish/reference/anti-patterns.md +8 -8
  657. package/pack/generated/codex/skills/rite-polish/reference/backend-polish.md +13 -13
  658. package/pack/generated/codex/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
  659. package/pack/generated/codex/skills/rite-polish/reference/code.md +26 -26
  660. package/pack/generated/codex/skills/rite-polish/reference/harden-checklist.md +31 -31
  661. package/pack/generated/codex/skills/rite-polish/reference/ui.md +23 -23
  662. package/pack/generated/codex/skills/rite-pov/SKILL.md +6 -6
  663. package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +5 -5
  664. package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +17 -17
  665. package/pack/generated/codex/skills/rite-prototype/SKILL.md +16 -16
  666. package/pack/generated/codex/skills/rite-prove/SKILL.md +20 -20
  667. package/pack/generated/codex/skills/rite-prove/reference/anti-patterns.md +4 -4
  668. package/pack/generated/codex/skills/rite-prove/reference/browser-proof.md +2 -2
  669. package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +4 -4
  670. package/pack/generated/codex/skills/rite-prove/reference/proof-ladder.md +6 -6
  671. package/pack/generated/codex/skills/rite-prove/reference/test-command-discovery.md +1 -1
  672. package/pack/generated/codex/skills/rite-quick/SKILL.md +25 -25
  673. package/pack/generated/codex/skills/rite-resolve/SKILL.md +21 -21
  674. package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +7 -7
  675. package/pack/generated/codex/skills/rite-review/SKILL.md +37 -37
  676. package/pack/generated/codex/skills/rite-review/reference/anti-patterns.md +4 -4
  677. package/pack/generated/codex/skills/rite-review/reference/cognitive-load.md +22 -22
  678. package/pack/generated/codex/skills/rite-review/reference/feature-scoped-review.md +2 -2
  679. package/pack/generated/codex/skills/rite-review/reference/five-axis-review.md +8 -8
  680. package/pack/generated/codex/skills/rite-review/reference/nielsen-heuristics.md +14 -14
  681. package/pack/generated/codex/skills/rite-review/reference/performance-checklist.md +14 -14
  682. package/pack/generated/codex/skills/rite-review/reference/security-review.md +9 -9
  683. package/pack/generated/codex/skills/rite-seal/SKILL.md +29 -29
  684. package/pack/generated/codex/skills/rite-seal/reference/anti-patterns.md +8 -8
  685. package/pack/generated/codex/skills/rite-seal/reference/conventions-ledger.md +8 -8
  686. package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +9 -9
  687. package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +9 -9
  688. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +43 -43
  689. package/pack/generated/codex/skills/rite-ship/SKILL.md +15 -15
  690. package/pack/generated/codex/skills/rite-ship/reference/anti-patterns.md +5 -5
  691. package/pack/generated/codex/skills/rite-ship/reference/close-out.md +2 -2
  692. package/pack/generated/codex/skills/rite-ship/reference/design-memory.md +22 -22
  693. package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +10 -10
  694. package/pack/generated/codex/skills/rite-ship/reference/ledger.md +9 -9
  695. package/pack/generated/codex/skills/rite-ship/reference/rollout.md +11 -11
  696. package/pack/generated/codex/skills/rite-ship/reference/ship-template.md +1 -1
  697. package/pack/generated/codex/skills/rite-spec/SKILL.md +48 -48
  698. package/pack/generated/codex/skills/rite-spec/reference/acceptance-criteria.md +4 -4
  699. package/pack/generated/codex/skills/rite-spec/reference/anti-patterns.md +6 -6
  700. package/pack/generated/codex/skills/rite-spec/reference/interview-patterns.md +3 -3
  701. package/pack/generated/codex/skills/rite-spec/reference/investigation.md +21 -21
  702. package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +9 -9
  703. package/pack/generated/codex/skills/rite-spec/reference/references-intake.md +8 -8
  704. package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +19 -19
  705. package/pack/generated/codex/skills/rite-status/SKILL.md +16 -16
  706. package/pack/generated/codex/skills/rite-temper/SKILL.md +32 -32
  707. package/pack/generated/codex/skills/rite-temper/reference/anti-patterns.md +11 -11
  708. package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +20 -20
  709. package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +16 -16
  710. package/pack/generated/codex/skills/rite-temper/reference/significance.md +10 -10
  711. package/pack/generated/codex/skills/rite-temper/reference/strategy-template.md +14 -14
  712. package/pack/generated/codex/skills/rite-vet/SKILL.md +34 -34
  713. package/pack/generated/codex/skills/rite-vet/reference/anti-patterns.md +14 -14
  714. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +10 -10
  715. package/pack/generated/codex/skills/rite-vet/reference/cross-model.md +9 -9
  716. package/pack/generated/codex/skills/rite-vet/reference/depth.md +14 -14
  717. package/pack/generated/codex/skills/rite-vet/reference/eng-lenses.md +9 -9
  718. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +28 -28
  719. package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +21 -21
  720. package/package.json +2 -2
  721. package/scripts/build-binaries.sh +1 -1
  722. package/scripts/build-host-artifacts.sh +1 -1
  723. package/scripts/build-release-tarball.sh +1 -1
  724. package/scripts/check-cross-refs.py +8 -8
  725. package/scripts/check-invocation-integrity.py +4 -4
  726. package/scripts/check-no-global-writes.sh +2 -2
  727. package/scripts/check-reply-contract.sh +1 -1
  728. package/scripts/check-rule-uniqueness.sh +2 -2
  729. package/scripts/codex-generate.sh +5 -5
  730. package/scripts/devrites-detect.sh +33 -33
  731. package/scripts/eval-runner.py +7 -7
  732. package/scripts/grade-feature.sh +14 -14
  733. package/scripts/install-lib.sh +2 -2
  734. package/scripts/pin.sh +12 -12
  735. package/scripts/run-behavioral-evals.sh +12 -12
  736. package/scripts/run-evals.sh +1 -1
  737. package/scripts/run-outcome-evals.sh +12 -12
  738. package/scripts/scan-pack-security.py +4 -4
  739. package/scripts/scan-supply-chain-iocs.py +7 -7
  740. package/scripts/skills-inventory.mjs +7 -8
  741. package/scripts/sync-version.sh +2 -2
  742. package/scripts/validate-workflow-security.py +12 -6
  743. package/scripts/validate-workspace-schema.py +2 -2
  744. package/scripts/validate.sh +7 -7
@@ -1,8 +1,8 @@
1
1
  # Developer experience
2
2
 
3
- When a change ships a surface another engineer has to *use* a public API, a CLI, an SDK
3
+ When a change ships a surface another engineer has to *use* (a public API, a CLI, an SDK
4
4
  or library, a webhook, a config/env contract, an error message, or the getting-started path
5
- that introduces all of them the developer using it is a user, and their experience is part
5
+ that introduces all of them) the developer using it is a user, and their experience is part
6
6
  of the change. Code that compiles and passes its tests can still strand the next developer at
7
7
  a cryptic error, a getting-started snippet that doesn't run, or an endpoint whose shape you
8
8
  have to read the source to learn. Un-tested DX is a claim, the same way un-run code is a claim.
@@ -10,9 +10,9 @@ have to read the source to learn. Un-tested DX is a claim, the same way un-run c
10
10
  This rule is the developer-facing counterpart to [`performance.md`](performance.md): perf says
11
11
  *measure the speed before you assert it*; this says *measure the experience before you assert
12
12
  it*. It pairs with the [`devrites-api-interface`](../../../devrites-api-interface/SKILL.md)
13
- skill (which shapes the contract) this rule **proves** the shape is usable.
13
+ skill (which shapes the contract). This rule **proves** the shape is usable.
14
14
 
15
- ## Scope when this applies
15
+ ## Scope: when this applies
16
16
 
17
17
  Conditional, like [`performance.md`](performance.md) and [`observability.md`](observability.md).
18
18
  It applies when the diff changes a **developer-facing surface**:
@@ -23,55 +23,55 @@ It applies when the diff changes a **developer-facing surface**:
23
23
  - a **webhook**, event payload, or integration contract;
24
24
  - a **config / env-var** interface a consumer must set;
25
25
  - an **error message, exit code, or failure response** a developer reads to recover;
26
- - the **getting-started path** README, install steps, quickstart, the first-run docs.
26
+ - the **getting-started path**. README, install steps, quickstart, the first-run docs.
27
27
 
28
28
  Skip it for pure-internal refactors, private helpers, app-only UI (that's
29
29
  [`devrites-frontend-craft`](../../../devrites-frontend-craft/SKILL.md) /
30
30
  `devrites-frontend-reviewer`), docs-only typo fixes, and config that no external consumer
31
- touches. Don't DX-review a change with no developer-facing surface the same scope discipline
31
+ touches. Don't DX-review a change with no developer-facing surface: the same scope discipline
32
32
  as the rest of the conditional rules. End-user UX is a different axis; this rule is about the
33
33
  *developer* consuming the surface.
34
34
 
35
- ## The boomerang predict at plan, measure at prove, reconcile at seal
35
+ ## The boomerang: predict at plan, measure at prove, reconcile at seal
36
36
 
37
37
  DevRites already runs a predict-then-prove spine (the vetted `test-plan.md` coverage target at
38
38
  `$rite-vet`, proven at `$rite-prove`, gated at `$rite-seal`). DX rides the same spine, and the
39
39
  gap between the two ends is the signal:
40
40
 
41
- 1. **Predict** at `$rite-vet`, when a developer-facing surface is in scope, score the *planned*
41
+ 1. **Predict:** at `$rite-vet`, when a developer-facing surface is in scope, score the *planned*
42
42
  surface against the dimensions below and write a predicted scorecard to `devex.md` (the
43
43
  estimate, e.g. "time-to-hello-world: ~3 min"). This is cheap and pre-build; it forces the
44
44
  ergonomics question before the contract sets.
45
- 2. **Measure** at `$rite-prove`, actually exercise the surface (run the getting-started flow,
45
+ 2. **Measure:** at `$rite-prove`, exercise the surface (run the getting-started flow,
46
46
  call the endpoint, invoke the CLI, trigger the error) and record the *measured* scorecard with
47
47
  evidence: real time-to-hello-world, the verbatim error text, the screenshot of the docs page.
48
- 3. **Reconcile (the boomerang)** at `$rite-seal`, compare predicted against measured. A material
49
- gap "the plan said 3 minutes, the getting-started flow actually took 8 and step 4 errored"
48
+ 3. **Reconcile (the boomerang):** at `$rite-seal`, compare predicted against measured. A material
49
+ gap: "the plan said 3 minutes, the getting-started flow took 8 and step 4 errored":
50
50
  is a finding, not a rounding error. The estimate was wrong *or* the surface regressed; either
51
51
  way the developer using it pays, and the gap is exactly what a single end-state score would hide.
52
52
 
53
53
  The boomerang is what makes DX a measured axis rather than an opinion: the prediction is on
54
54
  record, so the measured reality can falsify it.
55
55
 
56
- ## The scorecard what to score
56
+ ## The scorecard: what to score
57
57
 
58
58
  One entity, one name: call the metric **time-to-hello-world (TTHW)** consistently, not "onboarding
59
59
  time" in one place and "setup time" in another. Score these dimensions; only the ones the diff
60
60
  touches:
61
61
 
62
- - **Discoverability** can a developer find the entry point without reading the source? Is the
62
+ - **Discoverability:** can a developer find the entry point without reading the source? Is the
63
63
  new surface named, exported, and documented where they'll look?
64
- - **Time-to-hello-world (TTHW)** wall-clock from "I have the repo/package" to "I got one
64
+ - **Time-to-hello-world (TTHW):** wall-clock from "I have the repo/package" to "I got one
65
65
  successful call/response/render". The headline number; measure it, don't estimate it at seal.
66
- - **Getting-started friction** does the quickstart run *as written*, copy-pasted, on a clean
66
+ - **Getting-started friction:** does the quickstart run *as written*, copy-pasted, on a clean
67
67
  checkout? Every undocumented prerequisite, wrong command, or missing step is friction.
68
- - **Error-message quality** does a failure say *what* failed, *why*, and *how to recover*, with
69
- the relevant ids (never secrets see [`security.md`](security.md))? A bare stack trace, a
68
+ - **Error-message quality:** does a failure say *what* failed, *why*, and *how to recover*, with
69
+ the relevant ids (never secrets: see [`security.md`](security.md))? A bare stack trace, a
70
70
  silent exit, or "an error occurred" is a defect on a developer-facing path.
71
- - **Ergonomics & consistency** does the surface match the project's existing conventions
71
+ - **Ergonomics & consistency:** does the surface match the project's existing conventions
72
72
  (naming, argument order, pagination, error shape)? An inconsistent new endpoint taxes everyone
73
73
  who learned the old ones. Sensible defaults; the common case is one call.
74
- - **Docs accuracy** examples are copy-pasteable and correct, the signature in the docs matches
74
+ - **Docs accuracy:** examples are copy-pasteable and correct, the signature in the docs matches
75
75
  the code, and changed behavior updated its docs in the same change ([`documentation.md`](documentation.md)).
76
76
 
77
77
  ## Measure, don't assert
@@ -79,8 +79,8 @@ touches:
79
79
  The same discipline as `performance.md` "measure first" and `testing.md` "see it fail first":
80
80
 
81
81
  - **Run it, don't read it.** A scorecard backed by "the code looks fine" is Source mode and says
82
- so. The graded scorecard comes from actually invoking the surface the getting-started flow on
83
- a clean state, the real CLI `--help`, the real error path and recording what happened.
82
+ so. The graded scorecard comes from invoking the surface (the getting-started flow on
83
+ a clean state, the real CLI `--help`, the real error path) and recording what happened.
84
84
  - **Quote the artifact.** Paste the verbatim error string, the exact failing command, the measured
85
85
  TTHW; for a docs/quickstart page, capture it through the browser-proof ladder
86
86
  ([`../skills/devrites-browser-proof/SKILL.md`](../../../devrites-browser-proof/SKILL.md)) and
@@ -88,32 +88,32 @@ The same discipline as `performance.md` "measure first" and `testing.md` "see it
88
88
  - **No measurement → no DX claim**, and usually no finding above Suggestion. "Feels confusing" is
89
89
  a hypothesis to test, not a verdict.
90
90
 
91
- ## The gate severity by who-pays
91
+ ## The gate: severity by who-pays
92
92
 
93
93
  DX findings carry the standard labels (Critical / Important / Suggestion / Nit / FYI), scaled to
94
94
  the cost the consumer bears, not to how polished it feels:
95
95
 
96
- - A **public/external contract that ships broken or wrong** a documented command that errors, an
97
- endpoint whose response contradicts its contract, a getting-started flow that can't complete is
96
+ - A **public/external contract that ships broken or wrong** (a documented command that errors, an
97
+ endpoint whose response contradicts its contract, a getting-started flow that can't complete) is
98
98
  **Important**, and **Critical** when it's a frozen public surface (the principles-gated public-API
99
99
  invariant, [`principles.md`](principles.md)) or an irreversible break.
100
100
  - A **measured DX regression** against the predicted scorecard with no recorded reason is a
101
- finding the boomerang surfaces at seal at least **Important** when it lands on a public surface.
102
- - An **unactionable error message** on a developer-facing failure path is **Important** the
101
+ finding the boomerang surfaces at seal, at least **Important** when it lands on a public surface.
102
+ - An **unactionable error message** on a developer-facing failure path is **Important**: the
103
103
  on-call test ([`observability.md`](observability.md)) applied to the consumer instead of the operator.
104
104
  - Inconsistent-but-working ergonomics, a thin doc, a missable default → **Suggestion**, unless the
105
105
  spec made it acceptance.
106
106
 
107
- ## The artifact `devex.md`
107
+ ## The artifact: `devex.md`
108
108
 
109
109
  When a developer-facing surface is in scope, the workspace carries `devex.md`: the **predicted**
110
110
  scorecard (from `$rite-vet`), the **measured** scorecard with evidence (from `$rite-prove`), and
111
111
  the **boomerang delta** (reconciled at `$rite-seal`). Absent surface → no `devex.md`, and the gate
112
- passes silently never block a change for the *absence* of a DX surface, the same no-op discipline
112
+ passes silently: never block a change for the *absence* of a DX surface, the same no-op discipline
113
113
  as the principles and spec-grammar gates.
114
114
 
115
115
  ## Scope discipline
116
116
 
117
117
  Review the developer-facing surface the change *touches*. A surface the diff didn't change is not
118
- this change's job; a project-wide DX audit (every endpoint, the whole CLI) is its own effort
118
+ this change's job; a project-wide DX audit (every endpoint, the whole CLI) is its own effort:
119
119
  record it as a follow-up, don't smuggle it into an unrelated change.
@@ -4,7 +4,7 @@ Ship small, integrate often, keep the main branch releasable. DevRites runs this
4
4
  lifecycle atop that loop: spec → define → vet → build → prove → polish → review → seal → ship.
5
5
 
6
6
  ## Work in small batches
7
- - Break work into thin, independently shippable slices and integrate them frequently
7
+ - Break work into thin, independently shippable slices and integrate them frequently:
8
8
  ideally merging to the main branch at least once a day.
9
9
  - Small batches shrink merge pain, surface integration problems early, and get real
10
10
  reviews. Large batches hide defects and stall.
@@ -18,33 +18,33 @@ lifecycle atop that loop: spec → define → vet → build → prove → polish
18
18
  partial work can land without blocking releases or breaking the trunk.
19
19
 
20
20
  ## Review gate
21
- - Every change is reviewed before merge (see `code-review.md`). Keep reviews fast slow
21
+ - Every change is reviewed before merge (see `code-review.md`). Keep reviews fast: slow
22
22
  reviews push people back toward big, risky batches.
23
23
  - Set expectations on PR size and merge cadence: small, frequent, single-concern.
24
24
 
25
25
  ## Definition of done
26
- The **Definition of Done** is the project's *standing bar* the floor every change clears,
26
+ The **Definition of Done** is the project's *standing bar*: the floor every change clears,
27
27
  distinct from a slice's **acceptance criteria** (which change per slice and say what *this* work
28
28
  must do). Acceptance criteria answer "did we build the right thing"; the DoD answers "is it
29
- shippable at all". The bar does not move with deadline pressure a Definition of Done that gets
29
+ shippable at all". The bar does not move with deadline pressure: a Definition of Done that gets
30
30
  renegotiated each time is not one. Apply it in tiers so the cost matches the scope:
31
31
 
32
- - **Every slice** Correctness + Quality: meets its acceptance criteria with **evidence**
33
- (tests/build/runtime see `testing.md`), behaviour verified at runtime not just compiled; tests
32
+ - **Every slice:** Correctness + Quality: meets its acceptance criteria with **evidence**
33
+ (tests/build/runtime: see `testing.md`), behaviour verified at runtime not just compiled; tests
34
34
  and build green in CI; reviewed and **within scope, no unrelated refactor snuck in**; edge and
35
35
  error paths handled, not only the happy path.
36
- - **Every feature** Integration + Documentation: works with the rest of the system, migrations/
36
+ - **Every feature:** Integration + Documentation: works with the rest of the system, migrations/
37
37
  config/flags accounted for, backward compatibility considered for any public-interface change;
38
38
  docs/comments touched are updated (`documentation.md`) and describe the *current state in timeless
39
39
  language*, not the change history.
40
- - **Every release** Ship-readiness: security reviewed for any untrusted input/auth/data
40
+ - **Every release:** Ship-readiness: security reviewed for any untrusted input/auth/data
41
41
  (`security.md`), observability on new critical paths (`observability.md`), a **rollback for
42
42
  anything risky**, and a **human has reviewed and approved before merge**.
43
43
 
44
- Two invariants across all tiers: evidence post-dates the code it proves edits made after
44
+ Two invariants across all tiers: evidence post-dates the code it proves: edits made after
45
45
  `$rite-prove` (polish/review) require re-proof before seal, stale evidence is not proof; and
46
46
  "tests pass" is not a synonym for done. "Code written" is not done. "Proven and reviewed" is.
47
47
 
48
48
  ## Incremental delivery
49
49
  Deliver a working end-to-end path each slice, then expand. Avoid the "90% done, nothing
50
- proven" pile-up one finished, verified slice beats five half-built ones.
50
+ proven" pile-up: one finished, verified slice beats five half-built ones.
@@ -1,6 +1,6 @@
1
1
  # Documentation
2
2
 
3
- Write the documentation that saves the next person time no more, no less.
3
+ Write the documentation that saves the next person time: no more, no less.
4
4
 
5
5
  ## Explain why, keep it current
6
6
  - Document **intent and decisions**, not a restatement of the code. The *why* is what
@@ -17,14 +17,14 @@ Write the documentation that saves the next person time — no more, no less.
17
17
  code; only the ADR records the options you weighed and *why each lost*. List them with the reason
18
18
  each was rejected, or the note answers nothing the source doesn't already show.
19
19
  - **An ADR has a lifecycle:** `PROPOSED → ACCEPTED → SUPERSEDED / DEPRECATED`. When a decision
20
- changes, write a **new** ADR that references and supersedes the old one never edit or delete the
20
+ changes, write a **new** ADR that references and supersedes the old one: never edit or delete the
21
21
  original, or you erase the record of why the project once chose differently.
22
22
 
23
23
  ## What to document
24
- - **Public surfaces**: APIs, module boundaries, and config inputs, outputs, errors,
24
+ - **Public surfaces**: APIs, module boundaries, and config: inputs, outputs, errors,
25
25
  and gotchas. Writing the contract down is the first test of the design: documenting a public
26
26
  interface surfaces its rough edges before the code sets around them.
27
- - **READMEs that actually run**: setup, the real commands to build/test/run, and how to
27
+ - **READMEs that run**: setup, the real commands to build/test/run, and how to
28
28
  get a working environment. Keep examples copy-pasteable and correct.
29
29
  - **Non-obvious constraints**: invariants, ordering requirements, "do not call X before
30
30
  Y", and known limitations.
@@ -6,7 +6,7 @@ Use this when a diff changes branching logic, boundaries, validation, deletion,
6
6
 
7
7
  1. **Scope the changed surface.** Name the changed function/API/state/config and the nearest observable caller.
8
8
  2. **Enumerate explicit paths.** Walk each `if`/`switch`/loop/error branch and boundary value the changed surface handles.
9
- 3. **Enumerate fixed-set siblings.** If the change special-cases members of a known set enum values, statuses, sentinels, flags, roles, modes list the untouched siblings too. A handled `pending`/`failed` branch makes `success` an implicit branch to check.
9
+ 3. **Enumerate fixed-set siblings.** If the change special-cases members of a known set (enum values, statuses, sentinels, flags, roles, modes) list the untouched siblings too. A handled `pending`/`failed` branch makes `success` an implicit branch to check.
10
10
  4. **Check deletion contracts.** For removed or replaced code, name the behavior or contract it carried and where the diff re-establishes it. If it was intentionally retired, cite the spec/decision that retires it.
11
11
  5. **Report only reachable gaps.** A finding needs `file:line`, trigger condition, missing guard/handling, and concrete consequence. If the path is already handled, drop it silently.
12
12
 
@@ -1,13 +1,13 @@
1
- # Elicitation a move-set for the thinking phases
1
+ # Elicitation: a move-set for the thinking phases
2
2
 
3
- The thinking phases (`$rite-temper` on the spec, `$rite-vet` on the plan) default to one shape each
4
- a pre-mortem, a plan review. That's a floor, not a ceiling. When a section needs deeper thought,
3
+ The thinking phases (`$rite-temper` on the spec, `$rite-vet` on the plan) default to one shape each.
4
+ A pre-mortem, a plan review. That's a floor, not a ceiling. When a section needs deeper thought,
5
5
  this is the menu you reach into: named reasoning techniques, each with the shape it produces, so
6
6
  "make this stronger" becomes a concrete move instead of a vibe.
7
7
 
8
- ## How to use it (progressive no ceremony by default)
8
+ ## How to use it (progressive: no ceremony by default)
9
9
  1. Look at the **one section** in front of you (a requirement, a risk, an estimate, a boundary).
10
- 2. Read its **risk**, then pull the 35 techniques below whose *When to reach for it* matches.
10
+ 2. Read its **risk**, then pull the 3-5 techniques below whose *When to reach for it* matches.
11
11
  3. Present them as a short numbered menu; the human picks one (or `skip`).
12
12
  4. Run that technique on that section, apply the result, move on.
13
13
 
@@ -24,57 +24,57 @@ Selection is by the section's risk, not taste. Reach for the row that fits:
24
24
 
25
25
  ## The techniques
26
26
 
27
- Each entry is **name when to reach for it the shape it produces** (`→` reads "then").
27
+ Each entry is **name (when to reach for it) the shape it produces** (`→` reads "then").
28
28
 
29
29
  ### Sharpening a claim
30
- - **Steelman-then-Attack** a requirement or approach you're inclined to accept. Build the
30
+ - **Steelman-then-Attack:** a requirement or approach you're inclined to accept. Build the
31
31
  *strongest* case for it → then attack that strongest form. Survives → keep; falls → revise.
32
- - **Devil's Advocate** consensus formed too fast. One voice argues the opposite in good faith →
32
+ - **Devil's Advocate:** consensus formed too fast. One voice argues the opposite in good faith →
33
33
  surface the objection the room skipped.
34
- - **Assumption Audit** a plan resting on unstated beliefs. List every assumption the section
34
+ - **Assumption Audit:** a plan resting on unstated beliefs. List every assumption the section
35
35
  makes → mark each *load-bearing / verified / unverified* → the unverified load-bearing ones are
36
36
  the work.
37
- - **Five Whys** a stated requirement whose *reason* is fuzzy. Ask "why" five times down from the
37
+ - **Five Whys:** a stated requirement whose *reason* is fuzzy. Ask "why" five times down from the
38
38
  ask → reach the root need (often narrower or different than the surface ask).
39
39
 
40
40
  ### Stress-testing a decision
41
- - **Pre-Mortem** before committing an irreversible choice. Assume it's six months later and this
41
+ - **Pre-Mortem:** before committing an irreversible choice. Assume it's six months later and this
42
42
  failed → write the failure story → each cause becomes a mitigation or a blocking question. (This
43
43
  is `$rite-temper`'s default; the others deepen it.)
44
- - **Red-Team vs Blue-Team** a security, trust-boundary, or adversarial-input surface.
44
+ - **Red-Team vs Blue-Team:** a security, trust-boundary, or adversarial-input surface.
45
45
  `defense → attack → hardening`: state the defense, attack it as a hostile party, harden the gap.
46
- - **Inversion** "how do we make X good?" stalls. Ask instead "how would we *guarantee X fails*?"
46
+ - **Inversion:** "how do we make X good?" stalls. Ask instead "how would we *guarantee X fails*?"
47
47
  → invert each failure into a requirement.
48
- - **Second-Order Effects** a change that touches shared surface. For each first-order effect ask
48
+ - **Second-Order Effects:** a change that touches shared surface. For each first-order effect ask
49
49
  "and then what?" twice → surface the downstream consequence the diff hides.
50
50
 
51
51
  ### Sizing and estimating
52
- - **Delphi** an estimate one person is anchoring. Gather independent estimates *without* seeing
52
+ - **Delphi:** an estimate one person is anchoring. Gather independent estimates *without* seeing
53
53
  each other → reveal → discuss the spread → re-estimate → converge. Kills anchoring.
54
- - **Reference-Class Forecast** "this'll be quick." Find 3 past changes of the same *class* → use
54
+ - **Reference-Class Forecast:** "this'll be quick." Find 3 past changes of the same *class* → use
55
55
  their actual cost as the base rate, not the inside view.
56
56
 
57
57
  ### Widening the option space
58
- - **Tournament (A vs B)** two plausible designs. Put them head-to-head on the *decision hinge*
59
- (the one axis that actually differs) → pick on that axis, not on a feature checklist.
60
- - **Analogy Mapping** a novel problem. "What is this *like* that's already solved?" → borrow the
58
+ - **Tournament (A vs B):** two plausible designs. Put them head-to-head on the *decision hinge*
59
+ (the one axis that differs) → pick on that axis, not on a feature checklist.
60
+ - **Analogy Mapping:** a novel problem. "What is this *like* that's already solved?" → borrow the
61
61
  solved structure, note where the analogy breaks.
62
- - **Scope Extremes** a spec of uncertain size. Describe the *MVP* (smallest thing that ships
62
+ - **Scope Extremes:** a spec of uncertain size. Describe the *MVP* (smallest thing that ships
63
63
  value) and the *gold-plated* version → the right scope is usually named by the gap between them.
64
- - **YAGNI Pass** a plan carrying "might need it later." For each speculative piece, demand a
64
+ - **YAGNI Pass:** a plan carrying "might need it later." For each speculative piece, demand a
65
65
  *current* acceptance criterion → no criterion, cut it to a follow-up.
66
66
 
67
67
  ### Finding what's missing
68
- - **Edge-Case Hunt** a happy-path-shaped spec. Walk empty / boundary / invalid / concurrent /
68
+ - **Edge-Case Hunt:** a happy-path-shaped spec. Walk empty / boundary / invalid / concurrent /
69
69
  huge-or-weird input for each element → each uncovered case is a missing criterion.
70
- - **Chaos Scenarios** a system with external dependencies. "What if the DB is down / the API
70
+ - **Chaos Scenarios:** a system with external dependencies. "What if the DB is down / the API
71
71
  times out / the clock jumps / the input is hostile?" → each becomes a failure-mode requirement.
72
- - **Completeness Critic** end of a section. Ask only "what's *missing* a modality not covered, a
72
+ - **Completeness Critic:** end of a section. Ask only "what's *missing*: a modality not covered, a
73
73
  claim not verified, a flow with no path?" → the answer is the next round of work.
74
74
 
75
75
  ## The one rule
76
- Run the technique on the **section in front of you**, not the whole document a move applied to
76
+ Run the technique on the **section in front of you**, not the whole document: a move applied to
77
77
  everything is a move applied to nothing. Record what it changed in the phase artifact (a new
78
78
  requirement, a mitigation, a blocking question), not just that you ran it.
79
79
 
80
- A project can append its own house techniques to this file same three-column shape.
80
+ A project can append its own house techniques to this file: same three-column shape.
@@ -9,21 +9,21 @@ recoverable.
9
9
  later.
10
10
 
11
11
  ## No silent catches
12
- - Never swallow an error to make a problem "go away" that hides bugs and corrupts
12
+ - Never swallow an error to make a problem "go away", that hides bugs and corrupts
13
13
  state silently.
14
- - Catch the **narrowest** error you can actually handle, not a blanket catch-all. A
14
+ - Catch the **narrowest** error you can handle, not a blanket catch-all. A
15
15
  bare/broad catch masks unrelated failures.
16
16
  - If you catch, either recover meaningfully, or rethrow/wrap with added context. Don't
17
17
  log-and-continue past an error you didn't handle.
18
18
 
19
19
  ## Meaningful messages
20
- - Error messages state what failed, the relevant context (ids, inputs not secrets),
20
+ - Error messages state what failed, the relevant context (ids, inputs, not secrets),
21
21
  and ideally how to recover. Cryptic messages cost hours.
22
22
  - Distinguish *expected* failures (validation, not-found) from *unexpected* (bugs);
23
23
  handle the first as flow, surface the second.
24
24
 
25
25
  ## Fail closed (security-relevant paths)
26
- - On error in an auth/permission/transaction path, **deny and roll back** never
26
+ - On error in an auth/permission/transaction path, **deny and roll back**: never
27
27
  default to granting access or committing partial state.
28
28
 
29
29
  ## Logging
@@ -22,17 +22,17 @@ Refs: #123
22
22
 
23
23
  ## Atomic commits
24
24
  - One logical change per commit; it should build and pass tests on its own.
25
- - Don't mix refactor + behavior change in one commit split them so each is reviewable
25
+ - Don't mix refactor + behavior change in one commit: split them so each is reviewable
26
26
  and revertible.
27
27
 
28
28
  ## Small, focused branches/PRs
29
29
  - One concern per branch. Short-lived; rebase/merge per the project's convention.
30
30
  - Keep PRs small (see `code-review.md`) so they get a real review.
31
31
 
32
- ## Change summary prove the scope
32
+ ## Change summary: prove the scope
33
33
  When you hand back a change, state what you deliberately left alone, not only what you touched.
34
- A **"Things I didn't touch (intentionally)"** line the adjacent smells you noticed and declined
35
- to fix proves the diff is feature-scoped ([`core.md`](core.md) rule 7) and matches
34
+ A **"Things I didn't touch (intentionally)"** line (the adjacent smells you noticed and declined
35
+ to fix) proves the diff is feature-scoped ([`core.md`](core.md) rule 7) and matches
36
36
  `touched-files.md`, rather than an unsolicited renovation the reviewer has to untangle from the
37
37
  real change. Noticed-but-not-fixed becomes an FYI follow-up, never a silent addition to this diff.
38
38
 
@@ -49,17 +49,17 @@ When git is mid-merge or mid-rebase, recover before other workflow work:
49
49
 
50
50
  ## Versioning & changelog
51
51
  - **The version is a promise.** Semver encodes what a consumer may rely on. A "patch" that
52
- changes behaviour someone depended on is a major wearing a disguise every observable behaviour
52
+ changes behaviour someone depended on is a major wearing a disguise: every observable behaviour
53
53
  is a contract (Hyrum's law, [`deprecation.md`](deprecation.md)). When unsure whether a change is
54
54
  breaking, assume it is; a surprise major is far cheaper than a broken consumer.
55
55
  - **The tag is the single source of truth** for the version. Derive it from the tag; never
56
- hand-edit a version copied across `package.json`, a constant, and a header three copies drift,
56
+ hand-edit a version copied across `package.json`, a constant, and a header: three copies drift,
57
57
  one tag can't.
58
- - **A changelog is not the git log.** Curate it by user impact what a consumer must know to
59
- upgrade not by commit. Write the entry in the same change that earns it, while the impact is
58
+ - **A changelog is not the git log.** Curate it by user impact (what a consumer must know to
59
+ upgrade) not by commit. Write the entry in the same change that earns it, while the impact is
60
60
  fresh; a changelog reconstructed later is a guess.
61
61
 
62
62
  ## Never commit
63
63
  - Secrets, credentials, tokens, or `.env` files. If one lands in history, rotate it and
64
- scrub it deleting the file in a later commit is not enough.
64
+ scrub it: deleting the file in a later commit is not enough.
65
65
  - Generated artifacts, dependencies, or large binaries that belong in ignore rules.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Automate the checks humans forget, at the cheapest stage that can catch the problem.
4
4
  The guiding constraint: **the hook nobody runs is worse than a slower hook that still
5
- catches things so keep local hooks fast and scoped.**
5
+ catches things, so keep local hooks fast and scoped.**
6
6
 
7
7
  ## Stage the work by cost (the 10-second rule)
8
8
  - **pre-commit** (must finish in well under ~10s): format, lint, and secret-scan the
@@ -19,7 +19,7 @@ catches things — so keep local hooks fast and scoped.**
19
19
  | pre-commit | formatter, fast linter, secret scan, changed-files checks | the full test suite |
20
20
  | commit-msg | commit-message lint | anything slow |
21
21
  | pre-push | affected unit/integration tests | end-to-end matrices |
22
- | CI | everything (suite, build, e2e, security) | |
22
+ | CI | everything (suite, build, e2e, security) |: |
23
23
 
24
24
  ## Keep hooks fast
25
25
  - Operate on **staged/changed files**, not the whole tree.
@@ -27,7 +27,7 @@ catches things — so keep local hooks fast and scoped.**
27
27
  - Prefer fast tools; a slow check belongs in CI, not the commit path.
28
28
 
29
29
  ## Secret scanning
30
- Scan for credentials/keys/tokens before they enter history catching a secret
30
+ Scan for credentials/keys/tokens before they enter history: catching a secret
31
31
  pre-commit is cheap; rotating a leaked one is not.
32
32
 
33
33
  ## Adoption & escape hatches
@@ -1,30 +1,30 @@
1
1
  # Observability
2
2
 
3
- Observability is proof the feature works in **production** the evidence ladder extended
3
+ Observability is proof the feature works in **production**: the evidence ladder extended
4
4
  past your machine. `$rite-prove` shows it works on localhost; observability is how you know
5
5
  it still works, and why it broke, once real traffic hits it. Un-instrumented code is a claim
6
6
  you can't verify after deploy.
7
7
 
8
- ## Scope when this applies
8
+ ## Scope: when this applies
9
9
  Only when the change has a runtime surface worth debugging in prod: a new endpoint/route, a
10
10
  background job, a queue consumer, an external integration, a user-facing flow, or a new error
11
- path. Skip it for pure-internal refactors, docs, config-only, or type-only changes the same
11
+ path. Skip it for pure-internal refactors, docs, config-only, or type-only changes: the same
12
12
  scope discipline as [`performance.md`](performance.md). Don't instrument a typo fix.
13
13
 
14
14
  ## The on-call test
15
15
  The litmus for "is this observable": **if this breaks at 3am, can you tell *what* broke and
16
- *why* from the signals alone without shipping a new build just to add logging?** If the
16
+ *why* from the signals alone, without shipping a new build just to add logging?** If the
17
17
  answer is no, it isn't done. Instrument the failure path you just wrote, not only the happy
18
18
  path.
19
19
 
20
- **Write the questions first.** Before instrumenting, name the 24 questions an on-call engineer
20
+ **Write the questions first.** Before instrumenting, name the 2-4 questions an on-call engineer
21
21
  will ask ("which dependency is down?", "which tenant is affected?"); every signal you add
22
22
  answers one of them. A signal that maps to no question is noise you pay to store and never read.
23
23
 
24
24
  ## Structured logs
25
25
  - Log the events you'd need to reconstruct a failure: request boundaries, state transitions,
26
26
  external-call outcomes, validation rejections, and authz denials.
27
- - Structured (key/value or JSON), not string soup a log you can't query is a log you won't
27
+ - Structured (key/value or JSON), not string soup: a log you can't query is a log you won't
28
28
  read. Carry a correlation id (request / trace / job id) so one incident's lines join up.
29
29
  - **Never log secrets, tokens, or PII** ([`security.md`](security.md),
30
30
  [`error-handling.md`](error-handling.md)). Levels mean something: `error` is a page-worthy
@@ -33,34 +33,34 @@ answers one of them. A signal that maps to no question is noise you pay to store
33
33
  ## Metrics & SLIs
34
34
  - Cover the signals that page someone: request rate, error rate, latency/duration, and
35
35
  saturation of any bounded resource the change adds (a pool, a queue, a cache).
36
- - Emit a counter on the **failure** branch, not just success an error you don't count is an
36
+ - Emit a counter on the **failure** branch, not just success: an error you don't count is an
37
37
  error you can't alert on.
38
38
  - Name the one Service Level Indicator for the feature's critical path; pin a target (SLO)
39
39
  when the project tracks them.
40
40
  - **Cardinality is the metric failure mode.** A label's values come from a small, fixed set.
41
- Never label a metric with `user_id`, `email`, `request_id`, a full URL, or raw error text
41
+ Never label a metric with `user_id`, `email`, `request_id`, a full URL, or raw error text:
42
42
  unbounded label values explode the series count and the bill. Group by class (`5xx`, not
43
43
  `503`); put the high-cardinality id in a log line or a trace, where it belongs.
44
44
  - **Percentiles always, averages never.** Read latency as a histogram at p50 / p95 / p99. An
45
- average hides the tail, and the tail is where the pain and the SLO breach lives.
45
+ average hides the tail, and the tail is where the pain (and the SLO breach) lives.
46
46
 
47
47
  ## Traces (across a boundary)
48
48
  When a request crosses a service, queue, or async boundary, propagate a trace/correlation id
49
49
  so the end-to-end path is reconstructable, and span the external call and the slow operation.
50
50
  A latency regression you can't attribute to a span is a guess.
51
51
 
52
- ## Alerts symptom, not cause
53
- Alert on user-visible symptoms (error-rate spike, SLO burn), not on every internal gauge a
52
+ ## Alerts: symptom, not cause
53
+ Alert on user-visible symptoms (error-rate spike, SLO burn), not on every internal gauge: a
54
54
  noisy alert gets muted, and a muted alert is no alert. Every alert names an owner and a first
55
55
  action, or it's noise.
56
56
 
57
57
  Two severities, and only two: **page** (a human must act now) and **ticket** (handle it within
58
- hours). A third tier is the noise everyone learns to mute collapse it into one of the two.
58
+ hours). A third tier is the noise everyone learns to mute: collapse it into one of the two.
59
59
 
60
60
  ## Verify the telemetry fires (evidence, not assumption)
61
- Instrumentation you added but never watched emit is unproven the same standing as a test you
61
+ Instrumentation you added but never watched emit is unproven: the same standing as a test you
62
62
  never saw fail ([`testing.md`](testing.md) "See it fail first"). Trigger the path, confirm the
63
- log line / metric / span actually appears, and record the observation in `evidence.md`. "I
63
+ log line / metric / span appears, and record the observation in `evidence.md`. "I
64
64
  added logging" with no observed emission is not done.
65
65
 
66
66
  ## Confirm-before-remove
@@ -70,4 +70,4 @@ beats no-usage-assumed.
70
70
 
71
71
  ## Scope discipline
72
72
  Instrument what the change touches. Retrofitting observability across a whole service is its
73
- own effort record it as a follow-up, don't smuggle it into an unrelated change.
73
+ own effort: record it as a follow-up, don't smuggle it into an unrelated change.
@@ -1,23 +1,23 @@
1
1
  # Patterns & architecture
2
2
 
3
- Patterns are tools for **loose coupling and clarity** not a goal. Use one only when it
3
+ Patterns are tools for **loose coupling and clarity**, not a goal. Use one only when it
4
4
  makes the design simpler to reason about, not to show it's there.
5
5
 
6
6
  ## Principles
7
- - **SOLID, applied with judgment** single responsibility, open/closed, Liskov,
7
+ - **SOLID, applied with judgment:** single responsibility, open/closed, Liskov,
8
8
  interface segregation, dependency inversion. They're guidance toward low coupling and
9
9
  high cohesion, not boxes to tick.
10
- - **Composition over inheritance** prefer assembling behavior from small pieces over
10
+ - **Composition over inheritance:** prefer assembling behavior from small pieces over
11
11
  deep class hierarchies; inheritance couples tightly and resists change.
12
- - **Depend on abstractions at real seams** inject dependencies where you genuinely
12
+ - **Depend on abstractions at real seams:** inject dependencies where you genuinely
13
13
  need to swap or test them; don't wrap everything in an interface "just in case".
14
- - **Separation of concerns** keep I/O, business logic, and presentation in distinct
14
+ - **Separation of concerns:** keep I/O, business logic, and presentation in distinct
15
15
  layers so each can change and be tested on its own.
16
16
 
17
17
  ## Choose the pattern after you understand the problem
18
18
  - Identify the actual architectural challenge first; pick the pattern that fits it.
19
19
  A pattern applied to the wrong problem adds indirection and cost.
20
- - Start with the **simplest structure that works** a modular monolith beats premature
20
+ - Start with the **simplest structure that works**: a modular monolith beats premature
21
21
  microservices for a small team. Scale the architecture when load or team size demands
22
22
  it, not before.
23
23
 
@@ -27,13 +27,13 @@ makes the design simpler to reason about, not to show it's there.
27
27
  - Don't force a pattern everywhere; not every problem needs one.
28
28
  - Watch the cost: misused patterns add memory/indirection/overhead and obscure intent.
29
29
  - A refactor must **reduce** complexity, not just **relocate** it. Count the concepts a
30
- reader must hold; if a "cleaner" version leaves that count unchanged it isn't cleaner
30
+ reader must hold; if a "cleaner" version leaves that count unchanged it isn't cleaner:
31
31
  prefer the restructuring that makes whole branches/modes/layers disappear.
32
32
 
33
33
  ## Anti-patterns to name and avoid
34
34
  - God object / god function doing everything; tight coupling across layers.
35
35
  - Hidden global state and singletons used as a back door.
36
- - Copy-paste duplication instead of a shared abstraction (and its opposite a clever
36
+ - Copy-paste duplication instead of a shared abstraction (and its opposite: a clever
37
37
  abstraction over two things that aren't really the same).
38
38
  - Speculative generality: config, hooks, and extension points with no current user.
39
39
 
@@ -3,7 +3,7 @@
3
3
  Measure first. An optimization without a measurement is a guess that adds complexity.
4
4
 
5
5
  ## Measure before you optimize
6
- - Establish a number: a timing, a query count, a payload/bundle size, a memory figure
6
+ - Establish a number: a timing, a query count, a payload/bundle size, a memory figure:
7
7
  against a budget or a baseline.
8
8
  - No measurement → no performance claim, and usually no change. "Feels slow" is a
9
9
  hypothesis to test, not a reason to refactor.
@@ -17,13 +17,13 @@ Measure first. An optimization without a measurement is a guess that adds comple
17
17
 
18
18
  ## Optimize responsibly
19
19
  - Fix the **measured** bottleneck, then **re-measure** to prove the win (before/after).
20
- An optimization that doesn't move the number is just added complexity revert it.
20
+ An optimization that doesn't move the number is just added complexity: revert it.
21
21
  - Don't trade correctness or readability for a micro-win that doesn't matter.
22
22
  - Prefer a better algorithm or query over micro-tuning; the big wins are structural.
23
23
 
24
- ## Frontend Core Web Vitals
24
+ ## Frontend: Core Web Vitals
25
25
  For UI work, measure-first means LCP / INP / CLS judged against real numbers, each labeled
26
- by source (`Field (CrUX)`, `Lab (Lighthouse)`, `Trace (DevTools)`) field and lab are not
26
+ by source (`Field (CrUX)`, `Lab (Lighthouse)`, `Trace (DevTools)`): field and lab are not
27
27
  interchangeable, and static source cannot measure a CWV. The reviewer captures these via the
28
28
  browser-proof ladder when a budget exists, then judges them in Measured mode (a
29
29
  source-labeled scorecard); with no artifact it runs in Source mode and names the command.
@@ -32,5 +32,5 @@ Baseline checks + measurement commands:
32
32
 
33
33
  ## Scope
34
34
  Optimize what the change touches or what a measurement flags. Project-wide performance
35
- work is its own effort record it as a follow-up, don't smuggle it into an unrelated
35
+ work is its own effort: record it as a follow-up, don't smuggle it into an unrelated
36
36
  change.