---
description: "Task orchestrator  -  full pipeline via Jira ID + branch or GitHub Issue URL: analysis, plan, TDD development, parallel review + Fable triage (CLI-aware: 2-model on Claude Code, 3-model on Copilot CLI), commit, log. Use when given a Jira ID, a GitHub issue or a free-text task and the whole pipeline should run."
description-tr: "Görev orkestratörü - Jira ID + branch veya GitHub Issue URL ile tam pipeline: analiz, plan, TDD geliştirme, paralel review + Fable triyajı (CLI'ya göre: Claude Code'da 2, Copilot CLI'da 3 model), commit, log"
allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet, AskUserQuestion, WebFetch, WebSearch, NotebookEdit, Skill
---

# Multi-Agent Task Orchestrator

> **MUST: Figma MCP is BLOCKING for any task with a Figma reference.** Before any UI synthesis runs in this pipeline (analysis, planning, dev, or rework), call `mcp__claude_ai_Figma__get_design_context` for every referenced frame and use the `CodeConnectSnippet` component name verbatim. Backend-only tasks are exempt. See `$HOME/.claude/multi-agent-refs/rules.md` "User Interaction Discipline" and `$HOME/.claude/rules/figma-pipeline.md` "MUST: Figma MCP-first (BLOCKING)".

Parse the user input and route to the correct sub-command.

**Input**: $ARGUMENTS

> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` from `$HOME/.claude/multi-agent-preferences.json` and render every conversational line in it. `AskUserQuestion` `label`/`header` stay English, but its `question` and option `description`s render in `outputLanguage`; external payload bodies follow `outputLanguage` too (identifiers, commit messages, branch names stay English). Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".

## Canonical Invocation (per CLI)

Each helper subcommand has its own slash entry  -  use the CLI-native form:

| Helper | Claude Code | Copilot CLI |
|--------|-------------|-------------|
| update | `/multi-agent:update` | `/multi-agent-update` |
| setup  | `/multi-agent:setup`  | `/multi-agent-setup`  |
| status | `/multi-agent:status` | `/multi-agent-status` |
| sync   | `/multi-agent:sync`   | `/multi-agent-sync`   |
| jira   | `/multi-agent:jira`   | `/multi-agent-jira`   |
| issue  | `/multi-agent:issue`  | `/multi-agent-issue`  |
| help   | `/multi-agent:help`   | `/multi-agent-help`   |
| log, kill, resume, channels, test, ... | `/multi-agent:<name>` | `/multi-agent-<name>` |

The space-form (`multi-agent <subcommand>`) is still routed by this dispatcher
for backward compatibility, but the colon (Claude) / dash (Copilot) forms are
the canonical invocations and the only forms surfaced in autocomplete.

## Input Parsing

Classification schema lives in `$HOME/.claude/multi-agent-refs/_input-parser.md`  -  canonical source. Summary:

| # | Pattern | Type | Picker flow |
|---|---------|------|--------|
| 1 | `#N` or bare `316` | `gh-num` | account → repo (single) → maturity → dev-context |
| 2 | `repo#N` (e.g. `my-app#316`) | `gh-short` | account → maturity → dev-context |
| 3 | `https://github.com/.../issues/N` | `gh-url` | account → maturity → dev-context |
| 4 | `https://{JIRA_HOST}/browse/{JIRA_KEY}-N` | `jira-url` | account → maturity → dev-context |
| 5 | `{JIRA_KEY}-N` (bare) | `jira-id` | account → maturity → dev-context |
| 6 | `jira` | full picker | account → project (multi) → issue → maturity → dev-context |
| 7 | `issue` | full picker | account → repo (multi) → issue → maturity → dev-context |
| 8 | Free-text | `freetext` | account → repo (single) → dev-context (maturity skip) |

**Rule**: Whatever the type, **account is always asked** (autopilot picks a default). After issue fetch, **maturity check is mandatory**  -  blockers halt the pipeline. Picker `label` + `header` render in English (`promptLanguage` is locked to `en`); the `question` and each option's `description` render in `outputLanguage`, per the canonical matrix in `multi-agent-refs/rules.md`.

Lib scripts (`~/.claude/lib/`):
- `account-resolver.sh`  -  keychain account inventory
- `issue-fetcher.sh`  -  Jira/GitHub fetch + maturity scoring
- `repo-cache.sh`  -  TTL-cached repo list
- `submodule-detector.sh`  -  `.gitmodules` parse → dev-context suggestions
- `multi-repo-pipeline.sh`  -  worktree/branch/commit/PR orchestration

## Routing

| Input Pattern | Action |
|---------------|--------|
| `#N`, `316` | GitHub Issue #  -  parse, select project, start pipeline |
| `https://github.com/.../issues/N` | GitHub Issue URL  -  fetch, auto-detect or ask project |
| `https://{JIRA_HOST}/browse/{JIRA_KEY}-XXXXX` | Jira URL  -  fetch, select project, start pipeline |
| `{JIRA_KEY}-XXXXX` | Jira ID  -  fetch, select project, start pipeline |
| Free-text | Bug/feature description  -  select project, start pipeline |
| `jira` | 4-step picker (hesap → proje → issue → dev-context)  -  `commands/multi-agent/jira/SKILL.md` delegate |
| `issue` | 4-step picker (hesap → repo → issue → dev-context)  -  `commands/multi-agent/issue/SKILL.md` delegate |
| `status` | List all tasks (scan `$HOME/.claude/logs/multi-agent/`) |
| `log [id]` | Show task log |
| `resume [id]` | Resume paused task |
| `kill [id]` | Delete worktree (logs preserved). Confirm first |
| `clear-logs` | **Superseded  -  redirect, do not run.** Say so and route to `prune-logs`. It targeted `.worktrees/PROJ-*/agent-log.md`, a path nothing has written to since logs moved to `$HOME/.claude/logs/multi-agent/{project}/{task-id}/`; running it would report deleting nothing as success. |
| `purge` | Worktree + logs + counter  -  full reset (double confirm) |
| `review [#N\|repo#N\|PR-url\|branch]` | Parallel review of a PR or branch diff; with no input (interactive) lists open GitHub + Bitbucket PRs to multi-select. Posts per-finding inline comments + approve/needs-work on PRs. No worktree. |
| `review-jira [KEY\|url]` | Grade a Jira issue's readiness for the pipeline (scope / AC / repro / design / API / stack), then post the gaps as a Jira comment. Read-only on code. |
| `review-issue [#N\|repo#N\|url]` | Grade a GitHub issue's readiness for the pipeline, then post the gaps as an issue comment. Read-only on code. |
| `analysis ["<feature>"]` | Standalone feature-spec analizi: Figma / Swagger / Confluence / Jira / repo girdileri sabit 7-bölümlük şablona dökülür, humanizer'dan geçer, Local/Confluence/Jira hedef(ler)ine post edilir. Worktree veya commit yok. Dev'e zincirleme yok. |
| `complaint-analysis ["<run-name>"] [--file <path>] [<jira-id\|confluence-url> ...]` | Müşteri şikayeti triyajı: şikayetler (serbest metin / csv-xlsx-txt-json dosya / Jira issue / Confluence URL) redakte edilerek alınır, trxId/conversationId ile Graylog kanıtı çekilir, seçili client + BFF repolarında salt-okunur eşleştirme yapılır; verdict: client/bff (kök neden + citation + mevcut mimariyi referans alan fix planı + hazır dev prompt'u) veya core (core ekibine yönlendirme önerisi) veya insufficient-evidence. Rapor + Stop; worktree, commit, dev zinciri yok. |
| `build-optimize` | iOS-only Xcode build performance wrapper. Vendored `xcode-build-orchestrator`'a dispatch eder; benchmark + compilation / project / SPM analyzer'lar + recommend-first plan `.build-benchmark/optimization-plan.md`. Non-iOS stack'lerde fail-fast. |
| `channels [PR-url\|#N\|Jira-url\|Jira-id] [--channels pr,jira,confluence,wiki] [--content normal,test,auto-diff,note] [--message "..."]` | Post task report to multi-select channels (PR description, Jira comment, Confluence page, Wiki pages) with multi-select content sources. Humanizer pass per-channel. Bitbucket PR updates use reviewer-preserving PUT. Phase 7 delegates to this command; also invocable post-hoc for fixes made outside the pipeline. No worktree. |
| `create-jira ["desc"] [figma-url] [swagger-url]` | Create a standards-compliant Jira issue: asks the type (**Task** / **Bug** / **Story**), mines the project's recent same-type issues for conventions (summary format, labels, priority, test-scenario style), detects the active sprint, drafts from a standard template with auto-sizing sections (Design Reference / API Contract / Screenshots appear only when their source is given), asks about unknown fields, then full draft preview + explicit approval before create. No worktree, no commits. |
| `test` or `test [args]` | UI Bug Hunter  -  screenshot + tap + analyze on booted simulator via MCP (read `$HOME/.claude/commands/sim-test.md`). `/multi-agent:test` also resolves here via the `commands/multi-agent/test/SKILL.md` delegate. |
| `test-dark-mode` · `test-accessibility` · `test-dynamic-type` · `test-screenshots [locale]` | Fixed-scenario aliases for the four parameterless / single-parameter `test` scenarios, so the tag autocompletes instead of having to be quoted. Each delegates to the same `sim-test.md` with its scenario pinned; behaviour is identical to the quoted form, which is not deprecated. |
| `store-ready [repo] [--archive=\|--ipa=\|--aab=\|--apk=] [--skip-sweep]` | Pre-submission store readiness for a built **package**, iOS and Android, local-only. Three symmetric gates per platform  -  static package audit, the store's own validator, policy review vs repo source  -  plus the running-app sweep as Step A. A skipped gate is never folded into the pass count, and an Android run clears at most 2 of 3 because Play's authoritative check is server-side only. Validates only, never uploads. `testflight-validation` is the iOS-pinned alias; `test "store-ready"` hands off here. |
| `manual-test [#id]` | Phase 5 standalone Manual Test  -  checks out the task branch, prints Xcode / SourceTree hints, waits for user verdict (`ok` / `fix: ...`). |
| `design-check [scope]` | Mock-mode vs Figma design audit (iOS / Android, local-only). Pick repo + module → mock-support feasibility gate (halts if unsupported) → **scenario inventory** (every launch arg / scenario case / scenario code / fixture / deep link becomes a countable target with file+line evidence) → scope resolve (empty = module, screen, `screen@variant`, target id, Figma URLs, `--resume`) → worktree Debug build + mock launch → drive EACH target by its own driver, capturing tap-reachable sub-states with it → per-variant pixel + px-spacing + typography + color compare → report (side-by-side + annotated overlay + stacked findings + fix prompt) exported to `~/DesignChecks/` as HTML + PDF (+ Confluence if enabled). **Coverage gate**: a target is audited or skipped with a concrete reason, else the run is reported INCOMPLETE with the missing ids. No commits, no CI. |
| `stack [ios\|android\|backend\|mobile\|all]` | Swap skills for next conversation. No arg = show current stack. |
| `language [en\|tr]` | Show or set the assistant `outputLanguage` (explanations and chat replies). `promptLanguage` is locked to `en` and is not toggleable. No arg = show current `outputLanguage`. With `en` or `tr` = set and persist `outputLanguage`. External payloads (commits, PR bodies, Jira) stay English. |
| `setup` | Keychain token + Git Identity onboarding |
| `--local` | No worktree  -  works directly on local branch |
| `--dev` and `dev-*` | **Removed in v16.0.0.** Depth is the Phase 0 Step 7.5 question, not a flag. Print the redirect and continue at `/multi-agent` (or `:local`) with Short selected; for the two autopilot names there is no equivalent, so print the stub's two options and stop. |
| `autopilot` | Skip user confirmations, auto commit/PR |
| No args / `help` | Show usage guide |

---

## Modular Loading

This command uses lazy loading for token efficiency. Read the relevant sub-file based on the routed action:

**File layout:**
- `commands/multi-agent/*.md` → **invocable actions** (each gets its own `/multi-agent:<name>` slash command)
- `$HOME/.claude/multi-agent-refs/**` → **internal references**, read by the main command, never invoked directly (surface as `/multi-agent:refs:...` in autocomplete  -  the prefix signals "not an action")

| Route | File to Read |
|-------|-------------|
| Pipeline task (any input type) | `$HOME/.claude/multi-agent-refs/phases.md` + `$HOME/.claude/multi-agent-refs/_account-picker.md` + `_repo-picker.md` + `_dev-context.md` |
| `jira` | `$HOME/.claude/commands/multi-agent/jira/SKILL.md` (4-step picker) |
| `issue` | `$HOME/.claude/commands/multi-agent/issue/SKILL.md` (4-step picker) |
| Direct ID (`{JIRA_KEY}-N`, `#N`, gh URL, repo#N, free-text) | `$HOME/.claude/multi-agent-refs/_input-parser.md` → `_account-picker.md` → `lib/issue-fetcher.sh` (maturity check) → `_dev-context.md` |
| `setup` | `$HOME/.claude/commands/multi-agent/setup/SKILL.md` |
| `help` | `$HOME/.claude/commands/multi-agent/help/SKILL.md` |
| `channels` | `$HOME/.claude/commands/multi-agent/channels/SKILL.md` |
| `sync` | `$HOME/.claude/commands/multi-agent/sync/SKILL.md` |
| `clear-logs` | Handled inline  -  redirect to `prune-logs`, see the routing note |
| `review` | `$HOME/.claude/commands/multi-agent/review/SKILL.md` |
| `review-jira` | `$HOME/.claude/commands/multi-agent/review-jira/SKILL.md` (loads `$HOME/.claude/multi-agent-refs/readiness-review.md`) |
| `review-issue` | `$HOME/.claude/commands/multi-agent/review-issue/SKILL.md` (loads `$HOME/.claude/multi-agent-refs/readiness-review.md`) |
| `analysis` | `$HOME/.claude/commands/multi-agent/analysis/SKILL.md` |
| `complaint-analysis` | `$HOME/.claude/commands/multi-agent/complaint-analysis/SKILL.md` |
| `build-optimize` | `$HOME/.claude/commands/multi-agent/build-optimize/SKILL.md` |
| `local` | `$HOME/.claude/commands/multi-agent/local/SKILL.md` |
| `local-autopilot` | `$HOME/.claude/commands/multi-agent/local-autopilot/SKILL.md` |
| `dev` | `$HOME/.claude/commands/multi-agent/dev/SKILL.md` |
| `dev-autopilot` | `$HOME/.claude/commands/multi-agent/dev-autopilot/SKILL.md` |
| `dev-local` | `$HOME/.claude/commands/multi-agent/dev-local/SKILL.md` |
| `dev-local-autopilot` | `$HOME/.claude/commands/multi-agent/dev-local-autopilot/SKILL.md` |
| `create-jira` | `$HOME/.claude/commands/multi-agent/create-jira/SKILL.md` (loads `$HOME/.claude/multi-agent-refs/generate-issue.md`) |
| `stack` | `$HOME/.claude/commands/multi-agent/stack/SKILL.md` |
| `language` | Handled inline  -  set/show prompt language in preferences |
| SwiftUI component task (iOS) | `$HOME/.claude/multi-agent-refs/swiftui-guide.md` |
| Jetpack Compose task (Android) | `$HOME/.claude/multi-agent-refs/android-guide.md` |
| Backend API task | `$HOME/.claude/multi-agent-refs/backend-guide.md` |
| Frontend component task | `$HOME/.claude/multi-agent-refs/frontend-guide.md` |
| Phase 1 or Phase 7 (knowledge) | `$HOME/.claude/multi-agent-refs/knowledge.md` |
| Token lookup needed | `$HOME/.claude/multi-agent-refs/keychain.md` |
| Audit tools (Phase 5/6) | `$HOME/.claude/multi-agent-refs/audit-guide.md` |
| `test` | `$HOME/.claude/commands/sim-test.md` (colon-form `/multi-agent:test` uses the delegate at `commands/multi-agent/test/SKILL.md`) |
| `test-dark-mode` · `test-accessibility` · `test-dynamic-type` · `test-screenshots` | `$HOME/.claude/commands/sim-test.md`, scenario pinned by the command name (delegates at `commands/multi-agent/test-*/SKILL.md`) |
| `manual-test` | `$HOME/.claude/commands/multi-agent/manual-test/SKILL.md` |
| `design-check` | `$HOME/.claude/commands/multi-agent/design-check/SKILL.md` |

**Modifier flags** (`--local`, `autopilot`) and **ops** (`status`, `log`, `resume`, `kill`, `purge`, `review`) are parsed inline by this file  -  no separate spec files, they compose with the pipeline or do one-shot work.

**How**: After routing, `Read` the relevant file and follow its instructions. Only load what the current action needs.

**Guide selection** (auto, based on Phase 1 detected stack):
- iOS detected -> load `swiftui-guide.md`
- Android detected -> load `android-guide.md`
- Python/Node.js/Go detected -> load `backend-guide.md`
- React/Vue/Next.js detected -> load `frontend-guide.md`
- Multiple stacks -> load all relevant guides

**Agent definitions** (used in Phase 1 and Phase 4):
- `$HOME/.claude/agents/code-reviewer.md`  -  Phase 4 reviewer persona (`preferredModel: fable`; Phase 4 overrides Reviewer 3 to `sonnet`)
- `$HOME/.claude/agents/explorer.md`  -  Phase 1 codebase scan persona (`preferredModel: sonnet`  -  scan work, cost-efficient)
- `$HOME/.claude/agents/ios-architect.md`  -  iOS architecture review (`preferredModel: fable`)
- `$HOME/.claude/agents/android-architect.md`  -  Android architecture review (`preferredModel: fable`)
- `$HOME/.claude/agents/backend-architect.md`  -  Backend/API architecture review (`preferredModel: fable`)
- `$HOME/.claude/agents/security-auditor.md`  -  Security audit (`preferredModel: opus`)

**Per-persona model routing:** Before each Agent dispatch, the orchestrator reads `preferredModel` from the persona file and exports `CLAUDE_CODE_SUBAGENT_MODEL` (Claude Code) / passes `--model` (Copilot CLI). Precedence: per-dispatch `PHASE_MODEL_OVERRIDE` > persona `preferredModel` > `fable` (falls back per `$HOME/.claude/multi-agent-refs/features/model-fallback.md`). Full contract: `skills/shared/core/multi-agent/SKILL.md#agent-dispatch--per-persona-model-routing-v610`.

---

## language Command

Toggles only `outputLanguage` (`promptLanguage` is locked to `"en"`  -  see `$HOME/.claude/multi-agent-refs/rules.md` section "Language Application"). Full spec: `$HOME/.claude/commands/multi-agent/language/SKILL.md`.

---

## jira Command

Delegates to `commands/multi-agent/jira/SKILL.md` (4-step picker). Read that file, then apply:

1. **Pick account**  -  `_account-picker.md` (`lib/account-resolver.sh --providers jira`)
2. **Pick projects (multi)**  -  Jira project list, multi-select
3. **Pick issue**  -  aggregate across selected projects, `lib/issue-fetcher.sh` with maturity check
4. **Maturity check**  -  halt on blocker, prompt on warning (autopilot auto-continues)
5. **Dev context** (`_dev-context.md`)  -  extra repo selection
6. → Interactive Launcher (branch/mode/autopilot) → Phase 0

Steps 1-5 are detailed in `jira.md`; the Interactive Launcher (below) consumes the result.

---

## issue Command

Delegates to `commands/multi-agent/issue/SKILL.md` (4-step picker). Read that file, then apply:

1. **Pick account**  -  `_account-picker.md` (`--providers github`)
2. **Pick repos (multi)**  -  `lib/repo-cache.sh github <owner>`, multi-select
3. **Pick issue**  -  aggregate across repos (`gh issue list`), maturity check
4. **Maturity check**  -  `lib/issue-fetcher.sh` maturity field; blocker halts, warning prompts
5. **Dev context** (`_dev-context.md`)  -  submodule auto-suggest + extra repos
6. → Interactive Launcher → Phase 0

---

## Direct-ID Command ({JIRA_KEY}-N, gh URL, repo#N, free-text)

When the user supplies an ID/URL/free-text:

1. **Detect type**  -  per `_input-parser.md`
2. **Pick account**  -  always asked (autopilot picks default)
3. **Fetch issue**  -  `lib/issue-fetcher.sh "$INPUT"` (Jira/GitHub fetch + maturity)
4. **Repo picker**  -  only for `gh-num` (e.g. `316`) when repo is ambiguous, multi-select
5. **Maturity check**  -  blocker halts (autopilot too), warning prompt/log. For a Jira input specifically, an empty own description with a non-empty parent surfaces as `description_empty_parent_available` (warning, not blocker)  -  ask the tailored parent-description question from `jira/SKILL.md`'s maturity section instead of the generic "Continue?" prompt.
6. **Dev context**  -  always runs, empty submit allowed
7. → Interactive Launcher → Phase 0

---

## Interactive Launcher (shared by `jira` and `issue`)

After the user selects an issue from either `jira` or `issue` command:

### Step 1  -  Branch Selection
Same as Phase 0 Step 3: fetch remote branches, sort (develop* first → release/* → main/master), present with Recent suggestion from prefs:
```
Base branch:
  Recent: → develop (enter to reuse)
  ────────────────────
  1. origin/develop
  2. origin/main
  ...
Select [number] or enter for suggested:
```
Save to `prefs.projects[{project}].branches`.

### Step 2  -  Mode Selection
```
Pipeline depth (same question Phase 0 Step 7.5 asks):
  1. Full  (8 phases, Sonnet dev, parallel review + triage  -  CLI-aware reviewer set)
  2. Short (Init → Dev(Opus) → Review → Test → Commit → Report  -  no analysis/planning)
Select [1/2]:
```

### Step 3  -  Autopilot
```
Enable autopilot? (skip confirmations, auto commit/PR)
  1. Yes
  2. No
Select [1/2]:
```

### Step 4  -  Launch
Compose the final command arguments and start the pipeline:
- `jira` source → input type is `jira-id` (e.g. `PROJ-1234`)
- `issue` source → input type is `github-issue-url` (e.g. `https://github.com/org/repo/issues/610`)

Pass selected base branch + mode flags. The pipeline enters Phase 0 Step 1 with the issue already fetched  -  skip redundant API calls.

---

## Review Mode

When called with `review`:
1. Detect current branch and project from cwd (or ask)
2. Get diff: `git diff HEAD` (unstaged + staged)
3. If no diff, get diff against base branch: `git diff origin/{baseBranch}...HEAD`
4. Launch Phase 4 review (parallel + Fable triage  -  2-model on Claude Code, 3-model on Copilot CLI) on the diff
5. No worktree, no state file  -  lightweight one-shot review
6. Print findings to terminal

---

## Rules

**Non-negotiable rules that apply to every phase, every mode.** Full reference at `$HOME/.claude/multi-agent-refs/rules.md`  -  read before any invocation that writes code, commits, or posts to external systems.

Quick pointers:
- No "Copilot/AI/generated by" attribution. Ever.
- No commit without build + review pass.
- Real newlines in external outputs (heredoc + `jq --rawfile` + `curl --data-binary`).
- No HTML entities (`&amp;`, `&lt;`, `&quot;`) in titles, commits, or bodies.
- Every Bitbucket PUT ships `reviewers` + `fromRef` + `toRef` + `draft` (missing fields wipe defaults).
- Commit format: `{type}({scope}): description [{jiraId}|#{shortId}]`.
- Branch: `feature/` or `bugfix/` prefix.
- 3-iteration hard kill on any retry loop.

Load `$HOME/.claude/multi-agent-refs/rules.md` for the full contract (Swift-specific rules, reviewer policy, secret scan, subagent contract).

### TaskCreate ordering (strict)

**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied**  -  this binds the full interactive `/multi-agent` run (all 8 phases) exactly like every mode alias. The native widget renders tiles by creation order, not by phase number; out-of-order calls produce visually scrambled tile stacks. Register every tile in order, then flip status via TaskUpdate when a phase actually starts or short-circuits. Full contract: `$HOME/.claude/multi-agent-refs/tracker-contract.md` section "TaskCreate ordering (strict)".

---

## Status Display

Scan global log path `$HOME/.claude/logs/multi-agent/` for `agent-state.json` files across all projects:

```
Multi-Agent Tasks

| ID | Project | Task | Branch | Phase | Status | Duration |
|----|---------|------|--------|-------|--------|----------|
| #1 | my-app | PROJ-12345 | feature/PROJ-12345-... | 3/7 Dev | in progress | 4m |
| #2 | other-app | GH42 | feature/GH42-dark-mode | 6/7 Commit | complete | 12m |

Commands: kill #N | log #N | resume #N
```

---

## Global Paths

| Purpose | Path |
|---------|------|
| Logs & state | `$HOME/.claude/logs/multi-agent/{project}/{task-id}/` |
| Knowledge base | `$HOME/.claude/knowledge/{project-name}/` |
| Helper scripts | `$HOME/.claude/scripts/` |
| Sub-command files | `$HOME/.claude/commands/multi-agent/` |
| Agent definitions | `$HOME/.claude/agents/` |
