@mmerterden/multi-agent-pipeline 17.0.0 → 17.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 +32 -0
- package/README.md +49 -4
- package/README.tr.md +50 -4
- package/docs/architecture.md +3 -3
- package/docs/ecosystem.md +5 -5
- package/install/templates/multi-agent-autopilot.plist.template +79 -0
- package/package.json +1 -1
- package/pipeline/commands/multi-agent/autopilot-off/SKILL.md +64 -0
- package/pipeline/commands/multi-agent/autopilot-on/SKILL.md +173 -0
- package/pipeline/commands/multi-agent/autopilot-status/SKILL.md +74 -0
- package/pipeline/commands/multi-agent/channels/SKILL.md +41 -12
- package/pipeline/commands/multi-agent/help/SKILL.md +41 -35
- package/pipeline/commands/multi-agent/manual-test/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/sync/SKILL.md +10 -9
- package/pipeline/commands/multi-agent/update/SKILL.md +1 -1
- package/pipeline/lib/autopilot-activation.sh +117 -0
- package/pipeline/lib/autopilot-state.sh +150 -0
- package/pipeline/lib/issue-fetcher.sh +18 -1
- package/pipeline/lib/plan-todos.sh +18 -0
- package/pipeline/multi-agent-refs/channels/jira.md +80 -20
- package/pipeline/multi-agent-refs/channels/pr.md +65 -19
- package/pipeline/multi-agent-refs/cross-cli-contract.md +6 -5
- package/pipeline/multi-agent-refs/features/visual-evidence.md +19 -7
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-2-planning.md +17 -15
- package/pipeline/multi-agent-refs/phases/phase-3-dev.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-6-commit.md +1 -1
- package/pipeline/multi-agent-refs/readiness-review.md +7 -1
- package/pipeline/multi-agent-refs/rules.md +3 -11
- package/pipeline/multi-agent-refs/tracker-contract.md +32 -0
- package/pipeline/schemas/autopilot-config.schema.json +149 -0
- package/pipeline/schemas/token-budget.json +2 -2
- package/pipeline/scripts/autopilot-arming.mjs +147 -0
- package/pipeline/scripts/autopilot-intake.mjs +383 -0
- package/pipeline/scripts/autopilot-menubar.swift +361 -0
- package/pipeline/scripts/autopilot-runner.mjs +349 -0
- package/pipeline/scripts/autopilot-status.sh +212 -0
- package/pipeline/scripts/jira-search.sh +70 -0
- package/pipeline/scripts/phase-tracker.sh +134 -12
- package/pipeline/scripts/probe-evidence-capability.sh +27 -3
- package/pipeline/scripts/run-ui-tests.sh +113 -4
- package/pipeline/skills/.skill-manifest.json +16 -4
- package/pipeline/skills/shared/core/multi-agent-autopilot-off/SKILL.md +67 -0
- package/pipeline/skills/shared/core/multi-agent-autopilot-on/SKILL.md +146 -0
- package/pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md +64 -0
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +62 -11
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +9 -8
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Show what continuous mode is doing here: what runs at which phase, what is queued, what waits for an answer, what PRs it opened today. Use when asked whether autopilot is on."
|
|
3
|
+
description-tr: "Sürekli modun ne yaptığını gösterir: ne koşuyor hangi fazda, sırada ne var, ne cevap bekliyor, bugün hangi PR'lar açıldı."
|
|
4
|
+
argument-hint: "[--subjects] - --subjects prints one widget line per in-flight item"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# multi-agent autopilot-status - what is it doing
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
bash "$HOME/.claude/scripts/autopilot-status.sh" ${ARGUMENTS}
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
That script is the **only** producer. The menu bar indicator, this command and
|
|
14
|
+
the session-start hook all render the same `status.json` it writes, because the
|
|
15
|
+
moment each computes its own answer they start disagreeing - which is the failure
|
|
16
|
+
this whole area was built around: a run reading `in_progress` while its PR was
|
|
17
|
+
already open.
|
|
18
|
+
|
|
19
|
+
## What the output means
|
|
20
|
+
|
|
21
|
+
| Line | Meaning |
|
|
22
|
+
|---|---|
|
|
23
|
+
| `KAPALI` with repos selected | the selection is kept, launchd holds no job. `autopilot-on` starts it again without re-asking |
|
|
24
|
+
| `kurulu değil` | never configured on this machine; nothing has been written |
|
|
25
|
+
| `Koşuyor` | in flight now. Phase and elapsed come from the run's own state, not from a guess |
|
|
26
|
+
| `Cevap bekliyor` | the item was not mature enough, the open questions were posted as a comment, and it resumes on its own once answered |
|
|
27
|
+
| `config açık ama launchd'de iş yok` | the failure a `resume` command would have hidden: an OS update dropped the plist, or it was booted out. Re-run `autopilot-on` |
|
|
28
|
+
|
|
29
|
+
An empty queue is reported with the reason - no item carries the label yet - and
|
|
30
|
+
not as an error. That is the most common "why is nothing happening", and it is
|
|
31
|
+
not a fault.
|
|
32
|
+
|
|
33
|
+
## The menu bar indicator
|
|
34
|
+
|
|
35
|
+
When `swiftc` was available at `autopilot-on` time, `~/.claude/autopilot/bin/menubar`
|
|
36
|
+
shows the same thing in the top right, refreshing on its own: one row per item
|
|
37
|
+
with its id, whether it is running Full or Short, the phase as a fraction, the
|
|
38
|
+
elapsed time and the stack, then the queue, then what is waiting, then the PRs of
|
|
39
|
+
the last day - each one clickable.
|
|
40
|
+
|
|
41
|
+
The indicator only **draws**. It cannot start, stop or change a run: control
|
|
42
|
+
stays here, where it is confirmed. It disappears from the list the moment an item
|
|
43
|
+
finishes, and the item reappears under `Raporlar` with its PR.
|
|
44
|
+
|
|
45
|
+
No `swiftc` means no indicator and nothing else changes.
|
|
46
|
+
|
|
47
|
+
## Watching the queue before anything runs
|
|
48
|
+
|
|
49
|
+
The queue can be read dry, with no scheduling and nothing dispatched:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
node "$HOME/.claude/scripts/autopilot-intake.mjs" --dry-run | jq '{queued: [.queued[].id], awaiting: [.awaiting[].id], dropped: [.dropped[] | {id, reason}]}'
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
This is the honest way to decide whether to arm the runner: it queries the same
|
|
56
|
+
sources, applies the same ordering and the same attempt history, and writes
|
|
57
|
+
nothing at all. `dropped` is the part worth reading - it is where "why is my
|
|
58
|
+
issue not being picked up" is answered, one reason per item.
|
|
59
|
+
|
|
60
|
+
## `--subjects`
|
|
61
|
+
|
|
62
|
+
One line per in-flight item, shaped for the native task widget, with the numbers
|
|
63
|
+
travelling **inside** the subject string because the widget takes exactly one
|
|
64
|
+
string per row:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
PROJ-1234 · Full · Faz 3/8 Dev · ios
|
|
68
|
+
PROJ-1199 · cevap bekliyor
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Honest limit, worth saying rather than discovering: that widget belongs to the
|
|
72
|
+
session that calls `TaskUpdate`, and it refreshes when that session takes a turn -
|
|
73
|
+
when you type, or when a hook fires. It is a view, not a live counter. The menu
|
|
74
|
+
bar indicator is the one that updates on its own.
|
|
@@ -159,16 +159,39 @@ Non-interactive in three cases - menu skipped entirely, flag values or prefs u
|
|
|
159
159
|
|
|
160
160
|
For each selected **content** source, produce one section body. Each section runs through the `humanizer` skill separately (Jira / Confluence / PR tones differ).
|
|
161
161
|
|
|
162
|
+
**The Jira body is not the PR body.** Jira is read by the person who filed the
|
|
163
|
+
ticket and by whoever tests it, so its comment carries the four sections
|
|
164
|
+
`channels/jira.md` fixes - `summary` (`Geliştirme Özeti`), `test_scenarios`
|
|
165
|
+
(`Test Senaryoları`), `impact` (`Etki Analizi`) and `context_refs`
|
|
166
|
+
(`Bağlantılar`) - and nothing else. Technical sections go to the PR and to
|
|
167
|
+
Confluence, where the reader is a code reviewer. A shipped Jira comment once
|
|
168
|
+
explained a hash-table mutation across three paragraphs of class names; it was
|
|
169
|
+
correct, and it was the wrong document. When `jira` is a selected channel, drop
|
|
170
|
+
the technical sections from its body rather than converting them: the PR link on
|
|
171
|
+
line 1 is how a Jira reader reaches the detail.
|
|
172
|
+
|
|
173
|
+
`impact` is not a technical section in disguise. It answers four questions -
|
|
174
|
+
what was wrong, what was changed, which areas must be tested, what else is
|
|
175
|
+
affected - in the same plain register as the summary, and it is the part a test
|
|
176
|
+
lead reads before deciding how wide to test.
|
|
177
|
+
|
|
162
178
|
| Content option | Generated section |
|
|
163
179
|
|---|---|
|
|
164
180
|
| Normal analiz | `### Analysis` - impact summary from Phase 1, risks from Phase 4 (pipeline-log source, high-level only) |
|
|
165
|
-
| Teknik analiz | `### Technical Details` - Changes (what/why per file group), Architecture (structural decisions, pattern changes), Dependencies (new imports/frameworks/packages). Source: Phase 2 planning + Phase 3 dev log + `git diff --stat`.
|
|
181
|
+
| Teknik analiz | `### Technical Details` - Changes (what/why per file group), Architecture (structural decisions, pattern changes), Dependencies (new imports/frameworks/packages). Source: Phase 2 planning + Phase 3 dev log + `git diff --stat`. **PR and Confluence only** - never rendered into a Jira comment. |
|
|
166
182
|
| Test senaryoları | `### Test Scenarios` - precondition / steps / expected table (4-8 rows), user perspective |
|
|
167
183
|
| Auto-diff | Old enrich Output Template verbatim - Root Cause / Solution / Changed Files / Test Scenarios |
|
|
168
184
|
| Manuel not | `### Notes` - user-provided paragraph, or LLM-split into subsections if `--message` is plain text and long |
|
|
169
185
|
| Cost özeti | `### Cost Summary` - per-phase token tally + est. USD table. Source: `phase-tracker.sh` phase status + optional OTel spans. See "Cost summary generation" below. |
|
|
170
186
|
| Yapılan iş özeti | `### Work Summary` - executive one-screen summary: task + branch + base + PR, scope delivered (done/[pending] per Phase 2 task), changed files with +/- counts (capped at 20 rows), review outcome (accepted/deferred/rejected + approved), phase tick strip. Source: `agent-state.json` + `phase-tracker.json` + `git diff --numstat base...HEAD`. See "Work summary generation" below. |
|
|
171
187
|
|
|
188
|
+
**The content options are sources, not the body's shape.** Which sections a PR
|
|
189
|
+
body carries and in what order is fixed by `channels/pr.md` (`summary` →
|
|
190
|
+
`technical` → `architecture` → `impact` → `test_scenarios` → `visuals` → `risk`
|
|
191
|
+
→ `dependencies` → `build` → `related`); the options below choose what gets
|
|
192
|
+
gathered to fill them. A content option left unselected means a section has no
|
|
193
|
+
source, not that the section may be reordered or renamed.
|
|
194
|
+
|
|
172
195
|
**Output template (aggregated across selected content options):**
|
|
173
196
|
|
|
174
197
|
```markdown
|
|
@@ -197,9 +220,13 @@ For each selected **content** source, produce one section body. Each section run
|
|
|
197
220
|
| `path/to/File.ext` | +N / -M |
|
|
198
221
|
|
|
199
222
|
### Test Scenarios ← if "Test senaryoları" OR "Auto-diff" selected
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
223
|
+
**1. {what this scenario exercises}**
|
|
224
|
+
1. {step the tester performs}
|
|
225
|
+
2. **Expected:** {what they should see}
|
|
226
|
+
|
|
227
|
+
**2. {regression scenario}**
|
|
228
|
+
1. {step}
|
|
229
|
+
2. **Expected:** {what should still behave as before}
|
|
203
230
|
|
|
204
231
|
### Notes ← if "Manuel not" selected
|
|
205
232
|
{user message}
|
|
@@ -240,13 +267,7 @@ If no cached report exists, skip silently - this is augmentation, not a gate.
|
|
|
240
267
|
|
|
241
268
|
**Work summary generation:**
|
|
242
269
|
|
|
243
|
-
Emitted only when `reportContent.workSummary === true` and at least one of (`agent-state.json`, `--branch` flag) is available. The shell adapter is `$HOME/.claude/scripts/render-work-summary.sh <taskId
|
|
244
|
-
|
|
245
|
-
1. **Task header** - `taskId`, `branch`, `baseBranch`, `prNumber` from `agent-state.json` (or explicit flags for post-hoc invocation).
|
|
246
|
-
2. **Scope delivered** - Phase 2 `planTodos[]` / `tasks[]` rendered as `done` (status=done) or `pending` (anything else) rows. Task id + title shown; `(deferred - rationale)` appended if the task's `status` is `"deferred"`.
|
|
247
|
-
3. **Changed files** - `git -C $WORKTREE diff --numstat $baseBranch...HEAD`. Shows `` `path` (+add / -del) `` per row, capped at 20 with a `_... +N more files not shown_` footer when exceeded. Total adds/dels + file count in section header.
|
|
248
|
-
4. **Review outcome** - from `reviewConsensus` (pre-v6.1) or `phases["4"].triage`: `{accepted} accepted · {deferred} deferred · {rejected} rejected · approved={bool}`. Hidden entirely when all three buckets are empty (normal for a run that never reached Phase 4).
|
|
249
|
-
5. **Phase tick strip** - single line from the tracker state (`render-work-summary.sh` resolves worktree/artifacts copies, then `$HOME/.claude/logs/multi-agent/{taskId}/tracker-state.json`): `0 Init [done] · 1 Analysis [done] · 2 Planning [done] · 3 Dev [done] · 4 Review [done] · 5 Test skipped · 6 Commit [done] · 7 Report active`. Marks: `done` completed · `active` in_progress · `failed` failed · `skipped` skipped · `·` pending.
|
|
270
|
+
Emitted only when `reportContent.workSummary === true` and at least one of (`agent-state.json`, `--branch` flag) is available. The shell adapter is `$HOME/.claude/scripts/render-work-summary.sh <taskId>`, and that script's own header is the spec for what it emits - task header, scope delivered, changed files, review outcome, phase strip - including the caps and the hidden-when-empty rules. Re-stating those five steps here gave the pipeline two specifications of one script, and the prose one is the copy that rots. Exit 2 means the state was unreadable: skip the section, do not substitute a hand-written one.
|
|
250
271
|
|
|
251
272
|
**Output template:**
|
|
252
273
|
|
|
@@ -369,7 +390,15 @@ Aggregated Markdown from Step 5 → PR description. GitHub uses `gh pr edit --bo
|
|
|
369
390
|
Full contract: [`$HOME/.claude/multi-agent-refs/channels/pr.md`]($HOME/.claude/multi-agent-refs/channels/pr.md) - Bitbucket payload assembly snippet, version-mismatch retry, `--ready` promotion, multi-repo cross-link block.
|
|
370
391
|
|
|
371
392
|
#### Adapter: Jira comment
|
|
372
|
-
|
|
393
|
+
Sections: `summary` + `test_scenarios` + `impact` + `context_refs` only - the technical ones go to the PR and Confluence (`channels/jira.md` fixes the order). The PR URL goes on line 1, above the first heading. The wiki-markup conversion table lives in that same ref and only there: the four-row summary that used to sit here mapped `### ...` to `*...*`, which is italic, not a heading - a shrunken copy of a table is a second answer, and it was the wrong one.
|
|
394
|
+
|
|
395
|
+
Then post it - do not assemble the request:
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
bash "$HOME/.claude/lib/jira-publish.sh" --issue "$JIRA_ID" --body-file "$F" --target comment
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
The publisher escapes every body (Jira renders `:)` `(x)` `(!)` `(/)` as emoticon images, and a Swift selector like `login(source:input:)` ends in `:)`) and resolves the token from `keychainMapping.jira` without putting it on argv. The hand-rolled `jq`+`curl` this replaced kept the escape as a separate step, and a shipped comment turned `hash(into:)` into a smiley.
|
|
373
402
|
|
|
374
403
|
Full contract: [`$HOME/.claude/multi-agent-refs/channels/jira.md`]($HOME/.claude/multi-agent-refs/channels/jira.md) - full conversion table, multi-repo PR-list prepend, Wiki→Jira triad interaction.
|
|
375
404
|
|
|
@@ -9,7 +9,7 @@ Called with no args or `help`, show the usage guide in the user's preferred lang
|
|
|
9
9
|
|
|
10
10
|
## Language resolution
|
|
11
11
|
|
|
12
|
-
Help is the assistant's own explanation to the user
|
|
12
|
+
Help is the assistant's own explanation to the user - render it in `prefs.global.outputLanguage` (falling back to `promptLanguage`). Language rule: `rules.md`.
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
15
|
PREFS="$HOME/.claude/multi-agent-preferences.json"
|
|
@@ -23,9 +23,9 @@ Render **exactly one** of the two blocks below - the one matching `LANG`. Neve
|
|
|
23
23
|
## Render when `LANG == "en"` - English guide
|
|
24
24
|
|
|
25
25
|
```
|
|
26
|
-
|
|
26
|
+
+----------------------------------+
|
|
27
27
|
| Multi-Agent Task Orchestrator |
|
|
28
|
-
|
|
28
|
+
+----------------------------------+
|
|
29
29
|
|
|
30
30
|
5 different input types supported - all enter the same flow:
|
|
31
31
|
|
|
@@ -35,7 +35,7 @@ Render **exactly one** of the two blocks below - the one matching `LANG`. Neve
|
|
|
35
35
|
/multi-agent "#316" -> GitHub Issue #
|
|
36
36
|
/multi-agent "bug/feature description" -> Free-text
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
------------------------------
|
|
39
39
|
|
|
40
40
|
How It Works (Phase 0 - Interactive Flow):
|
|
41
41
|
|
|
@@ -48,7 +48,7 @@ How It Works (Phase 0 - Interactive Flow):
|
|
|
48
48
|
7. INSTRUCTION Auto-detect if .instructions/ exists (figma etc.)
|
|
49
49
|
8. WORKSPACE Create worktree (default) or local branch (--local)
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
------------------------------
|
|
52
52
|
|
|
53
53
|
Pipeline (after Phase 0) - shown as visual cards in terminal:
|
|
54
54
|
|
|
@@ -77,7 +77,7 @@ Pipeline (after Phase 0) - shown as visual cards in terminal:
|
|
|
77
77
|
|
|
78
78
|
Every step is logged. Error in any phase -> pause -> resume to continue.
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
------------------------------
|
|
81
81
|
|
|
82
82
|
Modes:
|
|
83
83
|
|
|
@@ -95,7 +95,7 @@ Four pipeline entries:
|
|
|
95
95
|
|
|
96
96
|
/multi-agent:resume-local [jira-id] [autopilot] Continue already-done LOCAL work: Review → Build+Test → PR → Jira analysis + test scenarios (no dev)
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
------------------------------
|
|
99
99
|
|
|
100
100
|
Status & Resume:
|
|
101
101
|
|
|
@@ -108,6 +108,9 @@ Status & Resume:
|
|
|
108
108
|
/multi-agent:prune-prompts Zero-base prompt review: measure always-on instruction footprint, propose keep/trial/delete per rule (report first, apply on approval)
|
|
109
109
|
/multi-agent:garbage-collect Sweep run residue; --abandoned reaps stopped runs
|
|
110
110
|
/multi-agent:purge Worktree + logs - full reset (double confirm)
|
|
111
|
+
/multi-agent:autopilot-on Continuous mode on this machine: pick repos, labelled items run to a PR
|
|
112
|
+
/multi-agent:autopilot-status Running, queued, awaiting an answer, today's PRs
|
|
113
|
+
/multi-agent:autopilot-off Stop picking work up (running work finishes; --now stops it)
|
|
111
114
|
|
|
112
115
|
Post-Hoc & Side-Channel:
|
|
113
116
|
|
|
@@ -116,11 +119,11 @@ Post-Hoc & Side-Channel:
|
|
|
116
119
|
/multi-agent:review Parallel review of a PR or branch diff; no URL -> pick open GitHub/Bitbucket PRs
|
|
117
120
|
/multi-agent:review-jira Grade a Jira issue's pipeline-readiness -> comment the gaps on it
|
|
118
121
|
/multi-agent:review-issue Grade a GitHub issue's pipeline-readiness -> comment the gaps on it
|
|
119
|
-
/multi-agent:analysis ["
|
|
122
|
+
/multi-agent:analysis ["name"] Feature-spec analysis (Figma + Swagger + Confluence + repos). Asks the standard first: global (23-section dev handoff) or corporate (IG→UC→FG requirements doc). Stack optional; References built from the evidence record
|
|
120
123
|
/multi-agent:analysis-resolve [doc] Resolve Section 20 open questions of an analysis doc, one at a time with source-labeled candidates
|
|
121
124
|
/multi-agent:review-analysis [doc] Review a written analysis; findings cite the rule they break
|
|
122
125
|
/multi-agent:analysis-jira [doc] A final analysis -> a Jira story tree; coverage two-way, existing nodes skipped
|
|
123
|
-
/multi-agent:complaint-analysis ["run-name"]
|
|
126
|
+
/multi-agent:complaint-analysis ["run-name"] Customer-complaint triage: Graylog evidence per trx/conv id + read-only repo correlation → client/bff root cause + fix plan + dev prompt, or core routing recommendation
|
|
124
127
|
/multi-agent:build-optimize iOS-only Xcode build perf wrapper → benchmark + analyze + recommend-first .build-benchmark/optimization-plan.md
|
|
125
128
|
/multi-agent:create-jira ["desc"] [figma-url] [swagger-url] Create a Jira Task/Bug/Story matching team conventions (asks type + mining + active sprint + auto-sizing sections + preview & approval)
|
|
126
129
|
/multi-agent:diff-explain Map a Phase 4 triage finding back to specific diff lines
|
|
@@ -130,7 +133,7 @@ Post-Hoc & Side-Channel:
|
|
|
130
133
|
/multi-agent:doctor Would a run work here? Layout, prefs, credentials, hooks; exit code is the verdict
|
|
131
134
|
/multi-agent:refactor Best practices + bug hunt + upstream drift + toolkit MCP research -> one plan, approval, dev + sync
|
|
132
135
|
/multi-agent:refactor backlog Decide the friction already recorded about the pipeline itself, nothing re-derived
|
|
133
|
-
/multi-agent:store-ready [repo] [
|
|
136
|
+
/multi-agent:store-ready [repo] [flags] Pre-submission store readiness, iOS + Android, local-only: three symmetric gates per platform plus the running-app sweep. A skipped gate is never a pass. Validates only, never uploads.
|
|
134
137
|
/multi-agent:testflight-validation [repo] [--ipa=|--archive=] iOS-pinned alias of :store-ready. Same three gates, one implementation.
|
|
135
138
|
/multi-agent:ios-coding-standard [module] Audit an iOS module against the 99-rule coding-standard registry -> remediation
|
|
136
139
|
plan + one-page onboarding summary -> hand off to /multi-agent or :local. Read-only, never edits source.
|
|
@@ -144,7 +147,7 @@ Setup & Maintenance:
|
|
|
144
147
|
/multi-agent:update Pull latest pipeline + reinstall + run migrations
|
|
145
148
|
/multi-agent:uninstall Uninstall pipeline from every CLI (--all-data also clears settings, logs, memory + knowledge; tokens always intact)
|
|
146
149
|
|
|
147
|
-
|
|
150
|
+
------------------------------
|
|
148
151
|
|
|
149
152
|
Plugins & tools (called directly, no wrappers):
|
|
150
153
|
|
|
@@ -158,7 +161,7 @@ Plugins & tools (called directly, no wrappers):
|
|
|
158
161
|
*_accessibility_audit). Use them instead of guessing about on-screen
|
|
159
162
|
state. Its registration survives uninstall. Not registered = silent no-op.
|
|
160
163
|
|
|
161
|
-
|
|
164
|
+
------------------------------
|
|
162
165
|
|
|
163
166
|
Routines (your own reusable jobs):
|
|
164
167
|
|
|
@@ -167,7 +170,7 @@ Routines (your own reusable jobs):
|
|
|
167
170
|
/multi-agent:forget [name] Remove a saved routine
|
|
168
171
|
<!-- ROUTINES_DYNAMIC: after printing the static lines above, read prefs.global.routines; if non-empty, append one indented line per routine " /multi-agent:<name> <description>" under a "Your saved routines:" subheading, in outputLanguage. If empty, print " (none yet - use /multi-agent:save)". -->
|
|
169
172
|
|
|
170
|
-
|
|
173
|
+
------------------------------
|
|
171
174
|
|
|
172
175
|
Interactive Launchers:
|
|
173
176
|
|
|
@@ -180,7 +183,7 @@ Interactive Launchers:
|
|
|
180
183
|
3. Autopilot: yes/no
|
|
181
184
|
4. Pipeline starts with the selected issue
|
|
182
185
|
|
|
183
|
-
|
|
186
|
+
------------------------------
|
|
184
187
|
|
|
185
188
|
UI Testing (standalone - not part of pipeline phases):
|
|
186
189
|
|
|
@@ -222,7 +225,7 @@ Design Check (mock-mode vs Figma, local-only):
|
|
|
222
225
|
# COVERAGE GATE: every target is audited or skipped WITH a concrete reason; anything else reports
|
|
223
226
|
# INCOMPLETE with the missing ids. "Needs a scenario/launch-arg" is not a reason, reaching it is the job.
|
|
224
227
|
|
|
225
|
-
|
|
228
|
+
------------------------------
|
|
226
229
|
|
|
227
230
|
Setup:
|
|
228
231
|
|
|
@@ -236,7 +239,7 @@ Setup:
|
|
|
236
239
|
5. Missing Tokens - standard key names + ready-to-paste commands
|
|
237
240
|
6. Verify - re-scan, confirm ready
|
|
238
241
|
|
|
239
|
-
|
|
242
|
+
------------------------------
|
|
240
243
|
|
|
241
244
|
Key Features:
|
|
242
245
|
|
|
@@ -263,7 +266,7 @@ Quality & Telemetry (advisory, on by default - flip prefs.global.* to disable)
|
|
|
263
266
|
Per-Persona Dispatch reads `preferredModel` from the persona file; override per call via
|
|
264
267
|
PHASE_MODEL_OVERRIDE; ladder fable -> opus -> sonnet -> haiku
|
|
265
268
|
|
|
266
|
-
|
|
269
|
+
------------------------------
|
|
267
270
|
|
|
268
271
|
Examples:
|
|
269
272
|
|
|
@@ -290,7 +293,7 @@ Examples:
|
|
|
290
293
|
/multi-agent:create-jira "Profile screen empty state" https://figma.com/design/abc?node-id=1-2
|
|
291
294
|
/multi-agent:create-jira "Login crash on iOS 17, see attached log"
|
|
292
295
|
|
|
293
|
-
|
|
296
|
+
------------------------------
|
|
294
297
|
|
|
295
298
|
Logs: $HOME/.claude/logs/multi-agent/{project}/{task-id}/
|
|
296
299
|
```
|
|
@@ -300,9 +303,9 @@ Logs: $HOME/.claude/logs/multi-agent/{project}/{task-id}/
|
|
|
300
303
|
## Render when `LANG == "tr"` - Türkçe rehber
|
|
301
304
|
|
|
302
305
|
```
|
|
303
|
-
|
|
306
|
+
+----------------------------------+
|
|
304
307
|
| Multi-Agent Görev Orkestratörü |
|
|
305
|
-
|
|
308
|
+
+----------------------------------+
|
|
306
309
|
|
|
307
310
|
5 farklı girdi tipi desteklenir - hepsi aynı akışa girer:
|
|
308
311
|
|
|
@@ -312,7 +315,7 @@ Logs: $HOME/.claude/logs/multi-agent/{project}/{task-id}/
|
|
|
312
315
|
/multi-agent "#316" -> GitHub Issue #
|
|
313
316
|
/multi-agent "bug/özellik açıklaması" -> Serbest metin
|
|
314
317
|
|
|
315
|
-
|
|
318
|
+
------------------------------
|
|
316
319
|
|
|
317
320
|
Nasıl Çalışır (Phase 0 - İnteraktif Akış):
|
|
318
321
|
|
|
@@ -325,7 +328,7 @@ Nasıl Çalışır (Phase 0 - İnteraktif Akış):
|
|
|
325
328
|
7. INSTRUCTION .instructions/ varsa otomatik algıla (figma vs.)
|
|
326
329
|
8. WORKSPACE Worktree yarat (default) ya da local branch (--local)
|
|
327
330
|
|
|
328
|
-
|
|
331
|
+
------------------------------
|
|
329
332
|
|
|
330
333
|
Pipeline (Phase 0'dan sonra) - terminalde görsel kart olarak görünür:
|
|
331
334
|
|
|
@@ -354,7 +357,7 @@ Pipeline (Phase 0'dan sonra) - terminalde görsel kart olarak görünür:
|
|
|
354
357
|
|
|
355
358
|
Her adım loglanır. Herhangi bir fazdaki hata -> pause -> resume ile devam et.
|
|
356
359
|
|
|
357
|
-
|
|
360
|
+
------------------------------
|
|
358
361
|
|
|
359
362
|
Modlar:
|
|
360
363
|
|
|
@@ -371,7 +374,7 @@ Dört pipeline girişi:
|
|
|
371
374
|
|
|
372
375
|
/multi-agent:resume-local [jira-id] [autopilot] Lokalde biten işi sürdür: Review → Build+Test → PR → Jira teknik analiz + test senaryoları (dev yok)
|
|
373
376
|
|
|
374
|
-
|
|
377
|
+
------------------------------
|
|
375
378
|
|
|
376
379
|
Status & Resume:
|
|
377
380
|
|
|
@@ -384,6 +387,9 @@ Status & Resume:
|
|
|
384
387
|
/multi-agent:prune-prompts Sıfır-tabanlı prompt incelemesi: sürekli yüklü talimat yükünü ölç, kural başına tut/dene/sil öner (önce rapor, onayla uygula)
|
|
385
388
|
/multi-agent:garbage-collect Koşu artığını süpür; --abandoned durmuş koşuları toplar
|
|
386
389
|
/multi-agent:purge Worktree + log'lar - tam reset (çift onay)
|
|
390
|
+
/multi-agent:autopilot-on Bu makinede sürekli mod: repo seç, etiketli maddeler PR'a kadar koşar
|
|
391
|
+
/multi-agent:autopilot-status Koşan, sıradaki, cevap bekleyen, bugünkü PR'lar
|
|
392
|
+
/multi-agent:autopilot-off Yeni madde alma (koşan iş biter; --now onu da durdurur)
|
|
387
393
|
|
|
388
394
|
Post-Hoc & Side-Channel:
|
|
389
395
|
|
|
@@ -395,7 +401,7 @@ Post-Hoc & Side-Channel:
|
|
|
395
401
|
/multi-agent:analysis ["analysis-name"] Feature-spec analizi (Figma + Swagger + Confluence + repolar). Önce standardı sorar: global (23 bölümlük geliştirme dokümanı) veya kurumsal (IG→UC→FG gereksinim dokümanı). Stack opsiyonel; Referanslar kanıt kaydından üretilir
|
|
396
402
|
/multi-agent:analysis-resolve [doc] Analiz dokümanının Bölüm 20 açık sorularını kaynak etiketli adaylarla teker teker çözer
|
|
397
403
|
/multi-agent:review-analysis [doc] Yazılmış analizi review eder; bulgular ihlal edilen kuralı gösterir
|
|
398
|
-
/multi-agent:complaint-analysis ["run-adı"]
|
|
404
|
+
/multi-agent:complaint-analysis ["run-adı"] Müşteri şikayeti triyajı: trx/conv id ile Graylog kanıtı + salt-okunur repo eşleştirme → client/bff kök neden + fix planı + dev prompt'u, veya core'a yönlendirme önerisi
|
|
399
405
|
/multi-agent:build-optimize iOS-only Xcode build performance wrapper → benchmark + analiz + recommend-first .build-benchmark/optimization-plan.md
|
|
400
406
|
/multi-agent:create-jira ["açıklama"] [figma-url] [swagger-url] Takım standartlarına uygun Jira Task/Bug/Story oluştur (tip sorar + convention mining + aktif sprint + auto-sizing bölümler + önizleme & onay)
|
|
401
407
|
/multi-agent:diff-explain Phase 4 triage bulgusunu diff satırlarına eşle
|
|
@@ -404,7 +410,7 @@ Post-Hoc & Side-Channel:
|
|
|
404
410
|
/multi-agent:scan Skill güvenlik taraması (tiered pattern catalog)
|
|
405
411
|
/multi-agent:refactor Uyarlanmış best-practice + bug avı + upstream-drift + multi-agent-toolkit MCP araştırması -> tek plan, onay, dev + sync
|
|
406
412
|
/multi-agent:refactor backlog Pipeline'ın kendisi hakkında kaydedilmiş sürtünmeyi karara bağlar, sıfırdan türetmez
|
|
407
|
-
/multi-agent:store-ready [repo] [
|
|
413
|
+
/multi-agent:store-ready [repo] [flags] Yükleme öncesi store hazırlığı, iOS + Android, yalnızca lokal: platform başına 3 simetrik kapı artı çalışan-app sweep'i. Atlanan kapı asla pass sayılmaz. Sadece doğrular, asla yüklemez.
|
|
408
414
|
/multi-agent:testflight-validation [repo] [--ipa=|--archive=] :store-ready'nin iOS alias'ı. Aynı 3 kapı, tek implementasyon.
|
|
409
415
|
/multi-agent:ios-coding-standard [modül] Bir iOS modülünü 99 kurallık kodlama-standardı registry'sine göre denetler -> düzeltme
|
|
410
416
|
planı + tek sayfalık onboarding özeti -> /multi-agent veya :local'e devreder. Read-only, kaynağı hiç düzenlemez.
|
|
@@ -418,7 +424,7 @@ Setup & Maintenance:
|
|
|
418
424
|
/multi-agent:update En son pipeline'ı çek + reinstall + migration çalıştır
|
|
419
425
|
/multi-agent:uninstall Pipeline'ı tüm CLI'lerden kaldır (--all-data ayar, log, hafıza + bilgi tabanını da siler; token'a dokunulmaz)
|
|
420
426
|
|
|
421
|
-
|
|
427
|
+
------------------------------
|
|
422
428
|
|
|
423
429
|
Plugin'ler ve tool'lar (doğrudan çağrılır, sarmalayıcı yok):
|
|
424
430
|
|
|
@@ -432,16 +438,16 @@ Plugin'ler ve tool'lar (doğrudan çağrılır, sarmalayıcı yok):
|
|
|
432
438
|
android_apk_audit, *_accessibility_audit). Ekrandaki durumu tahmin etmek
|
|
433
439
|
yerine bunları kullan. Kaydı uninstall'dan sağ çıkar. Kayıtlı değilse sessizce devre dışı.
|
|
434
440
|
|
|
435
|
-
|
|
441
|
+
------------------------------
|
|
436
442
|
|
|
437
443
|
Rutinler (kendi tekrar eden işlerin):
|
|
438
444
|
|
|
439
445
|
/multi-agent:save [ad] Sık yaptığın bir işi yeniden kullanılabilir /multi-agent:<ad> komutu olarak kaydet
|
|
440
446
|
/multi-agent:routines Kayıtlı rutinlerini ve ne yaptıklarını listele
|
|
441
447
|
/multi-agent:forget [ad] Kayıtlı bir rutini kaldır
|
|
442
|
-
<!-- ROUTINES_DYNAMIC:
|
|
448
|
+
<!-- ROUTINES_DYNAMIC: same rule as the EN block above. -->
|
|
443
449
|
|
|
444
|
-
|
|
450
|
+
------------------------------
|
|
445
451
|
|
|
446
452
|
İnteraktif Launcher'lar:
|
|
447
453
|
|
|
@@ -454,7 +460,7 @@ Rutinler (kendi tekrar eden işlerin):
|
|
|
454
460
|
3. Autopilot: evet/hayır
|
|
455
461
|
4. Pipeline seçilen issue ile başlar
|
|
456
462
|
|
|
457
|
-
|
|
463
|
+
------------------------------
|
|
458
464
|
|
|
459
465
|
UI Testing (standalone - pipeline fazlarından bağımsız):
|
|
460
466
|
|
|
@@ -496,7 +502,7 @@ Design Check (mock-mod vs Figma, yalnızca lokal):
|
|
|
496
502
|
# KAPSAM GEÇİDİ: her hedef ya denetlenir ya da SOMUT gerekçeyle atlanır; başka her durum eksik hedef
|
|
497
503
|
# id'leriyle EKSİK raporlanır. "Senaryo/launch-arg gerektirir" gerekçe değil, oraya ulaşmak koşunun işi.
|
|
498
504
|
|
|
499
|
-
|
|
505
|
+
------------------------------
|
|
500
506
|
|
|
501
507
|
Setup:
|
|
502
508
|
|
|
@@ -510,7 +516,7 @@ Setup:
|
|
|
510
516
|
5. Eksik Token'lar - standart key isimleri + ready-to-paste komutlar
|
|
511
517
|
6. Doğrulama - yeniden tarama, hazır mı kontrol
|
|
512
518
|
|
|
513
|
-
|
|
519
|
+
------------------------------
|
|
514
520
|
|
|
515
521
|
Temel Özellikler:
|
|
516
522
|
|
|
@@ -536,7 +542,7 @@ Quality & Telemetry (advisory, default açık - prefs.global.* ile kapatılabi
|
|
|
536
542
|
Per-Persona Reviewer/agent dispatch persona dosyasından `preferredModel` okur;
|
|
537
543
|
per-call override PHASE_MODEL_OVERRIDE ile; merdiven fable -> opus -> sonnet -> haiku
|
|
538
544
|
|
|
539
|
-
|
|
545
|
+
------------------------------
|
|
540
546
|
|
|
541
547
|
Örnekler:
|
|
542
548
|
|
|
@@ -563,7 +569,7 @@ Quality & Telemetry (advisory, default açık - prefs.global.* ile kapatılabi
|
|
|
563
569
|
/multi-agent:create-jira "Profil ekranı empty state" https://figma.com/design/abc?node-id=1-2
|
|
564
570
|
/multi-agent:create-jira "iOS 17'de login crash, log ekte"
|
|
565
571
|
|
|
566
|
-
|
|
572
|
+
------------------------------
|
|
567
573
|
|
|
568
574
|
Log'lar: $HOME/.claude/logs/multi-agent/{project}/{task-id}/
|
|
569
575
|
```
|
|
@@ -51,5 +51,5 @@ Lets you switch to the task branch for manual testing in Xcode before the PR is
|
|
|
51
51
|
```json
|
|
52
52
|
{"criteria":[{"spec":"<quote>","source":"analysis 15.2 | plan task 3 | user","observed":"<what was seen>","verdict":"pass|fail|not-tested","reason":"<required when not-tested>","screenshot":"<path or null>"}],"verdict":"passed|failed"}
|
|
53
53
|
```
|
|
54
|
-
then run `node $HOME/.claude/scripts/evidence-gate.mjs --claim manual --status passed --evidence "$WORKTREE/.pipeline/manual-test.json"`, adding `--require-screenshot` when `state.visualEvidence.required` is true (a passing criterion then has to name a screenshot that is actually on disk). Exit 1 means the "ok" is not accepted: name the criterion that is missing evidence and wait for the next reply. Exit 0 → `phase-tracker.sh update 5 completed` + `phase-tracker.sh meta 5 Result "local test passed (user)"`, recreate the worktree, continue to Phase 6. Full contract: `$HOME/.claude/multi-agent-refs/phases/phase-5-test.md` step 5.
|
|
54
|
+
then run `node $HOME/.claude/scripts/evidence-gate.mjs --claim manual --status passed --evidence "$WORKTREE/.pipeline/manual-test.json"`, adding `--require-screenshot` when `state.visualEvidence.required` is true (a passing criterion then has to name a screenshot that is actually on disk). Exit 1 means the "ok" is not accepted: name the criterion that is missing evidence and wait for the next reply. Exit 0 → `phase-tracker.sh update 5 completed` + `phase-tracker.sh meta 5 Result "local test passed (user)"`, recreate the worktree, continue to Phase 6. Full contract: `$HOME/.claude/multi-agent-refs/phases/phase-5-test.md` step 5, whose "UI flow video, when Phase 3 produced none" block applies here too: invoked standalone, this command is the only phase that ran, so if `visualEvidence.required` is set and `visualEvidence.video.file` is empty, the recording has to happen here or nowhere.
|
|
55
55
|
- **Fix needed** → `phase-tracker.sh now 5 "applying fix: <summary>"`, recreate the worktree, apply the fix
|
|
@@ -65,8 +65,8 @@ Run every step automatically:
|
|
|
65
65
|
```
|
|
66
66
|
Step 0: DOCTOR doctor.mjs - exit 2 or 4 stops the sync
|
|
67
67
|
Step 1.5: DETECT Compare timestamps, find stale targets
|
|
68
|
-
Step 2: COPILOT Claude Code -> Copilot CLI (instructions +
|
|
69
|
-
Step 2b: CODEX Claude Code -> Codex CLI (1 router skill +
|
|
68
|
+
Step 2: COPILOT Claude Code -> Copilot CLI (instructions + 56 sub-command skills)
|
|
69
|
+
Step 2b: CODEX Claude Code -> Codex CLI (1 router skill + 56 specs as refs + 8 agent TOML)
|
|
70
70
|
Step 3: REPO Claude Code -> pipeline repo (genericized, personal data scrub, bash -n on all sh)
|
|
71
71
|
Step 3c: PLUGINS pipeline shared/external -> multi-agent-plugins marketplace (rebuild knowledge/,
|
|
72
72
|
bump changed plugins' patch version, commit + push the plugins repo)
|
|
@@ -172,7 +172,7 @@ Step 0 gate rules and why: `features/doctor.md`.
|
|
|
172
172
|
Unlike the Copilot step, this one does **not** hand-copy files. The Codex tree is a
|
|
173
173
|
*transform* of the Claude tree, not a mirror of it, and the transform is real work:
|
|
174
174
|
|
|
175
|
-
- the
|
|
175
|
+
- the 56 sub-command specs become reference files, because Codex silently truncates
|
|
176
176
|
its skills block (see `cross-cli-contract.md` 2.6 for the measurement)
|
|
177
177
|
- every `$HOME/.claude/...` reference to a CLI-owned tree is retargeted, with
|
|
178
178
|
`agents/<persona>.md` becoming `.toml` and the dispatcher becoming the router skill
|
|
@@ -487,20 +487,21 @@ When invoked with the `release` argument:
|
|
|
487
487
|
## Sub-Command Sync (Claude Code <-> Copilot CLI Skills)
|
|
488
488
|
|
|
489
489
|
This runs on the Claude <-> Copilot axis. Codex is NOT synced here: it receives the
|
|
490
|
-
same
|
|
490
|
+
same 56 specs as reference files rather than as peer skills, via Step 2b - see
|
|
491
491
|
`cross-cli-contract.md` 2.6 for why the parity axis differs per host.
|
|
492
492
|
|
|
493
493
|
| Claude Code | Copilot CLI |
|
|
494
494
|
|-------------|-------------|
|
|
495
495
|
| `~/.claude/commands/multi-agent/{cmd}/SKILL.md` | `~/.copilot/skills/multi-agent-{cmd}/SKILL.md` |
|
|
496
496
|
|
|
497
|
-
**
|
|
497
|
+
**56 commands are synced** (canonical inventory - must match `cross-cli-contract.md` section 1; drift = contract violation):
|
|
498
498
|
|
|
499
499
|
```
|
|
500
|
-
analysis, analysis-jira, analysis-resolve, autopilot,
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
500
|
+
analysis, analysis-jira, analysis-resolve, autopilot, autopilot-off,
|
|
501
|
+
autopilot-on, autopilot-status, build-optimize, channels, complaint-analysis,
|
|
502
|
+
create-jira, design-check, diff-explain, doctor, feedback, forget,
|
|
503
|
+
garbage-collect, graph, help, ios-coding-standard, issue, jira, kill,
|
|
504
|
+
language, local, local-autopilot, log, manual-test, prune-logs,
|
|
504
505
|
prune-prompts, purge, refactor, resume, resume-local, review,
|
|
505
506
|
review-analysis, review-issue, review-jira, routines, save, scan, search,
|
|
506
507
|
setup, stack, status, steer, store-ready, sync, test, test-accessibility,
|
|
@@ -196,7 +196,7 @@ A git clone of the pipeline repo is a maintainer workspace, kept in sync by `/mu
|
|
|
196
196
|
```
|
|
197
197
|
Current: v15.6.0 Latest: v15.6.1
|
|
198
198
|
-> npm pack @{npm-scope}/multi-agent-pipeline@15.6.1
|
|
199
|
-
-> node install.js --all (
|
|
199
|
+
-> node install.js --all (56 commands, 263 scripts, 210 skills)
|
|
200
200
|
-> migrate-prefs.mjs (0 changes - already v2.6.0)
|
|
201
201
|
|
|
202
202
|
✓ Updated: v15.6.0 → v15.6.1
|