@mmerterden/multi-agent-pipeline 20.3.0 → 20.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/docs/ecosystem.md +2 -2
- package/docs/facts.json +1 -1
- package/install/claude.mjs +35 -0
- package/manifest.json +42 -40
- package/package.json +1 -1
- package/pipeline/commands/figma-to-swiftui.md +6 -4
- package/pipeline/commands/multi-agent/jira/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/refactor/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/review/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/setup/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/stack/SKILL.md +2 -4
- package/pipeline/commands/multi-agent/sync/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/update/SKILL.md +3 -10
- package/pipeline/lib/usage-endpoint.mjs +33 -0
- package/pipeline/multi-agent-refs/channels/pr.md +2 -2
- package/pipeline/multi-agent-refs/features/doctor.md +2 -1
- package/pipeline/multi-agent-refs/features/prior-fix-detection.md +1 -1
- package/pipeline/multi-agent-refs/generate-issue.md +9 -9
- package/pipeline/multi-agent-refs/outside-the-pipeline.md +2 -2
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-2-dev.md +2 -1
- package/pipeline/multi-agent-refs/phases/phase-4-commit.md +4 -4
- package/pipeline/multi-agent-refs/setup/repo-discovery.md +2 -2
- package/pipeline/schemas/prefs.schema.json +1 -1
- package/pipeline/scripts/capture-resume.sh +51 -37
- package/pipeline/scripts/check-derived-drift.mjs +1 -1
- package/pipeline/scripts/doctor.mjs +21 -0
- package/pipeline/scripts/plugin-refresh.sh +92 -0
- package/pipeline/scripts/usage-register.mjs +6 -6
- package/pipeline/scripts/usage-report.mjs +6 -5
- package/pipeline/skills/.skill-manifest.json +7 -7
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +6 -4
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +2 -4
- package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +1 -1
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,26 @@ Internal file-layout changes that don't affect the slash-command surface are sti
|
|
|
16
16
|
|
|
17
17
|
## [Unreleased]
|
|
18
18
|
|
|
19
|
+
## [20.4.0] - 2026-09-25
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- **Stack plugins are actually updated.** `/multi-agent:update`, setup and `/multi-agent:stack` call the new `plugin-refresh.sh`, which uses `claude plugin marketplace add|update` and then `claude plugin update` for every installed `@multi-agent-plugins` plugin in its own scope (project installs from inside their project). The previous `claude marketplace ...` form is not a CLI command, and its errors were discarded; the script passes the CLI's errors through and exits non-zero on a failed step.
|
|
24
|
+
- **Tokens stay off argv in shipped curl examples.** Authorization and X-Figma-Token headers are piped from `printf` (a shell builtin) into `curl -H @-`, which keeps the URL on argv for the unattended host allowlist; `-u user:token` pairs go through `--config <(printf ...)`. `smoke-secret-off-argv.sh` now scans for the argv form.
|
|
25
|
+
- **Issue and ticket text never lands inside double quotes.** Commit messages, PR titles and issue bodies filled from issue text are written to a file and passed with `-F` / `--body-file` (or a quoted heredoc outside the phase docs); `smoke-untrusted-in-quotes.sh` guards it. The reviewer lookup in Phase 4 passes the project name to jq with `--arg`.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- The SessionStart banner counted the `artifacts/` backup that `gc-abandoned` keeps of an abandoned run as a live run, read a state that records `phase` instead of `currentPhase` as Phase `?`, named the newest run as the oldest, missed the Phase 5 channel pause, and ignored `outputLanguage`.
|
|
30
|
+
- The installer collapses a hook registered twice on the same matcher to one registration, and `/multi-agent:doctor` reports a duplicate under `hook-coverage`.
|
|
31
|
+
|
|
32
|
+
## [20.3.1] - 2026-09-25
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
|
|
36
|
+
- Registration and run reports reach the reporting site from installs whose `usageLog.endpoint` names its platform host: that host only redirects to the site's domain, and the usage clients never follow a redirect with a credential, so the endpoint is rewritten to the domain before any request.
|
|
37
|
+
- `usage-register.mjs` stores the issued token: it passes `-` so the credential store reads the value from stdin.
|
|
38
|
+
|
|
19
39
|
## [20.3.0] - 2026-09-25
|
|
20
40
|
|
|
21
41
|
### Added
|
package/docs/ecosystem.md
CHANGED
|
@@ -128,7 +128,7 @@ graph TD
|
|
|
128
128
|
BUMP -->|yes| PATCH["bump that plugin's<br/>patch version"]
|
|
129
129
|
BUMP -->|no| SKIP["idempotent no-op"]
|
|
130
130
|
|
|
131
|
-
PATCH --> CONSUMER["/multi-agent:update<br/>→
|
|
131
|
+
PATCH --> CONSUMER["/multi-agent:update<br/>→ plugin marketplace update + plugin update"]
|
|
132
132
|
|
|
133
133
|
style EXT fill:#ffd,stroke:#333
|
|
134
134
|
```
|
|
@@ -147,7 +147,7 @@ change.
|
|
|
147
147
|
**Consumption is pull, not push.** A consumer repo enables a stack plugin once
|
|
148
148
|
(`/multi-agent:stack ios`, writing the enabled-plugins list into
|
|
149
149
|
`.claude/settings.json`) and picks up new plugin versions only when it runs
|
|
150
|
-
`/multi-agent:update`, which
|
|
150
|
+
`/multi-agent:update`, which refreshes the catalog with `claude plugin marketplace update multi-agent-plugins` and then runs `claude plugin update` for each installed plugin (`pipeline/scripts/plugin-refresh.sh`).
|
|
151
151
|
Publishing a new plugin version does not retroactively change anything already
|
|
152
152
|
running in a consumer's session.
|
|
153
153
|
|
package/docs/facts.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$comment": "Generated by pipeline/scripts/gen-facts.mjs. Do not hand-edit: the site reads this, and a number edited here instead of at its source is the drift this file removes.",
|
|
3
3
|
"generatedAt": "2026-09-25",
|
|
4
|
-
"version": "20.
|
|
4
|
+
"version": "20.4.0",
|
|
5
5
|
"phaseSchema": 2,
|
|
6
6
|
"phases": [
|
|
7
7
|
{
|
package/install/claude.mjs
CHANGED
|
@@ -685,6 +685,39 @@ function ensurePreferences(prefsPath, pipelineSrc) {
|
|
|
685
685
|
}
|
|
686
686
|
}
|
|
687
687
|
|
|
688
|
+
// The installer adds a hook only when it is absent, and a hand-merged template
|
|
689
|
+
// or an older install can leave the same command registered twice on one
|
|
690
|
+
// matcher. Claude Code then runs it twice on every matching tool call. Keep the
|
|
691
|
+
// first occurrence of each (event, matcher, command) and drop groups left empty.
|
|
692
|
+
export function collapseDuplicateHooks(hooks) {
|
|
693
|
+
if (!hooks || typeof hooks !== "object") return false;
|
|
694
|
+
let changed = false;
|
|
695
|
+
for (const [event, groups] of Object.entries(hooks)) {
|
|
696
|
+
if (!Array.isArray(groups)) continue;
|
|
697
|
+
const seen = new Set();
|
|
698
|
+
const kept = [];
|
|
699
|
+
for (const group of groups) {
|
|
700
|
+
if (!group || !Array.isArray(group.hooks)) {
|
|
701
|
+
kept.push(group);
|
|
702
|
+
continue;
|
|
703
|
+
}
|
|
704
|
+
const before = group.hooks.length;
|
|
705
|
+
group.hooks = group.hooks.filter((h) => {
|
|
706
|
+
if (!h || typeof h.command !== "string") return true;
|
|
707
|
+
const key = `${group.matcher || ""}\u0000${h.command}`;
|
|
708
|
+
if (seen.has(key)) return false;
|
|
709
|
+
seen.add(key);
|
|
710
|
+
return true;
|
|
711
|
+
});
|
|
712
|
+
if (group.hooks.length !== before) changed = true;
|
|
713
|
+
if (group.hooks.length > 0) kept.push(group);
|
|
714
|
+
}
|
|
715
|
+
if (kept.length !== groups.length) changed = true;
|
|
716
|
+
hooks[event] = kept;
|
|
717
|
+
}
|
|
718
|
+
return changed;
|
|
719
|
+
}
|
|
720
|
+
|
|
688
721
|
export function configureSettings(home) {
|
|
689
722
|
console.log(" [Claude Code] Configuring hooks + context management...");
|
|
690
723
|
const SETTINGS_PATH = join(home, ".claude", "settings.json");
|
|
@@ -789,6 +822,8 @@ export function configureSettings(home) {
|
|
|
789
822
|
settingsChanged = true;
|
|
790
823
|
}
|
|
791
824
|
|
|
825
|
+
if (collapseDuplicateHooks(settings.hooks)) settingsChanged = true;
|
|
826
|
+
|
|
792
827
|
if (settingsChanged && isDryRun()) {
|
|
793
828
|
console.log(` [dry-run] would update ${SETTINGS_PATH} (hooks + env)`);
|
|
794
829
|
} else if (settingsChanged) {
|
package/manifest.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "20.
|
|
4
|
-
"commit": "
|
|
5
|
-
"generatedAt": "2026-09-
|
|
3
|
+
"version": "20.4.0",
|
|
4
|
+
"commit": "47524b22c14c8b28503ea0707ac4b7d7dfa3718f",
|
|
5
|
+
"generatedAt": "2026-09-25T15:35:01.768Z",
|
|
6
6
|
"algorithm": "sha256",
|
|
7
|
-
"fileCount":
|
|
7
|
+
"fileCount": 1217,
|
|
8
8
|
"files": {
|
|
9
|
-
"CHANGELOG.md": "
|
|
9
|
+
"CHANGELOG.md": "3d7abc887673cc1897d4eea75c3db3d4cd2a396a6cb8148c3e1e607e29c2984b",
|
|
10
10
|
"LICENSE": "8d8c51aaf1e1538b180c69965fa038db71be86798cc3e26a143bebfefe16a43e",
|
|
11
11
|
"README.md": "0613eebb0b38062bd94c44043595d1950b5c9b470874dd8e402c052fd20960cf",
|
|
12
12
|
"README.tr.md": "0c6b5e6943d6c3d3bf3a7ed99c705fb9a78d15d7722e6252f58404d3f6d3524d",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"docs/adr/README.md": "6ff58bc97dde4f1d94df60e4e221396a46906682b429ef275fd813cd288956e1",
|
|
32
32
|
"docs/architecture.md": "fab80b1206fd8d1274f18d53a0bb3014709975256e927feaa457af45ed6955a7",
|
|
33
33
|
"docs/best-practices.md": "f8b75b0d38b5896a6a852bb30a1edddeb24dab8b5b7b1d9313290e1241c72024",
|
|
34
|
-
"docs/ecosystem.md": "
|
|
34
|
+
"docs/ecosystem.md": "e6c00f30e95b5e178f77bdfbefd686c8a4164f39c03865a89ab23465d1a37acf",
|
|
35
35
|
"docs/engineering.md": "550528cd47c7d2c921729c68d0782a00ac8e77a4bdfec479f6749f9c3235d188",
|
|
36
|
-
"docs/facts.json": "
|
|
36
|
+
"docs/facts.json": "5b4dd591c0972a9021bb96761715555b63a2de819d4207439f32c27a3193f01c",
|
|
37
37
|
"docs/features.md": "6c9f0efb00c683e6f611c440c87847b187f8b0eee59e9e812f3a241695bc2ae1",
|
|
38
38
|
"docs/performance.md": "bbf2f3922c25dcba0c1a9e69ef420e3871a729af5b35009a49b48a5d3c5cd151",
|
|
39
39
|
"docs/recovery-guide.md": "59a8f1b66b34cb9ff5507b3d54dac3b9915e184aa044d9c758d18cac818d510e",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"install/_plugin-skills.mjs": "bf287053133f940df0ca434cfc5ee522fd27e80dc7f7e60ccc963ecaabee047a",
|
|
52
52
|
"install/_telemetry.mjs": "5433d753f909beed2c8789272bba05e245482c472f83d3444f58000c4c9a634b",
|
|
53
53
|
"install/_unattended-profile.mjs": "e1ed82bde35d19105ee12c2a551eb778912b0e5c93ab227fd15c993098d98de0",
|
|
54
|
-
"install/claude.mjs": "
|
|
54
|
+
"install/claude.mjs": "f98055b1a48850f773711189b275be9fc855ca53fdf6828369595a4fa89c82a7",
|
|
55
55
|
"install/codex.mjs": "1eb8422a73617994ed80711946a4a49415f092ecacc50396eed047f899f5ea65",
|
|
56
56
|
"install/copilot.mjs": "555e9e253fb9d3e20584dd3822575e40016fb5ded5cba52559f56f4fb61b0af7",
|
|
57
57
|
"install/index.mjs": "9179e64ebab9eef27db614611a10df399a5c96757fff0faba7853fba3d5fbbdb",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"install/templates/multi-agent-autopilot-awake.plist.template": "ddd25c76c56fcbb38a89de8e35637372d70ace993d6bc487a88ca9cfb702fe1f",
|
|
62
62
|
"install/templates/multi-agent-autopilot.plist.template": "122c8a61cd927edd99375d6e3da40f1d42bcceed5b6641785c8b28bb930bc77e",
|
|
63
63
|
"install/unattended-profile-legacy.json": "f52e86b998956f09ad306b1735a6c10b58580d7082d8a55665a4c6bb15c3aa1f",
|
|
64
|
-
"package.json": "
|
|
64
|
+
"package.json": "ef6a78d030798ebfd4823be3c4b884ce9a7b24a04d1b1ea9e2671d6c8ef8ec3c",
|
|
65
65
|
"pipeline/agents/android-architect.md": "baa5787b3a4c800dd065e27e05f44462927c9938c8bb676c80f18cb10e2b12c4",
|
|
66
66
|
"pipeline/agents/backend-architect.md": "a83bd7f8b0a5289a1ef9a9b59d60fc759b8db260606ff2df427cf5ade5db8530",
|
|
67
67
|
"pipeline/agents/bulk-reader.md": "0b9d415fab2c449d43329d759049af9401255d06b32d57a38c95e684837b19bf",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"pipeline/claude-md-template.md": "bcc75808a54f32f11e688875cda23d3be3c1524511258e3d4ea5e7c0d2a92a92",
|
|
76
76
|
"pipeline/commands/archive-guard.md": "16c5d3feaa91950402d62e66adc7fcf519a25d028a9303cb1e9c08af2765c04b",
|
|
77
77
|
"pipeline/commands/deploy.md": "d20f95f3b1d2357c8c92f3047e8fe11eadf539ff13cab9b54f072f0ad697242a",
|
|
78
|
-
"pipeline/commands/figma-to-swiftui.md": "
|
|
78
|
+
"pipeline/commands/figma-to-swiftui.md": "cb198d279d36c6c34648ab9834433d00f81c9d427934cc1641c0e09f1878b0a6",
|
|
79
79
|
"pipeline/commands/multi-agent/SKILL.md": "974ee683523b29a6b9c426158c2a73d4f24c6521b934476a37b1d4b0df354b57",
|
|
80
80
|
"pipeline/commands/multi-agent/analysis-jira/SKILL.md": "3b656d82f6d83599e34c871e66127caf3f8522eafd22c5527404c8f854e2e8f1",
|
|
81
81
|
"pipeline/commands/multi-agent/analysis-resolve/SKILL.md": "3c712e86d4b2e80d1ba51811ea32c8d5fa11291ab62c6dae944f9c19ddfd9868",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"pipeline/commands/multi-agent/help/SKILL.md": "1edef50940b29a9b0d391270347e52032de91ead07e5c0c02bf047ea382425ab",
|
|
99
99
|
"pipeline/commands/multi-agent/ios-coding-standard/SKILL.md": "436d00f345601b6b3fac369af48cf3c73109022cc4218e8df0625a6c62f1ae70",
|
|
100
100
|
"pipeline/commands/multi-agent/issue/SKILL.md": "9a7ca4c1cb107f91841922bfcc369d3ea5424772b1fe3e9855717e645954b16d",
|
|
101
|
-
"pipeline/commands/multi-agent/jira/SKILL.md": "
|
|
101
|
+
"pipeline/commands/multi-agent/jira/SKILL.md": "3e67461c2fd6e3dbf45340b6ee1e12bae30ebf596e476d620d1582378af75dd1",
|
|
102
102
|
"pipeline/commands/multi-agent/kill/SKILL.md": "159815a8e221957199bc0a1b4f89171b30ebd560a71a4c94951c46e0274f59f7",
|
|
103
103
|
"pipeline/commands/multi-agent/language/SKILL.md": "4b58b25bda9449a52df005f8d3417ace2f8b3a18d84524dc021a9561f1d16b9d",
|
|
104
104
|
"pipeline/commands/multi-agent/log/SKILL.md": "033bafcf4c9b8d117a892f50a3039fd11d753b4db070ed14c50e8388613482fa",
|
|
@@ -107,13 +107,13 @@
|
|
|
107
107
|
"pipeline/commands/multi-agent/prune-logs/SKILL.md": "a7b22228ec338623c386cfd3744092488eed6871c65b531bdb6a0eb8dc8c2e9b",
|
|
108
108
|
"pipeline/commands/multi-agent/prune-prompts/SKILL.md": "1aefd2b737b34aaff18f3fd12090322c04dbc41c981200622d7989c9ad45e9c2",
|
|
109
109
|
"pipeline/commands/multi-agent/purge/SKILL.md": "c881805f80d7db909bcf09f1a5c980ebaf0c31d9a8ee9cae4f729387ff4ca19d",
|
|
110
|
-
"pipeline/commands/multi-agent/refactor/SKILL.md": "
|
|
110
|
+
"pipeline/commands/multi-agent/refactor/SKILL.md": "2b494c2390121a8b8ae3c056f56583661d5dbed79d8bd073eff40095981d540e",
|
|
111
111
|
"pipeline/commands/multi-agent/research/SKILL.md": "aab85ea942291b0a68aec5896b0b3f79677684733859a4c4cbb77931c7dacf92",
|
|
112
112
|
"pipeline/commands/multi-agent/resume/SKILL.md": "190a604ac1e87912ef2519f59199928d2329caa7a611bdc49fe237c43e885975",
|
|
113
113
|
"pipeline/commands/multi-agent/review-analysis/SKILL.md": "735bc597def9779d5862cecf6a2b2542ac4d9573752aa3a46bca6b49f223f1e4",
|
|
114
114
|
"pipeline/commands/multi-agent/review-issue/SKILL.md": "7ae7fe774c02114840cc21fb303f98c9a36bc2903f1db4cfc2cebe213ca70f1b",
|
|
115
115
|
"pipeline/commands/multi-agent/review-jira/SKILL.md": "db8ecc7ec8c7040aac9c71dcf40dae194a76f146ab227833b909b45580b5347a",
|
|
116
|
-
"pipeline/commands/multi-agent/review/SKILL.md": "
|
|
116
|
+
"pipeline/commands/multi-agent/review/SKILL.md": "82d87c534e65d721fbe156b7b43903ccd3eaf85c3a8d06145dd9e8295c969a2b",
|
|
117
117
|
"pipeline/commands/multi-agent/route-off/SKILL.md": "aa8b677898b0efde1bd19c50383497da43a83b3b811e36f60695675d845c2de8",
|
|
118
118
|
"pipeline/commands/multi-agent/route-on/SKILL.md": "3324430a81609719264a5118d6b4613a6af10e4a04c13a809ee367f1251e58f9",
|
|
119
119
|
"pipeline/commands/multi-agent/route-status/SKILL.md": "00b1759c523b672c053bfb5f3c6af67ef0bd9b7ab473576017da22c6a73148ec",
|
|
@@ -124,12 +124,12 @@
|
|
|
124
124
|
"pipeline/commands/multi-agent/search/SKILL.md": "231f0dd266907423cc45feeadc4170852dc6fd45239e0bee3ee4e08d4d0f5958",
|
|
125
125
|
"pipeline/commands/multi-agent/security-review/SKILL.md": "dfc2fad484c81169912062391f7ad97500ef113d95741902e5e18e7dd60b6da1",
|
|
126
126
|
"pipeline/commands/multi-agent/serve/SKILL.md": "88f6f0350cb0abcd2a4ed54c12f6cfb5bf4298909bff06891fede25888ae69ec",
|
|
127
|
-
"pipeline/commands/multi-agent/setup/SKILL.md": "
|
|
128
|
-
"pipeline/commands/multi-agent/stack/SKILL.md": "
|
|
127
|
+
"pipeline/commands/multi-agent/setup/SKILL.md": "6bd501bb8ec23a45a53337e383e4ed077e0aeb939580935b92ae8bb708e2e264",
|
|
128
|
+
"pipeline/commands/multi-agent/stack/SKILL.md": "6d64e96b9a2d41d25ff077afa84300172cac9bf9dd78ec1d9fbbaf45df34f5dd",
|
|
129
129
|
"pipeline/commands/multi-agent/status/SKILL.md": "a2ed316434aca49f692aafe11f95873822b9b955558a53f4f6a9667ee32a3659",
|
|
130
130
|
"pipeline/commands/multi-agent/steer/SKILL.md": "07e738c228ba328f717f86e97e7af207df090b16433e28e613d430c3ff0aee3e",
|
|
131
131
|
"pipeline/commands/multi-agent/store-ready/SKILL.md": "0fa95a4bb2c355b360bf0943e1d69f0319ded18d7af540f2a154f31101514558",
|
|
132
|
-
"pipeline/commands/multi-agent/sync/SKILL.md": "
|
|
132
|
+
"pipeline/commands/multi-agent/sync/SKILL.md": "17049e9ef98613825b0c4d074655477f033df460c9b760728c661f6c843a7276",
|
|
133
133
|
"pipeline/commands/multi-agent/test-accessibility/SKILL.md": "d62992541303a0776ca088d5f3d5475108fd3fba5e25af04efb3ea4bbbd1fe21",
|
|
134
134
|
"pipeline/commands/multi-agent/test-dark-mode/SKILL.md": "6bfe158c94f76fc6f4d06454978d0c5cad6ec00645ab48c1d1cee15ad93ae095",
|
|
135
135
|
"pipeline/commands/multi-agent/test-dynamic-type/SKILL.md": "c093fe1a78a4266ad4cf1e48b3cc233d9abd7e1c524d0b8e5db0c81d8b4d58fd",
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"pipeline/commands/multi-agent/test/SKILL.md": "5a67be2b1ec0321e79f8b7f35be53676e349e55a4f8ca09a07f0de89dadac8c4",
|
|
138
138
|
"pipeline/commands/multi-agent/testflight-validation/SKILL.md": "38fa8d3d3c8340d025e100c53a70183cbad22665b7ddccbb6102c05986cce489",
|
|
139
139
|
"pipeline/commands/multi-agent/uninstall/SKILL.md": "b2124820a6e10cdd72be71df2183aad4f8bd8988ec90248c88599c1514f7d9ab",
|
|
140
|
-
"pipeline/commands/multi-agent/update/SKILL.md": "
|
|
140
|
+
"pipeline/commands/multi-agent/update/SKILL.md": "63b896036401a37da80de26a53eb855b0dba368215ee96ab0f83ef22478f7d21",
|
|
141
141
|
"pipeline/commands/sim-test.md": "17fcefc2030f0ab24b3ee59807dfc11264b34d7455138081996859b1fee8664e",
|
|
142
142
|
"pipeline/contract/CHANGELOG.md": "33d5dd6b35d8498928f431729dbccc9aae2f42e3beb04da1bd52f682846b2c10",
|
|
143
143
|
"pipeline/contract/README.md": "4a60faddcd31973302bab93bb3fab74da96024c79aaba3676c6ceeabc2088132",
|
|
@@ -213,6 +213,7 @@
|
|
|
213
213
|
"pipeline/lib/unattended.mjs": "80f293edcd2bea550a687a62f41a4eb33e2bfe753c61040daf08921f5cc86e2c",
|
|
214
214
|
"pipeline/lib/unattended.sh": "6160d784bb36b9eaa71fcd097d5b34c093534ced02442bdf16778d66a794dac2",
|
|
215
215
|
"pipeline/lib/untrusted.mjs": "391f7093658386cac2ae2aabb21767cfc661e8bb04c7572aa2dc15b114bdc078",
|
|
216
|
+
"pipeline/lib/usage-endpoint.mjs": "9aed3a854e729f82563ca7614c9ab8dbb5af3b42fa0f7c10204b0094627b9906",
|
|
216
217
|
"pipeline/lib/user-facing.mjs": "08d8a1f4f12e36de88673d24167e244862f56671586a5ce26e73f52821996eed",
|
|
217
218
|
"pipeline/lib/user-facing.sh": "969038aa575a7075cbc8c2857b3e6bddfa5c8ea8a15811ad65c6660735539b76",
|
|
218
219
|
"pipeline/lib/vercel-deploy.sh": "7890a86f050611e7743e101303f1263527713019824a15aa4dddc09940bb0a65",
|
|
@@ -237,7 +238,7 @@
|
|
|
237
238
|
"pipeline/multi-agent-refs/channels/issue-comment.md": "19df6d8d6c23b5ea88687250dc10dd5fa35ba2b2e279efcb000e83622a0664f6",
|
|
238
239
|
"pipeline/multi-agent-refs/channels/jira.md": "7969579dbc69c40743dc547163c5161af06205dece7327e33c9c4775bac96c14",
|
|
239
240
|
"pipeline/multi-agent-refs/channels/pr-review-actions.md": "21bf53796ae4ecd59769f9944ad8c7d1cd3a5915b0956be99ec875b847b33c00",
|
|
240
|
-
"pipeline/multi-agent-refs/channels/pr.md": "
|
|
241
|
+
"pipeline/multi-agent-refs/channels/pr.md": "abe0101d4f2a7cb1ecd88c4260e9ae9e7d6dd65dd52afbf6c44c573c48d11f20",
|
|
241
242
|
"pipeline/multi-agent-refs/channels/wiki.md": "ba52c5efaedc067dd8456fe9076af694d7e3dae9bda621f1df65c9159cd422da",
|
|
242
243
|
"pipeline/multi-agent-refs/complaint-analysis-template.md": "dd5f12a8f56ee4dc177fa7bfba4ffe9ad021e5f1b9e661a49031f02dd6e37109",
|
|
243
244
|
"pipeline/multi-agent-refs/component-dispatch.md": "f20ebaef98e2e48c3aa2c247ac10402ef5f433956ccb1481fc47585174871711",
|
|
@@ -254,7 +255,7 @@
|
|
|
254
255
|
"pipeline/multi-agent-refs/features/cost-analysis.md": "42f1b90b41ef454f29ccfd3f93c959920f0e74cbca65e140695e9a30d6d90b87",
|
|
255
256
|
"pipeline/multi-agent-refs/features/design-conformance.md": "8bcc1c9221f39ec8764c6aa20e59f968d6beb777f644c61adf7a38e35af1a9d5",
|
|
256
257
|
"pipeline/multi-agent-refs/features/dev-critic.md": "08e01edef04b5ac216f8f43332126966d33da7b95625e47a8a6cd8ac105b263f",
|
|
257
|
-
"pipeline/multi-agent-refs/features/doctor.md": "
|
|
258
|
+
"pipeline/multi-agent-refs/features/doctor.md": "4e4ff5f4ec03b017f4d1b8e6a0cb64cd86fbde063aee72d7589875c90567b019",
|
|
258
259
|
"pipeline/multi-agent-refs/features/external-context-injection.md": "fe0373f27c3e9aae660a55a3ba9a8163df329b4d95c727d6023b6b3afaf71d66",
|
|
259
260
|
"pipeline/multi-agent-refs/features/jira-context.md": "7d14802ed9ad1747e1a06dec26f22ff9e8959e03c47d7a018af45b8274aea47c",
|
|
260
261
|
"pipeline/multi-agent-refs/features/maturity-followup.md": "e663e5bcf0b3b4d4d2a67f4516dbb9fb12520dfbdedb47a9c5f57c13a9a0633e",
|
|
@@ -263,7 +264,7 @@
|
|
|
263
264
|
"pipeline/multi-agent-refs/features/phone-api.md": "5e81290c85c4cb2cd83e3925b0fb502a19298ae3699aac351194f8ce3f21c791",
|
|
264
265
|
"pipeline/multi-agent-refs/features/plan-critic.md": "d218c8599d893211480a412d46efdbba4aa48e3b18e8bb0ebfd66782f3b8ebc5",
|
|
265
266
|
"pipeline/multi-agent-refs/features/plan-todos.md": "8780d80b4541daee2b05080759a0694ef7e6270abe9a4621deb92ec7bac94e8e",
|
|
266
|
-
"pipeline/multi-agent-refs/features/prior-fix-detection.md": "
|
|
267
|
+
"pipeline/multi-agent-refs/features/prior-fix-detection.md": "9bd172fa116b0c334576ee3df2dc478810a7e282422410e045be74ac2299253d",
|
|
267
268
|
"pipeline/multi-agent-refs/features/repo-map.md": "9102f95d5c819c3bce3dc992cc98c67657e83f1fbc77d2e9b3d16b040bfab9f6",
|
|
268
269
|
"pipeline/multi-agent-refs/features/research.md": "776c9f3b644f8ff355108000b4a7381ff173e38811e8e2a73ef66e756d60c169",
|
|
269
270
|
"pipeline/multi-agent-refs/features/review-decision.md": "4154539340df923e564a91d3d807145f3a94d5bd52872068af083fc5345f7010",
|
|
@@ -285,22 +286,22 @@
|
|
|
285
286
|
"pipeline/multi-agent-refs/features/verify.md": "1a6db5e7239eac01e51100353013abd16bf785a7fce88b40139fca27f4166be4",
|
|
286
287
|
"pipeline/multi-agent-refs/features/visual-evidence.md": "2b6aa2e4ff05c7a1fbe9e0fedfa4b28b9ad01c93a64f1ca6f6cd3e02293866aa",
|
|
287
288
|
"pipeline/multi-agent-refs/features/worktree-finalize.md": "628f627b94927a9c4a5b0b261fed1f0ffa42d4155390d57b5e56566a26ed8193",
|
|
288
|
-
"pipeline/multi-agent-refs/generate-issue.md": "
|
|
289
|
+
"pipeline/multi-agent-refs/generate-issue.md": "61e762456d2748525fbbea0ee5f9dde863d75d3bb9bbece14a36f6e3c9e82b3d",
|
|
289
290
|
"pipeline/multi-agent-refs/issue-jira-triad.md": "a12f4e3b75badf8a466e0c3531a5f0e12e44a1dd7799522fb03ff11068ce391d",
|
|
290
291
|
"pipeline/multi-agent-refs/keychain.md": "8f775488ed846cc11470bfe5a4db1803f4145a16e12e8fa17a3f338380f096a7",
|
|
291
292
|
"pipeline/multi-agent-refs/knowledge.md": "33f6a4cc0ced930d192f32e0f7b2adf785395562f9dedd82ce939306c3d7a0e5",
|
|
292
293
|
"pipeline/multi-agent-refs/multi-repo-integration-build.md": "ff4ad08d382d1d31f5c4f3c382cb340058bbe5cb1cffbfef520500cad7b9c05c",
|
|
293
|
-
"pipeline/multi-agent-refs/outside-the-pipeline.md": "
|
|
294
|
+
"pipeline/multi-agent-refs/outside-the-pipeline.md": "84213bb29124da8ad74f62276217dce9909a6962a03a9e4b49390df529436b3e",
|
|
294
295
|
"pipeline/multi-agent-refs/payload-contracts.md": "77b10f1d616c20b96c8f83185f9b507c9764fdc69eae1795bff9127ecbc6f37e",
|
|
295
296
|
"pipeline/multi-agent-refs/phases.md": "730d598b27b8df4776adece9487f51e4835dbdb5a7d33c097e272f3360cbe844",
|
|
296
297
|
"pipeline/multi-agent-refs/phases/log-format.md": "62d51e57cca8445ab40f3c0dc29615e4b5c8e4743286bf9ef0173610e81397aa",
|
|
297
298
|
"pipeline/multi-agent-refs/phases/modes.md": "0733e20dce458c09f30343db9149fc93bc5a4c9531670b93952f223811dcb1aa",
|
|
298
299
|
"pipeline/multi-agent-refs/phases/operations.md": "9506a26684abfff1e332d92c2321e840544fd4f049aff9f118731e198dabca94",
|
|
299
|
-
"pipeline/multi-agent-refs/phases/phase-0-init.md": "
|
|
300
|
+
"pipeline/multi-agent-refs/phases/phase-0-init.md": "3ec8a7f979818413c82418325e20ff8144a2505bfcdac61e3b8bfb2d8bcf0db8",
|
|
300
301
|
"pipeline/multi-agent-refs/phases/phase-1-plan.md": "a83e43d6e41c986f76d6176c222af6f7a8d87d3c74f52a07de86cd52b70e42f0",
|
|
301
|
-
"pipeline/multi-agent-refs/phases/phase-2-dev.md": "
|
|
302
|
+
"pipeline/multi-agent-refs/phases/phase-2-dev.md": "a7d7ba4cf473da623a4301d1cf01eb334a387d5f40546f2b80970032e15569b6",
|
|
302
303
|
"pipeline/multi-agent-refs/phases/phase-3-review.md": "98b910da84bb0b36527d6487a0634a5401b382ccea6672bf7e27abe7c0cf4c3b",
|
|
303
|
-
"pipeline/multi-agent-refs/phases/phase-4-commit.md": "
|
|
304
|
+
"pipeline/multi-agent-refs/phases/phase-4-commit.md": "b433f1a9147ce2bd6d0d944c643d2bd91f29c12488752c095c3468825f3ee6e5",
|
|
304
305
|
"pipeline/multi-agent-refs/phases/phase-5-report.md": "5831563300bbabcfbae96f98c6f95bdbb664e345b853e57391224285532a09fa",
|
|
305
306
|
"pipeline/multi-agent-refs/picker-contract.md": "6e4f77954aec80077da0df0b055894b125bad74bd1a2cd0b2e2adb1072f75637",
|
|
306
307
|
"pipeline/multi-agent-refs/platform-parity.md": "43a3836efc359c6b7d30af38d66408d8d18661e72e5165b25bb8e15953e6feaf",
|
|
@@ -313,7 +314,7 @@
|
|
|
313
314
|
"pipeline/multi-agent-refs/rules.md": "0b272d9ee2ba4a2fde28313f3084b8caa3d26f10e78d6099547a800e6c33534a",
|
|
314
315
|
"pipeline/multi-agent-refs/setup/app-store-connect.md": "6208a8125212e3ef44faf61236c5dd8ec3e8f71817fa477e8cd92415906a0759",
|
|
315
316
|
"pipeline/multi-agent-refs/setup/firebase.md": "a82031c67993762303a7ecd222e2574fbbf8d65dcc6b17e051a8dd53a9e31474",
|
|
316
|
-
"pipeline/multi-agent-refs/setup/repo-discovery.md": "
|
|
317
|
+
"pipeline/multi-agent-refs/setup/repo-discovery.md": "06944e7b7677d998b6d169fbf5bebcac08c0f5eab808f9f1f3e5b6b2dc6a1f55",
|
|
317
318
|
"pipeline/multi-agent-refs/swiftui-guide.md": "3f86cb3e2161389da5a466793dae570d854e35354490f58249b5defbaccb1375",
|
|
318
319
|
"pipeline/multi-agent-refs/threat-model.md": "3628881538b846f94decd78e389b34b473ba6f91b6e6dcf5c927d307ed264bea",
|
|
319
320
|
"pipeline/multi-agent-refs/tracker-contract.md": "cd3568027a4ab3e6dbb5d5b860fc471717dae7896d3ac1f07944f5d8049b9a1c",
|
|
@@ -380,7 +381,7 @@
|
|
|
380
381
|
"pipeline/schemas/plan-todos.schema.json": "f1dcf8df338b29bbc1d874addd3408c0841a5f869c0b6075efd9242e3e8552d6",
|
|
381
382
|
"pipeline/schemas/planning-output.schema.json": "bc6eda32ecd435cf84d846078f9d38347f8f741f8a427cff15913dd6c380d4b8",
|
|
382
383
|
"pipeline/schemas/pr-request.schema.json": "ae75c4856349d62834802b1189af516bb6fb3d36646831b7ff2fa61d938afcd0",
|
|
383
|
-
"pipeline/schemas/prefs.schema.json": "
|
|
384
|
+
"pipeline/schemas/prefs.schema.json": "c327827b65c01cec5c73fdde0b4ad553daf157fb7786c4d0e97a335cfc687282",
|
|
384
385
|
"pipeline/schemas/research-output.schema.json": "54e3ba1b04fdc20fbaa84333b943a8ab95d1395c7b0e0aedc67929184cb49523",
|
|
385
386
|
"pipeline/schemas/review-file-exclusions.json": "2e8c44b45d21d2c82fc95aa2bf76ad3fbf2d5c68180c7b2ebf89c4a926688d77",
|
|
386
387
|
"pipeline/schemas/review-file-exclusions.schema.json": "d7310b4328ae14673f0971c9f823a697d3cafe054062a680ef0f020be1867ea3",
|
|
@@ -448,8 +449,8 @@
|
|
|
448
449
|
"pipeline/scripts/bulk-read.sh": "f5f55e229b00b849a84e6b6015e3bba1f0cb59dba5fb011857d1ceaafe7ad614",
|
|
449
450
|
"pipeline/scripts/capture-evidence.sh": "2f7657786e07c17c302b76d4ea6bafe391b65be3dd891901b78019af3a7e38e1",
|
|
450
451
|
"pipeline/scripts/capture-flush.sh": "291da92a3a708bf2e8e0884d1d6e0a676da83650ee723f7a499a6549e6cd2adc",
|
|
451
|
-
"pipeline/scripts/capture-resume.sh": "
|
|
452
|
-
"pipeline/scripts/check-derived-drift.mjs": "
|
|
452
|
+
"pipeline/scripts/capture-resume.sh": "4934ff7961e2b8eabcd154ca06dd53c1d4aab03986a39dff287b8c16f5cea7ee",
|
|
453
|
+
"pipeline/scripts/check-derived-drift.mjs": "6716f1354b5b17d0314e5bbe18d987c5143ffeadd0825ff35d7414b3d7a516ad",
|
|
453
454
|
"pipeline/scripts/check-read-size.py": "fa094f7fcc3ea830411a55f4acda12ffe5a2323c8fd105033ef238e13bc04c99",
|
|
454
455
|
"pipeline/scripts/check-read-size.sh": "b5db605ffb3ad2b2b9dc7acfbf4ec7089b3ee8a22a29bf92475231bc66c7c787",
|
|
455
456
|
"pipeline/scripts/classify-plan-safety.mjs": "d25f21da21dd4ee1ea507fb0df89301715071121b1bd96aca9ef140a4eee896b",
|
|
@@ -469,7 +470,7 @@
|
|
|
469
470
|
"pipeline/scripts/crush-json.mjs": "303382670f8f170c8c6710202853a2de2915625813cd157185f9be4e2b27258e",
|
|
470
471
|
"pipeline/scripts/diff-explain.mjs": "194d0635639607cb1af3de064453162e01c0d59dc0c2e187d21d45bae3bc559c",
|
|
471
472
|
"pipeline/scripts/diff-risk-score.mjs": "b3e8da42fea1258162e40f4eb7809074831339b7563874527f7e825f7aa795ca",
|
|
472
|
-
"pipeline/scripts/doctor.mjs": "
|
|
473
|
+
"pipeline/scripts/doctor.mjs": "e37cee071270432d60bd52fd8ec6d9ed9132b90b405def7ad4874daba4104d7d",
|
|
473
474
|
"pipeline/scripts/evidence-gate.mjs": "347a8d3fa1d17d996de345585c216bd7071f4c1d687999daf6e48881720ea5df",
|
|
474
475
|
"pipeline/scripts/feedback-send.mjs": "d3ed66e9dacdfb4b5eacf1b244bf66752304fb4fcb144531441b458f3ab806be",
|
|
475
476
|
"pipeline/scripts/finding-fingerprint.mjs": "fa12ab10701db5d2bfff014e41d1cd4c0b2b772aee5fc69205de14b2761b0c83",
|
|
@@ -522,6 +523,7 @@
|
|
|
522
523
|
"pipeline/scripts/phone-devices.mjs": "f32288cbe56670eecb7d3a4b43f9ebcb4baeac5eeec357322fe19399603d59e3",
|
|
523
524
|
"pipeline/scripts/plan-coverage-gate.mjs": "1a83bc52584438a9bd5cba96d2ddefed92a6a317d30ee695e67ef6c00b93e5a8",
|
|
524
525
|
"pipeline/scripts/plan-critique-gate.mjs": "b139394e5f16d11e4997d0bb0b08529f439dbd7fad39781ef4c2475247d8fa97",
|
|
526
|
+
"pipeline/scripts/plugin-refresh.sh": "687a33199ad963616ab537e32210ec8c967e76ecc42f494ee8a1dc9fe947fc30",
|
|
525
527
|
"pipeline/scripts/pr-request.mjs": "59b86c7fd768067af7016836d6a29debec36c4d8f10171ae4591fd6773977989",
|
|
526
528
|
"pipeline/scripts/pre-commit-check.sh": "81937ed7c0974fdfe440e19ce31405a38bbdf2b45a9bf226f490268fcf915942",
|
|
527
529
|
"pipeline/scripts/pre-push-check.sh": "ff98e73d02aa75cfa9411c29c838241e8529e832e1421ca9c25c39aa07bcd968",
|
|
@@ -574,8 +576,8 @@
|
|
|
574
576
|
"pipeline/scripts/update-check.sh": "327a02306884093d2b93f395d2c297d5dc6b0c59757a740004bfafb13616fef0",
|
|
575
577
|
"pipeline/scripts/update-issue-progress.sh": "ccfef87743e91272e009e396ac07461d2784b2fa84a06c802a582526eeeb9ed9",
|
|
576
578
|
"pipeline/scripts/usage-identity.mjs": "3e2479bafc290f1acb253f5273339c87550f97d332818a26e5ac266d7ef289dc",
|
|
577
|
-
"pipeline/scripts/usage-register.mjs": "
|
|
578
|
-
"pipeline/scripts/usage-report.mjs": "
|
|
579
|
+
"pipeline/scripts/usage-register.mjs": "2844d2187226006d1a8b4e9b044d7591f4a5d3313cb24f9e388b36639022ce4c",
|
|
580
|
+
"pipeline/scripts/usage-report.mjs": "01ef50005c3358d17ca4ef69b80b5b576887ec47cb360c0211adbcc9c1f1e2aa",
|
|
579
581
|
"pipeline/scripts/validate-analysis-doc.mjs": "ae56b7578ef51e008a99f84eba9def3e0f1dd2bd87a3880f2083aa98b365f7a1",
|
|
580
582
|
"pipeline/scripts/validate-analysis.mjs": "d2dc9ccf45f6ca2702908761939edd830d18b3b273016a4b449f26fe285d5ea1",
|
|
581
583
|
"pipeline/scripts/validate-code-graph.mjs": "0ceac2f5b59f641334d54dc30bee5265361fb5fe1fc97e2f9791b546efe79941",
|
|
@@ -594,7 +596,7 @@
|
|
|
594
596
|
"pipeline/scripts/worktree-prepare.sh": "9391c828375b127f77c86e3c830dbbaf355a61464c6437319969f2f1eecc72b1",
|
|
595
597
|
"pipeline/scripts/worktrees.mjs": "90dfd09b70fffe9b56c331a4ae2692cc248f4898f4ee6aee4239ef0b20888a90",
|
|
596
598
|
"pipeline/scripts/write-state.mjs": "e1198bf970eace07d3eff22b394808a526e473df65d3d58aa2d5a12cfdac8b49",
|
|
597
|
-
"pipeline/skills/.skill-manifest.json": "
|
|
599
|
+
"pipeline/skills/.skill-manifest.json": "cffda3b70d7f2807055ef6e963637b2d4e9650465a2b606d0d8dab429da35d03",
|
|
598
600
|
"pipeline/skills/.skills-index.json": "042b1090f3e2ca310c6ce70d1bb304e8c7f96bd73133e504b95d83801608e470",
|
|
599
601
|
"pipeline/skills/shared/README.md": "98196ea7c9d84637e8917ca4053c34b45de46586f71fb0c0034dce0808af857d",
|
|
600
602
|
"pipeline/skills/shared/core/apple-archive-compliance/SKILL.md": "7239fef717ea45b79276bfcc2c3903acd57950b6e00dd6a2a66399c4b09cbd51",
|
|
@@ -609,7 +611,7 @@
|
|
|
609
611
|
"pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md": "0833c8c63b82c8c360bd2c5a9df77a958aa8829326fdb3ad0c7d8d8197a42c29",
|
|
610
612
|
"pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md": "426158ddbb5e8d6e594cd2e02aceb197e1769d692602dfbd2a368a6707081bd3",
|
|
611
613
|
"pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md": "8534891d1198597a0893d131e6b944d15443f62b24cb5584c486a235845fd281",
|
|
612
|
-
"pipeline/skills/shared/core/multi-agent-channels/SKILL.md": "
|
|
614
|
+
"pipeline/skills/shared/core/multi-agent-channels/SKILL.md": "03f7c648e1938f3d6d7c48d4c1c01f2bd734cdce873ec5203120b5be3ae761db",
|
|
613
615
|
"pipeline/skills/shared/core/multi-agent-complaint-analysis/SKILL.md": "dd30708491303902aa8629130809e9601c2096dc12aa9fc671f798142cea3485",
|
|
614
616
|
"pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md": "5aad0d841e9e5b7140bb441e07819209ca64c5b6fc209d6ad586b5fbb353e377",
|
|
615
617
|
"pipeline/skills/shared/core/multi-agent-design-check/SKILL.md": "fa7ed1f53973a604af22fe01d26d8ca0fa9dea66e0e671326a50f0f26c396997",
|
|
@@ -622,7 +624,7 @@
|
|
|
622
624
|
"pipeline/skills/shared/core/multi-agent-help/SKILL.md": "c6a18752fd6ca3f4887a3b1774dcd062dc8958d6e078fb6d3ef77566810ada2d",
|
|
623
625
|
"pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md": "15fae4bfcdfe689bacd18edd7464913e75f33ed07f35cfb5c3a7bdb1f560f191",
|
|
624
626
|
"pipeline/skills/shared/core/multi-agent-issue/SKILL.md": "9747f15970c602bb4898b4be125534453d04d4af87d2ccfb8c0fa151534d53aa",
|
|
625
|
-
"pipeline/skills/shared/core/multi-agent-jira/SKILL.md": "
|
|
627
|
+
"pipeline/skills/shared/core/multi-agent-jira/SKILL.md": "d7e23fd1565b6640d33c23cce4d025660212d9d3f3ab80a43369ad80ae8be080",
|
|
626
628
|
"pipeline/skills/shared/core/multi-agent-kill/SKILL.md": "04698cbd8932d75cd39500ee4e53c75d4c10896dd3feba72448f6d119a39c9d4",
|
|
627
629
|
"pipeline/skills/shared/core/multi-agent-language/SKILL.md": "ca4932ca4491546309666b67c8a9a676700ecc09c6ddab8696788464991b435f",
|
|
628
630
|
"pipeline/skills/shared/core/multi-agent-log/SKILL.md": "094c703e6e6229a31868b3506fff651a91465de15456763ac87264becac99dbd",
|
|
@@ -631,7 +633,7 @@
|
|
|
631
633
|
"pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md": "9e0745c2aac474b401126218a7e0d81a72942cd331ac0e591da72407d523fda9",
|
|
632
634
|
"pipeline/skills/shared/core/multi-agent-prune-prompts/SKILL.md": "2750dad7d6cab8566798f6249094e071bd37fc519b8b350de3158cc9167c7a47",
|
|
633
635
|
"pipeline/skills/shared/core/multi-agent-purge/SKILL.md": "52da8b43a9b59731fc1ae9950216b716bc742adb3d218ba65ddd59948789f0d9",
|
|
634
|
-
"pipeline/skills/shared/core/multi-agent-refactor/SKILL.md": "
|
|
636
|
+
"pipeline/skills/shared/core/multi-agent-refactor/SKILL.md": "889c17f800b83d5c5d13d097eff63f28dc8d7869679bfcdb72efecd8b1d66391",
|
|
635
637
|
"pipeline/skills/shared/core/multi-agent-research/SKILL.md": "6f13e2feb57789f9ddd378f5faf723c8dbd5461ce541e81600bfd997b2ec7a08",
|
|
636
638
|
"pipeline/skills/shared/core/multi-agent-resume/SKILL.md": "eea33e326f39980255decf4170b3ed4f8f83bd5c182c9a31086b2308eb686312",
|
|
637
639
|
"pipeline/skills/shared/core/multi-agent-review-analysis/SKILL.md": "f55d3b28266001d150d0438e92f8bb5dfa9cdce517892cf12fe94beee8440c07",
|
|
@@ -649,7 +651,7 @@
|
|
|
649
651
|
"pipeline/skills/shared/core/multi-agent-security-review/SKILL.md": "3c483d5942f2c2b81c0537d4db0b36804c13cabd66fd7fae2972d07a8f239f69",
|
|
650
652
|
"pipeline/skills/shared/core/multi-agent-serve/SKILL.md": "01853f3a4726ef4374177fb0c3bd753520435fc7ccc263f3ef2399352cba8f04",
|
|
651
653
|
"pipeline/skills/shared/core/multi-agent-setup/SKILL.md": "d57769a5857c6ed06f1c2c9995da77901af14c5ae493c8ec8c454b977c5666e9",
|
|
652
|
-
"pipeline/skills/shared/core/multi-agent-stack/SKILL.md": "
|
|
654
|
+
"pipeline/skills/shared/core/multi-agent-stack/SKILL.md": "ac964cd00dd6ed06512530489d867efbc51d7d7614265f9aa022679325d5defe",
|
|
653
655
|
"pipeline/skills/shared/core/multi-agent-status/SKILL.md": "444c3773b52e6786e40bc67c8833ea6aecadbcd4459b01127b4aff152157040a",
|
|
654
656
|
"pipeline/skills/shared/core/multi-agent-steer/SKILL.md": "20f332bd2fe2745da5341f8d8187211fc47c06b4b5f5031e217affee0282ddb5",
|
|
655
657
|
"pipeline/skills/shared/core/multi-agent-store-ready/SKILL.md": "86838f9b922cdaebfebdc019aab7861e8e0d436620e43a715b3e3da1ddfc804b",
|
|
@@ -661,8 +663,8 @@
|
|
|
661
663
|
"pipeline/skills/shared/core/multi-agent-test/SKILL.md": "538c7e27f1137975127883b249ebd552d07a114fe27aa33b31a0e659c93cd742",
|
|
662
664
|
"pipeline/skills/shared/core/multi-agent-testflight-validation/SKILL.md": "6bfd1569117bfbacb485d831c0b7f262ebb3a2f9471f6177a646f5ce32c06a25",
|
|
663
665
|
"pipeline/skills/shared/core/multi-agent-uninstall/SKILL.md": "9dccf78ffc2fb014d83f67d683d395f56f4fad8b5a36b9aa84e6cbd075b58818",
|
|
664
|
-
"pipeline/skills/shared/core/multi-agent-update/SKILL.md": "
|
|
665
|
-
"pipeline/skills/shared/core/multi-agent/SKILL.md": "
|
|
666
|
+
"pipeline/skills/shared/core/multi-agent-update/SKILL.md": "d96e18b70bab0a601057f75f212dd4fb563db0cb250607c770ce1c7a1df4b1d0",
|
|
667
|
+
"pipeline/skills/shared/core/multi-agent/SKILL.md": "3bfaa4f0743aa1ab8d7f2bec4edb6b3c759f6c7a890535b2f0e1606f2ce7547d",
|
|
666
668
|
"pipeline/skills/shared/external/NOTICE-avdlee-swiftui-agent-skill.md": "24df1d1dfb47b06b8fafb98938cf1b353fb0245c3a8f8212e197321d537dadff",
|
|
667
669
|
"pipeline/skills/shared/external/NOTICE-dimillian-skills.md": "b98a170d97836f00ac6ee9c80e0befde324a6062071dc06a7eedce65fa5141cd",
|
|
668
670
|
"pipeline/skills/shared/external/NOTICE-paul-hudson-skills.md": "bca5fe8779df70fb0f234483d65ff3562c67521e719b69b22aac260803b75244",
|
|
@@ -870,7 +872,7 @@
|
|
|
870
872
|
"pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md": "32b9eefc4d8ee764e2c2516ea8e02e088790881f37f08d6379d6ec4c4ed6d803",
|
|
871
873
|
"pipeline/skills/shared/external/localization-reuse-map/reference/publish-and-snapshot.md": "5ba54a86be18355df9776f8d35d14d2f11fb6b4a954f7ee1407b5e8acbc29548",
|
|
872
874
|
"pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md": "14eeeb6a380a1101b879629a5a76dc5abdf6d66dc9df25a20d46089252bb01e9",
|
|
873
|
-
"pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py": "
|
|
875
|
+
"pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py": "0160e308e1dbafdd1aa098ebd42c17ca0b9b4592eca0607a2797441daadee78b",
|
|
874
876
|
"pipeline/skills/shared/external/localization-reuse-map/scripts/build-spreadsheet.py": "5b5fcda496d5de0221a136bedc9744299a015fbe7fff308d1c7c75521d7f07ab",
|
|
875
877
|
"pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-annotations.py": "fc53b521ea663750b5188f55178a87d17002410e19fe00b44a6cad3cdc2db9d2",
|
|
876
878
|
"pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-legacy-labels.py": "e71ba938bdc5209e68af4baccbff8fc0c8d7fd6b52ab7b345cc08d8fab05deb7",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.4.0",
|
|
4
4
|
"description": "6-phase AI development pipeline with full orchestration on Claude Code, Copilot CLI and Codex CLI. Analysis, planning, TDD, CLI-aware parallel review with consensus surfacing + Fable triage, default-FAIL evidence gates, secret + intent guards, per-phase cost ledger, persistent learnings memory, wiki generation, commit automation. Token-preserving uninstall.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -191,8 +191,8 @@ WIKI_BRANCH=$(git -C "$WIKI_REL_ABS" symbolic-ref refs/remotes/origin/HEAD 2>/de
|
|
|
191
191
|
|
|
192
192
|
2. **Fetch design-source screenshot** (Figma by default; other sources swap the fetch call):
|
|
193
193
|
```bash
|
|
194
|
-
RESPONSE=$(
|
|
195
|
-
|
|
194
|
+
RESPONSE=$(printf 'X-Figma-Token: %s\n' "$DESIGN_TOKEN" | curl -s -H @- \
|
|
195
|
+
"https://api.figma.com/v1/images/{fileKey}?ids={nodeId}&format=png&scale=2")
|
|
196
196
|
IMAGE_URL=$(echo "$RESPONSE" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['images']['{nodeId}'])")
|
|
197
197
|
curl -s -o "$WIKI_REL_ABS/{wikiCategory}/{ComponentName}/assets/screenshot.png" "$IMAGE_URL"
|
|
198
198
|
```
|
|
@@ -209,7 +209,9 @@ WIKI_BRANCH=$(git -C "$WIKI_REL_ABS" symbolic-ref refs/remotes/origin/HEAD 2>/de
|
|
|
209
209
|
cd "$WIKI_REL_ABS"
|
|
210
210
|
git add "{wikiCategory}/{ComponentName}/"
|
|
211
211
|
git -c user.name="{identity.name}" -c user.email="{identity.email}" \
|
|
212
|
-
commit -
|
|
212
|
+
commit -F - <<'MA_MSG'
|
|
213
|
+
docs({scope}): add {ComponentName} wiki pages [{jiraId}]
|
|
214
|
+
MA_MSG
|
|
213
215
|
git fetch origin && git rebase "origin/$WIKI_BRANCH"
|
|
214
216
|
git push origin "HEAD:$WIKI_BRANCH"
|
|
215
217
|
```
|
|
@@ -250,7 +252,7 @@ If a GitHub Issue tracks this component, update its body after commit + PR:
|
|
|
250
252
|
- Fill the `### Pull Requests` section with PR URL(s), one row per submodule touched
|
|
251
253
|
- Flip Implementation / Testing / Code Connect flags from Pending to Done using whatever marker the template uses (match in place, don't introduce new markers)
|
|
252
254
|
- Flip the Wiki flag to Done (SubPhase 4F already pushed the wiki pages)
|
|
253
|
-
-
|
|
255
|
+
- Write the updated body to a temp file and apply it with `gh issue edit {issueNo} --body-file <file>` - preserve every other section unchanged
|
|
254
256
|
- NEVER use `Closes:` / `Fixes:` / `Resolves:` keywords - use `Ref:` or `Related:` instead
|
|
255
257
|
|
|
256
258
|
Skip this phase if the task has no GitHub Issue (Jira-only or free-text runs).
|
|
@@ -31,7 +31,7 @@ ACCOUNTS=$(~/.claude/lib/account-resolver.sh --providers jira)
|
|
|
31
31
|
Fetch projects:
|
|
32
32
|
```bash
|
|
33
33
|
TOKEN=$(~/.claude/lib/credential-store.sh get "$ACCOUNT_JIRA_TOKEN_KEY")
|
|
34
|
-
|
|
34
|
+
printf 'Authorization: Bearer %s\n' "$TOKEN" | curl -s -H @- \
|
|
35
35
|
"https://$ACCOUNT_JIRA_HOST/rest/api/2/project" \
|
|
36
36
|
| python3 -c 'import json,sys; [print(p["key"]+"\t"+p["name"]) for p in json.load(sys.stdin)]'
|
|
37
37
|
```
|
|
@@ -45,7 +45,7 @@ The same list, already merged, sorted and scrubbed of hosts and URLs, is `node "
|
|
|
45
45
|
Combine open issues across selected projects, sort by priority + status:
|
|
46
46
|
```bash
|
|
47
47
|
JQL="assignee=currentUser() AND project in (${JIRA_PROJECT_KEYS}) AND resolution = EMPTY AND status not in (Done,Closed,Cancelled)"
|
|
48
|
-
|
|
48
|
+
printf 'Authorization: Bearer %s\n' "$TOKEN" | curl -s -H @- \
|
|
49
49
|
"https://$ACCOUNT_JIRA_HOST/rest/api/2/search?jql=$(printf '%s' "$JQL" | python3 -c 'import sys,urllib.parse; print(urllib.parse.quote(sys.stdin.read()))')&fields=key,summary,status,issuetype,priority,resolution,fixVersions&maxResults=50"
|
|
50
50
|
```
|
|
51
51
|
|
|
@@ -88,7 +88,7 @@ The upstream mapping is **configuration, never hardcoded** (it can reference pri
|
|
|
88
88
|
}
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
-
**The plugin cache is a mirror, not the authority.** `~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/` only holds whatever the last `claude marketplace update` fetched. Reading it as the current upstream version is how this step reported "up to date" while the derivation was four releases behind: the cache sat at 0.2.1 and upstream was at 0.4.1. Resolve in the order below and never let the cache alone produce an "up to date" verdict.
|
|
91
|
+
**The plugin cache is a mirror, not the authority.** `~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/` only holds whatever the last `claude plugin marketplace update` fetched. Reading it as the current upstream version is how this step reported "up to date" while the derivation was four releases behind: the cache sat at 0.2.1 and upstream was at 0.4.1. Resolve in the order below and never let the cache alone produce an "up to date" verdict.
|
|
92
92
|
|
|
93
93
|
**Which manifest carries the version** is `upstreamVersionSource`, default `marketplace.json`. That is what a marketplace consumer actually resolves, and some upstreams keep per-plugin `plugin.json` versions deliberately unused - reading those records a version nobody ships. An entry here was recorded at 0.7.0 from `plugin.json` while the upstream marketplace said 0.6.0 and its CHANGELOG stated in as many words that `plugin.json` is not used.
|
|
94
94
|
|
|
@@ -131,7 +131,7 @@ BB_USER=$("$CRED_STORE" get "$USER_KEY")
|
|
|
131
131
|
BB_TOKEN=$("$CRED_STORE" get "$TOKEN_KEY")
|
|
132
132
|
|
|
133
133
|
DIFF_FILE="/tmp/multi-agent-review-${TASK_ID}-diff.patch"
|
|
134
|
-
http=$(curl -sS -m 60
|
|
134
|
+
http=$(curl -sS -m 60 --config <(printf 'user = "%s:%s"\n' "$BB_USER" "$BB_TOKEN") -H "Accept: text/plain" \
|
|
135
135
|
"https://$bb_server_host/rest/api/1.0/projects/$bb_project_key/repos/$bb_repo_slug/pull-requests/$pr_number/diff?contextLines=10" \
|
|
136
136
|
-o "$DIFF_FILE" -w '%{http_code}')
|
|
137
137
|
if [ "$http" != "200" ]; then
|
|
@@ -446,7 +446,7 @@ Save to `prefs.global.hosts.{service}`. For Fortify, also ask `Fortify project v
|
|
|
446
446
|
For Jira, **discover the project keys instead of asking the user to recall them.** The token is already saved and the host is already known, so ask Jira which projects this person actually works in - a corporate instance has thousands of projects, and a typed key is a typo waiting to route branches and new issues at the wrong board:
|
|
447
447
|
|
|
448
448
|
```bash
|
|
449
|
-
|
|
449
|
+
printf 'Authorization: Bearer %s\n' "$TOKEN" | curl -s -H @- \
|
|
450
450
|
"https://{JIRA_HOST}/rest/api/2/search?jql=assignee%3DcurrentUser()%20OR%20reporter%3DcurrentUser()%20ORDER%20BY%20updated%20DESC&fields=project&maxResults=100" \
|
|
451
451
|
| jq -r '[.issues[].fields.project | "\(.key)\t\(.name)"] | unique | .[]'
|
|
452
452
|
```
|
|
@@ -804,7 +804,7 @@ Stack skills ship as versioned plugins in the `{owner}/multi-agent-plugins` mark
|
|
|
804
804
|
|
|
805
805
|
1. Ensure the marketplace is known (idempotent):
|
|
806
806
|
```bash
|
|
807
|
-
claude
|
|
807
|
+
bash "$HOME/.claude/scripts/plugin-refresh.sh" {owner} --add-only
|
|
808
808
|
```
|
|
809
809
|
2. Ask the detector, then derive. No marker list here: a second list is a second
|
|
810
810
|
answer, and this one defaulted to `ai-ios-toolkit` when nothing matched - how
|
|
@@ -80,10 +80,8 @@ REPO_SETTINGS=".claude/settings.json"
|
|
|
80
80
|
MP="multi-agent-plugins"
|
|
81
81
|
|
|
82
82
|
# --- ensure the marketplace is known (idempotent) -------------------------
|
|
83
|
-
|
|
84
|
-
claude marketplace add {owner}
|
|
85
|
-
|| echo "note: add the marketplace once with: claude marketplace add {owner}/multi-agent-plugins"
|
|
86
|
-
fi
|
|
83
|
+
bash "$HOME/.claude/scripts/plugin-refresh.sh" {owner} --add-only \
|
|
84
|
+
|| echo "note: add the marketplace once with: claude plugin marketplace add {owner}/$MP"
|
|
87
85
|
|
|
88
86
|
# Enable-mode only: with zero args the write rules below would set every stack
|
|
89
87
|
# toolkit to false (nothing but the always-on pair is in $ON), silently wiping the repo's
|
|
@@ -234,7 +234,7 @@ node "$HOME/multi-agent-pipeline/pipeline/scripts/build-stack-plugins.mjs" --dry
|
|
|
234
234
|
node "$HOME/multi-agent-pipeline/pipeline/scripts/build-stack-plugins.mjs"
|
|
235
235
|
```
|
|
236
236
|
|
|
237
|
-
**Version-based management:** the generator bumps a plugin's `version` (patch) only when its skill set actually changed. Idempotent - a no-op run bumps nothing. Consumers pick up new versions via `/multi-agent:update` (which
|
|
237
|
+
**Version-based management:** the generator bumps a plugin's `version` (patch) only when its skill set actually changed. Idempotent - a no-op run bumps nothing. Consumers pick up new versions via `/multi-agent:update` (which refreshes the catalog with `claude plugin marketplace update multi-agent-plugins`, then runs `claude plugin update` for each installed plugin).
|
|
238
238
|
|
|
239
239
|
**Help + README freshness (mandatory when the generator reported any change):**
|
|
240
240
|
|
|
@@ -329,7 +329,7 @@ for d in tools/*/; do printf '%s' "$PACK" | grep -q "$d" || echo "ABORT: $d miss
|
|
|
329
329
|
```bash
|
|
330
330
|
gh auth switch --user {owner}
|
|
331
331
|
git add -A
|
|
332
|
-
git commit -
|
|
332
|
+
git commit -F "/tmp/release-msg-$NEW.txt" # "{type}(v$NEW): {what changed}", written with the file tool
|
|
333
333
|
git tag "v$NEW" && git push origin main --tags
|
|
334
334
|
```
|
|
335
335
|
|
|
@@ -83,18 +83,11 @@ A git clone of the pipeline repo is a maintainer workspace, kept in sync by `/mu
|
|
|
83
83
|
|
|
84
84
|
The installer refreshes every configured CLI target (Claude Code, Copilot CLI, Codex CLI) and writes the new version to `$HOME/.claude/.pipeline-version`.
|
|
85
85
|
|
|
86
|
-
4b. **Update the stack
|
|
86
|
+
4b. **Update the stack plugins** (catalog refresh, then every installed plugin in its own scope):
|
|
87
87
|
```bash
|
|
88
|
-
|
|
89
|
-
# Refresh the marketplace so newly published plugin versions are picked up.
|
|
90
|
-
if claude marketplace list 2>/dev/null | grep -q "multi-agent-plugins"; then
|
|
91
|
-
claude marketplace update multi-agent-plugins 2>/dev/null \
|
|
92
|
-
|| claude marketplace add {owner}/multi-agent-plugins 2>/dev/null
|
|
93
|
-
echo " -> marketplace multi-agent-plugins refreshed"
|
|
94
|
-
else
|
|
95
|
-
echo " -> marketplace not added yet; add with: claude marketplace add {owner}/multi-agent-plugins"
|
|
96
|
-
fi
|
|
88
|
+
bash "$HOME/.claude/scripts/plugin-refresh.sh" {owner}
|
|
97
89
|
```
|
|
90
|
+
A non-zero exit means a step failed and the CLI's own error is already on screen. Report it to the user; do not retry silently.
|
|
98
91
|
|
|
99
92
|
4c. **Prune retired adapter files** (Cursor / Antigravity / Copilot Chat were removed in v10.7.0 - the pipeline targets Claude Code, Copilot CLI and Codex CLI):
|
|
100
93
|
```bash
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* usage-endpoint.mjs - the reporting endpoint a machine actually calls.
|
|
3
|
+
*
|
|
4
|
+
* The reporting site answers on its own domain; its platform host
|
|
5
|
+
* (mmerterden.vercel.app) only redirects there. The usage clients never follow
|
|
6
|
+
* a redirect with a credential attached, so an endpoint on the platform host,
|
|
7
|
+
* which earlier installs wrote into usageLog.endpoint, is rewritten to the
|
|
8
|
+
* site's domain before any request is made.
|
|
9
|
+
*
|
|
10
|
+
* @module pipeline/lib/usage-endpoint
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
const SITE_HOST = "mmerterden.com";
|
|
14
|
+
const PLATFORM_HOSTS = new Set(["mmerterden.vercel.app"]);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @param {string} endpoint
|
|
18
|
+
* @returns {string}
|
|
19
|
+
*/
|
|
20
|
+
export function canonicalEndpoint(endpoint) {
|
|
21
|
+
if (!endpoint) return endpoint;
|
|
22
|
+
let u;
|
|
23
|
+
try {
|
|
24
|
+
u = new URL(endpoint);
|
|
25
|
+
} catch {
|
|
26
|
+
return endpoint;
|
|
27
|
+
}
|
|
28
|
+
if (u.protocol === "https:" && PLATFORM_HOSTS.has(u.hostname.toLowerCase())) {
|
|
29
|
+
u.hostname = SITE_HOST;
|
|
30
|
+
return u.toString();
|
|
31
|
+
}
|
|
32
|
+
return endpoint;
|
|
33
|
+
}
|