devrites 3.2.27 → 4.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 (897) hide show
  1. package/CHANGELOG.md +22 -144
  2. package/NOTICE.md +6 -5
  3. package/README.md +187 -95
  4. package/SECURITY.md +103 -79
  5. package/bin/devrites.mjs +140 -24
  6. package/docs/adr/0003-gate-model-hitl-pause.md +1 -1
  7. package/docs/adr/0013-native-codex-agent-orchestration.md +74 -0
  8. package/docs/adr/0014-native-host-hook-boundary.md +64 -0
  9. package/docs/adr/0015-read-only-root-native-orchestration.md +96 -0
  10. package/docs/adr/0016-codex-writer-fail-closed.md +53 -0
  11. package/docs/adr/0017-native-codex-writer-agent.md +63 -0
  12. package/docs/adr/0018-native-sandbox-instruction-writer-boundary.md +66 -0
  13. package/docs/adr/0019-native-boundary-with-deterministic-gates.md +48 -0
  14. package/docs/adr/0020-thin-engine-native-orchestration-boundary.md +54 -0
  15. package/docs/adr/0021-observable-workspace-compatibility.md +49 -0
  16. package/docs/adr/0022-native-orchestration-thin-engine.md +90 -0
  17. package/docs/adr/0023-native-workspace-reads-line-output.md +71 -0
  18. package/docs/adr/0024-native-policy-offline-installer-boundary.md +111 -0
  19. package/docs/adr/0025-evidence-gated-workspace-upgrades.md +64 -0
  20. package/docs/adr/0026-content-bound-proof-and-bounded-inputs.md +169 -0
  21. package/docs/adr/0027-content-bound-build-readiness.md +77 -0
  22. package/docs/adr/README.md +26 -11
  23. package/docs/agents/domain.md +2 -1
  24. package/docs/agents/issue-driven-rites.md +1 -1
  25. package/docs/architecture.md +191 -103
  26. package/docs/candidate-integrity.md +138 -0
  27. package/docs/capability-surface-selection.md +15 -5
  28. package/docs/cli.md +139 -92
  29. package/docs/command-map.md +88 -63
  30. package/docs/engine/commands.md +115 -507
  31. package/docs/engine/state-schema.md +94 -113
  32. package/docs/engine/workspace-schema.md +169 -229
  33. package/docs/flow.md +113 -68
  34. package/docs/harness-compliance.md +29 -56
  35. package/docs/markdown-instruction-upgrade-2026-08-02.md +302 -0
  36. package/docs/orchestration.md +136 -149
  37. package/docs/porting-to-a-new-harness.md +22 -7
  38. package/docs/quick-reference.md +21 -8
  39. package/docs/release.md +47 -4
  40. package/docs/skills.md +111 -72
  41. package/docs/templates/CRITIC_REVIEW_PACKET_TEMPLATE.md +2 -0
  42. package/docs/upstream-workflow-benchmark-2026-08-01.md +655 -0
  43. package/docs/usage.md +99 -65
  44. package/engine/Makefile +1 -2
  45. package/engine/cmd/releasepack/main.go +45 -25
  46. package/engine/cmd/releasepack/main_test.go +69 -0
  47. package/engine/commands.go +8 -258
  48. package/engine/harnessmatrix_test.go +28 -41
  49. package/engine/internal/devritespaths/paths.go +12 -28
  50. package/engine/internal/fsutil/copy.go +8 -0
  51. package/engine/internal/gate/gate.go +104 -105
  52. package/engine/internal/gate/gate_test.go +94 -84
  53. package/engine/internal/gate/readiness_binding.go +203 -0
  54. package/engine/internal/gate/readiness_binding_test.go +271 -0
  55. package/engine/internal/gitenv/env.go +46 -0
  56. package/engine/internal/gitenv/env_test.go +48 -0
  57. package/engine/internal/hostpack/hostpack.go +16 -20
  58. package/engine/internal/hostpack/hostpack_test.go +6 -6
  59. package/engine/internal/install/install.go +289 -511
  60. package/engine/internal/install/install_test.go +218 -306
  61. package/engine/internal/lib/candidate.go +475 -0
  62. package/engine/internal/lib/candidate_test.go +503 -0
  63. package/engine/internal/lib/closeout.go +17 -21
  64. package/engine/internal/lib/closeout_test.go +23 -0
  65. package/engine/internal/lib/cursor_compat_test.go +12 -75
  66. package/engine/internal/lib/evidencefresh.go +58 -47
  67. package/engine/internal/lib/evidencefresh_test.go +120 -0
  68. package/engine/internal/lib/resolve.go +13 -35
  69. package/engine/internal/lib/resolve_remediation_test.go +5 -17
  70. package/engine/internal/lib/secretscan.go +432 -0
  71. package/engine/internal/lib/secretscan_test.go +555 -0
  72. package/engine/internal/lib/util.go +24 -65
  73. package/engine/internal/lib/util_test.go +44 -0
  74. package/engine/internal/markdowntext/markdowntext.go +108 -0
  75. package/engine/internal/markdowntext/markdowntext_test.go +58 -0
  76. package/engine/internal/markdowntext/testdata/structural.json +27 -0
  77. package/engine/internal/reason/reason.go +2 -123
  78. package/engine/internal/reason/reason_test.go +4 -2
  79. package/engine/internal/rootfacts/facts.go +6 -8
  80. package/engine/internal/rootfacts/facts_test.go +20 -0
  81. package/engine/internal/state/cmd/workflowmanifest/main.go +10 -12
  82. package/engine/internal/state/cursor.go +53 -14
  83. package/engine/internal/state/cursor_test.go +57 -0
  84. package/engine/internal/state/feature.go +64 -154
  85. package/engine/internal/state/schema.go +24 -50
  86. package/engine/internal/state/state_test.go +151 -140
  87. package/engine/internal/state/status.go +4 -17
  88. package/engine/internal/state/workflow_manifest.json +9 -89
  89. package/engine/main.go +73 -502
  90. package/engine/root_routing_test.go +183 -212
  91. package/engine/testdata/fixtures/basic/devrites-root/{features/auth-tokens/feature.md → work/auth-tokens/README.md} +0 -1
  92. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/architecture.md +3 -0
  93. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/assumptions.md +3 -0
  94. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/brief.md +3 -0
  95. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/decision-coverage.md +3 -0
  96. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/eng-review.md +3 -0
  97. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/questions.md +3 -0
  98. package/engine/testdata/fixtures/basic/devrites-root/{features/auth-tokens/status.md → work/auth-tokens/state.md} +3 -0
  99. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/test-plan.md +3 -0
  100. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/traceability.md +3 -0
  101. package/engine/testdata/fixtures/basic/devrites-root/{features/search-ranking/feature.md → work/search-ranking/README.md} +0 -1
  102. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/assumptions.md +3 -0
  103. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/brief.md +3 -0
  104. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/decisions.md +3 -0
  105. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/questions.md +3 -0
  106. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/state.md +2 -0
  107. package/engine/testdata/golden/TestParityCloseOut/active_pointed_elsewhere.golden +1 -1
  108. package/engine/testdata/golden/TestParityCloseOut/active_slug_cleared.golden +1 -1
  109. package/engine/tests/adr_0003_gate_exit_code_test.go +2 -2
  110. package/engine/tests/adr_0011_define_plan_test.go +2 -2
  111. package/engine/tests/adr_0027_readiness_binding_test.go +106 -0
  112. package/engine/tests/cli_test.go +24 -107
  113. package/engine/tests/gate_test.go +177 -200
  114. package/engine/tests/meta_test.go +5 -35
  115. package/engine/tests/parity_closeout_test.go +12 -12
  116. package/engine/tests/parity_resolve_test.go +6 -16
  117. package/engine/tests/parity_test.go +8 -302
  118. package/install.sh +201 -34
  119. package/pack/.claude/agents/devrites-code-reviewer.md +9 -18
  120. package/pack/.claude/agents/devrites-devex-reviewer.md +10 -18
  121. package/pack/.claude/agents/devrites-doubt-reviewer.md +10 -20
  122. package/pack/.claude/agents/devrites-evidence-scout.md +14 -26
  123. package/pack/.claude/agents/devrites-frontend-reviewer.md +9 -15
  124. package/pack/.claude/agents/devrites-performance-reviewer.md +13 -21
  125. package/pack/.claude/agents/devrites-plan-drafter.md +24 -28
  126. package/pack/.claude/agents/devrites-plan-reviewer.md +30 -47
  127. package/pack/.claude/agents/devrites-proof-runner.md +41 -47
  128. package/pack/.claude/agents/devrites-retrospector.md +34 -79
  129. package/pack/.claude/agents/devrites-security-auditor.md +9 -17
  130. package/pack/.claude/agents/devrites-simplifier-reviewer.md +9 -18
  131. package/pack/.claude/agents/devrites-slice-wright.md +44 -62
  132. package/pack/.claude/agents/devrites-spec-reviewer.md +38 -50
  133. package/pack/.claude/agents/devrites-strategy-reviewer.md +10 -19
  134. package/pack/.claude/agents/devrites-test-analyst.md +22 -21
  135. package/pack/.claude/agents/devrites-upgrade-planner.md +52 -71
  136. package/pack/.claude/settings.json +12 -100
  137. package/pack/.claude/skills/devrites-api-interface/SKILL.md +1 -2
  138. package/pack/.claude/skills/devrites-audit/SKILL.md +6 -9
  139. package/pack/.claude/skills/devrites-browser-proof/SKILL.md +0 -1
  140. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +21 -27
  141. package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +22 -33
  142. package/pack/.claude/skills/devrites-doubt/SKILL.md +4 -6
  143. package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +1 -2
  144. package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +2 -1
  145. package/pack/.claude/skills/devrites-interview/SKILL.md +31 -36
  146. package/pack/.claude/skills/devrites-lib/SKILL.md +37 -66
  147. package/pack/.claude/skills/devrites-lib/reference/candidate-integrity.md +51 -0
  148. package/pack/.claude/skills/devrites-lib/reference/intent-map.md +20 -12
  149. package/pack/.claude/skills/devrites-lib/reference/orchestration-profiles.md +22 -0
  150. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +35 -110
  151. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +26 -93
  152. package/pack/.claude/skills/devrites-lib/reference/standards/README.md +6 -3
  153. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +43 -34
  154. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +90 -216
  155. package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +1 -1
  156. package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +9 -28
  157. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +13 -11
  158. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +59 -54
  159. package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +3 -5
  160. package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +29 -143
  161. package/pack/.claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +5 -6
  162. package/pack/.claude/skills/devrites-lib/reference/standards/security.md +13 -31
  163. package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +112 -82
  164. package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +71 -45
  165. package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +22 -11
  166. package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +15 -24
  167. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +106 -37
  168. package/pack/.claude/skills/devrites-prose-craft/SKILL.md +3 -4
  169. package/pack/.claude/skills/devrites-source-driven/SKILL.md +3 -4
  170. package/pack/.claude/skills/devrites-ux-shape/SKILL.md +3 -3
  171. package/pack/.claude/skills/rite/SKILL.md +12 -13
  172. package/pack/.claude/skills/rite/reference/menu.md +11 -11
  173. package/pack/.claude/skills/rite-adopt/SKILL.md +29 -84
  174. package/pack/.claude/skills/rite-adopt/reference/adoption.md +16 -50
  175. package/pack/.claude/skills/rite-autocomplete/SKILL.md +65 -54
  176. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +24 -17
  177. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +18 -21
  178. package/pack/.claude/skills/rite-build/SKILL.md +28 -34
  179. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +36 -34
  180. package/pack/.claude/skills/rite-build/reference/anti-patterns.md +5 -19
  181. package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +10 -9
  182. package/pack/.claude/skills/rite-build/reference/checkpoint.md +17 -17
  183. package/pack/.claude/skills/rite-build/reference/frontend-trigger.md +3 -3
  184. package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +11 -14
  185. package/pack/.claude/skills/rite-build/reference/output.md +14 -24
  186. package/pack/.claude/skills/rite-build/reference/phase-contract.md +49 -188
  187. package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
  188. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +43 -133
  189. package/pack/.claude/skills/rite-clarify/SKILL.md +46 -40
  190. package/pack/.claude/skills/rite-clarify/reference/decision-coverage.md +4 -10
  191. package/pack/.claude/skills/rite-converge/SKILL.md +9 -33
  192. package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +2 -2
  193. package/pack/.claude/skills/rite-customize/SKILL.md +34 -50
  194. package/pack/.claude/skills/rite-define/SKILL.md +34 -58
  195. package/pack/.claude/skills/rite-define/reference/plan-template.md +15 -0
  196. package/pack/.claude/skills/rite-doctor/SKILL.md +52 -64
  197. package/pack/.claude/skills/rite-dogfood/SKILL.md +1 -2
  198. package/pack/.claude/skills/rite-explain/SKILL.md +1 -20
  199. package/pack/.claude/skills/rite-frame/SKILL.md +1 -7
  200. package/pack/.claude/skills/rite-frame/reference/failure-modes.md +1 -1
  201. package/pack/.claude/skills/rite-handoff/SKILL.md +1 -2
  202. package/pack/.claude/skills/rite-handoff/reference/handoff-template.md +1 -1
  203. package/pack/.claude/skills/rite-learn/SKILL.md +44 -104
  204. package/pack/.claude/skills/rite-plan/SKILL.md +14 -26
  205. package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +4 -1
  206. package/pack/.claude/skills/rite-polish/SKILL.md +20 -28
  207. package/pack/.claude/skills/rite-polish/reference/adr-promotion.md +11 -0
  208. package/pack/{generated/claude/skills/rite-ship → .claude/skills/rite-polish}/reference/design-memory.md +23 -21
  209. package/pack/.claude/skills/rite-polish/reference/ledger.md +62 -0
  210. package/pack/.claude/skills/rite-pov/SKILL.md +28 -32
  211. package/pack/.claude/skills/rite-pr-feedback/SKILL.md +0 -1
  212. package/pack/.claude/skills/rite-pressure-test/SKILL.md +6 -13
  213. package/pack/.claude/skills/rite-prototype/SKILL.md +0 -6
  214. package/pack/.claude/skills/rite-prove/SKILL.md +73 -68
  215. package/pack/.claude/skills/rite-prove/reference/acceptance-proof.md +34 -30
  216. package/pack/.claude/skills/rite-prove/reference/test-command-discovery.md +15 -14
  217. package/pack/.claude/skills/rite-quick/SKILL.md +5 -19
  218. package/pack/.claude/skills/rite-resolve/SKILL.md +4 -21
  219. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +2 -2
  220. package/pack/.claude/skills/rite-review/SKILL.md +34 -57
  221. package/pack/.claude/skills/rite-seal/SKILL.md +54 -87
  222. package/pack/.claude/skills/rite-seal/reference/anti-patterns.md +2 -2
  223. package/pack/.claude/skills/rite-seal/reference/final-evidence.md +31 -56
  224. package/pack/.claude/skills/rite-seal/reference/go-no-go.md +27 -51
  225. package/pack/.claude/skills/rite-seal/reference/output.md +2 -4
  226. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +42 -140
  227. package/pack/.claude/skills/rite-seal/reference/risk-and-rollback.md +2 -2
  228. package/pack/.claude/skills/rite-seal/reference/seal-template.md +17 -28
  229. package/pack/.claude/skills/rite-ship/SKILL.md +65 -93
  230. package/pack/.claude/skills/rite-ship/reference/anti-patterns.md +4 -1
  231. package/pack/.claude/skills/rite-ship/reference/close-out.md +4 -12
  232. package/pack/.claude/skills/rite-ship/reference/git-ship.md +86 -48
  233. package/pack/.claude/skills/rite-ship/reference/ship-template.md +22 -16
  234. package/pack/.claude/skills/rite-spec/SKILL.md +62 -95
  235. package/pack/.claude/skills/rite-spec/reference/investigation.md +1 -4
  236. package/pack/.claude/skills/rite-spec/reference/question-protocol.md +21 -20
  237. package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +16 -17
  238. package/pack/.claude/skills/rite-spec/reference/spec-template.md +47 -49
  239. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +28 -13
  240. package/pack/.claude/skills/rite-status/SKILL.md +30 -88
  241. package/pack/.claude/skills/rite-temper/SKILL.md +12 -31
  242. package/pack/.claude/skills/rite-upgrade/SKILL.md +86 -101
  243. package/pack/.claude/skills/rite-vet/SKILL.md +88 -117
  244. package/pack/.claude/skills/rite-vet/reference/artifacts.md +56 -50
  245. package/pack/.claude/skills/rite-vet/reference/cross-model.md +15 -39
  246. package/pack/.claude/skills/rite-vet/reference/depth.md +2 -2
  247. package/pack/.claude/skills/rite-vet/reference/review-axes.md +3 -6
  248. package/pack/.claude/skills/rite-zoom-out/SKILL.md +0 -6
  249. package/pack/generated/README.md +2 -2
  250. package/pack/generated/claude/agents/devrites-code-reviewer.md +9 -18
  251. package/pack/generated/claude/agents/devrites-devex-reviewer.md +10 -18
  252. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +10 -20
  253. package/pack/generated/claude/agents/devrites-evidence-scout.md +14 -26
  254. package/pack/generated/claude/agents/devrites-frontend-reviewer.md +9 -15
  255. package/pack/generated/claude/agents/devrites-performance-reviewer.md +13 -21
  256. package/pack/generated/claude/agents/devrites-plan-drafter.md +24 -28
  257. package/pack/generated/claude/agents/devrites-plan-reviewer.md +30 -47
  258. package/pack/generated/claude/agents/devrites-proof-runner.md +41 -47
  259. package/pack/generated/claude/agents/devrites-retrospector.md +34 -79
  260. package/pack/generated/claude/agents/devrites-security-auditor.md +9 -17
  261. package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +9 -18
  262. package/pack/generated/claude/agents/devrites-slice-wright.md +44 -62
  263. package/pack/generated/claude/agents/devrites-spec-reviewer.md +38 -50
  264. package/pack/generated/claude/agents/devrites-strategy-reviewer.md +10 -19
  265. package/pack/generated/claude/agents/devrites-test-analyst.md +22 -21
  266. package/pack/generated/claude/agents/devrites-upgrade-planner.md +52 -71
  267. package/pack/generated/claude/settings.json +12 -100
  268. package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +1 -2
  269. package/pack/generated/claude/skills/devrites-audit/SKILL.md +6 -9
  270. package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +0 -1
  271. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +21 -27
  272. package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +22 -33
  273. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +4 -6
  274. package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +1 -2
  275. package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +2 -1
  276. package/pack/generated/claude/skills/devrites-interview/SKILL.md +31 -36
  277. package/pack/generated/claude/skills/devrites-lib/SKILL.md +37 -66
  278. package/pack/generated/claude/skills/devrites-lib/reference/candidate-integrity.md +51 -0
  279. package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +20 -12
  280. package/pack/generated/claude/skills/devrites-lib/reference/orchestration-profiles.md +22 -0
  281. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +35 -110
  282. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +26 -93
  283. package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +6 -3
  284. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +43 -34
  285. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +90 -216
  286. package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +1 -1
  287. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +9 -28
  288. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +13 -11
  289. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +59 -54
  290. package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +3 -5
  291. package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +29 -143
  292. package/pack/generated/claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +5 -6
  293. package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +13 -31
  294. package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +112 -82
  295. package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +71 -45
  296. package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +22 -11
  297. package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +15 -24
  298. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +106 -37
  299. package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +3 -4
  300. package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +3 -4
  301. package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +3 -3
  302. package/pack/generated/claude/skills/rite/SKILL.md +12 -13
  303. package/pack/generated/claude/skills/rite/reference/menu.md +11 -11
  304. package/pack/generated/claude/skills/rite-adopt/SKILL.md +29 -84
  305. package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +16 -50
  306. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +65 -54
  307. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +24 -17
  308. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +18 -21
  309. package/pack/generated/claude/skills/rite-build/SKILL.md +28 -34
  310. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +36 -34
  311. package/pack/generated/claude/skills/rite-build/reference/anti-patterns.md +5 -19
  312. package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +10 -9
  313. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +17 -17
  314. package/pack/generated/claude/skills/rite-build/reference/frontend-trigger.md +3 -3
  315. package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +11 -14
  316. package/pack/generated/claude/skills/rite-build/reference/output.md +14 -24
  317. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +49 -188
  318. package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
  319. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +43 -133
  320. package/pack/generated/claude/skills/rite-clarify/SKILL.md +46 -40
  321. package/pack/generated/claude/skills/rite-clarify/reference/decision-coverage.md +4 -10
  322. package/pack/generated/claude/skills/rite-converge/SKILL.md +9 -33
  323. package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +2 -2
  324. package/pack/generated/claude/skills/rite-customize/SKILL.md +34 -50
  325. package/pack/generated/claude/skills/rite-define/SKILL.md +34 -58
  326. package/pack/generated/claude/skills/rite-define/reference/plan-template.md +15 -0
  327. package/pack/generated/claude/skills/rite-doctor/SKILL.md +52 -64
  328. package/pack/generated/claude/skills/rite-dogfood/SKILL.md +1 -2
  329. package/pack/generated/claude/skills/rite-explain/SKILL.md +1 -20
  330. package/pack/generated/claude/skills/rite-frame/SKILL.md +1 -7
  331. package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +1 -1
  332. package/pack/generated/claude/skills/rite-handoff/SKILL.md +1 -2
  333. package/pack/generated/claude/skills/rite-handoff/reference/handoff-template.md +1 -1
  334. package/pack/generated/claude/skills/rite-learn/SKILL.md +44 -104
  335. package/pack/generated/claude/skills/rite-plan/SKILL.md +14 -26
  336. package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +4 -1
  337. package/pack/generated/claude/skills/rite-polish/SKILL.md +20 -28
  338. package/pack/generated/claude/skills/rite-polish/reference/adr-promotion.md +11 -0
  339. package/pack/generated/{codex/skills/rite-ship → claude/skills/rite-polish}/reference/design-memory.md +23 -21
  340. package/pack/generated/claude/skills/rite-polish/reference/ledger.md +62 -0
  341. package/pack/generated/claude/skills/rite-pov/SKILL.md +28 -32
  342. package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +0 -1
  343. package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +6 -13
  344. package/pack/generated/claude/skills/rite-prototype/SKILL.md +0 -6
  345. package/pack/generated/claude/skills/rite-prove/SKILL.md +73 -68
  346. package/pack/generated/claude/skills/rite-prove/reference/acceptance-proof.md +34 -30
  347. package/pack/generated/claude/skills/rite-prove/reference/test-command-discovery.md +15 -14
  348. package/pack/generated/claude/skills/rite-quick/SKILL.md +5 -19
  349. package/pack/generated/claude/skills/rite-resolve/SKILL.md +4 -21
  350. package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +2 -2
  351. package/pack/generated/claude/skills/rite-review/SKILL.md +34 -57
  352. package/pack/generated/claude/skills/rite-seal/SKILL.md +54 -87
  353. package/pack/generated/claude/skills/rite-seal/reference/anti-patterns.md +2 -2
  354. package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +31 -56
  355. package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +27 -51
  356. package/pack/generated/claude/skills/rite-seal/reference/output.md +2 -4
  357. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +42 -140
  358. package/pack/generated/claude/skills/rite-seal/reference/risk-and-rollback.md +2 -2
  359. package/pack/generated/claude/skills/rite-seal/reference/seal-template.md +17 -28
  360. package/pack/generated/claude/skills/rite-ship/SKILL.md +65 -93
  361. package/pack/generated/claude/skills/rite-ship/reference/anti-patterns.md +4 -1
  362. package/pack/generated/claude/skills/rite-ship/reference/close-out.md +4 -12
  363. package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +86 -48
  364. package/pack/generated/claude/skills/rite-ship/reference/ship-template.md +22 -16
  365. package/pack/generated/claude/skills/rite-spec/SKILL.md +62 -95
  366. package/pack/generated/claude/skills/rite-spec/reference/investigation.md +1 -4
  367. package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +21 -20
  368. package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +16 -17
  369. package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +47 -49
  370. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +28 -13
  371. package/pack/generated/claude/skills/rite-status/SKILL.md +30 -88
  372. package/pack/generated/claude/skills/rite-temper/SKILL.md +12 -31
  373. package/pack/generated/claude/skills/rite-upgrade/SKILL.md +86 -101
  374. package/pack/generated/claude/skills/rite-vet/SKILL.md +88 -117
  375. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +56 -50
  376. package/pack/generated/claude/skills/rite-vet/reference/cross-model.md +15 -39
  377. package/pack/generated/claude/skills/rite-vet/reference/depth.md +2 -2
  378. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +3 -6
  379. package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +0 -6
  380. package/pack/generated/codex/AGENTS.md +5 -4
  381. package/pack/generated/codex/agents/devrites-code-reviewer.toml +8 -27
  382. package/pack/generated/codex/agents/devrites-devex-reviewer.toml +9 -27
  383. package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +9 -29
  384. package/pack/generated/codex/agents/devrites-evidence-scout.toml +14 -36
  385. package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +8 -24
  386. package/pack/generated/codex/agents/devrites-performance-reviewer.toml +12 -30
  387. package/pack/generated/codex/agents/devrites-plan-drafter.toml +24 -38
  388. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +30 -57
  389. package/pack/generated/codex/agents/devrites-proof-runner.toml +41 -57
  390. package/pack/generated/codex/agents/devrites-retrospector.toml +34 -89
  391. package/pack/generated/codex/agents/devrites-security-auditor.toml +8 -26
  392. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +8 -27
  393. package/pack/generated/codex/agents/devrites-slice-wright.toml +44 -71
  394. package/pack/generated/codex/agents/devrites-spec-reviewer.toml +38 -60
  395. package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +9 -28
  396. package/pack/generated/codex/agents/devrites-test-analyst.toml +21 -30
  397. package/pack/generated/codex/agents/devrites-upgrade-planner.toml +52 -81
  398. package/pack/generated/codex/config.toml +7 -0
  399. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +1 -21
  400. package/pack/generated/codex/skills/devrites-audit/SKILL.md +6 -28
  401. package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +1 -21
  402. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +21 -46
  403. package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +22 -33
  404. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +4 -25
  405. package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +1 -21
  406. package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +2 -1
  407. package/pack/generated/codex/skills/devrites-interview/SKILL.md +32 -56
  408. package/pack/generated/codex/skills/devrites-lib/SKILL.md +38 -86
  409. package/pack/generated/codex/skills/devrites-lib/reference/candidate-integrity.md +51 -0
  410. package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +20 -12
  411. package/pack/generated/codex/skills/devrites-lib/reference/orchestration-profiles.md +22 -0
  412. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +35 -110
  413. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +26 -93
  414. package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +6 -3
  415. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +43 -34
  416. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +90 -216
  417. package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +1 -1
  418. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +9 -28
  419. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +13 -11
  420. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +59 -54
  421. package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +3 -5
  422. package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +29 -143
  423. package/pack/generated/codex/skills/devrites-lib/reference/standards/release/ship-checklist.md +5 -6
  424. package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +13 -31
  425. package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +112 -82
  426. package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +71 -45
  427. package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +22 -11
  428. package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +15 -24
  429. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +106 -37
  430. package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +3 -23
  431. package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +3 -23
  432. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +3 -22
  433. package/pack/generated/codex/skills/rite/SKILL.md +12 -32
  434. package/pack/generated/codex/skills/rite/reference/menu.md +11 -11
  435. package/pack/generated/codex/skills/rite-adopt/SKILL.md +29 -103
  436. package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +16 -50
  437. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +65 -73
  438. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +24 -17
  439. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +18 -21
  440. package/pack/generated/codex/skills/rite-build/SKILL.md +28 -53
  441. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +36 -34
  442. package/pack/generated/codex/skills/rite-build/reference/anti-patterns.md +5 -19
  443. package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +10 -9
  444. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +17 -17
  445. package/pack/generated/codex/skills/rite-build/reference/frontend-trigger.md +3 -3
  446. package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +11 -14
  447. package/pack/generated/codex/skills/rite-build/reference/output.md +14 -24
  448. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +49 -188
  449. package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +1 -1
  450. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +43 -133
  451. package/pack/generated/codex/skills/rite-clarify/SKILL.md +46 -59
  452. package/pack/generated/codex/skills/rite-clarify/reference/decision-coverage.md +4 -10
  453. package/pack/generated/codex/skills/rite-converge/SKILL.md +9 -52
  454. package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +2 -2
  455. package/pack/generated/codex/skills/rite-customize/SKILL.md +32 -67
  456. package/pack/generated/codex/skills/rite-define/SKILL.md +34 -77
  457. package/pack/generated/codex/skills/rite-define/reference/plan-template.md +15 -0
  458. package/pack/generated/codex/skills/rite-doctor/SKILL.md +52 -83
  459. package/pack/generated/codex/skills/rite-dogfood/SKILL.md +1 -21
  460. package/pack/generated/codex/skills/rite-explain/SKILL.md +1 -39
  461. package/pack/generated/codex/skills/rite-frame/SKILL.md +1 -26
  462. package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +1 -1
  463. package/pack/generated/codex/skills/rite-handoff/SKILL.md +1 -21
  464. package/pack/generated/codex/skills/rite-handoff/reference/handoff-template.md +1 -1
  465. package/pack/generated/codex/skills/rite-learn/SKILL.md +44 -123
  466. package/pack/generated/codex/skills/rite-plan/SKILL.md +14 -45
  467. package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +4 -1
  468. package/pack/generated/codex/skills/rite-polish/SKILL.md +20 -47
  469. package/pack/generated/codex/skills/rite-polish/reference/adr-promotion.md +11 -0
  470. package/pack/{.claude/skills/rite-ship → generated/codex/skills/rite-polish}/reference/design-memory.md +23 -21
  471. package/pack/generated/codex/skills/rite-polish/reference/ledger.md +62 -0
  472. package/pack/generated/codex/skills/rite-pov/SKILL.md +28 -51
  473. package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +0 -20
  474. package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +6 -32
  475. package/pack/generated/codex/skills/rite-prototype/SKILL.md +0 -25
  476. package/pack/generated/codex/skills/rite-prove/SKILL.md +73 -87
  477. package/pack/generated/codex/skills/rite-prove/reference/acceptance-proof.md +34 -30
  478. package/pack/generated/codex/skills/rite-prove/reference/test-command-discovery.md +15 -14
  479. package/pack/generated/codex/skills/rite-quick/SKILL.md +5 -38
  480. package/pack/generated/codex/skills/rite-resolve/SKILL.md +4 -40
  481. package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +2 -2
  482. package/pack/generated/codex/skills/rite-review/SKILL.md +34 -76
  483. package/pack/generated/codex/skills/rite-seal/SKILL.md +51 -103
  484. package/pack/generated/codex/skills/rite-seal/reference/anti-patterns.md +2 -2
  485. package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +31 -56
  486. package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +27 -51
  487. package/pack/generated/codex/skills/rite-seal/reference/output.md +2 -4
  488. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +42 -140
  489. package/pack/generated/codex/skills/rite-seal/reference/risk-and-rollback.md +2 -2
  490. package/pack/generated/codex/skills/rite-seal/reference/seal-template.md +17 -28
  491. package/pack/generated/codex/skills/rite-ship/SKILL.md +65 -112
  492. package/pack/generated/codex/skills/rite-ship/reference/anti-patterns.md +4 -1
  493. package/pack/generated/codex/skills/rite-ship/reference/close-out.md +4 -12
  494. package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +86 -48
  495. package/pack/generated/codex/skills/rite-ship/reference/ship-template.md +22 -16
  496. package/pack/generated/codex/skills/rite-spec/SKILL.md +62 -114
  497. package/pack/generated/codex/skills/rite-spec/reference/investigation.md +1 -4
  498. package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +21 -20
  499. package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +16 -17
  500. package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +47 -49
  501. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +28 -13
  502. package/pack/generated/codex/skills/rite-status/SKILL.md +30 -107
  503. package/pack/generated/codex/skills/rite-temper/SKILL.md +12 -50
  504. package/pack/generated/codex/skills/rite-upgrade/SKILL.md +86 -120
  505. package/pack/generated/codex/skills/rite-vet/SKILL.md +88 -136
  506. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +56 -50
  507. package/pack/generated/codex/skills/rite-vet/reference/cross-model.md +15 -39
  508. package/pack/generated/codex/skills/rite-vet/reference/depth.md +2 -2
  509. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +3 -6
  510. package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +0 -25
  511. package/package.json +6 -5
  512. package/scripts/build-host-artifacts.sh +5 -9
  513. package/scripts/codex-generate.sh +18 -278
  514. package/scripts/install-lib.sh +121 -34
  515. package/uninstall.sh +19 -17
  516. package/update.sh +26 -18
  517. package/docs/engine/agent-contract.md +0 -172
  518. package/docs/extensions.md +0 -178
  519. package/engine/git_guard.go +0 -187
  520. package/engine/git_guard_test.go +0 -283
  521. package/engine/harnessmatrix.go +0 -60
  522. package/engine/hookpolicy.go +0 -113
  523. package/engine/hookpolicy_test.go +0 -160
  524. package/engine/hooks.go +0 -677
  525. package/engine/hooks_agent_dispatch.go +0 -1637
  526. package/engine/hooks_events_test.go +0 -431
  527. package/engine/hooks_workspace.go +0 -1196
  528. package/engine/internal/doctor/doctor.go +0 -306
  529. package/engine/internal/doctor/doctor_test.go +0 -252
  530. package/engine/internal/forge/forge.go +0 -938
  531. package/engine/internal/forge/forge_test.go +0 -576
  532. package/engine/internal/forge/git.go +0 -245
  533. package/engine/internal/forge/liveness_unix.go +0 -48
  534. package/engine/internal/forge/liveness_windows.go +0 -67
  535. package/engine/internal/forge/manifest.go +0 -402
  536. package/engine/internal/harness/compliance.go +0 -96
  537. package/engine/internal/harness/harness.go +0 -301
  538. package/engine/internal/harness/harness_test.go +0 -124
  539. package/engine/internal/iohooks/detach_other.go +0 -11
  540. package/engine/internal/iohooks/detach_unix.go +0 -11
  541. package/engine/internal/iohooks/iohooks.go +0 -839
  542. package/engine/internal/iohooks/iohooks_test.go +0 -561
  543. package/engine/internal/lib/adoption.go +0 -659
  544. package/engine/internal/lib/adoption_test.go +0 -121
  545. package/engine/internal/lib/analyze.go +0 -232
  546. package/engine/internal/lib/archivesearch.go +0 -125
  547. package/engine/internal/lib/archivesearch_test.go +0 -138
  548. package/engine/internal/lib/budget.go +0 -172
  549. package/engine/internal/lib/buildreadiness.go +0 -111
  550. package/engine/internal/lib/checkacceptance.go +0 -176
  551. package/engine/internal/lib/clarifyreturn.go +0 -91
  552. package/engine/internal/lib/clarifyreturn_test.go +0 -123
  553. package/engine/internal/lib/command_other.go +0 -7
  554. package/engine/internal/lib/command_unix.go +0 -24
  555. package/engine/internal/lib/context.go +0 -280
  556. package/engine/internal/lib/conventions.go +0 -449
  557. package/engine/internal/lib/coverage.go +0 -145
  558. package/engine/internal/lib/dispatchwaive.go +0 -31
  559. package/engine/internal/lib/dispatchwaive_test.go +0 -23
  560. package/engine/internal/lib/doubtcoverage.go +0 -78
  561. package/engine/internal/lib/extensions.go +0 -622
  562. package/engine/internal/lib/extensions_test.go +0 -305
  563. package/engine/internal/lib/footprint.go +0 -239
  564. package/engine/internal/lib/gitauthority.go +0 -601
  565. package/engine/internal/lib/gitauthority_test.go +0 -346
  566. package/engine/internal/lib/jsonout.go +0 -129
  567. package/engine/internal/lib/jsonout_test.go +0 -73
  568. package/engine/internal/lib/lanes.go +0 -112
  569. package/engine/internal/lib/learnings.go +0 -397
  570. package/engine/internal/lib/learnings_inject_test.go +0 -77
  571. package/engine/internal/lib/learnings_remediation_test.go +0 -24
  572. package/engine/internal/lib/ledger.go +0 -311
  573. package/engine/internal/lib/ledger_test.go +0 -186
  574. package/engine/internal/lib/mutationgate.go +0 -89
  575. package/engine/internal/lib/observability_test.go +0 -358
  576. package/engine/internal/lib/overrides.go +0 -164
  577. package/engine/internal/lib/overrides_test.go +0 -112
  578. package/engine/internal/lib/preamble.go +0 -159
  579. package/engine/internal/lib/preamble_questions_test.go +0 -10
  580. package/engine/internal/lib/progress.go +0 -210
  581. package/engine/internal/lib/provenance.go +0 -462
  582. package/engine/internal/lib/provenance_test.go +0 -154
  583. package/engine/internal/lib/readiness_contract.json +0 -118
  584. package/engine/internal/lib/readinessartifact.go +0 -533
  585. package/engine/internal/lib/readinessartifact_test.go +0 -422
  586. package/engine/internal/lib/reconcile.go +0 -1496
  587. package/engine/internal/lib/reconcile_test.go +0 -1071
  588. package/engine/internal/lib/recoveryattempts.go +0 -298
  589. package/engine/internal/lib/recoveryattempts_test.go +0 -215
  590. package/engine/internal/lib/reviewers.go +0 -143
  591. package/engine/internal/lib/reviewers_test.go +0 -45
  592. package/engine/internal/lib/reviewerstats.go +0 -199
  593. package/engine/internal/lib/reviewerstats_test.go +0 -104
  594. package/engine/internal/lib/reviewintegrity.go +0 -143
  595. package/engine/internal/lib/reviewintegrity_test.go +0 -103
  596. package/engine/internal/lib/runbook.go +0 -295
  597. package/engine/internal/lib/runbook_context_test.go +0 -182
  598. package/engine/internal/lib/session.go +0 -1020
  599. package/engine/internal/lib/session_test.go +0 -177
  600. package/engine/internal/lib/specparse.go +0 -125
  601. package/engine/internal/lib/specskeleton.go +0 -79
  602. package/engine/internal/lib/specvalidate.go +0 -391
  603. package/engine/internal/lib/specvalidate_test.go +0 -185
  604. package/engine/internal/lib/stuck.go +0 -206
  605. package/engine/internal/lib/templates/conventions_drift.tmpl +0 -6
  606. package/engine/internal/lib/templates/conventions_ledger_header.md +0 -6
  607. package/engine/internal/lib/templates/conventions_orient_header.txt +0 -1
  608. package/engine/internal/lib/testintegrity.go +0 -199
  609. package/engine/internal/lib/testintegrity_test.go +0 -149
  610. package/engine/internal/lib/tickafk.go +0 -86
  611. package/engine/internal/migrate/migrate.go +0 -279
  612. package/engine/internal/migrate/migrate_test.go +0 -157
  613. package/engine/internal/orient/firstrun.go +0 -50
  614. package/engine/internal/orient/firstrun_test.go +0 -72
  615. package/engine/internal/orient/orient.go +0 -69
  616. package/engine/internal/orient/orient_test.go +0 -25
  617. package/engine/internal/profile/profile.go +0 -284
  618. package/engine/internal/profile/profile_test.go +0 -13
  619. package/engine/internal/state/clarify_transition.go +0 -165
  620. package/engine/internal/state/clarify_transition_test.go +0 -130
  621. package/engine/internal/state/snapshot.go +0 -457
  622. package/engine/internal/toolpolicy/classifier.go +0 -533
  623. package/engine/internal/toolpolicy/classifier_test.go +0 -424
  624. package/engine/internal/toolpolicy/git.go +0 -616
  625. package/engine/internal/toolpolicy/scanner.go +0 -382
  626. package/engine/observability_cli_test.go +0 -52
  627. package/engine/profile_test.go +0 -76
  628. package/engine/subagent_orient_context.txt +0 -8
  629. package/engine/testdata/golden/TestParityA1Guard/devrites-edit-allowed.golden +0 -1
  630. package/engine/testdata/golden/TestParityA1Guard/no-window-silent.golden +0 -1
  631. package/engine/testdata/golden/TestParityA1Guard/non-edit-tool.golden +0 -1
  632. package/engine/testdata/golden/TestParityA1Guard/observe-mode-silent.golden +0 -1
  633. package/engine/testdata/golden/TestParityA1Guard/source-edit-enforce-denies.golden +0 -2
  634. package/engine/testdata/golden/TestParityA1Guard/subagent-allowed.golden +0 -1
  635. package/engine/testdata/golden/TestParityAnalyze/noactive.golden +0 -1
  636. package/engine/testdata/golden/TestParityAnalyze/slug=covered.golden +0 -15
  637. package/engine/testdata/golden/TestParityAnalyze/slug=dangling.golden +0 -16
  638. package/engine/testdata/golden/TestParityAnalyze/slug=ghost.golden +0 -1
  639. package/engine/testdata/golden/TestParityAnalyze/slug=noac.golden +0 -15
  640. package/engine/testdata/golden/TestParityAnalyze/slug=order.golden +0 -17
  641. package/engine/testdata/golden/TestParityAnalyze/slug=orphan.golden +0 -16
  642. package/engine/testdata/golden/TestParityAnalyze/slug=uncovered.golden +0 -16
  643. package/engine/testdata/golden/TestParityBudget/default-active.golden +0 -4
  644. package/engine/testdata/golden/TestParityBudget/extra-md.golden +0 -5
  645. package/engine/testdata/golden/TestParityBudget/no-active.golden +0 -1
  646. package/engine/testdata/golden/TestParityBudget/no-feature.golden +0 -1
  647. package/engine/testdata/golden/TestParityBudget/over-advisory.golden +0 -6
  648. package/engine/testdata/golden/TestParityBudget/over-strict.golden +0 -6
  649. package/engine/testdata/golden/TestParityBudget/within.golden +0 -6
  650. package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +0 -2
  651. package/engine/testdata/golden/TestParityBuildReadiness/arg=approvenone.golden +0 -1
  652. package/engine/testdata/golden/TestParityBuildReadiness/arg=await.golden +0 -1
  653. package/engine/testdata/golden/TestParityBuildReadiness/arg=blocked.golden +0 -1
  654. package/engine/testdata/golden/TestParityBuildReadiness/arg=clarifyopen.golden +0 -1
  655. package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +0 -2
  656. package/engine/testdata/golden/TestParityBuildReadiness/arg=ghost.golden +0 -1
  657. package/engine/testdata/golden/TestParityBuildReadiness/arg=legacycontract.golden +0 -1
  658. package/engine/testdata/golden/TestParityBuildReadiness/arg=noapprove.golden +0 -1
  659. package/engine/testdata/golden/TestParityBuildReadiness/arg=noclarify.golden +0 -1
  660. package/engine/testdata/golden/TestParityBuildReadiness/arg=novet.golden +0 -1
  661. package/engine/testdata/golden/TestParityBuildReadiness/arg=stalevet.golden +0 -1
  662. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +0 -2
  663. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +0 -2
  664. package/engine/testdata/golden/TestParityBuildReadiness/arg=vetnotready.golden +0 -1
  665. package/engine/testdata/golden/TestParityCheckAcceptance/arg=blank-section.golden +0 -1
  666. package/engine/testdata/golden/TestParityCheckAcceptance/arg=empty.golden +0 -1
  667. package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-dropped.golden +0 -1
  668. package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-ok.golden +0 -2
  669. package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-unchecked.golden +0 -1
  670. package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-gap.golden +0 -1
  671. package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-ok.golden +0 -2
  672. package/engine/testdata/golden/TestParityCheckAcceptance/arg=no-seal.golden +0 -1
  673. package/engine/testdata/golden/TestParityCheckAcceptance/arg=no-section.golden +0 -1
  674. package/engine/testdata/golden/TestParityCheckAcceptance/arg=nonexistent.golden +0 -1
  675. package/engine/testdata/golden/TestParityCheckAcceptance.golden +0 -1
  676. package/engine/testdata/golden/TestParityCoverage/arg=flat.golden +0 -7
  677. package/engine/testdata/golden/TestParityCoverage/arg=full.golden +0 -10
  678. package/engine/testdata/golden/TestParityCoverage/arg=nonexistent.golden +0 -1
  679. package/engine/testdata/golden/TestParityCoverage/arg=nospec.golden +0 -1
  680. package/engine/testdata/golden/TestParityCoverage/arg=speconly.golden +0 -9
  681. package/engine/testdata/golden/TestParityCoverage.golden +0 -1
  682. package/engine/testdata/golden/TestParityCursor/bare.golden +0 -3
  683. package/engine/testdata/golden/TestParityCursor/full-afk.golden +0 -6
  684. package/engine/testdata/golden/TestParityCursor/full-hitl.golden +0 -5
  685. package/engine/testdata/golden/TestParityCursor/no-active.golden +0 -1
  686. package/engine/testdata/golden/TestParityCursor/red.golden +0 -5
  687. package/engine/testdata/golden/TestParityCursor/zerogates.golden +0 -5
  688. package/engine/testdata/golden/TestParityDoubtCoverage/arg=doubted.golden +0 -2
  689. package/engine/testdata/golden/TestParityDoubtCoverage/arg=ghost.golden +0 -2
  690. package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing.golden +0 -3
  691. package/engine/testdata/golden/TestParityDoubtCoverage/arg=nodoubt.golden +0 -4
  692. package/engine/testdata/golden/TestParityDoubtCoverage/arg=nolog.golden +0 -2
  693. package/engine/testdata/golden/TestParityDoubtCoverage/arg=nowright.golden +0 -2
  694. package/engine/testdata/golden/TestParityDoubtCoverage.golden +0 -1
  695. package/engine/testdata/golden/TestParityMutationGate/active-slug.golden +0 -3
  696. package/engine/testdata/golden/TestParityMutationGate/explicit-slug.golden +0 -3
  697. package/engine/testdata/golden/TestParityMutationGate/ghost.golden +0 -1
  698. package/engine/testdata/golden/TestParityOrientSilentPath.golden +0 -1
  699. package/engine/testdata/golden/TestParityReconcile/bad-mode.golden +0 -1
  700. package/engine/testdata/golden/TestParityReconcile/check-clean/snapshot.golden +0 -2
  701. package/engine/testdata/golden/TestParityReconcile/check-clean.golden +0 -2
  702. package/engine/testdata/golden/TestParityReconcile/check-no-base.golden +0 -1
  703. package/engine/testdata/golden/TestParityReconcile/check-no-claimed/snapshot.golden +0 -2
  704. package/engine/testdata/golden/TestParityReconcile/check-violation/snapshot.golden +0 -2
  705. package/engine/testdata/golden/TestParityReconcile/check-violation.golden +0 -1
  706. package/engine/testdata/golden/TestParityReconcile/close-window/snapshot.golden +0 -2
  707. package/engine/testdata/golden/TestParityReconcile/close-window.golden +0 -3
  708. package/engine/testdata/golden/TestParityReconcile/not-git.golden +0 -1
  709. package/engine/testdata/golden/TestParityReconcile/snapshot/snapshot.golden +0 -2
  710. package/engine/testdata/golden/TestParityReconcile/snapshot-no-allowlist.golden +0 -1
  711. package/engine/testdata/golden/TestParityReconcile/snapshot.golden +0 -2
  712. package/engine/testdata/golden/TestParityRedwatch/fail-writes-red.golden +0 -2
  713. package/engine/testdata/golden/TestParityRedwatch/non-bash-tool.golden +0 -1
  714. package/engine/testdata/golden/TestParityRedwatch/non-test-command.golden +0 -1
  715. package/engine/testdata/golden/TestParityRedwatch/pass-clears-red.golden +0 -1
  716. package/engine/testdata/golden/TestParityResolve/next-qid.golden +0 -2
  717. package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-devrites-agent-denies.golden +0 -2
  718. package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-non-devrites-allows.golden +0 -1
  719. package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-subagent-type-only-allows.golden +0 -1
  720. package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-git-commit.golden +0 -2
  721. package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-mutating.golden +0 -2
  722. package/engine/testdata/golden/TestParityReviewerReadonly/non-bash-tool.golden +0 -1
  723. package/engine/testdata/golden/TestParityReviewerReadonly/non-tool-input.golden +0 -1
  724. package/engine/testdata/golden/TestParityReviewerReadonly/observe-mutating-silent.golden +0 -1
  725. package/engine/testdata/golden/TestParityReviewerReadonly/safe-bash-command.golden +0 -1
  726. package/engine/testdata/golden/TestParitySpecValidate/arg=dup.golden +0 -1
  727. package/engine/testdata/golden/TestParitySpecValidate/arg=empty.golden +0 -1
  728. package/engine/testdata/golden/TestParitySpecValidate/arg=flat.golden +0 -2
  729. package/engine/testdata/golden/TestParitySpecValidate/arg=nonexistent.golden +0 -1
  730. package/engine/testdata/golden/TestParitySpecValidate/arg=noscenario.golden +0 -1
  731. package/engine/testdata/golden/TestParitySpecValidate/arg=noshall.golden +0 -1
  732. package/engine/testdata/golden/TestParitySpecValidate/arg=nothen.golden +0 -1
  733. package/engine/testdata/golden/TestParitySpecValidate/arg=valid/spec.md.golden +0 -2
  734. package/engine/testdata/golden/TestParitySpecValidate/arg=valid.golden +0 -2
  735. package/engine/testdata/golden/TestParitySpecValidate.golden +0 -1
  736. package/engine/testdata/golden/TestParityStatusline/full-afk.golden +0 -2
  737. package/engine/testdata/golden/TestParityStatusline/full-hitl.golden +0 -2
  738. package/engine/testdata/golden/TestParityStatusline/no-active.golden +0 -1
  739. package/engine/testdata/golden/TestParityStatusline/nophase.golden +0 -2
  740. package/engine/testdata/golden/TestParityStatusline/red.golden +0 -2
  741. package/engine/testdata/golden/TestParityStuckCheck/bad-cmd.golden +0 -1
  742. package/engine/testdata/golden/TestParityStuckCheck/custom-window-2.golden +0 -2
  743. package/engine/testdata/golden/TestParityStuckCheck/dominant.golden +0 -2
  744. package/engine/testdata/golden/TestParityStuckCheck/few.golden +0 -2
  745. package/engine/testdata/golden/TestParityStuckCheck/ghost.golden +0 -2
  746. package/engine/testdata/golden/TestParityStuckCheck/identical.golden +0 -2
  747. package/engine/testdata/golden/TestParityStuckCheck/no-cmd.golden +0 -1
  748. package/engine/testdata/golden/TestParityStuckCheck/no-slug.golden +0 -1
  749. package/engine/testdata/golden/TestParityStuckCheck/nolog.golden +0 -2
  750. package/engine/testdata/golden/TestParityStuckCheck/pingpong.golden +0 -2
  751. package/engine/testdata/golden/TestParityStuckCheck/varied.golden +0 -2
  752. package/engine/testdata/golden/TestParityStuckCheck/window-04-identical.golden +0 -2
  753. package/engine/testdata/golden/TestParityStuckCheck/window-2.5-varied4.golden +0 -2
  754. package/engine/testdata/golden/TestParityStuckCheck/window-4x-varied4.golden +0 -2
  755. package/engine/testdata/golden/TestParityStuckCheck/window-leadspace-varied4.golden +0 -2
  756. package/engine/testdata/golden/TestParityStuckCheck/window-plus4-identical.golden +0 -2
  757. package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent-subagent-type-key.golden +0 -2
  758. package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent.golden +0 -2
  759. package/engine/testdata/golden/TestParitySubagentOrient/garbage-input.golden +0 -1
  760. package/engine/testdata/golden/TestParitySubagentOrient/non-devrites-agent.golden +0 -1
  761. package/engine/testdata/golden/TestParityTestIntegrity/assertion-dropped.golden +0 -1
  762. package/engine/testdata/golden/TestParityTestIntegrity/clean.golden +0 -2
  763. package/engine/testdata/golden/TestParityTestIntegrity/deleted.golden +0 -1
  764. package/engine/testdata/golden/TestParityTestIntegrity/ghost-workspace.golden +0 -1
  765. package/engine/testdata/golden/TestParityTestIntegrity/not-git.golden +0 -1
  766. package/engine/testdata/golden/TestParityTestIntegrity/skip-added.golden +0 -1
  767. package/engine/testdata/golden/TestParityTickAfk/budget1/state.md.golden +0 -1
  768. package/engine/testdata/golden/TestParityTickAfk/budget1.golden +0 -2
  769. package/engine/testdata/golden/TestParityTickAfk/budget3/state.md.golden +0 -5
  770. package/engine/testdata/golden/TestParityTickAfk/budget3.golden +0 -2
  771. package/engine/testdata/golden/TestParityTickAfk/bulletPipe/state.md.golden +0 -1
  772. package/engine/testdata/golden/TestParityTickAfk/bulletPipe.golden +0 -2
  773. package/engine/testdata/golden/TestParityTickAfk/missingField/state.md.golden +0 -3
  774. package/engine/testdata/golden/TestParityTickAfk/missingField.golden +0 -2
  775. package/engine/testdata/golden/TestParityTickAfk/missingFile.golden +0 -1
  776. package/engine/testdata/golden/TestParityTickAfk/nonNumeric/state.md.golden +0 -1
  777. package/engine/testdata/golden/TestParityTickAfk/nonNumeric.golden +0 -1
  778. package/engine/testdata/golden/TestParityTickAfk/none/state.md.golden +0 -1
  779. package/engine/testdata/golden/TestParityTickAfk/none.golden +0 -2
  780. package/engine/testdata/golden/TestParityWrightScope/agent-required-non-wright.golden +0 -1
  781. package/engine/testdata/golden/TestParityWrightScope/devrites-edit-denied.golden +0 -2
  782. package/engine/testdata/golden/TestParityWrightScope/in-scope-allowed.golden +0 -1
  783. package/engine/testdata/golden/TestParityWrightScope/non-edit-tool.golden +0 -1
  784. package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +0 -2
  785. package/engine/testdata/golden/TestParityWrightScope/out-of-scope-observe-silent.golden +0 -1
  786. package/engine/testdata/golden/TestSpecSkeleton/missing-some.golden +0 -2
  787. package/engine/testdata/golden/TestSpecSkeleton/present-all.golden +0 -2
  788. package/engine/testdata/golden/TestStuckLogHashParity.golden +0 -1
  789. package/engine/tests/adr_0006_clock_seam_test.go +0 -36
  790. package/engine/tests/budget_test.go +0 -88
  791. package/engine/tests/canonical_ac_ids_test.go +0 -44
  792. package/engine/tests/concurrency_cli_test.go +0 -131
  793. package/engine/tests/conventions_test.go +0 -106
  794. package/engine/tests/doctor_cli_test.go +0 -223
  795. package/engine/tests/forge_cli_test.go +0 -463
  796. package/engine/tests/hook_test.go +0 -2732
  797. package/engine/tests/hooks_io_test.go +0 -309
  798. package/engine/tests/json_contract_test.go +0 -224
  799. package/engine/tests/lib_parity_test.go +0 -930
  800. package/engine/tests/migrate_cli_test.go +0 -195
  801. package/engine/tests/parity_analyze_test.go +0 -55
  802. package/engine/tests/parity_buildreadiness_test.go +0 -199
  803. package/engine/tests/parity_learnings_test.go +0 -89
  804. package/engine/tests/parity_mutationgate_test.go +0 -36
  805. package/engine/tests/parity_reconcile_test.go +0 -94
  806. package/engine/tests/parity_testintegrity_test.go +0 -65
  807. package/engine/tests/parity_tickafk_test.go +0 -83
  808. package/engine/validatepack.go +0 -192
  809. package/engine/validatepack_test.go +0 -79
  810. package/engine/validatepackskills.go +0 -181
  811. package/engine/validatepackskills_test.go +0 -171
  812. package/pack/.claude/agents/devrites-forge-judge.md +0 -118
  813. package/pack/.claude/skills/devrites-lib/reference/model-tiers.md +0 -44
  814. package/pack/.claude/skills/devrites-refresh-indexes/SKILL.md +0 -52
  815. package/pack/.claude/skills/rite-build/reference/evidence-standard.md +0 -45
  816. package/pack/.claude/skills/rite-build/reference/forge.md +0 -210
  817. package/pack/.claude/skills/rite-seal/reference/conventions-ledger.md +0 -60
  818. package/pack/.claude/skills/rite-ship/reference/adr-promotion.md +0 -9
  819. package/pack/.claude/skills/rite-ship/reference/ledger.md +0 -56
  820. package/pack/generated/claude/agents/devrites-forge-judge.md +0 -118
  821. package/pack/generated/claude/skills/devrites-lib/reference/model-tiers.md +0 -44
  822. package/pack/generated/claude/skills/devrites-refresh-indexes/SKILL.md +0 -52
  823. package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +0 -45
  824. package/pack/generated/claude/skills/rite-build/reference/forge.md +0 -210
  825. package/pack/generated/claude/skills/rite-seal/reference/conventions-ledger.md +0 -60
  826. package/pack/generated/claude/skills/rite-ship/reference/adr-promotion.md +0 -9
  827. package/pack/generated/claude/skills/rite-ship/reference/ledger.md +0 -56
  828. package/pack/generated/codex/agents/devrites-forge-judge.toml +0 -128
  829. package/pack/generated/codex/hooks.json +0 -185
  830. package/pack/generated/codex/skills/devrites-api-interface/agents/openai.yaml +0 -2
  831. package/pack/generated/codex/skills/devrites-audit/agents/openai.yaml +0 -2
  832. package/pack/generated/codex/skills/devrites-browser-proof/agents/openai.yaml +0 -2
  833. package/pack/generated/codex/skills/devrites-debug-recovery/agents/openai.yaml +0 -2
  834. package/pack/generated/codex/skills/devrites-doubt/agents/openai.yaml +0 -2
  835. package/pack/generated/codex/skills/devrites-frontend-craft/agents/openai.yaml +0 -2
  836. package/pack/generated/codex/skills/devrites-interview/agents/openai.yaml +0 -2
  837. package/pack/generated/codex/skills/devrites-lib/reference/model-tiers.md +0 -44
  838. package/pack/generated/codex/skills/devrites-prose-craft/agents/openai.yaml +0 -2
  839. package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +0 -71
  840. package/pack/generated/codex/skills/devrites-refresh-indexes/agents/openai.yaml +0 -2
  841. package/pack/generated/codex/skills/devrites-source-driven/agents/openai.yaml +0 -2
  842. package/pack/generated/codex/skills/devrites-ux-shape/agents/openai.yaml +0 -2
  843. package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +0 -45
  844. package/pack/generated/codex/skills/rite-build/reference/forge.md +0 -210
  845. package/pack/generated/codex/skills/rite-seal/reference/conventions-ledger.md +0 -60
  846. package/pack/generated/codex/skills/rite-ship/reference/adr-promotion.md +0 -9
  847. package/pack/generated/codex/skills/rite-ship/reference/ledger.md +0 -56
  848. package/scripts/build-binaries.sh +0 -75
  849. package/scripts/build-release-tarball.sh +0 -105
  850. package/scripts/check-authority-drift.py +0 -125
  851. package/scripts/check-cross-refs.py +0 -139
  852. package/scripts/check-generated-skill-budget.mjs +0 -42
  853. package/scripts/check-instruction-size-baseline.mjs +0 -88
  854. package/scripts/check-invocation-integrity.py +0 -115
  855. package/scripts/check-no-global-writes.sh +0 -66
  856. package/scripts/check-no-personal-paths.py +0 -50
  857. package/scripts/check-npm-audit.mjs +0 -110
  858. package/scripts/check-reference-governance.mjs +0 -83
  859. package/scripts/check-reply-contract.sh +0 -64
  860. package/scripts/check-rule-uniqueness.sh +0 -45
  861. package/scripts/devrites-detect.sh +0 -176
  862. package/scripts/grade-feature.sh +0 -204
  863. package/scripts/live-hosts/agent-result.schema.json +0 -231
  864. package/scripts/live-hosts/claude.sh +0 -87
  865. package/scripts/live-hosts/codex.sh +0 -85
  866. package/scripts/live-hosts/common.sh +0 -113
  867. package/scripts/live-hosts/fake-host.py +0 -257
  868. package/scripts/live-hosts/host-transport.py +0 -286
  869. package/scripts/npm-audit-exceptions.json +0 -26
  870. package/scripts/pin.sh +0 -249
  871. package/scripts/release-check.sh +0 -75
  872. package/scripts/run-agent-contract-evals.py +0 -1380
  873. package/scripts/run-behavioral-evals.sh +0 -196
  874. package/scripts/run-evals.sh +0 -132
  875. package/scripts/run-live-behavioral-evals.py +0 -1310
  876. package/scripts/run-outcome-evals.sh +0 -454
  877. package/scripts/run-routing-evals.py +0 -342
  878. package/scripts/run-tests.mjs +0 -232
  879. package/scripts/scan-pack-security.py +0 -209
  880. package/scripts/scan-supply-chain-iocs.py +0 -127
  881. package/scripts/skill-pruning-audit.mjs +0 -121
  882. package/scripts/skills-inventory.mjs +0 -125
  883. package/scripts/supply-chain-iocs.json +0 -11
  884. package/scripts/sync-version.sh +0 -54
  885. package/scripts/validate-agent-composition.py +0 -57
  886. package/scripts/validate-command-parity.py +0 -70
  887. package/scripts/validate-frontmatter.py +0 -218
  888. package/scripts/validate-skill-anatomy.py +0 -139
  889. package/scripts/validate-workflow-security.py +0 -184
  890. package/scripts/validate-workspace-schema.py +0 -800
  891. package/scripts/validate.sh +0 -354
  892. package/scripts/workflow_schema.py +0 -69
  893. /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/auth-tokens/decisions.md +0 -0
  894. /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/auth-tokens/plan.md +0 -0
  895. /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/auth-tokens/spec.md +0 -0
  896. /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/auth-tokens/tasks.md +0 -0
  897. /package/engine/testdata/fixtures/basic/devrites-root/{features → work}/search-ranking/spec.md +0 -0
@@ -1,47 +1,43 @@
1
1
  ---
2
2
  name: rite-pov
3
- description: Project-grounded verdict for adopting, switching, rejecting, or revisiting a named external technology, library, platform, CVE, or pattern. Use when deciding whether this project should commit to an outside option.
3
+ description: Project-grounded verdict for adopting, switching, rejecting, or revisiting a named external technology, library, platform, CVE, or pattern.
4
4
  argument-hint: "[candidate/link/question]"
5
5
  user-invocable: true
6
- required-agent-roles: none
7
6
  ---
8
7
 
9
8
  # /rite-pov: project-grounded external verdict
10
9
 
11
- Decide whether **this project** should adopt, trial, hold, reject, or ignore a named outside candidate. Chat verdict first; durable record only when the user asks or the decision changes an active feature.
12
-
13
- ## Rules consulted
14
- Step 0: Read `.claude/skills/devrites-lib/reference/standards/core.md`. Pull `source-driven`, `security`, or `deprecation` standards only when the candidate touches those risks.
15
-
16
- ## Operating rules
17
- - Verdict only after two floors clear: one verified project fact and one verified external source.
18
- - Named candidate only. If the user asks "what should we use?" over an open field, route to `/rite-pressure-test` or `/rite-spec` to surface criteria first.
19
- - Reversibility sizes rigor: two-way config/dependency < bounded internal migration < public/security/legal/data decision.
10
+ Decide whether this project should adopt, trial, hold, reject, or ignore one
11
+ named outside candidate.
20
12
 
21
13
  ## Workflow
22
- 1. **Frame.** Parse `$ARGUMENTS` into candidate, intent (`adopt|switch|compare|CVE/deprecation impact|second opinion`), and reversibility tier. If intent is ambiguous, ask one blocking question before research.
23
- **Completion:** candidate, decision intent, and reversibility tier are explicit.
24
- 2. **Project floor.** Verify at least one concrete project fact: incumbent dependency/call site, current absence plus integration point, prior ADR/decision, or affected surface. Use `devrites-engine profile get`; on `MISS`, run `devrites-engine profile refresh` once, then inspect candidate-specific files fresh. Completion: at least one `file:line` or local doc pointer is in notes, or the verdict is `Hold: project floor missing`.
25
- 3. **External floor.** Read primary docs/advisory/release notes/source for the candidate. Prefer official sources; web summaries are supporting only. Completion: at least one dated source URL/title is in notes, or the verdict is `Hold: external floor missing`.
26
- 4. **Compare.** Weigh fit, migration cost, reversibility, project principles, security/licensing/deprecation risk, and simpler alternatives already present.
27
- **Completion:** every comparison dimension has project evidence or an explicit unknown.
28
- 5. **Verdict.** Return exactly one grade: `Adopt`, `Trial`, `Hold`, `Reject`, or `Not-our-problem`. Include next step: `/rite-spec`, `/rite-define`, spike, `/rite-learn` record, or done.
29
- 6. **Optional record.** If the user asks to persist, append the decision to the active workspace `decisions.md`; if no active workspace, suggest an ADR. A persisted `Reject` also lands in the cross-feature ledger so ideation skills stop re-proposing it: `devrites-engine learnings add <slug> "<candidate> — <why rejected>" rejected-direction`.
14
+
15
+ 1. Frame the candidate, decision intent, and reversibility tier. Route an
16
+ open-ended market search to `/rite-pressure-test` or `/rite-spec`.
17
+ 2. Inspect the live repository for at least one concrete project fact: an
18
+ incumbent dependency/call site, integration seam, relevant ADR/decision, or
19
+ confirmed absence. No profile cache.
20
+ 3. Verify the external claim from current primary documentation, source,
21
+ advisory, or release notes.
22
+ 4. Compare fit, existing alternatives, migration cost, reversibility, project
23
+ principles, security, licensing, and deprecation risk.
24
+ 5. Return exactly one verdict: `Adopt`, `Trial`, `Hold`, `Reject`, or
25
+ `Not-our-problem`.
26
+ 6. Persist only when asked: use the active feature's `decisions.md` for a
27
+ feature-scoped choice or propose an ADR for a durable architecture decision.
28
+ Do not write a parallel rejection or learning index.
30
29
 
31
30
  ## Output
32
- Reply-contract exception: decision utility; may run outside a workspace.
33
31
 
34
- ```
35
- Verdict: <Adopt|Trial|Hold|Reject|Not-our-problem> — <one sentence>
36
- Tier: <two-way|bounded-one-way|high-stakes>
37
- Project floor: <file:line/local doc>
38
- External floor: <source>
39
- Why: <3 bullets max>
40
- Next: <single command or done>
41
- Record: <path|not written>
32
+ ```text
33
+ Verdict: <grade> — <one sentence>
34
+ Tier: <two-way | bounded-one-way | high-stakes>
35
+ Project evidence: <file:line or local doc>
36
+ External evidence: <primary source>
37
+ Why: <three bullets max>
38
+ Next: <one action | done>
39
+ Record: <path | not written>
42
40
  ```
43
41
 
44
- ## Gotchas
45
- - No project floor, no verdict. A generic "X is good" answer is failure.
46
- - Do not let a strong blog post compensate for no local call site, incumbent, or integration point.
47
- - Do not enumerate a whole market here; bounded candidate decisions only.
42
+ No project evidence or no primary external source means `Hold`, not a generic
43
+ technology opinion.
@@ -4,7 +4,6 @@ description: Explicit utility for resolving GitHub PR review feedback.
4
4
  argument-hint: "[PR number|thread URL|blank for current branch]"
5
5
  user-invocable: true
6
6
  disable-model-invocation: true
7
- required-agent-roles: none
8
7
  ---
9
8
 
10
9
  # /rite-pr-feedback: resolve PR review threads
@@ -3,7 +3,6 @@ name: rite-pressure-test
3
3
  description: Pressure-test a rough/vague idea: ideate, explore 3-5 approaches, radically different shapes, diverge then converge on direction before spec. Not for writing spec.
4
4
  argument-hint: "[rough idea or plan to stress-test]"
5
5
  user-invocable: true
6
- required-agent-roles: none
7
6
  ---
8
7
 
9
8
  # /rite-pressure-test: diverge then converge
@@ -18,9 +17,9 @@ Read `.claude/skills/devrites-lib/reference/standards/core.md` first: its operat
18
17
  existing conventions) shape the divergence. The other rule files load on demand.
19
18
 
20
19
  ## Diverge (widen)
21
- - Load the `rejected-direction` entries from `.devrites/learnings.md` first. A recorded
22
- rejection re-enters the option set only with new evidence against its recorded *why*:
23
- name that evidence when you bring one back.
20
+ - Search the current `decisions.md`, accepted ADRs, and directly relevant archived
21
+ Markdown for prior rejected directions. Reconsider one only when new evidence answers
22
+ its recorded reason; cite both the rejection and the new evidence.
24
23
  - Generate 3-5 genuinely different approaches to the underlying goal, not variations of
25
24
  one. Cover at least: the obvious approach, a simpler/smaller approach, and a
26
25
  different-shape approach (different data model, flow, or boundary).
@@ -54,15 +53,9 @@ existing conventions) shape the divergence. The other rule files load on demand.
54
53
  frontier question per session.
55
54
  - Ask the user to pick when two options are close and the choice changes the product.
56
55
  - Name a **"Not doing" list**: the good options you deliberately cut. It's the highest-value
57
- output of convergence: it hands `/rite-spec` its scope boundary and stops the rejected ideas
58
- from creeping back in later. When a cut is durable (rejected for a reason that outlives this
59
- feature) offer to record it: `devrites-engine learnings add <slug> "<direction>: <why>"
60
- rejected-direction`.
61
-
62
- ## Output
63
- Reply-contract exception: pre-workspace ideation utility. It skips `devrites-engine progress`,
64
- but follows the compact labels and single-next-action rule from
65
- [`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md).
56
+ output of convergence: it hands `/rite-spec` its scope boundary. When a cut is
57
+ durable, offer to record the reason in the active feature's `decisions.md` or
58
+ a durable ADR rather than a parallel rejection index.
66
59
 
67
60
  ```
68
61
  Done: pressure test complete for <goal>.
@@ -4,7 +4,6 @@ description: User-invoked throwaway prototype for one logic or UI design questio
4
4
  user-invocable: true
5
5
  disable-model-invocation: true
6
6
  argument-hint: "[the question the prototype is answering]"
7
- required-agent-roles: none
8
7
  ---
9
8
 
10
9
  # /rite-prototype: answer one question with throwaway code
@@ -91,11 +90,6 @@ calling phase. The prototype itself does **not** ship.
91
90
 
92
91
  ## Output
93
92
 
94
- Reply-contract exception: scoped prototype detour. Run `devrites-engine progress` only when
95
- an active workspace exists; otherwise skip it. Use the compact labels from the shared
96
- completion reply contract
97
- ([`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md)).
98
-
99
93
  ```
100
94
  Done: prototype answered <question>.
101
95
  Changed: <prototype path | deleted after absorption>; decisions.md or NOTES.md
@@ -3,124 +3,129 @@ name: rite-prove
3
3
  description: Prove a completed feature with tests and the full test suite, build/typecheck/lint, end-to-end/browser evidence, screenshots, commands, and outputs for seal. Not for single-slice proof.
4
4
  argument-hint: "[feature-slug]"
5
5
  user-invocable: true
6
- required-agent-roles: devrites-proof-runner
7
6
  ---
8
7
 
9
8
  # /rite-prove: prove the completed feature
10
9
 
11
- Record evidence for the **whole feature**. Read the active workspace first; if none,
12
- run `/rite-spec <feature>`.
10
+ Prove the **whole feature**. Read the active workspace; if absent, run
11
+ `/rite-spec <feature>`.
13
12
 
14
- > **Scope:** built-in `/verify` proves one change and `/run` launches the app.
15
- > `/rite-prove` covers a feature. It walks `spec.md` acceptance
16
- > criteria one-by-one, runs the full relevant test suite + build/typecheck/lint,
17
- > ascends the browser-proof ladder (step 4),
18
- > and writes `evidence.md` + `browser-evidence.md` keyed to the active
19
- > `.devrites/work/<slug>/`. No DevRites workspace → use `/verify` or `/run` alone.
13
+ > **Scope:** `/verify` proves one change; `/run` launches the app. `/rite-prove`
14
+ > walks feature acceptance, relevant suite/build/typecheck/lint, and browser
15
+ > proof, writing evidence under the active workspace. Without one, use
16
+ > `/verify` or `/run`.
20
17
 
21
18
  ## Gate: all slices must be built first
22
- Read `tasks.md` + `state.md`. **If ANY slice is still pending/unbuilt, STOP** and tell the
23
- user to finish it with `/rite-build`: `/rite-prove` runs once, when the full task is
24
- complete, not after each slice. (Each slice already got its own targeted tests during
25
- `/rite-build`; this phase proves the assembled feature as a whole.)
19
+ Read `tasks.md` + `state.md`. If any slice is pending, stop for `/rite-build`.
20
+ This phase proves the assembled feature once, after per-slice tests.
26
21
 
27
22
  **Never report an unobserved pass.** If a command could not run, report that and give
28
23
  exact manual steps.
29
24
 
30
- **Scoped reruns are allowed.** `/rite-prove` runs once when the full feature is assembled.
31
- After `/rite-polish` or `/rite-review` edits code,
32
- the existing `evidence.md` no longer post-dates the change, so re-run `/rite-prove` over
33
- the affected criteria/routes to refresh proof before `/rite-seal`.
25
+ After polish/review edits, rerun affected criteria/routes so evidence binds the
26
+ changed candidate digest before Seal.
34
27
 
35
28
  ## Rules consulted (read on demand from `.claude/skills/devrites-lib/reference/standards/`)
36
29
  Pull these via `Read` when relevant:
37
30
  - `testing.md`: pyramid, determinism, no-flake discipline.
38
31
  - `test-proof-checklist.md`: compact proof-quality gate for tests and recorded evidence.
39
- - `browser-proof-checklist.md`: for UI scope, the required browser states and Visual Verdict evidence.
32
+ - `browser-proof-checklist.md`: required UI states and Visual Verdict evidence.
40
33
  - `spec-grammar.md`: when the spec uses structured `### Requirement:` / `#### Scenario:`
41
34
  blocks, each scenario (WHEN/THEN) is one observable behavior to walk and prove.
42
35
  - `performance.md`: measure first when perf is in scope.
43
- - `observability.md`: when the change has a runtime surface (endpoint, job, integration,
44
- user flow): telemetry must be present **and observed to emit**, not assumed.
36
+ - `observability.md`: runtime telemetry must be observed to emit.
45
37
  - `developer-experience.md`: when the change ships a developer-facing surface (API / CLI / SDK /
46
38
  webhook / config / error messages / getting-started): **measure** the DX scorecard (run the flow,
47
39
  measure time-to-hello-world, and capture verbatim error text), rather than asserting it.
48
- - `definition-of-done.md`: standing Done bar: acceptance mapped, fresh proof, no open hard gates, scoped edits, rollback/docs where needed.
40
+ - `definition-of-done.md`: acceptance, proof, gates, scope, rollback/docs.
49
41
 
50
42
 
51
43
  ## Operating rules
52
44
  - Evidence over confidence. Feature scope only: fix within the feature or record a
53
45
  blocker; don't refactor unrelated code.
46
+ - Apply `testing.md`'s positive, discriminating proof rule to every behavioral claim.
47
+ A green command without an executing assertion and decisive observed signal is unproven.
48
+ - Follow the shared
49
+ [`candidate-integrity.md`](../devrites-lib/reference/candidate-integrity.md).
50
+ Prove owns proof binding, not manifest grammar or candidate hashing.
54
51
  - Spec Drift Guard applies: if tests/evidence reveal the spec is wrong, stop and handle
55
52
  drift (`rite-build/reference/spec-drift-guard.md`).
56
- - **Root executes; runner validates; root records; wright fixes.** Use the file-backed
53
+ - **Root executes; runner validates; root records; wright fixes.** Use the native
57
54
  fresh-context contract in
58
55
  [`agents.md`](../devrites-lib/reference/standards/agents.md). The root owns exact
59
56
  vetted gate execution, browser capability, the evidence verdict, and canonical
60
57
  writes. The proof runner is read-only and validates immutable logs/artifacts.
61
- Every accepted source/test correction is one bounded `devrites-slice-wright`
62
- packet, never an inline edit.
58
+ Every accepted source/test correction is one bounded
59
+ `devrites-slice-wright` task, never an inline edit.
60
+
61
+ ## Released-workspace refresh entry
62
+
63
+ Only an admitted `/rite-upgrade` assessment that proves a released-format candidate
64
+ defect may enter this branch. Normal Prove never reconstructs candidate scope.
65
+
66
+ Before proof, require that the legacy touched-file scope, live diff, tasks, and traceability agree unambiguously on every candidate path and state. Missing, unknown, or
67
+ ambiguous scope is a recorded gap and HITL stop; never guess from Git alone. When they
68
+ agree, preserve unrelated `touched-files.md` content and refresh only its strict manifest
69
+ from the currently observed project bytes under the workspace schema.
70
+
71
+ Discard every old pass as proof. Run all current approved real proof from scratch under
72
+ the positive, discriminating rules below, and establish the pre-proof and post-proof engine digest
73
+ with `devrites-engine check candidate <slug>`. Require an identical digest,
74
+ then write one fresh exact binding in `evidence.md` and in `browser-evidence.md` when it
75
+ exists. Historical evidence cannot substitute for any current gate. A current proof
76
+ failure is a blocker; this Upgrade admission never authorizes source or test changes.
63
77
 
64
78
  ## Workflow
65
- 0. Read `.claude/skills/devrites-lib/reference/standards/core.md` first (the always-on operating rules); pull the
66
- on-demand rules above when relevant.
67
- Then run `devrites-engine preamble` for deterministic workspace orientation.
68
- 1. **Confirm the gate** (all slices built). Read `spec.md` (acceptance criteria +
69
- "Commands discovered"), `tasks.md`, `state.md`, `test-plan.md` if present (the vetted
70
- coverage target from `/rite-vet`), and the full `git diff`.
79
+ 0. Read core, load relevant rules above, then resolve the active slug,
80
+ require its `state.md`, and read the cursor directly.
81
+ 1. **Confirm all slices built.** Read `spec.md`, `tasks.md`, `state.md`,
82
+ `test-plan.md`, and the full diff.
83
+ A missing `test-plan.md` returns to Vet; it never authorizes ad hoc proof.
71
84
  2. **Discover commands** if not recorded:
72
85
  [test-command-discovery](reference/test-command-discovery.md): README, package
73
86
  scripts, Makefile, CI configs, Gemfile/Rakefile, pyproject, go.mod, Cargo.toml.
74
- **Completion:** exact runnable test/build/typecheck/lint commands are recorded or explicitly unavailable.
75
- 3. **Execute proof against a frozen candidate.** Freeze and hash the candidate.
76
- The root runs only commands authorized byte-for-byte by `test-plan.md` and the
77
- immutable proof packet, with exact cwd and prerequisites, capturing exit code,
78
- decisive output, artifact hashes, and before/after candidate identity in secure
79
- external scratch. Run the full relevant test suite plus **build / typecheck /
80
- lint**. Reject synthesized or substituted commands and any source drift.
87
+ Discovery only supplies evidence. `test-plan.md` is the sole approved runtime
88
+ command list. If a discovered command is absent from it, do not run or
89
+ silently approve the command: return to the current Vet contract to add and
90
+ vet it, refresh readiness, then return to Prove.
91
+ **Completion:** exact commands are approved in `test-plan.md` or unavailable.
92
+ 3. **Execute proof against a frozen candidate.** Run
93
+ `devrites-engine check candidate <slug>` before any approved proof and retain
94
+ its exact digest. The root runs only commands declared by `test-plan.md`,
95
+ byte-for-byte, with exact cwd and prerequisites, capturing exit code and
96
+ decisive output in secure external scratch. Run the full relevant test suite
97
+ plus **build / typecheck / lint**. Then rerun the candidate check: require the
98
+ identical digest and no candidate-source mutation. Reject synthesized or
99
+ substituted commands, malformed manifests, zero-test/skipped/filtered results used as
100
+ behavioral proof, success inferred only from exit status, and any source drift. Static
101
+ gates prove only their named static criterion.
81
102
  4. **UI feature?** The root applies the browser proof ladder with
82
- `design-brief.md`, `references.md`, packet-listed routes, browser harness, and
103
+ `design-brief.md`, `references.md`, the requested routes, browser harness, and
83
104
  allowed scratch path:
84
105
  [proof-ladder](reference/proof-ladder.md) + [browser-proof](reference/browser-proof.md)
85
106
  (`devrites-browser-proof`): routes, viewports, screenshots (opened + described),
86
107
  console, network, interaction paths, and the brief's proof targets. Compare screenshots
87
108
  with target references and record deltas. An unresolved material mismatch is a failed
88
109
  result; the root handles any accepted correction at step 7 before re-rendering.
89
- 5. **Validate proof in fresh context.** Dispatch `devrites-proof-runner` with the
90
- frozen candidate identity, exact approved command list, immutable root-produced
91
- logs/screenshots/traces, acceptance map, and hashes. Await its non-empty
92
- `agent-result/v1`; reject mismatched, missing, stale, or self-attested evidence.
93
- The runner executes no command and writes no canonical evidence.
94
- 6. **Map proof completely.** Follow
110
+ 5. **Validate proof in fresh context.** In parallel, dispatch the exact read-only
111
+ `devrites-proof-runner` on candidate identity, approved commands, immutable
112
+ root evidence, and acceptance map, and `devrites-spec-reviewer` on the same
113
+ candidate. Wait for both; reject missing/stale, invented-ID, label-only, or
114
+ self-attested evidence. Neither executes commands.
115
+ 6. **Map proof completely.** Reconcile both exact verdicts, then follow
95
116
  [`reference/acceptance-proof.md`](reference/acceptance-proof.md) for acceptance/scenario
96
117
  coverage and the conditional critical-path, observability, developer-surface, and wiring
97
118
  branches. Completion: every criterion, planned interaction, and declared key link has a
98
- proof class plus passing evidence, or is recorded as a blocker.
119
+ proof class plus positive, discriminating passing evidence, or is recorded as a blocker.
99
120
  7. **On failure** → [failure-triage](reference/failure-triage.md) +
100
121
  `devrites-debug-recovery`. The root reconciles the reproduction. Send an accepted,
101
- in-scope correction to the sole writer, `devrites-slice-wright`; then freeze the new
102
- candidate and dispatch a fresh proof runner for affected checks. If a fix would exceed
122
+ in-scope correction to the sole writer, `devrites-slice-wright`; update the
123
+ manifest from its actual scoped diff, rerun affected real proof and both
124
+ candidate checks, then dispatch a fresh proof runner. If a fix would exceed
103
125
  scope, record a blocker.
104
- 8. The root updates `evidence.md`, `browser-evidence.md` (if UI), `traceability.md`, and
105
- `state.md`. New proof goes to `evidence.md` (`proof.md` is a read-only alias:
106
- see `devrites-lib/reference/workspace-artifact-schema.md`).
126
+ 8. The root updates `evidence.md`, `browser-evidence.md` (when present),
127
+ `traceability.md`, and `state.md`. Record exactly one binding for the observed
128
+ digest in evidence and browser evidence. New proof goes to canonical
129
+ `evidence.md`.
107
130
 
108
131
  > **Mid-flight discipline.** When tempted to claim an un-observed pass, skip a rung of the browser-proof ladder, or proceed with slices pending: see [`anti-patterns`](reference/anti-patterns.md). Load it the moment you reach for the excuse.
109
-
110
- ## Output
111
-
112
- **Progress first**: run `devrites-engine progress`, then use the shared completion reply contract
113
- ([`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md)).
114
- Default success shape:
115
- ```
116
- Done: feature proof complete for <slug>.
117
- Changed: evidence.md, browser-evidence.md <updated|n/a>, devex.md <updated|n/a>, state.md
118
- Evidence: acceptance <total>/<total> (judgment-only <n>); scenarios <total>/<total|n/a>; key links <n>/<n|none>; tests/build/lint/browser <pass summary>
119
- Open: none
120
- Next: /rite-polish
121
- Record: .devrites/work/<slug>/evidence.md
122
- ↻ Hygiene: /clear before /rite-polish
123
- ```
124
- If any check fails, a blocker remains, or a criterion is unproven, use the shared
125
- `Stopped / blocked` form and route `Fix:` to the failing check or `/rite-build`; do
126
- not recommend `/rite-polish`.
@@ -1,47 +1,51 @@
1
1
  # Acceptance proof
2
2
 
3
- Map every `spec.md` acceptance criterion to evidence and label its proof class:
4
- `test`, `command`, `browser`, or `judgment` with a one-line reason. Re-run the
5
- structured grammar gate before mapping scenarios:
3
+ Map each `spec.md` criterion to `test | command | browser | judgment` evidence
4
+ and one-line reason. Run `spec-grammar.md`'s Native grammar re-read on the saved
5
+ spec before mapping; reopen after corrections. No parser/script may replace it.
6
6
 
7
- ```bash
8
- devrites-engine spec-validate ".devrites/work/<slug>" --against .devrites/specs
9
- ```
7
+ Every structured WHEN/THEN scenario needs a passing asserting test. When
8
+ `test-plan.md` exists, every acceptance/gap requirement, interactive element, and
9
+ user flow needs a passing result. Missing coverage blocks.
10
10
 
11
- Each structured WHEN/THEN scenario needs a passing asserting test. If `test-plan.md`
12
- exists, every acceptance mapping, per-gap requirement, interactive element, and user
13
- flow needs a passing result. Missing coverage is an unproven blocker.
11
+ Behavioral proof MUST be positive, discriminating, and observed under `testing.md`:
12
+ assertion/output changes when behavior is absent or wrong. Skipped, focused,
13
+ filtered, pending, zero-test, assertion-free, tautological, or unexecuted results
14
+ do not count. Build/compile/typecheck/lint prove only their static criterion;
15
+ discriminating shell assertions and golden/text comparisons may prove text/CLI.
14
16
 
15
- ## Critical-path assertion strength
17
+ ## Backstop disposition
18
+
19
+ A `backstop` passes only on its spec-named independent held-out,
20
+ property/metamorphic, or direct behavioral check plus discriminating observed
21
+ output. Presence, test names without results, author judgment, or an expectation
22
+ copied from the same implementation logic fails.
16
23
 
17
- For regression-Critical, irreversible, and data-loss paths, fault-inject a small
18
- behavior break and confirm the covering test goes red, then revert. Use the existing
19
- mutation tool when present. Run:
24
+ Undefined/unavailable signal: `cannot_verify`, evidence
25
+ `insufficient_spec: <missing fact or evidence surface>`, then Spec Drift; never
26
+ judgment or pass.
20
27
 
21
- ```bash
22
- devrites-engine test-integrity
23
- devrites-engine mutation-gate
24
- ```
28
+ ## Critical-path assertion strength
25
29
 
26
- A test that stays green on broken code is unproven. Pure transforms also get a
27
- round-trip or metamorphic property check when applicable.
30
+ For regression-Critical, irreversible, and data-loss paths, inject a small break,
31
+ confirm the covering test turns red, then revert; use the existing mutation tool.
32
+ A green test on broken code is unproven. Pure transforms also get a round-trip or
33
+ metamorphic property check when applicable.
28
34
 
29
35
  ## Runtime observability branch
30
36
 
31
- For endpoints, jobs, consumers, integrations, user-facing flows, or new error paths,
32
- apply the on-call test from `observability.md`: trigger the failure path and observe the
33
- required log, metric, or trace emit. Record the observation. Skip pure internal, docs,
34
- config, and type-only changes.
37
+ For endpoints, jobs, consumers, integrations, user flows, or new error paths,
38
+ trigger failure and observe the required log/metric/trace per `observability.md`;
39
+ record it. Skip pure internal, docs, config, and type-only changes.
35
40
 
36
41
  ## Developer-facing branch
37
42
 
38
- For a public API, CLI, SDK, webhook, config contract, error path, or getting-started
39
- flow, execute the real entry point on clean state. Measure time-to-hello-world and
40
- capture verbatim failure output. Browser-capture docs/quickstarts when applicable.
41
- Write the measured scorecard to `devex.md` and headline evidence to `evidence.md`.
43
+ For public API/CLI/SDK/webhook/config/error/onboarding, execute the real entry on
44
+ clean state, measure time-to-hello-world, and capture verbatim failure output.
45
+ Browser-capture docs/quickstarts when applicable. Write the scorecard to
46
+ `devex.md` and headline evidence to `evidence.md`.
42
47
 
43
48
  ## Wiring branch
44
49
 
45
- Walk every key link declared by `plan.md` and exercise or follow it in the assembled
46
- feature. Record each as `EVID-###`; if none are declared, record that fact. An unwired
47
- link is a blocker.
50
+ Exercise/follow every key `plan.md` link in the assembled feature; record each as
51
+ `EVID-###`, or record none declared. An unwired link blocks.
@@ -1,30 +1,31 @@
1
1
  # Test / build command discovery
2
2
 
3
- Use the project's own commands. Never invent a test runner or build step. Discover from
4
- these sources, in roughly this order of authority:
3
+ Use project commands. Never invent a test runner or build step.
4
+ Repository files are discovery evidence, not authorization. `test-plan.md` is
5
+ the sole approved runtime command list.
5
6
 
6
- | Source | Look for |
7
+ | Discovery source | Look for |
7
8
  |---|---|
8
- | `spec.md` → "Commands discovered" | already-found commands (trust first) |
9
+ | `spec.md` → "Commands discovered" | previously found candidates |
9
10
  | `package.json` `scripts` | `test`, `build`, `typecheck`, `lint`, `dev`, `e2e` |
10
11
  | `Makefile` / `Justfile` / `Taskfile` | `test`, `build`, `check`, `lint` targets |
11
12
  | `Gemfile` / `Rakefile` | `rake test`, `rspec`, `bin/rails test` |
12
13
  | `pyproject.toml` / `tox.ini` / `noxfile.py` | `pytest`, `tox`, `nox` |
13
14
  | `go.mod` | `go test ./...`, `go build ./...`, `go vet` |
14
15
  | `Cargo.toml` | `cargo test`, `cargo build`, `cargo clippy` |
15
- | CI configs (`.github/workflows`, `.gitlab-ci.yml`, `circleci`) | the exact commands CI runs: the source of truth for "green" |
16
+ | CI configs (`.github/workflows`, `.gitlab-ci.yml`, `circleci`) | commands CI runs |
16
17
  | README / CONTRIBUTING | documented dev/test workflow |
17
18
  | framework conventions | Rails/Django/Next/etc. defaults when nothing else is set |
18
19
 
19
- ## Targeted first
20
- Run the **narrowest** command that exercises the slice (a single test file/path),
21
- then widen. A full suite is slower and noisier; use it for the final check, not the
22
- inner loop.
20
+ ## Vet before execution
23
21
 
24
- ## Record what you found
25
- Write the discovered commands back into `spec.md` "Commands discovered" so later
26
- phases (and `/rite-seal`) don't rediscover them. Note the runner version if it matters.
22
+ Compare every discovered candidate, including a narrower target, with
23
+ `test-plan.md`. If it is absent, do not run it or add it silently. Return to the
24
+ current Vet contract to add and vet the command, refresh readiness, then return
25
+ to Prove. A command may run only when its exact command, cwd, and prerequisites
26
+ are approved in `test-plan.md`.
27
27
 
28
28
  ## If nothing exists
29
- No tests in the project: say so. Propose the minimal test setup as a **follow-up**
30
- (ask before adding a framework), and prove the slice via runtime observation meanwhile.
29
+ No tests in the project: say so. Propose the minimal test setup as a
30
+ **follow-up** (ask before adding a framework); any runtime observation command
31
+ still needs Vet approval in `test-plan.md`.
@@ -3,7 +3,6 @@ name: rite-quick
3
3
  description: Express lane for a small reversible change: typo/copy/config, rate-limit constant, error message, local variable rename, feature flag, README link, one-file/function fix.
4
4
  argument-hint: "<what to change>"
5
5
  user-invocable: true
6
- required-agent-roles: none
7
6
  ---
8
7
 
9
8
  # /rite-quick: express lane for small changes
@@ -12,7 +11,8 @@ The full DevRites lifecycle is right for real features; it is **ceremony** for a
12
11
  copy tweak, a one-function fix, or a small config change. `/rite-quick` keeps the
13
12
  discipline that matters (idiom, TDD, evidence, escape-to-full-lifecycle) and drops the
14
13
  artifacts that don't, in a **single pass**. Senior-engineer "right step, right time" made
15
- executable, not advisory.
14
+ executable, not advisory. This lane uses the **Quick** depth profile from
15
+ [`devrites-lib/reference/orchestration-profiles.md`](../devrites-lib/reference/orchestration-profiles.md).
16
16
 
17
17
  ## The significance gate (the whole safety story)
18
18
 
@@ -43,8 +43,9 @@ Load this lane's conditional standards when needed:
43
43
 
44
44
 
45
45
  ## Workflow
46
- 0. **Orient.** Read `core.md`. If a `.devrites/` workspace is active, run the preamble to
47
- see it; `/rite-quick` does **not** require one and does **not** create the full tree.
46
+ 0. **Orient.** Read `core.md`. If a `.devrites/` workspace is active, read its
47
+ `state.md` directly; `/rite-quick` does **not** require
48
+ a workspace and does **not** create the full tree.
48
49
  1. **Significance gate** (above). Fail → STOP, tell the user to run `/rite-spec <feature>`.
49
50
  2. **One-line contract.** Restate in 1-3 lines: the change, its **acceptance** (how you'll
50
51
  know it works), and the **scope boundary** (what you will NOT touch). This is the entire
@@ -72,21 +73,6 @@ decision surfaces, scope grows past the boundary, or you hit an irreversible-ris
72
73
  **STOP, say so, and route to `/rite-spec` / `/rite-define`**. Don't quietly grow a quick
73
74
  fix into an unreviewed feature; that's the exact drift the lifecycle guards against.
74
75
 
75
- ## Output
76
- Run `devrites-engine progress` when a workspace is active; otherwise skip it. Then use the
77
- shared completion reply contract
78
- ([`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md)).
79
- Default success shape:
80
- ```
81
- Done: quick change complete — <one line>.
82
- Changed: <files touched>
83
- Evidence: tests <cmd -> pass>; assertion check <real asserts saw red | n/a>; boundary held yes
84
- Open: <none | non-blocking follow-up | tracked workspace needs ship>
85
- Next: <single recommended command>
86
- Record: <commit/PR path | .devrites/work/<slug>/evidence.md | not applicable>
87
- ↻ Hygiene: /clear after commit
88
- ```
89
-
90
76
  If the quick boundary does not hold or an escalation remains, use `Stopped / blocked`
91
77
  and route to the full lifecycle; do not render `Done`.
92
78
 
@@ -4,7 +4,6 @@ description: User-invoked resume verb for answering, dropping, or batch-resolvin
4
4
  argument-hint: "<qid> \"<answer>\" | --drop <qid> [\"<reason>\"] | --batch <path-to-yaml>"
5
5
  user-invocable: true
6
6
  disable-model-invocation: true
7
- required-agent-roles: none
8
7
  ---
9
8
 
10
9
  # /rite-resolve: answer the human gate
@@ -13,7 +12,7 @@ required-agent-roles: none
13
12
  **stopped the session** (an AFK blocking/escalating/irreversible queue, or a HITL pause
14
13
  left unanswered), plus `--batch`. When `/rite-build` asks a question **inline**
15
14
  via `AskUserQuestion` and the human is present, that pick resolves the gate **in place** through
16
- the same `devrites-engine resolve` writer. You don't type `/rite-resolve` for it. For the async case this
15
+ the `devrites-engine state resolve` writer. You don't type `/rite-resolve` for it. For the async case this
17
16
  skill takes the human's answer (or `--drop` / `--batch`), writes it to `questions.md`, updates
18
17
  `state.md` (clears `Awaiting human`, sets `Status: running`), and recommends the next command.
19
18
 
@@ -41,7 +40,7 @@ Pull these via `Read` when shaping the resolve:
41
40
  through the Spec Drift Guard (`/rite-plan repair`) **after** writing the answer: do
42
41
  not modify `spec.md` / `plan.md` inside this skill.
43
42
  - **The script is the source of truth.** Always invoke
44
- `devrites-engine resolve`. It keeps `questions.md` + `state.md` consistent and emits the
43
+ `devrites-engine state resolve`. It keeps `questions.md` + `state.md` consistent and emits the
45
44
  next-action recommendation. The one `state.md` field this skill may write by hand is the
46
45
  unblocked slice's `Slice mode` (step 4, the named exception); everything else goes through
47
46
  the script, never by hand.
@@ -56,7 +55,7 @@ Pull these via `Read` when shaping the resolve:
56
55
 
57
56
  0. **Read `.claude/skills/devrites-lib/reference/standards/core.md`** (operating rules + persistence discipline) before
58
57
  touching the workspace.
59
- Then run `devrites-engine preamble` for deterministic workspace orientation.
58
+ Then read the explicit or active workspace's `state.md` directly.
60
59
  1. **Parse arguments.** `$ARGUMENTS` is one of:
61
60
  - `<qid> "<answer>"`: answer the single open question.
62
61
  - `--drop <qid>` (optional `"<reason>"`): mark the question `dropped`; record
@@ -72,8 +71,7 @@ Pull these via `Read` when shaping the resolve:
72
71
  user's explicit consent for this local workspace mutation. Echo the qid, answer/drop,
73
72
  and slice being unblocked, then continue immediately; do not ask the user to confirm the
74
73
  command they just typed.
75
- 4. **Mutate.** Run `devrites-engine resolve` with the same
76
- arguments. The script:
74
+ 4. **Mutate.** Run `devrites-engine state resolve` with those arguments. It:
77
75
  - flips the qid's `status` to `answered` / `dropped` and stamps `answered_at` + `answer`;
78
76
  - if the qid is in `state.md`'s `Awaiting human` block (single-question pause), clears
79
77
  that block and sets `Status: running`;
@@ -94,18 +92,3 @@ Pull these via `Read` when shaping the resolve:
94
92
  > answer. That's `/rite-plan repair`. Don't silently retry a build after the answer
95
93
  > lands: the user types the next command. Don't merge two open questions into one
96
94
  > answered entry: each question is independently auditable.
97
-
98
- ## Output
99
-
100
- **Progress first**: run `devrites-engine progress`, then use the shared completion reply contract
101
- ([`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md)).
102
- Default success shape:
103
- ```
104
- Done: resolved <qid> for <gate> at <slice/phase>.
105
- Changed: questions.md, state.md, decisions.md <updated|n/a>
106
- Evidence: not applicable; answer persisted before resume
107
- Open: <none | remaining questions | plan repair needed>
108
- Next: <single recommended command>
109
- Record: .devrites/work/<slug>/questions.md
110
- ↻ Hygiene: no /clear needed; the answer is persisted
111
- ```
@@ -2,7 +2,7 @@
2
2
 
3
3
  `/rite-resolve` is the single canonical writer for `questions.md` `status` flips and
4
4
  `state.md` `Awaiting human` clearance. This file is the reference for the three input
5
- shapes, the batch file format, and the rules the underlying `devrites-engine resolve` obeys.
5
+ shapes, the batch file format, and the `devrites-engine state resolve` rules.
6
6
 
7
7
  ## Three input shapes
8
8
 
@@ -30,7 +30,7 @@ skill applies it once after validation and reports the result instead of asking
30
30
  by a re-plan.
31
31
  - The reason is an optional single trailing string, **strongly recommended** for the
32
32
  audit trail. "obsolete" / "duplicate" / "absorbed by Slice N" are sufficient; if omitted,
33
- `devrites-engine resolve` records the reason as `dropped`.
33
+ `devrites-engine state resolve` records it as `dropped`.
34
34
 
35
35
  ### 3. Batch
36
36