@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.
Files changed (47) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +49 -4
  3. package/README.tr.md +50 -4
  4. package/docs/architecture.md +3 -3
  5. package/docs/ecosystem.md +5 -5
  6. package/install/templates/multi-agent-autopilot.plist.template +79 -0
  7. package/package.json +1 -1
  8. package/pipeline/commands/multi-agent/autopilot-off/SKILL.md +64 -0
  9. package/pipeline/commands/multi-agent/autopilot-on/SKILL.md +173 -0
  10. package/pipeline/commands/multi-agent/autopilot-status/SKILL.md +74 -0
  11. package/pipeline/commands/multi-agent/channels/SKILL.md +41 -12
  12. package/pipeline/commands/multi-agent/help/SKILL.md +41 -35
  13. package/pipeline/commands/multi-agent/manual-test/SKILL.md +1 -1
  14. package/pipeline/commands/multi-agent/sync/SKILL.md +10 -9
  15. package/pipeline/commands/multi-agent/update/SKILL.md +1 -1
  16. package/pipeline/lib/autopilot-activation.sh +117 -0
  17. package/pipeline/lib/autopilot-state.sh +150 -0
  18. package/pipeline/lib/issue-fetcher.sh +18 -1
  19. package/pipeline/lib/plan-todos.sh +18 -0
  20. package/pipeline/multi-agent-refs/channels/jira.md +80 -20
  21. package/pipeline/multi-agent-refs/channels/pr.md +65 -19
  22. package/pipeline/multi-agent-refs/cross-cli-contract.md +6 -5
  23. package/pipeline/multi-agent-refs/features/visual-evidence.md +19 -7
  24. package/pipeline/multi-agent-refs/phases/phase-0-init.md +1 -1
  25. package/pipeline/multi-agent-refs/phases/phase-2-planning.md +17 -15
  26. package/pipeline/multi-agent-refs/phases/phase-3-dev.md +1 -1
  27. package/pipeline/multi-agent-refs/phases/phase-6-commit.md +1 -1
  28. package/pipeline/multi-agent-refs/readiness-review.md +7 -1
  29. package/pipeline/multi-agent-refs/rules.md +3 -11
  30. package/pipeline/multi-agent-refs/tracker-contract.md +32 -0
  31. package/pipeline/schemas/autopilot-config.schema.json +149 -0
  32. package/pipeline/schemas/token-budget.json +2 -2
  33. package/pipeline/scripts/autopilot-arming.mjs +147 -0
  34. package/pipeline/scripts/autopilot-intake.mjs +383 -0
  35. package/pipeline/scripts/autopilot-menubar.swift +361 -0
  36. package/pipeline/scripts/autopilot-runner.mjs +349 -0
  37. package/pipeline/scripts/autopilot-status.sh +212 -0
  38. package/pipeline/scripts/jira-search.sh +70 -0
  39. package/pipeline/scripts/phase-tracker.sh +134 -12
  40. package/pipeline/scripts/probe-evidence-capability.sh +27 -3
  41. package/pipeline/scripts/run-ui-tests.sh +113 -4
  42. package/pipeline/skills/.skill-manifest.json +16 -4
  43. package/pipeline/skills/shared/core/multi-agent-autopilot-off/SKILL.md +67 -0
  44. package/pipeline/skills/shared/core/multi-agent-autopilot-on/SKILL.md +146 -0
  45. package/pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md +64 -0
  46. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +62 -11
  47. 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`. Same shape as PR body's Technical Details - gives Jira/Confluence readers the code-reviewer view without making them click into the PR. |
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
- | # | Precondition | Steps | Expected | Status |
201
- |---|--------------|-------|----------|--------|
202
- | 1 | ... | ... | ... | To Test|
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
- Body converted to Jira wiki markup (`### ...` → `*...*`, `- [ ] ...` → `# ...`, `` `x` `` → `{{x}}`, tables to `||h||h|| |c|c|`); first line is the PR URL. The converted body then goes through `node "$HOME/.claude/scripts/jira-wiki-escape.mjs"` (required, not optional - Jira renders `:)` `(x)` `(!)` `(/)` as emoticon images, and a Swift selector like `login(source:input:)` ends in `:)`). POST `/rest/api/2/issue/{id}/comment` via heredoc + `jq --rawfile` + `curl --data-binary @file`, from the escaped file. Token resolved from `keychainMapping.jira`.
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 - render it in `prefs.global.outputLanguage`, falling back to `prefs.global.promptLanguage` on prefs files written before it existed. Two valid values: `"en"` (default) and `"tr"`; missing or malformed → `"en"`.
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 ["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
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"] [--file path] 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
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] [--archive=|--ipa=|--aab=|--apk=] [--skip-sweep] 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.
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ı"] [--file yol] 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
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] [--archive=|--ipa=|--aab=|--apk=] [--skip-sweep] 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.
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: yukarıdaki statik satırlardan sonra prefs.global.routines'i oku; boş değilse her rutin için " /multi-agent:<ad> <açıklama>" satırını "Kayıtlı rutinlerin:" alt başlığı altında ekle (outputLanguage). Boşsa " (henüz yok - /multi-agent:save kullan)" yaz. -->
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 + 53 sub-command skills)
69
- Step 2b: CODEX Claude Code -> Codex CLI (1 router skill + 53 specs as refs + 8 agent TOML)
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 53 sub-command specs become reference files, because Codex silently truncates
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 53 specs as reference files rather than as peer skills, via Step 2b - see
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
- **53 commands are synced** (canonical inventory - must match `cross-cli-contract.md` section 1; drift = contract violation):
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, build-optimize, channels,
501
- complaint-analysis, create-jira, design-check, doctor, diff-explain, feedback,
502
- forget, garbage-collect, graph, help, ios-coding-standard, issue, jira,
503
- kill, language, local, local-autopilot, log, manual-test, prune-logs,
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 (53 commands, 263 scripts, 210 skills)
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