@mc-and-his-agents/loom-installer 0.1.113 → 0.1.115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/payload/manifest.json +421 -421
- package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/plugin/loom/skills/loom-adopt/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/plugin/loom/skills/loom-build/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/plugin/loom/skills/loom-build/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/plugin/loom/skills/loom-build/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/plugin/loom/skills/loom-handoff/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/plugin/loom/skills/loom-init/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/plugin/loom/skills/loom-init/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/plugin/loom/skills/loom-init/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/plugin/loom/skills/loom-init/SKILL.md +5 -3
- package/payload/plugin/loom/skills/loom-init/references/intake-signals.md +5 -5
- package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/plugin/loom/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/plugin/loom/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/plugin/loom/skills/loom-resume/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/plugin/loom/skills/loom-resume/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/plugin/loom/skills/loom-resume/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/plugin/loom/skills/loom-retire/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/plugin/loom/skills/loom-retire/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/plugin/loom/skills/loom-retire/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/plugin/loom/skills/loom-review/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/plugin/loom/skills/loom-review/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/plugin/loom/skills/loom-review/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/plugin/loom/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/plugin/loom/skills/loom-story/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/plugin/loom/skills/loom-story/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/plugin/loom/skills/loom-story/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/plugin/loom/skills/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/plugin/loom/skills/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/plugin/loom/skills/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/plugin/loom/skills/shared/scripts/governance_surface.py +0 -3
- package/payload/plugin/loom/skills/shared/scripts/loom_check.py +130 -2
- package/payload/plugin/loom/skills/shared/scripts/loom_flow.py +0 -52
- package/payload/plugin/loom/skills/shared/scripts/loom_init.py +105 -103
- package/payload/skills/loom-adopt/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/skills/loom-adopt/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/skills/loom-adopt/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/skills/loom-adopt/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/skills/loom-adopt/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/skills/loom-build/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/skills/loom-build/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/skills/loom-build/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/skills/loom-build/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/skills/loom-build/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/skills/loom-build/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/skills/loom-build/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/skills/loom-build/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/skills/loom-build/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/skills/loom-handoff/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/skills/loom-handoff/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/skills/loom-handoff/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/skills/loom-handoff/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/skills/loom-handoff/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/skills/loom-init/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/skills/loom-init/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/skills/loom-init/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/skills/loom-init/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/skills/loom-init/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/skills/loom-init/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/skills/loom-init/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/skills/loom-init/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/skills/loom-init/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/skills/loom-init/SKILL.md +5 -3
- package/payload/skills/loom-init/references/intake-signals.md +5 -5
- package/payload/skills/loom-merge-ready/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/skills/loom-merge-ready/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/skills/loom-merge-ready/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/skills/loom-pre-review/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/skills/loom-pre-review/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/skills/loom-pre-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/skills/loom-pre-review/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/skills/loom-pre-review/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/skills/loom-resume/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/skills/loom-resume/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/skills/loom-resume/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/skills/loom-resume/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/skills/loom-resume/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/skills/loom-resume/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/skills/loom-resume/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/skills/loom-resume/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/skills/loom-resume/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/skills/loom-retire/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/skills/loom-retire/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/skills/loom-retire/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/skills/loom-retire/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/skills/loom-retire/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/skills/loom-retire/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/skills/loom-retire/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/skills/loom-retire/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/skills/loom-retire/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/skills/loom-review/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/skills/loom-review/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/skills/loom-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/skills/loom-review/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/skills/loom-review/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/skills/loom-review/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/skills/loom-review/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/skills/loom-review/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/skills/loom-review/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/skills/loom-spec-review/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/skills/loom-spec-review/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/skills/loom-spec-review/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/skills/loom-spec-review/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/skills/loom-spec-review/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/skills/loom-spec-review/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_init.py +105 -103
- package/payload/skills/loom-story/.loom-runtime/loom-init/SKILL.md +5 -3
- package/payload/skills/loom-story/.loom-runtime/loom-init/references/intake-signals.md +5 -5
- package/payload/skills/loom-story/.loom-runtime/shared/references/adoption/lightweight-retrofit-default.md +11 -3
- package/payload/skills/loom-story/.loom-runtime/shared/references/adoption/repo-companion-contract.md +4 -7
- package/payload/skills/loom-story/.loom-runtime/shared/references/adoption/target-repo-version-contract.md +3 -1
- package/payload/skills/loom-story/.loom-runtime/shared/scripts/governance_surface.py +0 -3
- package/payload/skills/loom-story/.loom-runtime/shared/scripts/loom_check.py +130 -2
- package/payload/skills/loom-story/.loom-runtime/shared/scripts/loom_flow.py +0 -52
- package/payload/skills/loom-story/.loom-runtime/shared/scripts/loom_init.py +105 -103
|
@@ -1033,9 +1033,9 @@ def deferred_capabilities(scenario: str, adoption_path: str, profile: str) -> li
|
|
|
1033
1033
|
if profile == "light-governance":
|
|
1034
1034
|
return [
|
|
1035
1035
|
{
|
|
1036
|
-
"name": "loom-owned-work-item-progress-status",
|
|
1037
|
-
"reason": "light-governance keeps first-round adoption to a companion, review
|
|
1038
|
-
"upgrade_trigger": "the repo explicitly opts into execution-control or needs Loom-owned recovery
|
|
1036
|
+
"name": "loom-owned-work-item-progress-status-spec",
|
|
1037
|
+
"reason": "light-governance keeps first-round adoption to a companion, review guidance, and PR-template loop without Loom-owned execution carriers",
|
|
1038
|
+
"upgrade_trigger": "the repo explicitly opts into execution-control or needs Loom-owned work item, recovery, status, or spec carriers",
|
|
1039
1039
|
},
|
|
1040
1040
|
{
|
|
1041
1041
|
"name": "host-gate-merge-closeout-control",
|
|
@@ -1126,13 +1126,6 @@ def profile_common_artifacts() -> list[dict[str, str]]:
|
|
|
1126
1126
|
{"path": ".loom/companion/review.md", "kind": "repo-companion-doc", "source": "generated"},
|
|
1127
1127
|
{"path": ".loom/companion/merge-ready.md", "kind": "repo-companion-doc", "source": "generated"},
|
|
1128
1128
|
{"path": ".loom/companion/closeout.md", "kind": "repo-companion-doc", "source": "generated"},
|
|
1129
|
-
{"path": ".loom/companion/releases/changelog.md", "kind": "repo-release-surface", "source": "generated"},
|
|
1130
|
-
{"path": ".loom/companion/releases/release-notes.md", "kind": "repo-release-surface", "source": "generated"},
|
|
1131
|
-
{"path": ".loom/companion/releases/migration-notes.md", "kind": "repo-release-surface", "source": "generated"},
|
|
1132
|
-
{"path": ".loom/companion/releases/rollback.md", "kind": "repo-release-surface", "source": "generated"},
|
|
1133
|
-
{"path": ".loom/companion/releases/catalog.json", "kind": "repo-release-surface", "source": "generated"},
|
|
1134
|
-
{"path": ".loom/companion/releases/current.json", "kind": "repo-release-surface", "source": "generated"},
|
|
1135
|
-
{"path": ".loom/companion/releases/status.json", "kind": "repo-release-surface", "source": "generated"},
|
|
1136
1129
|
{"path": ".loom/shadow/admission-loom.json", "kind": "shadow-parity-surface", "source": "generated"},
|
|
1137
1130
|
{"path": ".loom/shadow/admission-repo.json", "kind": "shadow-parity-surface", "source": "generated"},
|
|
1138
1131
|
{"path": ".loom/shadow/review-loom.json", "kind": "shadow-parity-surface", "source": "generated"},
|
|
@@ -1162,13 +1155,6 @@ def profile_light_artifacts(target_root: Path) -> list[dict[str, str]]:
|
|
|
1162
1155
|
[
|
|
1163
1156
|
{"path": ".loom/reviews/INIT-0001.json", "kind": "review-entry", "source": "generated"},
|
|
1164
1157
|
{"path": ".loom/reviews/INIT-0001.spec.json", "kind": "review-entry", "source": "generated"},
|
|
1165
|
-
{"path": ".loom/specs/INIT-0001/spec.md", "kind": "spec", "source": "skills/shared/assets/templates/scaffold/spec.md"},
|
|
1166
|
-
{"path": ".loom/specs/INIT-0001/plan.md", "kind": "plan", "source": "skills/shared/assets/templates/scaffold/plan.md"},
|
|
1167
|
-
{
|
|
1168
|
-
"path": ".loom/specs/INIT-0001/implementation-contract.md",
|
|
1169
|
-
"kind": "implementation-contract",
|
|
1170
|
-
"source": "skills/shared/assets/templates/scaffold/implementation-contract.md",
|
|
1171
|
-
},
|
|
1172
1158
|
]
|
|
1173
1159
|
)
|
|
1174
1160
|
return artifacts
|
|
@@ -1181,6 +1167,13 @@ def profile_execution_artifacts(target_root: Path) -> list[dict[str, str]]:
|
|
|
1181
1167
|
{"path": ".loom/work-items/INIT-0001.md", "kind": "work-item", "source": "generated"},
|
|
1182
1168
|
{"path": ".loom/progress/INIT-0001.md", "kind": "progress", "source": "generated"},
|
|
1183
1169
|
{"path": ".loom/status/current.md", "kind": "status-surface", "source": "generated"},
|
|
1170
|
+
{"path": ".loom/specs/INIT-0001/spec.md", "kind": "spec", "source": "skills/shared/assets/templates/scaffold/spec.md"},
|
|
1171
|
+
{"path": ".loom/specs/INIT-0001/plan.md", "kind": "plan", "source": "skills/shared/assets/templates/scaffold/plan.md"},
|
|
1172
|
+
{
|
|
1173
|
+
"path": ".loom/specs/INIT-0001/implementation-contract.md",
|
|
1174
|
+
"kind": "implementation-contract",
|
|
1175
|
+
"source": "skills/shared/assets/templates/scaffold/implementation-contract.md",
|
|
1176
|
+
},
|
|
1184
1177
|
]
|
|
1185
1178
|
)
|
|
1186
1179
|
return artifacts
|
|
@@ -1242,6 +1235,23 @@ def initial_work_items(
|
|
|
1242
1235
|
}
|
|
1243
1236
|
]
|
|
1244
1237
|
artifacts = artifact_paths(initial_artifacts(target_root, install_pr_template, adoption_path, profile))
|
|
1238
|
+
if profile == "light-governance":
|
|
1239
|
+
return [
|
|
1240
|
+
{
|
|
1241
|
+
"id": WORK_ITEM_ID,
|
|
1242
|
+
"goal": "Establish the first lightweight Loom governance loop for this repository",
|
|
1243
|
+
"scope": "Create companion, review guidance, and PR template surfaces without Loom-owned execution carriers",
|
|
1244
|
+
"execution_path": "adoption/light-governance",
|
|
1245
|
+
"workspace_entry": ".",
|
|
1246
|
+
"recovery_entry": "checkpoint-lite issue or PR notes",
|
|
1247
|
+
"review_entry": ".loom/reviews/INIT-0001.json",
|
|
1248
|
+
"validation_entry": "python3 .loom/bin/loom_init.py verify --target .",
|
|
1249
|
+
"artifacts": artifacts,
|
|
1250
|
+
"closing_condition": "The companion entry, review guidance, PR template, and bootstrap metadata are readable without generated work/progress/status/spec carriers",
|
|
1251
|
+
"post_build_continuation": "Upgrade to execution-control only when the repo needs Loom-owned work item, recovery, status, or spec carriers",
|
|
1252
|
+
"owner_for_checkpoint_lite": "repository owner or current lightweight adoption operator",
|
|
1253
|
+
}
|
|
1254
|
+
]
|
|
1245
1255
|
return [
|
|
1246
1256
|
{
|
|
1247
1257
|
"id": WORK_ITEM_ID,
|
|
@@ -1346,13 +1356,6 @@ def planned_write_targets(result: dict[str, object], adoption_path: str) -> list
|
|
|
1346
1356
|
(".loom/companion/review.md", "repo-companion-doc"),
|
|
1347
1357
|
(".loom/companion/merge-ready.md", "repo-companion-doc"),
|
|
1348
1358
|
(".loom/companion/closeout.md", "repo-companion-doc"),
|
|
1349
|
-
(".loom/companion/releases/changelog.md", "repo-release-surface"),
|
|
1350
|
-
(".loom/companion/releases/release-notes.md", "repo-release-surface"),
|
|
1351
|
-
(".loom/companion/releases/migration-notes.md", "repo-release-surface"),
|
|
1352
|
-
(".loom/companion/releases/rollback.md", "repo-release-surface"),
|
|
1353
|
-
(".loom/companion/releases/catalog.json", "repo-release-surface"),
|
|
1354
|
-
(".loom/companion/releases/current.json", "repo-release-surface"),
|
|
1355
|
-
(".loom/companion/releases/status.json", "repo-release-surface"),
|
|
1356
1359
|
(".loom/shadow/admission-loom.json", "shadow-parity-surface"),
|
|
1357
1360
|
(".loom/shadow/admission-repo.json", "shadow-parity-surface"),
|
|
1358
1361
|
(".loom/shadow/review-loom.json", "shadow-parity-surface"),
|
|
@@ -1368,6 +1371,10 @@ def planned_write_targets(result: dict[str, object], adoption_path: str) -> list
|
|
|
1368
1371
|
|
|
1369
1372
|
|
|
1370
1373
|
def intentionally_absent_targets(adoption_path: str, profile: str) -> list[dict[str, str]]:
|
|
1374
|
+
release_target_absent = {
|
|
1375
|
+
"path": ".loom/companion/releases/**",
|
|
1376
|
+
"reason": "release target truth stays absent until the repo declares release target intent",
|
|
1377
|
+
}
|
|
1371
1378
|
if profile == "attach-only":
|
|
1372
1379
|
return [
|
|
1373
1380
|
{"path": ".loom/work-items/**", "reason": "attach-only preserves host-owned work item truth"},
|
|
@@ -1375,18 +1382,27 @@ def intentionally_absent_targets(adoption_path: str, profile: str) -> list[dict[
|
|
|
1375
1382
|
{"path": ".loom/status/current.md", "reason": "attach-only does not author Loom status truth"},
|
|
1376
1383
|
{"path": ".loom/reviews/**", "reason": "attach-only preserves host-owned review truth"},
|
|
1377
1384
|
{"path": ".loom/specs/**", "reason": "attach-only does not author Loom execution specs"},
|
|
1385
|
+
release_target_absent,
|
|
1378
1386
|
]
|
|
1379
1387
|
if adoption_path == "defer":
|
|
1380
|
-
return [
|
|
1388
|
+
return [
|
|
1389
|
+
{"path": "*", "reason": "observe-only intent is read-only"},
|
|
1390
|
+
release_target_absent,
|
|
1391
|
+
]
|
|
1381
1392
|
if adoption_path == "skill-install-only":
|
|
1382
|
-
return [
|
|
1393
|
+
return [
|
|
1394
|
+
{"path": ".loom/work-items/**", "reason": "skill install does not adopt execution governance"},
|
|
1395
|
+
release_target_absent,
|
|
1396
|
+
]
|
|
1383
1397
|
if profile == "light-governance":
|
|
1384
1398
|
return [
|
|
1385
1399
|
{"path": ".loom/work-items/**", "reason": "light-governance does not author Loom work item truth"},
|
|
1386
1400
|
{"path": ".loom/progress/**", "reason": "light-governance does not author Loom recovery truth"},
|
|
1387
1401
|
{"path": ".loom/status/current.md", "reason": "light-governance does not author Loom status truth"},
|
|
1402
|
+
{"path": ".loom/specs/**", "reason": "light-governance keeps formal Loom specs deferred until execution-control"},
|
|
1403
|
+
release_target_absent,
|
|
1388
1404
|
]
|
|
1389
|
-
return []
|
|
1405
|
+
return [release_target_absent]
|
|
1390
1406
|
|
|
1391
1407
|
|
|
1392
1408
|
def risk_summary(adoption_path: str, intake: dict[str, object], planned: list[dict[str, object]]) -> dict[str, object]:
|
|
@@ -1476,7 +1492,7 @@ def build_result(target_root: Path, scenario: str, intake: dict[str, object], in
|
|
|
1476
1492
|
"observe-only": "read-only repository observation; no Loom adoption carriers are written",
|
|
1477
1493
|
"skill-install-only": "skill/runtime installation intent without repository governance adoption carriers",
|
|
1478
1494
|
"attach-only": "companion/read-surface attachment that preserves repo-owned execution truth",
|
|
1479
|
-
"light-governance": "companion, review
|
|
1495
|
+
"light-governance": "companion, review guidance, and PR-template loop without Loom-owned work item/progress/status/spec carriers",
|
|
1480
1496
|
"execution-control": "Loom-owned work item, progress, review, status, and spec carriers",
|
|
1481
1497
|
"strong-governance": "execution-control surface prepared for host gates, required checks, merge, and closeout consumption",
|
|
1482
1498
|
}[profile],
|
|
@@ -1539,7 +1555,7 @@ def build_result(target_root: Path, scenario: str, intake: dict[str, object], in
|
|
|
1539
1555
|
]
|
|
1540
1556
|
if attach_only
|
|
1541
1557
|
else [
|
|
1542
|
-
"admission checkpoint confirms the companion entry, review
|
|
1558
|
+
"admission checkpoint confirms the companion entry, review guidance, bootstrap metadata, and PR template are readable",
|
|
1543
1559
|
"build checkpoint confirms generated light-governance surfaces are internally consistent",
|
|
1544
1560
|
"merge checkpoint remains repo-owned until the intent upgrades to execution-control or strong-governance",
|
|
1545
1561
|
]
|
|
@@ -1553,7 +1569,7 @@ def build_result(target_root: Path, scenario: str, intake: dict[str, object], in
|
|
|
1553
1569
|
"clean_state": (
|
|
1554
1570
|
"all generated attach-only Loom artifacts are readable, verified, and do not introduce Loom-authored work/progress/status/review/spec truth carriers"
|
|
1555
1571
|
if attach_only
|
|
1556
|
-
else "all generated light-governance artifacts are readable, verified, and do not introduce Loom-owned work/progress/status carriers"
|
|
1572
|
+
else "all generated light-governance artifacts are readable, verified, and do not introduce Loom-owned work/progress/status/spec carriers"
|
|
1557
1573
|
if profile == "light-governance"
|
|
1558
1574
|
else "all generated Loom artifacts are readable, verified, and free of conflicting duplicates"
|
|
1559
1575
|
),
|
|
@@ -1566,7 +1582,7 @@ def build_result(target_root: Path, scenario: str, intake: dict[str, object], in
|
|
|
1566
1582
|
if attach_only
|
|
1567
1583
|
else [
|
|
1568
1584
|
"the target repo has a readable Loom companion entry",
|
|
1569
|
-
"the review
|
|
1585
|
+
"the companion review guidance, lightweight review placeholders, and PR template exist",
|
|
1570
1586
|
"the bootstrap manifest and init-result are verifiable",
|
|
1571
1587
|
]
|
|
1572
1588
|
if profile == "light-governance"
|
|
@@ -1736,7 +1752,7 @@ def render_loom_readme(result: dict[str, object]) -> str:
|
|
|
1736
1752
|
path_lines = (
|
|
1737
1753
|
"- Repo companion entry: `.loom/companion/README.md`\n"
|
|
1738
1754
|
"- Review record: `.loom/reviews/INIT-0001.json`\n"
|
|
1739
|
-
"- Spec
|
|
1755
|
+
"- Spec-review guidance: `.loom/reviews/INIT-0001.spec.json`\n"
|
|
1740
1756
|
)
|
|
1741
1757
|
else:
|
|
1742
1758
|
path_lines = (
|
|
@@ -1852,12 +1868,6 @@ def repo_interface_payload(profile_name: str = "execution-control") -> dict[str,
|
|
|
1852
1868
|
"dynamic_tool_locators": [],
|
|
1853
1869
|
"policy_locators": [],
|
|
1854
1870
|
"hook_locators": [],
|
|
1855
|
-
"release_targets": {
|
|
1856
|
-
"catalog_locator": ".loom/companion/releases/catalog.json",
|
|
1857
|
-
"current_target_locator": ".loom/companion/releases/current.json",
|
|
1858
|
-
"enforcement": "blocking",
|
|
1859
|
-
"status_locator": ".loom/companion/releases/status.json",
|
|
1860
|
-
},
|
|
1861
1871
|
}
|
|
1862
1872
|
if profile_name == "attach-only":
|
|
1863
1873
|
payload["host_truth_locators"] = ATTACH_ONLY_HOST_TRUTH_LOCATORS
|
|
@@ -1972,6 +1982,13 @@ def render_progress(result: dict[str, object]) -> str:
|
|
|
1972
1982
|
|
|
1973
1983
|
def render_review_entry(result: dict[str, object]) -> str:
|
|
1974
1984
|
item = result["initial_work_items"][0]
|
|
1985
|
+
profile = result.get("scaffold_profile")
|
|
1986
|
+
profile_name = str(profile.get("name")) if isinstance(profile, dict) else "execution-control"
|
|
1987
|
+
validation_summary = (
|
|
1988
|
+
"Bootstrap manifest exists; init-result JSON can be read mechanically; companion review guidance and PR template artifacts exist."
|
|
1989
|
+
if profile_name == "light-governance"
|
|
1990
|
+
else "Bootstrap manifest exists; init-result JSON can be read mechanically; the first work item, status surface, and spec/plan artifacts exist."
|
|
1991
|
+
)
|
|
1975
1992
|
payload = {
|
|
1976
1993
|
"schema_version": "loom-review/v1",
|
|
1977
1994
|
"item_id": item["id"],
|
|
@@ -1980,7 +1997,7 @@ def render_review_entry(result: dict[str, object]) -> str:
|
|
|
1980
1997
|
"summary": "Bootstrap has not entered formal review yet.",
|
|
1981
1998
|
"reviewer": "not yet assigned",
|
|
1982
1999
|
"reviewed_head": "bootstrap-placeholder",
|
|
1983
|
-
"reviewed_validation_summary":
|
|
2000
|
+
"reviewed_validation_summary": validation_summary,
|
|
1984
2001
|
"fallback_to": "admission",
|
|
1985
2002
|
"blocking_issues": [
|
|
1986
2003
|
"Formal review starts only after downstream work replaces the bootstrap placeholder item."
|
|
@@ -1994,6 +2011,23 @@ def render_review_entry(result: dict[str, object]) -> str:
|
|
|
1994
2011
|
|
|
1995
2012
|
def render_spec_review_entry(result: dict[str, object]) -> str:
|
|
1996
2013
|
item = result["initial_work_items"][0]
|
|
2014
|
+
profile = result.get("scaffold_profile")
|
|
2015
|
+
profile_name = str(profile.get("name")) if isinstance(profile, dict) else "execution-control"
|
|
2016
|
+
validation_summary = (
|
|
2017
|
+
"Bootstrap manifest exists; init-result JSON can be read mechanically; lightweight spec review is represented as review guidance until execution-control creates formal spec carriers."
|
|
2018
|
+
if profile_name == "light-governance"
|
|
2019
|
+
else "Bootstrap manifest exists; init-result JSON can be read mechanically; the first work item, status surface, and spec/plan artifacts exist."
|
|
2020
|
+
)
|
|
2021
|
+
blocking_issue = (
|
|
2022
|
+
"Spec review remains guidance-only until the repo uses a repo-owned spec locator or upgrades to execution-control."
|
|
2023
|
+
if profile_name == "light-governance"
|
|
2024
|
+
else "Spec gate remains open until the formal spec path receives its own review record."
|
|
2025
|
+
)
|
|
2026
|
+
follow_up = (
|
|
2027
|
+
"Keep spec review guidance tied to repo-owned locators, or upgrade to execution-control before creating formal Loom spec carriers."
|
|
2028
|
+
if profile_name == "light-governance"
|
|
2029
|
+
else "Record a spec_review decision before implementation review or merge-ready consumes the formal spec path."
|
|
2030
|
+
)
|
|
1997
2031
|
payload = {
|
|
1998
2032
|
"schema_version": "loom-review/v1",
|
|
1999
2033
|
"item_id": item["id"],
|
|
@@ -2002,14 +2036,10 @@ def render_spec_review_entry(result: dict[str, object]) -> str:
|
|
|
2002
2036
|
"summary": "Formal spec review has not been completed yet.",
|
|
2003
2037
|
"reviewer": "not yet assigned",
|
|
2004
2038
|
"reviewed_head": "bootstrap-placeholder",
|
|
2005
|
-
"reviewed_validation_summary":
|
|
2039
|
+
"reviewed_validation_summary": validation_summary,
|
|
2006
2040
|
"fallback_to": "admission",
|
|
2007
|
-
"blocking_issues": [
|
|
2008
|
-
|
|
2009
|
-
],
|
|
2010
|
-
"follow_ups": [
|
|
2011
|
-
"Record a spec_review decision before implementation review or merge-ready consumes the formal spec path."
|
|
2012
|
-
],
|
|
2041
|
+
"blocking_issues": [blocking_issue],
|
|
2042
|
+
"follow_ups": [follow_up],
|
|
2013
2043
|
}
|
|
2014
2044
|
return json.dumps(payload, ensure_ascii=False, indent=2) + "\n"
|
|
2015
2045
|
|
|
@@ -2138,6 +2168,7 @@ def scaffold_target(
|
|
|
2138
2168
|
profile_name = str(profile.get("name")) if isinstance(profile, dict) else "execution-control"
|
|
2139
2169
|
writes_light_loop = profile_name in {"light-governance", "execution-control", "strong-governance"}
|
|
2140
2170
|
writes_work_item_carriers = profile_has_work_item_carriers(profile_name)
|
|
2171
|
+
writes_formal_spec_suite = writes_work_item_carriers
|
|
2141
2172
|
if profile_name == "attach-only":
|
|
2142
2173
|
forbidden_errors = attach_only_forbidden_carrier_errors(target_root, result)
|
|
2143
2174
|
if forbidden_errors:
|
|
@@ -2157,59 +2188,6 @@ def scaffold_target(
|
|
|
2157
2188
|
(target_root / ".loom/companion/review.md", render_companion_review(), "text"),
|
|
2158
2189
|
(target_root / ".loom/companion/merge-ready.md", render_companion_merge_ready(), "text"),
|
|
2159
2190
|
(target_root / ".loom/companion/closeout.md", render_companion_closeout(), "text"),
|
|
2160
|
-
(target_root / ".loom/companion/releases/changelog.md", "# Changelog\n\n- Bootstrap release intake example.\n", "text"),
|
|
2161
|
-
(target_root / ".loom/companion/releases/release-notes.md", "# Release Notes\n\n- Bootstrap release target is ready for Loom-derived status consumption.\n", "text"),
|
|
2162
|
-
(target_root / ".loom/companion/releases/migration-notes.md", "# Migration Notes\n\n- not_applicable\n", "text"),
|
|
2163
|
-
(target_root / ".loom/companion/releases/rollback.md", "# Rollback Basis\n\n- Revert the companion-owned release target declaration and rerun Loom checks.\n", "text"),
|
|
2164
|
-
(
|
|
2165
|
-
target_root / ".loom/companion/releases/catalog.json",
|
|
2166
|
-
{
|
|
2167
|
-
"schema_version": "loom-target-release-catalog/v1",
|
|
2168
|
-
"current_release_id": "bootstrap-v0.1.0",
|
|
2169
|
-
"releases": [{"release_id": "bootstrap-v0.1.0", "locator": ".loom/companion/releases/current.json"}],
|
|
2170
|
-
},
|
|
2171
|
-
"json",
|
|
2172
|
-
),
|
|
2173
|
-
(
|
|
2174
|
-
target_root / ".loom/companion/releases/current.json",
|
|
2175
|
-
{
|
|
2176
|
-
"schema_version": "loom-target-release/v1",
|
|
2177
|
-
"release_id": "bootstrap-v0.1.0",
|
|
2178
|
-
"display_name": "Bootstrap v0.1.0",
|
|
2179
|
-
"target_branch": "main",
|
|
2180
|
-
"release_goal": "Bootstrap the first executable Loom path for this repository.",
|
|
2181
|
-
"status": "unreleased",
|
|
2182
|
-
"included_scope": {
|
|
2183
|
-
"phase": [{"id": "bootstrap-phase", "locator": ".loom/companion/checkpoints.md", "delivery_status": "planned"}],
|
|
2184
|
-
"fr": [],
|
|
2185
|
-
"work_item": [{"id": "INIT-0001", "locator": ".loom/work-items/INIT-0001.md", "delivery_status": "unmerged"}],
|
|
2186
|
-
"implementation_pr": [],
|
|
2187
|
-
"merge_commit": [],
|
|
2188
|
-
},
|
|
2189
|
-
"evidence": {
|
|
2190
|
-
"changelog_locator": ".loom/companion/releases/changelog.md",
|
|
2191
|
-
"release_notes_locator": ".loom/companion/releases/release-notes.md",
|
|
2192
|
-
"migration_notes_locator": ".loom/companion/releases/migration-notes.md",
|
|
2193
|
-
"tag_or_artifact_locator": ".loom/companion/README.md",
|
|
2194
|
-
"rollback_basis_locator": ".loom/companion/releases/rollback.md",
|
|
2195
|
-
},
|
|
2196
|
-
"authority": {
|
|
2197
|
-
"owner": "repo-companion",
|
|
2198
|
-
"source_kind": "repo_owned_locator",
|
|
2199
|
-
"source_locator": ".loom/companion/releases/current.json",
|
|
2200
|
-
},
|
|
2201
|
-
},
|
|
2202
|
-
"json",
|
|
2203
|
-
),
|
|
2204
|
-
(
|
|
2205
|
-
target_root / ".loom/companion/releases/status.json",
|
|
2206
|
-
{
|
|
2207
|
-
"schema_version": "loom-target-release-status/v1",
|
|
2208
|
-
"result": "pass",
|
|
2209
|
-
"summary": "repo-owned release status example is readable.",
|
|
2210
|
-
},
|
|
2211
|
-
"json",
|
|
2212
|
-
),
|
|
2213
2191
|
]
|
|
2214
2192
|
if writes_light_loop:
|
|
2215
2193
|
writes.extend(
|
|
@@ -2259,7 +2237,7 @@ def scaffold_target(
|
|
|
2259
2237
|
if copy_file(source, destination, force=force):
|
|
2260
2238
|
written += 1
|
|
2261
2239
|
touched.append(str(destination.relative_to(target_root)))
|
|
2262
|
-
if
|
|
2240
|
+
if writes_formal_spec_suite:
|
|
2263
2241
|
for source, destination in (
|
|
2264
2242
|
(shared_asset(__file__, "templates/scaffold/spec.md"), target_root / ".loom/specs/INIT-0001/spec.md"),
|
|
2265
2243
|
(shared_asset(__file__, "templates/scaffold/plan.md"), target_root / ".loom/specs/INIT-0001/plan.md"),
|
|
@@ -2420,9 +2398,33 @@ def verify_target(target_root: Path, output_path: Path) -> list[str]:
|
|
|
2420
2398
|
for artifact in result.get("initial_artifacts", [])
|
|
2421
2399
|
if isinstance(artifact, dict) and isinstance(artifact.get("path"), str)
|
|
2422
2400
|
}
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2401
|
+
planned_generated = {
|
|
2402
|
+
item.get("path")
|
|
2403
|
+
for item in result.get("planned_writes", [])
|
|
2404
|
+
if isinstance(item, dict) and isinstance(item.get("path"), str)
|
|
2405
|
+
}
|
|
2406
|
+
forbidden_patterns = (
|
|
2407
|
+
".loom/work-items/**",
|
|
2408
|
+
".loom/progress/**",
|
|
2409
|
+
".loom/status/current.md",
|
|
2410
|
+
".loom/specs/**",
|
|
2411
|
+
)
|
|
2412
|
+
for collection_name, paths in (("initial_artifacts", declared_generated), ("planned_writes", planned_generated)):
|
|
2413
|
+
for path in paths:
|
|
2414
|
+
if not isinstance(path, str):
|
|
2415
|
+
continue
|
|
2416
|
+
if any(matches_forbidden_authored_carrier(path, pattern) for pattern in forbidden_patterns):
|
|
2417
|
+
errors.append(f"light-governance bootstrap must not declare execution-control carrier `{path}` in {collection_name}")
|
|
2418
|
+
for path in (
|
|
2419
|
+
".loom/work-items/INIT-0001.md",
|
|
2420
|
+
".loom/progress/INIT-0001.md",
|
|
2421
|
+
".loom/status/current.md",
|
|
2422
|
+
".loom/specs/INIT-0001/spec.md",
|
|
2423
|
+
".loom/specs/INIT-0001/plan.md",
|
|
2424
|
+
".loom/specs/INIT-0001/implementation-contract.md",
|
|
2425
|
+
):
|
|
2426
|
+
if (target_root / path).exists():
|
|
2427
|
+
errors.append(f"light-governance bootstrap must not leave execution-control carrier on disk: {path}")
|
|
2426
2428
|
|
|
2427
2429
|
for relative in required_paths:
|
|
2428
2430
|
if not (target_root / relative).exists():
|