devrites 3.0.4 → 3.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (752) hide show
  1. package/CHANGELOG.md +40 -1
  2. package/README.md +280 -521
  3. package/SECURITY.md +91 -77
  4. package/docs/adr/README.md +7 -9
  5. package/docs/agents/domain.md +5 -5
  6. package/docs/agents/issue-driven-rites.md +5 -5
  7. package/docs/agents/issue-tracker.md +1 -1
  8. package/docs/agents/triage-labels.md +2 -2
  9. package/docs/architecture.md +101 -85
  10. package/docs/capability-surface-selection.md +3 -1
  11. package/docs/cli.md +20 -13
  12. package/docs/command-map.md +39 -35
  13. package/docs/engine/agent-contract.md +11 -9
  14. package/docs/engine/commands.md +92 -78
  15. package/docs/engine/state-schema.md +23 -19
  16. package/docs/engine/workspace-schema.md +12 -11
  17. package/docs/extensions.md +17 -17
  18. package/docs/flow.md +34 -23
  19. package/docs/harness-compliance.md +2 -2
  20. package/docs/orchestration.md +21 -20
  21. package/docs/porting-to-a-new-harness.md +6 -2
  22. package/docs/release.md +30 -12
  23. package/docs/research/go-authoritative-workflow-schema-and-quality-2026-07-20.md +3 -3
  24. package/docs/skills.md +77 -52
  25. package/docs/templates/CRITIC_REVIEW_PACKET_TEMPLATE.md +35 -0
  26. package/docs/usage.md +56 -45
  27. package/engine/Makefile +2 -2
  28. package/engine/commands.go +3 -3
  29. package/engine/harnessmatrix.go +2 -2
  30. package/engine/hookpolicy.go +9 -9
  31. package/engine/hooks.go +11 -11
  32. package/engine/hooks_workspace.go +11 -11
  33. package/engine/internal/doctor/doctor.go +7 -7
  34. package/engine/internal/gate/gate.go +11 -11
  35. package/engine/internal/harness/compliance.go +1 -1
  36. package/engine/internal/harness/harness.go +7 -7
  37. package/engine/internal/install/install.go +2 -0
  38. package/engine/internal/install/install_test.go +3 -3
  39. package/engine/internal/iohooks/detach_unix.go +1 -1
  40. package/engine/internal/iohooks/iohooks.go +8 -8
  41. package/engine/internal/lib/adoption.go +1 -1
  42. package/engine/internal/lib/analyze.go +15 -15
  43. package/engine/internal/lib/archivesearch.go +3 -3
  44. package/engine/internal/lib/budget.go +3 -3
  45. package/engine/internal/lib/buildreadiness.go +6 -6
  46. package/engine/internal/lib/checkacceptance.go +10 -10
  47. package/engine/internal/lib/closeout.go +5 -5
  48. package/engine/internal/lib/conventions.go +3 -3
  49. package/engine/internal/lib/coverage.go +4 -4
  50. package/engine/internal/lib/doubtcoverage.go +9 -9
  51. package/engine/internal/lib/evidencefresh.go +6 -6
  52. package/engine/internal/lib/extensions.go +9 -9
  53. package/engine/internal/lib/footprint.go +13 -13
  54. package/engine/internal/lib/jsonout.go +2 -2
  55. package/engine/internal/lib/lanes.go +2 -2
  56. package/engine/internal/lib/learnings.go +9 -9
  57. package/engine/internal/lib/ledger.go +8 -8
  58. package/engine/internal/lib/ledger_test.go +5 -5
  59. package/engine/internal/lib/mutationgate.go +4 -4
  60. package/engine/internal/lib/overrides.go +9 -9
  61. package/engine/internal/lib/overrides_test.go +2 -2
  62. package/engine/internal/lib/packageexistence.go +732 -55
  63. package/engine/internal/lib/packageexistence_test.go +343 -0
  64. package/engine/internal/lib/preamble.go +6 -6
  65. package/engine/internal/lib/progress.go +5 -5
  66. package/engine/internal/lib/reconcile.go +80 -20
  67. package/engine/internal/lib/reconcile_test.go +13 -5
  68. package/engine/internal/lib/resolve.go +3 -3
  69. package/engine/internal/lib/reviewerstats.go +2 -2
  70. package/engine/internal/lib/reviewintegrity.go +13 -13
  71. package/engine/internal/lib/reviewintegrity_test.go +6 -6
  72. package/engine/internal/lib/runbook.go +1 -1
  73. package/engine/internal/lib/session.go +1 -1
  74. package/engine/internal/lib/session_test.go +2 -2
  75. package/engine/internal/lib/specparse.go +4 -4
  76. package/engine/internal/lib/specskeleton.go +2 -2
  77. package/engine/internal/lib/specvalidate.go +13 -13
  78. package/engine/internal/lib/stuck.go +13 -13
  79. package/engine/internal/lib/templates/conventions_ledger_header.md +1 -1
  80. package/engine/internal/lib/templates/conventions_orient_header.txt +1 -1
  81. package/engine/internal/lib/testintegrity.go +9 -9
  82. package/engine/internal/lib/tickafk.go +4 -4
  83. package/engine/internal/lib/util.go +1 -1
  84. package/engine/internal/migrate/migrate.go +2 -2
  85. package/engine/internal/migrate/migrate_test.go +1 -0
  86. package/engine/internal/orient/firstrun.go +8 -8
  87. package/engine/internal/orient/orient.go +5 -5
  88. package/engine/internal/state/concurrency_test.go +4 -4
  89. package/engine/internal/state/feature.go +6 -6
  90. package/engine/internal/state/lock_unix.go +1 -1
  91. package/engine/internal/state/schema.go +1 -1
  92. package/engine/internal/state/snapshot.go +2 -2
  93. package/engine/internal/state/write.go +1 -1
  94. package/engine/internal/version/version.go +1 -1
  95. package/engine/main.go +5 -5
  96. package/engine/subagent_orient_context.txt +4 -4
  97. package/engine/testdata/golden/TestParityA1Guard/source-edit-enforce-denies.golden +1 -1
  98. package/engine/testdata/golden/TestParityAnalyze/slug=covered.golden +2 -2
  99. package/engine/testdata/golden/TestParityAnalyze/slug=dangling.golden +3 -3
  100. package/engine/testdata/golden/TestParityAnalyze/slug=noac.golden +2 -2
  101. package/engine/testdata/golden/TestParityAnalyze/slug=order.golden +4 -4
  102. package/engine/testdata/golden/TestParityAnalyze/slug=orphan.golden +3 -3
  103. package/engine/testdata/golden/TestParityAnalyze/slug=uncovered.golden +3 -3
  104. package/engine/testdata/golden/TestParityBudget/extra-md.golden +1 -1
  105. package/engine/testdata/golden/TestParityBudget/over-advisory.golden +1 -1
  106. package/engine/testdata/golden/TestParityBudget/over-strict.golden +1 -1
  107. package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +1 -1
  108. package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +1 -1
  109. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +1 -1
  110. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +1 -1
  111. package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-ok.golden +1 -1
  112. package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-ok.golden +1 -1
  113. package/engine/testdata/golden/TestParityCloseOut/active_pointed_elsewhere.golden +1 -1
  114. package/engine/testdata/golden/TestParityCoverage/arg=speconly.golden +2 -2
  115. package/engine/testdata/golden/TestParityCursor/bare.golden +1 -1
  116. package/engine/testdata/golden/TestParityCursor/full-afk.golden +1 -1
  117. package/engine/testdata/golden/TestParityCursor/full-hitl.golden +1 -1
  118. package/engine/testdata/golden/TestParityCursor/red.golden +2 -2
  119. package/engine/testdata/golden/TestParityCursor/zerogates.golden +1 -1
  120. package/engine/testdata/golden/TestParityDoubtCoverage/arg=ghost.golden +1 -1
  121. package/engine/testdata/golden/TestParityDoubtCoverage/arg=inline.golden +1 -1
  122. package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing-inline.golden +1 -1
  123. package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing.golden +1 -1
  124. package/engine/testdata/golden/TestParityDoubtCoverage/arg=nodoubt.golden +1 -1
  125. package/engine/testdata/golden/TestParityDoubtCoverage/arg=nolog.golden +1 -1
  126. package/engine/testdata/golden/TestParityLearnings/mine-no-archive.golden +1 -1
  127. package/engine/testdata/golden/TestParityLearnings/mine.golden +1 -1
  128. package/engine/testdata/golden/TestParityLearnings/nudge.golden +1 -1
  129. package/engine/testdata/golden/TestParityMutationGate/active-slug.golden +1 -1
  130. package/engine/testdata/golden/TestParityMutationGate/explicit-slug.golden +1 -1
  131. package/engine/testdata/golden/TestParityPackageExistence/declared.golden +1 -1
  132. package/engine/testdata/golden/TestParityPackageExistence/default-import-subpath.golden +1 -1
  133. package/engine/testdata/golden/TestParityReconcile/check-clean.golden +1 -1
  134. package/engine/testdata/golden/TestParityRedwatch/fail-writes-red.golden +1 -1
  135. package/engine/testdata/golden/TestParityResolve/answer/state.md.golden +1 -1
  136. package/engine/testdata/golden/TestParityResolve/batch.golden +1 -1
  137. package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-devrites-agent-denies.golden +1 -1
  138. package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-git-commit.golden +1 -1
  139. package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-mutating.golden +1 -1
  140. package/engine/testdata/golden/TestParitySpecValidate/arg=flat.golden +1 -1
  141. package/engine/testdata/golden/TestParitySpecValidate/arg=valid/spec.md.golden +1 -1
  142. package/engine/testdata/golden/TestParitySpecValidate/arg=valid.golden +1 -1
  143. package/engine/testdata/golden/TestParityStuckCheck/custom-window-2.golden +1 -1
  144. package/engine/testdata/golden/TestParityStuckCheck/dominant.golden +1 -1
  145. package/engine/testdata/golden/TestParityStuckCheck/few.golden +1 -1
  146. package/engine/testdata/golden/TestParityStuckCheck/ghost.golden +1 -1
  147. package/engine/testdata/golden/TestParityStuckCheck/identical.golden +1 -1
  148. package/engine/testdata/golden/TestParityStuckCheck/nolog.golden +1 -1
  149. package/engine/testdata/golden/TestParityStuckCheck/pingpong.golden +1 -1
  150. package/engine/testdata/golden/TestParityStuckCheck/varied.golden +1 -1
  151. package/engine/testdata/golden/TestParityStuckCheck/window-04-identical.golden +1 -1
  152. package/engine/testdata/golden/TestParityStuckCheck/window-2.5-varied4.golden +1 -1
  153. package/engine/testdata/golden/TestParityStuckCheck/window-4x-varied4.golden +1 -1
  154. package/engine/testdata/golden/TestParityStuckCheck/window-leadspace-varied4.golden +1 -1
  155. package/engine/testdata/golden/TestParityStuckCheck/window-plus4-identical.golden +1 -1
  156. package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent-subagent-type-key.golden +1 -1
  157. package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent.golden +1 -1
  158. package/engine/testdata/golden/TestParityTestIntegrity/clean.golden +1 -1
  159. package/engine/testdata/golden/TestParityTickAfk/missingField.golden +1 -1
  160. package/engine/testdata/golden/TestParityTickAfk/none.golden +1 -1
  161. package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +1 -1
  162. package/engine/testdata/golden/TestSpecSkeleton/missing-some.golden +1 -1
  163. package/engine/testdata/golden/TestSpecSkeleton/present-all.golden +1 -1
  164. package/engine/tests/adr_0004_required_by_phase_test.go +2 -2
  165. package/engine/tests/adr_0006_clock_seam_test.go +1 -1
  166. package/engine/tests/budget_test.go +1 -1
  167. package/engine/tests/canonical_ac_ids_test.go +2 -2
  168. package/engine/tests/cli_test.go +1 -1
  169. package/engine/tests/concurrency_cli_test.go +1 -1
  170. package/engine/tests/gate_test.go +4 -4
  171. package/engine/tests/hook_test.go +3 -3
  172. package/engine/tests/hooks_io_test.go +1 -1
  173. package/engine/tests/lib_parity_test.go +29 -29
  174. package/engine/tests/meta_test.go +2 -2
  175. package/engine/tests/parity_closeout_test.go +1 -1
  176. package/engine/tests/parity_learnings_test.go +2 -2
  177. package/engine/tests/parity_mutationgate_test.go +2 -2
  178. package/engine/tests/parity_resolve_test.go +1 -1
  179. package/engine/tests/parity_test.go +3 -3
  180. package/engine/tests/parity_tickafk_test.go +1 -1
  181. package/engine/validatepack.go +5 -5
  182. package/engine/validatepackskills.go +9 -9
  183. package/pack/.claude/agents/devrites-code-reviewer.md +21 -22
  184. package/pack/.claude/agents/devrites-devex-reviewer.md +17 -17
  185. package/pack/.claude/agents/devrites-doubt-reviewer.md +6 -6
  186. package/pack/.claude/agents/devrites-forge-judge.md +26 -26
  187. package/pack/.claude/agents/devrites-frontend-reviewer.md +17 -17
  188. package/pack/.claude/agents/devrites-performance-reviewer.md +19 -18
  189. package/pack/.claude/agents/devrites-plan-reviewer.md +29 -27
  190. package/pack/.claude/agents/devrites-retrospector.md +19 -19
  191. package/pack/.claude/agents/devrites-security-auditor.md +15 -15
  192. package/pack/.claude/agents/devrites-simplifier-reviewer.md +14 -14
  193. package/pack/.claude/agents/devrites-slice-wright.md +52 -51
  194. package/pack/.claude/agents/devrites-spec-reviewer.md +11 -11
  195. package/pack/.claude/agents/devrites-strategy-reviewer.md +21 -21
  196. package/pack/.claude/agents/devrites-test-analyst.md +13 -13
  197. package/pack/.claude/settings.json +1 -1
  198. package/pack/.claude/skills/devrites-api-interface/SKILL.md +12 -12
  199. package/pack/.claude/skills/devrites-audit/SKILL.md +7 -7
  200. package/pack/.claude/skills/devrites-browser-proof/SKILL.md +16 -16
  201. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +14 -14
  202. package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
  203. package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
  204. package/pack/.claude/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
  205. package/pack/.claude/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
  206. package/pack/.claude/skills/devrites-debug-recovery/reference/trace.md +4 -4
  207. package/pack/.claude/skills/devrites-doubt/SKILL.md +14 -14
  208. package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +18 -18
  209. package/pack/.claude/skills/devrites-frontend-craft/reference/craft.md +17 -17
  210. package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +25 -25
  211. package/pack/.claude/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
  212. package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
  213. package/pack/.claude/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
  214. package/pack/.claude/skills/devrites-frontend-craft/reference/shape.md +13 -13
  215. package/pack/.claude/skills/devrites-interview/SKILL.md +27 -27
  216. package/pack/.claude/skills/devrites-lib/SKILL.md +25 -27
  217. package/pack/.claude/skills/devrites-lib/reference/model-tiers.md +5 -5
  218. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
  219. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +11 -3
  220. package/pack/.claude/skills/devrites-lib/reference/standards/README.md +10 -10
  221. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
  222. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +37 -37
  223. package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
  224. package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
  225. package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +40 -40
  226. package/pack/.claude/skills/devrites-lib/reference/standards/coding-style.md +7 -7
  227. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
  228. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +23 -23
  229. package/pack/.claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  230. package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +18 -18
  231. package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
  232. package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +12 -13
  233. package/pack/.claude/skills/devrites-lib/reference/standards/documentation.md +4 -4
  234. package/pack/.claude/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
  235. package/pack/.claude/skills/devrites-lib/reference/standards/elicitation.md +26 -26
  236. package/pack/.claude/skills/devrites-lib/reference/standards/error-handling.md +4 -4
  237. package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
  238. package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +3 -3
  239. package/pack/.claude/skills/devrites-lib/reference/standards/observability.md +15 -15
  240. package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +8 -8
  241. package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +5 -5
  242. package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +31 -31
  243. package/pack/.claude/skills/devrites-lib/reference/standards/prose-style.md +25 -25
  244. package/pack/.claude/skills/devrites-lib/reference/standards/security.md +30 -30
  245. package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
  246. package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
  247. package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +40 -40
  248. package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +26 -26
  249. package/pack/.claude/skills/devrites-prose-craft/SKILL.md +5 -5
  250. package/pack/.claude/skills/devrites-refresh-indexes/SKILL.md +6 -6
  251. package/pack/.claude/skills/devrites-source-driven/SKILL.md +8 -8
  252. package/pack/.claude/skills/devrites-ux-shape/SKILL.md +33 -33
  253. package/pack/.claude/skills/devrites-ux-shape/reference/brief-template.md +6 -6
  254. package/pack/.claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
  255. package/pack/.claude/skills/rite/SKILL.md +13 -14
  256. package/pack/.claude/skills/rite/reference/menu.md +10 -10
  257. package/pack/.claude/skills/rite-adopt/SKILL.md +17 -18
  258. package/pack/.claude/skills/rite-adopt/reference/adoption.md +9 -9
  259. package/pack/.claude/skills/rite-adopt/reference/anti-patterns.md +6 -6
  260. package/pack/.claude/skills/rite-autocomplete/SKILL.md +14 -14
  261. package/pack/.claude/skills/rite-autocomplete/reference/decision-policy.md +4 -4
  262. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +7 -7
  263. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
  264. package/pack/.claude/skills/rite-build/SKILL.md +22 -22
  265. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +9 -9
  266. package/pack/.claude/skills/rite-build/reference/anti-patterns.md +6 -6
  267. package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +14 -14
  268. package/pack/.claude/skills/rite-build/reference/checkpoint.md +8 -8
  269. package/pack/.claude/skills/rite-build/reference/evidence-standard.md +1 -1
  270. package/pack/.claude/skills/rite-build/reference/forge.md +28 -29
  271. package/pack/.claude/skills/rite-build/reference/frontend-trigger.md +2 -2
  272. package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +3 -3
  273. package/pack/.claude/skills/rite-build/reference/output.md +1 -1
  274. package/pack/.claude/skills/rite-build/reference/phase-contract.md +44 -44
  275. package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
  276. package/pack/.claude/skills/rite-build/reference/tdd.md +6 -6
  277. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +23 -23
  278. package/pack/.claude/skills/rite-converge/SKILL.md +17 -17
  279. package/pack/.claude/skills/rite-converge/reference/anti-patterns.md +7 -7
  280. package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +14 -14
  281. package/pack/.claude/skills/rite-customize/SKILL.md +2 -2
  282. package/pack/.claude/skills/rite-define/SKILL.md +25 -25
  283. package/pack/.claude/skills/rite-define/reference/anti-patterns.md +5 -5
  284. package/pack/.claude/skills/rite-define/reference/gates.md +13 -13
  285. package/pack/.claude/skills/rite-define/reference/plan-template.md +1 -1
  286. package/pack/.claude/skills/rite-doctor/SKILL.md +11 -11
  287. package/pack/.claude/skills/rite-dogfood/SKILL.md +2 -2
  288. package/pack/.claude/skills/rite-explain/SKILL.md +22 -22
  289. package/pack/.claude/skills/rite-explain/reference/intake.md +16 -16
  290. package/pack/.claude/skills/rite-frame/SKILL.md +22 -22
  291. package/pack/.claude/skills/rite-frame/reference/failure-modes.md +13 -13
  292. package/pack/.claude/skills/rite-handoff/SKILL.md +12 -12
  293. package/pack/.claude/skills/rite-learn/SKILL.md +23 -23
  294. package/pack/.claude/skills/rite-plan/SKILL.md +21 -21
  295. package/pack/.claude/skills/rite-plan/reference/anti-patterns.md +3 -3
  296. package/pack/.claude/skills/rite-plan/reference/dependency-graph.md +1 -1
  297. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +3 -3
  298. package/pack/.claude/skills/rite-plan/reference/slicing.md +9 -9
  299. package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +3 -3
  300. package/pack/.claude/skills/rite-polish/SKILL.md +11 -11
  301. package/pack/.claude/skills/rite-polish/reference/anti-patterns.md +8 -8
  302. package/pack/.claude/skills/rite-polish/reference/backend-polish.md +13 -13
  303. package/pack/.claude/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
  304. package/pack/.claude/skills/rite-polish/reference/code.md +26 -26
  305. package/pack/.claude/skills/rite-polish/reference/harden-checklist.md +31 -31
  306. package/pack/.claude/skills/rite-polish/reference/ui.md +23 -23
  307. package/pack/.claude/skills/rite-pov/SKILL.md +3 -3
  308. package/pack/.claude/skills/rite-pr-feedback/SKILL.md +2 -2
  309. package/pack/.claude/skills/rite-pressure-test/SKILL.md +14 -14
  310. package/pack/.claude/skills/rite-prototype/SKILL.md +13 -13
  311. package/pack/.claude/skills/rite-prove/SKILL.md +17 -17
  312. package/pack/.claude/skills/rite-prove/reference/anti-patterns.md +4 -4
  313. package/pack/.claude/skills/rite-prove/reference/browser-proof.md +2 -2
  314. package/pack/.claude/skills/rite-prove/reference/failure-triage.md +4 -4
  315. package/pack/.claude/skills/rite-prove/reference/proof-ladder.md +6 -6
  316. package/pack/.claude/skills/rite-prove/reference/test-command-discovery.md +1 -1
  317. package/pack/.claude/skills/rite-quick/SKILL.md +22 -22
  318. package/pack/.claude/skills/rite-resolve/SKILL.md +18 -18
  319. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +7 -7
  320. package/pack/.claude/skills/rite-review/SKILL.md +34 -34
  321. package/pack/.claude/skills/rite-review/reference/anti-patterns.md +4 -4
  322. package/pack/.claude/skills/rite-review/reference/cognitive-load.md +22 -22
  323. package/pack/.claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
  324. package/pack/.claude/skills/rite-review/reference/five-axis-review.md +8 -8
  325. package/pack/.claude/skills/rite-review/reference/nielsen-heuristics.md +14 -14
  326. package/pack/.claude/skills/rite-review/reference/performance-checklist.md +14 -14
  327. package/pack/.claude/skills/rite-review/reference/security-review.md +9 -9
  328. package/pack/.claude/skills/rite-seal/SKILL.md +26 -26
  329. package/pack/.claude/skills/rite-seal/reference/anti-patterns.md +8 -8
  330. package/pack/.claude/skills/rite-seal/reference/conventions-ledger.md +8 -8
  331. package/pack/.claude/skills/rite-seal/reference/final-evidence.md +9 -9
  332. package/pack/.claude/skills/rite-seal/reference/go-no-go.md +9 -9
  333. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +43 -43
  334. package/pack/.claude/skills/rite-ship/SKILL.md +12 -12
  335. package/pack/.claude/skills/rite-ship/reference/anti-patterns.md +5 -5
  336. package/pack/.claude/skills/rite-ship/reference/close-out.md +2 -2
  337. package/pack/.claude/skills/rite-ship/reference/design-memory.md +22 -22
  338. package/pack/.claude/skills/rite-ship/reference/git-ship.md +10 -10
  339. package/pack/.claude/skills/rite-ship/reference/ledger.md +9 -9
  340. package/pack/.claude/skills/rite-ship/reference/rollout.md +11 -11
  341. package/pack/.claude/skills/rite-ship/reference/ship-template.md +1 -1
  342. package/pack/.claude/skills/rite-spec/SKILL.md +45 -45
  343. package/pack/.claude/skills/rite-spec/reference/acceptance-criteria.md +4 -4
  344. package/pack/.claude/skills/rite-spec/reference/anti-patterns.md +6 -6
  345. package/pack/.claude/skills/rite-spec/reference/interview-patterns.md +3 -3
  346. package/pack/.claude/skills/rite-spec/reference/investigation.md +21 -21
  347. package/pack/.claude/skills/rite-spec/reference/question-protocol.md +9 -9
  348. package/pack/.claude/skills/rite-spec/reference/references-intake.md +8 -8
  349. package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +19 -19
  350. package/pack/.claude/skills/rite-status/SKILL.md +13 -13
  351. package/pack/.claude/skills/rite-temper/SKILL.md +29 -29
  352. package/pack/.claude/skills/rite-temper/reference/anti-patterns.md +11 -11
  353. package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +20 -20
  354. package/pack/.claude/skills/rite-temper/reference/scope-modes.md +16 -16
  355. package/pack/.claude/skills/rite-temper/reference/significance.md +10 -10
  356. package/pack/.claude/skills/rite-temper/reference/strategy-template.md +14 -14
  357. package/pack/.claude/skills/rite-vet/SKILL.md +31 -31
  358. package/pack/.claude/skills/rite-vet/reference/anti-patterns.md +14 -14
  359. package/pack/.claude/skills/rite-vet/reference/artifacts.md +10 -10
  360. package/pack/.claude/skills/rite-vet/reference/cross-model.md +9 -9
  361. package/pack/.claude/skills/rite-vet/reference/depth.md +14 -14
  362. package/pack/.claude/skills/rite-vet/reference/eng-lenses.md +9 -9
  363. package/pack/.claude/skills/rite-vet/reference/review-axes.md +28 -28
  364. package/pack/.claude/skills/rite-zoom-out/SKILL.md +18 -18
  365. package/pack/generated/claude/agents/devrites-code-reviewer.md +21 -22
  366. package/pack/generated/claude/agents/devrites-devex-reviewer.md +17 -17
  367. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +6 -6
  368. package/pack/generated/claude/agents/devrites-forge-judge.md +26 -26
  369. package/pack/generated/claude/agents/devrites-frontend-reviewer.md +17 -17
  370. package/pack/generated/claude/agents/devrites-performance-reviewer.md +19 -18
  371. package/pack/generated/claude/agents/devrites-plan-reviewer.md +29 -27
  372. package/pack/generated/claude/agents/devrites-retrospector.md +19 -19
  373. package/pack/generated/claude/agents/devrites-security-auditor.md +15 -15
  374. package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +14 -14
  375. package/pack/generated/claude/agents/devrites-slice-wright.md +52 -51
  376. package/pack/generated/claude/agents/devrites-spec-reviewer.md +11 -11
  377. package/pack/generated/claude/agents/devrites-strategy-reviewer.md +21 -21
  378. package/pack/generated/claude/agents/devrites-test-analyst.md +13 -13
  379. package/pack/generated/claude/settings.json +1 -1
  380. package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +12 -12
  381. package/pack/generated/claude/skills/devrites-audit/SKILL.md +7 -7
  382. package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +16 -16
  383. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +14 -14
  384. package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
  385. package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
  386. package/pack/generated/claude/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
  387. package/pack/generated/claude/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
  388. package/pack/generated/claude/skills/devrites-debug-recovery/reference/trace.md +4 -4
  389. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +14 -14
  390. package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +18 -18
  391. package/pack/generated/claude/skills/devrites-frontend-craft/reference/craft.md +17 -17
  392. package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +25 -25
  393. package/pack/generated/claude/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
  394. package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
  395. package/pack/generated/claude/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
  396. package/pack/generated/claude/skills/devrites-frontend-craft/reference/shape.md +13 -13
  397. package/pack/generated/claude/skills/devrites-interview/SKILL.md +27 -27
  398. package/pack/generated/claude/skills/devrites-lib/SKILL.md +25 -27
  399. package/pack/generated/claude/skills/devrites-lib/reference/model-tiers.md +5 -5
  400. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
  401. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +11 -3
  402. package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +10 -10
  403. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
  404. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +37 -37
  405. package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
  406. package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
  407. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +40 -40
  408. package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +7 -7
  409. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
  410. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +23 -23
  411. package/pack/generated/claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  412. package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +18 -18
  413. package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
  414. package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +12 -13
  415. package/pack/generated/claude/skills/devrites-lib/reference/standards/documentation.md +4 -4
  416. package/pack/generated/claude/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
  417. package/pack/generated/claude/skills/devrites-lib/reference/standards/elicitation.md +26 -26
  418. package/pack/generated/claude/skills/devrites-lib/reference/standards/error-handling.md +4 -4
  419. package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
  420. package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +3 -3
  421. package/pack/generated/claude/skills/devrites-lib/reference/standards/observability.md +15 -15
  422. package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +8 -8
  423. package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +5 -5
  424. package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +31 -31
  425. package/pack/generated/claude/skills/devrites-lib/reference/standards/prose-style.md +25 -25
  426. package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +30 -30
  427. package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
  428. package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
  429. package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +40 -40
  430. package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +26 -26
  431. package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +5 -5
  432. package/pack/generated/claude/skills/devrites-refresh-indexes/SKILL.md +6 -6
  433. package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +8 -8
  434. package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +33 -33
  435. package/pack/generated/claude/skills/devrites-ux-shape/reference/brief-template.md +6 -6
  436. package/pack/generated/claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
  437. package/pack/generated/claude/skills/rite/SKILL.md +13 -14
  438. package/pack/generated/claude/skills/rite/reference/menu.md +10 -10
  439. package/pack/generated/claude/skills/rite-adopt/SKILL.md +17 -18
  440. package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +9 -9
  441. package/pack/generated/claude/skills/rite-adopt/reference/anti-patterns.md +6 -6
  442. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +14 -14
  443. package/pack/generated/claude/skills/rite-autocomplete/reference/decision-policy.md +4 -4
  444. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +7 -7
  445. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
  446. package/pack/generated/claude/skills/rite-build/SKILL.md +22 -22
  447. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +9 -9
  448. package/pack/generated/claude/skills/rite-build/reference/anti-patterns.md +6 -6
  449. package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +14 -14
  450. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +8 -8
  451. package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +1 -1
  452. package/pack/generated/claude/skills/rite-build/reference/forge.md +28 -29
  453. package/pack/generated/claude/skills/rite-build/reference/frontend-trigger.md +2 -2
  454. package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +3 -3
  455. package/pack/generated/claude/skills/rite-build/reference/output.md +1 -1
  456. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +44 -44
  457. package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
  458. package/pack/generated/claude/skills/rite-build/reference/tdd.md +6 -6
  459. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +23 -23
  460. package/pack/generated/claude/skills/rite-converge/SKILL.md +17 -17
  461. package/pack/generated/claude/skills/rite-converge/reference/anti-patterns.md +7 -7
  462. package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +14 -14
  463. package/pack/generated/claude/skills/rite-customize/SKILL.md +2 -2
  464. package/pack/generated/claude/skills/rite-define/SKILL.md +25 -25
  465. package/pack/generated/claude/skills/rite-define/reference/anti-patterns.md +5 -5
  466. package/pack/generated/claude/skills/rite-define/reference/gates.md +13 -13
  467. package/pack/generated/claude/skills/rite-define/reference/plan-template.md +1 -1
  468. package/pack/generated/claude/skills/rite-doctor/SKILL.md +11 -11
  469. package/pack/generated/claude/skills/rite-dogfood/SKILL.md +2 -2
  470. package/pack/generated/claude/skills/rite-explain/SKILL.md +22 -22
  471. package/pack/generated/claude/skills/rite-explain/reference/intake.md +16 -16
  472. package/pack/generated/claude/skills/rite-frame/SKILL.md +22 -22
  473. package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +13 -13
  474. package/pack/generated/claude/skills/rite-handoff/SKILL.md +12 -12
  475. package/pack/generated/claude/skills/rite-learn/SKILL.md +23 -23
  476. package/pack/generated/claude/skills/rite-plan/SKILL.md +21 -21
  477. package/pack/generated/claude/skills/rite-plan/reference/anti-patterns.md +3 -3
  478. package/pack/generated/claude/skills/rite-plan/reference/dependency-graph.md +1 -1
  479. package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +3 -3
  480. package/pack/generated/claude/skills/rite-plan/reference/slicing.md +9 -9
  481. package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +3 -3
  482. package/pack/generated/claude/skills/rite-polish/SKILL.md +11 -11
  483. package/pack/generated/claude/skills/rite-polish/reference/anti-patterns.md +8 -8
  484. package/pack/generated/claude/skills/rite-polish/reference/backend-polish.md +13 -13
  485. package/pack/generated/claude/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
  486. package/pack/generated/claude/skills/rite-polish/reference/code.md +26 -26
  487. package/pack/generated/claude/skills/rite-polish/reference/harden-checklist.md +31 -31
  488. package/pack/generated/claude/skills/rite-polish/reference/ui.md +23 -23
  489. package/pack/generated/claude/skills/rite-pov/SKILL.md +3 -3
  490. package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +2 -2
  491. package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +14 -14
  492. package/pack/generated/claude/skills/rite-prototype/SKILL.md +13 -13
  493. package/pack/generated/claude/skills/rite-prove/SKILL.md +17 -17
  494. package/pack/generated/claude/skills/rite-prove/reference/anti-patterns.md +4 -4
  495. package/pack/generated/claude/skills/rite-prove/reference/browser-proof.md +2 -2
  496. package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +4 -4
  497. package/pack/generated/claude/skills/rite-prove/reference/proof-ladder.md +6 -6
  498. package/pack/generated/claude/skills/rite-prove/reference/test-command-discovery.md +1 -1
  499. package/pack/generated/claude/skills/rite-quick/SKILL.md +22 -22
  500. package/pack/generated/claude/skills/rite-resolve/SKILL.md +18 -18
  501. package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +7 -7
  502. package/pack/generated/claude/skills/rite-review/SKILL.md +34 -34
  503. package/pack/generated/claude/skills/rite-review/reference/anti-patterns.md +4 -4
  504. package/pack/generated/claude/skills/rite-review/reference/cognitive-load.md +22 -22
  505. package/pack/generated/claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
  506. package/pack/generated/claude/skills/rite-review/reference/five-axis-review.md +8 -8
  507. package/pack/generated/claude/skills/rite-review/reference/nielsen-heuristics.md +14 -14
  508. package/pack/generated/claude/skills/rite-review/reference/performance-checklist.md +14 -14
  509. package/pack/generated/claude/skills/rite-review/reference/security-review.md +9 -9
  510. package/pack/generated/claude/skills/rite-seal/SKILL.md +26 -26
  511. package/pack/generated/claude/skills/rite-seal/reference/anti-patterns.md +8 -8
  512. package/pack/generated/claude/skills/rite-seal/reference/conventions-ledger.md +8 -8
  513. package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +9 -9
  514. package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +9 -9
  515. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +43 -43
  516. package/pack/generated/claude/skills/rite-ship/SKILL.md +12 -12
  517. package/pack/generated/claude/skills/rite-ship/reference/anti-patterns.md +5 -5
  518. package/pack/generated/claude/skills/rite-ship/reference/close-out.md +2 -2
  519. package/pack/generated/claude/skills/rite-ship/reference/design-memory.md +22 -22
  520. package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +10 -10
  521. package/pack/generated/claude/skills/rite-ship/reference/ledger.md +9 -9
  522. package/pack/generated/claude/skills/rite-ship/reference/rollout.md +11 -11
  523. package/pack/generated/claude/skills/rite-ship/reference/ship-template.md +1 -1
  524. package/pack/generated/claude/skills/rite-spec/SKILL.md +45 -45
  525. package/pack/generated/claude/skills/rite-spec/reference/acceptance-criteria.md +4 -4
  526. package/pack/generated/claude/skills/rite-spec/reference/anti-patterns.md +6 -6
  527. package/pack/generated/claude/skills/rite-spec/reference/interview-patterns.md +3 -3
  528. package/pack/generated/claude/skills/rite-spec/reference/investigation.md +21 -21
  529. package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +9 -9
  530. package/pack/generated/claude/skills/rite-spec/reference/references-intake.md +8 -8
  531. package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +19 -19
  532. package/pack/generated/claude/skills/rite-status/SKILL.md +13 -13
  533. package/pack/generated/claude/skills/rite-temper/SKILL.md +29 -29
  534. package/pack/generated/claude/skills/rite-temper/reference/anti-patterns.md +11 -11
  535. package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +20 -20
  536. package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +16 -16
  537. package/pack/generated/claude/skills/rite-temper/reference/significance.md +10 -10
  538. package/pack/generated/claude/skills/rite-temper/reference/strategy-template.md +14 -14
  539. package/pack/generated/claude/skills/rite-vet/SKILL.md +31 -31
  540. package/pack/generated/claude/skills/rite-vet/reference/anti-patterns.md +14 -14
  541. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +10 -10
  542. package/pack/generated/claude/skills/rite-vet/reference/cross-model.md +9 -9
  543. package/pack/generated/claude/skills/rite-vet/reference/depth.md +14 -14
  544. package/pack/generated/claude/skills/rite-vet/reference/eng-lenses.md +9 -9
  545. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +28 -28
  546. package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +18 -18
  547. package/pack/generated/codex/agents/devrites-code-reviewer.toml +21 -22
  548. package/pack/generated/codex/agents/devrites-devex-reviewer.toml +17 -17
  549. package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +6 -6
  550. package/pack/generated/codex/agents/devrites-forge-judge.toml +26 -26
  551. package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +17 -17
  552. package/pack/generated/codex/agents/devrites-performance-reviewer.toml +19 -18
  553. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +29 -27
  554. package/pack/generated/codex/agents/devrites-retrospector.toml +19 -19
  555. package/pack/generated/codex/agents/devrites-security-auditor.toml +15 -15
  556. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +14 -14
  557. package/pack/generated/codex/agents/devrites-slice-wright.toml +52 -51
  558. package/pack/generated/codex/agents/devrites-spec-reviewer.toml +11 -11
  559. package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +21 -21
  560. package/pack/generated/codex/agents/devrites-test-analyst.toml +13 -13
  561. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +15 -15
  562. package/pack/generated/codex/skills/devrites-audit/SKILL.md +10 -10
  563. package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +19 -19
  564. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +17 -17
  565. package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
  566. package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
  567. package/pack/generated/codex/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
  568. package/pack/generated/codex/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
  569. package/pack/generated/codex/skills/devrites-debug-recovery/reference/trace.md +4 -4
  570. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +17 -17
  571. package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +20 -20
  572. package/pack/generated/codex/skills/devrites-frontend-craft/reference/craft.md +17 -17
  573. package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +25 -25
  574. package/pack/generated/codex/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
  575. package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
  576. package/pack/generated/codex/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
  577. package/pack/generated/codex/skills/devrites-frontend-craft/reference/shape.md +13 -13
  578. package/pack/generated/codex/skills/devrites-interview/SKILL.md +30 -30
  579. package/pack/generated/codex/skills/devrites-lib/SKILL.md +28 -30
  580. package/pack/generated/codex/skills/devrites-lib/reference/model-tiers.md +5 -5
  581. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
  582. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +11 -3
  583. package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +10 -10
  584. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
  585. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +37 -37
  586. package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
  587. package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
  588. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +40 -40
  589. package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +7 -7
  590. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
  591. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +23 -23
  592. package/pack/generated/codex/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  593. package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +18 -18
  594. package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
  595. package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +12 -13
  596. package/pack/generated/codex/skills/devrites-lib/reference/standards/documentation.md +4 -4
  597. package/pack/generated/codex/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
  598. package/pack/generated/codex/skills/devrites-lib/reference/standards/elicitation.md +26 -26
  599. package/pack/generated/codex/skills/devrites-lib/reference/standards/error-handling.md +4 -4
  600. package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
  601. package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +3 -3
  602. package/pack/generated/codex/skills/devrites-lib/reference/standards/observability.md +15 -15
  603. package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +8 -8
  604. package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +5 -5
  605. package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +31 -31
  606. package/pack/generated/codex/skills/devrites-lib/reference/standards/prose-style.md +25 -25
  607. package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +30 -30
  608. package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
  609. package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
  610. package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +40 -40
  611. package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +26 -26
  612. package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +8 -8
  613. package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +9 -9
  614. package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +11 -11
  615. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +36 -36
  616. package/pack/generated/codex/skills/devrites-ux-shape/reference/brief-template.md +6 -6
  617. package/pack/generated/codex/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
  618. package/pack/generated/codex/skills/rite/SKILL.md +16 -17
  619. package/pack/generated/codex/skills/rite/reference/menu.md +10 -10
  620. package/pack/generated/codex/skills/rite-adopt/SKILL.md +20 -21
  621. package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +9 -9
  622. package/pack/generated/codex/skills/rite-adopt/reference/anti-patterns.md +6 -6
  623. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +17 -17
  624. package/pack/generated/codex/skills/rite-autocomplete/reference/decision-policy.md +4 -4
  625. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +7 -7
  626. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
  627. package/pack/generated/codex/skills/rite-build/SKILL.md +25 -25
  628. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +9 -9
  629. package/pack/generated/codex/skills/rite-build/reference/anti-patterns.md +6 -6
  630. package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +14 -14
  631. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +8 -8
  632. package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +1 -1
  633. package/pack/generated/codex/skills/rite-build/reference/forge.md +28 -29
  634. package/pack/generated/codex/skills/rite-build/reference/frontend-trigger.md +2 -2
  635. package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +3 -3
  636. package/pack/generated/codex/skills/rite-build/reference/output.md +1 -1
  637. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +44 -44
  638. package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +1 -1
  639. package/pack/generated/codex/skills/rite-build/reference/tdd.md +6 -6
  640. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +23 -23
  641. package/pack/generated/codex/skills/rite-converge/SKILL.md +20 -20
  642. package/pack/generated/codex/skills/rite-converge/reference/anti-patterns.md +7 -7
  643. package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +14 -14
  644. package/pack/generated/codex/skills/rite-customize/SKILL.md +5 -5
  645. package/pack/generated/codex/skills/rite-define/SKILL.md +28 -28
  646. package/pack/generated/codex/skills/rite-define/reference/anti-patterns.md +5 -5
  647. package/pack/generated/codex/skills/rite-define/reference/gates.md +13 -13
  648. package/pack/generated/codex/skills/rite-define/reference/plan-template.md +1 -1
  649. package/pack/generated/codex/skills/rite-doctor/SKILL.md +14 -14
  650. package/pack/generated/codex/skills/rite-dogfood/SKILL.md +5 -5
  651. package/pack/generated/codex/skills/rite-explain/SKILL.md +25 -25
  652. package/pack/generated/codex/skills/rite-explain/reference/intake.md +16 -16
  653. package/pack/generated/codex/skills/rite-frame/SKILL.md +25 -25
  654. package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +13 -13
  655. package/pack/generated/codex/skills/rite-handoff/SKILL.md +15 -15
  656. package/pack/generated/codex/skills/rite-learn/SKILL.md +26 -26
  657. package/pack/generated/codex/skills/rite-plan/SKILL.md +24 -24
  658. package/pack/generated/codex/skills/rite-plan/reference/anti-patterns.md +3 -3
  659. package/pack/generated/codex/skills/rite-plan/reference/dependency-graph.md +1 -1
  660. package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +3 -3
  661. package/pack/generated/codex/skills/rite-plan/reference/slicing.md +9 -9
  662. package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +3 -3
  663. package/pack/generated/codex/skills/rite-polish/SKILL.md +14 -14
  664. package/pack/generated/codex/skills/rite-polish/reference/anti-patterns.md +8 -8
  665. package/pack/generated/codex/skills/rite-polish/reference/backend-polish.md +13 -13
  666. package/pack/generated/codex/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
  667. package/pack/generated/codex/skills/rite-polish/reference/code.md +26 -26
  668. package/pack/generated/codex/skills/rite-polish/reference/harden-checklist.md +31 -31
  669. package/pack/generated/codex/skills/rite-polish/reference/ui.md +23 -23
  670. package/pack/generated/codex/skills/rite-pov/SKILL.md +6 -6
  671. package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +5 -5
  672. package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +17 -17
  673. package/pack/generated/codex/skills/rite-prototype/SKILL.md +16 -16
  674. package/pack/generated/codex/skills/rite-prove/SKILL.md +20 -20
  675. package/pack/generated/codex/skills/rite-prove/reference/anti-patterns.md +4 -4
  676. package/pack/generated/codex/skills/rite-prove/reference/browser-proof.md +2 -2
  677. package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +4 -4
  678. package/pack/generated/codex/skills/rite-prove/reference/proof-ladder.md +6 -6
  679. package/pack/generated/codex/skills/rite-prove/reference/test-command-discovery.md +1 -1
  680. package/pack/generated/codex/skills/rite-quick/SKILL.md +25 -25
  681. package/pack/generated/codex/skills/rite-resolve/SKILL.md +21 -21
  682. package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +7 -7
  683. package/pack/generated/codex/skills/rite-review/SKILL.md +37 -37
  684. package/pack/generated/codex/skills/rite-review/reference/anti-patterns.md +4 -4
  685. package/pack/generated/codex/skills/rite-review/reference/cognitive-load.md +22 -22
  686. package/pack/generated/codex/skills/rite-review/reference/feature-scoped-review.md +2 -2
  687. package/pack/generated/codex/skills/rite-review/reference/five-axis-review.md +8 -8
  688. package/pack/generated/codex/skills/rite-review/reference/nielsen-heuristics.md +14 -14
  689. package/pack/generated/codex/skills/rite-review/reference/performance-checklist.md +14 -14
  690. package/pack/generated/codex/skills/rite-review/reference/security-review.md +9 -9
  691. package/pack/generated/codex/skills/rite-seal/SKILL.md +29 -29
  692. package/pack/generated/codex/skills/rite-seal/reference/anti-patterns.md +8 -8
  693. package/pack/generated/codex/skills/rite-seal/reference/conventions-ledger.md +8 -8
  694. package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +9 -9
  695. package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +9 -9
  696. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +43 -43
  697. package/pack/generated/codex/skills/rite-ship/SKILL.md +15 -15
  698. package/pack/generated/codex/skills/rite-ship/reference/anti-patterns.md +5 -5
  699. package/pack/generated/codex/skills/rite-ship/reference/close-out.md +2 -2
  700. package/pack/generated/codex/skills/rite-ship/reference/design-memory.md +22 -22
  701. package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +10 -10
  702. package/pack/generated/codex/skills/rite-ship/reference/ledger.md +9 -9
  703. package/pack/generated/codex/skills/rite-ship/reference/rollout.md +11 -11
  704. package/pack/generated/codex/skills/rite-ship/reference/ship-template.md +1 -1
  705. package/pack/generated/codex/skills/rite-spec/SKILL.md +48 -48
  706. package/pack/generated/codex/skills/rite-spec/reference/acceptance-criteria.md +4 -4
  707. package/pack/generated/codex/skills/rite-spec/reference/anti-patterns.md +6 -6
  708. package/pack/generated/codex/skills/rite-spec/reference/interview-patterns.md +3 -3
  709. package/pack/generated/codex/skills/rite-spec/reference/investigation.md +21 -21
  710. package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +9 -9
  711. package/pack/generated/codex/skills/rite-spec/reference/references-intake.md +8 -8
  712. package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +19 -19
  713. package/pack/generated/codex/skills/rite-status/SKILL.md +16 -16
  714. package/pack/generated/codex/skills/rite-temper/SKILL.md +32 -32
  715. package/pack/generated/codex/skills/rite-temper/reference/anti-patterns.md +11 -11
  716. package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +20 -20
  717. package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +16 -16
  718. package/pack/generated/codex/skills/rite-temper/reference/significance.md +10 -10
  719. package/pack/generated/codex/skills/rite-temper/reference/strategy-template.md +14 -14
  720. package/pack/generated/codex/skills/rite-vet/SKILL.md +34 -34
  721. package/pack/generated/codex/skills/rite-vet/reference/anti-patterns.md +14 -14
  722. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +10 -10
  723. package/pack/generated/codex/skills/rite-vet/reference/cross-model.md +9 -9
  724. package/pack/generated/codex/skills/rite-vet/reference/depth.md +14 -14
  725. package/pack/generated/codex/skills/rite-vet/reference/eng-lenses.md +9 -9
  726. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +28 -28
  727. package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +21 -21
  728. package/package.json +2 -2
  729. package/scripts/build-binaries.sh +1 -1
  730. package/scripts/build-host-artifacts.sh +1 -1
  731. package/scripts/build-release-tarball.sh +1 -1
  732. package/scripts/check-cross-refs.py +8 -8
  733. package/scripts/check-invocation-integrity.py +4 -4
  734. package/scripts/check-no-global-writes.sh +2 -2
  735. package/scripts/check-reply-contract.sh +1 -1
  736. package/scripts/check-rule-uniqueness.sh +2 -2
  737. package/scripts/codex-generate.sh +5 -5
  738. package/scripts/devrites-detect.sh +33 -33
  739. package/scripts/eval-runner.py +7 -7
  740. package/scripts/grade-feature.sh +14 -14
  741. package/scripts/install-lib.sh +2 -2
  742. package/scripts/pin.sh +12 -12
  743. package/scripts/run-behavioral-evals.sh +12 -12
  744. package/scripts/run-evals.sh +1 -1
  745. package/scripts/run-outcome-evals.sh +12 -12
  746. package/scripts/scan-pack-security.py +4 -4
  747. package/scripts/scan-supply-chain-iocs.py +7 -7
  748. package/scripts/skills-inventory.mjs +21 -4
  749. package/scripts/sync-version.sh +2 -2
  750. package/scripts/validate-workflow-security.py +12 -6
  751. package/scripts/validate-workspace-schema.py +2 -2
  752. package/scripts/validate.sh +7 -7
@@ -2,14 +2,14 @@
2
2
  # Deterministic OUTCOME grader for a finished DevRites feature workspace.
3
3
  #
4
4
  # The trigger evals (evals/*.json) test whether the right SKILL *fires*. This
5
- # grades whether a finished run actually reached a *shippable* state the
5
+ # grades whether a finished run reached a *shippable* state: the
6
6
  # product claim DevRites sells ("won't claim done without proof"). It reads only
7
7
  # committed Markdown artifacts (no API key, no Claude Code harness), so it runs
8
8
  # in CI against a golden fixture and is the kind of deterministic grader
9
9
  # Anthropic's eval guidance recommends for coding agents.
10
10
  #
11
11
  # Live evidence-freshness (mtime: does proof post-date code?) is NOT graded here
12
- # git fixtures don't preserve mtimes; that gate is enforced on a live
12
+ #: git fixtures don't preserve mtimes; that gate is enforced on a live
13
13
  # workspace by the `devrites-engine evidence-fresh` engine gate.
14
14
  #
15
15
  # Usage: grade-feature.sh <workspace-dir>
@@ -39,9 +39,9 @@ seal="$ws/seal.md"; ev="$ws/evidence.md"; rev="$ws/review.md"
39
39
  q="$ws/questions.md"; st="$ws/state.md"
40
40
  problems=()
41
41
 
42
- # 1 / 2 / 3 seal verdict, acceptance, blockers
42
+ # 1 / 2 / 3: seal verdict, acceptance, blockers
43
43
  if [ ! -f "$seal" ]; then
44
- problems+=("seal.md missing feature never sealed")
44
+ problems+=("seal.md missing: feature never sealed")
45
45
  else
46
46
  grep -qiE '^[[:space:]]*Verdict:[[:space:]]*GO[[:space:]]*$' "$seal" \
47
47
  || problems+=("seal.md Verdict is not GO")
@@ -58,24 +58,24 @@ else
58
58
  fi
59
59
  fi
60
60
 
61
- # 4 evidence
62
- { [ -f "$ev" ] && [ -s "$ev" ]; } || problems+=("evidence.md missing or empty acceptance unproven")
61
+ # 4: evidence
62
+ { [ -f "$ev" ] && [ -s "$ev" ]; } || problems+=("evidence.md missing or empty: acceptance unproven")
63
63
 
64
- # 5 review
65
- [ -f "$rev" ] || problems+=("review.md missing feature not reviewed")
64
+ # 5: review
65
+ [ -f "$rev" ] || problems+=("review.md missing: feature not reviewed")
66
66
 
67
- # 6 open validating gate (merge-blocking by definition)
67
+ # 6: open validating gate (merge-blocking by definition)
68
68
  if [ -f "$q" ]; then
69
69
  if awk '
70
70
  /^## q-/{ if(inq && s=="open" && g=="validating") bad=1; inq=1; s=""; g=""; next }
71
71
  inq && /^status:/{ v=$0; sub(/^status:[[:space:]]*/,"",v); s=v }
72
72
  inq && /^gate:/ { v=$0; sub(/^gate:[[:space:]]*/,"",v); g=v }
73
73
  END{ if(inq && s=="open" && g=="validating") bad=1; exit(bad?0:1) }' "$q"; then
74
- problems+=("open 'gate: validating' question merge-blocking by definition (NO-GO)")
74
+ problems+=("open 'gate: validating' question: merge-blocking by definition (NO-GO)")
75
75
  fi
76
76
  fi
77
77
 
78
- # 7 state phase / status
78
+ # 7: state phase / status
79
79
  if [ -f "$st" ]; then
80
80
  ph="$(python3 "$ROOT/scripts/workflow_schema.py" field "$st" phase 2>/dev/null || true)"
81
81
  stt="$(python3 "$ROOT/scripts/workflow_schema.py" field "$st" status 2>/dev/null || true)"
@@ -87,7 +87,7 @@ else
87
87
  problems+=("state.md missing")
88
88
  fi
89
89
 
90
- # 8 executable acceptance criteria: every spec [ACn] proven + checked in seal
90
+ # 8: executable acceptance criteria: every spec [ACn] proven + checked in seal
91
91
  run_acceptance_check() {
92
92
  if [ -n "${DEVRITES_CLI:-}" ]; then
93
93
  "$DEVRITES_CLI" check-acceptance "$ws"
@@ -115,9 +115,9 @@ fi
115
115
 
116
116
  slug="$(basename "$ws")"
117
117
  if [ "${#problems[@]}" -eq 0 ]; then
118
- printf 'GO %s shippable: sealed GO, acceptance proven, no blockers, no open validating gate.\n' "$slug"
118
+ printf 'GO %s: shippable: sealed GO, acceptance proven, no blockers, no open validating gate.\n' "$slug"
119
119
  exit 0
120
120
  fi
121
- printf 'NO-GO %s %d blocker(s):\n' "$slug" "${#problems[@]}"
121
+ printf 'NO-GO %s: %d blocker(s):\n' "$slug" "${#problems[@]}"
122
122
  for p in "${problems[@]}"; do printf ' - %s\n' "$p"; done
123
123
  exit 1
@@ -142,7 +142,7 @@ dr_manifest_contains() {
142
142
  }
143
143
 
144
144
  # Is $1 (canonical) equal to, or inside, a global agent home?
145
- # Used to refuse global writes. No write verbs here read-only comparison.
145
+ # Used to refuse global writes. No write verbs here: read-only comparison.
146
146
  dr_is_global_claude() {
147
147
  _t="$1"
148
148
  _home_claude="$HOME/.claude"
@@ -178,7 +178,7 @@ argument-hint: "[args]"
178
178
  user-invocable: true
179
179
  ---
180
180
 
181
- # /$_name alias of /$_to
181
+ # /$_name: alias of /$_to
182
182
 
183
183
  This command **delegates to DevRites \`/$_to\`**. State that to the user, then load and
184
184
  run \`$_to/SKILL.md\` with the given arguments, following it exactly.
package/scripts/pin.sh CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env bash
2
- # scripts/pin.sh manage user-pinned slash aliases for DevRites.
2
+ # scripts/pin.sh: manage user-pinned slash aliases for DevRites.
3
3
  #
4
4
  # Adopts the same "thin wrapper SKILL.md that delegates" pattern as the engine
5
5
  # installer uses for --short-aliases=all, but exposes it as a runtime verb so
@@ -66,15 +66,15 @@ done
66
66
  [ -z "$SUBCMD" ] && dr_die "missing subcommand (add | remove | list)"
67
67
 
68
68
  TARGET="$(dr_abspath_dir "$TARGET")" || dr_die "target dir not found: $TARGET"
69
- dr_is_global_claude "$TARGET" && dr_die "refusing to operate on ~/.claude DevRites is project-local only"
70
- dr_is_global_codex "$TARGET" && dr_die "refusing to operate on ~/.codex DevRites is project-local only"
69
+ dr_is_global_claude "$TARGET" && dr_die "refusing to operate on ~/.claude: DevRites is project-local only"
70
+ dr_is_global_codex "$TARGET" && dr_die "refusing to operate on ~/.codex: DevRites is project-local only"
71
71
 
72
72
  SKILLS_DIR="$TARGET/.claude/skills"
73
73
  CODEX_SKILLS_DIR="$TARGET/.agents/skills"
74
74
  MF="$TARGET/$DR_MANIFEST_NAME"
75
75
 
76
- [ -d "$SKILLS_DIR" ] || dr_die "no .claude/skills at $TARGET run install.sh first?"
77
- [ -f "$MF" ] || dr_die "no manifest at $MF run install.sh first?"
76
+ [ -d "$SKILLS_DIR" ] || dr_die "no .claude/skills at $TARGET: run install.sh first?"
77
+ [ -f "$MF" ] || dr_die "no manifest at $MF: run install.sh first?"
78
78
 
79
79
  # ---- helpers -------------------------------------------------------------
80
80
  valid_alias_name() {
@@ -108,7 +108,7 @@ is_pinned_alias_file() {
108
108
  # ---- subcommands ---------------------------------------------------------
109
109
  do_add() {
110
110
  valid_alias_name "$ALIAS" || dr_die "invalid alias name '$ALIAS' (lowercase / digits / hyphens; not 'rite' or 'rite-*')"
111
- is_known_target "$DEST" || dr_die "unknown target '$DEST' not a rite-* skill in $SKILLS_DIR"
111
+ is_known_target "$DEST" || dr_die "unknown target '$DEST': not a rite-* skill in $SKILLS_DIR"
112
112
  [ "$ALIAS" = "$DEST" ] && dr_die "alias and target are the same"
113
113
 
114
114
  ALIAS_DIR="$SKILLS_DIR/$ALIAS"
@@ -120,16 +120,16 @@ do_add() {
120
120
 
121
121
  if [ -e "$ALIAS_FILE" ]; then
122
122
  if is_pinned_alias "$ALIAS"; then
123
- dr_warn "already pinned: /$ALIAS overwriting"
123
+ dr_warn "already pinned: /$ALIAS: overwriting"
124
124
  else
125
- dr_die "$ALIAS_FILE exists and is NOT a pinned alias refusing to overwrite"
125
+ dr_die "$ALIAS_FILE exists and is NOT a pinned alias: refusing to overwrite"
126
126
  fi
127
127
  fi
128
128
  if [ -d "$CODEX_SKILLS_DIR" ] && [ -e "$CODEX_ALIAS_FILE" ]; then
129
129
  if is_pinned_alias_file "$CODEX_ALIAS_FILE"; then
130
- dr_warn "already pinned for Codex: /$ALIAS overwriting"
130
+ dr_warn "already pinned for Codex: /$ALIAS: overwriting"
131
131
  else
132
- dr_die "$CODEX_ALIAS_FILE exists and is NOT a pinned alias refusing to overwrite"
132
+ dr_die "$CODEX_ALIAS_FILE exists and is NOT a pinned alias: refusing to overwrite"
133
133
  fi
134
134
  fi
135
135
 
@@ -164,12 +164,12 @@ do_remove() {
164
164
  CODEX_ALIAS_REL=".agents/skills/$ALIAS/SKILL.md"
165
165
 
166
166
  [ -f "$ALIAS_FILE" ] || dr_die "no pinned alias at $ALIAS_FILE"
167
- is_pinned_alias "$ALIAS" || dr_die "$ALIAS_FILE exists but is not a pinned alias refusing to remove"
167
+ is_pinned_alias "$ALIAS" || dr_die "$ALIAS_FILE exists but is not a pinned alias: refusing to remove"
168
168
 
169
169
  rm -f "$ALIAS_FILE"
170
170
  rmdir "$ALIAS_DIR" 2>/dev/null || true
171
171
  if [ -f "$CODEX_ALIAS_FILE" ]; then
172
- is_pinned_alias_file "$CODEX_ALIAS_FILE" || dr_die "$CODEX_ALIAS_FILE exists but is not a pinned alias refusing to remove"
172
+ is_pinned_alias_file "$CODEX_ALIAS_FILE" || dr_die "$CODEX_ALIAS_FILE exists but is not a pinned alias: refusing to remove"
173
173
  rm -f "$CODEX_ALIAS_FILE"
174
174
  rmdir "$CODEX_ALIAS_DIR" 2>/dev/null || true
175
175
  fi
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env bash
2
- # scripts/run-behavioral-evals.sh validate the SHAPE of DevRites behavioral evals.
2
+ # scripts/run-behavioral-evals.sh: validate the SHAPE of DevRites behavioral evals.
3
3
  #
4
4
  # Trigger evals (run-evals.sh) test whether the right skill *fires*. Behavioral
5
- # evals test whether a gating skill's discipline *holds under pressure* does it
5
+ # evals test whether a gating skill's discipline *holds under pressure*: does it
6
6
  # resist the rationalizations it documents in `standards/anti-patterns.md` (and its own
7
7
  # `reference/anti-patterns.md`), or does the agent talk itself past the gate. Each
8
8
  # scenario pairs a pressure prompt with the resistance a holding response shows and
9
9
  # the capitulation markers a failed one shows.
10
10
  #
11
- # This script is the DETERMINISTIC, zero-token CI gate the analog of run-evals.sh's
11
+ # This script is the DETERMINISTIC, zero-token CI gate: the analog of run-evals.sh's
12
12
  # schema path and the engine spec-validate gate: it checks that every behavioral eval is well-formed
13
13
  # so a malformed one can't reach the live grader. It does NOT invoke a model. Executing
14
- # the scenarios against a live Claude (does the skill actually resist?) is the labeled /
14
+ # the scenarios against a live Claude (does the skill resist?) is the labeled /
15
15
  # nightly rung documented in evals/behavioral/README.md.
16
16
  #
17
17
  # In addition to the original DevRites pressure schema, scenarios may carry the
@@ -23,7 +23,7 @@
23
23
  # scripts/run-behavioral-evals.sh # validate every evals/behavioral/*.json
24
24
  # scripts/run-behavioral-evals.sh evals/behavioral/rite-prove.json # validate one file
25
25
  #
26
- # Exit: 0 all valid (or no behavioral evals present opt-in, never a failure) ·
26
+ # Exit: 0 all valid (or no behavioral evals present: opt-in, never a failure) ·
27
27
  # 1 shape violation(s) · 2 missing parser
28
28
 
29
29
  set -euo pipefail
@@ -37,7 +37,7 @@ if [[ $# -gt 0 ]]; then
37
37
  FILES=("$@")
38
38
  else
39
39
  if [[ ! -d "$BEHAVIORAL_DIR" ]]; then
40
- echo "No evals/behavioral/ directory behavioral evals are opt-in; nothing to validate."
40
+ echo "No evals/behavioral/ directory: behavioral evals are opt-in; nothing to validate."
41
41
  exit 0
42
42
  fi
43
43
  FILES=()
@@ -48,7 +48,7 @@ else
48
48
  fi
49
49
 
50
50
  if [[ ${#FILES[@]} -eq 0 ]]; then
51
- echo "No behavioral eval files behavioral evals are opt-in; nothing to validate."
51
+ echo "No behavioral eval files: behavioral evals are opt-in; nothing to validate."
52
52
  exit 0
53
53
  fi
54
54
 
@@ -89,9 +89,9 @@ if not isinstance(scenarios, list):
89
89
  errors.append("scenarios is not a list")
90
90
  scenarios = []
91
91
  elif len(scenarios) == 0:
92
- errors.append("scenarios is empty a behavioral eval needs at least one")
92
+ errors.append("scenarios is empty: a behavioral eval needs at least one")
93
93
 
94
- # Metric fields (optional default to the regression discipline). A behavioral
94
+ # Metric fields (optional: default to the regression discipline). A behavioral
95
95
  # eval is a regression gate by nature (the discipline must hold every trial ->
96
96
  # pass^k = 100%); a capability eval is the exploratory pass@k variant.
97
97
  ec = data.get("eval_class", "regression")
@@ -196,7 +196,7 @@ if [[ $FAILED -gt 0 ]]; then
196
196
  fi
197
197
 
198
198
  echo
199
- echo "Note: this is shape validation only it does not execute the scenarios."
200
- echo "To grade whether the skills actually resist under pressure (live model):"
201
- echo " see evals/behavioral/README.md the labeled / nightly rung."
199
+ echo "Note: this is shape validation only: it does not execute the scenarios."
200
+ echo "To grade whether the skills resist under pressure (live model):"
201
+ echo " see evals/behavioral/README.md: the labeled / nightly rung."
202
202
  exit 0
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env bash
2
- # scripts/run-evals.sh validate the structure of DevRites trigger evals.
2
+ # scripts/run-evals.sh: validate the structure of DevRites trigger evals.
3
3
  #
4
4
  # Schema check + summary. Does NOT invoke a model unless --live is passed.
5
5
  # Live execution requires CLAUDE_API_KEY and is manual-only, never CI default.
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env bash
2
- # Outcome-eval harness proves the deterministic feature grader BOTH passes a
2
+ # Outcome-eval harness: proves the deterministic feature grader BOTH passes a
3
3
  # known-shippable workspace AND fails a known-blocked one (see-it-fail-first:
4
4
  # a grader that never returns NO-GO proves nothing). Runs in CI; no API key.
5
5
  #
@@ -18,9 +18,9 @@ trap 'rm -rf "$tmp"' EXIT
18
18
 
19
19
  echo "== grade golden/shippable-feature (expect GO) =="
20
20
  if bash "$GRADER" "$good"; then
21
- echo " PASS graded GO"
21
+ echo " PASS: graded GO"
22
22
  else
23
- echo " FAIL a known-shippable workspace should grade GO"; fail=1
23
+ echo " FAIL: a known-shippable workspace should grade GO"; fail=1
24
24
  fi
25
25
 
26
26
  echo
@@ -39,28 +39,28 @@ cat > "$canonical/state.md" <<'MD'
39
39
  | next_action | archived |
40
40
  MD
41
41
  if bash "$GRADER" "$canonical"; then
42
- echo " PASS canonical cursor graded GO"
42
+ echo " PASS: canonical cursor graded GO"
43
43
  else
44
- echo " FAIL canonical cursor should grade GO"; fail=1
44
+ echo " FAIL: canonical cursor should grade GO"; fail=1
45
45
  fi
46
46
 
47
47
  echo
48
48
  echo "== grade golden/blocked-feature (expect NO-GO) =="
49
49
  if bash "$GRADER" "$bad"; then
50
- echo " FAIL a known-blocked workspace should NOT grade GO"; fail=1
50
+ echo " FAIL: a known-blocked workspace should NOT grade GO"; fail=1
51
51
  else
52
- echo " PASS correctly graded NO-GO"
52
+ echo " PASS: correctly graded NO-GO"
53
53
  fi
54
54
 
55
55
  echo
56
56
  echo "== grade golden/near-miss-unproven-ac (expect NO-GO on ONE invariant) =="
57
57
  # Isolates invariant 2 (every acceptance criterion proven): identical to the
58
58
  # shippable fixture except a single AC is left unchecked. Proves that gate fails
59
- # independently not only when six invariants trip at once.
59
+ # independently: not only when six invariants trip at once.
60
60
  if bash "$GRADER" "$nearmiss"; then
61
- echo " FAIL an unproven acceptance criterion must grade NO-GO"; fail=1
61
+ echo " FAIL: an unproven acceptance criterion must grade NO-GO"; fail=1
62
62
  else
63
- echo " PASS correctly graded NO-GO on the lone unchecked AC"
63
+ echo " PASS: correctly graded NO-GO on the lone unchecked AC"
64
64
  fi
65
65
 
66
66
  echo
@@ -83,9 +83,9 @@ Evidence exists.
83
83
  none
84
84
  MD
85
85
  if bash "$GRADER" "$wrongac"; then
86
- echo " FAIL checked unrelated acceptance items must not prove spec [ACn] criteria"; fail=1
86
+ echo " FAIL: checked unrelated acceptance items must not prove spec [ACn] criteria"; fail=1
87
87
  else
88
- echo " PASS correctly graded NO-GO when spec [ACn] ids are missing from seal.md"
88
+ echo " PASS: correctly graded NO-GO when spec [ACn] ids are missing from seal.md"
89
89
  fi
90
90
 
91
91
  echo
@@ -13,7 +13,7 @@ Exits non-zero if any finding is reported.
13
13
 
14
14
  Two finding classes:
15
15
 
16
- 1. Hidden unicode (always a finding no legitimate reason to exist in a
16
+ 1. Hidden unicode (always a finding: no legitimate reason to exist in a
17
17
  Markdown/shell instruction file): bidi controls, zero-width characters,
18
18
  other invisibles, and homoglyph confusables (a word that mixes ASCII with
19
19
  look-alike Cyrillic/Greek letters).
@@ -23,7 +23,7 @@ Two finding classes:
23
23
  permission escalation, and data-exfiltration phrasing.
24
24
 
25
25
  Suppression (for DevRites' own files that legitimately *discuss* injection
26
- defensively e.g. security.md, the reviewer agents): put a marker on the same
26
+ defensively: e.g. security.md, the reviewer agents): put a marker on the same
27
27
  line OR anywhere in the file:
28
28
 
29
29
  ... ignore previous instructions ... <!-- pack-scan-ignore: defensive doc -->
@@ -33,7 +33,7 @@ A whole file can opt a class out with a top-of-file marker:
33
33
  <!-- pack-scan-ignore-file: injection -->
34
34
 
35
35
  Suppressions live in the file, so every exception is visible in the diff and
36
- reviewable consistent with DevRites' "no silent state" thesis. Hidden-unicode
36
+ reviewable: consistent with DevRites' "no silent state" thesis. Hidden-unicode
37
37
  findings can be suppressed the same way but should essentially never be.
38
38
  """
39
39
  import os
@@ -132,7 +132,7 @@ def find_injection(text, file_suppressed):
132
132
 
133
133
 
134
134
  _LINE_SUPPRESS = re.compile(r"pack-scan-ignore\b(?!-file)", re.IGNORECASE)
135
- # Class list is word/comma/space only a trailing "-->" comment closer must not
135
+ # Class list is word/comma/space only: a trailing "-->" comment closer must not
136
136
  # get swallowed into the captured class name.
137
137
  _FILE_SUPPRESS = re.compile(r"pack-scan-ignore-file\s*:\s*([\w, ]+)", re.IGNORECASE)
138
138
 
@@ -3,12 +3,12 @@
3
3
 
4
4
  Dependabot manages version *updates*; this gate catches a *known-malicious* installed
5
5
  version (a compromised release that slipped in). It checks every name@version in the
6
- lockfile against the bundled IOC dataset (scripts/supply-chain-iocs.json) an offline,
6
+ lockfile against the bundled IOC dataset (scripts/supply-chain-iocs.json): an offline,
7
7
  always-available advisory source, so CI is deterministic and needs no network.
8
8
 
9
- `--online` additionally queries the OSV API per package and is best-effort: if the
9
+ `--online` also queries the OSV API per package and is best-effort: if the
10
10
  advisory source is unreachable it prints a notice and falls back to the bundled dataset
11
- (it never fails the build on a network error only on a real IOC match).
11
+ (it never fails the build on a network error: only on a real IOC match).
12
12
 
13
13
  Usage: scan-supply-chain-iocs.py [LOCKFILE] [--iocs FILE] [--online]
14
14
  LOCKFILE defaults to package-lock.json.
@@ -87,7 +87,7 @@ def main(argv):
87
87
  lockfile = args[0] if args else "package-lock.json"
88
88
 
89
89
  if not os.path.isfile(lockfile):
90
- print("OK no lockfile at %s nothing to scan" % lockfile)
90
+ print("OK no lockfile at %s: nothing to scan" % lockfile)
91
91
  return 0
92
92
  try:
93
93
  index = load_iocs(iocs_path)
@@ -100,7 +100,7 @@ def main(argv):
100
100
  for name, ver in pkgs:
101
101
  e = index.get(name)
102
102
  if e and ver in e.get("versions", []):
103
- findings.append("FINDING %s@%s %s (%s)" % (name, ver, e["note"], e["source"]))
103
+ findings.append("FINDING %s@%s: %s (%s)" % (name, ver, e["note"], e["source"]))
104
104
 
105
105
  if online:
106
106
  offline_notice = False
@@ -110,9 +110,9 @@ def main(argv):
110
110
  offline_notice = True
111
111
  break
112
112
  if res:
113
- findings.append("FINDING %s@%s %s" % (name, ver, res))
113
+ findings.append("FINDING %s@%s: %s" % (name, ver, res))
114
114
  if offline_notice:
115
- print("note: OSV unreachable fell back to the bundled IOC dataset only")
115
+ print("note: OSV unreachable: fell back to the bundled IOC dataset only")
116
116
 
117
117
  if findings:
118
118
  for f in sorted(set(findings)):
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // skills-inventory.mjs verify authored DevRites skill inventory and docs counts.
2
+ // skills-inventory.mjs: verify authored DevRites skill inventory and docs counts.
3
3
  import { readdirSync, readFileSync, statSync } from 'node:fs';
4
4
  import { join, relative } from 'node:path';
5
5
 
@@ -7,6 +7,7 @@ const root = new URL('..', import.meta.url).pathname.replace(/\/$/, '');
7
7
  const skillsDir = join(root, 'pack', '.claude', 'skills');
8
8
  const docsSkills = join(root, 'docs', 'skills.md');
9
9
  const docsCommandMap = join(root, 'docs', 'command-map.md');
10
+ const docsFlow = join(root, 'docs', 'flow.md');
10
11
  const readme = join(root, 'README.md');
11
12
  const arch = join(root, 'docs', 'architecture.md');
12
13
 
@@ -82,17 +83,33 @@ function assertPublicSkillLinks(path, label) {
82
83
  }
83
84
  }
84
85
 
86
+ function assertPublicSkillMentions(path, label) {
87
+ const text = readFileSync(path, 'utf8');
88
+ for (const skill of skills.filter((s) => s.invocable === 'true')) {
89
+ const escaped = skill.name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
90
+ const token = new RegExp(`(^|[^a-z0-9-])${escaped}([^a-z0-9-]|$)`, 'im');
91
+ if (!token.test(text)) {
92
+ fail(`${relative(root, path)}: missing ${label} entry for ${skill.name}`);
93
+ }
94
+ }
95
+ }
96
+
85
97
  assertDocContains(docsSkills, `# All ${total} skills`, 'total skill heading');
86
- assertDocContains(docsSkills, `**${total} skills total**`, 'total skill prose');
98
+ assertDocContains(docsSkills, `The pack contains ${total} skills`, 'total skill prose');
87
99
  assertDocContains(docsSkills, `${publicRiteCount} user-invocable \`rite-*\``, 'public rite-* count');
88
100
  assertDocContains(docsSkills, `${modelInvokedInternalCount} model-invoked \`devrites-*\` specialists`, 'model-invoked internal count');
89
101
  assertDocContains(docsSkills, 'npx devrites', 'npx distribution contract');
90
102
  assertDocContains(docsCommandMap, 'npx devrites', 'npx distribution contract');
91
- assertDocContains(readme, `**${total} skills total**`, 'README total skill prose');
92
- assertDocContains(readme, `# skills/ ${total} skills`, 'README layout total count');
103
+ assertDocContains(readme, `The pack ships ${total} skills`, 'README total skill prose');
104
+ assertDocContains(readme, `${publicCount} public and ${internalCount} internal`, 'README public/internal count');
105
+ assertDocContains(readme, '[skills catalogue](docs/skills.md)', 'README skills catalogue link');
93
106
  assertDocContains(arch, `${publicRiteCount} public \`rite-*\` skills (${total} total)`, 'architecture surface count');
107
+ assertDocContains(docsFlow, `: ${publicCount} skills`, 'flow public count');
108
+ assertDocContains(docsFlow, `: ${internalCount} skills`, 'flow internal count');
94
109
  assertPublicSkillLinks(docsSkills, 'skills catalogue');
95
110
  assertPublicSkillLinks(docsCommandMap, 'command map');
111
+ assertPublicSkillMentions(docsFlow, 'flow namespace');
112
+ assertPublicSkillMentions(arch, 'architecture surface');
96
113
 
97
114
  console.log(`skills total: ${total}`);
98
115
  console.log(`public skills: ${publicCount}`);
@@ -39,7 +39,7 @@ for (const u of updates) {
39
39
  const readmePath = path.resolve('README.md');
40
40
  const readme = fs.readFileSync(readmePath, 'utf8');
41
41
  const statusLine =
42
- `**Status:** [\`v${version}\`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v${version}) ` +
42
+ `**Status:** [\`v${version}\`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v${version}): ` +
43
43
  "see [`CHANGELOG.md`](CHANGELOG.md) for release notes.";
44
44
  const re = /\*\*Status:\*\*[^\n]*(?:\n(?!\n)[^\n]*)*/;
45
45
  if (re.test(readme)) {
@@ -49,6 +49,6 @@ if (re.test(readme)) {
49
49
  console.log(' → README.md');
50
50
  }
51
51
  } else {
52
- console.warn(' ! README.md status line not found skipping');
52
+ console.warn(' ! README.md status line not found: skipping');
53
53
  }
54
54
  NODE
@@ -4,12 +4,14 @@
4
4
  DevRites' publish (release.yml) and auto-merge paths are high-value targets, so this
5
5
  gate fails CI when a workflow:
6
6
 
7
- - uses any non-local action not pinned to a full 40-char commit SHA a moving
7
+ - uses any non-local action not pinned to a full 40-char commit SHA: a moving
8
8
  tag like `@v2` lets a compromised upstream inject code into the pipeline;
9
- - declares no `permissions:` scope anywhere the default token is broad;
9
+ - declares no `permissions:` scope anywhere: the default token is broad;
10
10
  - uses `permissions: write-all` (over-broad);
11
11
  - uses `pull_request_target`, except for a Dependabot-only workflow that never
12
12
  checks out PR code.
13
+ - leaves an internal `: ` unquoted in a workflow or step name, which makes the
14
+ workflow invalid YAML and prevents every job from starting.
13
15
 
14
16
  Usage: validate-workflow-security.py [DIR] (default: .github/workflows)
15
17
  Exit: 0 clean; 1 on any finding.
@@ -26,6 +28,7 @@ DEPENDABOT_ONLY_RE = re.compile(
26
28
  r"['\"]dependabot\[bot\]['\"]",
27
29
  re.MULTILINE,
28
30
  )
31
+ UNQUOTED_NAME_COLON_RE = re.compile(r"^\s*(?:-\s*)?name:\s+[^'\"].*:\s+\S")
29
32
 
30
33
 
31
34
  def safe_dependabot_target(text):
@@ -43,15 +46,18 @@ def scan_text(path, text):
43
46
  lines = text.splitlines()
44
47
  dependabot_target_is_safe = safe_dependabot_target(text)
45
48
  if not re.search(r"^\s*permissions:", text, re.MULTILINE):
46
- findings.append("%s: no permissions: scope the default GITHUB_TOKEN is broad; "
49
+ findings.append("%s: no permissions: scope: the default GITHUB_TOKEN is broad; "
47
50
  "add an explicit least-privilege permissions block" % path)
48
51
  for i, line in enumerate(lines, 1):
52
+ if UNQUOTED_NAME_COLON_RE.match(line):
53
+ findings.append("%s:%d: name contains an unquoted colon: quote the complete "
54
+ "name so GitHub can parse the workflow" % (path, i))
49
55
  if "write-all" in line:
50
- findings.append("%s:%d: permissions: write-all is over-broad scope to the "
56
+ findings.append("%s:%d: permissions: write-all is over-broad: scope to the "
51
57
  "minimum needed" % (path, i))
52
58
  if "pull_request_target" in line and not dependabot_target_is_safe:
53
59
  findings.append("%s:%d: pull_request_target runs with secrets on untrusted PR "
54
- "code only a Dependabot-only workflow without checkout is allowed"
60
+ "code: only a Dependabot-only workflow without checkout is allowed"
55
61
  % (path, i))
56
62
  m = USES_RE.match(line)
57
63
  if not m:
@@ -63,7 +69,7 @@ def scan_text(path, text):
63
69
  pin = at[1] if len(at) == 2 else ""
64
70
  if not SHA_RE.match(pin):
65
71
  findings.append("%s:%d: action '%s' not pinned to a full commit "
66
- "SHA pin it (a moving tag is a supply-chain risk)"
72
+ "SHA: pin it (a moving tag is a supply-chain risk)"
67
73
  % (path, i, ref))
68
74
  return findings
69
75
 
@@ -170,7 +170,7 @@ def existing_or_alias(workspace: Path, name: str) -> bool:
170
170
 
171
171
  def find_local_workspaces(root: Path) -> list[Path]:
172
172
  # A devrites workspace is identified by its devrites-specific artifacts, NOT by
173
- # README.md every repo root has a README.md, and matching on it here both
173
+ # README.md: every repo root has a README.md, and matching on it here both
174
174
  # misclassifies the repo root as a workspace and short-circuits the .devrites/work
175
175
  # scan below (return [root] before the loop ever runs).
176
176
  if root.is_dir() and any((root / name).exists() for name in ("spec.md", "state.md", "feature.md")):
@@ -440,7 +440,7 @@ def main(argv: list[str]) -> int:
440
440
  print(f"workspace-schema: {len(errors)} error(s) across {len(set(workspaces))} workspace(s)", file=sys.stderr)
441
441
  return 1
442
442
 
443
- print(f"workspace-schema: OK {len(set(workspaces))} workspace(s) validated")
443
+ print(f"workspace-schema: OK: {len(set(workspaces))} workspace(s) validated")
444
444
  return 0
445
445
 
446
446
 
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env bash
2
- # validate.sh static validation of the DevRites pack (no install required).
2
+ # validate.sh: static validation of the DevRites pack (no install required).
3
3
  # Run from anywhere. Exits non-zero if any hard check fails.
4
4
 
5
5
  set -u
@@ -207,7 +207,7 @@ fi
207
207
  section "no global ~/.claude writes"
208
208
  if bash "$ROOT/scripts/check-no-global-writes.sh" >/tmp/dr_glob 2>&1; then good "no-global-writes check passed"; else bad "no-global-writes check failed"; cat /tmp/dr_glob; fi
209
209
 
210
- # ---- 11. principle uniqueness each canonical heading appears exactly once
210
+ # ---- 11. principle uniqueness: each canonical heading appears exactly once
211
211
  section "principle uniqueness"
212
212
  if bash "$ROOT/scripts/check-rule-uniqueness.sh" >/tmp/dr_uniq 2>&1; then
213
213
  cat /tmp/dr_uniq
@@ -254,7 +254,7 @@ fi
254
254
  # ---- 12. no runtime-broken pack/.claude/ path in installed prose ---------
255
255
  # After install the leading pack/ is stripped, so any literal pack/.claude/skills/devrites-lib/reference/standards/
256
256
  # or pack/.claude/skills/ in shipped SKILL.md / reference prose is a dead path
257
- # at runtime. (Repo README/docs links are out of scope they're GitHub links.)
257
+ # at runtime. (Repo README/docs links are out of scope: they're GitHub links.)
258
258
  section "no literal pack/.claude/ paths in shipped skill prose"
259
259
  # Exclude the intentional resolution-snippet fallback (`... || P=pack/.claude/...`): the
260
260
  # preamble snippet tries the installed `.claude/` path first, then `${CLAUDE_SKILL_DIR}`
@@ -273,7 +273,7 @@ fi
273
273
  section "no false session-start autoload claim"
274
274
  AUTOLOAD_HITS="$(grep -rl 'autoloaded by Claude Code' "$ROOT/pack" "$ROOT/docs" "$ROOT/README.md" 2>/dev/null || true)"
275
275
  if [ -n "$AUTOLOAD_HITS" ]; then
276
- bad "false 'autoloaded by Claude Code' claim the pack ships no autoload wiring:"
276
+ bad "false 'autoloaded by Claude Code' claim: the pack ships no autoload wiring:"
277
277
  printf '%s\n' "$AUTOLOAD_HITS" | sed "s|$ROOT/||"
278
278
  else
279
279
  good "no false session-start autoload claim in pack/ docs/ README.md"
@@ -327,18 +327,18 @@ fi
327
327
  # ---- 15. shellcheck (error = blocking, warning = advisory) ---------------
328
328
  # CI runners ship shellcheck, so the error-level gate is enforced on every PR.
329
329
  # Locally it self-skips when shellcheck is absent (the gate is non-blocking only
330
- # where the tool isn't installed never silently downgraded where it is).
330
+ # where the tool isn't installed: never silently downgraded where it is).
331
331
  section "shellcheck (-S error blocking · -S warning advisory)"
332
332
  if command -v shellcheck >/dev/null 2>&1; then
333
333
  for f in $SH_LIST; do
334
334
  if shellcheck -S error "$f"; then good "shellcheck ${f#"$ROOT"/}"; else bad "shellcheck (error) ${f#"$ROOT"/}"; fi
335
335
  done
336
- # warning-level is informational surfaced per file, never fails the build.
336
+ # warning-level is informational: surfaced per file, never fails the build.
337
337
  for f in $SH_LIST; do
338
338
  shellcheck -S warning "$f" >/dev/null 2>&1 || echo " advisory (warning-level): ${f#"$ROOT"/}"
339
339
  done
340
340
  else
341
- echo "skip: shellcheck not installed locally (optional CI enforces the error-level gate)"
341
+ echo "skip: shellcheck not installed locally (optional: CI enforces the error-level gate)"
342
342
  fi
343
343
 
344
344
  # ---- summary -------------------------------------------------------------