@mmerterden/multi-agent-pipeline 20.8.1 → 20.8.3

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 (77) hide show
  1. package/CHANGELOG.md +42 -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 +535 -53
  6. package/install/_dev-only-files.mjs +1 -0
  7. package/install/_mcp-register.mjs +173 -117
  8. package/install/catalog-history.json +1 -0
  9. package/install/claude.mjs +293 -226
  10. package/install/codex.mjs +7 -7
  11. package/install/copilot.mjs +13 -11
  12. package/install/index.mjs +92 -27
  13. package/install/templates/claude-hooks.json +9 -9
  14. package/manifest.json +77 -79
  15. package/package.json +6 -2
  16. package/pipeline/commands/multi-agent/update/SKILL.md +28 -17
  17. package/pipeline/lib/confusables.json +79 -33
  18. package/pipeline/lib/extract-conventions.sh +3 -3
  19. package/pipeline/lib/json-file-lock.mjs +27 -7
  20. package/pipeline/lib/normalize-text.mjs +86 -17
  21. package/pipeline/lib/outbound-gate.mjs +13 -4
  22. package/pipeline/lib/redact.mjs +87 -14
  23. package/pipeline/multi-agent-refs/analysis/evidence.md +1 -1
  24. package/pipeline/multi-agent-refs/analysis/synthesis.md +1 -1
  25. package/pipeline/multi-agent-refs/component-dispatch.md +1 -1
  26. package/pipeline/multi-agent-refs/conventions-defaults.md +1 -1
  27. package/pipeline/multi-agent-refs/features/unattended-security.md +2 -2
  28. package/pipeline/scripts/agent-guard.py +150 -25
  29. package/pipeline/scripts/audit-log.sh +3 -4
  30. package/pipeline/scripts/autopilot-runner.mjs +14 -5
  31. package/pipeline/scripts/doctor.mjs +8 -2
  32. package/pipeline/scripts/log-metric.sh +9 -3
  33. package/pipeline/scripts/migrate-prefs.mjs +18 -4
  34. package/pipeline/scripts/pre-commit-check.sh +119 -31
  35. package/pipeline/scripts/scan-agent-config.sh +9 -9
  36. package/pipeline/scripts/unattended_policy.py +12 -3
  37. package/pipeline/scripts/uninstall.mjs +88 -1
  38. package/pipeline/scripts/usage-identity.mjs +1 -1
  39. package/pipeline/scripts/usage-register.mjs +1 -1
  40. package/pipeline/skills/.skill-manifest.json +11 -11
  41. package/pipeline/skills/shared/external/callkit-voip/SKILL.md +6 -3
  42. package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +43 -0
  43. package/pipeline/skills/shared/external/core-nfc/SKILL.md +31 -0
  44. package/pipeline/skills/shared/external/ios-coding-standard/references/rules.yml +2 -2
  45. package/pipeline/skills/shared/external/ios-module-structure/modules/_TEMPLATE.yml +1 -1
  46. package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +3 -3
  47. package/pipeline/skills/shared/external/localization-reuse-map/example-mapping.json +2 -1
  48. package/pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md +14 -13
  49. package/pipeline/skills/shared/external/localization-reuse-map/reference/publish-and-snapshot.md +2 -2
  50. package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +7 -7
  51. package/pipeline/skills/shared/external/localization-reuse-map/scripts/_shared.py +105 -4
  52. package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py +20 -5
  53. package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-annotations.py +8 -7
  54. package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-legacy-labels.py +7 -8
  55. package/pipeline/skills/shared/external/localization-reuse-map/scripts/publish-confluence.py +20 -7
  56. package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-key-shots.py +4 -3
  57. package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-overlay.py +8 -7
  58. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-legacy-values.py +15 -8
  59. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +17 -9
  60. package/pipeline/skills/shared/external/localization-reuse-map/scripts/scan-screen-keys.py +39 -17
  61. package/pipeline/skills/shared/external/localization-reuse-map/scripts/verify-map.py +28 -7
  62. package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +5 -4
  63. package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +3 -2
  64. package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +2 -2
  65. package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +1 -1
  66. package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +4 -4
  67. package/pipeline/skills/shared/external/permissionkit/SKILL.md +15 -6
  68. package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +2 -1
  69. package/pipeline/skills/shared/external/push-notifications/SKILL.md +8 -4
  70. package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +1 -1
  71. package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +25 -6
  72. package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +1 -1
  73. package/pipeline/skills/shared/external/skill-creator/template.md +1 -1
  74. package/pipeline/skills/shared/external/vision-framework/SKILL.md +3 -1
  75. package/pipeline/scripts/gen-ref-toc.mjs +0 -279
  76. package/pipeline/scripts/make-manifest.mjs +0 -199
  77. 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.3",
4
+ "commit": "3f3e81e36f61082d8d60a4214370fb2aac60ad3e",
5
+ "generatedAt": "2026-09-27T09:04:56.695Z",
6
6
  "algorithm": "sha256",
7
- "fileCount": 1220,
7
+ "fileCount": 1218,
8
8
  "files": {
9
- "CHANGELOG.md": "9e63b7d5afa37edf74fc78d96bd484e2d023c4811def825417938845aee3877a",
9
+ "CHANGELOG.md": "dfcc43699a7828ead8ac6004f41db5791a4ddb2037ae7528eb35dbdb3c85b35c",
10
10
  "LICENSE": "8d8c51aaf1e1538b180c69965fa038db71be86798cc3e26a143bebfefe16a43e",
11
11
  "README.md": "0613eebb0b38062bd94c44043595d1950b5c9b470874dd8e402c052fd20960cf",
12
12
  "README.tr.md": "0c6b5e6943d6c3d3bf3a7ed99c705fb9a78d15d7722e6252f58404d3f6d3524d",
@@ -33,35 +33,36 @@
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": "04ebe641276d5087ad0212e93c9f2e7534403edd014c738f7fc06d8da6b5607c",
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": "ca09ce68ba019cbffe4be583ecfb74edcd3102824af0decc1cafd5563280f0c7",
46
46
  "install/_copilot-instructions.mjs": "73e4b82b2af0f3e1669f772fa0788dac6b540c131e56d5fe38dcf29be85cc019",
47
- "install/_dev-only-files.mjs": "51285901f3b650ff22a76f8c05b23c69b9ceb6fe3da3333cece9e0caf65065a4",
47
+ "install/_dev-only-files.mjs": "3391819c5e779b9e6d5a330d4937509c591e4c35ac937d25bafd86b37ca95b73",
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/catalog-history.json": "fd545686999f2231b902eb2a614614b8e0b0b2812a94b236fdfa96cd01d31f5b",
55
+ "install/claude.mjs": "1ca3b70d784e462435df57de60a0af70dc33a10c431a8487a7766286f03fcde6",
56
+ "install/codex.mjs": "2c2238cd9dd2f95b4a50a505387e8e49ddc1513ae13998f05f1ed3e3a71b18e7",
57
+ "install/copilot.mjs": "300a74f17084d1a38f16428ca7477394c29e33cd755156e19b92e457999be234",
58
+ "install/index.mjs": "07ec26ecdd81cc983f146faf4b7095c98edce39c89a6fd83c24ce43229d2d9e7",
59
+ "install/templates/claude-hooks.json": "12d6bb0c3cd7d71b1d2029e2eb4370ca7b5ee55bd88f96b09c927d8119a87be7",
59
60
  "install/templates/codex-instructions.md": "dd78eb9553e725c039380457245793a5fc748ae37ebf5ccfe11be5ed5b9a4025",
60
61
  "install/templates/copilot-instructions.md": "f8c34b1daa18cc0285a1d443765c9a799301ce4b853068e275f3e8abd166a2a6",
61
62
  "install/templates/multi-agent-autopilot-awake.plist.template": "ddd25c76c56fcbb38a89de8e35637372d70ace993d6bc487a88ca9cfb702fe1f",
62
63
  "install/templates/multi-agent-autopilot.plist.template": "122c8a61cd927edd99375d6e3da40f1d42bcceed5b6641785c8b28bb930bc77e",
63
64
  "install/unattended-profile-legacy.json": "f52e86b998956f09ad306b1735a6c10b58580d7082d8a55665a4c6bb15c3aa1f",
64
- "package.json": "efed7a265857ab81826a729fcb739fd79fb1685c11fd07d43ab384a1d339bf58",
65
+ "package.json": "ebe1ae6db68a37e3e2b8bd377007bb90376f2dd94bf5b9d94706d668401efacd",
65
66
  "pipeline/agents/android-architect.md": "11fb74543cb0ebcf9525ca6654fe95d53da7229e0bf4a1149b31fd9005abc453",
66
67
  "pipeline/agents/backend-architect.md": "b02a606c301e4714131aed70ae6d16eeb77fbc819a001e2752cff2488d4246de",
67
68
  "pipeline/agents/bulk-reader.md": "6597052cd7d205bac2b1c7633f5232fe1a40730664a913b8eb77efd5a786dc25",
@@ -137,7 +138,7 @@
137
138
  "pipeline/commands/multi-agent/test/SKILL.md": "5a67be2b1ec0321e79f8b7f35be53676e349e55a4f8ca09a07f0de89dadac8c4",
138
139
  "pipeline/commands/multi-agent/testflight-validation/SKILL.md": "38fa8d3d3c8340d025e100c53a70183cbad22665b7ddccbb6102c05986cce489",
139
140
  "pipeline/commands/multi-agent/uninstall/SKILL.md": "b2124820a6e10cdd72be71df2183aad4f8bd8988ec90248c88599c1514f7d9ab",
140
- "pipeline/commands/multi-agent/update/SKILL.md": "f596052221345312ce03937b88604ab82b303e3255a64b5dfe7c49dda87a5148",
141
+ "pipeline/commands/multi-agent/update/SKILL.md": "28eead5c13e102396058268abba67888825b15aeeb7b999bd52a4de2474457a3",
141
142
  "pipeline/commands/sim-test.md": "17fcefc2030f0ab24b3ee59807dfc11264b34d7455138081996859b1fee8664e",
142
143
  "pipeline/contract/CHANGELOG.md": "33d5dd6b35d8498928f431729dbccc9aae2f42e3beb04da1bd52f682846b2c10",
143
144
  "pipeline/contract/README.md": "4a60faddcd31973302bab93bb3fab74da96024c79aaba3676c6ceeabc2088132",
@@ -167,13 +168,13 @@
167
168
  "pipeline/lib/autopilot-state.sh": "e97d4cb4fce18be8be3485702be0e6d0948209a14f9725cbc83c2721d293432a",
168
169
  "pipeline/lib/channels-multi-repo.sh": "aef26f888bddbaf7fb0e2e86143d612da776b4a4282bcee8144a090a9050b989",
169
170
  "pipeline/lib/classify-intent.sh": "dab0896bc9707a10ac046d0b31d25a48c363cdde76cb1d720bf847deefc0364c",
170
- "pipeline/lib/confusables.json": "2638872fc47c7a8c087902938d67a88440e855e66ede487ac1c057ff85f1571f",
171
+ "pipeline/lib/confusables.json": "64a31eba5d1f44c6177abf6d9dfddee671201336f76c0db71e96a0d49cb4fdaa",
171
172
  "pipeline/lib/context-link-extractor.sh": "84a154dcabf57136be17199b21d02120d70cc0ca34e8f48fe24bdda74eddda1d",
172
173
  "pipeline/lib/count-lib.sh": "7bafe152b0ffb9ca6fb9296b7ecaaef33deb9410286b3579fefbb37796044f79",
173
174
  "pipeline/lib/credential-inventory.sh": "adff81b265a9cf4f8c9135011686c12963cf5eeeafcb266be54456c803ffde38",
174
175
  "pipeline/lib/credential-store-resolver.sh": "62d16fae85f02739c925bd62911d8594518ea1fe7224ac30ec8dc2dedcca7dc9",
175
176
  "pipeline/lib/credential-store.sh": "88b09c60fd024e347c0de08c27df372b8c6ef7a54a164d85bfa7c763e850c1d2",
176
- "pipeline/lib/extract-conventions.sh": "0f435d5e38ac49e619af36ea67ebf5153c85c9abc8f56ae1aa2af1272ecdb4b2",
177
+ "pipeline/lib/extract-conventions.sh": "b324b7883f7d3bb296be4ac30323673de5a701ccd9102de419ec02371c40a85c",
177
178
  "pipeline/lib/fatal.mjs": "6b1e34d9f143df1ff9802df62ba77b27f83dccb72654e4351b882b9eb1ab2977",
178
179
  "pipeline/lib/fetch-confluence.sh": "237ed91b3156ffb0ee8d3270ef2d46de069e0375256ff6ee5f730f636529a4fa",
179
180
  "pipeline/lib/fetch-crashlytics.sh": "51ea5d8f19d5b8a0c84b7514b18d34602013a7aa4515cc856436bf99e0f883c3",
@@ -188,19 +189,19 @@
188
189
  "pipeline/lib/invoked-directly.mjs": "a7014f252174414c267cc303a992aa9f3986541c5aad188c87cc6809ba3b69bd",
189
190
  "pipeline/lib/issue-fetcher.sh": "36f6eb41935fa44072cf3c9a92a5698d4ffd762103eb57f733e65687ab47479e",
190
191
  "pipeline/lib/jira-publish.sh": "a32e6a682ae730ddd9c6df64b9ece1fb73c797111c63f5c247d7e733668da6b7",
191
- "pipeline/lib/json-file-lock.mjs": "6cd6d401d9a38c6d0069ce50c2d38ff0c8629e99c384466058978de4166caa6a",
192
+ "pipeline/lib/json-file-lock.mjs": "6ff8d8d7b890fc549e07287eca1e8261b69f930ec523d08fb73786677aa0a45a",
192
193
  "pipeline/lib/md2confluence-v3.py": "3677ca47931e4b3d0fd2ce3e11299fc5f6d24799eb8332e37dd60b6c3c4653a2",
193
194
  "pipeline/lib/model-dispatch.sh": "7edd5c92d41ee3bf74972e0827ccbb671853d5410e7fb0af0b7cb020f95e05c5",
194
195
  "pipeline/lib/model-rung.sh": "2a5e04af3c6829d4c72e5f518e668a9cc2feffe6f2abb90a68c485f52e81959a",
195
196
  "pipeline/lib/multi-repo-pipeline.sh": "5cca6bcc4fb857448ddadb31add343952be89423a328267e56496c7b7cdc7710",
196
- "pipeline/lib/normalize-text.mjs": "db5f3b6618c679762227083299ec7f7bef8f1bb6b9179f19449b5ff904812c45",
197
- "pipeline/lib/outbound-gate.mjs": "4e89bf43554af4c727ef110505658159c7a7a3c53d8a4007f0e2e65dab87896f",
197
+ "pipeline/lib/normalize-text.mjs": "c2eeed65ab85cdc27a12ecaadc45dfa00b49a7611250c9ad881b9e93882a51c1",
198
+ "pipeline/lib/outbound-gate.mjs": "1ebc840e975f19b0da4699b3a37361ecc8a2be1a7a558d2b2fb39b8b64244011",
198
199
  "pipeline/lib/parse-complaints.sh": "d787ce870f141cf7f881da80fab4320814044554065e82e94632f061675b4d12",
199
200
  "pipeline/lib/phase-schema.mjs": "8fc0c909f129341295cd8ef2ea9e93cecd0ac493c3a8d83e25879f7ff522f1ab",
200
201
  "pipeline/lib/plan-todos.sh": "4992bed180774a27f84892add8b09e0f7b53e9b8fefb75f60325a04d1af18c56",
201
202
  "pipeline/lib/post-pr-review.sh": "c7a8f8c648ac7aebf904e70ae482c026de5b3cc897b376cd8aa52356fda8b805",
202
203
  "pipeline/lib/pr-request-location.mjs": "622ca4705ec8ee00e0a4609657d8ee684fcdc077f3099ab312cf41b5b0c41efd",
203
- "pipeline/lib/redact.mjs": "2fefa32781d8e0618a467b62ac5a01f89e59a6d123503af535203b638796fb28",
204
+ "pipeline/lib/redact.mjs": "443034132ec8163e3b923ca2b8d5304d575c02bd7396523ee677f36444adc7f7",
204
205
  "pipeline/lib/regular-file.mjs": "084dd2c98a664a1e4a937757cc5e5e5d7e162b6aa422f8c7cfdb27f7834c6cbc",
205
206
  "pipeline/lib/repo-cache.sh": "82bbdd3d61746042ad5341554a1077098d4b56f15caf6c5cc092377a273c8f45",
206
207
  "pipeline/lib/repo-hygiene.sh": "67f4227d2bc84198d51205f1f16d055e76a07fe11a4e5c2b8103559c44cefa04",
@@ -226,14 +227,14 @@
226
227
  "pipeline/multi-agent-refs/_repo-picker.md": "c325e86d00fa5e26893eeafcfae8c809f62e34e2ec643b4b364ac4c6f9caca45",
227
228
  "pipeline/multi-agent-refs/analysis-template-corporate.md": "928cdf3e5948ca7540b14e704cf2e6ecb4864579e519dc148025a372bf103176",
228
229
  "pipeline/multi-agent-refs/analysis-template.md": "47b7ac138be0cd4e5e1cae69fb7bb7ecb883db13883e9641e708321f09ea4898",
229
- "pipeline/multi-agent-refs/analysis/evidence.md": "27f821b6bba92a56df1c50c96086121ab6c5d3fbb4b9fec65bd9df6b23a1700a",
230
+ "pipeline/multi-agent-refs/analysis/evidence.md": "1385d8c794018feec254831b2e325d11ba4fa697a7a987890047e735b34cce26",
230
231
  "pipeline/multi-agent-refs/analysis/intake.md": "9b92880a57218cf5e552547d4ddd9ee797603573ecd16617b1fc60b5e03c3564",
231
232
  "pipeline/multi-agent-refs/analysis/locked.md": "381f0932f8988c3805e4e0aedb55e191ca2cbecb4a6ee1e15f73e0e08d0a927c",
232
233
  "pipeline/multi-agent-refs/analysis/redesign.md": "ed0b1c6c4157b0063debecad3342a48c83f3b015160cb6f37fbc429167ad18c3",
233
234
  "pipeline/multi-agent-refs/analysis/render.md": "40cb3076ba8a8c561f5954d84aa3fa0574cf701fac0787239f9ee4c5742707d4",
234
235
  "pipeline/multi-agent-refs/analysis/resolve.md": "244ffaf7f92b41d4608cbb7cd1ff7ec7489ff58c0b256c48653750446efcedd9",
235
236
  "pipeline/multi-agent-refs/analysis/review.md": "169098367ecd97ad31aa82cea6c5e2c44021815628d18d33badb285e225b9b58",
236
- "pipeline/multi-agent-refs/analysis/synthesis.md": "53b79b27991a27c412677679aff65afd2238e85a2c99599946c9cd20b8b0bb23",
237
+ "pipeline/multi-agent-refs/analysis/synthesis.md": "1ebdd0042a976c7bea3311fcf3e80127c4524efdd13886add136e846dc19d1ca",
237
238
  "pipeline/multi-agent-refs/android-guide.md": "826ad836028ef1f0bd32110999e78b438dbf0808304367a58a2b45cdeb659bb5",
238
239
  "pipeline/multi-agent-refs/audit-guide.md": "03586937e913f3457b1219435de7473973f5f0d085a18484b7c8efce24a4ef59",
239
240
  "pipeline/multi-agent-refs/backend-guide.md": "b8809b06f7feea6a13f9b433a2b9828e39c81ef3ab59edd23c61cf183d80f7b0",
@@ -244,9 +245,9 @@
244
245
  "pipeline/multi-agent-refs/channels/pr.md": "abe0101d4f2a7cb1ecd88c4260e9ae9e7d6dd65dd52afbf6c44c573c48d11f20",
245
246
  "pipeline/multi-agent-refs/channels/wiki.md": "ba52c5efaedc067dd8456fe9076af694d7e3dae9bda621f1df65c9159cd422da",
246
247
  "pipeline/multi-agent-refs/complaint-analysis-template.md": "dd5f12a8f56ee4dc177fa7bfba4ffe9ad021e5f1b9e661a49031f02dd6e37109",
247
- "pipeline/multi-agent-refs/component-dispatch.md": "f20ebaef98e2e48c3aa2c247ac10402ef5f433956ccb1481fc47585174871711",
248
+ "pipeline/multi-agent-refs/component-dispatch.md": "2ab9094aa716397e4840cd48f736c3f4fc3e7c4f9ccc5c7c7c52f9e8b0a28fb5",
248
249
  "pipeline/multi-agent-refs/component-generation.md": "04fdb3fd0f1c129e1df8243184a3225cebd9c4f63511d6015eb356a92eda8891",
249
- "pipeline/multi-agent-refs/conventions-defaults.md": "6bb019d012232322f73726775083778e23f580e182c8e4204307136fedc706a6",
250
+ "pipeline/multi-agent-refs/conventions-defaults.md": "608a05ec6332fc19ee12c0418fbf25165f80e6c06cfee9efed7f27fab185d97d",
250
251
  "pipeline/multi-agent-refs/cross-cli-contract.md": "ad8c29b8fdf1a84665250451996df8c67bbbd84b94ee8386e31333492d2d9f73",
251
252
  "pipeline/multi-agent-refs/features/analysis-jira.md": "5542735d39a96d288cf99d1dfe18ec30270d2777a260c80d74ab6e5121edc9fb",
252
253
  "pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md": "b2bd47d55a2af66da15c5ad8d066ec2990ebf9b3af3c0c38cc48b0ad0210565b",
@@ -282,7 +283,7 @@
282
283
  "pipeline/multi-agent-refs/features/stack-adapters.md": "71e23385da872ceed35263f4838f154800aa2da55bb6688ccca74726b70a3ef5",
283
284
  "pipeline/multi-agent-refs/features/stack-skill-routing.md": "8d45fb7331509411617d2bf5c42e752eaaa7ada24dcf38140f2710b28ab4fc0f",
284
285
  "pipeline/multi-agent-refs/features/unattended-gates.md": "46b516cac81a4eacf5d58bc3b1613e2266c26f1559be8dac060d1dc6b7d7ca01",
285
- "pipeline/multi-agent-refs/features/unattended-security.md": "8b7c5718e95c81debd915650ff2458b4764fa78eeceed779476955b4f04165a8",
286
+ "pipeline/multi-agent-refs/features/unattended-security.md": "eeb8656845ac78ab612b2e3352b241a6ba2d8b8f6d4a6d5c2e7cab1f6592a4d6",
286
287
  "pipeline/multi-agent-refs/features/url-enrichment.md": "72e01a799d9fa54b56c762ba404a9f9236adbbf98320e395a96f6b0f5917e76b",
287
288
  "pipeline/multi-agent-refs/features/usage-reporting.md": "6c232060da49033ef2c9ccead69084dfb7cfe45333f670b407b8afada8b99007",
288
289
  "pipeline/multi-agent-refs/features/verify-by-test.md": "b0735adaa7ead797167b8d9ea48a10851a138083c6e638738cc96c66b02a1e37",
@@ -429,20 +430,20 @@
429
430
  "pipeline/scripts/_smoke-root.sh": "dad129959a4e37a0cd0f4f6c04f6d66c5a43752b2bf33989db9c002eb106b832",
430
431
  "pipeline/scripts/_stack-adapter.mjs": "a754c042d237cd03abf11c6909099a7a3ea798cdd13d49b03787797fd3496cd7",
431
432
  "pipeline/scripts/_stack-routing.mjs": "d64421b48eb42efffeae01f1d64ec56182269285de62e80434f3b8b05610e2ab",
432
- "pipeline/scripts/agent-guard.py": "764e7ce3dd448b37cf7b69b03def5d173ab8dedadd2b2dca098e20ca15fd8604",
433
+ "pipeline/scripts/agent-guard.py": "1d214df7992463a0529f9eb2518fcdf6e5817778937a05f6c78efc1af832c9e5",
433
434
  "pipeline/scripts/agent-guard.sh": "5b57cea687754533c673b66a9dd2281ca06d12ef86bdc0d03fa285fc9e7debf8",
434
435
  "pipeline/scripts/aggregate-metrics.mjs": "c324e349993fb154a885263cf6665af0ff656e9c987b455a263dad8b96cca667",
435
436
  "pipeline/scripts/analysis-story-tree.mjs": "8fd371d3e552a3f60533f18c7699074ae6089016c6663512410c4fa02494548f",
436
437
  "pipeline/scripts/anonymize-findings.mjs": "5d7e042793790c1b924d4d952b4f79b7e5f1dd0a3fe936f1ee16a4fa2ba820dd",
437
438
  "pipeline/scripts/answer-question.mjs": "b948df9d063f623a7ccd9cc65903c4388018b6b968228f77eb2e229223a61b1c",
438
439
  "pipeline/scripts/audit-log-rotate.sh": "5a4ef7d9ac75abbc5a5103fc2202b89707a2f2c00432ece133a132b483cd7450",
439
- "pipeline/scripts/audit-log.sh": "5e0e45da2202a1a36f09408bf4c727f978c9850bf709c125cd2c0ccf414d7ff4",
440
+ "pipeline/scripts/audit-log.sh": "a2f721f88edb3dde6647c4438a37f419eeafcd37166be022907876799981e13d",
440
441
  "pipeline/scripts/autopilot-arming.mjs": "38224fc58dc208e5e2d5793302cb67c6d0ab75be2dc4259cbe55ac87102a59b7",
441
442
  "pipeline/scripts/autopilot-awake.mjs": "23ae96e519fbaef86980e732196a581a861f4ffe9a319ce0bd3ffd7c9fe48b10",
442
443
  "pipeline/scripts/autopilot-intake.mjs": "a65ac29850de94002bebd5db3f09b406c65f1875b32058cccea6b440f95c7526",
443
444
  "pipeline/scripts/autopilot-menubar.swift": "4fa39e603630565ac2cfb5a8b0bcf891dbefb02ce272252b9480605241670ac7",
444
445
  "pipeline/scripts/autopilot-publish.mjs": "6a9727685d08c57983b9b6dfb398b7f7a7ef015ed14b8f61ac40207bb40f93d4",
445
- "pipeline/scripts/autopilot-runner.mjs": "bf4398aff2bc98ff2d1a1e9c3606cf96e8e45b92dbe6980c5b5f0c3c5d7fdd3f",
446
+ "pipeline/scripts/autopilot-runner.mjs": "7842a3f1ae2e516d8f771ae595ed9d722c41cb1bce7a6b1b2dd1772ff40b48cf",
446
447
  "pipeline/scripts/autopilot-status.sh": "8b9807155cfe5eff09ee3e01a8c3e5d1bbf7554db22de89de438531e4554b32f",
447
448
  "pipeline/scripts/base-branch-candidates.mjs": "c73a02033ed9f10c15b3aaf010432f0d4e429a75eba14731e9a64492e3fe3859",
448
449
  "pipeline/scripts/build-lock.sh": "9cf9a3f5100c337af86264ddc60f2ec763b6402c11c639946020037d78d5d365",
@@ -473,7 +474,7 @@
473
474
  "pipeline/scripts/crush-json.mjs": "303382670f8f170c8c6710202853a2de2915625813cd157185f9be4e2b27258e",
474
475
  "pipeline/scripts/diff-explain.mjs": "194d0635639607cb1af3de064453162e01c0d59dc0c2e187d21d45bae3bc559c",
475
476
  "pipeline/scripts/diff-risk-score.mjs": "b3e8da42fea1258162e40f4eb7809074831339b7563874527f7e825f7aa795ca",
476
- "pipeline/scripts/doctor.mjs": "e37cee071270432d60bd52fd8ec6d9ed9132b90b405def7ad4874daba4104d7d",
477
+ "pipeline/scripts/doctor.mjs": "d903ffcf79e37175047e2b662d324ad7db67bd355297672e9383ba1a991ffcfb",
477
478
  "pipeline/scripts/evidence-gate.mjs": "347a8d3fa1d17d996de345585c216bd7071f4c1d687999daf6e48881720ea5df",
478
479
  "pipeline/scripts/feedback-send.mjs": "d3ed66e9dacdfb4b5eacf1b244bf66752304fb4fcb144531441b458f3ab806be",
479
480
  "pipeline/scripts/finding-fingerprint.mjs": "fa12ab10701db5d2bfff014e41d1cd4c0b2b772aee5fc69205de14b2761b0c83",
@@ -485,7 +486,6 @@
485
486
  "pipeline/scripts/gc-worktrees.sh": "f6b405306b603797e950274fdf3b732140c3fd45d5d15788374d2e33bc21b534",
486
487
  "pipeline/scripts/gen-facts.mjs": "6ba70f7db881c3e3577a5ce3dcbfda09aa240f728ee577b019f2176d8051fd67",
487
488
  "pipeline/scripts/gen-mode-dispatch.mjs": "89e9f3d0902b0a1feac5ebad0ac767c07a8875c081c9d0094eb0e055b7da5ed8",
488
- "pipeline/scripts/gen-ref-toc.mjs": "23b4f4fd5e2ad7434433d23c116e056186b0ed27ce008cc01b1bd9a0ef13f4e7",
489
489
  "pipeline/scripts/gen-skills-index.mjs": "64606fb3165786ed1488cc368dcbe8f53d2e9402f02578823a31838b9730180d",
490
490
  "pipeline/scripts/git-path.mjs": "c035624f1ab924039b37e0911f56c6a1fa781ac41dc89fadfdaa4305f4359c12",
491
491
  "pipeline/scripts/github-ssh-setup.sh": "5a9e1836d80e4e176806c143a3c8ba4c1b9c4274ed49aac71f33bd40de31968b",
@@ -506,13 +506,12 @@
506
506
  "pipeline/scripts/learning-curve.mjs": "d574eec427c7f37a7a77a9ef9e2499f50dadc2215a20ae24e31654afd3497f36",
507
507
  "pipeline/scripts/learnings-ledger.mjs": "411bf80329a1c7700e5a523d5f0a7d1d3a716514f9656703bce67e26e71e0bb0",
508
508
  "pipeline/scripts/localize-commands.mjs": "d095d354be4bf5ea7c0a68969c1531421908b195755d591c5012334d821f201e",
509
- "pipeline/scripts/log-metric.sh": "f77b1c832fc7cb14dfe51feff023d76f76fb8891f0a61d514b52952e47681b8f",
510
- "pipeline/scripts/make-manifest.mjs": "db692c1bfcc0a7721ffb0b4d9ec57b74fadcaddf2821a32e222a4d4a513c425a",
509
+ "pipeline/scripts/log-metric.sh": "f3764017124add197bea5f1176854f115be84d786dc1ece3246f312c2965dcf1",
511
510
  "pipeline/scripts/match-skills.mjs": "dd6c023a623ce6e9999f3eceaacd91f8d0c8ac621e3f025c8949e2203dc05bdf",
512
511
  "pipeline/scripts/maturity-followup.mjs": "531eb9578a71ea5bb2510bb24a48f264c36aaf7adceca7b4ec3dccd1c63ae412",
513
512
  "pipeline/scripts/memory-load.sh": "c6a1976372ed033c9f3b55e757e22d05b4ef0d9774bfe185453d8847525b4a89",
514
513
  "pipeline/scripts/memory-save.sh": "ab6b4c3d78707e0ac66fe56726308782568f247463d4c7edf2316b2dd399ee6b",
515
- "pipeline/scripts/migrate-prefs.mjs": "513aa3d436d0978c18c3c9abaf377f0373c8bc8b312b09aa8f7a8a85a80d0792",
514
+ "pipeline/scripts/migrate-prefs.mjs": "bb389c2527edaa5bf317ee1be55c2f449da21100fc9660943764d2bcc757d665",
516
515
  "pipeline/scripts/migrate-state.mjs": "b6fb42f56ea56ab10c00e947f013e3aecaeef1aa0d819493eedbef7cdf7d4370",
517
516
  "pipeline/scripts/note-session.sh": "1466d93f401c66074705635117a052a3f811ca22f928defa1ec2e4c804c19fc1",
518
517
  "pipeline/scripts/observations.mjs": "edef08a8ab8f967030da0575d83f501eb6256460c0b72c2ba377c629b3ee0674",
@@ -528,7 +527,7 @@
528
527
  "pipeline/scripts/plan-critique-gate.mjs": "b139394e5f16d11e4997d0bb0b08529f439dbd7fad39781ef4c2475247d8fa97",
529
528
  "pipeline/scripts/plugin-refresh.sh": "687a33199ad963616ab537e32210ec8c967e76ecc42f494ee8a1dc9fe947fc30",
530
529
  "pipeline/scripts/pr-request.mjs": "e6f4ded2366c6599bb345b3011ecc771e13b8a1561afa4c9a50bca4edff17456",
531
- "pipeline/scripts/pre-commit-check.sh": "43be6d8b31c02051e9a905274b735ed4cb9c6ccaa692928bdbd7ac1b17a3db69",
530
+ "pipeline/scripts/pre-commit-check.sh": "60c4cf2444981db3d098dced897fe410c93c6a65250e3b2376e48df8428b9b9c",
532
531
  "pipeline/scripts/pre-push-check.sh": "e449aff7f0336d7d624eff4c6221f56d8621ba9d010669601755e57fd4ee02c7",
533
532
  "pipeline/scripts/probe-evidence-capability.sh": "ac74252eed6b773fdbc7ec475a63606925f1ba7b5e7c6f911329f46fd920eae7",
534
533
  "pipeline/scripts/prune-logs.sh": "c5587b33104c7253e07be8cce8249b50014c52dfdf232de637811ffdd88e95e4",
@@ -550,10 +549,9 @@
550
549
  "pipeline/scripts/run-ui-tests.sh": "11331115a4c3fb436f8f35894b7f12a1be317c7cfcd7b7512aeb42b6a9aa21e3",
551
550
  "pipeline/scripts/runs-index.mjs": "7937dd3d6f3c5b7800d853ff06289fd5551413dda4f46b0f3db81483b7280e66",
552
551
  "pipeline/scripts/scaffold-gate.mjs": "e2935957771f1d332b9968a819de49676152c51991e89f4a9cab7467b6d18701",
553
- "pipeline/scripts/scan-agent-config.sh": "41dbd995de799f599dc365ea8cfe55542c48c7387c4f94a596a1e6feec278168",
552
+ "pipeline/scripts/scan-agent-config.sh": "dd3eaa2481c05784a09c8243762da6f7b91323d63fb635a667bb59516fc2086f",
554
553
  "pipeline/scripts/scan-skills.sh": "85765b7ec15af13ade5c9ccedd88329c19b11a627e8df6dccd4839e95361dfb7",
555
554
  "pipeline/scripts/scope-check-gate.mjs": "a71b736b1283b6b99fcca23ae2159e9fb134e1e65dbfec1e66d63a5cc20582f4",
556
- "pipeline/scripts/scorecard-snapshot.mjs": "320fb2c811e085451d152997e6b5ee54fa0d14d374d9592ac7880443c5d02ae3",
557
555
  "pipeline/scripts/search-logs.sh": "af0ce9b75edd359cc93dd678d35b15eb9bb0f14a4b044d8e4d639f8cdb82c76f",
558
556
  "pipeline/scripts/sign-skills.sh": "779355dcf8ce383959e9a3c6093f46660a0875e83a805b7a67983acc8551cb59",
559
557
  "pipeline/scripts/skill-conformance.mjs": "73c5947ee4a6201f52653d162ba1d6e70757cbff8dd1e90317a7c4b095424b2b",
@@ -574,12 +572,12 @@
574
572
  "pipeline/scripts/token-budget-report.mjs": "508bbc659df478c535c0ecdd3f8611372af8fef0b0932c7b19a247af2b2b9265",
575
573
  "pipeline/scripts/triage-memory.mjs": "2d8541145f1749593ae5728fb4c9eb3001484edb5e4d37be473aeec34d1dbe7c",
576
574
  "pipeline/scripts/ui-tree-dumper.swift": "a09e42ef069eafa08c05afd8333e05b754ef6a7d8b9687712039b0f2c9801273",
577
- "pipeline/scripts/unattended_policy.py": "a03dda2176d8a4ebce05b34f353fdfa01ac5e67ddcc7a163e0966bbe9f83d7e7",
578
- "pipeline/scripts/uninstall.mjs": "ea698d098ebc5590fbe9656af72d26773c9addfa8a8b9f747ed16514ee96f686",
575
+ "pipeline/scripts/unattended_policy.py": "695a204f43dd509f04bc4a5eaa9d700f0ea1d3a63a4837b81e0d01fc086e7246",
576
+ "pipeline/scripts/uninstall.mjs": "880923522ef59fdd98cb7ecb1bdc85c0f15d1e2eed2d79d6d353e88712ca95fa",
579
577
  "pipeline/scripts/update-check.sh": "9c00647e7ca4249414b2e5af08f61705ab5bd2106b6f66ae8ebce8aa143dc957",
580
578
  "pipeline/scripts/update-issue-progress.sh": "ccfef87743e91272e009e396ac07461d2784b2fa84a06c802a582526eeeb9ed9",
581
- "pipeline/scripts/usage-identity.mjs": "3e2479bafc290f1acb253f5273339c87550f97d332818a26e5ac266d7ef289dc",
582
- "pipeline/scripts/usage-register.mjs": "2844d2187226006d1a8b4e9b044d7591f4a5d3313cb24f9e388b36639022ce4c",
579
+ "pipeline/scripts/usage-identity.mjs": "47c1f907fb1ab47672687ea0cbf2d0737985ae91ec2b48b4fe260e14c3d35d70",
580
+ "pipeline/scripts/usage-register.mjs": "cc19d7ce5efe57255ce1521d33ad4b9a75b6833385ed6edcc5e339faf3c6e06c",
583
581
  "pipeline/scripts/usage-report.mjs": "01ef50005c3358d17ca4ef69b80b5b576887ec47cb360c0211adbcc9c1f1e2aa",
584
582
  "pipeline/scripts/validate-analysis-doc.mjs": "ae56b7578ef51e008a99f84eba9def3e0f1dd2bd87a3880f2083aa98b365f7a1",
585
583
  "pipeline/scripts/validate-analysis.mjs": "d2dc9ccf45f6ca2702908761939edd830d18b3b273016a4b449f26fe285d5ea1",
@@ -599,7 +597,7 @@
599
597
  "pipeline/scripts/worktree-prepare.sh": "9391c828375b127f77c86e3c830dbbaf355a61464c6437319969f2f1eecc72b1",
600
598
  "pipeline/scripts/worktrees.mjs": "90dfd09b70fffe9b56c331a4ae2692cc248f4898f4ee6aee4239ef0b20888a90",
601
599
  "pipeline/scripts/write-state.mjs": "e1198bf970eace07d3eff22b394808a526e473df65d3d58aa2d5a12cfdac8b49",
602
- "pipeline/skills/.skill-manifest.json": "29f591cb4dcf509fc59a0defcfaca6487e8c000c98d2919f0a350af441a72887",
600
+ "pipeline/skills/.skill-manifest.json": "b9e45e544df8f0412ff5e3183465312580bda7497012ca8eee926dd39da3a0be",
603
601
  "pipeline/skills/.skills-index.json": "042b1090f3e2ca310c6ce70d1bb304e8c7f96bd73133e504b95d83801608e470",
604
602
  "pipeline/skills/shared/README.md": "a144fb39993470b6379d9660e0ee0371bdc858aee3d7c1b375cb6aba03d046db",
605
603
  "pipeline/skills/shared/core/apple-archive-compliance/SKILL.md": "7239fef717ea45b79276bfcc2c3903acd57950b6e00dd6a2a66399c4b09cbd51",
@@ -740,12 +738,12 @@
740
738
  "pipeline/skills/shared/external/background-processing/references/background-task-patterns.md": "fd39d3117fd99a62b32eeac0e707842f2a06c38d75aa3630c6c8c147c6f04be7",
741
739
  "pipeline/skills/shared/external/backlog/BACKLOG.md": "b84c4753116f13a5b4cc2f361fd3242cc246545d86f055ba45adf5920cda2736",
742
740
  "pipeline/skills/shared/external/backlog/SKILL.md": "f48d35654410bb800ab477c87b7ce6db8e758671cbb733c36429d8435b7d250f",
743
- "pipeline/skills/shared/external/callkit-voip/SKILL.md": "0a7102e006a54e38011e24c274c50b0988f210cdd34fb6405ba5db922f23d3e7",
741
+ "pipeline/skills/shared/external/callkit-voip/SKILL.md": "44646c2f192170a5468c18a0c78fb77ffcf135bb8d8cf2a7581ac2d1c0909eeb",
744
742
  "pipeline/skills/shared/external/callkit-voip/evals/evals.json": "b2250509b3cf83bc790430e7292a1c8f4c0cfd9570efbb590a3ff8250f2cbeb4",
745
743
  "pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md": "c8cf366198471ede209f86186823a5d7ee05d1f2cf51093ee3de0c6665689f0e",
746
744
  "pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md": "753a90d54c392d0a120c4e36ab34d7a43f9e0fe63609e65154c9c1da6d824763",
747
745
  "pipeline/skills/shared/external/clean-code/SKILL.md": "2675ebe3c867ccefd7ef03c1396b7b208a062db665be0fb452915f2b4612f4c7",
748
- "pipeline/skills/shared/external/cloudkit-sync/SKILL.md": "842889bc86a8be353871c6f2104a8f5f8e506cd81203e135ee25911cac050526",
746
+ "pipeline/skills/shared/external/cloudkit-sync/SKILL.md": "9464e93c0435628f3628a6f1775b7478dea75514b0fb3aa3cc09c7cec83be48d",
749
747
  "pipeline/skills/shared/external/cloudkit-sync/evals/evals.json": "c5286f31cd5fca23c14cf8f9d5727254bac0cd795785ea5d91151a3d8222aaa5",
750
748
  "pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md": "c2b7cb0fc1fbff3ea526e1f4f6ddd67f61f5ebb0abc802b34a5316c6efed8bfc",
751
749
  "pipeline/skills/shared/external/compose-components/SKILL.md": "03ad58d5552b37480978462907539fe1070eeafce80a2a3c943d1c3880983f3f",
@@ -766,7 +764,7 @@
766
764
  "pipeline/skills/shared/external/core-motion/SKILL.md": "320b35344887d1c5918c05d20aea87e790406f83dee041f5d91be0b6fd67bdf7",
767
765
  "pipeline/skills/shared/external/core-motion/evals/evals.json": "a2b9355c59f40a4c9d6b23589f0310152c3056ea5d7c591d7c52aa6860133b69",
768
766
  "pipeline/skills/shared/external/core-motion/references/motion-patterns.md": "b09ed249be50c26aa7c71a2dea74a78671e9cdbcaff261ec43e9cd544249064b",
769
- "pipeline/skills/shared/external/core-nfc/SKILL.md": "0f58b94d639b887588a472385791762181286ab30f015b423d868a1cef8fa5d7",
767
+ "pipeline/skills/shared/external/core-nfc/SKILL.md": "c838b7e38bb0c65f409674220ef9f6b668839ce2c0546609b75c69c1d7c18567",
770
768
  "pipeline/skills/shared/external/core-nfc/evals/evals.json": "3a9104849944a4943b23c03e1b775f783075d2d4dedb6cb2d3a0ff88919b861e",
771
769
  "pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md": "e5d8f5a19bbb7c38b67e916344365085a978f5bd73aa507967769f4a57b45e02",
772
770
  "pipeline/skills/shared/external/coreml/SKILL.md": "b5f3fdf161a2bd2ab839a52093f0cb99c2c3026211e48a7d13dbab712e11b255",
@@ -837,7 +835,7 @@
837
835
  "pipeline/skills/shared/external/ios-coding-standard/modules/_TEMPLATE.yml": "b9d7e93039133b2a8197a1a7b88adb4721d980973e9c048e1f3638bc8d6ec97e",
838
836
  "pipeline/skills/shared/external/ios-coding-standard/references/STANDARD.md": "a74dfb70422e039b6361739cb43c05550c79c217b38dff399ff92d7a7627e943",
839
837
  "pipeline/skills/shared/external/ios-coding-standard/references/lint-local.sh": "8dd4ddaa98a7cd5ef53c0355d7e2b76e114782898d51f029e67866514905ab17",
840
- "pipeline/skills/shared/external/ios-coding-standard/references/rules.yml": "e13853b460f093d3a3682b601b419a2693eedf9eae3ecad4e299b1fe17ca56e9",
838
+ "pipeline/skills/shared/external/ios-coding-standard/references/rules.yml": "dcac3676f9559f343c68e6393fcf5ab46814737ca25224cab393fb47e59a2532",
841
839
  "pipeline/skills/shared/external/ios-coding-standard/references/swiftlint.draft.yml": "53406c6a44647aa72af95dc033189a66a48a5332f36cb6bc844a4a054d700cce",
842
840
  "pipeline/skills/shared/external/ios-coding-standard/scripts/check_structure.py": "26a2c26e40a5cdad79d13664e6a492c49ca7c23c942b790f9140aaa08ddea426",
843
841
  "pipeline/skills/shared/external/ios-debugger-agent/SKILL.md": "2126e7211042209922a848d5e24589b893c4d3f5da658d81c166e5c1347f4b3f",
@@ -846,7 +844,7 @@
846
844
  "pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md": "3b9aa4a911625a5b246c728d5afe6ec52701d362980de528c554b25b4801a3e8",
847
845
  "pipeline/skills/shared/external/ios-localization/references/string-catalogs.md": "6e103989d396c43ab3c0e4b2d5df6da34ba6b2d33fae649d84ec4f38f5811ace",
848
846
  "pipeline/skills/shared/external/ios-module-structure/SKILL.md": "abb85b305ffeb1f3cd5015fe630311b22a6914c88c59b8d4b71691496235f7b9",
849
- "pipeline/skills/shared/external/ios-module-structure/modules/_TEMPLATE.yml": "787436db8f53ac2d92ed84c9ff4b9565365b8ab71b7b25049b3eca6c85eb7fc2",
847
+ "pipeline/skills/shared/external/ios-module-structure/modules/_TEMPLATE.yml": "9bb2d817e1db80f8e41fd97587a130d8020a436dec8e07f0c08596cd9533df3f",
850
848
  "pipeline/skills/shared/external/ios-module-structure/references/rules.yml": "8fb27b48bfcc0fd285a093cd4d76a5c8097da7350c0502bcb7ed7ce970949983",
851
849
  "pipeline/skills/shared/external/ios-module-structure/scripts/check_structure.py": "ea741e91345c965c7a67f189813726700c2cf8a9859eb3119e950834ac5aa813",
852
850
  "pipeline/skills/shared/external/ios-networking/SKILL.md": "51b064a7830b77018de494f0c1913f7b6f93d1caac8e9398c214ccda5b3a71d3",
@@ -869,24 +867,24 @@
869
867
  "pipeline/skills/shared/external/live-activities/SKILL.md": "0a8b682b63b432246781133364fa4df98e4b1752ebc90994c4b39197f80522da",
870
868
  "pipeline/skills/shared/external/live-activities/evals/evals.json": "77a5ba20a4a2d0d6ca9a1913d462bff163a60568095b40057dcd13148a0ac168",
871
869
  "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",
870
+ "pipeline/skills/shared/external/localization-reuse-map/SKILL.md": "0a7429a2bbc2454b12ae4fb9af1eb09cc5a5d1ab96c05c693fc4827747bd8d15",
871
+ "pipeline/skills/shared/external/localization-reuse-map/example-mapping.json": "7df47a015224b0175b96fc3e4b020e41c4268e584fb0c5d668d96891f455ed9a",
872
+ "pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md": "92aa81c0798d6eee24114cb30f11da409f173f8392672d47ad4d111f71a2ba39",
873
+ "pipeline/skills/shared/external/localization-reuse-map/reference/publish-and-snapshot.md": "5530dca90e1b363bbe150a22c44c6abb40a7a7092c91948056bf09a4151516fd",
874
+ "pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md": "8a5f0bcd994ec74fc701a3e4042dad0fea7a3150682af03a7f568d9f24d3e41d",
875
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/_shared.py": "597123889141e10c2bbbed8baac115df18f65702e075c5bcc8385732f09d7c27",
876
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py": "b97b83e933599c8d89e7954b1605603b35ccc4c3ac0f642119a410d0fbddea38",
879
877
  "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",
878
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-annotations.py": "8a33d90148c82f12db1a29381425c8be4a0a27f4f56ae167973e0480074c29ab",
879
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-legacy-labels.py": "a0d9c187bdbaac37d34dc45927eaf12eae0a85a2d67131e624729979e40b14b3",
880
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/publish-confluence.py": "d1052129cac5db677a58b0c501ddf56cc100eabcd6b3712af3f74addcce9b092",
881
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/render-key-shots.py": "4732792dbef4a0023fbb5b00d39e38ce786cecb563ba7d9ae5dc131b4a551a2f",
882
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/render-overlay.py": "c4a47e455614e856b7c4cf2a0b7c71863259c749167beacdd23f544bdd8855f5",
883
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-legacy-values.py": "af0481117460d956fdf0346c69e7d489f316ac49b14169046b84cd9590ff5943",
884
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py": "2e46240d666b6dfe00647f94479fbea87c8eaf63496892eaf141c060eba39882",
885
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/scan-screen-keys.py": "8866a296257c6251dde45fcfbb2cd4fd93072292d98698c2a8318e24dfb99137",
888
886
  "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",
887
+ "pipeline/skills/shared/external/localization-reuse-map/scripts/verify-map.py": "1115d887db7116047747ac4d786f01b8954494c12843ea476f8d99547bb55ec9",
890
888
  "pipeline/skills/shared/external/macos-menubar-tuist-app/SKILL.md": "52156bbf7a55cbfa9d7a5a09279d9b2d00f3617bd4e83ec31807c4d703030e6c",
891
889
  "pipeline/skills/shared/external/macos-spm-app-packaging/SKILL.md": "1796dbf9f28a77ec98758009da3d85a5d9290581cd25f0f54d98023e704d003f",
892
890
  "pipeline/skills/shared/external/macos-spm-app-packaging/assets/templates/bootstrap/Package.swift": "24cdd73b17cf98a2f315e60a7f883ddec8c94572f0d1643f46f4465ffccaf4a6",
@@ -925,32 +923,32 @@
925
923
  "pipeline/skills/shared/external/nodejs-backend-patterns/references/testing-and-frameworks.md": "9a3574a1fab937c5e37e17a27ce626029dc4647e421e9dcb65221ed643d31f92",
926
924
  "pipeline/skills/shared/external/observability-engineer/SKILL.md": "245f72ccd9be724ca287c4d3713e21820ebe16b88f893a3b1d28928f9b1ae276",
927
925
  "pipeline/skills/shared/external/observability-engineer/references/patterns.md": "ed6ee58d29261671255eb1a4c22291b9759cf22127d4c10018f7a04db2dcef40",
928
- "pipeline/skills/shared/external/passkit-wallet/SKILL.md": "5780862b6f98b9a2b65975a79c690d2b200126f1004fac5055907b89f4bd8a0f",
926
+ "pipeline/skills/shared/external/passkit-wallet/SKILL.md": "972a26763ef557d6534e970c6a444526c0fc3eb0ac005f01ac1fee103e052e58",
929
927
  "pipeline/skills/shared/external/passkit-wallet/evals/evals.json": "0c86ff0981bf3ec2587dbd88e4b1efce72063c6413ae18e041fd2f6f5bc7cd49",
930
- "pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md": "be730c358ad4e52e9f670816847d65573f4747fa6216d7c114caf5f4edd1afb3",
928
+ "pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md": "684910f2bd06fad7a7540af316059961067ad8c727058425bbbfe085458574ce",
931
929
  "pipeline/skills/shared/external/pdfkit/SKILL.md": "b4966d5470a56ed37b0413aac88791e3a277039434f2181578cbaddcf8ee270d",
932
930
  "pipeline/skills/shared/external/pdfkit/evals/evals.json": "ad48bae1b40a210733f3e97e5c192e6fc738fa531d3960286713488dec7f312a",
933
931
  "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",
932
+ "pipeline/skills/shared/external/pencilkit-drawing/SKILL.md": "f18ccc4d5d985492758003aba555ccbfbede2e9c18c70932dc7c1198c4c2f624",
933
+ "pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json": "ed995441f7b5a7b468df9087313d6b4af295b1bb907d8fe19032ddb19d4ef249",
934
+ "pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md": "da084a77c9949e8a6f0292a029577fab9537044e7e85bc64876459b4d267e175",
935
+ "pipeline/skills/shared/external/permissionkit/SKILL.md": "ea30c7a3bb9128a5f43064d5d2e46360d1fe08c732eb3ecedd63490d7d4420a5",
938
936
  "pipeline/skills/shared/external/permissionkit/evals/evals.json": "2c3d7cd8d893e91058bac05814704665ccc531e71aceecc576713e93251f86c2",
939
- "pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md": "25a448e318f983c82e6d902b0e9b3328743cc84b10dd16df5449a3fe1f9f9fc8",
937
+ "pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md": "d4417019b774bcc1bd86405850ab3b81d92fd34948d8c034bfd04de60680ba58",
940
938
  "pipeline/skills/shared/external/photos-camera-media/SKILL.md": "10ead73e0edd7efe20b8b93315a89abb357070bda0acf715f25f32418764480c",
941
939
  "pipeline/skills/shared/external/photos-camera-media/references/av-playback.md": "bad2fb69e1ba8a67d3889f4f6ba4c749b390d45dc23b8a6e85d92bfa2bcb7787",
942
940
  "pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md": "560bef5f1e1e78150444ddc519c19d41b0718cfc292cb29609eebc0763bd16e0",
943
941
  "pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md": "52ddb02fe924eca335d825fd90db4725924426de384cf513b49eca7bb8650e7d",
944
942
  "pipeline/skills/shared/external/photos-camera-media/references/photokit-patterns.md": "5694c83ae69f8a62b1026f271484615b2c0c0eb120f58e4584e9b5050b682a16",
945
943
  "pipeline/skills/shared/external/play-store-review/SKILL.md": "8cfe6ac9c1c078089b92252f1600917f77b01dba80ae7e55f2fd347c409f64e1",
946
- "pipeline/skills/shared/external/push-notifications/SKILL.md": "f962752d6e540cdd8e98e96f9b0790eccede1d0a88bf5bd22928891d26d172f3",
944
+ "pipeline/skills/shared/external/push-notifications/SKILL.md": "9f73964265e99c21aa0bab61b153a77ad3ac953f45766c852b1c8cfbef8498c3",
947
945
  "pipeline/skills/shared/external/push-notifications/evals/evals.json": "567cecd735d27007071b68f23acf950f1b1b4d15882990a8e5bcb400690908bc",
948
- "pipeline/skills/shared/external/push-notifications/references/notification-patterns.md": "e835ea817fda03a9cf511a56c9d6fd35789efd660c54495aa52b1ccdf43ca02e",
946
+ "pipeline/skills/shared/external/push-notifications/references/notification-patterns.md": "68ddd0b46b42a7fd81ba965ebd3d291eb2dc100ceb44f0cdcdce7a6ac8541140",
949
947
  "pipeline/skills/shared/external/push-notifications/references/rich-notifications.md": "b9da50885b1b3d711dc00b1a336245e0d743c22f859e0fdafe1fa917f207db55",
950
948
  "pipeline/skills/shared/external/python-patterns/SKILL.md": "debcbd749acabf8f947b2e0bd1ae52126fdb0263f347b32b69281e6811f2cf99",
951
949
  "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",
950
+ "pipeline/skills/shared/external/realitykit-ar/SKILL.md": "66726df1164bb6ca96878cb941b4395ff3cff10ebc6743f91aa22b8ec795c246",
951
+ "pipeline/skills/shared/external/realitykit-ar/evals/evals.json": "15271c02c0b11ae3c3a61d511056cd4ac9db2699a1e258ea0001098da4678921",
954
952
  "pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md": "a91586bc6f81459a1b700d8b8b49c1271b1b7fc28b6c6f09912ec6d8ec9088a2",
955
953
  "pipeline/skills/shared/external/rest-api-design/SKILL.md": "23b6f35b17680b0e42af6123f063140e3a853d2b7847d4445fe6ddbd0a48f5e1",
956
954
  "pipeline/skills/shared/external/retrofit-networking/SKILL.md": "b3991cb24b790e6bc159c9082ff21c6a276ceb0e7516f53111ecb6c5dd4094f0",
@@ -971,7 +969,7 @@
971
969
  "pipeline/skills/shared/external/skill-creator/examples.md": "c126fd05796033828607bca44ecf5c5e7719251159b07702c80356d565e2c088",
972
970
  "pipeline/skills/shared/external/skill-creator/label-check.md": "b92966967c8703ce352d8328672ab745147737ea43fbb517c5683249b080d8d0",
973
971
  "pipeline/skills/shared/external/skill-creator/scripts/audit-panel.js": "c2be5b99bd93fea9a56d7892c8aede2233c435edc60479c2a8aa370352b0bb34",
974
- "pipeline/skills/shared/external/skill-creator/template.md": "ebcd94c957302da1cd98ed24bc71681cdbd6d2e59abad174897e10fbc30646bb",
972
+ "pipeline/skills/shared/external/skill-creator/template.md": "bbd0c0d771e06a6ba1ab4a5da8d1c047d353a5c9d70a6993ae4071404e8f9b7a",
975
973
  "pipeline/skills/shared/external/speech-recognition/SKILL.md": "a58c5171aa43c573993916c35cd39d100b72a7b74671207fe1c096d56998dcfb",
976
974
  "pipeline/skills/shared/external/speech-recognition/evals/evals.json": "2303f6faa9a64034bf2cfac4622256f6a2bf561035b9c6288c852d778a87a96a",
977
975
  "pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md": "cc8a7ccdcdc6c4371492437ad4f718c776cc3ee654febfbd1e75612aff2db8fe",
@@ -1186,7 +1184,7 @@
1186
1184
  "pipeline/skills/shared/external/tipkit/SKILL.md": "281287bf87ed5417e172efbba85ad989650909f444fc709515bc3557961504a9",
1187
1185
  "pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md": "7274c180898d0c92aabf7f6ff959cf556309c1f3ef9a69e9ecfae3d4ac1d97e0",
1188
1186
  "pipeline/skills/shared/external/typescript-patterns/SKILL.md": "784d294aa6ba09ff29bc7ec0f106eb512a006e79c96a01ec92d1699bfa122077",
1189
- "pipeline/skills/shared/external/vision-framework/SKILL.md": "68ef66fc020e65885f47e26e665c88365bbbf52cb1fb8fb8de5c4cab7237c9e8",
1187
+ "pipeline/skills/shared/external/vision-framework/SKILL.md": "370fdf6eaf71833dff0e8f2d3989a849b5c42ff3198605aa818c2fd0c12c7ef7",
1190
1188
  "pipeline/skills/shared/external/vision-framework/references/vision-requests.md": "c124b2b8359fd391a93a130ab9c32f9e2bfd7cd2153df89f05a66178f7223eb8",
1191
1189
  "pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md": "ba88bb588d0e896c851e3aa6bb3b7b20606d2d1c715e01656a3e0f54900ef5f8",
1192
1190
  "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.3",
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",
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "scripts": {
22
22
  "start": "node index.js",
23
- "test": "npm run format:check && npm run lint && node --test test/*.test.mjs && node pipeline/scripts/run-smokes.mjs && node pipeline/scripts/lint-skills.mjs && node pipeline/scripts/gen-skills-index.mjs --check && node pipeline/scripts/lint-personas.mjs && node pipeline/scripts/lint-mcp-refs.mjs && node pipeline/scripts/eval-triage.mjs && node pipeline/scripts/eval-golden-tasks.mjs && node pipeline/scripts/eval-intent.mjs && node pipeline/scripts/eval-recall.mjs && node pipeline/scripts/eval-guard-robustness.mjs && node pipeline/scripts/validate-schemas.mjs && node pipeline/scripts/validate-prefs.mjs && node pipeline/scripts/scorecard.mjs",
23
+ "test": "npm run format:check && npm run lint && node --test test/*.test.mjs && node pipeline/scripts/run-smokes.mjs && node pipeline/scripts/lint-skills.mjs && node pipeline/scripts/gen-skills-index.mjs --check && node pipeline/scripts/gen-catalog-history.mjs --check && node pipeline/scripts/lint-personas.mjs && node pipeline/scripts/lint-mcp-refs.mjs && node pipeline/scripts/eval-triage.mjs && node pipeline/scripts/eval-golden-tasks.mjs && node pipeline/scripts/eval-intent.mjs && node pipeline/scripts/eval-recall.mjs && node pipeline/scripts/eval-guard-robustness.mjs && node pipeline/scripts/validate-schemas.mjs && node pipeline/scripts/validate-prefs.mjs && node pipeline/scripts/scorecard.mjs",
24
24
  "test:unit": "node --test test/*.test.mjs",
25
25
  "test:smoke": "node pipeline/scripts/run-smokes.mjs",
26
26
  "lint:skills": "node pipeline/scripts/lint-skills.mjs",
@@ -94,6 +94,10 @@
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-catalog-history.mjs",
98
+ "!pipeline/scripts/gen-ref-toc.mjs",
99
+ "!pipeline/scripts/make-manifest.mjs",
100
+ "!pipeline/scripts/scorecard-snapshot.mjs",
97
101
  "!pipeline/scripts/scorecard.mjs",
98
102
  "!pipeline/scripts/lint-skills.mjs",
99
103
  "!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