@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
@@ -4336,6 +4336,17 @@ def check_deep_existing_repo_bootstrap(root: Path) -> list[Failure]:
4336
4336
  if pr_template:
4337
4337
  (target / ".github" / "PULL_REQUEST_TEMPLATE.md").write_text("## Summary\n", encoding="utf-8")
4338
4338
 
4339
+ def write_small_existing_repo(target: Path, *, pr_template: bool = False) -> None:
4340
+ (target / ".github" / "workflows").mkdir(parents=True, exist_ok=True)
4341
+ (target / "src").mkdir(parents=True, exist_ok=True)
4342
+ (target / "README.md").write_text("# Small Existing Repo\n", encoding="utf-8")
4343
+ (target / "AGENTS.md").write_text("# Root Rules\n", encoding="utf-8")
4344
+ (target / "src" / "main.py").write_text("print('ok')\n", encoding="utf-8")
4345
+ (target / ".github" / "workflows" / "ci.yml").write_text("name: ci\n", encoding="utf-8")
4346
+ (target / "Makefile").write_text("check:\n\t@echo ok\n", encoding="utf-8")
4347
+ if pr_template:
4348
+ (target / ".github" / "PULL_REQUEST_TEMPLATE.md").write_text("## Summary\n", encoding="utf-8")
4349
+
4339
4350
  attach_only_forbidden_patterns = (
4340
4351
  ".loom/work-items/**",
4341
4352
  ".loom/progress/**",
@@ -4343,6 +4354,15 @@ def check_deep_existing_repo_bootstrap(root: Path) -> list[Failure]:
4343
4354
  ".loom/reviews/**",
4344
4355
  ".loom/specs/**",
4345
4356
  )
4357
+ default_release_paths = (
4358
+ ".loom/companion/releases/changelog.md",
4359
+ ".loom/companion/releases/release-notes.md",
4360
+ ".loom/companion/releases/migration-notes.md",
4361
+ ".loom/companion/releases/rollback.md",
4362
+ ".loom/companion/releases/catalog.json",
4363
+ ".loom/companion/releases/current.json",
4364
+ ".loom/companion/releases/status.json",
4365
+ )
4346
4366
 
4347
4367
  def matches_forbidden(path: str, pattern: str) -> bool:
4348
4368
  if pattern.endswith("/**"):
@@ -4358,6 +4378,50 @@ def check_deep_existing_repo_bootstrap(root: Path) -> list[Failure]:
4358
4378
  return pattern
4359
4379
  return None
4360
4380
 
4381
+ def assert_no_default_release_target(target: Path, payload: dict[str, object], context: str) -> None:
4382
+ planned = payload.get("planned_writes")
4383
+ planned_paths = {item.get("path") for item in planned if isinstance(item, dict)} if isinstance(planned, list) else set()
4384
+ initial = payload.get("initial_artifacts")
4385
+ initial_paths = {item.get("path") for item in initial if isinstance(item, dict)} if isinstance(initial, list) else set()
4386
+ absent = payload.get("intentionally_absent")
4387
+ absent_paths = {item.get("path") for item in absent if isinstance(item, dict)} if isinstance(absent, list) else set()
4388
+ serialized = json.dumps(payload, ensure_ascii=False)
4389
+ for release_path in default_release_paths:
4390
+ if release_path in planned_paths:
4391
+ failures.append(Failure("deep-existing-bootstrap", f"`{context}` must not plan default release target `{release_path}`"))
4392
+ if release_path in initial_paths:
4393
+ failures.append(Failure("deep-existing-bootstrap", f"`{context}` must not declare default release target `{release_path}`"))
4394
+ if (target / release_path).exists():
4395
+ failures.append(Failure("deep-existing-bootstrap", f"`{context}` must not generate default release target `{release_path}`"))
4396
+ if ".loom/companion/releases/**" not in absent_paths:
4397
+ failures.append(Failure("deep-existing-bootstrap", f"`{context}` must mark release targets intentionally absent by default"))
4398
+ if "bootstrap-v0.1.0" in serialized:
4399
+ failures.append(Failure("deep-existing-bootstrap", f"`{context}` must not mention placeholder release id `bootstrap-v0.1.0`"))
4400
+ repo_interface_path = target / ".loom/companion/repo-interface.json"
4401
+ if repo_interface_path.exists():
4402
+ repo_interface = json.loads(repo_interface_path.read_text(encoding="utf-8"))
4403
+ if "release_targets" in repo_interface:
4404
+ failures.append(Failure("deep-existing-bootstrap", f"`{context}` repo-interface must not declare release_targets without release target intent"))
4405
+ surface = build_governance_surface(target)
4406
+ repo_interface_surface = surface.get("repo_interface") if isinstance(surface, dict) else None
4407
+ release_targets = repo_interface_surface.get("release_targets") if isinstance(repo_interface_surface, dict) else None
4408
+ require_release_targets_surface_payload(
4409
+ failures,
4410
+ category="deep-existing-bootstrap",
4411
+ context=f"`{context}` absent release targets",
4412
+ payload=release_targets,
4413
+ )
4414
+ target_release = release_targets.get("target_release") if isinstance(release_targets, dict) else None
4415
+ if not isinstance(release_targets, dict) or release_targets.get("availability") != "absent":
4416
+ failures.append(Failure("deep-existing-bootstrap", f"`{context}` must report release_targets availability absent by default"))
4417
+ if not isinstance(target_release, dict) or target_release.get("result") != "not_applicable":
4418
+ failures.append(Failure("deep-existing-bootstrap", f"`{context}` must report target_release not_applicable when release targets are absent"))
4419
+ if isinstance(release_targets, dict):
4420
+ for surface_key in ("catalog", "current_target", "status"):
4421
+ surface_entry = release_targets.get(surface_key)
4422
+ if isinstance(surface_entry, dict) and surface_entry.get("status") == "present":
4423
+ failures.append(Failure("deep-existing-bootstrap", f"`{context}` must not report absent release target `{surface_key}` as present"))
4424
+
4361
4425
  deep_target = tmp_root / "deep-existing"
4362
4426
  write_repo(deep_target, validation_entry=True, pr_template=True, workflow_doc=True)
4363
4427
  deep_dry_payload, deep_dry_error = load_command_json(
@@ -4404,6 +4468,7 @@ def check_deep_existing_repo_bootstrap(root: Path) -> list[Failure]:
4404
4468
  failures.append(Failure("deep-existing-bootstrap", "`deep-existing dry-run` must report detected repository mode"))
4405
4469
  if not isinstance(write, dict) or write.get("enabled") is not False:
4406
4470
  failures.append(Failure("deep-existing-bootstrap", "`deep-existing dry-run` must keep write.enabled = false"))
4471
+ assert_no_default_release_target(deep_target, deep_dry_payload, "deep-existing dry-run")
4407
4472
 
4408
4473
  deep_payload, deep_error = load_command_json(
4409
4474
  root,
@@ -4463,6 +4528,7 @@ def check_deep_existing_repo_bootstrap(root: Path) -> list[Failure]:
4463
4528
  host_truth = repo_interface.get("host_truth_locators")
4464
4529
  if not isinstance(host_truth, dict) or set(host_truth.keys()) != {"work_item", "project_status", "review", "closeout"}:
4465
4530
  failures.append(Failure("deep-existing-bootstrap", "`deep-existing bootstrap` repo-interface must declare attach-only host truth locators"))
4531
+ assert_no_default_release_target(deep_target, deep_payload, "deep-existing bootstrap")
4466
4532
 
4467
4533
  poisoned_files_target = tmp_root / "deep-existing-poison-files"
4468
4534
  if deep_target.exists() and (deep_target / ".loom/bin/loom_init.py").exists():
@@ -4583,6 +4649,10 @@ def check_deep_existing_repo_bootstrap(root: Path) -> list[Failure]:
4583
4649
  intent = explicit_payload.get("adoption_intent")
4584
4650
  recommended = explicit_payload.get("recommended_adoption")
4585
4651
  profile = explicit_payload.get("scaffold_profile")
4652
+ planned = explicit_payload.get("planned_writes")
4653
+ planned_paths = {item.get("path") for item in planned if isinstance(item, dict)} if isinstance(planned, list) else set()
4654
+ initial = explicit_payload.get("initial_artifacts")
4655
+ initial_paths = {item.get("path") for item in initial if isinstance(item, dict)} if isinstance(initial, list) else set()
4586
4656
  if not isinstance(intent, dict) or intent.get("effective") != "execution-control":
4587
4657
  failures.append(Failure("deep-existing-bootstrap", "explicit full-bootstrap sample must report `adoption_intent.effective = execution-control`"))
4588
4658
  if not isinstance(recommended, dict) or recommended.get("path") != "full-bootstrap":
@@ -4595,12 +4665,17 @@ def check_deep_existing_repo_bootstrap(root: Path) -> list[Failure]:
4595
4665
  ".loom/status/current.md",
4596
4666
  ".loom/reviews/INIT-0001.json",
4597
4667
  ".loom/specs/INIT-0001/spec.md",
4668
+ ".loom/specs/INIT-0001/plan.md",
4669
+ ".loom/specs/INIT-0001/implementation-contract.md",
4598
4670
  ):
4599
4671
  if not (explicit_full_target / required).exists():
4600
4672
  failures.append(Failure("deep-existing-bootstrap", f"`explicit execution-control bootstrap sample` must generate `{required}`"))
4673
+ if required not in planned_paths or required not in initial_paths:
4674
+ failures.append(Failure("deep-existing-bootstrap", f"`explicit execution-control bootstrap sample` must declare `{required}` in planned_writes and initial_artifacts"))
4675
+ assert_no_default_release_target(explicit_full_target, explicit_payload, "explicit execution-control bootstrap sample")
4601
4676
 
4602
4677
  light_target = tmp_root / "light-governance"
4603
- write_repo(light_target, validation_entry=True, pr_template=False, workflow_doc=False)
4678
+ write_small_existing_repo(light_target)
4604
4679
  light_payload, light_error = load_command_json(
4605
4680
  root,
4606
4681
  [
@@ -4620,23 +4695,76 @@ def check_deep_existing_repo_bootstrap(root: Path) -> list[Failure]:
4620
4695
  if light_error:
4621
4696
  failures.append(Failure("deep-existing-bootstrap", f"`light-governance bootstrap sample` failed: {light_error}"))
4622
4697
  else:
4698
+ run = light_payload.get("run")
4699
+ recommended = light_payload.get("recommended_adoption")
4623
4700
  profile = light_payload.get("scaffold_profile")
4701
+ intentionally_absent = light_payload.get("intentionally_absent")
4702
+ absent_paths = (
4703
+ {item.get("path") for item in intentionally_absent if isinstance(item, dict)}
4704
+ if isinstance(intentionally_absent, list)
4705
+ else set()
4706
+ )
4707
+ if not isinstance(run, dict) or run.get("scenario_key") != "small-existing" or run.get("recovery_mode") != "checkpoint-lite":
4708
+ failures.append(Failure("deep-existing-bootstrap", "light-governance sample must model small-existing checkpoint-lite adoption"))
4709
+ if not isinstance(recommended, dict) or recommended.get("path") != "lightweight-retrofit":
4710
+ failures.append(Failure("deep-existing-bootstrap", "light-governance sample must select `recommended_adoption.path = lightweight-retrofit`"))
4624
4711
  if not isinstance(profile, dict) or profile.get("name") != "light-governance":
4625
4712
  failures.append(Failure("deep-existing-bootstrap", "light-governance sample must report `scaffold_profile.name = light-governance`"))
4713
+ if not isinstance(profile, dict) or profile.get("writes_work_item_carriers") is not False:
4714
+ failures.append(Failure("deep-existing-bootstrap", "light-governance sample must report `writes_work_item_carriers = false`"))
4626
4715
  if not isinstance(light_payload.get("upgrade_triggers"), list) or not light_payload["upgrade_triggers"]:
4627
4716
  failures.append(Failure("deep-existing-bootstrap", "light-governance sample must report top-level upgrade_triggers"))
4717
+ deferred_text = json.dumps(light_payload.get("deferred_capabilities", []), ensure_ascii=False)
4718
+ if "spec" not in deferred_text or "execution-control" not in deferred_text:
4719
+ failures.append(Failure("deep-existing-bootstrap", "light-governance sample must defer Loom-owned spec carriers to execution-control"))
4628
4720
  planned = light_payload.get("planned_writes")
4629
4721
  planned_paths = {item.get("path") for item in planned if isinstance(item, dict)} if isinstance(planned, list) else set()
4630
- for required in (".loom/reviews/INIT-0001.json", ".loom/specs/INIT-0001/spec.md", ".github/PULL_REQUEST_TEMPLATE.md"):
4722
+ for required in (".loom/reviews/INIT-0001.json", ".loom/reviews/INIT-0001.spec.json", ".github/PULL_REQUEST_TEMPLATE.md"):
4631
4723
  if required not in planned_paths or not (light_target / required).exists():
4632
4724
  failures.append(Failure("deep-existing-bootstrap", f"`light-governance bootstrap sample` must generate `{required}`"))
4725
+ for absent in (".loom/work-items/**", ".loom/progress/**", ".loom/status/current.md", ".loom/specs/**"):
4726
+ if absent not in absent_paths:
4727
+ failures.append(Failure("deep-existing-bootstrap", f"`light-governance bootstrap sample` must mark `{absent}` intentionally absent"))
4633
4728
  for forbidden in (
4634
4729
  ".loom/work-items/INIT-0001.md",
4635
4730
  ".loom/progress/INIT-0001.md",
4636
4731
  ".loom/status/current.md",
4732
+ ".loom/specs/INIT-0001/spec.md",
4733
+ ".loom/specs/INIT-0001/plan.md",
4734
+ ".loom/specs/INIT-0001/implementation-contract.md",
4637
4735
  ):
4638
4736
  if forbidden in planned_paths or (light_target / forbidden).exists():
4639
4737
  failures.append(Failure("deep-existing-bootstrap", f"`light-governance bootstrap sample` must not generate `{forbidden}`"))
4738
+ assert_no_default_release_target(light_target, light_payload, "light-governance bootstrap sample")
4739
+ readme_text = (light_target / ".loom/README.md").read_text(encoding="utf-8") if (light_target / ".loom/README.md").exists() else ""
4740
+ if ".loom/specs" in readme_text or "Spec suite" in readme_text:
4741
+ failures.append(Failure("deep-existing-bootstrap", "`light-governance bootstrap sample` must not declare a spec suite in `.loom/README.md`"))
4742
+ spec_review_text = (light_target / ".loom/reviews/INIT-0001.spec.json").read_text(encoding="utf-8") if (light_target / ".loom/reviews/INIT-0001.spec.json").exists() else ""
4743
+ if "formal spec path" in spec_review_text:
4744
+ failures.append(Failure("deep-existing-bootstrap", "`light-governance spec review placeholder` must not tell operators to consume a formal spec path"))
4745
+ if (light_target / ".loom/bin/loom_init.py").exists():
4746
+ poisoned_light_target = tmp_root / "light-governance-poison-specs"
4747
+ shutil.copytree(light_target, poisoned_light_target)
4748
+ (poisoned_light_target / ".loom/specs/INIT-0001").mkdir(parents=True, exist_ok=True)
4749
+ (poisoned_light_target / ".loom/specs/INIT-0001/spec.md").write_text("# Unexpected Spec\n", encoding="utf-8")
4750
+ poisoned_payload, poisoned_error = load_command_json(
4751
+ root,
4752
+ [
4753
+ "python3",
4754
+ str(poisoned_light_target / ".loom/bin/loom_init.py"),
4755
+ "verify",
4756
+ "--target",
4757
+ str(poisoned_light_target),
4758
+ ],
4759
+ )
4760
+ if poisoned_error:
4761
+ failures.append(Failure("deep-existing-bootstrap", f"`light-governance forbidden spec verify` failed: {poisoned_error}"))
4762
+ else:
4763
+ errors_text = json.dumps(poisoned_payload.get("errors", []), ensure_ascii=False) if poisoned_payload else ""
4764
+ if poisoned_payload.get("ok") is not False:
4765
+ failures.append(Failure("deep-existing-bootstrap", "`light-governance forbidden spec verify` must fail closed"))
4766
+ if ".loom/specs/INIT-0001/spec.md" not in errors_text:
4767
+ failures.append(Failure("deep-existing-bootstrap", "`light-governance forbidden spec verify` must name the unexpected spec carrier"))
4640
4768
  return failures
4641
4769
 
4642
4770
 
@@ -3172,12 +3172,6 @@ def default_repo_interface() -> dict[str, Any]:
3172
3172
  "dynamic_tool_locators": [],
3173
3173
  "policy_locators": [],
3174
3174
  "hook_locators": [],
3175
- "release_targets": {
3176
- "catalog_locator": ".loom/companion/releases/catalog.json",
3177
- "current_target_locator": ".loom/companion/releases/current.json",
3178
- "enforcement": "blocking",
3179
- "status_locator": ".loom/companion/releases/status.json",
3180
- },
3181
3175
  }
3182
3176
 
3183
3177
 
@@ -3237,10 +3231,6 @@ def companion_text_payloads() -> dict[str, str]:
3237
3231
  ".loom/companion/merge-ready.md": "# Companion Merge-Ready Surface\n",
3238
3232
  ".loom/companion/closeout.md": "# Companion Closeout Surface\n",
3239
3233
  ".loom/companion/checkpoints.md": "# Companion Checkpoints\n",
3240
- ".loom/companion/releases/changelog.md": "# Changelog\n\n- Bootstrap release intake example.\n",
3241
- ".loom/companion/releases/release-notes.md": "# Release Notes\n\n- Bootstrap release target is ready for Loom-derived status consumption.\n",
3242
- ".loom/companion/releases/migration-notes.md": "# Migration Notes\n\n- not_applicable\n",
3243
- ".loom/companion/releases/rollback.md": "# Rollback Basis\n\n- Revert the companion-owned release target declaration and rerun Loom checks.\n",
3244
3234
  }
3245
3235
 
3246
3236
 
@@ -3249,48 +3239,6 @@ def companion_json_payloads() -> dict[str, dict[str, Any]]:
3249
3239
  ".loom/companion/manifest.json": default_companion_manifest(),
3250
3240
  ".loom/companion/repo-interface.json": default_repo_interface(),
3251
3241
  ".loom/companion/interop.json": default_repo_interop(),
3252
- ".loom/companion/releases/catalog.json": {
3253
- "schema_version": "loom-target-release-catalog/v1",
3254
- "current_release_id": "bootstrap-v0.1.0",
3255
- "releases": [
3256
- {
3257
- "release_id": "bootstrap-v0.1.0",
3258
- "locator": ".loom/companion/releases/current.json",
3259
- }
3260
- ],
3261
- },
3262
- ".loom/companion/releases/current.json": {
3263
- "schema_version": "loom-target-release/v1",
3264
- "release_id": "bootstrap-v0.1.0",
3265
- "display_name": "Bootstrap v0.1.0",
3266
- "target_branch": "main",
3267
- "release_goal": "Bootstrap the first executable Loom path for this repository.",
3268
- "status": "unreleased",
3269
- "included_scope": {
3270
- "phase": [{"id": "bootstrap-phase", "locator": ".loom/companion/checkpoints.md", "delivery_status": "planned"}],
3271
- "fr": [],
3272
- "work_item": [{"id": "INIT-0001", "locator": ".loom/work-items/INIT-0001.md", "delivery_status": "unmerged"}],
3273
- "implementation_pr": [],
3274
- "merge_commit": [],
3275
- },
3276
- "evidence": {
3277
- "changelog_locator": ".loom/companion/releases/changelog.md",
3278
- "release_notes_locator": ".loom/companion/releases/release-notes.md",
3279
- "migration_notes_locator": ".loom/companion/releases/migration-notes.md",
3280
- "tag_or_artifact_locator": ".loom/companion/README.md",
3281
- "rollback_basis_locator": ".loom/companion/releases/rollback.md",
3282
- },
3283
- "authority": {
3284
- "owner": "repo-companion",
3285
- "source_kind": "repo_owned_locator",
3286
- "source_locator": ".loom/companion/releases/current.json",
3287
- },
3288
- },
3289
- ".loom/companion/releases/status.json": {
3290
- "schema_version": "loom-target-release-status/v1",
3291
- "result": "pass",
3292
- "summary": "repo-owned release status example is readable.",
3293
- },
3294
3242
  }
3295
3243
 
3296
3244