@warpgogol/forge 1.1.0 → 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 (713) hide show
  1. package/AGENTS.md +8 -19
  2. package/README.md +93 -65
  3. package/README.uk.md +93 -65
  4. package/package.json +16 -3
  5. package/profiles/astro-typescript-turborepo.yaml +148 -1
  6. package/profiles/forge-shell.yaml +120 -1
  7. package/profiles/godot-csharp.yaml +280 -6
  8. package/profiles/phaser-turborepo.yaml +135 -1
  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/skills/fo/fo-spec-ingest/SKILL.md +1 -1
  16. package/dist/bin/cli.d.ts +0 -3
  17. package/dist/bin/cli.d.ts.map +0 -1
  18. package/dist/bin/cli.js +0 -292
  19. package/dist/bin/cli.js.map +0 -1
  20. package/dist/os/adr/adr.module.d.ts +0 -3
  21. package/dist/os/adr/adr.module.d.ts.map +0 -1
  22. package/dist/os/adr/adr.module.js +0 -145
  23. package/dist/os/adr/adr.module.js.map +0 -1
  24. package/dist/os/adr/frontmatter-io.d.ts +0 -12
  25. package/dist/os/adr/frontmatter-io.d.ts.map +0 -1
  26. package/dist/os/adr/frontmatter-io.js +0 -67
  27. package/dist/os/adr/frontmatter-io.js.map +0 -1
  28. package/dist/os/adr/handlers/archive.d.ts +0 -24
  29. package/dist/os/adr/handlers/archive.d.ts.map +0 -1
  30. package/dist/os/adr/handlers/archive.js +0 -194
  31. package/dist/os/adr/handlers/archive.js.map +0 -1
  32. package/dist/os/adr/handlers/implement-stamp.d.ts +0 -4
  33. package/dist/os/adr/handlers/implement-stamp.d.ts.map +0 -1
  34. package/dist/os/adr/handlers/implement-stamp.js +0 -258
  35. package/dist/os/adr/handlers/implement-stamp.js.map +0 -1
  36. package/dist/os/adr/handlers/list-create.d.ts +0 -5
  37. package/dist/os/adr/handlers/list-create.d.ts.map +0 -1
  38. package/dist/os/adr/handlers/list-create.js +0 -165
  39. package/dist/os/adr/handlers/list-create.js.map +0 -1
  40. package/dist/os/adr/handlers/validate.d.ts +0 -4
  41. package/dist/os/adr/handlers/validate.d.ts.map +0 -1
  42. package/dist/os/adr/handlers/validate.js +0 -265
  43. package/dist/os/adr/handlers/validate.js.map +0 -1
  44. package/dist/os/adr/index.d.ts +0 -8
  45. package/dist/os/adr/index.d.ts.map +0 -1
  46. package/dist/os/adr/index.js +0 -18
  47. package/dist/os/adr/index.js.map +0 -1
  48. package/dist/os/adr/types.d.ts +0 -75
  49. package/dist/os/adr/types.d.ts.map +0 -1
  50. package/dist/os/adr/types.js +0 -55
  51. package/dist/os/adr/types.js.map +0 -1
  52. package/dist/os/audit/audit.module.d.ts +0 -3
  53. package/dist/os/audit/audit.module.d.ts.map +0 -1
  54. package/dist/os/audit/audit.module.js +0 -44
  55. package/dist/os/audit/audit.module.js.map +0 -1
  56. package/dist/os/audit/frontmatter-io.d.ts +0 -12
  57. package/dist/os/audit/frontmatter-io.d.ts.map +0 -1
  58. package/dist/os/audit/frontmatter-io.js +0 -71
  59. package/dist/os/audit/frontmatter-io.js.map +0 -1
  60. package/dist/os/audit/handlers/archive.d.ts +0 -4
  61. package/dist/os/audit/handlers/archive.d.ts.map +0 -1
  62. package/dist/os/audit/handlers/archive.js +0 -207
  63. package/dist/os/audit/handlers/archive.js.map +0 -1
  64. package/dist/os/audit/index.d.ts +0 -6
  65. package/dist/os/audit/index.d.ts.map +0 -1
  66. package/dist/os/audit/index.js +0 -16
  67. package/dist/os/audit/index.js.map +0 -1
  68. package/dist/os/audit/types.d.ts +0 -12
  69. package/dist/os/audit/types.d.ts.map +0 -1
  70. package/dist/os/audit/types.js +0 -17
  71. package/dist/os/audit/types.js.map +0 -1
  72. package/dist/os/compass/compass.module.d.ts +0 -3
  73. package/dist/os/compass/compass.module.d.ts.map +0 -1
  74. package/dist/os/compass/compass.module.js +0 -166
  75. package/dist/os/compass/compass.module.js.map +0 -1
  76. package/dist/os/compass/handlers/compass-audit-handler.d.ts +0 -36
  77. package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +0 -1
  78. package/dist/os/compass/handlers/compass-audit-handler.js +0 -238
  79. package/dist/os/compass/handlers/compass-audit-handler.js.map +0 -1
  80. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +0 -19
  81. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +0 -1
  82. package/dist/os/compass/handlers/compass-change-summary-handler.js +0 -205
  83. package/dist/os/compass/handlers/compass-change-summary-handler.js.map +0 -1
  84. package/dist/os/compass/handlers/compass-inventory-handler.d.ts +0 -28
  85. package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +0 -1
  86. package/dist/os/compass/handlers/compass-inventory-handler.js +0 -213
  87. package/dist/os/compass/handlers/compass-inventory-handler.js.map +0 -1
  88. package/dist/os/compass/handlers/compass-inventory.d.ts +0 -30
  89. package/dist/os/compass/handlers/compass-inventory.d.ts.map +0 -1
  90. package/dist/os/compass/handlers/compass-inventory.js +0 -418
  91. package/dist/os/compass/handlers/compass-inventory.js.map +0 -1
  92. package/dist/os/compass/handlers/git-revision.d.ts +0 -8
  93. package/dist/os/compass/handlers/git-revision.d.ts.map +0 -1
  94. package/dist/os/compass/handlers/git-revision.js +0 -99
  95. package/dist/os/compass/handlers/git-revision.js.map +0 -1
  96. package/dist/os/compass/handlers/resolve-scan-root.d.ts +0 -3
  97. package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +0 -1
  98. package/dist/os/compass/handlers/resolve-scan-root.js +0 -57
  99. package/dist/os/compass/handlers/resolve-scan-root.js.map +0 -1
  100. package/dist/os/compass/index.d.ts +0 -8
  101. package/dist/os/compass/index.d.ts.map +0 -1
  102. package/dist/os/compass/index.js +0 -19
  103. package/dist/os/compass/index.js.map +0 -1
  104. package/dist/os/core/core.module.d.ts +0 -3
  105. package/dist/os/core/core.module.d.ts.map +0 -1
  106. package/dist/os/core/core.module.js +0 -758
  107. package/dist/os/core/core.module.js.map +0 -1
  108. package/dist/os/core/handlers/assets-check.d.ts +0 -19
  109. package/dist/os/core/handlers/assets-check.d.ts.map +0 -1
  110. package/dist/os/core/handlers/assets-check.js +0 -89
  111. package/dist/os/core/handlers/assets-check.js.map +0 -1
  112. package/dist/os/core/handlers/assets-helpers.d.ts +0 -28
  113. package/dist/os/core/handlers/assets-helpers.d.ts.map +0 -1
  114. package/dist/os/core/handlers/assets-helpers.js +0 -128
  115. package/dist/os/core/handlers/assets-helpers.js.map +0 -1
  116. package/dist/os/core/handlers/assets-list.d.ts +0 -9
  117. package/dist/os/core/handlers/assets-list.d.ts.map +0 -1
  118. package/dist/os/core/handlers/assets-list.js +0 -72
  119. package/dist/os/core/handlers/assets-list.js.map +0 -1
  120. package/dist/os/core/handlers/build.d.ts +0 -16
  121. package/dist/os/core/handlers/build.d.ts.map +0 -1
  122. package/dist/os/core/handlers/build.js +0 -123
  123. package/dist/os/core/handlers/build.js.map +0 -1
  124. package/dist/os/core/handlers/determinism-check.d.ts +0 -20
  125. package/dist/os/core/handlers/determinism-check.d.ts.map +0 -1
  126. package/dist/os/core/handlers/determinism-check.js +0 -289
  127. package/dist/os/core/handlers/determinism-check.js.map +0 -1
  128. package/dist/os/core/handlers/dev.d.ts +0 -10
  129. package/dist/os/core/handlers/dev.d.ts.map +0 -1
  130. package/dist/os/core/handlers/dev.js +0 -102
  131. package/dist/os/core/handlers/dev.js.map +0 -1
  132. package/dist/os/core/handlers/knowledge-compact.d.ts +0 -4
  133. package/dist/os/core/handlers/knowledge-compact.d.ts.map +0 -1
  134. package/dist/os/core/handlers/knowledge-compact.js +0 -198
  135. package/dist/os/core/handlers/knowledge-compact.js.map +0 -1
  136. package/dist/os/core/handlers/pinned-check.d.ts +0 -49
  137. package/dist/os/core/handlers/pinned-check.d.ts.map +0 -1
  138. package/dist/os/core/handlers/pinned-check.js +0 -159
  139. package/dist/os/core/handlers/pinned-check.js.map +0 -1
  140. package/dist/os/core/handlers/pinned-init.d.ts +0 -19
  141. package/dist/os/core/handlers/pinned-init.d.ts.map +0 -1
  142. package/dist/os/core/handlers/pinned-init.js +0 -283
  143. package/dist/os/core/handlers/pinned-init.js.map +0 -1
  144. package/dist/os/core/handlers/pinned-types.d.ts +0 -29
  145. package/dist/os/core/handlers/pinned-types.d.ts.map +0 -1
  146. package/dist/os/core/handlers/pinned-types.js +0 -16
  147. package/dist/os/core/handlers/pinned-types.js.map +0 -1
  148. package/dist/os/core/handlers/pinned-validate.d.ts +0 -4
  149. package/dist/os/core/handlers/pinned-validate.d.ts.map +0 -1
  150. package/dist/os/core/handlers/pinned-validate.js +0 -248
  151. package/dist/os/core/handlers/pinned-validate.js.map +0 -1
  152. package/dist/os/core/handlers/profile-resolve.d.ts +0 -13
  153. package/dist/os/core/handlers/profile-resolve.d.ts.map +0 -1
  154. package/dist/os/core/handlers/profile-resolve.js +0 -65
  155. package/dist/os/core/handlers/profile-resolve.js.map +0 -1
  156. package/dist/os/core/handlers/release-prepare.d.ts +0 -25
  157. package/dist/os/core/handlers/release-prepare.d.ts.map +0 -1
  158. package/dist/os/core/handlers/release-prepare.js +0 -228
  159. package/dist/os/core/handlers/release-prepare.js.map +0 -1
  160. package/dist/os/core/handlers/release-publish.d.ts +0 -13
  161. package/dist/os/core/handlers/release-publish.d.ts.map +0 -1
  162. package/dist/os/core/handlers/release-publish.js +0 -173
  163. package/dist/os/core/handlers/release-publish.js.map +0 -1
  164. package/dist/os/core/handlers/validate.d.ts +0 -26
  165. package/dist/os/core/handlers/validate.d.ts.map +0 -1
  166. package/dist/os/core/handlers/validate.js +0 -208
  167. package/dist/os/core/handlers/validate.js.map +0 -1
  168. package/dist/os/core/handlers/workspace-deps.d.ts +0 -12
  169. package/dist/os/core/handlers/workspace-deps.d.ts.map +0 -1
  170. package/dist/os/core/handlers/workspace-deps.js +0 -39
  171. package/dist/os/core/handlers/workspace-deps.js.map +0 -1
  172. package/dist/os/core/index.d.ts +0 -2
  173. package/dist/os/core/index.d.ts.map +0 -1
  174. package/dist/os/core/index.js +0 -13
  175. package/dist/os/core/index.js.map +0 -1
  176. package/dist/os/exploration/exploration.module.d.ts +0 -3
  177. package/dist/os/exploration/exploration.module.d.ts.map +0 -1
  178. package/dist/os/exploration/exploration.module.js +0 -82
  179. package/dist/os/exploration/exploration.module.js.map +0 -1
  180. package/dist/os/exploration/frontmatter-io.d.ts +0 -13
  181. package/dist/os/exploration/frontmatter-io.d.ts.map +0 -1
  182. package/dist/os/exploration/frontmatter-io.js +0 -61
  183. package/dist/os/exploration/frontmatter-io.js.map +0 -1
  184. package/dist/os/exploration/handlers/archive.d.ts +0 -4
  185. package/dist/os/exploration/handlers/archive.d.ts.map +0 -1
  186. package/dist/os/exploration/handlers/archive.js +0 -135
  187. package/dist/os/exploration/handlers/archive.js.map +0 -1
  188. package/dist/os/exploration/handlers/list.d.ts +0 -4
  189. package/dist/os/exploration/handlers/list.d.ts.map +0 -1
  190. package/dist/os/exploration/handlers/list.js +0 -56
  191. package/dist/os/exploration/handlers/list.js.map +0 -1
  192. package/dist/os/exploration/handlers/show.d.ts +0 -4
  193. package/dist/os/exploration/handlers/show.d.ts.map +0 -1
  194. package/dist/os/exploration/handlers/show.js +0 -91
  195. package/dist/os/exploration/handlers/show.js.map +0 -1
  196. package/dist/os/exploration/index.d.ts +0 -7
  197. package/dist/os/exploration/index.d.ts.map +0 -1
  198. package/dist/os/exploration/index.js +0 -17
  199. package/dist/os/exploration/index.js.map +0 -1
  200. package/dist/os/exploration/types.d.ts +0 -38
  201. package/dist/os/exploration/types.d.ts.map +0 -1
  202. package/dist/os/exploration/types.js +0 -23
  203. package/dist/os/exploration/types.js.map +0 -1
  204. package/dist/os/mission/handlers/archive.d.ts +0 -4
  205. package/dist/os/mission/handlers/archive.d.ts.map +0 -1
  206. package/dist/os/mission/handlers/archive.js +0 -356
  207. package/dist/os/mission/handlers/archive.js.map +0 -1
  208. package/dist/os/mission/index.d.ts +0 -2
  209. package/dist/os/mission/index.d.ts.map +0 -1
  210. package/dist/os/mission/index.js +0 -2
  211. package/dist/os/mission/index.js.map +0 -1
  212. package/dist/os/mission/mission.module.d.ts +0 -3
  213. package/dist/os/mission/mission.module.d.ts.map +0 -1
  214. package/dist/os/mission/mission.module.js +0 -44
  215. package/dist/os/mission/mission.module.js.map +0 -1
  216. package/dist/os/mission/types.d.ts +0 -23
  217. package/dist/os/mission/types.d.ts.map +0 -1
  218. package/dist/os/mission/types.js +0 -18
  219. package/dist/os/mission/types.js.map +0 -1
  220. package/dist/os/naming/index.d.ts +0 -3
  221. package/dist/os/naming/index.d.ts.map +0 -1
  222. package/dist/os/naming/index.js +0 -14
  223. package/dist/os/naming/index.js.map +0 -1
  224. package/dist/os/naming/naming-convention.d.ts +0 -25
  225. package/dist/os/naming/naming-convention.d.ts.map +0 -1
  226. package/dist/os/naming/naming-convention.js +0 -324
  227. package/dist/os/naming/naming-convention.js.map +0 -1
  228. package/dist/os/naming/naming.module.d.ts +0 -3
  229. package/dist/os/naming/naming.module.d.ts.map +0 -1
  230. package/dist/os/naming/naming.module.js +0 -33
  231. package/dist/os/naming/naming.module.js.map +0 -1
  232. package/dist/os/notes/index.d.ts +0 -2
  233. package/dist/os/notes/index.d.ts.map +0 -1
  234. package/dist/os/notes/index.js +0 -10
  235. package/dist/os/notes/index.js.map +0 -1
  236. package/dist/os/notes/notes.module.d.ts +0 -3
  237. package/dist/os/notes/notes.module.d.ts.map +0 -1
  238. package/dist/os/notes/notes.module.js +0 -83
  239. package/dist/os/notes/notes.module.js.map +0 -1
  240. package/dist/os/plan/frontmatter-io.d.ts +0 -12
  241. package/dist/os/plan/frontmatter-io.d.ts.map +0 -1
  242. package/dist/os/plan/frontmatter-io.js +0 -69
  243. package/dist/os/plan/frontmatter-io.js.map +0 -1
  244. package/dist/os/plan/handlers/archive.d.ts +0 -4
  245. package/dist/os/plan/handlers/archive.d.ts.map +0 -1
  246. package/dist/os/plan/handlers/archive.js +0 -206
  247. package/dist/os/plan/handlers/archive.js.map +0 -1
  248. package/dist/os/plan/index.d.ts +0 -6
  249. package/dist/os/plan/index.d.ts.map +0 -1
  250. package/dist/os/plan/index.js +0 -16
  251. package/dist/os/plan/index.js.map +0 -1
  252. package/dist/os/plan/plan.module.d.ts +0 -3
  253. package/dist/os/plan/plan.module.d.ts.map +0 -1
  254. package/dist/os/plan/plan.module.js +0 -44
  255. package/dist/os/plan/plan.module.js.map +0 -1
  256. package/dist/os/plan/types.d.ts +0 -12
  257. package/dist/os/plan/types.d.ts.map +0 -1
  258. package/dist/os/plan/types.js +0 -17
  259. package/dist/os/plan/types.js.map +0 -1
  260. package/dist/os/program/discovery.d.ts +0 -61
  261. package/dist/os/program/discovery.d.ts.map +0 -1
  262. package/dist/os/program/discovery.js +0 -236
  263. package/dist/os/program/discovery.js.map +0 -1
  264. package/dist/os/program/handlers/complete.d.ts +0 -12
  265. package/dist/os/program/handlers/complete.d.ts.map +0 -1
  266. package/dist/os/program/handlers/complete.js +0 -344
  267. package/dist/os/program/handlers/complete.js.map +0 -1
  268. package/dist/os/program/handlers/lease.d.ts +0 -13
  269. package/dist/os/program/handlers/lease.d.ts.map +0 -1
  270. package/dist/os/program/handlers/lease.js +0 -322
  271. package/dist/os/program/handlers/lease.js.map +0 -1
  272. package/dist/os/program/handlers/seal.d.ts +0 -12
  273. package/dist/os/program/handlers/seal.d.ts.map +0 -1
  274. package/dist/os/program/handlers/seal.js +0 -265
  275. package/dist/os/program/handlers/seal.js.map +0 -1
  276. package/dist/os/program/handlers/validate.d.ts +0 -14
  277. package/dist/os/program/handlers/validate.d.ts.map +0 -1
  278. package/dist/os/program/handlers/validate.js +0 -164
  279. package/dist/os/program/handlers/validate.js.map +0 -1
  280. package/dist/os/program/lease.d.ts +0 -39
  281. package/dist/os/program/lease.d.ts.map +0 -1
  282. package/dist/os/program/lease.js +0 -129
  283. package/dist/os/program/lease.js.map +0 -1
  284. package/dist/os/program/program.module.d.ts +0 -3
  285. package/dist/os/program/program.module.d.ts.map +0 -1
  286. package/dist/os/program/program.module.js +0 -201
  287. package/dist/os/program/program.module.js.map +0 -1
  288. package/dist/os/program/schemas.d.ts +0 -225
  289. package/dist/os/program/schemas.d.ts.map +0 -1
  290. package/dist/os/program/schemas.js +0 -174
  291. package/dist/os/program/schemas.js.map +0 -1
  292. package/dist/os/program/state.d.ts +0 -38
  293. package/dist/os/program/state.d.ts.map +0 -1
  294. package/dist/os/program/state.js +0 -189
  295. package/dist/os/program/state.js.map +0 -1
  296. package/dist/os/rfc/acceptance.d.ts +0 -15
  297. package/dist/os/rfc/acceptance.d.ts.map +0 -1
  298. package/dist/os/rfc/acceptance.js +0 -310
  299. package/dist/os/rfc/acceptance.js.map +0 -1
  300. package/dist/os/rfc/decision-log.d.ts +0 -6
  301. package/dist/os/rfc/decision-log.d.ts.map +0 -1
  302. package/dist/os/rfc/decision-log.js +0 -269
  303. package/dist/os/rfc/decision-log.js.map +0 -1
  304. package/dist/os/rfc/dna-trace.d.ts +0 -27
  305. package/dist/os/rfc/dna-trace.d.ts.map +0 -1
  306. package/dist/os/rfc/dna-trace.js +0 -214
  307. package/dist/os/rfc/dna-trace.js.map +0 -1
  308. package/dist/os/rfc/frontmatter-io.d.ts +0 -18
  309. package/dist/os/rfc/frontmatter-io.d.ts.map +0 -1
  310. package/dist/os/rfc/frontmatter-io.js +0 -110
  311. package/dist/os/rfc/frontmatter-io.js.map +0 -1
  312. package/dist/os/rfc/handlers/archive.d.ts +0 -25
  313. package/dist/os/rfc/handlers/archive.d.ts.map +0 -1
  314. package/dist/os/rfc/handlers/archive.js +0 -247
  315. package/dist/os/rfc/handlers/archive.js.map +0 -1
  316. package/dist/os/rfc/handlers/check.d.ts +0 -4
  317. package/dist/os/rfc/handlers/check.d.ts.map +0 -1
  318. package/dist/os/rfc/handlers/check.js +0 -195
  319. package/dist/os/rfc/handlers/check.js.map +0 -1
  320. package/dist/os/rfc/handlers/implement-stamp.d.ts +0 -4
  321. package/dist/os/rfc/handlers/implement-stamp.d.ts.map +0 -1
  322. package/dist/os/rfc/handlers/implement-stamp.js +0 -420
  323. package/dist/os/rfc/handlers/implement-stamp.js.map +0 -1
  324. package/dist/os/rfc/handlers/index-graph.d.ts +0 -13
  325. package/dist/os/rfc/handlers/index-graph.d.ts.map +0 -1
  326. package/dist/os/rfc/handlers/index-graph.js +0 -192
  327. package/dist/os/rfc/handlers/index-graph.js.map +0 -1
  328. package/dist/os/rfc/handlers/lifecycle.d.ts +0 -13
  329. package/dist/os/rfc/handlers/lifecycle.d.ts.map +0 -1
  330. package/dist/os/rfc/handlers/lifecycle.js +0 -155
  331. package/dist/os/rfc/handlers/lifecycle.js.map +0 -1
  332. package/dist/os/rfc/handlers/list-create.d.ts +0 -6
  333. package/dist/os/rfc/handlers/list-create.d.ts.map +0 -1
  334. package/dist/os/rfc/handlers/list-create.js +0 -240
  335. package/dist/os/rfc/handlers/list-create.js.map +0 -1
  336. package/dist/os/rfc/handlers/pipeline-status.d.ts +0 -26
  337. package/dist/os/rfc/handlers/pipeline-status.d.ts.map +0 -1
  338. package/dist/os/rfc/handlers/pipeline-status.js +0 -124
  339. package/dist/os/rfc/handlers/pipeline-status.js.map +0 -1
  340. package/dist/os/rfc/handlers/shared.d.ts +0 -22
  341. package/dist/os/rfc/handlers/shared.d.ts.map +0 -1
  342. package/dist/os/rfc/handlers/shared.js +0 -105
  343. package/dist/os/rfc/handlers/shared.js.map +0 -1
  344. package/dist/os/rfc/handlers/supersede-propose.d.ts +0 -4
  345. package/dist/os/rfc/handlers/supersede-propose.d.ts.map +0 -1
  346. package/dist/os/rfc/handlers/supersede-propose.js +0 -203
  347. package/dist/os/rfc/handlers/supersede-propose.js.map +0 -1
  348. package/dist/os/rfc/handlers/validate-rules.d.ts +0 -32
  349. package/dist/os/rfc/handlers/validate-rules.d.ts.map +0 -1
  350. package/dist/os/rfc/handlers/validate-rules.js +0 -590
  351. package/dist/os/rfc/handlers/validate-rules.js.map +0 -1
  352. package/dist/os/rfc/handlers/validate.d.ts +0 -4
  353. package/dist/os/rfc/handlers/validate.d.ts.map +0 -1
  354. package/dist/os/rfc/handlers/validate.js +0 -108
  355. package/dist/os/rfc/handlers/validate.js.map +0 -1
  356. package/dist/os/rfc/handlers.d.ts +0 -7
  357. package/dist/os/rfc/handlers.d.ts.map +0 -1
  358. package/dist/os/rfc/handlers.js +0 -19
  359. package/dist/os/rfc/handlers.js.map +0 -1
  360. package/dist/os/rfc/index.d.ts +0 -18
  361. package/dist/os/rfc/index.d.ts.map +0 -1
  362. package/dist/os/rfc/index.js +0 -24
  363. package/dist/os/rfc/index.js.map +0 -1
  364. package/dist/os/rfc/rfc.module.d.ts +0 -3
  365. package/dist/os/rfc/rfc.module.d.ts.map +0 -1
  366. package/dist/os/rfc/rfc.module.js +0 -366
  367. package/dist/os/rfc/rfc.module.js.map +0 -1
  368. package/dist/os/rfc/types.d.ts +0 -483
  369. package/dist/os/rfc/types.d.ts.map +0 -1
  370. package/dist/os/rfc/types.js +0 -100
  371. package/dist/os/rfc/types.js.map +0 -1
  372. package/dist/os/rfc/verification-evidence.d.ts +0 -8
  373. package/dist/os/rfc/verification-evidence.d.ts.map +0 -1
  374. package/dist/os/rfc/verification-evidence.js +0 -184
  375. package/dist/os/rfc/verification-evidence.js.map +0 -1
  376. package/dist/os/session/atif-parser.d.ts +0 -29
  377. package/dist/os/session/atif-parser.d.ts.map +0 -1
  378. package/dist/os/session/atif-parser.js +0 -140
  379. package/dist/os/session/atif-parser.js.map +0 -1
  380. package/dist/os/session/frontmatter-io.d.ts +0 -31
  381. package/dist/os/session/frontmatter-io.d.ts.map +0 -1
  382. package/dist/os/session/frontmatter-io.js +0 -146
  383. package/dist/os/session/frontmatter-io.js.map +0 -1
  384. package/dist/os/session/handlers/archive.d.ts +0 -4
  385. package/dist/os/session/handlers/archive.d.ts.map +0 -1
  386. package/dist/os/session/handlers/archive.js +0 -241
  387. package/dist/os/session/handlers/archive.js.map +0 -1
  388. package/dist/os/session/handlers/list.d.ts +0 -4
  389. package/dist/os/session/handlers/list.d.ts.map +0 -1
  390. package/dist/os/session/handlers/list.js +0 -147
  391. package/dist/os/session/handlers/list.js.map +0 -1
  392. package/dist/os/session/handlers/save.d.ts +0 -6
  393. package/dist/os/session/handlers/save.d.ts.map +0 -1
  394. package/dist/os/session/handlers/save.js +0 -297
  395. package/dist/os/session/handlers/save.js.map +0 -1
  396. package/dist/os/session/handlers/validate.d.ts +0 -4
  397. package/dist/os/session/handlers/validate.d.ts.map +0 -1
  398. package/dist/os/session/handlers/validate.js +0 -188
  399. package/dist/os/session/handlers/validate.js.map +0 -1
  400. package/dist/os/session/index.d.ts +0 -9
  401. package/dist/os/session/index.d.ts.map +0 -1
  402. package/dist/os/session/index.js +0 -20
  403. package/dist/os/session/index.js.map +0 -1
  404. package/dist/os/session/session.module.d.ts +0 -3
  405. package/dist/os/session/session.module.d.ts.map +0 -1
  406. package/dist/os/session/session.module.js +0 -115
  407. package/dist/os/session/session.module.js.map +0 -1
  408. package/dist/os/session/types.d.ts +0 -101
  409. package/dist/os/session/types.d.ts.map +0 -1
  410. package/dist/os/session/types.js +0 -52
  411. package/dist/os/session/types.js.map +0 -1
  412. package/dist/os/spec/live-spec-list.d.ts +0 -4
  413. package/dist/os/spec/live-spec-list.d.ts.map +0 -1
  414. package/dist/os/spec/live-spec-list.js +0 -64
  415. package/dist/os/spec/live-spec-list.js.map +0 -1
  416. package/dist/os/spec/live-spec-merge.d.ts +0 -4
  417. package/dist/os/spec/live-spec-merge.d.ts.map +0 -1
  418. package/dist/os/spec/live-spec-merge.js +0 -345
  419. package/dist/os/spec/live-spec-merge.js.map +0 -1
  420. package/dist/os/spec/live-spec-show.d.ts +0 -4
  421. package/dist/os/spec/live-spec-show.d.ts.map +0 -1
  422. package/dist/os/spec/live-spec-show.js +0 -99
  423. package/dist/os/spec/live-spec-show.js.map +0 -1
  424. package/dist/os/spec/live-spec-types.d.ts +0 -71
  425. package/dist/os/spec/live-spec-types.d.ts.map +0 -1
  426. package/dist/os/spec/live-spec-types.js +0 -14
  427. package/dist/os/spec/live-spec-types.js.map +0 -1
  428. package/dist/os/spec/live-spec-validate.d.ts +0 -4
  429. package/dist/os/spec/live-spec-validate.d.ts.map +0 -1
  430. package/dist/os/spec/live-spec-validate.js +0 -140
  431. package/dist/os/spec/live-spec-validate.js.map +0 -1
  432. package/dist/os/spec/spec-materialize.d.ts +0 -21
  433. package/dist/os/spec/spec-materialize.d.ts.map +0 -1
  434. package/dist/os/spec/spec-materialize.js +0 -336
  435. package/dist/os/spec/spec-materialize.js.map +0 -1
  436. package/dist/os/spec/spec-schema.d.ts +0 -126
  437. package/dist/os/spec/spec-schema.d.ts.map +0 -1
  438. package/dist/os/spec/spec-schema.js +0 -118
  439. package/dist/os/spec/spec-schema.js.map +0 -1
  440. package/dist/os/spec/spec-status.d.ts +0 -33
  441. package/dist/os/spec/spec-status.d.ts.map +0 -1
  442. package/dist/os/spec/spec-status.js +0 -222
  443. package/dist/os/spec/spec-status.js.map +0 -1
  444. package/dist/os/spec/spec-validate.d.ts +0 -4
  445. package/dist/os/spec/spec-validate.d.ts.map +0 -1
  446. package/dist/os/spec/spec-validate.js +0 -435
  447. package/dist/os/spec/spec-validate.js.map +0 -1
  448. package/dist/os/spec/spec.module.d.ts +0 -3
  449. package/dist/os/spec/spec.module.d.ts.map +0 -1
  450. package/dist/os/spec/spec.module.js +0 -119
  451. package/dist/os/spec/spec.module.js.map +0 -1
  452. package/dist/os/werkstatt/handlers/lock.d.ts +0 -10
  453. package/dist/os/werkstatt/handlers/lock.d.ts.map +0 -1
  454. package/dist/os/werkstatt/handlers/lock.js +0 -153
  455. package/dist/os/werkstatt/handlers/lock.js.map +0 -1
  456. package/dist/os/werkstatt/handlers/schema.d.ts +0 -33
  457. package/dist/os/werkstatt/handlers/schema.d.ts.map +0 -1
  458. package/dist/os/werkstatt/handlers/schema.js +0 -42
  459. package/dist/os/werkstatt/handlers/schema.js.map +0 -1
  460. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts +0 -15
  461. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +0 -1
  462. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +0 -144
  463. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +0 -1
  464. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts +0 -18
  465. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts.map +0 -1
  466. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js +0 -43
  467. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js.map +0 -1
  468. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts +0 -11
  469. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +0 -1
  470. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +0 -79
  471. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +0 -1
  472. package/dist/os/werkstatt/index.d.ts +0 -7
  473. package/dist/os/werkstatt/index.d.ts.map +0 -1
  474. package/dist/os/werkstatt/index.js +0 -18
  475. package/dist/os/werkstatt/index.js.map +0 -1
  476. package/dist/os/werkstatt/werkstatt.module.d.ts +0 -3
  477. package/dist/os/werkstatt/werkstatt.module.d.ts.map +0 -1
  478. package/dist/os/werkstatt/werkstatt.module.js +0 -58
  479. package/dist/os/werkstatt/werkstatt.module.js.map +0 -1
  480. package/dist/os/workflow/handlers.d.ts +0 -12
  481. package/dist/os/workflow/handlers.d.ts.map +0 -1
  482. package/dist/os/workflow/handlers.js +0 -254
  483. package/dist/os/workflow/handlers.js.map +0 -1
  484. package/dist/os/workflow/index.d.ts +0 -4
  485. package/dist/os/workflow/index.d.ts.map +0 -1
  486. package/dist/os/workflow/index.js +0 -18
  487. package/dist/os/workflow/index.js.map +0 -1
  488. package/dist/os/workflow/types.d.ts +0 -69
  489. package/dist/os/workflow/types.d.ts.map +0 -1
  490. package/dist/os/workflow/types.js +0 -23
  491. package/dist/os/workflow/types.js.map +0 -1
  492. package/dist/os/workflow/workflow.module.d.ts +0 -3
  493. package/dist/os/workflow/workflow.module.d.ts.map +0 -1
  494. package/dist/os/workflow/workflow.module.js +0 -48
  495. package/dist/os/workflow/workflow.module.js.map +0 -1
  496. package/dist/src/cli-output.d.ts +0 -5
  497. package/dist/src/cli-output.d.ts.map +0 -1
  498. package/dist/src/cli-output.js +0 -53
  499. package/dist/src/cli-output.js.map +0 -1
  500. package/dist/src/config/forge-config.d.ts +0 -242
  501. package/dist/src/config/forge-config.d.ts.map +0 -1
  502. package/dist/src/config/forge-config.js +0 -359
  503. package/dist/src/config/forge-config.js.map +0 -1
  504. package/dist/src/forge-module.d.ts +0 -16
  505. package/dist/src/forge-module.d.ts.map +0 -1
  506. package/dist/src/forge-module.js +0 -15
  507. package/dist/src/forge-module.js.map +0 -1
  508. package/dist/src/index.d.ts +0 -36
  509. package/dist/src/index.d.ts.map +0 -1
  510. package/dist/src/index.js +0 -56
  511. package/dist/src/index.js.map +0 -1
  512. package/dist/src/knowledge/budgets.d.ts +0 -38
  513. package/dist/src/knowledge/budgets.d.ts.map +0 -1
  514. package/dist/src/knowledge/budgets.js +0 -157
  515. package/dist/src/knowledge/budgets.js.map +0 -1
  516. package/dist/src/knowledge/compact.d.ts +0 -47
  517. package/dist/src/knowledge/compact.d.ts.map +0 -1
  518. package/dist/src/knowledge/compact.js +0 -320
  519. package/dist/src/knowledge/compact.js.map +0 -1
  520. package/dist/src/knowledge/index.d.ts +0 -7
  521. package/dist/src/knowledge/index.d.ts.map +0 -1
  522. package/dist/src/knowledge/index.js +0 -19
  523. package/dist/src/knowledge/index.js.map +0 -1
  524. package/dist/src/knowledge/parse.d.ts +0 -3
  525. package/dist/src/knowledge/parse.d.ts.map +0 -1
  526. package/dist/src/knowledge/parse.js +0 -205
  527. package/dist/src/knowledge/parse.js.map +0 -1
  528. package/dist/src/knowledge/promote.d.ts +0 -37
  529. package/dist/src/knowledge/promote.d.ts.map +0 -1
  530. package/dist/src/knowledge/promote.js +0 -120
  531. package/dist/src/knowledge/promote.js.map +0 -1
  532. package/dist/src/knowledge/schema.d.ts +0 -61
  533. package/dist/src/knowledge/schema.d.ts.map +0 -1
  534. package/dist/src/knowledge/schema.js +0 -64
  535. package/dist/src/knowledge/schema.js.map +0 -1
  536. package/dist/src/knowledge/serialize.d.ts +0 -3
  537. package/dist/src/knowledge/serialize.d.ts.map +0 -1
  538. package/dist/src/knowledge/serialize.js +0 -67
  539. package/dist/src/knowledge/serialize.js.map +0 -1
  540. package/dist/src/migration-adapters/git-utils.d.ts +0 -3
  541. package/dist/src/migration-adapters/git-utils.d.ts.map +0 -1
  542. package/dist/src/migration-adapters/git-utils.js +0 -56
  543. package/dist/src/migration-adapters/git-utils.js.map +0 -1
  544. package/dist/src/migration-adapters/ignored-files.d.ts +0 -12
  545. package/dist/src/migration-adapters/ignored-files.d.ts.map +0 -1
  546. package/dist/src/migration-adapters/ignored-files.js +0 -190
  547. package/dist/src/migration-adapters/ignored-files.js.map +0 -1
  548. package/dist/src/migration-adapters/index.d.ts +0 -8
  549. package/dist/src/migration-adapters/index.d.ts.map +0 -1
  550. package/dist/src/migration-adapters/index.js +0 -17
  551. package/dist/src/migration-adapters/index.js.map +0 -1
  552. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts +0 -3
  553. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts.map +0 -1
  554. package/dist/src/migration-adapters/node-typescript-pnpm/index.js +0 -141
  555. package/dist/src/migration-adapters/node-typescript-pnpm/index.js.map +0 -1
  556. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts +0 -3
  557. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts.map +0 -1
  558. package/dist/src/migration-adapters/phaser-pnpm/index.js +0 -142
  559. package/dist/src/migration-adapters/phaser-pnpm/index.js.map +0 -1
  560. package/dist/src/migration-adapters/registry.d.ts +0 -6
  561. package/dist/src/migration-adapters/registry.d.ts.map +0 -1
  562. package/dist/src/migration-adapters/registry.js +0 -55
  563. package/dist/src/migration-adapters/registry.js.map +0 -1
  564. package/dist/src/migration-adapters/types.d.ts +0 -35
  565. package/dist/src/migration-adapters/types.d.ts.map +0 -1
  566. package/dist/src/migration-adapters/types.js +0 -31
  567. package/dist/src/migration-adapters/types.js.map +0 -1
  568. package/dist/src/onboarding/agents-generate.d.ts +0 -30
  569. package/dist/src/onboarding/agents-generate.d.ts.map +0 -1
  570. package/dist/src/onboarding/agents-generate.js +0 -352
  571. package/dist/src/onboarding/agents-generate.js.map +0 -1
  572. package/dist/src/onboarding/create.d.ts +0 -12
  573. package/dist/src/onboarding/create.d.ts.map +0 -1
  574. package/dist/src/onboarding/create.js +0 -318
  575. package/dist/src/onboarding/create.js.map +0 -1
  576. package/dist/src/onboarding/doctor.d.ts +0 -45
  577. package/dist/src/onboarding/doctor.d.ts.map +0 -1
  578. package/dist/src/onboarding/doctor.js +0 -1108
  579. package/dist/src/onboarding/doctor.js.map +0 -1
  580. package/dist/src/onboarding/init.d.ts +0 -32
  581. package/dist/src/onboarding/init.d.ts.map +0 -1
  582. package/dist/src/onboarding/init.js +0 -291
  583. package/dist/src/onboarding/init.js.map +0 -1
  584. package/dist/src/onboarding/invariant-engine.d.ts +0 -17
  585. package/dist/src/onboarding/invariant-engine.d.ts.map +0 -1
  586. package/dist/src/onboarding/invariant-engine.js +0 -416
  587. package/dist/src/onboarding/invariant-engine.js.map +0 -1
  588. package/dist/src/onboarding/memory-scaffold.d.ts +0 -18
  589. package/dist/src/onboarding/memory-scaffold.d.ts.map +0 -1
  590. package/dist/src/onboarding/memory-scaffold.js +0 -151
  591. package/dist/src/onboarding/memory-scaffold.js.map +0 -1
  592. package/dist/src/onboarding/nested-agents-generate.d.ts +0 -18
  593. package/dist/src/onboarding/nested-agents-generate.d.ts.map +0 -1
  594. package/dist/src/onboarding/nested-agents-generate.js +0 -69
  595. package/dist/src/onboarding/nested-agents-generate.js.map +0 -1
  596. package/dist/src/onboarding/nested-agents-templates.d.ts +0 -26
  597. package/dist/src/onboarding/nested-agents-templates.d.ts.map +0 -1
  598. package/dist/src/onboarding/nested-agents-templates.js +0 -178
  599. package/dist/src/onboarding/nested-agents-templates.js.map +0 -1
  600. package/dist/src/onboarding/profile-validate.d.ts +0 -13
  601. package/dist/src/onboarding/profile-validate.d.ts.map +0 -1
  602. package/dist/src/onboarding/profile-validate.js +0 -109
  603. package/dist/src/onboarding/profile-validate.js.map +0 -1
  604. package/dist/src/onboarding/scaffold-project.d.ts +0 -12
  605. package/dist/src/onboarding/scaffold-project.d.ts.map +0 -1
  606. package/dist/src/onboarding/scaffold-project.js +0 -248
  607. package/dist/src/onboarding/scaffold-project.js.map +0 -1
  608. package/dist/src/onboarding/scaffold.d.ts +0 -15
  609. package/dist/src/onboarding/scaffold.d.ts.map +0 -1
  610. package/dist/src/onboarding/scaffold.js +0 -120
  611. package/dist/src/onboarding/scaffold.js.map +0 -1
  612. package/dist/src/onboarding/upgrade.d.ts +0 -25
  613. package/dist/src/onboarding/upgrade.d.ts.map +0 -1
  614. package/dist/src/onboarding/upgrade.js +0 -391
  615. package/dist/src/onboarding/upgrade.js.map +0 -1
  616. package/dist/src/onboarding/workspace-discovery.d.ts +0 -11
  617. package/dist/src/onboarding/workspace-discovery.d.ts.map +0 -1
  618. package/dist/src/onboarding/workspace-discovery.js +0 -138
  619. package/dist/src/onboarding/workspace-discovery.js.map +0 -1
  620. package/dist/src/profiles/profile-schema.d.ts +0 -351
  621. package/dist/src/profiles/profile-schema.d.ts.map +0 -1
  622. package/dist/src/profiles/profile-schema.js +0 -201
  623. package/dist/src/profiles/profile-schema.js.map +0 -1
  624. package/dist/src/profiles/stack-profile.d.ts +0 -168
  625. package/dist/src/profiles/stack-profile.d.ts.map +0 -1
  626. package/dist/src/profiles/stack-profile.js +0 -144
  627. package/dist/src/profiles/stack-profile.js.map +0 -1
  628. package/dist/src/profiles/terminology-utils.d.ts +0 -8
  629. package/dist/src/profiles/terminology-utils.d.ts.map +0 -1
  630. package/dist/src/profiles/terminology-utils.js +0 -31
  631. package/dist/src/profiles/terminology-utils.js.map +0 -1
  632. package/dist/src/registry.d.ts +0 -38
  633. package/dist/src/registry.d.ts.map +0 -1
  634. package/dist/src/registry.js +0 -135
  635. package/dist/src/registry.js.map +0 -1
  636. package/dist/src/skill-schema.d.ts +0 -30
  637. package/dist/src/skill-schema.d.ts.map +0 -1
  638. package/dist/src/skill-schema.js +0 -34
  639. package/dist/src/skill-schema.js.map +0 -1
  640. package/dist/src/types.d.ts +0 -152
  641. package/dist/src/types.d.ts.map +0 -1
  642. package/dist/src/types.js +0 -17
  643. package/dist/src/types.js.map +0 -1
  644. package/dist/src/utils/fs-atomic.d.ts +0 -7
  645. package/dist/src/utils/fs-atomic.d.ts.map +0 -1
  646. package/dist/src/utils/fs-atomic.js +0 -81
  647. package/dist/src/utils/fs-atomic.js.map +0 -1
  648. package/dist/src/utils/fs-idempotent.d.ts +0 -2
  649. package/dist/src/utils/fs-idempotent.d.ts.map +0 -1
  650. package/dist/src/utils/fs-idempotent.js +0 -39
  651. package/dist/src/utils/fs-idempotent.js.map +0 -1
  652. package/dist/src/utils/fs-trash-sync.d.ts +0 -2
  653. package/dist/src/utils/fs-trash-sync.d.ts.map +0 -1
  654. package/dist/src/utils/fs-trash-sync.js +0 -34
  655. package/dist/src/utils/fs-trash-sync.js.map +0 -1
  656. package/dist/src/utils/fs-trash.d.ts +0 -2
  657. package/dist/src/utils/fs-trash.d.ts.map +0 -1
  658. package/dist/src/utils/fs-trash.js +0 -24
  659. package/dist/src/utils/fs-trash.js.map +0 -1
  660. package/dist/src/utils/fs.d.ts +0 -8
  661. package/dist/src/utils/fs.d.ts.map +0 -1
  662. package/dist/src/utils/fs.js +0 -60
  663. package/dist/src/utils/fs.js.map +0 -1
  664. package/dist/src/utils/generated-marker.d.ts +0 -21
  665. package/dist/src/utils/generated-marker.d.ts.map +0 -1
  666. package/dist/src/utils/generated-marker.js +0 -128
  667. package/dist/src/utils/generated-marker.js.map +0 -1
  668. package/dist/src/utils/hash.d.ts +0 -2
  669. package/dist/src/utils/hash.d.ts.map +0 -1
  670. package/dist/src/utils/hash.js +0 -18
  671. package/dist/src/utils/hash.js.map +0 -1
  672. package/dist/src/utils/index.d.ts +0 -9
  673. package/dist/src/utils/index.d.ts.map +0 -1
  674. package/dist/src/utils/index.js +0 -21
  675. package/dist/src/utils/index.js.map +0 -1
  676. package/dist/src/utils/string-utils.d.ts +0 -2
  677. package/dist/src/utils/string-utils.d.ts.map +0 -1
  678. package/dist/src/utils/string-utils.js +0 -19
  679. package/dist/src/utils/string-utils.js.map +0 -1
  680. package/dist/src/validators/note-frontmatter-validate.d.ts +0 -20
  681. package/dist/src/validators/note-frontmatter-validate.d.ts.map +0 -1
  682. package/dist/src/validators/note-frontmatter-validate.js +0 -117
  683. package/dist/src/validators/note-frontmatter-validate.js.map +0 -1
  684. package/dist/src/validators/note-link-validate.d.ts +0 -21
  685. package/dist/src/validators/note-link-validate.d.ts.map +0 -1
  686. package/dist/src/validators/note-link-validate.js +0 -121
  687. package/dist/src/validators/note-link-validate.js.map +0 -1
  688. package/dist/src/validators/note-orphan-detect.d.ts +0 -19
  689. package/dist/src/validators/note-orphan-detect.d.ts.map +0 -1
  690. package/dist/src/validators/note-orphan-detect.js +0 -123
  691. package/dist/src/validators/note-orphan-detect.js.map +0 -1
  692. package/dist/src/validators/port-validate.d.ts +0 -12
  693. package/dist/src/validators/port-validate.d.ts.map +0 -1
  694. package/dist/src/validators/port-validate.js +0 -78
  695. package/dist/src/validators/port-validate.js.map +0 -1
  696. package/dist/src/validators/skill-validate.d.ts +0 -29
  697. package/dist/src/validators/skill-validate.d.ts.map +0 -1
  698. package/dist/src/validators/skill-validate.js +0 -689
  699. package/dist/src/validators/skill-validate.js.map +0 -1
  700. package/profiles/editframe-templates/composition-agents.md +0 -69
  701. package/profiles/editframe-templates/composition.tsx +0 -81
  702. package/profiles/editframe-templates/html-composition-agents.md +0 -62
  703. package/profiles/editframe.yaml +0 -729
  704. package/profiles/obsidian-vault.yaml +0 -103
  705. package/skills/fo/ef-brand-video-generator/SKILL.md +0 -92
  706. package/skills/fo/ef-composition/SKILL.md +0 -156
  707. package/skills/fo/ef-composition-review/SKILL.md +0 -68
  708. package/skills/fo/ef-dev-server/SKILL.md +0 -107
  709. package/skills/fo/ef-editor-gui/SKILL.md +0 -131
  710. package/skills/fo/ef-motion-design/SKILL.md +0 -118
  711. package/skills/fo/ef-onboard/SKILL.md +0 -77
  712. package/skills/fo/ef-render-verify/SKILL.md +0 -56
  713. package/skills/fo/ef-webhooks/SKILL.md +0 -95
@@ -1,420 +0,0 @@
1
- /*
2
- <MODULE_CONTRACT>
3
- <purpose>
4
- RFC-0476: rfc.implement.stamp — the exclusive atomic path for every
5
- accepted → implemented RFC transition. Validates preconditions, records
6
- verification evidence, and atomically mutates RFC frontmatter.
7
- </purpose>
8
- <non-goals>
9
- <item>Does not transition non-accepted RFCs.</item>
10
- <item>Does not bypass V-26/V-27 criterion semantics — reuses evaluateAcceptanceCriteria.</item>
11
- <item>Does not call the GitHub API or require network access.</item>
12
- </non-goals>
13
- </MODULE_CONTRACT>
14
- <CHANGE_SUMMARY>
15
- <item>RFC-0476: initial implementation.</item>
16
- <item>RFC-0756: auto-detect implementation commit when --implementation-commit is omitted.</item>
17
- <item>RFC-0795: add RFC-IMP-07 dependsOn dependency gate — blocks stamping when any dependsOn entry is not implemented.</item>
18
- </CHANGE_SUMMARY>
19
- */
20
- import { execFile } from "node:child_process";
21
- import { readFile, unlink, mkdir } from "node:fs/promises";
22
- import { join, dirname } from "node:path";
23
- import { writeFileAtomic } from "../../../src/utils/fs-atomic.js";
24
- import { parse as yamlParse } from "yaml";
25
- import { listRfcFiles, readAndParseRfc, rfcFileMatchesId, loadRfcStatusMap, } from "../frontmatter-io.js";
26
- import { evaluateAcceptanceCriteria } from "./validate-rules.js";
27
- import { toIsoDate } from "./shared.js";
28
- import { RFC_DIR, RFC_METADATA_CUTOFF } from "../types.js";
29
- const VERIFICATION_DIR = join(RFC_DIR, "verification");
30
- // ─── Git helpers ─────────────────────────────────────────────────────────────
31
- function execGit(workspaceRoot, args) {
32
- return new Promise((resolve) => {
33
- execFile("git", args, { cwd: workspaceRoot, timeout: 10000 }, (err, stdout) => {
34
- if (err) {
35
- resolve("");
36
- return;
37
- }
38
- resolve(stdout.trim());
39
- });
40
- });
41
- }
42
- async function isRfcFileClean(workspaceRoot, rfcRelPath) {
43
- const status = await execGit(workspaceRoot, ["status", "--porcelain", "--", rfcRelPath]);
44
- return status.length === 0;
45
- }
46
- async function commitReachableFromHead(workspaceRoot, commitSha) {
47
- const _result = await execGit(workspaceRoot, ["merge-base", "--is-ancestor", commitSha, "HEAD"]);
48
- // merge-base --is-ancestor exits 0 if ancestor, 1 if not, >1 on error
49
- // execGit returns "" on error (non-zero exit), trimmed stdout on success
50
- // So we need a different approach: check exit code directly
51
- return new Promise((resolve) => {
52
- execFile("git", ["merge-base", "--is-ancestor", commitSha, "HEAD"], { cwd: workspaceRoot, timeout: 10000 }, (err) => {
53
- resolve(!err);
54
- });
55
- });
56
- }
57
- async function autoDetectImplementationCommit(workspaceRoot, rfcId) {
58
- const hashes = await execGit(workspaceRoot, [
59
- "log",
60
- "--fixed-strings",
61
- "--no-merges",
62
- `--grep=${rfcId}`,
63
- "--format=%H",
64
- ]);
65
- const hashList = hashes.split("\n").filter(Boolean);
66
- if (hashList.length === 0)
67
- return { none: true };
68
- if (hashList.length === 1)
69
- return { sha: hashList[0] };
70
- const details = await execGit(workspaceRoot, [
71
- "log",
72
- "--fixed-strings",
73
- "--no-merges",
74
- `--grep=${rfcId}`,
75
- "--format=%h %s",
76
- ]);
77
- const candidates = details
78
- .split("\n")
79
- .filter(Boolean)
80
- .map((line) => {
81
- const spaceIdx = line.indexOf(" ");
82
- const sha = spaceIdx >= 0 ? line.slice(0, spaceIdx) : line;
83
- const message = spaceIdx >= 0 ? line.slice(spaceIdx + 1) : "";
84
- return { sha, message };
85
- });
86
- return { multiple: candidates };
87
- }
88
- async function commitReferencesRfc(workspaceRoot, commitSha, rfcId) {
89
- // Check the commit message and the diff for the RFC ID
90
- const commitMsg = await execGit(workspaceRoot, ["log", "-1", "--format=%B", commitSha]);
91
- if (commitMsg.includes(rfcId))
92
- return true;
93
- // Also check if the commit touched a file whose name contains the RFC id
94
- const changedFiles = await execGit(workspaceRoot, [
95
- "show",
96
- "--name-only",
97
- "--format=",
98
- commitSha,
99
- ]);
100
- const slug = rfcId.toLowerCase();
101
- if (changedFiles.toLowerCase().includes(slug))
102
- return true;
103
- return false;
104
- }
105
- // ─── RFC-specific exclusive lock ─────────────────────────────────────────────
106
- function lockFilePath(workspaceRoot, rfcId) {
107
- const slug = rfcId.toLowerCase();
108
- return join(workspaceRoot, ".rfc-locks", `${slug}.lock`);
109
- }
110
- async function acquireRfcLock(workspaceRoot, rfcId) {
111
- const lockPath = lockFilePath(workspaceRoot, rfcId);
112
- const lockDir = dirname(lockPath);
113
- await mkdir(lockDir, { recursive: true });
114
- // Atomic lock acquisition via O_EXCL file creation
115
- const { open } = await import("node:fs/promises");
116
- try {
117
- const handle = await open(lockPath, "wx");
118
- await handle.writeFile(JSON.stringify({ pid: process.pid, acquiredAt: new Date().toISOString() }));
119
- await handle.close();
120
- return { acquired: true, lockPath };
121
- }
122
- catch {
123
- return { acquired: false, lockPath };
124
- }
125
- }
126
- async function releaseRfcLock(lockPath) {
127
- try {
128
- await unlink(lockPath);
129
- }
130
- catch {
131
- // Lock file already removed — safe
132
- }
133
- }
134
- // ─── Evidence helpers ────────────────────────────────────────────────────────
135
- async function checkExistingEvidence(workspaceRoot, rfcId) {
136
- const slug = rfcId.toLowerCase();
137
- const evidencePath = join(workspaceRoot, VERIFICATION_DIR, `${slug}.generated.yaml`);
138
- try {
139
- const content = await readFile(evidencePath, "utf-8");
140
- const evidence = yamlParse(content);
141
- return { exists: true, overall: String(evidence.overall ?? "") };
142
- }
143
- catch {
144
- return { exists: false, overall: "missing" };
145
- }
146
- }
147
- // ─── Frontmatter mutation ────────────────────────────────────────────────────
148
- function mutateFrontmatter(source, status, implementedAt, updatedAt) {
149
- let content = source;
150
- // Replace status
151
- content = content.replace(/^status: \w+$/m, `status: ${status}`);
152
- // Replace implementedAt (may be empty or already set)
153
- if (/^implementedAt:.*$/m.test(content)) {
154
- content = content.replace(/^implementedAt:.*$/m, `implementedAt: ${implementedAt}`);
155
- }
156
- else {
157
- // Insert after updatedAt
158
- content = content.replace(/^updatedAt: .*$/m, `updatedAt: ${updatedAt}\nimplementedAt: ${implementedAt}`);
159
- }
160
- // Replace updatedAt
161
- content = content.replace(/^updatedAt: .*$/m, `updatedAt: ${updatedAt}`);
162
- return content;
163
- }
164
- // ─── Main handler ────────────────────────────────────────────────────────────
165
- export async function runRfcImplementStamp(input, context) {
166
- const { workspaceRoot, logger, outputFormat, dryRun } = context;
167
- const rfcDirPath = join(workspaceRoot, RFC_DIR);
168
- const targetId = input.flags["id"];
169
- let implementationCommit = input.flags["implementation-commit"];
170
- // ── Flag validation ───────────────────────────────────────────────────────
171
- if (!targetId) {
172
- throw new Error("rfc.implement.stamp requires --id flag (e.g. --id RFC-0476).");
173
- }
174
- const violations = [];
175
- const isDryRun = dryRun || input.flags["dry-run"] === true;
176
- // ── Find the target RFC ───────────────────────────────────────────────────
177
- const files = await listRfcFiles(rfcDirPath);
178
- const targetFile = files.find((f) => rfcFileMatchesId(f, targetId));
179
- if (!targetFile) {
180
- violations.push({
181
- rule: "RFC-IMP-01",
182
- message: `RFC ${targetId} not found in ${RFC_DIR}.`,
183
- });
184
- return stampFailResult(violations, isDryRun, outputFormat, logger);
185
- }
186
- const targetParsed = await readAndParseRfc(rfcDirPath, targetFile);
187
- if (!targetParsed) {
188
- violations.push({
189
- rule: "RFC-IMP-01",
190
- message: `Could not parse target RFC ${targetId}.`,
191
- });
192
- return stampFailResult(violations, isDryRun, outputFormat, logger);
193
- }
194
- if ("error" in targetParsed) {
195
- violations.push({
196
- rule: "RFC-IMP-01",
197
- message: `Could not parse target RFC ${targetId}: ${targetParsed.error}`,
198
- });
199
- return stampFailResult(violations, isDryRun, outputFormat, logger);
200
- }
201
- const fm = targetParsed.parsed.frontmatter;
202
- const body = targetParsed.parsed.body;
203
- const currentStatus = String(fm["status"] ?? "");
204
- // ── RFC-IMP-01: must be in accepted status ────────────────────────────────
205
- if (currentStatus !== "accepted") {
206
- violations.push({
207
- rule: "RFC-IMP-01",
208
- message: `RFC ${targetId} has status "${currentStatus}" — only "accepted" RFCs can be stamped to "implemented".`,
209
- });
210
- return stampFailResult(violations, isDryRun, outputFormat, logger);
211
- }
212
- // ── RFC-IMP-02: criterion checks (V-26/V-27 semantics) ────────────────────
213
- const criteriaEval = evaluateAcceptanceCriteria(body);
214
- if (criteriaEval.totalUnchecked > 0) {
215
- violations.push({
216
- rule: "RFC-IMP-02",
217
- message: `${criteriaEval.totalUnchecked} acceptance criteria are unchecked. All criteria must be checked before stamping: ${criteriaEval.uncheckedLines.join("; ")}`,
218
- });
219
- }
220
- if (criteriaEval.checkedWithoutEvidence.length > 0) {
221
- violations.push({
222
- rule: "RFC-IMP-02",
223
- message: `${criteriaEval.checkedWithoutEvidence.length} checked criteria lack inline (evidence: ...) annotation: ${criteriaEval.checkedWithoutEvidence.join("; ")}`,
224
- });
225
- }
226
- // ── RFC-IMP-07: dependsOn dependency gate (RFC-0795) ──────────────────────
227
- const dependsOn = fm["dependsOn"];
228
- if (Array.isArray(dependsOn) && dependsOn.length > 0) {
229
- const statusMap = await loadRfcStatusMap(rfcDirPath);
230
- for (const depRef of dependsOn) {
231
- const depId = String(depRef);
232
- if (!depId)
233
- continue;
234
- const depStatus = statusMap.get(depId);
235
- if (!depStatus) {
236
- violations.push({
237
- rule: "RFC-IMP-07",
238
- message: `RFC ${targetId} depends on ${depId}, which does not exist in ${RFC_DIR}.`,
239
- });
240
- }
241
- else if (depStatus !== "implemented") {
242
- violations.push({
243
- rule: "RFC-IMP-07",
244
- message: `RFC ${targetId} depends on ${depId}, which is not implemented (status: ${depStatus}). Implement ${depId} first.`,
245
- });
246
- }
247
- }
248
- }
249
- // ── RFC-0756: auto-detect implementation commit when --implementation-commit is omitted ──
250
- if (!implementationCommit) {
251
- const detected = await autoDetectImplementationCommit(workspaceRoot, targetId);
252
- if ("sha" in detected) {
253
- implementationCommit = detected.sha;
254
- }
255
- else if ("none" in detected) {
256
- violations.push({
257
- rule: "RFC-IMP-03",
258
- message: `No commit referencing ${targetId} found in git history. Pass --implementation-commit <SHA> explicitly.`,
259
- });
260
- }
261
- else {
262
- const candidateList = detected.multiple.map((c) => ` ${c.sha} — ${c.message}`).join("\n");
263
- violations.push({
264
- rule: "RFC-IMP-03",
265
- message: `Multiple commits reference ${targetId}:\n${candidateList}\nPass --implementation-commit <SHA> to specify which one.`,
266
- });
267
- }
268
- }
269
- // ── RFC-IMP-04: RFC file must be clean (no uncommitted edits to the target RFC) ──
270
- // Only the RFC file being stamped is checked, not the entire working tree.
271
- // This allows multi-agent workflows where other agents may have uncommitted
272
- // changes in unrelated files.
273
- const rfcRelPath = join(RFC_DIR, targetFile);
274
- const rfcFileClean = await isRfcFileClean(workspaceRoot, rfcRelPath);
275
- if (!rfcFileClean) {
276
- violations.push({
277
- rule: "RFC-IMP-04",
278
- message: `RFC file ${rfcRelPath} has uncommitted changes. Commit the RFC file before stamping.`,
279
- });
280
- }
281
- // ── RFC-IMP-03: implementation commit validation ──────────────────────────
282
- if (implementationCommit) {
283
- const reachable = await commitReachableFromHead(workspaceRoot, implementationCommit);
284
- if (!reachable) {
285
- violations.push({
286
- rule: "RFC-IMP-03",
287
- message: `Implementation commit ${implementationCommit} is not reachable from HEAD. The commit must be an ancestor of the current HEAD.`,
288
- });
289
- }
290
- else {
291
- const referencesRfc = await commitReferencesRfc(workspaceRoot, implementationCommit, targetId);
292
- if (!referencesRfc) {
293
- violations.push({
294
- rule: "RFC-IMP-03",
295
- message: `Implementation commit ${implementationCommit} does not reference ${targetId} in its message or changed files.`,
296
- });
297
- }
298
- }
299
- }
300
- // ── RFC-IMP-06: probe-bearing RFCs require passing evidence ───────────────
301
- const acceptance = fm["acceptance"];
302
- const hasProbes = Array.isArray(acceptance) && acceptance.length > 0;
303
- const createdAtStr = String(fm["createdAt"] ?? "");
304
- const requiresEvidence = createdAtStr >= RFC_METADATA_CUTOFF && hasProbes;
305
- let evidenceRelPath;
306
- if (requiresEvidence) {
307
- const evidenceCheck = await checkExistingEvidence(workspaceRoot, targetId);
308
- if (!evidenceCheck.exists || evidenceCheck.overall !== "pass") {
309
- violations.push({
310
- rule: "RFC-IMP-06",
311
- message: `RFC ${targetId} declares acceptance probes but evidence file is missing or overall is not "pass" (got "${evidenceCheck.overall}"). Run: site-kernel run rfc.verification.emit --id ${targetId}`,
312
- });
313
- }
314
- else {
315
- const slug = targetId.toLowerCase();
316
- evidenceRelPath = join(VERIFICATION_DIR, `${slug}.generated.yaml`);
317
- }
318
- }
319
- // If any violations found, return without mutation
320
- if (violations.length > 0) {
321
- return stampFailResult(violations, isDryRun, outputFormat, logger);
322
- }
323
- // ── RFC-IMP-05: acquire RFC-specific exclusive lock ───────────────────────
324
- const { acquired, lockPath } = await acquireRfcLock(workspaceRoot, targetId);
325
- if (!acquired) {
326
- violations.push({
327
- rule: "RFC-IMP-05",
328
- message: `A concurrent stamp operation is in progress for ${targetId}. Wait for it to complete and retry.`,
329
- });
330
- return stampFailResult(violations, isDryRun, outputFormat, logger);
331
- }
332
- try {
333
- // ── Atomic mutation ──────────────────────────────────────────────────────
334
- const rfcFilePath = join(rfcDirPath, targetFile);
335
- const rfcSource = await readFile(rfcFilePath, "utf-8");
336
- const today = toIsoDate(new Date());
337
- const stampedAt = new Date().toISOString();
338
- const mutatedSource = mutateFrontmatter(rfcSource, "implemented", today, today);
339
- if (isDryRun) {
340
- if (outputFormat === "pretty") {
341
- logger.success(`[dry-run] ${targetId} would be stamped as implemented`);
342
- logger.info(` implementation commit: ${implementationCommit}`);
343
- logger.info(` criteria checked: ${criteriaEval.totalChecked}`);
344
- if (evidenceRelPath) {
345
- logger.info(` evidence: ${evidenceRelPath}`);
346
- }
347
- }
348
- return {
349
- data: {
350
- command: "rfc.implement.stamp",
351
- status: "pass",
352
- data: {
353
- rfcId: targetId,
354
- implementationCommit: implementationCommit,
355
- stampedAt,
356
- criteriaChecked: criteriaEval.totalChecked,
357
- ...(evidenceRelPath ? { evidencePath: evidenceRelPath } : {}),
358
- },
359
- violations: [],
360
- },
361
- exitCode: 0,
362
- summary: `rfc.implement.stamp: dry-run — ${targetId} would be stamped`,
363
- };
364
- }
365
- // Write the mutated RFC file atomically
366
- await writeFileAtomic(rfcFilePath, mutatedSource);
367
- // ── Re-emit evidence if probes exist (to update with new status) ─────────
368
- if (hasProbes && requiresEvidence && evidenceRelPath) {
369
- // Evidence already exists and passed — no need to re-emit on stamp
370
- // The evidence was generated before stamping; the status change is
371
- // recorded in the RFC frontmatter, not in the evidence file.
372
- }
373
- if (outputFormat === "pretty") {
374
- logger.success(`${targetId} stamped as implemented`);
375
- logger.info(` implementation commit: ${implementationCommit}`);
376
- logger.info(` criteria checked: ${criteriaEval.totalChecked}`);
377
- if (evidenceRelPath) {
378
- logger.info(` evidence: ${evidenceRelPath}`);
379
- }
380
- logger.info(` stamped at: ${stampedAt}`);
381
- }
382
- return {
383
- data: {
384
- command: "rfc.implement.stamp",
385
- status: "pass",
386
- data: {
387
- rfcId: targetId,
388
- implementationCommit: implementationCommit,
389
- stampedAt,
390
- criteriaChecked: criteriaEval.totalChecked,
391
- ...(evidenceRelPath ? { evidencePath: evidenceRelPath } : {}),
392
- },
393
- violations: [],
394
- },
395
- exitCode: 0,
396
- summary: `rfc.implement.stamp: ${targetId} stamped as implemented`,
397
- };
398
- }
399
- finally {
400
- await releaseRfcLock(lockPath);
401
- }
402
- }
403
- function stampFailResult(violations, isDryRun, outputFormat, logger) {
404
- const prefix = isDryRun ? "[dry-run] " : "";
405
- if (outputFormat === "pretty") {
406
- for (const v of violations) {
407
- logger.warn(`${prefix}${v.rule}: ${v.message}`);
408
- }
409
- }
410
- return {
411
- data: {
412
- command: "rfc.implement.stamp",
413
- status: "fail",
414
- violations,
415
- },
416
- exitCode: 1,
417
- summary: `${prefix}rfc.implement.stamp: ${violations.length} violation(s)`,
418
- };
419
- }
420
- //# sourceMappingURL=implement-stamp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"implement-stamp.js","sourceRoot":"","sources":["../../../../os/rfc/handlers/implement-stamp.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { ForgeCommandInput, ForgeCommandResult, ForgeRuntimeContext } from "../../../src/types.ts";
2
- import type { RfcIndexResult, RfcGraphResult } from "../types.ts";
3
- export declare function runRfcIndexGenerate(input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<RfcIndexResult>>;
4
- export declare function runRfcGraph(input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<RfcGraphResult>>;
5
- export declare function runRfcIndexValidate(_input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<{
6
- command: string;
7
- status: string;
8
- violations: {
9
- rule: string;
10
- message: string;
11
- }[];
12
- }>>;
13
- //# sourceMappingURL=index-graph.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-graph.d.ts","sourceRoot":"","sources":["../../../../os/rfc/handlers/index-graph.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAIV,cAAc,EACd,cAAc,EACf,MAAM,aAAa,CAAC;AAIrB,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAuD7C;AAED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CA8C7C;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CACR,kBAAkB,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACjD,CAAC,CACH,CAmFA"}
@@ -1,192 +0,0 @@
1
- /*
2
- <MODULE_CONTRACT>
3
- <purpose>Maintains packages/os/site-kernel/src/rfc/handlers/index-graph.ts as an authored site-kernel authored module so agents can evolve it without rediscovering local boundaries.</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: extracted index and graph handlers from handlers.ts into handlers/index-graph.ts.</item>
10
- <item>Post-refactor hardening: rfc.graph resolves archived RFC files by basename id.</item>
11
- </CHANGE_SUMMARY>
12
- */
13
- import fs from "node:fs/promises";
14
- import path from "node:path";
15
- import { parse as yamlParse, stringify as yamlStringify } from "yaml";
16
- import { listRfcFiles, readAndParseRfc, rfcFileMatchesId } from "../frontmatter-io.js";
17
- import { RFC_DIR } from "../types.js";
18
- import { toIsoDate } from "./shared.js";
19
- export async function runRfcIndexGenerate(input, context) {
20
- const { workspaceRoot, logger, outputFormat } = context;
21
- const rfcDirPath = path.join(workspaceRoot, RFC_DIR);
22
- const files = await listRfcFiles(rfcDirPath);
23
- const entries = [];
24
- for (const fileName of files) {
25
- const result = await readAndParseRfc(rfcDirPath, fileName);
26
- if (!result || "error" in result)
27
- continue;
28
- const fm = result.parsed.frontmatter;
29
- const arr = (k) => Array.isArray(fm[k]) ? fm[k].map(String) : [];
30
- entries.push({
31
- id: String(fm["id"] ?? ""),
32
- title: String(fm["title"] ?? ""),
33
- status: String(fm["status"] ?? ""),
34
- kind: String(fm["kind"] ?? ""),
35
- createdAt: String(fm["createdAt"] ?? ""),
36
- implementedAt: String(fm["implementedAt"] ?? ""),
37
- closedAt: String(fm["closedAt"] ?? ""),
38
- supersedes: arr("supersedes"),
39
- supersededBy: String(fm["supersededBy"] ?? ""),
40
- amends: arr("amends"),
41
- amendedBy: arr("amendedBy"),
42
- related: arr("related"),
43
- file: path.join(RFC_DIR, fileName),
44
- });
45
- }
46
- entries.sort((a, b) => a.id.localeCompare(b.id));
47
- let written;
48
- if (input.flags["write"] === true) {
49
- const outRel = path.join(RFC_DIR, "index.yaml");
50
- const payload = {
51
- command: "rfc.index.generate",
52
- generatedAt: toIsoDate(new Date()),
53
- count: entries.length,
54
- entries,
55
- };
56
- await fs.writeFile(path.join(workspaceRoot, outRel), `${yamlStringify(payload)}`, "utf-8");
57
- written = outRel;
58
- }
59
- if (outputFormat === "pretty") {
60
- logger.section(`RFC index (${entries.length} RFC(s))`);
61
- if (written)
62
- logger.success(`Wrote ${written}`);
63
- else
64
- logger.info("Use --json for the index, or --write to persist docs/rfcs/index.yaml.");
65
- }
66
- return {
67
- data: { command: "rfc.index.generate", status: "ok", count: entries.length, entries, written },
68
- summary: written
69
- ? `Wrote ${written} (${entries.length} RFCs)`
70
- : `Indexed ${entries.length} RFC(s)`,
71
- };
72
- }
73
- export async function runRfcGraph(input, context) {
74
- const { workspaceRoot, logger, outputFormat } = context;
75
- const rfcDirPath = path.join(workspaceRoot, RFC_DIR);
76
- const targetId = input.flags["id"];
77
- if (!targetId) {
78
- throw new Error("rfc.graph requires an RFC id, e.g. site-kernel run rfc.graph --id RFC-0152");
79
- }
80
- const files = await listRfcFiles(rfcDirPath);
81
- const fileName = files.find((f) => rfcFileMatchesId(f, targetId));
82
- if (!fileName) {
83
- throw new Error(`No RFC file found for id ${targetId} in ${RFC_DIR}/`);
84
- }
85
- const result = await readAndParseRfc(rfcDirPath, fileName);
86
- if (!result || "error" in result) {
87
- throw new Error(`Could not parse RFC ${targetId}: ${result?.error ?? "file not found"}`);
88
- }
89
- const fm = result.parsed.frontmatter;
90
- const arr = (k) => Array.isArray(fm[k]) ? fm[k].map(String) : [];
91
- const data = {
92
- command: "rfc.graph",
93
- status: "ok",
94
- id: targetId,
95
- supersedes: arr("supersedes"),
96
- supersededBy: String(fm["supersededBy"] ?? ""),
97
- amends: arr("amends"),
98
- amendedBy: arr("amendedBy"),
99
- related: arr("related"),
100
- };
101
- if (outputFormat === "pretty") {
102
- logger.section(`${targetId} relationships`);
103
- logger.info(`supersedes: ${data.supersedes.join(", ") || "—"}`);
104
- logger.info(`supersededBy: ${data.supersededBy || "—"}`);
105
- logger.info(`amends: ${data.amends.join(", ") || "—"}`);
106
- logger.info(`amendedBy: ${data.amendedBy.join(", ") || "—"}`);
107
- logger.info(`related: ${data.related.join(", ") || "—"}`);
108
- }
109
- return {
110
- data,
111
- summary: `${targetId}: ${data.supersedes.length} supersedes, ${data.amends.length} amends, ${data.related.length} related`,
112
- };
113
- }
114
- export async function runRfcIndexValidate(_input, context) {
115
- const { workspaceRoot, logger, outputFormat } = context;
116
- const rfcDirPath = path.join(workspaceRoot, RFC_DIR);
117
- const indexPath = path.join(rfcDirPath, "index.yaml");
118
- const violations = [];
119
- // RFC-IDX-01: missing index file
120
- let indexContent;
121
- try {
122
- indexContent = await fs.readFile(indexPath, "utf-8");
123
- }
124
- catch {
125
- violations.push({
126
- rule: "RFC-IDX-01",
127
- message: "docs/rfcs/index.yaml not found. Run `pnpm exec werkstatt run rfc.index.generate --write` to generate it.",
128
- });
129
- const result = { command: "rfc.index.validate", status: "fail", violations };
130
- if (outputFormat === "pretty") {
131
- logger.error("RFC-IDX-01: docs/rfcs/index.yaml not found.");
132
- }
133
- return {
134
- data: result,
135
- exitCode: 1,
136
- summary: "1 error(s) found",
137
- };
138
- }
139
- // RFC-IDX-02: unparseable YAML
140
- let parsed;
141
- try {
142
- parsed = yamlParse(indexContent);
143
- }
144
- catch (err) {
145
- const msg = err instanceof Error ? err.message : String(err);
146
- violations.push({
147
- rule: "RFC-IDX-02",
148
- message: `Failed to parse docs/rfcs/index.yaml: ${msg}`,
149
- });
150
- const result = { command: "rfc.index.validate", status: "fail", violations };
151
- if (outputFormat === "pretty") {
152
- logger.error(`RFC-IDX-02: Failed to parse index.yaml: ${msg}`);
153
- }
154
- return {
155
- data: result,
156
- exitCode: 1,
157
- summary: "1 error(s) found",
158
- };
159
- }
160
- // RFC-IDX-03: count mismatch
161
- const indexCount = Array.isArray(parsed?.entries) ? parsed.entries.length : 0;
162
- const allFiles = await listRfcFiles(rfcDirPath);
163
- const fileCount = allFiles.length;
164
- if (indexCount !== fileCount) {
165
- violations.push({
166
- rule: "RFC-IDX-03",
167
- message: `Index entry count (${indexCount}) does not match RFC file count (${fileCount}). Run \`pnpm exec werkstatt run rfc.index.generate --write\` to refresh.`,
168
- });
169
- }
170
- const hasErrors = violations.length > 0;
171
- const resultStatus = hasErrors ? "fail" : "pass";
172
- const result = { command: "rfc.index.validate", status: resultStatus, violations };
173
- if (outputFormat === "pretty") {
174
- if (hasErrors) {
175
- for (const v of violations) {
176
- logger.error(`[${v.rule}] ${v.message}`);
177
- }
178
- logger.error(`${violations.length} error(s) found`);
179
- }
180
- else {
181
- logger.success(`Index valid — ${indexCount} entries match ${fileCount} RFC files.`);
182
- }
183
- }
184
- return {
185
- data: result,
186
- exitCode: hasErrors ? 1 : 0,
187
- summary: hasErrors
188
- ? `${violations.length} error(s) found`
189
- : `Index valid — ${indexCount} entries match ${fileCount} RFC files`,
190
- };
191
- }
192
- //# sourceMappingURL=index-graph.js.map