@mmerterden/multi-agent-pipeline 19.1.2 → 19.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +80 -7
- package/README.md +42 -15
- package/README.tr.md +38 -12
- package/docs/ecosystem.md +3 -4
- package/docs/facts.json +4 -4
- package/install/_common.mjs +5 -5
- package/install/_mcp-register.mjs +1 -1
- package/install/_plugin-skills.mjs +3 -4
- package/install/copilot.mjs +5 -5
- package/manifest.json +45 -45
- package/package.json +1 -1
- package/pipeline/commands/multi-agent/setup/SKILL.md +4 -4
- package/pipeline/commands/sim-test.md +4 -4
- package/pipeline/lib/model-dispatch.sh +16 -10
- package/pipeline/multi-agent-refs/analysis/locked.md +2 -2
- package/pipeline/multi-agent-refs/channels/jira.md +8 -8
- package/pipeline/multi-agent-refs/features/base-branch-evidence.md +2 -2
- package/pipeline/multi-agent-refs/features/model-fallback.md +11 -7
- package/pipeline/multi-agent-refs/features/scope-check.md +1 -1
- package/pipeline/multi-agent-refs/features/stack-skill-routing.md +1 -1
- package/pipeline/multi-agent-refs/phases/operations.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-1-plan.md +3 -3
- package/pipeline/multi-agent-refs/rules.md +1 -1
- package/pipeline/schemas/route-config.schema.json +1 -1
- package/pipeline/scripts/autopilot-runner.mjs +6 -7
- package/pipeline/scripts/build-references.mjs +3 -3
- package/pipeline/scripts/build-stack-plugins.mjs +1 -1
- package/pipeline/scripts/bulk-read.sh +6 -4
- package/pipeline/scripts/doctor.mjs +4 -4
- package/pipeline/scripts/learnings-ledger.mjs +1 -1
- package/pipeline/scripts/match-skills.mjs +4 -4
- package/pipeline/scripts/memory-load.sh +3 -3
- package/pipeline/scripts/plan-coverage-gate.mjs +3 -3
- package/pipeline/scripts/run-aggregator.mjs +2 -2
- package/pipeline/scripts/runs-index.mjs +7 -7
- package/pipeline/scripts/scope-check-gate.mjs +1 -1
- package/pipeline/scripts/smoke-schema-validation.sh +9 -12
- package/pipeline/scripts/usage-report.mjs +5 -5
- package/pipeline/scripts/validate-analysis-doc.mjs +3 -3
- package/pipeline/scripts/write-state.mjs +22 -11
- package/pipeline/skills/.skill-manifest.json +3 -3
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +4 -5
package/manifest.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "19.1.
|
|
4
|
-
"commit": "
|
|
5
|
-
"generatedAt": "2026-09-
|
|
3
|
+
"version": "19.1.4",
|
|
4
|
+
"commit": "f13a6b27715b704907240b373fd20eb54d921c3e",
|
|
5
|
+
"generatedAt": "2026-09-21T09:27:23.265Z",
|
|
6
6
|
"algorithm": "sha256",
|
|
7
7
|
"fileCount": 1057,
|
|
8
8
|
"files": {
|
|
9
|
-
"CHANGELOG.md": "
|
|
9
|
+
"CHANGELOG.md": "d925ef34f59caeed05e44bd5f53e5ea0f64ea4cca946d3d3ff027bc1b449bdde",
|
|
10
10
|
"LICENSE": "8d8c51aaf1e1538b180c69965fa038db71be86798cc3e26a143bebfefe16a43e",
|
|
11
|
-
"README.md": "
|
|
12
|
-
"README.tr.md": "
|
|
11
|
+
"README.md": "ec1a92a3397ce7ed2665c18636c291ded71f1dbf5d36526232cae62edbbf6f82",
|
|
12
|
+
"README.tr.md": "fa72bdd99b0c80c5e3f976cbd9a71e08b3784eb4ce120ef57995440db1a3cbb1",
|
|
13
13
|
"SECURITY.md": "3fb38c517a8e2c6cea84c871b98a0c91ef3df17379028ba4f1686e07369e4c6e",
|
|
14
14
|
"docs/FIGMA_PIPELINE.md": "24155e13690ade810d99cda6a350051f0810bc971ae341bdef561a0a46f5032a",
|
|
15
15
|
"docs/adr/0001-three-model-triage.md": "79a6f1025469f607a5859add21854052d7433bc213f4aceee2e159b613eeb6a1",
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"docs/adr/README.md": "4d7ac308a1b41d84c27c9097cc0907e0eadadc4b5776814b6495535049c2d148",
|
|
30
30
|
"docs/architecture.md": "6abbbf037539c9026727f4e237395962ca132f7260a35524a4820f6d6e2b8e88",
|
|
31
31
|
"docs/best-practices.md": "aeaaa12d518233cb09577c1dbaee00d62cd26f9f7e0400c681fe38742d6a7ba2",
|
|
32
|
-
"docs/ecosystem.md": "
|
|
32
|
+
"docs/ecosystem.md": "68a79da4b2582e807b99c0e85cd9a175febafb2202088e003718bc5de732c5ea",
|
|
33
33
|
"docs/engineering.md": "550528cd47c7d2c921729c68d0782a00ac8e77a4bdfec479f6749f9c3235d188",
|
|
34
|
-
"docs/facts.json": "
|
|
34
|
+
"docs/facts.json": "82e1e4b2069f055984064f869098eb4a9446e7e8e528c38650682d3fbecfb73f",
|
|
35
35
|
"docs/features.md": "927e5e54f7b1348ce2cddecb0d11115dc5ae9db20558b12d67932d38b26dad3f",
|
|
36
36
|
"docs/performance.md": "bbf2f3922c25dcba0c1a9e69ef420e3871a729af5b35009a49b48a5d3c5cd151",
|
|
37
37
|
"docs/recovery-guide.md": "1cc014295f8c8ffba1f1c44397b657e925f1bc0e4757217d6e69e8cfb271f3cb",
|
|
@@ -41,24 +41,24 @@
|
|
|
41
41
|
"install.js": "b2d71a926a62c96c994c76735f40dff068c429b5a368005fb62e60972da41c2a",
|
|
42
42
|
"install/_codex-agents.mjs": "ef9364c6b7001f083be24f8bf3ef1658adadc50195c64e46ffdee388a6419fe9",
|
|
43
43
|
"install/_codex-instructions.mjs": "add75ffc0e8d8db0e3bf275b46017a897a4cadb83dc66c7d3affd73bcead20f8",
|
|
44
|
-
"install/_common.mjs": "
|
|
44
|
+
"install/_common.mjs": "fab97294852c79c30dff355f34fefb6d7d859483d03505b586cef84141479c88",
|
|
45
45
|
"install/_copilot-instructions.mjs": "73e4b82b2af0f3e1669f772fa0788dac6b540c131e56d5fe38dcf29be85cc019",
|
|
46
46
|
"install/_dev-only-files.mjs": "8f8327a19fd03f8aaf7c5f739391ea4c97d47a59bb936e9b8cb485a3e59dbfe6",
|
|
47
47
|
"install/_managed-block.mjs": "7328728a7c82744b66218034389fc295d1384311daa5415408afa94be14303d3",
|
|
48
|
-
"install/_mcp-register.mjs": "
|
|
48
|
+
"install/_mcp-register.mjs": "56a785984afbba54aedc3677652ca4ee990d98d45b6599a3937cb656cad53b46",
|
|
49
49
|
"install/_platform-filter.mjs": "8733d7d151e26a89aec5b486e0ac5b5849c0d7cea80d46f28a9a1a61a77c7032",
|
|
50
|
-
"install/_plugin-skills.mjs": "
|
|
50
|
+
"install/_plugin-skills.mjs": "bf287053133f940df0ca434cfc5ee522fd27e80dc7f7e60ccc963ecaabee047a",
|
|
51
51
|
"install/_telemetry.mjs": "5433d753f909beed2c8789272bba05e245482c472f83d3444f58000c4c9a634b",
|
|
52
52
|
"install/_unattended-profile.mjs": "56aa49f3c9b885b4d0bc48597fc2d6c388d5d47767dd4d9d5aa820d7f8111267",
|
|
53
53
|
"install/claude.mjs": "056656e4437803ac7b0538921f3d43452e456d88ebd736d94e5d88cc5e2826b5",
|
|
54
54
|
"install/codex.mjs": "3b41d51552d6f6fd7e62e3fa232f7ef63fae4a0ef53c4b54f9bf20be441c3d1e",
|
|
55
|
-
"install/copilot.mjs": "
|
|
55
|
+
"install/copilot.mjs": "6a494e76e46fd36f03fbc0338ed598f0f1032fe63feef7b7c9b392c0f9fbe2c0",
|
|
56
56
|
"install/index.mjs": "c78d095731de0c281895d0b50dfab05b612802e1d4e05342bc561cd9155513e3",
|
|
57
57
|
"install/templates/claude-hooks.json": "eec51881826222694e79cc70437bbeaf996b49f37ce4c2cd065cce9a3591d1d0",
|
|
58
58
|
"install/templates/codex-instructions.md": "dd78eb9553e725c039380457245793a5fc748ae37ebf5ccfe11be5ed5b9a4025",
|
|
59
59
|
"install/templates/copilot-instructions.md": "18161f2a8c995044aeae69d47200795b8babcf8b80d5e09e8d91dcfb7c841ce2",
|
|
60
60
|
"install/templates/multi-agent-autopilot.plist.template": "d79de637b17330e720be43b96bfcdd51797bd9ce219eafaa3dd5a8ece96e4814",
|
|
61
|
-
"package.json": "
|
|
61
|
+
"package.json": "64e8ac95077d45cace1f6191f8e56375e3b4dc37260392d71668b37d3ab3564c",
|
|
62
62
|
"pipeline/agents/android-architect.md": "baa5787b3a4c800dd065e27e05f44462927c9938c8bb676c80f18cb10e2b12c4",
|
|
63
63
|
"pipeline/agents/backend-architect.md": "a83bd7f8b0a5289a1ef9a9b59d60fc759b8db260606ff2df427cf5ade5db8530",
|
|
64
64
|
"pipeline/agents/bulk-reader.md": "0b9d415fab2c449d43329d759049af9401255d06b32d57a38c95e684837b19bf",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"pipeline/commands/multi-agent/save/SKILL.md": "3b4414373f36b487317ebb661119b7caf3d1d0ac775035fdbce826cfc8e969da",
|
|
120
120
|
"pipeline/commands/multi-agent/scan/SKILL.md": "5d326f6929f43164eec5da44ccc44ef6956255b180a09798fdebd99c0fe4ebd0",
|
|
121
121
|
"pipeline/commands/multi-agent/search/SKILL.md": "2ed15dc7d71c7044e0410e8cff192cb795a64d8110fa615903288a7de7eb8565",
|
|
122
|
-
"pipeline/commands/multi-agent/setup/SKILL.md": "
|
|
122
|
+
"pipeline/commands/multi-agent/setup/SKILL.md": "0a77ce3247a7112cb64fe87300a42f5f3e58ee01f3c1cd190622fb32b88e36a9",
|
|
123
123
|
"pipeline/commands/multi-agent/stack/SKILL.md": "70d7e038d47dc0dcde77995f5a1b5ce74e86fabf3127c2d580cccff3eb097c6b",
|
|
124
124
|
"pipeline/commands/multi-agent/status/SKILL.md": "2e682a88c7e0d0cfb5a98cb6fb039c156ae79edf3e020bc158569a7541ee44b4",
|
|
125
125
|
"pipeline/commands/multi-agent/steer/SKILL.md": "891628bc4b215ee68fd4b4507ee2e780a3d38f1a872f6778fcd12ba3d3207a74",
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
"pipeline/commands/multi-agent/uninstall/SKILL.md": "ed5cdb8dc8c47c750e6374bc2add49b2305616f1131386f3377008edacf4fe2f",
|
|
135
135
|
"pipeline/commands/multi-agent/update/SKILL.md": "d938dc180878118abea1213482effe30229860b473e9a947d040576f584ae874",
|
|
136
136
|
"pipeline/commands/security-review.md": "2485ac912eebc61f6470075bd7d9c8bf759a22384514fcc3997a9a674a4766b3",
|
|
137
|
-
"pipeline/commands/sim-test.md": "
|
|
137
|
+
"pipeline/commands/sim-test.md": "17fcefc2030f0ab24b3ee59807dfc11264b34d7455138081996859b1fee8664e",
|
|
138
138
|
"pipeline/lib/_jira-auth.sh": "534080c9f53666f7aadd6fdd998ff98e61cb54c53739006f07eecb6b86d6e210",
|
|
139
139
|
"pipeline/lib/account-resolver.sh": "61e99f28699dcd8f12d66072ea55165ea7d78211bf2ee39bc5d68a96f7d4d491",
|
|
140
140
|
"pipeline/lib/analysis-jira-write.sh": "477e7b4e2aaaa8289ab0cdb315f04c3a9b22beb8f075bbb73b6fa174d6679197",
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"pipeline/lib/issue-fetcher.sh": "c496ad6b07c0f6c64c69cb6293a0a4f3010b3ce3945a525e602c0d51c665ac67",
|
|
165
165
|
"pipeline/lib/jira-publish.sh": "a32e6a682ae730ddd9c6df64b9ece1fb73c797111c63f5c247d7e733668da6b7",
|
|
166
166
|
"pipeline/lib/md2confluence-v3.py": "3677ca47931e4b3d0fd2ce3e11299fc5f6d24799eb8332e37dd60b6c3c4653a2",
|
|
167
|
-
"pipeline/lib/model-dispatch.sh": "
|
|
167
|
+
"pipeline/lib/model-dispatch.sh": "467ee01628c2a4a706410fdc7b04b0dd92ad2c2cbdd2150f6fd91f2d7a773796",
|
|
168
168
|
"pipeline/lib/model-rung.sh": "befcd1a250a04f9ea9c8dca18c9d8905286330197e54da41ad4fd12b845f604d",
|
|
169
169
|
"pipeline/lib/multi-repo-pipeline.sh": "392b06b4d40924b16a74d85dfceb68a5aeed8a50aed832a5ca92f27e2a5d7e80",
|
|
170
170
|
"pipeline/lib/outbound-gate.mjs": "76547f21ca92793f4c59e1dbf91c498278614281607e3ecbeeddbafe7e3a6a56",
|
|
@@ -190,7 +190,7 @@
|
|
|
190
190
|
"pipeline/multi-agent-refs/analysis-template.md": "747d272b70c52c6ff8b321eb24c6553d93c144d872f431d7bfcbfe7d6619d2d4",
|
|
191
191
|
"pipeline/multi-agent-refs/analysis/evidence.md": "0550bc0bc9865dcd4a879cb5bf2fad1869f58ea2fa60c906577e421a485e3b26",
|
|
192
192
|
"pipeline/multi-agent-refs/analysis/intake.md": "9b92880a57218cf5e552547d4ddd9ee797603573ecd16617b1fc60b5e03c3564",
|
|
193
|
-
"pipeline/multi-agent-refs/analysis/locked.md": "
|
|
193
|
+
"pipeline/multi-agent-refs/analysis/locked.md": "bd6f199331dcb204e25fddbc0b052d9589b48ff370dd23f4b9fd437d48971946",
|
|
194
194
|
"pipeline/multi-agent-refs/analysis/redesign.md": "ed0b1c6c4157b0063debecad3342a48c83f3b015160cb6f37fbc429167ad18c3",
|
|
195
195
|
"pipeline/multi-agent-refs/analysis/render.md": "19ba156f82d8e42657256657a42b998586b42117e91570f434c230fcccab5a16",
|
|
196
196
|
"pipeline/multi-agent-refs/analysis/resolve.md": "c38a465f15c6140e4a4d42cd0b312c32e306ec7b36df385182da1a6a045dee8e",
|
|
@@ -201,7 +201,7 @@
|
|
|
201
201
|
"pipeline/multi-agent-refs/backend-guide.md": "b8809b06f7feea6a13f9b433a2b9828e39c81ef3ab59edd23c61cf183d80f7b0",
|
|
202
202
|
"pipeline/multi-agent-refs/channels/confluence.md": "1e1d731e9f57efdfe77efab3281d74b7f16e28d3d49699da516225492c551ffc",
|
|
203
203
|
"pipeline/multi-agent-refs/channels/issue-comment.md": "19df6d8d6c23b5ea88687250dc10dd5fa35ba2b2e279efcb000e83622a0664f6",
|
|
204
|
-
"pipeline/multi-agent-refs/channels/jira.md": "
|
|
204
|
+
"pipeline/multi-agent-refs/channels/jira.md": "8d1901758c890a90ac171ecf36566370f6bebdceb48e1387cd1bf11223ea6c8a",
|
|
205
205
|
"pipeline/multi-agent-refs/channels/pr-review-actions.md": "21bf53796ae4ecd59769f9944ad8c7d1cd3a5915b0956be99ec875b847b33c00",
|
|
206
206
|
"pipeline/multi-agent-refs/channels/pr.md": "a6d5244a3bf5cf5f15d961a07972c9917db98c436f1a9cfdfe6c3c3dba7d5b69",
|
|
207
207
|
"pipeline/multi-agent-refs/channels/wiki.md": "ba52c5efaedc067dd8456fe9076af694d7e3dae9bda621f1df65c9159cd422da",
|
|
@@ -212,7 +212,7 @@
|
|
|
212
212
|
"pipeline/multi-agent-refs/cross-cli-contract.md": "6cffb12e1aff14c50b01ba5597bb72a52cc207eae83ef285f76d4f5654e97179",
|
|
213
213
|
"pipeline/multi-agent-refs/features/analysis-jira.md": "5542735d39a96d288cf99d1dfe18ec30270d2777a260c80d74ab6e5121edc9fb",
|
|
214
214
|
"pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md": "1995fb86bee28600c727cd6c94f39da33efd67f2bce3092705b354f4b2cd3aad",
|
|
215
|
-
"pipeline/multi-agent-refs/features/base-branch-evidence.md": "
|
|
215
|
+
"pipeline/multi-agent-refs/features/base-branch-evidence.md": "7b875d61cf11ecc9119b440037be0e849931b0c00f4c102640590f7e59e1646b",
|
|
216
216
|
"pipeline/multi-agent-refs/features/code-graph.md": "dcdeb8f87da55e43d2bef10291e8a8b93ec3f880d995e8346809baa9d3a3011f",
|
|
217
217
|
"pipeline/multi-agent-refs/features/code-intelligence.md": "f115b9e983d8617e64208326a3c858b59b6c5e960caaf35f97ac13b16bfc4c59",
|
|
218
218
|
"pipeline/multi-agent-refs/features/cost-analysis.md": "42f1b90b41ef454f29ccfd3f93c959920f0e74cbca65e140695e9a30d6d90b87",
|
|
@@ -222,7 +222,7 @@
|
|
|
222
222
|
"pipeline/multi-agent-refs/features/external-context-injection.md": "8fcf5229f92276af7714638602ec4da076f9f3f0a170303e3c1e178f55e39863",
|
|
223
223
|
"pipeline/multi-agent-refs/features/jira-context.md": "6f6fe697451e061909aa125366defbcc0baae5cecd8341bfabbad09011256684",
|
|
224
224
|
"pipeline/multi-agent-refs/features/maturity-followup.md": "2a6166869101b00ea273b92e3fe1ea07b375a0190aaab6b42ff5691db3748eec",
|
|
225
|
-
"pipeline/multi-agent-refs/features/model-fallback.md": "
|
|
225
|
+
"pipeline/multi-agent-refs/features/model-fallback.md": "7ac6a048c3ac2c494fbe03b027850703dba0995dc9dc0c63ceb14e0a8c8925b2",
|
|
226
226
|
"pipeline/multi-agent-refs/features/package-manager.md": "b9e52f798f5dcba43abff1fe5cad8d5d5374058c9a6847c993975c665acab05a",
|
|
227
227
|
"pipeline/multi-agent-refs/features/plan-todos.md": "8780d80b4541daee2b05080759a0694ef7e6270abe9a4621deb92ec7bac94e8e",
|
|
228
228
|
"pipeline/multi-agent-refs/features/prior-fix-detection.md": "f194c444f1685bb103e1aa16164ca6737ba9910b7c8f89874924da950838b074",
|
|
@@ -230,10 +230,10 @@
|
|
|
230
230
|
"pipeline/multi-agent-refs/features/review-delta.md": "4fd2c3979c7a42b23350424294e96de43967d51ae86757369cdf7229e648636a",
|
|
231
231
|
"pipeline/multi-agent-refs/features/review-file-set.md": "a751888bce82a8e6970c9abe7f354c5c0704956e5278aeb091b893be0df5c1ef",
|
|
232
232
|
"pipeline/multi-agent-refs/features/review-multi-repo.md": "b0c45a9d67ccb85e7e245604830e40cce6f94d72e026dae980ea61dfe9fd6fc0",
|
|
233
|
-
"pipeline/multi-agent-refs/features/scope-check.md": "
|
|
233
|
+
"pipeline/multi-agent-refs/features/scope-check.md": "4f8844de8137256df4b83a5c54852353df1bbf7387c3f76f42e09058a04153b7",
|
|
234
234
|
"pipeline/multi-agent-refs/features/shadow-git.md": "d020c7b99a993eb11398d08e0518207b990b3ec3807fbcf0926c6cb304777ce9",
|
|
235
235
|
"pipeline/multi-agent-refs/features/skill-conformance.md": "e62c30cd36716f48a836a1372cfbd11e61b7dbc50be01ce0370c3acf5fc01427",
|
|
236
|
-
"pipeline/multi-agent-refs/features/stack-skill-routing.md": "
|
|
236
|
+
"pipeline/multi-agent-refs/features/stack-skill-routing.md": "8d45fb7331509411617d2bf5c42e752eaaa7ada24dcf38140f2710b28ab4fc0f",
|
|
237
237
|
"pipeline/multi-agent-refs/features/url-enrichment.md": "64af9f058ac5e7fbc662acb8839adf0d4cd67ee20db91e8f9a3b7a514bdb3eed",
|
|
238
238
|
"pipeline/multi-agent-refs/features/usage-reporting.md": "c65dcdac7ff4ec54578cdfce3b84e818eb122a40fced9bc10a5cdb5650e9e40d",
|
|
239
239
|
"pipeline/multi-agent-refs/features/verify-by-test.md": "6be89c7020ebdce6903e1f72cb74adeb5c4eb93a5f0e18c0b1b7c0cae619a42a",
|
|
@@ -250,9 +250,9 @@
|
|
|
250
250
|
"pipeline/multi-agent-refs/phases.md": "0f473c60622752eec60631f1c58232b345f938c4018226a012650f706921bbd7",
|
|
251
251
|
"pipeline/multi-agent-refs/phases/log-format.md": "e03a93239ee0f06048c1f22cacfc76d485b53285cbcebd4e2eb034a67f017b22",
|
|
252
252
|
"pipeline/multi-agent-refs/phases/modes.md": "1a735f9bbf6fa34129cbb9374113481ac39d13192e6cfece94895a2989e6c1f7",
|
|
253
|
-
"pipeline/multi-agent-refs/phases/operations.md": "
|
|
253
|
+
"pipeline/multi-agent-refs/phases/operations.md": "dc1628b2974584c0d9b14ff4ab27f9bdfa712621299c66efea92dcd0a4a53a5f",
|
|
254
254
|
"pipeline/multi-agent-refs/phases/phase-0-init.md": "335abcec15efc4da8b793fd4c311e39309000db0b3c6707e2e99ed5a876dc3fe",
|
|
255
|
-
"pipeline/multi-agent-refs/phases/phase-1-plan.md": "
|
|
255
|
+
"pipeline/multi-agent-refs/phases/phase-1-plan.md": "b3044205f1607732c3810153b0a269d87148278073fbf17704f35867f52c195c",
|
|
256
256
|
"pipeline/multi-agent-refs/phases/phase-2-dev.md": "43422b3b924b3083c44b811630286dc04e537fbfbc90a2a7bbefde1943d8cd78",
|
|
257
257
|
"pipeline/multi-agent-refs/phases/phase-3-review.md": "05572e7fbde68702c12721a19421b324d914bd45240e719a848f0a7d4f3a0214",
|
|
258
258
|
"pipeline/multi-agent-refs/phases/phase-4-commit.md": "da5ec29cefe75322dd474697f3f1c3e676b3981d2bdca66f04d0cb9f95db879f",
|
|
@@ -264,7 +264,7 @@
|
|
|
264
264
|
"pipeline/multi-agent-refs/readiness-review.md": "cdaea8291ed085ab938ac6e2a5b611d6ed4792c219e785ef925bf281a12ec5f6",
|
|
265
265
|
"pipeline/multi-agent-refs/refactor/observations.md": "7a63a7043bf1c42a78296ab082b1cace67fbcdf0078fec736fffd9af3147b6ce",
|
|
266
266
|
"pipeline/multi-agent-refs/refactor/toolkit-research.md": "1ef7f36345c5a7d2f6bb8529ef39e9e00865c6ca851aec942891bc2f8a57ea2b",
|
|
267
|
-
"pipeline/multi-agent-refs/rules.md": "
|
|
267
|
+
"pipeline/multi-agent-refs/rules.md": "a5fd1ba3628395e785b37f85aa4f09fd47c860838f6388f84e9016e02c7ceade",
|
|
268
268
|
"pipeline/multi-agent-refs/setup/app-store-connect.md": "6208a8125212e3ef44faf61236c5dd8ec3e8f71817fa477e8cd92415906a0759",
|
|
269
269
|
"pipeline/multi-agent-refs/setup/firebase.md": "a82031c67993762303a7ecd222e2574fbbf8d65dcc6b17e051a8dd53a9e31474",
|
|
270
270
|
"pipeline/multi-agent-refs/setup/repo-discovery.md": "1cee0cc448a6359c04a3b9dca6030ea69636e57b720a4a52169760ffd0559a1e",
|
|
@@ -320,7 +320,7 @@
|
|
|
320
320
|
"pipeline/schemas/prefs.schema.json": "1a5e041385d251fb62fa39771ca0a357b9ce2270d39fe0b3dd84c9fc0f4c8f7b",
|
|
321
321
|
"pipeline/schemas/review-file-exclusions.json": "2e8c44b45d21d2c82fc95aa2bf76ad3fbf2d5c68180c7b2ebf89c4a926688d77",
|
|
322
322
|
"pipeline/schemas/reviewer-output.schema.json": "1bc8dd8feb416ea2101457e071d72b5a6ab0aefa7da3d42063bbe1c153755754",
|
|
323
|
-
"pipeline/schemas/route-config.schema.json": "
|
|
323
|
+
"pipeline/schemas/route-config.schema.json": "6f606926c257b7ad3d2972e53d0b772714774140c473b9cb8c7cd9e52731020f",
|
|
324
324
|
"pipeline/schemas/scope-check.schema.json": "f96973c59372b36b7d68b9ac4b03490e7da8d54acf29a35947f5f610e82b98ea",
|
|
325
325
|
"pipeline/schemas/secret-patterns.json": "d9a7bec7b2ba704b73f2302c3498874c6298cde69bde0f181932c282d3fe0b0e",
|
|
326
326
|
"pipeline/schemas/skill-observation.schema.json": "05f16c6e5055ef99a102b12b578ba841251267d41dd7343f8ab66cd8070180ff",
|
|
@@ -347,13 +347,13 @@
|
|
|
347
347
|
"pipeline/scripts/autopilot-arming.mjs": "ef51d729c03c099898bd3479763085251896b1a1e2ce5c4336bab946a10522e7",
|
|
348
348
|
"pipeline/scripts/autopilot-intake.mjs": "5ccb1087039a35827c6e6ded0ab12c6a5ec8ce4ce7d52b113ab81414ae9bbad9",
|
|
349
349
|
"pipeline/scripts/autopilot-menubar.swift": "e2004ddc8b2592818b90b9ae75e9d250f83f33f2d56480bd0870ffe8d3ce0180",
|
|
350
|
-
"pipeline/scripts/autopilot-runner.mjs": "
|
|
350
|
+
"pipeline/scripts/autopilot-runner.mjs": "818d11701abea6bf12c13b015a0bf669d724533d522378e931b599f0277e12ba",
|
|
351
351
|
"pipeline/scripts/autopilot-status.sh": "e4643f2bce5bae4634771c414c60bb9b520bb878fdabb534e83206f911579c62",
|
|
352
352
|
"pipeline/scripts/base-branch-candidates.mjs": "c73a02033ed9f10c15b3aaf010432f0d4e429a75eba14731e9a64492e3fe3859",
|
|
353
|
-
"pipeline/scripts/build-references.mjs": "
|
|
353
|
+
"pipeline/scripts/build-references.mjs": "6998a67800e7263e0940a32ee9def5e6e4667a0149f5eae9dadd6ef4b5959fd0",
|
|
354
354
|
"pipeline/scripts/build-skills-index.mjs": "35b7ae8299db6a554064096ea34b476cb231b5f15bbf0dd86dd3b128399e9390",
|
|
355
|
-
"pipeline/scripts/build-stack-plugins.mjs": "
|
|
356
|
-
"pipeline/scripts/bulk-read.sh": "
|
|
355
|
+
"pipeline/scripts/build-stack-plugins.mjs": "b95a618afba167c24ef13ee39401b28b833c454e5c517adf82bd8e99b842a410",
|
|
356
|
+
"pipeline/scripts/bulk-read.sh": "f5f55e229b00b849a84e6b6015e3bba1f0cb59dba5fb011857d1ceaafe7ad614",
|
|
357
357
|
"pipeline/scripts/capture-evidence.sh": "2f7657786e07c17c302b76d4ea6bafe391b65be3dd891901b78019af3a7e38e1",
|
|
358
358
|
"pipeline/scripts/capture-flush.sh": "8fe8e130e59bacaa9f830a80504fc1495766f0cfbd5e7d995f7c19212326b5d5",
|
|
359
359
|
"pipeline/scripts/capture-resume.sh": "8fbe261310c139dd6fc9aa896a7f93953bdf44b5909607c8c16f59aad88e4296",
|
|
@@ -374,7 +374,7 @@
|
|
|
374
374
|
"pipeline/scripts/crush-json.mjs": "303382670f8f170c8c6710202853a2de2915625813cd157185f9be4e2b27258e",
|
|
375
375
|
"pipeline/scripts/diff-explain.mjs": "79137dafe5a3b90a5496611c215669f26d92ab070dc4a71f1d37ed095a49c471",
|
|
376
376
|
"pipeline/scripts/diff-risk-score.mjs": "b3e8da42fea1258162e40f4eb7809074831339b7563874527f7e825f7aa795ca",
|
|
377
|
-
"pipeline/scripts/doctor.mjs": "
|
|
377
|
+
"pipeline/scripts/doctor.mjs": "f1f821d21b37e694c4b1c2cbb3a7f7453d014c84b403f028fcefd0b36b26ddd6",
|
|
378
378
|
"pipeline/scripts/evidence-gate.mjs": "54bd99ad7ead241cdb9b6281994dac31695fd0c7cf92222249803abc1a48f78a",
|
|
379
379
|
"pipeline/scripts/feedback-send.mjs": "8ec3f8fcafbe0de6c916a13a151d009cb804522537621b239a183591dddeec85",
|
|
380
380
|
"pipeline/scripts/finding-fingerprint.mjs": "fa12ab10701db5d2bfff014e41d1cd4c0b2b772aee5fc69205de14b2761b0c83",
|
|
@@ -402,13 +402,13 @@
|
|
|
402
402
|
"pipeline/scripts/keychain.py": "8af71a5b50d3cafa439e270383a3f7d83bb236348544c1ec4522ca3ec8b74df6",
|
|
403
403
|
"pipeline/scripts/learn-from-transcripts.mjs": "337c4cf96728afebd3938276975b41925299485a357c0fe9cc10a22f95811945",
|
|
404
404
|
"pipeline/scripts/learning-curve.mjs": "d574eec427c7f37a7a77a9ef9e2499f50dadc2215a20ae24e31654afd3497f36",
|
|
405
|
-
"pipeline/scripts/learnings-ledger.mjs": "
|
|
405
|
+
"pipeline/scripts/learnings-ledger.mjs": "411bf80329a1c7700e5a523d5f0a7d1d3a716514f9656703bce67e26e71e0bb0",
|
|
406
406
|
"pipeline/scripts/localize-commands.mjs": "36bdc1e4f6f8d4d84150ca5d5fab3f2b54104d1f90903b36170b4dd756454a7f",
|
|
407
407
|
"pipeline/scripts/log-metric.sh": "e3169936284d957537f68634e2dac4f12dcb041943f8dd69dd495325ddabd2e3",
|
|
408
408
|
"pipeline/scripts/make-manifest.mjs": "db692c1bfcc0a7721ffb0b4d9ec57b74fadcaddf2821a32e222a4d4a513c425a",
|
|
409
|
-
"pipeline/scripts/match-skills.mjs": "
|
|
409
|
+
"pipeline/scripts/match-skills.mjs": "dd6c023a623ce6e9999f3eceaacd91f8d0c8ac621e3f025c8949e2203dc05bdf",
|
|
410
410
|
"pipeline/scripts/maturity-followup.mjs": "e26ec6c95b6e30e3e341c4e3baa865a65b3ee4d4367d4282290deabdbfdd70f2",
|
|
411
|
-
"pipeline/scripts/memory-load.sh": "
|
|
411
|
+
"pipeline/scripts/memory-load.sh": "c6a1976372ed033c9f3b55e757e22d05b4ef0d9774bfe185453d8847525b4a89",
|
|
412
412
|
"pipeline/scripts/memory-save.sh": "8caf85d47774f3e4beaed4a78dc730cd24175545f91625c3a393f1613787766b",
|
|
413
413
|
"pipeline/scripts/migrate-prefs.mjs": "3ed67c4ab9d7e1427d084d6626679113d55d02b9fe957b40c7c5485a3572566a",
|
|
414
414
|
"pipeline/scripts/migrate-state.mjs": "b6fb42f56ea56ab10c00e947f013e3aecaeef1aa0d819493eedbef7cdf7d4370",
|
|
@@ -420,7 +420,7 @@
|
|
|
420
420
|
"pipeline/scripts/phase-banner.sh": "acca704968d6263810de5804ea50a96b7aab7472ec98a7149d92b78b380d8fa0",
|
|
421
421
|
"pipeline/scripts/phase-tracker.sh": "c5e1a511656a2b96100ecf21fdf9a77ea42a3e446db5b0eb004e3b7f39c70dac",
|
|
422
422
|
"pipeline/scripts/phase0-exit-gate.mjs": "12eec91c89b0b859f681a0e322563935f9e730990f2f9ae864fd9ff3437bf8d9",
|
|
423
|
-
"pipeline/scripts/plan-coverage-gate.mjs": "
|
|
423
|
+
"pipeline/scripts/plan-coverage-gate.mjs": "ead8936fda3b7ea3a17f25b7f4ee4479ee98e78d28f9ecf11d21e3a5987284e8",
|
|
424
424
|
"pipeline/scripts/pre-commit-check.sh": "b6ed51b072370759c8481d47edd140afd1360c2f442f11acd574e3689292b58c",
|
|
425
425
|
"pipeline/scripts/pre-push-check.sh": "ff98e73d02aa75cfa9411c29c838241e8529e832e1421ca9c25c39aa07bcd968",
|
|
426
426
|
"pipeline/scripts/probe-evidence-capability.sh": "803213d8f566d3c6bda3afc074e99c11477e076894ec340e90ed6d5f7d328a58",
|
|
@@ -435,20 +435,20 @@
|
|
|
435
435
|
"pipeline/scripts/review-file-filter.mjs": "8b1fd9661b8d61b4282a4579ef360f952c827f90520b69ffde4770fdaeaaa05b",
|
|
436
436
|
"pipeline/scripts/review-scope.mjs": "60be90f1dce0a87071695bbedf17eb4e8600b1c742b97aef8cbea41802315b93",
|
|
437
437
|
"pipeline/scripts/routine-registry.mjs": "23973f361c71988a699d33bbc649c3e009a76082962cb1f22bdfcbe6efa85b04",
|
|
438
|
-
"pipeline/scripts/run-aggregator.mjs": "
|
|
438
|
+
"pipeline/scripts/run-aggregator.mjs": "6630242733c662167bb21da7da06298ed0e724aecc135d5fd97d7ed1b9bd02f3",
|
|
439
439
|
"pipeline/scripts/run-metrics.mjs": "6db53f3814a992c1f23beae7a54c84310be5af8e84dbff5a6768a91169152f02",
|
|
440
440
|
"pipeline/scripts/run-ui-tests.sh": "5f1cb05ab0b387f9b89d8f34a0f60182906f0ca27cca4d41926b7217eee86bc5",
|
|
441
|
-
"pipeline/scripts/runs-index.mjs": "
|
|
441
|
+
"pipeline/scripts/runs-index.mjs": "4040e2b381df3411fcf2f170c8c0ad0e2dfad66afd92367e63dc2cc5c3982a4c",
|
|
442
442
|
"pipeline/scripts/scan-agent-config.sh": "41dbd995de799f599dc365ea8cfe55542c48c7387c4f94a596a1e6feec278168",
|
|
443
443
|
"pipeline/scripts/scan-skills.sh": "85765b7ec15af13ade5c9ccedd88329c19b11a627e8df6dccd4839e95361dfb7",
|
|
444
|
-
"pipeline/scripts/scope-check-gate.mjs": "
|
|
444
|
+
"pipeline/scripts/scope-check-gate.mjs": "a71b736b1283b6b99fcca23ae2159e9fb134e1e65dbfec1e66d63a5cc20582f4",
|
|
445
445
|
"pipeline/scripts/scorecard-snapshot.mjs": "320fb2c811e085451d152997e6b5ee54fa0d14d374d9592ac7880443c5d02ae3",
|
|
446
446
|
"pipeline/scripts/search-logs.sh": "af0ce9b75edd359cc93dd678d35b15eb9bb0f14a4b044d8e4d639f8cdb82c76f",
|
|
447
447
|
"pipeline/scripts/sign-skills.sh": "779355dcf8ce383959e9a3c6093f46660a0875e83a805b7a67983acc8551cb59",
|
|
448
448
|
"pipeline/scripts/skill-conformance.mjs": "4adc30335e8a194ac13b23c442559efbd8aa4113356d2094f07b5ac660a94946",
|
|
449
449
|
"pipeline/scripts/skill-siblings.mjs": "b3ea1f8cc059711f1a33a575dd2d63cd16f8922952bd400064ff62e5ddc44de3",
|
|
450
450
|
"pipeline/scripts/smoke-cross-cli-behavior.sh": "4f7eac25003e0c9bb483d475814f1caf6e04cd18ea1543be432df12daeffd9ec",
|
|
451
|
-
"pipeline/scripts/smoke-schema-validation.sh": "
|
|
451
|
+
"pipeline/scripts/smoke-schema-validation.sh": "37519dd51015130b01ed3f92a986794e308f758504df90cef047e54be5c9684a",
|
|
452
452
|
"pipeline/scripts/test-gap-rules/android.json": "367da48a14036a102fb422206fbc877cd52548fe34a6ff8565a503df2421bce5",
|
|
453
453
|
"pipeline/scripts/test-gap-rules/go.json": "1de067f47b13d539ce00d0b0cb32c050a4805c255533cb5af1b1645777125e2f",
|
|
454
454
|
"pipeline/scripts/test-gap-rules/ios.json": "212da713f7274cb3ae051e1ef06f93376f7ff1806487c10b504a4a2da0cf5196",
|
|
@@ -463,8 +463,8 @@
|
|
|
463
463
|
"pipeline/scripts/update-check.sh": "327a02306884093d2b93f395d2c297d5dc6b0c59757a740004bfafb13616fef0",
|
|
464
464
|
"pipeline/scripts/update-issue-progress.sh": "7a77d9e5bd60ffad06f3cc41088e1b1d49b4dc2842f287b7f6ba6023d7bd1a52",
|
|
465
465
|
"pipeline/scripts/usage-register.mjs": "72e4460b728c382afb35cc9266059e176155838bd762833d48ae19b99bc864f2",
|
|
466
|
-
"pipeline/scripts/usage-report.mjs": "
|
|
467
|
-
"pipeline/scripts/validate-analysis-doc.mjs": "
|
|
466
|
+
"pipeline/scripts/usage-report.mjs": "a8e1ba87872530df0a2e6cc86c18ec680dd22e38532bb92566bf44c362f13097",
|
|
467
|
+
"pipeline/scripts/validate-analysis-doc.mjs": "ae56b7578ef51e008a99f84eba9def3e0f1dd2bd87a3880f2083aa98b365f7a1",
|
|
468
468
|
"pipeline/scripts/validate-analysis.mjs": "d2dc9ccf45f6ca2702908761939edd830d18b3b273016a4b449f26fe285d5ea1",
|
|
469
469
|
"pipeline/scripts/validate-code-graph.mjs": "0ceac2f5b59f641334d54dc30bee5265361fb5fe1fc97e2f9791b546efe79941",
|
|
470
470
|
"pipeline/scripts/validate-complaint-doc.mjs": "5a4de279a481a04e96aa1eebce6431e0679ae49a084dfc55541d77c61fad6ecb",
|
|
@@ -479,8 +479,8 @@
|
|
|
479
479
|
"pipeline/scripts/verify.mjs": "2d06091b919fd3db073a0b101ed4752baf08815b974e7a713272f54cab479acb",
|
|
480
480
|
"pipeline/scripts/website-deploy-commit.sh": "523482438b265ca1f1883ec5fb450e803566a1239eaccdc423e12c5426140a84",
|
|
481
481
|
"pipeline/scripts/worktree-finalize.sh": "f905ba69272d32afc75b5deb8406efabfe0865bdeec2e150a521d5a1b0c51b8a",
|
|
482
|
-
"pipeline/scripts/write-state.mjs": "
|
|
483
|
-
"pipeline/skills/.skill-manifest.json": "
|
|
482
|
+
"pipeline/scripts/write-state.mjs": "5552665f05c16edae63f038baee0390d5fa69396535d29e6b46ff87f6182786f",
|
|
483
|
+
"pipeline/skills/.skill-manifest.json": "b98885ef5127339b369e086bf0f4a5dc3808412b4e36f5a21964a283c1790ab6",
|
|
484
484
|
"pipeline/skills/.skills-index.json": "05545f7603267576f614d6eedd0369bfcf5b8d1aadbf4c791295559f930b4bb2",
|
|
485
485
|
"pipeline/skills/shared/README.md": "12692c36caaf2f4567cf21b788dad66e1bc34cae345dc8045e0569834b819414",
|
|
486
486
|
"pipeline/skills/shared/core/apple-archive-compliance/SKILL.md": "6675a53441f2f3bedc82284998f402bd51fa251c7491a595e12c6c4016830337",
|
|
@@ -495,7 +495,7 @@
|
|
|
495
495
|
"pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md": "065958fb3ff608d7d0ea36b3eef4614da442742dc69b00799cf1658848cee786",
|
|
496
496
|
"pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md": "7446424d3dd480751358a0e3de917f3d22bb4f1ce6dec1b99217877c6b217e76",
|
|
497
497
|
"pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md": "91b807e8a4a211d88b2f0d6cb30c2ba5cdbb0abf6983fbd3dfeb5778e94a8c1a",
|
|
498
|
-
"pipeline/skills/shared/core/multi-agent-channels/SKILL.md": "
|
|
498
|
+
"pipeline/skills/shared/core/multi-agent-channels/SKILL.md": "e4f59e784d77018326e719632ef371e50e9fb9af61318a7d5bf713c386c0fd3f",
|
|
499
499
|
"pipeline/skills/shared/core/multi-agent-complaint-analysis/SKILL.md": "2fe393b49155155e44f722d4942dec677152bfb012e2337c6521d41d87be1d69",
|
|
500
500
|
"pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md": "b1890c3c60ca3af73108ed83a7fbf35338e261520e0feade5cc9d99ecb6eb878",
|
|
501
501
|
"pipeline/skills/shared/core/multi-agent-design-check/SKILL.md": "28efc8b47d3d3fc052b91c7083870d2e7a3d604f65c5d476b9a21ba382e051e0",
|
|
@@ -547,7 +547,7 @@
|
|
|
547
547
|
"pipeline/skills/shared/core/multi-agent-testflight-validation/SKILL.md": "0f770a279e12a5edf73cb947ca2d128c013c78646d983c3d4bdfe722a4a990ef",
|
|
548
548
|
"pipeline/skills/shared/core/multi-agent-uninstall/SKILL.md": "b7940b4ab305ac8bcdc1798dbc0d56e96018ba6959566657878b6a583dc6183d",
|
|
549
549
|
"pipeline/skills/shared/core/multi-agent-update/SKILL.md": "8a0b089ea5c0d81813dc936d8b9d012f956e6381f71e025ca8878e538a8e9303",
|
|
550
|
-
"pipeline/skills/shared/core/multi-agent/SKILL.md": "
|
|
550
|
+
"pipeline/skills/shared/core/multi-agent/SKILL.md": "7ea676d07cd0104cc929b825463c521aff66047c6dcdfc28e9e37ca3752107da",
|
|
551
551
|
"pipeline/skills/shared/external/NOTICE-dimillian-skills.md": "402a96240476446ac284e1cf7c64ed66a7bc1119e92464bb632e737176aa494a",
|
|
552
552
|
"pipeline/skills/shared/external/NOTICE-swift-ios-skills.md": "a2b150f2ad92ee4564d5bec2681d5b7943e8fddbf5eaab8fcdbece722e626a03",
|
|
553
553
|
"pipeline/skills/shared/external/NOTICE-xcode-build-skills.md": "1c9c1790d3173928dae0964f653583936d0b40cb7a7fe6b732f132b104fef3ef",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "19.1.
|
|
3
|
+
"version": "19.1.4",
|
|
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",
|
|
@@ -70,10 +70,10 @@ per-field matrix in `$HOME/.claude/multi-agent-refs/rules.md` ("Language Applica
|
|
|
70
70
|
English. Wizard status and the post-setup summary follow `outputLanguage`. External
|
|
71
71
|
payloads remain English.
|
|
72
72
|
|
|
73
|
-
>
|
|
74
|
-
>
|
|
75
|
-
>
|
|
76
|
-
>
|
|
73
|
+
> `promptLanguage` governs only the button and chip chrome, never the question a
|
|
74
|
+
> user reads. Rendering a whole prompt in English "per the fixed
|
|
75
|
+
> `promptLanguage`" contradicts the matrix above and produces half-English
|
|
76
|
+
> pickers on Turkish runs.
|
|
77
77
|
|
|
78
78
|
### Step 0.5 - Dependency check
|
|
79
79
|
|
|
@@ -188,10 +188,10 @@ file can do: the static package audit, the store's own validator, and a policy
|
|
|
188
188
|
review against repo source. It merges both halves into one severity-grouped report
|
|
189
189
|
and offers the `/multi-agent:channels` follow-up.
|
|
190
190
|
|
|
191
|
-
The archive-compliance audit
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
no Gate 3 and no Android parity
|
|
191
|
+
The archive-compliance audit is NOT repeated here. Invoking `ios_app_store_audit`
|
|
192
|
+
with the arguments the store-ready command's Gate 1 already uses would put two
|
|
193
|
+
copies of one call in the tree, which is how a second door opens with no Gate 2,
|
|
194
|
+
no Gate 3 and no Android parity behind it.
|
|
195
195
|
|
|
196
196
|
**No argument (full test):**
|
|
197
197
|
|
|
@@ -22,10 +22,16 @@
|
|
|
22
22
|
#
|
|
23
23
|
# Layer 1 an Anthropic rung. Reachable from every call site, because it
|
|
24
24
|
# writes to a seam that already exists and opens no new network path.
|
|
25
|
-
# Layer 2 a non-Anthropic rung.
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
#
|
|
25
|
+
# Layer 2 a non-Anthropic rung. NO call site can dispatch to one today, and
|
|
26
|
+
# the router refuses it rather than returning a rung its caller will
|
|
27
|
+
# hand to a CLI that does not know the name:
|
|
28
|
+
# - a subagent is dispatched by the HOST;
|
|
29
|
+
# - bulk-read shells out to `claude -p --model <rung>`;
|
|
30
|
+
# - research_ask runs in the MCP server and picks its own model.
|
|
31
|
+
# `provider` in cost-table.json is what makes this checkable, and it
|
|
32
|
+
# is the seam a future call site would use. Until one exists, the
|
|
33
|
+
# refusal is the honest answer: an allowed rung nothing can honour is
|
|
34
|
+
# a rule the user believes worked.
|
|
29
35
|
|
|
30
36
|
set -uo pipefail
|
|
31
37
|
|
|
@@ -124,12 +130,12 @@ for rung in $MATCH; do
|
|
|
124
130
|
echo "model-dispatch: rule prefers 'fable' but modelFallback.fableEnabled is false; skipping it" >&2
|
|
125
131
|
continue
|
|
126
132
|
fi
|
|
127
|
-
if [ "$PROVIDER" != "anthropic" ]
|
|
128
|
-
# The honest limit, said out loud at the moment it bites.
|
|
129
|
-
#
|
|
130
|
-
#
|
|
131
|
-
#
|
|
132
|
-
echo "model-dispatch: rung '$rung' is $PROVIDER and
|
|
133
|
+
if [ "$PROVIDER" != "anthropic" ]; then
|
|
134
|
+
# The honest limit, said out loud at the moment it bites. Every call site
|
|
135
|
+
# that asks here hands the rung to something that only speaks the Anthropic
|
|
136
|
+
# ladder, so returning an external rung would produce a failed call rather
|
|
137
|
+
# than a cheaper one.
|
|
138
|
+
echo "model-dispatch: rung '$rung' is $PROVIDER and no call site can dispatch to one yet; skipping it" >&2
|
|
133
139
|
continue
|
|
134
140
|
fi
|
|
135
141
|
record "$rung" "rule matched"
|
|
@@ -46,7 +46,7 @@ behind.
|
|
|
46
46
|
### Full list
|
|
47
47
|
|
|
48
48
|
1. **One feature per run.** Every Figma URL, Confluence page, Jira ID, and Standards source the user supplies belongs to the **same feature**. The command never asks "which feature is this for?" or "which URL is primary?". Mixed inputs covering multiple features are treated as user error: surface the conflict, stop, and ask the user to split into separate runs.
|
|
49
|
-
2. **Section omission rule.** Sections with zero evidence are dropped entirely; no `TBD` placeholder section. **A rendered section keeps its canonical template number**, so the set has gaps and that is correct: `1, 2, 4, 9, 13, 14, 21` is a valid rendered document.
|
|
49
|
+
2. **Section omission rule.** Sections with zero evidence are dropped entirely; no `TBD` placeholder section. **A rendered section keeps its canonical template number**, so the set has gaps and that is correct: `1, 2, 4, 9, 13, 14, 21` is a valid rendered document. Numbering does NOT re-flow sequentially `1..N`: that cannot hold alongside Locked 30, which threads ids across sections BY NUMBER (`Section 15.1 scenario`, `Section 4.4`, `Section 3/5 layout cells`), so a re-flowed document sends every one of those cross-references to the wrong section or to nothing. What IS checked: every rendered number is a real template number, and the numbers ascend without repeating.
|
|
50
50
|
3. **Citation discipline.** Every quoted UI string, endpoint path, error code, or analytics event name in Sections 2-4 must carry an inline citation: `[Figma annotation <nodeId>]` for copy taken from a Dev Mode annotation, `[Figma <nodeId>]` (MCP) or `[figma-export: <project-slug>/<screen-slug>:<nodeId>]` (local source) for design strings; `file:line` for repo evidence; `Confluence:<pageId>:<heading-slug>` for spec text. **Annotation-as-copy precedence:** when the project's `figma-config` has `annotations.enabled` and a node carries a Dev Mode annotation, that annotation is the authoritative copy for the node and the visible text layer is treated as a placeholder; cite the annotation, not the layer text. Never invent copy - blank beats a guess; a node whose annotation has the base language but is missing a target language emits a Section 20 (Risks) row rather than a fabricated value. Uncited quotes are downgraded to `[label TBD - see Open Questions]` and a row is added to Section 7 Risks. Subagent prose and Code Connect snippets are not citations.
|
|
51
51
|
4. **The spec is forward-looking.** Section bodies describe the new feature as drawn / specified. Findings that exist only in legacy code or the existing branch appear as `> Legacy reference: <text> (file:line)` blockquotes inside the relevant section, never as the lead sentence or a primary table row. A legacy-only finding with no forward counterpart goes to Section 7 Risks as a decision item: "current code does X; should the new feature keep, change, or drop this?".
|
|
52
52
|
5. **Output default = Local file.** The Phase 3.5 output picker keeps `Local file` pre-selected. Confluence and Jira outputs are never default-selected (see `analysis-output-confluence-on-request` memory).
|
|
@@ -76,7 +76,7 @@ behind.
|
|
|
76
76
|
27. **SwiftUI Preview block mandatory (iOS projection, SwiftUI only).** When the iOS file is produced AND the affected view is a SwiftUI view (detected via `import SwiftUI` + `: View` protocol conformance in `evidence.repoEvidence[<repo>].buckets.uiComponents`), Section 13.6 renders a Preview block table covering at minimum: canonical default (LTR Light), Dark, RTL, Dynamic Type accessibilityLarge, and one error variant. Loading state and edge-case variants are added when distinct from canonical. UIKit-only features (no SwiftUI view artefact) drop Section 13.6 with note `(N/A: UIKit-only feature)`. Preview macro convention (`#Preview` for Swift 5.9+ vs legacy `PreviewProvider`) is read from `evidence.conventions[<repo>].previewMacro`. Each Preview variant listed in Section 13.6 must have a matching row in Section 15.2 Snapshot Tests; a Preview without a snapshot row triggers a Section 20 Risk.
|
|
77
77
|
28. **Variant usage explicit and bounded.** Section 6 inventory rows list which variants this feature consumes per component (concrete enum case + bool value). New Section 6.X (Variant Usage Matrix) catalogues the full variant axis vs. used subset with a rationale per excluded variant. Sections 13.6 (Preview) and 15.2 (Snapshot) cover only the used subset; expanding the variant set requires updating Section 6.X first.
|
|
78
78
|
29. **Analysis as self-contained design bridge - no MCP outside analysis phase (BLOCKING, pipeline-wide).** The analysis document is the sole design source for every downstream phase. After Phase 1 of `/multi-agent:analysis` produces `analysis/<feature>-<platform>.md`, Phase 1 Plan, Phase 2 Dev, Phase 3 Review, Phase 3 Review, Phase 4 Commit, and Phase 5 Report consume only the analysis document plus repo Code Connect mappings (`*.figma.swift` / `*.figma.kt`). Calling `mcp__claude_ai_Figma__*`, hitting `api.figma.com`, or fetching a `figma.com/design/...` URL during Phase 2+ is a violation. Applies to every mode that runs Phase 2+: `/multi-agent`, `/multi-agent:autopilot`, `/multi-agent:local`, `/multi-agent:local-autopilot`, at either depth. Hard requirement (v9.0.0): Phase 2 Pre-item and Phase 3 Pre-item (BLOCKING) abort the run when the analysis document is missing. Memory: `[[mcp-only-in-analysis]]`. Generic rule rationale and access matrix: see `$HOME/.claude/rules/figma-pipeline.md` "MUST: No MCP outside analysis phase".
|
|
79
|
-
30. **Business-rule to acceptance-criterion to test traceability (AI + human spine).** The analysis is a development handoff that both an AI implementer and a human reviewer must act on, so it is bound by one shared-ID vocabulary. Every business rule carries a stable id `BR-<slug>-NN` (Section 4.4). Each rule maps to at least one acceptance criterion written Given / When / Then (binary - two readers must not be able to disagree on pass/fail). Each acceptance criterion maps to unit-test scenarios in Section 15.1, one row per case across happy / boundary / error / empty-nil (enumerate at least the failure modes; agents hallucinate error handling when it is omitted). The same ids thread onward: Section 15.6 UI-test flows reference the `BR-` ids and use stable selectors (accessibilityIdentifier / testTag), Section 16 accessibility items reuse those identifiers, Section 11 analytics events cite their triggering rule or story, and Section 3/5 layout cells carry token + Figma node refs. Never invent copy or values (blank beats a guess; a missing source becomes a Section 20 Open Question). **Gate:** a business rule with no acceptance criterion, or an acceptance criterion with no Section 15.1 scenario, fails the dispatch gate. There is no mode clause
|
|
79
|
+
30. **Business-rule to acceptance-criterion to test traceability (AI + human spine).** The analysis is a development handoff that both an AI implementer and a human reviewer must act on, so it is bound by one shared-ID vocabulary. Every business rule carries a stable id `BR-<slug>-NN` (Section 4.4). Each rule maps to at least one acceptance criterion written Given / When / Then (binary - two readers must not be able to disagree on pass/fail). Each acceptance criterion maps to unit-test scenarios in Section 15.1, one row per case across happy / boundary / error / empty-nil (enumerate at least the failure modes; agents hallucinate error handling when it is omitted). The same ids thread onward: Section 15.6 UI-test flows reference the `BR-` ids and use stable selectors (accessibilityIdentifier / testTag), Section 16 accessibility items reuse those identifiers, Section 11 analytics events cite their triggering rule or story, and Section 3/5 layout cells carry token + Figma node refs. Never invent copy or values (blank beats a guess; a missing source becomes a Section 20 Open Question). **Gate:** a business rule with no acceptance criterion, or an acceptance criterion with no Section 15.1 scenario, fails the dispatch gate. There is no mode clause. Suspending the rule for a lighter mode defers the rule-to-test half to "whenever the feature is later analyzed in Full" - a debt nothing tracks and nothing ever paid. Section 15 renders when there is evidence for it and is dropped when there is not, like every other section, and the gate applies to whatever was rendered.
|
|
80
80
|
|
|
81
81
|
31. **Analysis profile selected at intake.** `state.analysisSpec.profile` is `global` (default) or `corporate`, asked once at Phase 0 Step 1b and never re-asked mid-run. `global` renders `$HOME/.claude/multi-agent-refs/analysis-template.md` (23 sections, development handoff). `corporate` renders `$HOME/.claude/multi-agent-refs/analysis-template-corporate.md` (requirements document: `IG -> UC -> FG` spine, three traceability matrices, current-to-target state with impact analysis, then Technical Analysis and Development Analysis). **Both profiles read the same `state.analysisSpec.evidence.*`** - intake, fetching, repo evidence and convention extraction are shared and profile-independent; only the projection differs. This is what keeps the two templates from drifting into two products. One run emits one profile: rendering both from a single run would produce two documents describing the same feature, and the next reader would have to decide which one is current. When only one profile is available (`prefs.global.analysisProfiles` lists one, or the corporate profile has no binding configuration), the step auto-resolves and prints its breadcrumb with the resolution noted, per the picker contract.
|
|
82
82
|
32. **Corporate backbone always renders.** In the `corporate` profile the Locked 2 omission rule is replaced for Part A and the footer: those sections render even with zero evidence, carrying `N/A` when the section is genuinely out of scope for the feature and `EKLENECEK` when evidence is expected but missing. This is the point of a requirements document - a reader has to be able to tell "we considered hardware needs and there are none" from "nobody looked". Every `EKLENECEK` emits a matching Section 20 Risks and Open Questions row naming what is missing and who can answer it; an `EKLENECEK` with no such row fails the dispatch gate, because an unanswered question nobody owns is how a placeholder reaches production. **Missing inputs never block the run**: the corporate source practice of halting until every input arrives is deliberately not adopted - the document is produced with `EKLENECEK` in the gaps and the gaps are raised in Section 20. Part B follows the global omission table unchanged. In the `global` profile Locked 2 applies as written, with no placeholder of any kind.
|
|
@@ -50,9 +50,9 @@ it is the PR body (`channels/pr.md`).
|
|
|
50
50
|
A `gaps[]` entry prints its reason on the line where the artefact would have been (`Düzeltme öncesi: ticket'ta görsel yok`). Never an empty thumbnail, never a silent omission. Contract: `$HOME/.claude/multi-agent-refs/features/visual-evidence.md`.
|
|
51
51
|
|
|
52
52
|
**`test_scenarios`** - one titled scenario per acceptance criterion, each a
|
|
53
|
-
numbered list of steps ending in the expected result. Given/When/Then
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
numbered list of steps ending in the expected result. Not Given/When/Then: it
|
|
54
|
+
reads as translated English to the person who actually runs these, and a tester
|
|
55
|
+
wants a list they can follow with the app open.
|
|
56
56
|
The heading and the text render in `outputLanguage`; this file shows the English
|
|
57
57
|
skeleton:
|
|
58
58
|
|
|
@@ -176,7 +176,7 @@ The parenthesised forms are the ones that actually bite: `(x)` in a comparison t
|
|
|
176
176
|
|
|
177
177
|
The program runs AFTER the markdown conversion above and BEFORE the POST. Order is load-bearing in both directions: run it earlier and the conversion re-introduces sequences behind it; skip it and `{{...}}` monospace does not save you, because Jira parses emoticons inside monospace too.
|
|
178
178
|
|
|
179
|
-
Do not hand-apply this table.
|
|
179
|
+
Do not hand-apply this table. A long comment gives the eye no reason to stop on the `:)` at the end of a selector, so the program applies it or nothing does.
|
|
180
180
|
|
|
181
181
|
Lines outside these patterns pass through verbatim. Multi-paragraph blocks are joined with one blank line.
|
|
182
182
|
|
|
@@ -224,10 +224,10 @@ That script escapes every body unconditionally (`lib/jira-publish.sh:109`) and
|
|
|
224
224
|
passes the token through a `-K` config rather than argv, so neither the escape
|
|
225
225
|
nor the token handling depends on an agent remembering a step.
|
|
226
226
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
selector `hash(into:)` as `hash(into`
|
|
230
|
-
|
|
227
|
+
Not a hand-written `jq` + `curl` pair with the escape as a separate `--check`
|
|
228
|
+
line above it. In that shape the escaper is present, correct, and simply not run
|
|
229
|
+
on the POST path: a Swift selector such as `hash(into:)` renders as `hash(into`
|
|
230
|
+
plus a smiley, because `:)` reaches Jira intact and
|
|
231
231
|
Jira's wiki renderer turned it into an emoticon, which is what section
|
|
232
232
|
*Emoticon escaping* below is about. A defence that has to be invoked by hand is
|
|
233
233
|
a defence that is eventually not invoked.
|
|
@@ -97,8 +97,8 @@ GitHub's analogue is the milestone title, read the same way.
|
|
|
97
97
|
|
|
98
98
|
## 2b. A filter is not a ranking
|
|
99
99
|
|
|
100
|
-
Step 3's rule-5 list
|
|
101
|
-
|
|
100
|
+
Step 3's rule-5 list is NOT narrowed with `grep -E '(develop|release|main|master)'`.
|
|
101
|
+
That is the prefix table this whole feature exists not to have - and worse than a
|
|
102
102
|
table, because it DISCARDS. A repo whose release branches read `stabilise-2.7`
|
|
103
103
|
matched none of the four words, so none of its branches reached the picker, the
|
|
104
104
|
convention-learner had nothing to learn from, and the version on the issue could
|
|
@@ -193,13 +193,17 @@ Two limits are enforced by the script rather than written here and hoped for:
|
|
|
193
193
|
- **A rule may not turn the fable rung on.** With `modelFallback.fableEnabled`
|
|
194
194
|
false, a rule preferring `fable` falls past it to the next rung. Otherwise
|
|
195
195
|
`/multi-agent:model off` would have a second door.
|
|
196
|
-
- **
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
196
|
+
- **Every call site stays inside the Anthropic ladder.** No call site can
|
|
197
|
+
dispatch to another provider today: a subagent is dispatched by the host,
|
|
198
|
+
`bulk-read.sh` shells out to `claude -p --model <rung>`, and `research_ask`
|
|
199
|
+
runs in the MCP server and picks its own model. A rule preferring an external
|
|
200
|
+
rung falls to the next rung the rule named, and the script says why on stderr.
|
|
201
|
+
Returning the external rung instead would hand a caller a name it passes
|
|
202
|
+
straight to a CLI that does not know it - a failed call, not a cheaper one.
|
|
203
|
+
`provider` in `cost-table.json` is what makes the refusal checkable and is the
|
|
204
|
+
seam a future call site would use; `smoke-model-dispatch.sh` asserts that
|
|
205
|
+
`bulk-read.sh` still dispatches through the Anthropic CLI, so the day that
|
|
206
|
+
changes, the gate says the refusal may be lifted.
|
|
203
207
|
|
|
204
208
|
The script never fails and never returns an empty rung: a missing preferences
|
|
205
209
|
file, a missing `jq`, unparseable JSON, an out-of-scope call site and a rung
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Feature: Scope self-check (Phase 2 Step 3.7)
|
|
2
2
|
|
|
3
|
-
**Pattern**: Phase 3 reconstructs everything from the diff. The one thing it cannot reconstruct is why each file was touched and what was left out on purpose, so Dev states both before the handoff, and a deterministic gate checks the statement against the real diff. The record also carries the code-simplifier rationales (Step 3.6) that
|
|
3
|
+
**Pattern**: Phase 3 reconstructs everything from the diff. The one thing it cannot reconstruct is why each file was touched and what was left out on purpose, so Dev states both before the handoff, and a deterministic gate checks the statement against the real diff. The record also carries the code-simplifier rationales (Step 3.6) that would otherwise be discarded, and it feeds two later consumers: the `<scope-self-check>` block in the Phase 3 reviewer prefix and the PR body in Phase 4.
|
|
4
4
|
|
|
5
5
|
## The record
|
|
6
6
|
|
|
@@ -41,7 +41,7 @@ Nothing enabled is not an error: a repo whose stack was never selected legitimat
|
|
|
41
41
|
no toolkit. Record the no-op with the enabled set that was read, so "none applied" is
|
|
42
42
|
distinguishable from "never looked".
|
|
43
43
|
|
|
44
|
-
**Not enabled is not an error here**, unlike component dispatch: a repo whose stack was never selected legitimately has no toolkit, and halting would make the pipeline unusable there. Record the no-op and continue.
|
|
44
|
+
**Not enabled is not an error here**, unlike component dispatch: a repo whose stack was never selected legitimately has no toolkit, and halting would make the pipeline unusable there. Record the no-op and continue. Every stack now has a toolkit, so "no toolkit" means the stack was never selected, not that none exists for it.
|
|
45
45
|
|
|
46
46
|
Two marketplaces may ship the same toolkit name (a public one and a corporate one). Resolve whichever is enabled and record its **name and version** in the ledger entry, because the routing table and the skill set differ between versions - a finding that cites a skill has to be traceable to the version that defined it.
|
|
47
47
|
|
|
@@ -176,7 +176,7 @@ This keeps orchestrator context lean and enables programmatic routing.
|
|
|
176
176
|
bash $HOME/.claude/scripts/capture-flush.sh --state "$STATE_FILE" --quiet
|
|
177
177
|
```
|
|
178
178
|
|
|
179
|
-
The durable stores
|
|
179
|
+
The durable stores are NOT written only in Phase 5, which is the phase a run is LEAST likely to reach: a run killed in Phase 2 threw away every finding it had established, and the next run on the same repo paid to rediscover it. The flush is idempotent (the second call through writes 0 rows), costs no API tokens, calls no model, and never fails the transition. Phase 5 is now the LAST flush rather than the only one. The trigger is deliberately mechanical - a phase transition, not a model noticing that a moment qualifies.
|
|
180
180
|
- *Compaction trigger.* If conversation context exceeds ~50%, run `/compact` preserving "modified files, plan, open review findings, current phase + sub-step" before continuing. Don't wait for auto-compaction near the limit - it triggers exactly when context is worst and is lossy. After compaction, re-read `agent-state.json` AND the latest `## Handoff` block in `agent-log.md` to re-ground.
|
|
181
181
|
|
|
182
182
|
**Handoff block (v10.8.0)**: the structured artifact the phase-boundary checkpoint appends to `agent-log.md`. Written by the orchestrator from state it already holds - no agent dispatch, no extra LLM call. Cap at ~15 lines; the latest block is authoritative (earlier ones are history). This is the fresh-context re-entry contract: a resume or post-compaction session rebuilds working context from the latest handoff + `agent-state.json` + git log, never from conversation memory.
|
|
@@ -412,9 +412,9 @@ and stored, only invisible.
|
|
|
412
412
|
printf '%s' "$PLAN_JSON" | bash "$HOME/.claude/lib/plan-todos.sh" set "$TASK_ID" -
|
|
413
413
|
```
|
|
414
414
|
|
|
415
|
-
`set` accepts a planning-output document and converts it itself.
|
|
416
|
-
|
|
417
|
-
|
|
415
|
+
`set` accepts a planning-output document and converts it itself. Writing the
|
|
416
|
+
conversion out here too would make the `tasks[]`-to-`todos[]` mapping a thing two
|
|
417
|
+
files define, and the copy in prose is the one nothing tests.
|
|
418
418
|
|
|
419
419
|
Phase 2 (Dev) then iterates with `plan-todos.sh next "$TASK_ID"` until empty, calling `start` before each step and `complete` (with notes) or `fail`/`skip` after. Phase 3 (Review) reads the Todo list to verify all `completed` items map to diff hunks. Phase 5 (Report) renders `list` into the agent-log + PR body.
|
|
420
420
|
|
|
@@ -215,7 +215,7 @@ Per Locked decision 30 of `/multi-agent:analysis` and the parallel rule in `$HOM
|
|
|
215
215
|
|
|
216
216
|
The ban is **Figma**-shaped, not MCP-shaped: the multi-agent-toolkit MCP (simulator, screenshot, xcodebuild, accessibility) is unaffected in every phase, and `smoke-no-mcp-in-dev-phases.sh` agrees - it matches `figma` in the tool name and nothing else. A bare "MCP forbidden" has been read as banning the screenshot and UI-test tools, which is how a run reaches Phase 5 with no evidence.
|
|
217
217
|
|
|
218
|
-
The per-phase matrix (which phase may fetch Figma, and what its sole design source is instead) lives in `rules/figma-pipeline.md` "Phase access matrix". It
|
|
218
|
+
The per-phase matrix (which phase may fetch Figma, and what its sole design source is instead) lives in `rules/figma-pipeline.md` "Phase access matrix". It is not restated here, per this file's own instruction two paragraphs above not to duplicate that rule file. Violation of either copy: `smoke-no-mcp-in-dev-phases.sh` fails the run.
|
|
219
219
|
|
|
220
220
|
Memory: [[mcp-only-in-analysis]]
|
|
221
221
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://github.com/mmerterden/multi-agent-pipeline/pipeline/schemas/route-config.schema.json",
|
|
4
4
|
"title": "Model routing configuration",
|
|
5
|
-
"description": "Policy-driven model selection, OFF by default. Lives under prefs.global.modelRouting. Two layers, and the difference is the whole safety argument. Layer 1 chooses a rung INSIDE the Anthropic ladder and writes to the existing PHASE_MODEL_OVERRIDE seam - no new network path, no new account. Layer 2
|
|
5
|
+
"description": "Policy-driven model selection, OFF by default. Lives under prefs.global.modelRouting. Two layers, and the difference is the whole safety argument. Layer 1 chooses a rung INSIDE the Anthropic ladder and writes to the existing PHASE_MODEL_OVERRIDE seam - no new network path, no new account. Layer 2 would send a call to a non-Anthropic provider, and no call site can do that yet: a subagent is dispatched by the host, bulk-read.sh shells out to `claude -p --model <rung>`, and research_ask runs in the MCP server and picks its own model. model-dispatch.sh therefore refuses a non-Anthropic rung everywhere and falls to the rule's next rung, because an allowed rung nothing can honour is a rule the user believes worked. `provider` in cost-table.json is the seam a future call site would use. `scope` has no `host-session` member and that absence is enforced here rather than written in prose: rewriting the host's base URL would route the user's ENTIRE session, including work that has nothing to do with this pipeline, through a third layer - breaking the subscription's auth model and silently changing which model answers. Shipping this disabled is the same reasoning as modelFallback.fableEnabled: a cost control that is on by default is not a control.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
8
|
"required": ["enabled"],
|