@mc-and-his-agents/loom-installer 0.1.19 → 0.1.21

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 (32) hide show
  1. package/package.json +1 -1
  2. package/payload/manifest.json +52 -52
  3. package/payload/plugin/loom/skills/shared/scripts/loom_check.py +6 -2
  4. package/payload/plugin/loom/skills/shared/scripts/loom_init.py +5 -0
  5. package/payload/plugin/loom/skills/shared/scripts/runtime_state.py +2 -2
  6. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/loom_check.py +6 -2
  7. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/loom_init.py +5 -0
  8. package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/runtime_state.py +2 -2
  9. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/loom_check.py +6 -2
  10. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/loom_init.py +5 -0
  11. package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/runtime_state.py +2 -2
  12. package/payload/skills/loom-init/.loom-runtime/shared/scripts/loom_check.py +6 -2
  13. package/payload/skills/loom-init/.loom-runtime/shared/scripts/loom_init.py +5 -0
  14. package/payload/skills/loom-init/.loom-runtime/shared/scripts/runtime_state.py +2 -2
  15. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_check.py +6 -2
  16. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_init.py +5 -0
  17. package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/runtime_state.py +2 -2
  18. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_check.py +6 -2
  19. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_init.py +5 -0
  20. package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/runtime_state.py +2 -2
  21. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/loom_check.py +6 -2
  22. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/loom_init.py +5 -0
  23. package/payload/skills/loom-resume/.loom-runtime/shared/scripts/runtime_state.py +2 -2
  24. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/loom_check.py +6 -2
  25. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/loom_init.py +5 -0
  26. package/payload/skills/loom-retire/.loom-runtime/shared/scripts/runtime_state.py +2 -2
  27. package/payload/skills/loom-review/.loom-runtime/shared/scripts/loom_check.py +6 -2
  28. package/payload/skills/loom-review/.loom-runtime/shared/scripts/loom_init.py +5 -0
  29. package/payload/skills/loom-review/.loom-runtime/shared/scripts/runtime_state.py +2 -2
  30. package/payload/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_check.py +6 -2
  31. package/payload/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_init.py +5 -0
  32. package/payload/skills/loom-spec-review/.loom-runtime/shared/scripts/runtime_state.py +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mc-and-his-agents/loom-installer",
3
- "version": "0.1.19",
3
+ "version": "0.1.21",
4
4
  "description": "Node installer for Loom plugin and single-skill installation surfaces.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -2,9 +2,9 @@
2
2
  "schema_version": "loom-installer-payload/v1",
3
3
  "loom_version": "0.4.0",
4
4
  "source_repository": "https://github.com/MC-and-his-Agents/Loom",
5
- "source_commit": "f25d0954fff0ab7dcf7234f89eb001bc08a0c9df",
5
+ "source_commit": "8bce7468af6283216f38f66d2e8bc029e13c2f60",
6
6
  "source_ref": "main",
7
- "built_at": "2026-04-25T13:46:37+08:00",
7
+ "built_at": "2026-04-26T22:34:47+08:00",
8
8
  "runtime": {
9
9
  "python_minimum": "3.10",
10
10
  "python_recommended": "3.11+"
@@ -628,8 +628,8 @@
628
628
  },
629
629
  {
630
630
  "path": "plugin/loom/skills/shared/scripts/loom_check.py",
631
- "bytes": 273789,
632
- "sha256": "2d0a345221eeca04cef5e635b84f059ce6cf4b9316f4a210360237597406ae2e"
631
+ "bytes": 274115,
632
+ "sha256": "20092181dcb352b1889442c0b731344c5fa0f6faf51c0cc11f59994a4565a64e"
633
633
  },
634
634
  {
635
635
  "path": "plugin/loom/skills/shared/scripts/loom_flow.py",
@@ -638,8 +638,8 @@
638
638
  },
639
639
  {
640
640
  "path": "plugin/loom/skills/shared/scripts/loom_init.py",
641
- "bytes": 83763,
642
- "sha256": "3132627c8aec74fd5f8dd232bd2f8c10a035674723de22877b6079c1ca8cf9d1"
641
+ "bytes": 83995,
642
+ "sha256": "f4c928c0b9a5316906cc16e5416824210c35cf5caf22928fb3eab312cf0e075f"
643
643
  },
644
644
  {
645
645
  "path": "plugin/loom/skills/shared/scripts/loom_status.py",
@@ -654,7 +654,7 @@
654
654
  {
655
655
  "path": "plugin/loom/skills/shared/scripts/runtime_state.py",
656
656
  "bytes": 19009,
657
- "sha256": "554b951e33a3979ed255e661e4edc6a30e9e059da80d893882a8dd7cf95a06e7"
657
+ "sha256": "8ffbd37fb4c19c57e91f1592a6a8b4b827d3ee24ae2af8a4a26ed07d8662ecec"
658
658
  },
659
659
  {
660
660
  "path": "plugin/loom/skills/upgrade-contract.json",
@@ -1213,8 +1213,8 @@
1213
1213
  },
1214
1214
  {
1215
1215
  "path": "skills/loom-adopt/.loom-runtime/shared/scripts/loom_check.py",
1216
- "bytes": 273789,
1217
- "sha256": "2d0a345221eeca04cef5e635b84f059ce6cf4b9316f4a210360237597406ae2e"
1216
+ "bytes": 274115,
1217
+ "sha256": "20092181dcb352b1889442c0b731344c5fa0f6faf51c0cc11f59994a4565a64e"
1218
1218
  },
1219
1219
  {
1220
1220
  "path": "skills/loom-adopt/.loom-runtime/shared/scripts/loom_flow.py",
@@ -1223,8 +1223,8 @@
1223
1223
  },
1224
1224
  {
1225
1225
  "path": "skills/loom-adopt/.loom-runtime/shared/scripts/loom_init.py",
1226
- "bytes": 83763,
1227
- "sha256": "3132627c8aec74fd5f8dd232bd2f8c10a035674723de22877b6079c1ca8cf9d1"
1226
+ "bytes": 83995,
1227
+ "sha256": "f4c928c0b9a5316906cc16e5416824210c35cf5caf22928fb3eab312cf0e075f"
1228
1228
  },
1229
1229
  {
1230
1230
  "path": "skills/loom-adopt/.loom-runtime/shared/scripts/loom_status.py",
@@ -1239,7 +1239,7 @@
1239
1239
  {
1240
1240
  "path": "skills/loom-adopt/.loom-runtime/shared/scripts/runtime_state.py",
1241
1241
  "bytes": 19009,
1242
- "sha256": "554b951e33a3979ed255e661e4edc6a30e9e059da80d893882a8dd7cf95a06e7"
1242
+ "sha256": "8ffbd37fb4c19c57e91f1592a6a8b4b827d3ee24ae2af8a4a26ed07d8662ecec"
1243
1243
  },
1244
1244
  {
1245
1245
  "path": "skills/loom-adopt/.loom-runtime/upgrade-contract.json",
@@ -1828,8 +1828,8 @@
1828
1828
  },
1829
1829
  {
1830
1830
  "path": "skills/loom-handoff/.loom-runtime/shared/scripts/loom_check.py",
1831
- "bytes": 273789,
1832
- "sha256": "2d0a345221eeca04cef5e635b84f059ce6cf4b9316f4a210360237597406ae2e"
1831
+ "bytes": 274115,
1832
+ "sha256": "20092181dcb352b1889442c0b731344c5fa0f6faf51c0cc11f59994a4565a64e"
1833
1833
  },
1834
1834
  {
1835
1835
  "path": "skills/loom-handoff/.loom-runtime/shared/scripts/loom_flow.py",
@@ -1838,8 +1838,8 @@
1838
1838
  },
1839
1839
  {
1840
1840
  "path": "skills/loom-handoff/.loom-runtime/shared/scripts/loom_init.py",
1841
- "bytes": 83763,
1842
- "sha256": "3132627c8aec74fd5f8dd232bd2f8c10a035674723de22877b6079c1ca8cf9d1"
1841
+ "bytes": 83995,
1842
+ "sha256": "f4c928c0b9a5316906cc16e5416824210c35cf5caf22928fb3eab312cf0e075f"
1843
1843
  },
1844
1844
  {
1845
1845
  "path": "skills/loom-handoff/.loom-runtime/shared/scripts/loom_status.py",
@@ -1854,7 +1854,7 @@
1854
1854
  {
1855
1855
  "path": "skills/loom-handoff/.loom-runtime/shared/scripts/runtime_state.py",
1856
1856
  "bytes": 19009,
1857
- "sha256": "554b951e33a3979ed255e661e4edc6a30e9e059da80d893882a8dd7cf95a06e7"
1857
+ "sha256": "8ffbd37fb4c19c57e91f1592a6a8b4b827d3ee24ae2af8a4a26ed07d8662ecec"
1858
1858
  },
1859
1859
  {
1860
1860
  "path": "skills/loom-handoff/.loom-runtime/upgrade-contract.json",
@@ -2443,8 +2443,8 @@
2443
2443
  },
2444
2444
  {
2445
2445
  "path": "skills/loom-init/.loom-runtime/shared/scripts/loom_check.py",
2446
- "bytes": 273789,
2447
- "sha256": "2d0a345221eeca04cef5e635b84f059ce6cf4b9316f4a210360237597406ae2e"
2446
+ "bytes": 274115,
2447
+ "sha256": "20092181dcb352b1889442c0b731344c5fa0f6faf51c0cc11f59994a4565a64e"
2448
2448
  },
2449
2449
  {
2450
2450
  "path": "skills/loom-init/.loom-runtime/shared/scripts/loom_flow.py",
@@ -2453,8 +2453,8 @@
2453
2453
  },
2454
2454
  {
2455
2455
  "path": "skills/loom-init/.loom-runtime/shared/scripts/loom_init.py",
2456
- "bytes": 83763,
2457
- "sha256": "3132627c8aec74fd5f8dd232bd2f8c10a035674723de22877b6079c1ca8cf9d1"
2456
+ "bytes": 83995,
2457
+ "sha256": "f4c928c0b9a5316906cc16e5416824210c35cf5caf22928fb3eab312cf0e075f"
2458
2458
  },
2459
2459
  {
2460
2460
  "path": "skills/loom-init/.loom-runtime/shared/scripts/loom_status.py",
@@ -2469,7 +2469,7 @@
2469
2469
  {
2470
2470
  "path": "skills/loom-init/.loom-runtime/shared/scripts/runtime_state.py",
2471
2471
  "bytes": 19009,
2472
- "sha256": "554b951e33a3979ed255e661e4edc6a30e9e059da80d893882a8dd7cf95a06e7"
2472
+ "sha256": "8ffbd37fb4c19c57e91f1592a6a8b4b827d3ee24ae2af8a4a26ed07d8662ecec"
2473
2473
  },
2474
2474
  {
2475
2475
  "path": "skills/loom-init/.loom-runtime/upgrade-contract.json",
@@ -3063,8 +3063,8 @@
3063
3063
  },
3064
3064
  {
3065
3065
  "path": "skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_check.py",
3066
- "bytes": 273789,
3067
- "sha256": "2d0a345221eeca04cef5e635b84f059ce6cf4b9316f4a210360237597406ae2e"
3066
+ "bytes": 274115,
3067
+ "sha256": "20092181dcb352b1889442c0b731344c5fa0f6faf51c0cc11f59994a4565a64e"
3068
3068
  },
3069
3069
  {
3070
3070
  "path": "skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_flow.py",
@@ -3073,8 +3073,8 @@
3073
3073
  },
3074
3074
  {
3075
3075
  "path": "skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_init.py",
3076
- "bytes": 83763,
3077
- "sha256": "3132627c8aec74fd5f8dd232bd2f8c10a035674723de22877b6079c1ca8cf9d1"
3076
+ "bytes": 83995,
3077
+ "sha256": "f4c928c0b9a5316906cc16e5416824210c35cf5caf22928fb3eab312cf0e075f"
3078
3078
  },
3079
3079
  {
3080
3080
  "path": "skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_status.py",
@@ -3089,7 +3089,7 @@
3089
3089
  {
3090
3090
  "path": "skills/loom-merge-ready/.loom-runtime/shared/scripts/runtime_state.py",
3091
3091
  "bytes": 19009,
3092
- "sha256": "554b951e33a3979ed255e661e4edc6a30e9e059da80d893882a8dd7cf95a06e7"
3092
+ "sha256": "8ffbd37fb4c19c57e91f1592a6a8b4b827d3ee24ae2af8a4a26ed07d8662ecec"
3093
3093
  },
3094
3094
  {
3095
3095
  "path": "skills/loom-merge-ready/.loom-runtime/upgrade-contract.json",
@@ -3678,8 +3678,8 @@
3678
3678
  },
3679
3679
  {
3680
3680
  "path": "skills/loom-pre-review/.loom-runtime/shared/scripts/loom_check.py",
3681
- "bytes": 273789,
3682
- "sha256": "2d0a345221eeca04cef5e635b84f059ce6cf4b9316f4a210360237597406ae2e"
3681
+ "bytes": 274115,
3682
+ "sha256": "20092181dcb352b1889442c0b731344c5fa0f6faf51c0cc11f59994a4565a64e"
3683
3683
  },
3684
3684
  {
3685
3685
  "path": "skills/loom-pre-review/.loom-runtime/shared/scripts/loom_flow.py",
@@ -3688,8 +3688,8 @@
3688
3688
  },
3689
3689
  {
3690
3690
  "path": "skills/loom-pre-review/.loom-runtime/shared/scripts/loom_init.py",
3691
- "bytes": 83763,
3692
- "sha256": "3132627c8aec74fd5f8dd232bd2f8c10a035674723de22877b6079c1ca8cf9d1"
3691
+ "bytes": 83995,
3692
+ "sha256": "f4c928c0b9a5316906cc16e5416824210c35cf5caf22928fb3eab312cf0e075f"
3693
3693
  },
3694
3694
  {
3695
3695
  "path": "skills/loom-pre-review/.loom-runtime/shared/scripts/loom_status.py",
@@ -3704,7 +3704,7 @@
3704
3704
  {
3705
3705
  "path": "skills/loom-pre-review/.loom-runtime/shared/scripts/runtime_state.py",
3706
3706
  "bytes": 19009,
3707
- "sha256": "554b951e33a3979ed255e661e4edc6a30e9e059da80d893882a8dd7cf95a06e7"
3707
+ "sha256": "8ffbd37fb4c19c57e91f1592a6a8b4b827d3ee24ae2af8a4a26ed07d8662ecec"
3708
3708
  },
3709
3709
  {
3710
3710
  "path": "skills/loom-pre-review/.loom-runtime/upgrade-contract.json",
@@ -4293,8 +4293,8 @@
4293
4293
  },
4294
4294
  {
4295
4295
  "path": "skills/loom-resume/.loom-runtime/shared/scripts/loom_check.py",
4296
- "bytes": 273789,
4297
- "sha256": "2d0a345221eeca04cef5e635b84f059ce6cf4b9316f4a210360237597406ae2e"
4296
+ "bytes": 274115,
4297
+ "sha256": "20092181dcb352b1889442c0b731344c5fa0f6faf51c0cc11f59994a4565a64e"
4298
4298
  },
4299
4299
  {
4300
4300
  "path": "skills/loom-resume/.loom-runtime/shared/scripts/loom_flow.py",
@@ -4303,8 +4303,8 @@
4303
4303
  },
4304
4304
  {
4305
4305
  "path": "skills/loom-resume/.loom-runtime/shared/scripts/loom_init.py",
4306
- "bytes": 83763,
4307
- "sha256": "3132627c8aec74fd5f8dd232bd2f8c10a035674723de22877b6079c1ca8cf9d1"
4306
+ "bytes": 83995,
4307
+ "sha256": "f4c928c0b9a5316906cc16e5416824210c35cf5caf22928fb3eab312cf0e075f"
4308
4308
  },
4309
4309
  {
4310
4310
  "path": "skills/loom-resume/.loom-runtime/shared/scripts/loom_status.py",
@@ -4319,7 +4319,7 @@
4319
4319
  {
4320
4320
  "path": "skills/loom-resume/.loom-runtime/shared/scripts/runtime_state.py",
4321
4321
  "bytes": 19009,
4322
- "sha256": "554b951e33a3979ed255e661e4edc6a30e9e059da80d893882a8dd7cf95a06e7"
4322
+ "sha256": "8ffbd37fb4c19c57e91f1592a6a8b4b827d3ee24ae2af8a4a26ed07d8662ecec"
4323
4323
  },
4324
4324
  {
4325
4325
  "path": "skills/loom-resume/.loom-runtime/upgrade-contract.json",
@@ -4908,8 +4908,8 @@
4908
4908
  },
4909
4909
  {
4910
4910
  "path": "skills/loom-retire/.loom-runtime/shared/scripts/loom_check.py",
4911
- "bytes": 273789,
4912
- "sha256": "2d0a345221eeca04cef5e635b84f059ce6cf4b9316f4a210360237597406ae2e"
4911
+ "bytes": 274115,
4912
+ "sha256": "20092181dcb352b1889442c0b731344c5fa0f6faf51c0cc11f59994a4565a64e"
4913
4913
  },
4914
4914
  {
4915
4915
  "path": "skills/loom-retire/.loom-runtime/shared/scripts/loom_flow.py",
@@ -4918,8 +4918,8 @@
4918
4918
  },
4919
4919
  {
4920
4920
  "path": "skills/loom-retire/.loom-runtime/shared/scripts/loom_init.py",
4921
- "bytes": 83763,
4922
- "sha256": "3132627c8aec74fd5f8dd232bd2f8c10a035674723de22877b6079c1ca8cf9d1"
4921
+ "bytes": 83995,
4922
+ "sha256": "f4c928c0b9a5316906cc16e5416824210c35cf5caf22928fb3eab312cf0e075f"
4923
4923
  },
4924
4924
  {
4925
4925
  "path": "skills/loom-retire/.loom-runtime/shared/scripts/loom_status.py",
@@ -4934,7 +4934,7 @@
4934
4934
  {
4935
4935
  "path": "skills/loom-retire/.loom-runtime/shared/scripts/runtime_state.py",
4936
4936
  "bytes": 19009,
4937
- "sha256": "554b951e33a3979ed255e661e4edc6a30e9e059da80d893882a8dd7cf95a06e7"
4937
+ "sha256": "8ffbd37fb4c19c57e91f1592a6a8b4b827d3ee24ae2af8a4a26ed07d8662ecec"
4938
4938
  },
4939
4939
  {
4940
4940
  "path": "skills/loom-retire/.loom-runtime/upgrade-contract.json",
@@ -5523,8 +5523,8 @@
5523
5523
  },
5524
5524
  {
5525
5525
  "path": "skills/loom-review/.loom-runtime/shared/scripts/loom_check.py",
5526
- "bytes": 273789,
5527
- "sha256": "2d0a345221eeca04cef5e635b84f059ce6cf4b9316f4a210360237597406ae2e"
5526
+ "bytes": 274115,
5527
+ "sha256": "20092181dcb352b1889442c0b731344c5fa0f6faf51c0cc11f59994a4565a64e"
5528
5528
  },
5529
5529
  {
5530
5530
  "path": "skills/loom-review/.loom-runtime/shared/scripts/loom_flow.py",
@@ -5533,8 +5533,8 @@
5533
5533
  },
5534
5534
  {
5535
5535
  "path": "skills/loom-review/.loom-runtime/shared/scripts/loom_init.py",
5536
- "bytes": 83763,
5537
- "sha256": "3132627c8aec74fd5f8dd232bd2f8c10a035674723de22877b6079c1ca8cf9d1"
5536
+ "bytes": 83995,
5537
+ "sha256": "f4c928c0b9a5316906cc16e5416824210c35cf5caf22928fb3eab312cf0e075f"
5538
5538
  },
5539
5539
  {
5540
5540
  "path": "skills/loom-review/.loom-runtime/shared/scripts/loom_status.py",
@@ -5549,7 +5549,7 @@
5549
5549
  {
5550
5550
  "path": "skills/loom-review/.loom-runtime/shared/scripts/runtime_state.py",
5551
5551
  "bytes": 19009,
5552
- "sha256": "554b951e33a3979ed255e661e4edc6a30e9e059da80d893882a8dd7cf95a06e7"
5552
+ "sha256": "8ffbd37fb4c19c57e91f1592a6a8b4b827d3ee24ae2af8a4a26ed07d8662ecec"
5553
5553
  },
5554
5554
  {
5555
5555
  "path": "skills/loom-review/.loom-runtime/upgrade-contract.json",
@@ -6138,8 +6138,8 @@
6138
6138
  },
6139
6139
  {
6140
6140
  "path": "skills/loom-spec-review/.loom-runtime/shared/scripts/loom_check.py",
6141
- "bytes": 273789,
6142
- "sha256": "2d0a345221eeca04cef5e635b84f059ce6cf4b9316f4a210360237597406ae2e"
6141
+ "bytes": 274115,
6142
+ "sha256": "20092181dcb352b1889442c0b731344c5fa0f6faf51c0cc11f59994a4565a64e"
6143
6143
  },
6144
6144
  {
6145
6145
  "path": "skills/loom-spec-review/.loom-runtime/shared/scripts/loom_flow.py",
@@ -6148,8 +6148,8 @@
6148
6148
  },
6149
6149
  {
6150
6150
  "path": "skills/loom-spec-review/.loom-runtime/shared/scripts/loom_init.py",
6151
- "bytes": 83763,
6152
- "sha256": "3132627c8aec74fd5f8dd232bd2f8c10a035674723de22877b6079c1ca8cf9d1"
6151
+ "bytes": 83995,
6152
+ "sha256": "f4c928c0b9a5316906cc16e5416824210c35cf5caf22928fb3eab312cf0e075f"
6153
6153
  },
6154
6154
  {
6155
6155
  "path": "skills/loom-spec-review/.loom-runtime/shared/scripts/loom_status.py",
@@ -6164,7 +6164,7 @@
6164
6164
  {
6165
6165
  "path": "skills/loom-spec-review/.loom-runtime/shared/scripts/runtime_state.py",
6166
6166
  "bytes": 19009,
6167
- "sha256": "554b951e33a3979ed255e661e4edc6a30e9e059da80d893882a8dd7cf95a06e7"
6167
+ "sha256": "8ffbd37fb4c19c57e91f1592a6a8b4b827d3ee24ae2af8a4a26ed07d8662ecec"
6168
6168
  },
6169
6169
  {
6170
6170
  "path": "skills/loom-spec-review/.loom-runtime/upgrade-contract.json",
@@ -102,6 +102,9 @@ CORE_DOCS = (
102
102
  "docs/evidence/validations/validation-loom-core-runtime-parity.md",
103
103
  "docs/evidence/validations/validation-shadow-parity-blocking-gate.md",
104
104
  "docs/evidence/validations/validation-syvert-strong-governance-parity.md",
105
+ "docs/evidence/validations/validation-syvert-reverse-consumption-smoke.md",
106
+ "docs/evidence/syvert-residue-closeout.md",
107
+ "docs/evidence/validations/validation-syvert-runtime-parity-release-judgment.md",
105
108
  "docs/adoption/rationale.md",
106
109
  "docs/adoption/routing-and-checkpoints.md",
107
110
  "docs/adoption/github-profile.md",
@@ -3672,14 +3675,15 @@ def check_daily_execution_cli(root: Path) -> list[Failure]:
3672
3675
  root,
3673
3676
  ["python3", ".loom/bin/loom_init.py", "runtime-state", "--target", "."],
3674
3677
  cwd=bootstrap_target,
3678
+ env={"LOOM_SOURCE_REPO_ROOT": "/tmp/not-loom"},
3675
3679
  )
3676
3680
  if error:
3677
- failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state` failed: {error}"))
3681
+ failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state with unrelated source env` failed: {error}"))
3678
3682
  else:
3679
3683
  require_runtime_state_payload(
3680
3684
  failures,
3681
3685
  category="daily-execution-cli",
3682
- context="`bootstrapped loom-init runtime-state`",
3686
+ context="`bootstrapped loom-init runtime-state with unrelated source env`",
3683
3687
  payload=payload.get("runtime_state"),
3684
3688
  expected_scene="installed-runtime",
3685
3689
  expected_carrier="bootstrapped-target-runtime",
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
 
6
6
  import argparse
7
7
  import json
8
+ import os
8
9
  import re
9
10
  import subprocess
10
11
  import sys
@@ -1745,12 +1746,16 @@ def verify_target(target_root: Path, output_path: Path) -> list[str]:
1745
1746
  )
1746
1747
 
1747
1748
  for label, command, allowed in commands:
1749
+ command_env = os.environ.copy()
1750
+ for key in ("LOOM_SOURCE_REPO_ROOT", "LOOM_INSTALLED_SKILLS_ROOT", "LOOM_RUNTIME_SCENE"):
1751
+ command_env.pop(key, None)
1748
1752
  result = subprocess.run(
1749
1753
  command,
1750
1754
  cwd=target_root,
1751
1755
  check=False,
1752
1756
  capture_output=True,
1753
1757
  text=True,
1758
+ env=command_env,
1754
1759
  )
1755
1760
  output = result.stdout.strip()
1756
1761
  if not output:
@@ -76,10 +76,10 @@ def _check(status: str, summary: str, *, evidence: object | None = None) -> dict
76
76
 
77
77
 
78
78
  def detect_carrier(caller_file: str) -> str | None:
79
- if source_repo_root() is not None:
80
- return "repo-local-wrapper"
81
79
  if bootstrap_runtime_root(caller_file) is not None:
82
80
  return "bootstrapped-target-runtime"
81
+ if source_repo_root() is not None:
82
+ return "repo-local-wrapper"
83
83
  if installed_skills_root(caller_file) is not None:
84
84
  return "installed-skills-root"
85
85
  return None
@@ -102,6 +102,9 @@ CORE_DOCS = (
102
102
  "docs/evidence/validations/validation-loom-core-runtime-parity.md",
103
103
  "docs/evidence/validations/validation-shadow-parity-blocking-gate.md",
104
104
  "docs/evidence/validations/validation-syvert-strong-governance-parity.md",
105
+ "docs/evidence/validations/validation-syvert-reverse-consumption-smoke.md",
106
+ "docs/evidence/syvert-residue-closeout.md",
107
+ "docs/evidence/validations/validation-syvert-runtime-parity-release-judgment.md",
105
108
  "docs/adoption/rationale.md",
106
109
  "docs/adoption/routing-and-checkpoints.md",
107
110
  "docs/adoption/github-profile.md",
@@ -3672,14 +3675,15 @@ def check_daily_execution_cli(root: Path) -> list[Failure]:
3672
3675
  root,
3673
3676
  ["python3", ".loom/bin/loom_init.py", "runtime-state", "--target", "."],
3674
3677
  cwd=bootstrap_target,
3678
+ env={"LOOM_SOURCE_REPO_ROOT": "/tmp/not-loom"},
3675
3679
  )
3676
3680
  if error:
3677
- failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state` failed: {error}"))
3681
+ failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state with unrelated source env` failed: {error}"))
3678
3682
  else:
3679
3683
  require_runtime_state_payload(
3680
3684
  failures,
3681
3685
  category="daily-execution-cli",
3682
- context="`bootstrapped loom-init runtime-state`",
3686
+ context="`bootstrapped loom-init runtime-state with unrelated source env`",
3683
3687
  payload=payload.get("runtime_state"),
3684
3688
  expected_scene="installed-runtime",
3685
3689
  expected_carrier="bootstrapped-target-runtime",
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
 
6
6
  import argparse
7
7
  import json
8
+ import os
8
9
  import re
9
10
  import subprocess
10
11
  import sys
@@ -1745,12 +1746,16 @@ def verify_target(target_root: Path, output_path: Path) -> list[str]:
1745
1746
  )
1746
1747
 
1747
1748
  for label, command, allowed in commands:
1749
+ command_env = os.environ.copy()
1750
+ for key in ("LOOM_SOURCE_REPO_ROOT", "LOOM_INSTALLED_SKILLS_ROOT", "LOOM_RUNTIME_SCENE"):
1751
+ command_env.pop(key, None)
1748
1752
  result = subprocess.run(
1749
1753
  command,
1750
1754
  cwd=target_root,
1751
1755
  check=False,
1752
1756
  capture_output=True,
1753
1757
  text=True,
1758
+ env=command_env,
1754
1759
  )
1755
1760
  output = result.stdout.strip()
1756
1761
  if not output:
@@ -76,10 +76,10 @@ def _check(status: str, summary: str, *, evidence: object | None = None) -> dict
76
76
 
77
77
 
78
78
  def detect_carrier(caller_file: str) -> str | None:
79
- if source_repo_root() is not None:
80
- return "repo-local-wrapper"
81
79
  if bootstrap_runtime_root(caller_file) is not None:
82
80
  return "bootstrapped-target-runtime"
81
+ if source_repo_root() is not None:
82
+ return "repo-local-wrapper"
83
83
  if installed_skills_root(caller_file) is not None:
84
84
  return "installed-skills-root"
85
85
  return None
@@ -102,6 +102,9 @@ CORE_DOCS = (
102
102
  "docs/evidence/validations/validation-loom-core-runtime-parity.md",
103
103
  "docs/evidence/validations/validation-shadow-parity-blocking-gate.md",
104
104
  "docs/evidence/validations/validation-syvert-strong-governance-parity.md",
105
+ "docs/evidence/validations/validation-syvert-reverse-consumption-smoke.md",
106
+ "docs/evidence/syvert-residue-closeout.md",
107
+ "docs/evidence/validations/validation-syvert-runtime-parity-release-judgment.md",
105
108
  "docs/adoption/rationale.md",
106
109
  "docs/adoption/routing-and-checkpoints.md",
107
110
  "docs/adoption/github-profile.md",
@@ -3672,14 +3675,15 @@ def check_daily_execution_cli(root: Path) -> list[Failure]:
3672
3675
  root,
3673
3676
  ["python3", ".loom/bin/loom_init.py", "runtime-state", "--target", "."],
3674
3677
  cwd=bootstrap_target,
3678
+ env={"LOOM_SOURCE_REPO_ROOT": "/tmp/not-loom"},
3675
3679
  )
3676
3680
  if error:
3677
- failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state` failed: {error}"))
3681
+ failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state with unrelated source env` failed: {error}"))
3678
3682
  else:
3679
3683
  require_runtime_state_payload(
3680
3684
  failures,
3681
3685
  category="daily-execution-cli",
3682
- context="`bootstrapped loom-init runtime-state`",
3686
+ context="`bootstrapped loom-init runtime-state with unrelated source env`",
3683
3687
  payload=payload.get("runtime_state"),
3684
3688
  expected_scene="installed-runtime",
3685
3689
  expected_carrier="bootstrapped-target-runtime",
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
 
6
6
  import argparse
7
7
  import json
8
+ import os
8
9
  import re
9
10
  import subprocess
10
11
  import sys
@@ -1745,12 +1746,16 @@ def verify_target(target_root: Path, output_path: Path) -> list[str]:
1745
1746
  )
1746
1747
 
1747
1748
  for label, command, allowed in commands:
1749
+ command_env = os.environ.copy()
1750
+ for key in ("LOOM_SOURCE_REPO_ROOT", "LOOM_INSTALLED_SKILLS_ROOT", "LOOM_RUNTIME_SCENE"):
1751
+ command_env.pop(key, None)
1748
1752
  result = subprocess.run(
1749
1753
  command,
1750
1754
  cwd=target_root,
1751
1755
  check=False,
1752
1756
  capture_output=True,
1753
1757
  text=True,
1758
+ env=command_env,
1754
1759
  )
1755
1760
  output = result.stdout.strip()
1756
1761
  if not output:
@@ -76,10 +76,10 @@ def _check(status: str, summary: str, *, evidence: object | None = None) -> dict
76
76
 
77
77
 
78
78
  def detect_carrier(caller_file: str) -> str | None:
79
- if source_repo_root() is not None:
80
- return "repo-local-wrapper"
81
79
  if bootstrap_runtime_root(caller_file) is not None:
82
80
  return "bootstrapped-target-runtime"
81
+ if source_repo_root() is not None:
82
+ return "repo-local-wrapper"
83
83
  if installed_skills_root(caller_file) is not None:
84
84
  return "installed-skills-root"
85
85
  return None
@@ -102,6 +102,9 @@ CORE_DOCS = (
102
102
  "docs/evidence/validations/validation-loom-core-runtime-parity.md",
103
103
  "docs/evidence/validations/validation-shadow-parity-blocking-gate.md",
104
104
  "docs/evidence/validations/validation-syvert-strong-governance-parity.md",
105
+ "docs/evidence/validations/validation-syvert-reverse-consumption-smoke.md",
106
+ "docs/evidence/syvert-residue-closeout.md",
107
+ "docs/evidence/validations/validation-syvert-runtime-parity-release-judgment.md",
105
108
  "docs/adoption/rationale.md",
106
109
  "docs/adoption/routing-and-checkpoints.md",
107
110
  "docs/adoption/github-profile.md",
@@ -3672,14 +3675,15 @@ def check_daily_execution_cli(root: Path) -> list[Failure]:
3672
3675
  root,
3673
3676
  ["python3", ".loom/bin/loom_init.py", "runtime-state", "--target", "."],
3674
3677
  cwd=bootstrap_target,
3678
+ env={"LOOM_SOURCE_REPO_ROOT": "/tmp/not-loom"},
3675
3679
  )
3676
3680
  if error:
3677
- failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state` failed: {error}"))
3681
+ failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state with unrelated source env` failed: {error}"))
3678
3682
  else:
3679
3683
  require_runtime_state_payload(
3680
3684
  failures,
3681
3685
  category="daily-execution-cli",
3682
- context="`bootstrapped loom-init runtime-state`",
3686
+ context="`bootstrapped loom-init runtime-state with unrelated source env`",
3683
3687
  payload=payload.get("runtime_state"),
3684
3688
  expected_scene="installed-runtime",
3685
3689
  expected_carrier="bootstrapped-target-runtime",
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
 
6
6
  import argparse
7
7
  import json
8
+ import os
8
9
  import re
9
10
  import subprocess
10
11
  import sys
@@ -1745,12 +1746,16 @@ def verify_target(target_root: Path, output_path: Path) -> list[str]:
1745
1746
  )
1746
1747
 
1747
1748
  for label, command, allowed in commands:
1749
+ command_env = os.environ.copy()
1750
+ for key in ("LOOM_SOURCE_REPO_ROOT", "LOOM_INSTALLED_SKILLS_ROOT", "LOOM_RUNTIME_SCENE"):
1751
+ command_env.pop(key, None)
1748
1752
  result = subprocess.run(
1749
1753
  command,
1750
1754
  cwd=target_root,
1751
1755
  check=False,
1752
1756
  capture_output=True,
1753
1757
  text=True,
1758
+ env=command_env,
1754
1759
  )
1755
1760
  output = result.stdout.strip()
1756
1761
  if not output:
@@ -76,10 +76,10 @@ def _check(status: str, summary: str, *, evidence: object | None = None) -> dict
76
76
 
77
77
 
78
78
  def detect_carrier(caller_file: str) -> str | None:
79
- if source_repo_root() is not None:
80
- return "repo-local-wrapper"
81
79
  if bootstrap_runtime_root(caller_file) is not None:
82
80
  return "bootstrapped-target-runtime"
81
+ if source_repo_root() is not None:
82
+ return "repo-local-wrapper"
83
83
  if installed_skills_root(caller_file) is not None:
84
84
  return "installed-skills-root"
85
85
  return None
@@ -102,6 +102,9 @@ CORE_DOCS = (
102
102
  "docs/evidence/validations/validation-loom-core-runtime-parity.md",
103
103
  "docs/evidence/validations/validation-shadow-parity-blocking-gate.md",
104
104
  "docs/evidence/validations/validation-syvert-strong-governance-parity.md",
105
+ "docs/evidence/validations/validation-syvert-reverse-consumption-smoke.md",
106
+ "docs/evidence/syvert-residue-closeout.md",
107
+ "docs/evidence/validations/validation-syvert-runtime-parity-release-judgment.md",
105
108
  "docs/adoption/rationale.md",
106
109
  "docs/adoption/routing-and-checkpoints.md",
107
110
  "docs/adoption/github-profile.md",
@@ -3672,14 +3675,15 @@ def check_daily_execution_cli(root: Path) -> list[Failure]:
3672
3675
  root,
3673
3676
  ["python3", ".loom/bin/loom_init.py", "runtime-state", "--target", "."],
3674
3677
  cwd=bootstrap_target,
3678
+ env={"LOOM_SOURCE_REPO_ROOT": "/tmp/not-loom"},
3675
3679
  )
3676
3680
  if error:
3677
- failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state` failed: {error}"))
3681
+ failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state with unrelated source env` failed: {error}"))
3678
3682
  else:
3679
3683
  require_runtime_state_payload(
3680
3684
  failures,
3681
3685
  category="daily-execution-cli",
3682
- context="`bootstrapped loom-init runtime-state`",
3686
+ context="`bootstrapped loom-init runtime-state with unrelated source env`",
3683
3687
  payload=payload.get("runtime_state"),
3684
3688
  expected_scene="installed-runtime",
3685
3689
  expected_carrier="bootstrapped-target-runtime",
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
 
6
6
  import argparse
7
7
  import json
8
+ import os
8
9
  import re
9
10
  import subprocess
10
11
  import sys
@@ -1745,12 +1746,16 @@ def verify_target(target_root: Path, output_path: Path) -> list[str]:
1745
1746
  )
1746
1747
 
1747
1748
  for label, command, allowed in commands:
1749
+ command_env = os.environ.copy()
1750
+ for key in ("LOOM_SOURCE_REPO_ROOT", "LOOM_INSTALLED_SKILLS_ROOT", "LOOM_RUNTIME_SCENE"):
1751
+ command_env.pop(key, None)
1748
1752
  result = subprocess.run(
1749
1753
  command,
1750
1754
  cwd=target_root,
1751
1755
  check=False,
1752
1756
  capture_output=True,
1753
1757
  text=True,
1758
+ env=command_env,
1754
1759
  )
1755
1760
  output = result.stdout.strip()
1756
1761
  if not output:
@@ -76,10 +76,10 @@ def _check(status: str, summary: str, *, evidence: object | None = None) -> dict
76
76
 
77
77
 
78
78
  def detect_carrier(caller_file: str) -> str | None:
79
- if source_repo_root() is not None:
80
- return "repo-local-wrapper"
81
79
  if bootstrap_runtime_root(caller_file) is not None:
82
80
  return "bootstrapped-target-runtime"
81
+ if source_repo_root() is not None:
82
+ return "repo-local-wrapper"
83
83
  if installed_skills_root(caller_file) is not None:
84
84
  return "installed-skills-root"
85
85
  return None
@@ -102,6 +102,9 @@ CORE_DOCS = (
102
102
  "docs/evidence/validations/validation-loom-core-runtime-parity.md",
103
103
  "docs/evidence/validations/validation-shadow-parity-blocking-gate.md",
104
104
  "docs/evidence/validations/validation-syvert-strong-governance-parity.md",
105
+ "docs/evidence/validations/validation-syvert-reverse-consumption-smoke.md",
106
+ "docs/evidence/syvert-residue-closeout.md",
107
+ "docs/evidence/validations/validation-syvert-runtime-parity-release-judgment.md",
105
108
  "docs/adoption/rationale.md",
106
109
  "docs/adoption/routing-and-checkpoints.md",
107
110
  "docs/adoption/github-profile.md",
@@ -3672,14 +3675,15 @@ def check_daily_execution_cli(root: Path) -> list[Failure]:
3672
3675
  root,
3673
3676
  ["python3", ".loom/bin/loom_init.py", "runtime-state", "--target", "."],
3674
3677
  cwd=bootstrap_target,
3678
+ env={"LOOM_SOURCE_REPO_ROOT": "/tmp/not-loom"},
3675
3679
  )
3676
3680
  if error:
3677
- failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state` failed: {error}"))
3681
+ failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state with unrelated source env` failed: {error}"))
3678
3682
  else:
3679
3683
  require_runtime_state_payload(
3680
3684
  failures,
3681
3685
  category="daily-execution-cli",
3682
- context="`bootstrapped loom-init runtime-state`",
3686
+ context="`bootstrapped loom-init runtime-state with unrelated source env`",
3683
3687
  payload=payload.get("runtime_state"),
3684
3688
  expected_scene="installed-runtime",
3685
3689
  expected_carrier="bootstrapped-target-runtime",
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
 
6
6
  import argparse
7
7
  import json
8
+ import os
8
9
  import re
9
10
  import subprocess
10
11
  import sys
@@ -1745,12 +1746,16 @@ def verify_target(target_root: Path, output_path: Path) -> list[str]:
1745
1746
  )
1746
1747
 
1747
1748
  for label, command, allowed in commands:
1749
+ command_env = os.environ.copy()
1750
+ for key in ("LOOM_SOURCE_REPO_ROOT", "LOOM_INSTALLED_SKILLS_ROOT", "LOOM_RUNTIME_SCENE"):
1751
+ command_env.pop(key, None)
1748
1752
  result = subprocess.run(
1749
1753
  command,
1750
1754
  cwd=target_root,
1751
1755
  check=False,
1752
1756
  capture_output=True,
1753
1757
  text=True,
1758
+ env=command_env,
1754
1759
  )
1755
1760
  output = result.stdout.strip()
1756
1761
  if not output:
@@ -76,10 +76,10 @@ def _check(status: str, summary: str, *, evidence: object | None = None) -> dict
76
76
 
77
77
 
78
78
  def detect_carrier(caller_file: str) -> str | None:
79
- if source_repo_root() is not None:
80
- return "repo-local-wrapper"
81
79
  if bootstrap_runtime_root(caller_file) is not None:
82
80
  return "bootstrapped-target-runtime"
81
+ if source_repo_root() is not None:
82
+ return "repo-local-wrapper"
83
83
  if installed_skills_root(caller_file) is not None:
84
84
  return "installed-skills-root"
85
85
  return None
@@ -102,6 +102,9 @@ CORE_DOCS = (
102
102
  "docs/evidence/validations/validation-loom-core-runtime-parity.md",
103
103
  "docs/evidence/validations/validation-shadow-parity-blocking-gate.md",
104
104
  "docs/evidence/validations/validation-syvert-strong-governance-parity.md",
105
+ "docs/evidence/validations/validation-syvert-reverse-consumption-smoke.md",
106
+ "docs/evidence/syvert-residue-closeout.md",
107
+ "docs/evidence/validations/validation-syvert-runtime-parity-release-judgment.md",
105
108
  "docs/adoption/rationale.md",
106
109
  "docs/adoption/routing-and-checkpoints.md",
107
110
  "docs/adoption/github-profile.md",
@@ -3672,14 +3675,15 @@ def check_daily_execution_cli(root: Path) -> list[Failure]:
3672
3675
  root,
3673
3676
  ["python3", ".loom/bin/loom_init.py", "runtime-state", "--target", "."],
3674
3677
  cwd=bootstrap_target,
3678
+ env={"LOOM_SOURCE_REPO_ROOT": "/tmp/not-loom"},
3675
3679
  )
3676
3680
  if error:
3677
- failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state` failed: {error}"))
3681
+ failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state with unrelated source env` failed: {error}"))
3678
3682
  else:
3679
3683
  require_runtime_state_payload(
3680
3684
  failures,
3681
3685
  category="daily-execution-cli",
3682
- context="`bootstrapped loom-init runtime-state`",
3686
+ context="`bootstrapped loom-init runtime-state with unrelated source env`",
3683
3687
  payload=payload.get("runtime_state"),
3684
3688
  expected_scene="installed-runtime",
3685
3689
  expected_carrier="bootstrapped-target-runtime",
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
 
6
6
  import argparse
7
7
  import json
8
+ import os
8
9
  import re
9
10
  import subprocess
10
11
  import sys
@@ -1745,12 +1746,16 @@ def verify_target(target_root: Path, output_path: Path) -> list[str]:
1745
1746
  )
1746
1747
 
1747
1748
  for label, command, allowed in commands:
1749
+ command_env = os.environ.copy()
1750
+ for key in ("LOOM_SOURCE_REPO_ROOT", "LOOM_INSTALLED_SKILLS_ROOT", "LOOM_RUNTIME_SCENE"):
1751
+ command_env.pop(key, None)
1748
1752
  result = subprocess.run(
1749
1753
  command,
1750
1754
  cwd=target_root,
1751
1755
  check=False,
1752
1756
  capture_output=True,
1753
1757
  text=True,
1758
+ env=command_env,
1754
1759
  )
1755
1760
  output = result.stdout.strip()
1756
1761
  if not output:
@@ -76,10 +76,10 @@ def _check(status: str, summary: str, *, evidence: object | None = None) -> dict
76
76
 
77
77
 
78
78
  def detect_carrier(caller_file: str) -> str | None:
79
- if source_repo_root() is not None:
80
- return "repo-local-wrapper"
81
79
  if bootstrap_runtime_root(caller_file) is not None:
82
80
  return "bootstrapped-target-runtime"
81
+ if source_repo_root() is not None:
82
+ return "repo-local-wrapper"
83
83
  if installed_skills_root(caller_file) is not None:
84
84
  return "installed-skills-root"
85
85
  return None
@@ -102,6 +102,9 @@ CORE_DOCS = (
102
102
  "docs/evidence/validations/validation-loom-core-runtime-parity.md",
103
103
  "docs/evidence/validations/validation-shadow-parity-blocking-gate.md",
104
104
  "docs/evidence/validations/validation-syvert-strong-governance-parity.md",
105
+ "docs/evidence/validations/validation-syvert-reverse-consumption-smoke.md",
106
+ "docs/evidence/syvert-residue-closeout.md",
107
+ "docs/evidence/validations/validation-syvert-runtime-parity-release-judgment.md",
105
108
  "docs/adoption/rationale.md",
106
109
  "docs/adoption/routing-and-checkpoints.md",
107
110
  "docs/adoption/github-profile.md",
@@ -3672,14 +3675,15 @@ def check_daily_execution_cli(root: Path) -> list[Failure]:
3672
3675
  root,
3673
3676
  ["python3", ".loom/bin/loom_init.py", "runtime-state", "--target", "."],
3674
3677
  cwd=bootstrap_target,
3678
+ env={"LOOM_SOURCE_REPO_ROOT": "/tmp/not-loom"},
3675
3679
  )
3676
3680
  if error:
3677
- failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state` failed: {error}"))
3681
+ failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state with unrelated source env` failed: {error}"))
3678
3682
  else:
3679
3683
  require_runtime_state_payload(
3680
3684
  failures,
3681
3685
  category="daily-execution-cli",
3682
- context="`bootstrapped loom-init runtime-state`",
3686
+ context="`bootstrapped loom-init runtime-state with unrelated source env`",
3683
3687
  payload=payload.get("runtime_state"),
3684
3688
  expected_scene="installed-runtime",
3685
3689
  expected_carrier="bootstrapped-target-runtime",
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
 
6
6
  import argparse
7
7
  import json
8
+ import os
8
9
  import re
9
10
  import subprocess
10
11
  import sys
@@ -1745,12 +1746,16 @@ def verify_target(target_root: Path, output_path: Path) -> list[str]:
1745
1746
  )
1746
1747
 
1747
1748
  for label, command, allowed in commands:
1749
+ command_env = os.environ.copy()
1750
+ for key in ("LOOM_SOURCE_REPO_ROOT", "LOOM_INSTALLED_SKILLS_ROOT", "LOOM_RUNTIME_SCENE"):
1751
+ command_env.pop(key, None)
1748
1752
  result = subprocess.run(
1749
1753
  command,
1750
1754
  cwd=target_root,
1751
1755
  check=False,
1752
1756
  capture_output=True,
1753
1757
  text=True,
1758
+ env=command_env,
1754
1759
  )
1755
1760
  output = result.stdout.strip()
1756
1761
  if not output:
@@ -76,10 +76,10 @@ def _check(status: str, summary: str, *, evidence: object | None = None) -> dict
76
76
 
77
77
 
78
78
  def detect_carrier(caller_file: str) -> str | None:
79
- if source_repo_root() is not None:
80
- return "repo-local-wrapper"
81
79
  if bootstrap_runtime_root(caller_file) is not None:
82
80
  return "bootstrapped-target-runtime"
81
+ if source_repo_root() is not None:
82
+ return "repo-local-wrapper"
83
83
  if installed_skills_root(caller_file) is not None:
84
84
  return "installed-skills-root"
85
85
  return None
@@ -102,6 +102,9 @@ CORE_DOCS = (
102
102
  "docs/evidence/validations/validation-loom-core-runtime-parity.md",
103
103
  "docs/evidence/validations/validation-shadow-parity-blocking-gate.md",
104
104
  "docs/evidence/validations/validation-syvert-strong-governance-parity.md",
105
+ "docs/evidence/validations/validation-syvert-reverse-consumption-smoke.md",
106
+ "docs/evidence/syvert-residue-closeout.md",
107
+ "docs/evidence/validations/validation-syvert-runtime-parity-release-judgment.md",
105
108
  "docs/adoption/rationale.md",
106
109
  "docs/adoption/routing-and-checkpoints.md",
107
110
  "docs/adoption/github-profile.md",
@@ -3672,14 +3675,15 @@ def check_daily_execution_cli(root: Path) -> list[Failure]:
3672
3675
  root,
3673
3676
  ["python3", ".loom/bin/loom_init.py", "runtime-state", "--target", "."],
3674
3677
  cwd=bootstrap_target,
3678
+ env={"LOOM_SOURCE_REPO_ROOT": "/tmp/not-loom"},
3675
3679
  )
3676
3680
  if error:
3677
- failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state` failed: {error}"))
3681
+ failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state with unrelated source env` failed: {error}"))
3678
3682
  else:
3679
3683
  require_runtime_state_payload(
3680
3684
  failures,
3681
3685
  category="daily-execution-cli",
3682
- context="`bootstrapped loom-init runtime-state`",
3686
+ context="`bootstrapped loom-init runtime-state with unrelated source env`",
3683
3687
  payload=payload.get("runtime_state"),
3684
3688
  expected_scene="installed-runtime",
3685
3689
  expected_carrier="bootstrapped-target-runtime",
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
 
6
6
  import argparse
7
7
  import json
8
+ import os
8
9
  import re
9
10
  import subprocess
10
11
  import sys
@@ -1745,12 +1746,16 @@ def verify_target(target_root: Path, output_path: Path) -> list[str]:
1745
1746
  )
1746
1747
 
1747
1748
  for label, command, allowed in commands:
1749
+ command_env = os.environ.copy()
1750
+ for key in ("LOOM_SOURCE_REPO_ROOT", "LOOM_INSTALLED_SKILLS_ROOT", "LOOM_RUNTIME_SCENE"):
1751
+ command_env.pop(key, None)
1748
1752
  result = subprocess.run(
1749
1753
  command,
1750
1754
  cwd=target_root,
1751
1755
  check=False,
1752
1756
  capture_output=True,
1753
1757
  text=True,
1758
+ env=command_env,
1754
1759
  )
1755
1760
  output = result.stdout.strip()
1756
1761
  if not output:
@@ -76,10 +76,10 @@ def _check(status: str, summary: str, *, evidence: object | None = None) -> dict
76
76
 
77
77
 
78
78
  def detect_carrier(caller_file: str) -> str | None:
79
- if source_repo_root() is not None:
80
- return "repo-local-wrapper"
81
79
  if bootstrap_runtime_root(caller_file) is not None:
82
80
  return "bootstrapped-target-runtime"
81
+ if source_repo_root() is not None:
82
+ return "repo-local-wrapper"
83
83
  if installed_skills_root(caller_file) is not None:
84
84
  return "installed-skills-root"
85
85
  return None
@@ -102,6 +102,9 @@ CORE_DOCS = (
102
102
  "docs/evidence/validations/validation-loom-core-runtime-parity.md",
103
103
  "docs/evidence/validations/validation-shadow-parity-blocking-gate.md",
104
104
  "docs/evidence/validations/validation-syvert-strong-governance-parity.md",
105
+ "docs/evidence/validations/validation-syvert-reverse-consumption-smoke.md",
106
+ "docs/evidence/syvert-residue-closeout.md",
107
+ "docs/evidence/validations/validation-syvert-runtime-parity-release-judgment.md",
105
108
  "docs/adoption/rationale.md",
106
109
  "docs/adoption/routing-and-checkpoints.md",
107
110
  "docs/adoption/github-profile.md",
@@ -3672,14 +3675,15 @@ def check_daily_execution_cli(root: Path) -> list[Failure]:
3672
3675
  root,
3673
3676
  ["python3", ".loom/bin/loom_init.py", "runtime-state", "--target", "."],
3674
3677
  cwd=bootstrap_target,
3678
+ env={"LOOM_SOURCE_REPO_ROOT": "/tmp/not-loom"},
3675
3679
  )
3676
3680
  if error:
3677
- failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state` failed: {error}"))
3681
+ failures.append(Failure("daily-execution-cli", f"`bootstrapped loom-init runtime-state with unrelated source env` failed: {error}"))
3678
3682
  else:
3679
3683
  require_runtime_state_payload(
3680
3684
  failures,
3681
3685
  category="daily-execution-cli",
3682
- context="`bootstrapped loom-init runtime-state`",
3686
+ context="`bootstrapped loom-init runtime-state with unrelated source env`",
3683
3687
  payload=payload.get("runtime_state"),
3684
3688
  expected_scene="installed-runtime",
3685
3689
  expected_carrier="bootstrapped-target-runtime",
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
 
6
6
  import argparse
7
7
  import json
8
+ import os
8
9
  import re
9
10
  import subprocess
10
11
  import sys
@@ -1745,12 +1746,16 @@ def verify_target(target_root: Path, output_path: Path) -> list[str]:
1745
1746
  )
1746
1747
 
1747
1748
  for label, command, allowed in commands:
1749
+ command_env = os.environ.copy()
1750
+ for key in ("LOOM_SOURCE_REPO_ROOT", "LOOM_INSTALLED_SKILLS_ROOT", "LOOM_RUNTIME_SCENE"):
1751
+ command_env.pop(key, None)
1748
1752
  result = subprocess.run(
1749
1753
  command,
1750
1754
  cwd=target_root,
1751
1755
  check=False,
1752
1756
  capture_output=True,
1753
1757
  text=True,
1758
+ env=command_env,
1754
1759
  )
1755
1760
  output = result.stdout.strip()
1756
1761
  if not output:
@@ -76,10 +76,10 @@ def _check(status: str, summary: str, *, evidence: object | None = None) -> dict
76
76
 
77
77
 
78
78
  def detect_carrier(caller_file: str) -> str | None:
79
- if source_repo_root() is not None:
80
- return "repo-local-wrapper"
81
79
  if bootstrap_runtime_root(caller_file) is not None:
82
80
  return "bootstrapped-target-runtime"
81
+ if source_repo_root() is not None:
82
+ return "repo-local-wrapper"
83
83
  if installed_skills_root(caller_file) is not None:
84
84
  return "installed-skills-root"
85
85
  return None