@mmerterden/multi-agent-pipeline 13.5.0 → 14.0.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 +243 -0
- package/README.md +3 -3
- package/docs/features.md +1 -1
- package/install/_common.mjs +73 -0
- package/install/_mcp-register.mjs +70 -31
- package/install/_plugin-skills.mjs +73 -14
- package/install/claude.mjs +28 -4
- package/install/codex.mjs +33 -2
- package/install/copilot.mjs +145 -9
- package/install/index.mjs +10 -6
- package/install/templates/copilot-instructions.md +1 -1
- package/package.json +1 -1
- package/pipeline/agents/code-reviewer.md +58 -1
- package/pipeline/commands/multi-agent/SKILL.md +7 -5
- package/pipeline/commands/multi-agent/analysis/SKILL.md +7 -7
- package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/build-optimize/SKILL.md +7 -7
- package/pipeline/commands/multi-agent/channels/SKILL.md +5 -5
- package/pipeline/commands/multi-agent/dev/SKILL.md +23 -18
- package/pipeline/commands/multi-agent/dev-autopilot/SKILL.md +19 -13
- package/pipeline/commands/multi-agent/dev-local/SKILL.md +14 -12
- package/pipeline/commands/multi-agent/dev-local-autopilot/SKILL.md +17 -12
- package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/help/SKILL.md +4 -4
- package/pipeline/commands/multi-agent/ios-coding-standard/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +4 -4
- package/pipeline/commands/multi-agent/resume/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/review/SKILL.md +5 -5
- package/pipeline/commands/multi-agent/scan/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/search/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/setup/SKILL.md +6 -6
- package/pipeline/commands/multi-agent/{finish → ship}/SKILL.md +12 -12
- package/pipeline/commands/multi-agent/testflight-validation/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/update/SKILL.md +5 -2
- package/pipeline/commands/sim-test.md +2 -2
- package/pipeline/lib/credential-store-resolver.sh +16 -0
- package/pipeline/lib/credential-store.sh +47 -4
- package/pipeline/lib/fetch-figma-annotations.sh +26 -28
- package/pipeline/lib/figma-screenshot.sh +28 -39
- package/pipeline/lib/figma-token.sh +63 -0
- package/pipeline/multi-agent-refs/analysis-template.md +1 -1
- package/pipeline/multi-agent-refs/android-guide.md +1 -1
- package/pipeline/multi-agent-refs/channels/issue-comment.md +1 -1
- package/pipeline/multi-agent-refs/component-dispatch.md +2 -2
- package/pipeline/multi-agent-refs/cross-cli-contract.md +4 -4
- package/pipeline/multi-agent-refs/features/dev-critic.md +2 -2
- package/pipeline/multi-agent-refs/features/model-fallback.md +35 -2
- package/pipeline/multi-agent-refs/features/plan-todos.md +1 -1
- package/pipeline/multi-agent-refs/features/repo-map.md +1 -1
- package/pipeline/multi-agent-refs/features/review-multi-repo.md +3 -3
- package/pipeline/multi-agent-refs/features/shadow-git.md +1 -1
- package/pipeline/multi-agent-refs/features/skill-conformance.md +116 -0
- package/pipeline/multi-agent-refs/features/verify-by-test.md +1 -1
- package/pipeline/multi-agent-refs/generate-issue.md +1 -1
- package/pipeline/multi-agent-refs/multi-repo-integration-build.md +1 -1
- package/pipeline/multi-agent-refs/phases/log-format.md +4 -4
- package/pipeline/multi-agent-refs/phases/modes.md +7 -7
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +13 -11
- package/pipeline/multi-agent-refs/phases/phase-1-analysis.md +17 -15
- package/pipeline/multi-agent-refs/phases/phase-2-planning.md +7 -7
- package/pipeline/multi-agent-refs/phases/phase-3-dev.md +28 -13
- package/pipeline/multi-agent-refs/phases/phase-4-review.md +90 -58
- package/pipeline/multi-agent-refs/phases/phase-5-test.md +7 -7
- package/pipeline/multi-agent-refs/phases/phase-6-commit.md +8 -8
- package/pipeline/multi-agent-refs/phases/phase-7-report.md +8 -8
- package/pipeline/multi-agent-refs/phases.md +13 -13
- package/pipeline/multi-agent-refs/progress-contract.md +2 -2
- package/pipeline/multi-agent-refs/rules.md +7 -5
- package/pipeline/multi-agent-refs/swiftui-guide.md +1 -1
- package/pipeline/multi-agent-refs/tracker-contract.md +16 -15
- package/pipeline/preferences-template.json +7 -1
- package/pipeline/rules/figma-pipeline.md +2 -2
- package/pipeline/schemas/agent-state.schema.json +333 -79
- package/pipeline/schemas/criteria-manifest.schema.json +228 -0
- package/pipeline/schemas/migrations/prefs-2.4.0-to-2.5.0.mjs +64 -0
- package/pipeline/schemas/prefs.schema.json +118 -262
- package/pipeline/schemas/reviewer-output.schema.json +48 -3
- package/pipeline/schemas/token-budget.json +34 -10
- package/pipeline/schemas/triage-output.schema.json +112 -27
- package/pipeline/scripts/cost-table.json +7 -4
- package/pipeline/scripts/gc-worktrees.sh +1 -1
- package/pipeline/scripts/gen-mode-dispatch.mjs +6 -6
- package/pipeline/scripts/match-skills.mjs +37 -4
- package/pipeline/scripts/migrate-prefs.mjs +88 -17
- package/pipeline/scripts/phase-tracker.sh +14 -3
- package/pipeline/scripts/pre-commit-check.sh +49 -2
- package/pipeline/scripts/skill-conformance.mjs +960 -0
- package/pipeline/scripts/smoke-schema-validation.sh +17 -4
- package/pipeline/scripts/uninstall.mjs +35 -9
- package/pipeline/scripts/validate-reviewer.mjs +108 -1
- package/pipeline/skills/.skill-manifest.json +1 -1
- package/pipeline/skills/.skills-index.json +36 -9
- package/pipeline/skills/shared/README.md +15 -12
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +1 -0
- package/pipeline/skills/shared/core/apple-archive-compliance/references/rules.yml +167 -0
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +1 -0
- package/pipeline/skills/shared/core/google-play-compliance/references/rules.yml +184 -0
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +10 -10
- package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +4 -4
- package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +3 -3
- package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +6 -5
- package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +7 -6
- package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +4 -3
- package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +4 -4
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +5 -5
- package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +1 -1
- package/pipeline/skills/shared/core/{multi-agent-finish → multi-agent-ship}/SKILL.md +8 -8
- package/pipeline/skills/shared/external/ios-coding-standard/SKILL.md +44 -5
- package/pipeline/skills/shared/external/ios-coding-standard/modules/_TEMPLATE.yml +82 -0
- package/pipeline/skills/shared/external/ios-coding-standard/references/STANDARD.md +169 -10
- package/pipeline/skills/shared/external/ios-coding-standard/references/lint-local.sh +13 -1
- package/pipeline/skills/shared/external/ios-coding-standard/references/rules.yml +335 -16
- package/pipeline/skills/skills-index.md +11 -8
|
@@ -6,7 +6,7 @@ allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdat
|
|
|
6
6
|
|
|
7
7
|
# Multi-Agent Task Orchestrator
|
|
8
8
|
|
|
9
|
-
> **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
|
|
9
|
+
> **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)".
|
|
10
10
|
|
|
11
11
|
Parse the user input and route to the correct sub-command.
|
|
12
12
|
|
|
@@ -87,8 +87,8 @@ Lib scripts (`~/.claude/lib/`):
|
|
|
87
87
|
| `stack [ios\|android\|backend\|mobile\|all]` | Swap skills for next conversation. No arg = show current stack. |
|
|
88
88
|
| `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. |
|
|
89
89
|
| `setup` | Keychain token + Git Identity onboarding |
|
|
90
|
-
| `--dev` | Dev-only: Init -> Dev(Opus) -> Commit -> Report |
|
|
91
|
-
| `--dev autopilot` or `dev-autopilot` | Fastest path - Dev(Opus) + zero interaction |
|
|
90
|
+
| `--dev` | Dev-only: Init -> Dev(Opus) -> Review -> Test -> Commit -> Report |
|
|
91
|
+
| `--dev autopilot` or `dev-autopilot` | Fastest path - Dev(Opus) + Review (auto-fix) + zero interaction |
|
|
92
92
|
| `--local` | No worktree - works directly on local branch |
|
|
93
93
|
| `autopilot` | Skip user confirmations, auto commit/PR |
|
|
94
94
|
| No args / `help` | Show usage guide |
|
|
@@ -121,6 +121,8 @@ This command uses lazy loading for token efficiency. Read the relevant sub-file
|
|
|
121
121
|
| `build-optimize` | `$HOME/.claude/commands/multi-agent/build-optimize/SKILL.md` |
|
|
122
122
|
| `local` | `$HOME/.claude/commands/multi-agent/local/SKILL.md` |
|
|
123
123
|
| `local-autopilot` | `$HOME/.claude/commands/multi-agent/local-autopilot/SKILL.md` |
|
|
124
|
+
| `dev` | `$HOME/.claude/commands/multi-agent/dev/SKILL.md` |
|
|
125
|
+
| `dev-autopilot` | `$HOME/.claude/commands/multi-agent/dev-autopilot/SKILL.md` |
|
|
124
126
|
| `dev-local` | `$HOME/.claude/commands/multi-agent/dev-local/SKILL.md` |
|
|
125
127
|
| `dev-local-autopilot` | `$HOME/.claude/commands/multi-agent/dev-local-autopilot/SKILL.md` |
|
|
126
128
|
| `create-jira` | `$HOME/.claude/commands/multi-agent/create-jira/SKILL.md` (loads `$HOME/.claude/multi-agent-refs/generate-issue.md`) |
|
|
@@ -162,7 +164,7 @@ This command uses lazy loading for token efficiency. Read the relevant sub-file
|
|
|
162
164
|
|
|
163
165
|
## language Command
|
|
164
166
|
|
|
165
|
-
Toggles only `outputLanguage` (`promptLanguage` is locked to `"en"` - see `$HOME/.claude/multi-agent-refs/rules.md` section "Language Application"). Full spec:
|
|
167
|
+
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`.
|
|
166
168
|
|
|
167
169
|
---
|
|
168
170
|
|
|
@@ -229,7 +231,7 @@ Save to `prefs.projects[{project}].branches`.
|
|
|
229
231
|
```
|
|
230
232
|
Pipeline mode:
|
|
231
233
|
1. Full pipeline (8 phases, Sonnet dev, parallel review + triage - CLI-aware reviewer set)
|
|
232
|
-
2. --dev (fast: Init → Dev(Opus) → Commit → Report)
|
|
234
|
+
2. --dev (fast: Init → Dev(Opus) → Review → Test → Commit → Report - no analysis/planning)
|
|
233
235
|
Select [1/2]:
|
|
234
236
|
```
|
|
235
237
|
|
|
@@ -45,7 +45,7 @@ When citing a Locked decision in code or docs, prefer `Locked <n> (<short label>
|
|
|
45
45
|
9. **Per-platform output split.** One markdown file is produced per selected platform under `analysis/<feature>-<platform>.md`. There is no merged single file. Section duplication follows the A3 hybrid table in `$HOME/.claude/multi-agent-refs/analysis-template.md` (Sections 1 + 4 duplicated verbatim; Sections 2, 3, 5, 6, 7 projected per platform). Each file carries a YAML front-matter header naming the feature, platform, generated-at timestamp, sibling file list, and binding standards source.
|
|
46
46
|
10. **Output destination is asked after drafts exist.** Phase 3 renders each per-platform markdown to `/tmp/analysis-<feature-slug>-<timestamp>/` first. Only then does Phase 3.5 surface the output-destination picker (Local / Confluence / Jira). Drafts in `/tmp/` are the source of truth on resume; `/multi-agent:resume` re-uses them when `phase == awaiting_output_decision`.
|
|
47
47
|
11. **Repo-evidence reuse-first.** Phase 1b runs a repo-evidence collector against each selected repo, producing 13 buckets (services, dtos, useCases, validationRules, domainEntities, routes, coordinators, diConfigurators, uiComponents, tokens, localizationKeys, testingIdentifiers, analyticsEvents) with each row tagged `direct-match | same-domain | cross-cutting`. Section 7 emits `Reuse existing X (file:line)` rows for `direct-match` items and advisory rows for `cross-cutting` items. New-write tasks for items that have a `direct-match` are downgraded to Risks ("existing X candidate found; reuse or document why a new one is needed").
|
|
48
|
-
12. **MUST: Figma access - 3-tier fallback chain, pipeline-wide.** When any Figma URL or node ID is supplied (Phase 0 Step 5), Phase 1 establishes a Figma ground-truth artefact via the 3-tier chain before any UI synthesis runs: (1) Figma MCP `get_design_context` / `get_screenshot` / `get_metadata` for every referenced frame, with one re-auth retry on auth failure; (2) Figma REST API (`GET /v1/files/{fileKey}/nodes`, `GET /v1/images/{fileKey}`) using the PAT resolved through `~/.claude/lib/credential-store.sh get <logical-key>` where `<logical-key>` = `prefs.global.keychainMapping.
|
|
48
|
+
12. **MUST: Figma access - 3-tier fallback chain, pipeline-wide.** When any Figma URL or node ID is supplied (Phase 0 Step 5), Phase 1 establishes a Figma ground-truth artefact via the 3-tier chain before any UI synthesis runs: (1) Figma MCP `get_design_context` / `get_screenshot` / `get_metadata` for every referenced frame, with one re-auth retry on auth failure; (2) Figma REST API (`GET /v1/files/{fileKey}/nodes`, `GET /v1/images/{fileKey}`) using the PAT resolved through `~/.claude/lib/credential-store.sh get <logical-key>` where `<logical-key>` = `prefs.global.keychainMapping.figma`; (3) a user-attached screenshot as last resort. The tier in use is persisted as `state.figmaAccess.tier`. On Tier 1 the `CodeConnectSnippet` blocks name the exact target component consumed verbatim in Section 2 and Section 7. On Tier 2 the canonical-component decision falls back to the repo's `*.figma.swift` / `*.figma.kt` mappings keyed by `fileKey` + `nodeId`. On Tier 3 the canonical-component decision becomes "tier-3 best-fit pending design review" and produces a forced Open Question in Section 7 plus a Phase 4 `review_blocking` flag. Sound-alike alternatives, "more flexible" wrappers, and extrapolating from Confluence text-only "Component Kompozisyonu" / "Component Inventory" tables are forbidden in every tier. If all three tiers fail, halt the run and ask the user for access; never proceed with text-derived guesses. Section 7 architecture decisions must cite the node ID (Tier 1 or Tier 2) or the user-screenshot reference (Tier 3) for every UI atom row. Violations cost rebuild rounds (raw-primitive substitution; sound-alike-component swap). Generic rule rationale and checklist: see `$HOME/.claude/rules/figma-pipeline.md` "MUST: Figma access - 3-tier fallback chain (BLOCKING, pipeline-wide)". Memory: `[[figma-no-guesswork]]`.
|
|
49
49
|
13. **Gherkin user stories.** Section 4 scenarios use Given / When / Then. Plain-prose user stories are rejected at render time.
|
|
50
50
|
14. **Goals and Non-Goals are paired.** Section 2 always carries both columns. A row in only the goal column without an explicit non-goal counterpart is rejected. Vague "out of scope" phrasing does not satisfy the non-goal column; each non-goal names what is excluded.
|
|
51
51
|
15. **New assets default to SVG.** Section 8 entries marked `new` are SVG unless a documented exception is captured in the rationale column (Lottie for motion design, optimized PNG for raster-only icons). PDF, JPG, and unoptimized PNG are rejected.
|
|
@@ -65,7 +65,7 @@ When citing a Locked decision in code or docs, prefer `Locked <n> (<short label>
|
|
|
65
65
|
27. **Evidence digest caches Phase 1b and 1c.** `evidence_digest = sha256(featureName || sorted(platforms) || repoEvidence.summary || conventions.summary)`. When the same feature name is invoked again against the same set of repos and the digest matches, Phase 1b and 1c are skipped and the cached `evidence.repoEvidence` / `evidence.conventions` is reused. Cache TTL is 24 hours; manual invalidation via `--no-cache` flag.
|
|
66
66
|
28. **SwiftUI Preview block mandatory (iOS projection, SwiftUI only).** When the iOS file is produced AND the affected view is a SwiftUI view (detected via `import SwiftUI` + `: View` protocol conformance in `evidence.repoEvidence[<repo>].buckets.uiComponents`), Section 13.6 renders a Preview block table covering at minimum: canonical default (LTR Light), Dark, RTL, Dynamic Type accessibilityLarge, and one error variant. Loading state and edge-case variants are added when distinct from canonical. UIKit-only features (no SwiftUI view artefact) drop Section 13.6 with note `(N/A: UIKit-only feature)`. Preview macro convention (`#Preview` for Swift 5.9+ vs legacy `PreviewProvider`) is read from `evidence.conventions[<repo>].previewMacro`. Each Preview variant listed in Section 13.6 must have a matching row in Section 15.2 Snapshot Tests; a Preview without a snapshot row triggers a Section 20 Risk.
|
|
67
67
|
29. **Variant usage explicit and bounded.** Section 6 inventory rows list which variants this feature consumes per component (concrete enum case + bool value). New Section 6.X (Variant Usage Matrix) catalogues the full variant axis vs. used subset with a rationale per excluded variant. Sections 13.6 (Preview) and 15.2 (Snapshot) cover only the used subset; expanding the variant set requires updating Section 6.X first.
|
|
68
|
-
30. **Analysis as self-contained design bridge - no MCP outside analysis phase (BLOCKING, pipeline-wide).** The analysis document is the sole design source for every downstream phase. After Phase 1 of `/multi-agent:analysis` produces `analysis/<feature>-<platform>.md`, Phase 2 Planning, Phase 3 Dev, Phase 4 Review, Phase 5 Test, Phase 6 Commit, and Phase 7 Report consume only the analysis document plus repo Code Connect mappings (`*.figma.swift` / `*.figma.kt`). Calling `mcp__claude_ai_Figma__*`, hitting `api.figma.com`, or fetching a `figma.com/design/...` URL during Phase 2+ is a violation. Applies to every mode that runs Phase 2+: `/multi-agent`, `/multi-agent:autopilot`, `/multi-agent:local`, `/multi-agent:local-autopilot`, `/multi-agent:dev`, `/multi-agent:dev-autopilot`, `/multi-agent:dev-local`, `/multi-agent:dev-local-autopilot`. Hard requirement (v9.0.0): Phase 2 Pre-item and Phase 3 Pre-item (BLOCKING) abort the run when the analysis document is missing. Memory: `[[mcp-only-in-analysis]]`. Generic rule rationale and access matrix: see
|
|
68
|
+
30. **Analysis as self-contained design bridge - no MCP outside analysis phase (BLOCKING, pipeline-wide).** The analysis document is the sole design source for every downstream phase. After Phase 1 of `/multi-agent:analysis` produces `analysis/<feature>-<platform>.md`, Phase 2 Planning, Phase 3 Dev, Phase 4 Review, Phase 5 Test, Phase 6 Commit, and Phase 7 Report consume only the analysis document plus repo Code Connect mappings (`*.figma.swift` / `*.figma.kt`). Calling `mcp__claude_ai_Figma__*`, hitting `api.figma.com`, or fetching a `figma.com/design/...` URL during Phase 2+ is a violation. Applies to every mode that runs Phase 2+: `/multi-agent`, `/multi-agent:autopilot`, `/multi-agent:local`, `/multi-agent:local-autopilot`, `/multi-agent:dev`, `/multi-agent:dev-autopilot`, `/multi-agent:dev-local`, `/multi-agent:dev-local-autopilot`. Hard requirement (v9.0.0): Phase 2 Pre-item and Phase 3 Pre-item (BLOCKING) abort the run when the analysis document is missing. Memory: `[[mcp-only-in-analysis]]`. Generic rule rationale and access matrix: see `$HOME/.claude/rules/figma-pipeline.md` "MUST: No MCP outside analysis phase".
|
|
69
69
|
31. **Business-rule to acceptance-criterion to test traceability (AI + human spine).** The analysis is a development handoff that both an AI implementer and a human reviewer must act on, so it is bound by one shared-ID vocabulary. Every business rule carries a stable id `BR-<slug>-NN` (Section 4.4). Each rule maps to at least one acceptance criterion written Given / When / Then (binary - two readers must not be able to disagree on pass/fail). Each acceptance criterion maps to unit-test scenarios in Section 15.1, one row per case across happy / boundary / error / empty-nil (enumerate at least the failure modes; agents hallucinate error handling when it is omitted). The same ids thread onward: Section 15.6 UI-test flows reference the `BR-` ids and use stable selectors (accessibilityIdentifier / testTag), Section 16 accessibility items reuse those identifiers, Section 11 analytics events cite their triggering rule or story, and Section 5/7 layout cells carry token + Figma node refs. Never invent copy or values (blank beats a guess; a missing source becomes a Section 20 Open Question). **Mode-aware gate:** in Full mode a business rule with no acceptance criterion, or an acceptance criterion with no Section 15.1 scenario, fails the dispatch gate. In **Lite mode Section 15 is not rendered**, so the rule-to-test half does not apply - Section 4.4 still lists each rule with its Given/When/Then acceptance criterion (the acceptance criterion is itself the testable statement), and the 15.1 mapping is deferred to whenever the feature is later analyzed in Full or implemented via `/multi-agent:dev`. The rule-to-acceptance-criterion half always holds, in both modes.
|
|
70
70
|
|
|
71
71
|
## Input
|
|
@@ -236,7 +236,7 @@ For each entry in `state.analysisSpec.contextLinks[]`, fan out by `type`. Entrie
|
|
|
236
236
|
|------|---------|---------------|
|
|
237
237
|
| swagger | `~/.claude/lib/fetch-swagger.sh <url>` | `state.analysisSpec.evidence.swagger[]` |
|
|
238
238
|
| confluence | `~/.claude/lib/fetch-confluence.sh <url>` | `state.analysisSpec.evidence.confluence[]` |
|
|
239
|
-
| figma | **MUST** establish the Figma access tier per Locked decision #12. Tier 1 (preferred): call `mcp__claude_ai_Figma__get_design_context` (primary), `mcp__claude_ai_Figma__get_screenshot`, `mcp__claude_ai_Figma__get_metadata` for every node ID; auth failure runs `authenticate` + `complete_authentication` then retries. Tier 2 (fallback): `GET https://api.figma.com/v1/files/{fileKey}/nodes?ids={nodeId}` for design context and `GET /v1/images/{fileKey}?ids={nodeId}&format=png&scale=2` for screenshots, with PAT from `~/.claude/lib/credential-store.sh get <logical-key>` (logical key = `prefs.global.keychainMapping.
|
|
239
|
+
| figma | **MUST** establish the Figma access tier per Locked decision #12. Tier 1 (preferred): call `mcp__claude_ai_Figma__get_design_context` (primary), `mcp__claude_ai_Figma__get_screenshot`, `mcp__claude_ai_Figma__get_metadata` for every node ID; auth failure runs `authenticate` + `complete_authentication` then retries. Tier 2 (fallback): `GET https://api.figma.com/v1/files/{fileKey}/nodes?ids={nodeId}` for design context and `GET /v1/images/{fileKey}?ids={nodeId}&format=png&scale=2` for screenshots, with PAT from `~/.claude/lib/credential-store.sh get <logical-key>` (logical key = `prefs.global.keychainMapping.figma`); canonical component resolves via repo `*.figma.swift` / `*.figma.kt` mapping. Tier 3 (last resort): user-attached screenshot, `codeConnectSnippets: []`, forced Open Question. Capture each `CodeConnectSnippet` block verbatim when on Tier 1 (component name + modifier chain). **Annotation capture (when the project `figma-config` has `annotations.enabled`):** on Tier 1, walk the `annotations[]` the `get_design_context` payload returns for each node (read `label` / `labelMarkdown`); on Tier 2, run `~/.claude/lib/fetch-figma-annotations.sh --file-key <fileKey> --node-id <ids> --lang-prefixes <config.annotations.langPrefixes>`. Parse each annotation by the configured language prefixes (prefixed `TR:/EN:` wins, else line1/line2, else single) and persist to `annotations[]`. The annotation is the authoritative copy for its node (Locked 3); the visible text layer is a placeholder. Persist `state.figmaAccess.tier`. See Locked decision #12 and `$HOME/.claude/rules/figma-pipeline.md` "MUST: Figma access - 3-tier fallback chain". | `state.analysisSpec.evidence.figma[]` (records: `nodeId`, `screenshotUrl`, `codeConnectSnippets[]`, `tokens[]`, `textLayers[]`, `annotations[]`, `tier`; see `analysis-spec.schema.json`) |
|
|
240
240
|
| jira | `gh api` or Jira REST API for issue summary | `state.analysisSpec.evidence.jira[]` |
|
|
241
241
|
| generic-doc | WebFetch on demand | `state.analysisSpec.evidence.confluence[]` (generic bucket) unless `binding: true` -> `evidence.standards[]` |
|
|
242
242
|
| `local-file` | `Read` (no fetch) on tilde-expanded absolute path | `state.analysisSpec.evidence.standards[]` |
|
|
@@ -431,7 +431,7 @@ synthesizedSections = {
|
|
|
431
431
|
| 3. Localization | If both Figma annotations/text layers and `evidence.repoEvidence[*].buckets.localizationKeys` are empty → `byPlatform[*]` = null. Otherwise produce the key table per the project `localization.ownership` mode (Locked 20): `in-repo` fills the configured locale set (default `ar, de, en, es, fr, it, ru, tr`, RTL for ar); `externally-owned` lists key + status + copy source + base value and defers per-locale values. Base copy is sourced from the Figma annotation when present (Locked 3). |
|
|
432
432
|
| 4. API Contracts | If `evidence.swagger[]` is empty AND no Confluence embedded API table AND no `evidence.repoEvidence[*].buckets.services` direct-match → null. Otherwise produce endpoint summary + per-endpoint tables (shared verbatim across files). |
|
|
433
433
|
| 5. Deeplink / Push | Per-platform: iOS uses Universal Links / `UNUserNotificationCenter`; Android uses `intent-filter` / FCM; Frontend uses web URL routing; Backend file omits this section entirely. |
|
|
434
|
-
| 6. Business + Tests | If sections 2 and 4 are both `null` AND `evidence.firebase[]` is empty → null. Otherwise produce use-case + mock stubs + per-platform test skeletons + shared Firebase events table. Reuse Red-Green-Refactor naming from
|
|
434
|
+
| 6. Business + Tests | If sections 2 and 4 are both `null` AND `evidence.firebase[]` is empty → null. Otherwise produce use-case + mock stubs + per-platform test skeletons + shared Firebase events table. Reuse Red-Green-Refactor naming from `$HOME/.claude/rules/tdd.md`. |
|
|
435
435
|
| 7. Development Plan | Always present. Tasks for the current platform only. Architecture standards come from `evidence.standards[]` filtered by platform (see Pass B step 1). **Reuse-first rule (Locked 11)**: when an item has `direct-match` in `evidence.repoEvidence[<repo>].buckets.<X>`, emit `Reuse existing <FQN> (<file>:<line>)` instead of `Add new <FQN>`. New-write task with a `direct-match` competitor becomes a Risk row. |
|
|
436
436
|
|
|
437
437
|
#### Phase 2a - Pass B preview (Locked 26)
|
|
@@ -495,7 +495,7 @@ For each `platform` in `state.analysisSpec.platforms[]`:
|
|
|
495
495
|
6. **Concatenate non-null sections in canonical order.** Numbering stays sequential `1..N` over the rendered set (omitted sections do not create gaps).
|
|
496
496
|
7. **Schema validation** on the per-platform spec object:
|
|
497
497
|
```bash
|
|
498
|
-
python3 -c "import json,jsonschema; jsonschema.validate(json.load(open('state/<feature>-<platform>.json')), json.load(open('
|
|
498
|
+
python3 -c "import json,jsonschema; jsonschema.validate(json.load(open('state/<feature>-<platform>.json')), json.load(open('$HOME/.claude/schemas/analysis-spec.schema.json')))"
|
|
499
499
|
```
|
|
500
500
|
On failure for any platform, surface the error and stop before Phase 3 (do not draft partial outputs).
|
|
501
501
|
|
|
@@ -662,11 +662,11 @@ When `phase == "cancelled_at_pass_b_preview"`:
|
|
|
662
662
|
| `~/.claude/lib/extract-conventions.sh` | Phase 1c convention extractor (7 pattern groups, JSON output, confidence levels) |
|
|
663
663
|
| `~/.claude/lib/figma-screenshot.sh` | Phase 2b Tier 2 Figma image downloader (REST API, section drill, 2x scale PNG, manifest.json) |
|
|
664
664
|
| `~/.claude/lib/md2confluence-v3.py` | Phase 4 Confluence dispatch (multipart attachments, `<ac:image>` injection, mermaid macro + fallback, tooltip footnote macro, punctuation gate) |
|
|
665
|
-
|
|
|
665
|
+
| `$HOME/.claude/skills/humanizer/SKILL.md` | Phase 3 tone pass |
|
|
666
666
|
| 8-locale set (ar, de, en, es, fr, it, ru, tr) + localization-key naming (inline) | Section 10 localization generation |
|
|
667
667
|
| `$HOME/.claude/multi-agent-refs/channels/confluence.md` | Phase 4 Confluence dispatch |
|
|
668
668
|
| `$HOME/.claude/multi-agent-refs/channels/jira.md` | Phase 4 Jira dispatch |
|
|
669
|
-
|
|
|
669
|
+
| `$HOME/.claude/rules/tdd.md` | Section 15 test naming |
|
|
670
670
|
| `$HOME/.claude/multi-agent-refs/analysis-template.md` | Template master copy + language matrix (v3 - 23 main sections + 3 footer) |
|
|
671
671
|
| `$HOME/.claude/multi-agent-refs/conventions-defaults.md` | Pass B fallback defaults (4 platforms x 7 pattern groups) - applied when convention confidence is none AND standards binding is silent |
|
|
672
672
|
| `$HOME/.claude/scripts/validate-analysis-doc.mjs` | Phase 4 pre-dispatch gate: deterministic check of the emitted per-platform doc (front-matter, never-omitted sections, humanizer punctuation, Full-mode BR traceability) |
|
|
@@ -121,7 +121,7 @@ For each open row in source order:
|
|
|
121
121
|
| `$HOME/.claude/multi-agent-refs/analysis-template.md` | Section 20 / Section 23 table contracts, front-matter shape, omission re-flow |
|
|
122
122
|
| `$HOME/.claude/multi-agent-refs/conventions-defaults.md` | `convention-fallback` default values per platform |
|
|
123
123
|
| `~/.claude/lib/extract-conventions.sh` | fresh single-field extraction for convention-fallback candidates |
|
|
124
|
-
|
|
|
124
|
+
| `$HOME/.claude/skills/humanizer/SKILL.md` | tone reference for longer merged fragments (short fragments only need the punctuation gate) |
|
|
125
125
|
|
|
126
126
|
## Notes
|
|
127
127
|
|
|
@@ -62,13 +62,13 @@ Before dispatch, fail fast on non-iOS repos. Detect iOS context via the standard
|
|
|
62
62
|
|
|
63
63
|
| Path | Reason |
|
|
64
64
|
|------|--------|
|
|
65
|
-
|
|
|
66
|
-
|
|
|
67
|
-
|
|
|
68
|
-
|
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
65
|
+
| `$HOME/.claude/skills/xcode-build-orchestrator/SKILL.md` | The orchestrator this wrapper dispatches to |
|
|
66
|
+
| `$HOME/.claude/skills/xcode-build-benchmark/SKILL.md` | Baseline timing |
|
|
67
|
+
| `$HOME/.claude/skills/xcode-compilation-analyzer/SKILL.md` | Swift compile hotspots |
|
|
68
|
+
| `$HOME/.claude/skills/xcode-project-analyzer/SKILL.md` | Build settings / script phases / parallelism |
|
|
69
|
+
| `$HOME/.claude/skills/spm-build-analysis/SKILL.md` | SPM graph + plugins |
|
|
70
|
+
| `$HOME/.claude/skills/xcode-build-fixer/SKILL.md` | Apply approved fixes + re-benchmark |
|
|
71
|
+
| `$HOME/.claude/skills/NOTICE-xcode-build-skills.md` | MIT attribution + upstream pin |
|
|
72
72
|
|
|
73
73
|
## Notes
|
|
74
74
|
|
|
@@ -73,7 +73,7 @@ Rendered in English (`promptLanguage` is locked to `en`). Previous selections (`
|
|
|
73
73
|
**Runs only when** (a) `agent-state.json` exists for the task AND (b) a Work Summary can be generated (same availability rule as the "Yapılan iş özeti" content row). Purpose: give the user an instant "what did this ship?" answer BEFORE they pick channels. They see the outcome first, then decide where to route it - instead of the reverse.
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
|
-
preview=$(bash
|
|
76
|
+
preview=$(bash $HOME/.claude/scripts/render-work-summary.sh "$TASK_ID" 2>/dev/null || true)
|
|
77
77
|
[ -n "$preview" ] && {
|
|
78
78
|
printf '%s\n\n' "$preview"
|
|
79
79
|
# Auto-tick workSummary content row when preview was shown.
|
|
@@ -240,7 +240,7 @@ If no cached report exists, skip silently - this is augmentation, not a gate.
|
|
|
240
240
|
|
|
241
241
|
**Work summary generation:**
|
|
242
242
|
|
|
243
|
-
Emitted only when `reportContent.workSummary === true` and at least one of (`agent-state.json`, `--branch` flag) is available. The shell adapter is
|
|
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
244
|
|
|
245
245
|
1. **Task header** - `taskId`, `branch`, `baseBranch`, `prNumber` from `agent-state.json` (or explicit flags for post-hoc invocation).
|
|
246
246
|
2. **Scope delivered** - Phase 2 `planTodos[]` / `tasks[]` rendered as `✅` (status=done) or `⏳` (anything else) rows. Task id + title shown; `(deferred - rationale)` appended if the task's `status` is `"deferred"`.
|
|
@@ -278,7 +278,7 @@ Emitted only when `reportContent.costSummary === true` and tracker data is avail
|
|
|
278
278
|
|
|
279
279
|
1. **Token tallies per phase** - read `.worktrees/{taskPath}/phase-tracker.json` (written by `phase-tracker.sh update` / `tokens` actions). If present, each phase row has `{tokens_in, tokens_out}`.
|
|
280
280
|
2. **Fallback to OTel spans** - if tracker JSON has no token columns but `otel-spans.jsonl` exists (set `MULTI_AGENT_OTEL_SPANS=1` beforehand), aggregate `phase.tokens` spans by phase ID.
|
|
281
|
-
3. **USD estimate** - uses a static price table in
|
|
281
|
+
3. **USD estimate** - uses a static price table in `$HOME/.claude/scripts/cost-table.json` (model → $/Mtok_in, $/Mtok_out). Missing model → show ` - ` for USD, never block.
|
|
282
282
|
|
|
283
283
|
**Output template:**
|
|
284
284
|
|
|
@@ -293,7 +293,7 @@ Emitted only when `reportContent.costSummary === true` and tracker data is avail
|
|
|
293
293
|
| **Total** | | **94,744** | **22,930** | **$2.04** |
|
|
294
294
|
```
|
|
295
295
|
|
|
296
|
-
Generated by
|
|
296
|
+
Generated by `$HOME/.claude/scripts/render-cost-summary.sh <task-id>` using prices from `$HOME/.claude/scripts/cost-table.json`. The channels adapter shells out to this renderer - doc table is illustrative only, runtime is authoritative.
|
|
297
297
|
|
|
298
298
|
**Precision rules:** tokens as thousand-separated integers. USD rounded to 2 dp (`printf '$%.2f'`). Rows with zero tokens dropped. If total USD is ` - ` (no price for any model), replace the total row USD cell with ` - ` and add a one-line footnote: `*USD unavailable - add model to cost-table.json*`.
|
|
299
299
|
|
|
@@ -469,7 +469,7 @@ Phase 7 passes a runtime state bundle: `{jiraId, prUrl, remoteType, taskType, fi
|
|
|
469
469
|
| Claude Code | `/multi-agent:channels` | Slash namespace (colon) |
|
|
470
470
|
| Copilot CLI | `multi-agent-channels` | Top-level command (dash-separated, no namespace support) |
|
|
471
471
|
|
|
472
|
-
Both installations read the same source file (
|
|
472
|
+
Both installations read the same source file (`$HOME/.claude/commands/multi-agent/channels/SKILL.md`) - `install.js --all` copies to:
|
|
473
473
|
- `~/.claude/commands/multi-agent/channels/SKILL.md`
|
|
474
474
|
- `~/.copilot/commands/multi-agent-channels.md`
|
|
475
475
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Fast development mode: Init → Dev (Opus) → Test → Commit → Report. Analysis
|
|
3
|
-
description-tr: "Hızlı geliştirme modu: Init → Dev (Opus) → Test → Commit → Report. Analiz
|
|
2
|
+
description: "Fast development mode: Init → Dev (Opus) → Review → Test → Commit → Report. Analysis and planning are skipped, review is not. Use when the work is already scoped but the result still has to be checked."
|
|
3
|
+
description-tr: "Hızlı geliştirme modu: Init → Dev (Opus) → Review → Test → Commit → Report. Analiz ve planlama atlanır, review atlanmaz."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# multi-agent dev - Fast Development Mode (--dev)
|
|
@@ -21,28 +21,31 @@ description-tr: "Hızlı geliştirme modu: Init → Dev (Opus) → Test → Comm
|
|
|
21
21
|
>
|
|
22
22
|
> Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
23
23
|
|
|
24
|
-
A
|
|
24
|
+
A 6-phase fast pipeline: Init → Dev → Review → Test → Commit → Report. Development runs on the Opus model (top intelligence tier).
|
|
25
25
|
|
|
26
26
|
## When to use it
|
|
27
27
|
- Small changes, bug fixes, quick features
|
|
28
28
|
- Simple tasks that don't need the full 8-phase pipeline
|
|
29
|
-
-
|
|
29
|
+
- Work that is already scoped, so analysis and planning buy nothing - the result is still reviewed
|
|
30
30
|
|
|
31
31
|
## Pipeline
|
|
32
32
|
|
|
33
33
|
```
|
|
34
34
|
Phase 0: Init → project detection, worktree, branch, identity (full picker)
|
|
35
35
|
Phase 3: Dev → direct development on Opus (TDD optional)
|
|
36
|
+
Phase 4: Review → deterministic gates + parallel review + triage
|
|
36
37
|
Phase 5: Test → User Test (interactive simulator)
|
|
37
38
|
Phase 6: Commit → commit + push + PR
|
|
38
39
|
Phase 7: Report → channels (Jira / Confluence / PR / Wiki)
|
|
39
40
|
```
|
|
40
41
|
|
|
41
|
-
`--dev` skips Phase 1 (Analysis)
|
|
42
|
+
`--dev` skips Phase 1 (Analysis) and Phase 2 (Planning + Approval Gate). Phase 3 Dev runs on **Opus**. Phase 0 picker, Phase 4 review, Phase 5 test, Phase 6 commit, and Phase 7 channels are identical to the full pipeline.
|
|
42
43
|
|
|
43
44
|
## What `--dev` does NOT skip (required)
|
|
44
45
|
|
|
45
|
-
`--dev` skips the
|
|
46
|
+
`--dev` skips the two phases that front-load a task (Phase 1 Analysis, Phase 2 Planning + Approval) and runs Phase 3 Dev on Opus. Phase 0 (Init), Phase 4 (Review), Phase 5 (Test), Phase 6 (Commit), and Phase 7 (Report + channels) are byte-for-byte the same as the full pipeline. User-facing prompts **always run** - they exist for audit, not speed.
|
|
47
|
+
|
|
48
|
+
**Review is not a fast-mode casualty.** Skipping analysis means the run has less context, not that the output deserves less scrutiny: Phase 4 runs its deterministic gates, dispatches the parallel reviewers and triages their findings exactly as the full pipeline does. Accepted blocking findings loop back to Phase 3, capped at 3 iterations. Because Phase 1 never ran, Phase 4 substitutes a deterministic stack classifier for `detectedStack` and records every Phase-1-dependent step as `not-applicable`, so a step that could not run is distinguishable from a step that passed.
|
|
46
49
|
|
|
47
50
|
### Required user prompts (Phase 0)
|
|
48
51
|
|
|
@@ -155,9 +158,8 @@ No "pre-existing" claim is allowed without a baseline reproduce.
|
|
|
155
158
|
|
|
156
159
|
- Phase 1 (Analysis → Opus deep-think + explore agents)
|
|
157
160
|
- Phase 2 → Plan Approval Gate including clarification + approval
|
|
158
|
-
- Phase 4 (Review → parallel + triage)
|
|
159
161
|
|
|
160
|
-
Phase 0 (Init full picker), Phase 5 (User Test), Phase 6 (Commit), and Phase 7 (Report + channels) run exactly as in the full pipeline. Phase 3 Dev model is **Opus**.
|
|
162
|
+
That is the whole list. Phase 0 (Init full picker), Phase 4 (Review), Phase 5 (User Test), Phase 6 (Commit), and Phase 7 (Report + channels) run exactly as in the full pipeline. Phase 3 Dev model is **Opus**.
|
|
161
163
|
|
|
162
164
|
## Steps
|
|
163
165
|
|
|
@@ -187,25 +189,28 @@ Phase 0 (Init full picker), Phase 5 (User Test), Phase 6 (Commit), and Phase 7 (
|
|
|
187
189
|
|
|
188
190
|
The dispatch is keyed on `agent-state.taskType`, written by Phase 0 Step 7 (`feedback_phase0_tasktype.md`). If the issue body contains a Figma URL, the type is `"component"` and 3a applies - no exception, even in `--dev`.
|
|
189
191
|
|
|
190
|
-
4. **Phase
|
|
192
|
+
4. **Phase 4: Review** - same as the full pipeline, per `$HOME/.claude/multi-agent-refs/phases/phase-4-review.md`: deterministic gates (build / lint / test / secrets / evidence), the parallel reviewer set (CLI-aware), and triage. Accepted blocking findings return to step 3 for rework, capped at 3 iterations per `operations.md`. Phase-1-dependent steps (1.8 Figma evidence, 2.8 visual conformance) are recorded as `not-applicable (no Phase 1 evidence)` rather than skipped silently.
|
|
193
|
+
|
|
194
|
+
5. **Phase 5: User Test** - same as the full pipeline (interactive simulator / local-test prompt)
|
|
191
195
|
|
|
192
|
-
|
|
196
|
+
6. **Phase 6: Commit** - same as the full pipeline (commit + push + PR + shared-branch final confirm). Phase 6 refuses to commit while an accepted blocking finding is unresolved.
|
|
193
197
|
|
|
194
|
-
|
|
198
|
+
7. **Phase 7: Report** - same as the full pipeline (channels prompt: Jira / Confluence / PR description / Wiki)
|
|
195
199
|
|
|
196
200
|
## Differences vs full pipeline
|
|
197
201
|
|
|
198
202
|
| Aspect | Full (`/multi-agent`) | Dev (`/multi-agent:dev`) |
|
|
199
203
|
|---------|---------------------|------------------------|
|
|
200
|
-
| Phases | 8 (0-7) |
|
|
204
|
+
| Phases | 8 (0-7) | 6 (0, 3, 4, 5, 6, 7) - 1, 2 skipped |
|
|
201
205
|
| Phase 3 Dev model | Sonnet | **Opus** |
|
|
202
206
|
| Phase 1 Analysis (explore agents) | ✅ | ❌ |
|
|
203
207
|
| Phase 2 Planning + Approval Gate | ✅ | ❌ |
|
|
204
|
-
| Phase 4 Review (parallel + triage) | ✅ |
|
|
208
|
+
| Phase 4 Review (parallel + triage) | ✅ | ✅ (same) |
|
|
209
|
+
| Phase 4 criteria source | Phase 1 `detectedStack` | deterministic stack classifier |
|
|
205
210
|
| Phase 0 picker (account, repos, branch, ...) | ✅ | ✅ (same) |
|
|
206
211
|
| Phase 5 User Test | ✅ | ✅ (same) |
|
|
207
212
|
| Phase 7 channels (Jira / Confluence / PR / Wiki) | ✅ | ✅ (same) |
|
|
208
|
-
| Duration | ~10-15 min | ~
|
|
213
|
+
| Duration | ~10-15 min | ~7-10 min |
|
|
209
214
|
## Required: Phase Tracker Contract
|
|
210
215
|
|
|
211
216
|
**The phase tracker is mandatory** - the agent cannot skip it. Full spec: [`$HOME/.claude/multi-agent-refs/tracker-contract.md`]($HOME/.claude/multi-agent-refs/tracker-contract.md).
|
|
@@ -218,7 +223,7 @@ Two channels run in parallel at every phase boundary:
|
|
|
218
223
|
```bash
|
|
219
224
|
# Phase 0, very first shell call (every CLI):
|
|
220
225
|
bash $HOME/.claude/scripts/phase-tracker.sh init "$TASK_ID"
|
|
221
|
-
for p in "0:Init" "3:Dev" "5:Test" "6:Commit" "7:Report"; do
|
|
226
|
+
for p in "0:Init" "3:Dev" "4:Review" "5:Test" "6:Commit" "7:Report"; do
|
|
222
227
|
bash $HOME/.claude/scripts/phase-tracker.sh add "${p%%:*}" "${p#*:}"
|
|
223
228
|
done
|
|
224
229
|
bash $HOME/.claude/scripts/phase-tracker.sh update 0 in_progress
|
|
@@ -238,7 +243,7 @@ In Claude Code the agent MUST also drive the native TaskList widget so the user
|
|
|
238
243
|
|
|
239
244
|
```text
|
|
240
245
|
# Phase 0 startup - register one tile per phase (0..N), capture the taskId, persist it:
|
|
241
|
-
for each phase in 0:Init, 3:Dev, 5:Test, 6:Commit, 7:Report:
|
|
246
|
+
for each phase in 0:Init, 3:Dev, 4:Review, 5:Test, 6:Commit, 7:Report:
|
|
242
247
|
TaskCreate({ subject: "Phase <N>: <Name>", activeForm: "<doing-form>" })
|
|
243
248
|
-> returns taskId
|
|
244
249
|
bash $HOME/.claude/scripts/phase-tracker.sh meta <N> tasklist_id "<taskId>"
|
|
@@ -255,11 +260,11 @@ TaskUpdate({ taskId: <saved>, status: "completed" })
|
|
|
255
260
|
bash $HOME/.claude/scripts/phase-tracker.sh update <N> completed
|
|
256
261
|
```
|
|
257
262
|
|
|
258
|
-
`--dev` mode does NOT TaskCreate phases 1/2
|
|
263
|
+
`--dev` mode does NOT TaskCreate phases 1/2 - those are not part of the `--dev` phase set (`0:Init 3:Dev 4:Review 5:Test 6:Commit 7:Report`). Only register tiles for the active set.
|
|
259
264
|
|
|
260
265
|
#### TaskCreate ordering (strict)
|
|
261
266
|
|
|
262
|
-
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--dev` that means: Phase 0 → Phase 3 → Phase 5 → Phase 6 → Phase 7. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in `$HOME/.claude/multi-agent-refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
267
|
+
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--dev` that means: Phase 0 → Phase 3 → Phase 4 → Phase 5 → Phase 6 → Phase 7. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in `$HOME/.claude/multi-agent-refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
263
268
|
|
|
264
269
|
### Visual channel - Copilot CLI / plain shell
|
|
265
270
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Fastest mode: Dev (Opus) plus Autopilot. Init → Dev → Commit → Report with zero confirmations. Use when a change is well understood and should go from start to commit with no questions asked."
|
|
3
|
-
description-tr: "En hızlı mod: Dev (Opus) + Autopilot. Init → Dev → Commit → Report, sıfır onay."
|
|
2
|
+
description: "Fastest mode: Dev (Opus) plus Autopilot. Init → Dev → Review → Commit → Report with zero confirmations. Review still runs and auto-fixes blocking findings. Use when a change is well understood and should go from start to commit with no questions asked."
|
|
3
|
+
description-tr: "En hızlı mod: Dev (Opus) + Autopilot. Init → Dev → Review → Commit → Report, sıfır onay. Review koşar, blocking bulguları otomatik düzeltir."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# multi-agent dev autopilot - Fastest Path
|
|
@@ -21,38 +21,44 @@ Dev mode + Autopilot combined: a 4-phase pipeline with no confirmations, end-to-
|
|
|
21
21
|
```
|
|
22
22
|
Phase 0: Init → project detection, worktree, branch, identity
|
|
23
23
|
Phase 3: Dev → direct development on Opus
|
|
24
|
+
Phase 4: Review → gates + parallel review + triage, auto-fix
|
|
24
25
|
Phase 6: Commit → auto commit + push + PR (no confirmations)
|
|
25
26
|
Phase 7: Report → short terminal summary
|
|
26
27
|
```
|
|
27
28
|
|
|
28
|
-
**Skipped phases**: Analysis (1), Planning (2),
|
|
29
|
+
**Skipped phases**: Analysis (1), Planning (2), User Test (5).
|
|
29
30
|
**Skipped confirmations**: Plan Approval Gate (clarification + approval loop), test prompt, commit prompt, PR prompt.
|
|
30
31
|
|
|
31
32
|
> If you want to talk through the plan, do not use this mode - pick `/multi-agent "task"` (normal) or any mode without `autopilot`. The Dev+Autopilot contract is: "ask nothing."
|
|
32
33
|
|
|
34
|
+
**Review runs here too, and asking nothing does not mean accepting anything.** Autopilot consumes the *confirmation* prompts, not the *quality* gates: Phase 4 reviews the diff and auto-fixes accepted blocking findings without asking. The contract holds because no question is put to the user - the run only halts when it cannot converge, which is the rework-storm trigger in `$HOME/.claude/multi-agent-refs/features/autopilot-circuit-breaker.md` (`maxReworkCycles = 3`).
|
|
35
|
+
|
|
33
36
|
## Steps
|
|
34
37
|
|
|
35
38
|
1. **Parse input** - standard multi-agent input formats (Issue URL, Jira ID, free text)
|
|
36
39
|
2. **Phase 0: Init** - set `"mode": "dev", "autopilot": true` in `agent-state.json`
|
|
37
|
-
3. **Phase 3: Dev** - write code directly on `claude-opus-
|
|
38
|
-
4. **Phase
|
|
39
|
-
5. **Phase
|
|
40
|
+
3. **Phase 3: Dev** - write code directly on `claude-opus-5` and verify the build
|
|
41
|
+
4. **Phase 4: Review** - gates, parallel reviewers, triage. Accepted blocking findings are fixed automatically (back to step 3), no prompt
|
|
42
|
+
5. **Phase 6: Commit** - auto commit + push + PR
|
|
43
|
+
6. **Phase 7: Report** - terminal summary
|
|
40
44
|
|
|
41
45
|
## Safety
|
|
42
46
|
|
|
43
47
|
- Build failure → 3 retries; if it still fails → **pause** (ask the user)
|
|
48
|
+
- Review rework → 3 cycles; if blocking findings survive → **pause** (circuit breaker, no auto-commit)
|
|
44
49
|
- Kill / Purge → always asks for confirmation (destructive)
|
|
45
50
|
|
|
46
51
|
## Differences
|
|
47
52
|
|
|
48
53
|
| | Full | Dev | Autopilot | **Dev+Autopilot** |
|
|
49
54
|
|--|------|-----|-----------|-------------------|
|
|
50
|
-
| Phases | 8 |
|
|
55
|
+
| Phases | 8 | 6 | 8 | **5** |
|
|
51
56
|
| Model | Sonnet | Opus | Sonnet | **Opus** |
|
|
52
57
|
| Plan Approval Gate | ✅ (clarification + approval) | ❌ | ❌ | **❌** |
|
|
53
58
|
| Confirmations (test / commit / PR) | Yes | Yes | No | **No** |
|
|
54
|
-
| Review | Parallel + triage (CLI-aware) |
|
|
55
|
-
|
|
|
59
|
+
| Review | Parallel + triage (CLI-aware) | Parallel + triage (CLI-aware) | Parallel + triage (CLI-aware) | **Parallel + triage, auto-fix** |
|
|
60
|
+
| Blocking finding | Fix loop, then ask | Fix loop, then ask | Auto-fix, breaker at 3 | **Auto-fix, breaker at 3** |
|
|
61
|
+
| Estimated duration | ~12 min | ~7 min | ~10 min | **~5 min** |
|
|
56
62
|
## Required: Phase Tracker Contract
|
|
57
63
|
|
|
58
64
|
**The phase tracker is mandatory** - the agent cannot skip it. Full spec: [`$HOME/.claude/multi-agent-refs/tracker-contract.md`]($HOME/.claude/multi-agent-refs/tracker-contract.md).
|
|
@@ -67,7 +73,7 @@ Two channels run in parallel at every phase boundary:
|
|
|
67
73
|
```bash
|
|
68
74
|
# Phase 0, very first shell call (every CLI):
|
|
69
75
|
bash $HOME/.claude/scripts/phase-tracker.sh init "$TASK_ID"
|
|
70
|
-
for p in "0:Init" "3:Dev" "6:Commit" "7:Report"; do
|
|
76
|
+
for p in "0:Init" "3:Dev" "4:Review" "6:Commit" "7:Report"; do
|
|
71
77
|
bash $HOME/.claude/scripts/phase-tracker.sh add "${p%%:*}" "${p#*:}"
|
|
72
78
|
done
|
|
73
79
|
bash $HOME/.claude/scripts/phase-tracker.sh update 0 in_progress
|
|
@@ -87,7 +93,7 @@ In Claude Code the agent MUST also drive the native TaskList widget so the user
|
|
|
87
93
|
|
|
88
94
|
```text
|
|
89
95
|
# Phase 0 startup - register one tile per phase (0..N), capture the taskId, persist it:
|
|
90
|
-
for each phase in 0:Init, 3:Dev, 6:Commit, 7:Report:
|
|
96
|
+
for each phase in 0:Init, 3:Dev, 4:Review, 6:Commit, 7:Report:
|
|
91
97
|
TaskCreate({ subject: "Phase <N>: <Name>", activeForm: "<doing-form>" })
|
|
92
98
|
-> returns taskId
|
|
93
99
|
bash $HOME/.claude/scripts/phase-tracker.sh meta <N> tasklist_id "<taskId>"
|
|
@@ -104,11 +110,11 @@ TaskUpdate({ taskId: <saved>, status: "completed" })
|
|
|
104
110
|
bash $HOME/.claude/scripts/phase-tracker.sh update <N> completed
|
|
105
111
|
```
|
|
106
112
|
|
|
107
|
-
`--dev autopilot` mode does NOT TaskCreate phases 1/2/
|
|
113
|
+
`--dev autopilot` mode does NOT TaskCreate phases 1/2/5 - those are not part of the `--dev autopilot` phase set (`0:Init 3:Dev 4:Review 6:Commit 7:Report`). Only register tiles for the active set.
|
|
108
114
|
|
|
109
115
|
#### TaskCreate ordering (strict)
|
|
110
116
|
|
|
111
|
-
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--dev autopilot` that means: Phase 0 → Phase 3 → Phase 6 → Phase 7. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in `$HOME/.claude/multi-agent-refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
117
|
+
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--dev autopilot` that means: Phase 0 → Phase 3 → Phase 4 → Phase 6 → Phase 7. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in `$HOME/.claude/multi-agent-refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
112
118
|
|
|
113
119
|
### Visual channel - Copilot CLI / plain shell
|
|
114
120
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Fast mode + local - Init → Dev(Opus) → Commit → Report, no worktree. Use when a change should be developed on the current branch without creating a worktree."
|
|
3
|
-
description-tr: "Hızlı mod + lokal - Init → Dev(Opus) → Commit → Report, worktree yok."
|
|
2
|
+
description: "Fast mode + local - Init → Dev(Opus) → Review → Commit → Report, no worktree. Use when a change should be developed and reviewed on the current branch without creating a worktree."
|
|
3
|
+
description-tr: "Hızlı mod + lokal - Init → Dev(Opus) → Review → Commit → Report, worktree yok."
|
|
4
4
|
allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet, AskUserQuestion, WebFetch, Skill
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -14,20 +14,21 @@ Dedicated form of the `--dev` + `--local` combination. A 4-phase fast pipeline (
|
|
|
14
14
|
|
|
15
15
|
```
|
|
16
16
|
Phase 0: Init → project detection, branch check, state (NO worktree)
|
|
17
|
-
Phase 3: Dev → direct development on Opus (Analysis + Planning
|
|
17
|
+
Phase 3: Dev → direct development on Opus (Analysis + Planning skipped)
|
|
18
|
+
Phase 4: Review → deterministic gates + parallel review + triage
|
|
18
19
|
Phase 6: Commit → pre-commit checkout prompt, commit + push + PR
|
|
19
20
|
Phase 7: Report → Jira / Wiki + log + knowledge/memory
|
|
20
21
|
```
|
|
21
22
|
|
|
22
|
-
`--dev local` skips Phase 1 (Analysis), Phase 2 (Planning + Approval Gate),
|
|
23
|
+
`--dev local` skips Phase 1 (Analysis), Phase 2 (Planning + Approval Gate), and Phase 5 (User Test - local/autopilot variants skip the interactive test gate). It differs from `--dev` on two axes: no git worktree is created (development happens directly on the current branch in `$PROJECT_ROOT`), and the interactive User Test phase is skipped. **Review is not skipped** - Phase 4 runs its gates, resolves the criteria the dev phase was supposed to honour, reviews in parallel and triages, and accepted blocking findings return to Phase 3 (3-iteration cap).
|
|
23
24
|
|
|
24
|
-
> **
|
|
25
|
+
> **Already have work on the branch?** For changes developed outside the pipeline, or by hand, run [`/multi-agent:ship`](../ship/SKILL.md) on that branch: it puts the existing diff through the same review, adds a build+test success gate, opens the PR and posts the Jira technical-analysis + test-scenario comment - without re-developing.
|
|
25
26
|
|
|
26
27
|
## When to use it
|
|
27
28
|
|
|
28
|
-
- Quick bug fix or small feature -
|
|
29
|
+
- Quick bug fix or small feature - analysis and planning buy nothing here
|
|
29
30
|
- You're working on the current branch and don't want to switch worktrees
|
|
30
|
-
- A change
|
|
31
|
+
- A well-understood change - you want it reviewed, not designed
|
|
31
32
|
## Required: Phase Tracker Contract
|
|
32
33
|
|
|
33
34
|
**The phase tracker is mandatory** - the agent cannot skip it. Full spec: [`$HOME/.claude/multi-agent-refs/tracker-contract.md`]($HOME/.claude/multi-agent-refs/tracker-contract.md).
|
|
@@ -42,7 +43,7 @@ Two channels run in parallel at every phase boundary:
|
|
|
42
43
|
```bash
|
|
43
44
|
# Phase 0, very first shell call (every CLI):
|
|
44
45
|
bash $HOME/.claude/scripts/phase-tracker.sh init "$TASK_ID"
|
|
45
|
-
for p in "0:Init" "3:Dev" "6:Commit" "7:Report"; do
|
|
46
|
+
for p in "0:Init" "3:Dev" "4:Review" "6:Commit" "7:Report"; do
|
|
46
47
|
bash $HOME/.claude/scripts/phase-tracker.sh add "${p%%:*}" "${p#*:}"
|
|
47
48
|
done
|
|
48
49
|
bash $HOME/.claude/scripts/phase-tracker.sh update 0 in_progress
|
|
@@ -62,7 +63,7 @@ In Claude Code the agent MUST also drive the native TaskList widget so the user
|
|
|
62
63
|
|
|
63
64
|
```text
|
|
64
65
|
# Phase 0 startup - register one tile per phase (0..N), capture the taskId, persist it:
|
|
65
|
-
for each phase in 0:Init, 3:Dev, 6:Commit, 7:Report:
|
|
66
|
+
for each phase in 0:Init, 3:Dev, 4:Review, 6:Commit, 7:Report:
|
|
66
67
|
TaskCreate({ subject: "Phase <N>: <Name>", activeForm: "<doing-form>" })
|
|
67
68
|
-> returns taskId
|
|
68
69
|
bash $HOME/.claude/scripts/phase-tracker.sh meta <N> tasklist_id "<taskId>"
|
|
@@ -79,11 +80,11 @@ TaskUpdate({ taskId: <saved>, status: "completed" })
|
|
|
79
80
|
bash $HOME/.claude/scripts/phase-tracker.sh update <N> completed
|
|
80
81
|
```
|
|
81
82
|
|
|
82
|
-
`--dev local` mode does NOT TaskCreate phases 1/2/
|
|
83
|
+
`--dev local` mode does NOT TaskCreate phases 1/2/5 - those are not part of the `--dev local` phase set (`0:Init 3:Dev 4:Review 6:Commit 7:Report`). Only register tiles for the active set.
|
|
83
84
|
|
|
84
85
|
#### TaskCreate ordering (strict)
|
|
85
86
|
|
|
86
|
-
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--dev local` that means: Phase 0 → Phase 3 → Phase 6 → Phase 7. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in `$HOME/.claude/multi-agent-refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
87
|
+
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--dev local` that means: Phase 0 → Phase 3 → Phase 4 → Phase 6 → Phase 7. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in `$HOME/.claude/multi-agent-refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
87
88
|
|
|
88
89
|
### Visual channel - Copilot CLI / plain shell
|
|
89
90
|
|
|
@@ -98,8 +99,9 @@ Do NOT call TaskCreate on these CLIs - the tool does not exist and the call fa
|
|
|
98
99
|
|
|
99
100
|
Routes to the orchestrator with `--dev --local` flags. Apply the `$HOME/.claude/commands/multi-agent/dev/SKILL.md` pipeline in local mode:
|
|
100
101
|
- Phase 0: skip worktree creation, continue on the current branch
|
|
101
|
-
- Phase 1 (Analysis), Phase 2 (Planning + Approval Gate),
|
|
102
|
+
- Phase 1 (Analysis), Phase 2 (Planning + Approval Gate), and Phase 5 (User Test) are skipped (`--dev` + local/autopilot drop the interactive test gate)
|
|
102
103
|
- Phase 3: develop on Opus (instead of the Sonnet TDD cycle)
|
|
104
|
+
- Phase 4: review as in the full pipeline, on the local branch diff; accepted blocking findings loop back to Phase 3, capped at 3 iterations
|
|
103
105
|
- Phase 6: commit + push + PR (the local checkout prompt is natural in local mode - you're already there; no worktree removal needed, code is already in `$PROJECT_ROOT`)
|
|
104
106
|
- Phase 7: report + channels (same as `--dev`)
|
|
105
107
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Fastest + local - Dev(Opus) + autopilot, no worktree, zero interaction. Use when a change should be developed on the current branch with no worktree and no prompts."
|
|
3
|
-
description-tr: "En hızlı + lokal - Dev(Opus) + autopilot, worktree yok, sıfır etkileşim."
|
|
2
|
+
description: "Fastest + local - Dev(Opus) + Review + autopilot, no worktree, zero interaction. Review runs and auto-fixes blocking findings. Use when a change should be developed on the current branch with no worktree and no prompts."
|
|
3
|
+
description-tr: "En hızlı + lokal - Dev(Opus) + Review + autopilot, worktree yok, sıfır etkileşim. Review koşar, blocking bulguları otomatik düzeltir."
|
|
4
4
|
allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet, WebFetch, Skill
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -15,25 +15,30 @@ The triple `--dev` + `--local` + `autopilot` - the fastest form available. Zer
|
|
|
15
15
|
```
|
|
16
16
|
Phase 0: Init → project detection, branch check, state (NO worktree, NO confirmation)
|
|
17
17
|
Phase 3: Dev → direct development on Opus (automatic)
|
|
18
|
+
Phase 4: Review → gates + parallel review + triage, auto-fix
|
|
18
19
|
Phase 6: Commit → auto commit + push + PR (no local checkout prompt)
|
|
19
20
|
Phase 7: Report → Jira / Wiki + log + knowledge/memory
|
|
20
21
|
```
|
|
21
22
|
|
|
23
|
+
Phase 1 (Analysis), Phase 2 (Planning + Approval Gate) and Phase 5 (User Test) are skipped. Review is not: accepted blocking findings are fixed automatically without a prompt, and the run halts rather than committing if they survive 3 rework cycles.
|
|
24
|
+
|
|
22
25
|
## When to use it
|
|
23
26
|
|
|
24
|
-
- Routine change you trust
|
|
27
|
+
- Routine change you trust - you want it reviewed, not discussed
|
|
25
28
|
- A CI / batch environment running the pipeline automatically - no user interaction
|
|
26
|
-
- Prototype / spike - you care about speed,
|
|
29
|
+
- Prototype / spike - you care about speed, and the review that runs costs you no prompts
|
|
27
30
|
|
|
28
31
|
## When NOT to use it
|
|
29
32
|
|
|
30
|
-
- Production-bound change - at minimum use `--dev` (without autopilot)
|
|
31
|
-
- Security-sensitive code - autopilot
|
|
32
|
-
- A first big refactor - human review is required
|
|
33
|
+
- Production-bound change - at minimum use `--dev` (without autopilot), so you see the findings before the commit
|
|
34
|
+
- Security-sensitive code - autopilot decides for you which accepted findings to fix, and commits when they are gone
|
|
35
|
+
- A first big refactor - human review is required, and machine review does not substitute for it
|
|
33
36
|
|
|
34
37
|
## Delegation
|
|
35
38
|
|
|
36
|
-
Routes to the orchestrator with `--dev --local autopilot` flags. The pipeline contract matches `dev-autopilot.md` exactly, with Phase 0 Step 8 (worktree creation) skipped.
|
|
39
|
+
Routes to the orchestrator with `--dev --local autopilot` flags. The pipeline contract matches [`dev-autopilot/SKILL.md`](../dev-autopilot/SKILL.md) exactly, with Phase 0 Step 8 (worktree creation) skipped.
|
|
40
|
+
|
|
41
|
+
> **Already have work on the branch?** For a diff that exists without a pipeline run behind it, [`/multi-agent:ship`](../ship/SKILL.md) applies the same review plus a build+test gate before the PR.
|
|
37
42
|
|
|
38
43
|
## Examples
|
|
39
44
|
|
|
@@ -57,7 +62,7 @@ Two channels run in parallel at every phase boundary:
|
|
|
57
62
|
```bash
|
|
58
63
|
# Phase 0, very first shell call (every CLI):
|
|
59
64
|
bash $HOME/.claude/scripts/phase-tracker.sh init "$TASK_ID"
|
|
60
|
-
for p in "0:Init" "3:Dev" "6:Commit" "7:Report"; do
|
|
65
|
+
for p in "0:Init" "3:Dev" "4:Review" "6:Commit" "7:Report"; do
|
|
61
66
|
bash $HOME/.claude/scripts/phase-tracker.sh add "${p%%:*}" "${p#*:}"
|
|
62
67
|
done
|
|
63
68
|
bash $HOME/.claude/scripts/phase-tracker.sh update 0 in_progress
|
|
@@ -77,7 +82,7 @@ In Claude Code the agent MUST also drive the native TaskList widget so the user
|
|
|
77
82
|
|
|
78
83
|
```text
|
|
79
84
|
# Phase 0 startup - register one tile per phase (0..N), capture the taskId, persist it:
|
|
80
|
-
for each phase in 0:Init, 3:Dev, 6:Commit, 7:Report:
|
|
85
|
+
for each phase in 0:Init, 3:Dev, 4:Review, 6:Commit, 7:Report:
|
|
81
86
|
TaskCreate({ subject: "Phase <N>: <Name>", activeForm: "<doing-form>" })
|
|
82
87
|
-> returns taskId
|
|
83
88
|
bash $HOME/.claude/scripts/phase-tracker.sh meta <N> tasklist_id "<taskId>"
|
|
@@ -94,11 +99,11 @@ TaskUpdate({ taskId: <saved>, status: "completed" })
|
|
|
94
99
|
bash $HOME/.claude/scripts/phase-tracker.sh update <N> completed
|
|
95
100
|
```
|
|
96
101
|
|
|
97
|
-
`--dev local autopilot` mode does NOT TaskCreate phases 1/2/
|
|
102
|
+
`--dev local autopilot` mode does NOT TaskCreate phases 1/2/5 - those are not part of the `--dev local autopilot` phase set (`0:Init 3:Dev 4:Review 6:Commit 7:Report`). Only register tiles for the active set.
|
|
98
103
|
|
|
99
104
|
#### TaskCreate ordering (strict)
|
|
100
105
|
|
|
101
|
-
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--dev local autopilot` that means: Phase 0 → Phase 3 → Phase 6 → Phase 7. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in `$HOME/.claude/multi-agent-refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
106
|
+
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--dev local autopilot` that means: Phase 0 → Phase 3 → Phase 4 → Phase 6 → Phase 7. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in `$HOME/.claude/multi-agent-refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
102
107
|
|
|
103
108
|
### Visual channel - Copilot CLI / plain shell
|
|
104
109
|
|
|
@@ -62,7 +62,7 @@ deletes nothing until you confirm.
|
|
|
62
62
|
residue in the index (`.worktrees/{id}` recorded as a "Subproject commit"
|
|
63
63
|
entry by a pre-guard `git add -A`), and a missing `.worktrees/` line in
|
|
64
64
|
`.git/info/exclude`. Registered, healthy worktrees are NEVER touched -
|
|
65
|
-
those belong to `/multi-agent:
|
|
65
|
+
those belong to `/multi-agent:ship` / `/multi-agent:kill`.
|
|
66
66
|
|
|
67
67
|
- Output says `nothing to do` -> skip silently, no question.
|
|
68
68
|
- Otherwise surface a second `AskUserQuestion` (in `outputLanguage`):
|