@mmerterden/multi-agent-pipeline 20.35.0 → 20.36.0
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/CHANGELOG.md +14 -0
- package/README.md +6 -5
- package/README.tr.md +6 -5
- package/docs/architecture.md +3 -3
- package/docs/ecosystem.md +5 -5
- package/docs/facts.json +4 -4
- package/install/catalog-history.json +1 -1
- package/manifest.json +29 -27
- package/package.json +5 -1
- package/pipeline/commands/multi-agent/office-pair/SKILL.md +66 -0
- package/pipeline/commands/multi-agent/office-status/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/sync/SKILL.md +3 -3
- package/pipeline/lib/qr-code.mjs +26 -0
- package/pipeline/multi-agent-refs/cross-cli-contract.md +4 -4
- package/pipeline/multi-agent-refs/help/en.md +1 -0
- package/pipeline/multi-agent-refs/help/tr.md +1 -0
- package/pipeline/scripts/office-pair.mjs +40 -9
- package/pipeline/skills/.skill-manifest.json +10 -6
- package/pipeline/skills/.skills-index.json +15 -4
- package/pipeline/skills/shared/README.md +4 -3
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +1 -1
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-office-pair/SKILL.md +19 -0
- package/pipeline/skills/shared/core/multi-agent-office-status/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +3 -3
- package/pipeline/skills/skills-index.md +2 -1
package/manifest.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "20.
|
|
4
|
-
"commit": "
|
|
5
|
-
"generatedAt": "2026-10-
|
|
3
|
+
"version": "20.36.0",
|
|
4
|
+
"commit": "709349b70735b243f1e210d178029749f650a080",
|
|
5
|
+
"generatedAt": "2026-10-31T08:40:50.392Z",
|
|
6
6
|
"algorithm": "sha256",
|
|
7
|
-
"fileCount":
|
|
7
|
+
"fileCount": 1634,
|
|
8
8
|
"files": {
|
|
9
|
-
"CHANGELOG.md": "
|
|
9
|
+
"CHANGELOG.md": "5cb708653af090fa81082aec8f7e6f0e65ec073d0f1ab661eeb246bc3084c5b6",
|
|
10
10
|
"LICENSE": "8d8c51aaf1e1538b180c69965fa038db71be86798cc3e26a143bebfefe16a43e",
|
|
11
|
-
"README.md": "
|
|
12
|
-
"README.tr.md": "
|
|
11
|
+
"README.md": "1fcdb02a967cf565148fe15996db7111c2ae3cf47bedd156fa7c7b18480c7318",
|
|
12
|
+
"README.tr.md": "078d20b24d887be0e027579323d342f8ec561597cae2b37b8e23c90e60a41b3b",
|
|
13
13
|
"SECURITY.md": "0eb89553ddcfc56bfe9712315b55a6630ee2f579631aaeccd6ad24f8ac769a0b",
|
|
14
14
|
"docs/FIGMA_PIPELINE.md": "ea01f3ea5fef1a9cb316040a2d416fcf87dd4f2a14b5497aa00994a0b5dc7e6a",
|
|
15
15
|
"docs/adr/0001-three-model-triage.md": "79a6f1025469f607a5859add21854052d7433bc213f4aceee2e159b613eeb6a1",
|
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
"docs/adr/0017-change-impact-from-the-graph.md": "b8fab10ea308f833a8bca7fa566910a24ff4d2af6975b0f6296b217b0783baa6",
|
|
32
32
|
"docs/adr/0018-cross-repo-links-not-a-global-graph.md": "de90b938cc7a6a65c58b9be7bad7119e45882990dc573141787c9564d6753807",
|
|
33
33
|
"docs/adr/README.md": "429f36204220eb003c77d9ffa03f77f0709123c0bc4b931fc9057d5bb5627845",
|
|
34
|
-
"docs/architecture.md": "
|
|
34
|
+
"docs/architecture.md": "94fd5b00373e18e31cc5c79f0c69c3230ee90a81dfe4986d9087a25e106a9f2a",
|
|
35
35
|
"docs/best-practices.md": "f8b75b0d38b5896a6a852bb30a1edddeb24dab8b5b7b1d9313290e1241c72024",
|
|
36
|
-
"docs/ecosystem.md": "
|
|
36
|
+
"docs/ecosystem.md": "c5fb0962faf8cc06d4b99e8e7c13e6da6475983bcb53336770c2b4b725926d78",
|
|
37
37
|
"docs/engineering.md": "550528cd47c7d2c921729c68d0782a00ac8e77a4bdfec479f6749f9c3235d188",
|
|
38
|
-
"docs/facts.json": "
|
|
38
|
+
"docs/facts.json": "a65b678121e4dc2ca32630f217d5371396bcdaa24f6a296b9dc8dbbb4830ed34",
|
|
39
39
|
"docs/features.md": "7b10b0c960bf7316fa4a4845df5246576f017766b176488212069e7b9fa83664",
|
|
40
40
|
"docs/performance.md": "bbf2f3922c25dcba0c1a9e69ef420e3871a729af5b35009a49b48a5d3c5cd151",
|
|
41
41
|
"docs/recovery-guide.md": "59a8f1b66b34cb9ff5507b3d54dac3b9915e184aa044d9c758d18cac818d510e",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"install/_unattended-profile.mjs": "80125806da173f3b596e049f1a358e37fedf79d682e0277ae1faec2fee9ef499",
|
|
55
55
|
"install/_usage-lifecycle.mjs": "4b010c4e75d6f8e13b58d80a93cc9407f42ccde781c9ed12dcb8e7faf05e526c",
|
|
56
56
|
"install/_xcode-skills.mjs": "1a7e20f1e6743324b941c5d3ecac9f94c65fff1534ffd9c63b39cbea4f8d101a",
|
|
57
|
-
"install/catalog-history.json": "
|
|
57
|
+
"install/catalog-history.json": "4f0947e1d6c464bd8af02dc8e172911c2da8a211dce0f8eabb06e4a9de4c2bc5",
|
|
58
58
|
"install/claude.mjs": "c85300268d02cf7c27a88d53188e6a3646b4f09bdb476556eada5b68eeac2b5e",
|
|
59
59
|
"install/codex.mjs": "06f13970c28d446945be1a2a20ef6afcea8d5e43740c4a00a1d044d8a4285114",
|
|
60
60
|
"install/copilot.mjs": "335ad19e9e216dbcad3024b8931ed6e0b84baba3c5b3a4b37e15c7dd19a1edb5",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"install/templates/multi-agent-autopilot-awake.plist.template": "ddd25c76c56fcbb38a89de8e35637372d70ace993d6bc487a88ca9cfb702fe1f",
|
|
67
67
|
"install/templates/multi-agent-autopilot.plist.template": "122c8a61cd927edd99375d6e3da40f1d42bcceed5b6641785c8b28bb930bc77e",
|
|
68
68
|
"install/unattended-profile-legacy.json": "f52e86b998956f09ad306b1735a6c10b58580d7082d8a55665a4c6bb15c3aa1f",
|
|
69
|
-
"package.json": "
|
|
69
|
+
"package.json": "68e7f6676a29d597d0b29673ddfbe6926e6f6ec57d5fe9569a58c671e04b72bc",
|
|
70
70
|
"pipeline/agents/android-architect.md": "11fb74543cb0ebcf9525ca6654fe95d53da7229e0bf4a1149b31fd9005abc453",
|
|
71
71
|
"pipeline/agents/backend-architect.md": "b02a606c301e4714131aed70ae6d16eeb77fbc819a001e2752cff2488d4246de",
|
|
72
72
|
"pipeline/agents/bulk-reader.md": "5619d5fb3dee26da7b4c5b1f55d22584c9404e350c221d13bc25a70d88f75f8c",
|
|
@@ -114,7 +114,8 @@
|
|
|
114
114
|
"pipeline/commands/multi-agent/model/SKILL.md": "98cf3a439f79566504086ef2a1b95d5d6a6368b56edeb8c7868a56b06a6ce441",
|
|
115
115
|
"pipeline/commands/multi-agent/office-off/SKILL.md": "0a23c1db500c84b75e93813ff51e67a22bc61e367d6970cd5e5e47a69ff6450c",
|
|
116
116
|
"pipeline/commands/multi-agent/office-on/SKILL.md": "066b5859492ddd52b1fb8de3abcb3a7f745786fd8245b1a5930c2c8f10ed67b2",
|
|
117
|
-
"pipeline/commands/multi-agent/office-
|
|
117
|
+
"pipeline/commands/multi-agent/office-pair/SKILL.md": "cbd68de7ba552069868865cf8d816f1aeb2c7ffcf4b4c430b2e3f315f7c6cd05",
|
|
118
|
+
"pipeline/commands/multi-agent/office-status/SKILL.md": "c6b2ebc0d9253aae85ec0e2f87abeec4482078d233f641cede9eeb897e81ccf8",
|
|
118
119
|
"pipeline/commands/multi-agent/postmortem/SKILL.md": "6fb125f69961a8168fc42707aa57810c60c10555d3947aaa1bc4748a72b76271",
|
|
119
120
|
"pipeline/commands/multi-agent/prune-logs/SKILL.md": "1b72032a794d886973e67600b82cc8e36510ec2bd8911e5f755f75f813da4b84",
|
|
120
121
|
"pipeline/commands/multi-agent/prune-prompts/SKILL.md": "d46b68420d546b1ba285de4970f97165eadb12b26f88d8fe614064f15ce2c490",
|
|
@@ -142,7 +143,7 @@
|
|
|
142
143
|
"pipeline/commands/multi-agent/status/SKILL.md": "b08338841a5282f8ae2494751001aa31cbf4829146a58ed2c395b1c062b48443",
|
|
143
144
|
"pipeline/commands/multi-agent/steer/SKILL.md": "a1325e548bb0296ad3994cbfb48c2955a13f27b010f7c0afaf5c703c85553f50",
|
|
144
145
|
"pipeline/commands/multi-agent/store-ready/SKILL.md": "927181a7ea4890ea2ce3e8523c2f0563829e8827aa6ed92884b76a84521a378f",
|
|
145
|
-
"pipeline/commands/multi-agent/sync/SKILL.md": "
|
|
146
|
+
"pipeline/commands/multi-agent/sync/SKILL.md": "6cc0021f8cb5fdb05c6f92361b1ec5ec5e5c7b31d272a759728072280b713cde",
|
|
146
147
|
"pipeline/commands/multi-agent/test-accessibility/SKILL.md": "d62992541303a0776ca088d5f3d5475108fd3fba5e25af04efb3ea4bbbd1fe21",
|
|
147
148
|
"pipeline/commands/multi-agent/test-dark-mode/SKILL.md": "6bfe158c94f76fc6f4d06454978d0c5cad6ec00645ab48c1d1cee15ad93ae095",
|
|
148
149
|
"pipeline/commands/multi-agent/test-dynamic-type/SKILL.md": "c093fe1a78a4266ad4cf1e48b3cc233d9abd7e1c524d0b8e5db0c81d8b4d58fd",
|
|
@@ -232,7 +233,7 @@
|
|
|
232
233
|
"pipeline/lib/post-pr-review.sh": "8f508753b4b820eb85d490a6458c13279a5f6a69c7175c9f6edc5fdadc5ffb42",
|
|
233
234
|
"pipeline/lib/pr-request-location.mjs": "622ca4705ec8ee00e0a4609657d8ee684fcdc077f3099ab312cf41b5b0c41efd",
|
|
234
235
|
"pipeline/lib/prefs-value.mjs": "7e7ca201049f2facff57bda5a5e7ee8fa057d0e1e082a212069533159b5f798d",
|
|
235
|
-
"pipeline/lib/qr-code.mjs": "
|
|
236
|
+
"pipeline/lib/qr-code.mjs": "518f0aa803b4455ec56135109845527240291bdb87c1586da7c0e5766e2582b1",
|
|
236
237
|
"pipeline/lib/redact.mjs": "443034132ec8163e3b923ca2b8d5304d575c02bd7396523ee677f36444adc7f7",
|
|
237
238
|
"pipeline/lib/regular-file.mjs": "084dd2c98a664a1e4a937757cc5e5e5d7e162b6aa422f8c7cfdb27f7834c6cbc",
|
|
238
239
|
"pipeline/lib/repo-cache.sh": "82bbdd3d61746042ad5341554a1077098d4b56f15caf6c5cc092377a273c8f45",
|
|
@@ -298,7 +299,7 @@
|
|
|
298
299
|
"pipeline/multi-agent-refs/component-dispatch.md": "2ab9094aa716397e4840cd48f736c3f4fc3e7c4f9ccc5c7c7c52f9e8b0a28fb5",
|
|
299
300
|
"pipeline/multi-agent-refs/component-generation.md": "04fdb3fd0f1c129e1df8243184a3225cebd9c4f63511d6015eb356a92eda8891",
|
|
300
301
|
"pipeline/multi-agent-refs/conventions-defaults.md": "c7ef37d269a49aaa05b096085edb318ce67870aa9a75b7afe219df1af3aa81b6",
|
|
301
|
-
"pipeline/multi-agent-refs/cross-cli-contract.md": "
|
|
302
|
+
"pipeline/multi-agent-refs/cross-cli-contract.md": "7601a7fd4b4faa0b48ed1e7aea0efb524ffcc7c87429ab4b182e1cb152a8bb45",
|
|
302
303
|
"pipeline/multi-agent-refs/design-check/build-launch.md": "0ac64d07ef7389e22f7443f79c70a0a4f8bb87dcff6dbc94c63e034febe194ea",
|
|
303
304
|
"pipeline/multi-agent-refs/design-check/compare.md": "2a0a89542a8bfefcfeaf1068dd91edb6947392f911f23e8b4857e4ace8fd15d7",
|
|
304
305
|
"pipeline/multi-agent-refs/design-check/drive-capture.md": "dee4cd6230a401bc9e9dc82fc08109803dd2630c872c5b77a43cf17db062b05f",
|
|
@@ -366,8 +367,8 @@
|
|
|
366
367
|
"pipeline/multi-agent-refs/features/visual-evidence.md": "b7154dfe41f5069ad74883c73d04a4f7e5431c7e654151ab041b2981cd4ab134",
|
|
367
368
|
"pipeline/multi-agent-refs/features/worktree-finalize.md": "628f627b94927a9c4a5b0b261fed1f0ffa42d4155390d57b5e56566a26ed8193",
|
|
368
369
|
"pipeline/multi-agent-refs/generate-issue.md": "3e5182b9d6848e852ee3c7f397687f45c05e0861360cb77185c0a27d503a685c",
|
|
369
|
-
"pipeline/multi-agent-refs/help/en.md": "
|
|
370
|
-
"pipeline/multi-agent-refs/help/tr.md": "
|
|
370
|
+
"pipeline/multi-agent-refs/help/en.md": "1cf543d53ff3ba3284d27e397ace3613f0c9a347716bb1ca6e7045e23c3044b2",
|
|
371
|
+
"pipeline/multi-agent-refs/help/tr.md": "acd7aee2a451be5e1fab3025f0355f7936b74ee9e5c37ca3d061e252841abd5b",
|
|
371
372
|
"pipeline/multi-agent-refs/issue-jira-triad.md": "a12f4e3b75badf8a466e0c3531a5f0e12e44a1dd7799522fb03ff11068ce391d",
|
|
372
373
|
"pipeline/multi-agent-refs/keychain.md": "04053ef9857b6a788ce87243de443b7418bb7c7fd2a931a349eb91a525b94d25",
|
|
373
374
|
"pipeline/multi-agent-refs/knowledge.md": "828031cb3a7c88bbffc492d9dd60ef67c22d1b4b8787bdb9a0ddf68e13543fb6",
|
|
@@ -828,7 +829,7 @@
|
|
|
828
829
|
"pipeline/scripts/office-credentials.mjs": "4db4a3d9fc0ffb670ab2df8ad55f13cdb6cf4f34dc123f6bf87785381a9ff38b",
|
|
829
830
|
"pipeline/scripts/office-ledger.mjs": "e14d20d43765d7e218c8c06166b4654cd1d214cd1cc97adee6418f46c422bc42",
|
|
830
831
|
"pipeline/scripts/office-memory.mjs": "d690ee1879d12bad5aea0eb66d5f829c81705c024d4417ae8dd99ad440c9499f",
|
|
831
|
-
"pipeline/scripts/office-pair.mjs": "
|
|
832
|
+
"pipeline/scripts/office-pair.mjs": "89811e88d78910069326f0ee3f325fce6b78734f133535880a7c68b9caa72d04",
|
|
832
833
|
"pipeline/scripts/office-prune.mjs": "f779009bd0daf16359eb03d075aa1fa70202b45473e51f0ead52b21d8bb16fb1",
|
|
833
834
|
"pipeline/scripts/office-remote-client.mjs": "67532b6a8ca5e1393633d600e7974b77b2d10b18a292136d5d9aaf38a8d65704",
|
|
834
835
|
"pipeline/scripts/office-settings.mjs": "a85c747ce58697009ca4d1c03adc803778d73e34d254ac22a0ec866dc8069d50",
|
|
@@ -956,12 +957,12 @@
|
|
|
956
957
|
"pipeline/scripts/worktrees.mjs": "90dfd09b70fffe9b56c331a4ae2692cc248f4898f4ee6aee4239ef0b20888a90",
|
|
957
958
|
"pipeline/scripts/write-state.mjs": "7ae6d89c232a2d0c7ef0d28ead962693db59e34522825c0fc22fcfc61e00b793",
|
|
958
959
|
"pipeline/scripts/write-store-config.mjs": "b994a061f6febb2ca3d396074d8b51d2c1c1f991d3072d321703380da3639a56",
|
|
959
|
-
"pipeline/skills/.skill-manifest.json": "
|
|
960
|
-
"pipeline/skills/.skills-index.json": "
|
|
961
|
-
"pipeline/skills/shared/README.md": "
|
|
962
|
-
"pipeline/skills/shared/core/apple-archive-compliance/SKILL.md": "
|
|
960
|
+
"pipeline/skills/.skill-manifest.json": "af096df8b00fc224db441af465de1943bf045e5ee798ec8ef86fd1d2a02d6b90",
|
|
961
|
+
"pipeline/skills/.skills-index.json": "f3f87cbb1751f4e57b3da7b2e5ffe4ad8924e0e9e1795b05ed376b6bf4bef00c",
|
|
962
|
+
"pipeline/skills/shared/README.md": "cdf53045db5c82c93c508b084dc3582615343e1a0408889cb3cfe26f5458ac78",
|
|
963
|
+
"pipeline/skills/shared/core/apple-archive-compliance/SKILL.md": "2bffd220fd3e3b59160f5b6834633c3ad144c89b192556f01b9405da706b221b",
|
|
963
964
|
"pipeline/skills/shared/core/apple-archive-compliance/references/rules.yml": "7b286304d49145ea3be9a42edd3fa0e8b626eca25082b21cd66cc412371745dd",
|
|
964
|
-
"pipeline/skills/shared/core/google-play-compliance/SKILL.md": "
|
|
965
|
+
"pipeline/skills/shared/core/google-play-compliance/SKILL.md": "5da8befd481459823fd5945d11215e70d751bad14b71b6050417a550282a4f03",
|
|
965
966
|
"pipeline/skills/shared/core/google-play-compliance/references/rules.yml": "c28999c7800027d0f484ea6de2a98674a6c79cd22b15a3230333007356c8652c",
|
|
966
967
|
"pipeline/skills/shared/core/multi-agent-analysis-jira/SKILL.md": "485a44b117a5502ea54ff0830584cb69d7622a77f13e326e4684eb9e693de8a0",
|
|
967
968
|
"pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md": "9e405b0f7403c72b00a7ddf1e4b8518cfe37feb31d91d8e5ba70f0341efa5d0c",
|
|
@@ -994,7 +995,8 @@
|
|
|
994
995
|
"pipeline/skills/shared/core/multi-agent-model/SKILL.md": "57ba710657d74176b0f19d4a97d3183df1f7b0c056eb1eef2792308914be836c",
|
|
995
996
|
"pipeline/skills/shared/core/multi-agent-office-off/SKILL.md": "316c7f1cd910e76096301330cac7e02f1a2b28e66cda88e9f8bb966a14553e9e",
|
|
996
997
|
"pipeline/skills/shared/core/multi-agent-office-on/SKILL.md": "b46a2f79beeee65ae7ad6cbfc58b4631c5146a7761e91a99b8a056d6f49c690d",
|
|
997
|
-
"pipeline/skills/shared/core/multi-agent-office-
|
|
998
|
+
"pipeline/skills/shared/core/multi-agent-office-pair/SKILL.md": "6693c2453922bf87e22d5acd203f201c56b3389c831e297145b99186bb466ae5",
|
|
999
|
+
"pipeline/skills/shared/core/multi-agent-office-status/SKILL.md": "a34e42dc79bfe9bc8ca87456558baf1601b49168e94c7b28fb6cd3e853bf3d2e",
|
|
998
1000
|
"pipeline/skills/shared/core/multi-agent-postmortem/SKILL.md": "41edd907cbaae1523eab1cd716390c9e9cd889574141cb88c33966e221b0987d",
|
|
999
1001
|
"pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md": "649622e6f18887f986e0acd8b743df0a345a3adf89ccab58d6c4b191b770c1ac",
|
|
1000
1002
|
"pipeline/skills/shared/core/multi-agent-prune-prompts/SKILL.md": "2750dad7d6cab8566798f6249094e071bd37fc519b8b350de3158cc9167c7a47",
|
|
@@ -1022,7 +1024,7 @@
|
|
|
1022
1024
|
"pipeline/skills/shared/core/multi-agent-status/SKILL.md": "444c3773b52e6786e40bc67c8833ea6aecadbcd4459b01127b4aff152157040a",
|
|
1023
1025
|
"pipeline/skills/shared/core/multi-agent-steer/SKILL.md": "9ac0c48c3cbafd98022a04b24ef4f16723dda6a852202002231f43bbb7dd453b",
|
|
1024
1026
|
"pipeline/skills/shared/core/multi-agent-store-ready/SKILL.md": "6f57903e67022f875dc251cdde0c3eeb8fe9d1f56d915fae0bebb35103cae528",
|
|
1025
|
-
"pipeline/skills/shared/core/multi-agent-sync/SKILL.md": "
|
|
1027
|
+
"pipeline/skills/shared/core/multi-agent-sync/SKILL.md": "e4d247d7b4708cb0984d81b6584851bea0a2cdee97ebcfad8498adcd194b7675",
|
|
1026
1028
|
"pipeline/skills/shared/core/multi-agent-test-accessibility/SKILL.md": "78305bd6c591836badb903c18a6ac2e619fcec51a7a08589f8a1281c4fdd90ee",
|
|
1027
1029
|
"pipeline/skills/shared/core/multi-agent-test-dark-mode/SKILL.md": "f24c6c5ee9c8f7221527a9a809ca24ee86a2225a0bac48323449660af215c99f",
|
|
1028
1030
|
"pipeline/skills/shared/core/multi-agent-test-dynamic-type/SKILL.md": "e1cadd5eb8d680b0edfc40a4912733dc6a432493c868f4997b2dec0db6638dd4",
|
|
@@ -1637,6 +1639,6 @@
|
|
|
1637
1639
|
"pipeline/skills/shared/external/xcode-project-analyzer/references/build-settings-best-practices.md": "c8d4baa90b5bcab6d24c73f740f09c4df387dc1d021c23f5e6e04401315748c2",
|
|
1638
1640
|
"pipeline/skills/shared/external/xcode-project-analyzer/references/project-audit-checks.md": "72c70d8d484469b282e55d20ac54976935164fdf127d6763d537ba0be77523c2",
|
|
1639
1641
|
"pipeline/skills/shared/external/xcode-project-analyzer/references/recommendation-format.md": "ad8eb87228be739d2dd53d0b927558fc9e68b2135e1b1eec475a981c4cd1feb2",
|
|
1640
|
-
"pipeline/skills/skills-index.md": "
|
|
1642
|
+
"pipeline/skills/skills-index.md": "49bcf1f11fbbc9289580a4f95246d560e9c234f7cdf8d32cecae3379dc633a4a"
|
|
1641
1643
|
}
|
|
1642
1644
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.36.0",
|
|
4
4
|
"description": "6-phase AI development pipeline with full orchestration on Claude Code, Copilot CLI and Codex CLI. Analysis, planning, TDD, CLI-aware parallel review with consensus surfacing + Fable triage, default-FAIL evidence gates, secret + intent guards, per-phase cost ledger, persistent learnings memory, wiki generation, commit automation. Token-preserving uninstall.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -128,5 +128,9 @@
|
|
|
128
128
|
"eslint-plugin-n": "^18.4.1",
|
|
129
129
|
"prettier": "^3.9.10",
|
|
130
130
|
"publint": "0.3.25"
|
|
131
|
+
},
|
|
132
|
+
"overrides": {
|
|
133
|
+
"glob": "^14.0.3",
|
|
134
|
+
"minimatch": "^11.0.3"
|
|
131
135
|
}
|
|
132
136
|
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Pair a phone with the office: QR, wait, compare the code with the user, enrol. Use when the office should be reachable from a phone."
|
|
3
|
+
description-tr: "Telefonu ofise eşler: QR'ı gösterir, telefonu bekler, karşılaştırma kodunu kullanıcıyla doğrular ve cihazı kaydeder. Ofise telefondan erişmek için kullan."
|
|
4
|
+
argument-hint: "[--relay <url>]"
|
|
5
|
+
parameters: [{"name":"--relay","kind":"text"}]
|
|
6
|
+
gui: button
|
|
7
|
+
destructive: false
|
|
8
|
+
confirm: none
|
|
9
|
+
allowed-tools: Bash, AskUserQuestion
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# multi-agent office-pair - pair a phone
|
|
13
|
+
|
|
14
|
+
One flow over `office-pair.mjs` (`start`, `wait`, `confirm`, `cancel`). The
|
|
15
|
+
device is enrolled with `read,answer` only after the user has compared the code
|
|
16
|
+
on both screens. An unattended run is refused by the script itself.
|
|
17
|
+
|
|
18
|
+
## Steps
|
|
19
|
+
|
|
20
|
+
1. **Show the QR.**
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
node "$HOME/.claude/scripts/office-pair.mjs" start # add --relay <url> when one was given
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The QR opens as a local page in the browser (`opened`). It is never drawn in
|
|
27
|
+
this conversation: it carries the pairing's one-time secret, and tool output
|
|
28
|
+
is kept in the transcript. When `no relay is set` comes back, stop and tell
|
|
29
|
+
the user to set `global.office.remote.relayUrl` in the preferences, or to
|
|
30
|
+
run the command again with `--relay <url>`.
|
|
31
|
+
|
|
32
|
+
To see the QR in a terminal instead, the user runs
|
|
33
|
+
`node ~/.claude/scripts/office-pair.mjs start --terminal` in a terminal
|
|
34
|
+
window of their own. It draws only when its output is a terminal; captured
|
|
35
|
+
output gets the page instead.
|
|
36
|
+
|
|
37
|
+
2. **Tell the user** (in `outputLanguage`): scan the code with the phone, signed
|
|
38
|
+
in to the site; finish the passkey step there; the code expires at
|
|
39
|
+
`expiresAt` (10 minutes).
|
|
40
|
+
|
|
41
|
+
3. **Wait for the phone** (it blocks until the phone answers or the pairing
|
|
42
|
+
expires; give the call a 600000 ms timeout):
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
node "$HOME/.claude/scripts/office-pair.mjs" wait
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
4. **Compare the code with the user.** Ask with AskUserQuestion, following
|
|
49
|
+
`$HOME/.claude/multi-agent-refs/picker-contract.md`: the question (in
|
|
50
|
+
`outputLanguage`) names `deviceName` and `code` and asks whether the phone
|
|
51
|
+
shows the same code. Options (English labels): `Same code` / `Different
|
|
52
|
+
code`; branch on the option chosen. Never answer it yourself.
|
|
53
|
+
|
|
54
|
+
5. **Finish.**
|
|
55
|
+
- Same code: `node "$HOME/.claude/scripts/office-pair.mjs" confirm <code>`,
|
|
56
|
+
then report the enrolled device (`id`, `name`, `scopes`).
|
|
57
|
+
- Different code, or no answer: `node "$HOME/.claude/scripts/office-pair.mjs" cancel`,
|
|
58
|
+
and report that nothing was enrolled. A different code means the pairing
|
|
59
|
+
message did not come from the user's phone.
|
|
60
|
+
|
|
61
|
+
## Errors
|
|
62
|
+
|
|
63
|
+
Report the script's message as given, with its fix: `expired` -> run the
|
|
64
|
+
command again; `did not open` or `origin` -> the message was not sealed for
|
|
65
|
+
this pairing, nothing was kept; `the relay answered` -> check the relay site.
|
|
66
|
+
Revoking a paired phone later is `phone-devices.mjs revoke`.
|
|
@@ -18,7 +18,7 @@ node "$HOME/.claude/scripts/office-control.mjs" status --json
|
|
|
18
18
|
Report in `outputLanguage`:
|
|
19
19
|
|
|
20
20
|
- `running`, and when it is, `url` and `idleMinutes` (0 means it runs until `office-off`);
|
|
21
|
-
- `remote`: "off" until a phone is paired with
|
|
21
|
+
- `remote`: "off" until a phone is paired with `/multi-agent:office-pair`, "configured"
|
|
22
22
|
when only the prefs block is set, "paired" once a device is; report the line
|
|
23
23
|
as given;
|
|
24
24
|
- `pairedDevices`: the devices the phone registry lists; revoking one is
|
|
@@ -73,7 +73,7 @@ Run every step automatically:
|
|
|
73
73
|
```
|
|
74
74
|
Step 0: DOCTOR doctor.mjs - exit 2 or 4 stops the sync
|
|
75
75
|
Step 1.5: DETECT Compare timestamps, find stale targets
|
|
76
|
-
Step 2: COPILOT Claude Code -> Copilot CLI (instructions +
|
|
76
|
+
Step 2: COPILOT Claude Code -> Copilot CLI (instructions + 70 sub-command skills)
|
|
77
77
|
Step 2b: CODEX Claude Code -> Codex CLI (1 router skill + sub-command specs as refs + agent TOML)
|
|
78
78
|
Step 3: REPO Claude Code -> pipeline repo (genericized, personal data scrub, bash -n on all sh)
|
|
79
79
|
Step 3c: PLUGINS pipeline shared/external -> multi-agent-plugins marketplace (rebuild knowledge/,
|
|
@@ -253,14 +253,14 @@ same specs as reference files rather than as peer skills, via Step 2b - see
|
|
|
253
253
|
|-------------|-------------|
|
|
254
254
|
| `~/.claude/commands/multi-agent/{cmd}/SKILL.md` | `~/.copilot/skills/multi-agent-{cmd}/SKILL.md` |
|
|
255
255
|
|
|
256
|
-
**
|
|
256
|
+
**70 commands are synced** (canonical inventory - must match `cross-cli-contract.md` section 1; drift = contract violation):
|
|
257
257
|
|
|
258
258
|
```
|
|
259
259
|
analysis, analysis-jira, analysis-resolve, autopilot, autopilot-off, autopilot-on,
|
|
260
260
|
autopilot-status, bug-bash, build-optimize, channels, complaint-analysis, create-jira,
|
|
261
261
|
design-check, diff-explain, doctor, estimate, feedback, forget, garbage-collect, graph, help,
|
|
262
262
|
ios-coding-standard, issue, jira, kill, language, log,
|
|
263
|
-
manual-test, model, office-off, office-on, office-status, postmortem, prune-logs, prune-prompts, purge, refactor, research, resume, review, review-analysis, review-issue, review-jira, route-off, route-on, route-status,
|
|
263
|
+
manual-test, model, office-off, office-on, office-pair, office-status, postmortem, prune-logs, prune-prompts, purge, refactor, research, resume, review, review-analysis, review-issue, review-jira, route-off, route-on, route-status,
|
|
264
264
|
routines, save, scaffold, scan, scenario-audit, search, security-review, serve, setup, stack, status, steer, store-ready, sync, test,
|
|
265
265
|
test-accessibility, test-dark-mode, test-dynamic-type, test-gen, test-screenshots,
|
|
266
266
|
testflight-validation, uninstall, update
|
package/pipeline/lib/qr-code.mjs
CHANGED
|
@@ -358,3 +358,29 @@ export function qrSvg(qr, { scale = 6 } = {}) {
|
|
|
358
358
|
`fill="#fff"/><path d="${d}" fill="#000"/></svg>`
|
|
359
359
|
);
|
|
360
360
|
}
|
|
361
|
+
|
|
362
|
+
/**
|
|
363
|
+
* The code as terminal text, two module rows per line in half blocks. Light
|
|
364
|
+
* modules are drawn (a dark terminal shows them white), with a two-module quiet
|
|
365
|
+
* zone.
|
|
366
|
+
*/
|
|
367
|
+
export function qrText(qr) {
|
|
368
|
+
const q = 2;
|
|
369
|
+
const n = qr.size + q * 2;
|
|
370
|
+
const light = (x, y) => {
|
|
371
|
+
const mx = x - q;
|
|
372
|
+
const my = y - q;
|
|
373
|
+
return !(mx >= 0 && my >= 0 && mx < qr.size && my < qr.size && qr.modules[my][mx]);
|
|
374
|
+
};
|
|
375
|
+
const lines = [];
|
|
376
|
+
for (let y = 0; y < n; y += 2) {
|
|
377
|
+
let line = "";
|
|
378
|
+
for (let x = 0; x < n; x++) {
|
|
379
|
+
const top = light(x, y);
|
|
380
|
+
const bottom = y + 1 < n ? light(x, y + 1) : false;
|
|
381
|
+
line += top && bottom ? "█" : top ? "▀" : bottom ? "▄" : " ";
|
|
382
|
+
}
|
|
383
|
+
lines.push(line);
|
|
384
|
+
}
|
|
385
|
+
return lines.join("\n");
|
|
386
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Cross-CLI Contract (Claude Code · Copilot CLI · Codex CLI)
|
|
2
2
|
|
|
3
3
|
<!-- toc -->
|
|
4
|
-
- [1. Command Inventory (
|
|
4
|
+
- [1. Command Inventory (70 commands)](#1-command-inventory-70-commands)
|
|
5
5
|
- [2. Canonical Placeholder Vocabulary](#2-canonical-placeholder-vocabulary)
|
|
6
6
|
- [2.6 Intentional structural divergence - thin dispatcher vs inlined orchestrator](#26-intentional-structural-divergence---thin-dispatcher-vs-inlined-orchestrator)
|
|
7
7
|
- [2.7 One command, three different meanings: `/multi-agent:model`](#27-one-command-three-different-meanings-multi-agentmodel)
|
|
@@ -20,14 +20,14 @@
|
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
-
## 1. Command Inventory (
|
|
23
|
+
## 1. Command Inventory (70 commands)
|
|
24
24
|
|
|
25
25
|
```
|
|
26
26
|
analysis, analysis-jira, analysis-resolve, autopilot, autopilot-off,
|
|
27
27
|
autopilot-on, autopilot-status, bug-bash, build-optimize, channels, complaint-analysis,
|
|
28
28
|
create-jira, design-check, diff-explain, doctor, estimate, feedback, forget,
|
|
29
29
|
garbage-collect, graph, help, ios-coding-standard, issue, jira, kill,
|
|
30
|
-
language, log, manual-test, model, office-off, office-on, office-status,
|
|
30
|
+
language, log, manual-test, model, office-off, office-on, office-pair, office-status,
|
|
31
31
|
postmortem, prune-logs,
|
|
32
32
|
prune-prompts, purge, refactor, research, resume, review,
|
|
33
33
|
review-analysis, review-issue, review-jira, route-off, route-on,
|
|
@@ -43,7 +43,7 @@ Categories:
|
|
|
43
43
|
- **Issue generator** (one-shot, no worktree, asks type Task/Bug/Story, hard approval gate before create): `create-jira`
|
|
44
44
|
- **Pipeline entries**: `autopilot` (plus the bare `/multi-agent` in the dispatcher). The phase set is a property of the command, and every mode runs its whole set.
|
|
45
45
|
- **Tail path** (the pipeline tail over work already on a branch, no run behind it): `resume`
|
|
46
|
-
- **Ops commands** (one-shot, no worktree): `status`, `log`, `kill`, `steer`, `purge`, `uninstall`, `resume`, `review`, `review-jira`, `review-issue`, `analysis`, `analysis-resolve`, `research`, `scaffold`, `complaint-analysis`, `bug-bash`, `test-gen`, `build-optimize`, `channels`, `scan`, `search`, `diff-explain`, `garbage-collect`, `graph`, `postmortem`, `prune-logs`, `prune-prompts`, `serve`, `office-on`, `office-off`, `office-status`
|
|
46
|
+
- **Ops commands** (one-shot, no worktree): `status`, `log`, `kill`, `steer`, `purge`, `uninstall`, `resume`, `review`, `review-jira`, `review-issue`, `analysis`, `analysis-resolve`, `research`, `scaffold`, `complaint-analysis`, `bug-bash`, `test-gen`, `build-optimize`, `channels`, `scan`, `search`, `diff-explain`, `garbage-collect`, `graph`, `postmortem`, `prune-logs`, `prune-prompts`, `serve`, `office-on`, `office-off`, `office-pair`, `office-status`
|
|
47
47
|
- **Local audits** (worktree only to build; no commit, push, PR or channels): `design-check`, `testflight-validation`, `ios-coding-standard`. `testflight-validation` additionally never invokes `altool --upload-app` - a validation run must not be able to ship a build by accident.
|
|
48
48
|
- **Meta-ops**: `setup`, `sync`, `update`, `help`, `refactor`, `test`, `stack`, `manual-test`, `language`
|
|
49
49
|
- **Routines** (user-defined routine registry; the routines they create are local-only and never synced): `save`, `routines`, `forget`
|
|
@@ -88,6 +88,7 @@ Status & Resume:
|
|
|
88
88
|
/multi-agent:serve Contract server for a client: 127.0.0.1, token, stops when idle
|
|
89
89
|
/multi-agent:office-on Open the office in your browser: live runs and agents, PRs, keys, memory, system, jobs; its orientation room explains the rest
|
|
90
90
|
/multi-agent:office-status Is the panel running, its URL (never the token), its last actions
|
|
91
|
+
/multi-agent:office-pair Pair a phone: show the QR, wait, compare the code with you, enrol it
|
|
91
92
|
/multi-agent:office-off Stop the panel's server (it runs until you do)
|
|
92
93
|
|
|
93
94
|
Post-Hoc & Side-Channel:
|
|
@@ -87,6 +87,7 @@ Status & Resume:
|
|
|
87
87
|
/multi-agent:serve İstemci için sözleşme sunucusu: 127.0.0.1, token, boşta durur
|
|
88
88
|
/multi-agent:office-on Ofisi tarayıcıda aç: canlı koşular ve ajanlar, PR'lar, anahtarlar, hafıza, sistem, işler; gerisini oryantasyon odası anlatır
|
|
89
89
|
/multi-agent:office-status Panel çalışıyor mu, adresi (token asla), son işlemleri
|
|
90
|
+
/multi-agent:office-pair Telefonu eşle: QR'ı göster, bekle, kodu seninle karşılaştır, kaydet
|
|
90
91
|
/multi-agent:office-off Panelin sunucusunu durdur (sen durdurana kadar çalışır)
|
|
91
92
|
|
|
92
93
|
Post-Hoc & Side-Channel:
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* @file office-pair.mjs - pair a phone with this machine for the office
|
|
4
4
|
* remote layer (features/office-remote-protocol.md, Pairing).
|
|
5
5
|
*
|
|
6
|
-
* start [--relay <url>] register a pairing with the relay and
|
|
6
|
+
* start [--relay <url>] [--terminal] register a pairing with the relay and
|
|
7
|
+
* show its QR (on this terminal when it is one)
|
|
7
8
|
* code on this machine's screen
|
|
8
9
|
* wait wait for the phone's pairing message, open it and
|
|
9
10
|
* print the comparison code
|
|
@@ -42,7 +43,7 @@ import {
|
|
|
42
43
|
sealFrame,
|
|
43
44
|
} from "../lib/office-remote.mjs";
|
|
44
45
|
import { invokedDirectly } from "../lib/invoked-directly.mjs";
|
|
45
|
-
import { encodeQr, qrSvg } from "../lib/qr-code.mjs";
|
|
46
|
+
import { encodeQr, qrSvg, qrText } from "../lib/qr-code.mjs";
|
|
46
47
|
import { isUnattended } from "../lib/unattended.mjs";
|
|
47
48
|
import { phoneDir } from "./_phone-auth.mjs";
|
|
48
49
|
import { readConfig, writeConfig } from "./office-remote-client.mjs";
|
|
@@ -143,10 +144,27 @@ async function relayCall(fetchImpl, url, init) {
|
|
|
143
144
|
/**
|
|
144
145
|
* Register a pairing with the relay and show its QR code.
|
|
145
146
|
*
|
|
146
|
-
*
|
|
147
|
+
* With `terminal`, the QR is also drawn on that stream, but only when it is a
|
|
148
|
+
* TTY: captured output (an agent's tool call, a pipe, a log) would keep the
|
|
149
|
+
* one-time secret the code carries.
|
|
150
|
+
*
|
|
151
|
+
* @returns {Promise<{pairingId: string, expiresAt: string, page: string, opened: boolean,
|
|
152
|
+
* terminal?: boolean, terminalRefused?: string}>}
|
|
147
153
|
*/
|
|
148
|
-
export async function start({
|
|
149
|
-
|
|
154
|
+
export async function start({
|
|
155
|
+
relay,
|
|
156
|
+
env = process.env,
|
|
157
|
+
fetchImpl = fetch,
|
|
158
|
+
now = Date.now(),
|
|
159
|
+
terminal = null,
|
|
160
|
+
}) {
|
|
161
|
+
const configured = relay ?? relayFromPrefs(env);
|
|
162
|
+
if (!configured) {
|
|
163
|
+
throw new Refusal(
|
|
164
|
+
"no relay is set; add prefs global.office.remote.relayUrl or pass --relay <url>",
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
const relayUrl = relayOrigin(configured);
|
|
150
168
|
const existing = readConfig(env);
|
|
151
169
|
const machine =
|
|
152
170
|
existing?.machinePrivatePem && existing?.machinePublic
|
|
@@ -187,8 +205,18 @@ export async function start({ relay, env = process.env, fetchImpl = fetch, now =
|
|
|
187
205
|
JSON.stringify({ relayUrl, pairingId, secret, expiresAt, relayToken }) + "\n",
|
|
188
206
|
);
|
|
189
207
|
const link = pairingLink({ relayUrl, pairingId, secret, machinePublic: machine.publicKey });
|
|
190
|
-
|
|
191
|
-
|
|
208
|
+
const qr = encodeQr(link, { ecc: "M" });
|
|
209
|
+
writePrivate(pagePath(env), pageHtml(qrSvg(qr)));
|
|
210
|
+
const out = { pairingId, expiresAt, page: pagePath(env) };
|
|
211
|
+
if (terminal) {
|
|
212
|
+
if (terminal.isTTY) {
|
|
213
|
+
terminal.write(`${qrText(qr)}\n\nScan with the phone; the code expires in 10 minutes.\n`);
|
|
214
|
+
return { ...out, opened: false, terminal: true };
|
|
215
|
+
}
|
|
216
|
+
out.terminal = false;
|
|
217
|
+
out.terminalRefused = "stdout is not a terminal, so the QR stays in the page";
|
|
218
|
+
}
|
|
219
|
+
return { ...out, opened: openPage(pagePath(env), env) };
|
|
192
220
|
}
|
|
193
221
|
|
|
194
222
|
function pending(env, now) {
|
|
@@ -376,7 +404,7 @@ async function main(argv) {
|
|
|
376
404
|
const [cmd, ...rest] = argv;
|
|
377
405
|
if (!["start", "wait", "confirm", "cancel"].includes(cmd)) {
|
|
378
406
|
process.stderr.write(
|
|
379
|
-
"usage: office-pair.mjs start [--relay <url>] | wait | confirm <code> | cancel\n",
|
|
407
|
+
"usage: office-pair.mjs start [--relay <url>] [--terminal] | wait | confirm <code> | cancel\n",
|
|
380
408
|
);
|
|
381
409
|
return 2;
|
|
382
410
|
}
|
|
@@ -388,7 +416,10 @@ async function main(argv) {
|
|
|
388
416
|
let out;
|
|
389
417
|
if (cmd === "start") {
|
|
390
418
|
const i = rest.indexOf("--relay");
|
|
391
|
-
out = await start({
|
|
419
|
+
out = await start({
|
|
420
|
+
relay: i === -1 ? undefined : rest[i + 1],
|
|
421
|
+
terminal: rest.includes("--terminal") ? process.stdout : null,
|
|
422
|
+
});
|
|
392
423
|
} else if (cmd === "wait") out = await wait({});
|
|
393
424
|
else if (cmd === "confirm") out = await confirm({ code: rest[0] });
|
|
394
425
|
else out = cancel();
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-10-
|
|
4
|
-
"skillCount":
|
|
3
|
+
"generatedAt": "2026-10-31T07:29:16Z",
|
|
4
|
+
"skillCount": 238,
|
|
5
5
|
"entries": [
|
|
6
6
|
{
|
|
7
7
|
"path": "shared/core/apple-archive-compliance/SKILL.md",
|
|
8
|
-
"sha256": "
|
|
8
|
+
"sha256": "2bffd220fd3e3b59160f5b6834633c3ad144c89b192556f01b9405da706b221b"
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
"path": "shared/core/google-play-compliance/SKILL.md",
|
|
12
|
-
"sha256": "
|
|
12
|
+
"sha256": "5da8befd481459823fd5945d11215e70d751bad14b71b6050417a550282a4f03"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"path": "shared/core/multi-agent-analysis-jira/SKILL.md",
|
|
@@ -135,9 +135,13 @@
|
|
|
135
135
|
"path": "shared/core/multi-agent-office-on/SKILL.md",
|
|
136
136
|
"sha256": "b46a2f79beeee65ae7ad6cbfc58b4631c5146a7761e91a99b8a056d6f49c690d"
|
|
137
137
|
},
|
|
138
|
+
{
|
|
139
|
+
"path": "shared/core/multi-agent-office-pair/SKILL.md",
|
|
140
|
+
"sha256": "6693c2453922bf87e22d5acd203f201c56b3389c831e297145b99186bb466ae5"
|
|
141
|
+
},
|
|
138
142
|
{
|
|
139
143
|
"path": "shared/core/multi-agent-office-status/SKILL.md",
|
|
140
|
-
"sha256": "
|
|
144
|
+
"sha256": "a34e42dc79bfe9bc8ca87456558baf1601b49168e94c7b28fb6cd3e853bf3d2e"
|
|
141
145
|
},
|
|
142
146
|
{
|
|
143
147
|
"path": "shared/core/multi-agent-postmortem/SKILL.md",
|
|
@@ -249,7 +253,7 @@
|
|
|
249
253
|
},
|
|
250
254
|
{
|
|
251
255
|
"path": "shared/core/multi-agent-sync/SKILL.md",
|
|
252
|
-
"sha256": "
|
|
256
|
+
"sha256": "e4d247d7b4708cb0984d81b6584851bea0a2cdee97ebcfad8498adcd194b7675"
|
|
253
257
|
},
|
|
254
258
|
{
|
|
255
259
|
"path": "shared/core/multi-agent-test-accessibility/SKILL.md",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"skillCount":
|
|
3
|
+
"skillCount": 238,
|
|
4
4
|
"entries": [
|
|
5
5
|
{
|
|
6
6
|
"name": "accessibility-compliance-accessibility-audit",
|
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
},
|
|
203
203
|
{
|
|
204
204
|
"name": "apple-archive-compliance",
|
|
205
|
-
"description": "Apple App Store Review compliance - wraps the multi-agent-toolkit-mcp `ios_app_store_audit` tool (18-rule deep scan) with ITMS error code mapping + EN/TR humanizer templates.
|
|
205
|
+
"description": "Apple App Store Review compliance - wraps the multi-agent-toolkit-mcp `ios_app_store_audit` tool (18-rule deep scan) with ITMS error code mapping + EN/TR humanizer templates. Used by /multi-agent:test store-ready, the Phase 3 security auditor, /multi-agent:review and /multi-agent:channels. Use whe",
|
|
206
206
|
"platform": null,
|
|
207
207
|
"group": "core",
|
|
208
208
|
"plugin": null,
|
|
@@ -620,7 +620,7 @@
|
|
|
620
620
|
},
|
|
621
621
|
{
|
|
622
622
|
"name": "google-play-compliance",
|
|
623
|
-
"description": "Google Play Store publication compliance - bundletool + aapt2 + apksigner orchestration + 21-rule policy catalog with Play Console error codes + humanizer templates.
|
|
623
|
+
"description": "Google Play Store publication compliance - bundletool + aapt2 + apksigner orchestration + 21-rule policy catalog with Play Console error codes + humanizer templates. Used by /multi-agent:test store-ready, the Phase 3 security auditor, /multi-agent:review and /multi-agent:channels. Use when an .aab",
|
|
624
624
|
"platform": null,
|
|
625
625
|
"group": "core",
|
|
626
626
|
"plugin": null,
|
|
@@ -1137,7 +1137,7 @@
|
|
|
1137
1137
|
},
|
|
1138
1138
|
{
|
|
1139
1139
|
"name": "multi-agent-channels",
|
|
1140
|
-
"description": "Multi-channel reporter - Jira/Confluence/Wiki/PR description. Multi-select channels + content, humanizer pass, reviewer-preserving Bitbucket PR PUT.
|
|
1140
|
+
"description": "Multi-channel reporter - Jira/Confluence/Wiki/PR description. Multi-select channels + content, humanizer pass, reviewer-preserving Bitbucket PR PUT. Use to post or redo a run's report; Phase 5 delegates here, or invoke by Jira ID / PR URL / branch.",
|
|
1141
1141
|
"platform": null,
|
|
1142
1142
|
"group": "core",
|
|
1143
1143
|
"plugin": null,
|
|
@@ -1377,6 +1377,17 @@
|
|
|
1377
1377
|
"triggerPaths": [],
|
|
1378
1378
|
"relativePath": "shared/core/multi-agent-office-on/SKILL.md"
|
|
1379
1379
|
},
|
|
1380
|
+
{
|
|
1381
|
+
"name": "multi-agent-office-pair",
|
|
1382
|
+
"description": "Pair a phone with the office: QR, wait, compare the code with the user, enrol. Use when the office should be reachable from a phone.",
|
|
1383
|
+
"platform": null,
|
|
1384
|
+
"group": "core",
|
|
1385
|
+
"plugin": null,
|
|
1386
|
+
"invokeAs": "multi-agent-office-pair",
|
|
1387
|
+
"triggerKeywords": [],
|
|
1388
|
+
"triggerPaths": [],
|
|
1389
|
+
"relativePath": "shared/core/multi-agent-office-pair/SKILL.md"
|
|
1390
|
+
},
|
|
1380
1391
|
{
|
|
1381
1392
|
"name": "multi-agent-office-status",
|
|
1382
1393
|
"description": "Whether the office panel is running, its URL (never the token) and its last actions. Use when unsure if the panel is open.",
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Single source of truth for skills delivered to both Claude Code (`~/.claude/skills/`) and Copilot CLI (`~/.copilot/skills/`) by the installer.
|
|
4
4
|
|
|
5
|
-
**Total:**
|
|
5
|
+
**Total:** 238 skills (73 core + 165 external). Auto-generated by `scripts/gen-skills-index.mjs` - do not edit by hand.
|
|
6
6
|
|
|
7
7
|
## Directory layout
|
|
8
8
|
|
|
9
|
-
- **`core/`** -
|
|
9
|
+
- **`core/`** - 73 `multi-agent*` orchestration skills that are pipeline-critical. Edits here are core-code changes.
|
|
10
10
|
- **`external/`** - 165 iOS / Android / generic skills that ship into the stack plugins. Each names its origin in `metadata.source`: `multi-agent-pipeline` when written here, or the upstream and license a `NOTICE-*.md` in this directory covers.
|
|
11
11
|
- Install destinations (ADR-0009): Claude Code gets NO local copy of `external/` - it loads those skills from the `multi-agent-plugins` marketplace, namespaced (`ai-<stack>-toolkit:<name>`); only the two compliance catalogs from `core/` land in `~/.claude/skills/`. Copilot CLI and Codex CLI receive a flat copy filtered to the enabled stacks. `external/` remains the single authoring source that `build-stack-plugins.mjs` publishes from.
|
|
12
12
|
|
|
@@ -14,7 +14,7 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
14
14
|
|
|
15
15
|
## Categories
|
|
16
16
|
|
|
17
|
-
- [Pipeline Orchestration](#pipeline-orchestration) -
|
|
17
|
+
- [Pipeline Orchestration](#pipeline-orchestration) - 73
|
|
18
18
|
- [iOS / Apple Ecosystem](#ios-apple-ecosystem) - 94
|
|
19
19
|
- [Android / Kotlin](#android-kotlin) - 16
|
|
20
20
|
- [Web](#web) - 10
|
|
@@ -59,6 +59,7 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
59
59
|
| [`multi-agent-model`](./core/multi-agent-model/) | `core` | Turn the top model rung on or off and keep the cost ledger's pricing in step with it. Use when asked to enable or disable Fable, or which mo |
|
|
60
60
|
| [`multi-agent-office-off`](./core/multi-agent-office-off/) | `core` | Close the office panel and stop its local server. Use when done with the panel. |
|
|
61
61
|
| [`multi-agent-office-on`](./core/multi-agent-office-on/) | `core` | Open the office: a local browser page that shows runs and agents live and drives the ecosystem (new runs, jobs, PRs, keys, memory, system, c |
|
|
62
|
+
| [`multi-agent-office-pair`](./core/multi-agent-office-pair/) | `core` | Pair a phone with the office: QR, wait, compare the code with the user, enrol. Use when the office should be reachable from a phone. |
|
|
62
63
|
| [`multi-agent-office-status`](./core/multi-agent-office-status/) | `core` | Whether the office panel is running, its URL (never the token) and its last actions. Use when unsure if the panel is open. |
|
|
63
64
|
| [`multi-agent-postmortem`](./core/multi-agent-postmortem/) | `core` | Post-mortem of a run from its session transcripts: loops, stalls, root-cause hypotheses on file:line, fixes. Read-only, redacted. Use when a |
|
|
64
65
|
| [`multi-agent-prune-logs`](./core/multi-agent-prune-logs/) | `core` | Delete per-task project logs under ~/.claude/logs/multi-agent (filter by age/project/task). Audit trail + metrics are preserved. Dry-run fir |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: apple-archive-compliance
|
|
3
|
-
description: "Apple App Store Review compliance - wraps the multi-agent-toolkit-mcp `ios_app_store_audit` tool (18-rule deep scan) with ITMS error code mapping + EN/TR humanizer templates.
|
|
3
|
+
description: "Apple App Store Review compliance - wraps the multi-agent-toolkit-mcp `ios_app_store_audit` tool (18-rule deep scan) with ITMS error code mapping + EN/TR humanizer templates. Used by /multi-agent:test store-ready, the Phase 3 security auditor, /multi-agent:review and /multi-agent:channels. Use when an .xcarchive needs an App Store review check before submission, or a rejection has to be diagnosed."
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: '[archive-path] [--threshold=error|warning|info] [--format=markdown|json] [--lang=en|tr] - no-arg: picks most recent .xcarchive from ~/Library/Developer/Xcode/Archives/'
|
|
6
6
|
metadata:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: google-play-compliance
|
|
3
|
-
description: "Google Play Store publication compliance - bundletool + aapt2 + apksigner orchestration + 21-rule policy catalog with Play Console error codes + humanizer templates.
|
|
3
|
+
description: "Google Play Store publication compliance - bundletool + aapt2 + apksigner orchestration + 21-rule policy catalog with Play Console error codes + humanizer templates. Used by /multi-agent:test store-ready, the Phase 3 security auditor, /multi-agent:review and /multi-agent:channels. Use when an .aab or .apk needs a Play policy check before upload, or a Play rejection has to be diagnosed."
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: '[bundle-path] [--threshold=error|warning|info] [--format=markdown|json] [--lang=en|tr] - no-arg: picks most recent .aab from app/build/outputs/bundle/release/'
|
|
6
6
|
metadata:
|