@mc-and-his-agents/loom-installer 0.1.113 → 0.1.115

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 (211) hide show
  1. package/package.json +1 -1
  2. package/payload/manifest.json +421 -421
  3. package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/loom-init/SKILL.md +5 -3
  4. package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  5. package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  6. package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  7. package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  8. package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  9. package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/scripts/loom_check.py +130 -2
  10. package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  11. package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/scripts/loom_init.py +105 -103
  12. package/payload/plugin/loom/skills/loom-build/.loom-runtime/loom-init/SKILL.md +5 -3
  13. package/payload/plugin/loom/skills/loom-build/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  14. package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  15. package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  16. package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  17. package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  18. package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/scripts/loom_check.py +130 -2
  19. package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  20. package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/scripts/loom_init.py +105 -103
  21. package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/loom-init/SKILL.md +5 -3
  22. package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  23. package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  24. package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  25. package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  26. package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  27. package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/scripts/loom_check.py +130 -2
  28. package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  29. package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/scripts/loom_init.py +105 -103
  30. package/payload/plugin/loom/skills/loom-init/.loom-runtime/loom-init/SKILL.md +5 -3
  31. package/payload/plugin/loom/skills/loom-init/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  32. package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  33. package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  34. package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  35. package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  36. package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/scripts/loom_check.py +130 -2
  37. package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  38. package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/scripts/loom_init.py +105 -103
  39. package/payload/plugin/loom/skills/loom-init/SKILL.md +5 -3
  40. package/payload/plugin/loom/skills/loom-init/references/intake-signals.md +5 -5
  41. package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/loom-init/SKILL.md +5 -3
  42. package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  43. package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  44. package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  45. package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  46. package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  47. package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_check.py +130 -2
  48. package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  49. package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_init.py +105 -103
  50. package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/loom-init/SKILL.md +5 -3
  51. package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  52. package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  53. package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  54. package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  55. package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  56. package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_check.py +130 -2
  57. package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  58. package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_init.py +105 -103
  59. package/payload/plugin/loom/skills/loom-resume/.loom-runtime/loom-init/SKILL.md +5 -3
  60. package/payload/plugin/loom/skills/loom-resume/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  61. package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  62. package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  63. package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  64. package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  65. package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/scripts/loom_check.py +130 -2
  66. package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  67. package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/scripts/loom_init.py +105 -103
  68. package/payload/plugin/loom/skills/loom-retire/.loom-runtime/loom-init/SKILL.md +5 -3
  69. package/payload/plugin/loom/skills/loom-retire/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  70. package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  71. package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  72. package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  73. package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  74. package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/scripts/loom_check.py +130 -2
  75. package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  76. package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/scripts/loom_init.py +105 -103
  77. package/payload/plugin/loom/skills/loom-review/.loom-runtime/loom-init/SKILL.md +5 -3
  78. package/payload/plugin/loom/skills/loom-review/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  79. package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  80. package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  81. package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  82. package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  83. package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/scripts/loom_check.py +130 -2
  84. package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  85. package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/scripts/loom_init.py +105 -103
  86. package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/loom-init/SKILL.md +5 -3
  87. package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  88. package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  89. package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  90. package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  91. package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  92. package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_check.py +130 -2
  93. package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  94. package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_init.py +105 -103
  95. package/payload/plugin/loom/skills/loom-story/.loom-runtime/loom-init/SKILL.md +5 -3
  96. package/payload/plugin/loom/skills/loom-story/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  97. package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  98. package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  99. package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  100. package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  101. package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/scripts/loom_check.py +130 -2
  102. package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  103. package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/scripts/loom_init.py +105 -103
  104. package/payload/plugin/loom/skills/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  105. package/payload/plugin/loom/skills/shared/references/adoption/repo-companion-contract.md +4 -7
  106. package/payload/plugin/loom/skills/shared/references/adoption/target-repo-version-contract.md +3 -1
  107. package/payload/plugin/loom/skills/shared/scripts/governance_surface.py +0 -3
  108. package/payload/plugin/loom/skills/shared/scripts/loom_check.py +130 -2
  109. package/payload/plugin/loom/skills/shared/scripts/loom_flow.py +0 -52
  110. package/payload/plugin/loom/skills/shared/scripts/loom_init.py +105 -103
  111. package/payload/skills/loom-adopt/.loom-runtime/loom-init/SKILL.md +5 -3
  112. package/payload/skills/loom-adopt/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  113. package/payload/skills/loom-adopt/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  114. package/payload/skills/loom-adopt/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  115. package/payload/skills/loom-adopt/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  116. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  117. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/loom_check.py +130 -2
  118. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  119. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/loom_init.py +105 -103
  120. package/payload/skills/loom-build/.loom-runtime/loom-init/SKILL.md +5 -3
  121. package/payload/skills/loom-build/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  122. package/payload/skills/loom-build/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  123. package/payload/skills/loom-build/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  124. package/payload/skills/loom-build/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  125. package/payload/skills/loom-build/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  126. package/payload/skills/loom-build/.loom-runtime/shared/scripts/loom_check.py +130 -2
  127. package/payload/skills/loom-build/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  128. package/payload/skills/loom-build/.loom-runtime/shared/scripts/loom_init.py +105 -103
  129. package/payload/skills/loom-handoff/.loom-runtime/loom-init/SKILL.md +5 -3
  130. package/payload/skills/loom-handoff/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  131. package/payload/skills/loom-handoff/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  132. package/payload/skills/loom-handoff/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  133. package/payload/skills/loom-handoff/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  134. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  135. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/loom_check.py +130 -2
  136. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  137. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/loom_init.py +105 -103
  138. package/payload/skills/loom-init/.loom-runtime/loom-init/SKILL.md +5 -3
  139. package/payload/skills/loom-init/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  140. package/payload/skills/loom-init/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  141. package/payload/skills/loom-init/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  142. package/payload/skills/loom-init/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  143. package/payload/skills/loom-init/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  144. package/payload/skills/loom-init/.loom-runtime/shared/scripts/loom_check.py +130 -2
  145. package/payload/skills/loom-init/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  146. package/payload/skills/loom-init/.loom-runtime/shared/scripts/loom_init.py +105 -103
  147. package/payload/skills/loom-init/SKILL.md +5 -3
  148. package/payload/skills/loom-init/references/intake-signals.md +5 -5
  149. package/payload/skills/loom-merge-ready/.loom-runtime/loom-init/SKILL.md +5 -3
  150. package/payload/skills/loom-merge-ready/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  151. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  152. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  153. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  154. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  155. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_check.py +130 -2
  156. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  157. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_init.py +105 -103
  158. package/payload/skills/loom-pre-review/.loom-runtime/loom-init/SKILL.md +5 -3
  159. package/payload/skills/loom-pre-review/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  160. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  161. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  162. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  163. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  164. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_check.py +130 -2
  165. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  166. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_init.py +105 -103
  167. package/payload/skills/loom-resume/.loom-runtime/loom-init/SKILL.md +5 -3
  168. package/payload/skills/loom-resume/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  169. package/payload/skills/loom-resume/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  170. package/payload/skills/loom-resume/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  171. package/payload/skills/loom-resume/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  172. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  173. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/loom_check.py +130 -2
  174. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  175. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/loom_init.py +105 -103
  176. package/payload/skills/loom-retire/.loom-runtime/loom-init/SKILL.md +5 -3
  177. package/payload/skills/loom-retire/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  178. package/payload/skills/loom-retire/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  179. package/payload/skills/loom-retire/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  180. package/payload/skills/loom-retire/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  181. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  182. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/loom_check.py +130 -2
  183. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  184. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/loom_init.py +105 -103
  185. package/payload/skills/loom-review/.loom-runtime/loom-init/SKILL.md +5 -3
  186. package/payload/skills/loom-review/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  187. package/payload/skills/loom-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  188. package/payload/skills/loom-review/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  189. package/payload/skills/loom-review/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  190. package/payload/skills/loom-review/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  191. package/payload/skills/loom-review/.loom-runtime/shared/scripts/loom_check.py +130 -2
  192. package/payload/skills/loom-review/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  193. package/payload/skills/loom-review/.loom-runtime/shared/scripts/loom_init.py +105 -103
  194. package/payload/skills/loom-spec-review/.loom-runtime/loom-init/SKILL.md +5 -3
  195. package/payload/skills/loom-spec-review/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  196. package/payload/skills/loom-spec-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  197. package/payload/skills/loom-spec-review/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  198. package/payload/skills/loom-spec-review/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  199. package/payload/skills/loom-spec-review/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  200. package/payload/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_check.py +130 -2
  201. package/payload/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  202. package/payload/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_init.py +105 -103
  203. package/payload/skills/loom-story/.loom-runtime/loom-init/SKILL.md +5 -3
  204. package/payload/skills/loom-story/.loom-runtime/loom-init/references/intake-signals.md +5 -5
  205. package/payload/skills/loom-story/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
  206. package/payload/skills/loom-story/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
  207. package/payload/skills/loom-story/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
  208. package/payload/skills/loom-story/.loom-runtime/shared/scripts/governance_surface.py +0 -3
  209. package/payload/skills/loom-story/.loom-runtime/shared/scripts/loom_check.py +130 -2
  210. package/payload/skills/loom-story/.loom-runtime/shared/scripts/loom_flow.py +0 -52
  211. package/payload/skills/loom-story/.loom-runtime/shared/scripts/loom_init.py +105 -103
@@ -1033,9 +1033,9 @@ def deferred_capabilities(scenario: str, adoption_path: str, profile: str) -> li
1033
1033
  if profile == "light-governance":
1034
1034
  return [
1035
1035
  {
1036
- "name": "loom-owned-work-item-progress-status",
1037
- "reason": "light-governance keeps first-round adoption to a companion, review/spec, and PR-template loop",
1038
- "upgrade_trigger": "the repo explicitly opts into execution-control or needs Loom-owned recovery/status carriers",
1036
+ "name": "loom-owned-work-item-progress-status-spec",
1037
+ "reason": "light-governance keeps first-round adoption to a companion, review guidance, and PR-template loop without Loom-owned execution carriers",
1038
+ "upgrade_trigger": "the repo explicitly opts into execution-control or needs Loom-owned work item, recovery, status, or spec carriers",
1039
1039
  },
1040
1040
  {
1041
1041
  "name": "host-gate-merge-closeout-control",
@@ -1126,13 +1126,6 @@ def profile_common_artifacts() -> list[dict[str, str]]:
1126
1126
  {"path": ".loom/companion/review.md", "kind": "repo-companion-doc", "source": "generated"},
1127
1127
  {"path": ".loom/companion/merge-ready.md", "kind": "repo-companion-doc", "source": "generated"},
1128
1128
  {"path": ".loom/companion/closeout.md", "kind": "repo-companion-doc", "source": "generated"},
1129
- {"path": ".loom/companion/releases/changelog.md", "kind": "repo-release-surface", "source": "generated"},
1130
- {"path": ".loom/companion/releases/release-notes.md", "kind": "repo-release-surface", "source": "generated"},
1131
- {"path": ".loom/companion/releases/migration-notes.md", "kind": "repo-release-surface", "source": "generated"},
1132
- {"path": ".loom/companion/releases/rollback.md", "kind": "repo-release-surface", "source": "generated"},
1133
- {"path": ".loom/companion/releases/catalog.json", "kind": "repo-release-surface", "source": "generated"},
1134
- {"path": ".loom/companion/releases/current.json", "kind": "repo-release-surface", "source": "generated"},
1135
- {"path": ".loom/companion/releases/status.json", "kind": "repo-release-surface", "source": "generated"},
1136
1129
  {"path": ".loom/shadow/admission-loom.json", "kind": "shadow-parity-surface", "source": "generated"},
1137
1130
  {"path": ".loom/shadow/admission-repo.json", "kind": "shadow-parity-surface", "source": "generated"},
1138
1131
  {"path": ".loom/shadow/review-loom.json", "kind": "shadow-parity-surface", "source": "generated"},
@@ -1162,13 +1155,6 @@ def profile_light_artifacts(target_root: Path) -> list[dict[str, str]]:
1162
1155
  [
1163
1156
  {"path": ".loom/reviews/INIT-0001.json", "kind": "review-entry", "source": "generated"},
1164
1157
  {"path": ".loom/reviews/INIT-0001.spec.json", "kind": "review-entry", "source": "generated"},
1165
- {"path": ".loom/specs/INIT-0001/spec.md", "kind": "spec", "source": "skills/shared/assets/templates/scaffold/spec.md"},
1166
- {"path": ".loom/specs/INIT-0001/plan.md", "kind": "plan", "source": "skills/shared/assets/templates/scaffold/plan.md"},
1167
- {
1168
- "path": ".loom/specs/INIT-0001/implementation-contract.md",
1169
- "kind": "implementation-contract",
1170
- "source": "skills/shared/assets/templates/scaffold/implementation-contract.md",
1171
- },
1172
1158
  ]
1173
1159
  )
1174
1160
  return artifacts
@@ -1181,6 +1167,13 @@ def profile_execution_artifacts(target_root: Path) -> list[dict[str, str]]:
1181
1167
  {"path": ".loom/work-items/INIT-0001.md", "kind": "work-item", "source": "generated"},
1182
1168
  {"path": ".loom/progress/INIT-0001.md", "kind": "progress", "source": "generated"},
1183
1169
  {"path": ".loom/status/current.md", "kind": "status-surface", "source": "generated"},
1170
+ {"path": ".loom/specs/INIT-0001/spec.md", "kind": "spec", "source": "skills/shared/assets/templates/scaffold/spec.md"},
1171
+ {"path": ".loom/specs/INIT-0001/plan.md", "kind": "plan", "source": "skills/shared/assets/templates/scaffold/plan.md"},
1172
+ {
1173
+ "path": ".loom/specs/INIT-0001/implementation-contract.md",
1174
+ "kind": "implementation-contract",
1175
+ "source": "skills/shared/assets/templates/scaffold/implementation-contract.md",
1176
+ },
1184
1177
  ]
1185
1178
  )
1186
1179
  return artifacts
@@ -1242,6 +1235,23 @@ def initial_work_items(
1242
1235
  }
1243
1236
  ]
1244
1237
  artifacts = artifact_paths(initial_artifacts(target_root, install_pr_template, adoption_path, profile))
1238
+ if profile == "light-governance":
1239
+ return [
1240
+ {
1241
+ "id": WORK_ITEM_ID,
1242
+ "goal": "Establish the first lightweight Loom governance loop for this repository",
1243
+ "scope": "Create companion, review guidance, and PR template surfaces without Loom-owned execution carriers",
1244
+ "execution_path": "adoption/light-governance",
1245
+ "workspace_entry": ".",
1246
+ "recovery_entry": "checkpoint-lite issue or PR notes",
1247
+ "review_entry": ".loom/reviews/INIT-0001.json",
1248
+ "validation_entry": "python3 .loom/bin/loom_init.py verify --target .",
1249
+ "artifacts": artifacts,
1250
+ "closing_condition": "The companion entry, review guidance, PR template, and bootstrap metadata are readable without generated work/progress/status/spec carriers",
1251
+ "post_build_continuation": "Upgrade to execution-control only when the repo needs Loom-owned work item, recovery, status, or spec carriers",
1252
+ "owner_for_checkpoint_lite": "repository owner or current lightweight adoption operator",
1253
+ }
1254
+ ]
1245
1255
  return [
1246
1256
  {
1247
1257
  "id": WORK_ITEM_ID,
@@ -1346,13 +1356,6 @@ def planned_write_targets(result: dict[str, object], adoption_path: str) -> list
1346
1356
  (".loom/companion/review.md", "repo-companion-doc"),
1347
1357
  (".loom/companion/merge-ready.md", "repo-companion-doc"),
1348
1358
  (".loom/companion/closeout.md", "repo-companion-doc"),
1349
- (".loom/companion/releases/changelog.md", "repo-release-surface"),
1350
- (".loom/companion/releases/release-notes.md", "repo-release-surface"),
1351
- (".loom/companion/releases/migration-notes.md", "repo-release-surface"),
1352
- (".loom/companion/releases/rollback.md", "repo-release-surface"),
1353
- (".loom/companion/releases/catalog.json", "repo-release-surface"),
1354
- (".loom/companion/releases/current.json", "repo-release-surface"),
1355
- (".loom/companion/releases/status.json", "repo-release-surface"),
1356
1359
  (".loom/shadow/admission-loom.json", "shadow-parity-surface"),
1357
1360
  (".loom/shadow/admission-repo.json", "shadow-parity-surface"),
1358
1361
  (".loom/shadow/review-loom.json", "shadow-parity-surface"),
@@ -1368,6 +1371,10 @@ def planned_write_targets(result: dict[str, object], adoption_path: str) -> list
1368
1371
 
1369
1372
 
1370
1373
  def intentionally_absent_targets(adoption_path: str, profile: str) -> list[dict[str, str]]:
1374
+ release_target_absent = {
1375
+ "path": ".loom/companion/releases/**",
1376
+ "reason": "release target truth stays absent until the repo declares release target intent",
1377
+ }
1371
1378
  if profile == "attach-only":
1372
1379
  return [
1373
1380
  {"path": ".loom/work-items/**", "reason": "attach-only preserves host-owned work item truth"},
@@ -1375,18 +1382,27 @@ def intentionally_absent_targets(adoption_path: str, profile: str) -> list[dict[
1375
1382
  {"path": ".loom/status/current.md", "reason": "attach-only does not author Loom status truth"},
1376
1383
  {"path": ".loom/reviews/**", "reason": "attach-only preserves host-owned review truth"},
1377
1384
  {"path": ".loom/specs/**", "reason": "attach-only does not author Loom execution specs"},
1385
+ release_target_absent,
1378
1386
  ]
1379
1387
  if adoption_path == "defer":
1380
- return [{"path": "*", "reason": "observe-only intent is read-only"}]
1388
+ return [
1389
+ {"path": "*", "reason": "observe-only intent is read-only"},
1390
+ release_target_absent,
1391
+ ]
1381
1392
  if adoption_path == "skill-install-only":
1382
- return [{"path": ".loom/work-items/**", "reason": "skill install does not adopt execution governance"}]
1393
+ return [
1394
+ {"path": ".loom/work-items/**", "reason": "skill install does not adopt execution governance"},
1395
+ release_target_absent,
1396
+ ]
1383
1397
  if profile == "light-governance":
1384
1398
  return [
1385
1399
  {"path": ".loom/work-items/**", "reason": "light-governance does not author Loom work item truth"},
1386
1400
  {"path": ".loom/progress/**", "reason": "light-governance does not author Loom recovery truth"},
1387
1401
  {"path": ".loom/status/current.md", "reason": "light-governance does not author Loom status truth"},
1402
+ {"path": ".loom/specs/**", "reason": "light-governance keeps formal Loom specs deferred until execution-control"},
1403
+ release_target_absent,
1388
1404
  ]
1389
- return []
1405
+ return [release_target_absent]
1390
1406
 
1391
1407
 
1392
1408
  def risk_summary(adoption_path: str, intake: dict[str, object], planned: list[dict[str, object]]) -> dict[str, object]:
@@ -1476,7 +1492,7 @@ def build_result(target_root: Path, scenario: str, intake: dict[str, object], in
1476
1492
  "observe-only": "read-only repository observation; no Loom adoption carriers are written",
1477
1493
  "skill-install-only": "skill/runtime installation intent without repository governance adoption carriers",
1478
1494
  "attach-only": "companion/read-surface attachment that preserves repo-owned execution truth",
1479
- "light-governance": "companion, review/spec, and PR-template loop without Loom-owned work item/progress/status carriers",
1495
+ "light-governance": "companion, review guidance, and PR-template loop without Loom-owned work item/progress/status/spec carriers",
1480
1496
  "execution-control": "Loom-owned work item, progress, review, status, and spec carriers",
1481
1497
  "strong-governance": "execution-control surface prepared for host gates, required checks, merge, and closeout consumption",
1482
1498
  }[profile],
@@ -1539,7 +1555,7 @@ def build_result(target_root: Path, scenario: str, intake: dict[str, object], in
1539
1555
  ]
1540
1556
  if attach_only
1541
1557
  else [
1542
- "admission checkpoint confirms the companion entry, review record, spec suite, and PR template are readable",
1558
+ "admission checkpoint confirms the companion entry, review guidance, bootstrap metadata, and PR template are readable",
1543
1559
  "build checkpoint confirms generated light-governance surfaces are internally consistent",
1544
1560
  "merge checkpoint remains repo-owned until the intent upgrades to execution-control or strong-governance",
1545
1561
  ]
@@ -1553,7 +1569,7 @@ def build_result(target_root: Path, scenario: str, intake: dict[str, object], in
1553
1569
  "clean_state": (
1554
1570
  "all generated attach-only Loom artifacts are readable, verified, and do not introduce Loom-authored work/progress/status/review/spec truth carriers"
1555
1571
  if attach_only
1556
- else "all generated light-governance artifacts are readable, verified, and do not introduce Loom-owned work/progress/status carriers"
1572
+ else "all generated light-governance artifacts are readable, verified, and do not introduce Loom-owned work/progress/status/spec carriers"
1557
1573
  if profile == "light-governance"
1558
1574
  else "all generated Loom artifacts are readable, verified, and free of conflicting duplicates"
1559
1575
  ),
@@ -1566,7 +1582,7 @@ def build_result(target_root: Path, scenario: str, intake: dict[str, object], in
1566
1582
  if attach_only
1567
1583
  else [
1568
1584
  "the target repo has a readable Loom companion entry",
1569
- "the review record, spec suite, and PR template exist",
1585
+ "the companion review guidance, lightweight review placeholders, and PR template exist",
1570
1586
  "the bootstrap manifest and init-result are verifiable",
1571
1587
  ]
1572
1588
  if profile == "light-governance"
@@ -1736,7 +1752,7 @@ def render_loom_readme(result: dict[str, object]) -> str:
1736
1752
  path_lines = (
1737
1753
  "- Repo companion entry: `.loom/companion/README.md`\n"
1738
1754
  "- Review record: `.loom/reviews/INIT-0001.json`\n"
1739
- "- Spec suite: `.loom/specs/INIT-0001/`\n"
1755
+ "- Spec-review guidance: `.loom/reviews/INIT-0001.spec.json`\n"
1740
1756
  )
1741
1757
  else:
1742
1758
  path_lines = (
@@ -1852,12 +1868,6 @@ def repo_interface_payload(profile_name: str = "execution-control") -> dict[str,
1852
1868
  "dynamic_tool_locators": [],
1853
1869
  "policy_locators": [],
1854
1870
  "hook_locators": [],
1855
- "release_targets": {
1856
- "catalog_locator": ".loom/companion/releases/catalog.json",
1857
- "current_target_locator": ".loom/companion/releases/current.json",
1858
- "enforcement": "blocking",
1859
- "status_locator": ".loom/companion/releases/status.json",
1860
- },
1861
1871
  }
1862
1872
  if profile_name == "attach-only":
1863
1873
  payload["host_truth_locators"] = ATTACH_ONLY_HOST_TRUTH_LOCATORS
@@ -1972,6 +1982,13 @@ def render_progress(result: dict[str, object]) -> str:
1972
1982
 
1973
1983
  def render_review_entry(result: dict[str, object]) -> str:
1974
1984
  item = result["initial_work_items"][0]
1985
+ profile = result.get("scaffold_profile")
1986
+ profile_name = str(profile.get("name")) if isinstance(profile, dict) else "execution-control"
1987
+ validation_summary = (
1988
+ "Bootstrap manifest exists; init-result JSON can be read mechanically; companion review guidance and PR template artifacts exist."
1989
+ if profile_name == "light-governance"
1990
+ else "Bootstrap manifest exists; init-result JSON can be read mechanically; the first work item, status surface, and spec/plan artifacts exist."
1991
+ )
1975
1992
  payload = {
1976
1993
  "schema_version": "loom-review/v1",
1977
1994
  "item_id": item["id"],
@@ -1980,7 +1997,7 @@ def render_review_entry(result: dict[str, object]) -> str:
1980
1997
  "summary": "Bootstrap has not entered formal review yet.",
1981
1998
  "reviewer": "not yet assigned",
1982
1999
  "reviewed_head": "bootstrap-placeholder",
1983
- "reviewed_validation_summary": "Bootstrap manifest exists; init-result JSON can be read mechanically; the first work item, status surface, and spec/plan artifacts exist.",
2000
+ "reviewed_validation_summary": validation_summary,
1984
2001
  "fallback_to": "admission",
1985
2002
  "blocking_issues": [
1986
2003
  "Formal review starts only after downstream work replaces the bootstrap placeholder item."
@@ -1994,6 +2011,23 @@ def render_review_entry(result: dict[str, object]) -> str:
1994
2011
 
1995
2012
  def render_spec_review_entry(result: dict[str, object]) -> str:
1996
2013
  item = result["initial_work_items"][0]
2014
+ profile = result.get("scaffold_profile")
2015
+ profile_name = str(profile.get("name")) if isinstance(profile, dict) else "execution-control"
2016
+ validation_summary = (
2017
+ "Bootstrap manifest exists; init-result JSON can be read mechanically; lightweight spec review is represented as review guidance until execution-control creates formal spec carriers."
2018
+ if profile_name == "light-governance"
2019
+ else "Bootstrap manifest exists; init-result JSON can be read mechanically; the first work item, status surface, and spec/plan artifacts exist."
2020
+ )
2021
+ blocking_issue = (
2022
+ "Spec review remains guidance-only until the repo uses a repo-owned spec locator or upgrades to execution-control."
2023
+ if profile_name == "light-governance"
2024
+ else "Spec gate remains open until the formal spec path receives its own review record."
2025
+ )
2026
+ follow_up = (
2027
+ "Keep spec review guidance tied to repo-owned locators, or upgrade to execution-control before creating formal Loom spec carriers."
2028
+ if profile_name == "light-governance"
2029
+ else "Record a spec_review decision before implementation review or merge-ready consumes the formal spec path."
2030
+ )
1997
2031
  payload = {
1998
2032
  "schema_version": "loom-review/v1",
1999
2033
  "item_id": item["id"],
@@ -2002,14 +2036,10 @@ def render_spec_review_entry(result: dict[str, object]) -> str:
2002
2036
  "summary": "Formal spec review has not been completed yet.",
2003
2037
  "reviewer": "not yet assigned",
2004
2038
  "reviewed_head": "bootstrap-placeholder",
2005
- "reviewed_validation_summary": "Bootstrap manifest exists; init-result JSON can be read mechanically; the first work item, status surface, and spec/plan artifacts exist.",
2039
+ "reviewed_validation_summary": validation_summary,
2006
2040
  "fallback_to": "admission",
2007
- "blocking_issues": [
2008
- "Spec gate remains open until the formal spec path receives its own review record."
2009
- ],
2010
- "follow_ups": [
2011
- "Record a spec_review decision before implementation review or merge-ready consumes the formal spec path."
2012
- ],
2041
+ "blocking_issues": [blocking_issue],
2042
+ "follow_ups": [follow_up],
2013
2043
  }
2014
2044
  return json.dumps(payload, ensure_ascii=False, indent=2) + "\n"
2015
2045
 
@@ -2138,6 +2168,7 @@ def scaffold_target(
2138
2168
  profile_name = str(profile.get("name")) if isinstance(profile, dict) else "execution-control"
2139
2169
  writes_light_loop = profile_name in {"light-governance", "execution-control", "strong-governance"}
2140
2170
  writes_work_item_carriers = profile_has_work_item_carriers(profile_name)
2171
+ writes_formal_spec_suite = writes_work_item_carriers
2141
2172
  if profile_name == "attach-only":
2142
2173
  forbidden_errors = attach_only_forbidden_carrier_errors(target_root, result)
2143
2174
  if forbidden_errors:
@@ -2157,59 +2188,6 @@ def scaffold_target(
2157
2188
  (target_root / ".loom/companion/review.md", render_companion_review(), "text"),
2158
2189
  (target_root / ".loom/companion/merge-ready.md", render_companion_merge_ready(), "text"),
2159
2190
  (target_root / ".loom/companion/closeout.md", render_companion_closeout(), "text"),
2160
- (target_root / ".loom/companion/releases/changelog.md", "# Changelog\n\n- Bootstrap release intake example.\n", "text"),
2161
- (target_root / ".loom/companion/releases/release-notes.md", "# Release Notes\n\n- Bootstrap release target is ready for Loom-derived status consumption.\n", "text"),
2162
- (target_root / ".loom/companion/releases/migration-notes.md", "# Migration Notes\n\n- not_applicable\n", "text"),
2163
- (target_root / ".loom/companion/releases/rollback.md", "# Rollback Basis\n\n- Revert the companion-owned release target declaration and rerun Loom checks.\n", "text"),
2164
- (
2165
- target_root / ".loom/companion/releases/catalog.json",
2166
- {
2167
- "schema_version": "loom-target-release-catalog/v1",
2168
- "current_release_id": "bootstrap-v0.1.0",
2169
- "releases": [{"release_id": "bootstrap-v0.1.0", "locator": ".loom/companion/releases/current.json"}],
2170
- },
2171
- "json",
2172
- ),
2173
- (
2174
- target_root / ".loom/companion/releases/current.json",
2175
- {
2176
- "schema_version": "loom-target-release/v1",
2177
- "release_id": "bootstrap-v0.1.0",
2178
- "display_name": "Bootstrap v0.1.0",
2179
- "target_branch": "main",
2180
- "release_goal": "Bootstrap the first executable Loom path for this repository.",
2181
- "status": "unreleased",
2182
- "included_scope": {
2183
- "phase": [{"id": "bootstrap-phase", "locator": ".loom/companion/checkpoints.md", "delivery_status": "planned"}],
2184
- "fr": [],
2185
- "work_item": [{"id": "INIT-0001", "locator": ".loom/work-items/INIT-0001.md", "delivery_status": "unmerged"}],
2186
- "implementation_pr": [],
2187
- "merge_commit": [],
2188
- },
2189
- "evidence": {
2190
- "changelog_locator": ".loom/companion/releases/changelog.md",
2191
- "release_notes_locator": ".loom/companion/releases/release-notes.md",
2192
- "migration_notes_locator": ".loom/companion/releases/migration-notes.md",
2193
- "tag_or_artifact_locator": ".loom/companion/README.md",
2194
- "rollback_basis_locator": ".loom/companion/releases/rollback.md",
2195
- },
2196
- "authority": {
2197
- "owner": "repo-companion",
2198
- "source_kind": "repo_owned_locator",
2199
- "source_locator": ".loom/companion/releases/current.json",
2200
- },
2201
- },
2202
- "json",
2203
- ),
2204
- (
2205
- target_root / ".loom/companion/releases/status.json",
2206
- {
2207
- "schema_version": "loom-target-release-status/v1",
2208
- "result": "pass",
2209
- "summary": "repo-owned release status example is readable.",
2210
- },
2211
- "json",
2212
- ),
2213
2191
  ]
2214
2192
  if writes_light_loop:
2215
2193
  writes.extend(
@@ -2259,7 +2237,7 @@ def scaffold_target(
2259
2237
  if copy_file(source, destination, force=force):
2260
2238
  written += 1
2261
2239
  touched.append(str(destination.relative_to(target_root)))
2262
- if writes_light_loop:
2240
+ if writes_formal_spec_suite:
2263
2241
  for source, destination in (
2264
2242
  (shared_asset(__file__, "templates/scaffold/spec.md"), target_root / ".loom/specs/INIT-0001/spec.md"),
2265
2243
  (shared_asset(__file__, "templates/scaffold/plan.md"), target_root / ".loom/specs/INIT-0001/plan.md"),
@@ -2420,9 +2398,33 @@ def verify_target(target_root: Path, output_path: Path) -> list[str]:
2420
2398
  for artifact in result.get("initial_artifacts", [])
2421
2399
  if isinstance(artifact, dict) and isinstance(artifact.get("path"), str)
2422
2400
  }
2423
- for forbidden in (".loom/work-items/INIT-0001.md", ".loom/progress/INIT-0001.md", ".loom/status/current.md"):
2424
- if forbidden in declared_generated:
2425
- errors.append(f"light-governance bootstrap must not declare execution-control carrier `{forbidden}`")
2401
+ planned_generated = {
2402
+ item.get("path")
2403
+ for item in result.get("planned_writes", [])
2404
+ if isinstance(item, dict) and isinstance(item.get("path"), str)
2405
+ }
2406
+ forbidden_patterns = (
2407
+ ".loom/work-items/**",
2408
+ ".loom/progress/**",
2409
+ ".loom/status/current.md",
2410
+ ".loom/specs/**",
2411
+ )
2412
+ for collection_name, paths in (("initial_artifacts", declared_generated), ("planned_writes", planned_generated)):
2413
+ for path in paths:
2414
+ if not isinstance(path, str):
2415
+ continue
2416
+ if any(matches_forbidden_authored_carrier(path, pattern) for pattern in forbidden_patterns):
2417
+ errors.append(f"light-governance bootstrap must not declare execution-control carrier `{path}` in {collection_name}")
2418
+ for path in (
2419
+ ".loom/work-items/INIT-0001.md",
2420
+ ".loom/progress/INIT-0001.md",
2421
+ ".loom/status/current.md",
2422
+ ".loom/specs/INIT-0001/spec.md",
2423
+ ".loom/specs/INIT-0001/plan.md",
2424
+ ".loom/specs/INIT-0001/implementation-contract.md",
2425
+ ):
2426
+ if (target_root / path).exists():
2427
+ errors.append(f"light-governance bootstrap must not leave execution-control carrier on disk: {path}")
2426
2428
 
2427
2429
  for relative in required_paths:
2428
2430
  if not (target_root / relative).exists():