devrites 5.11.0 → 5.12.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 (903) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/docs/agents/issue-driven-rites.md +1 -1
  4. package/docs/agents/issue-tracker.md +3 -0
  5. package/docs/cli.md +90 -0
  6. package/docs/command-map.md +4 -2
  7. package/docs/engine/commands.md +21 -0
  8. package/docs/engine/state-schema.md +1 -1
  9. package/docs/engine/workspace-schema.md +10 -2
  10. package/docs/usage.md +2 -0
  11. package/engine/commands.go +11 -5
  12. package/engine/help.go +80 -3
  13. package/engine/help_test.go +7 -1
  14. package/engine/internal/acceptance/acceptance_test.go +655 -0
  15. package/engine/internal/acceptance/approve.go +142 -0
  16. package/engine/internal/acceptance/cli.go +426 -0
  17. package/engine/internal/acceptance/evidence.go +139 -0
  18. package/engine/internal/acceptance/exec.go +131 -0
  19. package/engine/internal/acceptance/exec_unix.go +22 -0
  20. package/engine/internal/acceptance/exec_windows.go +16 -0
  21. package/engine/internal/acceptance/ledger.go +259 -0
  22. package/engine/internal/acceptance/lint.go +115 -0
  23. package/engine/internal/acceptance/run.go +207 -0
  24. package/engine/internal/acceptance/scaffold.go +55 -0
  25. package/engine/internal/gate/gate.go +12 -2
  26. package/engine/internal/gate/gate_test.go +17 -9
  27. package/engine/internal/gate/gates_ledger.go +76 -0
  28. package/engine/internal/gate/readiness_binding.go +39 -0
  29. package/engine/internal/gate/readiness_binding_test.go +4 -3
  30. package/engine/internal/install/install.go +7 -1
  31. package/engine/internal/install/install_test.go +17 -4
  32. package/engine/internal/install/merge.go +82 -22
  33. package/engine/internal/install/update.go +7 -1
  34. package/engine/internal/install/workspace_advisory.go +46 -0
  35. package/engine/internal/install/workspace_advisory_test.go +54 -0
  36. package/engine/internal/lib/candidate_test.go +1 -1
  37. package/engine/internal/lib/claims.go +411 -0
  38. package/engine/internal/lib/claims_test.go +182 -0
  39. package/engine/internal/lib/closeout_test.go +3 -3
  40. package/engine/internal/lib/context.go +445 -0
  41. package/engine/internal/lib/context_next_test.go +521 -0
  42. package/engine/internal/lib/detect.go +346 -0
  43. package/engine/internal/lib/detect_test.go +105 -0
  44. package/engine/internal/lib/diffscope.go +189 -0
  45. package/engine/internal/lib/dispatch.go +302 -0
  46. package/engine/internal/lib/drift.go +219 -0
  47. package/engine/internal/lib/drift_test.go +106 -0
  48. package/engine/internal/lib/dup.go +1243 -0
  49. package/engine/internal/lib/dup_test.go +488 -0
  50. package/engine/internal/lib/environment_report.go +1 -0
  51. package/engine/internal/lib/environment_report_test.go +2 -2
  52. package/engine/internal/lib/handoff.go +194 -0
  53. package/engine/internal/lib/handoff_test.go +83 -0
  54. package/engine/internal/lib/manifest_union_test.go +1 -1
  55. package/engine/internal/lib/metrics.go +256 -0
  56. package/engine/internal/lib/migrate_test.go +6 -6
  57. package/engine/internal/lib/next.go +155 -0
  58. package/engine/internal/lib/observe_budgets_test.go +3 -3
  59. package/engine/internal/lib/regression.go +378 -0
  60. package/engine/internal/lib/regression_test.go +179 -0
  61. package/engine/internal/lib/resolve_remediation_test.go +1 -1
  62. package/engine/internal/lib/secretscan_test.go +1 -1
  63. package/engine/internal/lib/slicecheck.go +179 -0
  64. package/engine/internal/lib/slicecheck_test.go +111 -0
  65. package/engine/internal/lib/taskgraph_test.go +2 -2
  66. package/engine/internal/lib/triggers.go +133 -0
  67. package/engine/internal/lib/windows.go +353 -0
  68. package/engine/internal/lib/windows_test.go +237 -0
  69. package/engine/internal/notes/cli.go +349 -0
  70. package/engine/internal/notes/notes.go +384 -0
  71. package/engine/internal/notes/notes_test.go +173 -0
  72. package/engine/internal/parallel/lease.go +3 -8
  73. package/engine/internal/parallel/parallel_test.go +34 -0
  74. package/engine/internal/state/budgets.go +13 -8
  75. package/engine/internal/state/observation_test.go +1 -0
  76. package/engine/internal/state/schema.go +4 -3
  77. package/engine/internal/state/state_test.go +3 -3
  78. package/engine/internal/state/workflow_manifest.json +13 -4
  79. package/engine/internal/state/workspaceschema_test.go +2 -2
  80. package/engine/internal/testutil/testutil.go +4 -0
  81. package/engine/main.go +59 -0
  82. package/engine/note_routing_test.go +95 -0
  83. package/engine/observation_contract_test.go +1 -0
  84. package/engine/root_routing_test.go +13 -3
  85. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/gates.md +4 -0
  86. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/state.md +1 -1
  87. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/state.md +1 -1
  88. package/engine/testdata/golden/TestParityResolve/answer/state.md.golden +1 -1
  89. package/engine/testdata/golden/TestParityResolve/drop/state.md.golden +1 -1
  90. package/engine/tests/adr_0027_readiness_binding_test.go +1 -0
  91. package/engine/tests/gate_test.go +3 -0
  92. package/engine/tests/parity_closeout_test.go +3 -3
  93. package/engine/tests/parity_resolve_test.go +1 -1
  94. package/engine/tests/workspace_observation_migration_test.go +8 -4
  95. package/pack/.claude/agents/_shared/composition-findings.md +1 -0
  96. package/pack/.claude/agents/_shared/composition-result.md +1 -0
  97. package/pack/.claude/agents/_shared/result-admission.md +3 -0
  98. package/pack/.claude/agents/_shared/untrusted-input-devex.md +1 -0
  99. package/pack/.claude/agents/_shared/untrusted-input-retrospector.md +1 -0
  100. package/pack/.claude/agents/_shared/untrusted-input.md +1 -0
  101. package/pack/.claude/agents/devrites-code-reviewer.md +19 -3
  102. package/pack/.claude/agents/devrites-devex-reviewer.md +3 -3
  103. package/pack/.claude/agents/devrites-doubt-reviewer.md +3 -3
  104. package/pack/.claude/agents/devrites-evidence-scout.md +3 -3
  105. package/pack/.claude/agents/devrites-frontend-reviewer.md +3 -3
  106. package/pack/.claude/agents/devrites-performance-reviewer.md +3 -3
  107. package/pack/.claude/agents/devrites-plan-drafter.md +3 -3
  108. package/pack/.claude/agents/devrites-plan-reviewer.md +3 -3
  109. package/pack/.claude/agents/devrites-proof-runner.md +3 -3
  110. package/pack/.claude/agents/devrites-retrospector.md +3 -3
  111. package/pack/.claude/agents/devrites-security-auditor.md +25 -3
  112. package/pack/.claude/agents/devrites-simplifier-reviewer.md +15 -5
  113. package/pack/.claude/agents/devrites-slice-wright.md +3 -3
  114. package/pack/.claude/agents/devrites-spec-reviewer.md +3 -3
  115. package/pack/.claude/agents/devrites-strategy-reviewer.md +3 -3
  116. package/pack/.claude/agents/devrites-test-analyst.md +3 -3
  117. package/pack/.claude/agents/devrites-upgrade-planner.md +3 -3
  118. package/pack/.claude/settings.json +39 -2
  119. package/pack/.claude/skills/devrites-api-interface/SKILL.md +2 -0
  120. package/pack/.claude/skills/devrites-audit/SKILL.md +9 -0
  121. package/pack/.claude/skills/devrites-browser-proof/SKILL.md +2 -0
  122. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +2 -0
  123. package/pack/.claude/skills/devrites-doubt/SKILL.md +2 -0
  124. package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +2 -0
  125. package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +4 -0
  126. package/pack/.claude/skills/devrites-frontend-craft/reference/shape.md +5 -0
  127. package/pack/.claude/skills/devrites-interview/SKILL.md +5 -0
  128. package/pack/.claude/skills/devrites-lib/SKILL.md +40 -5
  129. package/pack/.claude/skills/devrites-lib/reference/_shared/reslice-autocomplete.md +3 -0
  130. package/pack/.claude/skills/devrites-lib/reference/_shared/reslice-plan.md +3 -0
  131. package/pack/.claude/skills/devrites-lib/reference/_shared/reslice-vet.md +3 -0
  132. package/pack/.claude/skills/devrites-lib/reference/candidate-integrity.md +17 -0
  133. package/pack/.claude/skills/devrites-lib/reference/orchestration-profiles.md +20 -0
  134. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -4
  135. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +24 -1
  136. package/pack/.claude/skills/devrites-lib/reference/standards/README.md +10 -0
  137. package/pack/.claude/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +2 -0
  138. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +2 -0
  139. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +21 -1
  140. package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +2 -0
  141. package/pack/.claude/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
  142. package/pack/.claude/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
  143. package/pack/.claude/skills/devrites-lib/reference/standards/audit-coverage.md +103 -0
  144. package/pack/.claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -0
  145. package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +11 -0
  146. package/pack/.claude/skills/devrites-lib/reference/standards/code-navigation.md +71 -4
  147. package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +67 -7
  148. package/pack/.claude/skills/devrites-lib/reference/standards/coding-style.md +9 -4
  149. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +20 -3
  150. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +10 -1
  151. package/pack/.claude/skills/devrites-lib/reference/standards/data-integrity.md +24 -2
  152. package/pack/.claude/skills/devrites-lib/reference/standards/debug-recovery.md +14 -0
  153. package/pack/.claude/skills/devrites-lib/reference/standards/definition-of-done.md +6 -0
  154. package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +18 -0
  155. package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +2 -0
  156. package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +2 -0
  157. package/pack/.claude/skills/devrites-lib/reference/standards/documentation.md +12 -0
  158. package/pack/.claude/skills/devrites-lib/reference/standards/duplicate-code.md +118 -0
  159. package/pack/.claude/skills/devrites-lib/reference/standards/edge-case-trace.md +2 -0
  160. package/pack/.claude/skills/devrites-lib/reference/standards/elicitation.md +29 -0
  161. package/pack/.claude/skills/devrites-lib/reference/standards/error-handling.md +2 -0
  162. package/pack/.claude/skills/devrites-lib/reference/standards/gates.md +117 -0
  163. package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +2 -0
  164. package/pack/.claude/skills/devrites-lib/reference/standards/glossary.md +40 -0
  165. package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +16 -0
  166. package/pack/.claude/skills/devrites-lib/reference/standards/integration-reliability.md +19 -0
  167. package/pack/.claude/skills/devrites-lib/reference/standards/loop-operations.md +32 -1
  168. package/pack/.claude/skills/devrites-lib/reference/standards/observability.md +2 -0
  169. package/pack/.claude/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -0
  170. package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +2 -0
  171. package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +8 -1
  172. package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +14 -0
  173. package/pack/.claude/skills/devrites-lib/reference/standards/prose-style.md +3 -0
  174. package/pack/.claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +4 -0
  175. package/pack/.claude/skills/devrites-lib/reference/standards/repository-topology.md +2 -0
  176. package/pack/.claude/skills/devrites-lib/reference/standards/review/README.md +23 -0
  177. package/pack/.claude/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
  178. package/pack/.claude/skills/devrites-lib/reference/standards/review/default.md +42 -0
  179. package/pack/.claude/skills/devrites-lib/reference/standards/review/go.md +47 -0
  180. package/pack/.claude/skills/devrites-lib/reference/standards/review/python.md +46 -0
  181. package/pack/.claude/skills/devrites-lib/reference/standards/review/shell.md +40 -0
  182. package/pack/.claude/skills/devrites-lib/reference/standards/review/ts-js.md +54 -0
  183. package/pack/.claude/skills/devrites-lib/reference/standards/review-checklist.md +2 -0
  184. package/pack/.claude/skills/devrites-lib/reference/standards/security-checklist.md +2 -0
  185. package/pack/.claude/skills/devrites-lib/reference/standards/security.md +58 -6
  186. package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +48 -0
  187. package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +18 -4
  188. package/pack/.claude/skills/devrites-lib/reference/standards/test-proof-checklist.md +5 -0
  189. package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +19 -2
  190. package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +12 -0
  191. package/pack/.claude/skills/devrites-lib/reference/standards/verification-methods.md +110 -0
  192. package/pack/.claude/skills/devrites-lib/reference/standards/windows.md +51 -0
  193. package/pack/.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  194. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +28 -3
  195. package/pack/.claude/skills/devrites-prose-craft/SKILL.md +3 -1
  196. package/pack/.claude/skills/devrites-source-driven/SKILL.md +2 -0
  197. package/pack/.claude/skills/devrites-ux-shape/SKILL.md +2 -0
  198. package/pack/.claude/skills/rite/SKILL.md +2 -0
  199. package/pack/.claude/skills/rite-adopt/SKILL.md +2 -0
  200. package/pack/.claude/skills/rite-autocomplete/SKILL.md +7 -4
  201. package/pack/.claude/skills/rite-autocomplete/reference/decision-policy.md +1 -3
  202. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +8 -4
  203. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +1 -3
  204. package/pack/.claude/skills/rite-build/SKILL.md +28 -14
  205. package/pack/.claude/skills/rite-build/reference/checkpoint.md +6 -0
  206. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +11 -2
  207. package/pack/.claude/skills/rite-build/reference/phase-contract.md +8 -4
  208. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +34 -8
  209. package/pack/.claude/skills/rite-clarify/SKILL.md +4 -0
  210. package/pack/.claude/skills/rite-converge/SKILL.md +14 -2
  211. package/pack/.claude/skills/rite-customize/SKILL.md +2 -0
  212. package/pack/.claude/skills/rite-define/SKILL.md +8 -2
  213. package/pack/.claude/skills/rite-doctor/SKILL.md +6 -1
  214. package/pack/.claude/skills/rite-dogfood/SKILL.md +2 -0
  215. package/pack/.claude/skills/rite-explain/SKILL.md +2 -0
  216. package/pack/.claude/skills/rite-frame/SKILL.md +4 -0
  217. package/pack/.claude/skills/rite-handoff/SKILL.md +8 -1
  218. package/pack/.claude/skills/rite-learn/SKILL.md +2 -0
  219. package/pack/.claude/skills/rite-plan/SKILL.md +7 -3
  220. package/pack/.claude/skills/rite-plan/reference/anti-patterns.md +1 -3
  221. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +1 -3
  222. package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +3 -1
  223. package/pack/.claude/skills/rite-polish/SKILL.md +13 -2
  224. package/pack/.claude/skills/rite-polish/reference/code.md +6 -1
  225. package/pack/.claude/skills/rite-polish/reference/ledger.md +3 -1
  226. package/pack/.claude/skills/rite-pov/SKILL.md +2 -0
  227. package/pack/.claude/skills/rite-pr-feedback/SKILL.md +2 -0
  228. package/pack/.claude/skills/rite-pressure-test/SKILL.md +2 -0
  229. package/pack/.claude/skills/rite-prototype/SKILL.md +2 -0
  230. package/pack/.claude/skills/rite-prove/SKILL.md +17 -3
  231. package/pack/.claude/skills/rite-prove/reference/test-command-discovery.md +6 -0
  232. package/pack/.claude/skills/rite-quick/SKILL.md +7 -1
  233. package/pack/.claude/skills/rite-resolve/SKILL.md +2 -0
  234. package/pack/.claude/skills/rite-review/SKILL.md +5 -1
  235. package/pack/.claude/skills/rite-review/reference/performance-checklist.md +14 -3
  236. package/pack/.claude/skills/rite-seal/SKILL.md +27 -3
  237. package/pack/.claude/skills/rite-seal/reference/go-no-go.md +1 -0
  238. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +3 -1
  239. package/pack/.claude/skills/rite-ship/SKILL.md +5 -1
  240. package/pack/.claude/skills/rite-spec/SKILL.md +10 -3
  241. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +5 -0
  242. package/pack/.claude/skills/rite-status/SKILL.md +9 -0
  243. package/pack/.claude/skills/rite-temper/SKILL.md +5 -1
  244. package/pack/.claude/skills/rite-upgrade/SKILL.md +9 -1
  245. package/pack/.claude/skills/rite-vet/SKILL.md +29 -9
  246. package/pack/.claude/skills/rite-vet/reference/anti-patterns.md +1 -3
  247. package/pack/.claude/skills/rite-vet/reference/artifacts.md +20 -3
  248. package/pack/.claude/skills/rite-vet/reference/depth.md +1 -3
  249. package/pack/.claude/skills/rite-vet/reference/review-axes.md +6 -3
  250. package/pack/.claude/skills/rite-watch-pr/SKILL.md +2 -0
  251. package/pack/.claude/skills/rite-zoom-out/SKILL.md +2 -0
  252. package/pack/generated/claude/agents/devrites-code-reviewer.md +17 -1
  253. package/pack/generated/claude/agents/devrites-devex-reviewer.md +1 -1
  254. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +1 -1
  255. package/pack/generated/claude/agents/devrites-evidence-scout.md +1 -1
  256. package/pack/generated/claude/agents/devrites-frontend-reviewer.md +1 -1
  257. package/pack/generated/claude/agents/devrites-performance-reviewer.md +1 -1
  258. package/pack/generated/claude/agents/devrites-plan-drafter.md +1 -1
  259. package/pack/generated/claude/agents/devrites-plan-reviewer.md +1 -1
  260. package/pack/generated/claude/agents/devrites-proof-runner.md +1 -1
  261. package/pack/generated/claude/agents/devrites-retrospector.md +1 -1
  262. package/pack/generated/claude/agents/devrites-security-auditor.md +23 -1
  263. package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +13 -3
  264. package/pack/generated/claude/agents/devrites-slice-wright.md +1 -1
  265. package/pack/generated/claude/agents/devrites-spec-reviewer.md +1 -1
  266. package/pack/generated/claude/agents/devrites-strategy-reviewer.md +1 -1
  267. package/pack/generated/claude/agents/devrites-test-analyst.md +1 -1
  268. package/pack/generated/claude/agents/devrites-upgrade-planner.md +1 -1
  269. package/pack/generated/claude/settings.json +39 -2
  270. package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +2 -0
  271. package/pack/generated/claude/skills/devrites-audit/SKILL.md +9 -0
  272. package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +2 -0
  273. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +2 -0
  274. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +2 -0
  275. package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +2 -0
  276. package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +4 -0
  277. package/pack/generated/claude/skills/devrites-frontend-craft/reference/shape.md +5 -0
  278. package/pack/generated/claude/skills/devrites-interview/SKILL.md +5 -0
  279. package/pack/generated/claude/skills/devrites-lib/SKILL.md +40 -5
  280. package/pack/generated/claude/skills/devrites-lib/reference/candidate-integrity.md +17 -0
  281. package/pack/generated/claude/skills/devrites-lib/reference/orchestration-profiles.md +20 -0
  282. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -4
  283. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +24 -1
  284. package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +10 -0
  285. package/pack/generated/claude/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +2 -0
  286. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +2 -0
  287. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +21 -1
  288. package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +2 -0
  289. package/pack/generated/claude/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
  290. package/pack/generated/claude/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
  291. package/pack/generated/claude/skills/devrites-lib/reference/standards/audit-coverage.md +103 -0
  292. package/pack/generated/claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -0
  293. package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +11 -0
  294. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-navigation.md +71 -4
  295. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +67 -7
  296. package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +9 -4
  297. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +20 -3
  298. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +10 -1
  299. package/pack/generated/claude/skills/devrites-lib/reference/standards/data-integrity.md +24 -2
  300. package/pack/generated/claude/skills/devrites-lib/reference/standards/debug-recovery.md +14 -0
  301. package/pack/generated/claude/skills/devrites-lib/reference/standards/definition-of-done.md +6 -0
  302. package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +18 -0
  303. package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +2 -0
  304. package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +2 -0
  305. package/pack/generated/claude/skills/devrites-lib/reference/standards/documentation.md +12 -0
  306. package/pack/generated/claude/skills/devrites-lib/reference/standards/duplicate-code.md +118 -0
  307. package/pack/generated/claude/skills/devrites-lib/reference/standards/edge-case-trace.md +2 -0
  308. package/pack/generated/claude/skills/devrites-lib/reference/standards/elicitation.md +29 -0
  309. package/pack/generated/claude/skills/devrites-lib/reference/standards/error-handling.md +2 -0
  310. package/pack/generated/claude/skills/devrites-lib/reference/standards/gates.md +117 -0
  311. package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +2 -0
  312. package/pack/generated/claude/skills/devrites-lib/reference/standards/glossary.md +40 -0
  313. package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +16 -0
  314. package/pack/generated/claude/skills/devrites-lib/reference/standards/integration-reliability.md +19 -0
  315. package/pack/generated/claude/skills/devrites-lib/reference/standards/loop-operations.md +32 -1
  316. package/pack/generated/claude/skills/devrites-lib/reference/standards/observability.md +2 -0
  317. package/pack/generated/claude/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -0
  318. package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +2 -0
  319. package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +8 -1
  320. package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +14 -0
  321. package/pack/generated/claude/skills/devrites-lib/reference/standards/prose-style.md +3 -0
  322. package/pack/generated/claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +4 -0
  323. package/pack/generated/claude/skills/devrites-lib/reference/standards/repository-topology.md +2 -0
  324. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/README.md +23 -0
  325. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
  326. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/default.md +42 -0
  327. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/go.md +47 -0
  328. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/python.md +46 -0
  329. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/shell.md +40 -0
  330. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/ts-js.md +54 -0
  331. package/pack/generated/claude/skills/devrites-lib/reference/standards/review-checklist.md +2 -0
  332. package/pack/generated/claude/skills/devrites-lib/reference/standards/security-checklist.md +2 -0
  333. package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +58 -6
  334. package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +48 -0
  335. package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +18 -4
  336. package/pack/generated/claude/skills/devrites-lib/reference/standards/test-proof-checklist.md +5 -0
  337. package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +19 -2
  338. package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +12 -0
  339. package/pack/generated/claude/skills/devrites-lib/reference/standards/verification-methods.md +110 -0
  340. package/pack/generated/claude/skills/devrites-lib/reference/standards/windows.md +51 -0
  341. package/pack/generated/claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  342. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +28 -3
  343. package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +3 -1
  344. package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +2 -0
  345. package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +2 -0
  346. package/pack/generated/claude/skills/rite/SKILL.md +2 -0
  347. package/pack/generated/claude/skills/rite-adopt/SKILL.md +2 -0
  348. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +6 -1
  349. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +7 -1
  350. package/pack/generated/claude/skills/rite-build/SKILL.md +28 -14
  351. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +6 -0
  352. package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +11 -2
  353. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +8 -4
  354. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +34 -8
  355. package/pack/generated/claude/skills/rite-clarify/SKILL.md +4 -0
  356. package/pack/generated/claude/skills/rite-converge/SKILL.md +14 -2
  357. package/pack/generated/claude/skills/rite-customize/SKILL.md +2 -0
  358. package/pack/generated/claude/skills/rite-define/SKILL.md +8 -2
  359. package/pack/generated/claude/skills/rite-doctor/SKILL.md +6 -1
  360. package/pack/generated/claude/skills/rite-dogfood/SKILL.md +2 -0
  361. package/pack/generated/claude/skills/rite-explain/SKILL.md +2 -0
  362. package/pack/generated/claude/skills/rite-frame/SKILL.md +4 -0
  363. package/pack/generated/claude/skills/rite-handoff/SKILL.md +8 -1
  364. package/pack/generated/claude/skills/rite-learn/SKILL.md +2 -0
  365. package/pack/generated/claude/skills/rite-plan/SKILL.md +6 -0
  366. package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +3 -1
  367. package/pack/generated/claude/skills/rite-polish/SKILL.md +13 -2
  368. package/pack/generated/claude/skills/rite-polish/reference/code.md +6 -1
  369. package/pack/generated/claude/skills/rite-polish/reference/ledger.md +3 -1
  370. package/pack/generated/claude/skills/rite-pov/SKILL.md +2 -0
  371. package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +2 -0
  372. package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +2 -0
  373. package/pack/generated/claude/skills/rite-prototype/SKILL.md +2 -0
  374. package/pack/generated/claude/skills/rite-prove/SKILL.md +17 -3
  375. package/pack/generated/claude/skills/rite-prove/reference/test-command-discovery.md +6 -0
  376. package/pack/generated/claude/skills/rite-quick/SKILL.md +7 -1
  377. package/pack/generated/claude/skills/rite-resolve/SKILL.md +2 -0
  378. package/pack/generated/claude/skills/rite-review/SKILL.md +5 -1
  379. package/pack/generated/claude/skills/rite-review/reference/performance-checklist.md +14 -3
  380. package/pack/generated/claude/skills/rite-seal/SKILL.md +27 -3
  381. package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +1 -0
  382. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +3 -1
  383. package/pack/generated/claude/skills/rite-ship/SKILL.md +5 -1
  384. package/pack/generated/claude/skills/rite-spec/SKILL.md +10 -3
  385. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +5 -0
  386. package/pack/generated/claude/skills/rite-status/SKILL.md +9 -0
  387. package/pack/generated/claude/skills/rite-temper/SKILL.md +5 -1
  388. package/pack/generated/claude/skills/rite-upgrade/SKILL.md +9 -1
  389. package/pack/generated/claude/skills/rite-vet/SKILL.md +28 -6
  390. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +19 -0
  391. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +5 -0
  392. package/pack/generated/claude/skills/rite-watch-pr/SKILL.md +2 -0
  393. package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +2 -0
  394. package/pack/generated/codex/agents/devrites-code-reviewer.toml +16 -0
  395. package/pack/generated/codex/agents/devrites-security-auditor.toml +22 -0
  396. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +12 -2
  397. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +2 -0
  398. package/pack/generated/codex/skills/devrites-audit/SKILL.md +9 -0
  399. package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +2 -0
  400. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +2 -0
  401. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +2 -0
  402. package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +2 -0
  403. package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +4 -0
  404. package/pack/generated/codex/skills/devrites-frontend-craft/reference/shape.md +5 -0
  405. package/pack/generated/codex/skills/devrites-interview/SKILL.md +5 -0
  406. package/pack/generated/codex/skills/devrites-lib/SKILL.md +40 -5
  407. package/pack/generated/codex/skills/devrites-lib/reference/candidate-integrity.md +17 -0
  408. package/pack/generated/codex/skills/devrites-lib/reference/orchestration-profiles.md +20 -0
  409. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +36 -4
  410. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +24 -1
  411. package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +10 -0
  412. package/pack/generated/codex/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +2 -0
  413. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +2 -0
  414. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +21 -1
  415. package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +2 -0
  416. package/pack/generated/codex/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
  417. package/pack/generated/codex/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
  418. package/pack/generated/codex/skills/devrites-lib/reference/standards/audit-coverage.md +103 -0
  419. package/pack/generated/codex/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -0
  420. package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +11 -0
  421. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-navigation.md +71 -4
  422. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +67 -7
  423. package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +9 -4
  424. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +20 -3
  425. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +10 -1
  426. package/pack/generated/codex/skills/devrites-lib/reference/standards/data-integrity.md +24 -2
  427. package/pack/generated/codex/skills/devrites-lib/reference/standards/debug-recovery.md +14 -0
  428. package/pack/generated/codex/skills/devrites-lib/reference/standards/definition-of-done.md +6 -0
  429. package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +18 -0
  430. package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +2 -0
  431. package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +2 -0
  432. package/pack/generated/codex/skills/devrites-lib/reference/standards/documentation.md +12 -0
  433. package/pack/generated/codex/skills/devrites-lib/reference/standards/duplicate-code.md +118 -0
  434. package/pack/generated/codex/skills/devrites-lib/reference/standards/edge-case-trace.md +2 -0
  435. package/pack/generated/codex/skills/devrites-lib/reference/standards/elicitation.md +29 -0
  436. package/pack/generated/codex/skills/devrites-lib/reference/standards/error-handling.md +2 -0
  437. package/pack/generated/codex/skills/devrites-lib/reference/standards/gates.md +117 -0
  438. package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +2 -0
  439. package/pack/generated/codex/skills/devrites-lib/reference/standards/glossary.md +40 -0
  440. package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +16 -0
  441. package/pack/generated/codex/skills/devrites-lib/reference/standards/integration-reliability.md +19 -0
  442. package/pack/generated/codex/skills/devrites-lib/reference/standards/loop-operations.md +32 -1
  443. package/pack/generated/codex/skills/devrites-lib/reference/standards/observability.md +2 -0
  444. package/pack/generated/codex/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -0
  445. package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +2 -0
  446. package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +8 -1
  447. package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +14 -0
  448. package/pack/generated/codex/skills/devrites-lib/reference/standards/prose-style.md +3 -0
  449. package/pack/generated/codex/skills/devrites-lib/reference/standards/release/ship-checklist.md +4 -0
  450. package/pack/generated/codex/skills/devrites-lib/reference/standards/repository-topology.md +2 -0
  451. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/README.md +23 -0
  452. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
  453. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/default.md +42 -0
  454. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/go.md +47 -0
  455. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/python.md +46 -0
  456. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/shell.md +40 -0
  457. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/ts-js.md +54 -0
  458. package/pack/generated/codex/skills/devrites-lib/reference/standards/review-checklist.md +2 -0
  459. package/pack/generated/codex/skills/devrites-lib/reference/standards/security-checklist.md +2 -0
  460. package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +58 -6
  461. package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +48 -0
  462. package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +18 -4
  463. package/pack/generated/codex/skills/devrites-lib/reference/standards/test-proof-checklist.md +5 -0
  464. package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +19 -2
  465. package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +12 -0
  466. package/pack/generated/codex/skills/devrites-lib/reference/standards/verification-methods.md +110 -0
  467. package/pack/generated/codex/skills/devrites-lib/reference/standards/windows.md +51 -0
  468. package/pack/generated/codex/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  469. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +28 -3
  470. package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +3 -1
  471. package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +2 -0
  472. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +2 -0
  473. package/pack/generated/codex/skills/rite/SKILL.md +2 -0
  474. package/pack/generated/codex/skills/rite-adopt/SKILL.md +2 -0
  475. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +6 -1
  476. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +7 -1
  477. package/pack/generated/codex/skills/rite-build/SKILL.md +28 -14
  478. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +6 -0
  479. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +11 -2
  480. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +8 -4
  481. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +34 -8
  482. package/pack/generated/codex/skills/rite-clarify/SKILL.md +4 -0
  483. package/pack/generated/codex/skills/rite-converge/SKILL.md +14 -2
  484. package/pack/generated/codex/skills/rite-customize/SKILL.md +2 -0
  485. package/pack/generated/codex/skills/rite-define/SKILL.md +8 -2
  486. package/pack/generated/codex/skills/rite-doctor/SKILL.md +6 -1
  487. package/pack/generated/codex/skills/rite-dogfood/SKILL.md +2 -0
  488. package/pack/generated/codex/skills/rite-explain/SKILL.md +2 -0
  489. package/pack/generated/codex/skills/rite-frame/SKILL.md +4 -0
  490. package/pack/generated/codex/skills/rite-handoff/SKILL.md +8 -1
  491. package/pack/generated/codex/skills/rite-learn/SKILL.md +2 -0
  492. package/pack/generated/codex/skills/rite-plan/SKILL.md +6 -0
  493. package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +3 -1
  494. package/pack/generated/codex/skills/rite-polish/SKILL.md +13 -2
  495. package/pack/generated/codex/skills/rite-polish/reference/code.md +6 -1
  496. package/pack/generated/codex/skills/rite-polish/reference/ledger.md +3 -1
  497. package/pack/generated/codex/skills/rite-pov/SKILL.md +2 -0
  498. package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +2 -0
  499. package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +2 -0
  500. package/pack/generated/codex/skills/rite-prototype/SKILL.md +2 -0
  501. package/pack/generated/codex/skills/rite-prove/SKILL.md +17 -3
  502. package/pack/generated/codex/skills/rite-prove/reference/test-command-discovery.md +6 -0
  503. package/pack/generated/codex/skills/rite-quick/SKILL.md +7 -1
  504. package/pack/generated/codex/skills/rite-resolve/SKILL.md +2 -0
  505. package/pack/generated/codex/skills/rite-review/SKILL.md +5 -1
  506. package/pack/generated/codex/skills/rite-review/reference/performance-checklist.md +14 -3
  507. package/pack/generated/codex/skills/rite-seal/SKILL.md +27 -3
  508. package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +1 -0
  509. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +3 -1
  510. package/pack/generated/codex/skills/rite-ship/SKILL.md +5 -1
  511. package/pack/generated/codex/skills/rite-spec/SKILL.md +10 -3
  512. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +5 -0
  513. package/pack/generated/codex/skills/rite-status/SKILL.md +9 -0
  514. package/pack/generated/codex/skills/rite-temper/SKILL.md +5 -1
  515. package/pack/generated/codex/skills/rite-upgrade/SKILL.md +9 -1
  516. package/pack/generated/codex/skills/rite-vet/SKILL.md +28 -6
  517. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +19 -0
  518. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +5 -0
  519. package/pack/generated/codex/skills/rite-watch-pr/SKILL.md +2 -0
  520. package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +2 -0
  521. package/pack/generated/devin/agents/devrites-code-reviewer.md +16 -0
  522. package/pack/generated/devin/agents/devrites-security-auditor.md +22 -0
  523. package/pack/generated/devin/agents/devrites-simplifier-reviewer.md +12 -2
  524. package/pack/generated/devin/skills/devrites-api-interface/SKILL.md +2 -0
  525. package/pack/generated/devin/skills/devrites-audit/SKILL.md +9 -0
  526. package/pack/generated/devin/skills/devrites-browser-proof/SKILL.md +2 -0
  527. package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +2 -0
  528. package/pack/generated/devin/skills/devrites-doubt/SKILL.md +2 -0
  529. package/pack/generated/devin/skills/devrites-frontend-craft/SKILL.md +2 -0
  530. package/pack/generated/devin/skills/devrites-frontend-craft/reference/design-references.md +4 -0
  531. package/pack/generated/devin/skills/devrites-frontend-craft/reference/shape.md +5 -0
  532. package/pack/generated/devin/skills/devrites-interview/SKILL.md +5 -0
  533. package/pack/generated/devin/skills/devrites-lib/SKILL.md +40 -5
  534. package/pack/generated/devin/skills/devrites-lib/reference/candidate-integrity.md +17 -0
  535. package/pack/generated/devin/skills/devrites-lib/reference/orchestration-profiles.md +20 -0
  536. package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +36 -4
  537. package/pack/generated/devin/skills/devrites-lib/reference/reply-contract.md +24 -1
  538. package/pack/generated/devin/skills/devrites-lib/reference/standards/README.md +10 -0
  539. package/pack/generated/devin/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +2 -0
  540. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +2 -0
  541. package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +21 -1
  542. package/pack/generated/devin/skills/devrites-lib/reference/standards/anti-patterns.md +2 -0
  543. package/pack/generated/devin/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
  544. package/pack/generated/devin/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
  545. package/pack/generated/devin/skills/devrites-lib/reference/standards/audit-coverage.md +103 -0
  546. package/pack/generated/devin/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -0
  547. package/pack/generated/devin/skills/devrites-lib/reference/standards/ci-cd.md +11 -0
  548. package/pack/generated/devin/skills/devrites-lib/reference/standards/code-navigation.md +71 -4
  549. package/pack/generated/devin/skills/devrites-lib/reference/standards/code-review.md +67 -7
  550. package/pack/generated/devin/skills/devrites-lib/reference/standards/coding-style.md +9 -4
  551. package/pack/generated/devin/skills/devrites-lib/reference/standards/context-hygiene.md +20 -3
  552. package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +10 -1
  553. package/pack/generated/devin/skills/devrites-lib/reference/standards/data-integrity.md +24 -2
  554. package/pack/generated/devin/skills/devrites-lib/reference/standards/debug-recovery.md +14 -0
  555. package/pack/generated/devin/skills/devrites-lib/reference/standards/definition-of-done.md +6 -0
  556. package/pack/generated/devin/skills/devrites-lib/reference/standards/deprecation.md +18 -0
  557. package/pack/generated/devin/skills/devrites-lib/reference/standards/developer-experience.md +2 -0
  558. package/pack/generated/devin/skills/devrites-lib/reference/standards/development-workflow.md +2 -0
  559. package/pack/generated/devin/skills/devrites-lib/reference/standards/documentation.md +12 -0
  560. package/pack/generated/devin/skills/devrites-lib/reference/standards/duplicate-code.md +118 -0
  561. package/pack/generated/devin/skills/devrites-lib/reference/standards/edge-case-trace.md +2 -0
  562. package/pack/generated/devin/skills/devrites-lib/reference/standards/elicitation.md +29 -0
  563. package/pack/generated/devin/skills/devrites-lib/reference/standards/error-handling.md +2 -0
  564. package/pack/generated/devin/skills/devrites-lib/reference/standards/gates.md +117 -0
  565. package/pack/generated/devin/skills/devrites-lib/reference/standards/git-workflow.md +2 -0
  566. package/pack/generated/devin/skills/devrites-lib/reference/standards/glossary.md +40 -0
  567. package/pack/generated/devin/skills/devrites-lib/reference/standards/hooks.md +16 -0
  568. package/pack/generated/devin/skills/devrites-lib/reference/standards/integration-reliability.md +19 -0
  569. package/pack/generated/devin/skills/devrites-lib/reference/standards/loop-operations.md +32 -1
  570. package/pack/generated/devin/skills/devrites-lib/reference/standards/observability.md +2 -0
  571. package/pack/generated/devin/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -0
  572. package/pack/generated/devin/skills/devrites-lib/reference/standards/patterns.md +2 -0
  573. package/pack/generated/devin/skills/devrites-lib/reference/standards/performance.md +8 -1
  574. package/pack/generated/devin/skills/devrites-lib/reference/standards/principles.md +14 -0
  575. package/pack/generated/devin/skills/devrites-lib/reference/standards/prose-style.md +3 -0
  576. package/pack/generated/devin/skills/devrites-lib/reference/standards/release/ship-checklist.md +4 -0
  577. package/pack/generated/devin/skills/devrites-lib/reference/standards/repository-topology.md +2 -0
  578. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/README.md +23 -0
  579. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
  580. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/default.md +42 -0
  581. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/go.md +47 -0
  582. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/python.md +46 -0
  583. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/shell.md +40 -0
  584. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/ts-js.md +54 -0
  585. package/pack/generated/devin/skills/devrites-lib/reference/standards/review-checklist.md +2 -0
  586. package/pack/generated/devin/skills/devrites-lib/reference/standards/security-checklist.md +2 -0
  587. package/pack/generated/devin/skills/devrites-lib/reference/standards/security.md +58 -6
  588. package/pack/generated/devin/skills/devrites-lib/reference/standards/skill-authoring.md +48 -0
  589. package/pack/generated/devin/skills/devrites-lib/reference/standards/spec-grammar.md +18 -4
  590. package/pack/generated/devin/skills/devrites-lib/reference/standards/test-proof-checklist.md +5 -0
  591. package/pack/generated/devin/skills/devrites-lib/reference/standards/testing.md +19 -2
  592. package/pack/generated/devin/skills/devrites-lib/reference/standards/tooling.md +12 -0
  593. package/pack/generated/devin/skills/devrites-lib/reference/standards/verification-methods.md +110 -0
  594. package/pack/generated/devin/skills/devrites-lib/reference/standards/windows.md +51 -0
  595. package/pack/generated/devin/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  596. package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +28 -3
  597. package/pack/generated/devin/skills/devrites-prose-craft/SKILL.md +3 -1
  598. package/pack/generated/devin/skills/devrites-source-driven/SKILL.md +2 -0
  599. package/pack/generated/devin/skills/devrites-ux-shape/SKILL.md +2 -0
  600. package/pack/generated/devin/skills/rite/SKILL.md +2 -0
  601. package/pack/generated/devin/skills/rite-adopt/SKILL.md +2 -0
  602. package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +6 -1
  603. package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +7 -1
  604. package/pack/generated/devin/skills/rite-build/SKILL.md +28 -14
  605. package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +6 -0
  606. package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +11 -2
  607. package/pack/generated/devin/skills/rite-build/reference/phase-contract.md +8 -4
  608. package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +34 -8
  609. package/pack/generated/devin/skills/rite-clarify/SKILL.md +4 -0
  610. package/pack/generated/devin/skills/rite-converge/SKILL.md +14 -2
  611. package/pack/generated/devin/skills/rite-customize/SKILL.md +2 -0
  612. package/pack/generated/devin/skills/rite-define/SKILL.md +8 -2
  613. package/pack/generated/devin/skills/rite-doctor/SKILL.md +6 -1
  614. package/pack/generated/devin/skills/rite-dogfood/SKILL.md +2 -0
  615. package/pack/generated/devin/skills/rite-explain/SKILL.md +2 -0
  616. package/pack/generated/devin/skills/rite-frame/SKILL.md +4 -0
  617. package/pack/generated/devin/skills/rite-handoff/SKILL.md +8 -1
  618. package/pack/generated/devin/skills/rite-learn/SKILL.md +2 -0
  619. package/pack/generated/devin/skills/rite-plan/SKILL.md +6 -0
  620. package/pack/generated/devin/skills/rite-plan/reference/task-breakdown.md +3 -1
  621. package/pack/generated/devin/skills/rite-polish/SKILL.md +13 -2
  622. package/pack/generated/devin/skills/rite-polish/reference/code.md +6 -1
  623. package/pack/generated/devin/skills/rite-polish/reference/ledger.md +3 -1
  624. package/pack/generated/devin/skills/rite-pov/SKILL.md +2 -0
  625. package/pack/generated/devin/skills/rite-pr-feedback/SKILL.md +2 -0
  626. package/pack/generated/devin/skills/rite-pressure-test/SKILL.md +2 -0
  627. package/pack/generated/devin/skills/rite-prototype/SKILL.md +2 -0
  628. package/pack/generated/devin/skills/rite-prove/SKILL.md +17 -3
  629. package/pack/generated/devin/skills/rite-prove/reference/test-command-discovery.md +6 -0
  630. package/pack/generated/devin/skills/rite-quick/SKILL.md +7 -1
  631. package/pack/generated/devin/skills/rite-resolve/SKILL.md +2 -0
  632. package/pack/generated/devin/skills/rite-review/SKILL.md +5 -1
  633. package/pack/generated/devin/skills/rite-review/reference/performance-checklist.md +14 -3
  634. package/pack/generated/devin/skills/rite-seal/SKILL.md +27 -3
  635. package/pack/generated/devin/skills/rite-seal/reference/go-no-go.md +1 -0
  636. package/pack/generated/devin/skills/rite-seal/reference/phase-contract.md +3 -1
  637. package/pack/generated/devin/skills/rite-ship/SKILL.md +5 -1
  638. package/pack/generated/devin/skills/rite-spec/SKILL.md +10 -3
  639. package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +5 -0
  640. package/pack/generated/devin/skills/rite-status/SKILL.md +9 -0
  641. package/pack/generated/devin/skills/rite-temper/SKILL.md +5 -1
  642. package/pack/generated/devin/skills/rite-upgrade/SKILL.md +9 -1
  643. package/pack/generated/devin/skills/rite-vet/SKILL.md +28 -6
  644. package/pack/generated/devin/skills/rite-vet/reference/artifacts.md +19 -0
  645. package/pack/generated/devin/skills/rite-vet/reference/review-axes.md +5 -0
  646. package/pack/generated/devin/skills/rite-watch-pr/SKILL.md +2 -0
  647. package/pack/generated/devin/skills/rite-zoom-out/SKILL.md +2 -0
  648. package/pack/generated/omp/agents/devrites-code-reviewer.md +16 -0
  649. package/pack/generated/omp/agents/devrites-security-auditor.md +22 -0
  650. package/pack/generated/omp/agents/devrites-simplifier-reviewer.md +12 -2
  651. package/pack/generated/omp/skills/devrites-api-interface/SKILL.md +2 -0
  652. package/pack/generated/omp/skills/devrites-audit/SKILL.md +9 -0
  653. package/pack/generated/omp/skills/devrites-browser-proof/SKILL.md +2 -0
  654. package/pack/generated/omp/skills/devrites-debug-recovery/SKILL.md +2 -0
  655. package/pack/generated/omp/skills/devrites-doubt/SKILL.md +2 -0
  656. package/pack/generated/omp/skills/devrites-frontend-craft/SKILL.md +2 -0
  657. package/pack/generated/omp/skills/devrites-frontend-craft/reference/design-references.md +4 -0
  658. package/pack/generated/omp/skills/devrites-frontend-craft/reference/shape.md +5 -0
  659. package/pack/generated/omp/skills/devrites-interview/SKILL.md +5 -0
  660. package/pack/generated/omp/skills/devrites-lib/SKILL.md +40 -5
  661. package/pack/generated/omp/skills/devrites-lib/reference/candidate-integrity.md +17 -0
  662. package/pack/generated/omp/skills/devrites-lib/reference/orchestration-profiles.md +20 -0
  663. package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +36 -4
  664. package/pack/generated/omp/skills/devrites-lib/reference/reply-contract.md +24 -1
  665. package/pack/generated/omp/skills/devrites-lib/reference/standards/README.md +10 -0
  666. package/pack/generated/omp/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +2 -0
  667. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +2 -0
  668. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +21 -1
  669. package/pack/generated/omp/skills/devrites-lib/reference/standards/anti-patterns.md +2 -0
  670. package/pack/generated/omp/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
  671. package/pack/generated/omp/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
  672. package/pack/generated/omp/skills/devrites-lib/reference/standards/audit-coverage.md +103 -0
  673. package/pack/generated/omp/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -0
  674. package/pack/generated/omp/skills/devrites-lib/reference/standards/ci-cd.md +11 -0
  675. package/pack/generated/omp/skills/devrites-lib/reference/standards/code-navigation.md +71 -4
  676. package/pack/generated/omp/skills/devrites-lib/reference/standards/code-review.md +67 -7
  677. package/pack/generated/omp/skills/devrites-lib/reference/standards/coding-style.md +9 -4
  678. package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +20 -3
  679. package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +10 -1
  680. package/pack/generated/omp/skills/devrites-lib/reference/standards/data-integrity.md +24 -2
  681. package/pack/generated/omp/skills/devrites-lib/reference/standards/debug-recovery.md +14 -0
  682. package/pack/generated/omp/skills/devrites-lib/reference/standards/definition-of-done.md +6 -0
  683. package/pack/generated/omp/skills/devrites-lib/reference/standards/deprecation.md +18 -0
  684. package/pack/generated/omp/skills/devrites-lib/reference/standards/developer-experience.md +2 -0
  685. package/pack/generated/omp/skills/devrites-lib/reference/standards/development-workflow.md +2 -0
  686. package/pack/generated/omp/skills/devrites-lib/reference/standards/documentation.md +12 -0
  687. package/pack/generated/omp/skills/devrites-lib/reference/standards/duplicate-code.md +118 -0
  688. package/pack/generated/omp/skills/devrites-lib/reference/standards/edge-case-trace.md +2 -0
  689. package/pack/generated/omp/skills/devrites-lib/reference/standards/elicitation.md +29 -0
  690. package/pack/generated/omp/skills/devrites-lib/reference/standards/error-handling.md +2 -0
  691. package/pack/generated/omp/skills/devrites-lib/reference/standards/gates.md +117 -0
  692. package/pack/generated/omp/skills/devrites-lib/reference/standards/git-workflow.md +2 -0
  693. package/pack/generated/omp/skills/devrites-lib/reference/standards/glossary.md +40 -0
  694. package/pack/generated/omp/skills/devrites-lib/reference/standards/hooks.md +16 -0
  695. package/pack/generated/omp/skills/devrites-lib/reference/standards/integration-reliability.md +19 -0
  696. package/pack/generated/omp/skills/devrites-lib/reference/standards/loop-operations.md +32 -1
  697. package/pack/generated/omp/skills/devrites-lib/reference/standards/observability.md +2 -0
  698. package/pack/generated/omp/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -0
  699. package/pack/generated/omp/skills/devrites-lib/reference/standards/patterns.md +2 -0
  700. package/pack/generated/omp/skills/devrites-lib/reference/standards/performance.md +8 -1
  701. package/pack/generated/omp/skills/devrites-lib/reference/standards/principles.md +14 -0
  702. package/pack/generated/omp/skills/devrites-lib/reference/standards/prose-style.md +3 -0
  703. package/pack/generated/omp/skills/devrites-lib/reference/standards/release/ship-checklist.md +4 -0
  704. package/pack/generated/omp/skills/devrites-lib/reference/standards/repository-topology.md +2 -0
  705. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/README.md +23 -0
  706. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
  707. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/default.md +42 -0
  708. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/go.md +47 -0
  709. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/python.md +46 -0
  710. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/shell.md +40 -0
  711. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/ts-js.md +54 -0
  712. package/pack/generated/omp/skills/devrites-lib/reference/standards/review-checklist.md +2 -0
  713. package/pack/generated/omp/skills/devrites-lib/reference/standards/security-checklist.md +2 -0
  714. package/pack/generated/omp/skills/devrites-lib/reference/standards/security.md +58 -6
  715. package/pack/generated/omp/skills/devrites-lib/reference/standards/skill-authoring.md +48 -0
  716. package/pack/generated/omp/skills/devrites-lib/reference/standards/spec-grammar.md +18 -4
  717. package/pack/generated/omp/skills/devrites-lib/reference/standards/test-proof-checklist.md +5 -0
  718. package/pack/generated/omp/skills/devrites-lib/reference/standards/testing.md +19 -2
  719. package/pack/generated/omp/skills/devrites-lib/reference/standards/tooling.md +12 -0
  720. package/pack/generated/omp/skills/devrites-lib/reference/standards/verification-methods.md +110 -0
  721. package/pack/generated/omp/skills/devrites-lib/reference/standards/windows.md +51 -0
  722. package/pack/generated/omp/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  723. package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +28 -3
  724. package/pack/generated/omp/skills/devrites-prose-craft/SKILL.md +3 -1
  725. package/pack/generated/omp/skills/devrites-source-driven/SKILL.md +2 -0
  726. package/pack/generated/omp/skills/devrites-ux-shape/SKILL.md +2 -0
  727. package/pack/generated/omp/skills/rite/SKILL.md +2 -0
  728. package/pack/generated/omp/skills/rite-adopt/SKILL.md +2 -0
  729. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +6 -1
  730. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +7 -1
  731. package/pack/generated/omp/skills/rite-build/SKILL.md +28 -14
  732. package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +6 -0
  733. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +11 -2
  734. package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +8 -4
  735. package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +34 -8
  736. package/pack/generated/omp/skills/rite-clarify/SKILL.md +4 -0
  737. package/pack/generated/omp/skills/rite-converge/SKILL.md +14 -2
  738. package/pack/generated/omp/skills/rite-customize/SKILL.md +2 -0
  739. package/pack/generated/omp/skills/rite-define/SKILL.md +8 -2
  740. package/pack/generated/omp/skills/rite-doctor/SKILL.md +6 -1
  741. package/pack/generated/omp/skills/rite-dogfood/SKILL.md +2 -0
  742. package/pack/generated/omp/skills/rite-explain/SKILL.md +2 -0
  743. package/pack/generated/omp/skills/rite-frame/SKILL.md +4 -0
  744. package/pack/generated/omp/skills/rite-handoff/SKILL.md +8 -1
  745. package/pack/generated/omp/skills/rite-learn/SKILL.md +2 -0
  746. package/pack/generated/omp/skills/rite-plan/SKILL.md +6 -0
  747. package/pack/generated/omp/skills/rite-plan/reference/task-breakdown.md +3 -1
  748. package/pack/generated/omp/skills/rite-polish/SKILL.md +13 -2
  749. package/pack/generated/omp/skills/rite-polish/reference/code.md +6 -1
  750. package/pack/generated/omp/skills/rite-polish/reference/ledger.md +3 -1
  751. package/pack/generated/omp/skills/rite-pov/SKILL.md +2 -0
  752. package/pack/generated/omp/skills/rite-pr-feedback/SKILL.md +2 -0
  753. package/pack/generated/omp/skills/rite-pressure-test/SKILL.md +2 -0
  754. package/pack/generated/omp/skills/rite-prototype/SKILL.md +2 -0
  755. package/pack/generated/omp/skills/rite-prove/SKILL.md +17 -3
  756. package/pack/generated/omp/skills/rite-prove/reference/test-command-discovery.md +6 -0
  757. package/pack/generated/omp/skills/rite-quick/SKILL.md +7 -1
  758. package/pack/generated/omp/skills/rite-resolve/SKILL.md +2 -0
  759. package/pack/generated/omp/skills/rite-review/SKILL.md +5 -1
  760. package/pack/generated/omp/skills/rite-review/reference/performance-checklist.md +14 -3
  761. package/pack/generated/omp/skills/rite-seal/SKILL.md +27 -3
  762. package/pack/generated/omp/skills/rite-seal/reference/go-no-go.md +1 -0
  763. package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +3 -1
  764. package/pack/generated/omp/skills/rite-ship/SKILL.md +5 -1
  765. package/pack/generated/omp/skills/rite-spec/SKILL.md +10 -3
  766. package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +5 -0
  767. package/pack/generated/omp/skills/rite-status/SKILL.md +9 -0
  768. package/pack/generated/omp/skills/rite-temper/SKILL.md +5 -1
  769. package/pack/generated/omp/skills/rite-upgrade/SKILL.md +9 -1
  770. package/pack/generated/omp/skills/rite-vet/SKILL.md +28 -6
  771. package/pack/generated/omp/skills/rite-vet/reference/artifacts.md +19 -0
  772. package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +5 -0
  773. package/pack/generated/omp/skills/rite-watch-pr/SKILL.md +2 -0
  774. package/pack/generated/omp/skills/rite-zoom-out/SKILL.md +2 -0
  775. package/pack/generated/pi/agents/devrites-code-reviewer.md +16 -0
  776. package/pack/generated/pi/agents/devrites-security-auditor.md +22 -0
  777. package/pack/generated/pi/agents/devrites-simplifier-reviewer.md +12 -2
  778. package/pack/generated/pi/skills/devrites-api-interface/SKILL.md +2 -0
  779. package/pack/generated/pi/skills/devrites-audit/SKILL.md +9 -0
  780. package/pack/generated/pi/skills/devrites-browser-proof/SKILL.md +2 -0
  781. package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +2 -0
  782. package/pack/generated/pi/skills/devrites-doubt/SKILL.md +2 -0
  783. package/pack/generated/pi/skills/devrites-frontend-craft/SKILL.md +2 -0
  784. package/pack/generated/pi/skills/devrites-frontend-craft/reference/design-references.md +4 -0
  785. package/pack/generated/pi/skills/devrites-frontend-craft/reference/shape.md +5 -0
  786. package/pack/generated/pi/skills/devrites-interview/SKILL.md +5 -0
  787. package/pack/generated/pi/skills/devrites-lib/SKILL.md +40 -5
  788. package/pack/generated/pi/skills/devrites-lib/reference/candidate-integrity.md +17 -0
  789. package/pack/generated/pi/skills/devrites-lib/reference/orchestration-profiles.md +20 -0
  790. package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +36 -4
  791. package/pack/generated/pi/skills/devrites-lib/reference/reply-contract.md +24 -1
  792. package/pack/generated/pi/skills/devrites-lib/reference/standards/README.md +10 -0
  793. package/pack/generated/pi/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +2 -0
  794. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +2 -0
  795. package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +21 -1
  796. package/pack/generated/pi/skills/devrites-lib/reference/standards/anti-patterns.md +2 -0
  797. package/pack/generated/pi/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
  798. package/pack/generated/pi/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
  799. package/pack/generated/pi/skills/devrites-lib/reference/standards/audit-coverage.md +103 -0
  800. package/pack/generated/pi/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -0
  801. package/pack/generated/pi/skills/devrites-lib/reference/standards/ci-cd.md +11 -0
  802. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-navigation.md +71 -4
  803. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-review.md +67 -7
  804. package/pack/generated/pi/skills/devrites-lib/reference/standards/coding-style.md +9 -4
  805. package/pack/generated/pi/skills/devrites-lib/reference/standards/context-hygiene.md +20 -3
  806. package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +10 -1
  807. package/pack/generated/pi/skills/devrites-lib/reference/standards/data-integrity.md +24 -2
  808. package/pack/generated/pi/skills/devrites-lib/reference/standards/debug-recovery.md +14 -0
  809. package/pack/generated/pi/skills/devrites-lib/reference/standards/definition-of-done.md +6 -0
  810. package/pack/generated/pi/skills/devrites-lib/reference/standards/deprecation.md +18 -0
  811. package/pack/generated/pi/skills/devrites-lib/reference/standards/developer-experience.md +2 -0
  812. package/pack/generated/pi/skills/devrites-lib/reference/standards/development-workflow.md +2 -0
  813. package/pack/generated/pi/skills/devrites-lib/reference/standards/documentation.md +12 -0
  814. package/pack/generated/pi/skills/devrites-lib/reference/standards/duplicate-code.md +118 -0
  815. package/pack/generated/pi/skills/devrites-lib/reference/standards/edge-case-trace.md +2 -0
  816. package/pack/generated/pi/skills/devrites-lib/reference/standards/elicitation.md +29 -0
  817. package/pack/generated/pi/skills/devrites-lib/reference/standards/error-handling.md +2 -0
  818. package/pack/generated/pi/skills/devrites-lib/reference/standards/gates.md +117 -0
  819. package/pack/generated/pi/skills/devrites-lib/reference/standards/git-workflow.md +2 -0
  820. package/pack/generated/pi/skills/devrites-lib/reference/standards/glossary.md +40 -0
  821. package/pack/generated/pi/skills/devrites-lib/reference/standards/hooks.md +16 -0
  822. package/pack/generated/pi/skills/devrites-lib/reference/standards/integration-reliability.md +19 -0
  823. package/pack/generated/pi/skills/devrites-lib/reference/standards/loop-operations.md +32 -1
  824. package/pack/generated/pi/skills/devrites-lib/reference/standards/observability.md +2 -0
  825. package/pack/generated/pi/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -0
  826. package/pack/generated/pi/skills/devrites-lib/reference/standards/patterns.md +2 -0
  827. package/pack/generated/pi/skills/devrites-lib/reference/standards/performance.md +8 -1
  828. package/pack/generated/pi/skills/devrites-lib/reference/standards/principles.md +14 -0
  829. package/pack/generated/pi/skills/devrites-lib/reference/standards/prose-style.md +3 -0
  830. package/pack/generated/pi/skills/devrites-lib/reference/standards/release/ship-checklist.md +4 -0
  831. package/pack/generated/pi/skills/devrites-lib/reference/standards/repository-topology.md +2 -0
  832. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/README.md +23 -0
  833. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
  834. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/default.md +42 -0
  835. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/go.md +47 -0
  836. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/python.md +46 -0
  837. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/shell.md +40 -0
  838. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/ts-js.md +54 -0
  839. package/pack/generated/pi/skills/devrites-lib/reference/standards/review-checklist.md +2 -0
  840. package/pack/generated/pi/skills/devrites-lib/reference/standards/security-checklist.md +2 -0
  841. package/pack/generated/pi/skills/devrites-lib/reference/standards/security.md +58 -6
  842. package/pack/generated/pi/skills/devrites-lib/reference/standards/skill-authoring.md +48 -0
  843. package/pack/generated/pi/skills/devrites-lib/reference/standards/spec-grammar.md +18 -4
  844. package/pack/generated/pi/skills/devrites-lib/reference/standards/test-proof-checklist.md +5 -0
  845. package/pack/generated/pi/skills/devrites-lib/reference/standards/testing.md +19 -2
  846. package/pack/generated/pi/skills/devrites-lib/reference/standards/tooling.md +12 -0
  847. package/pack/generated/pi/skills/devrites-lib/reference/standards/verification-methods.md +110 -0
  848. package/pack/generated/pi/skills/devrites-lib/reference/standards/windows.md +51 -0
  849. package/pack/generated/pi/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  850. package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +28 -3
  851. package/pack/generated/pi/skills/devrites-prose-craft/SKILL.md +3 -1
  852. package/pack/generated/pi/skills/devrites-source-driven/SKILL.md +2 -0
  853. package/pack/generated/pi/skills/devrites-ux-shape/SKILL.md +2 -0
  854. package/pack/generated/pi/skills/rite/SKILL.md +2 -0
  855. package/pack/generated/pi/skills/rite-adopt/SKILL.md +2 -0
  856. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +6 -1
  857. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +7 -1
  858. package/pack/generated/pi/skills/rite-build/SKILL.md +28 -14
  859. package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +6 -0
  860. package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +11 -2
  861. package/pack/generated/pi/skills/rite-build/reference/phase-contract.md +8 -4
  862. package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +34 -8
  863. package/pack/generated/pi/skills/rite-clarify/SKILL.md +4 -0
  864. package/pack/generated/pi/skills/rite-converge/SKILL.md +14 -2
  865. package/pack/generated/pi/skills/rite-customize/SKILL.md +2 -0
  866. package/pack/generated/pi/skills/rite-define/SKILL.md +8 -2
  867. package/pack/generated/pi/skills/rite-doctor/SKILL.md +6 -1
  868. package/pack/generated/pi/skills/rite-dogfood/SKILL.md +2 -0
  869. package/pack/generated/pi/skills/rite-explain/SKILL.md +2 -0
  870. package/pack/generated/pi/skills/rite-frame/SKILL.md +4 -0
  871. package/pack/generated/pi/skills/rite-handoff/SKILL.md +8 -1
  872. package/pack/generated/pi/skills/rite-learn/SKILL.md +2 -0
  873. package/pack/generated/pi/skills/rite-plan/SKILL.md +6 -0
  874. package/pack/generated/pi/skills/rite-plan/reference/task-breakdown.md +3 -1
  875. package/pack/generated/pi/skills/rite-polish/SKILL.md +13 -2
  876. package/pack/generated/pi/skills/rite-polish/reference/code.md +6 -1
  877. package/pack/generated/pi/skills/rite-polish/reference/ledger.md +3 -1
  878. package/pack/generated/pi/skills/rite-pov/SKILL.md +2 -0
  879. package/pack/generated/pi/skills/rite-pr-feedback/SKILL.md +2 -0
  880. package/pack/generated/pi/skills/rite-pressure-test/SKILL.md +2 -0
  881. package/pack/generated/pi/skills/rite-prototype/SKILL.md +2 -0
  882. package/pack/generated/pi/skills/rite-prove/SKILL.md +17 -3
  883. package/pack/generated/pi/skills/rite-prove/reference/test-command-discovery.md +6 -0
  884. package/pack/generated/pi/skills/rite-quick/SKILL.md +7 -1
  885. package/pack/generated/pi/skills/rite-resolve/SKILL.md +2 -0
  886. package/pack/generated/pi/skills/rite-review/SKILL.md +5 -1
  887. package/pack/generated/pi/skills/rite-review/reference/performance-checklist.md +14 -3
  888. package/pack/generated/pi/skills/rite-seal/SKILL.md +27 -3
  889. package/pack/generated/pi/skills/rite-seal/reference/go-no-go.md +1 -0
  890. package/pack/generated/pi/skills/rite-seal/reference/phase-contract.md +3 -1
  891. package/pack/generated/pi/skills/rite-ship/SKILL.md +5 -1
  892. package/pack/generated/pi/skills/rite-spec/SKILL.md +10 -3
  893. package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +5 -0
  894. package/pack/generated/pi/skills/rite-status/SKILL.md +9 -0
  895. package/pack/generated/pi/skills/rite-temper/SKILL.md +5 -1
  896. package/pack/generated/pi/skills/rite-upgrade/SKILL.md +9 -1
  897. package/pack/generated/pi/skills/rite-vet/SKILL.md +28 -6
  898. package/pack/generated/pi/skills/rite-vet/reference/artifacts.md +19 -0
  899. package/pack/generated/pi/skills/rite-vet/reference/review-axes.md +5 -0
  900. package/pack/generated/pi/skills/rite-watch-pr/SKILL.md +2 -0
  901. package/pack/generated/pi/skills/rite-zoom-out/SKILL.md +2 -0
  902. package/package.json +1 -1
  903. package/scripts/build-host-artifacts.sh +48 -2
@@ -0,0 +1,655 @@
1
+ package acceptance
2
+
3
+ import (
4
+ "context"
5
+ "errors"
6
+ "os"
7
+ "path/filepath"
8
+ "strings"
9
+ "testing"
10
+ "time"
11
+ )
12
+
13
+ // --- parsing -------------------------------------------------------------
14
+
15
+ func TestParseLedgerRunnableAndManualGates(t *testing.T) {
16
+ doc := ParseLedger(`# Gates
17
+
18
+ - [ ] AC-001: binary builds clean
19
+ CHECK: go build ./...
20
+ EXPECT: ok
21
+ CWD: engine
22
+ EVIDENCE: pending
23
+
24
+ - [x] AC-002: spec reviewed by a human
25
+ EVIDENCE: reviewed 2024-06-01 by ops
26
+ `)
27
+ if len(doc.Errors) != 0 {
28
+ t.Fatalf("errors=%v", doc.Errors)
29
+ }
30
+ if len(doc.Gates) != 2 {
31
+ t.Fatalf("gates=%d", len(doc.Gates))
32
+ }
33
+ runnable, manual := doc.Gates[0], doc.Gates[1]
34
+ if runnable.ID != "AC-001" || runnable.Check != "go build ./..." || runnable.Expect != "ok" || runnable.Cwd != "engine" {
35
+ t.Fatalf("runnable gate misparsed: %+v", runnable)
36
+ }
37
+ if runnable.Checked || runnable.Evidence != "pending" {
38
+ t.Fatalf("runnable state misparsed: %+v", runnable)
39
+ }
40
+ if manual.ID != "AC-002" || !manual.Checked || manual.Evidence != "reviewed 2024-06-01 by ops" {
41
+ t.Fatalf("manual gate misparsed: %+v", manual)
42
+ }
43
+ }
44
+
45
+ func TestParseLedgerIgnoresFencedExamples(t *testing.T) {
46
+ doc := ParseLedger(`# Gates
47
+
48
+ Example ledger, do not parse:
49
+
50
+ ` + "```markdown" + `
51
+ - [ ] FAKE-1: fenced gate
52
+ EVIDENCE: fenced evidence
53
+ ` + "```" + `
54
+
55
+ - [x] REAL-1: real gate
56
+ EVIDENCE: attested
57
+
58
+ ` + "```" + `
59
+ EVIDENCE: fenced attribute decoy
60
+ ` + "```" + `
61
+ `)
62
+ if len(doc.Errors) != 0 {
63
+ t.Fatalf("errors=%v", doc.Errors)
64
+ }
65
+ if len(doc.Gates) != 1 || doc.Gates[0].ID != "REAL-1" {
66
+ t.Fatalf("fenced gate leaked into parse: %+v", doc.Gates)
67
+ }
68
+ if doc.Gates[0].Evidence != "attested" {
69
+ t.Fatalf("fenced attribute decoy overwrote evidence: %q", doc.Gates[0].Evidence)
70
+ }
71
+ }
72
+
73
+ func TestParseLedgerErrors(t *testing.T) {
74
+ cases := map[string]string{
75
+ "empty": "# Gates\n",
76
+ "partial-check": "- [ ] G1: x\n CHECK: cmd\n",
77
+ "partial-expect": "- [ ] G1: x\n EXPECT: out\n",
78
+ "unindented-attr": "- [ ] G1: x\nCHECK: cmd\n EXPECT: out\n",
79
+ "orphan-attr": " EVIDENCE: nowhere\n- [ ] G1: x\n",
80
+ "duplicate-id": "- [ ] G1: a\n- [ ] G1: b\n",
81
+ "long-id": "- [ ] " + strings.Repeat("G", 65) + ": x\n",
82
+ "indented-abandon": "- [ ] G1: x\n ABANDON: G1 nope\n",
83
+ "abandon-unknown": "- [ ] G1: x\nABANDON: G2 gone\n",
84
+ "abandon-no-reason": "- [ ] G1: x\nABANDON: G1\n",
85
+ "absolute-cwd": "- [ ] G1: x\n CHECK: c\n EXPECT: o\n CWD: /etc\n",
86
+ "windows-abs-cwd": "- [ ] G1: x\n CHECK: c\n EXPECT: o\n CWD: C:\\tmp\n",
87
+ "traversal-cwd": "- [ ] G1: x\n CHECK: c\n EXPECT: o\n CWD: a/../b\n",
88
+ "bad-expect-pattern": "- [ ] G1: x\n CHECK: c\n EXPECT: /[/\n",
89
+ }
90
+ for name, text := range cases {
91
+ doc := ParseLedger(text)
92
+ if len(doc.Errors) == 0 {
93
+ t.Errorf("%s: expected parse error, got none", name)
94
+ }
95
+ }
96
+ }
97
+
98
+ func TestParseLedgerAbandonRecordsReason(t *testing.T) {
99
+ doc := ParseLedger("- [ ] G1: x\n- [ ] G2: y\n\nABANDON: G1 upstream API removed\n")
100
+ if len(doc.Errors) != 0 {
101
+ t.Fatalf("errors=%v", doc.Errors)
102
+ }
103
+ if doc.Abandoned["G1"] != "upstream API removed" {
104
+ t.Fatalf("abandoned=%v", doc.Abandoned)
105
+ }
106
+ }
107
+
108
+ func TestParseLedgerPreservesCRLF(t *testing.T) {
109
+ doc := ParseLedger("- [ ] G1: x\r\n EVIDENCE: pending\r\n")
110
+ if doc.Newline() != "\r\n" {
111
+ t.Fatalf("newline=%q", doc.Newline())
112
+ }
113
+ }
114
+
115
+ func TestCompileExpectForms(t *testing.T) {
116
+ sub, err := CompileExpect("all tests pass")
117
+ if err != nil || sub.Kind != "substring" || !sub.Matches("ok all tests pass ok") {
118
+ t.Fatalf("substring: %+v %v", sub, err)
119
+ }
120
+ re, err := CompileExpect(`/PASS \d+ files/`)
121
+ if err != nil || re.Kind != "regex" || !re.Matches("PASS 3 files") {
122
+ t.Fatalf("regex: %+v %v", re, err)
123
+ }
124
+ if re.PathLike {
125
+ t.Fatalf("non-path regex misflagged: %+v", re)
126
+ }
127
+ pathRe, err := CompileExpect(`/tmp/out\.txt/`)
128
+ if err != nil || !pathRe.PathLike {
129
+ t.Fatalf("path-like regex not flagged: %+v %v", pathRe, err)
130
+ }
131
+ ci, err := CompileExpect(`/success/i`)
132
+ if err != nil || !ci.Matches("SUCCESS") {
133
+ t.Fatalf("case-insensitive: %v", err)
134
+ }
135
+ if _, err := CompileExpect(""); err == nil {
136
+ t.Fatal("empty EXPECT must error")
137
+ }
138
+ // A /…/ form with non-flag trailing characters is a substring, not a
139
+ // regex — `/a/b/c` stays a usable literal path expectation.
140
+ subLiteral, err := CompileExpect(`/a/b/c`)
141
+ if err != nil || subLiteral.Kind != "substring" {
142
+ t.Fatalf("slash literal: %+v %v", subLiteral, err)
143
+ }
144
+ }
145
+
146
+ // --- state reduction ------------------------------------------------------
147
+
148
+ func runnableGate(id string, checked bool, evidence string) *Gate {
149
+ return &Gate{ID: id, Title: "outcome", Checked: checked, Check: "probe", Expect: "ok", Evidence: evidence}
150
+ }
151
+
152
+ func TestGateStateManual(t *testing.T) {
153
+ doc := &Document{Abandoned: map[string]string{}}
154
+ manual := &Gate{ID: "M1", Evidence: "pending"}
155
+ if got := GateState(manual, doc); got != StateUnmet {
156
+ t.Fatalf("unchecked manual=%s", got)
157
+ }
158
+ manual.Checked = true
159
+ if got := GateState(manual, doc); got != StateUnmet {
160
+ t.Fatalf("pending-evidence manual=%s", got)
161
+ }
162
+ manual.Evidence = "human verified on staging"
163
+ if got := GateState(manual, doc); got != StateMet {
164
+ t.Fatalf("attested manual=%s", got)
165
+ }
166
+ }
167
+
168
+ func TestGateStateRunnable(t *testing.T) {
169
+ doc := &Document{Abandoned: map[string]string{}}
170
+ gate := runnableGate("R1", false, "pending")
171
+ if got := GateState(gate, doc); got != StateUnmet {
172
+ t.Fatalf("unchecked=%s", got)
173
+ }
174
+ gate.Checked = true
175
+ gate.Evidence = "looks good to me"
176
+ if got := GateState(gate, doc); got != StateStaleUnmet {
177
+ t.Fatalf("prose evidence on runnable gate must be stale, got %s", got)
178
+ }
179
+ gate.Evidence = FormatEvidence(gate, OutputDigest("out"), 3, "2024-01-01T00:00:00Z")
180
+ if got := GateState(gate, doc); got != StateMet {
181
+ t.Fatalf("bound evidence=%s", got)
182
+ }
183
+ }
184
+
185
+ func TestGateStateDefinitionDriftStale(t *testing.T) {
186
+ doc := &Document{Abandoned: map[string]string{}}
187
+ gate := runnableGate("R1", true, "")
188
+ gate.Evidence = FormatEvidence(gate, OutputDigest("out"), 3, "t")
189
+ for _, mutate := range []func(*Gate){
190
+ func(g *Gate) { g.Check = "probe --verbose" },
191
+ func(g *Gate) { g.Expect = "ok2" },
192
+ func(g *Gate) { g.Cwd = "sub" },
193
+ } {
194
+ edited := *gate
195
+ mutate(&edited)
196
+ if got := GateState(&edited, doc); got != StateStaleUnmet {
197
+ t.Fatalf("edited definition must be stale, got %s", got)
198
+ }
199
+ }
200
+ }
201
+
202
+ func TestGateStateAbandonedWins(t *testing.T) {
203
+ doc := &Document{Abandoned: map[string]string{"R1": "vendor removed"}}
204
+ gate := runnableGate("R1", true, "")
205
+ gate.Evidence = FormatEvidence(gate, OutputDigest("o"), 1, "t")
206
+ if got := GateState(gate, doc); got != StateAbandoned {
207
+ t.Fatalf("abandoned=%s", got)
208
+ }
209
+ }
210
+
211
+ func TestReduceCountsAndIds(t *testing.T) {
212
+ doc := &Document{Abandoned: map[string]string{"G3": "handoff"}}
213
+ met := runnableGate("G1", true, "")
214
+ met.Evidence = FormatEvidence(met, OutputDigest("o"), 1, "t")
215
+ unmet := runnableGate("G2", false, "pending")
216
+ stale := runnableGate("G4", true, "stale prose")
217
+ doc.Gates = []*Gate{met, unmet, {ID: "G3", Title: "gone"}, stale}
218
+
219
+ red := doc.Reduce([]ApprovedCommand{{Command: "probe", Cwd: ""}})
220
+ if red.Total != 4 || red.Met != 1 || red.Unmet != 2 || red.Abandoned != 1 || red.Stale != 1 {
221
+ t.Fatalf("reduction=%+v", red)
222
+ }
223
+ if red.AllMet() || !red.HandoffRequired() {
224
+ t.Fatalf("verdict wrong: %+v", red)
225
+ }
226
+ // G2 and G4 are unmet runnable gates whose CHECK "probe" IS approved.
227
+ if len(red.UnapprIDs) != 0 {
228
+ t.Fatalf("unapproved=%v", red.UnapprIDs)
229
+ }
230
+ red = doc.Reduce([]ApprovedCommand{{Command: "other", Cwd: ""}})
231
+ if len(red.UnapprIDs) != 2 {
232
+ t.Fatalf("unapproved ids=%v", red.UnapprIDs)
233
+ }
234
+ // A nil approved surface (unreadable plan) reports no unapproved diagnostic.
235
+ red = doc.Reduce(nil)
236
+ if len(red.UnapprIDs) != 0 {
237
+ t.Fatalf("nil approved must not flag: %v", red.UnapprIDs)
238
+ }
239
+ }
240
+
241
+ func TestReduceAllMet(t *testing.T) {
242
+ doc := &Document{Abandoned: map[string]string{}}
243
+ gate := runnableGate("G1", true, "")
244
+ gate.Evidence = FormatEvidence(gate, OutputDigest("o"), 1, "t")
245
+ doc.Gates = []*Gate{gate}
246
+ if !doc.Reduce(nil).AllMet() {
247
+ t.Fatal("single met gate must reduce all-met")
248
+ }
249
+ }
250
+
251
+ // --- approval -------------------------------------------------------------
252
+
253
+ const testPlanPreflight = `# Test plan
254
+
255
+ ## Build-entry preflight
256
+
257
+ | Command | Cwd | Purpose |
258
+ | --- | --- | --- |
259
+ | go test ./internal/acceptance | engine | package tests |
260
+ | ./scripts/scan.sh \| tail -1 | repository | escaped pipe survives |
261
+ | make build | . | root convention |
262
+
263
+ ## Consumptive actions
264
+
265
+ | Command | Cwd |
266
+ | --- | --- |
267
+ | rm -rf dist | . |
268
+ `
269
+
270
+ func TestApprovedCommandsPreflightOnly(t *testing.T) {
271
+ approved := ApprovedCommands([]byte(testPlanPreflight))
272
+ if len(approved) != 3 {
273
+ t.Fatalf("approved=%+v", approved)
274
+ }
275
+ if !Approved("go test ./internal/acceptance", "engine", approved) {
276
+ t.Fatal("exact pair must approve")
277
+ }
278
+ if Approved("go test ./internal/acceptance", ".", approved) {
279
+ t.Fatal("same command, different cwd must not approve")
280
+ }
281
+ if !Approved(" go test ./internal/acceptance ", "engine/", approved) {
282
+ t.Fatal("whitespace/slash normalization must approve the same pair")
283
+ }
284
+ if Approved("rm -rf dist", ".", approved) {
285
+ t.Fatal("non-preflight section must not approve")
286
+ }
287
+ if !Approved("./scripts/scan.sh | tail -1", "root", approved) {
288
+ t.Fatal("escaped-pipe command and root cwd must approve")
289
+ }
290
+ }
291
+
292
+ func TestApprovedCommandsNoSection(t *testing.T) {
293
+ if approved := ApprovedCommands([]byte("# Plan\n\nno table\n")); len(approved) != 0 {
294
+ t.Fatalf("approved=%+v", approved)
295
+ }
296
+ if approved := ApprovedCommands(nil); approved != nil {
297
+ t.Fatalf("nil plan must approve nothing: %+v", approved)
298
+ }
299
+ }
300
+
301
+ func TestNormalizeApprovedCwd(t *testing.T) {
302
+ for _, root := range []string{"", ".", "./", "repository", "root", "repo", "n/a", "-", "`.`"} {
303
+ if got := normalizeApprovedCwd(root); got != "" {
304
+ t.Fatalf("root convention %q -> %q", root, got)
305
+ }
306
+ }
307
+ if got := normalizeApprovedCwd("engine/"); got != "engine" {
308
+ t.Fatalf("engine/ -> %q", got)
309
+ }
310
+ }
311
+
312
+ // --- execution ------------------------------------------------------------
313
+
314
+ func writeWorkspace(t *testing.T) (project, ledgerPath string) {
315
+ t.Helper()
316
+ project = t.TempDir()
317
+ root := filepath.Join(project, ".devrites")
318
+ work := filepath.Join(root, "work", "feat")
319
+ if err := os.MkdirAll(work, 0o755); err != nil {
320
+ t.Fatal(err)
321
+ }
322
+ return project, filepath.Join(work, GatesFile)
323
+ }
324
+
325
+ func writeLedger(t *testing.T, ledgerPath, body string) {
326
+ t.Helper()
327
+ if err := os.WriteFile(ledgerPath, []byte(body), 0o644); err != nil {
328
+ t.Fatal(err)
329
+ }
330
+ }
331
+
332
+ func TestRunGatesExecutesAndBindsEvidence(t *testing.T) {
333
+ project, ledgerPath := writeWorkspace(t)
334
+ writeLedger(t, ledgerPath, "- [ ] G1: probe prints marker\n CHECK: echo RUN-MARKER\n EXPECT: RUN-MARKER\n EVIDENCE: pending\n")
335
+ doc := ParseLedger(mustRead(t, ledgerPath))
336
+ approved := []ApprovedCommand{{Command: "echo RUN-MARKER", Cwd: ""}}
337
+
338
+ results := RunGates(context.Background(), project, ledgerPath, doc, approved, false, 10*time.Second)
339
+ if len(results) != 1 || !results[0].Ran || !results[0].Passed || results[0].WriteErr != nil {
340
+ t.Fatalf("results=%+v", results)
341
+ }
342
+ doc = ParseLedger(mustRead(t, ledgerPath))
343
+ if len(doc.Errors) != 0 {
344
+ t.Fatalf("rewritten ledger malformed: %v", doc.Errors)
345
+ }
346
+ gate := doc.Gates[0]
347
+ if !gate.Checked || !strings.HasPrefix(gate.Evidence, EvidenceMarker) {
348
+ t.Fatalf("ledger not updated: %+v", gate)
349
+ }
350
+ if GateState(gate, doc) != StateMet {
351
+ t.Fatalf("gate not met after run: %s", GateState(gate, doc))
352
+ }
353
+ // Already met: skipped without reverify.
354
+ results = RunGates(context.Background(), project, ledgerPath, doc, approved, false, 10*time.Second)
355
+ if !results[0].Passed || results[0].Ran {
356
+ t.Fatalf("met gate must skip: %+v", results[0])
357
+ }
358
+ // Reverify re-executes it.
359
+ results = RunGates(context.Background(), project, ledgerPath, doc, approved, true, 10*time.Second)
360
+ if !results[0].Ran || !results[0].Passed {
361
+ t.Fatalf("reverify must re-run: %+v", results[0])
362
+ }
363
+ }
364
+
365
+ func TestRunGatesFailureClearsBox(t *testing.T) {
366
+ project, ledgerPath := writeWorkspace(t)
367
+ writeLedger(t, ledgerPath, "- [x] G1: prior pass\n CHECK: echo nothing\n EXPECT: NEVER-PRESENT\n EVIDENCE: bogus\n")
368
+ doc := ParseLedger(mustRead(t, ledgerPath))
369
+ approved := []ApprovedCommand{{Command: "echo nothing", Cwd: ""}}
370
+
371
+ results := RunGates(context.Background(), project, ledgerPath, doc, approved, true, 10*time.Second)
372
+ if !results[0].Ran || results[0].Passed {
373
+ t.Fatalf("results=%+v", results)
374
+ }
375
+ doc = ParseLedger(mustRead(t, ledgerPath))
376
+ if doc.Gates[0].Checked || doc.Gates[0].Evidence != "pending" {
377
+ t.Fatalf("failed gate must uncheck and reset evidence: %+v", doc.Gates[0])
378
+ }
379
+ }
380
+
381
+ func TestRunGatesSkipsUnapprovedManualAbandoned(t *testing.T) {
382
+ project, ledgerPath := writeWorkspace(t)
383
+ writeLedger(t, ledgerPath,
384
+ "- [ ] G1: unvetted\n CHECK: echo hi\n EXPECT: hi\n EVIDENCE: pending\n"+
385
+ "- [ ] G2: judged\n EVIDENCE: pending\n"+
386
+ "- [ ] G3: gone\n CHECK: echo hi\n EXPECT: hi\n EVIDENCE: pending\n"+
387
+ "ABANDON: G3 removed upstream\n")
388
+ doc := ParseLedger(mustRead(t, ledgerPath))
389
+ results := RunGates(context.Background(), project, ledgerPath, doc, []ApprovedCommand{}, false, 10*time.Second)
390
+ if len(results) != 3 {
391
+ t.Fatalf("results=%+v", results)
392
+ }
393
+ for _, r := range results {
394
+ if r.Ran {
395
+ t.Fatalf("gate %s must not execute: %+v", r.ID, r)
396
+ }
397
+ }
398
+ // Ledger untouched: no evidence was written for skipped gates.
399
+ doc = ParseLedger(mustRead(t, ledgerPath))
400
+ for _, gate := range doc.Gates {
401
+ if gate.Checked {
402
+ t.Fatalf("skipped gate %s mutated", gate.ID)
403
+ }
404
+ }
405
+ }
406
+
407
+ func TestWriteResultDiscardsMovedOracle(t *testing.T) {
408
+ _, ledgerPath := writeWorkspace(t)
409
+ writeLedger(t, ledgerPath, "- [ ] G1: probe\n CHECK: echo hi\n EXPECT: hi\n EVIDENCE: pending\n")
410
+ doc := ParseLedger(mustRead(t, ledgerPath))
411
+ ran := doc.Gates[0]
412
+ // The oracle moves between execution and writeback.
413
+ writeLedger(t, ledgerPath, "- [ ] G1: probe\n CHECK: echo hi --verbose\n EXPECT: hi\n EVIDENCE: pending\n")
414
+ if err := writeResult(ledgerPath, ran, "evidence", true); !errors.Is(err, ErrOracleMoved) {
415
+ t.Fatalf("err=%v", err)
416
+ }
417
+ // The ledger still shows the new, unchecked definition.
418
+ doc = ParseLedger(mustRead(t, ledgerPath))
419
+ if doc.Gates[0].Checked || doc.Gates[0].Check != "echo hi --verbose" {
420
+ t.Fatalf("ledger clobbered: %+v", doc.Gates[0])
421
+ }
422
+ }
423
+
424
+ func TestWriteResultIgnoresFencedEvidenceDecoy(t *testing.T) {
425
+ _, ledgerPath := writeWorkspace(t)
426
+ writeLedger(t, ledgerPath,
427
+ "- [ ] G1: probe\n CHECK: echo hi\n EXPECT: hi\n\n"+
428
+ "```\n EVIDENCE: fenced decoy\n```\n")
429
+ doc := ParseLedger(mustRead(t, ledgerPath))
430
+ if err := writeResult(ledgerPath, doc.Gates[0], "automatic-evidence=v1; def=x; exit=0; expect=matched; output-sha256=y; output-bytes=1; at=t", true); err != nil {
431
+ t.Fatal(err)
432
+ }
433
+ text := mustRead(t, ledgerPath)
434
+ if strings.Contains(text, "fenced decoy") == false {
435
+ t.Fatalf("fenced decoy must survive:\n%s", text)
436
+ }
437
+ doc = ParseLedger(text)
438
+ if doc.Gates[0].Evidence == "fenced decoy" || !strings.HasPrefix(doc.Gates[0].Evidence, EvidenceMarker) {
439
+ t.Fatalf("evidence misrouted: %q", doc.Gates[0].Evidence)
440
+ }
441
+ }
442
+
443
+ func TestReadLedgerFileBounds(t *testing.T) {
444
+ _, ledgerPath := writeWorkspace(t)
445
+ if _, err := ReadLedgerFile(ledgerPath); err == nil {
446
+ t.Fatal("missing ledger must error")
447
+ }
448
+ dir := filepath.Join(filepath.Dir(ledgerPath), "notafile")
449
+ if err := os.Mkdir(dir, 0o755); err != nil {
450
+ t.Fatal(err)
451
+ }
452
+ if _, err := ReadLedgerFile(dir); err == nil {
453
+ t.Fatal("non-regular file must error")
454
+ }
455
+ }
456
+
457
+ // --- lint -----------------------------------------------------------------
458
+
459
+ func TestLintFindings(t *testing.T) {
460
+ doc := ParseLedger(`- [ ] G1: echo done
461
+ CHECK: echo done
462
+ EXPECT: pass
463
+
464
+ - [ ] G2: Improve coverage by 40 percent
465
+ EVIDENCE: pending
466
+
467
+ - [ ] G3: real probe
468
+ CHECK: ./probe.sh
469
+ EXPECT: /tmp/out\.txt/
470
+
471
+ - [ ] G4: unvetted
472
+ CHECK: ./other.sh
473
+ EXPECT: marker
474
+ `)
475
+ if len(doc.Errors) != 0 {
476
+ t.Fatalf("errors=%v", doc.Errors)
477
+ }
478
+ findings := LintLedger(doc, []ApprovedCommand{{Command: "./probe.sh", Cwd: ""}})
479
+ rules := map[string]string{}
480
+ for _, f := range findings {
481
+ rules[f.Gate+":"+f.Rule] = f.Level
482
+ }
483
+ for _, want := range []string{
484
+ "G1:tautological-check", "G1:weak-expect",
485
+ "G2:manual-gate", "G2:unmeasured-number", "G2:activity-not-outcome",
486
+ "G3:path-read-as-regex",
487
+ "G4:unapproved-check",
488
+ } {
489
+ if _, ok := rules[want]; !ok {
490
+ t.Errorf("missing finding %s in %+v", want, rules)
491
+ }
492
+ }
493
+ if rules["G4:unapproved-check"] != "error" {
494
+ t.Fatalf("unapproved must be an error: %+v", rules)
495
+ }
496
+ // 3 of 4 live gates runnable → no mostly-manual warning.
497
+ if _, ok := rules[":mostly-manual"]; ok {
498
+ t.Fatalf("unexpected mostly-manual: %+v", rules)
499
+ }
500
+ }
501
+
502
+ func TestLintDuplicateOracle(t *testing.T) {
503
+ doc := ParseLedger(`- [ ] G1: first
504
+ CHECK: ./probe.sh
505
+ EXPECT: marker
506
+
507
+ - [ ] G2: same oracle, reworded title
508
+ CHECK: ./probe.sh
509
+ EXPECT: marker
510
+
511
+ - [ ] G3: different oracle
512
+ CHECK: ./probe.sh
513
+ EXPECT: other
514
+
515
+ - [ ] G4: abandoned duplicate
516
+ CHECK: ./probe.sh
517
+ EXPECT: marker
518
+
519
+ - [ ] G5: same check in another cwd
520
+ CHECK: ./probe.sh
521
+ EXPECT: marker
522
+ CWD: engine
523
+
524
+ ABANDON: G4 superseded
525
+ `)
526
+ if len(doc.Errors) != 0 {
527
+ t.Fatalf("errors=%v", doc.Errors)
528
+ }
529
+ findings := LintLedger(doc, []ApprovedCommand{{Command: "./probe.sh", Cwd: ""}, {Command: "./probe.sh", Cwd: "engine"}})
530
+ rules := map[string]bool{}
531
+ for _, f := range findings {
532
+ rules[f.Gate+":"+f.Rule] = true
533
+ }
534
+ if !rules["G2:duplicate-oracle"] {
535
+ t.Errorf("missing G2 duplicate-oracle in %+v", rules)
536
+ }
537
+ for _, absent := range []string{"G3:duplicate-oracle", "G4:duplicate-oracle", "G5:duplicate-oracle"} {
538
+ if rules[absent] {
539
+ t.Errorf("unexpected %s in %+v", absent, rules)
540
+ }
541
+ }
542
+ }
543
+
544
+ func TestLintMostlyManualAndCounts(t *testing.T) {
545
+ doc := ParseLedger("- [ ] G1: a\n CHECK: c\n EXPECT: o\n- [ ] G2: b\n- [ ] G3: c\n")
546
+ findings := LintLedger(doc, nil)
547
+ var mostlyManual bool
548
+ for _, f := range findings {
549
+ if f.Rule == "mostly-manual" {
550
+ mostlyManual = true
551
+ }
552
+ }
553
+ if !mostlyManual {
554
+ t.Fatalf("findings=%+v", findings)
555
+ }
556
+ errs, warns := LintCounts(findings)
557
+ if errs != 0 || warns == 0 {
558
+ t.Fatalf("counts=%d/%d", errs, warns)
559
+ }
560
+ }
561
+
562
+ // --- scaffold -------------------------------------------------------------
563
+
564
+ func TestScaffoldLedger(t *testing.T) {
565
+ empty := ScaffoldLedger("feat", nil)
566
+ doc := ParseLedger(empty)
567
+ if len(doc.Errors) != 0 || len(doc.Gates) != 1 || doc.Gates[0].ID != "G1" {
568
+ t.Fatalf("placeholder scaffold malformed: %v %+v", doc.Errors, doc.Gates)
569
+ }
570
+ spec := []byte("# Spec\n\n- AC-002 first\n- AC-001 second\n- AC-002 repeated\n")
571
+ scaffolded := ScaffoldLedger("feat", spec)
572
+ doc = ParseLedger(scaffolded)
573
+ if len(doc.Errors) != 0 || len(doc.Gates) != 2 || doc.Gates[0].ID != "AC-002" || doc.Gates[1].ID != "AC-001" {
574
+ t.Fatalf("scaffolded gates: %v %+v", doc.Errors, doc.Gates)
575
+ }
576
+ }
577
+
578
+ // --- CLI ------------------------------------------------------------------
579
+
580
+ func TestRunCLIStatusAndScaffold(t *testing.T) {
581
+ project := t.TempDir()
582
+ root := filepath.Join(project, ".devrites")
583
+ work := filepath.Join(root, "work", "feat")
584
+ if err := os.MkdirAll(work, 0o755); err != nil {
585
+ t.Fatal(err)
586
+ }
587
+ var stdout, stderr strings.Builder
588
+
589
+ if code := Run(root, []string{"bogus"}, &stdout, &stderr); code != ExitUsage {
590
+ t.Fatalf("unknown sub=%d", code)
591
+ }
592
+ if code := Run(root, []string{"status", "feat"}, &stdout, &stderr); code != ExitBlocked {
593
+ t.Fatalf("missing ledger status=%d", code)
594
+ }
595
+ if code := Run(root, []string{"scaffold", "feat"}, &stdout, &stderr); code != ExitOK {
596
+ t.Fatalf("scaffold=%d stderr=%q", code, stderr.String())
597
+ }
598
+ if !strings.Contains(stdout.String(), "created:") {
599
+ t.Fatalf("scaffold stdout=%q", stdout.String())
600
+ }
601
+ // Scaffold never clobbers.
602
+ if code := Run(root, []string{"scaffold", "feat"}, &stdout, &stderr); code != ExitBlocked {
603
+ t.Fatalf("second scaffold=%d", code)
604
+ }
605
+ // The scaffolded ledger parses and reports all-unmet.
606
+ stdout.Reset()
607
+ if code := Run(root, []string{"status", "feat"}, &stdout, &stderr); code != ExitBlocked {
608
+ t.Fatalf("status=%d out=%q", code, stdout.String())
609
+ }
610
+ if !strings.Contains(stdout.String(), "result: not-met") {
611
+ t.Fatalf("status stdout=%q", stdout.String())
612
+ }
613
+ }
614
+
615
+ func TestRunCLIAttestAbandon(t *testing.T) {
616
+ project := t.TempDir()
617
+ root := filepath.Join(project, ".devrites")
618
+ work := filepath.Join(root, "work", "feat")
619
+ if err := os.MkdirAll(work, 0o755); err != nil {
620
+ t.Fatal(err)
621
+ }
622
+ writeLedger(t, filepath.Join(work, GatesFile),
623
+ "- [ ] M1: human judged\n EVIDENCE: pending\n- [ ] M2: other\n EVIDENCE: pending\n")
624
+ var stdout, stderr strings.Builder
625
+
626
+ if code := Run(root, []string{"attest", "feat", "M1", "verified", "on staging"}, &stdout, &stderr); code != ExitOK {
627
+ t.Fatalf("attest=%d stderr=%q", code, stderr.String())
628
+ }
629
+ if code := Run(root, []string{"attest", "feat", "M9", "nope"}, &stdout, &stderr); code != ExitBlocked {
630
+ t.Fatalf("unknown gate attest=%d", code)
631
+ }
632
+ if code := Run(root, []string{"abandon", "feat", "M2", "vendor gone"}, &stdout, &stderr); code != ExitOK {
633
+ t.Fatalf("abandon=%d stderr=%q", code, stderr.String())
634
+ }
635
+ // Abandoned gates refuse attestation.
636
+ if code := Run(root, []string{"attest", "feat", "M2", "too late"}, &stdout, &stderr); code != ExitBlocked {
637
+ t.Fatalf("abandoned attest=%d", code)
638
+ }
639
+ stdout.Reset()
640
+ if code := Run(root, []string{"status", "feat"}, &stdout, &stderr); code != ExitBlocked {
641
+ t.Fatalf("status=%d", code)
642
+ }
643
+ if !strings.Contains(stdout.String(), "result: handoff") || !strings.Contains(stdout.String(), "handoff-id: M2") {
644
+ t.Fatalf("status stdout=%q", stdout.String())
645
+ }
646
+ }
647
+
648
+ func mustRead(t *testing.T, path string) string {
649
+ t.Helper()
650
+ raw, err := os.ReadFile(path)
651
+ if err != nil {
652
+ t.Fatal(err)
653
+ }
654
+ return string(raw)
655
+ }