@mc-and-his-agents/loom-installer 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (856) hide show
  1. package/README.md +47 -0
  2. package/dist/src/claude.js +157 -0
  3. package/dist/src/cli.js +35 -0
  4. package/dist/src/codex.js +191 -0
  5. package/dist/src/index.js +175 -0
  6. package/dist/src/payload.js +42 -0
  7. package/dist/src/types.js +1 -0
  8. package/dist/src/utils.js +84 -0
  9. package/dist/test/installer.test.js +167 -0
  10. package/package.json +46 -0
  11. package/payload/manifest.json +4294 -0
  12. package/payload/plugin/loom/.codex-plugin/plugin.json +37 -0
  13. package/payload/plugin/loom/skills/README.md +128 -0
  14. package/payload/plugin/loom/skills/distribution-and-adapter-contract.md +359 -0
  15. package/payload/plugin/loom/skills/install-layout.json +91 -0
  16. package/payload/plugin/loom/skills/loom-adopt/SKILL.md +80 -0
  17. package/payload/plugin/loom/skills/loom-adopt/agents/openai.yaml +4 -0
  18. package/payload/plugin/loom/skills/loom-adopt/contract.json +45 -0
  19. package/payload/plugin/loom/skills/loom-adopt/references/input-signals.md +17 -0
  20. package/payload/plugin/loom/skills/loom-adopt/references/output-contract.md +17 -0
  21. package/payload/plugin/loom/skills/loom-adopt/scripts/loom-adopt.py +14 -0
  22. package/payload/plugin/loom/skills/loom-handoff/SKILL.md +23 -0
  23. package/payload/plugin/loom/skills/loom-handoff/agents/openai.yaml +4 -0
  24. package/payload/plugin/loom/skills/loom-handoff/contract.json +53 -0
  25. package/payload/plugin/loom/skills/loom-handoff/references/input-signals.md +7 -0
  26. package/payload/plugin/loom/skills/loom-handoff/references/output-contract.md +42 -0
  27. package/payload/plugin/loom/skills/loom-handoff/scripts/loom-handoff.py +14 -0
  28. package/payload/plugin/loom/skills/loom-init/SKILL.md +246 -0
  29. package/payload/plugin/loom/skills/loom-init/agents/openai.yaml +4 -0
  30. package/payload/plugin/loom/skills/loom-init/contract.json +76 -0
  31. package/payload/plugin/loom/skills/loom-init/references/input-signals.md +16 -0
  32. package/payload/plugin/loom/skills/loom-init/references/intake-signals.md +155 -0
  33. package/payload/plugin/loom/skills/loom-init/references/output-contract.md +208 -0
  34. package/payload/plugin/loom/skills/loom-init/scripts/loom-init.py +14 -0
  35. package/payload/plugin/loom/skills/loom-merge-ready/SKILL.md +23 -0
  36. package/payload/plugin/loom/skills/loom-merge-ready/agents/openai.yaml +4 -0
  37. package/payload/plugin/loom/skills/loom-merge-ready/contract.json +49 -0
  38. package/payload/plugin/loom/skills/loom-merge-ready/references/input-signals.md +7 -0
  39. package/payload/plugin/loom/skills/loom-merge-ready/references/output-contract.md +34 -0
  40. package/payload/plugin/loom/skills/loom-merge-ready/scripts/loom-merge-ready.py +14 -0
  41. package/payload/plugin/loom/skills/loom-pre-review/SKILL.md +69 -0
  42. package/payload/plugin/loom/skills/loom-pre-review/agents/openai.yaml +4 -0
  43. package/payload/plugin/loom/skills/loom-pre-review/contract.json +41 -0
  44. package/payload/plugin/loom/skills/loom-pre-review/references/input-signals.md +14 -0
  45. package/payload/plugin/loom/skills/loom-pre-review/references/output-contract.md +20 -0
  46. package/payload/plugin/loom/skills/loom-pre-review/scripts/loom-pre-review.py +14 -0
  47. package/payload/plugin/loom/skills/loom-resume/SKILL.md +72 -0
  48. package/payload/plugin/loom/skills/loom-resume/agents/openai.yaml +4 -0
  49. package/payload/plugin/loom/skills/loom-resume/contract.json +47 -0
  50. package/payload/plugin/loom/skills/loom-resume/references/input-signals.md +15 -0
  51. package/payload/plugin/loom/skills/loom-resume/references/output-contract.md +58 -0
  52. package/payload/plugin/loom/skills/loom-resume/scripts/loom-resume.py +14 -0
  53. package/payload/plugin/loom/skills/loom-retire/SKILL.md +26 -0
  54. package/payload/plugin/loom/skills/loom-retire/agents/openai.yaml +4 -0
  55. package/payload/plugin/loom/skills/loom-retire/contract.json +41 -0
  56. package/payload/plugin/loom/skills/loom-retire/references/input-signals.md +7 -0
  57. package/payload/plugin/loom/skills/loom-retire/references/output-contract.md +13 -0
  58. package/payload/plugin/loom/skills/loom-retire/scripts/loom-retire.py +14 -0
  59. package/payload/plugin/loom/skills/loom-review/SKILL.md +95 -0
  60. package/payload/plugin/loom/skills/loom-review/agents/openai.yaml +4 -0
  61. package/payload/plugin/loom/skills/loom-review/contract.json +49 -0
  62. package/payload/plugin/loom/skills/loom-review/references/input-signals.md +15 -0
  63. package/payload/plugin/loom/skills/loom-review/references/output-contract.md +57 -0
  64. package/payload/plugin/loom/skills/loom-review/scripts/loom-review.py +14 -0
  65. package/payload/plugin/loom/skills/registry.json +64 -0
  66. package/payload/plugin/loom/skills/route-matrix.md +63 -0
  67. package/payload/plugin/loom/skills/shared/assets/github/PULL_REQUEST_TEMPLATE.md +22 -0
  68. package/payload/plugin/loom/skills/shared/assets/review/loom-review-result-schema.json +93 -0
  69. package/payload/plugin/loom/skills/shared/assets/templates/scaffold/plan.md +51 -0
  70. package/payload/plugin/loom/skills/shared/assets/templates/scaffold/spec.md +48 -0
  71. package/payload/plugin/loom/skills/shared/references/adoption/deep-existing-repo-default.md +64 -0
  72. package/payload/plugin/loom/skills/shared/references/adoption/lightweight-retrofit-default.md +71 -0
  73. package/payload/plugin/loom/skills/shared/references/adoption/routing-and-checkpoints.md +88 -0
  74. package/payload/plugin/loom/skills/shared/references/governance/host-object-taxonomy.md +148 -0
  75. package/payload/plugin/loom/skills/shared/references/governance/issue-model.md +127 -0
  76. package/payload/plugin/loom/skills/shared/references/governance/maturity-and-closing.md +69 -0
  77. package/payload/plugin/loom/skills/shared/references/governance/principles.md +180 -0
  78. package/payload/plugin/loom/skills/shared/references/governance/review-model.md +109 -0
  79. package/payload/plugin/loom/skills/shared/references/governance/state-machine.md +163 -0
  80. package/payload/plugin/loom/skills/shared/references/governance/truth-and-sync-boundary.md +161 -0
  81. package/payload/plugin/loom/skills/shared/references/harness/automation-frontload.md +139 -0
  82. package/payload/plugin/loom/skills/shared/references/harness/closeout-gate.md +97 -0
  83. package/payload/plugin/loom/skills/shared/references/harness/execution-chain.md +56 -0
  84. package/payload/plugin/loom/skills/shared/references/harness/execution-context.md +71 -0
  85. package/payload/plugin/loom/skills/shared/references/harness/fact-chain-contract.md +160 -0
  86. package/payload/plugin/loom/skills/shared/references/harness/host-action-contract.md +128 -0
  87. package/payload/plugin/loom/skills/shared/references/harness/host-issue-binding.md +90 -0
  88. package/payload/plugin/loom/skills/shared/references/harness/host-lifecycle-boundary.md +56 -0
  89. package/payload/plugin/loom/skills/shared/references/harness/merge-checkpoint.md +95 -0
  90. package/payload/plugin/loom/skills/shared/references/harness/reconciliation-audit.md +64 -0
  91. package/payload/plugin/loom/skills/shared/references/harness/recovery-model.md +101 -0
  92. package/payload/plugin/loom/skills/shared/references/harness/review-execution.md +99 -0
  93. package/payload/plugin/loom/skills/shared/references/harness/runtime-state.md +103 -0
  94. package/payload/plugin/loom/skills/shared/references/harness/status-surface.md +121 -0
  95. package/payload/plugin/loom/skills/shared/references/harness/work-item-contract.md +104 -0
  96. package/payload/plugin/loom/skills/shared/references/harness/workspace-and-purity.md +73 -0
  97. package/payload/plugin/loom/skills/shared/references/harness/workspace-model.md +56 -0
  98. package/payload/plugin/loom/skills/shared/references/templates/pull-request.md +44 -0
  99. package/payload/plugin/loom/skills/shared/references/templates/review-record.md +35 -0
  100. package/payload/plugin/loom/skills/shared/references/templates/spec-suite.md +57 -0
  101. package/payload/plugin/loom/skills/shared/scripts/fact_chain_support.py +509 -0
  102. package/payload/plugin/loom/skills/shared/scripts/governance_surface.py +869 -0
  103. package/payload/plugin/loom/skills/shared/scripts/loom_check.py +4724 -0
  104. package/payload/plugin/loom/skills/shared/scripts/loom_flow.py +5390 -0
  105. package/payload/plugin/loom/skills/shared/scripts/loom_init.py +1966 -0
  106. package/payload/plugin/loom/skills/shared/scripts/runtime_paths.py +116 -0
  107. package/payload/plugin/loom/skills/shared/scripts/runtime_state.py +405 -0
  108. package/payload/plugin/loom/skills/upgrade-contract.json +29 -0
  109. package/payload/skills/loom-adopt/.loom-runtime/install-layout.json +77 -0
  110. package/payload/skills/loom-adopt/.loom-runtime/loom-adopt/SKILL.md +80 -0
  111. package/payload/skills/loom-adopt/.loom-runtime/loom-adopt/agents/openai.yaml +4 -0
  112. package/payload/skills/loom-adopt/.loom-runtime/loom-adopt/contract.json +45 -0
  113. package/payload/skills/loom-adopt/.loom-runtime/loom-adopt/references/input-signals.md +17 -0
  114. package/payload/skills/loom-adopt/.loom-runtime/loom-adopt/references/output-contract.md +17 -0
  115. package/payload/skills/loom-adopt/.loom-runtime/loom-adopt/scripts/loom-adopt.py +14 -0
  116. package/payload/skills/loom-adopt/.loom-runtime/loom-init/references/input-signals.md +16 -0
  117. package/payload/skills/loom-adopt/.loom-runtime/loom-init/references/intake-signals.md +155 -0
  118. package/payload/skills/loom-adopt/.loom-runtime/loom-init/references/output-contract.md +208 -0
  119. package/payload/skills/loom-adopt/.loom-runtime/registry.json +15 -0
  120. package/payload/skills/loom-adopt/.loom-runtime/route-matrix.md +63 -0
  121. package/payload/skills/loom-adopt/.loom-runtime/shared/assets/github/PULL_REQUEST_TEMPLATE.md +22 -0
  122. package/payload/skills/loom-adopt/.loom-runtime/shared/assets/review/loom-review-result-schema.json +93 -0
  123. package/payload/skills/loom-adopt/.loom-runtime/shared/assets/templates/scaffold/plan.md +51 -0
  124. package/payload/skills/loom-adopt/.loom-runtime/shared/assets/templates/scaffold/spec.md +48 -0
  125. package/payload/skills/loom-adopt/.loom-runtime/shared/references/adoption/deep-existing-repo-default.md +64 -0
  126. package/payload/skills/loom-adopt/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +71 -0
  127. package/payload/skills/loom-adopt/.loom-runtime/shared/references/adoption/routing-and-checkpoints.md +88 -0
  128. package/payload/skills/loom-adopt/.loom-runtime/shared/references/governance/host-object-taxonomy.md +148 -0
  129. package/payload/skills/loom-adopt/.loom-runtime/shared/references/governance/issue-model.md +127 -0
  130. package/payload/skills/loom-adopt/.loom-runtime/shared/references/governance/maturity-and-closing.md +69 -0
  131. package/payload/skills/loom-adopt/.loom-runtime/shared/references/governance/principles.md +180 -0
  132. package/payload/skills/loom-adopt/.loom-runtime/shared/references/governance/review-model.md +109 -0
  133. package/payload/skills/loom-adopt/.loom-runtime/shared/references/governance/state-machine.md +163 -0
  134. package/payload/skills/loom-adopt/.loom-runtime/shared/references/governance/truth-and-sync-boundary.md +161 -0
  135. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/automation-frontload.md +139 -0
  136. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/closeout-gate.md +97 -0
  137. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/execution-chain.md +56 -0
  138. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/execution-context.md +71 -0
  139. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/fact-chain-contract.md +160 -0
  140. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/host-action-contract.md +128 -0
  141. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/host-issue-binding.md +90 -0
  142. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/host-lifecycle-boundary.md +56 -0
  143. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/merge-checkpoint.md +95 -0
  144. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/reconciliation-audit.md +64 -0
  145. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/recovery-model.md +101 -0
  146. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/review-execution.md +99 -0
  147. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/runtime-state.md +103 -0
  148. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/status-surface.md +121 -0
  149. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/work-item-contract.md +104 -0
  150. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/workspace-and-purity.md +73 -0
  151. package/payload/skills/loom-adopt/.loom-runtime/shared/references/harness/workspace-model.md +56 -0
  152. package/payload/skills/loom-adopt/.loom-runtime/shared/references/templates/pull-request.md +44 -0
  153. package/payload/skills/loom-adopt/.loom-runtime/shared/references/templates/review-record.md +35 -0
  154. package/payload/skills/loom-adopt/.loom-runtime/shared/references/templates/spec-suite.md +57 -0
  155. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/fact_chain_support.py +509 -0
  156. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/governance_surface.py +879 -0
  157. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/loom_check.py +4683 -0
  158. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/loom_flow.py +5390 -0
  159. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/loom_init.py +1966 -0
  160. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/runtime_paths.py +116 -0
  161. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/runtime_state.py +405 -0
  162. package/payload/skills/loom-adopt/.loom-runtime/upgrade-contract.json +29 -0
  163. package/payload/skills/loom-adopt/SKILL.md +80 -0
  164. package/payload/skills/loom-adopt/agents/openai.yaml +4 -0
  165. package/payload/skills/loom-adopt/contract.json +45 -0
  166. package/payload/skills/loom-adopt/references/input-signals.md +17 -0
  167. package/payload/skills/loom-adopt/references/loom-init/input-signals.md +16 -0
  168. package/payload/skills/loom-adopt/references/loom-init/intake-signals.md +155 -0
  169. package/payload/skills/loom-adopt/references/loom-init/output-contract.md +208 -0
  170. package/payload/skills/loom-adopt/references/output-contract.md +17 -0
  171. package/payload/skills/loom-adopt/references/route-matrix.md +63 -0
  172. package/payload/skills/loom-adopt/references/shared/adoption/deep-existing-repo-default.md +64 -0
  173. package/payload/skills/loom-adopt/references/shared/adoption/lightweight-retrofit-default.md +71 -0
  174. package/payload/skills/loom-adopt/references/shared/adoption/routing-and-checkpoints.md +88 -0
  175. package/payload/skills/loom-adopt/references/shared/governance/host-object-taxonomy.md +148 -0
  176. package/payload/skills/loom-adopt/references/shared/governance/issue-model.md +127 -0
  177. package/payload/skills/loom-adopt/references/shared/governance/maturity-and-closing.md +69 -0
  178. package/payload/skills/loom-adopt/references/shared/governance/principles.md +180 -0
  179. package/payload/skills/loom-adopt/references/shared/governance/review-model.md +109 -0
  180. package/payload/skills/loom-adopt/references/shared/governance/state-machine.md +163 -0
  181. package/payload/skills/loom-adopt/references/shared/governance/truth-and-sync-boundary.md +161 -0
  182. package/payload/skills/loom-adopt/references/shared/harness/automation-frontload.md +139 -0
  183. package/payload/skills/loom-adopt/references/shared/harness/closeout-gate.md +97 -0
  184. package/payload/skills/loom-adopt/references/shared/harness/execution-chain.md +56 -0
  185. package/payload/skills/loom-adopt/references/shared/harness/execution-context.md +71 -0
  186. package/payload/skills/loom-adopt/references/shared/harness/fact-chain-contract.md +160 -0
  187. package/payload/skills/loom-adopt/references/shared/harness/host-action-contract.md +128 -0
  188. package/payload/skills/loom-adopt/references/shared/harness/host-issue-binding.md +90 -0
  189. package/payload/skills/loom-adopt/references/shared/harness/host-lifecycle-boundary.md +56 -0
  190. package/payload/skills/loom-adopt/references/shared/harness/merge-checkpoint.md +95 -0
  191. package/payload/skills/loom-adopt/references/shared/harness/reconciliation-audit.md +64 -0
  192. package/payload/skills/loom-adopt/references/shared/harness/recovery-model.md +101 -0
  193. package/payload/skills/loom-adopt/references/shared/harness/review-execution.md +99 -0
  194. package/payload/skills/loom-adopt/references/shared/harness/runtime-state.md +103 -0
  195. package/payload/skills/loom-adopt/references/shared/harness/status-surface.md +121 -0
  196. package/payload/skills/loom-adopt/references/shared/harness/work-item-contract.md +104 -0
  197. package/payload/skills/loom-adopt/references/shared/harness/workspace-and-purity.md +73 -0
  198. package/payload/skills/loom-adopt/references/shared/harness/workspace-model.md +56 -0
  199. package/payload/skills/loom-adopt/references/shared/templates/pull-request.md +44 -0
  200. package/payload/skills/loom-adopt/references/shared/templates/review-record.md +35 -0
  201. package/payload/skills/loom-adopt/references/shared/templates/spec-suite.md +57 -0
  202. package/payload/skills/loom-adopt/scripts/loom-adopt.py +16 -0
  203. package/payload/skills/loom-handoff/.loom-runtime/install-layout.json +77 -0
  204. package/payload/skills/loom-handoff/.loom-runtime/loom-handoff/SKILL.md +23 -0
  205. package/payload/skills/loom-handoff/.loom-runtime/loom-handoff/agents/openai.yaml +4 -0
  206. package/payload/skills/loom-handoff/.loom-runtime/loom-handoff/contract.json +53 -0
  207. package/payload/skills/loom-handoff/.loom-runtime/loom-handoff/references/input-signals.md +7 -0
  208. package/payload/skills/loom-handoff/.loom-runtime/loom-handoff/references/output-contract.md +42 -0
  209. package/payload/skills/loom-handoff/.loom-runtime/loom-handoff/scripts/loom-handoff.py +14 -0
  210. package/payload/skills/loom-handoff/.loom-runtime/loom-init/references/input-signals.md +16 -0
  211. package/payload/skills/loom-handoff/.loom-runtime/loom-init/references/intake-signals.md +155 -0
  212. package/payload/skills/loom-handoff/.loom-runtime/loom-init/references/output-contract.md +208 -0
  213. package/payload/skills/loom-handoff/.loom-runtime/registry.json +15 -0
  214. package/payload/skills/loom-handoff/.loom-runtime/route-matrix.md +63 -0
  215. package/payload/skills/loom-handoff/.loom-runtime/shared/assets/github/PULL_REQUEST_TEMPLATE.md +22 -0
  216. package/payload/skills/loom-handoff/.loom-runtime/shared/assets/review/loom-review-result-schema.json +93 -0
  217. package/payload/skills/loom-handoff/.loom-runtime/shared/assets/templates/scaffold/plan.md +51 -0
  218. package/payload/skills/loom-handoff/.loom-runtime/shared/assets/templates/scaffold/spec.md +48 -0
  219. package/payload/skills/loom-handoff/.loom-runtime/shared/references/adoption/deep-existing-repo-default.md +64 -0
  220. package/payload/skills/loom-handoff/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +71 -0
  221. package/payload/skills/loom-handoff/.loom-runtime/shared/references/adoption/routing-and-checkpoints.md +88 -0
  222. package/payload/skills/loom-handoff/.loom-runtime/shared/references/governance/host-object-taxonomy.md +148 -0
  223. package/payload/skills/loom-handoff/.loom-runtime/shared/references/governance/issue-model.md +127 -0
  224. package/payload/skills/loom-handoff/.loom-runtime/shared/references/governance/maturity-and-closing.md +69 -0
  225. package/payload/skills/loom-handoff/.loom-runtime/shared/references/governance/principles.md +180 -0
  226. package/payload/skills/loom-handoff/.loom-runtime/shared/references/governance/review-model.md +109 -0
  227. package/payload/skills/loom-handoff/.loom-runtime/shared/references/governance/state-machine.md +163 -0
  228. package/payload/skills/loom-handoff/.loom-runtime/shared/references/governance/truth-and-sync-boundary.md +161 -0
  229. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/automation-frontload.md +139 -0
  230. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/closeout-gate.md +97 -0
  231. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/execution-chain.md +56 -0
  232. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/execution-context.md +71 -0
  233. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/fact-chain-contract.md +160 -0
  234. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/host-action-contract.md +128 -0
  235. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/host-issue-binding.md +90 -0
  236. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/host-lifecycle-boundary.md +56 -0
  237. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/merge-checkpoint.md +95 -0
  238. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/reconciliation-audit.md +64 -0
  239. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/recovery-model.md +101 -0
  240. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/review-execution.md +99 -0
  241. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/runtime-state.md +103 -0
  242. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/status-surface.md +121 -0
  243. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/work-item-contract.md +104 -0
  244. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/workspace-and-purity.md +73 -0
  245. package/payload/skills/loom-handoff/.loom-runtime/shared/references/harness/workspace-model.md +56 -0
  246. package/payload/skills/loom-handoff/.loom-runtime/shared/references/templates/pull-request.md +44 -0
  247. package/payload/skills/loom-handoff/.loom-runtime/shared/references/templates/review-record.md +35 -0
  248. package/payload/skills/loom-handoff/.loom-runtime/shared/references/templates/spec-suite.md +57 -0
  249. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/fact_chain_support.py +509 -0
  250. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/governance_surface.py +879 -0
  251. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/loom_check.py +4683 -0
  252. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/loom_flow.py +5390 -0
  253. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/loom_init.py +1966 -0
  254. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/runtime_paths.py +116 -0
  255. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/runtime_state.py +405 -0
  256. package/payload/skills/loom-handoff/.loom-runtime/upgrade-contract.json +29 -0
  257. package/payload/skills/loom-handoff/SKILL.md +23 -0
  258. package/payload/skills/loom-handoff/agents/openai.yaml +4 -0
  259. package/payload/skills/loom-handoff/contract.json +53 -0
  260. package/payload/skills/loom-handoff/references/input-signals.md +7 -0
  261. package/payload/skills/loom-handoff/references/loom-init/input-signals.md +16 -0
  262. package/payload/skills/loom-handoff/references/loom-init/intake-signals.md +155 -0
  263. package/payload/skills/loom-handoff/references/loom-init/output-contract.md +208 -0
  264. package/payload/skills/loom-handoff/references/output-contract.md +42 -0
  265. package/payload/skills/loom-handoff/references/route-matrix.md +63 -0
  266. package/payload/skills/loom-handoff/references/shared/adoption/deep-existing-repo-default.md +64 -0
  267. package/payload/skills/loom-handoff/references/shared/adoption/lightweight-retrofit-default.md +71 -0
  268. package/payload/skills/loom-handoff/references/shared/adoption/routing-and-checkpoints.md +88 -0
  269. package/payload/skills/loom-handoff/references/shared/governance/host-object-taxonomy.md +148 -0
  270. package/payload/skills/loom-handoff/references/shared/governance/issue-model.md +127 -0
  271. package/payload/skills/loom-handoff/references/shared/governance/maturity-and-closing.md +69 -0
  272. package/payload/skills/loom-handoff/references/shared/governance/principles.md +180 -0
  273. package/payload/skills/loom-handoff/references/shared/governance/review-model.md +109 -0
  274. package/payload/skills/loom-handoff/references/shared/governance/state-machine.md +163 -0
  275. package/payload/skills/loom-handoff/references/shared/governance/truth-and-sync-boundary.md +161 -0
  276. package/payload/skills/loom-handoff/references/shared/harness/automation-frontload.md +139 -0
  277. package/payload/skills/loom-handoff/references/shared/harness/closeout-gate.md +97 -0
  278. package/payload/skills/loom-handoff/references/shared/harness/execution-chain.md +56 -0
  279. package/payload/skills/loom-handoff/references/shared/harness/execution-context.md +71 -0
  280. package/payload/skills/loom-handoff/references/shared/harness/fact-chain-contract.md +160 -0
  281. package/payload/skills/loom-handoff/references/shared/harness/host-action-contract.md +128 -0
  282. package/payload/skills/loom-handoff/references/shared/harness/host-issue-binding.md +90 -0
  283. package/payload/skills/loom-handoff/references/shared/harness/host-lifecycle-boundary.md +56 -0
  284. package/payload/skills/loom-handoff/references/shared/harness/merge-checkpoint.md +95 -0
  285. package/payload/skills/loom-handoff/references/shared/harness/reconciliation-audit.md +64 -0
  286. package/payload/skills/loom-handoff/references/shared/harness/recovery-model.md +101 -0
  287. package/payload/skills/loom-handoff/references/shared/harness/review-execution.md +99 -0
  288. package/payload/skills/loom-handoff/references/shared/harness/runtime-state.md +103 -0
  289. package/payload/skills/loom-handoff/references/shared/harness/status-surface.md +121 -0
  290. package/payload/skills/loom-handoff/references/shared/harness/work-item-contract.md +104 -0
  291. package/payload/skills/loom-handoff/references/shared/harness/workspace-and-purity.md +73 -0
  292. package/payload/skills/loom-handoff/references/shared/harness/workspace-model.md +56 -0
  293. package/payload/skills/loom-handoff/references/shared/templates/pull-request.md +44 -0
  294. package/payload/skills/loom-handoff/references/shared/templates/review-record.md +35 -0
  295. package/payload/skills/loom-handoff/references/shared/templates/spec-suite.md +57 -0
  296. package/payload/skills/loom-handoff/scripts/loom-handoff.py +16 -0
  297. package/payload/skills/loom-init/.loom-runtime/install-layout.json +77 -0
  298. package/payload/skills/loom-init/.loom-runtime/loom-init/SKILL.md +246 -0
  299. package/payload/skills/loom-init/.loom-runtime/loom-init/agents/openai.yaml +4 -0
  300. package/payload/skills/loom-init/.loom-runtime/loom-init/contract.json +76 -0
  301. package/payload/skills/loom-init/.loom-runtime/loom-init/references/input-signals.md +16 -0
  302. package/payload/skills/loom-init/.loom-runtime/loom-init/references/intake-signals.md +155 -0
  303. package/payload/skills/loom-init/.loom-runtime/loom-init/references/output-contract.md +208 -0
  304. package/payload/skills/loom-init/.loom-runtime/loom-init/scripts/loom-init.py +14 -0
  305. package/payload/skills/loom-init/.loom-runtime/registry.json +15 -0
  306. package/payload/skills/loom-init/.loom-runtime/route-matrix.md +63 -0
  307. package/payload/skills/loom-init/.loom-runtime/shared/assets/github/PULL_REQUEST_TEMPLATE.md +22 -0
  308. package/payload/skills/loom-init/.loom-runtime/shared/assets/review/loom-review-result-schema.json +93 -0
  309. package/payload/skills/loom-init/.loom-runtime/shared/assets/templates/scaffold/plan.md +51 -0
  310. package/payload/skills/loom-init/.loom-runtime/shared/assets/templates/scaffold/spec.md +48 -0
  311. package/payload/skills/loom-init/.loom-runtime/shared/references/adoption/deep-existing-repo-default.md +64 -0
  312. package/payload/skills/loom-init/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +71 -0
  313. package/payload/skills/loom-init/.loom-runtime/shared/references/adoption/routing-and-checkpoints.md +88 -0
  314. package/payload/skills/loom-init/.loom-runtime/shared/references/governance/host-object-taxonomy.md +148 -0
  315. package/payload/skills/loom-init/.loom-runtime/shared/references/governance/issue-model.md +127 -0
  316. package/payload/skills/loom-init/.loom-runtime/shared/references/governance/maturity-and-closing.md +69 -0
  317. package/payload/skills/loom-init/.loom-runtime/shared/references/governance/principles.md +180 -0
  318. package/payload/skills/loom-init/.loom-runtime/shared/references/governance/review-model.md +109 -0
  319. package/payload/skills/loom-init/.loom-runtime/shared/references/governance/state-machine.md +163 -0
  320. package/payload/skills/loom-init/.loom-runtime/shared/references/governance/truth-and-sync-boundary.md +161 -0
  321. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/automation-frontload.md +139 -0
  322. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/closeout-gate.md +97 -0
  323. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/execution-chain.md +56 -0
  324. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/execution-context.md +71 -0
  325. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/fact-chain-contract.md +160 -0
  326. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/host-action-contract.md +128 -0
  327. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/host-issue-binding.md +90 -0
  328. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/host-lifecycle-boundary.md +56 -0
  329. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/merge-checkpoint.md +95 -0
  330. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/reconciliation-audit.md +64 -0
  331. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/recovery-model.md +101 -0
  332. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/review-execution.md +99 -0
  333. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/runtime-state.md +103 -0
  334. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/status-surface.md +121 -0
  335. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/work-item-contract.md +104 -0
  336. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/workspace-and-purity.md +73 -0
  337. package/payload/skills/loom-init/.loom-runtime/shared/references/harness/workspace-model.md +56 -0
  338. package/payload/skills/loom-init/.loom-runtime/shared/references/templates/pull-request.md +44 -0
  339. package/payload/skills/loom-init/.loom-runtime/shared/references/templates/review-record.md +35 -0
  340. package/payload/skills/loom-init/.loom-runtime/shared/references/templates/spec-suite.md +57 -0
  341. package/payload/skills/loom-init/.loom-runtime/shared/scripts/fact_chain_support.py +509 -0
  342. package/payload/skills/loom-init/.loom-runtime/shared/scripts/governance_surface.py +879 -0
  343. package/payload/skills/loom-init/.loom-runtime/shared/scripts/loom_check.py +4683 -0
  344. package/payload/skills/loom-init/.loom-runtime/shared/scripts/loom_flow.py +5390 -0
  345. package/payload/skills/loom-init/.loom-runtime/shared/scripts/loom_init.py +1966 -0
  346. package/payload/skills/loom-init/.loom-runtime/shared/scripts/runtime_paths.py +116 -0
  347. package/payload/skills/loom-init/.loom-runtime/shared/scripts/runtime_state.py +405 -0
  348. package/payload/skills/loom-init/.loom-runtime/upgrade-contract.json +29 -0
  349. package/payload/skills/loom-init/SKILL.md +246 -0
  350. package/payload/skills/loom-init/agents/openai.yaml +4 -0
  351. package/payload/skills/loom-init/contract.json +76 -0
  352. package/payload/skills/loom-init/references/input-signals.md +16 -0
  353. package/payload/skills/loom-init/references/intake-signals.md +155 -0
  354. package/payload/skills/loom-init/references/output-contract.md +208 -0
  355. package/payload/skills/loom-init/references/route-matrix.md +63 -0
  356. package/payload/skills/loom-init/references/shared/adoption/deep-existing-repo-default.md +64 -0
  357. package/payload/skills/loom-init/references/shared/adoption/lightweight-retrofit-default.md +71 -0
  358. package/payload/skills/loom-init/references/shared/adoption/routing-and-checkpoints.md +88 -0
  359. package/payload/skills/loom-init/references/shared/governance/host-object-taxonomy.md +148 -0
  360. package/payload/skills/loom-init/references/shared/governance/issue-model.md +127 -0
  361. package/payload/skills/loom-init/references/shared/governance/maturity-and-closing.md +69 -0
  362. package/payload/skills/loom-init/references/shared/governance/principles.md +180 -0
  363. package/payload/skills/loom-init/references/shared/governance/review-model.md +109 -0
  364. package/payload/skills/loom-init/references/shared/governance/state-machine.md +163 -0
  365. package/payload/skills/loom-init/references/shared/governance/truth-and-sync-boundary.md +161 -0
  366. package/payload/skills/loom-init/references/shared/harness/automation-frontload.md +139 -0
  367. package/payload/skills/loom-init/references/shared/harness/closeout-gate.md +97 -0
  368. package/payload/skills/loom-init/references/shared/harness/execution-chain.md +56 -0
  369. package/payload/skills/loom-init/references/shared/harness/execution-context.md +71 -0
  370. package/payload/skills/loom-init/references/shared/harness/fact-chain-contract.md +160 -0
  371. package/payload/skills/loom-init/references/shared/harness/host-action-contract.md +128 -0
  372. package/payload/skills/loom-init/references/shared/harness/host-issue-binding.md +90 -0
  373. package/payload/skills/loom-init/references/shared/harness/host-lifecycle-boundary.md +56 -0
  374. package/payload/skills/loom-init/references/shared/harness/merge-checkpoint.md +95 -0
  375. package/payload/skills/loom-init/references/shared/harness/reconciliation-audit.md +64 -0
  376. package/payload/skills/loom-init/references/shared/harness/recovery-model.md +101 -0
  377. package/payload/skills/loom-init/references/shared/harness/review-execution.md +99 -0
  378. package/payload/skills/loom-init/references/shared/harness/runtime-state.md +103 -0
  379. package/payload/skills/loom-init/references/shared/harness/status-surface.md +121 -0
  380. package/payload/skills/loom-init/references/shared/harness/work-item-contract.md +104 -0
  381. package/payload/skills/loom-init/references/shared/harness/workspace-and-purity.md +73 -0
  382. package/payload/skills/loom-init/references/shared/harness/workspace-model.md +56 -0
  383. package/payload/skills/loom-init/references/shared/templates/pull-request.md +44 -0
  384. package/payload/skills/loom-init/references/shared/templates/review-record.md +35 -0
  385. package/payload/skills/loom-init/references/shared/templates/spec-suite.md +57 -0
  386. package/payload/skills/loom-init/scripts/loom-init.py +16 -0
  387. package/payload/skills/loom-merge-ready/.loom-runtime/install-layout.json +77 -0
  388. package/payload/skills/loom-merge-ready/.loom-runtime/loom-init/references/input-signals.md +16 -0
  389. package/payload/skills/loom-merge-ready/.loom-runtime/loom-init/references/intake-signals.md +155 -0
  390. package/payload/skills/loom-merge-ready/.loom-runtime/loom-init/references/output-contract.md +208 -0
  391. package/payload/skills/loom-merge-ready/.loom-runtime/loom-merge-ready/SKILL.md +23 -0
  392. package/payload/skills/loom-merge-ready/.loom-runtime/loom-merge-ready/agents/openai.yaml +4 -0
  393. package/payload/skills/loom-merge-ready/.loom-runtime/loom-merge-ready/contract.json +49 -0
  394. package/payload/skills/loom-merge-ready/.loom-runtime/loom-merge-ready/references/input-signals.md +7 -0
  395. package/payload/skills/loom-merge-ready/.loom-runtime/loom-merge-ready/references/output-contract.md +34 -0
  396. package/payload/skills/loom-merge-ready/.loom-runtime/loom-merge-ready/scripts/loom-merge-ready.py +14 -0
  397. package/payload/skills/loom-merge-ready/.loom-runtime/registry.json +15 -0
  398. package/payload/skills/loom-merge-ready/.loom-runtime/route-matrix.md +63 -0
  399. package/payload/skills/loom-merge-ready/.loom-runtime/shared/assets/github/PULL_REQUEST_TEMPLATE.md +22 -0
  400. package/payload/skills/loom-merge-ready/.loom-runtime/shared/assets/review/loom-review-result-schema.json +93 -0
  401. package/payload/skills/loom-merge-ready/.loom-runtime/shared/assets/templates/scaffold/plan.md +51 -0
  402. package/payload/skills/loom-merge-ready/.loom-runtime/shared/assets/templates/scaffold/spec.md +48 -0
  403. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/deep-existing-repo-default.md +64 -0
  404. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +71 -0
  405. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/routing-and-checkpoints.md +88 -0
  406. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/governance/host-object-taxonomy.md +148 -0
  407. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/governance/issue-model.md +127 -0
  408. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/governance/maturity-and-closing.md +69 -0
  409. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/governance/principles.md +180 -0
  410. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/governance/review-model.md +109 -0
  411. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/governance/state-machine.md +163 -0
  412. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/governance/truth-and-sync-boundary.md +161 -0
  413. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/automation-frontload.md +139 -0
  414. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/closeout-gate.md +97 -0
  415. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/execution-chain.md +56 -0
  416. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/execution-context.md +71 -0
  417. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/fact-chain-contract.md +160 -0
  418. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/host-action-contract.md +128 -0
  419. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/host-issue-binding.md +90 -0
  420. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/host-lifecycle-boundary.md +56 -0
  421. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/merge-checkpoint.md +95 -0
  422. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/reconciliation-audit.md +64 -0
  423. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/recovery-model.md +101 -0
  424. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/review-execution.md +99 -0
  425. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/runtime-state.md +103 -0
  426. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/status-surface.md +121 -0
  427. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/work-item-contract.md +104 -0
  428. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/workspace-and-purity.md +73 -0
  429. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/harness/workspace-model.md +56 -0
  430. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/templates/pull-request.md +44 -0
  431. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/templates/review-record.md +35 -0
  432. package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/templates/spec-suite.md +57 -0
  433. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/fact_chain_support.py +509 -0
  434. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/governance_surface.py +879 -0
  435. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_check.py +4683 -0
  436. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_flow.py +5390 -0
  437. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_init.py +1966 -0
  438. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/runtime_paths.py +116 -0
  439. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/runtime_state.py +405 -0
  440. package/payload/skills/loom-merge-ready/.loom-runtime/upgrade-contract.json +29 -0
  441. package/payload/skills/loom-merge-ready/SKILL.md +23 -0
  442. package/payload/skills/loom-merge-ready/agents/openai.yaml +4 -0
  443. package/payload/skills/loom-merge-ready/contract.json +49 -0
  444. package/payload/skills/loom-merge-ready/references/input-signals.md +7 -0
  445. package/payload/skills/loom-merge-ready/references/loom-init/input-signals.md +16 -0
  446. package/payload/skills/loom-merge-ready/references/loom-init/intake-signals.md +155 -0
  447. package/payload/skills/loom-merge-ready/references/loom-init/output-contract.md +208 -0
  448. package/payload/skills/loom-merge-ready/references/output-contract.md +34 -0
  449. package/payload/skills/loom-merge-ready/references/route-matrix.md +63 -0
  450. package/payload/skills/loom-merge-ready/references/shared/adoption/deep-existing-repo-default.md +64 -0
  451. package/payload/skills/loom-merge-ready/references/shared/adoption/lightweight-retrofit-default.md +71 -0
  452. package/payload/skills/loom-merge-ready/references/shared/adoption/routing-and-checkpoints.md +88 -0
  453. package/payload/skills/loom-merge-ready/references/shared/governance/host-object-taxonomy.md +148 -0
  454. package/payload/skills/loom-merge-ready/references/shared/governance/issue-model.md +127 -0
  455. package/payload/skills/loom-merge-ready/references/shared/governance/maturity-and-closing.md +69 -0
  456. package/payload/skills/loom-merge-ready/references/shared/governance/principles.md +180 -0
  457. package/payload/skills/loom-merge-ready/references/shared/governance/review-model.md +109 -0
  458. package/payload/skills/loom-merge-ready/references/shared/governance/state-machine.md +163 -0
  459. package/payload/skills/loom-merge-ready/references/shared/governance/truth-and-sync-boundary.md +161 -0
  460. package/payload/skills/loom-merge-ready/references/shared/harness/automation-frontload.md +139 -0
  461. package/payload/skills/loom-merge-ready/references/shared/harness/closeout-gate.md +97 -0
  462. package/payload/skills/loom-merge-ready/references/shared/harness/execution-chain.md +56 -0
  463. package/payload/skills/loom-merge-ready/references/shared/harness/execution-context.md +71 -0
  464. package/payload/skills/loom-merge-ready/references/shared/harness/fact-chain-contract.md +160 -0
  465. package/payload/skills/loom-merge-ready/references/shared/harness/host-action-contract.md +128 -0
  466. package/payload/skills/loom-merge-ready/references/shared/harness/host-issue-binding.md +90 -0
  467. package/payload/skills/loom-merge-ready/references/shared/harness/host-lifecycle-boundary.md +56 -0
  468. package/payload/skills/loom-merge-ready/references/shared/harness/merge-checkpoint.md +95 -0
  469. package/payload/skills/loom-merge-ready/references/shared/harness/reconciliation-audit.md +64 -0
  470. package/payload/skills/loom-merge-ready/references/shared/harness/recovery-model.md +101 -0
  471. package/payload/skills/loom-merge-ready/references/shared/harness/review-execution.md +99 -0
  472. package/payload/skills/loom-merge-ready/references/shared/harness/runtime-state.md +103 -0
  473. package/payload/skills/loom-merge-ready/references/shared/harness/status-surface.md +121 -0
  474. package/payload/skills/loom-merge-ready/references/shared/harness/work-item-contract.md +104 -0
  475. package/payload/skills/loom-merge-ready/references/shared/harness/workspace-and-purity.md +73 -0
  476. package/payload/skills/loom-merge-ready/references/shared/harness/workspace-model.md +56 -0
  477. package/payload/skills/loom-merge-ready/references/shared/templates/pull-request.md +44 -0
  478. package/payload/skills/loom-merge-ready/references/shared/templates/review-record.md +35 -0
  479. package/payload/skills/loom-merge-ready/references/shared/templates/spec-suite.md +57 -0
  480. package/payload/skills/loom-merge-ready/scripts/loom-merge-ready.py +16 -0
  481. package/payload/skills/loom-pre-review/.loom-runtime/install-layout.json +77 -0
  482. package/payload/skills/loom-pre-review/.loom-runtime/loom-init/references/input-signals.md +16 -0
  483. package/payload/skills/loom-pre-review/.loom-runtime/loom-init/references/intake-signals.md +155 -0
  484. package/payload/skills/loom-pre-review/.loom-runtime/loom-init/references/output-contract.md +208 -0
  485. package/payload/skills/loom-pre-review/.loom-runtime/loom-pre-review/SKILL.md +69 -0
  486. package/payload/skills/loom-pre-review/.loom-runtime/loom-pre-review/agents/openai.yaml +4 -0
  487. package/payload/skills/loom-pre-review/.loom-runtime/loom-pre-review/contract.json +41 -0
  488. package/payload/skills/loom-pre-review/.loom-runtime/loom-pre-review/references/input-signals.md +14 -0
  489. package/payload/skills/loom-pre-review/.loom-runtime/loom-pre-review/references/output-contract.md +20 -0
  490. package/payload/skills/loom-pre-review/.loom-runtime/loom-pre-review/scripts/loom-pre-review.py +14 -0
  491. package/payload/skills/loom-pre-review/.loom-runtime/registry.json +15 -0
  492. package/payload/skills/loom-pre-review/.loom-runtime/route-matrix.md +63 -0
  493. package/payload/skills/loom-pre-review/.loom-runtime/shared/assets/github/PULL_REQUEST_TEMPLATE.md +22 -0
  494. package/payload/skills/loom-pre-review/.loom-runtime/shared/assets/review/loom-review-result-schema.json +93 -0
  495. package/payload/skills/loom-pre-review/.loom-runtime/shared/assets/templates/scaffold/plan.md +51 -0
  496. package/payload/skills/loom-pre-review/.loom-runtime/shared/assets/templates/scaffold/spec.md +48 -0
  497. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/adoption/deep-existing-repo-default.md +64 -0
  498. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +71 -0
  499. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/adoption/routing-and-checkpoints.md +88 -0
  500. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/governance/host-object-taxonomy.md +148 -0
  501. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/governance/issue-model.md +127 -0
  502. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/governance/maturity-and-closing.md +69 -0
  503. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/governance/principles.md +180 -0
  504. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/governance/review-model.md +109 -0
  505. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/governance/state-machine.md +163 -0
  506. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/governance/truth-and-sync-boundary.md +161 -0
  507. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/automation-frontload.md +139 -0
  508. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/closeout-gate.md +97 -0
  509. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/execution-chain.md +56 -0
  510. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/execution-context.md +71 -0
  511. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/fact-chain-contract.md +160 -0
  512. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/host-action-contract.md +128 -0
  513. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/host-issue-binding.md +90 -0
  514. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/host-lifecycle-boundary.md +56 -0
  515. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/merge-checkpoint.md +95 -0
  516. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/reconciliation-audit.md +64 -0
  517. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/recovery-model.md +101 -0
  518. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/review-execution.md +99 -0
  519. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/runtime-state.md +103 -0
  520. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/status-surface.md +121 -0
  521. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/work-item-contract.md +104 -0
  522. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/workspace-and-purity.md +73 -0
  523. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/harness/workspace-model.md +56 -0
  524. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/templates/pull-request.md +44 -0
  525. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/templates/review-record.md +35 -0
  526. package/payload/skills/loom-pre-review/.loom-runtime/shared/references/templates/spec-suite.md +57 -0
  527. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/fact_chain_support.py +509 -0
  528. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/governance_surface.py +879 -0
  529. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_check.py +4683 -0
  530. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_flow.py +5390 -0
  531. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_init.py +1966 -0
  532. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/runtime_paths.py +116 -0
  533. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/runtime_state.py +405 -0
  534. package/payload/skills/loom-pre-review/.loom-runtime/upgrade-contract.json +29 -0
  535. package/payload/skills/loom-pre-review/SKILL.md +69 -0
  536. package/payload/skills/loom-pre-review/agents/openai.yaml +4 -0
  537. package/payload/skills/loom-pre-review/contract.json +41 -0
  538. package/payload/skills/loom-pre-review/references/input-signals.md +14 -0
  539. package/payload/skills/loom-pre-review/references/loom-init/input-signals.md +16 -0
  540. package/payload/skills/loom-pre-review/references/loom-init/intake-signals.md +155 -0
  541. package/payload/skills/loom-pre-review/references/loom-init/output-contract.md +208 -0
  542. package/payload/skills/loom-pre-review/references/output-contract.md +20 -0
  543. package/payload/skills/loom-pre-review/references/route-matrix.md +63 -0
  544. package/payload/skills/loom-pre-review/references/shared/adoption/deep-existing-repo-default.md +64 -0
  545. package/payload/skills/loom-pre-review/references/shared/adoption/lightweight-retrofit-default.md +71 -0
  546. package/payload/skills/loom-pre-review/references/shared/adoption/routing-and-checkpoints.md +88 -0
  547. package/payload/skills/loom-pre-review/references/shared/governance/host-object-taxonomy.md +148 -0
  548. package/payload/skills/loom-pre-review/references/shared/governance/issue-model.md +127 -0
  549. package/payload/skills/loom-pre-review/references/shared/governance/maturity-and-closing.md +69 -0
  550. package/payload/skills/loom-pre-review/references/shared/governance/principles.md +180 -0
  551. package/payload/skills/loom-pre-review/references/shared/governance/review-model.md +109 -0
  552. package/payload/skills/loom-pre-review/references/shared/governance/state-machine.md +163 -0
  553. package/payload/skills/loom-pre-review/references/shared/governance/truth-and-sync-boundary.md +161 -0
  554. package/payload/skills/loom-pre-review/references/shared/harness/automation-frontload.md +139 -0
  555. package/payload/skills/loom-pre-review/references/shared/harness/closeout-gate.md +97 -0
  556. package/payload/skills/loom-pre-review/references/shared/harness/execution-chain.md +56 -0
  557. package/payload/skills/loom-pre-review/references/shared/harness/execution-context.md +71 -0
  558. package/payload/skills/loom-pre-review/references/shared/harness/fact-chain-contract.md +160 -0
  559. package/payload/skills/loom-pre-review/references/shared/harness/host-action-contract.md +128 -0
  560. package/payload/skills/loom-pre-review/references/shared/harness/host-issue-binding.md +90 -0
  561. package/payload/skills/loom-pre-review/references/shared/harness/host-lifecycle-boundary.md +56 -0
  562. package/payload/skills/loom-pre-review/references/shared/harness/merge-checkpoint.md +95 -0
  563. package/payload/skills/loom-pre-review/references/shared/harness/reconciliation-audit.md +64 -0
  564. package/payload/skills/loom-pre-review/references/shared/harness/recovery-model.md +101 -0
  565. package/payload/skills/loom-pre-review/references/shared/harness/review-execution.md +99 -0
  566. package/payload/skills/loom-pre-review/references/shared/harness/runtime-state.md +103 -0
  567. package/payload/skills/loom-pre-review/references/shared/harness/status-surface.md +121 -0
  568. package/payload/skills/loom-pre-review/references/shared/harness/work-item-contract.md +104 -0
  569. package/payload/skills/loom-pre-review/references/shared/harness/workspace-and-purity.md +73 -0
  570. package/payload/skills/loom-pre-review/references/shared/harness/workspace-model.md +56 -0
  571. package/payload/skills/loom-pre-review/references/shared/templates/pull-request.md +44 -0
  572. package/payload/skills/loom-pre-review/references/shared/templates/review-record.md +35 -0
  573. package/payload/skills/loom-pre-review/references/shared/templates/spec-suite.md +57 -0
  574. package/payload/skills/loom-pre-review/scripts/loom-pre-review.py +16 -0
  575. package/payload/skills/loom-resume/.loom-runtime/install-layout.json +77 -0
  576. package/payload/skills/loom-resume/.loom-runtime/loom-init/references/input-signals.md +16 -0
  577. package/payload/skills/loom-resume/.loom-runtime/loom-init/references/intake-signals.md +155 -0
  578. package/payload/skills/loom-resume/.loom-runtime/loom-init/references/output-contract.md +208 -0
  579. package/payload/skills/loom-resume/.loom-runtime/loom-resume/SKILL.md +72 -0
  580. package/payload/skills/loom-resume/.loom-runtime/loom-resume/agents/openai.yaml +4 -0
  581. package/payload/skills/loom-resume/.loom-runtime/loom-resume/contract.json +47 -0
  582. package/payload/skills/loom-resume/.loom-runtime/loom-resume/references/input-signals.md +15 -0
  583. package/payload/skills/loom-resume/.loom-runtime/loom-resume/references/output-contract.md +58 -0
  584. package/payload/skills/loom-resume/.loom-runtime/loom-resume/scripts/loom-resume.py +14 -0
  585. package/payload/skills/loom-resume/.loom-runtime/registry.json +15 -0
  586. package/payload/skills/loom-resume/.loom-runtime/route-matrix.md +63 -0
  587. package/payload/skills/loom-resume/.loom-runtime/shared/assets/github/PULL_REQUEST_TEMPLATE.md +22 -0
  588. package/payload/skills/loom-resume/.loom-runtime/shared/assets/review/loom-review-result-schema.json +93 -0
  589. package/payload/skills/loom-resume/.loom-runtime/shared/assets/templates/scaffold/plan.md +51 -0
  590. package/payload/skills/loom-resume/.loom-runtime/shared/assets/templates/scaffold/spec.md +48 -0
  591. package/payload/skills/loom-resume/.loom-runtime/shared/references/adoption/deep-existing-repo-default.md +64 -0
  592. package/payload/skills/loom-resume/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +71 -0
  593. package/payload/skills/loom-resume/.loom-runtime/shared/references/adoption/routing-and-checkpoints.md +88 -0
  594. package/payload/skills/loom-resume/.loom-runtime/shared/references/governance/host-object-taxonomy.md +148 -0
  595. package/payload/skills/loom-resume/.loom-runtime/shared/references/governance/issue-model.md +127 -0
  596. package/payload/skills/loom-resume/.loom-runtime/shared/references/governance/maturity-and-closing.md +69 -0
  597. package/payload/skills/loom-resume/.loom-runtime/shared/references/governance/principles.md +180 -0
  598. package/payload/skills/loom-resume/.loom-runtime/shared/references/governance/review-model.md +109 -0
  599. package/payload/skills/loom-resume/.loom-runtime/shared/references/governance/state-machine.md +163 -0
  600. package/payload/skills/loom-resume/.loom-runtime/shared/references/governance/truth-and-sync-boundary.md +161 -0
  601. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/automation-frontload.md +139 -0
  602. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/closeout-gate.md +97 -0
  603. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/execution-chain.md +56 -0
  604. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/execution-context.md +71 -0
  605. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/fact-chain-contract.md +160 -0
  606. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/host-action-contract.md +128 -0
  607. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/host-issue-binding.md +90 -0
  608. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/host-lifecycle-boundary.md +56 -0
  609. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/merge-checkpoint.md +95 -0
  610. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/reconciliation-audit.md +64 -0
  611. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/recovery-model.md +101 -0
  612. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/review-execution.md +99 -0
  613. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/runtime-state.md +103 -0
  614. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/status-surface.md +121 -0
  615. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/work-item-contract.md +104 -0
  616. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/workspace-and-purity.md +73 -0
  617. package/payload/skills/loom-resume/.loom-runtime/shared/references/harness/workspace-model.md +56 -0
  618. package/payload/skills/loom-resume/.loom-runtime/shared/references/templates/pull-request.md +44 -0
  619. package/payload/skills/loom-resume/.loom-runtime/shared/references/templates/review-record.md +35 -0
  620. package/payload/skills/loom-resume/.loom-runtime/shared/references/templates/spec-suite.md +57 -0
  621. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/fact_chain_support.py +509 -0
  622. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/governance_surface.py +879 -0
  623. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/loom_check.py +4683 -0
  624. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/loom_flow.py +5390 -0
  625. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/loom_init.py +1966 -0
  626. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/runtime_paths.py +116 -0
  627. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/runtime_state.py +405 -0
  628. package/payload/skills/loom-resume/.loom-runtime/upgrade-contract.json +29 -0
  629. package/payload/skills/loom-resume/SKILL.md +72 -0
  630. package/payload/skills/loom-resume/agents/openai.yaml +4 -0
  631. package/payload/skills/loom-resume/contract.json +47 -0
  632. package/payload/skills/loom-resume/references/input-signals.md +15 -0
  633. package/payload/skills/loom-resume/references/loom-init/input-signals.md +16 -0
  634. package/payload/skills/loom-resume/references/loom-init/intake-signals.md +155 -0
  635. package/payload/skills/loom-resume/references/loom-init/output-contract.md +208 -0
  636. package/payload/skills/loom-resume/references/output-contract.md +58 -0
  637. package/payload/skills/loom-resume/references/route-matrix.md +63 -0
  638. package/payload/skills/loom-resume/references/shared/adoption/deep-existing-repo-default.md +64 -0
  639. package/payload/skills/loom-resume/references/shared/adoption/lightweight-retrofit-default.md +71 -0
  640. package/payload/skills/loom-resume/references/shared/adoption/routing-and-checkpoints.md +88 -0
  641. package/payload/skills/loom-resume/references/shared/governance/host-object-taxonomy.md +148 -0
  642. package/payload/skills/loom-resume/references/shared/governance/issue-model.md +127 -0
  643. package/payload/skills/loom-resume/references/shared/governance/maturity-and-closing.md +69 -0
  644. package/payload/skills/loom-resume/references/shared/governance/principles.md +180 -0
  645. package/payload/skills/loom-resume/references/shared/governance/review-model.md +109 -0
  646. package/payload/skills/loom-resume/references/shared/governance/state-machine.md +163 -0
  647. package/payload/skills/loom-resume/references/shared/governance/truth-and-sync-boundary.md +161 -0
  648. package/payload/skills/loom-resume/references/shared/harness/automation-frontload.md +139 -0
  649. package/payload/skills/loom-resume/references/shared/harness/closeout-gate.md +97 -0
  650. package/payload/skills/loom-resume/references/shared/harness/execution-chain.md +56 -0
  651. package/payload/skills/loom-resume/references/shared/harness/execution-context.md +71 -0
  652. package/payload/skills/loom-resume/references/shared/harness/fact-chain-contract.md +160 -0
  653. package/payload/skills/loom-resume/references/shared/harness/host-action-contract.md +128 -0
  654. package/payload/skills/loom-resume/references/shared/harness/host-issue-binding.md +90 -0
  655. package/payload/skills/loom-resume/references/shared/harness/host-lifecycle-boundary.md +56 -0
  656. package/payload/skills/loom-resume/references/shared/harness/merge-checkpoint.md +95 -0
  657. package/payload/skills/loom-resume/references/shared/harness/reconciliation-audit.md +64 -0
  658. package/payload/skills/loom-resume/references/shared/harness/recovery-model.md +101 -0
  659. package/payload/skills/loom-resume/references/shared/harness/review-execution.md +99 -0
  660. package/payload/skills/loom-resume/references/shared/harness/runtime-state.md +103 -0
  661. package/payload/skills/loom-resume/references/shared/harness/status-surface.md +121 -0
  662. package/payload/skills/loom-resume/references/shared/harness/work-item-contract.md +104 -0
  663. package/payload/skills/loom-resume/references/shared/harness/workspace-and-purity.md +73 -0
  664. package/payload/skills/loom-resume/references/shared/harness/workspace-model.md +56 -0
  665. package/payload/skills/loom-resume/references/shared/templates/pull-request.md +44 -0
  666. package/payload/skills/loom-resume/references/shared/templates/review-record.md +35 -0
  667. package/payload/skills/loom-resume/references/shared/templates/spec-suite.md +57 -0
  668. package/payload/skills/loom-resume/scripts/loom-resume.py +16 -0
  669. package/payload/skills/loom-retire/.loom-runtime/install-layout.json +77 -0
  670. package/payload/skills/loom-retire/.loom-runtime/loom-init/references/input-signals.md +16 -0
  671. package/payload/skills/loom-retire/.loom-runtime/loom-init/references/intake-signals.md +155 -0
  672. package/payload/skills/loom-retire/.loom-runtime/loom-init/references/output-contract.md +208 -0
  673. package/payload/skills/loom-retire/.loom-runtime/loom-retire/SKILL.md +26 -0
  674. package/payload/skills/loom-retire/.loom-runtime/loom-retire/agents/openai.yaml +4 -0
  675. package/payload/skills/loom-retire/.loom-runtime/loom-retire/contract.json +41 -0
  676. package/payload/skills/loom-retire/.loom-runtime/loom-retire/references/input-signals.md +7 -0
  677. package/payload/skills/loom-retire/.loom-runtime/loom-retire/references/output-contract.md +13 -0
  678. package/payload/skills/loom-retire/.loom-runtime/loom-retire/scripts/loom-retire.py +14 -0
  679. package/payload/skills/loom-retire/.loom-runtime/registry.json +15 -0
  680. package/payload/skills/loom-retire/.loom-runtime/route-matrix.md +63 -0
  681. package/payload/skills/loom-retire/.loom-runtime/shared/assets/github/PULL_REQUEST_TEMPLATE.md +22 -0
  682. package/payload/skills/loom-retire/.loom-runtime/shared/assets/review/loom-review-result-schema.json +93 -0
  683. package/payload/skills/loom-retire/.loom-runtime/shared/assets/templates/scaffold/plan.md +51 -0
  684. package/payload/skills/loom-retire/.loom-runtime/shared/assets/templates/scaffold/spec.md +48 -0
  685. package/payload/skills/loom-retire/.loom-runtime/shared/references/adoption/deep-existing-repo-default.md +64 -0
  686. package/payload/skills/loom-retire/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +71 -0
  687. package/payload/skills/loom-retire/.loom-runtime/shared/references/adoption/routing-and-checkpoints.md +88 -0
  688. package/payload/skills/loom-retire/.loom-runtime/shared/references/governance/host-object-taxonomy.md +148 -0
  689. package/payload/skills/loom-retire/.loom-runtime/shared/references/governance/issue-model.md +127 -0
  690. package/payload/skills/loom-retire/.loom-runtime/shared/references/governance/maturity-and-closing.md +69 -0
  691. package/payload/skills/loom-retire/.loom-runtime/shared/references/governance/principles.md +180 -0
  692. package/payload/skills/loom-retire/.loom-runtime/shared/references/governance/review-model.md +109 -0
  693. package/payload/skills/loom-retire/.loom-runtime/shared/references/governance/state-machine.md +163 -0
  694. package/payload/skills/loom-retire/.loom-runtime/shared/references/governance/truth-and-sync-boundary.md +161 -0
  695. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/automation-frontload.md +139 -0
  696. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/closeout-gate.md +97 -0
  697. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/execution-chain.md +56 -0
  698. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/execution-context.md +71 -0
  699. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/fact-chain-contract.md +160 -0
  700. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/host-action-contract.md +128 -0
  701. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/host-issue-binding.md +90 -0
  702. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/host-lifecycle-boundary.md +56 -0
  703. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/merge-checkpoint.md +95 -0
  704. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/reconciliation-audit.md +64 -0
  705. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/recovery-model.md +101 -0
  706. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/review-execution.md +99 -0
  707. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/runtime-state.md +103 -0
  708. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/status-surface.md +121 -0
  709. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/work-item-contract.md +104 -0
  710. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/workspace-and-purity.md +73 -0
  711. package/payload/skills/loom-retire/.loom-runtime/shared/references/harness/workspace-model.md +56 -0
  712. package/payload/skills/loom-retire/.loom-runtime/shared/references/templates/pull-request.md +44 -0
  713. package/payload/skills/loom-retire/.loom-runtime/shared/references/templates/review-record.md +35 -0
  714. package/payload/skills/loom-retire/.loom-runtime/shared/references/templates/spec-suite.md +57 -0
  715. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/fact_chain_support.py +509 -0
  716. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/governance_surface.py +879 -0
  717. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/loom_check.py +4683 -0
  718. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/loom_flow.py +5390 -0
  719. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/loom_init.py +1966 -0
  720. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/runtime_paths.py +116 -0
  721. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/runtime_state.py +405 -0
  722. package/payload/skills/loom-retire/.loom-runtime/upgrade-contract.json +29 -0
  723. package/payload/skills/loom-retire/SKILL.md +26 -0
  724. package/payload/skills/loom-retire/agents/openai.yaml +4 -0
  725. package/payload/skills/loom-retire/contract.json +41 -0
  726. package/payload/skills/loom-retire/references/input-signals.md +7 -0
  727. package/payload/skills/loom-retire/references/loom-init/input-signals.md +16 -0
  728. package/payload/skills/loom-retire/references/loom-init/intake-signals.md +155 -0
  729. package/payload/skills/loom-retire/references/loom-init/output-contract.md +208 -0
  730. package/payload/skills/loom-retire/references/output-contract.md +13 -0
  731. package/payload/skills/loom-retire/references/route-matrix.md +63 -0
  732. package/payload/skills/loom-retire/references/shared/adoption/deep-existing-repo-default.md +64 -0
  733. package/payload/skills/loom-retire/references/shared/adoption/lightweight-retrofit-default.md +71 -0
  734. package/payload/skills/loom-retire/references/shared/adoption/routing-and-checkpoints.md +88 -0
  735. package/payload/skills/loom-retire/references/shared/governance/host-object-taxonomy.md +148 -0
  736. package/payload/skills/loom-retire/references/shared/governance/issue-model.md +127 -0
  737. package/payload/skills/loom-retire/references/shared/governance/maturity-and-closing.md +69 -0
  738. package/payload/skills/loom-retire/references/shared/governance/principles.md +180 -0
  739. package/payload/skills/loom-retire/references/shared/governance/review-model.md +109 -0
  740. package/payload/skills/loom-retire/references/shared/governance/state-machine.md +163 -0
  741. package/payload/skills/loom-retire/references/shared/governance/truth-and-sync-boundary.md +161 -0
  742. package/payload/skills/loom-retire/references/shared/harness/automation-frontload.md +139 -0
  743. package/payload/skills/loom-retire/references/shared/harness/closeout-gate.md +97 -0
  744. package/payload/skills/loom-retire/references/shared/harness/execution-chain.md +56 -0
  745. package/payload/skills/loom-retire/references/shared/harness/execution-context.md +71 -0
  746. package/payload/skills/loom-retire/references/shared/harness/fact-chain-contract.md +160 -0
  747. package/payload/skills/loom-retire/references/shared/harness/host-action-contract.md +128 -0
  748. package/payload/skills/loom-retire/references/shared/harness/host-issue-binding.md +90 -0
  749. package/payload/skills/loom-retire/references/shared/harness/host-lifecycle-boundary.md +56 -0
  750. package/payload/skills/loom-retire/references/shared/harness/merge-checkpoint.md +95 -0
  751. package/payload/skills/loom-retire/references/shared/harness/reconciliation-audit.md +64 -0
  752. package/payload/skills/loom-retire/references/shared/harness/recovery-model.md +101 -0
  753. package/payload/skills/loom-retire/references/shared/harness/review-execution.md +99 -0
  754. package/payload/skills/loom-retire/references/shared/harness/runtime-state.md +103 -0
  755. package/payload/skills/loom-retire/references/shared/harness/status-surface.md +121 -0
  756. package/payload/skills/loom-retire/references/shared/harness/work-item-contract.md +104 -0
  757. package/payload/skills/loom-retire/references/shared/harness/workspace-and-purity.md +73 -0
  758. package/payload/skills/loom-retire/references/shared/harness/workspace-model.md +56 -0
  759. package/payload/skills/loom-retire/references/shared/templates/pull-request.md +44 -0
  760. package/payload/skills/loom-retire/references/shared/templates/review-record.md +35 -0
  761. package/payload/skills/loom-retire/references/shared/templates/spec-suite.md +57 -0
  762. package/payload/skills/loom-retire/scripts/loom-retire.py +16 -0
  763. package/payload/skills/loom-review/.loom-runtime/install-layout.json +77 -0
  764. package/payload/skills/loom-review/.loom-runtime/loom-init/references/input-signals.md +16 -0
  765. package/payload/skills/loom-review/.loom-runtime/loom-init/references/intake-signals.md +155 -0
  766. package/payload/skills/loom-review/.loom-runtime/loom-init/references/output-contract.md +208 -0
  767. package/payload/skills/loom-review/.loom-runtime/loom-review/SKILL.md +95 -0
  768. package/payload/skills/loom-review/.loom-runtime/loom-review/agents/openai.yaml +4 -0
  769. package/payload/skills/loom-review/.loom-runtime/loom-review/contract.json +49 -0
  770. package/payload/skills/loom-review/.loom-runtime/loom-review/references/input-signals.md +15 -0
  771. package/payload/skills/loom-review/.loom-runtime/loom-review/references/output-contract.md +57 -0
  772. package/payload/skills/loom-review/.loom-runtime/loom-review/scripts/loom-review.py +14 -0
  773. package/payload/skills/loom-review/.loom-runtime/registry.json +15 -0
  774. package/payload/skills/loom-review/.loom-runtime/route-matrix.md +63 -0
  775. package/payload/skills/loom-review/.loom-runtime/shared/assets/github/PULL_REQUEST_TEMPLATE.md +22 -0
  776. package/payload/skills/loom-review/.loom-runtime/shared/assets/review/loom-review-result-schema.json +93 -0
  777. package/payload/skills/loom-review/.loom-runtime/shared/assets/templates/scaffold/plan.md +51 -0
  778. package/payload/skills/loom-review/.loom-runtime/shared/assets/templates/scaffold/spec.md +48 -0
  779. package/payload/skills/loom-review/.loom-runtime/shared/references/adoption/deep-existing-repo-default.md +64 -0
  780. package/payload/skills/loom-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +71 -0
  781. package/payload/skills/loom-review/.loom-runtime/shared/references/adoption/routing-and-checkpoints.md +88 -0
  782. package/payload/skills/loom-review/.loom-runtime/shared/references/governance/host-object-taxonomy.md +148 -0
  783. package/payload/skills/loom-review/.loom-runtime/shared/references/governance/issue-model.md +127 -0
  784. package/payload/skills/loom-review/.loom-runtime/shared/references/governance/maturity-and-closing.md +69 -0
  785. package/payload/skills/loom-review/.loom-runtime/shared/references/governance/principles.md +180 -0
  786. package/payload/skills/loom-review/.loom-runtime/shared/references/governance/review-model.md +109 -0
  787. package/payload/skills/loom-review/.loom-runtime/shared/references/governance/state-machine.md +163 -0
  788. package/payload/skills/loom-review/.loom-runtime/shared/references/governance/truth-and-sync-boundary.md +161 -0
  789. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/automation-frontload.md +139 -0
  790. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/closeout-gate.md +97 -0
  791. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/execution-chain.md +56 -0
  792. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/execution-context.md +71 -0
  793. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/fact-chain-contract.md +160 -0
  794. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/host-action-contract.md +128 -0
  795. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/host-issue-binding.md +90 -0
  796. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/host-lifecycle-boundary.md +56 -0
  797. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/merge-checkpoint.md +95 -0
  798. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/reconciliation-audit.md +64 -0
  799. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/recovery-model.md +101 -0
  800. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/review-execution.md +99 -0
  801. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/runtime-state.md +103 -0
  802. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/status-surface.md +121 -0
  803. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/work-item-contract.md +104 -0
  804. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/workspace-and-purity.md +73 -0
  805. package/payload/skills/loom-review/.loom-runtime/shared/references/harness/workspace-model.md +56 -0
  806. package/payload/skills/loom-review/.loom-runtime/shared/references/templates/pull-request.md +44 -0
  807. package/payload/skills/loom-review/.loom-runtime/shared/references/templates/review-record.md +35 -0
  808. package/payload/skills/loom-review/.loom-runtime/shared/references/templates/spec-suite.md +57 -0
  809. package/payload/skills/loom-review/.loom-runtime/shared/scripts/fact_chain_support.py +509 -0
  810. package/payload/skills/loom-review/.loom-runtime/shared/scripts/governance_surface.py +879 -0
  811. package/payload/skills/loom-review/.loom-runtime/shared/scripts/loom_check.py +4683 -0
  812. package/payload/skills/loom-review/.loom-runtime/shared/scripts/loom_flow.py +5390 -0
  813. package/payload/skills/loom-review/.loom-runtime/shared/scripts/loom_init.py +1966 -0
  814. package/payload/skills/loom-review/.loom-runtime/shared/scripts/runtime_paths.py +116 -0
  815. package/payload/skills/loom-review/.loom-runtime/shared/scripts/runtime_state.py +405 -0
  816. package/payload/skills/loom-review/.loom-runtime/upgrade-contract.json +29 -0
  817. package/payload/skills/loom-review/SKILL.md +95 -0
  818. package/payload/skills/loom-review/agents/openai.yaml +4 -0
  819. package/payload/skills/loom-review/contract.json +49 -0
  820. package/payload/skills/loom-review/references/input-signals.md +15 -0
  821. package/payload/skills/loom-review/references/loom-init/input-signals.md +16 -0
  822. package/payload/skills/loom-review/references/loom-init/intake-signals.md +155 -0
  823. package/payload/skills/loom-review/references/loom-init/output-contract.md +208 -0
  824. package/payload/skills/loom-review/references/output-contract.md +57 -0
  825. package/payload/skills/loom-review/references/route-matrix.md +63 -0
  826. package/payload/skills/loom-review/references/shared/adoption/deep-existing-repo-default.md +64 -0
  827. package/payload/skills/loom-review/references/shared/adoption/lightweight-retrofit-default.md +71 -0
  828. package/payload/skills/loom-review/references/shared/adoption/routing-and-checkpoints.md +88 -0
  829. package/payload/skills/loom-review/references/shared/governance/host-object-taxonomy.md +148 -0
  830. package/payload/skills/loom-review/references/shared/governance/issue-model.md +127 -0
  831. package/payload/skills/loom-review/references/shared/governance/maturity-and-closing.md +69 -0
  832. package/payload/skills/loom-review/references/shared/governance/principles.md +180 -0
  833. package/payload/skills/loom-review/references/shared/governance/review-model.md +109 -0
  834. package/payload/skills/loom-review/references/shared/governance/state-machine.md +163 -0
  835. package/payload/skills/loom-review/references/shared/governance/truth-and-sync-boundary.md +161 -0
  836. package/payload/skills/loom-review/references/shared/harness/automation-frontload.md +139 -0
  837. package/payload/skills/loom-review/references/shared/harness/closeout-gate.md +97 -0
  838. package/payload/skills/loom-review/references/shared/harness/execution-chain.md +56 -0
  839. package/payload/skills/loom-review/references/shared/harness/execution-context.md +71 -0
  840. package/payload/skills/loom-review/references/shared/harness/fact-chain-contract.md +160 -0
  841. package/payload/skills/loom-review/references/shared/harness/host-action-contract.md +128 -0
  842. package/payload/skills/loom-review/references/shared/harness/host-issue-binding.md +90 -0
  843. package/payload/skills/loom-review/references/shared/harness/host-lifecycle-boundary.md +56 -0
  844. package/payload/skills/loom-review/references/shared/harness/merge-checkpoint.md +95 -0
  845. package/payload/skills/loom-review/references/shared/harness/reconciliation-audit.md +64 -0
  846. package/payload/skills/loom-review/references/shared/harness/recovery-model.md +101 -0
  847. package/payload/skills/loom-review/references/shared/harness/review-execution.md +99 -0
  848. package/payload/skills/loom-review/references/shared/harness/runtime-state.md +103 -0
  849. package/payload/skills/loom-review/references/shared/harness/status-surface.md +121 -0
  850. package/payload/skills/loom-review/references/shared/harness/work-item-contract.md +104 -0
  851. package/payload/skills/loom-review/references/shared/harness/workspace-and-purity.md +73 -0
  852. package/payload/skills/loom-review/references/shared/harness/workspace-model.md +56 -0
  853. package/payload/skills/loom-review/references/shared/templates/pull-request.md +44 -0
  854. package/payload/skills/loom-review/references/shared/templates/review-record.md +35 -0
  855. package/payload/skills/loom-review/references/shared/templates/spec-suite.md +57 -0
  856. package/payload/skills/loom-review/scripts/loom-review.py +16 -0
@@ -0,0 +1,116 @@
1
+ #!/usr/bin/env python3
2
+ """Resolve installed-skills runtime paths without assuming a repo-local layout."""
3
+
4
+ from __future__ import annotations
5
+
6
+ import os
7
+ from pathlib import Path
8
+
9
+
10
+ def caller_path(caller_file: str) -> Path:
11
+ return Path(caller_file).resolve()
12
+
13
+
14
+ def installed_skills_root(caller_file: str) -> Path | None:
15
+ env_root = os.environ.get("LOOM_INSTALLED_SKILLS_ROOT")
16
+ if env_root:
17
+ return Path(env_root).expanduser().resolve()
18
+
19
+ path = caller_path(caller_file)
20
+ if path.parent.name == "scripts" and path.parent.parent.name == "shared":
21
+ return path.parents[2]
22
+ if path.parent.name == "scripts" and path.parents[2].name == "skills":
23
+ return path.parents[2]
24
+ return None
25
+
26
+
27
+ def source_repo_root() -> Path | None:
28
+ env_root = os.environ.get("LOOM_SOURCE_REPO_ROOT")
29
+ if not env_root:
30
+ return None
31
+ return Path(env_root).expanduser().resolve()
32
+
33
+
34
+ def repo_local_root(caller_file: str) -> Path | None:
35
+ hinted = source_repo_root()
36
+ if hinted is not None:
37
+ return hinted
38
+
39
+ path = caller_path(caller_file)
40
+ if path.parent.name == "bin" and path.parent.parent.name == ".loom":
41
+ return path.parents[2]
42
+ return None
43
+
44
+
45
+ def bootstrap_runtime_root(caller_file: str) -> Path | None:
46
+ path = caller_path(caller_file)
47
+ if path.parent.name == "bin" and path.parent.parent.name == ".loom":
48
+ return path.parent
49
+ return None
50
+
51
+
52
+ def bootstrap_manifest_path(caller_file: str) -> Path | None:
53
+ runtime_root = bootstrap_runtime_root(caller_file)
54
+ if runtime_root is None:
55
+ return None
56
+ return runtime_root.parent / "bootstrap" / "manifest.json"
57
+
58
+
59
+ def shared_root(caller_file: str) -> Path:
60
+ skills_root = installed_skills_root(caller_file)
61
+ if skills_root is None:
62
+ raise RuntimeError("installed skills root is not available for this runtime")
63
+ shared = skills_root / "shared"
64
+ if not shared.exists():
65
+ raise RuntimeError(f"shared runtime root is missing: {shared}")
66
+ return shared
67
+
68
+
69
+ def shared_script(caller_file: str, script_name: str) -> Path:
70
+ script_path = shared_root(caller_file) / "scripts" / script_name
71
+ if not script_path.exists():
72
+ raise RuntimeError(f"shared runtime script is missing: {script_path}")
73
+ return script_path
74
+
75
+
76
+ def shared_asset(caller_file: str, relative_path: str) -> Path:
77
+ asset_path = shared_root(caller_file) / "assets" / relative_path
78
+ if not asset_path.exists():
79
+ raise RuntimeError(f"shared runtime asset is missing: {asset_path}")
80
+ return asset_path
81
+
82
+
83
+ def shared_reference(caller_file: str, relative_path: str) -> Path:
84
+ reference_path = shared_root(caller_file) / "references" / relative_path
85
+ if not reference_path.exists():
86
+ raise RuntimeError(f"shared reference is missing: {reference_path}")
87
+ return reference_path
88
+
89
+
90
+ def registry_path(caller_file: str) -> Path:
91
+ skills_root = installed_skills_root(caller_file)
92
+ if skills_root is not None:
93
+ return skills_root / "registry.json"
94
+
95
+ path = caller_path(caller_file)
96
+ if path.parent.name == "bin" and path.parent.parent.name == ".loom":
97
+ return path.parent.parent / "skills" / "registry.json"
98
+
99
+ raise RuntimeError("registry path is unavailable outside installed-skills or .loom/bin runtime")
100
+
101
+
102
+ def install_layout_path(caller_file: str) -> Path:
103
+ skills_root = installed_skills_root(caller_file)
104
+ if skills_root is None:
105
+ raise RuntimeError("install layout path is unavailable outside installed-skills runtime")
106
+ return skills_root / "install-layout.json"
107
+
108
+
109
+ def installed_skill_script(caller_file: str, skill_id: str) -> Path:
110
+ skills_root = installed_skills_root(caller_file)
111
+ if skills_root is None:
112
+ raise RuntimeError("installed skills root is not available for skill entry lookup")
113
+ script_path = skills_root / skill_id / "scripts" / f"{skill_id}.py"
114
+ if not script_path.exists():
115
+ raise RuntimeError(f"installed skill entry script is missing: {script_path}")
116
+ return script_path
@@ -0,0 +1,405 @@
1
+ #!/usr/bin/env python3
2
+ """Detect Loom runtime scene/carrier and enforce fail-closed runtime checks."""
3
+
4
+ from __future__ import annotations
5
+
6
+ import json
7
+ import os
8
+ from pathlib import Path
9
+ from typing import Any
10
+
11
+ from runtime_paths import (
12
+ bootstrap_manifest_path,
13
+ bootstrap_runtime_root,
14
+ caller_path,
15
+ installed_skills_root,
16
+ repo_local_root,
17
+ shared_root,
18
+ source_repo_root,
19
+ )
20
+
21
+ SUPPORTED_SCENES = {"repo-local-demo", "installed-runtime", "upgrade-rehearsal"}
22
+ SUPPORTED_CARRIERS = {
23
+ "repo-local-wrapper",
24
+ "installed-skills-root",
25
+ "bootstrapped-target-runtime",
26
+ }
27
+ SUPPORTED_ENTRY_FAMILIES = {"loom-init", "loom-flow"}
28
+
29
+ EXPECTED_SHARED_RUNTIME_SCRIPTS = (
30
+ "runtime_paths.py",
31
+ "runtime_state.py",
32
+ "loom_init.py",
33
+ "fact_chain_support.py",
34
+ "governance_surface.py",
35
+ "loom_flow.py",
36
+ "loom_check.py",
37
+ )
38
+
39
+ EXPECTED_BOOTSTRAP_RUNTIME_SOURCES = {
40
+ ".loom/bin/loom_init.py": "skills/shared/scripts/loom_init.py",
41
+ ".loom/bin/fact_chain_support.py": "skills/shared/scripts/fact_chain_support.py",
42
+ ".loom/bin/governance_surface.py": "skills/shared/scripts/governance_surface.py",
43
+ ".loom/bin/loom_flow.py": "skills/shared/scripts/loom_flow.py",
44
+ ".loom/bin/runtime_paths.py": "skills/shared/scripts/runtime_paths.py",
45
+ ".loom/bin/runtime_state.py": "skills/shared/scripts/runtime_state.py",
46
+ ".loom/bin/loom_check.py": "skills/shared/scripts/loom_check.py",
47
+ }
48
+
49
+
50
+ def _path_text(path: Path | None) -> str | None:
51
+ return str(path) if path is not None else None
52
+
53
+
54
+ def _load_json(path: Path) -> tuple[dict[str, Any] | None, str | None]:
55
+ try:
56
+ payload = json.loads(path.read_text(encoding="utf-8"))
57
+ except FileNotFoundError:
58
+ return None, f"missing `{path}`"
59
+ except json.JSONDecodeError as exc:
60
+ return None, f"`{path}` is invalid JSON: {exc.msg}"
61
+ if not isinstance(payload, dict):
62
+ return None, f"`{path}` must be a JSON object"
63
+ return payload, None
64
+
65
+
66
+ def _check(status: str, summary: str, *, evidence: object | None = None) -> dict[str, Any]:
67
+ payload: dict[str, Any] = {
68
+ "status": status,
69
+ "summary": summary,
70
+ }
71
+ if evidence is not None:
72
+ payload["evidence"] = evidence
73
+ return payload
74
+
75
+
76
+ def detect_carrier(caller_file: str) -> str | None:
77
+ if source_repo_root() is not None:
78
+ return "repo-local-wrapper"
79
+ if bootstrap_runtime_root(caller_file) is not None:
80
+ return "bootstrapped-target-runtime"
81
+ if installed_skills_root(caller_file) is not None:
82
+ return "installed-skills-root"
83
+ return None
84
+
85
+
86
+ def _default_scene_for_carrier(carrier: str) -> str:
87
+ if carrier == "repo-local-wrapper":
88
+ return "repo-local-demo"
89
+ return "installed-runtime"
90
+
91
+
92
+ def _scene_check(carrier: str | None) -> tuple[str | None, dict[str, Any], list[str]]:
93
+ marker = os.environ.get("LOOM_RUNTIME_SCENE")
94
+ errors: list[str] = []
95
+ if carrier is None:
96
+ return None, _check("block", "runtime carrier could not be determined."), ["runtime carrier is unknown"]
97
+
98
+ if marker is None or not marker.strip():
99
+ scene = _default_scene_for_carrier(carrier)
100
+ return scene, _check("pass", f"scene defaults to `{scene}` for carrier `{carrier}`."), []
101
+
102
+ marker = marker.strip()
103
+ if marker not in SUPPORTED_SCENES:
104
+ errors.append(f"unsupported LOOM_RUNTIME_SCENE `{marker}`")
105
+ return None, _check("block", "scene marker is not part of the stable runtime-state vocabulary."), errors
106
+
107
+ scene = marker
108
+ if scene == "repo-local-demo" and carrier != "repo-local-wrapper":
109
+ errors.append(f"`repo-local-demo` scene conflicts with carrier `{carrier}`")
110
+ elif scene == "upgrade-rehearsal" and carrier not in {"installed-skills-root", "bootstrapped-target-runtime"}:
111
+ errors.append(f"`upgrade-rehearsal` scene conflicts with carrier `{carrier}`")
112
+ elif scene == "installed-runtime" and carrier == "repo-local-wrapper":
113
+ errors.append("`installed-runtime` scene cannot be asserted from a repo-local wrapper")
114
+
115
+ if errors:
116
+ return scene, _check("block", "scene marker conflicts with the detected runtime carrier."), errors
117
+ return scene, _check("pass", f"scene marker `{scene}` is consistent with carrier `{carrier}`."), []
118
+
119
+
120
+ def _validate_install_layout(skills_root: Path) -> tuple[dict[str, Any], list[str], Path | None]:
121
+ errors: list[str] = []
122
+ layout_path = skills_root / "install-layout.json"
123
+ layout, error = _load_json(layout_path)
124
+ if error:
125
+ return _check("block", "install layout manifest is missing or invalid."), [error], layout_path
126
+
127
+ required_paths = layout.get("required_paths")
128
+ if not isinstance(required_paths, list) or not required_paths:
129
+ errors.append("`install-layout.json` must declare a non-empty `required_paths`")
130
+ else:
131
+ missing = []
132
+ for relative in required_paths:
133
+ if not isinstance(relative, str) or not relative:
134
+ errors.append("`install-layout.json` required paths must be non-empty strings")
135
+ continue
136
+ if not (skills_root / relative).exists():
137
+ missing.append(relative)
138
+ if missing:
139
+ errors.append("install layout is missing required paths: " + ", ".join(sorted(missing)))
140
+
141
+ status = "pass" if not errors else "block"
142
+ summary = (
143
+ "install layout manifest and required paths are present."
144
+ if status == "pass"
145
+ else "install layout manifest is incomplete or points to missing paths."
146
+ )
147
+ return _check(status, summary, evidence={"path": str(layout_path)}), errors, layout_path
148
+
149
+
150
+ def _validate_registry_contract(skills_root: Path) -> tuple[dict[str, Any], list[str], Path]:
151
+ errors: list[str] = []
152
+ registry_path = skills_root / "registry.json"
153
+ registry, error = _load_json(registry_path)
154
+ if error:
155
+ return _check("block", "registry contract is missing or invalid."), [error], registry_path
156
+
157
+ if registry.get("install_layout") != "install-layout.json":
158
+ errors.append("`registry.json` must point `install_layout` to `install-layout.json`")
159
+ if registry.get("upgrade_contract") != "upgrade-contract.json":
160
+ errors.append("`registry.json` must point `upgrade_contract` to `upgrade-contract.json`")
161
+
162
+ entries = registry.get("entries")
163
+ if not isinstance(entries, list) or not entries:
164
+ errors.append("`registry.json` must declare a non-empty `entries` list")
165
+ else:
166
+ for entry in entries:
167
+ if not isinstance(entry, dict):
168
+ errors.append("registry entries must be JSON objects")
169
+ continue
170
+ skill_id = entry.get("id")
171
+ executable = entry.get("executable")
172
+ manifest = entry.get("manifest")
173
+ if not isinstance(skill_id, str) or not skill_id:
174
+ errors.append("registry entry is missing a non-empty `id`")
175
+ continue
176
+ if not isinstance(executable, str) or not executable:
177
+ errors.append(f"registry entry `{skill_id}` must declare a non-empty `executable`")
178
+ elif not (skills_root / executable).exists():
179
+ errors.append(f"registry entry `{skill_id}` points to missing executable `{executable}`")
180
+ if not isinstance(manifest, str) or not manifest:
181
+ errors.append(f"registry entry `{skill_id}` must declare a non-empty `manifest`")
182
+ elif not (skills_root / manifest).exists():
183
+ errors.append(f"registry entry `{skill_id}` points to missing manifest `{manifest}`")
184
+
185
+ upgrade_path = skills_root / "upgrade-contract.json"
186
+ upgrade_contract, upgrade_error = _load_json(upgrade_path)
187
+ if upgrade_error:
188
+ errors.append(upgrade_error)
189
+ else:
190
+ refresh_required = upgrade_contract.get("upgrade_policy", {}).get("refresh_required")
191
+ if not isinstance(refresh_required, list) or "layout_manifest" not in refresh_required:
192
+ errors.append("`upgrade-contract.json` must require refreshing `layout_manifest`")
193
+
194
+ status = "pass" if not errors else "block"
195
+ summary = (
196
+ "registry, upgrade contract, and skill entrypoints are consistent."
197
+ if status == "pass"
198
+ else "registry or upgrade contract drifted from the installed runtime layout."
199
+ )
200
+ return _check(status, summary, evidence={"path": str(registry_path)}), errors, registry_path
201
+
202
+
203
+ def _validate_shared_runtime(skills_root: Path) -> tuple[dict[str, Any], list[str], Path]:
204
+ errors: list[str] = []
205
+ scripts_root = skills_root / "shared" / "scripts"
206
+ if not scripts_root.exists():
207
+ errors.append(f"missing shared runtime scripts root `{scripts_root}`")
208
+ else:
209
+ for script_name in EXPECTED_SHARED_RUNTIME_SCRIPTS:
210
+ if not (scripts_root / script_name).exists():
211
+ errors.append(f"missing shared runtime script `shared/scripts/{script_name}`")
212
+ status = "pass" if not errors else "block"
213
+ summary = (
214
+ "shared runtime scripts are present and executable roots can be resolved."
215
+ if status == "pass"
216
+ else "shared runtime scripts are missing or incomplete."
217
+ )
218
+ return _check(status, summary, evidence={"path": str(scripts_root)}), errors, scripts_root
219
+
220
+
221
+ def _validate_referenced_resources(skills_root: Path) -> tuple[dict[str, Any], list[str]]:
222
+ errors: list[str] = []
223
+ required_resources = (
224
+ "shared/assets/templates/scaffold/spec.md",
225
+ "shared/assets/templates/scaffold/plan.md",
226
+ "shared/assets/github/PULL_REQUEST_TEMPLATE.md",
227
+ "shared/references/harness/status-surface.md",
228
+ "shared/references/harness/runtime-state.md",
229
+ )
230
+ for relative in required_resources:
231
+ if not (skills_root / relative).exists():
232
+ errors.append(f"missing referenced resource `{relative}`")
233
+ status = "pass" if not errors else "block"
234
+ summary = (
235
+ "shared references and assets required by the installed runtime are present."
236
+ if status == "pass"
237
+ else "shared references or assets required by the runtime are missing."
238
+ )
239
+ return _check(status, summary), errors
240
+
241
+
242
+ def _validate_bootstrapped_runtime(caller_file: str) -> tuple[dict[str, Any], list[str], Path | None]:
243
+ errors: list[str] = []
244
+ runtime_root = bootstrap_runtime_root(caller_file)
245
+ manifest_path = bootstrap_manifest_path(caller_file)
246
+ if runtime_root is None or manifest_path is None:
247
+ errors.append("bootstrap runtime root or manifest path is unavailable")
248
+ return _check("block", "bootstrapped target runtime is missing its bootstrap carrier."), errors, manifest_path
249
+
250
+ if not runtime_root.exists():
251
+ errors.append(f"missing bootstrapped runtime root `{runtime_root}`")
252
+ manifest, manifest_error = _load_json(manifest_path)
253
+ if manifest_error:
254
+ errors.append(manifest_error)
255
+ return _check("block", "bootstrap manifest is missing or invalid."), errors, manifest_path
256
+
257
+ artifacts = manifest.get("artifacts")
258
+ if not isinstance(artifacts, list) or not artifacts:
259
+ errors.append("bootstrap manifest must declare a non-empty `artifacts` list")
260
+ return _check("block", "bootstrap manifest does not describe runtime artifacts."), errors, manifest_path
261
+
262
+ artifact_by_path = {
263
+ artifact.get("path"): artifact
264
+ for artifact in artifacts
265
+ if isinstance(artifact, dict) and isinstance(artifact.get("path"), str)
266
+ }
267
+ for relative, expected_source in EXPECTED_BOOTSTRAP_RUNTIME_SOURCES.items():
268
+ artifact = artifact_by_path.get(relative)
269
+ if artifact is None:
270
+ errors.append(f"bootstrap manifest is missing runtime artifact `{relative}`")
271
+ continue
272
+ if artifact.get("source") != expected_source:
273
+ errors.append(
274
+ f"bootstrap runtime artifact `{relative}` must point to `{expected_source}`, got `{artifact.get('source')}`"
275
+ )
276
+ runtime_file = runtime_root / Path(relative).name
277
+ if not runtime_file.exists():
278
+ errors.append(f"bootstrapped runtime file is missing: `{relative}`")
279
+
280
+ status = "pass" if not errors else "block"
281
+ summary = (
282
+ "bootstrap manifest and .loom/bin runtime files are aligned."
283
+ if status == "pass"
284
+ else "bootstrap manifest or .loom/bin runtime files drifted from the expected bundled runtime."
285
+ )
286
+ return _check(status, summary, evidence={"path": str(manifest_path)}), errors, manifest_path
287
+
288
+
289
+ def detect_runtime_state(caller_file: str, entry_family: str, *, target_root: Path | None = None) -> dict[str, Any]:
290
+ if entry_family not in SUPPORTED_ENTRY_FAMILIES:
291
+ raise RuntimeError(f"unsupported entry family `{entry_family}`")
292
+
293
+ caller = caller_path(caller_file)
294
+ carrier = detect_carrier(caller_file)
295
+ scene, scene_check, scene_errors = _scene_check(carrier)
296
+ install_root = installed_skills_root(caller_file)
297
+ runtime_root = bootstrap_runtime_root(caller_file) or caller.parent
298
+ layout_or_manifest_path: Path | None = None
299
+ registry_location: Path | None = None
300
+ checks: dict[str, dict[str, Any]] = {
301
+ "scene_marker": scene_check,
302
+ }
303
+ errors = list(scene_errors)
304
+
305
+ if carrier is None:
306
+ checks["carrier_layout"] = _check("block", "runtime carrier cannot be classified from the current entrypoint.")
307
+ checks["registry_contract"] = _check("not_applicable", "no carrier-specific registry contract is available.")
308
+ checks["shared_runtime"] = _check("not_applicable", "no carrier-specific runtime root is available.")
309
+ checks["referenced_resources"] = _check("not_applicable", "no carrier-specific resources can be inspected.")
310
+ elif carrier in {"repo-local-wrapper", "installed-skills-root"}:
311
+ if install_root is None:
312
+ checks["carrier_layout"] = _check("block", "installed skills root is unavailable for the active carrier.")
313
+ errors.append("installed skills root is unavailable")
314
+ else:
315
+ carrier_errors: list[str] = []
316
+ try:
317
+ shared = shared_root(caller_file)
318
+ except RuntimeError as exc:
319
+ carrier_errors.append(str(exc))
320
+ shared = install_root / "shared"
321
+ if carrier == "repo-local-wrapper":
322
+ repo_root = repo_local_root(caller_file)
323
+ if repo_root is None:
324
+ carrier_errors.append("repo-local wrapper is missing `LOOM_SOURCE_REPO_ROOT`")
325
+ elif not str(install_root).startswith(str(repo_root)):
326
+ carrier_errors.append("repo-local wrapper install root must stay inside the source repository")
327
+ if not shared.exists():
328
+ carrier_errors.append(f"shared runtime root is missing: {shared}")
329
+ checks["carrier_layout"] = _check(
330
+ "pass" if not carrier_errors else "block",
331
+ (
332
+ "carrier layout exposes an installed skills root and shared runtime tree."
333
+ if not carrier_errors
334
+ else "carrier layout does not expose the expected installed skills root or shared runtime tree."
335
+ ),
336
+ evidence={"install_root": str(install_root)},
337
+ )
338
+ errors.extend(carrier_errors)
339
+
340
+ registry_check, registry_errors, registry_location = _validate_registry_contract(install_root)
341
+ layout_check, layout_errors, layout_or_manifest_path = _validate_install_layout(install_root)
342
+ shared_check, shared_errors, _ = _validate_shared_runtime(install_root)
343
+ resources_check, resources_errors = _validate_referenced_resources(install_root)
344
+ checks["registry_contract"] = registry_check
345
+ checks["shared_runtime"] = shared_check
346
+ checks["referenced_resources"] = resources_check
347
+ if layout_check["status"] == "block":
348
+ if checks["carrier_layout"]["status"] == "pass":
349
+ checks["carrier_layout"] = _check(
350
+ "block",
351
+ "carrier layout is present but its install layout manifest is incomplete.",
352
+ evidence=layout_check.get("evidence"),
353
+ )
354
+ errors.extend(layout_errors)
355
+ errors.extend(registry_errors)
356
+ errors.extend(shared_errors)
357
+ errors.extend(resources_errors)
358
+ else:
359
+ carrier_check, carrier_errors, layout_or_manifest_path = _validate_bootstrapped_runtime(caller_file)
360
+ checks["carrier_layout"] = carrier_check
361
+ checks["registry_contract"] = _check(
362
+ "not_applicable",
363
+ "bootstrapped target runtime does not consume `skills/registry.json`; it uses `.loom/bootstrap/manifest.json`.",
364
+ )
365
+ checks["shared_runtime"] = carrier_check
366
+ checks["referenced_resources"] = _check(
367
+ "not_applicable",
368
+ "bootstrapped target runtime validates copied runtime artifacts via the bootstrap manifest instead of shared references.",
369
+ )
370
+ errors.extend(carrier_errors)
371
+
372
+ unique_errors: list[str] = []
373
+ for message in errors:
374
+ if message not in unique_errors:
375
+ unique_errors.append(message)
376
+
377
+ result = "pass" if not unique_errors else "block"
378
+ if result == "pass":
379
+ summary = f"runtime carrier `{carrier}` is executing as `{scene}` with a consistent bundled runtime."
380
+ else:
381
+ summary = "runtime state is inconsistent with the expected carrier/layout contract."
382
+
383
+ if carrier == "installed-skills-root":
384
+ fallback_to = "refresh-install" if unique_errors else None
385
+ elif carrier == "bootstrapped-target-runtime":
386
+ fallback_to = "rebootstrap-runtime" if unique_errors else None
387
+ else:
388
+ fallback_to = "manual-runtime-reconciliation" if unique_errors else None
389
+
390
+ return {
391
+ "result": result,
392
+ "summary": summary,
393
+ "missing_inputs": unique_errors,
394
+ "fallback_to": fallback_to,
395
+ "scene": scene,
396
+ "carrier": carrier,
397
+ "entry_family": entry_family,
398
+ "install_root": _path_text(install_root),
399
+ "runtime_root": _path_text(runtime_root),
400
+ "registry_path": _path_text(registry_location),
401
+ "layout_or_manifest_path": _path_text(layout_or_manifest_path),
402
+ "source_repo_root": _path_text(source_repo_root()),
403
+ "target_root": _path_text(target_root.resolve() if target_root is not None else None),
404
+ "checks": checks,
405
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "compatibility_questions": [
3
+ "Which root entry is current?",
4
+ "Which contract versions are installed for each declared entry?",
5
+ "Which executable path should the host invoke?",
6
+ "Which install layout manifest defines the minimum bundled runtime/resources?",
7
+ "Which runtime_state does the host currently observe?",
8
+ "If the runtime is blocked, what fail-closed reason is visible to the operator?",
9
+ "Should the host assert LOOM_RUNTIME_SCENE=upgrade-rehearsal for this run?",
10
+ "Does the host need to refresh referenced resources after upgrade?",
11
+ "Did the registry gain or retire scenario entries that the host must rediscover?"
12
+ ],
13
+ "current_contract_version": "1.4.0",
14
+ "registry_version": "1.3.0",
15
+ "root_entry": "loom-review",
16
+ "schema_version": "loom-skill-upgrade/v1",
17
+ "upgrade_policy": {
18
+ "failure_visibility": "fail closed and keep the previously known-good install state",
19
+ "mode": "explicit",
20
+ "refresh_required": [
21
+ "registry",
22
+ "manifest",
23
+ "executable",
24
+ "referenced_resources",
25
+ "layout_manifest"
26
+ ],
27
+ "version_source": "skills/registry.json"
28
+ }
29
+ }
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: loom-review
3
+ description: 负责正式 review 执行层。Use when Codex needs to run semantic review after pre-review and produce a formal review verdict without replacing merge-ready.
4
+ ---
5
+
6
+ # Loom Review
7
+
8
+ 这个 skill 承接正式 review 执行层。
9
+
10
+ 它不等于 `loom-pre-review`,也不替代 `loom-merge-ready`:
11
+
12
+ - `loom-pre-review` 负责进入 review 前的统一机械预检
13
+ - `loom-review` 负责执行正式语义审查并产出审查结论
14
+ - `loom-merge-ready` 负责 merge 前统一放行聚合
15
+
16
+ 对执行者来说,正式 review 的首层入口仍是 `loom-review` 这个场景 skill。repo-local 自动化、验证、调试和宿主编排可以统一调用 repo-local `loom CLI`,但这不替代场景 skill 的用户入口,也不改变 review / merge-ready 的边界。
17
+
18
+ ## 1. 使用时机
19
+
20
+ 当任务满足以下任一条件时,进入 `loom-review`:
21
+
22
+ - 明确要求正式 review
23
+ - 明确要求语义审查或审查结论
24
+ - 明确要求输出 findings、风险和是否通过的判断
25
+ - 明确要求在 pre-review 通过后进入审查执行
26
+
27
+ 如果任务其实是在做初始化、恢复执行、review 前预检、handoff、retire 或 merge-ready,应回到 root route matrix,让 `loom-init` 路由到对应场景:
28
+
29
+ - [references/route-matrix.md](references/route-matrix.md)
30
+
31
+ ## 2. 固定入口
32
+
33
+ 统一入口固定为:
34
+
35
+ - `loom flow review --target <repo> [--item <id>]`
36
+ - `loom review run --target <repo> [--item <id>]`
37
+ - `loom review record --target <repo> [--item <id>] --decision <allow|block|fallback> --kind <general_review|code_review|spec_review> --summary <text> --reviewer <id>`
38
+
39
+ 补充约束:
40
+
41
+ - 若需要写入结构化 findings / disposition,使用 `--findings-file <path>`
42
+ - `--blocking-issue` / `--follow-up` 仅保留兼容 authored 入口,不得与 `--findings-file` 混用
43
+ - 无论通过哪种入口,最终都只允许写回单一 `review_entry` 指向的 review record
44
+
45
+ 这个 skill 先用 `flow review` 读取正式 review 的机械基线,再用 `review run` 触发默认 Codex reviewer 并生成 Loom-normalized findings,最后用 `review record` 把审查结论写成可消费载体。
46
+
47
+ 安装态或 repo-local 开发态可以把这些 `loom ...` 动作映射到底层 `scripts/...` 或共享 runtime carrier;但 `loom-review` 自身的场景合同、进入时机和输出责任保持不变。
48
+
49
+ ## 3. 固定编排
50
+
51
+ `loom-review` 固定按以下顺序编排:
52
+
53
+ 1. 运行 `flow review`,确认当前事项是否具备进入正式审查的最小条件
54
+ 2. 若 `flow review` 非 `pass`,直接返回 `block` 或 `fallback`,不伪造审查结论
55
+ 3. 运行 `review run`,用默认 Codex adapter 执行 formal review,并把 raw output 收敛为 Loom evidence 与 normalized findings
56
+ 4. 若 `review run` fail-closed,显式回到 manual review 写回同一 `review record`
57
+ 5. 用 `review record` 写入正式 review 结论,让 merge checkpoint 可机械消费
58
+
59
+ 这个 skill 不做以下事情:
60
+
61
+ - 不替代 pre-review 预检
62
+ - 不替代 merge-ready 放行判断
63
+ - 不直接执行 merge 或平台动作
64
+ - 不回写 recovery entry、status surface 或其他 authored 真相载体
65
+ - 不跳过 review record,直接把口头结论交给 merge checkpoint
66
+ - 不把 engine raw output 升级成第二 authored truth
67
+
68
+ ## 4. 输出要求
69
+
70
+ 输出必须是统一 review 摘要 JSON,至少要让执行者能读出:
71
+
72
+ - 当前事项是什么
73
+ - review 机械基线结果
74
+ - build checkpoint 是否允许进入正式审查
75
+ - review artifact 的定位与已记录结论
76
+ - 默认 engine 的执行结果、evidence 定位与 fail-closed 原因
77
+ - manual review 的回退写回入口
78
+ - review record 中的权威 findings / disposition 摘要
79
+ - 审查结论(`allow` / `block` / `fallback`)
80
+ - 若当前不能继续,应回退到哪里
81
+
82
+ ## 5. 完成标准
83
+
84
+ 只有当以下条件同时满足时,`loom-review` 才算完成:
85
+
86
+ - 显式调用 `loom-review` 与 root 隐式路由都能稳定命中
87
+ - 审查执行严格以 `flow review -> review run -> review record` 为前置,而不是绕过预检
88
+ - 输出 JSON 与 review record 都能直接支撑 merge checkpoint 消费
89
+ - skill 不创建第二 authored 真相源,不替代 merge-ready 聚合
90
+ - review/disposition contract 只扩展 review record 内部字段,不新增第二 artifact 或新状态机
91
+
92
+ 输入信号与输出合同见:
93
+
94
+ - [references/input-signals.md](references/input-signals.md)
95
+ - [references/output-contract.md](references/output-contract.md)
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Loom Review"
3
+ short_description: "正式 review 语义审查入口"
4
+ default_prompt: "先运行 Loom 的 flow review 读取正式审查基线;若基线通过,再运行 review run 触发默认 Codex reviewer 并产出结构化 findings,最后用 review record 写入单一 review record。"