@warpgogol/forge 1.2.2 → 2.1.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 (698) hide show
  1. package/AGENTS.md +1 -0
  2. package/README.md +33 -19
  3. package/README.uk.md +33 -19
  4. package/package.json +1 -1
  5. package/profiles/astro-typescript-turborepo.yaml +147 -0
  6. package/profiles/forge-shell.yaml +120 -1
  7. package/profiles/godot-csharp.yaml +280 -6
  8. package/profiles/phaser-turborepo.yaml +134 -0
  9. package/skills/_shared/fo-pipeline-conventions.md +55 -0
  10. package/skills/fo/fo-doc-audit/SKILL.md +2 -2
  11. package/skills/fo/fo-idea-i-just-want-to-see-the-plan/SKILL.md +2 -0
  12. package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +7 -3
  13. package/skills/fo/fo-idea-implement/SKILL.md +50 -46
  14. package/skills/fo/fo-session-retro/SKILL.md +2 -2
  15. package/dist/bin/cli.d.ts +0 -3
  16. package/dist/bin/cli.d.ts.map +0 -1
  17. package/dist/bin/cli.js +0 -292
  18. package/dist/bin/cli.js.map +0 -1
  19. package/dist/os/adr/adr.module.d.ts +0 -3
  20. package/dist/os/adr/adr.module.d.ts.map +0 -1
  21. package/dist/os/adr/adr.module.js +0 -145
  22. package/dist/os/adr/adr.module.js.map +0 -1
  23. package/dist/os/adr/frontmatter-io.d.ts +0 -12
  24. package/dist/os/adr/frontmatter-io.d.ts.map +0 -1
  25. package/dist/os/adr/frontmatter-io.js +0 -67
  26. package/dist/os/adr/frontmatter-io.js.map +0 -1
  27. package/dist/os/adr/handlers/archive.d.ts +0 -24
  28. package/dist/os/adr/handlers/archive.d.ts.map +0 -1
  29. package/dist/os/adr/handlers/archive.js +0 -194
  30. package/dist/os/adr/handlers/archive.js.map +0 -1
  31. package/dist/os/adr/handlers/implement-stamp.d.ts +0 -4
  32. package/dist/os/adr/handlers/implement-stamp.d.ts.map +0 -1
  33. package/dist/os/adr/handlers/implement-stamp.js +0 -258
  34. package/dist/os/adr/handlers/implement-stamp.js.map +0 -1
  35. package/dist/os/adr/handlers/list-create.d.ts +0 -5
  36. package/dist/os/adr/handlers/list-create.d.ts.map +0 -1
  37. package/dist/os/adr/handlers/list-create.js +0 -165
  38. package/dist/os/adr/handlers/list-create.js.map +0 -1
  39. package/dist/os/adr/handlers/validate.d.ts +0 -4
  40. package/dist/os/adr/handlers/validate.d.ts.map +0 -1
  41. package/dist/os/adr/handlers/validate.js +0 -265
  42. package/dist/os/adr/handlers/validate.js.map +0 -1
  43. package/dist/os/adr/index.d.ts +0 -8
  44. package/dist/os/adr/index.d.ts.map +0 -1
  45. package/dist/os/adr/index.js +0 -18
  46. package/dist/os/adr/index.js.map +0 -1
  47. package/dist/os/adr/types.d.ts +0 -75
  48. package/dist/os/adr/types.d.ts.map +0 -1
  49. package/dist/os/adr/types.js +0 -55
  50. package/dist/os/adr/types.js.map +0 -1
  51. package/dist/os/audit/audit.module.d.ts +0 -3
  52. package/dist/os/audit/audit.module.d.ts.map +0 -1
  53. package/dist/os/audit/audit.module.js +0 -44
  54. package/dist/os/audit/audit.module.js.map +0 -1
  55. package/dist/os/audit/frontmatter-io.d.ts +0 -12
  56. package/dist/os/audit/frontmatter-io.d.ts.map +0 -1
  57. package/dist/os/audit/frontmatter-io.js +0 -71
  58. package/dist/os/audit/frontmatter-io.js.map +0 -1
  59. package/dist/os/audit/handlers/archive.d.ts +0 -4
  60. package/dist/os/audit/handlers/archive.d.ts.map +0 -1
  61. package/dist/os/audit/handlers/archive.js +0 -207
  62. package/dist/os/audit/handlers/archive.js.map +0 -1
  63. package/dist/os/audit/index.d.ts +0 -6
  64. package/dist/os/audit/index.d.ts.map +0 -1
  65. package/dist/os/audit/index.js +0 -16
  66. package/dist/os/audit/index.js.map +0 -1
  67. package/dist/os/audit/types.d.ts +0 -12
  68. package/dist/os/audit/types.d.ts.map +0 -1
  69. package/dist/os/audit/types.js +0 -17
  70. package/dist/os/audit/types.js.map +0 -1
  71. package/dist/os/compass/compass.module.d.ts +0 -3
  72. package/dist/os/compass/compass.module.d.ts.map +0 -1
  73. package/dist/os/compass/compass.module.js +0 -166
  74. package/dist/os/compass/compass.module.js.map +0 -1
  75. package/dist/os/compass/handlers/compass-audit-handler.d.ts +0 -36
  76. package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +0 -1
  77. package/dist/os/compass/handlers/compass-audit-handler.js +0 -238
  78. package/dist/os/compass/handlers/compass-audit-handler.js.map +0 -1
  79. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +0 -19
  80. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +0 -1
  81. package/dist/os/compass/handlers/compass-change-summary-handler.js +0 -205
  82. package/dist/os/compass/handlers/compass-change-summary-handler.js.map +0 -1
  83. package/dist/os/compass/handlers/compass-inventory-handler.d.ts +0 -28
  84. package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +0 -1
  85. package/dist/os/compass/handlers/compass-inventory-handler.js +0 -213
  86. package/dist/os/compass/handlers/compass-inventory-handler.js.map +0 -1
  87. package/dist/os/compass/handlers/compass-inventory.d.ts +0 -30
  88. package/dist/os/compass/handlers/compass-inventory.d.ts.map +0 -1
  89. package/dist/os/compass/handlers/compass-inventory.js +0 -418
  90. package/dist/os/compass/handlers/compass-inventory.js.map +0 -1
  91. package/dist/os/compass/handlers/git-revision.d.ts +0 -8
  92. package/dist/os/compass/handlers/git-revision.d.ts.map +0 -1
  93. package/dist/os/compass/handlers/git-revision.js +0 -99
  94. package/dist/os/compass/handlers/git-revision.js.map +0 -1
  95. package/dist/os/compass/handlers/resolve-scan-root.d.ts +0 -3
  96. package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +0 -1
  97. package/dist/os/compass/handlers/resolve-scan-root.js +0 -57
  98. package/dist/os/compass/handlers/resolve-scan-root.js.map +0 -1
  99. package/dist/os/compass/index.d.ts +0 -8
  100. package/dist/os/compass/index.d.ts.map +0 -1
  101. package/dist/os/compass/index.js +0 -19
  102. package/dist/os/compass/index.js.map +0 -1
  103. package/dist/os/core/core.module.d.ts +0 -3
  104. package/dist/os/core/core.module.d.ts.map +0 -1
  105. package/dist/os/core/core.module.js +0 -758
  106. package/dist/os/core/core.module.js.map +0 -1
  107. package/dist/os/core/handlers/assets-check.d.ts +0 -19
  108. package/dist/os/core/handlers/assets-check.d.ts.map +0 -1
  109. package/dist/os/core/handlers/assets-check.js +0 -89
  110. package/dist/os/core/handlers/assets-check.js.map +0 -1
  111. package/dist/os/core/handlers/assets-helpers.d.ts +0 -28
  112. package/dist/os/core/handlers/assets-helpers.d.ts.map +0 -1
  113. package/dist/os/core/handlers/assets-helpers.js +0 -128
  114. package/dist/os/core/handlers/assets-helpers.js.map +0 -1
  115. package/dist/os/core/handlers/assets-list.d.ts +0 -9
  116. package/dist/os/core/handlers/assets-list.d.ts.map +0 -1
  117. package/dist/os/core/handlers/assets-list.js +0 -72
  118. package/dist/os/core/handlers/assets-list.js.map +0 -1
  119. package/dist/os/core/handlers/build.d.ts +0 -16
  120. package/dist/os/core/handlers/build.d.ts.map +0 -1
  121. package/dist/os/core/handlers/build.js +0 -123
  122. package/dist/os/core/handlers/build.js.map +0 -1
  123. package/dist/os/core/handlers/determinism-check.d.ts +0 -20
  124. package/dist/os/core/handlers/determinism-check.d.ts.map +0 -1
  125. package/dist/os/core/handlers/determinism-check.js +0 -289
  126. package/dist/os/core/handlers/determinism-check.js.map +0 -1
  127. package/dist/os/core/handlers/dev.d.ts +0 -10
  128. package/dist/os/core/handlers/dev.d.ts.map +0 -1
  129. package/dist/os/core/handlers/dev.js +0 -102
  130. package/dist/os/core/handlers/dev.js.map +0 -1
  131. package/dist/os/core/handlers/knowledge-compact.d.ts +0 -4
  132. package/dist/os/core/handlers/knowledge-compact.d.ts.map +0 -1
  133. package/dist/os/core/handlers/knowledge-compact.js +0 -198
  134. package/dist/os/core/handlers/knowledge-compact.js.map +0 -1
  135. package/dist/os/core/handlers/pinned-check.d.ts +0 -49
  136. package/dist/os/core/handlers/pinned-check.d.ts.map +0 -1
  137. package/dist/os/core/handlers/pinned-check.js +0 -159
  138. package/dist/os/core/handlers/pinned-check.js.map +0 -1
  139. package/dist/os/core/handlers/pinned-init.d.ts +0 -19
  140. package/dist/os/core/handlers/pinned-init.d.ts.map +0 -1
  141. package/dist/os/core/handlers/pinned-init.js +0 -283
  142. package/dist/os/core/handlers/pinned-init.js.map +0 -1
  143. package/dist/os/core/handlers/pinned-types.d.ts +0 -29
  144. package/dist/os/core/handlers/pinned-types.d.ts.map +0 -1
  145. package/dist/os/core/handlers/pinned-types.js +0 -16
  146. package/dist/os/core/handlers/pinned-types.js.map +0 -1
  147. package/dist/os/core/handlers/pinned-validate.d.ts +0 -4
  148. package/dist/os/core/handlers/pinned-validate.d.ts.map +0 -1
  149. package/dist/os/core/handlers/pinned-validate.js +0 -248
  150. package/dist/os/core/handlers/pinned-validate.js.map +0 -1
  151. package/dist/os/core/handlers/profile-resolve.d.ts +0 -13
  152. package/dist/os/core/handlers/profile-resolve.d.ts.map +0 -1
  153. package/dist/os/core/handlers/profile-resolve.js +0 -65
  154. package/dist/os/core/handlers/profile-resolve.js.map +0 -1
  155. package/dist/os/core/handlers/release-prepare.d.ts +0 -25
  156. package/dist/os/core/handlers/release-prepare.d.ts.map +0 -1
  157. package/dist/os/core/handlers/release-prepare.js +0 -228
  158. package/dist/os/core/handlers/release-prepare.js.map +0 -1
  159. package/dist/os/core/handlers/release-publish.d.ts +0 -13
  160. package/dist/os/core/handlers/release-publish.d.ts.map +0 -1
  161. package/dist/os/core/handlers/release-publish.js +0 -173
  162. package/dist/os/core/handlers/release-publish.js.map +0 -1
  163. package/dist/os/core/handlers/validate.d.ts +0 -26
  164. package/dist/os/core/handlers/validate.d.ts.map +0 -1
  165. package/dist/os/core/handlers/validate.js +0 -208
  166. package/dist/os/core/handlers/validate.js.map +0 -1
  167. package/dist/os/core/handlers/workspace-deps.d.ts +0 -12
  168. package/dist/os/core/handlers/workspace-deps.d.ts.map +0 -1
  169. package/dist/os/core/handlers/workspace-deps.js +0 -39
  170. package/dist/os/core/handlers/workspace-deps.js.map +0 -1
  171. package/dist/os/core/index.d.ts +0 -2
  172. package/dist/os/core/index.d.ts.map +0 -1
  173. package/dist/os/core/index.js +0 -13
  174. package/dist/os/core/index.js.map +0 -1
  175. package/dist/os/exploration/exploration.module.d.ts +0 -3
  176. package/dist/os/exploration/exploration.module.d.ts.map +0 -1
  177. package/dist/os/exploration/exploration.module.js +0 -82
  178. package/dist/os/exploration/exploration.module.js.map +0 -1
  179. package/dist/os/exploration/frontmatter-io.d.ts +0 -13
  180. package/dist/os/exploration/frontmatter-io.d.ts.map +0 -1
  181. package/dist/os/exploration/frontmatter-io.js +0 -61
  182. package/dist/os/exploration/frontmatter-io.js.map +0 -1
  183. package/dist/os/exploration/handlers/archive.d.ts +0 -4
  184. package/dist/os/exploration/handlers/archive.d.ts.map +0 -1
  185. package/dist/os/exploration/handlers/archive.js +0 -135
  186. package/dist/os/exploration/handlers/archive.js.map +0 -1
  187. package/dist/os/exploration/handlers/list.d.ts +0 -4
  188. package/dist/os/exploration/handlers/list.d.ts.map +0 -1
  189. package/dist/os/exploration/handlers/list.js +0 -56
  190. package/dist/os/exploration/handlers/list.js.map +0 -1
  191. package/dist/os/exploration/handlers/show.d.ts +0 -4
  192. package/dist/os/exploration/handlers/show.d.ts.map +0 -1
  193. package/dist/os/exploration/handlers/show.js +0 -91
  194. package/dist/os/exploration/handlers/show.js.map +0 -1
  195. package/dist/os/exploration/index.d.ts +0 -7
  196. package/dist/os/exploration/index.d.ts.map +0 -1
  197. package/dist/os/exploration/index.js +0 -17
  198. package/dist/os/exploration/index.js.map +0 -1
  199. package/dist/os/exploration/types.d.ts +0 -38
  200. package/dist/os/exploration/types.d.ts.map +0 -1
  201. package/dist/os/exploration/types.js +0 -23
  202. package/dist/os/exploration/types.js.map +0 -1
  203. package/dist/os/mission/handlers/archive.d.ts +0 -4
  204. package/dist/os/mission/handlers/archive.d.ts.map +0 -1
  205. package/dist/os/mission/handlers/archive.js +0 -356
  206. package/dist/os/mission/handlers/archive.js.map +0 -1
  207. package/dist/os/mission/index.d.ts +0 -2
  208. package/dist/os/mission/index.d.ts.map +0 -1
  209. package/dist/os/mission/index.js +0 -2
  210. package/dist/os/mission/index.js.map +0 -1
  211. package/dist/os/mission/mission.module.d.ts +0 -3
  212. package/dist/os/mission/mission.module.d.ts.map +0 -1
  213. package/dist/os/mission/mission.module.js +0 -44
  214. package/dist/os/mission/mission.module.js.map +0 -1
  215. package/dist/os/mission/types.d.ts +0 -23
  216. package/dist/os/mission/types.d.ts.map +0 -1
  217. package/dist/os/mission/types.js +0 -18
  218. package/dist/os/mission/types.js.map +0 -1
  219. package/dist/os/naming/index.d.ts +0 -3
  220. package/dist/os/naming/index.d.ts.map +0 -1
  221. package/dist/os/naming/index.js +0 -14
  222. package/dist/os/naming/index.js.map +0 -1
  223. package/dist/os/naming/naming-convention.d.ts +0 -25
  224. package/dist/os/naming/naming-convention.d.ts.map +0 -1
  225. package/dist/os/naming/naming-convention.js +0 -324
  226. package/dist/os/naming/naming-convention.js.map +0 -1
  227. package/dist/os/naming/naming.module.d.ts +0 -3
  228. package/dist/os/naming/naming.module.d.ts.map +0 -1
  229. package/dist/os/naming/naming.module.js +0 -33
  230. package/dist/os/naming/naming.module.js.map +0 -1
  231. package/dist/os/notes/index.d.ts +0 -2
  232. package/dist/os/notes/index.d.ts.map +0 -1
  233. package/dist/os/notes/index.js +0 -10
  234. package/dist/os/notes/index.js.map +0 -1
  235. package/dist/os/notes/notes.module.d.ts +0 -3
  236. package/dist/os/notes/notes.module.d.ts.map +0 -1
  237. package/dist/os/notes/notes.module.js +0 -83
  238. package/dist/os/notes/notes.module.js.map +0 -1
  239. package/dist/os/plan/frontmatter-io.d.ts +0 -12
  240. package/dist/os/plan/frontmatter-io.d.ts.map +0 -1
  241. package/dist/os/plan/frontmatter-io.js +0 -69
  242. package/dist/os/plan/frontmatter-io.js.map +0 -1
  243. package/dist/os/plan/handlers/archive.d.ts +0 -4
  244. package/dist/os/plan/handlers/archive.d.ts.map +0 -1
  245. package/dist/os/plan/handlers/archive.js +0 -206
  246. package/dist/os/plan/handlers/archive.js.map +0 -1
  247. package/dist/os/plan/index.d.ts +0 -6
  248. package/dist/os/plan/index.d.ts.map +0 -1
  249. package/dist/os/plan/index.js +0 -16
  250. package/dist/os/plan/index.js.map +0 -1
  251. package/dist/os/plan/plan.module.d.ts +0 -3
  252. package/dist/os/plan/plan.module.d.ts.map +0 -1
  253. package/dist/os/plan/plan.module.js +0 -44
  254. package/dist/os/plan/plan.module.js.map +0 -1
  255. package/dist/os/plan/types.d.ts +0 -12
  256. package/dist/os/plan/types.d.ts.map +0 -1
  257. package/dist/os/plan/types.js +0 -17
  258. package/dist/os/plan/types.js.map +0 -1
  259. package/dist/os/program/discovery.d.ts +0 -61
  260. package/dist/os/program/discovery.d.ts.map +0 -1
  261. package/dist/os/program/discovery.js +0 -236
  262. package/dist/os/program/discovery.js.map +0 -1
  263. package/dist/os/program/handlers/complete.d.ts +0 -12
  264. package/dist/os/program/handlers/complete.d.ts.map +0 -1
  265. package/dist/os/program/handlers/complete.js +0 -344
  266. package/dist/os/program/handlers/complete.js.map +0 -1
  267. package/dist/os/program/handlers/lease.d.ts +0 -13
  268. package/dist/os/program/handlers/lease.d.ts.map +0 -1
  269. package/dist/os/program/handlers/lease.js +0 -322
  270. package/dist/os/program/handlers/lease.js.map +0 -1
  271. package/dist/os/program/handlers/seal.d.ts +0 -12
  272. package/dist/os/program/handlers/seal.d.ts.map +0 -1
  273. package/dist/os/program/handlers/seal.js +0 -265
  274. package/dist/os/program/handlers/seal.js.map +0 -1
  275. package/dist/os/program/handlers/validate.d.ts +0 -14
  276. package/dist/os/program/handlers/validate.d.ts.map +0 -1
  277. package/dist/os/program/handlers/validate.js +0 -164
  278. package/dist/os/program/handlers/validate.js.map +0 -1
  279. package/dist/os/program/lease.d.ts +0 -39
  280. package/dist/os/program/lease.d.ts.map +0 -1
  281. package/dist/os/program/lease.js +0 -129
  282. package/dist/os/program/lease.js.map +0 -1
  283. package/dist/os/program/program.module.d.ts +0 -3
  284. package/dist/os/program/program.module.d.ts.map +0 -1
  285. package/dist/os/program/program.module.js +0 -201
  286. package/dist/os/program/program.module.js.map +0 -1
  287. package/dist/os/program/schemas.d.ts +0 -225
  288. package/dist/os/program/schemas.d.ts.map +0 -1
  289. package/dist/os/program/schemas.js +0 -174
  290. package/dist/os/program/schemas.js.map +0 -1
  291. package/dist/os/program/state.d.ts +0 -38
  292. package/dist/os/program/state.d.ts.map +0 -1
  293. package/dist/os/program/state.js +0 -189
  294. package/dist/os/program/state.js.map +0 -1
  295. package/dist/os/rfc/acceptance.d.ts +0 -15
  296. package/dist/os/rfc/acceptance.d.ts.map +0 -1
  297. package/dist/os/rfc/acceptance.js +0 -310
  298. package/dist/os/rfc/acceptance.js.map +0 -1
  299. package/dist/os/rfc/decision-log.d.ts +0 -6
  300. package/dist/os/rfc/decision-log.d.ts.map +0 -1
  301. package/dist/os/rfc/decision-log.js +0 -269
  302. package/dist/os/rfc/decision-log.js.map +0 -1
  303. package/dist/os/rfc/dna-trace.d.ts +0 -27
  304. package/dist/os/rfc/dna-trace.d.ts.map +0 -1
  305. package/dist/os/rfc/dna-trace.js +0 -214
  306. package/dist/os/rfc/dna-trace.js.map +0 -1
  307. package/dist/os/rfc/frontmatter-io.d.ts +0 -18
  308. package/dist/os/rfc/frontmatter-io.d.ts.map +0 -1
  309. package/dist/os/rfc/frontmatter-io.js +0 -110
  310. package/dist/os/rfc/frontmatter-io.js.map +0 -1
  311. package/dist/os/rfc/handlers/archive.d.ts +0 -25
  312. package/dist/os/rfc/handlers/archive.d.ts.map +0 -1
  313. package/dist/os/rfc/handlers/archive.js +0 -247
  314. package/dist/os/rfc/handlers/archive.js.map +0 -1
  315. package/dist/os/rfc/handlers/check.d.ts +0 -4
  316. package/dist/os/rfc/handlers/check.d.ts.map +0 -1
  317. package/dist/os/rfc/handlers/check.js +0 -195
  318. package/dist/os/rfc/handlers/check.js.map +0 -1
  319. package/dist/os/rfc/handlers/implement-stamp.d.ts +0 -4
  320. package/dist/os/rfc/handlers/implement-stamp.d.ts.map +0 -1
  321. package/dist/os/rfc/handlers/implement-stamp.js +0 -420
  322. package/dist/os/rfc/handlers/implement-stamp.js.map +0 -1
  323. package/dist/os/rfc/handlers/index-graph.d.ts +0 -13
  324. package/dist/os/rfc/handlers/index-graph.d.ts.map +0 -1
  325. package/dist/os/rfc/handlers/index-graph.js +0 -192
  326. package/dist/os/rfc/handlers/index-graph.js.map +0 -1
  327. package/dist/os/rfc/handlers/lifecycle.d.ts +0 -13
  328. package/dist/os/rfc/handlers/lifecycle.d.ts.map +0 -1
  329. package/dist/os/rfc/handlers/lifecycle.js +0 -155
  330. package/dist/os/rfc/handlers/lifecycle.js.map +0 -1
  331. package/dist/os/rfc/handlers/list-create.d.ts +0 -6
  332. package/dist/os/rfc/handlers/list-create.d.ts.map +0 -1
  333. package/dist/os/rfc/handlers/list-create.js +0 -240
  334. package/dist/os/rfc/handlers/list-create.js.map +0 -1
  335. package/dist/os/rfc/handlers/pipeline-status.d.ts +0 -26
  336. package/dist/os/rfc/handlers/pipeline-status.d.ts.map +0 -1
  337. package/dist/os/rfc/handlers/pipeline-status.js +0 -124
  338. package/dist/os/rfc/handlers/pipeline-status.js.map +0 -1
  339. package/dist/os/rfc/handlers/shared.d.ts +0 -22
  340. package/dist/os/rfc/handlers/shared.d.ts.map +0 -1
  341. package/dist/os/rfc/handlers/shared.js +0 -105
  342. package/dist/os/rfc/handlers/shared.js.map +0 -1
  343. package/dist/os/rfc/handlers/supersede-propose.d.ts +0 -4
  344. package/dist/os/rfc/handlers/supersede-propose.d.ts.map +0 -1
  345. package/dist/os/rfc/handlers/supersede-propose.js +0 -203
  346. package/dist/os/rfc/handlers/supersede-propose.js.map +0 -1
  347. package/dist/os/rfc/handlers/validate-rules.d.ts +0 -32
  348. package/dist/os/rfc/handlers/validate-rules.d.ts.map +0 -1
  349. package/dist/os/rfc/handlers/validate-rules.js +0 -590
  350. package/dist/os/rfc/handlers/validate-rules.js.map +0 -1
  351. package/dist/os/rfc/handlers/validate.d.ts +0 -4
  352. package/dist/os/rfc/handlers/validate.d.ts.map +0 -1
  353. package/dist/os/rfc/handlers/validate.js +0 -108
  354. package/dist/os/rfc/handlers/validate.js.map +0 -1
  355. package/dist/os/rfc/handlers.d.ts +0 -7
  356. package/dist/os/rfc/handlers.d.ts.map +0 -1
  357. package/dist/os/rfc/handlers.js +0 -19
  358. package/dist/os/rfc/handlers.js.map +0 -1
  359. package/dist/os/rfc/index.d.ts +0 -18
  360. package/dist/os/rfc/index.d.ts.map +0 -1
  361. package/dist/os/rfc/index.js +0 -24
  362. package/dist/os/rfc/index.js.map +0 -1
  363. package/dist/os/rfc/rfc.module.d.ts +0 -3
  364. package/dist/os/rfc/rfc.module.d.ts.map +0 -1
  365. package/dist/os/rfc/rfc.module.js +0 -366
  366. package/dist/os/rfc/rfc.module.js.map +0 -1
  367. package/dist/os/rfc/types.d.ts +0 -483
  368. package/dist/os/rfc/types.d.ts.map +0 -1
  369. package/dist/os/rfc/types.js +0 -100
  370. package/dist/os/rfc/types.js.map +0 -1
  371. package/dist/os/rfc/verification-evidence.d.ts +0 -8
  372. package/dist/os/rfc/verification-evidence.d.ts.map +0 -1
  373. package/dist/os/rfc/verification-evidence.js +0 -184
  374. package/dist/os/rfc/verification-evidence.js.map +0 -1
  375. package/dist/os/session/atif-parser.d.ts +0 -29
  376. package/dist/os/session/atif-parser.d.ts.map +0 -1
  377. package/dist/os/session/atif-parser.js +0 -140
  378. package/dist/os/session/atif-parser.js.map +0 -1
  379. package/dist/os/session/frontmatter-io.d.ts +0 -31
  380. package/dist/os/session/frontmatter-io.d.ts.map +0 -1
  381. package/dist/os/session/frontmatter-io.js +0 -146
  382. package/dist/os/session/frontmatter-io.js.map +0 -1
  383. package/dist/os/session/handlers/archive.d.ts +0 -4
  384. package/dist/os/session/handlers/archive.d.ts.map +0 -1
  385. package/dist/os/session/handlers/archive.js +0 -241
  386. package/dist/os/session/handlers/archive.js.map +0 -1
  387. package/dist/os/session/handlers/list.d.ts +0 -4
  388. package/dist/os/session/handlers/list.d.ts.map +0 -1
  389. package/dist/os/session/handlers/list.js +0 -147
  390. package/dist/os/session/handlers/list.js.map +0 -1
  391. package/dist/os/session/handlers/save.d.ts +0 -6
  392. package/dist/os/session/handlers/save.d.ts.map +0 -1
  393. package/dist/os/session/handlers/save.js +0 -297
  394. package/dist/os/session/handlers/save.js.map +0 -1
  395. package/dist/os/session/handlers/validate.d.ts +0 -4
  396. package/dist/os/session/handlers/validate.d.ts.map +0 -1
  397. package/dist/os/session/handlers/validate.js +0 -188
  398. package/dist/os/session/handlers/validate.js.map +0 -1
  399. package/dist/os/session/index.d.ts +0 -9
  400. package/dist/os/session/index.d.ts.map +0 -1
  401. package/dist/os/session/index.js +0 -20
  402. package/dist/os/session/index.js.map +0 -1
  403. package/dist/os/session/session.module.d.ts +0 -3
  404. package/dist/os/session/session.module.d.ts.map +0 -1
  405. package/dist/os/session/session.module.js +0 -115
  406. package/dist/os/session/session.module.js.map +0 -1
  407. package/dist/os/session/types.d.ts +0 -101
  408. package/dist/os/session/types.d.ts.map +0 -1
  409. package/dist/os/session/types.js +0 -52
  410. package/dist/os/session/types.js.map +0 -1
  411. package/dist/os/spec/live-spec-list.d.ts +0 -4
  412. package/dist/os/spec/live-spec-list.d.ts.map +0 -1
  413. package/dist/os/spec/live-spec-list.js +0 -64
  414. package/dist/os/spec/live-spec-list.js.map +0 -1
  415. package/dist/os/spec/live-spec-merge.d.ts +0 -4
  416. package/dist/os/spec/live-spec-merge.d.ts.map +0 -1
  417. package/dist/os/spec/live-spec-merge.js +0 -345
  418. package/dist/os/spec/live-spec-merge.js.map +0 -1
  419. package/dist/os/spec/live-spec-show.d.ts +0 -4
  420. package/dist/os/spec/live-spec-show.d.ts.map +0 -1
  421. package/dist/os/spec/live-spec-show.js +0 -99
  422. package/dist/os/spec/live-spec-show.js.map +0 -1
  423. package/dist/os/spec/live-spec-types.d.ts +0 -71
  424. package/dist/os/spec/live-spec-types.d.ts.map +0 -1
  425. package/dist/os/spec/live-spec-types.js +0 -14
  426. package/dist/os/spec/live-spec-types.js.map +0 -1
  427. package/dist/os/spec/live-spec-validate.d.ts +0 -4
  428. package/dist/os/spec/live-spec-validate.d.ts.map +0 -1
  429. package/dist/os/spec/live-spec-validate.js +0 -140
  430. package/dist/os/spec/live-spec-validate.js.map +0 -1
  431. package/dist/os/spec/spec-materialize.d.ts +0 -21
  432. package/dist/os/spec/spec-materialize.d.ts.map +0 -1
  433. package/dist/os/spec/spec-materialize.js +0 -336
  434. package/dist/os/spec/spec-materialize.js.map +0 -1
  435. package/dist/os/spec/spec-schema.d.ts +0 -126
  436. package/dist/os/spec/spec-schema.d.ts.map +0 -1
  437. package/dist/os/spec/spec-schema.js +0 -118
  438. package/dist/os/spec/spec-schema.js.map +0 -1
  439. package/dist/os/spec/spec-status.d.ts +0 -33
  440. package/dist/os/spec/spec-status.d.ts.map +0 -1
  441. package/dist/os/spec/spec-status.js +0 -222
  442. package/dist/os/spec/spec-status.js.map +0 -1
  443. package/dist/os/spec/spec-validate.d.ts +0 -4
  444. package/dist/os/spec/spec-validate.d.ts.map +0 -1
  445. package/dist/os/spec/spec-validate.js +0 -435
  446. package/dist/os/spec/spec-validate.js.map +0 -1
  447. package/dist/os/spec/spec.module.d.ts +0 -3
  448. package/dist/os/spec/spec.module.d.ts.map +0 -1
  449. package/dist/os/spec/spec.module.js +0 -119
  450. package/dist/os/spec/spec.module.js.map +0 -1
  451. package/dist/os/werkstatt/handlers/lock.d.ts +0 -10
  452. package/dist/os/werkstatt/handlers/lock.d.ts.map +0 -1
  453. package/dist/os/werkstatt/handlers/lock.js +0 -153
  454. package/dist/os/werkstatt/handlers/lock.js.map +0 -1
  455. package/dist/os/werkstatt/handlers/schema.d.ts +0 -33
  456. package/dist/os/werkstatt/handlers/schema.d.ts.map +0 -1
  457. package/dist/os/werkstatt/handlers/schema.js +0 -42
  458. package/dist/os/werkstatt/handlers/schema.js.map +0 -1
  459. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts +0 -15
  460. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +0 -1
  461. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +0 -144
  462. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +0 -1
  463. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts +0 -18
  464. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts.map +0 -1
  465. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js +0 -43
  466. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js.map +0 -1
  467. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts +0 -11
  468. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +0 -1
  469. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +0 -79
  470. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +0 -1
  471. package/dist/os/werkstatt/index.d.ts +0 -7
  472. package/dist/os/werkstatt/index.d.ts.map +0 -1
  473. package/dist/os/werkstatt/index.js +0 -18
  474. package/dist/os/werkstatt/index.js.map +0 -1
  475. package/dist/os/werkstatt/werkstatt.module.d.ts +0 -3
  476. package/dist/os/werkstatt/werkstatt.module.d.ts.map +0 -1
  477. package/dist/os/werkstatt/werkstatt.module.js +0 -58
  478. package/dist/os/werkstatt/werkstatt.module.js.map +0 -1
  479. package/dist/os/workflow/handlers.d.ts +0 -12
  480. package/dist/os/workflow/handlers.d.ts.map +0 -1
  481. package/dist/os/workflow/handlers.js +0 -254
  482. package/dist/os/workflow/handlers.js.map +0 -1
  483. package/dist/os/workflow/index.d.ts +0 -4
  484. package/dist/os/workflow/index.d.ts.map +0 -1
  485. package/dist/os/workflow/index.js +0 -18
  486. package/dist/os/workflow/index.js.map +0 -1
  487. package/dist/os/workflow/types.d.ts +0 -69
  488. package/dist/os/workflow/types.d.ts.map +0 -1
  489. package/dist/os/workflow/types.js +0 -23
  490. package/dist/os/workflow/types.js.map +0 -1
  491. package/dist/os/workflow/workflow.module.d.ts +0 -3
  492. package/dist/os/workflow/workflow.module.d.ts.map +0 -1
  493. package/dist/os/workflow/workflow.module.js +0 -48
  494. package/dist/os/workflow/workflow.module.js.map +0 -1
  495. package/dist/src/cli-output.d.ts +0 -5
  496. package/dist/src/cli-output.d.ts.map +0 -1
  497. package/dist/src/cli-output.js +0 -53
  498. package/dist/src/cli-output.js.map +0 -1
  499. package/dist/src/config/forge-config.d.ts +0 -242
  500. package/dist/src/config/forge-config.d.ts.map +0 -1
  501. package/dist/src/config/forge-config.js +0 -359
  502. package/dist/src/config/forge-config.js.map +0 -1
  503. package/dist/src/forge-module.d.ts +0 -16
  504. package/dist/src/forge-module.d.ts.map +0 -1
  505. package/dist/src/forge-module.js +0 -15
  506. package/dist/src/forge-module.js.map +0 -1
  507. package/dist/src/index.d.ts +0 -36
  508. package/dist/src/index.d.ts.map +0 -1
  509. package/dist/src/index.js +0 -56
  510. package/dist/src/index.js.map +0 -1
  511. package/dist/src/knowledge/budgets.d.ts +0 -38
  512. package/dist/src/knowledge/budgets.d.ts.map +0 -1
  513. package/dist/src/knowledge/budgets.js +0 -157
  514. package/dist/src/knowledge/budgets.js.map +0 -1
  515. package/dist/src/knowledge/compact.d.ts +0 -47
  516. package/dist/src/knowledge/compact.d.ts.map +0 -1
  517. package/dist/src/knowledge/compact.js +0 -320
  518. package/dist/src/knowledge/compact.js.map +0 -1
  519. package/dist/src/knowledge/index.d.ts +0 -7
  520. package/dist/src/knowledge/index.d.ts.map +0 -1
  521. package/dist/src/knowledge/index.js +0 -19
  522. package/dist/src/knowledge/index.js.map +0 -1
  523. package/dist/src/knowledge/parse.d.ts +0 -3
  524. package/dist/src/knowledge/parse.d.ts.map +0 -1
  525. package/dist/src/knowledge/parse.js +0 -205
  526. package/dist/src/knowledge/parse.js.map +0 -1
  527. package/dist/src/knowledge/promote.d.ts +0 -37
  528. package/dist/src/knowledge/promote.d.ts.map +0 -1
  529. package/dist/src/knowledge/promote.js +0 -120
  530. package/dist/src/knowledge/promote.js.map +0 -1
  531. package/dist/src/knowledge/schema.d.ts +0 -61
  532. package/dist/src/knowledge/schema.d.ts.map +0 -1
  533. package/dist/src/knowledge/schema.js +0 -64
  534. package/dist/src/knowledge/schema.js.map +0 -1
  535. package/dist/src/knowledge/serialize.d.ts +0 -3
  536. package/dist/src/knowledge/serialize.d.ts.map +0 -1
  537. package/dist/src/knowledge/serialize.js +0 -67
  538. package/dist/src/knowledge/serialize.js.map +0 -1
  539. package/dist/src/migration-adapters/git-utils.d.ts +0 -3
  540. package/dist/src/migration-adapters/git-utils.d.ts.map +0 -1
  541. package/dist/src/migration-adapters/git-utils.js +0 -56
  542. package/dist/src/migration-adapters/git-utils.js.map +0 -1
  543. package/dist/src/migration-adapters/ignored-files.d.ts +0 -12
  544. package/dist/src/migration-adapters/ignored-files.d.ts.map +0 -1
  545. package/dist/src/migration-adapters/ignored-files.js +0 -190
  546. package/dist/src/migration-adapters/ignored-files.js.map +0 -1
  547. package/dist/src/migration-adapters/index.d.ts +0 -8
  548. package/dist/src/migration-adapters/index.d.ts.map +0 -1
  549. package/dist/src/migration-adapters/index.js +0 -17
  550. package/dist/src/migration-adapters/index.js.map +0 -1
  551. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts +0 -3
  552. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts.map +0 -1
  553. package/dist/src/migration-adapters/node-typescript-pnpm/index.js +0 -141
  554. package/dist/src/migration-adapters/node-typescript-pnpm/index.js.map +0 -1
  555. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts +0 -3
  556. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts.map +0 -1
  557. package/dist/src/migration-adapters/phaser-pnpm/index.js +0 -142
  558. package/dist/src/migration-adapters/phaser-pnpm/index.js.map +0 -1
  559. package/dist/src/migration-adapters/registry.d.ts +0 -6
  560. package/dist/src/migration-adapters/registry.d.ts.map +0 -1
  561. package/dist/src/migration-adapters/registry.js +0 -55
  562. package/dist/src/migration-adapters/registry.js.map +0 -1
  563. package/dist/src/migration-adapters/types.d.ts +0 -35
  564. package/dist/src/migration-adapters/types.d.ts.map +0 -1
  565. package/dist/src/migration-adapters/types.js +0 -31
  566. package/dist/src/migration-adapters/types.js.map +0 -1
  567. package/dist/src/onboarding/agents-generate.d.ts +0 -30
  568. package/dist/src/onboarding/agents-generate.d.ts.map +0 -1
  569. package/dist/src/onboarding/agents-generate.js +0 -352
  570. package/dist/src/onboarding/agents-generate.js.map +0 -1
  571. package/dist/src/onboarding/create.d.ts +0 -12
  572. package/dist/src/onboarding/create.d.ts.map +0 -1
  573. package/dist/src/onboarding/create.js +0 -318
  574. package/dist/src/onboarding/create.js.map +0 -1
  575. package/dist/src/onboarding/doctor.d.ts +0 -45
  576. package/dist/src/onboarding/doctor.d.ts.map +0 -1
  577. package/dist/src/onboarding/doctor.js +0 -1108
  578. package/dist/src/onboarding/doctor.js.map +0 -1
  579. package/dist/src/onboarding/init.d.ts +0 -32
  580. package/dist/src/onboarding/init.d.ts.map +0 -1
  581. package/dist/src/onboarding/init.js +0 -291
  582. package/dist/src/onboarding/init.js.map +0 -1
  583. package/dist/src/onboarding/invariant-engine.d.ts +0 -17
  584. package/dist/src/onboarding/invariant-engine.d.ts.map +0 -1
  585. package/dist/src/onboarding/invariant-engine.js +0 -416
  586. package/dist/src/onboarding/invariant-engine.js.map +0 -1
  587. package/dist/src/onboarding/memory-scaffold.d.ts +0 -18
  588. package/dist/src/onboarding/memory-scaffold.d.ts.map +0 -1
  589. package/dist/src/onboarding/memory-scaffold.js +0 -151
  590. package/dist/src/onboarding/memory-scaffold.js.map +0 -1
  591. package/dist/src/onboarding/nested-agents-generate.d.ts +0 -18
  592. package/dist/src/onboarding/nested-agents-generate.d.ts.map +0 -1
  593. package/dist/src/onboarding/nested-agents-generate.js +0 -69
  594. package/dist/src/onboarding/nested-agents-generate.js.map +0 -1
  595. package/dist/src/onboarding/nested-agents-templates.d.ts +0 -26
  596. package/dist/src/onboarding/nested-agents-templates.d.ts.map +0 -1
  597. package/dist/src/onboarding/nested-agents-templates.js +0 -178
  598. package/dist/src/onboarding/nested-agents-templates.js.map +0 -1
  599. package/dist/src/onboarding/profile-validate.d.ts +0 -13
  600. package/dist/src/onboarding/profile-validate.d.ts.map +0 -1
  601. package/dist/src/onboarding/profile-validate.js +0 -109
  602. package/dist/src/onboarding/profile-validate.js.map +0 -1
  603. package/dist/src/onboarding/scaffold-project.d.ts +0 -12
  604. package/dist/src/onboarding/scaffold-project.d.ts.map +0 -1
  605. package/dist/src/onboarding/scaffold-project.js +0 -248
  606. package/dist/src/onboarding/scaffold-project.js.map +0 -1
  607. package/dist/src/onboarding/scaffold.d.ts +0 -15
  608. package/dist/src/onboarding/scaffold.d.ts.map +0 -1
  609. package/dist/src/onboarding/scaffold.js +0 -120
  610. package/dist/src/onboarding/scaffold.js.map +0 -1
  611. package/dist/src/onboarding/upgrade.d.ts +0 -25
  612. package/dist/src/onboarding/upgrade.d.ts.map +0 -1
  613. package/dist/src/onboarding/upgrade.js +0 -391
  614. package/dist/src/onboarding/upgrade.js.map +0 -1
  615. package/dist/src/onboarding/workspace-discovery.d.ts +0 -11
  616. package/dist/src/onboarding/workspace-discovery.d.ts.map +0 -1
  617. package/dist/src/onboarding/workspace-discovery.js +0 -138
  618. package/dist/src/onboarding/workspace-discovery.js.map +0 -1
  619. package/dist/src/profiles/profile-schema.d.ts +0 -351
  620. package/dist/src/profiles/profile-schema.d.ts.map +0 -1
  621. package/dist/src/profiles/profile-schema.js +0 -201
  622. package/dist/src/profiles/profile-schema.js.map +0 -1
  623. package/dist/src/profiles/stack-profile.d.ts +0 -168
  624. package/dist/src/profiles/stack-profile.d.ts.map +0 -1
  625. package/dist/src/profiles/stack-profile.js +0 -144
  626. package/dist/src/profiles/stack-profile.js.map +0 -1
  627. package/dist/src/profiles/terminology-utils.d.ts +0 -8
  628. package/dist/src/profiles/terminology-utils.d.ts.map +0 -1
  629. package/dist/src/profiles/terminology-utils.js +0 -31
  630. package/dist/src/profiles/terminology-utils.js.map +0 -1
  631. package/dist/src/registry.d.ts +0 -38
  632. package/dist/src/registry.d.ts.map +0 -1
  633. package/dist/src/registry.js +0 -135
  634. package/dist/src/registry.js.map +0 -1
  635. package/dist/src/skill-schema.d.ts +0 -30
  636. package/dist/src/skill-schema.d.ts.map +0 -1
  637. package/dist/src/skill-schema.js +0 -34
  638. package/dist/src/skill-schema.js.map +0 -1
  639. package/dist/src/types.d.ts +0 -152
  640. package/dist/src/types.d.ts.map +0 -1
  641. package/dist/src/types.js +0 -17
  642. package/dist/src/types.js.map +0 -1
  643. package/dist/src/utils/fs-atomic.d.ts +0 -7
  644. package/dist/src/utils/fs-atomic.d.ts.map +0 -1
  645. package/dist/src/utils/fs-atomic.js +0 -81
  646. package/dist/src/utils/fs-atomic.js.map +0 -1
  647. package/dist/src/utils/fs-idempotent.d.ts +0 -2
  648. package/dist/src/utils/fs-idempotent.d.ts.map +0 -1
  649. package/dist/src/utils/fs-idempotent.js +0 -39
  650. package/dist/src/utils/fs-idempotent.js.map +0 -1
  651. package/dist/src/utils/fs-trash-sync.d.ts +0 -2
  652. package/dist/src/utils/fs-trash-sync.d.ts.map +0 -1
  653. package/dist/src/utils/fs-trash-sync.js +0 -34
  654. package/dist/src/utils/fs-trash-sync.js.map +0 -1
  655. package/dist/src/utils/fs-trash.d.ts +0 -2
  656. package/dist/src/utils/fs-trash.d.ts.map +0 -1
  657. package/dist/src/utils/fs-trash.js +0 -24
  658. package/dist/src/utils/fs-trash.js.map +0 -1
  659. package/dist/src/utils/fs.d.ts +0 -8
  660. package/dist/src/utils/fs.d.ts.map +0 -1
  661. package/dist/src/utils/fs.js +0 -60
  662. package/dist/src/utils/fs.js.map +0 -1
  663. package/dist/src/utils/generated-marker.d.ts +0 -21
  664. package/dist/src/utils/generated-marker.d.ts.map +0 -1
  665. package/dist/src/utils/generated-marker.js +0 -128
  666. package/dist/src/utils/generated-marker.js.map +0 -1
  667. package/dist/src/utils/hash.d.ts +0 -2
  668. package/dist/src/utils/hash.d.ts.map +0 -1
  669. package/dist/src/utils/hash.js +0 -18
  670. package/dist/src/utils/hash.js.map +0 -1
  671. package/dist/src/utils/index.d.ts +0 -9
  672. package/dist/src/utils/index.d.ts.map +0 -1
  673. package/dist/src/utils/index.js +0 -21
  674. package/dist/src/utils/index.js.map +0 -1
  675. package/dist/src/utils/string-utils.d.ts +0 -2
  676. package/dist/src/utils/string-utils.d.ts.map +0 -1
  677. package/dist/src/utils/string-utils.js +0 -19
  678. package/dist/src/utils/string-utils.js.map +0 -1
  679. package/dist/src/validators/note-frontmatter-validate.d.ts +0 -20
  680. package/dist/src/validators/note-frontmatter-validate.d.ts.map +0 -1
  681. package/dist/src/validators/note-frontmatter-validate.js +0 -117
  682. package/dist/src/validators/note-frontmatter-validate.js.map +0 -1
  683. package/dist/src/validators/note-link-validate.d.ts +0 -21
  684. package/dist/src/validators/note-link-validate.d.ts.map +0 -1
  685. package/dist/src/validators/note-link-validate.js +0 -121
  686. package/dist/src/validators/note-link-validate.js.map +0 -1
  687. package/dist/src/validators/note-orphan-detect.d.ts +0 -19
  688. package/dist/src/validators/note-orphan-detect.d.ts.map +0 -1
  689. package/dist/src/validators/note-orphan-detect.js +0 -123
  690. package/dist/src/validators/note-orphan-detect.js.map +0 -1
  691. package/dist/src/validators/port-validate.d.ts +0 -12
  692. package/dist/src/validators/port-validate.d.ts.map +0 -1
  693. package/dist/src/validators/port-validate.js +0 -78
  694. package/dist/src/validators/port-validate.js.map +0 -1
  695. package/dist/src/validators/skill-validate.d.ts +0 -29
  696. package/dist/src/validators/skill-validate.d.ts.map +0 -1
  697. package/dist/src/validators/skill-validate.js +0 -689
  698. package/dist/src/validators/skill-validate.js.map +0 -1
@@ -1,590 +0,0 @@
1
- /*
2
- <MODULE_CONTRACT>
3
- <purpose>Per-RFC validation rules (V-01..V-34, RFC-DIR-01) extracted from the validate handler for modularity.</purpose>
4
- <non-goals>
5
- <item>Do not introduce app-specific runtime composition or deployment behavior into this reusable package source file.</item>
6
- </non-goals>
7
- </MODULE_CONTRACT>
8
- <CHANGE_SUMMARY>
9
- <item>RFC-0303 Phase 3: extracted from validate.ts as part of the handler split.</item>
10
- <item>RFC-0722: add RFC-DIR-01 directory structure warning rule for unsanctioned subdirectories.</item>
11
- <item>RFC-0755: add V-RFC-33 frontmatter YAML parseability check (checkFrontmatterYamlParse helper).</item>
12
- <item>RFC-0795: add V-33 dependsOn referential integrity/self-dependency/rejected-dependency and V-34 batch slug format rules.</item>
13
- </CHANGE_SUMMARY>
14
- */
15
- import path from "node:path";
16
- import { readFile } from "node:fs/promises";
17
- import { execFile } from "node:child_process";
18
- import { parse as yamlParse } from "yaml";
19
- import { validateAcceptanceShape } from "../acceptance.js";
20
- import { RFC_DIR, RFC_ID_PATTERN, RFC_STATUSES, RFC_KINDS, RFC_SCOPES, RFC_FULL_REQUIRED_SECTIONS, RFC_METADATA_CUTOFF, RFC_VERSION_BUMP_CUTOFF, } from "../types.js";
21
- import { DNA_DOCS, AP_DOCS } from "./shared.js";
22
- const DNA_DOC = DNA_DOCS[0];
23
- const AP_DOC = AP_DOCS[0];
24
- // RFC-0335: reviewer identity validation constants
25
- const REVIEWER_IDENTITY_PATTERN = /^(human|agent):[a-z0-9][a-z0-9-]*$/;
26
- const DECIDED_STATUSES = [
27
- "accepted",
28
- "implemented",
29
- "rejected",
30
- "superseded",
31
- ];
32
- /**
33
- * Extract the raw acceptance-criteria section text from an RFC body.
34
- * Returns `undefined` when the section is absent.
35
- */
36
- export function extractAcceptanceCriteriaSection(body) {
37
- const match = body.match(/## Acceptance criteria\s*\n([\s\S]*?)(?=\n## |\n*$)/);
38
- return match?.[1];
39
- }
40
- /**
41
- * Evaluate acceptance criteria checkboxes and inline evidence annotations.
42
- * Pure function — no I/O, no side effects. Used by both V-26/V-27 validation
43
- * and the `rfc.implement.stamp` precondition checks (RFC-0476).
44
- */
45
- export function evaluateAcceptanceCriteria(body) {
46
- const section = extractAcceptanceCriteriaSection(body);
47
- if (!section) {
48
- return {
49
- totalChecked: 0,
50
- totalUnchecked: 0,
51
- uncheckedLines: [],
52
- checkedWithoutEvidence: [],
53
- };
54
- }
55
- const uncheckedLines = section
56
- .split("\n")
57
- .filter((line) => /^- \[ \]/.test(line))
58
- .map((line) => line.trim());
59
- const totalUnchecked = uncheckedLines.length;
60
- const checkedLines = section.split("\n").filter((line) => /^- \[x\]/.test(line));
61
- const checkedWithoutEvidence = [];
62
- for (const line of checkedLines) {
63
- if (!/\(evidence:\s*.+\)/.test(line)) {
64
- checkedWithoutEvidence.push(line.trim());
65
- }
66
- }
67
- return {
68
- totalChecked: checkedLines.length,
69
- totalUnchecked,
70
- uncheckedLines,
71
- checkedWithoutEvidence,
72
- };
73
- }
74
- // ─── RFC-0625: V-32 implementation commit drift detection ──────────────────
75
- function execGitLog(workspaceRoot, args) {
76
- return new Promise((resolve) => {
77
- execFile("git", args, { cwd: workspaceRoot, timeout: 10000 }, (err, stdout) => {
78
- if (err) {
79
- resolve("");
80
- return;
81
- }
82
- resolve(stdout.trim());
83
- });
84
- });
85
- }
86
- async function checkImplementationCommitDrift(workspaceRoot, rfcId, createdAt, currentStatus) {
87
- if (currentStatus === "implemented") {
88
- return { found: false, commitCount: 0 };
89
- }
90
- const datePattern = /^\d{4}-\d{2}-\d{2}$/;
91
- if (!datePattern.test(createdAt)) {
92
- return { found: false, commitCount: 0 };
93
- }
94
- const log = await execGitLog(workspaceRoot, ["log", `--since=${createdAt}`, "--oneline"]);
95
- if (!log) {
96
- return { found: false, commitCount: 0 };
97
- }
98
- const pattern = new RegExp(`implement:\\s+${rfcId}\\b`, "i");
99
- const matchingLines = log.split("\n").filter((line) => pattern.test(line.trim()));
100
- return { found: matchingLines.length > 0, commitCount: matchingLines.length };
101
- }
102
- // ─── RFC-0709: V-NC-01 NEEDS CLARIFICATION marker detection ────────────────
103
- const NC_MARKER_CUTOFF = "2026-08-06";
104
- const NC_MARKER_PATTERN = /^>\s*NEEDS CLARIFICATION:\s*(.+)$/;
105
- /**
106
- * Collect NEEDS CLARIFICATION markers from an RFC body.
107
- * Skips lines inside fenced code blocks. Pure function — no I/O.
108
- */
109
- export function collectMarkers(body, status, createdAt) {
110
- if (createdAt < NC_MARKER_CUTOFF)
111
- return [];
112
- const severity = status === "draft" ? "warn" : "error";
113
- const markers = [];
114
- const lines = body.split("\n");
115
- let inCodeBlock = false;
116
- for (let i = 0; i < lines.length; i++) {
117
- const line = lines[i];
118
- if (/^```/.test(line.trim())) {
119
- inCodeBlock = !inCodeBlock;
120
- continue;
121
- }
122
- if (inCodeBlock)
123
- continue;
124
- const match = line.match(NC_MARKER_PATTERN);
125
- if (match) {
126
- markers.push({
127
- line: i + 1,
128
- text: match[1].trim(),
129
- severity,
130
- });
131
- }
132
- }
133
- return markers;
134
- }
135
- export async function validateSingleRfc(fileName, parsed, allParsed, seenIds, validDnaIds, validApIds, knownKeys, workspaceRoot, addViolation, seenFilenameNumbers) {
136
- const fm = parsed.frontmatter;
137
- const body = parsed.body;
138
- const relFile = path.join(RFC_DIR, fileName);
139
- const rfcId = String(fm["id"] ?? "UNKNOWN");
140
- const isArchived = fileName.startsWith("archive/");
141
- // V-01: id format
142
- if (!RFC_ID_PATTERN.test(rfcId)) {
143
- addViolation(rfcId, relFile, "V-01", `id "${rfcId}" does not match format RFC-XXXX`);
144
- }
145
- // RFC-DIR-01: directory structure convention (RFC-0722)
146
- // Warn when RFC files are found in subdirectories other than archive/ and verification/
147
- const slashIdx = fileName.indexOf("/");
148
- if (slashIdx > 0) {
149
- const subDir = fileName.slice(0, slashIdx);
150
- if (subDir !== "archive" && subDir !== "verification") {
151
- addViolation(rfcId, relFile, "RFC-DIR-01", `${relFile} is in an unsanctioned subdirectory. Only archive/ and verification/ are allowed. Move the file to docs/rfcs/ root or write an ADR to formalize the subdirectory.`, "warning");
152
- }
153
- }
154
- // V-02: id uniqueness
155
- const prevFile = seenIds.get(rfcId);
156
- if (prevFile) {
157
- addViolation(rfcId, relFile, "V-02", `Duplicate id "${rfcId}" — also in ${prevFile}. ` +
158
- `This happens when an RFC is created by scanning only the top-level docs/rfcs/ directory, missing archived RFCs under docs/rfcs/archive/. ` +
159
- `Fix: renumber this RFC by deleting it and re-running rfc.create (or spec.materialize) which scans the full tree recursively.`);
160
- }
161
- else {
162
- seenIds.set(rfcId, relFile);
163
- }
164
- // V-03: valid status
165
- const status = String(fm["status"] ?? "");
166
- if (!RFC_STATUSES.includes(status)) {
167
- addViolation(rfcId, relFile, "V-03", `Invalid status "${status}". Must be one of: ${RFC_STATUSES.join(", ")}`);
168
- }
169
- // V-04: valid kind
170
- const kind = String(fm["kind"] ?? "");
171
- if (!RFC_KINDS.includes(kind)) {
172
- addViolation(rfcId, relFile, "V-04", `Invalid kind "${kind}". Must be one of: ${RFC_KINDS.join(", ")}`);
173
- }
174
- // V-05: valid scope
175
- const scope = String(fm["scope"] ?? "");
176
- if (!RFC_SCOPES.includes(scope)) {
177
- addViolation(rfcId, relFile, "V-05", `Invalid scope "${scope}". Must be one of: ${RFC_SCOPES.join(", ")}`);
178
- }
179
- // V-06: owners non-empty
180
- const owners = fm["owners"];
181
- if (!Array.isArray(owners) || owners.length === 0) {
182
- addViolation(rfcId, relFile, "V-06", "owners must be a non-empty array");
183
- }
184
- // V-07: valid dates
185
- const createdAt = String(fm["createdAt"] ?? "");
186
- const updatedAt = String(fm["updatedAt"] ?? "");
187
- const datePattern = /^\d{4}-\d{2}-\d{2}$/;
188
- if (!datePattern.test(createdAt)) {
189
- addViolation(rfcId, relFile, "V-07", `createdAt "${createdAt}" is not a valid ISO 8601 date (YYYY-MM-DD)`);
190
- }
191
- if (!datePattern.test(updatedAt)) {
192
- addViolation(rfcId, relFile, "V-07", `updatedAt "${updatedAt}" is not a valid ISO 8601 date (YYYY-MM-DD)`);
193
- }
194
- const enhancedAt = fm["enhancedAt"];
195
- if (enhancedAt && !datePattern.test(enhancedAt)) {
196
- addViolation(rfcId, relFile, "V-07", `enhancedAt "${enhancedAt}" is not a valid ISO 8601 date (YYYY-MM-DD)`);
197
- }
198
- // V-08: implementedAt >= createdAt
199
- const implementedAt = fm["implementedAt"];
200
- if (implementedAt && datePattern.test(implementedAt) && datePattern.test(createdAt)) {
201
- if (implementedAt < createdAt) {
202
- addViolation(rfcId, relFile, "V-08", `implementedAt (${implementedAt}) precedes createdAt (${createdAt})`);
203
- }
204
- }
205
- // V-08b: enhancedAt >= createdAt
206
- if (enhancedAt && datePattern.test(enhancedAt) && datePattern.test(createdAt)) {
207
- if (enhancedAt < createdAt) {
208
- addViolation(rfcId, relFile, "V-08", `enhancedAt (${enhancedAt}) precedes createdAt (${createdAt})`);
209
- }
210
- }
211
- // V-09: closedAt >= createdAt
212
- const closedAt = fm["closedAt"];
213
- if (closedAt && datePattern.test(closedAt) && datePattern.test(createdAt)) {
214
- if (closedAt < createdAt) {
215
- addViolation(rfcId, relFile, "V-09", `closedAt (${closedAt}) precedes createdAt (${createdAt})`);
216
- }
217
- }
218
- // V-10: supersedes point to existing RFCs (+ V-12 forward back-link check)
219
- const supersedes = fm["supersedes"];
220
- if (Array.isArray(supersedes)) {
221
- for (const ref of supersedes) {
222
- const refStr = String(ref);
223
- if (!refStr)
224
- continue;
225
- if (!allParsed.has(refStr)) {
226
- addViolation(rfcId, relFile, "V-10", `supersedes "${refStr}" does not match any existing RFC`);
227
- }
228
- else {
229
- const otherBy = String(allParsed.get(refStr).parsed.frontmatter["supersededBy"] ?? "");
230
- if (otherBy !== rfcId) {
231
- addViolation(rfcId, relFile, "V-12", `${rfcId}.supersedes includes ${refStr}, but ${refStr}.supersededBy is "${otherBy || "(empty)"}" (expected ${rfcId})`, "warning");
232
- }
233
- }
234
- }
235
- }
236
- // V-11: supersededBy points to existing RFC
237
- // Skip for archived RFCs — superseding RFCs may have been themselves archived/removed
238
- const supersededBy = fm["supersededBy"];
239
- if (supersededBy && !allParsed.has(supersededBy) && !isArchived) {
240
- addViolation(rfcId, relFile, "V-11", `supersededBy "${supersededBy}" does not match any existing RFC`);
241
- }
242
- // V-12 (reverse): supersededBy target must list this RFC in its supersedes
243
- if (supersededBy && allParsed.has(supersededBy)) {
244
- const otherFm = allParsed.get(supersededBy).parsed.frontmatter;
245
- const otherSupersedes = otherFm["supersedes"];
246
- if (!Array.isArray(otherSupersedes) || !otherSupersedes.map(String).includes(rfcId)) {
247
- addViolation(rfcId, relFile, "V-12", `${rfcId} is supersededBy ${supersededBy}, but ${supersededBy}.supersedes does not include ${rfcId}`, "warning");
248
- }
249
- }
250
- // V-17: strict supersession lifecycle
251
- if (supersededBy && status !== "superseded") {
252
- addViolation(rfcId, relFile, "V-17", `supersededBy is set (${supersededBy}) but status is "${status}" (expected "superseded")`, "warning");
253
- }
254
- // V-13: required H2 sections (all RFCs use the full template)
255
- const requiredSections = RFC_FULL_REQUIRED_SECTIONS;
256
- const headings = [...body.matchAll(/^##\s+(.+)$/gm)].map((m) => m[1].trim());
257
- for (const section of requiredSections) {
258
- if (!headings.includes(section)) {
259
- const severity = status === "draft" ? "warning" : "error";
260
- // Skip error-severity V-13 for archived RFCs — template requirements evolved after archival
261
- if (severity === "error" && isArchived)
262
- continue;
263
- addViolation(rfcId, relFile, "V-13", `Missing required section "## ${section}"`, severity);
264
- }
265
- }
266
- // V-14: acceptance criteria must have at least 3 checklist items
267
- const acceptanceMatch = body.match(/## Acceptance criteria\s*\n([\s\S]*?)(?=\n## |\n*$)/);
268
- if (acceptanceMatch) {
269
- const checklistItems = acceptanceMatch[1].match(/^- \[[ x]\]/gm);
270
- const count = checklistItems?.length ?? 0;
271
- if (count < 3) {
272
- addViolation(rfcId, relFile, "V-14", `Acceptance criteria has ${count} checklist items; minimum is 3`, status === "draft" ? "warning" : "error");
273
- }
274
- }
275
- // V-26: implemented RFCs must have all acceptance criteria checked (RFC-0463)
276
- // V-27: every checked criterion must carry inline (evidence: ...) annotation (RFC-0463)
277
- // RFC-0476: both use the shared evaluateAcceptanceCriteria function.
278
- if (acceptanceMatch) {
279
- const criteriaEval = evaluateAcceptanceCriteria(body);
280
- if (status === "implemented" && criteriaEval.totalUnchecked > 0 && !isArchived) {
281
- addViolation(rfcId, relFile, "V-26", `status is "implemented" but ${criteriaEval.totalUnchecked} acceptance criteria are unchecked. ` +
282
- `Complete the work or split deferred criteria into a follow-up RFC via supersede.`);
283
- }
284
- for (const line of criteriaEval.checkedWithoutEvidence) {
285
- addViolation(rfcId, relFile, "V-27", `checked acceptance criterion lacks inline (evidence: ...) annotation: "${line}"`);
286
- }
287
- }
288
- // V-15: title consistency
289
- const titleStr = String(fm["title"] ?? "");
290
- const headingMatch = body.match(/^#\s+(?:RFC-\d{4}:\s*)?(.+)$/m);
291
- if (headingMatch && titleStr) {
292
- const headingTitle = headingMatch[1].trim();
293
- if (headingTitle !== titleStr) {
294
- addViolation(rfcId, relFile, "V-15", `Frontmatter title "${titleStr}" does not match body heading "${headingTitle}"`, "warning");
295
- }
296
- }
297
- // V-16: status <-> date coupling
298
- const implementedAtStr = String(fm["implementedAt"] ?? "");
299
- const closedAtStr = String(fm["closedAt"] ?? "");
300
- const isTerminalStatus = status === "superseded" || status === "rejected";
301
- if (status === "implemented" && !implementedAtStr) {
302
- addViolation(rfcId, relFile, "V-16", `status is "implemented" but implementedAt is empty`, "error");
303
- }
304
- if ((status === "accepted" || status === "draft") && implementedAtStr) {
305
- addViolation(rfcId, relFile, "V-16", `status is "${status}" but implementedAt is set (${implementedAtStr})`, "error");
306
- }
307
- if (isTerminalStatus && !closedAtStr) {
308
- addViolation(rfcId, relFile, "V-16", `status is "${status}" but closedAt is empty`, "warning");
309
- }
310
- if (!isTerminalStatus && closedAtStr) {
311
- addViolation(rfcId, relFile, "V-16", `closedAt is set (${closedAtStr}) but status "${status}" is not terminal (superseded/rejected)`, "warning");
312
- }
313
- // V-18: referential integrity of related[]
314
- const related = fm["related"];
315
- if (Array.isArray(related)) {
316
- for (const ref of related) {
317
- const refStr = String(ref).trim();
318
- if (!refStr)
319
- continue;
320
- if (/^RFC-\d{4}$/.test(refStr)) {
321
- if (!allParsed.has(refStr)) {
322
- addViolation(rfcId, relFile, "V-18", `related "${refStr}" does not match any existing RFC`, "warning");
323
- }
324
- }
325
- else if (/^DNA-\d+$/i.test(refStr) && validDnaIds.size > 0) {
326
- if (!validDnaIds.has(parseInt(refStr.slice(4), 10))) {
327
- addViolation(rfcId, relFile, "V-18", `related "${refStr}" is not defined in ${DNA_DOC}`, "warning");
328
- }
329
- }
330
- else if (/^AP-\d+$/i.test(refStr) && validApIds.size > 0) {
331
- if (!validApIds.has(parseInt(refStr.slice(3), 10))) {
332
- addViolation(rfcId, relFile, "V-18", `related "${refStr}" is not defined in ${AP_DOC}`, "warning");
333
- }
334
- }
335
- }
336
- }
337
- // V-19: amends/amendedBy referential + bidirectional integrity
338
- const amends = fm["amends"];
339
- if (Array.isArray(amends)) {
340
- for (const ref of amends) {
341
- const refStr = String(ref);
342
- if (!refStr)
343
- continue;
344
- if (!allParsed.has(refStr)) {
345
- addViolation(rfcId, relFile, "V-19", `amends "${refStr}" does not match any existing RFC`);
346
- }
347
- else {
348
- const otherAmendedBy = allParsed.get(refStr).parsed.frontmatter["amendedBy"];
349
- const arr = Array.isArray(otherAmendedBy) ? otherAmendedBy.map(String) : [];
350
- if (!arr.includes(rfcId)) {
351
- addViolation(rfcId, relFile, "V-19", `${rfcId}.amends includes ${refStr}, but ${refStr}.amendedBy does not include ${rfcId}`, "warning");
352
- }
353
- }
354
- }
355
- }
356
- const amendedBy = fm["amendedBy"];
357
- if (Array.isArray(amendedBy)) {
358
- for (const ref of amendedBy) {
359
- const refStr = String(ref);
360
- if (!refStr)
361
- continue;
362
- if (!allParsed.has(refStr)) {
363
- addViolation(rfcId, relFile, "V-19", `amendedBy "${refStr}" does not match any existing RFC`);
364
- }
365
- else {
366
- const otherAmends = allParsed.get(refStr).parsed.frontmatter["amends"];
367
- const arr = Array.isArray(otherAmends) ? otherAmends.map(String) : [];
368
- if (!arr.includes(rfcId)) {
369
- addViolation(rfcId, relFile, "V-19", `${rfcId}.amendedBy includes ${refStr}, but ${refStr}.amends does not include ${rfcId}`, "warning");
370
- }
371
- }
372
- }
373
- }
374
- // V-21: filename must be lowercase kebab-case
375
- const lowerRfcId = rfcId.toLowerCase();
376
- const fileBasename = fileName.split("/").pop().split("\\").pop();
377
- if (!fileBasename.startsWith(lowerRfcId)) {
378
- addViolation(rfcId, relFile, "V-21", `Filename "${fileBasename}" must start with lowercase "${lowerRfcId}"`);
379
- }
380
- else if (!/^[a-z0-9-]+\.md$/.test(fileBasename)) {
381
- addViolation(rfcId, relFile, "V-21", `Filename "${fileName}" is not lowercase kebab-case (only a-z, 0-9, hyphens allowed)`);
382
- }
383
- // V-20: no unknown frontmatter keys
384
- for (const key of Object.keys(fm)) {
385
- if (!knownKeys.has(key)) {
386
- addViolation(rfcId, relFile, "V-20", `unknown frontmatter key "${key}" (not in the RFC schema)`, "warning");
387
- }
388
- }
389
- // V-22: well-formed acceptance probe shape
390
- for (const issue of validateAcceptanceShape(fm["acceptance"])) {
391
- addViolation(rfcId, relFile, "V-22", issue.message, "warning");
392
- }
393
- // V-23: verification evidence for post-cutoff, probe-bearing, implemented RFCs
394
- const createdAtStr = String(fm["createdAt"] ?? "");
395
- const hasProbes = Array.isArray(fm["acceptance"]) && fm["acceptance"].length > 0;
396
- if (createdAtStr >= RFC_METADATA_CUTOFF && hasProbes && status === "implemented") {
397
- const slug = rfcId.toLowerCase();
398
- const evidenceRelPath = path.join(RFC_DIR, "verification", `${slug}.generated.yaml`);
399
- const evidenceAbsPath = path.join(workspaceRoot, evidenceRelPath);
400
- let evidenceOk = false;
401
- let evidenceOverall = "";
402
- try {
403
- const evidenceContent = await readFile(evidenceAbsPath, "utf-8");
404
- const evidence = yamlParse(evidenceContent);
405
- evidenceOverall = String(evidence.overall ?? "");
406
- evidenceOk = evidenceOverall === "pass";
407
- }
408
- catch {
409
- // file missing or unparseable
410
- }
411
- if (!evidenceOk) {
412
- addViolation(rfcId, relFile, "V-23", `status is "implemented" with acceptance probes and createdAt >= ${RFC_METADATA_CUTOFF}, ` +
413
- `but evidence file ${evidenceRelPath} is missing, unparseable, or overall is not "pass" ` +
414
- `(got "${evidenceOverall || "missing"}"). Run: site-kernel run rfc.verification.emit --id ${rfcId}`);
415
- }
416
- }
417
- // V-25: reviewer identity on newly decided RFCs (RFC-0335)
418
- {
419
- const reviewers = fm["reviewers"];
420
- const reviewerArr = Array.isArray(reviewers) ? reviewers.map(String) : [];
421
- const isDecided = DECIDED_STATUSES.includes(status);
422
- const isPostCutoff = createdAtStr >= RFC_METADATA_CUTOFF;
423
- if (isPostCutoff && isDecided && reviewerArr.length === 0) {
424
- addViolation(rfcId, relFile, "V-25", `${status} RFC created ${createdAtStr} has empty reviewers — the deciding human must record their identity (RFC-0335).`);
425
- }
426
- for (const entry of reviewerArr) {
427
- if (!REVIEWER_IDENTITY_PATTERN.test(entry)) {
428
- addViolation(rfcId, relFile, "V-25", `reviewer "${entry}" does not match the identity format ^(human|agent):[a-z0-9][a-z0-9-]*$ (RFC-0335).`);
429
- }
430
- else if (entry.startsWith("agent:")) {
431
- addViolation(rfcId, relFile, "V-25", `agent reviewer identities are reserved until an RFC grants AI reviewer authority over RFC governance (see RFC-0279 for the pattern) (RFC-0335).`);
432
- }
433
- }
434
- }
435
- // V-24: satisfies DNA-trace frontmatter (RFC-0331)
436
- {
437
- const satisfies = fm["satisfies"];
438
- const satisfiesArr = Array.isArray(satisfies) ? satisfies.map(String) : [];
439
- const satisfiesPresent = satisfiesArr.length > 0;
440
- const kind = String(fm["kind"] ?? "");
441
- const requiresSatisfies = createdAtStr >= RFC_METADATA_CUTOFF && (kind === "architecture" || kind === "contract");
442
- // Format: all RFCs, any age — each entry must match ^DNA-\d+$
443
- if (satisfiesPresent) {
444
- for (const entry of satisfiesArr) {
445
- if (!/^DNA-\d+$/.test(entry)) {
446
- addViolation(rfcId, relFile, "V-24", `satisfies entry "${entry}" does not match the format ^DNA-\\d+$ (RFC-0331).`);
447
- }
448
- }
449
- }
450
- // Presence: post-cutoff architecture/contract RFCs must have non-empty satisfies
451
- if (requiresSatisfies && !satisfiesPresent) {
452
- addViolation(rfcId, relFile, "V-24", `${kind} RFC created ${createdAtStr} (>= ${RFC_METADATA_CUTOFF}) must declare at least one DNA invariant in satisfies (RFC-0331).`);
453
- }
454
- }
455
- // V-28: RFC-id monotonicity (RFC-0478) — no RFC may have an id lower
456
- // than the maximum id among RFCs with a strictly earlier createdAt.
457
- // Same-day RFCs (equal createdAt) are unconstrained relative to each other.
458
- // Only applies to RFCs created strictly after RFC_VERSION_BUMP_CUTOFF;
459
- // pre-cutoff and same-day RFCs predate the rule and are exempt.
460
- // All RFCs (including pre-cutoff) participate in the comparison set.
461
- {
462
- const currentIdNum = parseInt(rfcId.replace(/^RFC-/, ""), 10);
463
- const currentCreatedAt = String(fm["createdAt"] ?? "");
464
- if (currentCreatedAt > RFC_VERSION_BUMP_CUTOFF) {
465
- let maxEarlierId = 0;
466
- for (const [otherId, other] of allParsed) {
467
- if (otherId === rfcId)
468
- continue;
469
- const otherCreatedAt = String(other.parsed.frontmatter["createdAt"] ?? "");
470
- if (otherCreatedAt < currentCreatedAt) {
471
- const otherIdNum = parseInt(otherId.replace(/^RFC-/, ""), 10);
472
- if (otherIdNum > maxEarlierId) {
473
- maxEarlierId = otherIdNum;
474
- }
475
- }
476
- }
477
- if (currentIdNum < maxEarlierId) {
478
- addViolation(rfcId, relFile, "V-28", `RFC-id ${rfcId} (createdAt ${currentCreatedAt}) is lower than RFC-${maxEarlierId} which has a strictly earlier createdAt. RFC-ids must be monotonically non-decreasing with respect to createdAt (RFC-0478).`);
479
- }
480
- }
481
- }
482
- // V-29: versionBump required for post-cutoff accepted/implemented RFCs (RFC-0478, ADR-0029)
483
- {
484
- const versionBump = fm["versionBump"];
485
- const isPostCutoff = createdAtStr >= RFC_VERSION_BUMP_CUTOFF;
486
- const requiresVersionBump = status === "implemented" || status === "accepted";
487
- if (isPostCutoff && requiresVersionBump && versionBump === undefined) {
488
- addViolation(rfcId, relFile, "V-29", `status is "${status}" and createdAt >= ${RFC_VERSION_BUMP_CUTOFF}, but versionBump is absent. Post-cutoff accepted/implemented RFCs must declare versionBump (RFC-0478).`);
489
- }
490
- if (versionBump === "none") {
491
- const commands = fm["commands"];
492
- const added = Array.isArray(commands?.added) ? commands.added : [];
493
- const changed = Array.isArray(commands?.changed) ? commands.changed : [];
494
- if (added.length > 0 || changed.length > 0) {
495
- addViolation(rfcId, relFile, "V-29", `versionBump is "none" but commands.added or commands.changed is non-empty. Commands imply code changes; use "patch" or "minor" instead (RFC-0478).`, "warning");
496
- }
497
- }
498
- }
499
- // V-30: breaksC field consistency (RFC-0480)
500
- // If breaksC: true — @warpgogol/ontology must be in packagesImpacted.
501
- // If breaksC absent/false but @warpgol/ontology in packagesImpacted — warning.
502
- // Skip for archived RFCs — package names changed during ecosystem consolidation (RFC-0776):
503
- // @warpgogol/ontology → @warpgogol/werkstatt-shared/ontology
504
- {
505
- const breaksC = fm["breaksC"];
506
- const packagesImpacted = Array.isArray(fm["packagesImpacted"])
507
- ? fm["packagesImpacted"].map(String)
508
- : [];
509
- const hasOntology = packagesImpacted.some((p) => p.includes("@warpgogol/werkstatt-shared/ontology"));
510
- if (breaksC === true && !hasOntology && !isArchived) {
511
- addViolation(rfcId, relFile, "V-30", `breaksC is true but @warpgogol/ontology is not in packagesImpacted. RFCs that break Layer C must update the declarative C-contract in packages/ontology/src/external-surfaces/ (RFC-0480).`);
512
- }
513
- if (breaksC !== true && hasOntology) {
514
- addViolation(rfcId, relFile, "V-30", `@warpgogol/ontology is in packagesImpacted but breaksC is not true. If this RFC modifies packages/ontology/src/external-surfaces/, declare breaksC: true (RFC-0480).`, "warning");
515
- }
516
- }
517
- // V-31: filename-number uniqueness and filename/id consistency (RFC-0491)
518
- if (seenFilenameNumbers) {
519
- const fileBasename = fileName.split("/").pop().split("\\").pop();
520
- const fileNumMatch = fileBasename.match(/^rfc-(\d{4})/);
521
- if (fileNumMatch) {
522
- const fileNum = parseInt(fileNumMatch[1], 10);
523
- const idNum = parseInt(rfcId.replace(/^RFC-/, ""), 10);
524
- // Sub-check A: filename number must match frontmatter id number
525
- if (!Number.isNaN(idNum) && fileNum !== idNum) {
526
- addViolation(rfcId, relFile, "V-31", `Filename number ${String(fileNum).padStart(4, "0")} does not match frontmatter id ${rfcId}`);
527
- }
528
- // Sub-check B: filename number must be unique across the full tree
529
- const prevNumFile = seenFilenameNumbers.get(fileNum);
530
- if (prevNumFile) {
531
- addViolation(rfcId, relFile, "V-31", `Duplicate filename number ${String(fileNum).padStart(4, "0")} — also in ${prevNumFile}`);
532
- }
533
- else {
534
- seenFilenameNumbers.set(fileNum, relFile);
535
- }
536
- }
537
- }
538
- // V-32: implementation commit drift detection (RFC-0625)
539
- // Warns when implement: RFC-XXXX commits exist in git history since createdAt
540
- // but the RFC status is not yet "implemented".
541
- {
542
- const driftResult = await checkImplementationCommitDrift(workspaceRoot, rfcId, createdAt, status);
543
- if (driftResult.found) {
544
- addViolation(rfcId, relFile, "V-32", `${rfcId} has ${driftResult.commitCount} implement: commit(s) in git history since ${createdAt} but status is still "${status}". Run rfc.implement.stamp to transition to implemented.`, "warning");
545
- }
546
- }
547
- // V-33: dependsOn referential integrity, self-dependency, rejected-dependency deadlock (RFC-0795)
548
- const dependsOn = fm["dependsOn"];
549
- if (Array.isArray(dependsOn)) {
550
- for (const depRef of dependsOn) {
551
- const depStr = String(depRef);
552
- if (!depStr)
553
- continue;
554
- if (depStr === rfcId) {
555
- addViolation(rfcId, relFile, "V-33", `dependsOn includes itself — an RFC cannot depend on itself`, "warning");
556
- }
557
- else if (!allParsed.has(depStr)) {
558
- addViolation(rfcId, relFile, "V-33", `dependsOn "${depStr}" does not match any existing RFC`, "warning");
559
- }
560
- else {
561
- const depStatus = String(allParsed.get(depStr).parsed.frontmatter["status"] ?? "");
562
- if (depStatus === "rejected") {
563
- addViolation(rfcId, relFile, "V-33", `dependsOn "${depStr}" has status "rejected" — this dependency will never be satisfied. Remove the entry or supersede the rejected RFC.`, "warning");
564
- }
565
- }
566
- }
567
- }
568
- // V-34: batch slug format (RFC-0795)
569
- const batchSlug = fm["batch"];
570
- if (batchSlug !== undefined && batchSlug !== null) {
571
- const batchStr = String(batchSlug);
572
- if (batchStr && !/^[a-z0-9]+(-[a-z0-9]+)*$/.test(batchStr)) {
573
- addViolation(rfcId, relFile, "V-34", `batch slug "${batchStr}" does not match kebab-case pattern /^[a-z0-9]+(-[a-z0-9]+)*$/`, "warning");
574
- }
575
- }
576
- // V-NC-01: NEEDS CLARIFICATION marker detection (RFC-0709)
577
- const ncMarkers = collectMarkers(body, status, createdAt);
578
- for (const marker of ncMarkers) {
579
- addViolation(rfcId, relFile, "V-NC-01", `Unresolved NEEDS CLARIFICATION marker at line ${marker.line}: "${marker.text}"`, marker.severity === "error" ? "error" : "warning");
580
- }
581
- return ncMarkers;
582
- }
583
- // ─── V-RFC-33: frontmatter YAML parseability (RFC-0755) ────────────────────
584
- export function checkFrontmatterYamlParse(fileName, result, addViolation) {
585
- if (result && "error" in result) {
586
- const relFile = path.join(RFC_DIR, fileName);
587
- addViolation("UNKNOWN", relFile, "V-RFC-33", `RFC frontmatter YAML parse error in ${fileName}: ${result.error}`);
588
- }
589
- }
590
- //# sourceMappingURL=validate-rules.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-rules.js","sourceRoot":"","sources":["../../../../os/rfc/handlers/validate-rules.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import type { ForgeCommandInput, ForgeCommandResult, ForgeRuntimeContext } from "../../../src/types.ts";
2
- import type { RfcValidationResult } from "../types.ts";
3
- export declare function runRfcValidate(input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<RfcValidationResult>>;
4
- //# sourceMappingURL=validate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../os/rfc/handlers/validate.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAA0B,mBAAmB,EAAU,MAAM,aAAa,CAAC;AAMvF,wBAAsB,cAAc,CAClC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,CAkIlD"}