@mc-and-his-agents/loom-installer 0.1.9 → 0.1.11
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/README.md +7 -5
- package/README.zh-CN.md +57 -0
- package/package.json +1 -1
- package/payload/manifest.json +112 -62
- package/payload/plugin/loom/skills/README.md +13 -11
- package/payload/plugin/loom/skills/README.zh-CN.md +92 -0
- package/payload/plugin/loom/skills/shared/scripts/loom_check.py +112 -4
- package/payload/plugin/loom/skills/shared/scripts/loom_flow.py +266 -0
- package/payload/skills/loom-adopt/.loom-runtime/README.md +13 -11
- package/payload/skills/loom-adopt/.loom-runtime/README.zh-CN.md +92 -0
- package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/loom_check.py +112 -4
- package/payload/skills/loom-adopt/.loom-runtime/shared/scripts/loom_flow.py +266 -0
- package/payload/skills/loom-handoff/.loom-runtime/README.md +13 -11
- package/payload/skills/loom-handoff/.loom-runtime/README.zh-CN.md +92 -0
- package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/loom_check.py +112 -4
- package/payload/skills/loom-handoff/.loom-runtime/shared/scripts/loom_flow.py +266 -0
- package/payload/skills/loom-init/.loom-runtime/README.md +13 -11
- package/payload/skills/loom-init/.loom-runtime/README.zh-CN.md +92 -0
- package/payload/skills/loom-init/.loom-runtime/shared/scripts/loom_check.py +112 -4
- package/payload/skills/loom-init/.loom-runtime/shared/scripts/loom_flow.py +266 -0
- package/payload/skills/loom-merge-ready/.loom-runtime/README.md +13 -11
- package/payload/skills/loom-merge-ready/.loom-runtime/README.zh-CN.md +92 -0
- package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_check.py +112 -4
- package/payload/skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_flow.py +266 -0
- package/payload/skills/loom-pre-review/.loom-runtime/README.md +13 -11
- package/payload/skills/loom-pre-review/.loom-runtime/README.zh-CN.md +92 -0
- package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_check.py +112 -4
- package/payload/skills/loom-pre-review/.loom-runtime/shared/scripts/loom_flow.py +266 -0
- package/payload/skills/loom-resume/.loom-runtime/README.md +13 -11
- package/payload/skills/loom-resume/.loom-runtime/README.zh-CN.md +92 -0
- package/payload/skills/loom-resume/.loom-runtime/shared/scripts/loom_check.py +112 -4
- package/payload/skills/loom-resume/.loom-runtime/shared/scripts/loom_flow.py +266 -0
- package/payload/skills/loom-retire/.loom-runtime/README.md +13 -11
- package/payload/skills/loom-retire/.loom-runtime/README.zh-CN.md +92 -0
- package/payload/skills/loom-retire/.loom-runtime/shared/scripts/loom_check.py +112 -4
- package/payload/skills/loom-retire/.loom-runtime/shared/scripts/loom_flow.py +266 -0
- package/payload/skills/loom-review/.loom-runtime/README.md +13 -11
- package/payload/skills/loom-review/.loom-runtime/README.zh-CN.md +92 -0
- package/payload/skills/loom-review/.loom-runtime/shared/scripts/loom_check.py +112 -4
- package/payload/skills/loom-review/.loom-runtime/shared/scripts/loom_flow.py +266 -0
- package/payload/skills/loom-spec-review/.loom-runtime/README.md +13 -11
- package/payload/skills/loom-spec-review/.loom-runtime/README.zh-CN.md +92 -0
- package/payload/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_check.py +112 -4
- package/payload/skills/loom-spec-review/.loom-runtime/shared/scripts/loom_flow.py +266 -0
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# @mc-and-his-agents/loom-installer
|
|
2
2
|
|
|
3
|
+
Language: English | [中文版本](./README.zh-CN.md)
|
|
4
|
+
|
|
3
5
|
Loom npm / npx installer.
|
|
4
6
|
|
|
5
7
|
The primary install mode is the complete Loom plugin surface. Single-skill install remains available for compatibility and advanced use.
|
|
@@ -11,7 +13,7 @@ npx @mc-and-his-agents/loom-installer add plugin --host codex
|
|
|
11
13
|
npx @mc-and-his-agents/loom-installer add plugin --host claude
|
|
12
14
|
```
|
|
13
15
|
|
|
14
|
-
Single
|
|
16
|
+
Single-skill compatibility path:
|
|
15
17
|
|
|
16
18
|
```bash
|
|
17
19
|
npx @mc-and-his-agents/loom-installer add skill <skill-id> --host codex
|
|
@@ -35,13 +37,13 @@ Options:
|
|
|
35
37
|
## Requirements
|
|
36
38
|
|
|
37
39
|
- Node `>=20`
|
|
38
|
-
- Python `>=3.10
|
|
40
|
+
- Python `>=3.10`, recommended `3.11+`
|
|
39
41
|
|
|
40
42
|
## Payload Model
|
|
41
43
|
|
|
42
|
-
The published package includes a generated payload. The payload is generated from the canonical root `.codex-plugin/` and `skills/` sources during build
|
|
44
|
+
The published package includes a generated payload. The payload is generated from the canonical root `.codex-plugin/` and `skills/` sources during build, pack, and publish.
|
|
43
45
|
|
|
44
|
-
Generated payload directories are not committed to git. The build step recreates them deterministically and `check:payload` verifies rebuild stability.
|
|
46
|
+
Generated payload directories are not committed to git. The build step recreates them deterministically, and `check:payload` verifies rebuild stability.
|
|
45
47
|
|
|
46
48
|
## Release Notes
|
|
47
49
|
|
|
@@ -52,4 +54,4 @@ Release model:
|
|
|
52
54
|
- PRs run gates but do not publish npm.
|
|
53
55
|
- `main` is the only release truth source.
|
|
54
56
|
- Loom repository releases and installer npm package versions are maintained separately.
|
|
55
|
-
-
|
|
57
|
+
- Create the `loom-installer-v<version>` git tag and matching GitHub Release only after npm publish succeeds.
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# @mc-and-his-agents/loom-installer
|
|
2
|
+
|
|
3
|
+
语言:中文 | [English version](./README.md)
|
|
4
|
+
|
|
5
|
+
Loom 的 npm / npx installer。
|
|
6
|
+
|
|
7
|
+
主安装模式是完整 Loom plugin surface。单 skill 安装仍然保留,用于兼容和高级场景。
|
|
8
|
+
|
|
9
|
+
## Commands
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx @mc-and-his-agents/loom-installer add plugin --host codex
|
|
13
|
+
npx @mc-and-his-agents/loom-installer add plugin --host claude
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
单 skill 兼容路径:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx @mc-and-his-agents/loom-installer add skill <skill-id> --host codex
|
|
20
|
+
npx @mc-and-his-agents/loom-installer add skill <skill-id> --host claude
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
也可以先固定 installer 版本:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install -D @mc-and-his-agents/loom-installer
|
|
27
|
+
npx loom-installer add plugin --host codex
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Options:
|
|
31
|
+
|
|
32
|
+
- `--host codex|claude|auto`
|
|
33
|
+
- `--target <repo-root>`
|
|
34
|
+
- `--force`
|
|
35
|
+
- `--json`
|
|
36
|
+
|
|
37
|
+
## Requirements
|
|
38
|
+
|
|
39
|
+
- Node `>=20`
|
|
40
|
+
- Python `>=3.10`,推荐 `3.11+`
|
|
41
|
+
|
|
42
|
+
## Payload Model
|
|
43
|
+
|
|
44
|
+
发布包会包含生成出来的 payload。该 payload 会在 build、pack 和 publish 阶段,从 canonical root `.codex-plugin/` 与 `skills/` 源动态生成。
|
|
45
|
+
|
|
46
|
+
生成出来的 payload 目录不会提交到 git。Build 步骤会以确定性方式重建它们,`check:payload` 会校验重建稳定性。
|
|
47
|
+
|
|
48
|
+
## Release Notes
|
|
49
|
+
|
|
50
|
+
发布只会从 `main` 进行。
|
|
51
|
+
|
|
52
|
+
Release model:
|
|
53
|
+
|
|
54
|
+
- PR 会运行 gates,但不会发布 npm。
|
|
55
|
+
- `main` 是唯一 release truth source。
|
|
56
|
+
- Loom 仓库 release 与 installer npm package version 分开维护。
|
|
57
|
+
- 只有在 npm publish 成功后,才创建 `loom-installer-v<version>` git tag 和同名前缀的 GitHub Release。
|
package/package.json
CHANGED
package/payload/manifest.json
CHANGED
|
@@ -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": "
|
|
5
|
+
"source_commit": "4f6a4074d02557304018e9f063425f974d6a08cf",
|
|
6
6
|
"source_ref": "main",
|
|
7
|
-
"built_at": "2026-04-
|
|
7
|
+
"built_at": "2026-04-25T11:49:46+08:00",
|
|
8
8
|
"runtime": {
|
|
9
9
|
"python_minimum": "3.10",
|
|
10
10
|
"python_recommended": "3.11+"
|
|
@@ -363,8 +363,13 @@
|
|
|
363
363
|
},
|
|
364
364
|
{
|
|
365
365
|
"path": "plugin/loom/skills/README.md",
|
|
366
|
-
"bytes":
|
|
367
|
-
"sha256": "
|
|
366
|
+
"bytes": 4330,
|
|
367
|
+
"sha256": "907c801ec6d20ee3a4a8d90e137d432e9512aae96c765d28b055e7952e1e0dfc"
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
"path": "plugin/loom/skills/README.zh-CN.md",
|
|
371
|
+
"bytes": 3986,
|
|
372
|
+
"sha256": "90ba899919bf2329098fe72a7993edc6c5a6ba1f04ed820c2a643f89c95f65eb"
|
|
368
373
|
},
|
|
369
374
|
{
|
|
370
375
|
"path": "plugin/loom/skills/registry.json",
|
|
@@ -623,13 +628,13 @@
|
|
|
623
628
|
},
|
|
624
629
|
{
|
|
625
630
|
"path": "plugin/loom/skills/shared/scripts/loom_check.py",
|
|
626
|
-
"bytes":
|
|
627
|
-
"sha256": "
|
|
631
|
+
"bytes": 253737,
|
|
632
|
+
"sha256": "9ada27e8f88d01940e7f70112301f1c6c78ffa362f5159abba2a44ae445266ac"
|
|
628
633
|
},
|
|
629
634
|
{
|
|
630
635
|
"path": "plugin/loom/skills/shared/scripts/loom_flow.py",
|
|
631
|
-
"bytes":
|
|
632
|
-
"sha256": "
|
|
636
|
+
"bytes": 259768,
|
|
637
|
+
"sha256": "f11062993fe565160cdc2910e981e9a601d0fcafcbe16dd0072d63acf39d67b0"
|
|
633
638
|
},
|
|
634
639
|
{
|
|
635
640
|
"path": "plugin/loom/skills/shared/scripts/loom_init.py",
|
|
@@ -943,8 +948,13 @@
|
|
|
943
948
|
},
|
|
944
949
|
{
|
|
945
950
|
"path": "skills/loom-adopt/.loom-runtime/README.md",
|
|
946
|
-
"bytes":
|
|
947
|
-
"sha256": "
|
|
951
|
+
"bytes": 4330,
|
|
952
|
+
"sha256": "907c801ec6d20ee3a4a8d90e137d432e9512aae96c765d28b055e7952e1e0dfc"
|
|
953
|
+
},
|
|
954
|
+
{
|
|
955
|
+
"path": "skills/loom-adopt/.loom-runtime/README.zh-CN.md",
|
|
956
|
+
"bytes": 3986,
|
|
957
|
+
"sha256": "90ba899919bf2329098fe72a7993edc6c5a6ba1f04ed820c2a643f89c95f65eb"
|
|
948
958
|
},
|
|
949
959
|
{
|
|
950
960
|
"path": "skills/loom-adopt/.loom-runtime/registry.json",
|
|
@@ -1203,13 +1213,13 @@
|
|
|
1203
1213
|
},
|
|
1204
1214
|
{
|
|
1205
1215
|
"path": "skills/loom-adopt/.loom-runtime/shared/scripts/loom_check.py",
|
|
1206
|
-
"bytes":
|
|
1207
|
-
"sha256": "
|
|
1216
|
+
"bytes": 253737,
|
|
1217
|
+
"sha256": "9ada27e8f88d01940e7f70112301f1c6c78ffa362f5159abba2a44ae445266ac"
|
|
1208
1218
|
},
|
|
1209
1219
|
{
|
|
1210
1220
|
"path": "skills/loom-adopt/.loom-runtime/shared/scripts/loom_flow.py",
|
|
1211
|
-
"bytes":
|
|
1212
|
-
"sha256": "
|
|
1221
|
+
"bytes": 259768,
|
|
1222
|
+
"sha256": "f11062993fe565160cdc2910e981e9a601d0fcafcbe16dd0072d63acf39d67b0"
|
|
1213
1223
|
},
|
|
1214
1224
|
{
|
|
1215
1225
|
"path": "skills/loom-adopt/.loom-runtime/shared/scripts/loom_init.py",
|
|
@@ -1553,8 +1563,13 @@
|
|
|
1553
1563
|
},
|
|
1554
1564
|
{
|
|
1555
1565
|
"path": "skills/loom-handoff/.loom-runtime/README.md",
|
|
1556
|
-
"bytes":
|
|
1557
|
-
"sha256": "
|
|
1566
|
+
"bytes": 4330,
|
|
1567
|
+
"sha256": "907c801ec6d20ee3a4a8d90e137d432e9512aae96c765d28b055e7952e1e0dfc"
|
|
1568
|
+
},
|
|
1569
|
+
{
|
|
1570
|
+
"path": "skills/loom-handoff/.loom-runtime/README.zh-CN.md",
|
|
1571
|
+
"bytes": 3986,
|
|
1572
|
+
"sha256": "90ba899919bf2329098fe72a7993edc6c5a6ba1f04ed820c2a643f89c95f65eb"
|
|
1558
1573
|
},
|
|
1559
1574
|
{
|
|
1560
1575
|
"path": "skills/loom-handoff/.loom-runtime/registry.json",
|
|
@@ -1813,13 +1828,13 @@
|
|
|
1813
1828
|
},
|
|
1814
1829
|
{
|
|
1815
1830
|
"path": "skills/loom-handoff/.loom-runtime/shared/scripts/loom_check.py",
|
|
1816
|
-
"bytes":
|
|
1817
|
-
"sha256": "
|
|
1831
|
+
"bytes": 253737,
|
|
1832
|
+
"sha256": "9ada27e8f88d01940e7f70112301f1c6c78ffa362f5159abba2a44ae445266ac"
|
|
1818
1833
|
},
|
|
1819
1834
|
{
|
|
1820
1835
|
"path": "skills/loom-handoff/.loom-runtime/shared/scripts/loom_flow.py",
|
|
1821
|
-
"bytes":
|
|
1822
|
-
"sha256": "
|
|
1836
|
+
"bytes": 259768,
|
|
1837
|
+
"sha256": "f11062993fe565160cdc2910e981e9a601d0fcafcbe16dd0072d63acf39d67b0"
|
|
1823
1838
|
},
|
|
1824
1839
|
{
|
|
1825
1840
|
"path": "skills/loom-handoff/.loom-runtime/shared/scripts/loom_init.py",
|
|
@@ -2163,8 +2178,13 @@
|
|
|
2163
2178
|
},
|
|
2164
2179
|
{
|
|
2165
2180
|
"path": "skills/loom-init/.loom-runtime/README.md",
|
|
2166
|
-
"bytes":
|
|
2167
|
-
"sha256": "
|
|
2181
|
+
"bytes": 4330,
|
|
2182
|
+
"sha256": "907c801ec6d20ee3a4a8d90e137d432e9512aae96c765d28b055e7952e1e0dfc"
|
|
2183
|
+
},
|
|
2184
|
+
{
|
|
2185
|
+
"path": "skills/loom-init/.loom-runtime/README.zh-CN.md",
|
|
2186
|
+
"bytes": 3986,
|
|
2187
|
+
"sha256": "90ba899919bf2329098fe72a7993edc6c5a6ba1f04ed820c2a643f89c95f65eb"
|
|
2168
2188
|
},
|
|
2169
2189
|
{
|
|
2170
2190
|
"path": "skills/loom-init/.loom-runtime/registry.json",
|
|
@@ -2423,13 +2443,13 @@
|
|
|
2423
2443
|
},
|
|
2424
2444
|
{
|
|
2425
2445
|
"path": "skills/loom-init/.loom-runtime/shared/scripts/loom_check.py",
|
|
2426
|
-
"bytes":
|
|
2427
|
-
"sha256": "
|
|
2446
|
+
"bytes": 253737,
|
|
2447
|
+
"sha256": "9ada27e8f88d01940e7f70112301f1c6c78ffa362f5159abba2a44ae445266ac"
|
|
2428
2448
|
},
|
|
2429
2449
|
{
|
|
2430
2450
|
"path": "skills/loom-init/.loom-runtime/shared/scripts/loom_flow.py",
|
|
2431
|
-
"bytes":
|
|
2432
|
-
"sha256": "
|
|
2451
|
+
"bytes": 259768,
|
|
2452
|
+
"sha256": "f11062993fe565160cdc2910e981e9a601d0fcafcbe16dd0072d63acf39d67b0"
|
|
2433
2453
|
},
|
|
2434
2454
|
{
|
|
2435
2455
|
"path": "skills/loom-init/.loom-runtime/shared/scripts/loom_init.py",
|
|
@@ -2778,8 +2798,13 @@
|
|
|
2778
2798
|
},
|
|
2779
2799
|
{
|
|
2780
2800
|
"path": "skills/loom-merge-ready/.loom-runtime/README.md",
|
|
2781
|
-
"bytes":
|
|
2782
|
-
"sha256": "
|
|
2801
|
+
"bytes": 4330,
|
|
2802
|
+
"sha256": "907c801ec6d20ee3a4a8d90e137d432e9512aae96c765d28b055e7952e1e0dfc"
|
|
2803
|
+
},
|
|
2804
|
+
{
|
|
2805
|
+
"path": "skills/loom-merge-ready/.loom-runtime/README.zh-CN.md",
|
|
2806
|
+
"bytes": 3986,
|
|
2807
|
+
"sha256": "90ba899919bf2329098fe72a7993edc6c5a6ba1f04ed820c2a643f89c95f65eb"
|
|
2783
2808
|
},
|
|
2784
2809
|
{
|
|
2785
2810
|
"path": "skills/loom-merge-ready/.loom-runtime/registry.json",
|
|
@@ -3038,13 +3063,13 @@
|
|
|
3038
3063
|
},
|
|
3039
3064
|
{
|
|
3040
3065
|
"path": "skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_check.py",
|
|
3041
|
-
"bytes":
|
|
3042
|
-
"sha256": "
|
|
3066
|
+
"bytes": 253737,
|
|
3067
|
+
"sha256": "9ada27e8f88d01940e7f70112301f1c6c78ffa362f5159abba2a44ae445266ac"
|
|
3043
3068
|
},
|
|
3044
3069
|
{
|
|
3045
3070
|
"path": "skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_flow.py",
|
|
3046
|
-
"bytes":
|
|
3047
|
-
"sha256": "
|
|
3071
|
+
"bytes": 259768,
|
|
3072
|
+
"sha256": "f11062993fe565160cdc2910e981e9a601d0fcafcbe16dd0072d63acf39d67b0"
|
|
3048
3073
|
},
|
|
3049
3074
|
{
|
|
3050
3075
|
"path": "skills/loom-merge-ready/.loom-runtime/shared/scripts/loom_init.py",
|
|
@@ -3388,8 +3413,13 @@
|
|
|
3388
3413
|
},
|
|
3389
3414
|
{
|
|
3390
3415
|
"path": "skills/loom-pre-review/.loom-runtime/README.md",
|
|
3391
|
-
"bytes":
|
|
3392
|
-
"sha256": "
|
|
3416
|
+
"bytes": 4330,
|
|
3417
|
+
"sha256": "907c801ec6d20ee3a4a8d90e137d432e9512aae96c765d28b055e7952e1e0dfc"
|
|
3418
|
+
},
|
|
3419
|
+
{
|
|
3420
|
+
"path": "skills/loom-pre-review/.loom-runtime/README.zh-CN.md",
|
|
3421
|
+
"bytes": 3986,
|
|
3422
|
+
"sha256": "90ba899919bf2329098fe72a7993edc6c5a6ba1f04ed820c2a643f89c95f65eb"
|
|
3393
3423
|
},
|
|
3394
3424
|
{
|
|
3395
3425
|
"path": "skills/loom-pre-review/.loom-runtime/registry.json",
|
|
@@ -3648,13 +3678,13 @@
|
|
|
3648
3678
|
},
|
|
3649
3679
|
{
|
|
3650
3680
|
"path": "skills/loom-pre-review/.loom-runtime/shared/scripts/loom_check.py",
|
|
3651
|
-
"bytes":
|
|
3652
|
-
"sha256": "
|
|
3681
|
+
"bytes": 253737,
|
|
3682
|
+
"sha256": "9ada27e8f88d01940e7f70112301f1c6c78ffa362f5159abba2a44ae445266ac"
|
|
3653
3683
|
},
|
|
3654
3684
|
{
|
|
3655
3685
|
"path": "skills/loom-pre-review/.loom-runtime/shared/scripts/loom_flow.py",
|
|
3656
|
-
"bytes":
|
|
3657
|
-
"sha256": "
|
|
3686
|
+
"bytes": 259768,
|
|
3687
|
+
"sha256": "f11062993fe565160cdc2910e981e9a601d0fcafcbe16dd0072d63acf39d67b0"
|
|
3658
3688
|
},
|
|
3659
3689
|
{
|
|
3660
3690
|
"path": "skills/loom-pre-review/.loom-runtime/shared/scripts/loom_init.py",
|
|
@@ -3998,8 +4028,13 @@
|
|
|
3998
4028
|
},
|
|
3999
4029
|
{
|
|
4000
4030
|
"path": "skills/loom-resume/.loom-runtime/README.md",
|
|
4001
|
-
"bytes":
|
|
4002
|
-
"sha256": "
|
|
4031
|
+
"bytes": 4330,
|
|
4032
|
+
"sha256": "907c801ec6d20ee3a4a8d90e137d432e9512aae96c765d28b055e7952e1e0dfc"
|
|
4033
|
+
},
|
|
4034
|
+
{
|
|
4035
|
+
"path": "skills/loom-resume/.loom-runtime/README.zh-CN.md",
|
|
4036
|
+
"bytes": 3986,
|
|
4037
|
+
"sha256": "90ba899919bf2329098fe72a7993edc6c5a6ba1f04ed820c2a643f89c95f65eb"
|
|
4003
4038
|
},
|
|
4004
4039
|
{
|
|
4005
4040
|
"path": "skills/loom-resume/.loom-runtime/registry.json",
|
|
@@ -4258,13 +4293,13 @@
|
|
|
4258
4293
|
},
|
|
4259
4294
|
{
|
|
4260
4295
|
"path": "skills/loom-resume/.loom-runtime/shared/scripts/loom_check.py",
|
|
4261
|
-
"bytes":
|
|
4262
|
-
"sha256": "
|
|
4296
|
+
"bytes": 253737,
|
|
4297
|
+
"sha256": "9ada27e8f88d01940e7f70112301f1c6c78ffa362f5159abba2a44ae445266ac"
|
|
4263
4298
|
},
|
|
4264
4299
|
{
|
|
4265
4300
|
"path": "skills/loom-resume/.loom-runtime/shared/scripts/loom_flow.py",
|
|
4266
|
-
"bytes":
|
|
4267
|
-
"sha256": "
|
|
4301
|
+
"bytes": 259768,
|
|
4302
|
+
"sha256": "f11062993fe565160cdc2910e981e9a601d0fcafcbe16dd0072d63acf39d67b0"
|
|
4268
4303
|
},
|
|
4269
4304
|
{
|
|
4270
4305
|
"path": "skills/loom-resume/.loom-runtime/shared/scripts/loom_init.py",
|
|
@@ -4608,8 +4643,13 @@
|
|
|
4608
4643
|
},
|
|
4609
4644
|
{
|
|
4610
4645
|
"path": "skills/loom-retire/.loom-runtime/README.md",
|
|
4611
|
-
"bytes":
|
|
4612
|
-
"sha256": "
|
|
4646
|
+
"bytes": 4330,
|
|
4647
|
+
"sha256": "907c801ec6d20ee3a4a8d90e137d432e9512aae96c765d28b055e7952e1e0dfc"
|
|
4648
|
+
},
|
|
4649
|
+
{
|
|
4650
|
+
"path": "skills/loom-retire/.loom-runtime/README.zh-CN.md",
|
|
4651
|
+
"bytes": 3986,
|
|
4652
|
+
"sha256": "90ba899919bf2329098fe72a7993edc6c5a6ba1f04ed820c2a643f89c95f65eb"
|
|
4613
4653
|
},
|
|
4614
4654
|
{
|
|
4615
4655
|
"path": "skills/loom-retire/.loom-runtime/registry.json",
|
|
@@ -4868,13 +4908,13 @@
|
|
|
4868
4908
|
},
|
|
4869
4909
|
{
|
|
4870
4910
|
"path": "skills/loom-retire/.loom-runtime/shared/scripts/loom_check.py",
|
|
4871
|
-
"bytes":
|
|
4872
|
-
"sha256": "
|
|
4911
|
+
"bytes": 253737,
|
|
4912
|
+
"sha256": "9ada27e8f88d01940e7f70112301f1c6c78ffa362f5159abba2a44ae445266ac"
|
|
4873
4913
|
},
|
|
4874
4914
|
{
|
|
4875
4915
|
"path": "skills/loom-retire/.loom-runtime/shared/scripts/loom_flow.py",
|
|
4876
|
-
"bytes":
|
|
4877
|
-
"sha256": "
|
|
4916
|
+
"bytes": 259768,
|
|
4917
|
+
"sha256": "f11062993fe565160cdc2910e981e9a601d0fcafcbe16dd0072d63acf39d67b0"
|
|
4878
4918
|
},
|
|
4879
4919
|
{
|
|
4880
4920
|
"path": "skills/loom-retire/.loom-runtime/shared/scripts/loom_init.py",
|
|
@@ -5218,8 +5258,13 @@
|
|
|
5218
5258
|
},
|
|
5219
5259
|
{
|
|
5220
5260
|
"path": "skills/loom-review/.loom-runtime/README.md",
|
|
5221
|
-
"bytes":
|
|
5222
|
-
"sha256": "
|
|
5261
|
+
"bytes": 4330,
|
|
5262
|
+
"sha256": "907c801ec6d20ee3a4a8d90e137d432e9512aae96c765d28b055e7952e1e0dfc"
|
|
5263
|
+
},
|
|
5264
|
+
{
|
|
5265
|
+
"path": "skills/loom-review/.loom-runtime/README.zh-CN.md",
|
|
5266
|
+
"bytes": 3986,
|
|
5267
|
+
"sha256": "90ba899919bf2329098fe72a7993edc6c5a6ba1f04ed820c2a643f89c95f65eb"
|
|
5223
5268
|
},
|
|
5224
5269
|
{
|
|
5225
5270
|
"path": "skills/loom-review/.loom-runtime/registry.json",
|
|
@@ -5478,13 +5523,13 @@
|
|
|
5478
5523
|
},
|
|
5479
5524
|
{
|
|
5480
5525
|
"path": "skills/loom-review/.loom-runtime/shared/scripts/loom_check.py",
|
|
5481
|
-
"bytes":
|
|
5482
|
-
"sha256": "
|
|
5526
|
+
"bytes": 253737,
|
|
5527
|
+
"sha256": "9ada27e8f88d01940e7f70112301f1c6c78ffa362f5159abba2a44ae445266ac"
|
|
5483
5528
|
},
|
|
5484
5529
|
{
|
|
5485
5530
|
"path": "skills/loom-review/.loom-runtime/shared/scripts/loom_flow.py",
|
|
5486
|
-
"bytes":
|
|
5487
|
-
"sha256": "
|
|
5531
|
+
"bytes": 259768,
|
|
5532
|
+
"sha256": "f11062993fe565160cdc2910e981e9a601d0fcafcbe16dd0072d63acf39d67b0"
|
|
5488
5533
|
},
|
|
5489
5534
|
{
|
|
5490
5535
|
"path": "skills/loom-review/.loom-runtime/shared/scripts/loom_init.py",
|
|
@@ -5828,8 +5873,13 @@
|
|
|
5828
5873
|
},
|
|
5829
5874
|
{
|
|
5830
5875
|
"path": "skills/loom-spec-review/.loom-runtime/README.md",
|
|
5831
|
-
"bytes":
|
|
5832
|
-
"sha256": "
|
|
5876
|
+
"bytes": 4330,
|
|
5877
|
+
"sha256": "907c801ec6d20ee3a4a8d90e137d432e9512aae96c765d28b055e7952e1e0dfc"
|
|
5878
|
+
},
|
|
5879
|
+
{
|
|
5880
|
+
"path": "skills/loom-spec-review/.loom-runtime/README.zh-CN.md",
|
|
5881
|
+
"bytes": 3986,
|
|
5882
|
+
"sha256": "90ba899919bf2329098fe72a7993edc6c5a6ba1f04ed820c2a643f89c95f65eb"
|
|
5833
5883
|
},
|
|
5834
5884
|
{
|
|
5835
5885
|
"path": "skills/loom-spec-review/.loom-runtime/registry.json",
|
|
@@ -6088,13 +6138,13 @@
|
|
|
6088
6138
|
},
|
|
6089
6139
|
{
|
|
6090
6140
|
"path": "skills/loom-spec-review/.loom-runtime/shared/scripts/loom_check.py",
|
|
6091
|
-
"bytes":
|
|
6092
|
-
"sha256": "
|
|
6141
|
+
"bytes": 253737,
|
|
6142
|
+
"sha256": "9ada27e8f88d01940e7f70112301f1c6c78ffa362f5159abba2a44ae445266ac"
|
|
6093
6143
|
},
|
|
6094
6144
|
{
|
|
6095
6145
|
"path": "skills/loom-spec-review/.loom-runtime/shared/scripts/loom_flow.py",
|
|
6096
|
-
"bytes":
|
|
6097
|
-
"sha256": "
|
|
6146
|
+
"bytes": 259768,
|
|
6147
|
+
"sha256": "f11062993fe565160cdc2910e981e9a601d0fcafcbe16dd0072d63acf39d67b0"
|
|
6098
6148
|
},
|
|
6099
6149
|
{
|
|
6100
6150
|
"path": "skills/loom-spec-review/.loom-runtime/shared/scripts/loom_init.py",
|
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
# Skills
|
|
2
2
|
|
|
3
|
+
Language: English | [中文版本](./README.zh-CN.md)
|
|
4
|
+
|
|
3
5
|
`skills/` is the canonical skills library for Loom.
|
|
4
6
|
|
|
5
|
-
When Loom is installed through Codex native skill discovery, a host plugin, or the npm installer, this directory is the user-facing execution surface.
|
|
7
|
+
When Loom is installed through Codex native skill discovery, a host plugin, or the npm installer, this directory is the user-facing execution surface. Methodology and architecture documents stay behind this layer; users should enter through skills instead of internal governance docs.
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
By default, start from `loom-init`. It is the unique root entry for Loom and is responsible for two things:
|
|
8
10
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
+
- initialize Loom or retrofit Loom into an existing repository
|
|
12
|
+
- route the operator to the correct scenario skill when no explicit skill was named
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
The `skills/` layer consumes the current strong-governance control plane with these fixed constraints:
|
|
13
15
|
|
|
14
|
-
- `Work Item`
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
- `status control plane`
|
|
18
|
-
- profile maturity
|
|
19
|
-
- merge
|
|
16
|
+
- `Work Item` is the only formal execution entry
|
|
17
|
+
- tasks that hit the formal spec path must pass the `spec gate` first
|
|
18
|
+
- the release chain converges on `spec gate -> build gate -> review gate -> merge gate`
|
|
19
|
+
- `status control plane` only reads and summarizes fact-chain and host control-plane truth, and does not author a second source of truth
|
|
20
|
+
- profile maturity upgrades through `light -> standard -> strong`, while item maturity still advances through the governance state machine
|
|
21
|
+
- merge is controlled by GitHub or an equivalent host control plane; Loom only consumes and summarizes the prerequisites for GitHub controlled merge
|
|
20
22
|
|
|
21
23
|
## Skills Library
|
|
22
24
|
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Skills
|
|
2
|
+
|
|
3
|
+
语言:中文 | [English version](./README.md)
|
|
4
|
+
|
|
5
|
+
`skills/` 是 Loom 的 canonical skills library。
|
|
6
|
+
|
|
7
|
+
当 Loom 通过 Codex 原生 skill discovery、宿主 plugin 或 npm installer 安装时,这个目录就是面向用户的执行表面。方法论和架构文档位于这层之后,用户通常应该从 skills 进入,而不是先读内部治理文档。
|
|
8
|
+
|
|
9
|
+
默认从 `loom-init` 开始。它是 Loom 唯一的 root entry,负责两件事:
|
|
10
|
+
|
|
11
|
+
- 初始化 Loom,或把 Loom retrofit 进既有仓库
|
|
12
|
+
- 在没有显式指定场景 skill 时,根据任务信号把执行者导向正确场景
|
|
13
|
+
|
|
14
|
+
当前 `skills/` 层消费的是新的强治理控制面,固定约束如下:
|
|
15
|
+
|
|
16
|
+
- `Work Item` 是唯一正式执行入口
|
|
17
|
+
- 命中 formal spec 的事项,必须先通过 `spec gate`
|
|
18
|
+
- 执行放行链固定收敛为 `spec gate -> build gate -> review gate -> merge gate`
|
|
19
|
+
- `status control plane` 只读取并汇总事实链与宿主控制面,不新增 authored 真相
|
|
20
|
+
- profile maturity 按 `light -> standard -> strong` 升级;事项成熟度仍按治理状态机推进
|
|
21
|
+
- merge 由 GitHub 或等价宿主控制面受控执行;Loom 只消费并汇总 `GitHub controlled merge` 的前置条件
|
|
22
|
+
|
|
23
|
+
## Skills Library
|
|
24
|
+
|
|
25
|
+
Loom 暴露一个 root entry 和八个 scenario skills:
|
|
26
|
+
|
|
27
|
+
| Skill | 作用 |
|
|
28
|
+
| --- | --- |
|
|
29
|
+
| `loom-init` | Root entry;负责初始化和路由。 |
|
|
30
|
+
| `loom-adopt` | 初始化新仓库,或把 Loom retrofit 到既有仓库。 |
|
|
31
|
+
| `loom-resume` | 恢复上下文并继续执行。 |
|
|
32
|
+
| `loom-pre-review` | 在正式 review 前检查 readiness。 |
|
|
33
|
+
| `loom-spec-review` | 审查 formal spec 路径,并产出后续 gate 消费的 `spec gate`。 |
|
|
34
|
+
| `loom-review` | 执行正式 review 并记录输出。 |
|
|
35
|
+
| `loom-handoff` | 写出 handoff 点和下一步状态。 |
|
|
36
|
+
| `loom-retire` | 清理或退场当前工作现场。 |
|
|
37
|
+
| `loom-merge-ready` | 在 GitHub controlled merge 前执行最终 `merge gate` 汇总。 |
|
|
38
|
+
|
|
39
|
+
## Entry Model
|
|
40
|
+
|
|
41
|
+
Loom 支持两种入口模式:
|
|
42
|
+
|
|
43
|
+
- 显式入口:用户直接指定某个场景 skill。
|
|
44
|
+
- 路由入口:用户从 `loom-init` 开始,由 `loom-init` 根据任务信号选择场景。
|
|
45
|
+
|
|
46
|
+
如果任务信号不完整、存在冲突,或缺少稳定执行所需的最小输入,应回退到 `loom-init`,并要求补齐最小缺失信号。稳定路由规则见 [route-matrix.md](./route-matrix.md)。
|
|
47
|
+
|
|
48
|
+
路由只决定场景 skill,不替代稳定控制面:
|
|
49
|
+
|
|
50
|
+
- 执行入口仍然绑定在 `Work Item`
|
|
51
|
+
- gate 仍然绑定在共享 `gate chain`
|
|
52
|
+
- 状态读取仍然绑定在共享 `status control plane`
|
|
53
|
+
- merge 仍然由宿主平台控制面执行
|
|
54
|
+
|
|
55
|
+
## Install Model
|
|
56
|
+
|
|
57
|
+
主安装路径是完整 Loom skills library:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
git clone https://github.com/MC-and-his-Agents/Loom.git ~/.codex/loom
|
|
61
|
+
mkdir -p ~/.agents/skills
|
|
62
|
+
ln -s ~/.codex/loom/skills ~/.agents/skills/loom
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
npm installer 也可以安装完整 plugin surface:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npx @mc-and-his-agents/loom-installer add plugin --host codex
|
|
69
|
+
npx @mc-and-his-agents/loom-installer add plugin --host claude
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Advanced / Compatibility
|
|
73
|
+
|
|
74
|
+
单 skill 安装保留为高级兼容路径,但不再是默认用户路径:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npx @mc-and-his-agents/loom-installer add skill <skill-id> --host codex
|
|
78
|
+
npx @mc-and-his-agents/loom-installer add skill <skill-id> --host claude
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
单独安装的 skill 只会向宿主暴露该 skill 本身。除非安装的就是 `loom-init`,否则它不会暴露完整的 `loom-init` 路由面,也不应被表述成完整的 Loom 体验。
|
|
82
|
+
|
|
83
|
+
## Internal Contracts
|
|
84
|
+
|
|
85
|
+
以下文件属于 runtime contract,应保持稳定:
|
|
86
|
+
|
|
87
|
+
- [registry.json](./registry.json)
|
|
88
|
+
- [install-layout.json](./install-layout.json)
|
|
89
|
+
- [upgrade-contract.json](./upgrade-contract.json)
|
|
90
|
+
- [distribution-and-adapter-contract.md](./distribution-and-adapter-contract.md)
|
|
91
|
+
|
|
92
|
+
共享 runtime scripts、assets 和 references 位于 [shared/](./shared/)。它们会被 scenario skills 和 release tooling 一起消费,用来生成 plugin 或 single-skill payload。
|