devrites 4.6.0 → 5.0.0

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 (822) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/NOTICE.md +6 -0
  3. package/README.md +36 -12
  4. package/SECURITY.md +3 -3
  5. package/bin/devrites.mjs +1 -0
  6. package/docs/adr/0027-content-bound-build-readiness.md +8 -0
  7. package/docs/adr/0029-v5-workspace-schema-and-native-migration.md +62 -0
  8. package/docs/adr/README.md +4 -3
  9. package/docs/architecture.md +8 -4
  10. package/docs/cli.md +2 -2
  11. package/docs/command-map.md +5 -4
  12. package/docs/engine/commands.md +19 -8
  13. package/docs/engine/state-schema.md +2 -2
  14. package/docs/engine/workspace-schema.md +9 -3
  15. package/docs/flow.md +1 -1
  16. package/docs/orchestration.md +4 -2
  17. package/docs/quick-reference.md +5 -0
  18. package/docs/release.md +55 -7
  19. package/docs/skills.md +3 -3
  20. package/docs/usage.md +2 -1
  21. package/engine/.golangci.yml +27 -0
  22. package/engine/AGENTS.md +24 -0
  23. package/engine/Makefile +20 -5
  24. package/engine/cmd/releasepack/main.go +2 -2
  25. package/engine/cmd/releasepack/main_test.go +4 -4
  26. package/engine/commands.go +27 -0
  27. package/engine/internal/devritespaths/paths.go +3 -0
  28. package/engine/internal/fsutil/copy.go +2 -0
  29. package/engine/internal/fsutil/copy_test.go +193 -0
  30. package/engine/internal/gate/gate.go +30 -0
  31. package/engine/internal/gate/gate_test.go +7 -7
  32. package/engine/internal/gate/readiness_binding.go +10 -7
  33. package/engine/internal/gate/readiness_binding_test.go +51 -3
  34. package/engine/internal/hostpack/hostpack.go +23 -5
  35. package/engine/internal/hostpack/hostpack_test.go +41 -5
  36. package/engine/internal/install/apply.go +324 -0
  37. package/engine/internal/install/binary.go +259 -0
  38. package/engine/internal/install/install.go +13 -1599
  39. package/engine/internal/install/install_test.go +12 -5
  40. package/engine/internal/install/manifest.go +112 -0
  41. package/engine/internal/install/merge.go +473 -0
  42. package/engine/internal/install/preflight.go +235 -0
  43. package/engine/internal/install/uninstall.go +119 -0
  44. package/engine/internal/install/update.go +185 -0
  45. package/engine/internal/lib/candidate.go +4 -2
  46. package/engine/internal/lib/candidate_test.go +4 -1
  47. package/engine/internal/lib/closeout.go +4 -0
  48. package/engine/internal/lib/closeout_test.go +3 -3
  49. package/engine/internal/lib/environment_report.go +109 -0
  50. package/engine/internal/lib/environment_report_test.go +54 -0
  51. package/engine/internal/lib/migrate.go +220 -0
  52. package/engine/internal/lib/migrate_test.go +154 -0
  53. package/engine/internal/lib/open_visual.go +5 -0
  54. package/engine/internal/lib/resolve.go +6 -0
  55. package/engine/internal/lib/resolve_remediation_test.go +1 -1
  56. package/engine/internal/lib/secretscan.go +1 -0
  57. package/engine/internal/lib/secretscan_test.go +1 -0
  58. package/engine/internal/lib/skilltrust.go +2 -1
  59. package/engine/internal/lib/taskgraph_test.go +2 -2
  60. package/engine/internal/lib/util.go +1 -0
  61. package/engine/internal/lib/workspace_read.go +1 -0
  62. package/engine/internal/markdowntext/markdowntext_fuzz_test.go +36 -0
  63. package/engine/internal/parallel/cli.go +1 -0
  64. package/engine/internal/parallel/git.go +1 -0
  65. package/engine/internal/parallel/lease.go +1 -0
  66. package/engine/internal/parallel/ops.go +67 -16
  67. package/engine/internal/parallel/ops_test.go +211 -0
  68. package/engine/internal/parallel/pathdisjoint.go +6 -0
  69. package/engine/internal/parallel/pathdisjoint_fuzz_test.go +43 -0
  70. package/engine/internal/parallel/pathdisjoint_test.go +4 -1
  71. package/engine/internal/parallel/testdata/fuzz/FuzzPathDisjoint/a449b81b4711b7b4 +3 -0
  72. package/engine/internal/release/release.go +8 -4
  73. package/engine/internal/rootfacts/facts.go +3 -0
  74. package/engine/internal/safepath/safepath_fuzz_test.go +21 -0
  75. package/engine/internal/state/acceptance.go +87 -0
  76. package/engine/internal/state/acceptance_test.go +57 -0
  77. package/engine/internal/state/cmd/workflowmanifest/main.go +24 -13
  78. package/engine/internal/state/cmd/workflowmanifest/main_test.go +96 -0
  79. package/engine/internal/state/cursor.go +129 -14
  80. package/engine/internal/state/cursor_fuzz_test.go +80 -0
  81. package/engine/internal/state/lock_unix.go +1 -0
  82. package/engine/internal/state/observation.go +3 -3
  83. package/engine/internal/state/observation_test.go +1 -1
  84. package/engine/internal/state/schema.go +3 -2
  85. package/engine/internal/state/state_test.go +2 -2
  86. package/engine/internal/state/taskgraph_fuzz_test.go +38 -0
  87. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/114b28f68c1fa4db +4 -0
  88. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/378a0f2218e812ea +4 -0
  89. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/39eaa26fcb481e3c +4 -0
  90. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/776ca1dc0143acf0 +4 -0
  91. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/9295930c1ebb81df +4 -0
  92. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/a60de309dc33be0d +4 -0
  93. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/f04dc7b06ef7c99f +4 -0
  94. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/f3000ac510878bd6 +4 -0
  95. package/engine/internal/state/testdata/fuzz/FuzzWorkspaceSchemaRow/a75aabb9f2a847d5 +2 -0
  96. package/engine/internal/state/workflow_manifest.json +1 -1
  97. package/engine/internal/state/workspaceschema.go +58 -0
  98. package/engine/internal/state/workspaceschema_fuzz_test.go +27 -0
  99. package/engine/internal/state/workspaceschema_test.go +67 -0
  100. package/engine/internal/state/write.go +3 -2
  101. package/engine/internal/testutil/testutil.go +4 -2
  102. package/engine/main.go +26 -32
  103. package/engine/observation_contract_test.go +174 -0
  104. package/engine/root_routing_test.go +24 -5
  105. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/state.md +1 -0
  106. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/state.md +1 -0
  107. package/engine/testdata/golden/TestParityResolve/answer/state.md.golden +1 -0
  108. package/engine/testdata/golden/TestParityResolve/drop/state.md.golden +1 -0
  109. package/engine/tests/adr_0027_readiness_binding_test.go +1 -1
  110. package/engine/tests/cli_test.go +2 -2
  111. package/engine/tests/gate_test.go +2 -2
  112. package/engine/tests/parity_closeout_test.go +3 -0
  113. package/engine/tests/parity_resolve_test.go +1 -0
  114. package/pack/.claude/agents/devrites-code-reviewer.md +16 -6
  115. package/pack/.claude/agents/devrites-devex-reviewer.md +11 -6
  116. package/pack/.claude/agents/devrites-doubt-reviewer.md +7 -0
  117. package/pack/.claude/agents/devrites-evidence-scout.md +17 -2
  118. package/pack/.claude/agents/devrites-frontend-reviewer.md +43 -15
  119. package/pack/.claude/agents/devrites-performance-reviewer.md +11 -7
  120. package/pack/.claude/agents/devrites-plan-reviewer.md +13 -3
  121. package/pack/.claude/agents/devrites-proof-runner.md +1 -1
  122. package/pack/.claude/agents/devrites-retrospector.md +7 -1
  123. package/pack/.claude/agents/devrites-security-auditor.md +13 -5
  124. package/pack/.claude/agents/devrites-simplifier-reviewer.md +10 -2
  125. package/pack/.claude/agents/devrites-slice-wright.md +7 -11
  126. package/pack/.claude/agents/devrites-spec-reviewer.md +9 -1
  127. package/pack/.claude/agents/devrites-strategy-reviewer.md +11 -4
  128. package/pack/.claude/agents/devrites-test-analyst.md +9 -1
  129. package/pack/.claude/skills/devrites-api-interface/SKILL.md +9 -9
  130. package/pack/.claude/skills/devrites-audit/SKILL.md +3 -1
  131. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +9 -2
  132. package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +3 -10
  133. package/pack/.claude/skills/devrites-debug-recovery/reference/regression-test.md +1 -1
  134. package/pack/.claude/skills/devrites-doubt/SKILL.md +5 -7
  135. package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +6 -16
  136. package/pack/.claude/skills/devrites-frontend-craft/reference/craft.md +5 -13
  137. package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +2 -3
  138. package/pack/.claude/skills/devrites-frontend-craft/reference/fullstack.md +4 -3
  139. package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +82 -21
  140. package/pack/.claude/skills/devrites-frontend-craft/reference/reuse-first.md +4 -9
  141. package/pack/.claude/skills/devrites-frontend-craft/reference/shape.md +3 -7
  142. package/pack/.claude/skills/devrites-interview/SKILL.md +4 -3
  143. package/pack/.claude/skills/devrites-lib/SKILL.md +2 -1
  144. package/pack/.claude/skills/devrites-lib/reference/candidate-integrity.md +1 -9
  145. package/pack/.claude/skills/devrites-lib/reference/intent-map.md +27 -3
  146. package/pack/.claude/skills/devrites-lib/reference/orchestration-profiles.md +5 -0
  147. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +34 -4
  148. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +10 -3
  149. package/pack/.claude/skills/devrites-lib/reference/standards/README.md +7 -0
  150. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +34 -15
  151. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +13 -5
  152. package/pack/.claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +19 -3
  153. package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +1 -1
  154. package/pack/.claude/skills/devrites-lib/reference/standards/code-navigation.md +43 -0
  155. package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +25 -2
  156. package/pack/.claude/skills/devrites-lib/reference/standards/coding-style.md +4 -3
  157. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +9 -1
  158. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +34 -10
  159. package/pack/.claude/skills/devrites-lib/reference/standards/data-integrity.md +24 -1
  160. package/pack/.claude/skills/devrites-lib/reference/standards/debug-recovery.md +8 -1
  161. package/pack/.claude/skills/devrites-lib/reference/standards/definition-of-done.md +14 -11
  162. package/pack/.claude/skills/devrites-lib/reference/standards/documentation.md +4 -1
  163. package/pack/.claude/skills/devrites-lib/reference/standards/edge-case-trace.md +5 -3
  164. package/pack/.claude/skills/devrites-lib/reference/standards/elicitation.md +6 -1
  165. package/pack/.claude/skills/devrites-lib/reference/standards/error-handling.md +5 -2
  166. package/pack/.claude/skills/devrites-lib/reference/standards/integration-reliability.md +32 -9
  167. package/pack/.claude/skills/devrites-lib/reference/standards/loop-operations.md +2 -2
  168. package/pack/.claude/skills/devrites-lib/reference/standards/observability.md +6 -1
  169. package/pack/.claude/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -2
  170. package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +16 -0
  171. package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +20 -0
  172. package/pack/.claude/skills/devrites-lib/reference/standards/prose-style.md +7 -0
  173. package/pack/.claude/skills/devrites-lib/reference/standards/repository-topology.md +8 -1
  174. package/pack/.claude/skills/devrites-lib/reference/standards/review-checklist.md +7 -5
  175. package/pack/.claude/skills/devrites-lib/reference/standards/security-checklist.md +13 -1
  176. package/pack/.claude/skills/devrites-lib/reference/standards/security.md +109 -11
  177. package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +53 -2
  178. package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +28 -26
  179. package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +22 -2
  180. package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +40 -12
  181. package/pack/.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +24 -8
  182. package/pack/.claude/skills/devrites-lib/reference/visual-playbooks/code.md +0 -2
  183. package/pack/.claude/skills/devrites-lib/reference/visual-playbooks/comparison.md +0 -2
  184. package/pack/.claude/skills/devrites-lib/reference/visual-playbooks/diagram.md +1 -3
  185. package/pack/.claude/skills/devrites-lib/reference/visual-playbooks/index.md +2 -4
  186. package/pack/.claude/skills/devrites-lib/reference/visual-playbooks/input.md +1 -2
  187. package/pack/.claude/skills/devrites-lib/reference/visual-playbooks/plan.md +1 -2
  188. package/pack/.claude/skills/devrites-lib/reference/visual-playbooks/slides.md +0 -2
  189. package/pack/.claude/skills/devrites-lib/reference/visual-playbooks/table.md +0 -2
  190. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +7 -5
  191. package/pack/.claude/skills/devrites-prose-craft/SKILL.md +11 -7
  192. package/pack/.claude/skills/devrites-prose-craft/reference/banned-phrases.md +41 -4
  193. package/pack/.claude/skills/devrites-prose-craft/reference/examples.md +31 -2
  194. package/pack/.claude/skills/devrites-prose-craft/reference/structures.md +62 -0
  195. package/pack/.claude/skills/devrites-source-driven/SKILL.md +11 -12
  196. package/pack/.claude/skills/devrites-ux-shape/SKILL.md +5 -6
  197. package/pack/.claude/skills/rite/SKILL.md +3 -1
  198. package/pack/.claude/skills/rite-adopt/SKILL.md +9 -8
  199. package/pack/.claude/skills/rite-autocomplete/SKILL.md +9 -6
  200. package/pack/.claude/skills/rite-build/SKILL.md +6 -3
  201. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +2 -2
  202. package/pack/.claude/skills/rite-build/reference/checkpoint.md +3 -1
  203. package/pack/.claude/skills/rite-build/reference/output.md +2 -2
  204. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +19 -2
  205. package/pack/.claude/skills/rite-build/reference/phase-contract.md +5 -5
  206. package/pack/.claude/skills/rite-build/reference/tdd.md +3 -2
  207. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +7 -7
  208. package/pack/.claude/skills/rite-clarify/SKILL.md +6 -5
  209. package/pack/.claude/skills/rite-converge/SKILL.md +8 -7
  210. package/pack/.claude/skills/rite-converge/reference/anti-patterns.md +1 -1
  211. package/pack/.claude/skills/rite-customize/SKILL.md +9 -0
  212. package/pack/.claude/skills/rite-define/SKILL.md +4 -7
  213. package/pack/.claude/skills/rite-define/reference/anti-patterns.md +1 -1
  214. package/pack/.claude/skills/rite-define/reference/gates.md +6 -5
  215. package/pack/.claude/skills/rite-define/reference/plan-template.md +2 -2
  216. package/pack/.claude/skills/rite-dogfood/SKILL.md +10 -4
  217. package/pack/.claude/skills/rite-explain/SKILL.md +9 -5
  218. package/pack/.claude/skills/rite-explain/reference/intake.md +2 -1
  219. package/pack/.claude/skills/rite-frame/SKILL.md +1 -1
  220. package/pack/.claude/skills/rite-handoff/SKILL.md +1 -1
  221. package/pack/.claude/skills/rite-learn/SKILL.md +22 -4
  222. package/pack/.claude/skills/rite-plan/SKILL.md +4 -4
  223. package/pack/.claude/skills/rite-plan/reference/anti-patterns.md +2 -2
  224. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +24 -0
  225. package/pack/.claude/skills/rite-polish/SKILL.md +13 -6
  226. package/pack/.claude/skills/rite-polish/reference/anti-ai-slop.md +20 -0
  227. package/pack/.claude/skills/rite-polish/reference/browser-polish-evidence.md +3 -1
  228. package/pack/.claude/skills/rite-polish/reference/code.md +1 -19
  229. package/pack/.claude/skills/rite-polish/reference/harden-checklist.md +1 -1
  230. package/pack/.claude/skills/rite-polish/reference/ledger.md +3 -0
  231. package/pack/.claude/skills/rite-polish/reference/ui.md +4 -3
  232. package/pack/.claude/skills/rite-pov/SKILL.md +16 -1
  233. package/pack/.claude/skills/rite-pr-feedback/SKILL.md +1 -1
  234. package/pack/.claude/skills/rite-pressure-test/SKILL.md +2 -1
  235. package/pack/.claude/skills/rite-prototype/SKILL.md +2 -2
  236. package/pack/.claude/skills/rite-prove/SKILL.md +6 -6
  237. package/pack/.claude/skills/rite-prove/reference/acceptance-proof.md +8 -9
  238. package/pack/.claude/skills/rite-prove/reference/browser-proof.md +5 -3
  239. package/pack/.claude/skills/rite-prove/reference/test-command-discovery.md +0 -1
  240. package/pack/.claude/skills/rite-quick/SKILL.md +6 -4
  241. package/pack/.claude/skills/rite-resolve/SKILL.md +5 -4
  242. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +1 -1
  243. package/pack/.claude/skills/rite-review/SKILL.md +18 -27
  244. package/pack/.claude/skills/rite-review/reference/cognitive-load.md +0 -2
  245. package/pack/.claude/skills/rite-review/reference/five-axis-review.md +3 -3
  246. package/pack/.claude/skills/rite-review/reference/nielsen-heuristics.md +3 -7
  247. package/pack/.claude/skills/rite-seal/SKILL.md +7 -3
  248. package/pack/.claude/skills/rite-seal/reference/final-evidence.md +5 -6
  249. package/pack/.claude/skills/rite-seal/reference/risk-and-rollback.md +1 -1
  250. package/pack/.claude/skills/rite-seal/reference/seal-template.md +2 -0
  251. package/pack/.claude/skills/rite-ship/SKILL.md +3 -2
  252. package/pack/.claude/skills/rite-ship/reference/close-out.md +25 -5
  253. package/pack/.claude/skills/rite-ship/reference/rollout.md +1 -1
  254. package/pack/.claude/skills/rite-spec/SKILL.md +2 -1
  255. package/pack/.claude/skills/rite-spec/reference/anti-patterns.md +0 -1
  256. package/pack/.claude/skills/rite-spec/reference/investigation.md +1 -3
  257. package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +1 -1
  258. package/pack/.claude/skills/rite-spec/reference/spec-template.md +1 -1
  259. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +6 -3
  260. package/pack/.claude/skills/rite-status/SKILL.md +3 -1
  261. package/pack/.claude/skills/rite-temper/SKILL.md +9 -9
  262. package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +2 -2
  263. package/pack/.claude/skills/rite-temper/reference/scope-modes.md +2 -2
  264. package/pack/.claude/skills/rite-temper/reference/significance.md +4 -4
  265. package/pack/.claude/skills/rite-temper/reference/strategy-template.md +6 -6
  266. package/pack/.claude/skills/rite-upgrade/SKILL.md +2 -2
  267. package/pack/.claude/skills/rite-vet/SKILL.md +14 -10
  268. package/pack/.claude/skills/rite-vet/reference/artifacts.md +9 -1
  269. package/pack/.claude/skills/rite-vet/reference/review-axes.md +14 -2
  270. package/pack/.claude/skills/rite-watch-pr/SKILL.md +2 -2
  271. package/pack/.claude/skills/rite-zoom-out/SKILL.md +4 -4
  272. package/pack/generated/README.md +4 -2
  273. package/pack/generated/claude/agents/devrites-code-reviewer.md +16 -6
  274. package/pack/generated/claude/agents/devrites-devex-reviewer.md +11 -6
  275. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +7 -0
  276. package/pack/generated/claude/agents/devrites-evidence-scout.md +17 -2
  277. package/pack/generated/claude/agents/devrites-frontend-reviewer.md +43 -15
  278. package/pack/generated/claude/agents/devrites-performance-reviewer.md +11 -7
  279. package/pack/generated/claude/agents/devrites-plan-reviewer.md +13 -3
  280. package/pack/generated/claude/agents/devrites-proof-runner.md +1 -1
  281. package/pack/generated/claude/agents/devrites-retrospector.md +7 -1
  282. package/pack/generated/claude/agents/devrites-security-auditor.md +13 -5
  283. package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +10 -2
  284. package/pack/generated/claude/agents/devrites-slice-wright.md +7 -11
  285. package/pack/generated/claude/agents/devrites-spec-reviewer.md +9 -1
  286. package/pack/generated/claude/agents/devrites-strategy-reviewer.md +11 -4
  287. package/pack/generated/claude/agents/devrites-test-analyst.md +9 -1
  288. package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +9 -9
  289. package/pack/generated/claude/skills/devrites-audit/SKILL.md +3 -1
  290. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +9 -2
  291. package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +3 -10
  292. package/pack/generated/claude/skills/devrites-debug-recovery/reference/regression-test.md +1 -1
  293. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +5 -7
  294. package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +6 -16
  295. package/pack/generated/claude/skills/devrites-frontend-craft/reference/craft.md +5 -13
  296. package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +2 -3
  297. package/pack/generated/claude/skills/devrites-frontend-craft/reference/fullstack.md +4 -3
  298. package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +82 -21
  299. package/pack/generated/claude/skills/devrites-frontend-craft/reference/reuse-first.md +4 -9
  300. package/pack/generated/claude/skills/devrites-frontend-craft/reference/shape.md +3 -7
  301. package/pack/generated/claude/skills/devrites-interview/SKILL.md +4 -3
  302. package/pack/generated/claude/skills/devrites-lib/SKILL.md +2 -1
  303. package/pack/generated/claude/skills/devrites-lib/reference/candidate-integrity.md +1 -9
  304. package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +27 -3
  305. package/pack/generated/claude/skills/devrites-lib/reference/orchestration-profiles.md +5 -0
  306. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +34 -4
  307. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +10 -3
  308. package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +7 -0
  309. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +34 -15
  310. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +13 -5
  311. package/pack/generated/claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +19 -3
  312. package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +1 -1
  313. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-navigation.md +43 -0
  314. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +25 -2
  315. package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +4 -3
  316. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +9 -1
  317. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +34 -10
  318. package/pack/generated/claude/skills/devrites-lib/reference/standards/data-integrity.md +24 -1
  319. package/pack/generated/claude/skills/devrites-lib/reference/standards/debug-recovery.md +8 -1
  320. package/pack/generated/claude/skills/devrites-lib/reference/standards/definition-of-done.md +14 -11
  321. package/pack/generated/claude/skills/devrites-lib/reference/standards/documentation.md +4 -1
  322. package/pack/generated/claude/skills/devrites-lib/reference/standards/edge-case-trace.md +5 -3
  323. package/pack/generated/claude/skills/devrites-lib/reference/standards/elicitation.md +6 -1
  324. package/pack/generated/claude/skills/devrites-lib/reference/standards/error-handling.md +5 -2
  325. package/pack/generated/claude/skills/devrites-lib/reference/standards/integration-reliability.md +32 -9
  326. package/pack/generated/claude/skills/devrites-lib/reference/standards/loop-operations.md +2 -2
  327. package/pack/generated/claude/skills/devrites-lib/reference/standards/observability.md +6 -1
  328. package/pack/generated/claude/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -2
  329. package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +16 -0
  330. package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +20 -0
  331. package/pack/generated/claude/skills/devrites-lib/reference/standards/prose-style.md +7 -0
  332. package/pack/generated/claude/skills/devrites-lib/reference/standards/repository-topology.md +8 -1
  333. package/pack/generated/claude/skills/devrites-lib/reference/standards/review-checklist.md +7 -5
  334. package/pack/generated/claude/skills/devrites-lib/reference/standards/security-checklist.md +13 -1
  335. package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +109 -11
  336. package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +53 -2
  337. package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +28 -26
  338. package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +22 -2
  339. package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +40 -12
  340. package/pack/generated/claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +24 -8
  341. package/pack/generated/claude/skills/devrites-lib/reference/visual-playbooks/code.md +0 -2
  342. package/pack/generated/claude/skills/devrites-lib/reference/visual-playbooks/comparison.md +0 -2
  343. package/pack/generated/claude/skills/devrites-lib/reference/visual-playbooks/diagram.md +1 -3
  344. package/pack/generated/claude/skills/devrites-lib/reference/visual-playbooks/index.md +2 -4
  345. package/pack/generated/claude/skills/devrites-lib/reference/visual-playbooks/input.md +1 -2
  346. package/pack/generated/claude/skills/devrites-lib/reference/visual-playbooks/plan.md +1 -2
  347. package/pack/generated/claude/skills/devrites-lib/reference/visual-playbooks/slides.md +0 -2
  348. package/pack/generated/claude/skills/devrites-lib/reference/visual-playbooks/table.md +0 -2
  349. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +7 -5
  350. package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +11 -7
  351. package/pack/generated/claude/skills/devrites-prose-craft/reference/banned-phrases.md +41 -4
  352. package/pack/generated/claude/skills/devrites-prose-craft/reference/examples.md +31 -2
  353. package/pack/generated/claude/skills/devrites-prose-craft/reference/structures.md +62 -0
  354. package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +11 -12
  355. package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +5 -6
  356. package/pack/generated/claude/skills/rite/SKILL.md +3 -1
  357. package/pack/generated/claude/skills/rite-adopt/SKILL.md +9 -8
  358. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +9 -6
  359. package/pack/generated/claude/skills/rite-build/SKILL.md +6 -3
  360. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +2 -2
  361. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +3 -1
  362. package/pack/generated/claude/skills/rite-build/reference/output.md +2 -2
  363. package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +19 -2
  364. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +5 -5
  365. package/pack/generated/claude/skills/rite-build/reference/tdd.md +3 -2
  366. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +7 -7
  367. package/pack/generated/claude/skills/rite-clarify/SKILL.md +6 -5
  368. package/pack/generated/claude/skills/rite-converge/SKILL.md +8 -7
  369. package/pack/generated/claude/skills/rite-converge/reference/anti-patterns.md +1 -1
  370. package/pack/generated/claude/skills/rite-customize/SKILL.md +9 -0
  371. package/pack/generated/claude/skills/rite-define/SKILL.md +4 -7
  372. package/pack/generated/claude/skills/rite-define/reference/anti-patterns.md +1 -1
  373. package/pack/generated/claude/skills/rite-define/reference/gates.md +6 -5
  374. package/pack/generated/claude/skills/rite-define/reference/plan-template.md +2 -2
  375. package/pack/generated/claude/skills/rite-dogfood/SKILL.md +10 -4
  376. package/pack/generated/claude/skills/rite-explain/SKILL.md +9 -5
  377. package/pack/generated/claude/skills/rite-explain/reference/intake.md +2 -1
  378. package/pack/generated/claude/skills/rite-frame/SKILL.md +1 -1
  379. package/pack/generated/claude/skills/rite-handoff/SKILL.md +1 -1
  380. package/pack/generated/claude/skills/rite-learn/SKILL.md +22 -4
  381. package/pack/generated/claude/skills/rite-plan/SKILL.md +4 -4
  382. package/pack/generated/claude/skills/rite-plan/reference/anti-patterns.md +2 -2
  383. package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +24 -0
  384. package/pack/generated/claude/skills/rite-polish/SKILL.md +13 -6
  385. package/pack/generated/claude/skills/rite-polish/reference/anti-ai-slop.md +20 -0
  386. package/pack/generated/claude/skills/rite-polish/reference/browser-polish-evidence.md +3 -1
  387. package/pack/generated/claude/skills/rite-polish/reference/code.md +1 -19
  388. package/pack/generated/claude/skills/rite-polish/reference/harden-checklist.md +1 -1
  389. package/pack/generated/claude/skills/rite-polish/reference/ledger.md +3 -0
  390. package/pack/generated/claude/skills/rite-polish/reference/ui.md +4 -3
  391. package/pack/generated/claude/skills/rite-pov/SKILL.md +16 -1
  392. package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +1 -1
  393. package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +2 -1
  394. package/pack/generated/claude/skills/rite-prototype/SKILL.md +2 -2
  395. package/pack/generated/claude/skills/rite-prove/SKILL.md +6 -6
  396. package/pack/generated/claude/skills/rite-prove/reference/acceptance-proof.md +8 -9
  397. package/pack/generated/claude/skills/rite-prove/reference/browser-proof.md +5 -3
  398. package/pack/generated/claude/skills/rite-prove/reference/test-command-discovery.md +0 -1
  399. package/pack/generated/claude/skills/rite-quick/SKILL.md +6 -4
  400. package/pack/generated/claude/skills/rite-resolve/SKILL.md +5 -4
  401. package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +1 -1
  402. package/pack/generated/claude/skills/rite-review/SKILL.md +18 -27
  403. package/pack/generated/claude/skills/rite-review/reference/cognitive-load.md +0 -2
  404. package/pack/generated/claude/skills/rite-review/reference/five-axis-review.md +3 -3
  405. package/pack/generated/claude/skills/rite-review/reference/nielsen-heuristics.md +3 -7
  406. package/pack/generated/claude/skills/rite-seal/SKILL.md +7 -3
  407. package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +5 -6
  408. package/pack/generated/claude/skills/rite-seal/reference/risk-and-rollback.md +1 -1
  409. package/pack/generated/claude/skills/rite-seal/reference/seal-template.md +2 -0
  410. package/pack/generated/claude/skills/rite-ship/SKILL.md +3 -2
  411. package/pack/generated/claude/skills/rite-ship/reference/close-out.md +25 -5
  412. package/pack/generated/claude/skills/rite-ship/reference/rollout.md +1 -1
  413. package/pack/generated/claude/skills/rite-spec/SKILL.md +2 -1
  414. package/pack/generated/claude/skills/rite-spec/reference/anti-patterns.md +0 -1
  415. package/pack/generated/claude/skills/rite-spec/reference/investigation.md +1 -3
  416. package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +1 -1
  417. package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +1 -1
  418. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +6 -3
  419. package/pack/generated/claude/skills/rite-status/SKILL.md +3 -1
  420. package/pack/generated/claude/skills/rite-temper/SKILL.md +9 -9
  421. package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +2 -2
  422. package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +2 -2
  423. package/pack/generated/claude/skills/rite-temper/reference/significance.md +4 -4
  424. package/pack/generated/claude/skills/rite-temper/reference/strategy-template.md +6 -6
  425. package/pack/generated/claude/skills/rite-upgrade/SKILL.md +2 -2
  426. package/pack/generated/claude/skills/rite-vet/SKILL.md +14 -10
  427. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +9 -1
  428. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +14 -2
  429. package/pack/generated/claude/skills/rite-watch-pr/SKILL.md +2 -2
  430. package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +4 -4
  431. package/pack/generated/codex/agents/devrites-code-reviewer.toml +16 -6
  432. package/pack/generated/codex/agents/devrites-devex-reviewer.toml +11 -6
  433. package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +7 -0
  434. package/pack/generated/codex/agents/devrites-evidence-scout.toml +17 -2
  435. package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +43 -15
  436. package/pack/generated/codex/agents/devrites-performance-reviewer.toml +11 -7
  437. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +13 -3
  438. package/pack/generated/codex/agents/devrites-proof-runner.toml +1 -1
  439. package/pack/generated/codex/agents/devrites-retrospector.toml +7 -1
  440. package/pack/generated/codex/agents/devrites-security-auditor.toml +13 -5
  441. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +10 -2
  442. package/pack/generated/codex/agents/devrites-slice-wright.toml +7 -11
  443. package/pack/generated/codex/agents/devrites-spec-reviewer.toml +9 -1
  444. package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +11 -4
  445. package/pack/generated/codex/agents/devrites-test-analyst.toml +9 -1
  446. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +9 -9
  447. package/pack/generated/codex/skills/devrites-audit/SKILL.md +3 -1
  448. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +9 -2
  449. package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +3 -10
  450. package/pack/generated/codex/skills/devrites-debug-recovery/reference/regression-test.md +1 -1
  451. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +5 -7
  452. package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +6 -16
  453. package/pack/generated/codex/skills/devrites-frontend-craft/reference/craft.md +5 -13
  454. package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +2 -3
  455. package/pack/generated/codex/skills/devrites-frontend-craft/reference/fullstack.md +4 -3
  456. package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +82 -21
  457. package/pack/generated/codex/skills/devrites-frontend-craft/reference/reuse-first.md +4 -9
  458. package/pack/generated/codex/skills/devrites-frontend-craft/reference/shape.md +3 -7
  459. package/pack/generated/codex/skills/devrites-interview/SKILL.md +4 -3
  460. package/pack/generated/codex/skills/devrites-lib/SKILL.md +2 -1
  461. package/pack/generated/codex/skills/devrites-lib/reference/candidate-integrity.md +1 -9
  462. package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +27 -3
  463. package/pack/generated/codex/skills/devrites-lib/reference/orchestration-profiles.md +5 -0
  464. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +34 -4
  465. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +10 -3
  466. package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +7 -0
  467. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +34 -15
  468. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +13 -5
  469. package/pack/generated/codex/skills/devrites-lib/reference/standards/browser-proof-checklist.md +19 -3
  470. package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +1 -1
  471. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-navigation.md +43 -0
  472. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +25 -2
  473. package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +4 -3
  474. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +9 -1
  475. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +34 -10
  476. package/pack/generated/codex/skills/devrites-lib/reference/standards/data-integrity.md +24 -1
  477. package/pack/generated/codex/skills/devrites-lib/reference/standards/debug-recovery.md +8 -1
  478. package/pack/generated/codex/skills/devrites-lib/reference/standards/definition-of-done.md +14 -11
  479. package/pack/generated/codex/skills/devrites-lib/reference/standards/documentation.md +4 -1
  480. package/pack/generated/codex/skills/devrites-lib/reference/standards/edge-case-trace.md +5 -3
  481. package/pack/generated/codex/skills/devrites-lib/reference/standards/elicitation.md +6 -1
  482. package/pack/generated/codex/skills/devrites-lib/reference/standards/error-handling.md +5 -2
  483. package/pack/generated/codex/skills/devrites-lib/reference/standards/integration-reliability.md +32 -9
  484. package/pack/generated/codex/skills/devrites-lib/reference/standards/loop-operations.md +2 -2
  485. package/pack/generated/codex/skills/devrites-lib/reference/standards/observability.md +6 -1
  486. package/pack/generated/codex/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -2
  487. package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +16 -0
  488. package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +20 -0
  489. package/pack/generated/codex/skills/devrites-lib/reference/standards/prose-style.md +7 -0
  490. package/pack/generated/codex/skills/devrites-lib/reference/standards/repository-topology.md +8 -1
  491. package/pack/generated/codex/skills/devrites-lib/reference/standards/review-checklist.md +7 -5
  492. package/pack/generated/codex/skills/devrites-lib/reference/standards/security-checklist.md +13 -1
  493. package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +109 -11
  494. package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +53 -2
  495. package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +28 -26
  496. package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +22 -2
  497. package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +40 -12
  498. package/pack/generated/codex/skills/devrites-lib/reference/standards/workflow-artifacts.md +24 -8
  499. package/pack/generated/codex/skills/devrites-lib/reference/visual-playbooks/code.md +0 -2
  500. package/pack/generated/codex/skills/devrites-lib/reference/visual-playbooks/comparison.md +0 -2
  501. package/pack/generated/codex/skills/devrites-lib/reference/visual-playbooks/diagram.md +1 -3
  502. package/pack/generated/codex/skills/devrites-lib/reference/visual-playbooks/index.md +2 -4
  503. package/pack/generated/codex/skills/devrites-lib/reference/visual-playbooks/input.md +1 -2
  504. package/pack/generated/codex/skills/devrites-lib/reference/visual-playbooks/plan.md +1 -2
  505. package/pack/generated/codex/skills/devrites-lib/reference/visual-playbooks/slides.md +0 -2
  506. package/pack/generated/codex/skills/devrites-lib/reference/visual-playbooks/table.md +0 -2
  507. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +7 -5
  508. package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +11 -7
  509. package/pack/generated/codex/skills/devrites-prose-craft/reference/banned-phrases.md +41 -4
  510. package/pack/generated/codex/skills/devrites-prose-craft/reference/examples.md +31 -2
  511. package/pack/generated/codex/skills/devrites-prose-craft/reference/structures.md +62 -0
  512. package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +11 -12
  513. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +5 -6
  514. package/pack/generated/codex/skills/rite/SKILL.md +3 -1
  515. package/pack/generated/codex/skills/rite-adopt/SKILL.md +9 -8
  516. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +9 -6
  517. package/pack/generated/codex/skills/rite-build/SKILL.md +6 -3
  518. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +2 -2
  519. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +3 -1
  520. package/pack/generated/codex/skills/rite-build/reference/output.md +2 -2
  521. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +19 -2
  522. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +5 -5
  523. package/pack/generated/codex/skills/rite-build/reference/tdd.md +3 -2
  524. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +7 -7
  525. package/pack/generated/codex/skills/rite-clarify/SKILL.md +6 -5
  526. package/pack/generated/codex/skills/rite-converge/SKILL.md +8 -7
  527. package/pack/generated/codex/skills/rite-converge/reference/anti-patterns.md +1 -1
  528. package/pack/generated/codex/skills/rite-customize/SKILL.md +9 -0
  529. package/pack/generated/codex/skills/rite-define/SKILL.md +4 -7
  530. package/pack/generated/codex/skills/rite-define/reference/anti-patterns.md +1 -1
  531. package/pack/generated/codex/skills/rite-define/reference/gates.md +6 -5
  532. package/pack/generated/codex/skills/rite-define/reference/plan-template.md +2 -2
  533. package/pack/generated/codex/skills/rite-dogfood/SKILL.md +10 -4
  534. package/pack/generated/codex/skills/rite-explain/SKILL.md +9 -5
  535. package/pack/generated/codex/skills/rite-explain/reference/intake.md +2 -1
  536. package/pack/generated/codex/skills/rite-frame/SKILL.md +1 -1
  537. package/pack/generated/codex/skills/rite-handoff/SKILL.md +1 -1
  538. package/pack/generated/codex/skills/rite-learn/SKILL.md +22 -4
  539. package/pack/generated/codex/skills/rite-plan/SKILL.md +4 -4
  540. package/pack/generated/codex/skills/rite-plan/reference/anti-patterns.md +2 -2
  541. package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +24 -0
  542. package/pack/generated/codex/skills/rite-polish/SKILL.md +13 -6
  543. package/pack/generated/codex/skills/rite-polish/reference/anti-ai-slop.md +20 -0
  544. package/pack/generated/codex/skills/rite-polish/reference/browser-polish-evidence.md +3 -1
  545. package/pack/generated/codex/skills/rite-polish/reference/code.md +1 -19
  546. package/pack/generated/codex/skills/rite-polish/reference/harden-checklist.md +1 -1
  547. package/pack/generated/codex/skills/rite-polish/reference/ledger.md +3 -0
  548. package/pack/generated/codex/skills/rite-polish/reference/ui.md +4 -3
  549. package/pack/generated/codex/skills/rite-pov/SKILL.md +16 -1
  550. package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +1 -1
  551. package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +2 -1
  552. package/pack/generated/codex/skills/rite-prototype/SKILL.md +2 -2
  553. package/pack/generated/codex/skills/rite-prove/SKILL.md +6 -6
  554. package/pack/generated/codex/skills/rite-prove/reference/acceptance-proof.md +8 -9
  555. package/pack/generated/codex/skills/rite-prove/reference/browser-proof.md +5 -3
  556. package/pack/generated/codex/skills/rite-prove/reference/test-command-discovery.md +0 -1
  557. package/pack/generated/codex/skills/rite-quick/SKILL.md +6 -4
  558. package/pack/generated/codex/skills/rite-resolve/SKILL.md +5 -4
  559. package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +1 -1
  560. package/pack/generated/codex/skills/rite-review/SKILL.md +18 -27
  561. package/pack/generated/codex/skills/rite-review/reference/cognitive-load.md +0 -2
  562. package/pack/generated/codex/skills/rite-review/reference/five-axis-review.md +3 -3
  563. package/pack/generated/codex/skills/rite-review/reference/nielsen-heuristics.md +3 -7
  564. package/pack/generated/codex/skills/rite-seal/SKILL.md +7 -3
  565. package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +5 -6
  566. package/pack/generated/codex/skills/rite-seal/reference/risk-and-rollback.md +1 -1
  567. package/pack/generated/codex/skills/rite-seal/reference/seal-template.md +2 -0
  568. package/pack/generated/codex/skills/rite-ship/SKILL.md +3 -2
  569. package/pack/generated/codex/skills/rite-ship/reference/close-out.md +25 -5
  570. package/pack/generated/codex/skills/rite-ship/reference/rollout.md +1 -1
  571. package/pack/generated/codex/skills/rite-spec/SKILL.md +2 -1
  572. package/pack/generated/codex/skills/rite-spec/reference/anti-patterns.md +0 -1
  573. package/pack/generated/codex/skills/rite-spec/reference/investigation.md +1 -3
  574. package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +1 -1
  575. package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +1 -1
  576. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +6 -3
  577. package/pack/generated/codex/skills/rite-status/SKILL.md +3 -1
  578. package/pack/generated/codex/skills/rite-temper/SKILL.md +9 -9
  579. package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +2 -2
  580. package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +2 -2
  581. package/pack/generated/codex/skills/rite-temper/reference/significance.md +4 -4
  582. package/pack/generated/codex/skills/rite-temper/reference/strategy-template.md +6 -6
  583. package/pack/generated/codex/skills/rite-upgrade/SKILL.md +2 -2
  584. package/pack/generated/codex/skills/rite-vet/SKILL.md +14 -10
  585. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +9 -1
  586. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +14 -2
  587. package/pack/generated/codex/skills/rite-watch-pr/SKILL.md +2 -2
  588. package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +4 -4
  589. package/pack/generated/omp/.omp-plugin/plugin.json +6 -0
  590. package/pack/generated/omp/agents/devrites-code-reviewer.md +138 -0
  591. package/pack/generated/omp/agents/devrites-devex-reviewer.md +123 -0
  592. package/pack/generated/omp/agents/devrites-doubt-reviewer.md +81 -0
  593. package/pack/generated/omp/agents/devrites-evidence-scout.md +71 -0
  594. package/pack/generated/omp/agents/devrites-frontend-reviewer.md +114 -0
  595. package/pack/generated/omp/agents/devrites-performance-reviewer.md +114 -0
  596. package/pack/generated/omp/agents/devrites-plan-drafter.md +82 -0
  597. package/pack/generated/omp/agents/devrites-plan-reviewer.md +132 -0
  598. package/pack/generated/omp/agents/devrites-proof-runner.md +73 -0
  599. package/pack/generated/omp/agents/devrites-retrospector.md +60 -0
  600. package/pack/generated/omp/agents/devrites-security-auditor.md +108 -0
  601. package/pack/generated/omp/agents/devrites-simplifier-reviewer.md +93 -0
  602. package/pack/generated/omp/agents/devrites-slice-wright.md +203 -0
  603. package/pack/generated/omp/agents/devrites-spec-reviewer.md +95 -0
  604. package/pack/generated/omp/agents/devrites-strategy-reviewer.md +99 -0
  605. package/pack/generated/omp/agents/devrites-test-analyst.md +88 -0
  606. package/pack/generated/omp/agents/devrites-upgrade-planner.md +80 -0
  607. package/pack/generated/omp/skills/devrites-api-interface/SKILL.md +61 -0
  608. package/pack/generated/omp/skills/devrites-audit/SKILL.md +50 -0
  609. package/pack/generated/omp/skills/devrites-browser-proof/SKILL.md +76 -0
  610. package/pack/generated/omp/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
  611. package/pack/generated/omp/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
  612. package/pack/generated/omp/skills/devrites-debug-recovery/SKILL.md +96 -0
  613. package/pack/generated/omp/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
  614. package/pack/generated/omp/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -0
  615. package/pack/generated/omp/skills/devrites-debug-recovery/reference/hypotheses.md +17 -0
  616. package/pack/generated/omp/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
  617. package/pack/generated/omp/skills/devrites-debug-recovery/reference/regression-test.md +30 -0
  618. package/pack/generated/omp/skills/devrites-debug-recovery/reference/trace.md +25 -0
  619. package/pack/generated/omp/skills/devrites-doubt/SKILL.md +86 -0
  620. package/pack/generated/omp/skills/devrites-frontend-craft/SKILL.md +86 -0
  621. package/pack/generated/omp/skills/devrites-frontend-craft/reference/craft.md +63 -0
  622. package/pack/generated/omp/skills/devrites-frontend-craft/reference/design-references.md +116 -0
  623. package/pack/generated/omp/skills/devrites-frontend-craft/reference/fullstack.md +46 -0
  624. package/pack/generated/omp/skills/devrites-frontend-craft/reference/quality-standards.md +294 -0
  625. package/pack/generated/omp/skills/devrites-frontend-craft/reference/reuse-first.md +53 -0
  626. package/pack/generated/omp/skills/devrites-frontend-craft/reference/shape.md +56 -0
  627. package/pack/generated/omp/skills/devrites-interview/SKILL.md +102 -0
  628. package/pack/generated/omp/skills/devrites-lib/SKILL.md +58 -0
  629. package/pack/generated/omp/skills/devrites-lib/reference/candidate-integrity.md +43 -0
  630. package/pack/generated/omp/skills/devrites-lib/reference/intent-map.md +64 -0
  631. package/pack/generated/omp/skills/devrites-lib/reference/orchestration-profiles.md +27 -0
  632. package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +74 -0
  633. package/pack/generated/omp/skills/devrites-lib/reference/reply-contract.md +88 -0
  634. package/pack/generated/omp/skills/devrites-lib/reference/standards/README.md +60 -0
  635. package/pack/generated/omp/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +30 -0
  636. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +345 -0
  637. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +98 -0
  638. package/pack/generated/omp/skills/devrites-lib/reference/standards/anti-patterns.md +48 -0
  639. package/pack/generated/omp/skills/devrites-lib/reference/standards/browser-proof-checklist.md +24 -0
  640. package/pack/generated/omp/skills/devrites-lib/reference/standards/ci-cd.md +50 -0
  641. package/pack/generated/omp/skills/devrites-lib/reference/standards/code-navigation.md +43 -0
  642. package/pack/generated/omp/skills/devrites-lib/reference/standards/code-review.md +108 -0
  643. package/pack/generated/omp/skills/devrites-lib/reference/standards/coding-style.md +48 -0
  644. package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +89 -0
  645. package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +167 -0
  646. package/pack/generated/omp/skills/devrites-lib/reference/standards/data-integrity.md +118 -0
  647. package/pack/generated/omp/skills/devrites-lib/reference/standards/debug-recovery.md +28 -0
  648. package/pack/generated/omp/skills/devrites-lib/reference/standards/definition-of-done.md +19 -0
  649. package/pack/generated/omp/skills/devrites-lib/reference/standards/deprecation.md +31 -0
  650. package/pack/generated/omp/skills/devrites-lib/reference/standards/developer-experience.md +119 -0
  651. package/pack/generated/omp/skills/devrites-lib/reference/standards/development-workflow.md +29 -0
  652. package/pack/generated/omp/skills/devrites-lib/reference/standards/documentation.md +43 -0
  653. package/pack/generated/omp/skills/devrites-lib/reference/standards/edge-case-trace.md +92 -0
  654. package/pack/generated/omp/skills/devrites-lib/reference/standards/elicitation.md +85 -0
  655. package/pack/generated/omp/skills/devrites-lib/reference/standards/error-handling.md +47 -0
  656. package/pack/generated/omp/skills/devrites-lib/reference/standards/git-workflow.md +49 -0
  657. package/pack/generated/omp/skills/devrites-lib/reference/standards/hooks.md +25 -0
  658. package/pack/generated/omp/skills/devrites-lib/reference/standards/integration-reliability.md +102 -0
  659. package/pack/generated/omp/skills/devrites-lib/reference/standards/loop-operations.md +85 -0
  660. package/pack/generated/omp/skills/devrites-lib/reference/standards/observability.md +88 -0
  661. package/pack/generated/omp/skills/devrites-lib/reference/standards/one-shot-actions.md +97 -0
  662. package/pack/generated/omp/skills/devrites-lib/reference/standards/patterns.md +68 -0
  663. package/pack/generated/omp/skills/devrites-lib/reference/standards/performance.md +51 -0
  664. package/pack/generated/omp/skills/devrites-lib/reference/standards/principles.md +42 -0
  665. package/pack/generated/omp/skills/devrites-lib/reference/standards/prose-style.md +123 -0
  666. package/pack/generated/omp/skills/devrites-lib/reference/standards/release/ship-checklist.md +8 -0
  667. package/pack/generated/omp/skills/devrites-lib/reference/standards/repository-topology.md +80 -0
  668. package/pack/generated/omp/skills/devrites-lib/reference/standards/review-checklist.md +12 -0
  669. package/pack/generated/omp/skills/devrites-lib/reference/standards/security-checklist.md +25 -0
  670. package/pack/generated/omp/skills/devrites-lib/reference/standards/security.md +202 -0
  671. package/pack/generated/omp/skills/devrites-lib/reference/standards/skill-authoring.md +209 -0
  672. package/pack/generated/omp/skills/devrites-lib/reference/standards/spec-grammar.md +197 -0
  673. package/pack/generated/omp/skills/devrites-lib/reference/standards/test-proof-checklist.md +13 -0
  674. package/pack/generated/omp/skills/devrites-lib/reference/standards/testing.md +212 -0
  675. package/pack/generated/omp/skills/devrites-lib/reference/standards/tooling.md +92 -0
  676. package/pack/generated/omp/skills/devrites-lib/reference/standards/workflow-artifacts.md +427 -0
  677. package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/code.md +44 -0
  678. package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/comparison.md +42 -0
  679. package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/diagram.md +51 -0
  680. package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/index.md +66 -0
  681. package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/input.md +46 -0
  682. package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/outline-template.md +106 -0
  683. package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/plan.md +48 -0
  684. package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/slides.md +40 -0
  685. package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/table.md +42 -0
  686. package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +228 -0
  687. package/pack/generated/omp/skills/devrites-prose-craft/SKILL.md +73 -0
  688. package/pack/generated/omp/skills/devrites-prose-craft/reference/banned-phrases.md +132 -0
  689. package/pack/generated/omp/skills/devrites-prose-craft/reference/examples.md +131 -0
  690. package/pack/generated/omp/skills/devrites-prose-craft/reference/structures.md +196 -0
  691. package/pack/generated/omp/skills/devrites-source-driven/SKILL.md +52 -0
  692. package/pack/generated/omp/skills/devrites-ux-shape/SKILL.md +134 -0
  693. package/pack/generated/omp/skills/devrites-ux-shape/reference/brief-template.md +108 -0
  694. package/pack/generated/omp/skills/devrites-ux-shape/reference/visual-direction-probe.md +48 -0
  695. package/pack/generated/omp/skills/rite/SKILL.md +148 -0
  696. package/pack/generated/omp/skills/rite/reference/menu.md +48 -0
  697. package/pack/generated/omp/skills/rite-adopt/SKILL.md +52 -0
  698. package/pack/generated/omp/skills/rite-adopt/reference/adoption.md +19 -0
  699. package/pack/generated/omp/skills/rite-adopt/reference/anti-patterns.md +19 -0
  700. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +122 -0
  701. package/pack/generated/omp/skills/rite-autocomplete/reference/decision-policy.md +41 -0
  702. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +116 -0
  703. package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +92 -0
  704. package/pack/generated/omp/skills/rite-build/SKILL.md +79 -0
  705. package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +145 -0
  706. package/pack/generated/omp/skills/rite-build/reference/anti-patterns.md +23 -0
  707. package/pack/generated/omp/skills/rite-build/reference/checkpoint-protocol.md +120 -0
  708. package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +46 -0
  709. package/pack/generated/omp/skills/rite-build/reference/frontend-trigger.md +39 -0
  710. package/pack/generated/omp/skills/rite-build/reference/one-slice-cycle.md +45 -0
  711. package/pack/generated/omp/skills/rite-build/reference/output.md +33 -0
  712. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +81 -0
  713. package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +66 -0
  714. package/pack/generated/omp/skills/rite-build/reference/spec-drift-guard.md +59 -0
  715. package/pack/generated/omp/skills/rite-build/reference/tdd.md +27 -0
  716. package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +86 -0
  717. package/pack/generated/omp/skills/rite-clarify/SKILL.md +99 -0
  718. package/pack/generated/omp/skills/rite-clarify/reference/anti-patterns.md +24 -0
  719. package/pack/generated/omp/skills/rite-clarify/reference/decision-coverage.md +55 -0
  720. package/pack/generated/omp/skills/rite-converge/SKILL.md +140 -0
  721. package/pack/generated/omp/skills/rite-converge/reference/anti-patterns.md +35 -0
  722. package/pack/generated/omp/skills/rite-converge/reference/convergence-assessment.md +65 -0
  723. package/pack/generated/omp/skills/rite-customize/SKILL.md +60 -0
  724. package/pack/generated/omp/skills/rite-define/SKILL.md +166 -0
  725. package/pack/generated/omp/skills/rite-define/reference/anti-patterns.md +26 -0
  726. package/pack/generated/omp/skills/rite-define/reference/gates.md +154 -0
  727. package/pack/generated/omp/skills/rite-define/reference/plan-template.md +149 -0
  728. package/pack/generated/omp/skills/rite-doctor/SKILL.md +69 -0
  729. package/pack/generated/omp/skills/rite-dogfood/SKILL.md +55 -0
  730. package/pack/generated/omp/skills/rite-explain/SKILL.md +152 -0
  731. package/pack/generated/omp/skills/rite-explain/reference/intake.md +89 -0
  732. package/pack/generated/omp/skills/rite-frame/SKILL.md +115 -0
  733. package/pack/generated/omp/skills/rite-frame/reference/failure-modes.md +66 -0
  734. package/pack/generated/omp/skills/rite-handoff/SKILL.md +97 -0
  735. package/pack/generated/omp/skills/rite-handoff/reference/handoff-template.md +44 -0
  736. package/pack/generated/omp/skills/rite-learn/SKILL.md +72 -0
  737. package/pack/generated/omp/skills/rite-plan/SKILL.md +132 -0
  738. package/pack/generated/omp/skills/rite-plan/reference/anti-patterns.md +34 -0
  739. package/pack/generated/omp/skills/rite-plan/reference/dependency-graph.md +48 -0
  740. package/pack/generated/omp/skills/rite-plan/reference/replan-and-repair.md +73 -0
  741. package/pack/generated/omp/skills/rite-plan/reference/slicing.md +65 -0
  742. package/pack/generated/omp/skills/rite-plan/reference/task-breakdown.md +42 -0
  743. package/pack/generated/omp/skills/rite-polish/SKILL.md +104 -0
  744. package/pack/generated/omp/skills/rite-polish/reference/adr-promotion.md +11 -0
  745. package/pack/generated/omp/skills/rite-polish/reference/anti-ai-slop.md +187 -0
  746. package/pack/generated/omp/skills/rite-polish/reference/anti-patterns.md +30 -0
  747. package/pack/generated/omp/skills/rite-polish/reference/backend-polish.md +80 -0
  748. package/pack/generated/omp/skills/rite-polish/reference/browser-polish-evidence.md +33 -0
  749. package/pack/generated/omp/skills/rite-polish/reference/code.md +82 -0
  750. package/pack/generated/omp/skills/rite-polish/reference/design-memory.md +117 -0
  751. package/pack/generated/omp/skills/rite-polish/reference/design-system-discovery.md +8 -0
  752. package/pack/generated/omp/skills/rite-polish/reference/harden-checklist.md +109 -0
  753. package/pack/generated/omp/skills/rite-polish/reference/ledger.md +65 -0
  754. package/pack/generated/omp/skills/rite-polish/reference/ui.md +137 -0
  755. package/pack/generated/omp/skills/rite-pov/SKILL.md +58 -0
  756. package/pack/generated/omp/skills/rite-pr-feedback/SKILL.md +54 -0
  757. package/pack/generated/omp/skills/rite-pressure-test/SKILL.md +67 -0
  758. package/pack/generated/omp/skills/rite-prototype/SKILL.md +104 -0
  759. package/pack/generated/omp/skills/rite-prove/SKILL.md +122 -0
  760. package/pack/generated/omp/skills/rite-prove/reference/acceptance-proof.md +88 -0
  761. package/pack/generated/omp/skills/rite-prove/reference/anti-patterns.md +25 -0
  762. package/pack/generated/omp/skills/rite-prove/reference/browser-proof.md +51 -0
  763. package/pack/generated/omp/skills/rite-prove/reference/failure-triage.md +43 -0
  764. package/pack/generated/omp/skills/rite-prove/reference/proof-ladder.md +28 -0
  765. package/pack/generated/omp/skills/rite-prove/reference/test-command-discovery.md +30 -0
  766. package/pack/generated/omp/skills/rite-quick/SKILL.md +82 -0
  767. package/pack/generated/omp/skills/rite-resolve/SKILL.md +95 -0
  768. package/pack/generated/omp/skills/rite-resolve/reference/answer-protocol.md +118 -0
  769. package/pack/generated/omp/skills/rite-review/SKILL.md +159 -0
  770. package/pack/generated/omp/skills/rite-review/reference/anti-patterns.md +32 -0
  771. package/pack/generated/omp/skills/rite-review/reference/cognitive-load.md +90 -0
  772. package/pack/generated/omp/skills/rite-review/reference/feature-scoped-review.md +26 -0
  773. package/pack/generated/omp/skills/rite-review/reference/five-axis-review.md +66 -0
  774. package/pack/generated/omp/skills/rite-review/reference/nielsen-heuristics.md +126 -0
  775. package/pack/generated/omp/skills/rite-review/reference/performance-checklist.md +80 -0
  776. package/pack/generated/omp/skills/rite-review/reference/performance-review.md +14 -0
  777. package/pack/generated/omp/skills/rite-review/reference/security-review.md +42 -0
  778. package/pack/generated/omp/skills/rite-seal/SKILL.md +73 -0
  779. package/pack/generated/omp/skills/rite-seal/reference/anti-patterns.md +29 -0
  780. package/pack/generated/omp/skills/rite-seal/reference/final-evidence.md +40 -0
  781. package/pack/generated/omp/skills/rite-seal/reference/go-no-go.md +29 -0
  782. package/pack/generated/omp/skills/rite-seal/reference/output.md +5 -0
  783. package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +47 -0
  784. package/pack/generated/omp/skills/rite-seal/reference/risk-and-rollback.md +56 -0
  785. package/pack/generated/omp/skills/rite-seal/reference/seal-template.md +27 -0
  786. package/pack/generated/omp/skills/rite-ship/SKILL.md +85 -0
  787. package/pack/generated/omp/skills/rite-ship/reference/anti-patterns.md +28 -0
  788. package/pack/generated/omp/skills/rite-ship/reference/close-out.md +54 -0
  789. package/pack/generated/omp/skills/rite-ship/reference/git-ship.md +111 -0
  790. package/pack/generated/omp/skills/rite-ship/reference/rollout.md +62 -0
  791. package/pack/generated/omp/skills/rite-ship/reference/ship-template.md +39 -0
  792. package/pack/generated/omp/skills/rite-spec/SKILL.md +144 -0
  793. package/pack/generated/omp/skills/rite-spec/reference/acceptance-criteria.md +31 -0
  794. package/pack/generated/omp/skills/rite-spec/reference/ai-spec-template.md +40 -0
  795. package/pack/generated/omp/skills/rite-spec/reference/anti-patterns.md +27 -0
  796. package/pack/generated/omp/skills/rite-spec/reference/interview-patterns.md +56 -0
  797. package/pack/generated/omp/skills/rite-spec/reference/investigation.md +83 -0
  798. package/pack/generated/omp/skills/rite-spec/reference/question-protocol.md +36 -0
  799. package/pack/generated/omp/skills/rite-spec/reference/references-intake.md +62 -0
  800. package/pack/generated/omp/skills/rite-spec/reference/spec-checklists.md +89 -0
  801. package/pack/generated/omp/skills/rite-spec/reference/spec-template.md +154 -0
  802. package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +221 -0
  803. package/pack/generated/omp/skills/rite-status/SKILL.md +54 -0
  804. package/pack/generated/omp/skills/rite-temper/SKILL.md +127 -0
  805. package/pack/generated/omp/skills/rite-temper/reference/anti-patterns.md +29 -0
  806. package/pack/generated/omp/skills/rite-temper/reference/review-dimensions.md +67 -0
  807. package/pack/generated/omp/skills/rite-temper/reference/scope-modes.md +53 -0
  808. package/pack/generated/omp/skills/rite-temper/reference/significance.md +46 -0
  809. package/pack/generated/omp/skills/rite-temper/reference/strategy-template.md +90 -0
  810. package/pack/generated/omp/skills/rite-upgrade/SKILL.md +112 -0
  811. package/pack/generated/omp/skills/rite-vet/SKILL.md +158 -0
  812. package/pack/generated/omp/skills/rite-vet/reference/anti-patterns.md +41 -0
  813. package/pack/generated/omp/skills/rite-vet/reference/artifacts.md +202 -0
  814. package/pack/generated/omp/skills/rite-vet/reference/cross-model.md +19 -0
  815. package/pack/generated/omp/skills/rite-vet/reference/depth.md +60 -0
  816. package/pack/generated/omp/skills/rite-vet/reference/eng-lenses.md +48 -0
  817. package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +176 -0
  818. package/pack/generated/omp/skills/rite-watch-pr/SKILL.md +85 -0
  819. package/pack/generated/omp/skills/rite-zoom-out/SKILL.md +69 -0
  820. package/package.json +12 -1
  821. package/scripts/build-host-artifacts.sh +48 -6
  822. package/scripts/omp-generate.sh +152 -0
package/docs/usage.md CHANGED
@@ -8,6 +8,7 @@ lifecycle. Workspace phases first read the active workspace from
8
8
  command that can create or select one. `/rite-upgrade [slug]` is the
9
9
  compatibility audit for an older active workspace that cannot resume.
10
10
 
11
+ - **First install** → [README Quick start](../README.md#quick-start) (`npx devrites@latest`)
11
12
  - **Full command reference** → [`command-map.md`](command-map.md)
12
13
  - **Flow diagrams** → [`flow.md`](flow.md)
13
14
  - **Architecture rationale** → [`architecture.md`](architecture.md)
@@ -61,7 +62,7 @@ preservation-first audit: age/cursor encoding alone is not a defect, and only a
61
62
  cited current-contract failure routes repair through its phase owner. Completed
62
63
  work and evidence stay intact. Candidate defects may route current Prove,
63
64
  Polish, Review, and Seal in that order; old passes are never synthesized. The
64
- engine has no structural migration command.
65
+ engine owns deterministic v5 schema normalization.
65
66
 
66
67
  Project-root sentinel (outside the workspace):
67
68
 
@@ -0,0 +1,27 @@
1
+ # golangci-lint v2 — curated complement to the existing strict gates
2
+ # (staticcheck, govulncheck, gosec). Enables only checkers that add findings
3
+ # staticcheck does not produce; see the engine job in ci.yml and `make lint`.
4
+ version: "2"
5
+
6
+ linters:
7
+ default: none
8
+ enable:
9
+ # Unchecked error returns: staticcheck does not flag ignored errors.
10
+ - errcheck
11
+ # Assignments never read: distinct from staticcheck's unused analysis.
12
+ - ineffassign
13
+ settings:
14
+ errcheck:
15
+ # The engine's CLI boundary reports via exit paths, not error returns;
16
+ # writes to the operator's stdout/stderr streams fail only on closed
17
+ # writers.
18
+ exclude-functions:
19
+ - fmt.Fprint
20
+ - fmt.Fprintf
21
+ - fmt.Fprintln
22
+ - (*bytes.Buffer).WriteByte
23
+ - (*strings.Builder).WriteByte
24
+ - (*strings.Builder).WriteString
25
+
26
+ formatters:
27
+ default: none
@@ -0,0 +1,24 @@
1
+ # Engine control plane
2
+
3
+ This directory is the deterministic Go control plane. Native skills and agents
4
+ own semantic judgment; this binary owns structure, identity, and ID-reference
5
+ completeness.
6
+
7
+ ## Invariants
8
+
9
+ - Build with `CGO_ENABLED=0`. The hot path is stdlib-only (no CLI framework,
10
+ no model client). Workspace policy, state, proof, and install-application
11
+ packages stay network-free. Direct `devrites-engine update` is the bounded,
12
+ checksummed exception (ADR-0008, ADR-0024, ADR-0028).
13
+ - Date-derived `resolve` output reads the clock through `DEVRITES_NOW`
14
+ (RFC-3339 or `YYYY-MM-DD`). Operational timestamps (leases, install
15
+ manifests) use wall time by design (ADR-0006).
16
+ - `check readiness` / `check seal` do not parse reviewer prose or infer
17
+ coverage quality. They may require that a canonical `AC-###` ID declared in
18
+ `spec.md` also appears as a literal substring in `tasks.md` and
19
+ `test-plan.md` when those artifacts are required.
20
+ - Local full gate: `make quality` (`gofmt`, `go vet`, `staticcheck`,
21
+ `govulncheck`, `gosec`, `golangci-lint`, `osv-scanner`,
22
+ `go test -race -shuffle=on -count=1`).
23
+
24
+ See [`../CONTEXT.md`](../CONTEXT.md) and [`../docs/adr/README.md`](../docs/adr/README.md).
package/engine/Makefile CHANGED
@@ -4,14 +4,18 @@ GOFILES := $(shell find . -name '*.go' -not -path './$(DIST)/*')
4
4
  # darwin/amd64 kept for Intel Macs; the five targets the release matrix ships.
5
5
  PLATFORMS := darwin/arm64 darwin/amd64 linux/amd64 linux/arm64 windows/amd64
6
6
 
7
- .PHONY: build fmt-check test test-race vet quality staticcheck govulncheck gosec cover crosscompile clean
7
+ .PHONY: build fmt-check test test-race vet quality staticcheck govulncheck gosec lint cover crosscompile clean
8
8
 
9
9
  STATICCHECK_VERSION := 2026.1
10
10
  GOVULNCHECK_VERSION := v1.6.0
11
11
  GOSEC_VERSION := v2.28.0
12
+ GOLANGCI_VERSION := v2.13.2
13
+ OSV_SCANNER_VERSION := v2.5.1
12
14
  STATICCHECK := go run honnef.co/go/tools/cmd/staticcheck@$(STATICCHECK_VERSION)
13
15
  GOVULNCHECK := go run golang.org/x/vuln/cmd/govulncheck@$(GOVULNCHECK_VERSION)
14
16
  GOSEC := go run github.com/securego/gosec/v2/cmd/gosec@$(GOSEC_VERSION)
17
+ GOLANGCI := go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@$(GOLANGCI_VERSION)
18
+ OSV_SCANNER := go run github.com/google/osv-scanner/v2/cmd/osv-scanner@$(OSV_SCANNER_VERSION)
15
19
 
16
20
  build:
17
21
  CGO_ENABLED=0 go build -o $(BINARY) .
@@ -20,18 +24,18 @@ fmt-check:
20
24
  @test -z "$$(gofmt -l $(GOFILES))" || (echo "gofmt required:"; gofmt -l $(GOFILES); exit 1)
21
25
 
22
26
  test:
23
- go test ./...
27
+ go test -shuffle=on ./...
24
28
 
25
29
  # Race-enabled run for concurrent state paths and mutable test clients.
26
30
  test-race:
27
- go test -race -count=1 ./...
31
+ go test -race -shuffle=on -count=1 ./...
28
32
 
29
33
  vet:
30
34
  go vet ./...
31
35
 
32
36
  # quality is the full local gate. Mirror it in CI so a green `make quality`
33
37
  # means a green pipeline (the date-sensitive parity golden aside; see ADR-0006).
34
- quality: fmt-check vet staticcheck govulncheck gosec test-race
38
+ quality: fmt-check vet staticcheck govulncheck gosec lint osv test-race
35
39
 
36
40
  staticcheck:
37
41
  $(STATICCHECK) ./...
@@ -39,8 +43,19 @@ staticcheck:
39
43
  govulncheck:
40
44
  $(GOVULNCHECK) ./...
41
45
 
46
+ # No rule-class exclusions: G204/G304/G702/G703 sites carry per-call
47
+ # `// #nosec GXXX -- <justification>` annotations in the source, so a genuinely
48
+ # new injection or traversal sink fails this target.
42
49
  gosec:
43
- $(GOSEC) -conf .gosec.json -exclude=G204,G304,G702,G703 ./...
50
+ $(GOSEC) -conf .gosec.json ./...
51
+
52
+ # Curated complement to staticcheck (errcheck + ineffassign; .golangci.yml).
53
+ lint:
54
+ $(GOLANGCI) run ./...
55
+
56
+ # OSV.dev dependency scanner (mirrors CI dependency gate).
57
+ osv:
58
+ $(OSV_SCANNER) scan --config ../osv-scanner.toml --lockfile go.mod
44
59
 
45
60
  # Coverage baseline. No hard floor is wired yet (see ADR-0006): the number is
46
61
  # understated because most engine behaviour is exercised through CLI-level
@@ -81,7 +81,7 @@ func writeArchive(root, output, prefix string, epoch time.Time) error {
81
81
  if err != nil {
82
82
  return fmt.Errorf("open staged release tree: %w", err)
83
83
  }
84
- defer sourceRoot.Close()
84
+ defer func() { _ = sourceRoot.Close() }()
85
85
 
86
86
  entries, err := collectEntries(sourceRoot, prefix)
87
87
  if err != nil {
@@ -96,7 +96,7 @@ func writeArchive(root, output, prefix string, epoch time.Time) error {
96
96
  return fmt.Errorf("create temporary archive: %w", err)
97
97
  }
98
98
  tmpName := tmp.Name()
99
- defer os.Remove(tmpName)
99
+ defer func() { _ = os.Remove(tmpName) }()
100
100
  if err := tmp.Chmod(0o644); err != nil {
101
101
  return errors.Join(fmt.Errorf("set archive mode: %w", err), tmp.Close())
102
102
  }
@@ -103,7 +103,7 @@ func TestWriteEntriesRejectsChangedSource(t *testing.T) {
103
103
  if err != nil {
104
104
  t.Fatal(err)
105
105
  }
106
- defer sourceRoot.Close()
106
+ defer func() { _ = sourceRoot.Close() }()
107
107
  entries, err := collectEntries(sourceRoot, "devrites-v1")
108
108
  if err != nil {
109
109
  t.Fatal(err)
@@ -138,7 +138,7 @@ func TestWriteEntriesRejectsEscapingSymlinkSwap(t *testing.T) {
138
138
  if err != nil {
139
139
  t.Fatal(err)
140
140
  }
141
- defer sourceRoot.Close()
141
+ defer func() { _ = sourceRoot.Close() }()
142
142
  entries, err := collectEntries(sourceRoot, "devrites-v1")
143
143
  if err != nil {
144
144
  t.Fatal(err)
@@ -199,12 +199,12 @@ func readArchive(t *testing.T, archivePath string, epoch time.Time) archiveConte
199
199
  if err != nil {
200
200
  t.Fatal(err)
201
201
  }
202
- defer file.Close()
202
+ defer func() { _ = file.Close() }()
203
203
  gz, err := gzip.NewReader(file)
204
204
  if err != nil {
205
205
  t.Fatal(err)
206
206
  }
207
- defer gz.Close()
207
+ defer func() { _ = gz.Close() }()
208
208
  if !gz.ModTime.Equal(epoch) || gz.OS != 255 || gz.Name != "" || gz.Comment != "" || len(gz.Extra) != 0 {
209
209
  t.Fatalf("gzip header is not normalized: %#v", gz.Header)
210
210
  }
@@ -17,6 +17,7 @@ const (
17
17
  rootUnused rootMode = iota
18
18
  rootLenient
19
19
  rootStrict
20
+ rootStrictUsage
20
21
  )
21
22
 
22
23
  // rootModeFor is the single policy boundary between diagnostic/read-only
@@ -34,6 +35,24 @@ func rootModeFor(command string, args []string) rootMode {
34
35
  return rootStrict
35
36
  }
36
37
  return rootUnused
38
+ case "migrate":
39
+ return rootStrictUsage
40
+ case "check":
41
+ switch subcommand {
42
+ case "candidate", "readiness", "seal", "task-graph":
43
+ return rootStrictUsage
44
+ case "indexes":
45
+ return rootLenient
46
+ }
47
+ return rootUnused
48
+ case "orient":
49
+ return rootStrictUsage
50
+ case "observe":
51
+ switch subcommand {
52
+ case "summary":
53
+ return rootStrictUsage
54
+ }
55
+ return rootUnused
37
56
  default:
38
57
  return rootUnused
39
58
  }
@@ -67,6 +86,14 @@ func resolveRootFor(command string, args []string) (string, int, error) {
67
86
  return fallbackRoot(), exitOK, nil
68
87
  }
69
88
  return "", exitUsage, err
89
+ case rootStrictUsage:
90
+ root, err := state.ResolveRoot(os.Getenv("DEVRITES_ROOT"))
91
+ if err != nil {
92
+ // Workspace-requiring read/check commands have always mapped every
93
+ // resolution failure to the usage exit code.
94
+ return "", exitUsage, err
95
+ }
96
+ return root, exitOK, nil
70
97
  default:
71
98
  panic("unknown root resolution mode")
72
99
  }
@@ -15,8 +15,10 @@ const (
15
15
 
16
16
  ClaudeSkillsTarget = ".claude/skills"
17
17
  CodexSkillsTarget = ".agents/skills"
18
+ OmpSkillsTarget = ".omp/skills"
18
19
  ClaudeAgentsTarget = ".claude/agents"
19
20
  CodexAgentsTarget = ".codex/agents"
21
+ OmpAgentsTarget = ".omp/agents"
20
22
  ClaudeWorkflowsTarget = ".claude/workflows"
21
23
 
22
24
  ManifestName = ".claude/devrites.manifest"
@@ -175,6 +177,7 @@ func ActiveSlug(root string) (string, error) {
175
177
  if info, err := os.Lstat(activePath); err == nil && info.Mode()&os.ModeSymlink != 0 {
176
178
  return "", fmt.Errorf("DRV-ACTIVE-SYMLINK: ACTIVE is a symlink; run `rm -f %q`", activePath)
177
179
  }
180
+ // #nosec G304 -- operator-supplied workspace root; ACTIVE symlink refused above
178
181
  raw, err := os.ReadFile(activePath)
179
182
  if errors.Is(err, os.ErrNotExist) {
180
183
  return "", nil
@@ -84,6 +84,7 @@ func CopyTree(src, dst string) error {
84
84
  return fmt.Errorf("copy %s: %w", src, err)
85
85
  }
86
86
  if !info.IsDir() {
87
+ // #nosec G304 -- src is an engine-managed path inside the operator-supplied root
87
88
  data, err := os.ReadFile(src)
88
89
  if err != nil {
89
90
  return fmt.Errorf("copy %s: %w", src, err)
@@ -91,6 +92,7 @@ func CopyTree(src, dst string) error {
91
92
  if err := os.MkdirAll(filepath.Dir(dst), 0o755); err != nil {
92
93
  return fmt.Errorf("copy to %s: %w", dst, err)
93
94
  }
95
+ // #nosec G703 -- dst mirrors src within the same managed tree
94
96
  return os.WriteFile(dst, data, 0o644)
95
97
  }
96
98
  entries, err := os.ReadDir(src)
@@ -0,0 +1,193 @@
1
+ package fsutil
2
+
3
+ import (
4
+ "os"
5
+ "path/filepath"
6
+ "runtime"
7
+ "strings"
8
+ "testing"
9
+ "time"
10
+ )
11
+
12
+ func TestWriteFileAtomicWritesAndOverwrites(t *testing.T) {
13
+ dir := t.TempDir()
14
+ path := filepath.Join(dir, "nested", "file.txt")
15
+ if err := WriteFileAtomic(path, []byte("first\n"), 0o644); err != nil {
16
+ t.Fatal(err)
17
+ }
18
+ got, err := os.ReadFile(path)
19
+ if err != nil {
20
+ t.Fatal(err)
21
+ }
22
+ if string(got) != "first\n" {
23
+ t.Fatalf("content %q", got)
24
+ }
25
+ if !PermissionsMatch(mustMode(t, path), 0o644) {
26
+ t.Fatalf("perm %v", mustMode(t, path))
27
+ }
28
+ // Overwrite in place.
29
+ if err := WriteFileAtomic(path, []byte("second\n"), 0o644); err != nil {
30
+ t.Fatal(err)
31
+ }
32
+ if got, _ := os.ReadFile(path); string(got) != "second\n" {
33
+ t.Fatalf("content after overwrite %q", got)
34
+ }
35
+ // No temp files left behind.
36
+ entries, err := os.ReadDir(filepath.Dir(path))
37
+ if err != nil {
38
+ t.Fatal(err)
39
+ }
40
+ for _, e := range entries {
41
+ if name := e.Name(); name != "file.txt" && name != "nested" {
42
+ t.Fatalf("temp file left behind: %s", name)
43
+ }
44
+ }
45
+ }
46
+
47
+ func mustMode(t *testing.T, path string) os.FileMode {
48
+ t.Helper()
49
+ info, err := os.Stat(path)
50
+ if err != nil {
51
+ t.Fatal(err)
52
+ }
53
+ return info.Mode()
54
+ }
55
+
56
+ func TestFileModTime(t *testing.T) {
57
+ dir := t.TempDir()
58
+ path := filepath.Join(dir, "file.txt")
59
+ if err := os.WriteFile(path, []byte("x"), 0o644); err != nil {
60
+ t.Fatal(err)
61
+ }
62
+ modified, ok := FileModTime(path)
63
+ if !ok {
64
+ t.Fatal("regular file should report mod time")
65
+ }
66
+ if modified <= 0 {
67
+ t.Fatalf("mod time %d", modified)
68
+ }
69
+ if _, ok := FileModTime(filepath.Join(dir, "missing.txt")); ok {
70
+ t.Fatal("missing file should report !ok")
71
+ }
72
+ if _, ok := FileModTime(dir); ok {
73
+ t.Fatal("directory should report !ok")
74
+ }
75
+ }
76
+
77
+ func TestNewestModTime(t *testing.T) {
78
+ dir := t.TempDir()
79
+ old := filepath.Join(dir, "old.txt")
80
+ new := filepath.Join(dir, "new.txt")
81
+ if err := os.WriteFile(old, []byte("x"), 0o644); err != nil {
82
+ t.Fatal(err)
83
+ }
84
+ if err := os.WriteFile(new, []byte("x"), 0o644); err != nil {
85
+ t.Fatal(err)
86
+ }
87
+ future := time.Now().Add(2 * time.Hour)
88
+ if err := os.Chtimes(new, future, future); err != nil {
89
+ t.Skipf("cannot set file times on this platform: %v", err)
90
+ }
91
+ newest, ok := NewestModTime(old, new)
92
+ if !ok {
93
+ t.Fatal("expected ok")
94
+ }
95
+ want, _ := FileModTime(new)
96
+ if newest != want {
97
+ t.Fatalf("newest=%d want %d", newest, want)
98
+ }
99
+ if _, ok := NewestModTime(filepath.Join(dir, "missing.txt")); ok {
100
+ t.Fatal("missing-only inputs should report !ok")
101
+ }
102
+ }
103
+
104
+ func TestCopyTreeMissingSourceIsNoOp(t *testing.T) {
105
+ dir := t.TempDir()
106
+ dst := filepath.Join(dir, "dst")
107
+ if err := CopyTree(filepath.Join(dir, "missing"), dst); err != nil {
108
+ t.Fatalf("missing src must not error: %v", err)
109
+ }
110
+ if _, err := os.Stat(dst); !os.IsNotExist(err) {
111
+ t.Fatalf("dst must not be created, got %v", err)
112
+ }
113
+ }
114
+
115
+ func TestCopyTreeFileAndTree(t *testing.T) {
116
+ dir := t.TempDir()
117
+ src := filepath.Join(dir, "src")
118
+ if err := os.MkdirAll(filepath.Join(src, "sub"), 0o755); err != nil {
119
+ t.Fatal(err)
120
+ }
121
+ if err := os.WriteFile(filepath.Join(src, "root.txt"), []byte("root\n"), 0o644); err != nil {
122
+ t.Fatal(err)
123
+ }
124
+ if err := os.WriteFile(filepath.Join(src, "sub", "leaf.txt"), []byte("leaf\n"), 0o644); err != nil {
125
+ t.Fatal(err)
126
+ }
127
+ dst := filepath.Join(dir, "dst")
128
+ if err := CopyTree(src, dst); err != nil {
129
+ t.Fatal(err)
130
+ }
131
+ for rel, want := range map[string]string{
132
+ "root.txt": "root\n",
133
+ "sub/leaf.txt": "leaf\n",
134
+ } {
135
+ got, err := os.ReadFile(filepath.Join(dst, filepath.FromSlash(rel)))
136
+ if err != nil {
137
+ t.Fatalf("%s: %v", rel, err)
138
+ }
139
+ if string(got) != want {
140
+ t.Fatalf("%s: %q want %q", rel, got, want)
141
+ }
142
+ }
143
+
144
+ // Copying a single file copies its contents.
145
+ single := filepath.Join(dir, "single.txt")
146
+ if err := os.WriteFile(single, []byte("one\n"), 0o644); err != nil {
147
+ t.Fatal(err)
148
+ }
149
+ singleDst := filepath.Join(dir, "single-copy.txt")
150
+ if err := CopyTree(single, singleDst); err != nil {
151
+ t.Fatal(err)
152
+ }
153
+ if got, _ := os.ReadFile(singleDst); string(got) != "one\n" {
154
+ t.Fatalf("single copy %q", got)
155
+ }
156
+
157
+ // Recopying overwrites existing files.
158
+ if err := os.WriteFile(filepath.Join(src, "root.txt"), []byte("changed\n"), 0o644); err != nil {
159
+ t.Fatal(err)
160
+ }
161
+ if err := CopyTree(src, dst); err != nil {
162
+ t.Fatal(err)
163
+ }
164
+ if got, _ := os.ReadFile(filepath.Join(dst, "root.txt")); string(got) != "changed\n" {
165
+ t.Fatalf("overwrite %q", got)
166
+ }
167
+ }
168
+
169
+ func TestPermissionsMatch(t *testing.T) {
170
+ if !PermissionsMatch(0o644, 0o644) {
171
+ t.Fatal("matching perms must match")
172
+ }
173
+ if runtime.GOOS != "windows" && PermissionsMatch(0o600, 0o644) {
174
+ t.Fatal("differing POSIX perms must not match")
175
+ }
176
+ }
177
+
178
+ func TestWriteFileAtomicSurfacesFailure(t *testing.T) {
179
+ dir := t.TempDir()
180
+ blocker := filepath.Join(dir, "blocker")
181
+ if err := os.WriteFile(blocker, []byte("x"), 0o644); err != nil {
182
+ t.Fatal(err)
183
+ }
184
+ // The parent path is an existing file, so creating the destination
185
+ // directory must fail and the error must surface to the caller.
186
+ err := WriteFileAtomic(filepath.Join(blocker, "nested", "file.txt"), []byte("x"), 0o644)
187
+ if err == nil {
188
+ t.Fatal("expected the write failure to surface")
189
+ }
190
+ if !strings.Contains(err.Error(), "atomic write") {
191
+ t.Fatalf("error should identify the operation, got %v", err)
192
+ }
193
+ }
@@ -103,6 +103,12 @@ func checkObservation(kind Kind, observation *state.WorkspaceObservation) (*Resu
103
103
  }
104
104
  }
105
105
  }
106
+ if len(missingFiles) == 0 {
107
+ for _, problem := range acceptanceMapProblems(observation, policy) {
108
+ stateProblems = append(stateProblems, "acceptance-map: "+problem)
109
+ blocked = true
110
+ }
111
+ }
106
112
  if len(missingFiles) == 0 && phaseRequiresReadinessBinding(policy) {
107
113
  expected, bindingErr := verifyReadinessBinding(observation)
108
114
  if bindingErr != nil {
@@ -136,6 +142,30 @@ func checkObservation(kind Kind, observation *state.WorkspaceObservation) (*Resu
136
142
  return result, nil
137
143
  }
138
144
 
145
+ func acceptanceMapProblems(observation *state.WorkspaceObservation, policy state.PhasePolicy) []string {
146
+ requireTasks := phaseRequiresTasks(policy)
147
+ requireTestPlan := phaseRequiresTestPlan(policy)
148
+ if !requireTasks && !requireTestPlan {
149
+ return nil
150
+ }
151
+ spec, ok := observation.Fact("spec.md")
152
+ if !ok || spec.State() != state.ArtifactPresent {
153
+ return nil
154
+ }
155
+ var tasks, testPlan []byte
156
+ if requireTasks {
157
+ if fact, ok := observation.Fact("tasks.md"); ok && fact.State() == state.ArtifactPresent {
158
+ tasks = fact.Bytes()
159
+ }
160
+ }
161
+ if requireTestPlan {
162
+ if fact, ok := observation.Fact("test-plan.md"); ok && fact.State() == state.ArtifactPresent {
163
+ testPlan = fact.Bytes()
164
+ }
165
+ }
166
+ return state.ParseAcceptanceMap(spec.Bytes(), tasks, testPlan, requireTasks, requireTestPlan).Problems
167
+ }
168
+
139
169
  func missingSections(observation *state.WorkspaceObservation, required []state.Section) []state.Section {
140
170
  var missing []state.Section
141
171
  for _, section := range required {
@@ -123,7 +123,7 @@ Goal: looks complete without an ordering field
123
123
  func TestCheckAndRenderReadiness(t *testing.T) {
124
124
  root := t.TempDir()
125
125
  writeFeature(t, root, "alpha", map[string]string{
126
- "state.md": "- Phase: build\n",
126
+ "state.md": "- Phase: build\n- Schema: 3\n",
127
127
  "brief.md": "brief\n",
128
128
  "spec.md": "real spec\n",
129
129
  "assumptions.md": "none\n",
@@ -164,7 +164,7 @@ func TestCheckAndRenderReadiness(t *testing.T) {
164
164
  func TestCheckUsesConcreteWorkspaceRequirements(t *testing.T) {
165
165
  root := t.TempDir()
166
166
  files := map[string]string{
167
- "state.md": "| phase | vet |\n",
167
+ "state.md": "| phase | vet |\n| schema | 3 |\n",
168
168
  "brief.md": "brief\n",
169
169
  "spec.md": "spec\n",
170
170
  "decisions.md": "decisions\n",
@@ -192,7 +192,7 @@ func TestCheckUsesConcreteWorkspaceRequirements(t *testing.T) {
192
192
  func TestSealRequiresDurableReviewAndSealArtifacts(t *testing.T) {
193
193
  root := t.TempDir()
194
194
  files := map[string]string{
195
- "state.md": "| phase | seal |\n",
195
+ "state.md": "| phase | seal |\n| schema | 3 |\n",
196
196
  "brief.md": "brief\n",
197
197
  "spec.md": "spec\n",
198
198
  "decisions.md": "decisions\n",
@@ -373,7 +373,7 @@ func TestCheckBlocksOpenHumanQuestions(t *testing.T) {
373
373
  t.Run(tc.name, func(t *testing.T) {
374
374
  root := t.TempDir()
375
375
  writeFeature(t, root, "alpha", map[string]string{
376
- "state.md": "- Phase: build\n- Status: " + tc.status + "\n",
376
+ "state.md": "- Phase: build\n- Status: " + tc.status + "\n- Schema: 3\n",
377
377
  "spec.md": "spec\n",
378
378
  "plan.md": "plan\n",
379
379
  "decisions.md": "decisions\n",
@@ -412,7 +412,7 @@ func TestCheckUsesWorkspaceOverrideForStateInvariants(t *testing.T) {
412
412
  override := filepath.Join(physicalRoot, "work", "alpha")
413
413
  t.Setenv("DEVRITES_WORKSPACE", override)
414
414
  testutil.WriteFile(t, filepath.Join(override, "README.md"), "---\nphase: spec\nschemaVersion: 1\n---\n")
415
- testutil.WriteFile(t, filepath.Join(override, "state.md"), "- Phase: build\n- Status: running\n")
415
+ testutil.WriteFile(t, filepath.Join(override, "state.md"), "- Phase: build\n- Status: running\n- Schema: 3\n")
416
416
  testutil.WriteFile(t, filepath.Join(override, "spec.md"), "spec\n")
417
417
  testutil.WriteFile(t, filepath.Join(override, "questions.md"), "## q-1\nstatus: open\ngate: blocking\n")
418
418
 
@@ -443,7 +443,7 @@ func TestCheckObservationUsesRetainedPhaseQuestionsReadinessAndReview(t *testing
443
443
  if err != nil {
444
444
  t.Fatal(err)
445
445
  }
446
- testutil.WriteFile(t, filepath.Join(workspace, "state.md"), "- Phase: spec\n- Status: running\n")
446
+ testutil.WriteFile(t, filepath.Join(workspace, "state.md"), "- Phase: spec\n- Status: running\n- Schema: 3\n")
447
447
  testutil.WriteFile(t, filepath.Join(workspace, "questions.md"), "## q-1\nstatus: open\ngate: blocking\n")
448
448
  testutil.WriteFile(t, filepath.Join(workspace, "plan.md"), "# Plan\n\nChanged after observation.\n")
449
449
  testutil.WriteFile(t, filepath.Join(workspace, "eng-review.md"), "# Engineering review\n\nNo binding.\n")
@@ -609,7 +609,7 @@ func writeCompleteGateFeature(t *testing.T, root, slug string, current, required
609
609
  content := "# " + name + "\n\nreal\n"
610
610
  switch name {
611
611
  case "state.md":
612
- content = "- Phase: " + string(current) + "\n- Status: running\n"
612
+ content = "- Phase: " + string(current) + "\n- Status: running\n- Schema: 3\n"
613
613
  case "questions.md":
614
614
  questionsRequired = true
615
615
  content = questions
@@ -149,17 +149,20 @@ func readinessDiagnosticError(diagnostic state.ArtifactDiagnostic) error {
149
149
  }
150
150
 
151
151
  func phaseRequiresTasks(policy state.PhasePolicy) bool {
152
- for _, artifact := range policy.RequiredArtifacts {
153
- if artifact == "tasks.md" {
154
- return true
155
- }
156
- }
157
- return false
152
+ return policyRequires(policy, "tasks.md")
153
+ }
154
+
155
+ func phaseRequiresTestPlan(policy state.PhasePolicy) bool {
156
+ return policyRequires(policy, "test-plan.md")
158
157
  }
159
158
 
160
159
  func phaseRequiresReadinessBinding(policy state.PhasePolicy) bool {
160
+ return policyRequires(policy, "eng-review.md")
161
+ }
162
+
163
+ func policyRequires(policy state.PhasePolicy, name state.ArtifactPath) bool {
161
164
  for _, artifact := range policy.RequiredArtifacts {
162
- if artifact == "eng-review.md" {
165
+ if artifact == name {
163
166
  return true
164
167
  }
165
168
  }
@@ -77,7 +77,13 @@ func TestReadinessBindingBindsOnlyStableBuildInputs(t *testing.T) {
77
77
  }
78
78
 
79
79
  for _, name := range []string{"state.md", "questions.md", "decisions.md", "assumptions.md", "eng-review.md", "evidence.md", "review.md", "seal.md", "handoff.md", "ambient.md"} {
80
- testutil.WriteFile(t, filepath.Join(workspace, name), "# Mutable\n\nChanged outside the stable contract.\n")
80
+ // state.md stays a valid v5 workspace when mutated: the schema row is
81
+ // part of the contract, not part of the bound inputs.
82
+ body := "# Mutable\n\nChanged outside the stable contract.\n"
83
+ if name == "state.md" {
84
+ body = "| phase | build |\n| schema | 3 |\n" + body
85
+ }
86
+ testutil.WriteFile(t, filepath.Join(workspace, name), body)
81
87
  if got := mustReadinessBinding(t, root, "stable"); got != baseline {
82
88
  t.Fatalf("excluded %s altered binding", name)
83
89
  }
@@ -91,7 +97,7 @@ func TestReadinessBindingBindsOnlyStableBuildInputs(t *testing.T) {
91
97
  func TestReadinessBindingGoldenDigest(t *testing.T) {
92
98
  root := t.TempDir()
93
99
  writeReadinessFixture(t, root, "golden", "build")
94
- const want = "Readiness inputs SHA-256: c4a073e85373f5fd9f9302c61b6772e766e4fa2a3da2ccc77bad23756c9f412d"
100
+ const want = "Readiness inputs SHA-256: 6a0d4991d86f5a0e78333289840b5fb1a123adbb18b53243b1af34fcffcf1961"
95
101
  if got := mustReadinessBinding(t, root, "golden"); got != want {
96
102
  t.Fatalf("ReadinessBinding()=%q, want %q", got, want)
97
103
  }
@@ -361,11 +367,53 @@ func TestReadinessDiagnosticPayloads(t *testing.T) {
361
367
  }
362
368
  }
363
369
 
370
+ func TestCheckReadinessBlocksUnmappedAcceptance(t *testing.T) {
371
+ root := t.TempDir()
372
+ workspace := writeReadinessFixture(t, root, "unmapped", "build")
373
+ testutil.WriteFile(t, filepath.Join(workspace, "spec.md"), "# Spec\n\n## Acceptance criteria\n- AC-002: extra requirement.\n")
374
+ binding := mustReadinessBinding(t, root, "unmapped")
375
+ testutil.AppendFile(t, filepath.Join(workspace, "eng-review.md"), "\n"+binding+"\n")
376
+
377
+ result, err := Check(Readiness, root, "unmapped")
378
+ if err != nil {
379
+ t.Fatal(err)
380
+ }
381
+ if !result.Blocked || result.ReasonID != reason.GateReadinessMissing {
382
+ t.Fatalf("blocked=%v reason=%q render=%s", result.Blocked, result.ReasonID, result.Render())
383
+ }
384
+ joined := strings.Join(result.StateProblems, "\n")
385
+ for _, want := range []string{
386
+ "acceptance-map: acceptance AC-002 is not referenced in tasks.md",
387
+ "acceptance-map: acceptance AC-002 is not referenced in test-plan.md",
388
+ } {
389
+ if !strings.Contains(joined, want) {
390
+ t.Fatalf("missing %q in %q", want, joined)
391
+ }
392
+ }
393
+ }
394
+
395
+ func TestCheckReadinessPassesMappedAcceptance(t *testing.T) {
396
+ root := t.TempDir()
397
+ workspace := writeReadinessFixture(t, root, "mapped", "build")
398
+ testutil.WriteFile(t, filepath.Join(workspace, "spec.md"), "# Spec\n\n## Acceptance criteria\n- AC-001: bind readiness inputs.\n")
399
+ testutil.WriteFile(t, filepath.Join(workspace, "test-plan.md"), "# Test plan\n\nAC-001 focused tests.\n")
400
+ binding := mustReadinessBinding(t, root, "mapped")
401
+ testutil.AppendFile(t, filepath.Join(workspace, "eng-review.md"), "\n"+binding+"\n")
402
+
403
+ result, err := Check(Readiness, root, "mapped")
404
+ if err != nil {
405
+ t.Fatal(err)
406
+ }
407
+ if result.Blocked {
408
+ t.Fatalf("mapped acceptance blocked: %s", result.Render())
409
+ }
410
+ }
411
+
364
412
  func writeReadinessFixture(t *testing.T, root, slug, phase string) string {
365
413
  t.Helper()
366
414
  workspace := filepath.Join(root, "work", slug)
367
415
  for name, body := range map[string]string{
368
- "state.md": "| phase | " + phase + " |\n",
416
+ "state.md": "| phase | " + phase + " |\n| schema | 3 |\n",
369
417
  "brief.md": "# Brief\n\nReady.\n",
370
418
  "spec.md": "# Spec\n\nReady.\n",
371
419
  "decisions.md": "# Decisions\n\nNone.\n",