@mmerterden/multi-agent-pipeline 14.2.2 → 15.1.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 +186 -6
- package/README.md +19 -12
- package/README.tr.md +19 -12
- package/SECURITY.md +43 -0
- package/docs/FIGMA_PIPELINE.md +3 -3
- package/docs/adr/0006-skills-core-external-split.md +1 -1
- package/docs/adr/0007-multi-tool-adapter-framework.md +1 -1
- package/docs/adr/0009-claude-stack-skills-plugin-only.md +31 -0
- package/docs/adr/README.md +1 -0
- package/docs/architecture.md +13 -13
- package/docs/ecosystem.md +31 -31
- package/docs/features.md +5 -5
- package/index.js +6 -1
- package/install/_codex-agents.mjs +11 -2
- package/install/_common.mjs +109 -3
- package/install/_dev-only-files.mjs +0 -1
- package/install/_platform-filter.mjs +54 -113
- package/install/_plugin-skills.mjs +36 -36
- package/install/claude.mjs +251 -61
- package/install/codex.mjs +28 -6
- package/install/copilot.mjs +69 -9
- package/install/index.mjs +9 -3
- package/install/templates/codex-instructions.md +1 -1
- package/install/templates/copilot-instructions.md +3 -3
- package/package.json +2 -3
- package/pipeline/commands/multi-agent/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/analysis/SKILL.md +3 -3
- package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/build-optimize/SKILL.md +9 -9
- package/pipeline/commands/multi-agent/channels/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/complaint-analysis/SKILL.md +186 -0
- package/pipeline/commands/multi-agent/dev/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/dev-autopilot/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/dev-local/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/dev-local-autopilot/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/help/SKILL.md +19 -4
- package/pipeline/commands/multi-agent/ios-coding-standard/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/jira/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/prune-prompts/SKILL.md +81 -0
- package/pipeline/commands/multi-agent/refactor/SKILL.md +36 -1
- package/pipeline/commands/multi-agent/resume/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/{ship → resume-local}/SKILL.md +8 -8
- package/pipeline/commands/multi-agent/scan/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/setup/SKILL.md +5 -5
- package/pipeline/commands/multi-agent/stack/SKILL.md +62 -40
- package/pipeline/commands/multi-agent/store-ready/SKILL.md +3 -3
- package/pipeline/commands/multi-agent/sync/SKILL.md +18 -11
- package/pipeline/commands/multi-agent/testflight-validation/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/uninstall/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/update/SKILL.md +4 -4
- package/pipeline/lib/issue-fetcher.sh +1 -1
- package/pipeline/lib/parse-complaints.sh +316 -0
- package/pipeline/multi-agent-refs/channels/wiki.md +3 -3
- package/pipeline/multi-agent-refs/complaint-analysis-template.md +99 -0
- package/pipeline/multi-agent-refs/component-dispatch.md +6 -6
- package/pipeline/multi-agent-refs/cross-cli-contract.md +16 -16
- package/pipeline/multi-agent-refs/features/external-context-injection.md +1 -1
- package/pipeline/multi-agent-refs/features/stack-skill-routing.md +5 -5
- package/pipeline/multi-agent-refs/generate-issue.md +1 -1
- package/pipeline/multi-agent-refs/phases/modes.md +1 -1
- package/pipeline/multi-agent-refs/phases/operations.md +7 -1
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-1-analysis.md +7 -7
- package/pipeline/multi-agent-refs/phases/phase-2-planning.md +5 -5
- package/pipeline/multi-agent-refs/phases/phase-3-dev.md +3 -3
- package/pipeline/multi-agent-refs/phases/phase-4-review.md +12 -12
- package/pipeline/multi-agent-refs/phases/phase-5-test.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-7-report.md +6 -0
- package/pipeline/multi-agent-refs/tracker-contract.md +3 -2
- package/pipeline/multi-agent-refs/wiki-capture.md +2 -2
- package/pipeline/preferences-template.json +18 -5
- package/pipeline/rules/figma-pipeline.md +2 -2
- package/pipeline/schemas/agent-state.schema.json +1 -1
- package/pipeline/schemas/complaint-analysis-spec.schema.json +216 -0
- package/pipeline/schemas/migrations/prefs-2.5.0-to-2.6.0.mjs +46 -0
- package/pipeline/schemas/prefs.schema.json +296 -66
- package/pipeline/schemas/token-budget.json +2 -2
- package/pipeline/scripts/README.md +4 -3
- package/pipeline/scripts/_stack-routing.mjs +79 -0
- package/pipeline/scripts/audit-log-rotate.sh +4 -1
- package/pipeline/scripts/build-skills-index.mjs +11 -0
- package/pipeline/scripts/build-stack-plugins.mjs +28 -60
- package/pipeline/scripts/check-derived-drift.mjs +55 -28
- package/pipeline/scripts/gc-worktrees.sh +4 -1
- package/pipeline/scripts/gen-skills-index.mjs +1 -1
- package/pipeline/scripts/match-skills.mjs +12 -2
- package/pipeline/scripts/migrate-prefs.mjs +33 -21
- package/pipeline/scripts/phase-tracker.sh +32 -5
- package/pipeline/scripts/phase0-exit-gate.mjs +3 -2
- package/pipeline/scripts/run-aggregator.mjs +7 -2
- package/pipeline/scripts/scan-agent-config.sh +1 -1
- package/pipeline/scripts/skill-conformance.mjs +165 -30
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +1 -1
- package/pipeline/scripts/test-gap-rules/android.json +25 -0
- package/pipeline/scripts/test-gap-rules/ios.json +34 -0
- package/pipeline/scripts/test-gap-rules/node.json +29 -0
- package/pipeline/scripts/test-gap-rules/python.json +25 -0
- package/pipeline/scripts/uninstall.mjs +160 -11
- package/pipeline/scripts/usage-report.mjs +426 -0
- package/pipeline/scripts/validate-complaint-doc.mjs +250 -0
- package/pipeline/scripts/validate-reviewer.mjs +9 -3
- package/pipeline/skills/.skill-manifest.json +156 -108
- package/pipeline/skills/.skills-index.json +449 -12
- package/pipeline/skills/shared/README.md +14 -10
- package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-complaint-analysis/SKILL.md +49 -0
- package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-prune-prompts/SKILL.md +83 -0
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +153 -90
- package/pipeline/skills/shared/core/{multi-agent-ship → multi-agent-resume-local}/SKILL.md +6 -6
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +89 -22
- package/pipeline/skills/shared/core/multi-agent-store-ready/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +8 -8
- package/pipeline/skills/shared/core/multi-agent-testflight-validation/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +1 -1
- package/pipeline/skills/shared/external/ios-coding-standard/modules/_TEMPLATE.yml +2 -2
- package/pipeline/skills/shared/external/ios-coding-standard/references/rules.yml +368 -33
- package/pipeline/skills/shared/external/ios-coding-standard/references/swiftlint.draft.yml +1 -2
- package/pipeline/skills/shared/external/ios-coding-standard/scripts/check_structure.py +765 -0
- package/pipeline/skills/shared/external/ios-module-structure/SKILL.md +75 -0
- package/pipeline/skills/shared/external/ios-module-structure/modules/_TEMPLATE.yml +131 -0
- package/pipeline/skills/shared/external/ios-module-structure/references/rules.yml +559 -0
- package/pipeline/skills/shared/external/ios-module-structure/scripts/check_structure.py +765 -0
- package/pipeline/skills/shared/external/localization-reuse-map/example-mapping.json +53 -10
- package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +4 -3
- package/pipeline/skills/skills-index.md +7 -4
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,186 @@ Internal file-layout changes that don't affect the slash-command surface are sti
|
|
|
16
16
|
|
|
17
17
|
## [Unreleased]
|
|
18
18
|
|
|
19
|
+
## [15.1.0] - 2026-08-14
|
|
20
|
+
|
|
21
|
+
Opt-in run telemetry to a private dashboard, and a refactor band that mines it.
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- **Opt-in usage telemetry (`usageLog`).** When `prefs.global.usageLog.enabled`
|
|
26
|
+
is set with an ingest token, each run emits one activity event, keyed by task
|
|
27
|
+
id and refreshed live at every phase boundary via `phase-tracker.sh`, so one
|
|
28
|
+
record always shows the last phase a run reached — including runs that halt
|
|
29
|
+
before Phase 7. Wired at Phase 7 report and the halt path; detached and
|
|
30
|
+
best-effort, never blocking a run. The event carries activity metadata only
|
|
31
|
+
(who, command, mode, input type, repo, phase, outcome, halt cause, review
|
|
32
|
+
iterations, duration, token spend, cost, per-phase breakdown, OS, CLI, models,
|
|
33
|
+
stack, plugins, integrations, credential health, invoked skills, error tags,
|
|
34
|
+
version) — never prompts, code, diffs, token values or absolute paths. New
|
|
35
|
+
`pipeline/scripts/usage-report.mjs`; prefs schema + template gain the
|
|
36
|
+
`usageLog` block. Off by default; the emitter no-ops unless enabled and a
|
|
37
|
+
token resolves.
|
|
38
|
+
- **`/multi-agent:refactor` Step 0d (band F).** Reads the local run-error ledger
|
|
39
|
+
(`errors-ledger.jsonl`, written by the telemetry emitter on terminal runs) and
|
|
40
|
+
ranks recurring failures as prioritized improvement areas — lived evidence,
|
|
41
|
+
offline, and without auth.
|
|
42
|
+
|
|
43
|
+
### Changed
|
|
44
|
+
|
|
45
|
+
- Reconciled the Copilot shared-core `multi-agent-refactor` skill with the Claude
|
|
46
|
+
command version, ending the prose drift that had accumulated between the two.
|
|
47
|
+
|
|
48
|
+
## [15.0.1] - 2026-08-13
|
|
49
|
+
|
|
50
|
+
Post-15.0.0 audit release: three blocking defects in the 15.0.0 surface, two
|
|
51
|
+
data-loss paths, and the doc drift that let a command count go stale in 17
|
|
52
|
+
places at once.
|
|
53
|
+
|
|
54
|
+
### Fixed
|
|
55
|
+
|
|
56
|
+
- **The 15.0.0 plugin-only migration never ran on an upgrade.** Its prune was
|
|
57
|
+
gated on `.external-skills-manifest.json`, which no released version wrote on
|
|
58
|
+
Claude Code, so every machine upgrading from 14.x kept the whole ~151-dir
|
|
59
|
+
external catalog (the duplicated per-session descriptions and plugin-shadowing
|
|
60
|
+
copies ADR-0009 exists to remove), and `uninstall --claude` refused to clean it
|
|
61
|
+
for the same reason. Pre-manifest installs are now migrated by proof rather
|
|
62
|
+
than by name: a skill dir byte-identical to the shipped catalog is provably
|
|
63
|
+
pipeline-delivered and is removed, a dir that differs is kept and reported,
|
|
64
|
+
and the new `install --prune-external` flag removes those too (still never a
|
|
65
|
+
dir carrying `local-only: true`). Gate: `smoke-claude-external-migration.sh`.
|
|
66
|
+
- **The cross-host stack filter read a file nothing writes.** `pluginsToDeliver`
|
|
67
|
+
looked only at `~/.claude/settings.json` while `/multi-agent:stack` writes the
|
|
68
|
+
invoking repo's `.claude/settings.json`, so a stack selection either delivered
|
|
69
|
+
the entire catalog to Copilot/Codex (logged as if a filter had run) or, worse,
|
|
70
|
+
delivered a different stack than the repo asked for. Repo settings are now read
|
|
71
|
+
first, user-global second, `--platform` last.
|
|
72
|
+
- **Copilot's skipped-stack prune could delete user-authored skills.** The prune
|
|
73
|
+
was derived from catalog *names*, so a user's own `~/.copilot/skills/<name>/`
|
|
74
|
+
sharing a catalog name was removed with no prompt. It is now scoped to the
|
|
75
|
+
previous delivery manifest (or, pre-manifest, to dirs byte-identical to the
|
|
76
|
+
catalog) - the same contract `uninstall` already used.
|
|
77
|
+
- **Manifest-driven removal had no path containment.** A name carrying `..` or a
|
|
78
|
+
path separator in `.external-skills-manifest.json` resolved outside the skills
|
|
79
|
+
directory before reaching a recursive delete.
|
|
80
|
+
- **`validate-complaint-doc.mjs` rejected reports that follow the template.**
|
|
81
|
+
Section 1's coverage table cites `C-NN` ids in its last column and was read as
|
|
82
|
+
verdict-less triage rows, and verdict matching was positional-substring, so a
|
|
83
|
+
summary cell mentioning `core-data` classified the row as `core`. Triage rows
|
|
84
|
+
are now scoped to the Triage section with the id in the first cell, and verdict
|
|
85
|
+
tokens match cell-exact. The smoke fixture carries both Section 1 tables so the
|
|
86
|
+
gate is exercised against real template output.
|
|
87
|
+
- **`/multi-agent:stack` with no arguments wiped the repo's stack selection.**
|
|
88
|
+
The implementation block resolved an empty arg list to "common only" and then
|
|
89
|
+
applied the write rule that sets every other stack toolkit to `false`. Zero
|
|
90
|
+
args now exits into status mode, and the picker's `frontend (web)` label maps
|
|
91
|
+
back to its canonical arg.
|
|
92
|
+
- `parse-complaints.sh` returns the documented exit 4 when `--file` / `--format`
|
|
93
|
+
is passed without a value instead of dying on `set -u`, and redacts all-letter
|
|
94
|
+
PNRs that follow a PNR-ish keyword.
|
|
95
|
+
- `migrate-prefs.mjs`: the schema-unreadable fallback set now includes `2.5.0`,
|
|
96
|
+
so a 14.x prefs file no longer throws `unknown schemaVersion` on an install
|
|
97
|
+
tree whose `schemas/` cannot be read.
|
|
98
|
+
- `check-derived-drift.mjs`: an acknowledged drift pin no longer silences a
|
|
99
|
+
cache-only resolution, which had let the gate exit 0 while nothing
|
|
100
|
+
authoritative was consulted.
|
|
101
|
+
- `match-skills.mjs` gains the `~/.codex/multi-agent-refs/skills` index
|
|
102
|
+
candidate, so dynamic skill loading works on Codex instead of exiting 1.
|
|
103
|
+
|
|
104
|
+
### Changed
|
|
105
|
+
|
|
106
|
+
- `smoke-command-inventory.sh` now derives the command count for `README.md`,
|
|
107
|
+
`README.tr.md`, `docs/architecture.md` and `docs/ecosystem.md` as well. Those
|
|
108
|
+
four files held 17 of the 20 "50 commands" sites and none was gated, so adding
|
|
109
|
+
`complaint-analysis` desynced all of them at once.
|
|
110
|
+
- Doc corrections: autopilot / local modes document 7 phases, not 8 (the
|
|
111
|
+
interactive Phase 5 test gate is dropped in every autopilot and local variant,
|
|
112
|
+
per `gen-mode-dispatch.mjs`) - README EN+TR and `tracker-contract.md`; the
|
|
113
|
+
Node badge matches `engines` (20.11+); the publish diagrams say public npm
|
|
114
|
+
rather than GitHub Packages; skill / schema / fixture counts match the tree;
|
|
115
|
+
`ecosystem.md` drops the retracted "frozen `figma-*` fallback" claim; ROADMAP
|
|
116
|
+
catches up four majors; ADR-0007 records Codex's return as a native target.
|
|
117
|
+
- `SECURITY.md` ships in the package, so the README link resolves on npmjs and
|
|
118
|
+
in an installed tree. Install help documents `--dry-run`, `--index-only` and
|
|
119
|
+
`--prune-external`.
|
|
120
|
+
|
|
121
|
+
### Removed
|
|
122
|
+
|
|
123
|
+
- Dead pre-v15 code: `copyExternalSkillsFiltered`, `classifyExternalSkill` and
|
|
124
|
+
its prefix tables (superseded by the routing table), `existingSkillNames`
|
|
125
|
+
(superseded by `pipelineOwnedSkillNames`, and a hazard if called), and an
|
|
126
|
+
unconsumed `MCP_SERVER_NAME` re-export. Six internals no longer export a
|
|
127
|
+
surface nothing imports.
|
|
128
|
+
|
|
129
|
+
## [15.0.0] - 2026-08-13
|
|
130
|
+
|
|
131
|
+
### Changed (BREAKING)
|
|
132
|
+
|
|
133
|
+
- **Claude Code stack skills are plugin-only** (ADR-0009). The installer no longer
|
|
134
|
+
copies `shared/core` + `shared/external` into `~/.claude/skills`; the
|
|
135
|
+
`multi-agent-plugins` marketplace is Claude Code's only stack-skill source,
|
|
136
|
+
namespaced (`ai-ios-toolkit:<skill>`). Exactly two pipeline-owned compliance
|
|
137
|
+
catalogs stay local (`PIPELINE_LOCAL_SKILLS`). Old installs are migrated
|
|
138
|
+
manifest-scoped (`.external-skills-manifest.json`); user-authored dirs survive.
|
|
139
|
+
- **Marketplace plugin names lose the `engineering` infix**:
|
|
140
|
+
`ai-<stack>-engineering-toolkit` -> `ai-<stack>-toolkit`. `enabledPlugins`
|
|
141
|
+
keys must migrate; `/multi-agent:stack` deletes the retired keys.
|
|
142
|
+
- **`/multi-agent:ship` -> `/multi-agent:resume-local`** (the tail command opens a
|
|
143
|
+
PR but merges nothing, so "ship" oversold it). Prefs `global.ship` ->
|
|
144
|
+
`global.resumeLocal` via schema 2.6.0 (step migration + monolith, autoFix value
|
|
145
|
+
carried across the finish -> ship -> resume-local chain).
|
|
146
|
+
|
|
147
|
+
### Added
|
|
148
|
+
|
|
149
|
+
- `/multi-agent:stack` **multi-select**: several stacks per call (`ios backend`),
|
|
150
|
+
a native multi-select picker with no args, `web` alias, always-on
|
|
151
|
+
`ai-common-toolkit`, legacy-key cleanup, and a Copilot/Codex refresh offer.
|
|
152
|
+
- Every marketplace plugin ships **`ai-<stack>-toolkit:help`**: a language-aware
|
|
153
|
+
catalog rendered live from `plugin.json` (drift-proof by construction).
|
|
154
|
+
- `pipeline/scripts/_stack-routing.mjs`: the single routing table shared by
|
|
155
|
+
`build-stack-plugins.mjs`, the installers and the skills index.
|
|
156
|
+
- Skills index entries carry `plugin` + `invokeAs`; `match-skills.mjs` returns
|
|
157
|
+
plugin-namespaced names. `skill-conformance.mjs` probes the marketplace
|
|
158
|
+
checkout and version-named plugin cache as skills roots.
|
|
159
|
+
|
|
160
|
+
### Changed
|
|
161
|
+
|
|
162
|
+
- Copilot CLI and Codex CLI local copies are **filtered to the enabled stacks**
|
|
163
|
+
(`pluginsToDeliver` + `partitionExternalSkillsByPlugins`); Codex previously
|
|
164
|
+
received the full catalog unconditionally and now also writes a delivery
|
|
165
|
+
manifest. One `/multi-agent:stack` selection governs all three hosts.
|
|
166
|
+
- Prompt-context skill tables (phase 1/2/4), `humanizer` invocations,
|
|
167
|
+
`build-optimize` dispatches and the store-review references are
|
|
168
|
+
plugin-namespaced.
|
|
169
|
+
- `DESC_CEILING` 82000 -> 82600 and phase-doc total 52750 -> 53100: the
|
|
170
|
+
namespaced tables and the new command descriptions did not fit ceilings that
|
|
171
|
+
were already at (or 193 bytes past) their limit; the always-on surface itself
|
|
172
|
+
shrank with the local copy gone.
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
### Added
|
|
176
|
+
|
|
177
|
+
- **`/multi-agent:complaint-analysis`** — customer-complaint / customer-reported-error
|
|
178
|
+
triage as a new one-shot ops command (51st command). Ingests complaints from
|
|
179
|
+
free-text paste, csv/xlsx/txt/json exports (`pipeline/lib/parse-complaints.sh`,
|
|
180
|
+
with built-in PII redaction: email / phone / card / national-id / PNR shapes),
|
|
181
|
+
Jira issues, or Confluence URLs; fetches Graylog evidence per
|
|
182
|
+
trxId/conversationId via the existing `fetch-graylog.sh`; correlates read-only
|
|
183
|
+
against the selected client + BFF repos (user-confirmed layer tagging:
|
|
184
|
+
ios / android / web / mobile-bff / web-bff); and classifies each complaint as
|
|
185
|
+
`client:<layer>` / `bff:<layer>` (root cause + citations + a fix plan grounded
|
|
186
|
+
in the existing architecture + a ready-to-run dev prompt), `core` (routing
|
|
187
|
+
recommendation to the backend core team, never a fix analysis), or
|
|
188
|
+
`insufficient-evidence`. Report dispatches to Local (default) / Confluence /
|
|
189
|
+
Jira behind a deterministic gate (`scripts/validate-complaint-doc.mjs`:
|
|
190
|
+
sections, verdict tokens, per-core routing entries, humanizer punctuation,
|
|
191
|
+
redaction-leak scan; smoke: `smoke-validate-complaint-doc.sh`). State contract:
|
|
192
|
+
`schemas/complaint-analysis-spec.schema.json`. Graylog-as-primary-evidence is a
|
|
193
|
+
documented, command-scoped exception to the advisory-only rule in
|
|
194
|
+
`features/external-context-injection.md`. `DESC_CEILING` raised 81000 -> 82000
|
|
195
|
+
(gate + pinned test together): the two new ~430-byte descriptions did not fit
|
|
196
|
+
in the ~25 bytes of headroom the surface had left; the average stays at 319
|
|
197
|
+
against the 420 ceiling.
|
|
198
|
+
|
|
19
199
|
## [14.2.2] - 2026-08-04
|
|
20
200
|
|
|
21
201
|
### Added
|
|
@@ -1911,7 +2091,7 @@ Single-source skill management, an upgraded `refactor` command, and two new Phas
|
|
|
1911
2091
|
- **Component/Figma work is plugin-only.** The pipeline no longer bundles the
|
|
1912
2092
|
`figma-ios` / `figma-android` / `figma-common` skill trees. Phase 3 dispatches
|
|
1913
2093
|
component and Figma-to-code work to the per-stack marketplace plugins
|
|
1914
|
-
(`ai-ios-
|
|
2094
|
+
(`ai-ios-toolkit` / `ai-android-toolkit`) via the Skill
|
|
1915
2095
|
tool, so component skills live in one place. The 3-tier Figma design-access
|
|
1916
2096
|
fallback still governs the analysis phase.
|
|
1917
2097
|
- **Command layout migrated to `<name>/SKILL.md`.** Each subcommand is now its own
|
|
@@ -1952,7 +2132,7 @@ Skill mining + an install-safety fix.
|
|
|
1952
2132
|
write-if-missing: new baseline rules are added, existing local rules are
|
|
1953
2133
|
preserved untouched. New `copyDir({ skipExisting })` option backs this.
|
|
1954
2134
|
- **Two skills mined from the corporate iOS toolkit and genericized into
|
|
1955
|
-
`ai-common-
|
|
2135
|
+
`ai-common-toolkit` (v0.1.2):**
|
|
1956
2136
|
- `skill-creator` — the house rules for authoring skills (description-first
|
|
1957
2137
|
discovery, lean SKILL.md as an index, progressive disclosure, reference vs
|
|
1958
2138
|
workflow vs tool layers, no-prefix naming, grow-from-failure), with a
|
|
@@ -1987,7 +2167,7 @@ operating systems, all additive and opt-in.
|
|
|
1987
2167
|
no-progress stall, an identical repeated failure, a rework storm, cost drift
|
|
1988
2168
|
past the `costBudget` ceiling, or a merge/rebase conflict. Continuing
|
|
1989
2169
|
unattended off the happy path is the less safe choice.
|
|
1990
|
-
- **Three technique skills** added to `ai-common-
|
|
2170
|
+
- **Three technique skills** added to `ai-common-toolkit`
|
|
1991
2171
|
(v0.1.1): `council` (multi-voice adversarial decision), `search-first`
|
|
1992
2172
|
(research-before-coding with an adopt/extend/compose/build matrix), and
|
|
1993
2173
|
`agent-introspection-debugging` (capture -> diagnose -> contained-recovery ->
|
|
@@ -2343,7 +2523,7 @@ Fable 5 restored as the top model tier; `stack-swap` fully removed; setup gains
|
|
|
2343
2523
|
setup detects the project stack from markers (`.xcodeproj`/`Package.swift` → iOS,
|
|
2344
2524
|
`build.gradle` → Android, `package.json`+react → Frontend, `requirements.txt`/
|
|
2345
2525
|
`pyproject.toml` → Backend) and enables the matching marketplace plugin plus the
|
|
2346
|
-
always-on `ai-common-
|
|
2526
|
+
always-on `ai-common-toolkit`. **No clear marker → default iOS.** So a
|
|
2347
2527
|
fresh install works out of the box and a repo at any org gets its correct stack.
|
|
2348
2528
|
|
|
2349
2529
|
### Changed
|
|
@@ -2377,7 +2557,7 @@ Stack skills move from the local `stack-swap` mechanic to versioned marketplace
|
|
|
2377
2557
|
`plugin.json` `skills[]`, and **bumps the patch version of any plugin whose
|
|
2378
2558
|
skill set changed**. Idempotent (`--dry-run` supported); a no-op run bumps
|
|
2379
2559
|
nothing. Cross-stack skills (accessibility audit, humanizer, Firebase) route
|
|
2380
|
-
to `ai-common-
|
|
2560
|
+
to `ai-common-toolkit`; Apple/Xcode-only skills stay in the iOS
|
|
2381
2561
|
plugin. This is the version-based-management backbone: the pipeline is the
|
|
2382
2562
|
single authoring source, the marketplace is a derived, versioned artifact.
|
|
2383
2563
|
- **`multi-agent:sync` Step 3c (PLUGINS)** — runs the generator, then commits +
|
|
@@ -2387,7 +2567,7 @@ Stack skills move from the local `stack-swap` mechanic to versioned marketplace
|
|
|
2387
2567
|
|
|
2388
2568
|
- **`/multi-agent:stack`** — selecting a stack no longer moves skill directories
|
|
2389
2569
|
via `stack-swap.sh`. It now enables the matching marketplace plugin(s) (stack
|
|
2390
|
-
toolkit + `ai-common-
|
|
2570
|
+
toolkit + `ai-common-toolkit`) in the current repo's
|
|
2391
2571
|
`.claude/settings.json` `enabledPlugins`, disabling the stack toolkits that
|
|
2392
2572
|
don't apply. Declarative, per-repo, versioned. No SessionStart hook.
|
|
2393
2573
|
- **`/multi-agent:update`** — added a step that refreshes the plugin marketplace
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/mmerterden/multi-agent-pipeline/releases)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://nodejs.org)
|
|
6
6
|
[](https://github.com/mmerterden/multi-agent-pipeline/blob/main/package.json)
|
|
7
7
|
[](https://scorecard.dev/viewer/?uri=github.com/mmerterden/multi-agent-pipeline)
|
|
8
8
|
|
|
@@ -17,13 +17,18 @@ Runs natively on Claude Code, Copilot CLI and Codex CLI. macOS / Linux / Windows
|
|
|
17
17
|
## Quick Start
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
# from the public registry (no auth)
|
|
21
|
-
npx @mmerterden/multi-agent-pipeline install --
|
|
20
|
+
# from the public registry (no auth) - pick the CLIs you actually use
|
|
21
|
+
npx @mmerterden/multi-agent-pipeline install --claude # Claude Code only (default)
|
|
22
|
+
npx @mmerterden/multi-agent-pipeline install --copilot # Copilot CLI only
|
|
23
|
+
npx @mmerterden/multi-agent-pipeline install --codex # Codex CLI only
|
|
24
|
+
npx @mmerterden/multi-agent-pipeline install --all # all three
|
|
22
25
|
|
|
23
26
|
# then, once:
|
|
24
27
|
/multi-agent:setup # keychain token scan + git identity + default stack
|
|
25
28
|
```
|
|
26
29
|
|
|
30
|
+
Tool flags combine (`--claude --codex`). With no tool flag at all, the installer targets Claude Code only. Other flags: `--dry-run` (show what would be written, write nothing), `--platform=ios|android|all` (skip the stack skills you do not need), `--link` (symlink instead of copy, for local development).
|
|
31
|
+
|
|
27
32
|
Run a task - the input type is auto-detected:
|
|
28
33
|
|
|
29
34
|
```bash
|
|
@@ -41,6 +46,8 @@ Add `autopilot` to skip confirmations, `--dev` for the fast dev-only path, or `-
|
|
|
41
46
|
|
|
42
47
|
Update later with `/multi-agent:update`. Uninstall (tokens preserved) with `npx @mmerterden/multi-agent-pipeline uninstall`.
|
|
43
48
|
|
|
49
|
+
**Stack skills are marketplace plugins.** On Claude Code the `ai-<stack>-toolkit` plugins (`multi-agent-plugins` marketplace) are the only stack-skill source - nothing is copied into `~/.claude/skills`. Pick the active stack(s) per repo with `/multi-agent:stack` (multi-select: `ios backend`, or a native picker with no args); each plugin ships a language-aware catalog at `ai-<stack>-toolkit:help`. Copilot CLI and Codex CLI have no plugin loader, so they receive a local copy filtered to the same enabled stacks.
|
|
50
|
+
|
|
44
51
|
## How it works
|
|
45
52
|
|
|
46
53
|
One command runs 8 phases, with a gate between the risky ones:
|
|
@@ -63,14 +70,14 @@ The discipline behind all of this - bounded loops, evidence gates, token-budgete
|
|
|
63
70
|
| Mode | Command | Flow |
|
|
64
71
|
|---|---|---|
|
|
65
72
|
| Full | `/multi-agent "task"` | All 8 phases, interactive |
|
|
66
|
-
| Autopilot | `/multi-agent:autopilot "task"` |
|
|
73
|
+
| Autopilot | `/multi-agent:autopilot "task"` | 7 phases (interactive Test gate dropped), no confirmations |
|
|
67
74
|
| Dev | `/multi-agent:dev "task"` | Init → Dev → Review → Test → Commit → Report |
|
|
68
|
-
| Local | `/multi-agent:local "task"` | Full pipeline, current branch (no worktree) |
|
|
69
|
-
| Ship | `/multi-agent:
|
|
75
|
+
| Local | `/multi-agent:local "task"` | Full pipeline minus the interactive Test gate, current branch (no worktree) |
|
|
76
|
+
| Ship | `/multi-agent:resume-local` | Run the review→test→commit→report tail over local work |
|
|
70
77
|
| Audit | `/multi-agent:design-check` | Mock-mode vs Figma conformance, local-only |
|
|
71
78
|
| Audit | `/multi-agent:testflight-validation` | Pre-submission gates for a TestFlight build: static archive audit → Apple's `altool --validate-app` → Review-Guidelines check. Validates only, never uploads |
|
|
72
79
|
|
|
73
|
-
Helpers: `setup`, `status`, `resume #N`, `kill #N`, `garbage-collect`, `prune-logs`, `purge`, `review`, `test`, `channels`, `stack`, `update`, `sync`, `refactor`, `jira`, `issue`, `analysis`, `create-jira`, `save`, `routines`, `forget`.
|
|
80
|
+
Helpers: `setup`, `status`, `resume #N`, `kill #N`, `garbage-collect`, `prune-logs`, `purge`, `review`, `test`, `channels`, `stack`, `update`, `sync`, `refactor`, `jira`, `issue`, `analysis`, `create-jira`, `save`, `routines`, `forget`. 51 commands in all - full list: `/multi-agent:help`.
|
|
74
81
|
|
|
75
82
|
## Stacks
|
|
76
83
|
|
|
@@ -84,17 +91,17 @@ This enables the matching plugin (+ the shared `ai-common` plugin) in the repo's
|
|
|
84
91
|
|
|
85
92
|
## Tool support
|
|
86
93
|
|
|
87
|
-
The pipeline runs natively on **Claude Code**, **Copilot CLI** and **Codex CLI** - all three install from the same `pipeline/` source and get the same
|
|
94
|
+
The pipeline runs natively on **Claude Code**, **Copilot CLI** and **Codex CLI** - all three install from the same `pipeline/` source and get the same 51 commands.
|
|
88
95
|
|
|
89
96
|
| Tool | Flag | What it installs |
|
|
90
97
|
|---|---|---|
|
|
91
98
|
| Claude Code | `--claude` (default) | slash commands + skills + agents + `PreToolUse` secret-scan hook |
|
|
92
|
-
| Copilot CLI | `--copilot` | instructions +
|
|
93
|
-
| Codex CLI | `--codex` | one router skill +
|
|
99
|
+
| Copilot CLI | `--copilot` | instructions + 51 sub-command skills + scripts |
|
|
100
|
+
| Codex CLI | `--codex` | one router skill + 51 specs as refs + 8 agent TOML + `AGENTS.md` block + `codex mcp add` |
|
|
94
101
|
|
|
95
102
|
Filter skills by stack with `--platform=ios\|android\|all`.
|
|
96
103
|
|
|
97
|
-
**Why Codex gets one skill and not
|
|
104
|
+
**Why Codex gets one skill and not 51.** Codex assembles every discovered skill's name
|
|
98
105
|
and description into a single prompt block and drops entries when it overflows, with no
|
|
99
106
|
error. Measured on 0.145: installing one plugin that declares 142 skills surfaced only
|
|
100
107
|
75 of them and evicted an unrelated user skill. So on Codex the pipeline ships a single
|
|
@@ -128,7 +135,7 @@ The **secret scan** runs as a `PreToolUse` hook on Claude Code (hard-blocks a co
|
|
|
128
135
|
|
|
129
136
|
## Platform support
|
|
130
137
|
|
|
131
|
-
Runs on **macOS**, **Linux**, and **Windows** (Git Bash / WSL). Shell and credential access go through a platform-agnostic layer - the keychain resolves automatically to **macOS Keychain**, **Linux libsecret** (`secret-tool`), or **Windows Credential Manager**, and scripts fall back between BSD and GNU tool variants. Node.js
|
|
138
|
+
Runs on **macOS**, **Linux**, and **Windows** (Git Bash / WSL). Shell and credential access go through a platform-agnostic layer - the keychain resolves automatically to **macOS Keychain**, **Linux libsecret** (`secret-tool`), or **Windows Credential Manager**, and scripts fall back between BSD and GNU tool variants. Node.js 20.11+ (tested on 20 and 22).
|
|
132
139
|
|
|
133
140
|
## Companion repos
|
|
134
141
|
|
package/README.tr.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/mmerterden/multi-agent-pipeline/releases)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://nodejs.org)
|
|
6
6
|
[](https://github.com/mmerterden/multi-agent-pipeline/blob/main/package.json)
|
|
7
7
|
[](https://scorecard.dev/viewer/?uri=github.com/mmerterden/multi-agent-pipeline)
|
|
8
8
|
|
|
@@ -17,13 +17,18 @@ Claude Code, Copilot CLI ve Codex CLI üzerinde native çalışır. macOS / Linu
|
|
|
17
17
|
## Hızlı Başlangıç
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
# public registry'den (auth gerekmez)
|
|
21
|
-
npx @mmerterden/multi-agent-pipeline install --
|
|
20
|
+
# public registry'den (auth gerekmez) - sadece kullandığın CLI'ları seç
|
|
21
|
+
npx @mmerterden/multi-agent-pipeline install --claude # sadece Claude Code (varsayılan)
|
|
22
|
+
npx @mmerterden/multi-agent-pipeline install --copilot # sadece Copilot CLI
|
|
23
|
+
npx @mmerterden/multi-agent-pipeline install --codex # sadece Codex CLI
|
|
24
|
+
npx @mmerterden/multi-agent-pipeline install --all # üçü birden
|
|
22
25
|
|
|
23
26
|
# sonra, bir kere:
|
|
24
27
|
/multi-agent:setup # keychain token taraması + git kimliği + varsayılan stack
|
|
25
28
|
```
|
|
26
29
|
|
|
30
|
+
Tool flag'leri birleştirilebilir (`--claude --codex`). Hiç tool flag'i verilmezse installer sadece Claude Code'u hedefler. Diğer flag'ler: `--dry-run` (ne yazılacağını gösterir, hiçbir şey yazmaz), `--platform=ios|android|all` (ihtiyacın olmayan stack skill'lerini atlar), `--link` (kopyalamak yerine symlink, lokal geliştirme için).
|
|
31
|
+
|
|
27
32
|
Bir görev çalıştır - girdi tipi otomatik algılanır:
|
|
28
33
|
|
|
29
34
|
```bash
|
|
@@ -41,6 +46,8 @@ Onayları atlamak için `autopilot`, hızlı dev-only yol için `--dev`, ya da w
|
|
|
41
46
|
|
|
42
47
|
Sonra `/multi-agent:update` ile güncelle. Kaldırmak için (tokenlar korunur) `npx @mmerterden/multi-agent-pipeline uninstall`.
|
|
43
48
|
|
|
49
|
+
**Stack skill'leri marketplace plugin'leridir.** Claude Code'da `ai-<stack>-toolkit` plugin'leri (`multi-agent-plugins` marketplace) tek stack-skill kaynağıdır - `~/.claude/skills` altına kopya konmaz. Repo başına aktif stack'leri `/multi-agent:stack` ile seç (çoklu seçim: `ios backend`, ya da argümansız native picker); her plugin `ai-<stack>-toolkit:help` ile dilinde katalog sunar. Copilot CLI ve Codex CLI'da plugin loader olmadığından onlara aynı enabled stack'lere filtreli lokal kopya iner.
|
|
50
|
+
|
|
44
51
|
## Nasıl çalışır
|
|
45
52
|
|
|
46
53
|
Tek komut 8 fazı çalıştırır, riskli olanlar arasında bir kapı ile:
|
|
@@ -63,14 +70,14 @@ Bunun arkasındaki disiplin - sınırlı loop'lar, kanıt kapıları, token-büt
|
|
|
63
70
|
| Mod | Komut | Akış |
|
|
64
71
|
|---|---|---|
|
|
65
72
|
| Full | `/multi-agent "task"` | Tüm 8 faz, interaktif |
|
|
66
|
-
| Autopilot | `/multi-agent:autopilot "task"` |
|
|
73
|
+
| Autopilot | `/multi-agent:autopilot "task"` | 7 faz (interaktif Test kapısı atlanır), onaysız |
|
|
67
74
|
| Dev | `/multi-agent:dev "task"` | Init → Dev → Review → Test → Commit → Report |
|
|
68
|
-
| Local | `/multi-agent:local "task"` |
|
|
69
|
-
| Ship | `/multi-agent:
|
|
75
|
+
| Local | `/multi-agent:local "task"` | İnteraktif Test kapısı hariç tam pipeline, mevcut branch (worktree yok) |
|
|
76
|
+
| Ship | `/multi-agent:resume-local` | Lokal iş üzerinde review→test→commit→report kuyruğunu çalıştır |
|
|
70
77
|
| Audit | `/multi-agent:design-check` | Mock-mode vs Figma uygunluğu, yalnızca lokal |
|
|
71
78
|
| Audit | `/multi-agent:testflight-validation` | TestFlight build için pre-submission kapıları: statik archive denetimi → Apple'ın `altool --validate-app`'i → Review-Guidelines kontrolü. Yalnızca doğrular, asla yüklemez |
|
|
72
79
|
|
|
73
|
-
Yardımcılar: `setup`, `status`, `resume #N`, `kill #N`, `garbage-collect`, `prune-logs`, `purge`, `review`, `test`, `channels`, `stack`, `update`, `sync`, `refactor`, `jira`, `issue`, `analysis`, `create-jira`, `save`, `routines`, `forget`. Toplam
|
|
80
|
+
Yardımcılar: `setup`, `status`, `resume #N`, `kill #N`, `garbage-collect`, `prune-logs`, `purge`, `review`, `test`, `channels`, `stack`, `update`, `sync`, `refactor`, `jira`, `issue`, `analysis`, `create-jira`, `save`, `routines`, `forget`. Toplam 51 komut - tam liste: `/multi-agent:help`.
|
|
74
81
|
|
|
75
82
|
## Stack'ler
|
|
76
83
|
|
|
@@ -84,17 +91,17 @@ Bu, ilgili plugin'i (+ ortak `ai-common` plugin'ini) repo'nun `.claude/settings.
|
|
|
84
91
|
|
|
85
92
|
## Araç desteği
|
|
86
93
|
|
|
87
|
-
Pipeline **Claude Code**, **Copilot CLI** ve **Codex CLI** üzerinde native çalışır - üçü de aynı `pipeline/` kaynağından kurulur ve aynı
|
|
94
|
+
Pipeline **Claude Code**, **Copilot CLI** ve **Codex CLI** üzerinde native çalışır - üçü de aynı `pipeline/` kaynağından kurulur ve aynı 51 komutu alır.
|
|
88
95
|
|
|
89
96
|
| Araç | Bayrak | Ne kurar |
|
|
90
97
|
|---|---|---|
|
|
91
98
|
| Claude Code | `--claude` (varsayılan) | slash komutları + skill'ler + agent'lar + `PreToolUse` secret-scan hook'u |
|
|
92
|
-
| Copilot CLI | `--copilot` | talimatlar +
|
|
93
|
-
| Codex CLI | `--codex` | bir router skill + ref olarak
|
|
99
|
+
| Copilot CLI | `--copilot` | talimatlar + 51 alt-komut skill'i + script'ler |
|
|
100
|
+
| Codex CLI | `--codex` | bir router skill + ref olarak 51 spec + 8 agent TOML + `AGENTS.md` bloğu + `codex mcp add` |
|
|
94
101
|
|
|
95
102
|
Skill'leri stack'e göre filtrele: `--platform=ios\|android\|all`.
|
|
96
103
|
|
|
97
|
-
**Codex neden
|
|
104
|
+
**Codex neden 51 değil de tek bir skill alıyor.** Codex, keşfettiği her skill'in adını
|
|
98
105
|
ve açıklamasını tek bir prompt bloğuna toplar ve blok taştığında girdileri hatasızca
|
|
99
106
|
düşürür. 0.145 üzerinde ölçüldü: 142 skill deklare eden bir plugin kurulduğunda sadece
|
|
100
107
|
75'i yüzeye çıktı ve alakasız bir kullanıcı skill'i tahliye edildi. Bu yüzden Codex'te
|
|
@@ -129,7 +136,7 @@ triage notu bunu belirtir.
|
|
|
129
136
|
|
|
130
137
|
## Platform desteği
|
|
131
138
|
|
|
132
|
-
**macOS**, **Linux** ve **Windows** (Git Bash / WSL) üzerinde çalışır. Shell ve credential erişimi platform-agnostik bir katmandan geçer - keychain otomatik olarak **macOS Keychain**, **Linux libsecret** (`secret-tool`) veya **Windows Credential Manager**'a çözülür, ve script'ler BSD ile GNU araç varyantları arasında fallback yapar. Node.js
|
|
139
|
+
**macOS**, **Linux** ve **Windows** (Git Bash / WSL) üzerinde çalışır. Shell ve credential erişimi platform-agnostik bir katmandan geçer - keychain otomatik olarak **macOS Keychain**, **Linux libsecret** (`secret-tool`) veya **Windows Credential Manager**'a çözülür, ve script'ler BSD ile GNU araç varyantları arasında fallback yapar. Node.js 20.11+ (20 ve 22'de test edildi).
|
|
133
140
|
|
|
134
141
|
## Yan repolar
|
|
135
142
|
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Supported Versions
|
|
4
|
+
|
|
5
|
+
We provide security fixes for the latest minor of the current major. Older versions get fixes only for severity ≥ high.
|
|
6
|
+
|
|
7
|
+
| Version | Supported |
|
|
8
|
+
| ------- | ---------------------- |
|
|
9
|
+
| 12.x | ✅ active |
|
|
10
|
+
| 11.x | ⚠️ security fixes only |
|
|
11
|
+
| ≤ 10.x | ❌ end-of-life |
|
|
12
|
+
|
|
13
|
+
## Reporting a Vulnerability
|
|
14
|
+
|
|
15
|
+
**Do not open a public GitHub issue for security reports.**
|
|
16
|
+
|
|
17
|
+
Please report vulnerabilities privately via GitHub's [Security Advisory](https://github.com/mmerterden/multi-agent-pipeline/security/advisories/new) flow. If GitHub Advisories are unavailable to you, email the package owner (see `package.json` → `author`) with:
|
|
18
|
+
|
|
19
|
+
- A clear description of the issue and its impact
|
|
20
|
+
- Steps to reproduce (a minimal repro is most helpful)
|
|
21
|
+
- Affected version(s) and platform
|
|
22
|
+
- Optional: a suggested patch or mitigation
|
|
23
|
+
|
|
24
|
+
You should receive an initial acknowledgement within **5 business days**. We'll keep you updated on progress and aim to release a patch within **30 days** for high/critical issues.
|
|
25
|
+
|
|
26
|
+
## Scope
|
|
27
|
+
|
|
28
|
+
This pipeline orchestrates external systems (Jira, Bitbucket, GitHub, Confluence, Figma) using user-supplied tokens. We consider the following in scope for security reports:
|
|
29
|
+
|
|
30
|
+
- **Token leakage** - any code path that logs, echoes, or persists secrets outside macOS Keychain.
|
|
31
|
+
- **Command injection** - bash invocations built from untrusted input (Jira summary, branch names, PR titles, etc.).
|
|
32
|
+
- **Pre-commit bypass** - secret-detection hook silently failing or being skippable without `--no-verify`.
|
|
33
|
+
- **Pipeline tampering** - agent-state.json or preferences manipulation that escalates an installed package's effective permissions.
|
|
34
|
+
|
|
35
|
+
Out of scope:
|
|
36
|
+
|
|
37
|
+
- Misconfigured user systems (broken Keychain, expired tokens, missing CLI tools).
|
|
38
|
+
- Vulnerabilities in transitive dependencies that don't reach a code path we use (please report those upstream first).
|
|
39
|
+
- Issues that require an attacker to already control the user's local machine.
|
|
40
|
+
|
|
41
|
+
## Coordinated Disclosure
|
|
42
|
+
|
|
43
|
+
We follow standard coordinated disclosure: researchers are credited (with permission) in the release notes once a fix is shipped. Public disclosure timelines are agreed with the reporter, defaulting to 90 days from initial report or 30 days after a patch is released - whichever is earlier.
|
package/docs/FIGMA_PIPELINE.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
End-to-end guide for generating production-ready UI components from Figma designs through the multi-agent pipeline. Covers iOS (SwiftUI) and Android (Jetpack Compose) with the same workflow shape.
|
|
4
4
|
|
|
5
|
-
> Note: Component and Figma-to-code skills are no longer bundled in this repo. Phase 3 dispatches component work to the per-stack marketplace plugins (`ai-ios-
|
|
5
|
+
> Note: Component and Figma-to-code skills are no longer bundled in this repo. Phase 3 dispatches component work to the per-stack marketplace plugins (`ai-ios-toolkit` / `ai-android-toolkit` in the `multi-agent-plugins` marketplace) via the Skill tool. The workflow, subphases, and skill names described below are what those plugin skills run internally, not pipeline-bundled code. The 3-tier Figma design-access fallback still governs the analysis phase in this repo.
|
|
6
6
|
|
|
7
7
|
## What you get
|
|
8
8
|
|
|
@@ -15,7 +15,7 @@ End-to-end guide for generating production-ready UI components from Figma design
|
|
|
15
15
|
|
|
16
16
|
## How it runs
|
|
17
17
|
|
|
18
|
-
When multi-agent Phase 0 classifies a task as `component` (Figma URL in description, or figma-driven instruction path), Phase 3 delegates the entire phase to the enabled `ai-<platform>-
|
|
18
|
+
When multi-agent Phase 0 classifies a task as `component` (Figma URL in description, or figma-driven instruction path), Phase 3 delegates the entire phase to the enabled `ai-<platform>-toolkit` marketplace plugin's component skill (`create-component`, fallback `create-ui-component`) via the Skill tool. Component skills live in the plugin marketplace, not the pipeline. The dispatch layer records a coarse component-build row in `state.phases["3"].subphases[]` - multi-agent's phase-tracker reads that array with no special case. The subphase list below describes the flow the plugin skill runs internally.
|
|
19
19
|
|
|
20
20
|
### Internal phase order
|
|
21
21
|
|
|
@@ -122,7 +122,7 @@ Global settings that affect the figma pipeline:
|
|
|
122
122
|
|
|
123
123
|
| Symptom | Likely cause | Fix |
|
|
124
124
|
|---|---|---|
|
|
125
|
-
| Phase 3 halts with "plugin not enabled" | The `ai-<platform>-
|
|
125
|
+
| Phase 3 halts with "plugin not enabled" | The `ai-<platform>-toolkit` plugin is not enabled in this repo | Enable it in the repo's `.claude/settings.local.json` (`"ai-ios-toolkit@<marketplace>": true`) and reload the session |
|
|
126
126
|
| `multi-agent:create-component` not found | Marketplace not installed / plugin disabled | Install the marketplace and enable the platform toolkit; dispatch tries `create-component` then `create-ui-component` |
|
|
127
127
|
| Wiki adapter failure | Remote unreachable (separate-repo mode) | Adapter caches pending output; next run retries. Non-blocking - Phase 7 continues. |
|
|
128
128
|
| Jira auto-create hits 5xx | Transient Jira outage | Non-blocking - pipeline continues without link. User can run `/multi-agent:channels` post-hoc to add it. |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 6. `shared/core/` vs `shared/external/` source organization
|
|
2
2
|
|
|
3
|
-
**Status:** Accepted · 2026-04 (v5.3.3)
|
|
3
|
+
**Status:** Accepted · 2026-04 (v5.3.3) · The "install destination is unchanged" clause is superseded by [ADR-0009](./0009-claude-stack-skills-plugin-only.md) (v15.0.0): Claude Code no longer receives the external tree; Copilot/Codex receive a stack-filtered subset.
|
|
4
4
|
|
|
5
5
|
## Context
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 7. Multi-tool adapter framework + token-preserving uninstall
|
|
2
2
|
|
|
3
|
-
**Status:** Superseded · 2026-07-02 (v10.7.0 removed all non-native adapters - the pipeline targets Claude Code + Copilot CLI only). Original acceptance: 2026-04-27 (v7.7.0 / v7.9.0). Kept as the historical record of why the adapter framework existed; install flags documented below no longer exist.
|
|
3
|
+
**Status:** Superseded · 2026-07-02 (v10.7.0 removed all non-native adapters - the pipeline targets Claude Code + Copilot CLI only; Codex CLI was later added as a third NATIVE target in v13.0.0, not through this adapter framework). Original acceptance: 2026-04-27 (v7.7.0 / v7.9.0). Kept as the historical record of why the adapter framework existed; install flags documented below no longer exist.
|
|
4
4
|
|
|
5
5
|
## Context
|
|
6
6
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 9. Claude Code stack skills are plugin-only; the local copy is retired
|
|
2
|
+
|
|
3
|
+
**Status:** Accepted · 2026-08 (v15.0.0) · Supersedes the "install destination is unchanged" clause of ADR-0006
|
|
4
|
+
|
|
5
|
+
## Context
|
|
6
|
+
|
|
7
|
+
ADR-0006 split the source tree into `shared/core/` + `shared/external/` but kept the install unchanged: both trees flattened into `~/.claude/skills/`. Since then the same external catalog also became the authoring source for the `multi-agent-plugins` marketplace (`build-stack-plugins.mjs` derives each plugin's `knowledge/` layer from it), and Claude Code loads those plugins natively, namespaced (`ai-ios-toolkit:swiftui-pro`).
|
|
8
|
+
|
|
9
|
+
That left Claude Code receiving every stack skill **twice**:
|
|
10
|
+
|
|
11
|
+
- 110 of 157 local skill dirs duplicated the enabled plugins byte-for-byte - ~10k tokens of duplicate descriptions per session, 4.4 MB on disk.
|
|
12
|
+
- The local copy shadowed the plugin the moment it went stale, and it *was* stale in practice: the plugin cache and the local copy advanced on different schedules.
|
|
13
|
+
- The duplication hid real bugs: `skill-conformance.mjs` and `match-skills.mjs` only knew the local root, so they kept working by accident - against the stale copy.
|
|
14
|
+
|
|
15
|
+
## Decision
|
|
16
|
+
|
|
17
|
+
1. **Claude Code receives no local copy of the stack skills.** The marketplace plugins (`ai-<stack>-toolkit`, enablement managed by `/multi-agent:stack`, multi-select) are its only stack-skill source. Prompt tables, `Skill` invocations and the skills index all use the plugin-namespaced name.
|
|
18
|
+
2. **Exactly two skills stay local on Claude Code**: `apple-archive-compliance` and `google-play-compliance` (`PIPELINE_LOCAL_SKILLS` in `install/claude.mjs`). They are pipeline-owned compliance catalogs, kept out of the public marketplace by policy (they may carry audit rules not meant for it), and `uninstall.mjs` already treats exactly this pair as pipeline-owned.
|
|
19
|
+
3. **`shared/external/` stays in the repo as the authoring source.** It feeds `build-stack-plugins.mjs` and the Copilot/Codex copies; it is simply never copied to `~/.claude/skills` again. Installs migrate old machines by removing the dirs named in `.external-skills-manifest.json` (manifest-scoped - user-authored dirs survive).
|
|
20
|
+
4. **Copilot CLI and Codex CLI keep local copies** (no plugin loader / silently truncating skill list), now **filtered to the enabled stacks**: `pluginsToDeliver` reads `enabledPlugins` from `~/.claude/settings.json` (fallback `--platform`), `partitionExternalSkillsByPlugins` routes each skill through the same `_stack-routing.mjs` table the marketplace is built with. One stack selection governs all three hosts.
|
|
21
|
+
5. **Scripts that resolve skills know the plugin roots**: `skill-conformance.mjs` probes the marketplace checkout and version-named plugin cache (newest first) alongside the install roots; `build-skills-index.mjs` stamps `plugin` + `invokeAs` per entry so `match-skills.mjs` returns namespaced names.
|
|
22
|
+
|
|
23
|
+
## Consequences
|
|
24
|
+
|
|
25
|
+
Positive: one source of truth per skill at runtime; ~13.5k tokens/session and ~5.9 MB reclaimed on Claude Code; a disabled stack is genuinely absent instead of half-present; the smoke suite now asserts the compliance-only contract (`smoke-install-layout.sh` 5b2b) and the filter's both directions (5b2).
|
|
26
|
+
|
|
27
|
+
Negative / accepted:
|
|
28
|
+
|
|
29
|
+
- A stack not enabled in `enabledPlugins` is invisible to Claude Code until `/multi-agent:stack` enables it. This is the intended behavior, not a regression.
|
|
30
|
+
- `dynamicSkillLoading`'s index now names skills the local tree does not hold; consumers must use `invokeAs`, not a filesystem path.
|
|
31
|
+
- Copilot/Codex copies go stale when the stack selection changes until `install --copilot --codex` is re-run; `/multi-agent:stack` offers that refresh after every change.
|
package/docs/adr/README.md
CHANGED
|
@@ -18,6 +18,7 @@ Format: lightly adapted from [Michael Nygard's ADR template](https://cognitect.c
|
|
|
18
18
|
| [0006](./0006-skills-core-external-split.md) | `shared/core/` vs `shared/external/` source org | Accepted |
|
|
19
19
|
| [0007](./0007-multi-tool-adapter-framework.md) | Multi-tool adapter framework + token-preserving uninstall | Superseded by v10.7.0 (adapters removed; Claude Code + Copilot CLI only) |
|
|
20
20
|
| [0008](./0008-installer-modularization-and-secret-leak-defense.md) | Installer modularization + secret-leak defense | Accepted (amended v10.7.0: adapter module removed) |
|
|
21
|
+
| [0009](./0009-claude-stack-skills-plugin-only.md) | Claude Code stack skills are plugin-only; local copy retired | Accepted (supersedes ADR-0006 install-destination clause) |
|
|
21
22
|
|
|
22
23
|
## Writing a New ADR
|
|
23
24
|
|
package/docs/architecture.md
CHANGED
|
@@ -54,7 +54,7 @@ graph TD
|
|
|
54
54
|
DIFF["Code Diff"]
|
|
55
55
|
|
|
56
56
|
DIFF --> R1["Fable (Claude Code) / Opus (Copilot)<br/>Security + Architecture"]
|
|
57
|
-
DIFF --> GPT["GPT-5.4<br/>Quality + Edge Cases"]
|
|
57
|
+
DIFF --> GPT["GPT-5.4<br/>Quality + Edge Cases<br/>(Copilot CLI only)"]
|
|
58
58
|
DIFF --> SON["Sonnet<br/>Correctness + Style"]
|
|
59
59
|
|
|
60
60
|
R1 --> TRIAGE["Fable Triage<br/>(Opus on Copilot CLI)"]
|
|
@@ -71,7 +71,7 @@ graph TD
|
|
|
71
71
|
|
|
72
72
|
## Figma SubPhase Integration (Phase 3)
|
|
73
73
|
|
|
74
|
-
When a task is classified `component`, Phase 3 dispatches to the marketplace component plugin (`ai-<platform>-
|
|
74
|
+
When a task is classified `component`, Phase 3 dispatches to the marketplace component plugin (`ai-<platform>-toolkit`) via the Skill tool. Component skills are not bundled in this repo; the subphases below describe the flow the plugin skill runs internally:
|
|
75
75
|
|
|
76
76
|
```mermaid
|
|
77
77
|
graph TD
|
|
@@ -117,17 +117,17 @@ graph TB
|
|
|
117
117
|
end
|
|
118
118
|
|
|
119
119
|
subgraph "Pipeline Specs"
|
|
120
|
-
CMD[commands/<br/>
|
|
120
|
+
CMD[commands/<br/>51 command files]
|
|
121
121
|
AGT[agents/<br/>8 agent personas]
|
|
122
122
|
RUL[rules/<br/>12 domain rules]
|
|
123
123
|
PHS[multi-agent-refs/phases/<br/>phase specs + contracts]
|
|
124
124
|
CMP[skills/shared/core/<br/>orchestration skills<br/>incl. compliance]
|
|
125
|
-
EXT["skills/shared/external/<br/>
|
|
125
|
+
EXT["skills/shared/external/<br/>151 curated skills<br/>(authoring source for the<br/>multi-agent-plugins marketplace)"]
|
|
126
126
|
end
|
|
127
127
|
|
|
128
128
|
subgraph "Quality Gates"
|
|
129
|
-
SCH[schemas/<br/>
|
|
130
|
-
EVL[eval/triage/<br/>
|
|
129
|
+
SCH[schemas/<br/>19 JSON schemas]
|
|
130
|
+
EVL[eval/triage/<br/>11 regression fixtures]
|
|
131
131
|
SMK[scripts/smoke-*<br/>100+ smoke suites]
|
|
132
132
|
end
|
|
133
133
|
|
|
@@ -163,14 +163,14 @@ User Input → Phase 0 (Init)
|
|
|
163
163
|
## Ecosystem Sync Targets
|
|
164
164
|
|
|
165
165
|
`/multi-agent:sync` actually walks **five** targets, not the three shown in earlier
|
|
166
|
-
revisions of this diagram
|
|
166
|
+
revisions of this diagram - Codex CLI and the two independently-shipped repos
|
|
167
167
|
(`multi-agent-plugins`, `dev-toolkit-mcp`) are real sync targets too:
|
|
168
168
|
|
|
169
169
|
```mermaid
|
|
170
170
|
graph TD
|
|
171
171
|
CC["Claude Code<br/>(source of truth)"]
|
|
172
|
-
COP["Copilot CLI<br/>(instructions +
|
|
173
|
-
COD["Codex CLI<br/>(1 router skill +
|
|
172
|
+
COP["Copilot CLI<br/>(instructions + 51 skills)"]
|
|
173
|
+
COD["Codex CLI<br/>(1 router skill + 51 refs)"]
|
|
174
174
|
REPO["Pipeline Repo<br/>(npm package)"]
|
|
175
175
|
WEB["Website"]
|
|
176
176
|
PLUGREPO["multi-agent-plugins<br/>(5 stack plugins, own repo)"]
|
|
@@ -183,12 +183,12 @@ graph TD
|
|
|
183
183
|
REPO -->|build-stack-plugins.mjs| PLUGREPO
|
|
184
184
|
DTK -.->|sync only detects + ships, never authors| CC
|
|
185
185
|
|
|
186
|
-
REPO -->|npm publish| NPM["
|
|
186
|
+
REPO -->|npm publish| NPM["npm registry (public)"]
|
|
187
187
|
WEB -->|auto-deploy| VERCEL["Vercel"]
|
|
188
188
|
PLUGREPO -->|git push| MKT["Claude marketplace"]
|
|
189
|
-
DTK -->|npm publish| NPM2["
|
|
189
|
+
DTK -->|npm publish| NPM2["npm registry (public)"]
|
|
190
190
|
```
|
|
191
191
|
|
|
192
|
-
Full detail on how these three repos compose at install time and at run time
|
|
192
|
+
Full detail on how these three repos compose at install time and at run time -
|
|
193
193
|
including the Phase 3 → plugin dispatch contract and the Phase 5 → dev-toolkit MCP
|
|
194
|
-
contract
|
|
194
|
+
contract - lives in [`docs/ecosystem.md`](./ecosystem.md).
|