@warpgogol/forge 4.2.3 → 5.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 (344) hide show
  1. package/AGENTS.md +12 -4
  2. package/dist/os/adr/handlers/list-create.d.ts.map +1 -1
  3. package/dist/os/adr/handlers/list-create.js +4 -1
  4. package/dist/os/adr/handlers/list-create.js.map +1 -1
  5. package/dist/os/adr/handlers/validate.d.ts.map +1 -1
  6. package/dist/os/adr/handlers/validate.js +6 -1
  7. package/dist/os/adr/handlers/validate.js.map +1 -1
  8. package/dist/os/adr/types.d.ts.map +1 -1
  9. package/dist/os/adr/types.js +7 -3
  10. package/dist/os/adr/types.js.map +1 -1
  11. package/dist/os/compass/compass.module.d.ts.map +1 -1
  12. package/dist/os/compass/compass.module.js +76 -10
  13. package/dist/os/compass/compass.module.js.map +1 -1
  14. package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +1 -1
  15. package/dist/os/compass/handlers/compass-audit-handler.js +7 -3
  16. package/dist/os/compass/handlers/compass-audit-handler.js.map +1 -1
  17. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +1 -9
  18. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +1 -1
  19. package/dist/os/compass/handlers/compass-change-summary-handler.js +44 -186
  20. package/dist/os/compass/handlers/compass-change-summary-handler.js.map +1 -1
  21. package/dist/os/compass/handlers/compass-inventory-handler.d.ts +2 -0
  22. package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +1 -1
  23. package/dist/os/compass/handlers/compass-inventory-handler.js +24 -12
  24. package/dist/os/compass/handlers/compass-inventory-handler.js.map +1 -1
  25. package/dist/os/compass/handlers/compass-inventory.d.ts +7 -5
  26. package/dist/os/compass/handlers/compass-inventory.d.ts.map +1 -1
  27. package/dist/os/compass/handlers/compass-inventory.js +84 -241
  28. package/dist/os/compass/handlers/compass-inventory.js.map +1 -1
  29. package/dist/os/compass/handlers/compass-migrate-handler.d.ts +4 -0
  30. package/dist/os/compass/handlers/compass-migrate-handler.d.ts.map +1 -0
  31. package/dist/os/compass/handlers/compass-migrate-handler.js +100 -0
  32. package/dist/os/compass/handlers/compass-migrate-handler.js.map +1 -0
  33. package/dist/os/compass/handlers/compass-migrate.d.ts +34 -0
  34. package/dist/os/compass/handlers/compass-migrate.d.ts.map +1 -0
  35. package/dist/os/compass/handlers/compass-migrate.js +273 -0
  36. package/dist/os/compass/handlers/compass-migrate.js.map +1 -0
  37. package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +1 -1
  38. package/dist/os/compass/handlers/resolve-scan-root.js +15 -8
  39. package/dist/os/compass/handlers/resolve-scan-root.js.map +1 -1
  40. package/dist/os/compass/handlers/summary-record.d.ts +46 -0
  41. package/dist/os/compass/handlers/summary-record.d.ts.map +1 -0
  42. package/dist/os/compass/handlers/summary-record.js +233 -0
  43. package/dist/os/compass/handlers/summary-record.js.map +1 -0
  44. package/dist/os/compass/index.d.ts +4 -1
  45. package/dist/os/compass/index.d.ts.map +1 -1
  46. package/dist/os/compass/index.js +9 -1
  47. package/dist/os/compass/index.js.map +1 -1
  48. package/dist/os/compass/policy.d.ts +65 -0
  49. package/dist/os/compass/policy.d.ts.map +1 -0
  50. package/dist/os/compass/policy.js +241 -0
  51. package/dist/os/compass/policy.js.map +1 -0
  52. package/dist/os/core/core.module.d.ts.map +1 -1
  53. package/dist/os/core/core.module.js +9 -21
  54. package/dist/os/core/core.module.js.map +1 -1
  55. package/dist/os/core/handlers/forge-autonomy-validate.d.ts.map +1 -1
  56. package/dist/os/core/handlers/forge-autonomy-validate.js +7 -1
  57. package/dist/os/core/handlers/forge-autonomy-validate.js.map +1 -1
  58. package/dist/os/core/handlers/package-health.d.ts.map +1 -1
  59. package/dist/os/core/handlers/package-health.js +6 -1
  60. package/dist/os/core/handlers/package-health.js.map +1 -1
  61. package/dist/os/core/handlers/pinned-check.d.ts.map +1 -1
  62. package/dist/os/core/handlers/pinned-check.js +6 -1
  63. package/dist/os/core/handlers/pinned-check.js.map +1 -1
  64. package/dist/os/core/handlers/pinned-validate.d.ts.map +1 -1
  65. package/dist/os/core/handlers/pinned-validate.js +6 -1
  66. package/dist/os/core/handlers/pinned-validate.js.map +1 -1
  67. package/dist/os/core/handlers/validate.d.ts.map +1 -1
  68. package/dist/os/core/handlers/validate.js +6 -1
  69. package/dist/os/core/handlers/validate.js.map +1 -1
  70. package/dist/os/exploration/exploration.module.d.ts.map +1 -1
  71. package/dist/os/exploration/exploration.module.js +6 -4
  72. package/dist/os/exploration/exploration.module.js.map +1 -1
  73. package/dist/os/exploration/handlers/list.d.ts.map +1 -1
  74. package/dist/os/exploration/handlers/list.js +4 -1
  75. package/dist/os/exploration/handlers/list.js.map +1 -1
  76. package/dist/os/mission/handlers/archive.d.ts.map +1 -1
  77. package/dist/os/mission/handlers/archive.js +7 -3
  78. package/dist/os/mission/handlers/archive.js.map +1 -1
  79. package/dist/os/mission/index.d.ts.map +1 -1
  80. package/dist/os/mission/index.js +13 -0
  81. package/dist/os/mission/index.js.map +1 -1
  82. package/dist/os/notes/index.d.ts.map +1 -1
  83. package/dist/os/notes/index.js +7 -1
  84. package/dist/os/notes/index.js.map +1 -1
  85. package/dist/os/rfc/frontmatter-io.d.ts.map +1 -1
  86. package/dist/os/rfc/frontmatter-io.js +6 -1
  87. package/dist/os/rfc/frontmatter-io.js.map +1 -1
  88. package/dist/os/rfc/handlers/archive.d.ts.map +1 -1
  89. package/dist/os/rfc/handlers/archive.js +6 -1
  90. package/dist/os/rfc/handlers/archive.js.map +1 -1
  91. package/dist/os/rfc/handlers/implement-stamp.d.ts.map +1 -1
  92. package/dist/os/rfc/handlers/implement-stamp.js +7 -3
  93. package/dist/os/rfc/handlers/implement-stamp.js.map +1 -1
  94. package/dist/os/rfc/handlers/index-graph.d.ts.map +1 -1
  95. package/dist/os/rfc/handlers/index-graph.js +6 -1
  96. package/dist/os/rfc/handlers/index-graph.js.map +1 -1
  97. package/dist/os/rfc/handlers/lifecycle.d.ts.map +1 -1
  98. package/dist/os/rfc/handlers/lifecycle.js +6 -1
  99. package/dist/os/rfc/handlers/lifecycle.js.map +1 -1
  100. package/dist/os/rfc/handlers/list-create.d.ts.map +1 -1
  101. package/dist/os/rfc/handlers/list-create.js +6 -1
  102. package/dist/os/rfc/handlers/list-create.js.map +1 -1
  103. package/dist/os/rfc/handlers/pipeline-status.d.ts.map +1 -1
  104. package/dist/os/rfc/handlers/pipeline-status.js +6 -1
  105. package/dist/os/rfc/handlers/pipeline-status.js.map +1 -1
  106. package/dist/os/rfc/handlers/supersede-propose.d.ts.map +1 -1
  107. package/dist/os/rfc/handlers/supersede-propose.js +6 -1
  108. package/dist/os/rfc/handlers/supersede-propose.js.map +1 -1
  109. package/dist/os/rfc/handlers/validate-rules.d.ts.map +1 -1
  110. package/dist/os/rfc/handlers/validate-rules.js +7 -3
  111. package/dist/os/rfc/handlers/validate-rules.js.map +1 -1
  112. package/dist/os/rfc/handlers/validate.d.ts.map +1 -1
  113. package/dist/os/rfc/handlers/validate.js +6 -1
  114. package/dist/os/rfc/handlers/validate.js.map +1 -1
  115. package/dist/os/rfc/index.d.ts.map +1 -1
  116. package/dist/os/rfc/index.js +6 -1
  117. package/dist/os/rfc/index.js.map +1 -1
  118. package/dist/os/rfc/rfc.module.d.ts.map +1 -1
  119. package/dist/os/rfc/rfc.module.js +6 -1
  120. package/dist/os/rfc/rfc.module.js.map +1 -1
  121. package/dist/os/rfc/types.d.ts +7 -4
  122. package/dist/os/rfc/types.d.ts.map +1 -1
  123. package/dist/os/rfc/types.js +7 -4
  124. package/dist/os/rfc/types.js.map +1 -1
  125. package/dist/os/session/handlers/save.d.ts.map +1 -1
  126. package/dist/os/session/handlers/save.js +6 -1
  127. package/dist/os/session/handlers/save.js.map +1 -1
  128. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +1 -1
  129. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +6 -1
  130. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +1 -1
  131. package/dist/os/werkstatt/handlers/workspace-deps.js +3 -3
  132. package/dist/os/werkstatt/handlers/workspace-deps.js.map +1 -1
  133. package/dist/os/workflow/index.d.ts.map +1 -1
  134. package/dist/os/workflow/index.js +6 -1
  135. package/dist/os/workflow/index.js.map +1 -1
  136. package/dist/src/config/forge-config.d.ts +50 -4
  137. package/dist/src/config/forge-config.d.ts.map +1 -1
  138. package/dist/src/config/forge-config.js +11 -19
  139. package/dist/src/config/forge-config.js.map +1 -1
  140. package/dist/src/forge-module.d.ts.map +1 -1
  141. package/dist/src/forge-module.js +6 -1
  142. package/dist/src/forge-module.js.map +1 -1
  143. package/dist/src/index.d.ts.map +1 -1
  144. package/dist/src/index.js +10 -2
  145. package/dist/src/index.js.map +1 -1
  146. package/dist/src/migration-adapters/git-utils.d.ts.map +1 -1
  147. package/dist/src/migration-adapters/git-utils.js +6 -2
  148. package/dist/src/migration-adapters/git-utils.js.map +1 -1
  149. package/dist/src/migration-adapters/ignored-files.d.ts.map +1 -1
  150. package/dist/src/migration-adapters/ignored-files.js +6 -1
  151. package/dist/src/migration-adapters/ignored-files.js.map +1 -1
  152. package/dist/src/migration-adapters/index.d.ts.map +1 -1
  153. package/dist/src/migration-adapters/index.js +4 -1
  154. package/dist/src/migration-adapters/index.js.map +1 -1
  155. package/dist/src/migration-adapters/types.d.ts.map +1 -1
  156. package/dist/src/migration-adapters/types.js +6 -2
  157. package/dist/src/migration-adapters/types.js.map +1 -1
  158. package/dist/src/onboarding/agents-generate.js +7 -7
  159. package/dist/src/onboarding/create.d.ts.map +1 -1
  160. package/dist/src/onboarding/create.js +7 -6
  161. package/dist/src/onboarding/create.js.map +1 -1
  162. package/dist/src/onboarding/doctor.d.ts.map +1 -1
  163. package/dist/src/onboarding/doctor.js +7 -13
  164. package/dist/src/onboarding/doctor.js.map +1 -1
  165. package/dist/src/onboarding/init.d.ts.map +1 -1
  166. package/dist/src/onboarding/init.js +7 -12
  167. package/dist/src/onboarding/init.js.map +1 -1
  168. package/dist/src/onboarding/invariant-engine.d.ts.map +1 -1
  169. package/dist/src/onboarding/invariant-engine.js +7 -2
  170. package/dist/src/onboarding/invariant-engine.js.map +1 -1
  171. package/dist/src/onboarding/nested-agents-generate.d.ts.map +1 -1
  172. package/dist/src/onboarding/nested-agents-generate.js +7 -2
  173. package/dist/src/onboarding/nested-agents-generate.js.map +1 -1
  174. package/dist/src/onboarding/nested-agents-templates.d.ts.map +1 -1
  175. package/dist/src/onboarding/nested-agents-templates.js +6 -1
  176. package/dist/src/onboarding/nested-agents-templates.js.map +1 -1
  177. package/dist/src/onboarding/scaffold-project.d.ts.map +1 -1
  178. package/dist/src/onboarding/scaffold-project.js +6 -1
  179. package/dist/src/onboarding/scaffold-project.js.map +1 -1
  180. package/dist/src/onboarding/upgrade.d.ts.map +1 -1
  181. package/dist/src/onboarding/upgrade.js +7 -3
  182. package/dist/src/onboarding/upgrade.js.map +1 -1
  183. package/dist/src/profiles/profile-schema.d.ts +54 -4
  184. package/dist/src/profiles/profile-schema.d.ts.map +1 -1
  185. package/dist/src/profiles/profile-schema.js +34 -14
  186. package/dist/src/profiles/profile-schema.js.map +1 -1
  187. package/dist/src/profiles/stack-profile.d.ts +24 -0
  188. package/dist/src/profiles/stack-profile.d.ts.map +1 -1
  189. package/dist/src/profiles/stack-profile.js +7 -3
  190. package/dist/src/profiles/stack-profile.js.map +1 -1
  191. package/dist/src/registry.d.ts.map +1 -1
  192. package/dist/src/registry.js +7 -9
  193. package/dist/src/registry.js.map +1 -1
  194. package/dist/src/types.d.ts.map +1 -1
  195. package/dist/src/types.js +6 -1
  196. package/dist/src/types.js.map +1 -1
  197. package/dist/src/utils/fs-atomic.d.ts.map +1 -1
  198. package/dist/src/utils/fs-atomic.js +13 -1
  199. package/dist/src/utils/fs-atomic.js.map +1 -1
  200. package/dist/src/utils/fs-idempotent.d.ts.map +1 -1
  201. package/dist/src/utils/fs-idempotent.js +13 -0
  202. package/dist/src/utils/fs-idempotent.js.map +1 -1
  203. package/dist/src/utils/fs-trash-sync.d.ts.map +1 -1
  204. package/dist/src/utils/fs-trash-sync.js +13 -1
  205. package/dist/src/utils/fs-trash-sync.js.map +1 -1
  206. package/dist/src/utils/fs-trash.d.ts.map +1 -1
  207. package/dist/src/utils/fs-trash.js +13 -1
  208. package/dist/src/utils/fs-trash.js.map +1 -1
  209. package/dist/src/utils/fs.d.ts.map +1 -1
  210. package/dist/src/utils/fs.js +14 -3
  211. package/dist/src/utils/fs.js.map +1 -1
  212. package/dist/src/utils/hash.d.ts.map +1 -1
  213. package/dist/src/utils/hash.js +12 -1
  214. package/dist/src/utils/hash.js.map +1 -1
  215. package/dist/src/utils/index.d.ts.map +1 -1
  216. package/dist/src/utils/index.js +13 -2
  217. package/dist/src/utils/index.js.map +1 -1
  218. package/dist/src/utils/string-utils.d.ts.map +1 -1
  219. package/dist/src/utils/string-utils.js +12 -1
  220. package/dist/src/utils/string-utils.js.map +1 -1
  221. package/dist/src/validators/port-validate.js +1 -1
  222. package/dist/src/validators/port-validate.js.map +1 -1
  223. package/dist/src/validators/skill-validate.d.ts.map +1 -1
  224. package/dist/src/validators/skill-validate.js +7 -8
  225. package/dist/src/validators/skill-validate.js.map +1 -1
  226. package/docs/reference/forge-yaml.md +38 -9
  227. package/os/adr/handlers/list-create.ts +4 -1
  228. package/os/adr/handlers/validate.ts +6 -1
  229. package/os/adr/types.ts +7 -3
  230. package/os/compass/compass.module.ts +79 -13
  231. package/os/compass/handlers/compass-audit-handler.ts +22 -3
  232. package/os/compass/handlers/compass-change-summary-handler.ts +55 -227
  233. package/os/compass/handlers/compass-inventory-handler.ts +30 -12
  234. package/os/compass/handlers/compass-inventory.ts +103 -240
  235. package/os/compass/handlers/compass-migrate-handler.ts +122 -0
  236. package/os/compass/handlers/compass-migrate.ts +361 -0
  237. package/os/compass/handlers/resolve-scan-root-package.test.ts +70 -0
  238. package/os/compass/handlers/resolve-scan-root.ts +15 -8
  239. package/os/compass/handlers/summary-record.ts +313 -0
  240. package/os/compass/handlers/tests/compass-migrate.test.ts +291 -0
  241. package/os/compass/handlers/tests/compass-policy.test.ts +249 -0
  242. package/os/compass/handlers/tests/compass-v2-contract.test.ts +9 -9
  243. package/os/compass/handlers/tests/summary-record.test.ts +224 -0
  244. package/os/compass/index.ts +23 -5
  245. package/os/compass/policy.ts +350 -0
  246. package/os/core/core.module.ts +9 -21
  247. package/os/core/handlers/forge-autonomy-validate.ts +7 -1
  248. package/os/core/handlers/package-health.ts +6 -1
  249. package/os/core/handlers/pinned-check.ts +6 -1
  250. package/os/core/handlers/pinned-validate.ts +6 -1
  251. package/os/core/handlers/validate.ts +6 -1
  252. package/os/exploration/exploration.module.ts +72 -71
  253. package/os/exploration/handlers/list.ts +4 -1
  254. package/os/mission/handlers/archive.ts +7 -3
  255. package/os/mission/index.ts +14 -0
  256. package/os/notes/index.ts +7 -1
  257. package/os/rfc/frontmatter-io.ts +6 -1
  258. package/os/rfc/handlers/archive.ts +6 -1
  259. package/os/rfc/handlers/implement-stamp.ts +7 -3
  260. package/os/rfc/handlers/index-graph.ts +6 -1
  261. package/os/rfc/handlers/lifecycle.ts +6 -1
  262. package/os/rfc/handlers/list-create.ts +6 -1
  263. package/os/rfc/handlers/pipeline-status.ts +6 -1
  264. package/os/rfc/handlers/supersede-propose.ts +6 -1
  265. package/os/rfc/handlers/validate-rules.ts +7 -3
  266. package/os/rfc/handlers/validate.ts +6 -1
  267. package/os/rfc/index.ts +6 -1
  268. package/os/rfc/rfc.module.ts +6 -1
  269. package/os/rfc/types.ts +7 -4
  270. package/os/session/handlers/save.ts +6 -1
  271. package/os/werkstatt/handlers/werkstatt-lock-recover.ts +6 -1
  272. package/os/werkstatt/handlers/workspace-deps.ts +3 -3
  273. package/os/workflow/index.ts +6 -1
  274. package/package.json +1 -1
  275. package/skills/fo/fo-add-tests/SKILL.md +14 -0
  276. package/skills/fo/fo-architecture/SKILL.md +14 -0
  277. package/skills/fo/fo-compass-annotate/SKILL.md +14 -0
  278. package/skills/fo/fo-design-summit/SKILL.md +14 -0
  279. package/skills/fo/fo-doc-audit/SKILL.md +14 -0
  280. package/skills/fo/fo-explore/SKILL.md +14 -0
  281. package/skills/fo/fo-extract-dna/SKILL.md +14 -0
  282. package/skills/fo/fo-fix/SKILL.md +14 -0
  283. package/skills/fo/fo-handoff/SKILL.md +14 -0
  284. package/skills/fo/fo-harvest/SKILL.md +14 -0
  285. package/skills/fo/fo-idea/SKILL.md +14 -0
  286. package/skills/fo/fo-idea-audit/SKILL.md +14 -0
  287. package/skills/fo/fo-idea-create-adr/SKILL.md +14 -0
  288. package/skills/fo/fo-idea-create-rfc/SKILL.md +14 -0
  289. package/skills/fo/fo-idea-enhance/SKILL.md +14 -0
  290. package/skills/fo/fo-idea-i-just-want-to-see-the-plan/SKILL.md +14 -0
  291. package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +14 -0
  292. package/skills/fo/fo-idea-implement/SKILL.md +14 -0
  293. package/skills/fo/fo-idea-plan/SKILL.md +14 -0
  294. package/skills/fo/fo-idea-status/SKILL.md +14 -0
  295. package/skills/fo/fo-knowledge-distill/SKILL.md +14 -0
  296. package/skills/fo/fo-memory-sync/SKILL.md +14 -0
  297. package/skills/fo/fo-qa/SKILL.md +14 -0
  298. package/skills/fo/fo-review/SKILL.md +14 -0
  299. package/skills/fo/fo-session-retro/SKILL.md +14 -0
  300. package/skills/fo/fo-session-save/SKILL.md +14 -0
  301. package/skills/fo/fo-spec-ingest/SKILL.md +14 -0
  302. package/skills/fo/fo-step-commit/SKILL.md +14 -0
  303. package/skills/fo/fo-triage/SKILL.md +14 -0
  304. package/skills/meta/forge-bootstrap/SKILL.md +14 -0
  305. package/skills/meta/port-to-forge/SKILL.md +14 -0
  306. package/skills/meta/skill-create/SKILL.md +14 -0
  307. package/skills/shared/grilling/SKILL.md +14 -0
  308. package/skills/shared/my-preferences/SKILL.md +14 -0
  309. package/skills/shared/windows-ai-tooling/SKILL.md +14 -0
  310. package/skills/shared/writing-great-skills/SKILL.md +14 -0
  311. package/src/config/forge-config.ts +16 -23
  312. package/src/forge-module.ts +6 -1
  313. package/src/index.ts +10 -2
  314. package/src/migration-adapters/git-utils.ts +6 -2
  315. package/src/migration-adapters/ignored-files.ts +6 -1
  316. package/src/migration-adapters/index.ts +4 -1
  317. package/src/migration-adapters/types.ts +6 -2
  318. package/src/onboarding/agents-generate.ts +7 -7
  319. package/src/onboarding/create.ts +7 -6
  320. package/src/onboarding/doctor.ts +7 -13
  321. package/src/onboarding/init.ts +7 -12
  322. package/src/onboarding/invariant-engine.ts +7 -2
  323. package/src/onboarding/nested-agents-generate.ts +7 -2
  324. package/src/onboarding/nested-agents-templates.ts +6 -1
  325. package/src/onboarding/scaffold-project.ts +6 -1
  326. package/src/onboarding/upgrade.ts +7 -3
  327. package/src/profiles/profile-schema.ts +42 -18
  328. package/src/profiles/stack-profile.ts +7 -3
  329. package/src/registry.ts +7 -9
  330. package/src/tests/agents-generate.test.ts +2 -2
  331. package/src/tests/forge-autonomy-validate.test.ts +1 -1
  332. package/src/types.ts +6 -1
  333. package/src/utils/fs-atomic.ts +13 -1
  334. package/src/utils/fs-idempotent.ts +13 -0
  335. package/src/utils/fs-trash-sync.ts +13 -1
  336. package/src/utils/fs-trash.ts +13 -1
  337. package/src/utils/fs.ts +14 -3
  338. package/src/utils/hash.ts +12 -1
  339. package/src/utils/index.ts +13 -2
  340. package/src/utils/string-utils.ts +12 -1
  341. package/src/validators/port-validate.ts +1 -1
  342. package/src/validators/skill-validate.ts +7 -8
  343. package/src/types/werkstatt-engine-shims.d.ts +0 -1416
  344. package/src/types/werkstatt-shared-shims.d.ts +0 -5686
@@ -8,8 +8,13 @@
8
8
  </MODULE_CONTRACT>
9
9
  <CHANGE_SUMMARY>
10
10
  <item>RFC-0374: initial ForgeModule, ForgeModuleRegistry, ForgeCommandDefinition, ForgePipelineStep interfaces.</item>
11
- <item>Forge autonomy refactor: ForgeCommandDefinition and ForgeCommandResult now reference canonical types from types.ts.</item>
12
11
  <item>RFC-0940: add optional runtime field to ForgeModule for autonomy declaration.</item>
12
+ <item>RFC-1097: step 6 — compass.migrate codemod run
13
+
14
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
15
+ <item>RFC-1097: sweep — werkstatt-engine clean
16
+
17
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
13
18
  </CHANGE_SUMMARY>
14
19
  */
15
20
 
package/src/index.ts CHANGED
@@ -1,13 +1,21 @@
1
1
  /*
2
2
  <MODULE_CONTRACT>
3
- <purpose>Public entrypoint for @warpgogol/forge — exports ForgeModule types, canonical types, utilities, skill schema, registry, validators, onboarding, and OS modules.</purpose>
3
+ <purpose>Public index entrypoint for @warpgogol/forge — exports ForgeModule types, canonical types, utilities, skill schema, registry, validators, onboarding, and OS modules.</purpose>
4
4
  <non-goals>
5
5
  <item>Do not export internal implementation details — only public API.</item>
6
6
  </non-goals>
7
7
  </MODULE_CONTRACT>
8
8
  <CHANGE_SUMMARY>
9
9
  <item>RFC-0374: initial public exports for forge package.</item>
10
- <item>Forge autonomy refactor: add canonical types and utils exports.</item>
10
+ <item>RFC-1097: step 6 — compass.migrate codemod run
11
+
12
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
13
+ <item>RFC-1097: sweep — packages/forge + services clean
14
+
15
+ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
16
+ <item>RFC-1097: sweep — werkstatt-engine clean
17
+
18
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
11
19
  </CHANGE_SUMMARY>
12
20
  */
13
21
 
@@ -8,8 +8,12 @@
8
8
  </MODULE_CONTRACT>
9
9
  <CHANGE_SUMMARY>
10
10
  <item>RFC-0547: extract shared postSetup git logic from duplicated adapter implementations.</item>
11
- <item>Replace fs.rmSync with trashSync for patch directory cleanup (trash bin for LLM-initiated deletions).</item>
12
- <item>Use --initial-branch=main for all git init calls so new repos default to main instead of master.</item>
11
+ <item>RFC-1097: step 6 — compass.migrate codemod run
12
+
13
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
14
+ <item>RFC-1097: sweep — werkstatt-engine clean
15
+
16
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
13
17
  </CHANGE_SUMMARY>
14
18
  */
15
19
 
@@ -7,7 +7,12 @@
7
7
  </non-goals>
8
8
  </MODULE_CONTRACT>
9
9
  <CHANGE_SUMMARY>
10
- <item>Initial: discoverIgnoredFiles function that scans source for git-ignored files, categorizes them by type (config, data, runtime-state, cache, other), and returns sized categories for operator selection.</item>
10
+ <item>RFC-1097: step 6 — compass.migrate codemod run
11
+
12
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
13
+ <item>RFC-1097: sweep — werkstatt-engine clean
14
+
15
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
11
16
  </CHANGE_SUMMARY>
12
17
  */
13
18
 
@@ -1,12 +1,15 @@
1
1
  /*
2
2
  <MODULE_CONTRACT>
3
- <purpose>Barrel export for migration-adapter module (RFC-0546).</purpose>
3
+ <purpose>Barrel export for the migration-adapters module — public types and registry functions only (RFC-0546).</purpose>
4
4
  <non-goals>
5
5
  <item>Do not re-export implementation details — only public types and registry functions.</item>
6
6
  </non-goals>
7
7
  </MODULE_CONTRACT>
8
8
  <CHANGE_SUMMARY>
9
9
  <item>RFC-0546: initial barrel export for migration-adapters.</item>
10
+ <item>RFC-1097: sweep — packages/forge + services clean
11
+
12
+ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
10
13
  </CHANGE_SUMMARY>
11
14
  */
12
15
 
@@ -9,8 +9,12 @@
9
9
  <CHANGE_SUMMARY>
10
10
  <item>RFC-0546: initial migration-adapter type contracts (MigrationAdapter, AdapterAnalysis, MigrationResult, Conflict).</item>
11
11
  <item>RFC-0547: remove .git from DEFAULT_EXCLUDE_PATTERNS — git history handled by postSetup via format-patch + git am.</item>
12
- <item>Re-add .git to DEFAULT_EXCLUDE_PATTERNS — copyDirectory copies into apps/<appName>/, not the project root; copying .git there creates a nested repo. Git history is handled by postSetup at the project root.</item>
13
- <item>Add .env* to untracked-file transfer guarantee — the adapter copies ALL files on disk (including git-ignored), not just git-tracked files.</item>
12
+ <item>RFC-1097: step 6 — compass.migrate codemod run
13
+
14
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
15
+ <item>RFC-1097: sweep — werkstatt-engine clean
16
+
17
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
14
18
  </CHANGE_SUMMARY>
15
19
  */
16
20
 
@@ -7,16 +7,16 @@
7
7
  </non-goals>
8
8
  </MODULE_CONTRACT>
9
9
  <CHANGE_SUMMARY>
10
- <item>RFC-0391: initial forge.agents.generate handler.</item>
11
- <item>RFC-0393: added Capabilities section rendered from resolved bindings.</item>
12
- <item>RFC-0548: added Core behavioral layer section with intent-to-skill routing table from triggers, fixed policy text, and conditional extended layer (RFC-0549) based on register.</item>
13
- <item>RFC-0549: replaced extended layer stub with full nine-section content from extended-behavioral-layer.ts.</item>
14
- <item>RFC-0551: added register-conditional commit policy to core behavioral layer.</item>
15
- <item>RFC-0611: added nested AGENTS.md generation for workspace directories + dryRun support.</item>
16
10
  <item>RFC-0640: load workspaceTypes from stack profile and pass to generateNestedAgentsMd for profile-driven workspace detection.</item>
17
11
  <item>RFC-0643: terminology substitution on final content, root template selection by register, details field in result.</item>
18
12
  <item>RFC-0664: added project memory layer read discipline section to generated AGENTS.md.</item>
19
- <item>Profile-driven root AGENTS.md template via rootAgentsMdTemplate field — profiles can now provide stack-specific root templates instead of generic business/creative templates.</item>
13
+ <item>RFC-1097: step 6 — compass.migrate codemod run
14
+
15
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
16
+ <item>RFC-1097: sweep — packages/forge + services clean
17
+
18
+ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
19
+ <history>RFC-0391, RFC-0393, RFC-0548, RFC-0549, RFC-0551, RFC-0611</history>
20
20
  </CHANGE_SUMMARY>
21
21
  */
22
22
 
@@ -9,15 +9,16 @@
9
9
  </non-goals>
10
10
  </MODULE_CONTRACT>
11
11
  <CHANGE_SUMMARY>
12
- <item>RFC-0544: initial forge.create handler composing scaffold + init.</item>
13
- <item>RFC-0544 fix: replace double cast on runInit return with proper InitResult typing.</item>
14
- <item>RFC-0548: auto-run forge.agents.generate after init, update nextSteps to remove manual AGENTS.md step.</item>
15
- <item>RFC-0550: write NEXT_STEPS.md into project root with creator-facing guidance (greenfield vs transplant via LLM).</item>
16
- <item>RFC-0640: load profile domain fields and pass them to runInit for domain-aware bootstrapping.</item>
17
12
  <item>RFC-0643: pass profileId to runInit so forge.yaml gets a `profile` field.</item>
18
13
  <item>RFC-0664: scaffold memory layer (.agents/memory/) after init.</item>
19
14
  <item>RFC-0877: in-place mode only — --in-place flag required, no subdirectory creation, name derived from folder, strict empty-directory check (only .git/ tolerated).</item>
20
- <item>Initialize git repo with --initial-branch=main if .git does not exist (hard guard for main branch default).</item>
15
+ <item>RFC-1097: step 6 — compass.migrate codemod run
16
+
17
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
18
+ <item>RFC-1097: sweep — packages/forge + services clean
19
+
20
+ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
21
+ <history>RFC-0544, RFC-0548, RFC-0550, RFC-0640</history>
21
22
  </CHANGE_SUMMARY>
22
23
  */
23
24
 
@@ -8,22 +8,16 @@ Checks for forge.yaml, AGENTS.md, PREFERENCES.md, .agents/skills/, docs/rfcs/,
8
8
  </non-goals>
9
9
  </MODULE_CONTRACT>
10
10
  <CHANGE_SUMMARY>
11
- <item>Initial forge.doctor handler for autonomy refactor.</item>
12
- <item>RFC-0391: added @warpgogol/* forbidden-imports autonomy guard.</item>
13
- <item>RFC-0393: added bindings validation — resolved/absent/invalid reporting.</item>
14
- <item>RFC-0524: added stale knowledge file detection — compares source and .agents/ copies.</item>
15
- <item>RFC-0539: extended knowledge file check to iterate pack skills via discoverPackSkills. Added pack-skills check for stale/missing copies and skillPacks config validation.</item>
16
- <item>RFC-0540: added defaultable-binding-null notices for forge-CLI-backed bindings.</item>
17
- <item>RFC-0611: added nested AGENTS.md checks — missing, stale (dryRun comparison), hand-written improvement.</item>
18
- <item>RFC-0640: added domain reporting, invariant listing (reported-only), terminology resolution, --strict flag, and software-specific check skipping for non-software domains.</item>
19
- <item>RFC-0675: upgraded domain-invariants check from advisory to enforcement using invariant engine.</item>
20
- <item>RFC-0660: added legacy-section count reporting for structured knowledge files.</item>
21
- <item>RFC-0661: added knowledge-budgets check — validates override shape, computes per-skill budget reports, reports summary with headroom %.</item>
22
- <item>RFC-0663: added knowledge-duplicates check (cross-skill L2 duplicate detection) and shared-knowledge-file check (schema/id uniqueness for the shared layer).</item>
23
11
  <item>RFC-0664: added memory-layer health check (budget usage, gitignore coverage, daily-file leak risk).</item>
24
12
  <item>RFC-0704: added independent-version-packages check — validates that paths in independentVersionPackages exist and contain package.json.</item>
25
13
  <item>RFC-0941: added pack-manifests advisory check — validates forge.plugin.yaml existence and schema for each declared skill pack.</item>
26
- <item>Added git-branch check — warns when current branch is 'master' instead of 'main'.</item>
14
+ <item>RFC-1097: step 6 — compass.migrate codemod run
15
+
16
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
17
+ <item>RFC-1097: sweep — packages/forge + services clean
18
+
19
+ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
20
+ <history>RFC-0391, RFC-0393, RFC-0524, RFC-0539, RFC-0540, RFC-0611, RFC-0640, RFC-0660, RFC-0661, RFC-0663, RFC-0675</history>
27
21
  </CHANGE_SUMMARY>
28
22
  */
29
23
 
@@ -7,21 +7,16 @@
7
7
  </non-goals>
8
8
  </MODULE_CONTRACT>
9
9
  <CHANGE_SUMMARY>
10
- <item>RFC-0374: initial forge.init handler.</item>
11
- <item>RFC-0391: reworked to be config-driven — creates forge.yaml, uses resolveForgeRoot, creates docs/plans/ and docs/audits/ directories.</item>
12
- <item>RFC-0392: added --from flag for stack detection from existing project or spec folder.</item>
13
- <item>RFC-0393: defaultForgeConfig now includes default bindings section (all commands null, default paths).</item>
14
- <item>RFC-0524: extended skill sync to copy declared knowledge files alongside SKILL.md.</item>
15
- <item>RFC-0539: extended skill sync to also copy declared pack skills from skillPacks config.</item>
16
- <item>RFC-0543: write forge.syncedVersion on first init (set to installed forge version).</item>
17
- <item>RFC-0544: accept optional context.forgeRoot to support composition from forge.create.</item>
18
- <item>RFC-0544 fix: export InitResult interface for type-safe consumption by forge.create.</item>
19
- <item>RFC-0552: add skippedSkills to InitResult, detect Forge-vs-pack skill name conflicts.</item>
20
- <item>RFC-0640: accept optional domain fields from profile (register, domain, terminology, semanticBindings) and write them into PREFERENCES.md and forge.yaml.</item>
21
- <item>RFC-0643: accept optional profileId and write it to forge.yaml as the `profile` field.</item>
22
10
  <item>RFC-0663: added syncSharedKnowledge step to sync shared knowledge layer to .agents/skills/shared-knowledge/.</item>
23
11
  <item>RFC-0941: create forge.plugin.yaml manifests for skill packs that lack them before calling discoverPackSkills.</item>
24
12
  <item>RFC-1019: extend PREFERENCES.md with formOfAddress, session-end protocol, skill invocation tracking, plan confirmation vs implementation, commit granularity rules.</item>
13
+ <item>RFC-1097: step 6 — compass.migrate codemod run
14
+
15
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
16
+ <item>RFC-1097: sweep — packages/forge + services clean
17
+
18
+ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
19
+ <history>RFC-0374, RFC-0391, RFC-0392, RFC-0393, RFC-0524, RFC-0539, RFC-0543, RFC-0544, RFC-0552, RFC-0640, RFC-0643</history>
25
20
  </CHANGE_SUMMARY>
26
21
  */
27
22
 
@@ -7,11 +7,16 @@
7
7
  </non-goals>
8
8
  </MODULE_CONTRACT>
9
9
  <CHANGE_SUMMARY>
10
- <item>RFC-0675: initial invariant enforcement engine with three check kinds.</item>
11
10
  <item>RFC-0691: add html-attribute-pattern check kind for HTML attribute value validation.</item>
12
11
  <item>RFC-0694: replace html-attribute-pattern with attribute-pattern (elements array) for HTML+JSX support.</item>
13
12
  <item>RFC-0808: add link-resolution, frontmatter-required, path-exclusion check kinds for note vault validation.</item>
14
- <item>Add gitignore-entry and secret-scan check kinds for godot-csharp profile.</item>
13
+ <item>RFC-1097: step 6 — compass.migrate codemod run
14
+
15
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
16
+ <item>RFC-1097: sweep — werkstatt-engine clean
17
+
18
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
19
+ <history>RFC-0675</history>
15
20
  </CHANGE_SUMMARY>
16
21
  */
17
22
 
@@ -10,11 +10,16 @@ runAgentsGenerate, runUpgrade, and runDoctor (staleness check via dryRun).</purp
10
10
  </non-goals>
11
11
  </MODULE_CONTRACT>
12
12
  <CHANGE_SUMMARY>
13
- <item>RFC-0611: initial shared nested generation function with dryRun support.</item>
14
- <item>Enriched template: read package.json metadata and pass to buildNestedAgentsMd for content-rich output.</item>
15
13
  <item>RFC-0640: accept optional workspaceTypes from profile and pass to discoverWorkspaces for profile-driven detection.</item>
16
14
  <item>RFC-0643: return workspaceTypeMap for per-file workspace type metadata in details field.</item>
17
15
  <item>RFC-0643: use selectNestedTemplate for profile-driven nested templates with terminology substitution.</item>
16
+ <item>RFC-1097: step 6 — compass.migrate codemod run
17
+
18
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
19
+ <item>RFC-1097: sweep — werkstatt-engine clean
20
+
21
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
22
+ <history>RFC-0611</history>
18
23
  </CHANGE_SUMMARY>
19
24
  */
20
25
 
@@ -9,8 +9,13 @@ content-rich AGENTS.md for a workspace from its package.json metadata. No I/O.</
9
9
  </MODULE_CONTRACT>
10
10
  <CHANGE_SUMMARY>
11
11
  <item>RFC-0611: initial minimal stub template for app, package, service workspaces.</item>
12
- <item>Enriched template: render package name, description, entry points, scripts, and dependencies from package.json metadata instead of a minimal stub.</item>
13
12
  <item>RFC-0643: selectNestedTemplate() for profile-driven template selection with path traversal guard.</item>
13
+ <item>RFC-1097: step 6 — compass.migrate codemod run
14
+
15
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
16
+ <item>RFC-1097: sweep — werkstatt-engine clean
17
+
18
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
14
19
  </CHANGE_SUMMARY>
15
20
  */
16
21
 
@@ -9,7 +9,12 @@
9
9
  <CHANGE_SUMMARY>
10
10
  <item>RFC-0392: initial forge.scaffold handler.</item>
11
11
  <item>RFC-0542: populate nextSteps in forge.scaffold result.</item>
12
- <item>Add __PROJECT_NAME__ placeholder replacement for workspace files; profiles now include root package.json with scripts (clean, format, test, upgrade-packages) and scripts/clean.mjs.</item>
12
+ <item>RFC-1097: step 6 — compass.migrate codemod run
13
+
14
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
15
+ <item>RFC-1097: sweep — werkstatt-engine clean
16
+
17
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
13
18
  </CHANGE_SUMMARY>
14
19
  */
15
20
 
@@ -11,12 +11,16 @@ With --update-npm, also updates @warpgogol/forge from npm before syncing (skippe
11
11
  </non-goals>
12
12
  </MODULE_CONTRACT>
13
13
  <CHANGE_SUMMARY>
14
- <item>RFC-0543: initial forge.upgrade handler — 7-step additive sync flow.</item>
15
14
  <item>RFC-0611: added nested AGENTS.md generation after skill sync.</item>
16
15
  <item>RFC-0663: added syncSharedKnowledge step to sync shared knowledge layer to .agents/skills/shared-knowledge/.</item>
17
16
  <item>RFC-0664: added scaffoldMemoryLayer step to scaffold .agents/memory/ and .gitignore block.</item>
18
- <item>Added --update-npm flag: updates @warpgogol/forge from npm before syncing (skipped in monorepo).</item>
19
- <item>Added npm latest-version check: warns when a newer @warpgogol/forge is available on npm.</item>
17
+ <item>RFC-1097: step 6 — compass.migrate codemod run
18
+
19
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
20
+ <item>RFC-1097: sweep — werkstatt-engine clean
21
+
22
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
23
+ <history>RFC-0543</history>
20
24
  </CHANGE_SUMMARY>
21
25
  */
22
26
 
@@ -7,17 +7,16 @@
7
7
  </non-goals>
8
8
  </MODULE_CONTRACT>
9
9
  <CHANGE_SUMMARY>
10
- <item>RFC-0638: initial domain-neutral profile schema extensions with six optional fields.</item>
11
- <item>RFC-0674: add profileDevServerSchema and devServer field for lifecycle commands.</item>
12
- <item>RFC-0675: add profileInvariantCheckSchema and check field to profileInvariantSchema for enforcement.</item>
13
- <item>RFC-0679: add profileAssetSchema and assets field for asset management commands.</item>
14
- <item>RFC-0680: add profileReleaseSchema and release field for release lifecycle commands.</item>
15
10
  <item>RFC-0694: replace html-attribute-pattern with attribute-pattern (elements array) for HTML+JSX support.</item>
16
- <item>Add prerequisites field for profile-declared system dependency checks (e.g. FFmpeg).</item>
17
- <item>Add templates field for multi-template profiles (e.g. React + HTML).</item>
18
11
  <item>ADR-0043: add scriptDir field for agent-generated script directory convention.</item>
19
12
  <item>RFC-0808: add link-resolution, frontmatter-required, path-exclusion check kinds for note vault validation.</item>
20
- <item>Add gitignore-entry and secret-scan check kinds for godot-csharp profile.</item>
13
+ <item>RFC-1097: step 6 — compass.migrate codemod run
14
+
15
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
16
+ <item>RFC-1097: sweep — packages/forge + services clean
17
+
18
+ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
19
+ <history>RFC-0638, RFC-0674, RFC-0675, RFC-0679, RFC-0680</history>
21
20
  </CHANGE_SUMMARY>
22
21
  */
23
22
 
@@ -317,6 +316,39 @@ export interface ProfileTemplate {
317
316
  // Stack profile domain fields
318
317
  // ---------------------------------------------------------------------------
319
318
 
319
+ // RFC-1096: shared Compass policy override shape — used by both the stack
320
+ // profile `compass:` section and the consumer `bindings.compass` section.
321
+ export const compassPolicyOverridesSchema = z.object({
322
+ fileExtensions: z.array(z.string()).optional(),
323
+ testPatterns: z.array(z.string()).optional(),
324
+ scanRoots: z.array(z.string()).optional(),
325
+ ignoredDirs: z.array(z.string()).optional(),
326
+ ignoredDirPrefixes: z.array(z.string()).optional(),
327
+ highRiskPaths: z.array(z.string()).optional(),
328
+ idPattern: z.string().optional(),
329
+ purposeBoilerplatePatterns: z.array(z.string()).optional(),
330
+ layerRules: z
331
+ .array(
332
+ z.object({
333
+ pattern: z.string().min(1),
334
+ layer: z.string().min(1),
335
+ risk: z.enum(["high", "medium", "low"]),
336
+ }),
337
+ )
338
+ .optional(),
339
+ workspaceKinds: z.record(z.string(), z.enum(["app", "package", "service"])).optional(),
340
+ excludedPaths: z
341
+ .array(
342
+ z.object({
343
+ pattern: z.string().min(1),
344
+ reason: z.string().min(1),
345
+ }),
346
+ )
347
+ .optional(),
348
+ });
349
+
350
+ export type CompassPolicyOverrides = z.infer<typeof compassPolicyOverridesSchema>;
351
+
320
352
  export const stackProfileDomainFieldsSchema = z.object({
321
353
  domain: z.string().optional(),
322
354
  terminology: z.record(z.string(), z.string()).optional(),
@@ -331,12 +363,7 @@ export const stackProfileDomainFieldsSchema = z.object({
331
363
  templates: z.array(profileTemplateSchema).optional(),
332
364
  scriptDir: z.string().min(1).optional(),
333
365
  rootAgentsMdTemplate: z.string().optional(),
334
- compass: z
335
- .object({
336
- fileExtensions: z.array(z.string()).optional(),
337
- testPatterns: z.array(z.string()).optional(),
338
- })
339
- .optional(),
366
+ compass: compassPolicyOverridesSchema.optional(),
340
367
  });
341
368
 
342
369
  export interface StackProfileDomainFields {
@@ -353,8 +380,5 @@ export interface StackProfileDomainFields {
353
380
  templates?: ProfileTemplate[];
354
381
  scriptDir?: string;
355
382
  rootAgentsMdTemplate?: string;
356
- compass?: {
357
- fileExtensions?: string[];
358
- testPatterns?: string[];
359
- };
383
+ compass?: CompassPolicyOverrides;
360
384
  }
@@ -7,12 +7,16 @@
7
7
  </non-goals>
8
8
  </MODULE_CONTRACT>
9
9
  <CHANGE_SUMMARY>
10
- <item>RFC-0392: initial stack profile module with zod schema, listStackProfiles, detectStack.</item>
11
- <item>RFC-0638: extended stackProfileSchema with optional domain-neutral fields (domain, terminology, artifacts, workspaceTypes, invariants, register).</item>
12
- <item>RFC-0674: add devServer field to stackProfileSchema for lifecycle commands.</item>
13
10
  <item>RFC-0679: add assets field to stackProfileSchema for asset management commands.</item>
14
11
  <item>RFC-0680: add release field to stackProfileSchema for release lifecycle commands.</item>
15
12
  <item>ADR-0043: add scriptDir field for agent-generated script directory convention.</item>
13
+ <item>RFC-1097: step 6 — compass.migrate codemod run
14
+
15
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
16
+ <item>RFC-1097: sweep — packages/forge + services clean
17
+
18
+ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
19
+ <history>RFC-0392, RFC-0638, RFC-0674</history>
16
20
  </CHANGE_SUMMARY>
17
21
  */
18
22
 
package/src/registry.ts CHANGED
@@ -6,18 +6,16 @@
6
6
  </non-goals>
7
7
  </MODULE_CONTRACT>
8
8
  <CHANGE_SUMMARY>
9
- <item>RFC-0374: initial ForgeSkillEntry interface and FORGE_SKILLS registry (17 migrated + 3 meta = 20).</item>
10
- <item>Added fo-add-tests skill (11th fo skill) — absorbs tdd + PBT conventions from RFC-0347.</item>
11
- <item>Skill consolidation: added fo-architecture, fo-handoff, fo-triage, fo-qa (15 fo skills). Removed handoff, improve-codebase-architecture, to-spec from shared (absorbed into fo-). Shared skills reduced to 4 (grilling, my-preferences, windows-ai-tooling, writing-great-skills).</item>
12
- <item>Renamed skill prefix wg- → fo- across all skills, paths, and categories. Added fo-idea-status, fo-idea-i-just-want-to-see-the-plan, fo-idea-i-just-want-to-see-the-result (18 fo skills total).</item>
13
- <item>Added fo-doc-audit skill (19th fo skill) — centralized documentation audit replacing inline AGENTS/README update steps in fo-fix and fo-idea-implement.</item>
14
- <item>RFC-0395: added fo-spec-ingest skill (20th fo skill) — spec package ingest/authoring with validation, grilling, and acceptance gate.</item>
15
- <item>Added fo-session-retro skill (21st fo skill) — session-end insight triage, categorizes discoveries and routes to AGENTS.md / ADR / DNA / forge / memory.</item>
16
- <item>RFC-0523: expanded concerns enum from binary (document-only | implementation) to four-level taxonomy (read-only | document-only | content-mutation | code-mutation). All 30 skills reclassified.</item>
17
- <item>RFC-0524: added optional knowledge?: string[] field for cumulative knowledge system. Added knowledge arrays to fo-site-scan and grilling.</item>
18
9
  <item>RFC-0538: added fo-compass-annotate skill (22nd fo skill) — full-lifecycle Compass header management replacing removed compass.annotate, compass.clear, compass.markup.migrate, compass.invariant.add kernel commands.</item>
19
10
  <item>RFC-0539: added discoverPackSkills helper and PackSkillEntry interface for project-declared skill packs. Removed mission-complete and fo-site-scan entries (relocated to warpgogol-skills as wg- pack skills).</item>
20
11
  <item>RFC-0941: discoverPackSkills now requires forge.plugin.yaml manifest at each pack root — throws on missing or invalid manifest (fail-fast).</item>
12
+ <item>RFC-1097: step 6 — compass.migrate codemod run
13
+
14
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
15
+ <item>RFC-1097: sweep — packages/forge + services clean
16
+
17
+ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
18
+ <history>RFC-0374, RFC-0395, RFC-0523, RFC-0524</history>
21
19
  </CHANGE_SUMMARY>
22
20
  */
23
21
 
@@ -417,7 +417,7 @@ test("agents-generate nested separates workspace and external dependencies", asy
417
417
  JSON.stringify({
418
418
  name: "@test/my-pkg",
419
419
  dependencies: {
420
- "@warpgogol/werkstatt-shared/share": "workspace:*",
420
+ "@warpgogol/werkstatt-shared": "workspace:*",
421
421
  zod: "^4.4.3",
422
422
  },
423
423
  }),
@@ -428,7 +428,7 @@ test("agents-generate nested separates workspace and external dependencies", asy
428
428
 
429
429
  const nested = await readFile(join(tempDir, "packages", "my-pkg", "AGENTS.md"), "utf8");
430
430
  expect(nested).toContain("**Workspace:**");
431
- expect(nested).toContain("- `@warpgogol/werkstatt-shared/share`");
431
+ expect(nested).toContain("- `@warpgogol/werkstatt-shared`");
432
432
  expect(nested).toContain("**External:**");
433
433
  expect(nested).toContain("- `zod` `^4.4.3`");
434
434
  });
@@ -94,7 +94,7 @@ describe("forge.autonomy.validate", () => {
94
94
  test("passes when @warpgogol/werkstatt-shared is imported (exempt)", async () => {
95
95
  writeFileSync(
96
96
  join(workspace, "packages", "forge", "os", "core", "handlers", "shared.ts"),
97
- `import { scanDirectoryForImports } from "@warpgogol/werkstatt-shared/share/import-scan";\nexport function bar() { return scanDirectoryForImports; }\n`,
97
+ `import { scanDirectoryForImports } from "@warpgogol/werkstatt-shared/node/import-scan";\nexport function bar() { return scanDirectoryForImports; }\n`,
98
98
  );
99
99
 
100
100
  const result = await runForgeAutonomyValidate({ argv: [], flags: {} }, makeContext(workspace));
package/src/types.ts CHANGED
@@ -9,8 +9,13 @@ can be registered in a Warpgogol kernel without direct dependency.</purpose>
9
9
  </non-goals>
10
10
  </MODULE_CONTRACT>
11
11
  <CHANGE_SUMMARY>
12
- <item>Initial canonical forge types: ForgeCommandInput, ForgeCommandResult, ForgeRuntimeContext, ForgeFlagSpec, Diagnostic, CommandRegistry, ForgeLogger.</item>
13
12
  <item>RFC-0518: add GateMetadata, GateSeverity, GatePhase, GateConditional types and optional gate field to ForgeCommandMetadata (structurally compatible with @warpgogol/site-kernel).</item>
13
+ <item>RFC-1097: step 6 — compass.migrate codemod run
14
+
15
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
16
+ <item>RFC-1097: sweep — werkstatt-engine clean
17
+
18
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
14
19
  </CHANGE_SUMMARY>
15
20
  */
16
21
 
@@ -7,8 +7,20 @@ file then renames, with bounded retry for Windows EPERM/EBUSY.</purpose>
7
7
  <item>Do not fall back to non-atomic writes — fail loudly.</item>
8
8
  </non-goals>
9
9
  </MODULE_CONTRACT>
10
+ <KEY_DECISIONS>
11
+ <item>Writes go through temp-file plus rename so readers never observe partial content.</item>
12
+ <item>Bounded retry covers only Windows EPERM/EBUSY — every other failure is loud and immediate.</item>
13
+ </KEY_DECISIONS>
10
14
  <CHANGE_SUMMARY>
11
- <item>Moved from @warpgogol/site-kernel/fs-atomic to forge as canonical source (dependency inversion).</item>
15
+ <item>RFC-1097: step 6 — compass.migrate codemod run
16
+
17
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
18
+ <item>RFC-1097: sweep — packages/forge + services clean
19
+
20
+ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
21
+ <item>RFC-1097: sweep — werkstatt-engine clean
22
+
23
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
12
24
  </CHANGE_SUMMARY>
13
25
  */
14
26
 
@@ -8,9 +8,22 @@ Reduces unnecessary disk writes and git churn in Compass and Werkstatt commands.
8
8
  <item>Do not fall back to non-atomic writes — fail loudly.</item>
9
9
  </non-goals>
10
10
  </MODULE_CONTRACT>
11
+ <KEY_DECISIONS>
12
+ <item>Content is compared before writing — unchanged files cost zero disk I/O and zero git churn.</item>
13
+ <item>Idempotency composes on writeFileAtomic rather than reimplementing atomic writes.</item>
14
+ </KEY_DECISIONS>
11
15
  <CHANGE_SUMMARY>
12
16
  <item>RFC-0556: moved from @warpgogol/site-kernel/fs-idempotent to forge as canonical source (dependency inversion).</item>
13
17
  <item>RFC-0603: extended to accept Uint8Array (Buffer) content for idempotent binary file writes — PNG preview images.</item>
18
+ <item>RFC-1097: step 6 — compass.migrate codemod run
19
+
20
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
21
+ <item>RFC-1097: sweep — packages/forge + services clean
22
+
23
+ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
24
+ <item>RFC-1097: sweep — werkstatt-engine clean
25
+
26
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
14
27
  </CHANGE_SUMMARY>
15
28
  */
16
29
 
@@ -8,8 +8,20 @@ code paths that cannot use the async `trash` npm package.</purpose>
8
8
  <item>Requires `trash-put` (trash-cli) installed on Linux/macOS. On Windows, uses PowerShell Recycle Bin API (no external binary needed).</item>
9
9
  </non-goals>
10
10
  </MODULE_CONTRACT>
11
+ <KEY_DECISIONS>
12
+ <item>A synchronous shell-out exists only for call sites that cannot await — sync is a constraint, not a preference.</item>
13
+ <item>Windows goes through the PowerShell Recycle Bin API so no external binary is required there.</item>
14
+ </KEY_DECISIONS>
11
15
  <CHANGE_SUMMARY>
12
- <item>Initial implementation: sync wrapper for `trash-put` (Linux/macOS) and PowerShell Recycle Bin (Windows).</item>
16
+ <item>RFC-1097: step 6 — compass.migrate codemod run
17
+
18
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
19
+ <item>RFC-1097: sweep — packages/forge + services clean
20
+
21
+ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
22
+ <item>RFC-1097: sweep — werkstatt-engine clean
23
+
24
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
13
25
  </CHANGE_SUMMARY>
14
26
  */
15
27
 
@@ -10,8 +10,20 @@ Windows.</purpose>
10
10
  <item>Do not use for ephemeral cleanup (lock files, temp files, atomic write leftovers) — those are system-internal and should use fs.unlink directly.</item>
11
11
  </non-goals>
12
12
  </MODULE_CONTRACT>
13
+ <KEY_DECISIONS>
14
+ <item>Deletion targets the OS trash or recycle bin — recoverability is the contract, never permanent unlink.</item>
15
+ <item>The trash npm package is preferred over shelling out to trash-put on Linux.</item>
16
+ </KEY_DECISIONS>
13
17
  <CHANGE_SUMMARY>
14
- <item>Initial implementation: wraps npm `trash` package with glob disabled for safe path handling.</item>
18
+ <item>RFC-1097: step 6 — compass.migrate codemod run
19
+
20
+ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
21
+ <item>RFC-1097: sweep — packages/forge + services clean
22
+
23
+ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
24
+ <item>RFC-1097: sweep — werkstatt-engine clean
25
+
26
+ Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
15
27
  </CHANGE_SUMMARY>
16
28
  */
17
29