@warpgogol/forge 0.3.1

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 (516) hide show
  1. package/AGENTS.md +149 -0
  2. package/README.md +164 -0
  3. package/bin/cli.js +16 -0
  4. package/dist/bin/cli.d.ts +3 -0
  5. package/dist/bin/cli.d.ts.map +1 -0
  6. package/dist/bin/cli.js +265 -0
  7. package/dist/bin/cli.js.map +1 -0
  8. package/dist/os/adr/adr.module.d.ts +3 -0
  9. package/dist/os/adr/adr.module.d.ts.map +1 -0
  10. package/dist/os/adr/adr.module.js +112 -0
  11. package/dist/os/adr/adr.module.js.map +1 -0
  12. package/dist/os/adr/frontmatter-io.d.ts +11 -0
  13. package/dist/os/adr/frontmatter-io.d.ts.map +1 -0
  14. package/dist/os/adr/frontmatter-io.js +64 -0
  15. package/dist/os/adr/frontmatter-io.js.map +1 -0
  16. package/dist/os/adr/handlers/archive.d.ts +24 -0
  17. package/dist/os/adr/handlers/archive.d.ts.map +1 -0
  18. package/dist/os/adr/handlers/archive.js +162 -0
  19. package/dist/os/adr/handlers/archive.js.map +1 -0
  20. package/dist/os/adr/handlers/list-create.d.ts +5 -0
  21. package/dist/os/adr/handlers/list-create.d.ts.map +1 -0
  22. package/dist/os/adr/handlers/list-create.js +165 -0
  23. package/dist/os/adr/handlers/list-create.js.map +1 -0
  24. package/dist/os/adr/handlers/validate.d.ts +4 -0
  25. package/dist/os/adr/handlers/validate.d.ts.map +1 -0
  26. package/dist/os/adr/handlers/validate.js +219 -0
  27. package/dist/os/adr/handlers/validate.js.map +1 -0
  28. package/dist/os/adr/index.d.ts +8 -0
  29. package/dist/os/adr/index.d.ts.map +1 -0
  30. package/dist/os/adr/index.js +18 -0
  31. package/dist/os/adr/index.js.map +1 -0
  32. package/dist/os/adr/types.d.ts +59 -0
  33. package/dist/os/adr/types.d.ts.map +1 -0
  34. package/dist/os/adr/types.js +54 -0
  35. package/dist/os/adr/types.js.map +1 -0
  36. package/dist/os/audit/audit.module.d.ts +3 -0
  37. package/dist/os/audit/audit.module.d.ts.map +1 -0
  38. package/dist/os/audit/audit.module.js +44 -0
  39. package/dist/os/audit/audit.module.js.map +1 -0
  40. package/dist/os/audit/frontmatter-io.d.ts +12 -0
  41. package/dist/os/audit/frontmatter-io.d.ts.map +1 -0
  42. package/dist/os/audit/frontmatter-io.js +73 -0
  43. package/dist/os/audit/frontmatter-io.js.map +1 -0
  44. package/dist/os/audit/handlers/archive.d.ts +4 -0
  45. package/dist/os/audit/handlers/archive.d.ts.map +1 -0
  46. package/dist/os/audit/handlers/archive.js +167 -0
  47. package/dist/os/audit/handlers/archive.js.map +1 -0
  48. package/dist/os/audit/index.d.ts +6 -0
  49. package/dist/os/audit/index.d.ts.map +1 -0
  50. package/dist/os/audit/index.js +16 -0
  51. package/dist/os/audit/index.js.map +1 -0
  52. package/dist/os/audit/types.d.ts +12 -0
  53. package/dist/os/audit/types.d.ts.map +1 -0
  54. package/dist/os/audit/types.js +17 -0
  55. package/dist/os/audit/types.js.map +1 -0
  56. package/dist/os/compass/compass.module.d.ts +3 -0
  57. package/dist/os/compass/compass.module.d.ts.map +1 -0
  58. package/dist/os/compass/compass.module.js +162 -0
  59. package/dist/os/compass/compass.module.js.map +1 -0
  60. package/dist/os/compass/handlers/compass-audit-handler.d.ts +36 -0
  61. package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +1 -0
  62. package/dist/os/compass/handlers/compass-audit-handler.js +238 -0
  63. package/dist/os/compass/handlers/compass-audit-handler.js.map +1 -0
  64. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +19 -0
  65. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +1 -0
  66. package/dist/os/compass/handlers/compass-change-summary-handler.js +205 -0
  67. package/dist/os/compass/handlers/compass-change-summary-handler.js.map +1 -0
  68. package/dist/os/compass/handlers/compass-inventory-handler.d.ts +28 -0
  69. package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +1 -0
  70. package/dist/os/compass/handlers/compass-inventory-handler.js +213 -0
  71. package/dist/os/compass/handlers/compass-inventory-handler.js.map +1 -0
  72. package/dist/os/compass/handlers/compass-inventory.d.ts +30 -0
  73. package/dist/os/compass/handlers/compass-inventory.d.ts.map +1 -0
  74. package/dist/os/compass/handlers/compass-inventory.js +418 -0
  75. package/dist/os/compass/handlers/compass-inventory.js.map +1 -0
  76. package/dist/os/compass/handlers/git-revision.d.ts +8 -0
  77. package/dist/os/compass/handlers/git-revision.d.ts.map +1 -0
  78. package/dist/os/compass/handlers/git-revision.js +99 -0
  79. package/dist/os/compass/handlers/git-revision.js.map +1 -0
  80. package/dist/os/compass/handlers/resolve-scan-root.d.ts +3 -0
  81. package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +1 -0
  82. package/dist/os/compass/handlers/resolve-scan-root.js +41 -0
  83. package/dist/os/compass/handlers/resolve-scan-root.js.map +1 -0
  84. package/dist/os/compass/index.d.ts +8 -0
  85. package/dist/os/compass/index.d.ts.map +1 -0
  86. package/dist/os/compass/index.js +19 -0
  87. package/dist/os/compass/index.js.map +1 -0
  88. package/dist/os/core/core.module.d.ts +3 -0
  89. package/dist/os/core/core.module.d.ts.map +1 -0
  90. package/dist/os/core/core.module.js +318 -0
  91. package/dist/os/core/core.module.js.map +1 -0
  92. package/dist/os/core/index.d.ts +2 -0
  93. package/dist/os/core/index.d.ts.map +1 -0
  94. package/dist/os/core/index.js +13 -0
  95. package/dist/os/core/index.js.map +1 -0
  96. package/dist/os/mission/handlers/archive.d.ts +4 -0
  97. package/dist/os/mission/handlers/archive.d.ts.map +1 -0
  98. package/dist/os/mission/handlers/archive.js +209 -0
  99. package/dist/os/mission/handlers/archive.js.map +1 -0
  100. package/dist/os/mission/index.d.ts +2 -0
  101. package/dist/os/mission/index.d.ts.map +1 -0
  102. package/dist/os/mission/index.js +2 -0
  103. package/dist/os/mission/index.js.map +1 -0
  104. package/dist/os/mission/mission.module.d.ts +3 -0
  105. package/dist/os/mission/mission.module.d.ts.map +1 -0
  106. package/dist/os/mission/mission.module.js +44 -0
  107. package/dist/os/mission/mission.module.js.map +1 -0
  108. package/dist/os/mission/types.d.ts +23 -0
  109. package/dist/os/mission/types.d.ts.map +1 -0
  110. package/dist/os/mission/types.js +18 -0
  111. package/dist/os/mission/types.js.map +1 -0
  112. package/dist/os/naming/index.d.ts +3 -0
  113. package/dist/os/naming/index.d.ts.map +1 -0
  114. package/dist/os/naming/index.js +14 -0
  115. package/dist/os/naming/index.js.map +1 -0
  116. package/dist/os/naming/naming-convention.d.ts +25 -0
  117. package/dist/os/naming/naming-convention.d.ts.map +1 -0
  118. package/dist/os/naming/naming-convention.js +324 -0
  119. package/dist/os/naming/naming-convention.js.map +1 -0
  120. package/dist/os/naming/naming.module.d.ts +3 -0
  121. package/dist/os/naming/naming.module.d.ts.map +1 -0
  122. package/dist/os/naming/naming.module.js +33 -0
  123. package/dist/os/naming/naming.module.js.map +1 -0
  124. package/dist/os/plan/frontmatter-io.d.ts +12 -0
  125. package/dist/os/plan/frontmatter-io.d.ts.map +1 -0
  126. package/dist/os/plan/frontmatter-io.js +71 -0
  127. package/dist/os/plan/frontmatter-io.js.map +1 -0
  128. package/dist/os/plan/handlers/archive.d.ts +4 -0
  129. package/dist/os/plan/handlers/archive.d.ts.map +1 -0
  130. package/dist/os/plan/handlers/archive.js +166 -0
  131. package/dist/os/plan/handlers/archive.js.map +1 -0
  132. package/dist/os/plan/index.d.ts +6 -0
  133. package/dist/os/plan/index.d.ts.map +1 -0
  134. package/dist/os/plan/index.js +16 -0
  135. package/dist/os/plan/index.js.map +1 -0
  136. package/dist/os/plan/plan.module.d.ts +3 -0
  137. package/dist/os/plan/plan.module.d.ts.map +1 -0
  138. package/dist/os/plan/plan.module.js +44 -0
  139. package/dist/os/plan/plan.module.js.map +1 -0
  140. package/dist/os/plan/types.d.ts +12 -0
  141. package/dist/os/plan/types.d.ts.map +1 -0
  142. package/dist/os/plan/types.js +17 -0
  143. package/dist/os/plan/types.js.map +1 -0
  144. package/dist/os/rfc/acceptance.d.ts +15 -0
  145. package/dist/os/rfc/acceptance.d.ts.map +1 -0
  146. package/dist/os/rfc/acceptance.js +290 -0
  147. package/dist/os/rfc/acceptance.js.map +1 -0
  148. package/dist/os/rfc/decision-log.d.ts +6 -0
  149. package/dist/os/rfc/decision-log.d.ts.map +1 -0
  150. package/dist/os/rfc/decision-log.js +269 -0
  151. package/dist/os/rfc/decision-log.js.map +1 -0
  152. package/dist/os/rfc/dna-trace.d.ts +27 -0
  153. package/dist/os/rfc/dna-trace.d.ts.map +1 -0
  154. package/dist/os/rfc/dna-trace.js +214 -0
  155. package/dist/os/rfc/dna-trace.js.map +1 -0
  156. package/dist/os/rfc/frontmatter-io.d.ts +14 -0
  157. package/dist/os/rfc/frontmatter-io.d.ts.map +1 -0
  158. package/dist/os/rfc/frontmatter-io.js +98 -0
  159. package/dist/os/rfc/frontmatter-io.js.map +1 -0
  160. package/dist/os/rfc/handlers/archive.d.ts +24 -0
  161. package/dist/os/rfc/handlers/archive.d.ts.map +1 -0
  162. package/dist/os/rfc/handlers/archive.js +161 -0
  163. package/dist/os/rfc/handlers/archive.js.map +1 -0
  164. package/dist/os/rfc/handlers/check.d.ts +4 -0
  165. package/dist/os/rfc/handlers/check.d.ts.map +1 -0
  166. package/dist/os/rfc/handlers/check.js +195 -0
  167. package/dist/os/rfc/handlers/check.js.map +1 -0
  168. package/dist/os/rfc/handlers/implement-stamp.d.ts +4 -0
  169. package/dist/os/rfc/handlers/implement-stamp.d.ts.map +1 -0
  170. package/dist/os/rfc/handlers/implement-stamp.js +334 -0
  171. package/dist/os/rfc/handlers/implement-stamp.js.map +1 -0
  172. package/dist/os/rfc/handlers/index-graph.d.ts +13 -0
  173. package/dist/os/rfc/handlers/index-graph.d.ts.map +1 -0
  174. package/dist/os/rfc/handlers/index-graph.js +189 -0
  175. package/dist/os/rfc/handlers/index-graph.js.map +1 -0
  176. package/dist/os/rfc/handlers/lifecycle.d.ts +13 -0
  177. package/dist/os/rfc/handlers/lifecycle.d.ts.map +1 -0
  178. package/dist/os/rfc/handlers/lifecycle.js +150 -0
  179. package/dist/os/rfc/handlers/lifecycle.js.map +1 -0
  180. package/dist/os/rfc/handlers/list-create.d.ts +6 -0
  181. package/dist/os/rfc/handlers/list-create.d.ts.map +1 -0
  182. package/dist/os/rfc/handlers/list-create.js +235 -0
  183. package/dist/os/rfc/handlers/list-create.js.map +1 -0
  184. package/dist/os/rfc/handlers/pipeline-status.d.ts +26 -0
  185. package/dist/os/rfc/handlers/pipeline-status.d.ts.map +1 -0
  186. package/dist/os/rfc/handlers/pipeline-status.js +124 -0
  187. package/dist/os/rfc/handlers/pipeline-status.js.map +1 -0
  188. package/dist/os/rfc/handlers/shared.d.ts +22 -0
  189. package/dist/os/rfc/handlers/shared.d.ts.map +1 -0
  190. package/dist/os/rfc/handlers/shared.js +99 -0
  191. package/dist/os/rfc/handlers/shared.js.map +1 -0
  192. package/dist/os/rfc/handlers/supersede-propose.d.ts +4 -0
  193. package/dist/os/rfc/handlers/supersede-propose.d.ts.map +1 -0
  194. package/dist/os/rfc/handlers/supersede-propose.js +200 -0
  195. package/dist/os/rfc/handlers/supersede-propose.js.map +1 -0
  196. package/dist/os/rfc/handlers/validate-rules.d.ts +29 -0
  197. package/dist/os/rfc/handlers/validate-rules.d.ts.map +1 -0
  198. package/dist/os/rfc/handlers/validate-rules.js +461 -0
  199. package/dist/os/rfc/handlers/validate-rules.js.map +1 -0
  200. package/dist/os/rfc/handlers/validate.d.ts +4 -0
  201. package/dist/os/rfc/handlers/validate.d.ts.map +1 -0
  202. package/dist/os/rfc/handlers/validate.js +101 -0
  203. package/dist/os/rfc/handlers/validate.js.map +1 -0
  204. package/dist/os/rfc/handlers.d.ts +7 -0
  205. package/dist/os/rfc/handlers.d.ts.map +1 -0
  206. package/dist/os/rfc/handlers.js +19 -0
  207. package/dist/os/rfc/handlers.js.map +1 -0
  208. package/dist/os/rfc/index.d.ts +18 -0
  209. package/dist/os/rfc/index.d.ts.map +1 -0
  210. package/dist/os/rfc/index.js +24 -0
  211. package/dist/os/rfc/index.js.map +1 -0
  212. package/dist/os/rfc/rfc.module.d.ts +3 -0
  213. package/dist/os/rfc/rfc.module.d.ts.map +1 -0
  214. package/dist/os/rfc/rfc.module.js +355 -0
  215. package/dist/os/rfc/rfc.module.js.map +1 -0
  216. package/dist/os/rfc/types.d.ts +448 -0
  217. package/dist/os/rfc/types.d.ts.map +1 -0
  218. package/dist/os/rfc/types.js +95 -0
  219. package/dist/os/rfc/types.js.map +1 -0
  220. package/dist/os/rfc/verification-evidence.d.ts +8 -0
  221. package/dist/os/rfc/verification-evidence.d.ts.map +1 -0
  222. package/dist/os/rfc/verification-evidence.js +182 -0
  223. package/dist/os/rfc/verification-evidence.js.map +1 -0
  224. package/dist/os/session/atif-parser.d.ts +29 -0
  225. package/dist/os/session/atif-parser.d.ts.map +1 -0
  226. package/dist/os/session/atif-parser.js +138 -0
  227. package/dist/os/session/atif-parser.js.map +1 -0
  228. package/dist/os/session/frontmatter-io.d.ts +31 -0
  229. package/dist/os/session/frontmatter-io.d.ts.map +1 -0
  230. package/dist/os/session/frontmatter-io.js +146 -0
  231. package/dist/os/session/frontmatter-io.js.map +1 -0
  232. package/dist/os/session/handlers/archive.d.ts +4 -0
  233. package/dist/os/session/handlers/archive.d.ts.map +1 -0
  234. package/dist/os/session/handlers/archive.js +209 -0
  235. package/dist/os/session/handlers/archive.js.map +1 -0
  236. package/dist/os/session/handlers/list.d.ts +4 -0
  237. package/dist/os/session/handlers/list.d.ts.map +1 -0
  238. package/dist/os/session/handlers/list.js +147 -0
  239. package/dist/os/session/handlers/list.js.map +1 -0
  240. package/dist/os/session/handlers/save.d.ts +6 -0
  241. package/dist/os/session/handlers/save.d.ts.map +1 -0
  242. package/dist/os/session/handlers/save.js +285 -0
  243. package/dist/os/session/handlers/save.js.map +1 -0
  244. package/dist/os/session/handlers/validate.d.ts +4 -0
  245. package/dist/os/session/handlers/validate.d.ts.map +1 -0
  246. package/dist/os/session/handlers/validate.js +188 -0
  247. package/dist/os/session/handlers/validate.js.map +1 -0
  248. package/dist/os/session/index.d.ts +9 -0
  249. package/dist/os/session/index.d.ts.map +1 -0
  250. package/dist/os/session/index.js +20 -0
  251. package/dist/os/session/index.js.map +1 -0
  252. package/dist/os/session/session.module.d.ts +3 -0
  253. package/dist/os/session/session.module.d.ts.map +1 -0
  254. package/dist/os/session/session.module.js +113 -0
  255. package/dist/os/session/session.module.js.map +1 -0
  256. package/dist/os/session/types.d.ts +101 -0
  257. package/dist/os/session/types.d.ts.map +1 -0
  258. package/dist/os/session/types.js +52 -0
  259. package/dist/os/session/types.js.map +1 -0
  260. package/dist/os/spec/spec-materialize.d.ts +21 -0
  261. package/dist/os/spec/spec-materialize.d.ts.map +1 -0
  262. package/dist/os/spec/spec-materialize.js +342 -0
  263. package/dist/os/spec/spec-materialize.js.map +1 -0
  264. package/dist/os/spec/spec-schema.d.ts +132 -0
  265. package/dist/os/spec/spec-schema.d.ts.map +1 -0
  266. package/dist/os/spec/spec-schema.js +118 -0
  267. package/dist/os/spec/spec-schema.js.map +1 -0
  268. package/dist/os/spec/spec-status.d.ts +33 -0
  269. package/dist/os/spec/spec-status.d.ts.map +1 -0
  270. package/dist/os/spec/spec-status.js +222 -0
  271. package/dist/os/spec/spec-status.js.map +1 -0
  272. package/dist/os/spec/spec-validate.d.ts +4 -0
  273. package/dist/os/spec/spec-validate.d.ts.map +1 -0
  274. package/dist/os/spec/spec-validate.js +435 -0
  275. package/dist/os/spec/spec-validate.js.map +1 -0
  276. package/dist/os/spec/spec.module.d.ts +3 -0
  277. package/dist/os/spec/spec.module.d.ts.map +1 -0
  278. package/dist/os/spec/spec.module.js +67 -0
  279. package/dist/os/spec/spec.module.js.map +1 -0
  280. package/dist/os/werkstatt/handlers/lock.d.ts +10 -0
  281. package/dist/os/werkstatt/handlers/lock.d.ts.map +1 -0
  282. package/dist/os/werkstatt/handlers/lock.js +127 -0
  283. package/dist/os/werkstatt/handlers/lock.js.map +1 -0
  284. package/dist/os/werkstatt/handlers/schema.d.ts +32 -0
  285. package/dist/os/werkstatt/handlers/schema.d.ts.map +1 -0
  286. package/dist/os/werkstatt/handlers/schema.js +41 -0
  287. package/dist/os/werkstatt/handlers/schema.js.map +1 -0
  288. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts +15 -0
  289. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +1 -0
  290. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +142 -0
  291. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +1 -0
  292. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts +18 -0
  293. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts.map +1 -0
  294. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js +43 -0
  295. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js.map +1 -0
  296. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts +11 -0
  297. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +1 -0
  298. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +79 -0
  299. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +1 -0
  300. package/dist/os/werkstatt/index.d.ts +7 -0
  301. package/dist/os/werkstatt/index.d.ts.map +1 -0
  302. package/dist/os/werkstatt/index.js +18 -0
  303. package/dist/os/werkstatt/index.js.map +1 -0
  304. package/dist/os/werkstatt/werkstatt.module.d.ts +3 -0
  305. package/dist/os/werkstatt/werkstatt.module.d.ts.map +1 -0
  306. package/dist/os/werkstatt/werkstatt.module.js +58 -0
  307. package/dist/os/werkstatt/werkstatt.module.js.map +1 -0
  308. package/dist/os/workflow/handlers.d.ts +12 -0
  309. package/dist/os/workflow/handlers.d.ts.map +1 -0
  310. package/dist/os/workflow/handlers.js +254 -0
  311. package/dist/os/workflow/handlers.js.map +1 -0
  312. package/dist/os/workflow/index.d.ts +4 -0
  313. package/dist/os/workflow/index.d.ts.map +1 -0
  314. package/dist/os/workflow/index.js +18 -0
  315. package/dist/os/workflow/index.js.map +1 -0
  316. package/dist/os/workflow/types.d.ts +69 -0
  317. package/dist/os/workflow/types.d.ts.map +1 -0
  318. package/dist/os/workflow/types.js +23 -0
  319. package/dist/os/workflow/types.js.map +1 -0
  320. package/dist/os/workflow/workflow.module.d.ts +3 -0
  321. package/dist/os/workflow/workflow.module.d.ts.map +1 -0
  322. package/dist/os/workflow/workflow.module.js +48 -0
  323. package/dist/os/workflow/workflow.module.js.map +1 -0
  324. package/dist/src/cli-output.d.ts +5 -0
  325. package/dist/src/cli-output.d.ts.map +1 -0
  326. package/dist/src/cli-output.js +52 -0
  327. package/dist/src/cli-output.js.map +1 -0
  328. package/dist/src/config/forge-config.d.ts +170 -0
  329. package/dist/src/config/forge-config.d.ts.map +1 -0
  330. package/dist/src/config/forge-config.js +259 -0
  331. package/dist/src/config/forge-config.js.map +1 -0
  332. package/dist/src/forge-module.d.ts +16 -0
  333. package/dist/src/forge-module.d.ts.map +1 -0
  334. package/dist/src/forge-module.js +15 -0
  335. package/dist/src/forge-module.js.map +1 -0
  336. package/dist/src/index.d.ts +30 -0
  337. package/dist/src/index.d.ts.map +1 -0
  338. package/dist/src/index.js +48 -0
  339. package/dist/src/index.js.map +1 -0
  340. package/dist/src/migration-adapters/git-utils.d.ts +3 -0
  341. package/dist/src/migration-adapters/git-utils.d.ts.map +1 -0
  342. package/dist/src/migration-adapters/git-utils.js +46 -0
  343. package/dist/src/migration-adapters/git-utils.js.map +1 -0
  344. package/dist/src/migration-adapters/ignored-files.d.ts +12 -0
  345. package/dist/src/migration-adapters/ignored-files.d.ts.map +1 -0
  346. package/dist/src/migration-adapters/ignored-files.js +190 -0
  347. package/dist/src/migration-adapters/ignored-files.js.map +1 -0
  348. package/dist/src/migration-adapters/index.d.ts +8 -0
  349. package/dist/src/migration-adapters/index.d.ts.map +1 -0
  350. package/dist/src/migration-adapters/index.js +17 -0
  351. package/dist/src/migration-adapters/index.js.map +1 -0
  352. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts +3 -0
  353. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts.map +1 -0
  354. package/dist/src/migration-adapters/node-typescript-pnpm/index.js +141 -0
  355. package/dist/src/migration-adapters/node-typescript-pnpm/index.js.map +1 -0
  356. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts +3 -0
  357. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts.map +1 -0
  358. package/dist/src/migration-adapters/phaser-pnpm/index.js +142 -0
  359. package/dist/src/migration-adapters/phaser-pnpm/index.js.map +1 -0
  360. package/dist/src/migration-adapters/registry.d.ts +6 -0
  361. package/dist/src/migration-adapters/registry.d.ts.map +1 -0
  362. package/dist/src/migration-adapters/registry.js +58 -0
  363. package/dist/src/migration-adapters/registry.js.map +1 -0
  364. package/dist/src/migration-adapters/types.d.ts +35 -0
  365. package/dist/src/migration-adapters/types.d.ts.map +1 -0
  366. package/dist/src/migration-adapters/types.js +31 -0
  367. package/dist/src/migration-adapters/types.js.map +1 -0
  368. package/dist/src/onboarding/agents-generate.d.ts +11 -0
  369. package/dist/src/onboarding/agents-generate.d.ts.map +1 -0
  370. package/dist/src/onboarding/agents-generate.js +415 -0
  371. package/dist/src/onboarding/agents-generate.js.map +1 -0
  372. package/dist/src/onboarding/create.d.ts +12 -0
  373. package/dist/src/onboarding/create.d.ts.map +1 -0
  374. package/dist/src/onboarding/create.js +232 -0
  375. package/dist/src/onboarding/create.js.map +1 -0
  376. package/dist/src/onboarding/doctor.d.ts +30 -0
  377. package/dist/src/onboarding/doctor.d.ts.map +1 -0
  378. package/dist/src/onboarding/doctor.js +380 -0
  379. package/dist/src/onboarding/doctor.js.map +1 -0
  380. package/dist/src/onboarding/extended-behavioral-layer.d.ts +10 -0
  381. package/dist/src/onboarding/extended-behavioral-layer.d.ts.map +1 -0
  382. package/dist/src/onboarding/extended-behavioral-layer.js +82 -0
  383. package/dist/src/onboarding/extended-behavioral-layer.js.map +1 -0
  384. package/dist/src/onboarding/init.d.ts +25 -0
  385. package/dist/src/onboarding/init.d.ts.map +1 -0
  386. package/dist/src/onboarding/init.js +260 -0
  387. package/dist/src/onboarding/init.js.map +1 -0
  388. package/dist/src/onboarding/scaffold-project.d.ts +12 -0
  389. package/dist/src/onboarding/scaffold-project.d.ts.map +1 -0
  390. package/dist/src/onboarding/scaffold-project.js +167 -0
  391. package/dist/src/onboarding/scaffold-project.js.map +1 -0
  392. package/dist/src/onboarding/scaffold.d.ts +15 -0
  393. package/dist/src/onboarding/scaffold.d.ts.map +1 -0
  394. package/dist/src/onboarding/scaffold.js +120 -0
  395. package/dist/src/onboarding/scaffold.js.map +1 -0
  396. package/dist/src/onboarding/upgrade.d.ts +17 -0
  397. package/dist/src/onboarding/upgrade.d.ts.map +1 -0
  398. package/dist/src/onboarding/upgrade.js +293 -0
  399. package/dist/src/onboarding/upgrade.js.map +1 -0
  400. package/dist/src/profiles/stack-profile.d.ts +51 -0
  401. package/dist/src/profiles/stack-profile.d.ts.map +1 -0
  402. package/dist/src/profiles/stack-profile.js +119 -0
  403. package/dist/src/profiles/stack-profile.js.map +1 -0
  404. package/dist/src/registry.d.ts +38 -0
  405. package/dist/src/registry.d.ts.map +1 -0
  406. package/dist/src/registry.js +135 -0
  407. package/dist/src/registry.js.map +1 -0
  408. package/dist/src/skill-schema.d.ts +30 -0
  409. package/dist/src/skill-schema.d.ts.map +1 -0
  410. package/dist/src/skill-schema.js +34 -0
  411. package/dist/src/skill-schema.js.map +1 -0
  412. package/dist/src/types.d.ts +153 -0
  413. package/dist/src/types.d.ts.map +1 -0
  414. package/dist/src/types.js +17 -0
  415. package/dist/src/types.js.map +1 -0
  416. package/dist/src/utils/fs-atomic.d.ts +7 -0
  417. package/dist/src/utils/fs-atomic.d.ts.map +1 -0
  418. package/dist/src/utils/fs-atomic.js +81 -0
  419. package/dist/src/utils/fs-atomic.js.map +1 -0
  420. package/dist/src/utils/fs-idempotent.d.ts +2 -0
  421. package/dist/src/utils/fs-idempotent.d.ts.map +1 -0
  422. package/dist/src/utils/fs-idempotent.js +30 -0
  423. package/dist/src/utils/fs-idempotent.js.map +1 -0
  424. package/dist/src/utils/fs.d.ts +8 -0
  425. package/dist/src/utils/fs.d.ts.map +1 -0
  426. package/dist/src/utils/fs.js +60 -0
  427. package/dist/src/utils/fs.js.map +1 -0
  428. package/dist/src/utils/generated-marker.d.ts +21 -0
  429. package/dist/src/utils/generated-marker.d.ts.map +1 -0
  430. package/dist/src/utils/generated-marker.js +128 -0
  431. package/dist/src/utils/generated-marker.js.map +1 -0
  432. package/dist/src/utils/hash.d.ts +2 -0
  433. package/dist/src/utils/hash.d.ts.map +1 -0
  434. package/dist/src/utils/hash.js +18 -0
  435. package/dist/src/utils/hash.js.map +1 -0
  436. package/dist/src/utils/index.d.ts +7 -0
  437. package/dist/src/utils/index.d.ts.map +1 -0
  438. package/dist/src/utils/index.js +19 -0
  439. package/dist/src/utils/index.js.map +1 -0
  440. package/dist/src/utils/string-utils.d.ts +2 -0
  441. package/dist/src/utils/string-utils.d.ts.map +1 -0
  442. package/dist/src/utils/string-utils.js +19 -0
  443. package/dist/src/utils/string-utils.js.map +1 -0
  444. package/dist/src/validators/port-validate.d.ts +12 -0
  445. package/dist/src/validators/port-validate.d.ts.map +1 -0
  446. package/dist/src/validators/port-validate.js +73 -0
  447. package/dist/src/validators/port-validate.js.map +1 -0
  448. package/dist/src/validators/skill-validate.d.ts +14 -0
  449. package/dist/src/validators/skill-validate.d.ts.map +1 -0
  450. package/dist/src/validators/skill-validate.js +487 -0
  451. package/dist/src/validators/skill-validate.js.map +1 -0
  452. package/os/rfc/rfc-0000-template.md +222 -0
  453. package/package.json +262 -0
  454. package/profiles/astro-typescript-turborepo.yaml +144 -0
  455. package/profiles/forge-shell.yaml +77 -0
  456. package/profiles/phaser-turborepo.yaml +144 -0
  457. package/skills/_shared/fo-pipeline-conventions.md +119 -0
  458. package/skills/_shared/fo-session-summary.md +95 -0
  459. package/skills/fo/fo-add-tests/SKILL.md +166 -0
  460. package/skills/fo/fo-add-tests/mocking.md +60 -0
  461. package/skills/fo/fo-add-tests/pbt-guide.md +193 -0
  462. package/skills/fo/fo-add-tests/tests-reference.md +92 -0
  463. package/skills/fo/fo-architecture/SKILL.md +83 -0
  464. package/skills/fo/fo-architecture/architecture-vocabulary.md +104 -0
  465. package/skills/fo/fo-architecture/deepening.md +37 -0
  466. package/skills/fo/fo-architecture/design-it-twice.md +44 -0
  467. package/skills/fo/fo-architecture/html-report.md +104 -0
  468. package/skills/fo/fo-compass-annotate/SKILL.md +128 -0
  469. package/skills/fo/fo-compass-annotate/reference/comment-styles.md +25 -0
  470. package/skills/fo/fo-compass-annotate/reference/learned-principles.md +12 -0
  471. package/skills/fo/fo-compass-annotate/reference/risk-patterns.md +23 -0
  472. package/skills/fo/fo-compass-annotate/templates/audit-prompt.md +36 -0
  473. package/skills/fo/fo-compass-annotate/templates/header-format.md +57 -0
  474. package/skills/fo/fo-compass-annotate/templates/header-prompt.md +35 -0
  475. package/skills/fo/fo-doc-audit/SKILL.md +264 -0
  476. package/skills/fo/fo-extract-dna/SKILL.md +248 -0
  477. package/skills/fo/fo-fix/SKILL.md +152 -0
  478. package/skills/fo/fo-fix/bug-diagnosis.md +128 -0
  479. package/skills/fo/fo-handoff/SKILL.md +58 -0
  480. package/skills/fo/fo-harvest/SKILL.md +80 -0
  481. package/skills/fo/fo-idea/SKILL.md +242 -0
  482. package/skills/fo/fo-idea-audit/SKILL.md +248 -0
  483. package/skills/fo/fo-idea-create-adr/SKILL.md +130 -0
  484. package/skills/fo/fo-idea-create-rfc/SKILL.md +130 -0
  485. package/skills/fo/fo-idea-enhance/SKILL.md +218 -0
  486. package/skills/fo/fo-idea-i-just-want-to-see-the-plan/SKILL.md +36 -0
  487. package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +167 -0
  488. package/skills/fo/fo-idea-implement/SKILL.md +463 -0
  489. package/skills/fo/fo-idea-plan/SKILL.md +230 -0
  490. package/skills/fo/fo-idea-status/SKILL.md +103 -0
  491. package/skills/fo/fo-memory-sync/SKILL.md +204 -0
  492. package/skills/fo/fo-memory-sync/fix-patterns.md +24 -0
  493. package/skills/fo/fo-memory-sync/learned-principles.md +6 -0
  494. package/skills/fo/fo-memory-sync/qa-log.md +5 -0
  495. package/skills/fo/fo-qa/SKILL.md +142 -0
  496. package/skills/fo/fo-review/SKILL.md +273 -0
  497. package/skills/fo/fo-session-retro/SKILL.md +276 -0
  498. package/skills/fo/fo-session-save/SKILL.md +71 -0
  499. package/skills/fo/fo-session-save/fix-patterns.md +33 -0
  500. package/skills/fo/fo-session-save/learned-principles.md +19 -0
  501. package/skills/fo/fo-session-save/qa-log.md +11 -0
  502. package/skills/fo/fo-spec-ingest/SKILL.md +127 -0
  503. package/skills/fo/fo-triage/SKILL.md +97 -0
  504. package/skills/meta/forge-bootstrap/SKILL.md +335 -0
  505. package/skills/meta/forge-bootstrap/forge-about.md +35 -0
  506. package/skills/meta/forge-bootstrap/milestone-gallery/.gitkeep +0 -0
  507. package/skills/meta/forge-bootstrap/operator-profile-template.md +53 -0
  508. package/skills/meta/forge-bootstrap/project-narrative-template.md +31 -0
  509. package/skills/meta/port-to-forge/SKILL.md +65 -0
  510. package/skills/meta/skill-create/SKILL.md +73 -0
  511. package/skills/shared/grilling/SKILL.md +28 -0
  512. package/skills/shared/grilling/learned-principles.md +12 -0
  513. package/skills/shared/grilling/qa-log.md +10 -0
  514. package/skills/shared/my-preferences/SKILL.md +77 -0
  515. package/skills/shared/windows-ai-tooling/SKILL.md +200 -0
  516. package/skills/shared/writing-great-skills/SKILL.md +132 -0
@@ -0,0 +1,128 @@
1
+ ---
2
+ name: fo-compass-annotate
3
+ description: Full-lifecycle Compass header management — generate, update, audit, validate, cleanup. Replaces removed compass.annotate/clear/migrate/invariant.add commands.
4
+ invocation: user
5
+ category: fo
6
+ concerns: content-mutation
7
+ dependsOn: ['my-preferences']
8
+ languagePolicy: ref(PREFERENCES.md)
9
+ bindings:
10
+ requires: []
11
+ optional: [compass.fileExtensions, compass.testPatterns]
12
+ triggers: ["manage Compass headers", "annotate source files with Compass", "audit Compass module contracts"]
13
+ ---
14
+
15
+ # fo-compass-annotate
16
+
17
+ Before starting, read `PREFERENCES.md` at the repository root. If the file is missing or `aiLanguage` is unset, ask the operator once and create the file using the `my-preferences` skill semantics.
18
+
19
+ Manage Compass source headers across files with a full lifecycle: discover, generate, update, audit, risk-flag, validate, and cleanup. This skill replaces the removed `compass.annotate`, `compass.clear`, `compass.markup.migrate`, and `compass.invariant.add` kernel commands.
20
+
21
+ ## Preconditions
22
+
23
+ - The workspace has source files with Compass scaffolding requirements. Check the project's invariants file for the canonical Compass markup rule.
24
+ - `compass.validate` is available to verify headers after updates.
25
+
26
+ ## Flags
27
+
28
+ - `--file <path>` — process a single file instead of scanning the workspace.
29
+ - `--changed` — process only files changed in the current git diff (unstaged + staged).
30
+ - `--packages` — scan `packages/` instead of the default workspace scope.
31
+ - `--package <name>` — with `--packages`, scan one package.
32
+ - `--dry-run` — report what would change without writing files.
33
+
34
+ ## Process
35
+
36
+ ### 1. Discover files
37
+
38
+ Determine the scan scope:
39
+
40
+ - If `--file` is given, process only that file.
41
+ - If `--changed` is given, run `git diff --name-only HEAD` (or `git diff --name-only --cached` + `git diff --name-only`) to get the changed file list. Filter to source files matching `ref(forge.yaml bindings.compass.fileExtensions)` (default: `.ts`, `.astro`).
42
+ - Otherwise, scan the workspace (or `packages/` with `--packages`) for all source files matching the file extension binding.
43
+
44
+ Skip files that are:
45
+
46
+ - Generated (carry `GENERATED` marker or are in `dist/`, `node_modules/`, `.agents/`).
47
+ - In `spec/`, `todo/`, or folders starting with `old-` or `-`.
48
+ - Binary or non-text.
49
+
50
+ ### 2. Per-file processing
51
+
52
+ For each discovered file, determine the required action:
53
+
54
+ #### 2a. Generate (file has no Compass headers)
55
+
56
+ If the file has no `MODULE_CONTRACT` and no `CHANGE_SUMMARY` block:
57
+
58
+ 1. Read the file content and understand its purpose.
59
+ 2. Use `templates/header-prompt.md` to generate a `MODULE_CONTRACT` block with `<purpose>` and `<non-goals>`.
60
+ 3. Create a `CHANGE_SUMMARY` block with a single `<item>` noting the initial creation.
61
+ 4. Insert both blocks at the top of the file, after any existing license/comment header but before imports.
62
+ 5. Use `reference/comment-styles.md` to determine the correct comment syntax for the file extension.
63
+
64
+ #### 2b. Update (file has headers but content has changed)
65
+
66
+ If the file has Compass headers but the content has significantly changed:
67
+
68
+ 1. Read the current `MODULE_CONTRACT` and compare with the file's actual purpose.
69
+ 2. Use `templates/header-prompt.md` to regenerate the `MODULE_CONTRACT` if the purpose has shifted.
70
+ 3. Add a new `<item>` to `CHANGE_SUMMARY` referencing the current RFC or change.
71
+ 4. Run `compass.summary.trim` if the `CHANGE_SUMMARY` exceeds 30 total items.
72
+
73
+ #### 2c. Audit (semantic check)
74
+
75
+ For each file with Compass headers:
76
+
77
+ 1. Use `templates/audit-prompt.md` to audit the `MODULE_CONTRACT` against the file's actual content.
78
+ 2. Check that `<purpose>` accurately describes what the file does.
79
+ 3. Check that `<non-goals>` lists at least one boundary the file does not cross.
80
+ 4. Flag files where the header is stale, misleading, or empty.
81
+
82
+ #### 2d. Risk flag
83
+
84
+ For each file with Compass headers:
85
+
86
+ 1. Use `reference/risk-patterns.md` to scan for deterministic risk patterns (sign, crypto, vault, migrate, publish, etc.).
87
+ 2. If a risk pattern is found, add a `<!-- risk: <pattern> -->` comment inside the `MODULE_CONTRACT` block.
88
+ 3. Risk patterns are deterministic — no LLM judgment needed.
89
+
90
+ ### 3. Batch-end validation
91
+
92
+ After processing all files:
93
+
94
+ 1. Run `compass.validate` to verify all headers are well-formed.
95
+ 2. If any violations are found, attempt to fix them automatically (missing `<non-goals>`, empty `<purpose>`, etc.).
96
+ 3. Re-run `compass.validate` to confirm fixes.
97
+ 4. If violations persist after 3 retry attempts, report them to the operator.
98
+
99
+ ### 4. Cleanup (optional, with `--cleanup` flag)
100
+
101
+ If `--cleanup` is given:
102
+
103
+ 1. Remove `TODO(compass)` sentinels from files that still have them.
104
+ 2. Replace each sentinel with a real value generated using `templates/header-prompt.md`.
105
+ 3. Run `compass.validate` to confirm no sentinels remain.
106
+
107
+ ### 5. Report
108
+
109
+ Output a summary:
110
+
111
+ ```
112
+ ## Compass Annotate Report
113
+
114
+ ### Files scanned: <N>
115
+ ### Files generated: <N>
116
+ ### Files updated: <N>
117
+ ### Files audited: <N>
118
+ ### Files risk-flagged: <N>
119
+ ### Validation: <pass | fail>
120
+ ### Sentinels replaced: <N>
121
+ ```
122
+
123
+ ## Completion criteria
124
+
125
+ - All discovered files have `MODULE_CONTRACT` and `CHANGE_SUMMARY` blocks.
126
+ - `compass.validate` passes with zero errors.
127
+ - No `TODO(compass)` sentinels remain (if `--cleanup` was used).
128
+ - All changes are committed with message `compass: update headers for changed files`.
@@ -0,0 +1,25 @@
1
+ # Comment Style Mapping by File Extension
2
+
3
+ Compass headers are embedded in source file comments. The comment syntax varies by language.
4
+
5
+ ## Mapping
6
+
7
+ | Extension | Comment syntax | Example |
8
+ | --- | --- | --- |
9
+ | `.ts` | `/* ... */` block comment | `/* <MODULE_CONTRACT> ... </MODULE_CONTRACT> */` |
10
+ | `.tsx` | `/* ... */` block comment | `/* <MODULE_CONTRACT> ... </MODULE_CONTRACT> */` |
11
+ | `.astro` | `<!-- ... -->` HTML comment | `<!-- <MODULE_CONTRACT> ... </MODULE_CONTRACT> -->` |
12
+ | `.js` | `/* ... */` block comment | `/* <MODULE_CONTRACT> ... </MODULE_CONTRACT> */` |
13
+ | `.mjs` | `/* ... */` block comment | `/* <MODULE_CONTRACT> ... </MODULE_CONTRACT> */` |
14
+ | `.css` | `/* ... */` block comment | `/* <MODULE_CONTRACT> ... </MODULE_CONTRACT> */` |
15
+ | `.yaml` | `# ` line comment | `# <MODULE_CONTRACT>` (each line prefixed with `# `) |
16
+ | `.yml` | `# ` line comment | `# <MODULE_CONTRACT>` (each line prefixed with `# `) |
17
+ | `.json` | Not supported | JSON files cannot carry comments; skip Compass headers |
18
+ | `.md` | `<!-- ... -->` HTML comment | `<!-- <MODULE_CONTRACT> ... </MODULE_CONTRACT> -->` |
19
+
20
+ ## Rules
21
+
22
+ - The XML-like tags (`<MODULE_CONTRACT>`, `<CHANGE_SUMMARY>`, `<item>`, etc.) are always preserved as-is inside the comment wrapper.
23
+ - For `.yaml`/`.yml`, each line of the block is prefixed with `# `.
24
+ - For `.json`, Compass headers are not applicable — skip these files.
25
+ - The block is placed at the top of the file, after any license header but before code/imports.
@@ -0,0 +1,12 @@
1
+ # Learned Principles
2
+
3
+ Concrete principles distilled from operator feedback during `fo-compass-annotate` sessions. Each principle has a condition and a recommended answer.
4
+
5
+ <!-- Entries are appended after operator approval. -->
6
+ <!-- Format:
7
+ ## <principle title>
8
+ - **Condition:** <when this applies>
9
+ - **Recommended answer:** <what to recommend>
10
+ - **confirmations:** <N>
11
+ - **Added:** <date>
12
+ -->
@@ -0,0 +1,23 @@
1
+ # Deterministic Risk Patterns
2
+
3
+ These patterns are scanned deterministically (no LLM) to flag files that handle sensitive operations. When a pattern matches, a `<!-- risk: <pattern> -->` comment is added inside the `MODULE_CONTRACT` block.
4
+
5
+ ## Patterns
6
+
7
+ | Pattern | Regex | Risk level | Description |
8
+ | --- | --- | --- | --- |
9
+ | `sign` | `\b(sign|signing|signature)\b` | high | Cryptographic signing operations |
10
+ | `crypto` | `\b(crypto|encrypt|decrypt|cipher|aes|rsa|hmac)\b` | high | Cryptographic operations |
11
+ | `vault` | `\b(vault|secret|password|apiKey|api_key|token)\b` | high | Secret/credential handling |
12
+ | `migrate` | `\b(migrate|migration|migrator)\b` | medium | Data migration logic |
13
+ | `publish` | `\b(publish|deploy|release)\b` | medium | Publishing/deployment operations |
14
+ | `delete` | `\b(delete|remove|destroy|purge)\b` | medium | Destructive operations |
15
+ | `network` | `\b(fetch|http|request|axios|got)\b` | low | Network requests |
16
+ | `fs-write` | `\b(writeFile|mkdir|rm |unlink|rename)\b` | low | Filesystem write operations |
17
+
18
+ ## Rules
19
+
20
+ - Patterns are case-insensitive.
21
+ - A file may have multiple risk flags.
22
+ - Risk flags are informational — they do not block validation.
23
+ - The `risk` comment is placed after `<non-goals>` and before `</MODULE_CONTRACT>`.
@@ -0,0 +1,36 @@
1
+ # Semantic Audit Prompt
2
+
3
+ You are auditing a Compass `MODULE_CONTRACT` block against the file's actual content. Determine whether the header is accurate, complete, and not misleading.
4
+
5
+ ## Input
6
+
7
+ - File path: `{path}`
8
+ - Current `MODULE_CONTRACT` block: `{header}`
9
+ - File content (full): `{content}`
10
+
11
+ ## Audit axes
12
+
13
+ 1. **Purpose accuracy** — does `<purpose>` describe what the file actually does? Flag if:
14
+ - The purpose is generic or could apply to any file.
15
+ - The file does something not mentioned in the purpose.
16
+ - The purpose references the file name instead of describing behavior.
17
+
18
+ 2. **Non-goals completeness** — do the `<non-goals>` items describe real boundaries? Flag if:
19
+ - There are zero non-goals items.
20
+ - Non-goals are generic ("not a utility").
21
+ - Non-goals describe things the file actually does (contradiction).
22
+
23
+ 3. **Staleness** — has the file's content changed significantly since the header was written? Flag if:
24
+ - New exports or functions are not reflected in the purpose.
25
+ - Removed functionality is still mentioned in the purpose.
26
+ - The file's role has shifted (e.g., from validator to generator).
27
+
28
+ ## Output
29
+
30
+ ```
31
+ verdict: <pass | needs-update | stale>
32
+ issues:
33
+ - axis: <axis name>
34
+ severity: <error | warning>
35
+ message: <description>
36
+ ```
@@ -0,0 +1,57 @@
1
+ # Canonical Compass Header Format
2
+
3
+ This is the canonical format for Compass source headers. Check the project's invariants file for the canonical Compass markup rule.
4
+
5
+ ## Two-block contract
6
+
7
+ Every non-trivial source file in `apps/`, `packages/`, or `services/` must carry:
8
+
9
+ 1. `MODULE_CONTRACT` — describes the file's purpose and boundaries.
10
+ 2. `CHANGE_SUMMARY` — chronological list of changes with RFC/ticket references.
11
+
12
+ ## MODULE_CONTRACT
13
+
14
+ ```
15
+ <MODULE_CONTRACT>
16
+ <purpose>One sentence describing what the file does.</purpose>
17
+ <non-goals>
18
+ <item>At least one boundary the file does not cross.</item>
19
+ </non-goals>
20
+ </MODULE_CONTRACT>
21
+ ```
22
+
23
+ ### Rules
24
+
25
+ - `<purpose>` must be specific to this file, under 100 characters.
26
+ - `<non-goals>` must have at least one `<item>`.
27
+ - Do not include `@ai-invariant` lines in `MODULE_CONTRACT` — they are inline comments in the file body.
28
+
29
+ ## CHANGE_SUMMARY
30
+
31
+ ```
32
+ <CHANGE_SUMMARY>
33
+ <item>RFC-XXXX: one-line description of the change.</item>
34
+ </CHANGE_SUMMARY>
35
+ ```
36
+
37
+ ### Rules
38
+
39
+ - Each `<item>` should reference an RFC id, ticket id, or ADR id (protected items).
40
+ - Items without an RFC/ticket reference are "unprotected" and may be trimmed by `compass.summary.trim`.
41
+ - Maximum 30 total items per file (enforced by `compass.changesummary.validate`).
42
+ - Boilerplate items (e.g., "Initial creation", "Compass scaffolding") are automatically removed by `compass.summary.trim`.
43
+
44
+ ## Comment syntax by extension
45
+
46
+ See `reference/comment-styles.md` for the correct comment syntax per file extension.
47
+
48
+ ## Forbidden blocks
49
+
50
+ The following legacy Compass blocks are forbidden and must be removed:
51
+
52
+ - `GRACE_MODULE_CONTRACT` — use `MODULE_CONTRACT` instead.
53
+ - `GRACE_CHANGE_SUMMARY` — use `CHANGE_SUMMARY` instead.
54
+ - `AI_INVARIANTS` — use inline `// @ai-invariant` comments instead.
55
+ - `COMPASS_AUDIT` — use the audit ledger via `compass.audit.record` instead.
56
+
57
+ If `compass.validate` reports a `COMPASS-FORBIDDEN-01` violation, remove the forbidden block and run the `fo-compass-annotate` skill to generate correct headers.
@@ -0,0 +1,35 @@
1
+ # Header Generation Prompt
2
+
3
+ You are generating a Compass `MODULE_CONTRACT` block for a source file. The block must accurately describe the file's purpose and boundaries.
4
+
5
+ ## Input
6
+
7
+ - File path: `{path}`
8
+ - File content (first 100 lines): `{content}`
9
+
10
+ ## Output format
11
+
12
+ Generate a `MODULE_CONTRACT` block with:
13
+
14
+ 1. `<purpose>` — one sentence describing what the file does.
15
+ 2. `<non-goals>` — at least one `<item>` describing what the file does NOT do.
16
+
17
+ ## Rules
18
+
19
+ - The purpose must be specific to this file, not generic.
20
+ - Non-goals must describe real boundaries the file respects.
21
+ - Do not use vague phrases like "utility functions" or "helper code".
22
+ - Do not reference the file name in the purpose.
23
+ - Keep the purpose under 100 characters.
24
+
25
+ ## Example
26
+
27
+ ```
28
+ <MODULE_CONTRACT>
29
+ <purpose>Validates CHANGE_SUMMARY blocks for boilerplate items and over-cap items per RFC-XXXX.</purpose>
30
+ <non-goals>
31
+ <item>Do not audit truthfulness of CHANGE_SUMMARY items against code — that is RFC-XXXX.</item>
32
+ <item>Do not delete protected (RFC/code-referencing) items under any circumstance.</item>
33
+ </non-goals>
34
+ </MODULE_CONTRACT>
35
+ ```
@@ -0,0 +1,264 @@
1
+ ---
2
+ name: fo-doc-audit
3
+ description: Audit session changes and update AGENTS.md, README, Compass XML, architecture-dna.md, and templates so AI and human docs stay in sync with code. Use at session end or inline by other skills.
4
+ invocation: user
5
+ category: fo
6
+ concerns: document-only
7
+ dependsOn: ['my-preferences']
8
+ languagePolicy: ref(PREFERENCES.md)
9
+ bindings:
10
+ requires: []
11
+ optional: [paths.invariantsFile, paths.compassDocs]
12
+ triggers: ["audit documentation sync", "update docs after code changes", "check AGENTS.md and README are in sync"]
13
+ ---
14
+
15
+ # Documentation Audit
16
+
17
+ Before starting, read `PREFERENCES.md` at the repository root. If the file is missing or `aiLanguage` is unset, ask the operator once and create the file using the `my-preferences` skill semantics.
18
+
19
+ Analyze the current session's code and content changes, determine which documentation surfaces are out of sync, apply updates, and commit. This skill is the single source of truth for the "are docs still accurate?" question that every session ends on.
20
+
21
+ ## When to invoke
22
+
23
+ - **Standalone at session end** — the operator runs `/fo-doc-audit` after completing work to ensure docs reflect the changes.
24
+ - **Inline by other skills** — `fo-fix`, `fo-idea-implement`, and other skills delegate their doc-update steps here instead of carrying inline logic.
25
+
26
+ ## Documentation surfaces
27
+
28
+ The ecosystem has seven documentation surfaces. Each has a different audience and update trigger.
29
+
30
+ | Surface | Path pattern | Audience | Update trigger |
31
+ | --- | --- | --- | --- |
32
+ | **AGENTS.md** | root, `apps/`, `packages/`, `services/`, nested workspace | AI agents | Contract, convention, workflow, pipeline, command, or boundary change |
33
+ | **README** | root, `packages/*/README.md`, `services/*/README.md` | Humans (developers, operators) | Public API, CLI surface, usage pattern, or installation flow change |
34
+ | **Compass XML** | `docs/requirements.xml`, `docs/technology.xml`, `docs/development-plan.xml`, `docs/knowledge-graph.xml`, `docs/verification-plan.xml`, `docs/source-markup.xml` | AI agents (machine-readable semantic layer) | Repository-wide requirements, shared package contracts, app-package relationships, verification policy |
35
+ | **architecture-dna.md** | `ref(forge.yaml bindings.paths.invariantsFile)` | AI agents + humans | New DNA invariant, invariant amendment, or invariant retirement |
36
+ | **Templates** | `packages/os/site-kernel-onboarding/src/templates/`, `packages/os/site-kernel-codegen/src/templates/` | Future apps/packages (scaffold time) | Change to what a new app or package should look like at creation time |
37
+ | **Generated artifacts** | `docs/ecosystem.generated.json`, `docs/command-manifest.generated.yaml`, `fleet/*.generated.yaml`, `*.generated.css` | AI agents (read-only projection) | **Never edit directly** — update the generator or registry, then regenerate |
38
+ | **COMMANDS / PACKAGE_GRAPH** | `docs/COMMANDS.md`, `docs/PACKAGE_GRAPH.md` | Humans + AI agents | New command, removed command, package graph change |
39
+
40
+ ## Process
41
+
42
+ ### 1. Gather session context
43
+
44
+ Determine what changed in this session. Use in priority order:
45
+
46
+ 1. **Explicit scope** — if the operator or calling skill specified a git fixed point, diff range, or file list, use it.
47
+ 2. **Git diff** — run `git diff HEAD` (unstaged) and `git diff --cached` (staged) to see uncommitted changes. Run `git log --oneline -10` to see recent commits in this session.
48
+ 3. **Session conversation** — scan the current conversation for files modified, commands run, and artifacts created.
49
+
50
+ Capture the full list of changed files and categorize them:
51
+
52
+ - **Code** — `.ts`, `.js`, `.mjs`, `.astro`, `.css`, `.json`, `.yaml`, etc.
53
+ - **Content** — `src/content/**/*.md`, `src/content/**/*.yaml`.
54
+ - **Docs** — `docs/**/*.md`, `docs/**/*.xml`, `AGENTS.md`, `README.md`.
55
+ - **Templates** — files under `packages/os/site-kernel-*/src/templates/`.
56
+ - **Generated** — `*.generated.*`, `fleet/*.generated.*`.
57
+
58
+ ### 2. Run impact analysis
59
+
60
+ For each documentation surface, determine whether it needs updating. Answer the trigger questions below. If any answer is "yes", that surface needs an update.
61
+
62
+ #### 2a. AGENTS.md
63
+
64
+ - Did a **contract, convention, or workflow** change that agents rely on?
65
+ - Were **files, packages, commands, or pipelines** added, removed, or renamed?
66
+ - Did **build steps, verification commands, or environment requirements** change?
67
+ - Was a **new pattern** introduced that other agents working in the same area should know about?
68
+ - Did **package boundaries or import rules** change?
69
+ - Did the **RFC governance protocol, storage policy, cosmic naming contract, or Compass duties** change?
70
+
71
+ If yes for a specific workspace, identify the **nearest applicable AGENTS.md**:
72
+
73
+ - Root `AGENTS.md` — monorepo-wide rules.
74
+ - `docs/authoring/site-composition.md` — shared site rules.
75
+ - `packages/AGENTS.md` — shared package rules.
76
+ - `services/AGENTS.md` — shared backend runtime rules.
77
+ - `<site>/AGENTS.md` or `packages/<pkg>/AGENTS.md` — workspace-specific rules.
78
+
79
+ Update only the nearest applicable file(s). Do not duplicate rules across levels — root stays cross-workspace, nested stays workspace-specific.
80
+
81
+ #### 2b. README
82
+
83
+ - Did a package's **public API** (exports, types, functions) change?
84
+ - Did a **CLI surface** change (new command, removed command, changed flags)?
85
+ - Did **usage patterns** change (how someone imports, calls, or configures the package)?
86
+ - Did the **installation or setup flow** change?
87
+ - Did the **root README** need updating (project overview, getting started, architecture summary)?
88
+
89
+ If yes, update the relevant `README.md`. Keep READMEs concise — they are human-facing quick-start guides, not exhaustive references.
90
+
91
+ #### 2c. Compass XML
92
+
93
+ Per root AGENTS.md §Compass document duties: keep `docs/*.xml` synchronized with the current codebase. Check:
94
+
95
+ - **`docs/requirements.xml`** — did repository-wide requirements change?
96
+ - **`docs/technology.xml`** — did the technology stack, frameworks, or tooling change?
97
+ - **`docs/development-plan.xml`** — did the development plan or milestone structure change?
98
+ - **`docs/knowledge-graph.xml`** — did the knowledge graph structure or relationships change?
99
+ - **`docs/verification-plan.xml`** — did the verification flow, check pipelines, or validation policy change?
100
+ - **`docs/source-markup.xml`** — did the source-file Compass contract (markup patterns, anchor conventions) change?
101
+
102
+ If yes, update the affected XML file(s). These are the primary machine-readable semantic layer — keep them precise.
103
+
104
+ #### 2d. architecture-dna.md
105
+
106
+ - Was a **new invariant** introduced (e.g., a new entry in the project's invariants file)?
107
+ - Was an **existing invariant amended** (e.g., broadened scope, tightened rule)?
108
+ - Was an **invariant retired** (forward-only removal)?
109
+
110
+ If yes, update `ref(forge.yaml bindings.paths.invariantsFile)`. If a new invariant was introduced, also check whether `docs/source-markup.xml` needs a corresponding entry.
111
+
112
+ #### 2e. Templates
113
+
114
+ - Did the change affect **what a new app or package should look like at scaffold time**?
115
+ - Did a **boilerplate file, script, or config** pattern change that onboarding/codegen templates should reflect?
116
+ - Did a **new convention** get introduced that future apps/packages must follow from creation?
117
+
118
+ If yes, update the **template** files in `packages/os/site-kernel-onboarding/src/templates/` and `packages/os/site-kernel-codegen/src/templates/`. **Never edit generated output in existing apps** — fix the template, then regenerate if needed.
119
+
120
+ #### 2f. Generated artifacts
121
+
122
+ - Did a **registry** change (`systems/registry.yaml`, `fleet/fleet.sites.yaml`, command module registrations)?
123
+ - Did a **generator input** change (package manifests, command tables, fleet plan)?
124
+
125
+ If yes, **do not edit the generated file directly**. Update the source registry or generator, then run the regeneration command:
126
+
127
+ ```sh
128
+ ref(forge.yaml bindings.commands.scopedBuild) --workspace=ecosystem.manifest.generate
129
+ ref(forge.yaml bindings.commands.scopedBuild) --workspace=command.manifest.generate
130
+ ```
131
+
132
+ Note: if the regeneration command is expensive or unavailable in the current session, document the need to regenerate in the session summary and move on.
133
+
134
+ #### 2g. COMMANDS.md / PACKAGE_GRAPH.md
135
+
136
+ - Were **commands** added, removed, or renamed?
137
+ - Did the **package graph** change (new package, removed package, new dependency)?
138
+
139
+ If yes, update `docs/COMMANDS.md` and/or `docs/PACKAGE_GRAPH.md`. If these are generated, update the generator instead (see 2f).
140
+
141
+ ### 3. Present analysis to the operator
142
+
143
+ Present the impact analysis as a concise table before applying any changes. This gives the operator a chance to correct the assessment.
144
+
145
+ ```
146
+ ## Documentation Impact Analysis
147
+
148
+ | Surface | Needs update? | Reason |
149
+ | --- | --- | --- |
150
+ | AGENTS.md (root) | Yes | New command lifecycle rule |
151
+ | AGENTS.md (packages/os/site-kernel) | Yes | New cache module registered |
152
+ | README (packages/os/site-kernel) | No | No public API change |
153
+ | Compass XML (docs/verification-plan.xml) | Yes | New check pipeline stage |
154
+ | architecture-dna.md | No | No DNA invariant change |
155
+ | Templates | No | No scaffold-time change |
156
+ | Generated artifacts | Yes | Command manifest needs regeneration |
157
+ | COMMANDS.md | Yes | Two new commands added |
158
+ ```
159
+
160
+ If no surface needs updating, state this explicitly and stop:
161
+
162
+ > "Документация актуальна — обновления не требуются."
163
+
164
+ If the operator confirms (or if running inline and the calling skill's conventions apply), proceed to step 4.
165
+
166
+ ### 4. Apply updates
167
+
168
+ For each surface that needs updating:
169
+
170
+ 1. **Read** the target file before editing.
171
+ 2. **Edit** with minimal, focused changes — follow the existing structure and tone.
172
+ 3. **Do not delete existing content** unless it describes a removed feature (forward-only: delete stale docs, do not leave them as historical notes).
173
+ 4. **Do not add comments or documentation** to code files unless the task explicitly requires it.
174
+ 5. **Generated files**: update the source (registry/generator/template), not the generated output. Run the regeneration command if available.
175
+
176
+ **Forward-only rule**: if a feature, command, or pattern was removed in this session, remove all documentation references to it. Do not keep "legacy" or "deprecated" sections — the ecosystem is forward-only.
177
+
178
+ **Compass scaffolding**: if new non-trivial source files were added in the session, ensure they carry `MODULE_CONTRACT` and `CHANGE_SUMMARY` scaffolding. Check the project's invariants file for the canonical Compass markup rule. This is part of documentation audit — Compass markup is a documentation surface.
179
+
180
+ ### 5. Verify generated artifacts
181
+
182
+ If any generated artifact needed regeneration (step 2f), run the generator now:
183
+
184
+ ```sh
185
+ ref(forge.yaml bindings.commands.scopedBuild) --workspace=ecosystem.manifest.generate
186
+ ref(forge.yaml bindings.commands.scopedBuild) --workspace=command.manifest.generate
187
+ ```
188
+
189
+ If the generator command is unavailable or too expensive for this session, note it in the summary — the operator can regenerate later.
190
+
191
+ If a generated artifact was regenerated, run the drift guards:
192
+
193
+ ```sh
194
+ ref(forge.yaml bindings.commands.scopedBuild) --workspace=ecosystem.manifest.validate
195
+ ref(forge.yaml bindings.commands.scopedBuild) --workspace=workspace.surface.validate
196
+ ```
197
+
198
+ ### 6. Commit
199
+
200
+ Stage and commit documentation changes separately from code changes. Use focused commit messages:
201
+
202
+ ```txt
203
+ docs: update AGENTS.md and Compass XML for <what changed>
204
+
205
+ <one-line description of which docs were updated and why>.
206
+ ```
207
+
208
+ If multiple surfaces were updated, list them in the commit body:
209
+
210
+ ```txt
211
+ docs: sync documentation for <feature/RFC>
212
+
213
+ - AGENTS.md (root): <what changed>
214
+ - docs/verification-plan.xml: <what changed>
215
+ - docs/COMMANDS.md: <what changed>
216
+ - packages/os/site-kernel/README.md: <what changed>
217
+ ```
218
+
219
+ Stage only the documentation files touched by this step. Do not stage unrelated changes — another agent may be working in a different session; `git add -A` or `git add .` is forbidden.
220
+
221
+ If no documentation changes were needed, skip this step.
222
+
223
+ ### 7. Report
224
+
225
+ Present a concise summary in `aiLanguage`. **Translate all labels and headings to `aiLanguage`** — the template below is structural only.
226
+
227
+ ```
228
+ ## <Documentation Audit Summary in aiLanguage>
229
+
230
+ ### Surfaces checked: <count>
231
+ ### Surfaces updated: <count>
232
+ - <surface>: <one-line description of change>
233
+ ### Generated artifacts regenerated: <count | skipped — reason>
234
+ ### Commit: <hash | none — no changes needed>
235
+ ```
236
+
237
+ ## Inline invocation by other skills
238
+
239
+ When another skill (e.g. `fo-fix`, `fo-idea-implement`) delegates its doc-update step to `fo-doc-audit`:
240
+
241
+ 1. The calling skill invokes `fo-doc-audit` via the `skill` tool.
242
+ 2. `fo-doc-audit` runs its full process (steps 1–7).
243
+ 3. The calling skill does **not** duplicate the doc-update logic — it trusts `fo-doc-audit` to cover all surfaces.
244
+ 4. The calling skill's completion criteria should reference `fo-doc-audit` instead of inline checks.
245
+
246
+ Skills that delegate to `fo-doc-audit`:
247
+
248
+ - **`fo-fix`** step 5 ("Documentation audit") — invokes `fo-doc-audit`.
249
+ - **`fo-fix`** merge conflict resolution step 4 ("Documentation audit") — invokes `fo-doc-audit`.
250
+ - **`fo-idea-implement`** step 3.9 ("Documentation audit") — invokes `fo-doc-audit`.
251
+ - **`fo-idea-implement`** ADR-FLOW step 4.6 ("Documentation audit") — invokes `fo-doc-audit`.
252
+
253
+ ## Constraints
254
+
255
+ - **Templates, not generated files.** Never edit `*.generated.*` directly — update the source and regenerate.
256
+ - **Forward-only.** Delete documentation for removed features; do not keep stale references.
257
+ - **Minimal edits.** Update only what is out of sync. Do not rewrite sections that are still accurate.
258
+ - **No code comments.** Do not add or delete comments in code files unless the task explicitly requires it.
259
+ - **Compass scaffolding is part of docs.** New non-trivial source files must carry `MODULE_CONTRACT` and `CHANGE_SUMMARY`. Check the project's invariants file for the canonical Compass markup rule.
260
+ - **Commit discipline.** Stage only documentation files. Do not stage unrelated changes — another agent may be working in a different session; `git add -A` or `git add .` is forbidden.
261
+ - **Read before edit.** Always read the target file before editing to preserve structure and tone.
262
+ - **Generated artifact regeneration is best-effort.** If the generator command is unavailable or too expensive, note it and move on — do not block the session.
263
+ - **No pauses for recoverable tool errors.** If a tool call fails with a recoverable error — `write_to_file` content too long, JSON truncation, line count/character limit exceeded, or similar — recover autonomously: split content into smaller writes, use `edit`/`multi_edit`, decompose oversized files, and retry immediately. The operator's default answer to "Shall I proceed?" is always "yes".
264
+ - **Session summary.** End every session with a closing block in the operator's `aiLanguage`: a 1–3 sentence summary of what was done, followed by 1–3 copy-pasteable next-step slash commands with short explanations.