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
- # Spec grammar testable requirements, parseable by tooling
1
+ # Spec grammar: testable requirements, parseable by tooling
2
2
 
3
3
  Acceptance criteria are the contract the seal checks ([`testing.md`](testing.md),
4
4
  [`code-review.md`](code-review.md)). Prose criteria work, but a requirement written as free
5
- text is graded by a human reading carefully and an ambiguous one ("handle errors
5
+ text is graded by a human reading carefully, and an ambiguous one ("handle errors
6
6
  gracefully") slips past every gate because nothing can falsify it. This rule adds an
7
7
  **optional, recommended structure** that makes a behavioral requirement testable by
8
8
  construction and parseable by a deterministic linter, so the spec phase catches a malformed
@@ -11,24 +11,24 @@ requirement before `$rite-define` plans against it.
11
11
  It is the grammar counterpart to [`testing.md`](testing.md): testing says *prove every
12
12
  behavior*; this says *write each behavior so it can be proven*.
13
13
 
14
- ## Progressive rigor when to use the structured form
14
+ ## Progressive rigor: when to use the structured form
15
15
 
16
16
  Match the rigor to the stakes; don't pay grammar ceremony for a one-liner.
17
17
 
18
- - **Simple / routine change** the flat checklist form is correct and stays. One bullet per
18
+ - **Simple / routine change:** the flat checklist form is correct and stays. One bullet per
19
19
  criterion, each tagged with an `AC-###` id:
20
20
  ```markdown
21
21
  ## Acceptance criteria
22
22
  - [ ] AC-001: export returns a CSV with a header row
23
23
  - [ ] AC-002: an empty dataset returns 204, not an empty 200
24
24
  ```
25
- - **Behavioral / high-risk / cross-boundary requirement** auth, data model, state machine,
26
- public API, money, a migration, anything with non-obvious edge cases use the structured
25
+ - **Behavioral / high-risk / cross-boundary requirement:** auth, data model, state machine,
26
+ public API, money, a migration, anything with non-obvious edge cases: use the structured
27
27
  **Requirement / Scenario** grammar below. The act of writing the WHEN/THEN forces the edge
28
28
  cases into the open at spec time, where they're cheapest to resolve.
29
29
 
30
30
  A spec mixes both: most criteria stay flat bullets; the two or three that carry real risk get
31
- the structured treatment. **Absence of structured requirements is never a failure** the
31
+ the structured treatment. **Absence of structured requirements is never a failure**: the
32
32
  validator no-ops on a flat-bullet spec, the same discipline as the principles gate
33
33
  ([`principles.md`](principles.md)).
34
34
 
@@ -49,26 +49,26 @@ The system SHALL reject any session token older than 15 minutes of inactivity.
49
49
 
50
50
  The rules the validator enforces (`devrites-engine spec-validate`):
51
51
 
52
- - **`### Requirement: <name>`** a level-3 heading. Its block MUST carry a **SHALL** or
52
+ - **`### Requirement: <name>`:** a level-3 heading. Its block MUST carry a **SHALL** or
53
53
  **MUST** statement (in the header or the body) describing the core behavior. Keep the name
54
54
  descriptive and under ~50 characters.
55
- - **Header identity is the key.** Requirement names are **unique** within a spec tooling (and
55
+ - **Header identity is the key.** Requirement names are **unique** within a spec: tooling (and
56
56
  any future spec sync) matches a requirement by its header text, so two requirements can't
57
57
  share a name. Renaming a requirement is a remove + add, not an in-place edit, so the change
58
58
  is visible.
59
- - **`#### Scenario: <name>`** every requirement owns **at least one**. A requirement with no
59
+ - **`#### Scenario: <name>`:** every requirement owns **at least one**. A requirement with no
60
60
  scenario is an assertion no test can target.
61
- - **WHEN / THEN** every scenario states a trigger (**WHEN**) and an observable outcome
61
+ - **WHEN / THEN:** every scenario states a trigger (**WHEN**) and an observable outcome
62
62
  (**THEN**); chain extra conditions with **AND**. Keywords are uppercase so they parse
63
63
  unambiguously. A scenario missing either half isn't falsifiable.
64
64
 
65
- ## Behavior first WHAT, not HOW
65
+ ## Behavior first: WHAT, not HOW
66
66
 
67
67
  A spec requirement describes observable behavior, not the implementation that delivers it
68
- (the spec stays technology-agnostic see `rite-spec/reference/spec-template.md`). "**THEN**
68
+ (the spec stays technology-agnostic: see `rite-spec/reference/spec-template.md`). "**THEN**
69
69
  respond 401" is behavior; "**THEN** call `AuthGuard.reject()`" leaks the design and locks the
70
70
  plan before `$rite-define` has chosen it. Name the input, the observable output, and the state
71
- change not the function, class, or library. Implementation belongs in `plan.md`, not the
71
+ change, not the function, class, or library. Implementation belongs in `plan.md`, not the
72
72
  requirement.
73
73
 
74
74
  Acceptance criteria are **surface-anchored**: they observe the outermost surface the user or
@@ -80,10 +80,10 @@ support proof, but they are not the criterion unless the spec's surface is expli
80
80
 
81
81
  - **`AC-###` ids nest inside scenarios.** Tag each scenario's checkable line with an `AC-###` id
82
82
  exactly as the flat form does. The same `devrites-engine check-acceptance` grades it against `seal.md` at
83
- the end of the lifecycle this grammar checks the requirement's **shape**, that script
83
+ the end of the lifecycle. This grammar checks the requirement's **shape**, that script
84
84
  checks its **proof**. The two compose; neither replaces the other.
85
85
  - **`$rite-prove` and `$rite-review` get concrete hooks.** Each scenario is one behavior to
86
- prove and the test analyst's unit of "is this actually covered" the WHEN/THEN maps
86
+ prove and the test analyst's unit of "is this covered": the WHEN/THEN maps
87
87
  straight to an arrange/assert ([`testing.md`](testing.md)).
88
88
  - **The spec-quality checklists still apply.** The grammar makes a requirement *parseable*; the
89
89
  `checklists/<domain>.md` "unit tests for English" still score whether it's *complete and
@@ -92,8 +92,8 @@ support proof, but they are not the criterion unless the spec's surface is expli
92
92
  ## Outcome metrics are not acceptance criteria
93
93
 
94
94
  A **buildable** acceptance criterion names an observable behavior a slice delivers and a test
95
- proves "export returns a CSV with a header row", "a token past 15m is rejected with 401". An
96
- **outcome metric** names a post-launch business result "reduce support tickets 50%", "lift
95
+ proves: "export returns a CSV with a header row", "a token past 15m is rejected with 401". An
96
+ **outcome metric** names a post-launch business result: "reduce support tickets 50%", "lift
97
97
  signup conversion 3pts", "cut p95 latency in prod under real traffic". The distinction is not
98
98
  pedantic: it decides what the coverage gate is allowed to check.
99
99
 
@@ -109,16 +109,16 @@ a separate **`## Success metrics`** heading:
109
109
  ```
110
110
 
111
111
  Why the split earns its place: an outcome metric tagged `AC-###` poisons the coverage gate in
112
- both directions. `devrites-engine analyze` flags it CRITICAL forever no slice can `Satisfies:` a KPI
112
+ both directions. `devrites-engine analyze` flags it CRITICAL forever: no slice can `Satisfies:` a KPI:
113
113
  so a genuinely complete plan reads as uncovered. And `devrites-engine check-acceptance` can never mark it
114
114
  proven at `$rite-seal`, because no end-to-end test run inside the feature observes a quarter of
115
- production traffic. The metric still matters it's *why* the feature exists but it belongs to
115
+ production traffic. The metric still matters (it's *why* the feature exists) but it belongs to
116
116
  intent (`brief.md` / `spec.md` overview), not to the criteria the lifecycle mechanically proves.
117
117
  The load-bearing test: **can one slice make this true and one test show it?** If no, it's a
118
118
  success metric, not an acceptance criterion. (`analyze` scopes its coverage count to `AC-###`
119
119
  ids, so an untagged `## Success metrics` line is correctly ignored by the gate.)
120
120
 
121
- ## The validator `devrites-engine spec-validate`
121
+ ## The validator: `devrites-engine spec-validate`
122
122
 
123
123
  Deterministic, zero-token. Run it on the workspace (or a spec path) at the spec readiness gate:
124
124
 
@@ -126,18 +126,18 @@ Deterministic, zero-token. Run it on the workspace (or a spec path) at the spec
126
126
  devrites-engine spec-validate .devrites/work/<slug>
127
127
  ```
128
128
 
129
- Exit codes: `0` valid (or no structured requirements nothing to lint), `1` grammar
129
+ Exit codes: `0` valid (or no structured requirements: nothing to lint), `1` grammar
130
130
  violation(s) with `file:line` locations, `2` usage, `5` missing `spec.md`. A non-zero exit is a
131
131
  blocking spec-readiness failure: fix the requirement, never soften the check. It runs as part
132
132
  of `$rite-spec`'s readiness gate and is safe to re-run any time the spec changes.
133
133
 
134
- ## Delta form when the capability ledger already holds this behavior
134
+ ## Delta form: when the capability ledger already holds this behavior
135
135
 
136
- The Requirement / Scenario block is the unit the **capability ledger** stores the living
136
+ The Requirement / Scenario block is the unit the **capability ledger** stores: the living
137
137
  `.devrites/specs/<capability>/spec.md` record of *what the system does now*, folded in on ship
138
138
  ([ledger reference](../../../rite-ship/reference/ledger.md)). When a feature changes behavior a
139
139
  ledger already describes, write its spec as **deltas against the ledger** instead of a flat
140
- snapshot, so the change not merely the end state is explicit and the fold is unambiguous.
140
+ snapshot, so the change (not merely the end state) is explicit and the fold is unambiguous.
141
141
 
142
142
  Group the structured `### Requirement:` blocks under three H2 sections, each tagged with the
143
143
  capability it folds into. One feature spec MAY carry deltas across several capabilities:
@@ -158,22 +158,22 @@ The system SHALL default to the OS colour-scheme on first load.
158
158
  Removed — superseded by system-preference detection.
159
159
  ```
160
160
 
161
- Fold semantics on `devrites-engine ledger sync` **ADDED** appends, **MODIFIED** replaces the
161
+ Fold semantics on `devrites-engine ledger sync`. **ADDED** appends, **MODIFIED** replaces the
162
162
  same-named requirement, **REMOVED** deletes it. Matching is by **header identity** (the rule
163
163
  above: names are unique and a rename is a remove + add), so the section MUST use the exact ledger
164
164
  header text for MODIFIED / REMOVED.
165
165
 
166
166
  - **The `— capability: <name>` suffix is the fold target.** Omit it and the fold defaults to the
167
- feature slug correct for a single-capability feature; name it explicitly when a feature spans
167
+ feature slug: correct for a single-capability feature; name it explicitly when a feature spans
168
168
  more than one, or when the capability differs from the slug.
169
169
  - **Pick the kind against the current ledger, not from memory.** `devrites-engine ledger show
170
170
  <capability>` prints what it holds. A real change marked ADDED yields two competing
171
171
  requirements; new behavior marked MODIFIED has nothing to replace.
172
- - **Greenfield stays flat.** A capability with no ledger entry is all-new write plain
172
+ - **Greenfield stays flat.** A capability with no ledger entry is all-new: write plain
173
173
  `### Requirement:` blocks with no delta H2; the first `ledger sync` seeds the capability as if
174
174
  every block were ADDED. Never pay delta ceremony for behavior that has no prior record.
175
175
 
176
- Validate the classification deterministically at the spec gate `--against` points the linter at
176
+ Validate the classification deterministically at the spec gate: `--against` points the linter at
177
177
  the ledger root so it flags an ADDED that already exists or a MODIFIED/REMOVED that doesn't:
178
178
 
179
179
  ```bash
@@ -181,5 +181,5 @@ devrites-engine spec-validate .devrites/work/<slug> --against .devrites/specs
181
181
  ```
182
182
 
183
183
  Exit `1` on a mismatch (a blocking spec-readiness failure); `0` when the deltas reconcile. The
184
- plain-grammar checks (SHALL, WHEN/THEN, unique headers) run in the same pass delta H2 headers
184
+ plain-grammar checks (SHALL, WHEN/THEN, unique headers) run in the same pass: delta H2 headers
185
185
  are transparent to them, so a flat spec and a delta spec lint identically.
@@ -1,25 +1,25 @@
1
1
  # Testing
2
2
 
3
- Tests are evidence. They exist to prove behavior and to catch regressions not to hit a
3
+ Tests are evidence. They exist to prove behavior and to catch regressions, not to hit a
4
4
  coverage number.
5
5
 
6
6
  ## Shape: a pyramid
7
7
  - **Many** fast, isolated unit tests at the base.
8
- - **Some** integration tests for how components actually fit together.
8
+ - **Some** integration tests for how components fit together.
9
9
  - **Few** end-to-end tests for critical user journeys (they're slow and the most
10
- flake-prone reserve them for what matters).
10
+ flake-prone: reserve them for what matters).
11
11
 
12
- Size by **resource cost**, not by folder. A **small** test runs in one process, no I/O the
12
+ Size by **resource cost**, not by folder. A **small** test runs in one process, no I/O: the
13
13
  base of the pyramid, and the only size allowed to be many. A **medium** test touches the local
14
14
  machine (filesystem, a container, `localhost`). A **large** test crosses the network or a real
15
- external service the flaky, slow tier E2E lives in. Push every behavior to the smallest size
15
+ external service: the flaky, slow tier E2E lives in. Push every behavior to the smallest size
16
16
  that can still prove it; a behavior provable small but written large is a slow test you'll
17
17
  learn to skip.
18
18
 
19
- ## Completeness every behavior, element, and flow has a test (at the right level)
19
+ ## Completeness: every behavior, element, and flow has a test (at the right level)
20
20
  "Tested" means *every* observable behavior, *every* interactive element (input field,
21
21
  checkbox, radio, select, toggle, button, actionable link), and *every* user flow has at
22
- least one **asserting** test not that a coverage % is hit. Completeness counts behaviors
22
+ least one **asserting** test, not that a coverage % is hit. Completeness counts behaviors
23
23
  covered, not lines executed: 100% line coverage can still leave a button's click untested,
24
24
  and a button with one asserting unit test is "covered" at far less than 100% lines. Chase the
25
25
  behavior, not the number.
@@ -27,97 +27,97 @@ behavior, not the number.
27
27
  Acceptance and tests are **surface-anchored**: assert the outermost surface the intent names. If the feature promised an API response, assert the API response; a database row behind it is supporting evidence, not proof.
28
28
 
29
29
  Put each test at the level that proves it cheapest and most reliably (the pyramid above):
30
- - **Element / field behavior** validation, required, format, min/max, toggle on→off, select
30
+ - **Element / field behavior:** validation, required, format, min/max, toggle on→off, select
31
31
  options load + change fires, button enabled/disabled, handler runs → a **unit / component**
32
32
  test. The bulk of element coverage lives here.
33
- - **Wiring across a few components** form submit → store → re-render → an **integration** test.
34
- - **A critical end-to-end journey** login, checkout, a destructive / data-loss path → **one
33
+ - **Wiring across a few components:** form submit → store → re-render → an **integration** test.
34
+ - **A critical end-to-end journey:** login, checkout, a destructive / data-loss path → **one
35
35
  E2E** test. E2E is slow + flake-prone; reserve it for journeys, **never one-per-field**.
36
36
 
37
- An interactive element or a user flow with **zero asserting test is a defect** surfaced as an
37
+ An interactive element or a user flow with **zero asserting test is a defect**: surfaced as an
38
38
  unproven gap at `$rite-prove` and a NO-GO at `$rite-seal`, the same standing as an unproven
39
39
  acceptance criterion. Assert what the element *does*, not that the markup exists.
40
40
 
41
- ## Assertion strength a test that can't fail proves nothing
41
+ ## Assertion strength: a test that can't fail proves nothing
42
42
  Completeness counts tests; strength makes them mean something. A test that passes for *any*
43
- implementation is theatre and it's the shape AI reaches for by default. Reject the weak forms:
43
+ implementation is theatre, and it's the shape AI reaches for by default. Reject the weak forms:
44
44
 
45
45
  - **No tautological assertions.** `expect(result).toBeDefined()` / `.not.toBeNull()` /
46
46
  `assert x is not None` pass for almost any return value. Assert the **actual value or
47
- observable effect** `expect(total).toBe(42)`, the specific error thrown, the state changed,
47
+ observable effect**: `expect(total).toBe(42)`, the specific error thrown, the state changed,
48
48
  the row written, the event emitted.
49
49
  - **Don't assert the mock.** A test that stubs a dependency to return `X` then asserts `X` came
50
50
  back tests the stub, not your code. Assert the real effect on real (or realistic) data.
51
51
  - **Cover the unhappy edges, not just the happy path.** AI is strong on "valid input → success"
52
- and weak on empty / boundary / invalid-state / long-or-weird input write those explicitly.
52
+ and weak on empty / boundary / invalid-state / long-or-weird input: write those explicitly.
53
53
  - **Prove it can fail (fault injection).** For a critical or regression path, after green,
54
54
  **break the code on purpose** (flip a comparison, drop a guard, return a constant) and confirm
55
- the test goes **red**. A test never seen failing against broken code is unproven this is
55
+ the test goes **red**. A test never seen failing against broken code is unproven. This is
56
56
  "see it fail first" extended past the happy path. Use the project's **mutation-testing** runner
57
57
  to automate it where one exists; otherwise spot-check the criticals by hand.
58
58
  - **Don't mirror the implementation.** A test whose assertions restate the code under test
59
59
  (same constant, same formula, same branch) stays green even when the logic is wrong. Assert
60
- an **independently-derived** expected value reasoned from the spec, not copied from the code.
60
+ an **independently-derived** expected value: reasoned from the spec, not copied from the code.
61
61
  - **Don't grep the source.** A test that reads a source file as text and asserts it
62
- `contains("foo")` proves a string exists, not that the behavior works it passes on dead code
62
+ `contains("foo")` proves a string exists, not that the behavior works. It passes on dead code
63
63
  and breaks on a harmless rename. **Execute** the code and assert its effect; reserve text
64
64
  scanning for genuinely textual artifacts (generated output, a committed manifest, a golden snapshot).
65
65
  - **Coverage says "ran"; mutation says "checked".** Line coverage proves a line executed, not
66
66
  that a test would catch it breaking. Where the project has a mutation runner, the changed-files
67
67
  mutation gate (`devrites-engine mutation-gate`) certifies the suite would fail on a wrong implementation; a
68
- surviving mutant is a behaviour no test actually checks.
68
+ surviving mutant is a behaviour no test checks.
69
69
 
70
70
  ## Never weaken a failing test (test integrity)
71
71
  A failing test is a signal, not an obstacle. Never delete it, skip it (`it.skip`, `xit`,
72
72
  `@pytest.mark.skip`, `t.Skip`, `#[ignore]`), mark it `xfail`, narrow the run with `.only`, or
73
73
  loosen its assertions to turn the suite green. A red test means one of two things: the code is
74
74
  wrong (fix the code) or the test is wrong (surface it as a blocking question and get the change
75
- agreed) never quietly make the red go away. A test weakened to clear a gate is a **Critical**
75
+ agreed): never quietly make the red go away. A test weakened to clear a gate is a **Critical**
76
76
  finding; `devrites-engine test-integrity` diffs the test files against the slice base and exits non-zero when
77
77
  one is deleted, skipped, or loses assertions.
78
78
 
79
- ## The verification gap green, but the test doesn't prove the change
79
+ ## The verification gap: green, but the test doesn't prove the change
80
80
  Test-integrity catches reaching green by *weakening* a test. This catches the quieter failure: a
81
81
  test that was never touched, is fully green, and still doesn't exercise the behavior that changed.
82
- A passing suite is not proof the *change* is proven the suite could pass identically with the
82
+ A passing suite is not proof the *change* is proven: the suite could pass identically with the
83
83
  change reverted. Run this trace for each behavioral change in the diff:
84
84
 
85
85
  1. **Screen for behavioral change.** What in this diff changes an observable output, not just its
86
- shape? Treat a dependency bump, a build/config edit, or a data change as behavioral too the
86
+ shape? Treat a dependency bump, a build/config edit, or a data change as behavioral too: the
87
87
  load-bearing change often isn't the line that looks important.
88
88
  2. **Name what changed.** State the old behavior and the new one in one sentence each.
89
- 3. **Trace to the consumer.** Find where the changed code is actually called from.
89
+ 3. **Trace to the consumer.** Find where the changed code is called from.
90
90
  4. **Inspect the consumer's test.** Does an *asserting*, surface-anchored test drive that consumer through the
91
- **new** behavior not merely execute the path, and not assert the old expectation still?
91
+ **new** behavior, not merely execute the path, and not assert the old expectation still?
92
92
  5. **Confirm the gap is real.** A finding is: `<change at file:line>` has no test that would go red
93
- if it regressed cite the test that *should* cover it and show what it misses. No general
93
+ if it regressed: cite the test that *should* cover it and show what it misses. No general
94
94
  advice; a gap you can't point at is not a finding (the verification gate applies).
95
95
 
96
- A changed behavior with no test that would fail on its regression is an **unproven gap** the same
96
+ A changed behavior with no test that would fail on its regression is an **unproven gap**: the same
97
97
  standing as an untested element or an unproven acceptance criterion. `devrites-engine test-integrity`
98
98
  emits an advisory when a diff changes source but touches no test file; that signal is a pointer to
99
99
  run this trace, never a verdict on its own.
100
100
 
101
101
  ## Test behavior, not implementation
102
- - Assert on observable behavior and public interfaces, not private internals so a
102
+ - Assert on observable behavior and public interfaces, not private internals, so a
103
103
  refactor that preserves behavior keeps tests green.
104
104
  - One behavior per test; name the test for the behavior. A failure should point straight
105
105
  at what broke.
106
106
  - Cover the unhappy paths: empty, boundary, error, permission-denied, and concurrency
107
- cases not just the happy path.
107
+ cases, not just the happy path.
108
108
  - **Test state, not interactions.** Assert the outcome (the value returned, the row written,
109
109
  the event emitted), not the sequence of internal calls that produced it. A test that asserts
110
110
  "method X was called then Y" locks in today's implementation and breaks on every refactor.
111
111
 
112
112
  ## DAMP over DRY in tests
113
113
  Test code optimizes for a different reader than production code: someone staring at a failure who
114
- needs the whole scenario in front of them. A test should read like a spec arrange, act, assert,
114
+ needs the whole scenario in front of them. A test should read like a spec: arrange, act, assert,
115
115
  visible in one screen. Prefer a little repetition over a clever shared helper that hides what the
116
- test actually exercises; **D**escriptive **A**nd **M**eaningful **P**hrases beat **D**on't **R**epeat **Y**ourself
117
- here. (This trades against production `coding-style.md` reuse-first on purpose a shared fixture
116
+ test exercises; **D**escriptive **A**nd **M**eaningful **P**hrases beat **D**on't **R**epeat **Y**ourself
117
+ here. (This trades against production `coding-style.md` reuse-first on purpose: a shared fixture
118
118
  that makes the reader scroll away to understand the case has cost more than the duplication saved.)
119
119
 
120
- ## Test doubles reach for the real thing first
120
+ ## Test doubles: reach for the real thing first
121
121
  Prefer, in order: **real > fake > stub > mock**. Use the real collaborator when it's fast and
122
122
  deterministic; a **fake** (an in-memory implementation that honors the contract) when it isn't; a
123
123
  **stub** for a canned return; a **mock** (asserting *how* it was called) only at a true boundary
@@ -130,8 +130,8 @@ breaks, because it tested the stubs, not the code (see "Don't assert the mock" a
130
130
  | A third-party API or paid/rate-limited service | Your own internal utilities and transforms |
131
131
  | Anything non-deterministic or slow | Validation and mapping under test |
132
132
 
133
- ## The Beyoncé Rule if you liked it, you should have put a test on it
134
- A refactor, a dependency bump, or CI is not responsible for catching your regressions your tests
133
+ ## The Beyoncé Rule: if you liked it, you should have put a test on it
134
+ A refactor, a dependency bump, or CI is not responsible for catching your regressions: your tests
135
135
  are. If a behavior matters, it has an asserting test that goes red when the behavior breaks;
136
136
  otherwise the next person to touch the area is free to break it and every gate will stay green.
137
137
  "It worked when I ran it" is not the same as "a test holds it." This is the completeness bar above,
@@ -141,7 +141,7 @@ stated as the rule you'll quote when a untested behavior regresses.
141
141
  For new behavior, watch the test fail for the *expected* reason before you make it pass.
142
142
  A green test you never saw red proves nothing.
143
143
 
144
- ## Determinism no flaky tests
144
+ ## Determinism: no flaky tests
145
145
  - A flaky test is a broken test. Isolate and fix it immediately; don't paper over it with
146
146
  retries or `sleep`.
147
147
  - Mock/stub external services so tests are predictable and fast. Use stable selectors in
@@ -150,13 +150,13 @@ A green test you never saw red proves nothing.
150
150
  - **Seam the clock; never read it raw in a tested path.** Route wall-clock reads through one
151
151
  injectable seam (an env override like `DEVRITES_NOW`, or an injected clock) so time/date-derived
152
152
  output is pinned in tests. A raw `time.Now()` feeding output makes a golden snapshot rot at the
153
- next day boundary green today, red tomorrow, for no code change. (Live example: `resolve
154
- next-qid` did exactly this until the seam landed see ADR-0006.)
153
+ next day boundary: green today, red tomorrow, for no code change. (Live example: `resolve
154
+ next-qid` did exactly this until the seam landed: see ADR-0006.)
155
155
  - **No elapsed-time assertions.** `assert elapsed < 200ms` / `took` under a threshold tests the
156
- CI runner's load, not your code flaky by construction. Assert the *result*, not the duration;
156
+ CI runner's load, not your code: flaky by construction. Assert the *result*, not the duration;
157
157
  for ordering or concurrency use a deterministic signal (a fake clock, a channel), never a `sleep`.
158
158
 
159
159
  ## Use the project's tooling
160
160
  Run the project's existing test commands and framework. Don't introduce a new test runner
161
- to prove one change. If a project has no tests, propose the minimal setup ask before
161
+ to prove one change. If a project has no tests, propose the minimal setup: ask before
162
162
  adding a framework.
@@ -1,51 +1,51 @@
1
- # Optional tooling code intelligence, docs, memory
1
+ # Optional tooling: code intelligence, docs, memory
2
2
 
3
3
  Every external tool DevRites can use is **optional**. Detect what's present, use the best fit
4
4
  for the job, and **degrade gracefully to `Read` / `Grep` / `Glob`** (always available) when
5
5
  nothing is. Never assume a tool is installed, never require installing one to run a phase, and
6
- never block on a missing tool the fallback path is a first-class path, not a failure.
6
+ never block on a missing tool: the fallback path is a first-class path, not a failure.
7
7
 
8
8
  DevRites is stack-agnostic and installs into arbitrary projects; an index or MCP server that
9
9
  exists in one repo is absent in the next. Treat the tools below as accelerators you reach for
10
10
  *when available*, not dependencies.
11
11
 
12
- ## Code intelligence structure, placement, callers, impact, blast-radius, trace
12
+ ## Code intelligence: structure, placement, callers, impact, blast-radius, trace
13
13
 
14
14
  For "where is X / what calls X / what would changing X break / how does X reach Y", reach for a
15
15
  code-intelligence index when available. The three indexes below are **recommended, not
16
- mandatory** follow this order and skip any that isn't installed:
16
+ mandatory**: follow this order and skip any that isn't installed:
17
17
 
18
- 1. **codebase-memory-mcp primary.** When available, answer the structural question here
18
+ 1. **codebase-memory-mcp: primary.** When available, answer the structural question here
19
19
  **first**: `search_graph`, `trace_path`, `detect_changes` (git-diff → affected symbols +
20
20
  blast radius), `get_architecture`, `get_code_snippet`, `query_graph`.
21
21
  2. **Cross-verify with codegraph *and* graphify (both, when present).** Re-ask the same
22
22
  structural question of `codegraph` (`.codegraph/`, `codegraph_*`) **and** `graphify`
23
- (`graphify-out/`), and confirm they agree with the codebase-memory-mcp answer especially
23
+ (`graphify-out/`), and confirm they agree with the codebase-memory-mcp answer, especially
24
24
  for load-bearing claims (blast radius, every caller of a thing you're about to change,
25
25
  "nothing else uses this"). A disagreement between indexes is a signal, not noise: trust a
26
26
  fresh read of the **live code** over any index, and investigate the gap before relying on it.
27
- 3. **Standard methods the always-available fallback.** When none of the three indexes is
28
- present or to pin an exact reference an index is unsure of use **LSP** (Claude Code Code
27
+ 3. **Standard methods: the always-available fallback.** When none of the three indexes is
28
+ present (or to pin an exact reference an index is unsure of) use **LSP** (Claude Code Code
29
29
  Intelligence: go-to-definition, find-references, hover / signature, diagnostics, document &
30
30
  workspace symbols) plus **`Read` / `Grep` / `Glob`**, reading comprehensively rather than
31
31
  stopping at the first match (see `core.md` rule 1).
32
32
 
33
33
  Use whatever subset is installed: codebase-memory-mcp alone is fine; codebase-memory-mcp plus
34
34
  one of the others still cross-verifies; none present → standard methods. The fallback path is a
35
- first-class path never block a phase on a missing index.
35
+ first-class path: never block a phase on a missing index.
36
36
 
37
37
  ### Keeping the indexes fresh
38
38
 
39
39
  An index only helps if it matches the live code; after edits, a stale graph manufactures the
40
40
  very index-disagreement step 2 treats as a signal. DevRites keeps the three mechanical indexes
41
- current automatically the [`devrites-refresh-indexes`](../../../devrites-refresh-indexes/SKILL.md)
41
+ current automatically: the [`devrites-refresh-indexes`](../../../devrites-refresh-indexes/SKILL.md)
42
42
  Stop hook incrementally reindexes whichever of codebase-memory-mcp, codegraph, and graphify
43
43
  track the repo, at end of turn, in a detached process. It self-guards on changes, no-ops when no
44
- index is present, and is disabled by `DEVRITES_REFRESH_INDEXES=off`. Force a synchronous refresh
45
- or re-run graphify's semantic pass after **doc** changes (`/graphify --update`) — via that
46
- skill. Still trust a fresh read of the live code over any index when they disagree.
44
+ index is present, and is disabled by `DEVRITES_REFRESH_INDEXES=off`. Use that skill to force a
45
+ synchronous refresh or rerun graphify's semantic pass after **doc** changes
46
+ (`/graphify --update`). Still trust a fresh read of the live code over any index when they disagree.
47
47
 
48
- ## Up-to-date library / framework docs context7
48
+ ## Up-to-date library / framework docs: context7
49
49
 
50
50
  When implementing against, choosing, or verifying an **external** library/framework whose
51
51
  current API or version behaviour matters, use **context7 if available**: `resolve-library-id`
@@ -53,45 +53,45 @@ current API or version behaviour matters, use **context7 if available**: `resolv
53
53
 
54
54
  context7 pairs with [`devrites-source-driven`](../../../devrites-source-driven/SKILL.md), it
55
55
  doesn't replace it: the project's **installed / pinned source still wins** for the version the
56
- project actually runs. Reach for context7 when the local source/docs are missing, or when you
56
+ project runs. Reach for context7 when the local source/docs are missing, or when you
57
57
  need the *current upstream* behaviour the installed copy may predate. Record the fact + its
58
- source in `decisions.md` / `evidence.md` the same way a context7 lookup is a cited source,
58
+ source in `decisions.md` / `evidence.md` the same way: a context7 lookup is a cited source,
59
59
  not a memory.
60
60
 
61
- ## Up-to-date web facts web search
61
+ ## Up-to-date web facts: web search
62
62
 
63
63
  When a **material decision** turns on a fact neither the codebase nor the installed docs can
64
- answer a common UX pattern, a standard/spec, a prevailing best practice, how comparable
65
- products solve it, a pricing/compatibility fact **search the web if a search tool is
64
+ answer: a common UX pattern, a standard/spec, a prevailing best practice, how comparable
65
+ products solve it, a pricing/compatibility fact: **search the web if a search tool is
66
66
  available**, and fold the finding into the option you present the human (below). Order of
67
67
  preference: **brave MCP is the primary** (`mcp__brave-search__brave_web_search`, or
68
68
  `brave_local_search` for place/region queries); **fall back to the harness's native web search
69
- only when brave MCP is unavailable** Claude Code `WebSearch` / `WebFetch`, Codex `web_search`
69
+ only when brave MCP is unavailable**. Claude Code `WebSearch` / `WebFetch`, Codex `web_search`
70
70
  (`--search` / `web_search = "live"` for fresh pages; its default `"cached"` mode serves an
71
71
  OpenAI-indexed snapshot); else skip and log the open question. A web fact is a **cited source**,
72
- not a memory record the claim + its URL in `decisions.md` (or the option's rationale) exactly as
72
+ not a memory: record the claim + its URL in `decisions.md` (or the option's rationale) exactly as
73
73
  a context7 lookup is recorded.
74
74
 
75
75
  Graceful degradation is the rule: no search tool present is a first-class path, never a
76
- blocker. Search to *inform the human's decision*, not to replace it the finding sharpens the
76
+ blocker. Search to *inform the human's decision*, not to replace it: the finding sharpens the
77
77
  recommended option and its trade-off; the human still picks.
78
78
 
79
79
  **Re-fetching a doc URL is cheap.** On Claude Code a `WebFetch` is transparently cached per project
80
- and, on reuse, revalidated against the origin the cached reading is replayed **only** on an HTTP
80
+ and, on reuse, revalidated against the origin: the cached reading is replayed **only** on an HTTP
81
81
  304 (unchanged), so a citation stays as sound as a fresh fetch without the round trip. Fetch freely;
82
82
  don't skip a verification to save a request. Mechanism: the `devrites-source-cache` hooks
83
83
  (`DEVRITES_SOURCE_CACHE=off` to disable); it pairs with
84
- [`devrites-source-driven`](../../../devrites-source-driven/SKILL.md). (Claude-only Codex has no
84
+ [`devrites-source-driven`](../../../devrites-source-driven/SKILL.md). (Claude-only. Codex has no
85
85
  `WebFetch` tool to intercept, and its `web_search` already serves from a cached index, so the same
86
86
  caching is built in there.)
87
87
 
88
- ## Architecture & decision memory codebase-memory-mcp
88
+ ## Architecture & decision memory: codebase-memory-mcp
89
89
 
90
90
  Where a fast codebase map or a durable decision record helps, and codebase-memory-mcp is
91
91
  available: `get_architecture` for an overview (languages, packages, routes, hotspots, clusters)
92
92
  during `$rite-spec`, `$rite-define`, or `$rite-zoom-out`; `manage_adr` for an ADR-style record
93
93
  at `$rite-define` / `$rite-seal`. This complements the workspace `decisions.md`; it never
94
- replaces it the workspace files remain the canonical source of truth.
94
+ replaces it: the workspace files remain the canonical source of truth.
95
95
 
96
96
  ## Output hygiene
97
97
 
@@ -10,13 +10,13 @@ This is the Codex mirror of a DevRites skill. In Codex:
10
10
 
11
11
  - Load DevRites engineering standards from `.agents/skills/devrites-lib/reference/standards/`. Read `.agents/skills/devrites-lib/reference/standards/core.md` before workflow work, then load the other `.agents/skills/devrites-lib/reference/standards/*.md` files exactly when this skill asks for them.
12
12
  - Use the installed `devrites-engine` binary as the canonical runtime helper surface for orientation, gates, and state mutation.
13
- - When this skill asks for a DevRites specialist or writer agent, **explicitly** spawn the matching Codex custom agent from `.codex/agents/devrites-*.toml` through Codex subagents (`spawn_agent`), then wait for its result and reconcile it as the skill instructs. Do not do the review inline just because the instruction to spawn is embedded here Codex under-fires embedded spawn/skill instructions (openai/codex #23496), so treat the spawn as required, not optional.
14
- - The independence of a fresh-context subagent is the point. If Codex genuinely cannot spawn subagents in the current surface, run the documented inline fallback and **label the result an inline fallback, not an independent review** an inline pass shares the calling context and is weaker evidence.
13
+ - When this skill asks for a DevRites specialist or writer agent, **explicitly** spawn the matching Codex custom agent from `.codex/agents/devrites-*.toml` through Codex subagents (`spawn_agent`), then wait for its result and reconcile it as the skill instructs. Do not do the review inline just because the instruction to spawn is embedded here: Codex under-fires embedded spawn/skill instructions (openai/codex #23496), so treat the spawn as required, not optional.
14
+ - The independence of a fresh-context subagent is the point. If Codex genuinely cannot spawn subagents in the current surface, run the documented inline fallback and **label the result an inline fallback, not an independent review**: an inline pass shares the calling context and is weaker evidence.
15
15
  - Codex project hooks are installed in `.codex/hooks.json`. Review and trust them with `/hooks` before relying on hook enforcement.
16
- - When this skill asks a HITL question via `AskUserQuestion`: Codex's equivalent (`request_user_input`) exists only in Plan mode. Outside Plan mode, render the option set as a plain numbered list in chat and **end the turn** so the human answers NEVER silently pick an option yourself; auto-picking is AFK's contract, gated by the `.devrites/AFK` sentinel.
16
+ - When this skill asks a HITL question via `AskUserQuestion`: Codex's equivalent (`request_user_input`) exists only in Plan mode. Outside Plan mode, render the option set as a plain numbered list in chat and **end the turn** so the human answers: NEVER silently pick an option yourself; auto-picking is AFK's contract, gated by the `.devrites/AFK` sentinel.
17
17
 
18
18
 
19
- # devrites-prose-craft prose that reads human
19
+ # devrites-prose-craft: prose that reads human
20
20
 
21
21
  Write for a teammate who will rely on the result. Remove model-shaped filler without sanding
22
22
  off the author's voice or weakening technical content.
@@ -26,15 +26,15 @@ off the author's voice or weakening technical content.
26
26
  `$rite-define` / `$rite-plan` (plan narrative), `$rite-temper` / `$rite-vet` (review prose),
27
27
  `$rite-review` / `$rite-seal` (findings + verdict prose), `$rite-ship` (commit/PR body),
28
28
  `devrites-doubt` / `rite-handoff` (notes).
29
- - Any phase composes a substantive **user-facing reply** (not the deterministic progress
30
- footers — those are script-rendered and exact by design).
29
+ - Any phase composes a substantive **user-facing reply**. Deterministic progress footers are
30
+ script-rendered and exact by design.
31
31
  - `$rite-polish` Phase 1 as the **catch** pass on prose that slipped through at write time.
32
32
 
33
33
  ## Two modes
34
34
  - **Rewrite (default).** When DevRites writes the artifact/reply or polishes it, fix the prose
35
35
  in place.
36
- - **Detect-only.** When auditing prose you shouldn't silently change a user's existing
37
- `spec.md` at `$rite-adopt`, text under `$rite-review` list the tells with quotes and leave
36
+ - **Detect-only.** When auditing prose you shouldn't silently change, such as a user's existing
37
+ `spec.md` at `$rite-adopt` or text under `$rite-review`, list the tells with quotes and leave
38
38
  the text untouched. Mirrors `devrites-audit`'s read-only stance.
39
39
 
40
40
  Order findings by severity: **P0** credibility-killers (vague attribution, a marketing
@@ -10,16 +10,16 @@ This is the Codex mirror of a DevRites skill. In Codex:
10
10
 
11
11
  - Load DevRites engineering standards from `.agents/skills/devrites-lib/reference/standards/`. Read `.agents/skills/devrites-lib/reference/standards/core.md` before workflow work, then load the other `.agents/skills/devrites-lib/reference/standards/*.md` files exactly when this skill asks for them.
12
12
  - Use the installed `devrites-engine` binary as the canonical runtime helper surface for orientation, gates, and state mutation.
13
- - When this skill asks for a DevRites specialist or writer agent, **explicitly** spawn the matching Codex custom agent from `.codex/agents/devrites-*.toml` through Codex subagents (`spawn_agent`), then wait for its result and reconcile it as the skill instructs. Do not do the review inline just because the instruction to spawn is embedded here Codex under-fires embedded spawn/skill instructions (openai/codex #23496), so treat the spawn as required, not optional.
14
- - The independence of a fresh-context subagent is the point. If Codex genuinely cannot spawn subagents in the current surface, run the documented inline fallback and **label the result an inline fallback, not an independent review** an inline pass shares the calling context and is weaker evidence.
13
+ - When this skill asks for a DevRites specialist or writer agent, **explicitly** spawn the matching Codex custom agent from `.codex/agents/devrites-*.toml` through Codex subagents (`spawn_agent`), then wait for its result and reconcile it as the skill instructs. Do not do the review inline just because the instruction to spawn is embedded here: Codex under-fires embedded spawn/skill instructions (openai/codex #23496), so treat the spawn as required, not optional.
14
+ - The independence of a fresh-context subagent is the point. If Codex genuinely cannot spawn subagents in the current surface, run the documented inline fallback and **label the result an inline fallback, not an independent review**: an inline pass shares the calling context and is weaker evidence.
15
15
  - Codex project hooks are installed in `.codex/hooks.json`. Review and trust them with `/hooks` before relying on hook enforcement.
16
- - When this skill asks a HITL question via `AskUserQuestion`: Codex's equivalent (`request_user_input`) exists only in Plan mode. Outside Plan mode, render the option set as a plain numbered list in chat and **end the turn** so the human answers NEVER silently pick an option yourself; auto-picking is AFK's contract, gated by the `.devrites/AFK` sentinel.
16
+ - When this skill asks a HITL question via `AskUserQuestion`: Codex's equivalent (`request_user_input`) exists only in Plan mode. Outside Plan mode, render the option set as a plain numbered list in chat and **end the turn** so the human answers: NEVER silently pick an option yourself; auto-picking is AFK's contract, gated by the `.devrites/AFK` sentinel.
17
17
 
18
18
 
19
- # devrites-refresh-indexes keep the code-intelligence indexes fresh
19
+ # devrites-refresh-indexes: keep the code-intelligence indexes fresh
20
20
 
21
21
  `tooling.md` says to cross-verify structural claims across codebase-memory-mcp, codegraph, and
22
- graphify, and that **a disagreement between indexes is a signal** a fresh read of live code
22
+ graphify, and that **a disagreement between indexes is a signal**: a fresh read of live code
23
23
  beats any index. A *stale* index manufactures exactly that disagreement. This keeps the three
24
24
  mechanical indexes current after edits so the next lookup is trustworthy.
25
25
 
@@ -33,7 +33,7 @@ anything, never blocks. Same incremental shape for all three; no LLM needed for
33
33
  | **codegraph** | `.codegraph/` exists + `codegraph` on PATH | `codegraph sync` |
34
34
  | **graphify** | `graphify-out/` exists + `graphify` on PATH | `graphify update .` |
35
35
 
36
- ## Automatic (already wired no action needed)
36
+ ## Automatic (already wired: no action needed)
37
37
 
38
38
  The `Stop` hook `devrites-engine hook refresh-indexes` runs at end of turn. It self-guards: exits
39
39
  instantly unless an index tracks the repo, exits instantly if no source file changed since the
@@ -42,7 +42,7 @@ ON by default; disable with `DEVRITES_REFRESH_INDEXES=off`.
42
42
 
43
43
  ## Manual / thorough refresh (this skill)
44
44
 
45
- Force a synchronous refresh now and print the report resolve the hook across install layouts:
45
+ Force a synchronous refresh now and print the report: resolve the hook across install layouts:
46
46
 
47
47
  ```bash
48
48
  devrites-engine hook refresh-indexes --force .
@@ -58,6 +58,6 @@ Then the one case the hook can't cover:
58
58
  - codegraph and codebase-memory-mcp each have their own background watcher; the explicit
59
59
  reindex is the belt-and-suspenders fallback for when a watcher isn't running. graphify has no
60
60
  default watcher, so this is its primary freshness path.
61
- - The index lags writes by ~1s after a refresh don't re-query in the same instant you edit.
62
- - Output hygiene (`prose-style.md`): don't name these tools to the user say what changed
61
+ - The index lags writes by ~1s after a refresh: don't re-query in the same instant you edit.
62
+ - Output hygiene (`prose-style.md`): don't name these tools to the user: say what changed
63
63
  ("re-indexed the edited files"), not which tool did it.