@mmerterden/multi-agent-pipeline 12.5.0 → 12.6.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 +130 -0
- package/README.md +1 -1
- package/docs/features.md +20 -0
- package/index.js +7 -1
- package/install/_dev-only-files.mjs +1 -0
- package/package.json +4 -3
- package/pipeline/agents/security-auditor.md +1 -1
- package/pipeline/commands/archive-guard.md +5 -5
- package/pipeline/commands/multi-agent/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/design-check/SKILL.md +287 -0
- package/pipeline/commands/multi-agent/help/SKILL.md +45 -5
- package/pipeline/commands/multi-agent/refactor/SKILL.md +92 -12
- package/pipeline/commands/multi-agent/review/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/sync/SKILL.md +119 -12
- package/pipeline/commands/multi-agent/test/SKILL.md +1 -1
- package/pipeline/commands/sim-test.md +5 -5
- package/pipeline/lib/credential-store.sh +32 -0
- package/pipeline/multi-agent-refs/cross-cli-contract.md +3 -3
- package/pipeline/multi-agent-refs/phases/phase-3-dev.md +2 -2
- package/pipeline/multi-agent-refs/phases/phase-5-test.md +4 -4
- package/pipeline/preferences-template.json +18 -1
- package/pipeline/schemas/agent-state.schema.json +90 -0
- package/pipeline/schemas/design-check-config.schema.json +162 -0
- package/pipeline/schemas/migrations/state-2.0.0-to-2.1.0.mjs +30 -12
- package/pipeline/schemas/prefs.schema.json +161 -5
- package/pipeline/scripts/README.md +7 -5
- package/pipeline/scripts/classify-plan-safety.mjs +8 -3
- package/pipeline/scripts/cost-budget-check.mjs +9 -5
- package/pipeline/scripts/fixtures/install-layout.tsv +6 -6
- package/pipeline/scripts/learnings-ledger.mjs +18 -0
- package/pipeline/scripts/lint-mcp-refs.mjs +207 -0
- package/pipeline/scripts/memory-load.sh +5 -1
- package/pipeline/scripts/render-work-summary.sh +4 -1
- package/pipeline/scripts/smoke-command-inventory.sh +81 -0
- package/pipeline/scripts/smoke-commands-skills-parity.sh +1 -1
- package/pipeline/scripts/smoke-compliance-skills.sh +4 -4
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +12 -2
- package/pipeline/scripts/smoke-generate-issue.sh +6 -5
- package/pipeline/scripts/smoke-per-repo-memory.sh +2 -2
- package/pipeline/scripts/smoke-review-readiness.sh +3 -2
- package/pipeline/scripts/smoke-schema-validation.sh +19 -5
- package/pipeline/scripts/smoke-shadow-git.sh +4 -2
- package/pipeline/scripts/triage-memory.mjs +18 -0
- package/pipeline/scripts/uninstall.mjs +1 -1
- package/pipeline/skills/.skill-manifest.json +24 -8
- package/pipeline/skills/.skills-index.json +39 -3
- package/pipeline/skills/shared/README.md +10 -6
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +10 -8
- package/pipeline/skills/shared/core/multi-agent-design-check/SKILL.md +248 -0
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +22 -0
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +67 -11
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +51 -9
- package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +1 -1
- package/pipeline/skills/skills-index.md +8 -4
|
@@ -59,7 +59,9 @@ fi
|
|
|
59
59
|
|
|
60
60
|
# 4-9. Lifecycle on a temp project
|
|
61
61
|
TMP=$(mktemp -d)
|
|
62
|
-
cd
|
|
62
|
+
# A failed cd here would run the relative `rm -rf DerivedData` below in the
|
|
63
|
+
# caller's directory instead of the sandbox.
|
|
64
|
+
cd "$TMP" || { record_fail "cannot cd into sandbox $TMP"; exit 1; }
|
|
63
65
|
git init --quiet
|
|
64
66
|
echo "node_modules/" > .gitignore
|
|
65
67
|
echo "hello" > a.txt
|
|
@@ -178,7 +180,7 @@ else
|
|
|
178
180
|
record_fail "~/.claude/state is GONE after unsafe prune attempts"
|
|
179
181
|
fi
|
|
180
182
|
|
|
181
|
-
cd - >/dev/null
|
|
183
|
+
cd - >/dev/null || true
|
|
182
184
|
rm -rf "$TMP"
|
|
183
185
|
|
|
184
186
|
# 10-12. Prefs schema
|
|
@@ -63,9 +63,27 @@ function die(msg, code = 1) {
|
|
|
63
63
|
process.exit(code);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
+
// Resolves to the MAIN repository name even when called from inside a pipeline
|
|
67
|
+
// worktree. `--show-toplevel` returns the worktree root, whose basename is the
|
|
68
|
+
// task id, which would shard the per-repo store one directory per task and make
|
|
69
|
+
// prior-art recall always miss. `--git-common-dir` points at the main
|
|
70
|
+
// repository's .git for every linked worktree.
|
|
66
71
|
function repoSlug() {
|
|
67
72
|
if (flags["repo-slug"]) return String(flags["repo-slug"]);
|
|
68
73
|
if (process.env.MULTI_AGENT_REPO_SLUG) return process.env.MULTI_AGENT_REPO_SLUG;
|
|
74
|
+
try {
|
|
75
|
+
const commonDir = execFileSync(
|
|
76
|
+
"git",
|
|
77
|
+
["rev-parse", "--path-format=absolute", "--git-common-dir"],
|
|
78
|
+
{ encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }
|
|
79
|
+
).trim();
|
|
80
|
+
if (commonDir) {
|
|
81
|
+
const base = basename(commonDir);
|
|
82
|
+
const root = base === ".git" ? dirname(commonDir) : commonDir.replace(/\.git$/, "");
|
|
83
|
+
const slug = basename(root);
|
|
84
|
+
if (slug) return slug;
|
|
85
|
+
}
|
|
86
|
+
} catch { /* not a git repo, or git too old for --path-format */ }
|
|
69
87
|
try {
|
|
70
88
|
const top = execFileSync("git", ["rev-parse", "--show-toplevel"], {
|
|
71
89
|
encoding: "utf8",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-07-
|
|
4
|
-
"skillCount":
|
|
3
|
+
"generatedAt": "2026-07-25T10:41:38Z",
|
|
4
|
+
"skillCount": 193,
|
|
5
5
|
"entries": [
|
|
6
6
|
{
|
|
7
7
|
"path": "shared/core/apple-archive-compliance/SKILL.md",
|
|
8
|
-
"sha256": "
|
|
8
|
+
"sha256": "d3826905606b6ec7d86d3434b03bfdbbd52a424f7108e58ca12a8cb490f1e4ad"
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
"path": "shared/core/google-play-compliance/SKILL.md",
|
|
@@ -35,6 +35,10 @@
|
|
|
35
35
|
"path": "shared/core/multi-agent-create-jira/SKILL.md",
|
|
36
36
|
"sha256": "40caf0489ad8322cd00d792a244e772d4ddb6ccfd7c3807729d6b17590e7f81c"
|
|
37
37
|
},
|
|
38
|
+
{
|
|
39
|
+
"path": "shared/core/multi-agent-design-check/SKILL.md",
|
|
40
|
+
"sha256": "a004cf24661789d2a3595c5246dfebe00b76aaee6ece057b458748f502a8cd5c"
|
|
41
|
+
},
|
|
38
42
|
{
|
|
39
43
|
"path": "shared/core/multi-agent-dev-autopilot/SKILL.md",
|
|
40
44
|
"sha256": "82b1cf4a4bbd84fcfef54fcdbcdefa27f2747df6d4fac5c86b42e861013c6d58"
|
|
@@ -59,13 +63,17 @@
|
|
|
59
63
|
"path": "shared/core/multi-agent-finish/SKILL.md",
|
|
60
64
|
"sha256": "3e8e430f7aee626be96129a9d0ae6c9ac5ef0dbf80cbe580dde2d7fb5fccfed1"
|
|
61
65
|
},
|
|
66
|
+
{
|
|
67
|
+
"path": "shared/core/multi-agent-forget/SKILL.md",
|
|
68
|
+
"sha256": "68f6a92a00844ed34c336548888d3e623534c12b5e85afe5762e7a9c8d41aae4"
|
|
69
|
+
},
|
|
62
70
|
{
|
|
63
71
|
"path": "shared/core/multi-agent-garbage-collect/SKILL.md",
|
|
64
72
|
"sha256": "24736f163e645e2bee7d552e555ae6e32cd3fc3d15c844813a75b908a58d52fd"
|
|
65
73
|
},
|
|
66
74
|
{
|
|
67
75
|
"path": "shared/core/multi-agent-help/SKILL.md",
|
|
68
|
-
"sha256": "
|
|
76
|
+
"sha256": "330780854ab3b48f788e34f918ecad585bd46ffbb44f14fd38de7b48a4b568aa"
|
|
69
77
|
},
|
|
70
78
|
{
|
|
71
79
|
"path": "shared/core/multi-agent-issue/SKILL.md",
|
|
@@ -109,7 +117,7 @@
|
|
|
109
117
|
},
|
|
110
118
|
{
|
|
111
119
|
"path": "shared/core/multi-agent-refactor/SKILL.md",
|
|
112
|
-
"sha256": "
|
|
120
|
+
"sha256": "60766ee3a6b974b3872417db5c40d1fc03bfddd99daf4aca11d7a59b57a41b57"
|
|
113
121
|
},
|
|
114
122
|
{
|
|
115
123
|
"path": "shared/core/multi-agent-resume/SKILL.md",
|
|
@@ -127,6 +135,14 @@
|
|
|
127
135
|
"path": "shared/core/multi-agent-review/SKILL.md",
|
|
128
136
|
"sha256": "b1fd57d2b80ee0fe2490439d9f2688fcf415857c2aab60549c5456e27693b9a9"
|
|
129
137
|
},
|
|
138
|
+
{
|
|
139
|
+
"path": "shared/core/multi-agent-routines/SKILL.md",
|
|
140
|
+
"sha256": "91d3bdb15da7addadd1afd0b170057daf3d3fc335da3f6e1feb4feff1af0881e"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"path": "shared/core/multi-agent-save/SKILL.md",
|
|
144
|
+
"sha256": "f9c6e2ba1dd1b224b80cabe35f4327b5bcc0b1e05868b378547bec616193ef1b"
|
|
145
|
+
},
|
|
130
146
|
{
|
|
131
147
|
"path": "shared/core/multi-agent-scan/SKILL.md",
|
|
132
148
|
"sha256": "266e4e7c9b702bc3205b7d926455c5863e144cddb1e4b883aa81e570a362fd3f"
|
|
@@ -149,11 +165,11 @@
|
|
|
149
165
|
},
|
|
150
166
|
{
|
|
151
167
|
"path": "shared/core/multi-agent-sync/SKILL.md",
|
|
152
|
-
"sha256": "
|
|
168
|
+
"sha256": "3a9f7d8caa47d41d1a4759ce6673bfb94a1ef9f62f7113a4cd3b1e9451464601"
|
|
153
169
|
},
|
|
154
170
|
{
|
|
155
171
|
"path": "shared/core/multi-agent-test/SKILL.md",
|
|
156
|
-
"sha256": "
|
|
172
|
+
"sha256": "2b662ecd9497149c4c2e87cc79e906cc1cab7ea4a7d0efe300b0b018559960c4"
|
|
157
173
|
},
|
|
158
174
|
{
|
|
159
175
|
"path": "shared/core/multi-agent-uninstall/SKILL.md",
|
|
@@ -425,7 +441,7 @@
|
|
|
425
441
|
},
|
|
426
442
|
{
|
|
427
443
|
"path": "shared/external/humanizer/SKILL.md",
|
|
428
|
-
"sha256": "
|
|
444
|
+
"sha256": "2fc8fe79a5832b9e1316f515c73f0545023153e85aba4645ba42060a0afdd049"
|
|
429
445
|
},
|
|
430
446
|
{
|
|
431
447
|
"path": "shared/external/ios-accessibility/SKILL.md",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"skillCount":
|
|
3
|
+
"skillCount": 193,
|
|
4
4
|
"entries": [
|
|
5
5
|
{
|
|
6
6
|
"name": "accessibility-compliance-accessibility-audit",
|
|
@@ -794,6 +794,15 @@
|
|
|
794
794
|
"triggerPaths": [],
|
|
795
795
|
"relativePath": "shared/core/multi-agent-create-jira/SKILL.md"
|
|
796
796
|
},
|
|
797
|
+
{
|
|
798
|
+
"name": "multi-agent-design-check",
|
|
799
|
+
"description": "Mock-mode vs Figma design audit (iOS / Android, local-only). Pick repo + module, gate on mock support, enumerate every state driver into a countable target set, build Debug in a worktree, launch in mock mode, fetch Figma variants, compare each pixel + px-spacing + typography + color, and export a si",
|
|
800
|
+
"platform": null,
|
|
801
|
+
"group": "core",
|
|
802
|
+
"triggerKeywords": [],
|
|
803
|
+
"triggerPaths": [],
|
|
804
|
+
"relativePath": "shared/core/multi-agent-design-check/SKILL.md"
|
|
805
|
+
},
|
|
797
806
|
{
|
|
798
807
|
"name": "multi-agent-dev",
|
|
799
808
|
"description": "Fast development mode: Init → Dev (Opus) → Test → Commit → Report. Analysis, planning, and review phases are skipped.",
|
|
@@ -848,6 +857,15 @@
|
|
|
848
857
|
"triggerPaths": [],
|
|
849
858
|
"relativePath": "shared/core/multi-agent-finish/SKILL.md"
|
|
850
859
|
},
|
|
860
|
+
{
|
|
861
|
+
"name": "multi-agent-forget",
|
|
862
|
+
"description": "Remove a saved /multi-agent routine (created by /multi-agent:save): deletes its local-only command and its registry entry. Asks which one and confirms.",
|
|
863
|
+
"platform": null,
|
|
864
|
+
"group": "core",
|
|
865
|
+
"triggerKeywords": [],
|
|
866
|
+
"triggerPaths": [],
|
|
867
|
+
"relativePath": "shared/core/multi-agent-forget/SKILL.md"
|
|
868
|
+
},
|
|
851
869
|
{
|
|
852
870
|
"name": "multi-agent-garbage-collect",
|
|
853
871
|
"description": "Sweep leftover /tmp scratch (picker state, review diffs, channel payloads, analysis drafts) from past runs. Dry-run first; confirms before deleting.",
|
|
@@ -958,7 +976,7 @@
|
|
|
958
976
|
},
|
|
959
977
|
{
|
|
960
978
|
"name": "multi-agent-refactor",
|
|
961
|
-
"description": "Analyse the project: extract adapted best-practices, hunt real bugs + improvement areas, check upstream drift of derived skills, draft one plan, take approval, develop, then ask whether to sync.",
|
|
979
|
+
"description": "Analyse the project: extract adapted best-practices, hunt real bugs + improvement areas, check upstream drift of derived skills, research the companion dev-toolkit MCP server against current MCP practice, draft one plan, take approval, develop, then ask whether to sync.",
|
|
962
980
|
"platform": null,
|
|
963
981
|
"group": "core",
|
|
964
982
|
"triggerKeywords": [],
|
|
@@ -1001,6 +1019,24 @@
|
|
|
1001
1019
|
"triggerPaths": [],
|
|
1002
1020
|
"relativePath": "shared/core/multi-agent-review-jira/SKILL.md"
|
|
1003
1021
|
},
|
|
1022
|
+
{
|
|
1023
|
+
"name": "multi-agent-routines",
|
|
1024
|
+
"description": "List your saved /multi-agent routines (from /multi-agent:save) with what each one does, rendered in outputLanguage.",
|
|
1025
|
+
"platform": null,
|
|
1026
|
+
"group": "core",
|
|
1027
|
+
"triggerKeywords": [],
|
|
1028
|
+
"triggerPaths": [],
|
|
1029
|
+
"relativePath": "shared/core/multi-agent-routines/SKILL.md"
|
|
1030
|
+
},
|
|
1031
|
+
{
|
|
1032
|
+
"name": "multi-agent-save",
|
|
1033
|
+
"description": "Save a recurring job as a reusable /multi-agent:<name> command. Reviews the conversation + your CLAUDE.md for candidate routines, you pick one and name it; stored local-only, never synced.",
|
|
1034
|
+
"platform": null,
|
|
1035
|
+
"group": "core",
|
|
1036
|
+
"triggerKeywords": [],
|
|
1037
|
+
"triggerPaths": [],
|
|
1038
|
+
"relativePath": "shared/core/multi-agent-save/SKILL.md"
|
|
1039
|
+
},
|
|
1004
1040
|
{
|
|
1005
1041
|
"name": "multi-agent-scan",
|
|
1006
1042
|
"description": "Skill security scan: walks local skill directories against a tiered pattern catalog.",
|
|
@@ -1048,7 +1084,7 @@
|
|
|
1048
1084
|
},
|
|
1049
1085
|
{
|
|
1050
1086
|
"name": "multi-agent-sync",
|
|
1051
|
-
"description": "One-shot sync of the entire multi-agent ecosystem: Claude Code, Copilot CLI, pipeline repo, and
|
|
1087
|
+
"description": "One-shot sync of the entire multi-agent ecosystem: Claude Code, Copilot CLI, pipeline repo, website, and the dev-toolkit MCP server.",
|
|
1052
1088
|
"platform": null,
|
|
1053
1089
|
"group": "core",
|
|
1054
1090
|
"triggerKeywords": [],
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Single source of truth for skills delivered to both Claude Code (`~/.claude/skills/`) and Copilot CLI (`~/.copilot/skills/`) by the installer.
|
|
4
4
|
|
|
5
|
-
**Total:**
|
|
5
|
+
**Total:** 193 skills (45 core + 148 external). Auto-generated by `scripts/gen-skills-index.mjs` - do not edit by hand.
|
|
6
6
|
|
|
7
7
|
## Directory layout
|
|
8
8
|
|
|
9
|
-
- **`core/`** -
|
|
9
|
+
- **`core/`** - 45 `multi-agent*` orchestration skills that are pipeline-critical. Edits here are core-code changes.
|
|
10
10
|
- **`external/`** - 148 iOS / Android / generic skills imported from the upstream skill library. Mirrors of third-party guidance.
|
|
11
11
|
- Install destination stays flat: both trees flatten into `~/.claude/skills/` and `~/.copilot/skills/`. See ADR-0006 for the rationale.
|
|
12
12
|
|
|
@@ -14,7 +14,7 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
14
14
|
|
|
15
15
|
## Categories
|
|
16
16
|
|
|
17
|
-
- [Pipeline Orchestration](#pipeline-orchestration) -
|
|
17
|
+
- [Pipeline Orchestration](#pipeline-orchestration) - 45
|
|
18
18
|
- [iOS / Apple Ecosystem](#ios-apple-ecosystem) - 88
|
|
19
19
|
- [Android / Kotlin](#android-kotlin) - 13
|
|
20
20
|
- [Web / Frontend](#web-frontend) - 10
|
|
@@ -25,7 +25,7 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
25
25
|
|
|
26
26
|
| Skill | Group | Description |
|
|
27
27
|
|-------|-------|-------------|
|
|
28
|
-
| [`apple-archive-compliance`](./core/apple-archive-compliance/) | `core` | Apple App Store Review compliance - wraps the dev-toolkit-mcp `ios_app_store_audit` tool (
|
|
28
|
+
| [`apple-archive-compliance`](./core/apple-archive-compliance/) | `core` | Apple App Store Review compliance - wraps the dev-toolkit-mcp `ios_app_store_audit` tool (18-rule deep scan) with ITMS error code mapping |
|
|
29
29
|
| [`google-play-compliance`](./core/google-play-compliance/) | `core` | Google Play Store publication compliance - bundletool + aapt2 + apksigner orchestration + 21-rule policy catalog with Play Console error c |
|
|
30
30
|
| [`multi-agent`](./core/multi-agent/) | `core` | Task orchestrator: runs the full pipeline from a Jira ID or GitHub Issue URL - analysis → plan → TDD development → parallel review (Fable |
|
|
31
31
|
| [`multi-agent-analysis`](./core/multi-agent-analysis/) | `core` | Standalone feature-spec analysis (v3 template). Platform-agnostic concept layer with repo-driven convention extraction and per-platform Pass |
|
|
@@ -34,12 +34,14 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
34
34
|
| [`multi-agent-build-optimize`](./core/multi-agent-build-optimize/) | `core` | Wrapper that dispatches to xcode-build-orchestrator on iOS repos. Benchmarks the current Xcode build, runs compilation / project / SPM analy |
|
|
35
35
|
| [`multi-agent-channels`](./core/multi-agent-channels/) | `core` | Multi-channel reporter - Jira/Confluence/Wiki/PR description. Multi-select channels + content, humanizer pass, reviewer-preserving Bitbuck |
|
|
36
36
|
| [`multi-agent-create-jira`](./core/multi-agent-create-jira/) | `core` | Create a standards-compliant Jira issue (Task / Bug / Story): asks the type, mines project conventions, drafts from a standard template with |
|
|
37
|
+
| [`multi-agent-design-check`](./core/multi-agent-design-check/) | `core` | Mock-mode vs Figma design audit (iOS / Android, local-only). Pick repo + module, gate on mock support, enumerate every state driver into a c |
|
|
37
38
|
| [`multi-agent-dev`](./core/multi-agent-dev/) | `core` | Fast development mode: Init → Dev (Opus) → Test → Commit → Report. Analysis, planning, and review phases are skipped. |
|
|
38
39
|
| [`multi-agent-dev-autopilot`](./core/multi-agent-dev-autopilot/) | `core` | Fastest mode: Dev (Opus) plus Autopilot. Init → Dev → Commit → Report with zero confirmations. |
|
|
39
40
|
| [`multi-agent-dev-local`](./core/multi-agent-dev-local/) | `core` | Fast mode + local - Init → Dev(Opus) → Commit → Report, no worktree. |
|
|
40
41
|
| [`multi-agent-dev-local-autopilot`](./core/multi-agent-dev-local-autopilot/) | `core` | Fastest + local - Dev(Opus) + autopilot, no worktree, zero interaction. |
|
|
41
42
|
| [`multi-agent-diff-explain`](./core/multi-agent-diff-explain/) | `core` | Map Phase 4 triage findings to branch diff lines. Read-only post-hoc command, used after review to answer 'which finding lines up with which |
|
|
42
43
|
| [`multi-agent-finish`](./core/multi-agent-finish/) | `core` | Continue already-done LOCAL work through the pipeline tail: Review → Build+Test → Commit/PR → Report (technical analysis + Jira test-scenari |
|
|
44
|
+
| [`multi-agent-forget`](./core/multi-agent-forget/) | `core` | Remove a saved /multi-agent routine (created by /multi-agent:save): deletes its local-only command and its registry entry. Asks which one an |
|
|
43
45
|
| [`multi-agent-garbage-collect`](./core/multi-agent-garbage-collect/) | `core` | Sweep leftover /tmp scratch (picker state, review diffs, channel payloads, analysis drafts) from past runs. Dry-run first; confirms before d |
|
|
44
46
|
| [`multi-agent-help`](./core/multi-agent-help/) | `core` | Multi-agent pipeline usage guide - renders in EN or TR per prefs.global.outputLanguage (falls back to promptLanguage for backward compatib |
|
|
45
47
|
| [`multi-agent-issue`](./core/multi-agent-issue/) | `core` | List unassigned GitHub issues, pick one, auto-assign, and launch the multi-agent pipeline. |
|
|
@@ -52,17 +54,19 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
52
54
|
| [`multi-agent-manual-test`](./core/multi-agent-manual-test/) | `core` | Switch to the active task's branch and prepare it for manual testing in Xcode. Phase 5 standalone (the UI Bug Hunter lives at multi-agent-te |
|
|
53
55
|
| [`multi-agent-prune-logs`](./core/multi-agent-prune-logs/) | `core` | Delete per-task project logs under ~/.claude/logs/multi-agent (filter by age/project/task). Audit trail + metrics are preserved. Dry-run fir |
|
|
54
56
|
| [`multi-agent-purge`](./core/multi-agent-purge/) | `core` | ⚠️ Wipes every worktree, branch, log, and state file. Irreversible; asks for double confirmation. |
|
|
55
|
-
| [`multi-agent-refactor`](./core/multi-agent-refactor/) | `core` | Analyse the project: extract adapted best-practices, hunt real bugs + improvement areas, check upstream drift of derived skills,
|
|
57
|
+
| [`multi-agent-refactor`](./core/multi-agent-refactor/) | `core` | Analyse the project: extract adapted best-practices, hunt real bugs + improvement areas, check upstream drift of derived skills, research th |
|
|
56
58
|
| [`multi-agent-resume`](./core/multi-agent-resume/) | `core` | Resume a stopped or failed task from the phase where it left off. |
|
|
57
59
|
| [`multi-agent-review`](./core/multi-agent-review/) | `core` | Run parallel review on a branch diff or a Pull Request: 2 models on Claude Code (Fable + Sonnet), 3 models on Copilot CLI (GPT + Opus + Sonn |
|
|
58
60
|
| [`multi-agent-review-issue`](./core/multi-agent-review-issue/) | `core` | Assess whether a GitHub issue is ready for multi-agent development: fetch it, grade scope / acceptance criteria / repro / design / API / sta |
|
|
59
61
|
| [`multi-agent-review-jira`](./core/multi-agent-review-jira/) | `core` | Assess whether a Jira issue is ready for multi-agent development: fetch it, grade scope / acceptance criteria / repro / design / API / stack |
|
|
62
|
+
| [`multi-agent-routines`](./core/multi-agent-routines/) | `core` | List your saved /multi-agent routines (from /multi-agent:save) with what each one does, rendered in outputLanguage. |
|
|
63
|
+
| [`multi-agent-save`](./core/multi-agent-save/) | `core` | Save a recurring job as a reusable /multi-agent:<name> command. Reviews the conversation + your CLAUDE.md for candidate routines, you pick o |
|
|
60
64
|
| [`multi-agent-scan`](./core/multi-agent-scan/) | `core` | Skill security scan: walks local skill directories against a tiered pattern catalog. |
|
|
61
65
|
| [`multi-agent-search`](./core/multi-agent-search/) | `core` | Log search across every agent-log.md with smart ranking and filters. Optional --semantic flag queries the per-repo triage corpus. |
|
|
62
66
|
| [`multi-agent-setup`](./core/multi-agent-setup/) | `core` | First-run setup wizard: keychain token discovery, Git Identity onboarding, and pipeline preparation. |
|
|
63
67
|
| [`multi-agent-stack`](./core/multi-agent-stack/) | `core` | Select the active stack for this repo by enabling the matching marketplace plugin(s) in .claude/settings.json (ios/android/mobile/backend/fr |
|
|
64
68
|
| [`multi-agent-status`](./core/multi-agent-status/) | `core` | Show every multi-agent task's ID, phase, branch, and status. |
|
|
65
|
-
| [`multi-agent-sync`](./core/multi-agent-sync/) | `core` | One-shot sync of the entire multi-agent ecosystem: Claude Code, Copilot CLI, pipeline repo, and
|
|
69
|
+
| [`multi-agent-sync`](./core/multi-agent-sync/) | `core` | One-shot sync of the entire multi-agent ecosystem: Claude Code, Copilot CLI, pipeline repo, website, and the dev-toolkit MCP server. |
|
|
66
70
|
| [`multi-agent-test`](./core/multi-agent-test/) | `core` | UI Bug Hunter - iOS Simulator (simctl) + Android Emulator (adb). Auto-detects platform. Screenshot + tap + analyze on the booted device. T |
|
|
67
71
|
| [`multi-agent-uninstall`](./core/multi-agent-uninstall/) | `core` | Uninstall the pipeline from Claude Code + Copilot CLI. Keychain access tokens are always left untouched; --all-data also clears pipeline set |
|
|
68
72
|
| [`multi-agent-update`](./core/multi-agent-update/) | `core` | Update the pipeline to the latest version: git pull, install, migrate. |
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: apple-archive-compliance
|
|
3
3
|
language: en
|
|
4
|
-
description: "Apple App Store Review compliance - wraps the dev-toolkit-mcp `ios_app_store_audit` tool (
|
|
4
|
+
description: "Apple App Store Review compliance - wraps the dev-toolkit-mcp `ios_app_store_audit` tool (18-rule deep scan) with ITMS error code mapping + EN/TR humanizer templates. Consumed by: /multi-agent:test 'store-ready' (primary dispatch), Phase 4 Security Auditor (catalog cross-ref on Info.plist / PrivacyInfo / entitlements diffs), /multi-agent:review (PR citation), /multi-agent:channels (PR body auto-augmentation). Wiring enforced by smoke-compliance-skills.sh."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
argument-hint: '[archive-path] [--threshold=error|warning|info] [--format=markdown|json] [--lang=en|tr] - no-arg: picks most recent .xcarchive from ~/Library/Developer/Xcode/Archives/'
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# apple-archive-compliance - Apple App Store Review Compliance Skill
|
|
10
10
|
|
|
11
|
-
Pre-submission compliance check for iOS `.xcarchive` bundles. Wraps the [`ios_app_store_audit`](https://github.com/mmerterden/dev-toolkit-mcp) MCP tool (
|
|
11
|
+
Pre-submission compliance check for iOS `.xcarchive` bundles. Wraps the [`ios_app_store_audit`](https://github.com/mmerterden/dev-toolkit-mcp) MCP tool (18-rule deep audit shipped inside `@mmerterden/dev-toolkit-mcp` v2.9.0+) and humanizes its JSON output into actionable Turkish / English markdown reports. Catches rejection-causing issues (ITMS error codes, App Store Review Guideline violations) **before** uploading to App Store Connect.
|
|
12
12
|
|
|
13
13
|
**This skill does NOT reimplement the rule engine** - it invokes the MCP tool and maps its output through a knowledge catalog. Rule logic stays in dev-toolkit-mcp's `tools/ios-app-store-audit/`; this skill is the orchestration + humanization layer.
|
|
14
14
|
|
|
@@ -25,12 +25,12 @@ Pre-submission compliance check for iOS `.xcarchive` bundles. Wraps the [`ios_ap
|
|
|
25
25
|
|
|
26
26
|
### Prerequisite detection
|
|
27
27
|
|
|
28
|
-
The
|
|
28
|
+
The 18-rule scan is provided by the `ios_app_store_audit` tool in `@mmerterden/dev-toolkit-mcp` ≥ v2.9.0. Two invocation modes:
|
|
29
29
|
|
|
30
30
|
**A. Native MCP tool call** (preferred when running inside an MCP-aware editor):
|
|
31
31
|
|
|
32
32
|
```text
|
|
33
|
-
|
|
33
|
+
mcp__dev-toolkit__ios_app_store_audit({
|
|
34
34
|
archive_path: "<path>",
|
|
35
35
|
rules: "all" // "all" | "core" | "deep" | csv of ruleIDs
|
|
36
36
|
})
|
|
@@ -88,7 +88,7 @@ fi
|
|
|
88
88
|
RULES="${RULES:-all}" # all | core | deep | csv of ruleIDs
|
|
89
89
|
|
|
90
90
|
# Mode A - native MCP call (replaces this whole block when running inside Claude Code / Copilot CLI):
|
|
91
|
-
#
|
|
91
|
+
# mcp__dev-toolkit__ios_app_store_audit({ archive_path: "$ARCHIVE_PATH", rules: "$RULES" })
|
|
92
92
|
# Mode B - direct Node invocation (fallback):
|
|
93
93
|
node -e "
|
|
94
94
|
import('@mmerterden/dev-toolkit-mcp/tools/ios-app-store-audit/index.js').then(async m => {
|
|
@@ -107,7 +107,7 @@ VIOLATIONS=$(jq -c '.violations[]' /tmp/archiveguard-$$.json)
|
|
|
107
107
|
|
|
108
108
|
**Cache filename:** writes `/tmp/archiveguard-$$.json` so `/multi-agent:channels` and the skill's downstream consumers can pick it up via the `find /tmp -name 'archiveguard-*.json'` glob.
|
|
109
109
|
|
|
110
|
-
##
|
|
110
|
+
## 18-Rule Catalog
|
|
111
111
|
|
|
112
112
|
Apple App Store Review Guidelines + ITMS upload error codes that the underlying scanner enforces. Rule IDs match the source-of-truth IDs in `dev-toolkit-mcp/tools/ios-app-store-audit/rules/<ruleID>.js` (stable across versions).
|
|
113
113
|
|
|
@@ -130,6 +130,7 @@ Apple App Store Review Guidelines + ITMS upload error codes that the underlying
|
|
|
130
130
|
| 15 | `production-hygiene` | - | `print()` / `NSLog()` / `debugPrint()` symbol presence + mock/test JSON files shipped in bundle | warning |
|
|
131
131
|
| 16 | `duplicate-resource` | - | Same asset under multiple paths (bloats bundle) | info |
|
|
132
132
|
| 17 | `dead-reference` | - | Files referenced in Xcode proj but absent from archive | warning |
|
|
133
|
+
| 18 | `sdk-floor` | ITMS-90725 | `DTSDKName` / `DTPlatformVersion` major ≥ 26 and `DTXcode` ≥ 2600 (iOS 26 / Xcode 26 floor, in force since 2026-04-28) | error |
|
|
133
134
|
|
|
134
135
|
## Severity mapping for consumers
|
|
135
136
|
|
|
@@ -256,12 +257,12 @@ If `:test "store-ready"` ran recently and its JSON is cached, channels command's
|
|
|
256
257
|
multi-agent-test "store-ready" --format=json --auto-pick
|
|
257
258
|
|
|
258
259
|
# Direct MCP tool call (any MCP-aware editor)
|
|
259
|
-
|
|
260
|
+
mcp__dev-toolkit__ios_app_store_audit({ archive_path: "~/Library/Developer/Xcode/Archives/2026-04-21/MyApp.xcarchive", rules: "all" })
|
|
260
261
|
```
|
|
261
262
|
|
|
262
263
|
### Phase 4 Security Auditor (catalog cross-ref, no binary invocation)
|
|
263
264
|
|
|
264
|
-
When a Phase 4 review diff touches iOS release-relevant paths (`Info.plist`, `PrivacyInfo.xcprivacy`, `*.entitlements`, `AppDelegate.swift`, `project.pbxproj`), the security-auditor persona loads this skill's
|
|
265
|
+
When a Phase 4 review diff touches iOS release-relevant paths (`Info.plist`, `PrivacyInfo.xcprivacy`, `*.entitlements`, `AppDelegate.swift`, `project.pbxproj`), the security-auditor persona loads this skill's 18-rule catalog and cites matching ruleIDs next to its findings. No binary invocation at review time - catalog reads are free.
|
|
265
266
|
|
|
266
267
|
```
|
|
267
268
|
# Example finding from Phase 4 Security Auditor (wired in v5.8.1):
|
|
@@ -313,3 +314,4 @@ The appended section is structured:
|
|
|
313
314
|
- **v5.8.1** - 3 additional consumer surfaces wired (Phase 4 Security Auditor cross-ref, `/multi-agent:review` citation, `/multi-agent:channels` PR-body auto-augmentation). Regression-locked by `smoke-compliance-skills.sh` (45 assertions).
|
|
314
315
|
- **v6.0.0** - `language: en` frontmatter tag; 4-consumer Examples section expanded.
|
|
315
316
|
- **v8.4.0** - Migrated off the standalone ArchiveGuard Swift binary. Backend is now the `ios_app_store_audit` tool inside `@mmerterden/dev-toolkit-mcp` ≥ v2.4 (full Node port of the 17 rules). All four consumer surfaces unchanged; rule IDs and JSON output shape preserved for backward compatibility. Rule catalog now points to `dev-toolkit-mcp/tools/ios-app-store-audit/rules/`. ArchiveGuard repo deprecated.
|
|
317
|
+
- **Unreleased** - Catalog grows to 18 rules: adds `sdk-floor` (ITMS-90725, iOS 26 / Xcode 26 build floor in force since 2026-04-28), which nothing previously checked. `embedded-sdk`'s missing-framework-privacy-manifest finding moves from a `5.1.1` WARNING to `ITMS-91061` ERROR, an enforced rejection since 2025-02-12 - archives that used to pass with a warning now fail. Requires `@mmerterden/dev-toolkit-mcp` ≥ v2.9.0.
|