@mmerterden/multi-agent-pipeline 14.1.1 → 14.2.2

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.
Files changed (129) hide show
  1. package/CHANGELOG.md +162 -0
  2. package/README.md +10 -6
  3. package/README.tr.md +143 -0
  4. package/docs/architecture.md +23 -8
  5. package/docs/ecosystem.md +237 -0
  6. package/install/_plugin-skills.mjs +16 -2
  7. package/install/codex.mjs +9 -4
  8. package/install/templates/copilot-instructions.md +12 -9
  9. package/package.json +1 -1
  10. package/pipeline/commands/deploy.md +4 -1
  11. package/pipeline/commands/multi-agent/SKILL.md +8 -5
  12. package/pipeline/commands/multi-agent/analysis/SKILL.md +2 -2
  13. package/pipeline/commands/multi-agent/autopilot/SKILL.md +6 -2
  14. package/pipeline/commands/multi-agent/channels/SKILL.md +15 -4
  15. package/pipeline/commands/multi-agent/create-jira/SKILL.md +4 -4
  16. package/pipeline/commands/multi-agent/dev/SKILL.md +10 -23
  17. package/pipeline/commands/multi-agent/dev-autopilot/SKILL.md +10 -2
  18. package/pipeline/commands/multi-agent/dev-local/SKILL.md +10 -24
  19. package/pipeline/commands/multi-agent/dev-local-autopilot/SKILL.md +10 -3
  20. package/pipeline/commands/multi-agent/help/SKILL.md +49 -11
  21. package/pipeline/commands/multi-agent/jira/SKILL.md +13 -2
  22. package/pipeline/commands/multi-agent/language/SKILL.md +1 -1
  23. package/pipeline/commands/multi-agent/local/SKILL.md +6 -2
  24. package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +6 -2
  25. package/pipeline/commands/multi-agent/log/SKILL.md +7 -1
  26. package/pipeline/commands/multi-agent/setup/SKILL.md +1 -1
  27. package/pipeline/commands/multi-agent/ship/SKILL.md +5 -1
  28. package/pipeline/commands/multi-agent/store-ready/SKILL.md +340 -0
  29. package/pipeline/commands/multi-agent/sync/SKILL.md +7 -6
  30. package/pipeline/commands/multi-agent/test/SKILL.md +18 -8
  31. package/pipeline/commands/multi-agent/test-accessibility/SKILL.md +33 -0
  32. package/pipeline/commands/multi-agent/test-dark-mode/SKILL.md +33 -0
  33. package/pipeline/commands/multi-agent/test-dynamic-type/SKILL.md +33 -0
  34. package/pipeline/commands/multi-agent/test-screenshots/SKILL.md +41 -0
  35. package/pipeline/commands/multi-agent/testflight-validation/SKILL.md +28 -201
  36. package/pipeline/commands/multi-agent/update/SKILL.md +1 -1
  37. package/pipeline/commands/sim-test.md +45 -36
  38. package/pipeline/lib/extract-conventions.sh +44 -15
  39. package/pipeline/lib/fetch-figma-annotations.sh +8 -1
  40. package/pipeline/lib/fetch-fortify.sh +23 -8
  41. package/pipeline/lib/figma-screenshot.sh +11 -1
  42. package/pipeline/lib/issue-fetcher.sh +76 -9
  43. package/pipeline/lib/md2confluence-v3.py +16 -2
  44. package/pipeline/lib/plan-todos.sh +5 -2
  45. package/pipeline/lib/post-pr-review.sh +8 -6
  46. package/pipeline/lib/shadow-git.sh +50 -9
  47. package/pipeline/lib/submodule-detector.sh +8 -1
  48. package/pipeline/multi-agent-refs/_input-parser.md +1 -1
  49. package/pipeline/multi-agent-refs/channels/confluence.md +3 -0
  50. package/pipeline/multi-agent-refs/channels/issue-comment.md +2 -2
  51. package/pipeline/multi-agent-refs/channels/jira.md +13 -2
  52. package/pipeline/multi-agent-refs/channels/pr-review-actions.md +1 -1
  53. package/pipeline/multi-agent-refs/channels/pr.md +20 -0
  54. package/pipeline/multi-agent-refs/channels/wiki.md +1 -1
  55. package/pipeline/multi-agent-refs/cross-cli-contract.md +6 -5
  56. package/pipeline/multi-agent-refs/features/worktree-finalize.md +1 -1
  57. package/pipeline/multi-agent-refs/generate-issue.md +2 -2
  58. package/pipeline/multi-agent-refs/issue-jira-triad.md +3 -3
  59. package/pipeline/multi-agent-refs/knowledge.md +1 -1
  60. package/pipeline/multi-agent-refs/payload-contracts.md +67 -0
  61. package/pipeline/multi-agent-refs/phases/modes.md +20 -0
  62. package/pipeline/multi-agent-refs/phases/phase-0-init.md +2 -2
  63. package/pipeline/multi-agent-refs/phases/phase-6-commit.md +8 -40
  64. package/pipeline/multi-agent-refs/phases/phase-7-report.md +5 -3
  65. package/pipeline/multi-agent-refs/phases.md +6 -0
  66. package/pipeline/multi-agent-refs/rules.md +2 -0
  67. package/pipeline/schemas/prefs.schema.json +2 -2
  68. package/pipeline/scripts/audit-log-rotate.sh +10 -0
  69. package/pipeline/scripts/build-stack-plugins.mjs +8 -1
  70. package/pipeline/scripts/check-derived-drift.mjs +13 -1
  71. package/pipeline/scripts/diff-explain.mjs +41 -3
  72. package/pipeline/scripts/diff-risk-score.mjs +72 -8
  73. package/pipeline/scripts/gen-mode-dispatch.mjs +1 -1
  74. package/pipeline/scripts/learning-curve.mjs +8 -2
  75. package/pipeline/scripts/output-quality-check.sh +15 -4
  76. package/pipeline/scripts/phase-tracker.sh +21 -8
  77. package/pipeline/scripts/pre-commit-check.sh +69 -22
  78. package/pipeline/scripts/render-agent-log-cost.sh +8 -3
  79. package/pipeline/scripts/render-cost-summary.sh +42 -22
  80. package/pipeline/scripts/render-work-summary.sh +47 -13
  81. package/pipeline/scripts/review-scope.mjs +1 -1
  82. package/pipeline/scripts/run-aggregator.mjs +38 -14
  83. package/pipeline/scripts/smoke-schema-validation.sh +5 -1
  84. package/pipeline/scripts/test-gap-scan.mjs +45 -6
  85. package/pipeline/scripts/uninstall.mjs +39 -4
  86. package/pipeline/scripts/update-issue-progress.sh +12 -16
  87. package/pipeline/scripts/worktree-finalize.sh +23 -2
  88. package/pipeline/skills/.skills-index.json +58 -4
  89. package/pipeline/skills/shared/README.md +12 -7
  90. package/pipeline/skills/shared/core/multi-agent/SKILL.md +13 -17
  91. package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +4 -0
  92. package/pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md +1 -1
  93. package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +4 -17
  94. package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +8 -0
  95. package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +5 -18
  96. package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +8 -0
  97. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +50 -12
  98. package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +1 -1
  99. package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +4 -0
  100. package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +4 -0
  101. package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +18 -3
  102. package/pipeline/skills/shared/core/multi-agent-ship/SKILL.md +4 -0
  103. package/pipeline/skills/shared/core/multi-agent-store-ready/SKILL.md +50 -0
  104. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +6 -5
  105. package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +18 -8
  106. package/pipeline/skills/shared/core/multi-agent-test-accessibility/SKILL.md +37 -0
  107. package/pipeline/skills/shared/core/multi-agent-test-dark-mode/SKILL.md +37 -0
  108. package/pipeline/skills/shared/core/multi-agent-test-dynamic-type/SKILL.md +37 -0
  109. package/pipeline/skills/shared/core/multi-agent-test-screenshots/SKILL.md +44 -0
  110. package/pipeline/skills/shared/core/multi-agent-testflight-validation/SKILL.md +29 -101
  111. package/pipeline/skills/shared/external/firebase/SKILL.md +1 -1
  112. package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +302 -0
  113. package/pipeline/skills/shared/external/localization-reuse-map/example-mapping.json +144 -0
  114. package/pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md +156 -0
  115. package/pipeline/skills/shared/external/localization-reuse-map/reference/publish-and-snapshot.md +108 -0
  116. package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +175 -0
  117. package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py +865 -0
  118. package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-spreadsheet.py +335 -0
  119. package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-annotations.py +344 -0
  120. package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-legacy-labels.py +130 -0
  121. package/pipeline/skills/shared/external/localization-reuse-map/scripts/publish-confluence.py +264 -0
  122. package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-key-shots.py +298 -0
  123. package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-overlay.py +529 -0
  124. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-legacy-values.py +187 -0
  125. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +171 -0
  126. package/pipeline/skills/shared/external/localization-reuse-map/scripts/scan-screen-keys.py +184 -0
  127. package/pipeline/skills/shared/external/localization-reuse-map/scripts/snapshot-resources.sh +26 -0
  128. package/pipeline/skills/shared/external/localization-reuse-map/scripts/verify-map.py +173 -0
  129. package/pipeline/skills/skills-index.md +10 -4
package/CHANGELOG.md CHANGED
@@ -16,6 +16,168 @@ Internal file-layout changes that don't affect the slash-command surface are sti
16
16
 
17
17
  ## [Unreleased]
18
18
 
19
+ ## [14.2.2] - 2026-08-04
20
+
21
+ ### Added
22
+
23
+ - **`localization-reuse-map` skill** added to `shared/external` — a per-screen
24
+ localization-reuse map that ties new/legacy/CMS translation keys together,
25
+ with follow-up fixes for placeholder rendering, snapshot staleness, and the
26
+ three gates its initial commit left red.
27
+ - **`docs/ecosystem.md`** — a detailed diagram of how this repo, the
28
+ `multi-agent-plugins` marketplace, and `dev-toolkit-mcp` compose at install
29
+ time and run time. `docs/architecture.md` cross-links it.
30
+ - **Turkish README (`README.tr.md`)**, cross-linked from `README.md`.
31
+ - Jira intake now surfaces the **parent issue's description** as a
32
+ confirmable candidate when the child issue's own description is empty.
33
+ - `payload-contracts` reference doc, consolidating the required-reading list
34
+ for Phase 6 and 7.
35
+
36
+ ### Fixed
37
+
38
+ - Corrected stale 44/43-command counts to the real 49 across README,
39
+ `cross-cli-contract.md`, and both sync/update `SKILL.md` copies; fixed a
40
+ hardcoded "42 command specs" log line in `install/codex.mjs` to count the
41
+ actual source tree instead.
42
+ - **`audit-log-rotate.sh` could delete the archive it had just created.**
43
+ `gzip` preserves the source file's mtime by default, so rotating log
44
+ content already older than `KEEP_DAYS` produced a `.gz` that inherited
45
+ that old mtime - and the very next line's retention sweep (`find -mtime
46
+ +$KEEP_DAYS -delete`) deleted it in the same run, before it was ever read.
47
+ The archive's mtime is now reset to rotation time, so retention counts
48
+ from when it was archived, not from the age of the content inside it.
49
+ - The mode banner claimed pickers stay English when they didn't - language +
50
+ dialect resolution fixed.
51
+ - The cost tracker now reads the same state file `phase-tracker.sh` writes.
52
+ - Jira conversion table pipes are now escaped; Intake warnings render at h2.
53
+ - Copilot mode skills carried a stale review claim and missing payload
54
+ pointers - corrected.
55
+ - 18 cross-script drift and edge-case bugs resolved from code review.
56
+ - Markup dialect is now chosen per surface for channel posts; the Jira table
57
+ heading-conversion bug fixed.
58
+ - `localization-reuse-map`: empty-cell placeholder is now a single dash; a
59
+ stale snapshot no longer reads as an unauthored key.
60
+
61
+ ## [14.2.1] - 2026-07-30
62
+
63
+ ### Changed
64
+
65
+ - **`testflight-validation` merged into a new `/multi-agent:store-ready`, and the
66
+ Android side brought to parity.** The iOS archive audit existed twice with
67
+ identical arguments - `ios_app_store_audit({archive_path, rules: "all"})` in the
68
+ command's Gate 1 and again inside `sim-test.md`'s `store-ready` scenario. Two
69
+ copies of one call is how the second door grew with no Gate 2, no Gate 3 and no
70
+ Android equivalent. There is now one implementation.
71
+ Gates are symmetric per platform, because the failure modes are: a malformed
72
+ package, a package the store itself refuses, and a policy a human enforces.
73
+
74
+ | Gate | iOS | Android |
75
+ |---|---|---|
76
+ | 1 Static | `ios_app_store_audit`, 18 rules | `android_apk_audit` + `google-play-compliance`, 21 rules |
77
+ | 2 Authoritative | `altool --validate-app` | `SKIPPED` |
78
+ | 3 Policy | `app-store-review` vs source | `play-store-review` vs source |
79
+
80
+ Gate 2's asymmetry is reported as an asymmetry rather than smoothed over: Play's
81
+ authoritative check exists only server-side, through a Publishing API draft edit,
82
+ and the pipeline ships no client for it. An Android run therefore clears at most
83
+ 2 of 3 and never prints `passed`. `bundletool validate` is Gate 1 and is not
84
+ promoted to fill the hole.
85
+ The running-app sweep became Step A rather than a separate errand - a build can
86
+ be structurally perfect and still ship an unreadable screen - and it degrades to
87
+ `SKIPPED (no booted device)` instead of halting the package validation.
88
+
89
+ Nothing was removed. `testflight-validation` is a thin iOS-pinned alias (removing
90
+ a command is a breaking change to the slash-command surface), and
91
+ `test "store-ready"` still resolves, now as a hand-off. `sim-test.md` keeps only
92
+ the pointer, so a dark-mode run no longer loads altool and credential-tier prose
93
+ it never needs.
94
+
95
+ ### Added
96
+
97
+ - **Four fixed-scenario `test-*` commands.** `/multi-agent:test-dark-mode`,
98
+ `:test-accessibility`, `:test-dynamic-type` and `:test-screenshots [locale]` pin a
99
+ scenario the quoted-tag form made you remember and quote. Typing `test-` now
100
+ autocompletes the matrix list instead of returning a single entry whose tags live
101
+ only in the help text. The scenario-tag form is unchanged and not deprecated -
102
+ each command is an alias for it, delegating to the same `sim-test.md`, so there is
103
+ one implementation and no forked logic. Same pattern the mode aliases already use
104
+ (`:dev-autopilot` = `--dev autopilot`).
105
+ `screenshot <lang>` became `test-screenshots [locale]` rather than
106
+ `test-screenshot-tr`: the locale is a parameter, and freezing one language into a
107
+ command name buys one command per language. `store-ready` deliberately got no
108
+ alias - it takes an optional archive path, and its 18-rule audit is the same one
109
+ `/multi-agent:testflight-validation` runs as its first gate, so the alias would
110
+ have advertised a second door onto a duplicate.
111
+
112
+ ### Fixed
113
+
114
+ - **Copilot's `purge` could not see a single worktree.** It discovered them with
115
+ `find {repo}/.worktrees/ -name "agent-state.json"`, and no worktree carries that
116
+ file: Phase 0 writes state to `$HOME/.claude/logs/multi-agent/{project}/{task-id}/`.
117
+ Verified on a repo with two live task worktrees - the marker scan returns zero
118
+ while `purge.sh`'s own directory enumeration finds both. So the skill reported
119
+ "nothing to purge" as success with real worktrees on disk. The Claude Code command
120
+ had already been fixed by delegating to `purge.sh`; the Copilot mirror never
121
+ received that fix, which is the second time a repaired Claude-side surface left its
122
+ Copilot counterpart behind in this release.
123
+ It now delegates to the script and explicitly forbids re-introducing a
124
+ marker-file scan.
125
+ - **The stale log location survived in four more places** after `clear-logs` was
126
+ redirected. `shared/core/multi-agent` told Phase 0 to create `agent-log.md` and
127
+ `agent-state.json` inside `.worktrees/PROJ-{id}/`, told `:resume` to look for state
128
+ there, and printed that path as the report location; `phase-0-init` said "create log
129
+ dir" without naming one, 49 lines above the line that does. All four now name
130
+ `$HOME/.claude/logs/multi-agent/{project}/{task-id}/`, the path the tracker,
131
+ `prune-logs.sh` and `:resume` actually read.
132
+ `status` and `log` keep their worktree scan as a legacy fallback: it finds nothing
133
+ on a current tree, but it is harmless and would still serve an old one.
134
+
135
+ - **`clear-logs` scanned a path nothing writes to, and help advertised it as a
136
+ slash command that does not exist.** It looked for
137
+ `.worktrees/PROJ-*/agent-log.md` and `agent-state.json`; Phase 0 has written both
138
+ to `$HOME/.claude/logs/multi-agent/{project}/{task-id}/` since the layout moved.
139
+ Against the current tree the scan matches zero files, so the op reported "logs
140
+ cleared, deleted 0" as success while every real log stayed on disk - worse than a
141
+ missing command, because it reads as done. There was also no `clear-logs` command
142
+ directory, so the `/multi-agent:clear-logs` entry in the Copilot help pointed at a
143
+ slash command that was never installed.
144
+ The name is kept as a redirect to `prune-logs` rather than deleted, so an existing
145
+ invocation lands somewhere correct. `prune-logs` and `garbage-collect` now appear
146
+ in the Copilot help, matching the Claude Code side. This is the `finish` → `ship`
147
+ class of drift the inventory gate's own comment describes, in the files that gate
148
+ does not parse.
149
+ - **`sim-test.md` advertised two scenarios it never implemented.** `"biometric"` and
150
+ `"performance"` sat in the activation block with no implementation section, so
151
+ reaching either fell through to the general sweep and was reported as the scenario
152
+ asked for. Neither can be built symmetrically today: biometric has `ios_biometric`
153
+ and no Android counterpart, launch timing has `android_launch_time` and no iOS
154
+ counterpart, and the file auto-detects platform - so each would work on one
155
+ platform and silently do nothing on the other. Both rows are withdrawn with the
156
+ reason recorded in place, rather than shipped as half-features or left advertised.
157
+ Advertised scenarios and implemented sections now match one to one.
158
+ - **`help` never documented two shipped commands.** `testflight-validation` and
159
+ `ios-coding-standard` existed in the tree, installed correctly, and appeared in no
160
+ block of `help/SKILL.md` in either language - `ios-coding-standard` was reachable
161
+ only because it also sat in `prefs.global.routines`, i.e. it read as a personal
162
+ routine rather than a first-party command. Both are now in the EN and TR Post-Hoc
163
+ sections. A command absent from help is a command nobody runs.
164
+ - **Rule count drifted between the two language blocks.** The TR block advertised a
165
+ 17-rule iOS store audit against the EN block's 18 and `ios_app_store_audit`'s
166
+ actual 18. The TR reader was being given a number no code produces.
167
+
168
+ ### Changed
169
+
170
+ - **`DESC_CEILING` 78000 -> 81000**, with the paired pin in
171
+ `test/context-budget-gate.test.mjs` moved in the same commit, as that test
172
+ requires. Not a bump to silence a red gate: at 78000 the surface had **16 bytes**
173
+ of headroom, so any new command failed regardless of how tersely it was described,
174
+ while the gate's own average check sat at 320 against its 420 ceiling - the signal
175
+ that the tree grew rather than that descriptions are padded. The alternative was
176
+ shaving routing text off eight unrelated `shared/external` skills to fund four
177
+ commands, which trades a real capability for a cosmetic number. Both the gate and
178
+ the test now carry the ceiling's history inline so the next raise has to argue for
179
+ itself. Cost is honest: ~470 always-on tokens per run.
180
+
19
181
  ## [14.1.1] - 2026-07-30
20
182
 
21
183
  Three defects that all shared one shape: a name written in one place and read in
package/README.md CHANGED
@@ -6,10 +6,14 @@
6
6
  [![Zero Dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](https://github.com/mmerterden/multi-agent-pipeline/blob/main/package.json)
7
7
  [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/mmerterden/multi-agent-pipeline/badge)](https://scorecard.dev/viewer/?uri=github.com/mmerterden/multi-agent-pipeline)
8
8
 
9
+ 🇹🇷 Türkçe: [README.tr.md](./README.tr.md)
10
+
9
11
  An 8-phase AI development pipeline for **Claude Code**, **Copilot CLI** and **Codex CLI**. Drives a Jira issue or GitHub URL to a merged PR in one command - analysis → plan → TDD → review → test → commit → PR - with multi-repo orchestration, a plan-approval gate, CLI-aware parallel review, and store-compliance checks. Component and Figma-to-code work is dispatched to the per-stack marketplace plugins (iOS/SwiftUI, Android/Compose) rather than bundled, so component skills live in one place.
10
12
 
11
13
  Runs natively on Claude Code, Copilot CLI and Codex CLI. macOS / Linux / Windows. Zero runtime dependencies.
12
14
 
15
+ 📐 **[Architecture diagrams](./docs/architecture.md)** - the 8-phase flow, operating modes, review/triage, Figma subphases, component layout. **[Ecosystem diagram](./docs/ecosystem.md)** - how this repo, the `multi-agent-plugins` marketplace and `dev-toolkit-mcp` compose.
16
+
13
17
  ## Quick Start
14
18
 
15
19
  ```bash
@@ -52,7 +56,7 @@ One command runs 8 phases, with a gate between the risky ones:
52
56
 
53
57
  Under the hood: each task runs in its own **git worktree** (or the current branch with `:local`), commits use the **git identity routed from the repo's origin URL**, and **multi-repo** tasks get per-repo worktrees plus an integration build. Tokens stay in the OS keychain; nothing is committed or logged. `/multi-agent:review` can also review an existing GitHub/Bitbucket PR - per-finding inline comments anchored to `file:line` + an explicit Approve / Needs-Work state.
54
58
 
55
- The discipline behind all of this - bounded loops, evidence gates, token-budgeted phase docs, immutable tests, fresh-context handoffs - is catalogued in [docs/engineering.md](./docs/engineering.md). The full feature list lives in [docs/features.md](./docs/features.md).
59
+ The discipline behind all of this - bounded loops, evidence gates, token-budgeted phase docs, immutable tests, fresh-context handoffs - is catalogued in [docs/engineering.md](./docs/engineering.md). The full feature list lives in [docs/features.md](./docs/features.md). How this repo, the `multi-agent-plugins` marketplace, and the `dev-toolkit-mcp` server compose at install time and at run time is diagrammed in [docs/ecosystem.md](./docs/ecosystem.md).
56
60
 
57
61
  ## Modes
58
62
 
@@ -66,7 +70,7 @@ The discipline behind all of this - bounded loops, evidence gates, token-budgete
66
70
  | Audit | `/multi-agent:design-check` | Mock-mode vs Figma conformance, local-only |
67
71
  | 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 |
68
72
 
69
- Helpers: `setup`, `status`, `resume #N`, `review`, `test`, `channels`, `stack`, `update`, `sync`, `refactor`, `jira`, `issue`, `analysis`, `create-jira`, `save`, `routines`, `forget`. 44 commands in all - full list: `/multi-agent:help`.
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`. 49 commands in all - full list: `/multi-agent:help`.
70
74
 
71
75
  ## Stacks
72
76
 
@@ -80,17 +84,17 @@ This enables the matching plugin (+ the shared `ai-common` plugin) in the repo's
80
84
 
81
85
  ## Tool support
82
86
 
83
- The pipeline runs natively on **Claude Code**, **Copilot CLI** and **Codex CLI** - all three install from the same `pipeline/` source and get the same 44 commands.
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 49 commands.
84
88
 
85
89
  | Tool | Flag | What it installs |
86
90
  |---|---|---|
87
91
  | Claude Code | `--claude` (default) | slash commands + skills + agents + `PreToolUse` secret-scan hook |
88
- | Copilot CLI | `--copilot` | instructions + 44 sub-command skills + scripts |
89
- | Codex CLI | `--codex` | one router skill + 43 specs as refs + 8 agent TOML + `AGENTS.md` block + `codex mcp add` |
92
+ | Copilot CLI | `--copilot` | instructions + 49 sub-command skills + scripts |
93
+ | Codex CLI | `--codex` | one router skill + 49 specs as refs + 8 agent TOML + `AGENTS.md` block + `codex mcp add` |
90
94
 
91
95
  Filter skills by stack with `--platform=ios\|android\|all`.
92
96
 
93
- **Why Codex gets one skill and not 43.** Codex assembles every discovered skill's name
97
+ **Why Codex gets one skill and not 49.** Codex assembles every discovered skill's name
94
98
  and description into a single prompt block and drops entries when it overflows, with no
95
99
  error. Measured on 0.145: installing one plugin that declares 142 skills surfaced only
96
100
  75 of them and evicted an unrelated user skill. So on Codex the pipeline ships a single
package/README.tr.md ADDED
@@ -0,0 +1,143 @@
1
+ # @mmerterden/multi-agent-pipeline
2
+
3
+ [![GitHub Release](https://img.shields.io/github/v/release/mmerterden/multi-agent-pipeline?color=blue)](https://github.com/mmerterden/multi-agent-pipeline/releases)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![Node.js](https://img.shields.io/badge/Node.js-18%20%7C%2020%20%7C%2022-green)](https://nodejs.org)
6
+ [![Zero Dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](https://github.com/mmerterden/multi-agent-pipeline/blob/main/package.json)
7
+ [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/mmerterden/multi-agent-pipeline/badge)](https://scorecard.dev/viewer/?uri=github.com/mmerterden/multi-agent-pipeline)
8
+
9
+ 🇬🇧 English: [README.md](./README.md)
10
+
11
+ **Claude Code**, **Copilot CLI** ve **Codex CLI** için 8 fazlı bir AI geliştirme pipeline'ı. Bir Jira issue'sunu veya GitHub URL'sini tek komutla merge edilmiş bir PR'a dönüştürür - analiz → plan → TDD → review → test → commit → PR - çoklu-repo orkestrasyonu, bir plan-onay kapısı, CLI-farkında paralel review ve store-uyumluluk kontrolleriyle birlikte. Component ve Figma-to-code işleri paket içine gömülmek yerine stack başına marketplace plugin'lerine (iOS/SwiftUI, Android/Compose) devredilir, böylece component skill'leri tek bir yerde yaşar.
12
+
13
+ Claude Code, Copilot CLI ve Codex CLI üzerinde native çalışır. macOS / Linux / Windows. Sıfır runtime dependency.
14
+
15
+ 📐 **[Mimari diyagramları](./docs/architecture.md)** - 8 faz akışı, çalışma modları, review/triage, Figma subphase'leri, component yapısı. **[Ekosistem diyagramı](./docs/ecosystem.md)** - bu repo, `multi-agent-plugins` marketplace'i ve `dev-toolkit-mcp`'nin nasıl bir araya geldiği.
16
+
17
+ ## Hızlı Başlangıç
18
+
19
+ ```bash
20
+ # public registry'den (auth gerekmez)
21
+ npx @mmerterden/multi-agent-pipeline install --all # Claude Code + Copilot CLI + Codex CLI
22
+
23
+ # sonra, bir kere:
24
+ /multi-agent:setup # keychain token taraması + git kimliği + varsayılan stack
25
+ ```
26
+
27
+ Bir görev çalıştır - girdi tipi otomatik algılanır:
28
+
29
+ ```bash
30
+ /multi-agent "PROJ-1234" # Jira id → çek, planla, geliştir
31
+ /multi-agent "https://github.com/org/repo/issues/42" # GitHub issue URL'i
32
+ /multi-agent "my-app#42" # repo + issue numarası
33
+ /multi-agent "fix dark-mode contrast on LoginView" # serbest-metin bug/özellik
34
+ /multi-agent:jira # açık Jira issue'larını gez → seç
35
+ /multi-agent:issue # atanmamış GitHub issue'larını gez → seç
36
+ ```
37
+
38
+ Her girdi aynı kısa intake'ten geçer - **hesap → (repo) → maturity kontrolü → dev-context** - sonra Phase 0'a girer. Bir Jira id'si veya GitHub URL'i hiçbir kod yazılmadan *önce* çekilir ve maturity-kontrol edilir; serbest-metin bu çekimi atlayıp doğrudan planlamaya geçer. Çoklu-repo görevleri dev-context adımında ekstra repo ekler.
39
+
40
+ Onayları atlamak için `autopilot`, hızlı dev-only yol için `--dev`, ya da worktree olmadan mevcut branch'te çalışmak için `--local` ekle (örn. `/multi-agent:autopilot "PROJ-1234"`).
41
+
42
+ Sonra `/multi-agent:update` ile güncelle. Kaldırmak için (tokenlar korunur) `npx @mmerterden/multi-agent-pipeline uninstall`.
43
+
44
+ ## Nasıl çalışır
45
+
46
+ Tek komut 8 fazı çalıştırır, riskli olanlar arasında bir kapı ile:
47
+
48
+ - **0 · Init** - girdiyi ayrıştır (Jira id / GitHub URL / serbest metin), hesap + repo(lar) seç, issue'yu çek, maturity kontrolü yap.
49
+ - **1 · Analysis** - stack'i tespit et, codebase'i tara, etkiyi haritala (Opus).
50
+ - **2 · Plan** - bir görev kırılımı yaz ve koda dokunmadan önce **onayın için dur**.
51
+ - **3 · Dev** - TDD: başarısız test → kod → yeşil, repo'nun stiline + aktif stack skill'lerine uyarak.
52
+ - **4 · Review** - önce deterministik kapılar (build / lint / test / secret-scan) geçmeli, sonra bir **CLI-farkında paralel review** - Claude Code 2 model çalıştırır (Fable + Sonnet), Copilot CLI 3 (GPT-5.4 + Opus + Sonnet) - ve bir **Fable triage** sadece aksiyon alınabilir bulguları tutar; blocker'lar Phase 3'e geri döner.
53
+ - **5 · Test** - build + suite'i çalıştır; başarı zorunlu (sahte pass yok).
54
+ - **6 · Commit/PR** - conventional commit, push (başarılı olmalı), bir PR aç (`Ref: #N`, asla otomatik kapatma).
55
+ - **7 · Report** - teknik özet + test senaryolarıyla bir Jira yorumu, channels katmanından gönderilir.
56
+
57
+ Perde arkasında: her görev kendi **git worktree**'sinde çalışır (ya da `:local` ile mevcut branch'te), commit'ler **repo'nun origin URL'inden yönlendirilen git kimliğini** kullanır, ve **çoklu-repo** görevleri repo başına worktree artı bir integration build alır. Tokenlar OS keychain'de kalır; hiçbir şey commit edilmez ya da loglanmaz. `/multi-agent:review` mevcut bir GitHub/Bitbucket PR'ını da review edebilir - `file:line`'a bağlı bulgu-başına inline yorumlar + açık bir Approve / Needs-Work durumu.
58
+
59
+ Bunun arkasındaki disiplin - sınırlı loop'lar, kanıt kapıları, token-bütçeli faz dokümanları, değişmez testler, taze-context handoff'lar - [docs/engineering.md](./docs/engineering.md)'de kataloglanmıştır. Tam özellik listesi [docs/features.md](./docs/features.md)'te. Bu repo, `multi-agent-plugins` marketplace'i ve `dev-toolkit-mcp` sunucusunun install zamanında ve run zamanında nasıl bir araya geldiği [docs/ecosystem.md](./docs/ecosystem.md)'de diyagramlanmıştır.
60
+
61
+ ## Modlar
62
+
63
+ | Mod | Komut | Akış |
64
+ |---|---|---|
65
+ | Full | `/multi-agent "task"` | Tüm 8 faz, interaktif |
66
+ | Autopilot | `/multi-agent:autopilot "task"` | Tüm 8 faz, onaysız |
67
+ | Dev | `/multi-agent:dev "task"` | Init → Dev → Review → Test → Commit → Report |
68
+ | Local | `/multi-agent:local "task"` | Tam pipeline, mevcut branch (worktree yok) |
69
+ | Ship | `/multi-agent:ship` | Lokal iş üzerinde review→test→commit→report kuyruğunu çalıştır |
70
+ | Audit | `/multi-agent:design-check` | Mock-mode vs Figma uygunluğu, yalnızca lokal |
71
+ | 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
+
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 49 komut - tam liste: `/multi-agent:help`.
74
+
75
+ ## Stack'ler
76
+
77
+ Stack skill'leri [`mmerterden/multi-agent-plugins`](https://github.com/mmerterden/multi-agent-plugins) marketplace'inde versiyonlu plugin'ler olarak gönderilir. Repo başına bir stack seç:
78
+
79
+ ```bash
80
+ /multi-agent:stack ios # veya android / frontend / backend / mobile / all
81
+ ```
82
+
83
+ Bu, ilgili plugin'i (+ ortak `ai-common` plugin'ini) repo'nun `.claude/settings.json`'unda etkinleştirir. Phase 1, routing için stack'i otomatik tespit eder. Yeni repo'lar varsayılan olarak iOS'tur.
84
+
85
+ ## Araç desteği
86
+
87
+ Pipeline **Claude Code**, **Copilot CLI** ve **Codex CLI** üzerinde native çalışır - üçü de aynı `pipeline/` kaynağından kurulur ve aynı 49 komutu alır.
88
+
89
+ | Araç | Bayrak | Ne kurar |
90
+ |---|---|---|
91
+ | Claude Code | `--claude` (varsayılan) | slash komutları + skill'ler + agent'lar + `PreToolUse` secret-scan hook'u |
92
+ | Copilot CLI | `--copilot` | talimatlar + 49 alt-komut skill'i + script'ler |
93
+ | Codex CLI | `--codex` | bir router skill + ref olarak 49 spec + 8 agent TOML + `AGENTS.md` bloğu + `codex mcp add` |
94
+
95
+ Skill'leri stack'e göre filtrele: `--platform=ios\|android\|all`.
96
+
97
+ **Codex neden 49 değil de tek bir skill alıyor.** Codex, keşfettiği her skill'in adını
98
+ ve açıklamasını tek bir prompt bloğuna toplar ve blok taştığında girdileri hatasızca
99
+ düşürür. 0.145 üzerinde ölçüldü: 142 skill deklare eden bir plugin kurulduğunda sadece
100
+ 75'i yüzeye çıktı ve alakasız bir kullanıcı skill'i tahliye edildi. Bu yüzden Codex'te
101
+ pipeline tek bir `multi-agent` router gönderir ve alt-komut spec'lerini, okunana kadar
102
+ hiçbir maliyeti olmayan referans dosyaları olarak tutar - aynı komutlar, aynı davranış,
103
+ host'un gerçekten tutabildiği bir düzen.
104
+
105
+ Reviewer setleri farklı çünkü mevcut modeller farklı: Claude Code 2 reviewer çalıştırır
106
+ (Fable + Sonnet), Copilot CLI 3 (Opus + GPT-5.4 + Sonnet), Codex CLI 3 (xhigh'da
107
+ gpt-5.6, gpt-5.4, medium'da gpt-5.6). Codex tek-vendor olduğu için üçü arasındaki
108
+ konsensüs, iki-vendor'lu bir host'taki aynı konsensüsten daha zayıf bir kanıttır ve
109
+ triage notu bunu belirtir.
110
+
111
+ ## Token'lar ve entegrasyonlar
112
+
113
+ `setup` OS keychain'ini tarar ve her token'ı **mantıksal bir isimle** (örn. `jira`) gerçek keychain girdisine eşler - pipeline token'ları bu eşleme üzerinden çözer (`credential-store.sh`), böylece literal keychain isimleri hiçbir sync edilen dosyada görünmez. Token'lar keychain'de kalır (macOS Keychain / Windows Credential Manager / Linux libsecret), **asla commit edilmez ya da loglanmaz**, ve hepsi **opsiyoneldir** - pipeline Phase 0'da ihtiyaç duyduğu herhangi birini sorar.
114
+
115
+ | Token | Ne için kullanılır | Faz |
116
+ |---|---|---|
117
+ | `jira` | issue'yu çek · rapor yorumunu gönder | 0, 7 |
118
+ | `github` | issue'lar · PR'lar · `gh` auth | 0, 6 |
119
+ | `bitbucket` | PR create/update (reviewer koruyarak) · diff | 6 |
120
+ | `confluence` | analiz / wiki sayfaları yayınla | 7 |
121
+ | `figma` + `figma_mcp` | design context çek | yalnızca analiz |
122
+ | `fortify` | security-scan bulgu kapısı | 4 |
123
+ | `firebase` | Firebase projeleri için Firebase config (base64 JSON) | gerektiğinde |
124
+ | `jenkins` | CI tetikleme / durum | build / deploy |
125
+ | `npm` | paket publish (çoğunlukla CI) | release |
126
+ | `appstore_connect_*` | TestFlight / App Store pre-submission doğrulaması (opsiyonel, iOS) | `testflight-validation` |
127
+
128
+ **Secret scan**, Claude Code'da bir `PreToolUse` hook'u olarak (bulgu halinde commit'i sert-engeller) ve diğer yerlerde bir pre-push kontrolü olarak çalışır.
129
+
130
+ ## Platform desteği
131
+
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 18 / 20 / 22.
133
+
134
+ ## Yan repolar
135
+
136
+ | Repo | Ne olduğu |
137
+ |---|---|
138
+ | [`mmerterden/multi-agent-plugins`](https://github.com/mmerterden/multi-agent-plugins) | Stack-başına skill toolkit'lerinin marketplace'i (iOS / Android / Frontend / Backend + common). `/multi-agent:stack` ilgili plugin'i etkinleştirir. |
139
+ | [`mmerterden/dev-toolkit-mcp`](https://github.com/mmerterden/dev-toolkit-mcp) | UI testing / simulator capture / xcodebuild için MCP sunucusu - Phase 5 UI Bug Hunter'ı güçlendirir. Public npm registry'de [`@mmerterden/dev-toolkit-mcp`](https://www.npmjs.com/package/@mmerterden/dev-toolkit-mcp) olarak yayınlanır; installer her CLI'a onu senin için register eder, böylece `npx` ekstra konfigürasyon olmadan onu çözer. |
140
+
141
+ ## Lisans
142
+
143
+ MIT - bkz. [LICENSE](./LICENSE). Güvenlik sorunları: bkz. [SECURITY.md](./SECURITY.md) (zafiyetler için public issue açma).
@@ -117,12 +117,12 @@ graph TB
117
117
  end
118
118
 
119
119
  subgraph "Pipeline Specs"
120
- CMD[commands/<br/>39 command files<br/>(34 user-facing)]
120
+ CMD[commands/<br/>49 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/>143 curated skills<br/>(authoring source for the<br/>multi-agent-plugins marketplace)]
125
+ EXT["skills/shared/external/<br/>150 curated skills<br/>(authoring source for the<br/>multi-agent-plugins marketplace)"]
126
126
  end
127
127
 
128
128
  subgraph "Quality Gates"
@@ -162,18 +162,33 @@ User Input → Phase 0 (Init)
162
162
 
163
163
  ## Ecosystem Sync Targets
164
164
 
165
+ `/multi-agent:sync` actually walks **five** targets, not the three shown in earlier
166
+ revisions of this diagram — Codex CLI and the two independently-shipped repos
167
+ (`multi-agent-plugins`, `dev-toolkit-mcp`) are real sync targets too:
168
+
165
169
  ```mermaid
166
170
  graph TD
167
171
  CC["Claude Code<br/>(source of truth)"]
168
- COP["Copilot CLI<br/>(instructions + unified skills)"]
172
+ COP["Copilot CLI<br/>(instructions + 49 skills)"]
173
+ COD["Codex CLI<br/>(1 router skill + 49 refs)"]
169
174
  REPO["Pipeline Repo<br/>(npm package)"]
170
- WEB["Website<br/>(optional)"]
171
- RC["Remote Control<br/>(optional)"]
175
+ WEB["Website"]
176
+ PLUGREPO["multi-agent-plugins<br/>(5 stack plugins, own repo)"]
177
+ DTK["dev-toolkit-mcp<br/>(own repo, own release cadence)"]
172
178
 
173
- CC -->|instructions + unified skills| COP
174
- CC -->|genericized pipeline/| REPO
179
+ CC -->|copy + reformat| COP
180
+ CC -->|transform via install.js --codex| COD
181
+ CC -->|genericize| REPO
175
182
  CC -->|version + features| WEB
176
- CC -->|pipeline refs| RC
183
+ REPO -->|build-stack-plugins.mjs| PLUGREPO
184
+ DTK -.->|sync only detects + ships, never authors| CC
185
+
177
186
  REPO -->|npm publish| NPM["GitHub Packages"]
178
187
  WEB -->|auto-deploy| VERCEL["Vercel"]
188
+ PLUGREPO -->|git push| MKT["Claude marketplace"]
189
+ DTK -->|npm publish| NPM2["GitHub Packages (private)"]
179
190
  ```
191
+
192
+ Full detail on how these three repos compose at install time and at run time —
193
+ including the Phase 3 → plugin dispatch contract and the Phase 5 → dev-toolkit MCP
194
+ contract — lives in [`docs/ecosystem.md`](./ecosystem.md).