@mmerterden/multi-agent-pipeline 20.8.1 → 20.8.2

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 (75) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/docs/facts.json +3 -3
  3. package/index.js +1 -0
  4. package/install/_codex-agents.mjs +1 -1
  5. package/install/_common.mjs +486 -53
  6. package/install/_mcp-register.mjs +173 -117
  7. package/install/claude.mjs +281 -220
  8. package/install/codex.mjs +7 -7
  9. package/install/copilot.mjs +13 -11
  10. package/install/index.mjs +92 -27
  11. package/install/templates/claude-hooks.json +9 -9
  12. package/manifest.json +75 -78
  13. package/package.json +4 -1
  14. package/pipeline/commands/multi-agent/update/SKILL.md +28 -17
  15. package/pipeline/lib/confusables.json +79 -33
  16. package/pipeline/lib/extract-conventions.sh +3 -3
  17. package/pipeline/lib/json-file-lock.mjs +27 -7
  18. package/pipeline/lib/normalize-text.mjs +86 -17
  19. package/pipeline/lib/outbound-gate.mjs +13 -4
  20. package/pipeline/lib/redact.mjs +87 -14
  21. package/pipeline/multi-agent-refs/analysis/evidence.md +1 -1
  22. package/pipeline/multi-agent-refs/analysis/synthesis.md +1 -1
  23. package/pipeline/multi-agent-refs/component-dispatch.md +1 -1
  24. package/pipeline/multi-agent-refs/conventions-defaults.md +1 -1
  25. package/pipeline/multi-agent-refs/features/unattended-security.md +2 -2
  26. package/pipeline/scripts/agent-guard.py +150 -25
  27. package/pipeline/scripts/audit-log.sh +3 -4
  28. package/pipeline/scripts/autopilot-runner.mjs +14 -5
  29. package/pipeline/scripts/doctor.mjs +8 -2
  30. package/pipeline/scripts/log-metric.sh +9 -3
  31. package/pipeline/scripts/migrate-prefs.mjs +18 -4
  32. package/pipeline/scripts/pre-commit-check.sh +119 -31
  33. package/pipeline/scripts/scan-agent-config.sh +9 -9
  34. package/pipeline/scripts/unattended_policy.py +12 -3
  35. package/pipeline/scripts/uninstall.mjs +88 -1
  36. package/pipeline/scripts/usage-identity.mjs +1 -1
  37. package/pipeline/scripts/usage-register.mjs +1 -1
  38. package/pipeline/skills/.skill-manifest.json +11 -11
  39. package/pipeline/skills/shared/external/callkit-voip/SKILL.md +6 -3
  40. package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +43 -0
  41. package/pipeline/skills/shared/external/core-nfc/SKILL.md +31 -0
  42. package/pipeline/skills/shared/external/ios-coding-standard/references/rules.yml +2 -2
  43. package/pipeline/skills/shared/external/ios-module-structure/modules/_TEMPLATE.yml +1 -1
  44. package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +3 -3
  45. package/pipeline/skills/shared/external/localization-reuse-map/example-mapping.json +2 -1
  46. package/pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md +14 -13
  47. package/pipeline/skills/shared/external/localization-reuse-map/reference/publish-and-snapshot.md +2 -2
  48. package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +7 -7
  49. package/pipeline/skills/shared/external/localization-reuse-map/scripts/_shared.py +105 -4
  50. package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py +20 -5
  51. package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-annotations.py +8 -7
  52. package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-legacy-labels.py +7 -8
  53. package/pipeline/skills/shared/external/localization-reuse-map/scripts/publish-confluence.py +20 -7
  54. package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-key-shots.py +4 -3
  55. package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-overlay.py +8 -7
  56. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-legacy-values.py +15 -8
  57. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +17 -9
  58. package/pipeline/skills/shared/external/localization-reuse-map/scripts/scan-screen-keys.py +39 -17
  59. package/pipeline/skills/shared/external/localization-reuse-map/scripts/verify-map.py +28 -7
  60. package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +5 -4
  61. package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +3 -2
  62. package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +2 -2
  63. package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +1 -1
  64. package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +4 -4
  65. package/pipeline/skills/shared/external/permissionkit/SKILL.md +15 -6
  66. package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +2 -1
  67. package/pipeline/skills/shared/external/push-notifications/SKILL.md +8 -4
  68. package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +1 -1
  69. package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +25 -6
  70. package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +1 -1
  71. package/pipeline/skills/shared/external/skill-creator/template.md +1 -1
  72. package/pipeline/skills/shared/external/vision-framework/SKILL.md +3 -1
  73. package/pipeline/scripts/gen-ref-toc.mjs +0 -279
  74. package/pipeline/scripts/make-manifest.mjs +0 -199
  75. package/pipeline/scripts/scorecard-snapshot.mjs +0 -178
package/manifest.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@mmerterden/multi-agent-pipeline",
3
- "version": "20.8.1",
4
- "commit": "45de439623d3f88764e1d2a265b4e2291a707c1f",
5
- "generatedAt": "2026-09-27T05:31:39.321Z",
3
+ "version": "20.8.2",
4
+ "commit": "cc78721bb6e4e462ca13784dd59f72f398cefdb6",
5
+ "generatedAt": "2026-09-27T08:25:32.332Z",
6
6
  "algorithm": "sha256",
7
- "fileCount": 1220,
7
+ "fileCount": 1217,
8
8
  "files": {
9
- "CHANGELOG.md": "9e63b7d5afa37edf74fc78d96bd484e2d023c4811def825417938845aee3877a",
9
+ "CHANGELOG.md": "1257d760c295813b381c3a7a91886faea510694d5004c23c4c1febcbc5ec3b2d",
10
10
  "LICENSE": "8d8c51aaf1e1538b180c69965fa038db71be86798cc3e26a143bebfefe16a43e",
11
11
  "README.md": "0613eebb0b38062bd94c44043595d1950b5c9b470874dd8e402c052fd20960cf",
12
12
  "README.tr.md": "0c6b5e6943d6c3d3bf3a7ed99c705fb9a78d15d7722e6252f58404d3f6d3524d",
@@ -33,35 +33,35 @@
33
33
  "docs/best-practices.md": "f8b75b0d38b5896a6a852bb30a1edddeb24dab8b5b7b1d9313290e1241c72024",
34
34
  "docs/ecosystem.md": "e6c00f30e95b5e178f77bdfbefd686c8a4164f39c03865a89ab23465d1a37acf",
35
35
  "docs/engineering.md": "550528cd47c7d2c921729c68d0782a00ac8e77a4bdfec479f6749f9c3235d188",
36
- "docs/facts.json": "e3da75a6d5f4e3e773ae6efc79aaa7813d8198b244a183fd81a67aa54b69ecee",
36
+ "docs/facts.json": "f926524cabdd39a875a0dd1ee222a401a56d5b55b32eb1c1c3faa4857f969570",
37
37
  "docs/features.md": "6c9f0efb00c683e6f611c440c87847b187f8b0eee59e9e812f3a241695bc2ae1",
38
38
  "docs/performance.md": "bbf2f3922c25dcba0c1a9e69ef420e3871a729af5b35009a49b48a5d3c5cd151",
39
39
  "docs/recovery-guide.md": "59a8f1b66b34cb9ff5507b3d54dac3b9915e184aa044d9c758d18cac818d510e",
40
40
  "docs/server-readiness.md": "ea21eee6a08c6fc0f2d1da8058acd5a50c556cea486d3acfe48fc0b23f4581fc",
41
- "index.js": "a5d8cfa1abff2159e8dc37e1bb4a818f251fd99c9f430c6286a47ce23cd5061a",
41
+ "index.js": "d5f2975c8e8bd73ad91c85eaf338b3600c39cb1b87a454fcc93d20de7af7eff5",
42
42
  "install.js": "b2d71a926a62c96c994c76735f40dff068c429b5a368005fb62e60972da41c2a",
43
- "install/_codex-agents.mjs": "406b9343922d493c8331542d0fdcc2503d2c8abab518413c4154e1828706e874",
43
+ "install/_codex-agents.mjs": "983eb1104f84faf0b3b71f6925747e268f9aac110df70a148bfeedcc8759cdf7",
44
44
  "install/_codex-instructions.mjs": "add75ffc0e8d8db0e3bf275b46017a897a4cadb83dc66c7d3affd73bcead20f8",
45
- "install/_common.mjs": "8e7dac0c08e0712b3fec5ce6b8db08ccfb4bd3e36d98d22d9e1df8dcd5371250",
45
+ "install/_common.mjs": "208c71eb135ef3f4d3622096b68210ae22a150941600e60f959a344fd04a1671",
46
46
  "install/_copilot-instructions.mjs": "73e4b82b2af0f3e1669f772fa0788dac6b540c131e56d5fe38dcf29be85cc019",
47
47
  "install/_dev-only-files.mjs": "51285901f3b650ff22a76f8c05b23c69b9ceb6fe3da3333cece9e0caf65065a4",
48
48
  "install/_managed-block.mjs": "7328728a7c82744b66218034389fc295d1384311daa5415408afa94be14303d3",
49
- "install/_mcp-register.mjs": "56a785984afbba54aedc3677652ca4ee990d98d45b6599a3937cb656cad53b46",
49
+ "install/_mcp-register.mjs": "1b1c294c3333c912aab3929ef67dc68b1e24e65d01f2073bf7e23193b3e37c71",
50
50
  "install/_platform-filter.mjs": "1c66acc79da0da0c1aa5a57050989e84198c3153e6437ee03f1d3bacbb12ff2c",
51
51
  "install/_plugin-skills.mjs": "bf287053133f940df0ca434cfc5ee522fd27e80dc7f7e60ccc963ecaabee047a",
52
52
  "install/_telemetry.mjs": "5433d753f909beed2c8789272bba05e245482c472f83d3444f58000c4c9a634b",
53
53
  "install/_unattended-profile.mjs": "e1ed82bde35d19105ee12c2a551eb778912b0e5c93ab227fd15c993098d98de0",
54
- "install/claude.mjs": "f98055b1a48850f773711189b275be9fc855ca53fdf6828369595a4fa89c82a7",
55
- "install/codex.mjs": "1eb8422a73617994ed80711946a4a49415f092ecacc50396eed047f899f5ea65",
56
- "install/copilot.mjs": "555e9e253fb9d3e20584dd3822575e40016fb5ded5cba52559f56f4fb61b0af7",
57
- "install/index.mjs": "9179e64ebab9eef27db614611a10df399a5c96757fff0faba7853fba3d5fbbdb",
58
- "install/templates/claude-hooks.json": "4e01187d4b65543cb73ab9a2bd86357992f6e76670989bb97a8209670aa66980",
54
+ "install/claude.mjs": "8f4a5cd547651744710c6b1682d2ae5e9757cc4b963c3288c6c91a27a67edc69",
55
+ "install/codex.mjs": "2c2238cd9dd2f95b4a50a505387e8e49ddc1513ae13998f05f1ed3e3a71b18e7",
56
+ "install/copilot.mjs": "300a74f17084d1a38f16428ca7477394c29e33cd755156e19b92e457999be234",
57
+ "install/index.mjs": "07ec26ecdd81cc983f146faf4b7095c98edce39c89a6fd83c24ce43229d2d9e7",
58
+ "install/templates/claude-hooks.json": "12d6bb0c3cd7d71b1d2029e2eb4370ca7b5ee55bd88f96b09c927d8119a87be7",
59
59
  "install/templates/codex-instructions.md": "dd78eb9553e725c039380457245793a5fc748ae37ebf5ccfe11be5ed5b9a4025",
60
60
  "install/templates/copilot-instructions.md": "f8c34b1daa18cc0285a1d443765c9a799301ce4b853068e275f3e8abd166a2a6",
61
61
  "install/templates/multi-agent-autopilot-awake.plist.template": "ddd25c76c56fcbb38a89de8e35637372d70ace993d6bc487a88ca9cfb702fe1f",
62
62
  "install/templates/multi-agent-autopilot.plist.template": "122c8a61cd927edd99375d6e3da40f1d42bcceed5b6641785c8b28bb930bc77e",
63
63
  "install/unattended-profile-legacy.json": "f52e86b998956f09ad306b1735a6c10b58580d7082d8a55665a4c6bb15c3aa1f",
64
- "package.json": "efed7a265857ab81826a729fcb739fd79fb1685c11fd07d43ab384a1d339bf58",
64
+ "package.json": "b606c47b1f00601d119acc868bdb8ed4cd969f03d4a02d0f07c8b5d560b8ac33",
65
65
  "pipeline/agents/android-architect.md": "11fb74543cb0ebcf9525ca6654fe95d53da7229e0bf4a1149b31fd9005abc453",
66
66
  "pipeline/agents/backend-architect.md": "b02a606c301e4714131aed70ae6d16eeb77fbc819a001e2752cff2488d4246de",
67
67
  "pipeline/agents/bulk-reader.md": "6597052cd7d205bac2b1c7633f5232fe1a40730664a913b8eb77efd5a786dc25",
@@ -137,7 +137,7 @@
137
137
  "pipeline/commands/multi-agent/test/SKILL.md": "5a67be2b1ec0321e79f8b7f35be53676e349e55a4f8ca09a07f0de89dadac8c4",
138
138
  "pipeline/commands/multi-agent/testflight-validation/SKILL.md": "38fa8d3d3c8340d025e100c53a70183cbad22665b7ddccbb6102c05986cce489",
139
139
  "pipeline/commands/multi-agent/uninstall/SKILL.md": "b2124820a6e10cdd72be71df2183aad4f8bd8988ec90248c88599c1514f7d9ab",
140
- "pipeline/commands/multi-agent/update/SKILL.md": "f596052221345312ce03937b88604ab82b303e3255a64b5dfe7c49dda87a5148",
140
+ "pipeline/commands/multi-agent/update/SKILL.md": "28eead5c13e102396058268abba67888825b15aeeb7b999bd52a4de2474457a3",
141
141
  "pipeline/commands/sim-test.md": "17fcefc2030f0ab24b3ee59807dfc11264b34d7455138081996859b1fee8664e",
142
142
  "pipeline/contract/CHANGELOG.md": "33d5dd6b35d8498928f431729dbccc9aae2f42e3beb04da1bd52f682846b2c10",
143
143
  "pipeline/contract/README.md": "4a60faddcd31973302bab93bb3fab74da96024c79aaba3676c6ceeabc2088132",
@@ -167,13 +167,13 @@
167
167
  "pipeline/lib/autopilot-state.sh": "e97d4cb4fce18be8be3485702be0e6d0948209a14f9725cbc83c2721d293432a",
168
168
  "pipeline/lib/channels-multi-repo.sh": "aef26f888bddbaf7fb0e2e86143d612da776b4a4282bcee8144a090a9050b989",
169
169
  "pipeline/lib/classify-intent.sh": "dab0896bc9707a10ac046d0b31d25a48c363cdde76cb1d720bf847deefc0364c",
170
- "pipeline/lib/confusables.json": "2638872fc47c7a8c087902938d67a88440e855e66ede487ac1c057ff85f1571f",
170
+ "pipeline/lib/confusables.json": "64a31eba5d1f44c6177abf6d9dfddee671201336f76c0db71e96a0d49cb4fdaa",
171
171
  "pipeline/lib/context-link-extractor.sh": "84a154dcabf57136be17199b21d02120d70cc0ca34e8f48fe24bdda74eddda1d",
172
172
  "pipeline/lib/count-lib.sh": "7bafe152b0ffb9ca6fb9296b7ecaaef33deb9410286b3579fefbb37796044f79",
173
173
  "pipeline/lib/credential-inventory.sh": "adff81b265a9cf4f8c9135011686c12963cf5eeeafcb266be54456c803ffde38",
174
174
  "pipeline/lib/credential-store-resolver.sh": "62d16fae85f02739c925bd62911d8594518ea1fe7224ac30ec8dc2dedcca7dc9",
175
175
  "pipeline/lib/credential-store.sh": "88b09c60fd024e347c0de08c27df372b8c6ef7a54a164d85bfa7c763e850c1d2",
176
- "pipeline/lib/extract-conventions.sh": "0f435d5e38ac49e619af36ea67ebf5153c85c9abc8f56ae1aa2af1272ecdb4b2",
176
+ "pipeline/lib/extract-conventions.sh": "b324b7883f7d3bb296be4ac30323673de5a701ccd9102de419ec02371c40a85c",
177
177
  "pipeline/lib/fatal.mjs": "6b1e34d9f143df1ff9802df62ba77b27f83dccb72654e4351b882b9eb1ab2977",
178
178
  "pipeline/lib/fetch-confluence.sh": "237ed91b3156ffb0ee8d3270ef2d46de069e0375256ff6ee5f730f636529a4fa",
179
179
  "pipeline/lib/fetch-crashlytics.sh": "51ea5d8f19d5b8a0c84b7514b18d34602013a7aa4515cc856436bf99e0f883c3",
@@ -188,19 +188,19 @@
188
188
  "pipeline/lib/invoked-directly.mjs": "a7014f252174414c267cc303a992aa9f3986541c5aad188c87cc6809ba3b69bd",
189
189
  "pipeline/lib/issue-fetcher.sh": "36f6eb41935fa44072cf3c9a92a5698d4ffd762103eb57f733e65687ab47479e",
190
190
  "pipeline/lib/jira-publish.sh": "a32e6a682ae730ddd9c6df64b9ece1fb73c797111c63f5c247d7e733668da6b7",
191
- "pipeline/lib/json-file-lock.mjs": "6cd6d401d9a38c6d0069ce50c2d38ff0c8629e99c384466058978de4166caa6a",
191
+ "pipeline/lib/json-file-lock.mjs": "6ff8d8d7b890fc549e07287eca1e8261b69f930ec523d08fb73786677aa0a45a",
192
192
  "pipeline/lib/md2confluence-v3.py": "3677ca47931e4b3d0fd2ce3e11299fc5f6d24799eb8332e37dd60b6c3c4653a2",
193
193
  "pipeline/lib/model-dispatch.sh": "7edd5c92d41ee3bf74972e0827ccbb671853d5410e7fb0af0b7cb020f95e05c5",
194
194
  "pipeline/lib/model-rung.sh": "2a5e04af3c6829d4c72e5f518e668a9cc2feffe6f2abb90a68c485f52e81959a",
195
195
  "pipeline/lib/multi-repo-pipeline.sh": "5cca6bcc4fb857448ddadb31add343952be89423a328267e56496c7b7cdc7710",
196
- "pipeline/lib/normalize-text.mjs": "db5f3b6618c679762227083299ec7f7bef8f1bb6b9179f19449b5ff904812c45",
197
- "pipeline/lib/outbound-gate.mjs": "4e89bf43554af4c727ef110505658159c7a7a3c53d8a4007f0e2e65dab87896f",
196
+ "pipeline/lib/normalize-text.mjs": "c2eeed65ab85cdc27a12ecaadc45dfa00b49a7611250c9ad881b9e93882a51c1",
197
+ "pipeline/lib/outbound-gate.mjs": "1ebc840e975f19b0da4699b3a37361ecc8a2be1a7a558d2b2fb39b8b64244011",
198
198
  "pipeline/lib/parse-complaints.sh": "d787ce870f141cf7f881da80fab4320814044554065e82e94632f061675b4d12",
199
199
  "pipeline/lib/phase-schema.mjs": "8fc0c909f129341295cd8ef2ea9e93cecd0ac493c3a8d83e25879f7ff522f1ab",
200
200
  "pipeline/lib/plan-todos.sh": "4992bed180774a27f84892add8b09e0f7b53e9b8fefb75f60325a04d1af18c56",
201
201
  "pipeline/lib/post-pr-review.sh": "c7a8f8c648ac7aebf904e70ae482c026de5b3cc897b376cd8aa52356fda8b805",
202
202
  "pipeline/lib/pr-request-location.mjs": "622ca4705ec8ee00e0a4609657d8ee684fcdc077f3099ab312cf41b5b0c41efd",
203
- "pipeline/lib/redact.mjs": "2fefa32781d8e0618a467b62ac5a01f89e59a6d123503af535203b638796fb28",
203
+ "pipeline/lib/redact.mjs": "443034132ec8163e3b923ca2b8d5304d575c02bd7396523ee677f36444adc7f7",
204
204
  "pipeline/lib/regular-file.mjs": "084dd2c98a664a1e4a937757cc5e5e5d7e162b6aa422f8c7cfdb27f7834c6cbc",
205
205
  "pipeline/lib/repo-cache.sh": "82bbdd3d61746042ad5341554a1077098d4b56f15caf6c5cc092377a273c8f45",
206
206
  "pipeline/lib/repo-hygiene.sh": "67f4227d2bc84198d51205f1f16d055e76a07fe11a4e5c2b8103559c44cefa04",
@@ -226,14 +226,14 @@
226
226
  "pipeline/multi-agent-refs/_repo-picker.md": "c325e86d00fa5e26893eeafcfae8c809f62e34e2ec643b4b364ac4c6f9caca45",
227
227
  "pipeline/multi-agent-refs/analysis-template-corporate.md": "928cdf3e5948ca7540b14e704cf2e6ecb4864579e519dc148025a372bf103176",
228
228
  "pipeline/multi-agent-refs/analysis-template.md": "47b7ac138be0cd4e5e1cae69fb7bb7ecb883db13883e9641e708321f09ea4898",
229
- "pipeline/multi-agent-refs/analysis/evidence.md": "27f821b6bba92a56df1c50c96086121ab6c5d3fbb4b9fec65bd9df6b23a1700a",
229
+ "pipeline/multi-agent-refs/analysis/evidence.md": "1385d8c794018feec254831b2e325d11ba4fa697a7a987890047e735b34cce26",
230
230
  "pipeline/multi-agent-refs/analysis/intake.md": "9b92880a57218cf5e552547d4ddd9ee797603573ecd16617b1fc60b5e03c3564",
231
231
  "pipeline/multi-agent-refs/analysis/locked.md": "381f0932f8988c3805e4e0aedb55e191ca2cbecb4a6ee1e15f73e0e08d0a927c",
232
232
  "pipeline/multi-agent-refs/analysis/redesign.md": "ed0b1c6c4157b0063debecad3342a48c83f3b015160cb6f37fbc429167ad18c3",
233
233
  "pipeline/multi-agent-refs/analysis/render.md": "40cb3076ba8a8c561f5954d84aa3fa0574cf701fac0787239f9ee4c5742707d4",
234
234
  "pipeline/multi-agent-refs/analysis/resolve.md": "244ffaf7f92b41d4608cbb7cd1ff7ec7489ff58c0b256c48653750446efcedd9",
235
235
  "pipeline/multi-agent-refs/analysis/review.md": "169098367ecd97ad31aa82cea6c5e2c44021815628d18d33badb285e225b9b58",
236
- "pipeline/multi-agent-refs/analysis/synthesis.md": "53b79b27991a27c412677679aff65afd2238e85a2c99599946c9cd20b8b0bb23",
236
+ "pipeline/multi-agent-refs/analysis/synthesis.md": "1ebdd0042a976c7bea3311fcf3e80127c4524efdd13886add136e846dc19d1ca",
237
237
  "pipeline/multi-agent-refs/android-guide.md": "826ad836028ef1f0bd32110999e78b438dbf0808304367a58a2b45cdeb659bb5",
238
238
  "pipeline/multi-agent-refs/audit-guide.md": "03586937e913f3457b1219435de7473973f5f0d085a18484b7c8efce24a4ef59",
239
239
  "pipeline/multi-agent-refs/backend-guide.md": "b8809b06f7feea6a13f9b433a2b9828e39c81ef3ab59edd23c61cf183d80f7b0",
@@ -244,9 +244,9 @@
244
244
  "pipeline/multi-agent-refs/channels/pr.md": "abe0101d4f2a7cb1ecd88c4260e9ae9e7d6dd65dd52afbf6c44c573c48d11f20",
245
245
  "pipeline/multi-agent-refs/channels/wiki.md": "ba52c5efaedc067dd8456fe9076af694d7e3dae9bda621f1df65c9159cd422da",
246
246
  "pipeline/multi-agent-refs/complaint-analysis-template.md": "dd5f12a8f56ee4dc177fa7bfba4ffe9ad021e5f1b9e661a49031f02dd6e37109",
247
- "pipeline/multi-agent-refs/component-dispatch.md": "f20ebaef98e2e48c3aa2c247ac10402ef5f433956ccb1481fc47585174871711",
247
+ "pipeline/multi-agent-refs/component-dispatch.md": "2ab9094aa716397e4840cd48f736c3f4fc3e7c4f9ccc5c7c7c52f9e8b0a28fb5",
248
248
  "pipeline/multi-agent-refs/component-generation.md": "04fdb3fd0f1c129e1df8243184a3225cebd9c4f63511d6015eb356a92eda8891",
249
- "pipeline/multi-agent-refs/conventions-defaults.md": "6bb019d012232322f73726775083778e23f580e182c8e4204307136fedc706a6",
249
+ "pipeline/multi-agent-refs/conventions-defaults.md": "608a05ec6332fc19ee12c0418fbf25165f80e6c06cfee9efed7f27fab185d97d",
250
250
  "pipeline/multi-agent-refs/cross-cli-contract.md": "ad8c29b8fdf1a84665250451996df8c67bbbd84b94ee8386e31333492d2d9f73",
251
251
  "pipeline/multi-agent-refs/features/analysis-jira.md": "5542735d39a96d288cf99d1dfe18ec30270d2777a260c80d74ab6e5121edc9fb",
252
252
  "pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md": "b2bd47d55a2af66da15c5ad8d066ec2990ebf9b3af3c0c38cc48b0ad0210565b",
@@ -282,7 +282,7 @@
282
282
  "pipeline/multi-agent-refs/features/stack-adapters.md": "71e23385da872ceed35263f4838f154800aa2da55bb6688ccca74726b70a3ef5",
283
283
  "pipeline/multi-agent-refs/features/stack-skill-routing.md": "8d45fb7331509411617d2bf5c42e752eaaa7ada24dcf38140f2710b28ab4fc0f",
284
284
  "pipeline/multi-agent-refs/features/unattended-gates.md": "46b516cac81a4eacf5d58bc3b1613e2266c26f1559be8dac060d1dc6b7d7ca01",
285
- "pipeline/multi-agent-refs/features/unattended-security.md": "8b7c5718e95c81debd915650ff2458b4764fa78eeceed779476955b4f04165a8",
285
+ "pipeline/multi-agent-refs/features/unattended-security.md": "eeb8656845ac78ab612b2e3352b241a6ba2d8b8f6d4a6d5c2e7cab1f6592a4d6",
286
286
  "pipeline/multi-agent-refs/features/url-enrichment.md": "72e01a799d9fa54b56c762ba404a9f9236adbbf98320e395a96f6b0f5917e76b",
287
287
  "pipeline/multi-agent-refs/features/usage-reporting.md": "6c232060da49033ef2c9ccead69084dfb7cfe45333f670b407b8afada8b99007",
288
288
  "pipeline/multi-agent-refs/features/verify-by-test.md": "b0735adaa7ead797167b8d9ea48a10851a138083c6e638738cc96c66b02a1e37",
@@ -429,20 +429,20 @@
429
429
  "pipeline/scripts/_smoke-root.sh": "dad129959a4e37a0cd0f4f6c04f6d66c5a43752b2bf33989db9c002eb106b832",
430
430
  "pipeline/scripts/_stack-adapter.mjs": "a754c042d237cd03abf11c6909099a7a3ea798cdd13d49b03787797fd3496cd7",
431
431
  "pipeline/scripts/_stack-routing.mjs": "d64421b48eb42efffeae01f1d64ec56182269285de62e80434f3b8b05610e2ab",
432
- "pipeline/scripts/agent-guard.py": "764e7ce3dd448b37cf7b69b03def5d173ab8dedadd2b2dca098e20ca15fd8604",
432
+ "pipeline/scripts/agent-guard.py": "1d214df7992463a0529f9eb2518fcdf6e5817778937a05f6c78efc1af832c9e5",
433
433
  "pipeline/scripts/agent-guard.sh": "5b57cea687754533c673b66a9dd2281ca06d12ef86bdc0d03fa285fc9e7debf8",
434
434
  "pipeline/scripts/aggregate-metrics.mjs": "c324e349993fb154a885263cf6665af0ff656e9c987b455a263dad8b96cca667",
435
435
  "pipeline/scripts/analysis-story-tree.mjs": "8fd371d3e552a3f60533f18c7699074ae6089016c6663512410c4fa02494548f",
436
436
  "pipeline/scripts/anonymize-findings.mjs": "5d7e042793790c1b924d4d952b4f79b7e5f1dd0a3fe936f1ee16a4fa2ba820dd",
437
437
  "pipeline/scripts/answer-question.mjs": "b948df9d063f623a7ccd9cc65903c4388018b6b968228f77eb2e229223a61b1c",
438
438
  "pipeline/scripts/audit-log-rotate.sh": "5a4ef7d9ac75abbc5a5103fc2202b89707a2f2c00432ece133a132b483cd7450",
439
- "pipeline/scripts/audit-log.sh": "5e0e45da2202a1a36f09408bf4c727f978c9850bf709c125cd2c0ccf414d7ff4",
439
+ "pipeline/scripts/audit-log.sh": "a2f721f88edb3dde6647c4438a37f419eeafcd37166be022907876799981e13d",
440
440
  "pipeline/scripts/autopilot-arming.mjs": "38224fc58dc208e5e2d5793302cb67c6d0ab75be2dc4259cbe55ac87102a59b7",
441
441
  "pipeline/scripts/autopilot-awake.mjs": "23ae96e519fbaef86980e732196a581a861f4ffe9a319ce0bd3ffd7c9fe48b10",
442
442
  "pipeline/scripts/autopilot-intake.mjs": "a65ac29850de94002bebd5db3f09b406c65f1875b32058cccea6b440f95c7526",
443
443
  "pipeline/scripts/autopilot-menubar.swift": "4fa39e603630565ac2cfb5a8b0bcf891dbefb02ce272252b9480605241670ac7",
444
444
  "pipeline/scripts/autopilot-publish.mjs": "6a9727685d08c57983b9b6dfb398b7f7a7ef015ed14b8f61ac40207bb40f93d4",
445
- "pipeline/scripts/autopilot-runner.mjs": "bf4398aff2bc98ff2d1a1e9c3606cf96e8e45b92dbe6980c5b5f0c3c5d7fdd3f",
445
+ "pipeline/scripts/autopilot-runner.mjs": "7842a3f1ae2e516d8f771ae595ed9d722c41cb1bce7a6b1b2dd1772ff40b48cf",
446
446
  "pipeline/scripts/autopilot-status.sh": "8b9807155cfe5eff09ee3e01a8c3e5d1bbf7554db22de89de438531e4554b32f",
447
447
  "pipeline/scripts/base-branch-candidates.mjs": "c73a02033ed9f10c15b3aaf010432f0d4e429a75eba14731e9a64492e3fe3859",
448
448
  "pipeline/scripts/build-lock.sh": "9cf9a3f5100c337af86264ddc60f2ec763b6402c11c639946020037d78d5d365",
@@ -473,7 +473,7 @@
473
473
  "pipeline/scripts/crush-json.mjs": "303382670f8f170c8c6710202853a2de2915625813cd157185f9be4e2b27258e",
474
474
  "pipeline/scripts/diff-explain.mjs": "194d0635639607cb1af3de064453162e01c0d59dc0c2e187d21d45bae3bc559c",
475
475
  "pipeline/scripts/diff-risk-score.mjs": "b3e8da42fea1258162e40f4eb7809074831339b7563874527f7e825f7aa795ca",
476
- "pipeline/scripts/doctor.mjs": "e37cee071270432d60bd52fd8ec6d9ed9132b90b405def7ad4874daba4104d7d",
476
+ "pipeline/scripts/doctor.mjs": "d903ffcf79e37175047e2b662d324ad7db67bd355297672e9383ba1a991ffcfb",
477
477
  "pipeline/scripts/evidence-gate.mjs": "347a8d3fa1d17d996de345585c216bd7071f4c1d687999daf6e48881720ea5df",
478
478
  "pipeline/scripts/feedback-send.mjs": "d3ed66e9dacdfb4b5eacf1b244bf66752304fb4fcb144531441b458f3ab806be",
479
479
  "pipeline/scripts/finding-fingerprint.mjs": "fa12ab10701db5d2bfff014e41d1cd4c0b2b772aee5fc69205de14b2761b0c83",
@@ -485,7 +485,6 @@
485
485
  "pipeline/scripts/gc-worktrees.sh": "f6b405306b603797e950274fdf3b732140c3fd45d5d15788374d2e33bc21b534",
486
486
  "pipeline/scripts/gen-facts.mjs": "6ba70f7db881c3e3577a5ce3dcbfda09aa240f728ee577b019f2176d8051fd67",
487
487
  "pipeline/scripts/gen-mode-dispatch.mjs": "89e9f3d0902b0a1feac5ebad0ac767c07a8875c081c9d0094eb0e055b7da5ed8",
488
- "pipeline/scripts/gen-ref-toc.mjs": "23b4f4fd5e2ad7434433d23c116e056186b0ed27ce008cc01b1bd9a0ef13f4e7",
489
488
  "pipeline/scripts/gen-skills-index.mjs": "64606fb3165786ed1488cc368dcbe8f53d2e9402f02578823a31838b9730180d",
490
489
  "pipeline/scripts/git-path.mjs": "c035624f1ab924039b37e0911f56c6a1fa781ac41dc89fadfdaa4305f4359c12",
491
490
  "pipeline/scripts/github-ssh-setup.sh": "5a9e1836d80e4e176806c143a3c8ba4c1b9c4274ed49aac71f33bd40de31968b",
@@ -506,13 +505,12 @@
506
505
  "pipeline/scripts/learning-curve.mjs": "d574eec427c7f37a7a77a9ef9e2499f50dadc2215a20ae24e31654afd3497f36",
507
506
  "pipeline/scripts/learnings-ledger.mjs": "411bf80329a1c7700e5a523d5f0a7d1d3a716514f9656703bce67e26e71e0bb0",
508
507
  "pipeline/scripts/localize-commands.mjs": "d095d354be4bf5ea7c0a68969c1531421908b195755d591c5012334d821f201e",
509
- "pipeline/scripts/log-metric.sh": "f77b1c832fc7cb14dfe51feff023d76f76fb8891f0a61d514b52952e47681b8f",
510
- "pipeline/scripts/make-manifest.mjs": "db692c1bfcc0a7721ffb0b4d9ec57b74fadcaddf2821a32e222a4d4a513c425a",
508
+ "pipeline/scripts/log-metric.sh": "f3764017124add197bea5f1176854f115be84d786dc1ece3246f312c2965dcf1",
511
509
  "pipeline/scripts/match-skills.mjs": "dd6c023a623ce6e9999f3eceaacd91f8d0c8ac621e3f025c8949e2203dc05bdf",
512
510
  "pipeline/scripts/maturity-followup.mjs": "531eb9578a71ea5bb2510bb24a48f264c36aaf7adceca7b4ec3dccd1c63ae412",
513
511
  "pipeline/scripts/memory-load.sh": "c6a1976372ed033c9f3b55e757e22d05b4ef0d9774bfe185453d8847525b4a89",
514
512
  "pipeline/scripts/memory-save.sh": "ab6b4c3d78707e0ac66fe56726308782568f247463d4c7edf2316b2dd399ee6b",
515
- "pipeline/scripts/migrate-prefs.mjs": "513aa3d436d0978c18c3c9abaf377f0373c8bc8b312b09aa8f7a8a85a80d0792",
513
+ "pipeline/scripts/migrate-prefs.mjs": "bb389c2527edaa5bf317ee1be55c2f449da21100fc9660943764d2bcc757d665",
516
514
  "pipeline/scripts/migrate-state.mjs": "b6fb42f56ea56ab10c00e947f013e3aecaeef1aa0d819493eedbef7cdf7d4370",
517
515
  "pipeline/scripts/note-session.sh": "1466d93f401c66074705635117a052a3f811ca22f928defa1ec2e4c804c19fc1",
518
516
  "pipeline/scripts/observations.mjs": "edef08a8ab8f967030da0575d83f501eb6256460c0b72c2ba377c629b3ee0674",
@@ -528,7 +526,7 @@
528
526
  "pipeline/scripts/plan-critique-gate.mjs": "b139394e5f16d11e4997d0bb0b08529f439dbd7fad39781ef4c2475247d8fa97",
529
527
  "pipeline/scripts/plugin-refresh.sh": "687a33199ad963616ab537e32210ec8c967e76ecc42f494ee8a1dc9fe947fc30",
530
528
  "pipeline/scripts/pr-request.mjs": "e6f4ded2366c6599bb345b3011ecc771e13b8a1561afa4c9a50bca4edff17456",
531
- "pipeline/scripts/pre-commit-check.sh": "43be6d8b31c02051e9a905274b735ed4cb9c6ccaa692928bdbd7ac1b17a3db69",
529
+ "pipeline/scripts/pre-commit-check.sh": "60c4cf2444981db3d098dced897fe410c93c6a65250e3b2376e48df8428b9b9c",
532
530
  "pipeline/scripts/pre-push-check.sh": "e449aff7f0336d7d624eff4c6221f56d8621ba9d010669601755e57fd4ee02c7",
533
531
  "pipeline/scripts/probe-evidence-capability.sh": "ac74252eed6b773fdbc7ec475a63606925f1ba7b5e7c6f911329f46fd920eae7",
534
532
  "pipeline/scripts/prune-logs.sh": "c5587b33104c7253e07be8cce8249b50014c52dfdf232de637811ffdd88e95e4",
@@ -550,10 +548,9 @@
550
548
  "pipeline/scripts/run-ui-tests.sh": "11331115a4c3fb436f8f35894b7f12a1be317c7cfcd7b7512aeb42b6a9aa21e3",
551
549
  "pipeline/scripts/runs-index.mjs": "7937dd3d6f3c5b7800d853ff06289fd5551413dda4f46b0f3db81483b7280e66",
552
550
  "pipeline/scripts/scaffold-gate.mjs": "e2935957771f1d332b9968a819de49676152c51991e89f4a9cab7467b6d18701",
553
- "pipeline/scripts/scan-agent-config.sh": "41dbd995de799f599dc365ea8cfe55542c48c7387c4f94a596a1e6feec278168",
551
+ "pipeline/scripts/scan-agent-config.sh": "dd3eaa2481c05784a09c8243762da6f7b91323d63fb635a667bb59516fc2086f",
554
552
  "pipeline/scripts/scan-skills.sh": "85765b7ec15af13ade5c9ccedd88329c19b11a627e8df6dccd4839e95361dfb7",
555
553
  "pipeline/scripts/scope-check-gate.mjs": "a71b736b1283b6b99fcca23ae2159e9fb134e1e65dbfec1e66d63a5cc20582f4",
556
- "pipeline/scripts/scorecard-snapshot.mjs": "320fb2c811e085451d152997e6b5ee54fa0d14d374d9592ac7880443c5d02ae3",
557
554
  "pipeline/scripts/search-logs.sh": "af0ce9b75edd359cc93dd678d35b15eb9bb0f14a4b044d8e4d639f8cdb82c76f",
558
555
  "pipeline/scripts/sign-skills.sh": "779355dcf8ce383959e9a3c6093f46660a0875e83a805b7a67983acc8551cb59",
559
556
  "pipeline/scripts/skill-conformance.mjs": "73c5947ee4a6201f52653d162ba1d6e70757cbff8dd1e90317a7c4b095424b2b",
@@ -574,12 +571,12 @@
574
571
  "pipeline/scripts/token-budget-report.mjs": "508bbc659df478c535c0ecdd3f8611372af8fef0b0932c7b19a247af2b2b9265",
575
572
  "pipeline/scripts/triage-memory.mjs": "2d8541145f1749593ae5728fb4c9eb3001484edb5e4d37be473aeec34d1dbe7c",
576
573
  "pipeline/scripts/ui-tree-dumper.swift": "a09e42ef069eafa08c05afd8333e05b754ef6a7d8b9687712039b0f2c9801273",
577
- "pipeline/scripts/unattended_policy.py": "a03dda2176d8a4ebce05b34f353fdfa01ac5e67ddcc7a163e0966bbe9f83d7e7",
578
- "pipeline/scripts/uninstall.mjs": "ea698d098ebc5590fbe9656af72d26773c9addfa8a8b9f747ed16514ee96f686",
574
+ "pipeline/scripts/unattended_policy.py": "695a204f43dd509f04bc4a5eaa9d700f0ea1d3a63a4837b81e0d01fc086e7246",
575
+ "pipeline/scripts/uninstall.mjs": "880923522ef59fdd98cb7ecb1bdc85c0f15d1e2eed2d79d6d353e88712ca95fa",
579
576
  "pipeline/scripts/update-check.sh": "9c00647e7ca4249414b2e5af08f61705ab5bd2106b6f66ae8ebce8aa143dc957",
580
577
  "pipeline/scripts/update-issue-progress.sh": "ccfef87743e91272e009e396ac07461d2784b2fa84a06c802a582526eeeb9ed9",
581
- "pipeline/scripts/usage-identity.mjs": "3e2479bafc290f1acb253f5273339c87550f97d332818a26e5ac266d7ef289dc",
582
- "pipeline/scripts/usage-register.mjs": "2844d2187226006d1a8b4e9b044d7591f4a5d3313cb24f9e388b36639022ce4c",
578
+ "pipeline/scripts/usage-identity.mjs": "47c1f907fb1ab47672687ea0cbf2d0737985ae91ec2b48b4fe260e14c3d35d70",
579
+ "pipeline/scripts/usage-register.mjs": "cc19d7ce5efe57255ce1521d33ad4b9a75b6833385ed6edcc5e339faf3c6e06c",
583
580
  "pipeline/scripts/usage-report.mjs": "01ef50005c3358d17ca4ef69b80b5b576887ec47cb360c0211adbcc9c1f1e2aa",
584
581
  "pipeline/scripts/validate-analysis-doc.mjs": "ae56b7578ef51e008a99f84eba9def3e0f1dd2bd87a3880f2083aa98b365f7a1",
585
582
  "pipeline/scripts/validate-analysis.mjs": "d2dc9ccf45f6ca2702908761939edd830d18b3b273016a4b449f26fe285d5ea1",
@@ -599,7 +596,7 @@
599
596
  "pipeline/scripts/worktree-prepare.sh": "9391c828375b127f77c86e3c830dbbaf355a61464c6437319969f2f1eecc72b1",
600
597
  "pipeline/scripts/worktrees.mjs": "90dfd09b70fffe9b56c331a4ae2692cc248f4898f4ee6aee4239ef0b20888a90",
601
598
  "pipeline/scripts/write-state.mjs": "e1198bf970eace07d3eff22b394808a526e473df65d3d58aa2d5a12cfdac8b49",
602
- "pipeline/skills/.skill-manifest.json": "29f591cb4dcf509fc59a0defcfaca6487e8c000c98d2919f0a350af441a72887",
599
+ "pipeline/skills/.skill-manifest.json": "a9630d718fa494d75e17f8ea822eb1501b85aa165362e98e53d3789d6e57a051",
603
600
  "pipeline/skills/.skills-index.json": "042b1090f3e2ca310c6ce70d1bb304e8c7f96bd73133e504b95d83801608e470",
604
601
  "pipeline/skills/shared/README.md": "a144fb39993470b6379d9660e0ee0371bdc858aee3d7c1b375cb6aba03d046db",
605
602
  "pipeline/skills/shared/core/apple-archive-compliance/SKILL.md": "7239fef717ea45b79276bfcc2c3903acd57950b6e00dd6a2a66399c4b09cbd51",
@@ -740,12 +737,12 @@
740
737
  "pipeline/skills/shared/external/background-processing/references/background-task-patterns.md": "fd39d3117fd99a62b32eeac0e707842f2a06c38d75aa3630c6c8c147c6f04be7",
741
738
  "pipeline/skills/shared/external/backlog/BACKLOG.md": "b84c4753116f13a5b4cc2f361fd3242cc246545d86f055ba45adf5920cda2736",
742
739
  "pipeline/skills/shared/external/backlog/SKILL.md": "f48d35654410bb800ab477c87b7ce6db8e758671cbb733c36429d8435b7d250f",
743
- "pipeline/skills/shared/external/callkit-voip/SKILL.md": "0a7102e006a54e38011e24c274c50b0988f210cdd34fb6405ba5db922f23d3e7",
740
+ "pipeline/skills/shared/external/callkit-voip/SKILL.md": "44646c2f192170a5468c18a0c78fb77ffcf135bb8d8cf2a7581ac2d1c0909eeb",
744
741
  "pipeline/skills/shared/external/callkit-voip/evals/evals.json": "b2250509b3cf83bc790430e7292a1c8f4c0cfd9570efbb590a3ff8250f2cbeb4",
745
742
  "pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md": "c8cf366198471ede209f86186823a5d7ee05d1f2cf51093ee3de0c6665689f0e",
746
743
  "pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md": "753a90d54c392d0a120c4e36ab34d7a43f9e0fe63609e65154c9c1da6d824763",
747
744
  "pipeline/skills/shared/external/clean-code/SKILL.md": "2675ebe3c867ccefd7ef03c1396b7b208a062db665be0fb452915f2b4612f4c7",
748
- "pipeline/skills/shared/external/cloudkit-sync/SKILL.md": "842889bc86a8be353871c6f2104a8f5f8e506cd81203e135ee25911cac050526",
745
+ "pipeline/skills/shared/external/cloudkit-sync/SKILL.md": "9464e93c0435628f3628a6f1775b7478dea75514b0fb3aa3cc09c7cec83be48d",
749
746
  "pipeline/skills/shared/external/cloudkit-sync/evals/evals.json": "c5286f31cd5fca23c14cf8f9d5727254bac0cd795785ea5d91151a3d8222aaa5",
750
747
  "pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md": "c2b7cb0fc1fbff3ea526e1f4f6ddd67f61f5ebb0abc802b34a5316c6efed8bfc",
751
748
  "pipeline/skills/shared/external/compose-components/SKILL.md": "03ad58d5552b37480978462907539fe1070eeafce80a2a3c943d1c3880983f3f",
@@ -766,7 +763,7 @@
766
763
  "pipeline/skills/shared/external/core-motion/SKILL.md": "320b35344887d1c5918c05d20aea87e790406f83dee041f5d91be0b6fd67bdf7",
767
764
  "pipeline/skills/shared/external/core-motion/evals/evals.json": "a2b9355c59f40a4c9d6b23589f0310152c3056ea5d7c591d7c52aa6860133b69",
768
765
  "pipeline/skills/shared/external/core-motion/references/motion-patterns.md": "b09ed249be50c26aa7c71a2dea74a78671e9cdbcaff261ec43e9cd544249064b",
769
- "pipeline/skills/shared/external/core-nfc/SKILL.md": "0f58b94d639b887588a472385791762181286ab30f015b423d868a1cef8fa5d7",
766
+ "pipeline/skills/shared/external/core-nfc/SKILL.md": "c838b7e38bb0c65f409674220ef9f6b668839ce2c0546609b75c69c1d7c18567",
770
767
  "pipeline/skills/shared/external/core-nfc/evals/evals.json": "3a9104849944a4943b23c03e1b775f783075d2d4dedb6cb2d3a0ff88919b861e",
771
768
  "pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md": "e5d8f5a19bbb7c38b67e916344365085a978f5bd73aa507967769f4a57b45e02",
772
769
  "pipeline/skills/shared/external/coreml/SKILL.md": "b5f3fdf161a2bd2ab839a52093f0cb99c2c3026211e48a7d13dbab712e11b255",
@@ -837,7 +834,7 @@
837
834
  "pipeline/skills/shared/external/ios-coding-standard/modules/_TEMPLATE.yml": "b9d7e93039133b2a8197a1a7b88adb4721d980973e9c048e1f3638bc8d6ec97e",
838
835
  "pipeline/skills/shared/external/ios-coding-standard/references/STANDARD.md": "a74dfb70422e039b6361739cb43c05550c79c217b38dff399ff92d7a7627e943",
839
836
  "pipeline/skills/shared/external/ios-coding-standard/references/lint-local.sh": "8dd4ddaa98a7cd5ef53c0355d7e2b76e114782898d51f029e67866514905ab17",
840
- "pipeline/skills/shared/external/ios-coding-standard/references/rules.yml": "e13853b460f093d3a3682b601b419a2693eedf9eae3ecad4e299b1fe17ca56e9",
837
+ "pipeline/skills/shared/external/ios-coding-standard/references/rules.yml": "dcac3676f9559f343c68e6393fcf5ab46814737ca25224cab393fb47e59a2532",
841
838
  "pipeline/skills/shared/external/ios-coding-standard/references/swiftlint.draft.yml": "53406c6a44647aa72af95dc033189a66a48a5332f36cb6bc844a4a054d700cce",
842
839
  "pipeline/skills/shared/external/ios-coding-standard/scripts/check_structure.py": "26a2c26e40a5cdad79d13664e6a492c49ca7c23c942b790f9140aaa08ddea426",
843
840
  "pipeline/skills/shared/external/ios-debugger-agent/SKILL.md": "2126e7211042209922a848d5e24589b893c4d3f5da658d81c166e5c1347f4b3f",
@@ -846,7 +843,7 @@
846
843
  "pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md": "3b9aa4a911625a5b246c728d5afe6ec52701d362980de528c554b25b4801a3e8",
847
844
  "pipeline/skills/shared/external/ios-localization/references/string-catalogs.md": "6e103989d396c43ab3c0e4b2d5df6da34ba6b2d33fae649d84ec4f38f5811ace",
848
845
  "pipeline/skills/shared/external/ios-module-structure/SKILL.md": "abb85b305ffeb1f3cd5015fe630311b22a6914c88c59b8d4b71691496235f7b9",
849
- "pipeline/skills/shared/external/ios-module-structure/modules/_TEMPLATE.yml": "787436db8f53ac2d92ed84c9ff4b9565365b8ab71b7b25049b3eca6c85eb7fc2",
846
+ "pipeline/skills/shared/external/ios-module-structure/modules/_TEMPLATE.yml": "9bb2d817e1db80f8e41fd97587a130d8020a436dec8e07f0c08596cd9533df3f",
850
847
  "pipeline/skills/shared/external/ios-module-structure/references/rules.yml": "8fb27b48bfcc0fd285a093cd4d76a5c8097da7350c0502bcb7ed7ce970949983",
851
848
  "pipeline/skills/shared/external/ios-module-structure/scripts/check_structure.py": "ea741e91345c965c7a67f189813726700c2cf8a9859eb3119e950834ac5aa813",
852
849
  "pipeline/skills/shared/external/ios-networking/SKILL.md": "51b064a7830b77018de494f0c1913f7b6f93d1caac8e9398c214ccda5b3a71d3",
@@ -869,24 +866,24 @@
869
866
  "pipeline/skills/shared/external/live-activities/SKILL.md": "0a8b682b63b432246781133364fa4df98e4b1752ebc90994c4b39197f80522da",
870
867
  "pipeline/skills/shared/external/live-activities/evals/evals.json": "77a5ba20a4a2d0d6ca9a1913d462bff163a60568095b40057dcd13148a0ac168",
871
868
  "pipeline/skills/shared/external/live-activities/references/activitykit-patterns.md": "c1f8c2a88ce0c4345432b5b023a081e8169c5e9f47079b9ab130a06b58a87bd1",
872
- "pipeline/skills/shared/external/localization-reuse-map/SKILL.md": "ee6d437ed7ea18111074797532376d7bc09419eb3cfef6d8dde5679592457903",
873
- "pipeline/skills/shared/external/localization-reuse-map/example-mapping.json": "4e36ef6a64f2facc6ee034db260241dc977a7db49119deca487e7c2c3c08fcb6",
874
- "pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md": "21739f27dbaea52047ab2abc9fdac93c53973ee1c0599b3a701d2c3c75448139",
875
- "pipeline/skills/shared/external/localization-reuse-map/reference/publish-and-snapshot.md": "cda0489fccda351b47d6ffcb84210e244f23ea2abeffbcaf64f26a1c2c7c6da0",
876
- "pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md": "2d0e95169c2aa3dd67bcf72fd46010d4c6f5bb0f0e74f7f66cd9b1d615cf95a9",
877
- "pipeline/skills/shared/external/localization-reuse-map/scripts/_shared.py": "94c24ada0a7601b7d4d41e5f8d8f788603dda61c6493b6c6ec85c88f5500e4c9",
878
- "pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py": "ba117a36981edb43d75632802363f854ecbd9d3eb5057aedff70823b2fae1638",
869
+ "pipeline/skills/shared/external/localization-reuse-map/SKILL.md": "0a7429a2bbc2454b12ae4fb9af1eb09cc5a5d1ab96c05c693fc4827747bd8d15",
870
+ "pipeline/skills/shared/external/localization-reuse-map/example-mapping.json": "7df47a015224b0175b96fc3e4b020e41c4268e584fb0c5d668d96891f455ed9a",
871
+ "pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md": "92aa81c0798d6eee24114cb30f11da409f173f8392672d47ad4d111f71a2ba39",
872
+ "pipeline/skills/shared/external/localization-reuse-map/reference/publish-and-snapshot.md": "5530dca90e1b363bbe150a22c44c6abb40a7a7092c91948056bf09a4151516fd",
873
+ "pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md": "8a5f0bcd994ec74fc701a3e4042dad0fea7a3150682af03a7f568d9f24d3e41d",
874
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/_shared.py": "597123889141e10c2bbbed8baac115df18f65702e075c5bcc8385732f09d7c27",
875
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py": "b97b83e933599c8d89e7954b1605603b35ccc4c3ac0f642119a410d0fbddea38",
879
876
  "pipeline/skills/shared/external/localization-reuse-map/scripts/build-spreadsheet.py": "903592d3b81ddd94aa4c54efb4c43260f7c59bfa0a04df7583786358d90eb69a",
880
- "pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-annotations.py": "1a478b76ed15e0b18af5eb3c0db331c78213e09169941533808a1d6a0117a456",
881
- "pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-legacy-labels.py": "4b91791730013b2a85ed1b0e61de42bcf4bcf0abf7736056d5022a94abcb6078",
882
- "pipeline/skills/shared/external/localization-reuse-map/scripts/publish-confluence.py": "f716ace1f3a5777cbd33dd911681fe982c3c77748e3af1d8e9816bbf540d25d5",
883
- "pipeline/skills/shared/external/localization-reuse-map/scripts/render-key-shots.py": "c2569b1f9fe7086c9d3171363ac8e03ee8131a1fcc7e82e1c6f7f9009b939a44",
884
- "pipeline/skills/shared/external/localization-reuse-map/scripts/render-overlay.py": "0b35d680235fb4a1e9cdd318e9ade2fe1e2276625d45dedc612fa334cd421125",
885
- "pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-legacy-values.py": "06c7f5bbd009610e370b6b33fe15415d7cbc091dcf986f1a60d639d3b58c390c",
886
- "pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py": "499e8523afb5736a6414cea0cbc10542ccbf99509ab97334f095c18c607d5e66",
887
- "pipeline/skills/shared/external/localization-reuse-map/scripts/scan-screen-keys.py": "642606c4a109f282be5467ad7c3ed5c40b993f7097028f0eb2e9a9821022e218",
877
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-annotations.py": "8a33d90148c82f12db1a29381425c8be4a0a27f4f56ae167973e0480074c29ab",
878
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-legacy-labels.py": "a0d9c187bdbaac37d34dc45927eaf12eae0a85a2d67131e624729979e40b14b3",
879
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/publish-confluence.py": "d1052129cac5db677a58b0c501ddf56cc100eabcd6b3712af3f74addcce9b092",
880
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/render-key-shots.py": "4732792dbef4a0023fbb5b00d39e38ce786cecb563ba7d9ae5dc131b4a551a2f",
881
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/render-overlay.py": "c4a47e455614e856b7c4cf2a0b7c71863259c749167beacdd23f544bdd8855f5",
882
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-legacy-values.py": "af0481117460d956fdf0346c69e7d489f316ac49b14169046b84cd9590ff5943",
883
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py": "2e46240d666b6dfe00647f94479fbea87c8eaf63496892eaf141c060eba39882",
884
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/scan-screen-keys.py": "8866a296257c6251dde45fcfbb2cd4fd93072292d98698c2a8318e24dfb99137",
888
885
  "pipeline/skills/shared/external/localization-reuse-map/scripts/snapshot-resources.sh": "cbea5b53799b27fde00c0381ebb6056852d04fabe8bfcaac5ac5f7574e365db1",
889
- "pipeline/skills/shared/external/localization-reuse-map/scripts/verify-map.py": "1a28241018b9d5406363e74485f6b70401f70479118002a6df759c223499c5c2",
886
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/verify-map.py": "1115d887db7116047747ac4d786f01b8954494c12843ea476f8d99547bb55ec9",
890
887
  "pipeline/skills/shared/external/macos-menubar-tuist-app/SKILL.md": "52156bbf7a55cbfa9d7a5a09279d9b2d00f3617bd4e83ec31807c4d703030e6c",
891
888
  "pipeline/skills/shared/external/macos-spm-app-packaging/SKILL.md": "1796dbf9f28a77ec98758009da3d85a5d9290581cd25f0f54d98023e704d003f",
892
889
  "pipeline/skills/shared/external/macos-spm-app-packaging/assets/templates/bootstrap/Package.swift": "24cdd73b17cf98a2f315e60a7f883ddec8c94572f0d1643f46f4465ffccaf4a6",
@@ -925,32 +922,32 @@
925
922
  "pipeline/skills/shared/external/nodejs-backend-patterns/references/testing-and-frameworks.md": "9a3574a1fab937c5e37e17a27ce626029dc4647e421e9dcb65221ed643d31f92",
926
923
  "pipeline/skills/shared/external/observability-engineer/SKILL.md": "245f72ccd9be724ca287c4d3713e21820ebe16b88f893a3b1d28928f9b1ae276",
927
924
  "pipeline/skills/shared/external/observability-engineer/references/patterns.md": "ed6ee58d29261671255eb1a4c22291b9759cf22127d4c10018f7a04db2dcef40",
928
- "pipeline/skills/shared/external/passkit-wallet/SKILL.md": "5780862b6f98b9a2b65975a79c690d2b200126f1004fac5055907b89f4bd8a0f",
925
+ "pipeline/skills/shared/external/passkit-wallet/SKILL.md": "972a26763ef557d6534e970c6a444526c0fc3eb0ac005f01ac1fee103e052e58",
929
926
  "pipeline/skills/shared/external/passkit-wallet/evals/evals.json": "0c86ff0981bf3ec2587dbd88e4b1efce72063c6413ae18e041fd2f6f5bc7cd49",
930
- "pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md": "be730c358ad4e52e9f670816847d65573f4747fa6216d7c114caf5f4edd1afb3",
927
+ "pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md": "684910f2bd06fad7a7540af316059961067ad8c727058425bbbfe085458574ce",
931
928
  "pipeline/skills/shared/external/pdfkit/SKILL.md": "b4966d5470a56ed37b0413aac88791e3a277039434f2181578cbaddcf8ee270d",
932
929
  "pipeline/skills/shared/external/pdfkit/evals/evals.json": "ad48bae1b40a210733f3e97e5c192e6fc738fa531d3960286713488dec7f312a",
933
930
  "pipeline/skills/shared/external/pdfkit/references/pdfkit-patterns.md": "a24386469b7de7dee9b7ff21c1d1dafbe5a2f5b966cacb5c22b9889a992b4220",
934
- "pipeline/skills/shared/external/pencilkit-drawing/SKILL.md": "080a07ed7fb2f2065030a9d0c543023035b11a180cdc069026be195464afb12e",
935
- "pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json": "b4f2f15009b60586bb99c05a6dc65d4a88f4de1896f0b88e9f5bbe36d34ecced",
936
- "pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md": "4fcc09204d59031ff0a6cf356fb1ee27dba37462b45c574ab45071b4bc143bef",
937
- "pipeline/skills/shared/external/permissionkit/SKILL.md": "92167db142929bcfcb9458163d540bc4badc141dd5de5f7f98e7a5dc79b5b6db",
931
+ "pipeline/skills/shared/external/pencilkit-drawing/SKILL.md": "f18ccc4d5d985492758003aba555ccbfbede2e9c18c70932dc7c1198c4c2f624",
932
+ "pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json": "ed995441f7b5a7b468df9087313d6b4af295b1bb907d8fe19032ddb19d4ef249",
933
+ "pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md": "da084a77c9949e8a6f0292a029577fab9537044e7e85bc64876459b4d267e175",
934
+ "pipeline/skills/shared/external/permissionkit/SKILL.md": "ea30c7a3bb9128a5f43064d5d2e46360d1fe08c732eb3ecedd63490d7d4420a5",
938
935
  "pipeline/skills/shared/external/permissionkit/evals/evals.json": "2c3d7cd8d893e91058bac05814704665ccc531e71aceecc576713e93251f86c2",
939
- "pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md": "25a448e318f983c82e6d902b0e9b3328743cc84b10dd16df5449a3fe1f9f9fc8",
936
+ "pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md": "d4417019b774bcc1bd86405850ab3b81d92fd34948d8c034bfd04de60680ba58",
940
937
  "pipeline/skills/shared/external/photos-camera-media/SKILL.md": "10ead73e0edd7efe20b8b93315a89abb357070bda0acf715f25f32418764480c",
941
938
  "pipeline/skills/shared/external/photos-camera-media/references/av-playback.md": "bad2fb69e1ba8a67d3889f4f6ba4c749b390d45dc23b8a6e85d92bfa2bcb7787",
942
939
  "pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md": "560bef5f1e1e78150444ddc519c19d41b0718cfc292cb29609eebc0763bd16e0",
943
940
  "pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md": "52ddb02fe924eca335d825fd90db4725924426de384cf513b49eca7bb8650e7d",
944
941
  "pipeline/skills/shared/external/photos-camera-media/references/photokit-patterns.md": "5694c83ae69f8a62b1026f271484615b2c0c0eb120f58e4584e9b5050b682a16",
945
942
  "pipeline/skills/shared/external/play-store-review/SKILL.md": "8cfe6ac9c1c078089b92252f1600917f77b01dba80ae7e55f2fd347c409f64e1",
946
- "pipeline/skills/shared/external/push-notifications/SKILL.md": "f962752d6e540cdd8e98e96f9b0790eccede1d0a88bf5bd22928891d26d172f3",
943
+ "pipeline/skills/shared/external/push-notifications/SKILL.md": "9f73964265e99c21aa0bab61b153a77ad3ac953f45766c852b1c8cfbef8498c3",
947
944
  "pipeline/skills/shared/external/push-notifications/evals/evals.json": "567cecd735d27007071b68f23acf950f1b1b4d15882990a8e5bcb400690908bc",
948
- "pipeline/skills/shared/external/push-notifications/references/notification-patterns.md": "e835ea817fda03a9cf511a56c9d6fd35789efd660c54495aa52b1ccdf43ca02e",
945
+ "pipeline/skills/shared/external/push-notifications/references/notification-patterns.md": "68ddd0b46b42a7fd81ba965ebd3d291eb2dc100ceb44f0cdcdce7a6ac8541140",
949
946
  "pipeline/skills/shared/external/push-notifications/references/rich-notifications.md": "b9da50885b1b3d711dc00b1a336245e0d743c22f859e0fdafe1fa917f207db55",
950
947
  "pipeline/skills/shared/external/python-patterns/SKILL.md": "debcbd749acabf8f947b2e0bd1ae52126fdb0263f347b32b69281e6811f2cf99",
951
948
  "pipeline/skills/shared/external/react-best-practices/SKILL.md": "6a629cefd6ed3186fbd475df3eef3ffaa0ebeaa62eb6a30c0af5f99b53fe7950",
952
- "pipeline/skills/shared/external/realitykit-ar/SKILL.md": "9c576081a515662c03d462fa0a15828f6e8ab02c8e14e1d4911fc0cfceef47fb",
953
- "pipeline/skills/shared/external/realitykit-ar/evals/evals.json": "f6c826f6c4a5556d304a320f585aeebb9b6a2b801fec7795cc736eb59f8f74c3",
949
+ "pipeline/skills/shared/external/realitykit-ar/SKILL.md": "66726df1164bb6ca96878cb941b4395ff3cff10ebc6743f91aa22b8ec795c246",
950
+ "pipeline/skills/shared/external/realitykit-ar/evals/evals.json": "15271c02c0b11ae3c3a61d511056cd4ac9db2699a1e258ea0001098da4678921",
954
951
  "pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md": "a91586bc6f81459a1b700d8b8b49c1271b1b7fc28b6c6f09912ec6d8ec9088a2",
955
952
  "pipeline/skills/shared/external/rest-api-design/SKILL.md": "23b6f35b17680b0e42af6123f063140e3a853d2b7847d4445fe6ddbd0a48f5e1",
956
953
  "pipeline/skills/shared/external/retrofit-networking/SKILL.md": "b3991cb24b790e6bc159c9082ff21c6a276ceb0e7516f53111ecb6c5dd4094f0",
@@ -971,7 +968,7 @@
971
968
  "pipeline/skills/shared/external/skill-creator/examples.md": "c126fd05796033828607bca44ecf5c5e7719251159b07702c80356d565e2c088",
972
969
  "pipeline/skills/shared/external/skill-creator/label-check.md": "b92966967c8703ce352d8328672ab745147737ea43fbb517c5683249b080d8d0",
973
970
  "pipeline/skills/shared/external/skill-creator/scripts/audit-panel.js": "c2be5b99bd93fea9a56d7892c8aede2233c435edc60479c2a8aa370352b0bb34",
974
- "pipeline/skills/shared/external/skill-creator/template.md": "ebcd94c957302da1cd98ed24bc71681cdbd6d2e59abad174897e10fbc30646bb",
971
+ "pipeline/skills/shared/external/skill-creator/template.md": "bbd0c0d771e06a6ba1ab4a5da8d1c047d353a5c9d70a6993ae4071404e8f9b7a",
975
972
  "pipeline/skills/shared/external/speech-recognition/SKILL.md": "a58c5171aa43c573993916c35cd39d100b72a7b74671207fe1c096d56998dcfb",
976
973
  "pipeline/skills/shared/external/speech-recognition/evals/evals.json": "2303f6faa9a64034bf2cfac4622256f6a2bf561035b9c6288c852d778a87a96a",
977
974
  "pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md": "cc8a7ccdcdc6c4371492437ad4f718c776cc3ee654febfbd1e75612aff2db8fe",
@@ -1186,7 +1183,7 @@
1186
1183
  "pipeline/skills/shared/external/tipkit/SKILL.md": "281287bf87ed5417e172efbba85ad989650909f444fc709515bc3557961504a9",
1187
1184
  "pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md": "7274c180898d0c92aabf7f6ff959cf556309c1f3ef9a69e9ecfae3d4ac1d97e0",
1188
1185
  "pipeline/skills/shared/external/typescript-patterns/SKILL.md": "784d294aa6ba09ff29bc7ec0f106eb512a006e79c96a01ec92d1699bfa122077",
1189
- "pipeline/skills/shared/external/vision-framework/SKILL.md": "68ef66fc020e65885f47e26e665c88365bbbf52cb1fb8fb8de5c4cab7237c9e8",
1186
+ "pipeline/skills/shared/external/vision-framework/SKILL.md": "370fdf6eaf71833dff0e8f2d3989a849b5c42ff3198605aa818c2fd0c12c7ef7",
1190
1187
  "pipeline/skills/shared/external/vision-framework/references/vision-requests.md": "c124b2b8359fd391a93a130ab9c32f9e2bfd7cd2153df89f05a66178f7223eb8",
1191
1188
  "pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md": "ba88bb588d0e896c851e3aa6bb3b7b20606d2d1c715e01656a3e0f54900ef5f8",
1192
1189
  "pipeline/skills/shared/external/vue-composition/SKILL.md": "429115ba7c4fdecd134e9ea546840d6341312d348f359a8bf35690cd113c1201",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mmerterden/multi-agent-pipeline",
3
- "version": "20.8.1",
3
+ "version": "20.8.2",
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",
@@ -94,6 +94,9 @@
94
94
  "!pipeline/scripts/run-smokes.mjs",
95
95
  "!pipeline/scripts/eval-*.mjs",
96
96
  "!pipeline/scripts/check-rewrite-overlap.mjs",
97
+ "!pipeline/scripts/gen-ref-toc.mjs",
98
+ "!pipeline/scripts/make-manifest.mjs",
99
+ "!pipeline/scripts/scorecard-snapshot.mjs",
97
100
  "!pipeline/scripts/scorecard.mjs",
98
101
  "!pipeline/scripts/lint-skills.mjs",
99
102
  "!pipeline/scripts/lint-personas.mjs",
@@ -28,10 +28,16 @@ A git clone of the pipeline repo is a maintainer workspace, kept in sync by `/mu
28
28
 
29
29
  ## Steps
30
30
 
31
- 1. **Resolve the package and both versions** (run steps 1-3 in ONE shell block so the variables survive):
31
+ Every fenced block below runs in a fresh shell, so no variable survives from one
32
+ block to the next. Step 1 writes the values the later steps need to a state file,
33
+ and every later block that needs them starts by sourcing it.
34
+
35
+ 1. **Resolve the package and both versions**:
32
36
  ```bash
37
+ STATE="${TMPDIR:-/tmp}/multi-agent-update.env"
33
38
  PKG="@{npm-scope}/multi-agent-pipeline"
34
39
  REG="https://registry.npmjs.org"
40
+ UPD_DIR="${TMPDIR:-/tmp}/multi-agent-update"
35
41
  CUR=$(tr -d '[:space:]' < "$HOME/.claude/.pipeline-version" 2>/dev/null)
36
42
  [ -n "$CUR" ] || CUR="unknown"
37
43
  # Read the registry directly - `npm view` can answer from a stale local cache.
@@ -45,23 +51,25 @@ A git clone of the pipeline repo is a maintainer workspace, kept in sync by `/mu
45
51
  REQUIRED=$(curl -fsS -H 'Accept: application/vnd.npm.install-v1+json' \
46
52
  "$REG/$(printf '%s' "$PKG" | sed 's|/|%2F|')" \
47
53
  | node -pe 'JSON.parse(require("fs").readFileSync(0,"utf8"))["dist-tags"].required || ""' 2>/dev/null)
54
+ printf 'PKG=%q\nREG=%q\nUPD_DIR=%q\nCUR=%q\nLATEST=%q\n' \
55
+ "$PKG" "$REG" "$UPD_DIR" "$CUR" "$LATEST" > "$STATE"
48
56
  echo "Current: v$CUR Latest: v$LATEST${REQUIRED:+ Required floor: v$REQUIRED}"
49
57
  ```
50
58
 
51
59
  This command is never blocked by the floor - it is the remedy for it. The
52
- line above is where the floor is reported, so the user sees why a run halted;
53
- `$REQUIRED` does not survive into the later shell blocks.
60
+ line above is where the floor is reported, so the user sees why a run halted.
54
61
 
55
62
  2. **Stop early when already current.** When the line below prints, skip
56
63
  step 3 (no download, no reinstall) and continue at step 4b, so the stack
57
64
  plugins are still refreshed:
58
65
  ```bash
66
+ . "${TMPDIR:-/tmp}/multi-agent-update.env" || { echo "Run step 1 first."; exit 1; }
59
67
  [ "$CUR" = "$LATEST" ] && echo "✓ Already up to date: v$LATEST"
60
68
  ```
61
69
 
62
70
  3. **Download the release and install**:
63
71
  ```bash
64
- UPD_DIR="${TMPDIR:-/tmp}/multi-agent-update"
72
+ . "${TMPDIR:-/tmp}/multi-agent-update.env" || { echo "Run step 1 first."; exit 1; }
65
73
  rm -rf "$UPD_DIR" && mkdir -p "$UPD_DIR"
66
74
  # `--registry` does NOT override a scope mapping. A user-level .npmrc line
67
75
  # like `@scope:registry=https://npm.pkg.github.com` wins over it, so the
@@ -80,10 +88,15 @@ A git clone of the pipeline repo is a maintainer workspace, kept in sync by `/mu
80
88
  TGZ="$UPD_DIR/$(printf '%s' "$PACK_OUT" | tail -1 | tr -d '[:space:]')"
81
89
  [ -f "$TGZ" ] || { echo "npm pack reported no tarball; aborting."; exit 1; }
82
90
  tar -xzf "$TGZ" -C "$UPD_DIR"
83
- node "$UPD_DIR/package/install.js" --all
91
+ node "$UPD_DIR/package/install.js" --installed
84
92
  ```
85
93
 
86
- The installer refreshes every configured CLI target (Claude Code, Copilot CLI, Codex CLI) and writes the new version to `$HOME/.claude/.pipeline-version`.
94
+ `--installed` refreshes exactly the CLI targets that already carry a version
95
+ stamp (`$HOME/.claude/.pipeline-version`, `$HOME/.copilot/.pipeline-version`,
96
+ `$HOME/.codex/.pipeline-version`) and adds none: an update never installs
97
+ Copilot CLI or Codex CLI on a machine that only had Claude Code. With no stamp
98
+ at all it installs Claude Code. Each refreshed target gets the new version
99
+ stamp.
87
100
 
88
101
  4b. **Update the stack plugins** (catalog refresh, then every installed plugin in its own scope):
89
102
  ```bash
@@ -98,10 +111,8 @@ A git clone of the pipeline repo is a maintainer workspace, kept in sync by `/mu
98
111
  echo " -> no global adapter files to prune"
99
112
  ```
100
113
 
101
- > **Do NOT delete `$HOME/.codex/prompts/multi-agent.md`.** Releases up to
102
- > v12.11.0 removed it here as a retired v9.7.0 adapter leftover. Codex CLI is a
103
- > supported target again as of v13.0.0 and the installer writes that file, so
104
- > deleting it silently breaks the `/multi-agent` slash command on Codex.
114
+ > **Do NOT delete `$HOME/.codex/prompts/multi-agent.md`.** The Codex installer
115
+ > writes it and it backs the `/multi-agent` slash command on Codex CLI.
105
116
 
106
117
  5. **Migrate preferences** (if there is an old schema):
107
118
  ```bash
@@ -110,11 +121,9 @@ A git clone of the pipeline repo is a maintainer workspace, kept in sync by `/mu
110
121
  fi
111
122
  ```
112
123
 
113
- 5b. **Auto-configure operational reporting.** One call, and it is the same call
114
- `/multi-agent:setup` and a first run make - the registration used to live here
115
- as forty lines of shell, so a user who installed, ran setup and never ran
116
- update was never registered and never reported, which reads in the panel
117
- exactly like nobody using the pipeline.
124
+ 5b. **Auto-configure operational reporting.** One call, the same one
125
+ `/multi-agent:setup` and a first run make, so a machine is registered by
126
+ whichever of the three runs first.
118
127
 
119
128
  ```bash
120
129
  node "$HOME/.claude/scripts/usage-register.mjs"
@@ -128,6 +137,7 @@ A git clone of the pipeline repo is a maintainer workspace, kept in sync by `/mu
128
137
 
129
138
  6. **Show the new version and its changes** (from the packaged CHANGELOG - there is no git history on this channel):
130
139
  ```bash
140
+ . "${TMPDIR:-/tmp}/multi-agent-update.env" || { echo "Run step 1 first."; exit 1; }
131
141
  NEW=$(tr -d '[:space:]' < "$HOME/.claude/.pipeline-version" 2>/dev/null)
132
142
  echo ""
133
143
  echo "✓ Updated: v$CUR → v$NEW"
@@ -140,11 +150,12 @@ A git clone of the pipeline repo is a maintainer workspace, kept in sync by `/mu
140
150
 
141
151
  7. **Smoke test (optional)** - the release tarball ships exactly two smokes for this purpose:
142
152
  ```bash
153
+ . "${TMPDIR:-/tmp}/multi-agent-update.env" || { echo "Run step 1 first."; exit 1; }
143
154
  echo ""
144
155
  echo "Verification:"
145
156
  bash "$UPD_DIR/package/pipeline/scripts/smoke-schema-validation.sh" 2>&1 | tail -1
146
157
  bash "$UPD_DIR/package/pipeline/scripts/smoke-cross-cli-behavior.sh" 2>&1 | tail -1
147
- rm -rf "$UPD_DIR"
158
+ rm -rf "$UPD_DIR" "${TMPDIR:-/tmp}/multi-agent-update.env"
148
159
  ```
149
160
 
150
161
  ## Output
@@ -152,7 +163,7 @@ A git clone of the pipeline repo is a maintainer workspace, kept in sync by `/mu
152
163
  ```
153
164
  Current: v15.6.0 Latest: v15.6.1
154
165
  -> npm pack @{npm-scope}/multi-agent-pipeline@15.6.1
155
- -> node install.js --all (56 commands, 263 scripts, 210 skills)
166
+ -> node install.js --installed (Claude Code; no Copilot CLI or Codex CLI stamp, not installed)
156
167
  -> migrate-prefs.mjs (0 changes - already v2.6.0)
157
168
 
158
169
  ✓ Updated: v15.6.0 → v15.6.1