@mmerterden/multi-agent-pipeline 20.26.0 → 20.27.1
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 +24 -0
- package/README.md +1 -1
- package/docs/facts.json +6 -6
- package/install/catalog-history.json +1 -1
- package/manifest.json +43 -35
- package/package.json +5 -5
- package/pipeline/commands/multi-agent/channels/SKILL.md +19 -17
- package/pipeline/lib/issue-fetcher.sh +40 -2
- package/pipeline/lib/jira-remote-links.sh +99 -0
- package/pipeline/multi-agent-refs/analysis/intake.md +2 -0
- package/pipeline/multi-agent-refs/analysis/render.md +4 -2
- package/pipeline/multi-agent-refs/channels/jira.md +10 -8
- package/pipeline/multi-agent-refs/channels/pr.md +11 -8
- package/pipeline/multi-agent-refs/channels/test-run.md +52 -0
- package/pipeline/multi-agent-refs/conventions-defaults.md +2 -0
- package/pipeline/multi-agent-refs/features/analysis-issue-links.md +42 -0
- package/pipeline/multi-agent-refs/features/localization-reuse.md +25 -0
- package/pipeline/multi-agent-refs/features/url-enrichment.md +11 -3
- package/pipeline/multi-agent-refs/features/visual-evidence.md +35 -9
- package/pipeline/multi-agent-refs/generate-issue.md +9 -11
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +10 -6
- package/pipeline/multi-agent-refs/phases/phase-2-dev.md +2 -0
- package/pipeline/multi-agent-refs/phases/phase-4-commit.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-5-report.md +2 -1
- package/pipeline/multi-agent-refs/phases.md +1 -1
- package/pipeline/multi-agent-refs/platform-parity.md +1 -1
- package/pipeline/multi-agent-refs/tracker-contract.md +10 -6
- package/pipeline/schemas/agent-state.schema.json +50 -0
- package/pipeline/schemas/prefs.schema.json +11 -0
- package/pipeline/schemas/unattended-policy.json +1 -0
- package/pipeline/scripts/_sibling-root.mjs +38 -0
- package/pipeline/scripts/gen-facts.mjs +5 -3
- package/pipeline/scripts/plan-remote-links.mjs +339 -0
- package/pipeline/scripts/pre-commit-check.sh +7 -0
- package/pipeline/scripts/render-flow-run.mjs +583 -0
- package/pipeline/scripts/render-jira-evidence.mjs +213 -0
- package/pipeline/skills/.skill-manifest.json +4 -4
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +8 -2
- package/pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md +1 -1
- package/pipeline/skills/shared/external/ios-localization/SKILL.md +5 -0
package/manifest.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "20.
|
|
4
|
-
"commit": "
|
|
5
|
-
"generatedAt": "2026-10-
|
|
3
|
+
"version": "20.27.1",
|
|
4
|
+
"commit": "8040d90c26b39f701acce97d9c1c94185b49e852",
|
|
5
|
+
"generatedAt": "2026-10-19T19:12:28.483Z",
|
|
6
6
|
"algorithm": "sha256",
|
|
7
|
-
"fileCount":
|
|
7
|
+
"fileCount": 1402,
|
|
8
8
|
"files": {
|
|
9
|
-
"CHANGELOG.md": "
|
|
9
|
+
"CHANGELOG.md": "aa756c7dbf9a21e5bbaaf7a833485b361b357cfd872376fa433c1f28003a1ed0",
|
|
10
10
|
"LICENSE": "8d8c51aaf1e1538b180c69965fa038db71be86798cc3e26a143bebfefe16a43e",
|
|
11
|
-
"README.md": "
|
|
11
|
+
"README.md": "7727e831f6421adeeaf2e34d9aeb8a6a11ad7ee5b166e09ade43d70704c27cfb",
|
|
12
12
|
"README.tr.md": "ce7978c53c733cf359c21423fbfed640f20644584ff153aaab473958fdccfdc3",
|
|
13
13
|
"SECURITY.md": "0eb89553ddcfc56bfe9712315b55a6630ee2f579631aaeccd6ad24f8ac769a0b",
|
|
14
14
|
"docs/FIGMA_PIPELINE.md": "ea01f3ea5fef1a9cb316040a2d416fcf87dd4f2a14b5497aa00994a0b5dc7e6a",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"docs/best-practices.md": "f8b75b0d38b5896a6a852bb30a1edddeb24dab8b5b7b1d9313290e1241c72024",
|
|
35
35
|
"docs/ecosystem.md": "9b23467fca1bcdc0275e7eccd3428c36181ba9f8cd866778159edd7d65a4d563",
|
|
36
36
|
"docs/engineering.md": "550528cd47c7d2c921729c68d0782a00ac8e77a4bdfec479f6749f9c3235d188",
|
|
37
|
-
"docs/facts.json": "
|
|
37
|
+
"docs/facts.json": "0422d0ff7dd0d13badae514ba07c891bf43683b528adcd17d37b917296565cc8",
|
|
38
38
|
"docs/features.md": "d5fcbe3acc05e054efdf0c43ddfc1a82ef3d463f349ea2ec5b4842fa26d9d49d",
|
|
39
39
|
"docs/performance.md": "bbf2f3922c25dcba0c1a9e69ef420e3871a729af5b35009a49b48a5d3c5cd151",
|
|
40
40
|
"docs/recovery-guide.md": "59a8f1b66b34cb9ff5507b3d54dac3b9915e184aa044d9c758d18cac818d510e",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"install/_unattended-profile.mjs": "e1ed82bde35d19105ee12c2a551eb778912b0e5c93ab227fd15c993098d98de0",
|
|
55
55
|
"install/_usage-lifecycle.mjs": "4b010c4e75d6f8e13b58d80a93cc9407f42ccde781c9ed12dcb8e7faf05e526c",
|
|
56
56
|
"install/_xcode-skills.mjs": "1a7e20f1e6743324b941c5d3ecac9f94c65fff1534ffd9c63b39cbea4f8d101a",
|
|
57
|
-
"install/catalog-history.json": "
|
|
57
|
+
"install/catalog-history.json": "af32be1b6a9a209413c7ae89cb69f2bde500545f732e505c94182cc3c15f5acc",
|
|
58
58
|
"install/claude.mjs": "106ce353ebc19c8319d057ce342e1f989519510465c798399076b5f3d8727904",
|
|
59
59
|
"install/codex.mjs": "08925fe9f3ecdf509b37f01105652c847475d20fcde2db0d679b9a7d663ca145",
|
|
60
60
|
"install/copilot.mjs": "41dc394b8a3ae77cfd194ce0ca9bbcafce9bdce349f1f72eeb86569f993e15fe",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"install/templates/multi-agent-autopilot-awake.plist.template": "ddd25c76c56fcbb38a89de8e35637372d70ace993d6bc487a88ca9cfb702fe1f",
|
|
67
67
|
"install/templates/multi-agent-autopilot.plist.template": "122c8a61cd927edd99375d6e3da40f1d42bcceed5b6641785c8b28bb930bc77e",
|
|
68
68
|
"install/unattended-profile-legacy.json": "f52e86b998956f09ad306b1735a6c10b58580d7082d8a55665a4c6bb15c3aa1f",
|
|
69
|
-
"package.json": "
|
|
69
|
+
"package.json": "2c191cdf79ea666e46e28fc4221a47904c8f9c73e1f715113164571dd7cb8989",
|
|
70
70
|
"pipeline/agents/android-architect.md": "11fb74543cb0ebcf9525ca6654fe95d53da7229e0bf4a1149b31fd9005abc453",
|
|
71
71
|
"pipeline/agents/backend-architect.md": "b02a606c301e4714131aed70ae6d16eeb77fbc819a001e2752cff2488d4246de",
|
|
72
72
|
"pipeline/agents/bulk-reader.md": "6597052cd7d205bac2b1c7633f5232fe1a40730664a913b8eb77efd5a786dc25",
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"pipeline/commands/multi-agent/autopilot/SKILL.md": "ae95364c28e21a5d12b8a579180d59963bad3738fcfd978180c5dca6e55a0d02",
|
|
92
92
|
"pipeline/commands/multi-agent/bug-bash/SKILL.md": "0ae5883b72239c74f4f64fc2d60526091e471afa6a2886f90f70a469a85cc832",
|
|
93
93
|
"pipeline/commands/multi-agent/build-optimize/SKILL.md": "e74d6f5be703acef1704092d5fe53485d95fe6c220bb768accaf68ebd212b7c1",
|
|
94
|
-
"pipeline/commands/multi-agent/channels/SKILL.md": "
|
|
94
|
+
"pipeline/commands/multi-agent/channels/SKILL.md": "ad2669cee680964185a38212148173d60df09d4d98126e237563743f2c5cfa2a",
|
|
95
95
|
"pipeline/commands/multi-agent/complaint-analysis/SKILL.md": "b9ab7b9444cf99f25868d90f050ed96f04ac8cd8ea18d0999376184b067fc2bc",
|
|
96
96
|
"pipeline/commands/multi-agent/create-jira/SKILL.md": "ac3d3e0ab2fb079b7c4107928573912699f68600f922b2f453be49c65317665a",
|
|
97
97
|
"pipeline/commands/multi-agent/design-check/SKILL.md": "d3cb1b50f2d14cf22a38f4c0db98c852e8ed0586e969f7e6da7c1d65f36554eb",
|
|
@@ -203,10 +203,11 @@
|
|
|
203
203
|
"pipeline/lib/figma-token.sh": "b192b1d3c8f75f1deb81731e95e080372d87fb44779805d05cdb7cb585ee1db0",
|
|
204
204
|
"pipeline/lib/gc-report.sh": "a70a1fbaea4fb6dbb9a56471119e403071b4358fb0d4577b62bb4d5e08eaf87e",
|
|
205
205
|
"pipeline/lib/invoked-directly.mjs": "a7014f252174414c267cc303a992aa9f3986541c5aad188c87cc6809ba3b69bd",
|
|
206
|
-
"pipeline/lib/issue-fetcher.sh": "
|
|
206
|
+
"pipeline/lib/issue-fetcher.sh": "a074c100d31d08bd04573ae77f51beda4174dc4eaf6781e31000b13117e59da0",
|
|
207
207
|
"pipeline/lib/jira-epic-link.sh": "b5f9ce1067cd8e9f0e547da4e681b71e4ff8c145e9a759fc98f83703dfca4d35",
|
|
208
208
|
"pipeline/lib/jira-family-write.sh": "b29674fd2dc6993636d0c8b6b674a069f37d76775420372a755a1ce3b0f94b95",
|
|
209
209
|
"pipeline/lib/jira-publish.sh": "d80c7c128fb16e67962d087f0e12ecbb396d8c7367bbb4f6d7eecb7cedf60fb3",
|
|
210
|
+
"pipeline/lib/jira-remote-links.sh": "ec62eeec7e666ebe5b73870d539306780bd6c32ced1acfda9046a95669a3687f",
|
|
210
211
|
"pipeline/lib/json-file-lock.mjs": "d8a9075e6fa4fd10d4fb84efd438f92906fb3181455d661ca5fe604c57441524",
|
|
211
212
|
"pipeline/lib/md2confluence-v3.py": "3677ca47931e4b3d0fd2ce3e11299fc5f6d24799eb8332e37dd60b6c3c4653a2",
|
|
212
213
|
"pipeline/lib/model-dispatch.sh": "6500a5a7cb6a4c099cf1d01678bc9465a3d4eb1001e1f516dcc5eacd69577158",
|
|
@@ -256,10 +257,10 @@
|
|
|
256
257
|
"pipeline/multi-agent-refs/analysis-template-corporate.md": "a1352dff1e39ef75cb25fadfc686595a584a87e337a45633e99d272b5e38a112",
|
|
257
258
|
"pipeline/multi-agent-refs/analysis-template.md": "5a5376a615332ab75003c2baf897248ba7c06ad2238a41ea1e7d1de0ff491374",
|
|
258
259
|
"pipeline/multi-agent-refs/analysis/evidence.md": "b0c216dc8869b729947ac5ecd33d20034b1a90bd8d648028a20ea7214b748658",
|
|
259
|
-
"pipeline/multi-agent-refs/analysis/intake.md": "
|
|
260
|
+
"pipeline/multi-agent-refs/analysis/intake.md": "192a2da33ceaf4a255645960bc7d6883ab2845b9d45b30ada8faafaf4ad82aba",
|
|
260
261
|
"pipeline/multi-agent-refs/analysis/locked.md": "c914d3da5182bfbb3ba613299cf38f12832fda2f17e1968e5a8fd7b32d867bdf",
|
|
261
262
|
"pipeline/multi-agent-refs/analysis/redesign.md": "6314fc1e14e05166efbea4819d5b07adb838d0704bde61b4b69cef637f251d58",
|
|
262
|
-
"pipeline/multi-agent-refs/analysis/render.md": "
|
|
263
|
+
"pipeline/multi-agent-refs/analysis/render.md": "c3dc2c4dea9c5094ca538abda20543f7fbbca64d3e15f41c3c9e1eae7a64f095",
|
|
263
264
|
"pipeline/multi-agent-refs/analysis/resolve.md": "2e3631a8a9af999e01c66455378020e2134e6ca91bed3a40cd94717da94a34cb",
|
|
264
265
|
"pipeline/multi-agent-refs/analysis/resume.md": "25a430b3a81c877b31c473cb0b708b1b225de3faf4d5f4b2918908df305c6d90",
|
|
265
266
|
"pipeline/multi-agent-refs/analysis/reusable-refs.md": "6058c704a689d20af95a13295fd2e34f8636647f16ab991961ad9b7c0655bd34",
|
|
@@ -271,15 +272,16 @@
|
|
|
271
272
|
"pipeline/multi-agent-refs/channels/board.md": "895edfd4a26f7f5fbe13f0eb5865d30975ed86ee3dbd4bd3bd12340f48001fcb",
|
|
272
273
|
"pipeline/multi-agent-refs/channels/confluence.md": "1e1d731e9f57efdfe77efab3281d74b7f16e28d3d49699da516225492c551ffc",
|
|
273
274
|
"pipeline/multi-agent-refs/channels/issue-comment.md": "19df6d8d6c23b5ea88687250dc10dd5fa35ba2b2e279efcb000e83622a0664f6",
|
|
274
|
-
"pipeline/multi-agent-refs/channels/jira.md": "
|
|
275
|
+
"pipeline/multi-agent-refs/channels/jira.md": "a164ac34b708ec1a3916ee69bcd3758aad5b40d6192fecb829d445afe0a41425",
|
|
275
276
|
"pipeline/multi-agent-refs/channels/multi-repo.md": "a309478d8ba253c797904b1ad174be958e4d365b5ff008634ad1d5fc87969474",
|
|
276
277
|
"pipeline/multi-agent-refs/channels/pr-review-actions.md": "21bf53796ae4ecd59769f9944ad8c7d1cd3a5915b0956be99ec875b847b33c00",
|
|
277
|
-
"pipeline/multi-agent-refs/channels/pr.md": "
|
|
278
|
+
"pipeline/multi-agent-refs/channels/pr.md": "7c374018e2cdd50c0de45728b3ee84fbc21f5d8f6fbcc6db127616be80e39c72",
|
|
279
|
+
"pipeline/multi-agent-refs/channels/test-run.md": "d9d2d325fd8439bc4be03a76c1250bc828c2aadd0d135fb272441705eae777ea",
|
|
278
280
|
"pipeline/multi-agent-refs/channels/wiki.md": "ba52c5efaedc067dd8456fe9076af694d7e3dae9bda621f1df65c9159cd422da",
|
|
279
281
|
"pipeline/multi-agent-refs/complaint-analysis-template.md": "dd5f12a8f56ee4dc177fa7bfba4ffe9ad021e5f1b9e661a49031f02dd6e37109",
|
|
280
282
|
"pipeline/multi-agent-refs/component-dispatch.md": "2ab9094aa716397e4840cd48f736c3f4fc3e7c4f9ccc5c7c7c52f9e8b0a28fb5",
|
|
281
283
|
"pipeline/multi-agent-refs/component-generation.md": "04fdb3fd0f1c129e1df8243184a3225cebd9c4f63511d6015eb356a92eda8891",
|
|
282
|
-
"pipeline/multi-agent-refs/conventions-defaults.md": "
|
|
284
|
+
"pipeline/multi-agent-refs/conventions-defaults.md": "c7ef37d269a49aaa05b096085edb318ce67870aa9a75b7afe219df1af3aa81b6",
|
|
283
285
|
"pipeline/multi-agent-refs/cross-cli-contract.md": "9a21e8aa6adff02f2514b5dd8cb5581e5e10e28007469e663912719ac4b8f2bd",
|
|
284
286
|
"pipeline/multi-agent-refs/design-check/build-launch.md": "0ac64d07ef7389e22f7443f79c70a0a4f8bb87dcff6dbc94c63e034febe194ea",
|
|
285
287
|
"pipeline/multi-agent-refs/design-check/compare.md": "2a0a89542a8bfefcfeaf1068dd91edb6947392f911f23e8b4857e4ace8fd15d7",
|
|
@@ -288,6 +290,7 @@
|
|
|
288
290
|
"pipeline/multi-agent-refs/design-check/figma-mapping.md": "731b7f19ddee2e67ea5d318e95e3a0d6840fa62c4ad682a25315509ac9ddcbc3",
|
|
289
291
|
"pipeline/multi-agent-refs/design-check/init-inventory.md": "62defc5ea804f6c8f059a8d512b023791daac59274c0def28cefd7709a7fe862",
|
|
290
292
|
"pipeline/multi-agent-refs/design-check/mcp-currency-gate.md": "70a96d3135af905989cd1819e6fb37fc44d25df9817b1efcd20121ec6db76d74",
|
|
293
|
+
"pipeline/multi-agent-refs/features/analysis-issue-links.md": "68685a7fbdfd06ddbaafbbbbb6287670957631d9f5b130b851927aacf5345a23",
|
|
291
294
|
"pipeline/multi-agent-refs/features/analysis-jira.md": "e5e88c656fad3f153d0a9ae6278e6f2c9060805029435f72cca64384c6bd6f50",
|
|
292
295
|
"pipeline/multi-agent-refs/features/analysis-outline.md": "36a917343a7c07ae115aa1e89f825304e5878db931915aefef614d251b167e92",
|
|
293
296
|
"pipeline/multi-agent-refs/features/analysis-sources.md": "12c8035e6aabf8e8a973b7264edc9a943e6758e79dbc53ae3e9b43c7f998000c",
|
|
@@ -308,6 +311,7 @@
|
|
|
308
311
|
"pipeline/multi-agent-refs/features/free-models.md": "64afaba7e7a77575f4ed6a10905a01330a83f573907fb1a5d5356ae6c80999a0",
|
|
309
312
|
"pipeline/multi-agent-refs/features/jira-context.md": "7d14802ed9ad1747e1a06dec26f22ff9e8959e03c47d7a018af45b8274aea47c",
|
|
310
313
|
"pipeline/multi-agent-refs/features/jira-family.md": "4be05f296e6a2050355c218ed1cd33b489cd8c89ab798e1e44c7ba45fb9517b8",
|
|
314
|
+
"pipeline/multi-agent-refs/features/localization-reuse.md": "1a5bf13898eb83b65197c77a64736583fca67dc96ebab5df02482263e1091415",
|
|
311
315
|
"pipeline/multi-agent-refs/features/maturity-followup.md": "e663e5bcf0b3b4d4d2a67f4516dbb9fb12520dfbdedb47a9c5f57c13a9a0633e",
|
|
312
316
|
"pipeline/multi-agent-refs/features/model-fallback.md": "5647b4dbeed6fea21d264f03a85796727a83a001710a8bcbb3932c5a3914d6c5",
|
|
313
317
|
"pipeline/multi-agent-refs/features/mutation-probe.md": "e6d622ab061f6cdcc16da40311e8e7aeae3e6f3c1d4b76d3849859a48a8ae31a",
|
|
@@ -335,14 +339,14 @@
|
|
|
335
339
|
"pipeline/multi-agent-refs/features/stack-skill-routing.md": "1989f7f64be6c5ee0a42d8e9962aead7cd7472d795915ab953d89d9382f317e6",
|
|
336
340
|
"pipeline/multi-agent-refs/features/unattended-gates.md": "46b516cac81a4eacf5d58bc3b1613e2266c26f1559be8dac060d1dc6b7d7ca01",
|
|
337
341
|
"pipeline/multi-agent-refs/features/unattended-security.md": "f0f05ed17bbf26a50fa0f88d890f7ac3ccb8f78f169b9f759e997299fdeb5cac",
|
|
338
|
-
"pipeline/multi-agent-refs/features/url-enrichment.md": "
|
|
342
|
+
"pipeline/multi-agent-refs/features/url-enrichment.md": "14c6fcadd31cecf85011d936021a2103d87d37f618a0aab07c693be63aeae210",
|
|
339
343
|
"pipeline/multi-agent-refs/features/usage-reporting.md": "12e8b4ee6170431ea980da829415beeb8dce9381a658b5d70a569ece98799438",
|
|
340
344
|
"pipeline/multi-agent-refs/features/valven.md": "13b1fb8a3815330f6f970181506ac117e0d1c42761e5a83454edbd0b383ee1a7",
|
|
341
345
|
"pipeline/multi-agent-refs/features/verify-by-test.md": "b0735adaa7ead797167b8d9ea48a10851a138083c6e638738cc96c66b02a1e37",
|
|
342
346
|
"pipeline/multi-agent-refs/features/verify.md": "1a6db5e7239eac01e51100353013abd16bf785a7fce88b40139fca27f4166be4",
|
|
343
|
-
"pipeline/multi-agent-refs/features/visual-evidence.md": "
|
|
347
|
+
"pipeline/multi-agent-refs/features/visual-evidence.md": "b7154dfe41f5069ad74883c73d04a4f7e5431c7e654151ab041b2981cd4ab134",
|
|
344
348
|
"pipeline/multi-agent-refs/features/worktree-finalize.md": "628f627b94927a9c4a5b0b261fed1f0ffa42d4155390d57b5e56566a26ed8193",
|
|
345
|
-
"pipeline/multi-agent-refs/generate-issue.md": "
|
|
349
|
+
"pipeline/multi-agent-refs/generate-issue.md": "3e5182b9d6848e852ee3c7f397687f45c05e0861360cb77185c0a27d503a685c",
|
|
346
350
|
"pipeline/multi-agent-refs/help/en.md": "2164743d020630b650d4b3313113e323c3a879e773540475b59bcedc20cb4916",
|
|
347
351
|
"pipeline/multi-agent-refs/help/tr.md": "2325b840682a9b5ca3d99361fedf165f0bfa8ab6dd4a2f33c19cce7fb5b9f95f",
|
|
348
352
|
"pipeline/multi-agent-refs/issue-jira-triad.md": "a12f4e3b75badf8a466e0c3531a5f0e12e44a1dd7799522fb03ff11068ce391d",
|
|
@@ -356,18 +360,18 @@
|
|
|
356
360
|
"pipeline/multi-agent-refs/orchestrator/skill-loading.md": "6827d45f067d3db66fe7a6043308164aaf8a3da7620d018d7ed6459e4356f476",
|
|
357
361
|
"pipeline/multi-agent-refs/outside-the-pipeline.md": "f62960921b2fbebd54914cec7503bfb5e3c3024f30fb3e0ead7e08e36a8139aa",
|
|
358
362
|
"pipeline/multi-agent-refs/payload-contracts.md": "77b10f1d616c20b96c8f83185f9b507c9764fdc69eae1795bff9127ecbc6f37e",
|
|
359
|
-
"pipeline/multi-agent-refs/phases.md": "
|
|
363
|
+
"pipeline/multi-agent-refs/phases.md": "77d04389edaa7aaf4e3a0faffebb2d2228b9e635fcb1e91f48b3f7d351f8aff4",
|
|
360
364
|
"pipeline/multi-agent-refs/phases/log-format.md": "62d51e57cca8445ab40f3c0dc29615e4b5c8e4743286bf9ef0173610e81397aa",
|
|
361
365
|
"pipeline/multi-agent-refs/phases/modes.md": "0733e20dce458c09f30343db9149fc93bc5a4c9531670b93952f223811dcb1aa",
|
|
362
366
|
"pipeline/multi-agent-refs/phases/operations.md": "9506a26684abfff1e332d92c2321e840544fd4f049aff9f118731e198dabca94",
|
|
363
|
-
"pipeline/multi-agent-refs/phases/phase-0-init.md": "
|
|
367
|
+
"pipeline/multi-agent-refs/phases/phase-0-init.md": "3817e3be71adbf30a082713895531ef0e7fed29a32b77ce351103f1dfcd8669c",
|
|
364
368
|
"pipeline/multi-agent-refs/phases/phase-1-plan.md": "de3f3dc16ae8853740540caa5497d2f18f016dcb7ea0bfc280ca5c136259a078",
|
|
365
|
-
"pipeline/multi-agent-refs/phases/phase-2-dev.md": "
|
|
369
|
+
"pipeline/multi-agent-refs/phases/phase-2-dev.md": "fd41c31112e7fd0b547b6210cb6134a383ceb44889cbafc39069fc97d05e5ce6",
|
|
366
370
|
"pipeline/multi-agent-refs/phases/phase-3-review.md": "60d3bff0370e3a31cbc7824560bd8598c19da0c4025be71e1df60661202d2a38",
|
|
367
|
-
"pipeline/multi-agent-refs/phases/phase-4-commit.md": "
|
|
368
|
-
"pipeline/multi-agent-refs/phases/phase-5-report.md": "
|
|
371
|
+
"pipeline/multi-agent-refs/phases/phase-4-commit.md": "49565e1d4bff37e60b6299787e77456d1b1707e42d03a1797612be0604bd0983",
|
|
372
|
+
"pipeline/multi-agent-refs/phases/phase-5-report.md": "293e5071c1465a441a0a54dd9bd8963f6c5d2a0158653f5dd8ff3bf0613ed8ae",
|
|
369
373
|
"pipeline/multi-agent-refs/picker-contract.md": "c03970ad8ebb36ff8742b41cc05b615a907d0cbd363e714a3da687f4aed25bba",
|
|
370
|
-
"pipeline/multi-agent-refs/platform-parity.md": "
|
|
374
|
+
"pipeline/multi-agent-refs/platform-parity.md": "1fa6189ad94ecd3e8a9f15980f19174dc86468050a6de3afff7aa30de60aa689",
|
|
371
375
|
"pipeline/multi-agent-refs/progress-contract.md": "d1dc3c117aeb880cd44b3439062e9fe7d5e2042ba00c49fd495f70a6bdc1addc",
|
|
372
376
|
"pipeline/multi-agent-refs/prompt-assembly.md": "5be25fe3e91ab4f997735907b53c8284fad289c60960e71445e0e8632d2704d1",
|
|
373
377
|
"pipeline/multi-agent-refs/readiness-review.md": "1413e47dc97a54c0a2bd597f996203f24ee8a356f3d5d8690b42b2dad47ddc40",
|
|
@@ -397,7 +401,7 @@
|
|
|
397
401
|
"pipeline/multi-agent-refs/sync/dev-toolkit.md": "b23817e65f3e386bc9b5937995f57394cb00e24147292a461888fb52f80a27e6",
|
|
398
402
|
"pipeline/multi-agent-refs/sync/stack-plugins.md": "07cba6d08f60c6ef6eecd90f373ec35db1bf6f98013cf12fe51155a77e76c748",
|
|
399
403
|
"pipeline/multi-agent-refs/threat-model.md": "3628881538b846f94decd78e389b34b473ba6f91b6e6dcf5c927d307ed264bea",
|
|
400
|
-
"pipeline/multi-agent-refs/tracker-contract.md": "
|
|
404
|
+
"pipeline/multi-agent-refs/tracker-contract.md": "938c05104143a9db45fe393636c5d81625dc65d2cb065945efad3bf885eff4c4",
|
|
401
405
|
"pipeline/multi-agent-refs/unattended-contract.md": "554eeeda1469f405eaf8d59ef11a62efbb6919f06bd9950dc856b0be891e702b",
|
|
402
406
|
"pipeline/multi-agent-refs/web-guide.md": "714cba0d92fa45bf71fbff21bb2f09c88534ebf785b3a2ea96d18037e2e7f7f9",
|
|
403
407
|
"pipeline/multi-agent-refs/website-deploy.md": "ce819c8b1ef8e8ec3257611379aaf0ab4678e08e0b58bd88c936e98cb8ead609",
|
|
@@ -417,7 +421,7 @@
|
|
|
417
421
|
"pipeline/rules/swiftui-qa.md": "8c4afe9e72413e7bdab655f3d17588469e80ac34cb7ad2a690901fc5b6534818",
|
|
418
422
|
"pipeline/rules/tdd.md": "4c1b3114506aa9794c9bb1e1aee1b1bbb4a993d192342e5697cc00bc2f6ea4a2",
|
|
419
423
|
"pipeline/rules/testing.md": "695be5520b65451f0aa300a9643df2c05e607ff6ad372201ea34798dc5998bd5",
|
|
420
|
-
"pipeline/schemas/agent-state.schema.json": "
|
|
424
|
+
"pipeline/schemas/agent-state.schema.json": "96c8a9d57b4ab14332c81a098a9da20828128f5dc1c1924a1bde17d65752087b",
|
|
421
425
|
"pipeline/schemas/analysis-output.schema.json": "41826f4bf7c96778f8cdbcc68531e984087897d438b7b49ac5a93fc29db47916",
|
|
422
426
|
"pipeline/schemas/analysis-spec.schema.json": "43770223266be1c94e2cdea585efb6783043353bc5a374613b554596f46e1bcd",
|
|
423
427
|
"pipeline/schemas/answer-request.schema.json": "29d4211a2a05a230e0707b171b73341d2e56f6b83edb178b731905211aab4e23",
|
|
@@ -471,7 +475,7 @@
|
|
|
471
475
|
"pipeline/schemas/plan-todos.schema.json": "be4374b7eeb513fb8a7663374defa5b35ae084f72e112faa41b07c46532c50de",
|
|
472
476
|
"pipeline/schemas/planning-output.schema.json": "6aea9b5b8bbf7f9a227215c29cc30a5b642981a02fe2a81eaf9e8a113f7c3947",
|
|
473
477
|
"pipeline/schemas/pr-request.schema.json": "ae75c4856349d62834802b1189af516bb6fb3d36646831b7ff2fa61d938afcd0",
|
|
474
|
-
"pipeline/schemas/prefs.schema.json": "
|
|
478
|
+
"pipeline/schemas/prefs.schema.json": "776ea725896456f4853cf7959cab9fdbd3dc34bdaa8e0eaf74b61e93c11710ff",
|
|
475
479
|
"pipeline/schemas/repo-profile.schema.json": "1a74ef8330da9a26a5a70955f6f9cbb20eda54a8615efaf86c7993d420a7f04e",
|
|
476
480
|
"pipeline/schemas/repos.schema.json": "a9bf56f25c66201c170912e3389bd73e4a3f61922410f83e31a6c6ba47aee861",
|
|
477
481
|
"pipeline/schemas/research-output.schema.json": "54e3ba1b04fdc20fbaa84333b943a8ab95d1395c7b0e0aedc67929184cb49523",
|
|
@@ -497,7 +501,7 @@
|
|
|
497
501
|
"pipeline/schemas/token-budget.schema.json": "126292faf6a49db0929d1bcb01be888ef7de4a3938cb7d88a0cf7ee786ffb297",
|
|
498
502
|
"pipeline/schemas/triage-corpus.schema.json": "b919fe3d69443d78e55d875f54717c745320ff94d34c516b0ca32f358ebec2e5",
|
|
499
503
|
"pipeline/schemas/triage-output.schema.json": "60e329a22cea0f0ed9fa1e8e78f9b512ef283277346b08a194ad491e0bad0995",
|
|
500
|
-
"pipeline/schemas/unattended-policy.json": "
|
|
504
|
+
"pipeline/schemas/unattended-policy.json": "423f5d79663fea92dc4035b9e7480acb0ee732a7d89a094ab2bcd252d0f819d3",
|
|
501
505
|
"pipeline/schemas/unattended-policy.schema.json": "d1aab1b49541ca77c3ca5ee69158878b61ea47a5bfdfe06cd548c3315ffd09c4",
|
|
502
506
|
"pipeline/schemas/unattended-profile.json": "25ca36388640a22b47b08f01f515b192ee4210eb820c85fd3d0485e0247afd8c",
|
|
503
507
|
"pipeline/schemas/unattended-profile.schema.json": "a9c0979f0d0742826e410fdbfe1ae1c4a56b05b4e638eec42d4c276d6f48f701",
|
|
@@ -520,6 +524,7 @@
|
|
|
520
524
|
"pipeline/scripts/_redact.mjs": "9d4fb3fa72c45cf14dc3dc9e950969f688c0d34f71c9e39efca0f68dbed15b54",
|
|
521
525
|
"pipeline/scripts/_retrieval.mjs": "c887d90701b610cdc25ad49090c3e2786de4135e73b8d423dc01aa56336edf2f",
|
|
522
526
|
"pipeline/scripts/_run-paths.mjs": "186266e09ffaf793525c0b25572006c9f37cdd2c6ce35abaacb172802476f573",
|
|
527
|
+
"pipeline/scripts/_sibling-root.mjs": "1acd7c997256a44aae19dc38788dda28e0245e9750b851af38ad0c307464e936",
|
|
523
528
|
"pipeline/scripts/_smoke-root.sh": "dad129959a4e37a0cd0f4f6c04f6d66c5a43752b2bf33989db9c002eb106b832",
|
|
524
529
|
"pipeline/scripts/_stack-adapter.mjs": "a754c042d237cd03abf11c6909099a7a3ea798cdd13d49b03787797fd3496cd7",
|
|
525
530
|
"pipeline/scripts/_stack-routing.mjs": "d1f804d457295e5cc8ad7039e8c29431f0e9f52f4396cc54c1305eb82b9b61e9",
|
|
@@ -593,7 +598,7 @@
|
|
|
593
598
|
"pipeline/scripts/gc-refs.sh": "04e91087885bac10ee692cc24914342a459bcfc5533574894e40e43587cec325",
|
|
594
599
|
"pipeline/scripts/gc-tmp.sh": "e833f742b9ca54fde78c58c3d473593a3a093ce35d6e30631e662a84a6ad6efe",
|
|
595
600
|
"pipeline/scripts/gc-worktrees.sh": "06d0a53b9293531f4b8501618648440b668ba1ef60c121576c55b0e203dcfc62",
|
|
596
|
-
"pipeline/scripts/gen-facts.mjs": "
|
|
601
|
+
"pipeline/scripts/gen-facts.mjs": "9e3cffc52882d44c32b60f9ab8eb47a912227ab094f6e896055d2a9c403b3ad1",
|
|
597
602
|
"pipeline/scripts/gen-mode-dispatch.mjs": "c6fd6772888bd928a9e8ac1bddd4effca5f6e7e51d07cee4c7264d48b5a96fac",
|
|
598
603
|
"pipeline/scripts/gen-skills-index.mjs": "64606fb3165786ed1488cc368dcbe8f53d2e9402f02578823a31838b9730180d",
|
|
599
604
|
"pipeline/scripts/git-path.mjs": "e82e0da227fe30f48a50f352556b1769b68e7647f13540d0ab265cbde8a77735",
|
|
@@ -640,10 +645,11 @@
|
|
|
640
645
|
"pipeline/scripts/plan-complexity.mjs": "ac8e4ad857cabc80fe4051bec84490bb91bfdf75d61cfdad93e315d0965f04b8",
|
|
641
646
|
"pipeline/scripts/plan-coverage-gate.mjs": "1a83bc52584438a9bd5cba96d2ddefed92a6a317d30ee695e67ef6c00b93e5a8",
|
|
642
647
|
"pipeline/scripts/plan-critique-gate.mjs": "b139394e5f16d11e4997d0bb0b08529f439dbd7fad39781ef4c2475247d8fa97",
|
|
648
|
+
"pipeline/scripts/plan-remote-links.mjs": "81673a25b9b9f19edd15ebd1e198552b658a7ec6d138658ec4e6e5b58213bb3a",
|
|
643
649
|
"pipeline/scripts/plugin-refresh.sh": "687a33199ad963616ab537e32210ec8c967e76ecc42f494ee8a1dc9fe947fc30",
|
|
644
650
|
"pipeline/scripts/pr-request.mjs": "e6f4ded2366c6599bb345b3011ecc771e13b8a1561afa4c9a50bca4edff17456",
|
|
645
651
|
"pipeline/scripts/pr-timeline.mjs": "6a12df12a72f3440796569d3264edb0b3e105be6e4f2e26e958a5a0da340d05c",
|
|
646
|
-
"pipeline/scripts/pre-commit-check.sh": "
|
|
652
|
+
"pipeline/scripts/pre-commit-check.sh": "6012f0d4f55ef9e6ace2e9cf7e4a85cabce89c08ca5e2c6f625cd8e28bf449c1",
|
|
647
653
|
"pipeline/scripts/pre-push-check.sh": "6e9761fed96e3bae111ccd554b44e35917517c6a8ae5dae7236fe8c69e7fe122",
|
|
648
654
|
"pipeline/scripts/probe-evidence-capability.sh": "ac74252eed6b773fdbc7ec475a63606925f1ba7b5e7c6f911329f46fd920eae7",
|
|
649
655
|
"pipeline/scripts/probe-store-key.mjs": "b46dfcf444c95d0bb61de36823314945dacaaacb8f35841d153dcfcde8e4df1a",
|
|
@@ -654,6 +660,8 @@
|
|
|
654
660
|
"pipeline/scripts/release-notes.mjs": "05430926cf679534978bcc79c160a6787aaf04831b8b8489d8bbc9fa343a14af",
|
|
655
661
|
"pipeline/scripts/render-agent-log-cost.sh": "6c58c1f5754ff5754485a0c1b66f4cd713575d2e8ebb1630aedf2f87fe34ef4d",
|
|
656
662
|
"pipeline/scripts/render-cost-summary.sh": "ce9647332ab9a3e518af98f52a6fc70baab9fd3c09ec5f9e85bae2d67078a5e3",
|
|
663
|
+
"pipeline/scripts/render-flow-run.mjs": "817ee3b73c41e088e9fb439e5c90970f7697b963f6c895a994c4774d30f8bab2",
|
|
664
|
+
"pipeline/scripts/render-jira-evidence.mjs": "a7bb663ef688ef9bb6e85995089c10b9faa5a9a621c5430ff7925d761571f3cb",
|
|
657
665
|
"pipeline/scripts/render-work-summary.sh": "ee4db04ebc145cc2fc7fa9a533d42b7da4da191710ef67c883502ca83b2aa67c",
|
|
658
666
|
"pipeline/scripts/repo-map.mjs": "175dcaeb548e8a018ad36cf661f3bdcb9340d32439fd4d92918fd6b3ab175730",
|
|
659
667
|
"pipeline/scripts/repo-profile.mjs": "5f0cf90c59accdb0bb763fab9512e271e3cc4c8bc930ece137d94baa5c8e08d9",
|
|
@@ -727,7 +735,7 @@
|
|
|
727
735
|
"pipeline/scripts/worktrees.mjs": "90dfd09b70fffe9b56c331a4ae2692cc248f4898f4ee6aee4239ef0b20888a90",
|
|
728
736
|
"pipeline/scripts/write-state.mjs": "e1198bf970eace07d3eff22b394808a526e473df65d3d58aa2d5a12cfdac8b49",
|
|
729
737
|
"pipeline/scripts/write-store-config.mjs": "b994a061f6febb2ca3d396074d8b51d2c1c1f991d3072d321703380da3639a56",
|
|
730
|
-
"pipeline/skills/.skill-manifest.json": "
|
|
738
|
+
"pipeline/skills/.skill-manifest.json": "a69acae761b7293cac14475e0f403f5d2c39a15e767018e473eb3ecbe4b61cce",
|
|
731
739
|
"pipeline/skills/.skills-index.json": "bfb04a72333aec2c25e21c8edce4a76e2128e5e7f1e88b0cd780e7f1cc6bf370",
|
|
732
740
|
"pipeline/skills/shared/README.md": "47f5c77556bf1676857fe6a803fc5c85da5cd32e1b0332a6f3728b6da610cc58",
|
|
733
741
|
"pipeline/skills/shared/core/apple-archive-compliance/SKILL.md": "7239fef717ea45b79276bfcc2c3903acd57950b6e00dd6a2a66399c4b09cbd51",
|
|
@@ -743,9 +751,9 @@
|
|
|
743
751
|
"pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md": "a9731771fbc1f45260f214f069b976eff16e7b25e2f1375b0d9a213575271bc6",
|
|
744
752
|
"pipeline/skills/shared/core/multi-agent-bug-bash/SKILL.md": "a44ad2520ef24444b68d9040519f82498abda3ebb6467890bb6b5e1460299400",
|
|
745
753
|
"pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md": "8534891d1198597a0893d131e6b944d15443f62b24cb5584c486a235845fd281",
|
|
746
|
-
"pipeline/skills/shared/core/multi-agent-channels/SKILL.md": "
|
|
754
|
+
"pipeline/skills/shared/core/multi-agent-channels/SKILL.md": "b55e8461a1bcdc1b4b88c42e086f599fccda2a89d7f56a29ac11e5ebc12a3623",
|
|
747
755
|
"pipeline/skills/shared/core/multi-agent-complaint-analysis/SKILL.md": "dd30708491303902aa8629130809e9601c2096dc12aa9fc671f798142cea3485",
|
|
748
|
-
"pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md": "
|
|
756
|
+
"pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md": "15efd1a0c661f848c2afa427015cd6c31e9f6680900111a4ab1a2e34ad705e81",
|
|
749
757
|
"pipeline/skills/shared/core/multi-agent-design-check/SKILL.md": "8888744fa52e935f53db9a1068e1b18c636b6c9d55b084dabfc19b9ae68bf6f8",
|
|
750
758
|
"pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md": "e0ccaabe77d242f26aca9fa3010e02adc4edd07eeb55230396300caefffe91d2",
|
|
751
759
|
"pipeline/skills/shared/core/multi-agent-doctor/SKILL.md": "2f6222cdef9c6b2b4e2e330ba0acee33ab0fb797029bb16c50bbb244be5fcbe6",
|
|
@@ -1004,7 +1012,7 @@
|
|
|
1004
1012
|
"pipeline/skills/shared/external/ios-iphone-duo/references/api-map.md": "ec7d0b3dab323db1951c2b5319691f611466012b970823333a233e33c2a338d4",
|
|
1005
1013
|
"pipeline/skills/shared/external/ios-iphone-duo/references/fixed-assumptions.md": "4a3e52a72b48851adc43ec702c4dbbc9d9d313a7b56409553406885b5606fdab",
|
|
1006
1014
|
"pipeline/skills/shared/external/ios-iphone-duo/references/poses-and-panes.md": "f06bd8689cf793c239125327f4ec74f234c49beda277467cdebc7366ff76909f",
|
|
1007
|
-
"pipeline/skills/shared/external/ios-localization/SKILL.md": "
|
|
1015
|
+
"pipeline/skills/shared/external/ios-localization/SKILL.md": "eb1e0dc8f68d4d6c29af6562186060f265ce4fadad633638d18b9aee098bfe4a",
|
|
1008
1016
|
"pipeline/skills/shared/external/ios-localization/evals/evals.json": "f80b7a9d9a4a262c6df824ba8c4bf1a762d98d0a12501bead04e8cd6a016cc6e",
|
|
1009
1017
|
"pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md": "3b9aa4a911625a5b246c728d5afe6ec52701d362980de528c554b25b4801a3e8",
|
|
1010
1018
|
"pipeline/skills/shared/external/ios-localization/references/string-catalogs.md": "6e103989d396c43ab3c0e4b2d5df6da34ba6b2d33fae649d84ec4f38f5811ace",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.27.1",
|
|
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",
|
|
@@ -116,10 +116,10 @@
|
|
|
116
116
|
"ajv": "^8.20.0",
|
|
117
117
|
"ajv-formats": "^3.0.1",
|
|
118
118
|
"c8": "^12.0.0",
|
|
119
|
-
"eslint": "^10.
|
|
119
|
+
"eslint": "^10.12.0",
|
|
120
120
|
"eslint-config-prettier": "^10.1.8",
|
|
121
|
-
"eslint-plugin-n": "^18.
|
|
122
|
-
"prettier": "^3.9.
|
|
123
|
-
"publint": "0.3.
|
|
121
|
+
"eslint-plugin-n": "^18.4.1",
|
|
122
|
+
"prettier": "^3.9.10",
|
|
123
|
+
"publint": "0.3.25"
|
|
124
124
|
}
|
|
125
125
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: "Multi-channel reporter - Jira/Confluence/Wiki/PR description/Board status. Multi-select channels + content, humanizer pass, reviewer-preserving Bitbucket PR PUT, GitHub Projects v2 board status move. Phase 5 delegates to this skill; users can invoke post-hoc by Jira ID / PR URL / branch."
|
|
3
3
|
description-tr: "Çok kanallı raporlayıcı - Jira/Confluence/Wiki/PR açıklaması/Board durumu. Çoklu kanal + içerik seçimi, humanizer geçişi, reviewer'ı koruyan Bitbucket PR PUT, GitHub Projects v2 board durum taşıma. Faz 5 bu skill'e delege eder; Jira ID / PR URL / branch ile sonradan da çağrılabilir."
|
|
4
|
-
argument-hint: '[Jira-id | PR-url | #N | Jira-url] [--channels pr,jira,confluence,wiki,board] [--content normal,technical,test,auto-diff,note] [--message "..."] [--message-file path] [--board-status <key>] [--dry-run] [--append] [--ready]'
|
|
5
|
-
parameters: [{"name":"target","kind":"text"},{"name":"--channels","kind":"enum","repeat":true,"enum":["pr","jira","confluence","wiki","board"]},{"name":"--content","kind":"enum","repeat":true,"enum":["normal","technical","test","auto-diff","note"]},{"name":"--message","kind":"text"},{"name":"--message-file","kind":"path"},{"name":"--board-status","kind":"text"},{"name":"--dry-run","kind":"flag"},{"name":"--append","kind":"flag"},{"name":"--ready","kind":"flag"}]
|
|
4
|
+
argument-hint: '[Jira-id | PR-url | #N | Jira-url] [--channels pr,jira,confluence,wiki,board] [--content normal,technical,test,auto-diff,note,test-run] [--flow-run <runId>] [--message "..."] [--message-file path] [--board-status <key>] [--dry-run] [--append] [--ready]'
|
|
5
|
+
parameters: [{"name":"target","kind":"text"},{"name":"--channels","kind":"enum","repeat":true,"enum":["pr","jira","confluence","wiki","board"]},{"name":"--content","kind":"enum","repeat":true,"enum":["normal","technical","test","auto-diff","note","test-run"]},{"name":"--flow-run","kind":"text"},{"name":"--message","kind":"text"},{"name":"--message-file","kind":"path"},{"name":"--board-status","kind":"text"},{"name":"--dry-run","kind":"flag"},{"name":"--append","kind":"flag"},{"name":"--ready","kind":"flag"}]
|
|
6
6
|
gui: form
|
|
7
7
|
destructive: false
|
|
8
8
|
confirm: none
|
|
@@ -11,7 +11,7 @@ allowed-tools: Read, Write, Edit, Bash, Grep, WebFetch, AskUserQuestion
|
|
|
11
11
|
|
|
12
12
|
# /multi-agent channels - Multi-Channel Reporter
|
|
13
13
|
|
|
14
|
-
> **TLDR** - Single entry point for posting task reports to external channels.
|
|
14
|
+
> **TLDR** - Single entry point for posting task reports to external channels. Jira, Confluence, Wiki (component-only), PR description. Multi-select channels × content. Phase 5 of the pipeline delegates to this command; users can also invoke it post-hoc by Jira ID / PR URL / branch.
|
|
15
15
|
|
|
16
16
|
**Claude Code invocation:** `/multi-agent:channels <target>`
|
|
17
17
|
**Copilot CLI invocation:** `multi-agent-channels <target>` (top-level command, dash-separated per Copilot no-namespace convention)
|
|
@@ -97,7 +97,7 @@ When the preview renders:
|
|
|
97
97
|
When the preview does NOT render (no state, or pref explicitly off at global level with no override):
|
|
98
98
|
- Skip 3a silently, go straight to the channels picker. The workSummary row in 3b stays at its pref default (`false`).
|
|
99
99
|
|
|
100
|
-
After the preview prints, 3b renders the two pickers: **Channels** (PR description, Jira comment, Confluence page, Wiki, Board; each unavailable one greyed with its reason) and **Content** (normal analysis, technical analysis, test scenarios, PR auto-diff, manual note, cost summary, work summary).
|
|
100
|
+
After the preview prints, 3b renders the two pickers: **Channels** (PR description, Jira comment, Confluence page, Wiki, Board; each unavailable one greyed with its reason) and **Content** (normal analysis, technical analysis, test scenarios, test run, PR auto-diff, manual note, cost summary, work summary).
|
|
101
101
|
|
|
102
102
|
**Why auto-tick:** the user just saw the summary and is most likely sending it; the explicit pref still wins.
|
|
103
103
|
|
|
@@ -111,7 +111,7 @@ After the preview prints, 3b renders the two pickers: **Channels** (PR descripti
|
|
|
111
111
|
- "Normal analiz" + "Test senaryoları" unselectable if no pipeline log found. Reason: `"(no pipeline log for PROJ-12345)"`.
|
|
112
112
|
- "Teknik analiz" unselectable if no Phase 1 planning log AND no PR diff available. Reason: `"(no technical source - need Phase 1 plan or PR diff)"`.
|
|
113
113
|
- "Auto-diff" unselectable if no PR found. Reason: `"(no PR linked to this target)"`.
|
|
114
|
-
- "Manuel not" always available.
|
|
114
|
+
- "Manuel not" always available. "Test Koşumu (Xray)": `channels/test-run.md`.
|
|
115
115
|
- "Cost özeti" unselectable if `phase-tracker.sh cost total` prints `-` (no priced token tallies; there is no `status` action) AND no `otel-spans.jsonl` exists for the task. Reason: `"(no tracker data - set MULTI_AGENT_OTEL_SPANS=1 or enable token tracking)"`.
|
|
116
116
|
- "Yapılan iş özeti" unselectable if no `agent-state.json` exists for the task (post-hoc call with `--branch` + `--base-branch` flags restores partial availability). Reason: `"(no agent-state.json for {taskId})"`. **Auto-ticked** when Step 3a preview was shown - user can still uncheck before confirming the menu.
|
|
117
117
|
|
|
@@ -137,10 +137,8 @@ For each selected **content** source, produce one section body. Each section run
|
|
|
137
137
|
ticket and by whoever tests it, so its comment carries the four sections
|
|
138
138
|
`channels/jira.md` fixes - `summary` (`Geliştirme Özeti`), `test_scenarios`
|
|
139
139
|
(`Test Senaryoları`), `impact` (`Etki Analizi`) and `context_refs`
|
|
140
|
-
(`Bağlantılar`) - and nothing else. Technical sections go to the PR and to
|
|
141
|
-
Confluence, where the reader is a code reviewer.
|
|
142
|
-
explained a hash-table mutation across three paragraphs of class names; it was
|
|
143
|
-
correct, and it was the wrong document. When `jira` is a selected channel, drop
|
|
140
|
+
(`Bağlantılar`), plus `test_run` when selected - and nothing else. Technical sections go to the PR and to
|
|
141
|
+
Confluence, where the reader is a code reviewer. When `jira` is a selected channel, drop
|
|
144
142
|
the technical sections from its body rather than converting them: the PR link on
|
|
145
143
|
line 1 is how a Jira reader reaches the detail.
|
|
146
144
|
|
|
@@ -154,6 +152,7 @@ lead reads before deciding how wide to test.
|
|
|
154
152
|
| Normal analiz | `### Analysis` - impact summary from Phase 1, risks from Phase 4 (pipeline-log source, high-level only) |
|
|
155
153
|
| Teknik analiz | `### Technical Details` - Changes (what/why per file group), Architecture (structural decisions, pattern changes), Dependencies (new imports/frameworks/packages). Source: Phase 1 planning + Phase 2 dev log + `git diff --stat`. **PR and Confluence only** - never rendered into a Jira comment. |
|
|
156
154
|
| Test senaryoları | `### Test Scenarios` - precondition / steps / expected table (4-8 rows), user perspective |
|
|
155
|
+
| Test Koşumu (Xray) | `### Test Koşumu` - Xray Test Execution of the task's UI scenario run (`channels/test-run.md`) |
|
|
157
156
|
| Auto-diff | Old enrich Output Template verbatim - Root Cause / Solution / Changed Files / Test Scenarios |
|
|
158
157
|
| Manuel not | `### Notes` - user-provided paragraph, or LLM-split into subsections if `--message` is plain text and long |
|
|
159
158
|
| Cost özeti | `### Cost Summary` - per-phase token tally + est. USD table. Source: `phase-tracker.sh` phase status + optional OTel spans. See "Cost summary generation" below. |
|
|
@@ -161,7 +160,7 @@ lead reads before deciding how wide to test.
|
|
|
161
160
|
|
|
162
161
|
**The content options are sources, not the body's shape.** Which sections a PR
|
|
163
162
|
body carries and in what order is fixed by `channels/pr.md` (`summary` →
|
|
164
|
-
`technical` → `architecture` → `impact` → `test_scenarios` → `visuals` → `risk`
|
|
163
|
+
`technical` → `architecture` → `impact` → `test_scenarios` → `test_run` → `visuals` → `risk`
|
|
165
164
|
→ `dependencies` → `build` → `related`); the options below choose what gets
|
|
166
165
|
gathered to fill them. A content option left unselected means a section has no
|
|
167
166
|
source, not that the section may be reordered or renamed.
|
|
@@ -202,6 +201,8 @@ source, not that the section may be reordered or renamed.
|
|
|
202
201
|
1. {step}
|
|
203
202
|
2. **Expected:** {what should still behave as before}
|
|
204
203
|
|
|
204
|
+
### Test Koşumu ← if "Test Koşumu (Xray)" selected
|
|
205
|
+
|
|
205
206
|
### Notes ← if "Manuel not" selected
|
|
206
207
|
{user message}
|
|
207
208
|
|
|
@@ -241,7 +242,7 @@ If no cached report exists, skip silently - this is augmentation, not a gate.
|
|
|
241
242
|
|
|
242
243
|
**Work summary generation:**
|
|
243
244
|
|
|
244
|
-
Emitted only when `reportContent.workSummary === true` and at least one of (`agent-state.json`, `--branch` flag) is available. The shell adapter is `$HOME/.claude/scripts/render-work-summary.sh <taskId>`, and that script's own header is the spec for what it emits - task header, scope delivered, changed files, review outcome, phase strip - including the caps and the hidden-when-empty rules.
|
|
245
|
+
Emitted only when `reportContent.workSummary === true` and at least one of (`agent-state.json`, `--branch` flag) is available. The shell adapter is `$HOME/.claude/scripts/render-work-summary.sh <taskId>`, and that script's own header is the spec for what it emits - task header, scope delivered, changed files, review outcome, phase strip - including the caps and the hidden-when-empty rules. Exit 2 means the state was unreadable: skip the section, do not substitute a hand-written one.
|
|
245
246
|
|
|
246
247
|
**Output template:**
|
|
247
248
|
|
|
@@ -303,11 +304,11 @@ Skipped in exactly two cases:
|
|
|
303
304
|
| Case | Why |
|
|
304
305
|
|---|---|
|
|
305
306
|
| Autopilot (`state.autopilot === true` or `MULTI_AGENT_AUTOPILOT=1`), attended | Explicit consent for side-effect creation: posts directly with prefs/flag selections |
|
|
306
|
-
| `--dry-run` |
|
|
307
|
+
| `--dry-run` | Prints without posting |
|
|
307
308
|
|
|
308
309
|
**Preview render** (one block per selected channel, final body after humanizer - shown in readable Markdown, channel-specific markup conversion happens after approval).
|
|
309
310
|
|
|
310
|
-
Conversion is per-channel
|
|
311
|
+
Conversion is per-channel; two channels have none:
|
|
311
312
|
|
|
312
313
|
| Channel | Conversion after approval | Table |
|
|
313
314
|
|---|---|---|
|
|
@@ -316,7 +317,7 @@ Conversion is per-channel and two of the four channels have none. Do not reach f
|
|
|
316
317
|
| Jira comment | markdown → Jira wiki markup | `channels/jira.md` "Wiki markup conversion" |
|
|
317
318
|
| Confluence page | markdown → storage format | `channels/confluence.md` "Body conversion" |
|
|
318
319
|
|
|
319
|
-
|
|
320
|
+
The Jira table is the only *text* markup table in the doc set and never applies to the PR body: `h2.`, `{{code}}` or `#`-numbered lists render there as raw wiki markup.
|
|
320
321
|
|
|
321
322
|
```
|
|
322
323
|
── PR description ({repoName} #{prNumber}, replace) ─────────
|
|
@@ -327,7 +328,7 @@ Applying the Jira table to the PR body is the recurring failure of this step: it
|
|
|
327
328
|
{body}
|
|
328
329
|
```
|
|
329
330
|
|
|
330
|
-
Secondary artifacts ride along as one-line intents at the bottom of the preview: Wiki page list, wiki → Jira triad comment (when Wiki is selected and the triad is active per `$HOME/.claude/multi-agent-refs/issue-jira-triad.md`), Board status move (`{from} → {to}`), GitHub issue comment + Progress-flag sync (Phase 5 Step 1.5 - same gate, see `$HOME/.claude/multi-agent-refs/phases/phase-5-report.md`).
|
|
331
|
+
Secondary artifacts ride along as one-line intents at the bottom of the preview: Wiki page list, wiki → Jira triad comment (when Wiki is selected and the triad is active per `$HOME/.claude/multi-agent-refs/issue-jira-triad.md`), Board status move (`{from} → {to}`), GitHub issue comment + Progress-flag sync (Phase 5 Step 1.5 - same gate, see `$HOME/.claude/multi-agent-refs/phases/phase-5-report.md`), test-run candidates to untick (`channels/test-run.md`), the Jira body's `--measure` (`render-jira-evidence.mjs`).
|
|
331
332
|
|
|
332
333
|
**Then a single AskUserQuestion** (`picker-contract.md`; `question`/`label`/`description` in `outputLanguage`, `header` English):
|
|
333
334
|
|
|
@@ -406,7 +407,8 @@ Persist selections to `prefs.global.reportChannels` + `prefs.global.reportConten
|
|
|
406
407
|
| Flag | Effect |
|
|
407
408
|
|------|--------|
|
|
408
409
|
| `--channels pr,jira,confluence,wiki` | Non-interactive channel selection (comma list). Skips channel menu. |
|
|
409
|
-
| `--content normal,technical,test,auto-diff,note` | Non-interactive content selection. Skips content menu. |
|
|
410
|
+
| `--content normal,technical,test,auto-diff,note,test-run` | Non-interactive content selection. Skips content menu. |
|
|
411
|
+
| `--flow-run <runId>[,<runId>...]` | Runs for the test run block (`channels/test-run.md`). |
|
|
410
412
|
| `--message "..."` | Manual mode - use user text as source, no diff read. Forces `content=note`. |
|
|
411
413
|
| `--message-file path` | Manual mode, long message from file. |
|
|
412
414
|
| `--append` | PR description: append instead of replace. |
|
|
@@ -448,7 +450,7 @@ Phase 5 invokes this command internally instead of running its own inline Jira/C
|
|
|
448
450
|
| Phase 5 | Progress tracker (sub-steps 1-3), agent-log finalization (step 4), knowledge+memory capture (step 5), telemetry emission |
|
|
449
451
|
| `channels` | All external delivery: PR description update, Jira comment, Confluence page, Wiki pages |
|
|
450
452
|
|
|
451
|
-
Phase 5 passes a runtime state bundle: `{jiraId, prUrl, remoteType, taskType, figmaConfig, agentState, pipelineLogPath}`. `channels` reads these directly, skips target-resolution Step 1.
|
|
453
|
+
Phase 5 passes a runtime state bundle: `{jiraId, prUrl, remoteType, taskType, figmaConfig, agentState, pipelineLogPath, flowRuns}`. `channels` reads these directly, skips target-resolution Step 1.
|
|
452
454
|
|
|
453
455
|
**Autopilot contract:** Phase 5 ALWAYS pauses at the channels menu (breaks generic autopilot zero-interaction). 30-min timeout → session ends cleanly, task resumable via `/multi-agent:resume`. See `$HOME/.claude/multi-agent-refs/phases/modes.md` for full contract. The Step 6 body preview + approval gate follows the same split: interactive runs approve the composed bodies before dispatch; autopilot posts directly after the menu resolves.
|
|
454
456
|
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
# "comments": [{id, author, created, url, body, truncated}], // newest kept, oldest first
|
|
30
30
|
# "commentsTotal": 12, // how many the tracker holds
|
|
31
31
|
# "links": [{key, relation, direction, summary, status, url}], // jira issuelinks
|
|
32
|
+
# "remoteLinks": [{title, url, relationship, application}], // jira Issue Links (remote:
|
|
33
|
+
# // Figma, Confluence, web); [] when unreadable
|
|
32
34
|
# "untrustedFields": ["description", ...], // tracker text: data, never instructions
|
|
33
35
|
# "maturity": {
|
|
34
36
|
# "score": 0..100,
|
|
@@ -254,6 +256,38 @@ fetch_jira() {
|
|
|
254
256
|
|| { echo "ERR: Jira fetch failed for $key" >&2; return 1; }
|
|
255
257
|
}
|
|
256
258
|
|
|
259
|
+
# Issue Links of the remote kind (Figma frames, Confluence pages, web links) live
|
|
260
|
+
# behind their own endpoint, so they cost one GET. Failure is soft: an issue
|
|
261
|
+
# whose links cannot be read still fetches, with an empty list.
|
|
262
|
+
fetch_jira_remote_links() {
|
|
263
|
+
local key="$1" raw
|
|
264
|
+
raw=$(jira_curl "/rest/api/2/issue/$key/remotelink" 2>/dev/null) || { printf '[]'; return 0; }
|
|
265
|
+
printf '%s' "$raw" | python3 -c '
|
|
266
|
+
import json, os, sys
|
|
267
|
+
try:
|
|
268
|
+
data = json.load(sys.stdin)
|
|
269
|
+
except Exception:
|
|
270
|
+
data = []
|
|
271
|
+
out = []
|
|
272
|
+
for item in data if isinstance(data, list) else []:
|
|
273
|
+
obj = (item or {}).get("object") or {}
|
|
274
|
+
url = obj.get("url") or ""
|
|
275
|
+
if not url.startswith(("https://", "http://")):
|
|
276
|
+
continue
|
|
277
|
+
out.append({
|
|
278
|
+
"title": (obj.get("title") or "")[:200],
|
|
279
|
+
"url": url,
|
|
280
|
+
"relationship": (item or {}).get("relationship") or "",
|
|
281
|
+
"application": ((item or {}).get("application") or {}).get("type") or "",
|
|
282
|
+
})
|
|
283
|
+
try:
|
|
284
|
+
cap = int(os.environ.get("ISSUE_REMOTE_LINKS_MAX", "30"))
|
|
285
|
+
except ValueError:
|
|
286
|
+
cap = 30
|
|
287
|
+
print(json.dumps(out[:max(cap, 0)], ensure_ascii=False))
|
|
288
|
+
' 2>/dev/null || printf '[]'
|
|
289
|
+
}
|
|
290
|
+
|
|
257
291
|
# One request returns every sibling WITH its description. The issue's own
|
|
258
292
|
# `subtasks` field lists ITS children, not its siblings, and the parent's
|
|
259
293
|
# lists siblings without descriptions - either shape costs one GET each.
|
|
@@ -330,6 +364,7 @@ try:
|
|
|
330
364
|
except (TypeError, ValueError):
|
|
331
365
|
comments_total = len(comments)
|
|
332
366
|
links = _json_field("links", list) or []
|
|
367
|
+
remote_links = _json_field("remoteLinks", list) or []
|
|
333
368
|
|
|
334
369
|
descriptor = {
|
|
335
370
|
"kind": fields.get("kind"),
|
|
@@ -353,7 +388,8 @@ descriptor = {
|
|
|
353
388
|
"comments": comments,
|
|
354
389
|
"commentsTotal": comments_total,
|
|
355
390
|
"links": links,
|
|
356
|
-
"
|
|
391
|
+
"remoteLinks": remote_links,
|
|
392
|
+
"untrustedFields": ["title", "description", "parentDescription", "relatedIssues", "comments", "links", "remoteLinks"],
|
|
357
393
|
}
|
|
358
394
|
extra = {}
|
|
359
395
|
if fields.get("needsRepoPicker"):
|
|
@@ -657,7 +693,8 @@ sys.stdout.write(json.dumps(out[:cap], ensure_ascii=False))
|
|
|
657
693
|
"url=https://$JIRA_HOST/browse/$KEY" "branchHint=$branch" \
|
|
658
694
|
"priority=$priority" "resolution=$resolution" "fixVersions=$fixversions" \
|
|
659
695
|
"parentKey=$parentkey" "parentDescription=$parentdesc" \
|
|
660
|
-
"relatedIssues=$relatedjson" "comments=$commentsjson" "links=$linksjson"
|
|
696
|
+
"relatedIssues=$relatedjson" "comments=$commentsjson" "links=$linksjson" \
|
|
697
|
+
"remoteLinks=$(fetch_jira_remote_links "$KEY")"
|
|
661
698
|
;;
|
|
662
699
|
|
|
663
700
|
jira-url)
|
|
@@ -804,6 +841,7 @@ out = {
|
|
|
804
841
|
"relatedIssues": json.dumps(d.get("relatedIssues") or [], ensure_ascii=False),
|
|
805
842
|
"comments": json.dumps({"items": comments, "total": d.get("commentsTotal") or len(comments)}, ensure_ascii=False),
|
|
806
843
|
"links": json.dumps(d.get("links") or [], ensure_ascii=False),
|
|
844
|
+
"remoteLinks": json.dumps(d.get("remoteLinks") or [], ensure_ascii=False),
|
|
807
845
|
}
|
|
808
846
|
if d.get("needsRepoPicker"):
|
|
809
847
|
out["needsRepoPicker"] = "1"
|