@mmerterden/multi-agent-pipeline 18.0.0 → 19.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +287 -0
- package/README.md +36 -20
- package/README.tr.md +14 -16
- package/docs/adr/0002-instruction-driven-flag.md +1 -0
- package/docs/adr/0005-lazy-phase-docs.md +11 -1
- package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +1 -0
- package/docs/adr/0010-own-code-graph.md +1 -0
- package/docs/adr/0014-six-phase-consolidation.md +134 -0
- package/docs/adr/README.md +2 -1
- package/docs/architecture.md +37 -38
- package/docs/best-practices.md +1 -1
- package/docs/ecosystem.md +46 -27
- package/docs/engineering.md +1 -1
- package/docs/facts.json +61 -0
- package/docs/features.md +55 -54
- package/docs/performance.md +5 -5
- package/docs/recovery-guide.md +17 -17
- package/docs/token-budget-history.md +3 -1
- package/index.js +2 -2
- package/install/_codex-agents.mjs +1 -1
- package/install/templates/claude-hooks.json +1 -1
- package/install/templates/codex-instructions.md +1 -1
- package/install/templates/copilot-instructions.md +28 -28
- package/manifest.json +234 -216
- package/package.json +2 -2
- package/pipeline/agents/dev-critic.md +7 -7
- package/pipeline/commands/figma-to-swiftui.md +1 -1
- package/pipeline/commands/multi-agent/SKILL.md +9 -9
- package/pipeline/commands/multi-agent/analysis/SKILL.md +15 -15
- package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/autopilot/SKILL.md +7 -7
- package/pipeline/commands/multi-agent/channels/SKILL.md +15 -15
- package/pipeline/commands/multi-agent/diff-explain/SKILL.md +6 -6
- package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/graph/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/help/SKILL.md +62 -62
- package/pipeline/commands/multi-agent/language/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/local/SKILL.md +11 -11
- package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +13 -13
- package/pipeline/commands/multi-agent/log/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/manual-test/SKILL.md +9 -9
- package/pipeline/commands/multi-agent/model/SKILL.md +69 -0
- package/pipeline/commands/multi-agent/refactor/SKILL.md +3 -3
- package/pipeline/commands/multi-agent/resume/SKILL.md +4 -4
- package/pipeline/commands/multi-agent/resume-local/SKILL.md +19 -17
- package/pipeline/commands/multi-agent/review/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/review-analysis/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/route-off/SKILL.md +36 -0
- package/pipeline/commands/multi-agent/route-on/SKILL.md +74 -0
- package/pipeline/commands/multi-agent/route-status/SKILL.md +56 -0
- package/pipeline/commands/multi-agent/setup/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/status/SKILL.md +5 -5
- package/pipeline/commands/multi-agent/steer/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/sync/SKILL.md +12 -13
- package/pipeline/commands/multi-agent/test/SKILL.md +1 -1
- package/pipeline/lib/credential-inventory.sh +1 -1
- package/pipeline/lib/fetch-fortify.sh +1 -1
- package/pipeline/lib/model-dispatch.sh +140 -0
- package/pipeline/lib/model-rung.sh +142 -0
- package/pipeline/lib/outbound-gate.mjs +14 -0
- package/pipeline/lib/phase-schema.mjs +88 -0
- package/pipeline/lib/plan-todos.sh +5 -5
- package/pipeline/lib/route-state.sh +161 -0
- package/pipeline/lib/run-paths.sh +2 -2
- package/pipeline/multi-agent-refs/_account-picker.md +1 -1
- package/pipeline/multi-agent-refs/_dev-context.md +6 -6
- package/pipeline/multi-agent-refs/_input-parser.md +1 -1
- package/pipeline/multi-agent-refs/analysis/evidence.md +2 -11
- package/pipeline/multi-agent-refs/analysis/intake.md +7 -7
- package/pipeline/multi-agent-refs/analysis/locked.md +48 -22
- package/pipeline/multi-agent-refs/analysis/redesign.md +1 -1
- package/pipeline/multi-agent-refs/analysis/render.md +10 -10
- package/pipeline/multi-agent-refs/analysis/resolve.md +1 -1
- package/pipeline/multi-agent-refs/analysis/review.md +2 -2
- package/pipeline/multi-agent-refs/analysis/synthesis.md +13 -7
- package/pipeline/multi-agent-refs/analysis-template-corporate.md +9 -9
- package/pipeline/multi-agent-refs/analysis-template.md +19 -19
- package/pipeline/multi-agent-refs/android-guide.md +1 -1
- package/pipeline/multi-agent-refs/audit-guide.md +13 -13
- package/pipeline/multi-agent-refs/channels/issue-comment.md +2 -2
- package/pipeline/multi-agent-refs/channels/jira.md +3 -3
- package/pipeline/multi-agent-refs/channels/pr.md +4 -4
- package/pipeline/multi-agent-refs/channels/wiki.md +1 -1
- package/pipeline/multi-agent-refs/component-dispatch.md +8 -8
- package/pipeline/multi-agent-refs/conventions-defaults.md +2 -2
- package/pipeline/multi-agent-refs/cross-cli-contract.md +31 -6
- package/pipeline/multi-agent-refs/features/analysis-jira.md +1 -1
- package/pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md +4 -4
- package/pipeline/multi-agent-refs/features/code-graph.md +5 -5
- package/pipeline/multi-agent-refs/features/design-conformance.md +1 -1
- package/pipeline/multi-agent-refs/features/dev-critic.md +3 -3
- package/pipeline/multi-agent-refs/features/doctor.md +3 -3
- package/pipeline/multi-agent-refs/features/external-context-injection.md +3 -3
- package/pipeline/multi-agent-refs/features/maturity-followup.md +3 -3
- package/pipeline/multi-agent-refs/features/model-fallback.md +41 -5
- 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-delta.md +3 -3
- package/pipeline/multi-agent-refs/features/review-multi-repo.md +2 -2
- package/pipeline/multi-agent-refs/features/scope-check.md +4 -4
- package/pipeline/multi-agent-refs/features/skill-conformance.md +2 -2
- package/pipeline/multi-agent-refs/features/stack-skill-routing.md +1 -1
- package/pipeline/multi-agent-refs/features/url-enrichment.md +1 -1
- package/pipeline/multi-agent-refs/features/verify-by-test.md +4 -4
- package/pipeline/multi-agent-refs/features/visual-evidence.md +19 -19
- package/pipeline/multi-agent-refs/features/worktree-finalize.md +6 -6
- package/pipeline/multi-agent-refs/issue-jira-triad.md +10 -10
- package/pipeline/multi-agent-refs/knowledge.md +11 -11
- package/pipeline/multi-agent-refs/multi-repo-integration-build.md +13 -13
- package/pipeline/multi-agent-refs/payload-contracts.md +8 -8
- package/pipeline/multi-agent-refs/phases/log-format.md +10 -10
- package/pipeline/multi-agent-refs/phases/modes.md +30 -30
- package/pipeline/multi-agent-refs/phases/operations.md +8 -8
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +24 -24
- package/pipeline/multi-agent-refs/phases/phase-1-plan.md +599 -0
- package/pipeline/multi-agent-refs/phases/{phase-3-dev.md → phase-2-dev.md} +129 -49
- package/pipeline/multi-agent-refs/phases/{phase-4-review.md → phase-3-review.md} +225 -107
- package/pipeline/multi-agent-refs/phases/{phase-6-commit.md → phase-4-commit.md} +23 -23
- package/pipeline/multi-agent-refs/phases/{phase-7-report.md → phase-5-report.md} +29 -29
- package/pipeline/multi-agent-refs/phases.md +44 -48
- package/pipeline/multi-agent-refs/picker-contract.md +1 -1
- package/pipeline/multi-agent-refs/progress-contract.md +6 -6
- package/pipeline/multi-agent-refs/readiness-review.md +1 -1
- package/pipeline/multi-agent-refs/rules.md +7 -7
- package/pipeline/multi-agent-refs/swiftui-guide.md +2 -2
- package/pipeline/multi-agent-refs/tracker-contract.md +31 -32
- package/pipeline/multi-agent-refs/wiki-capture.md +14 -14
- package/pipeline/preferences-template.json +9 -1
- package/pipeline/rules/figma-pipeline.md +8 -8
- package/pipeline/rules/outside-the-pipeline.md +1 -1
- package/pipeline/schemas/agent-state.schema.json +50 -50
- package/pipeline/schemas/analysis-output.schema.json +3 -3
- package/pipeline/schemas/analysis-spec.schema.json +2 -2
- package/pipeline/schemas/autopilot-config.schema.json +1 -1
- package/pipeline/schemas/code-graph.schema.json +1 -1
- package/pipeline/schemas/criteria-manifest.schema.json +1 -1
- package/pipeline/schemas/dev-critic-output.schema.json +1 -1
- package/pipeline/schemas/diff-risk.schema.json +1 -1
- package/pipeline/schemas/figma-project-config.schema.json +1 -1
- package/pipeline/schemas/migrations/prefs-2.4.0-to-2.5.0.mjs +2 -2
- package/pipeline/schemas/migrations/prefs-2.6.0-to-2.7.0.mjs +31 -0
- package/pipeline/schemas/migrations/state-2.1.0-to-2.2.0.mjs +129 -0
- package/pipeline/schemas/phases.json +105 -0
- package/pipeline/schemas/plan-todos.schema.json +5 -5
- package/pipeline/schemas/planning-output.schema.json +1 -1
- package/pipeline/schemas/prefs.schema.json +102 -58
- package/pipeline/schemas/reviewer-output.schema.json +3 -3
- package/pipeline/schemas/route-config.schema.json +74 -0
- package/pipeline/schemas/scope-check.schema.json +1 -1
- package/pipeline/schemas/secret-patterns.json +124 -0
- package/pipeline/schemas/test-gap.schema.json +1 -1
- package/pipeline/schemas/token-budget.json +12 -18
- package/pipeline/schemas/triage-output.schema.json +6 -6
- package/pipeline/scripts/README.md +3 -3
- package/pipeline/scripts/_code-graph.mjs +2 -2
- package/pipeline/scripts/_run-paths.mjs +2 -2
- package/pipeline/scripts/_smoke-root.sh +1 -1
- package/pipeline/scripts/aggregate-metrics.mjs +1 -1
- package/pipeline/scripts/build-references.mjs +2 -2
- package/pipeline/scripts/bulk-read.sh +10 -1
- package/pipeline/scripts/capture-flush.sh +8 -8
- package/pipeline/scripts/capture-resume.sh +3 -3
- package/pipeline/scripts/classify-plan-safety.mjs +1 -1
- package/pipeline/scripts/cost-table.json +8 -1
- package/pipeline/scripts/diff-explain.mjs +1 -1
- package/pipeline/scripts/doctor.mjs +3 -3
- package/pipeline/scripts/gc-abandoned.sh +3 -3
- package/pipeline/scripts/gc-tmp.sh +1 -1
- package/pipeline/scripts/gc-worktrees.sh +1 -1
- package/pipeline/scripts/gen-facts.mjs +280 -0
- package/pipeline/scripts/gen-mode-dispatch.mjs +32 -37
- package/pipeline/scripts/gen-ref-toc.mjs +1 -1
- package/pipeline/scripts/graph-report.mjs +1 -1
- package/pipeline/scripts/jira-attach.sh +1 -1
- package/pipeline/scripts/learn-from-transcripts.mjs +1 -1
- package/pipeline/scripts/learning-curve.mjs +2 -2
- package/pipeline/scripts/log-metric.sh +17 -4
- package/pipeline/scripts/memory-save.sh +1 -1
- package/pipeline/scripts/migrate-prefs.mjs +22 -5
- package/pipeline/scripts/phase-banner.sh +20 -20
- package/pipeline/scripts/phase-tracker.sh +12 -12
- package/pipeline/scripts/plan-coverage-gate.mjs +2 -2
- package/pipeline/scripts/pre-commit-check.sh +30 -1
- package/pipeline/scripts/render-agent-log-cost.sh +1 -1
- package/pipeline/scripts/render-work-summary.sh +3 -3
- package/pipeline/scripts/review-file-filter.mjs +1 -1
- package/pipeline/scripts/run-aggregator.mjs +13 -6
- package/pipeline/scripts/run-metrics.mjs +1 -1
- package/pipeline/scripts/runs-index.mjs +11 -1
- package/pipeline/scripts/scan-skills.sh +26 -0
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +6 -6
- package/pipeline/scripts/smoke-schema-validation.sh +26 -7
- package/pipeline/scripts/token-budget-report.mjs +13 -2
- package/pipeline/scripts/triage-memory.mjs +2 -2
- package/pipeline/scripts/validate-analysis-doc.mjs +274 -43
- package/pipeline/scripts/validate-planning.mjs +1 -1
- package/pipeline/scripts/validate-reviewer.mjs +1 -1
- package/pipeline/scripts/validate-state.mjs +45 -5
- package/pipeline/scripts/validate-triage.mjs +3 -3
- package/pipeline/scripts/verify-citations.mjs +1 -1
- package/pipeline/scripts/worktree-finalize.sh +5 -5
- package/pipeline/scripts/write-state.mjs +32 -0
- package/pipeline/skills/.skill-manifest.json +38 -22
- package/pipeline/skills/.skills-index.json +49 -5
- package/pipeline/skills/shared/README.md +10 -6
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +8 -8
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +8 -8
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +81 -82
- package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +3 -3
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +14 -14
- package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +5 -5
- package/pipeline/skills/shared/core/multi-agent-graph/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +25 -23
- package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +8 -8
- package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +6 -6
- package/pipeline/skills/shared/core/multi-agent-model/SKILL.md +71 -0
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +3 -3
- package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-resume-local/SKILL.md +7 -7
- package/pipeline/skills/shared/core/multi-agent-route-off/SKILL.md +39 -0
- package/pipeline/skills/shared/core/multi-agent-route-on/SKILL.md +76 -0
- package/pipeline/skills/shared/core/multi-agent-route-status/SKILL.md +59 -0
- package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +5 -5
- package/pipeline/skills/shared/core/multi-agent-steer/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +6 -5
- package/pipeline/skills/shared/external/NOTICE-swift-ios-skills.md +1 -1
- package/pipeline/skills/shared/external/signal-community/SKILL.md +8 -1
- package/pipeline/skills/skills-index.md +8 -4
- package/pipeline/multi-agent-refs/phases/phase-1-analysis.md +0 -263
- package/pipeline/multi-agent-refs/phases/phase-2-planning.md +0 -344
- package/pipeline/multi-agent-refs/phases/phase-5-test.md +0 -182
|
@@ -7,7 +7,7 @@ user-invocable: true
|
|
|
7
7
|
|
|
8
8
|
# multi-agent local - Full Pipeline, Local Branch
|
|
9
9
|
|
|
10
|
-
Runs the full
|
|
10
|
+
Runs the full 6-phase pipeline (normal mode - including the Plan Approval Gate + parallel review + triage) on the current branch **without creating a worktree**. The dedicated equivalent of the `multi-agent "task" --local` flag form.
|
|
11
11
|
|
|
12
12
|
## When to use it
|
|
13
13
|
|
|
@@ -22,7 +22,7 @@ Runs the full 8-phase pipeline (normal mode - including the Plan Approval Gate
|
|
|
22
22
|
|
|
23
23
|
## Pipeline
|
|
24
24
|
|
|
25
|
-
The same
|
|
25
|
+
The same 6 phases as the normal pipeline: Init → Analysis → Planning → Dev → Review → Test → Commit → Report. Only Phase 0 Step 8 (workspace creation) continues on the current branch instead of a worktree; the `state.projects[*].worktreePath` field stays `null`.
|
|
26
26
|
|
|
27
27
|
## Delegation
|
|
28
28
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent-local-autopilot
|
|
3
3
|
language: en
|
|
4
|
-
description: "Full pipeline + local + autopilot - no worktree, no confirmations, all
|
|
4
|
+
description: "Full pipeline + local + autopilot - no worktree, no confirmations, all 6 phases run end-to-end on the current branch. Use when the full pipeline should run on the current branch with no worktree and no prompts."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
argument-hint: '"task" - issue URL, Jira ID, free-text, or #id (for resume)'
|
|
7
7
|
---
|
|
@@ -10,16 +10,16 @@ argument-hint: '"task" - issue URL, Jira ID, free-text, or #id (for resume)'
|
|
|
10
10
|
|
|
11
11
|
**Input**: $ARGUMENTS
|
|
12
12
|
|
|
13
|
-
Runs the full
|
|
13
|
+
Runs the full 6-phase pipeline **without creating a worktree** + **skipping all confirmations**. The `autopilot + local` combination. Byte-identical behavior to `/multi-agent:local-autopilot` (Claude Code colon-form).
|
|
14
14
|
|
|
15
15
|
## Matrix (which one should I use?)
|
|
16
16
|
|
|
17
17
|
| Command | Pipeline | Worktree | Confirmation |
|
|
18
18
|
|---|---|---|---|
|
|
19
|
-
| `multi-agent "task"` | Full
|
|
20
|
-
| `multi-agent-autopilot "task"` | Full
|
|
21
|
-
| `multi-agent-local "task"` | Full
|
|
22
|
-
| **`multi-agent-local-autopilot "task"`** | **Full
|
|
19
|
+
| `multi-agent "task"` | Full 6 phases | ✅ | ✅ (interactive) |
|
|
20
|
+
| `multi-agent-autopilot "task"` | Full 6 phases | ✅ | ❌ |
|
|
21
|
+
| `multi-agent-local "task"` | Full 6 phases | ❌ | ✅ |
|
|
22
|
+
| **`multi-agent-local-autopilot "task"`** | **Full 6 phases** | **❌** | **❌** |
|
|
23
23
|
|
|
24
24
|
Depth is a separate axis, asked at Phase 0 Step 7.5 rather than encoded in the command name: Full runs every phase above, Short runs Dev → Review → Test → Commit → Report. The two autopilot rows never ask and always run Full.
|
|
25
25
|
|
|
@@ -27,7 +27,7 @@ Depth is a separate axis, asked at Phase 0 Step 7.5 rather than encoded in the c
|
|
|
27
27
|
|
|
28
28
|
- The Phase 0 Step 6 worktree step is skipped (local contract)
|
|
29
29
|
- The Phase 2 Plan Approval Gate is skipped (autopilot contract) - `state.autopilot === true`
|
|
30
|
-
- The Phase
|
|
30
|
+
- The Phase 3 test prompt is skipped, Phase 4 commit/PR does not wait for confirmation
|
|
31
31
|
- **v7.0.0+**: The Phase 2 safety classifier (`classify-plan-safety.mjs`) always runs; if the score is ≥ 50 it asks for a single manual confirmation even in autopilot (`prefs.global.autopilotSafetyGate`, default on)
|
|
32
32
|
|
|
33
33
|
## What is NEVER skipped
|
|
@@ -48,7 +48,7 @@ multi-agent-local-autopilot "#3"
|
|
|
48
48
|
|
|
49
49
|
## Delegation
|
|
50
50
|
|
|
51
|
-
The orchestrator skill (`multi-agent/SKILL.md`) takes the `--local` + `"autopilot": true` state flags together. Contract: `refs/phases/phase-0-init.md` Step 6 (local branch) + `refs/phases/phase-
|
|
51
|
+
The orchestrator skill (`multi-agent/SKILL.md`) takes the `--local` + `"autopilot": true` state flags together. Contract: `refs/phases/phase-0-init.md` Step 6 (local branch) + `refs/phases/phase-1-plan.md` Step 5 (gate skip) + Step 5c (safety classifier, v7.0.0+).
|
|
52
52
|
|
|
53
53
|
## Required: outward-facing payload contracts
|
|
54
54
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent-manual-test
|
|
3
3
|
language: en
|
|
4
|
-
description: "Switch to the active task's branch and prepare it for manual testing in Xcode. Phase
|
|
4
|
+
description: "Switch to the active task's branch and prepare it for manual testing in Xcode. Phase 3 user-test step, standalone (the UI Bug Hunter lives at multi-agent-test). Use when a finished change needs trying by hand on a device or simulator."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
argument-hint: "[#id] - optional: task ID. Defaults to the latest task if omitted"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
# multi-agent manual-test - Phase
|
|
9
|
+
# multi-agent manual-test - Phase 3 Manual Test Mode
|
|
10
10
|
|
|
11
11
|
**Input**: $ARGUMENTS
|
|
12
12
|
|
|
@@ -16,8 +16,8 @@ Lets you switch to the task branch for manual testing in Xcode before the PR is
|
|
|
16
16
|
|
|
17
17
|
1. **Find the task** - parse `#N` from the argument or find the most recent task
|
|
18
18
|
|
|
19
|
-
2. **Check the state** - the task must have completed Phase
|
|
20
|
-
- Phase <
|
|
19
|
+
2. **Check the state** - the task must have completed Phase 2 (Dev) or later
|
|
20
|
+
- Phase < 2 → "No code has been written yet, run `resume #N` first"
|
|
21
21
|
|
|
22
22
|
3. **Remove the worktree and switch to the branch**:
|
|
23
23
|
```bash
|
|
@@ -36,7 +36,7 @@ Lets you switch to the task branch for manual testing in Xcode before the PR is
|
|
|
36
36
|
• Manual test in the Simulator
|
|
37
37
|
|
|
38
38
|
Result:
|
|
39
|
-
✅ "ok" → proceeds to Phase
|
|
39
|
+
✅ "ok" → proceeds to Phase 4 (commit)
|
|
40
40
|
❌ "fix: ..." → the worktree is recreated and the fix is applied
|
|
41
41
|
```
|
|
42
42
|
|
|
@@ -52,5 +52,5 @@ Lets you switch to the task branch for manual testing in Xcode before the PR is
|
|
|
52
52
|
node $HOME/.claude/scripts/evidence-gate.mjs --claim manual --status passed \
|
|
53
53
|
--evidence "$WORKTREE/.pipeline/manual-test.json"
|
|
54
54
|
```
|
|
55
|
-
Exit 1 means the "ok" is not accepted: name the criterion that lacks evidence and wait for the next reply. Exit 0 → recreate the worktree, proceed to Phase
|
|
55
|
+
Exit 1 means the "ok" is not accepted: name the criterion that lacks evidence and wait for the next reply. Exit 0 → recreate the worktree, proceed to Phase 4. Full contract: `$HOME/.claude/multi-agent-refs/phases/phase-3-review.md` step 5.
|
|
56
56
|
- **Fix needed** → recreate the worktree, apply the fix
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: multi-agent-model
|
|
3
|
+
language: en
|
|
4
|
+
description: "Turn the top model rung on or off and keep the cost ledger's pricing in step with it. Use when asked to enable or disable Fable, or which model the pipeline dispatches."
|
|
5
|
+
user-invocable: true
|
|
6
|
+
argument-hint: "[on | off] - no argument reports the current state"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# multi-agent model - which rung the pipeline dispatches on
|
|
10
|
+
|
|
11
|
+
The ladder is `fable -> opus -> sonnet -> haiku` and it does not change here.
|
|
12
|
+
What changes is whether the top rung is in play at all, which is
|
|
13
|
+
`prefs.global.modelFallback.fableEnabled` and ships `false`.
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
bash "$HOME/.claude/lib/model-rung.sh" ${ARGUMENTS}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Why this command exists
|
|
20
|
+
|
|
21
|
+
The switch existed before the command did. It could only be flipped by editing
|
|
22
|
+
preferences by hand, and `model-fallback.md` said so in a line most people never
|
|
23
|
+
reached. That is a knob with no handle.
|
|
24
|
+
|
|
25
|
+
It also never travelled alone. `prefs.global.costBudget.pricingModel` defaults to
|
|
26
|
+
`fable` so the estimate stays an upper bound; with the rung off, that default
|
|
27
|
+
prices every call above what it can cost, trips the budget ceiling early, and
|
|
28
|
+
triggers a downgrade nobody needed. The documentation asked the user to set both.
|
|
29
|
+
This command sets both, together:
|
|
30
|
+
|
|
31
|
+
| `fableEnabled` | `costBudget.pricingModel` |
|
|
32
|
+
|---|---|
|
|
33
|
+
| `true` | `fable` |
|
|
34
|
+
| `false` | `opus` |
|
|
35
|
+
|
|
36
|
+
Flipping one without the other is the defect this closes, so the pair moves as
|
|
37
|
+
one write or not at all.
|
|
38
|
+
|
|
39
|
+
## What it reports with no argument
|
|
40
|
+
|
|
41
|
+
The current rung, the pricing model, and **what the switch means on this host** -
|
|
42
|
+
because it does not mean the same thing on all three:
|
|
43
|
+
|
|
44
|
+
| Host | What `off` does | Why |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
| Claude Code | every `preferredModel: fable` persona (architects, reviewer 1, triage) starts on `opus` | the only host where the rung is Fable 5 |
|
|
47
|
+
| Copilot CLI | nothing | Fable 5 is not offered there; its personas never sat on this rung |
|
|
48
|
+
| Codex CLI | nothing, deliberately | the `fable` rung there means `gpt-5.6 @ xhigh`, a different model on a different account - switching it from a knob named after an Anthropic model would surprise a Codex user |
|
|
49
|
+
|
|
50
|
+
So on two of the three hosts this command is a **status report**, not a switch,
|
|
51
|
+
and it says which one it is rather than claiming a change it did not make.
|
|
52
|
+
|
|
53
|
+
## The consequence it prints when turning the rung off
|
|
54
|
+
|
|
55
|
+
Phase 3's reviewer panel collapses from three models to two. Reviewer 1 lands on
|
|
56
|
+
`opus`, which Reviewer 2 already holds, and dispatching one model twice is not
|
|
57
|
+
cross-model review. `consensus.reviewerCount` records `2`, and the `unverified`
|
|
58
|
+
verdict rule matters more rather than less - two Anthropic models agreeing on a
|
|
59
|
+
judgment call was already weak evidence and there is now one fewer of them.
|
|
60
|
+
Triage also runs on `opus`, making it the same model as Reviewer 1; the Phase 3
|
|
61
|
+
Step 3 anonymisation requirement covers that case and is not optional here.
|
|
62
|
+
|
|
63
|
+
This is printed at the moment of the change, not left in a doc.
|
|
64
|
+
|
|
65
|
+
## Related
|
|
66
|
+
|
|
67
|
+
- `/multi-agent:route-on` - policy-driven rung selection per persona or phase, a
|
|
68
|
+
separate feature that also ships off. This command decides whether a rung
|
|
69
|
+
EXISTS; that one decides which rung a given call picks.
|
|
70
|
+
- Full fallback contract, including the three failure triggers this switch is
|
|
71
|
+
deliberately not one of: `$HOME/.claude/multi-agent-refs/features/model-fallback.md`
|
|
@@ -112,7 +112,7 @@ Procedure:
|
|
|
112
112
|
|
|
113
113
|
## Step 0c: DEV-TOOLKIT - current MCP practice for the companion toolkit
|
|
114
114
|
|
|
115
|
-
The pipeline's hands on devices and browsers are MCP tools served by a companion repo (`multi-agent-toolkit-mcp`): Phase
|
|
115
|
+
The pipeline's hands on devices and browsers are MCP tools served by a companion repo (`multi-agent-toolkit-mcp`): Phase 3 test, `manual-test`, `design-check` and `apple-archive-compliance` all call them, and several pipeline skills declare a minimum toolkit version (see `cross-cli-contract.md`). That repo therefore has to track the MCP field, not just its own README. This step researches what current practice is and audits the toolkit against it.
|
|
116
116
|
|
|
117
117
|
Full procedure - resolution (configuration first, never a hardcoded path; skip when nothing resolves or `enabled` is false), the 5 research axes, the audit command block, and the band-E output table + rules - lives in `$HOME/.claude/multi-agent-refs/refactor/toolkit-research.md`. Read it before running this step.
|
|
118
118
|
|
|
@@ -147,8 +147,8 @@ Output (plan band F):
|
|
|
147
147
|
```
|
|
148
148
|
| # | Error tag | Occurrences | Users | Usual phase | Versions | Root cause (file) | Fix | In plan? |
|
|
149
149
|
|---|-----------|-------------|-------|-------------|----------|-------------------|-----|----------|
|
|
150
|
-
| 1 | 4:reviewer-json-invalid | 12 | 3 | 4 | 14.x-15.x | reviewer prompt lets prose leak | tighten schema instruction in phase-
|
|
151
|
-
| 2 | phase-3-failed | 5 | 2 | 3 | 15.0.x | build step misses a stack toolchain | add preflight in phase-
|
|
150
|
+
| 1 | 4:reviewer-json-invalid | 12 | 3 | 4 | 14.x-15.x | reviewer prompt lets prose leak | tighten schema instruction in phase-3-review.md | Yes (P0) |
|
|
151
|
+
| 2 | phase-3-failed | 5 | 2 | 3 | 15.0.x | build step misses a stack toolchain | add preflight in phase-2-dev.md | Yes (P1) |
|
|
152
152
|
```
|
|
153
153
|
|
|
154
154
|
Rules for this band:
|
|
@@ -23,7 +23,7 @@ Resume a paused or failed task from the last successful phase.
|
|
|
23
23
|
|
|
24
24
|
3. **Load context** - Read the findings of previous phases from `agent-log.md`:
|
|
25
25
|
- Phase 1 analysis → use in Phase 2+
|
|
26
|
-
- Phase
|
|
26
|
+
- Phase 1 plan → use in Phase 2+
|
|
27
27
|
- Phase 3 code → already present in the worktree
|
|
28
28
|
|
|
29
29
|
4. **Continue the pipeline** - Start from where it left off (same pipeline as the main multi-agent command)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent-resume-local
|
|
3
3
|
language: en
|
|
4
|
-
description: "Continue already-done LOCAL work through the pipeline tail: Review
|
|
4
|
+
description: "Continue already-done LOCAL work through the pipeline tail: Review (with its build gate) → Commit/PR → Report (technical analysis + Jira test-scenario comment). No dev phase. Use when local work is already done and only review, build, commit and reporting remain."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -13,13 +13,13 @@ You already wrote (and maybe hand-tested) the change on the current branch, or c
|
|
|
13
13
|
|
|
14
14
|
```
|
|
15
15
|
Phase 0: Init → project/branch detect, resolve base + diff (work already done), Jira id, state (NO worktree)
|
|
16
|
-
Phase
|
|
17
|
-
|
|
18
|
-
Phase
|
|
19
|
-
Phase
|
|
16
|
+
Phase 3: Review → the Verify gate first (stack-aware build + existing tests; SUCCESS required), then
|
|
17
|
+
parallel review (Fable + Opus + Sonnet) + Fable triage
|
|
18
|
+
Phase 4: Commit → commit remaining changes + push + open PR if none exists
|
|
19
|
+
Phase 5: Report → technical analysis + Jira comment with test scenarios (channels: Jira / PR / Confluence / Wiki)
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
Phases 1-
|
|
22
|
+
Phases 1-2 (Plan / Dev) are skipped by design - the branch's local diff IS the Phase 2 output. The build that Dev's exit gate would have run happens inside Review instead, because there is no Dev run to inherit a log from.
|
|
23
23
|
|
|
24
24
|
## When to use it
|
|
25
25
|
|
|
@@ -35,7 +35,7 @@ Phases 1-3 (Analysis / Planning / Dev) are skipped by design - the branch's lo
|
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
37
|
multi-agent resume-local # current branch vs base; Jira id from branch name
|
|
38
|
-
multi-agent resume-local PROJ-12345 # explicit Jira id for the Phase
|
|
38
|
+
multi-agent resume-local PROJ-12345 # explicit Jira id for the Phase 5 comment
|
|
39
39
|
multi-agent resume-local --base develop # override base branch for the diff
|
|
40
40
|
multi-agent resume-local autopilot # no gate prompts: auto-fix, auto-PR, auto-comment
|
|
41
41
|
```
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: multi-agent-route-off
|
|
3
|
+
language: en
|
|
4
|
+
description: "Disable model routing and keep its rules, so turning it back on does not re-ask for the same configuration. Use when asked to turn model routing off."
|
|
5
|
+
user-invocable: true
|
|
6
|
+
argument-hint: "(no arguments)"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# multi-agent route-off - disarm routing, keep the configuration
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
bash "$HOME/.claude/lib/route-state.sh" off
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Sets `prefs.global.modelRouting.enabled` to `false`. Dispatch returns to the
|
|
16
|
+
plain ladder immediately: every persona takes its `preferredModel`, and the
|
|
17
|
+
`modelFallback` rules are the only thing that can move it.
|
|
18
|
+
|
|
19
|
+
## The rules are not deleted
|
|
20
|
+
|
|
21
|
+
`strategy`, `scope`, `rules[]` and `budgetCeilingUsd` all survive. `route-on`
|
|
22
|
+
brings back exactly what was configured, without asking again.
|
|
23
|
+
|
|
24
|
+
This is the same contract `autopilot-off` follows with its repo selection, for
|
|
25
|
+
the same reason: a command named after a toggle that quietly discards
|
|
26
|
+
configuration is a destructive action in disguise. To actually remove the rules,
|
|
27
|
+
replace them with an empty array:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
echo '[]' > /tmp/none.json
|
|
31
|
+
bash "$HOME/.claude/lib/route-state.sh" set-rules /tmp/none.json
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## What stays behind
|
|
35
|
+
|
|
36
|
+
Routing decisions already written to the cost ledger stay there. They are a
|
|
37
|
+
record of what happened on past runs, and deleting them would make a run's cost
|
|
38
|
+
unexplainable after the fact - which is the one thing the ledger exists to
|
|
39
|
+
prevent.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: multi-agent-route-on
|
|
3
|
+
language: en
|
|
4
|
+
description: "Enable policy-driven model routing: pick a strategy, a scope, and the rules that say which rung a call lands on. Use when asked to turn model routing on."
|
|
5
|
+
user-invocable: true
|
|
6
|
+
argument-hint: "[--strategy=manual|task-fit|cost-ceiling] [--scope=subagent,bulk-read,research]"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# multi-agent route-on - arm model routing
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
bash "$HOME/.claude/lib/route-state.sh" on ${ARGUMENTS}
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Routing ships **off**. This is the command that turns it on, and it writes to
|
|
16
|
+
`prefs.global.modelRouting`, validated against the repo's `schemas/route-config.schema.json`.
|
|
17
|
+
|
|
18
|
+
## What a rule is
|
|
19
|
+
|
|
20
|
+
```json
|
|
21
|
+
{ "when": { "persona": "code-reviewer" }, "prefer": ["opus", "sonnet"] }
|
|
22
|
+
{ "when": { "phase": 2 }, "prefer": ["sonnet", "haiku"] }
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Ordered, first match wins. `when` matches on `persona`, `phase` (0..5) or
|
|
26
|
+
`taskKind`; `prefer` lists rungs in descending preference.
|
|
27
|
+
|
|
28
|
+
**Rung names are the contract; model ids are not.** `opus` is a rung here and a
|
|
29
|
+
model id in `cost-table.json`, and the second can change without anyone editing
|
|
30
|
+
a rule. Writing `claude-opus-5` into a rule pins a decision to a string that will
|
|
31
|
+
go stale.
|
|
32
|
+
|
|
33
|
+
Set rules with:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
bash "$HOME/.claude/lib/route-state.sh" set-rules path/to/rules.json
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Strategies
|
|
40
|
+
|
|
41
|
+
| Strategy | What it does |
|
|
42
|
+
|---|---|
|
|
43
|
+
| `manual` | only the explicit rules apply, nothing is inferred. The default, because a router that guesses is a router nobody can predict |
|
|
44
|
+
| `task-fit` | a rule may match on `taskKind`, and the cheapest rung clearing it is chosen |
|
|
45
|
+
| `cost-ceiling` | rungs downgrade as the run approaches `budgetCeilingUsd` |
|
|
46
|
+
|
|
47
|
+
## Scope, and the value that is not in it
|
|
48
|
+
|
|
49
|
+
`scope` names the call sites routing may act on: `subagent`, `bulk-read`,
|
|
50
|
+
`research`. Every one of them is a call **this pipeline makes itself**.
|
|
51
|
+
|
|
52
|
+
There is no `host-session` value, and that absence is enforced by that schema
|
|
53
|
+
rather than written as advice. Routing a host session means rewriting the CLI's
|
|
54
|
+
base URL to point at a local gateway - which sends the user's *entire* session
|
|
55
|
+
through a third layer, including work that has nothing to do with this pipeline,
|
|
56
|
+
breaks the subscription's auth model, and silently changes which model answered.
|
|
57
|
+
Passing `--scope=host-session` is refused with that reason, not ignored.
|
|
58
|
+
|
|
59
|
+
## The limit this command prints every time
|
|
60
|
+
|
|
61
|
+
On Claude Code a subagent cannot be dispatched to a non-Anthropic model: subagent
|
|
62
|
+
dispatch belongs to the host, not to us. So Phase 1, 2 and 3 personas stay inside
|
|
63
|
+
the Anthropic ladder no matter what the rules say, and external providers apply
|
|
64
|
+
only at `bulk-read` and `research`, where the pipeline makes the HTTP call.
|
|
65
|
+
|
|
66
|
+
This is printed by `route-status` on every invocation instead of living in a doc,
|
|
67
|
+
because the question it answers - "routing is on, why is the reviewer still on
|
|
68
|
+
Opus" - otherwise arrives days later as a bug report.
|
|
69
|
+
|
|
70
|
+
## Related
|
|
71
|
+
|
|
72
|
+
- `/multi-agent:route-off` - disables routing and **keeps** the rules
|
|
73
|
+
- `/multi-agent:route-status` - what is active, and what it costs
|
|
74
|
+
- `/multi-agent:model` - whether the top rung exists at all. That is a different
|
|
75
|
+
question: this command decides which rung a call picks, that one decides
|
|
76
|
+
whether the top one is in play
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: multi-agent-route-status
|
|
3
|
+
language: en
|
|
4
|
+
description: "Report model routing: whether it is armed, which rule applies where, which rung the last dispatches took, and what this run has cost. Use when asked which model is being used or why."
|
|
5
|
+
user-invocable: true
|
|
6
|
+
argument-hint: "(no arguments)"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# multi-agent route-status - what is actually routing
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
bash "$HOME/.claude/lib/route-state.sh" status
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Reports the stored policy, then the part that matters more: **what it can and
|
|
16
|
+
cannot reach.**
|
|
17
|
+
|
|
18
|
+
## Three states, told apart
|
|
19
|
+
|
|
20
|
+
| Output | Meaning |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `routing: false`, rules present | configured and disarmed. `route-on` restores it as-is; nothing is lost |
|
|
23
|
+
| `routing: true`, `rules: 0` | armed with nothing to match. Not an error - a configuration state, and the most common "I turned it on and nothing changed" |
|
|
24
|
+
| `routing: true` with rules listed | live. Each rule is printed as `when <key>=<value> -> rung > rung` |
|
|
25
|
+
|
|
26
|
+
A disabled router with rules is deliberately not reported as "off" alone: that
|
|
27
|
+
reads as "unconfigured" and sends the user through `route-on`'s questions a
|
|
28
|
+
second time.
|
|
29
|
+
|
|
30
|
+
## The limit, printed every time
|
|
31
|
+
|
|
32
|
+
On Claude Code a subagent cannot be sent to a non-Anthropic model. Subagent
|
|
33
|
+
dispatch belongs to the host; the pipeline asks for a persona and the host
|
|
34
|
+
decides what answers. So Phase 1, 2 and 3 personas stay inside the Anthropic
|
|
35
|
+
ladder whatever the rules say, and an external provider is only reachable where
|
|
36
|
+
the pipeline makes the HTTP call itself - `bulk-read.sh` and `research_ask`.
|
|
37
|
+
|
|
38
|
+
This paragraph is output, not documentation, because the alternative is the
|
|
39
|
+
question arriving later as "routing is on but the reviewer is still on Opus, is
|
|
40
|
+
it broken". It is not broken; it is the seam.
|
|
41
|
+
|
|
42
|
+
## Where decisions are recorded
|
|
43
|
+
|
|
44
|
+
With `recordDecisions: true` (the default) every routing decision is written to
|
|
45
|
+
the cost ledger: which rule matched, which rung it chose, and why. That is what
|
|
46
|
+
makes a run's cost explainable after it finished - a router whose choices are not
|
|
47
|
+
recorded cannot be audited, and the cost question always arrives after the run,
|
|
48
|
+
never during it.
|
|
49
|
+
|
|
50
|
+
Per-run cost and the model breakdown come from the same ledger:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
node "$HOME/.claude/scripts/token-budget-report.mjs" --json
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Related
|
|
57
|
+
|
|
58
|
+
- `/multi-agent:route-on` / `/multi-agent:route-off` - arm and disarm
|
|
59
|
+
- `/multi-agent:model` - whether the top rung exists at all
|
|
@@ -223,7 +223,7 @@ Re-run scan from Step 1. Show final status:
|
|
|
223
223
|
All tokens present. Pipeline ready to use.
|
|
224
224
|
|
|
225
225
|
Optional per-project features (configured on first use, nothing to do now):
|
|
226
|
-
• Phase
|
|
226
|
+
• Phase 5 Report Step 2 Wiki - auto-generates component wiki pages + Figma
|
|
227
227
|
screenshots. Activates when (a) task is a component AND (b) a Figma token
|
|
228
228
|
is in Keychain. Four adapters supported: submodule / in-repo / github-wiki
|
|
229
229
|
/ separate-repo. First run asks: use auto-detected path, use a custom
|
|
@@ -21,7 +21,7 @@ Show every active and completed task as a table.
|
|
|
21
21
|
|
|
22
22
|
`runs-index.mjs` resolves through `lib/run-paths.sh` / `scripts/_run-paths.mjs`,
|
|
23
23
|
so it sees both directory layouts (`<project>/<id>/` and the flat `<id>/`),
|
|
24
|
-
the salvaged `artifacts/` copy Phase
|
|
24
|
+
the salvaged `artifacts/` copy Phase 4 leaves behind, and every spelling of a
|
|
25
25
|
task id - and it counts a run that exists in both layouts once. Do NOT
|
|
26
26
|
re-scan the tree by hand: the earlier instruction here listed three
|
|
27
27
|
hard-coded `.worktrees/` paths and a single `find` depth, and on a real
|
|
@@ -32,14 +32,14 @@ Show every active and completed task as a table.
|
|
|
32
32
|
2. **Fields per run** (already in the output): `taskId`, `project`, `branch`,
|
|
33
33
|
`currentPhase`, `status`, `startedAt`, `worktreePath`, `prUrl`, `autopilot`,
|
|
34
34
|
`phases[]`, `tokens`, `estUsd`, `group`, plus `duplicateOf` when the run also
|
|
35
|
-
exists in the other layout and `salvaged` when its state is the Phase
|
|
35
|
+
exists in the other layout and `salvaged` when its state is the Phase 4 copy.
|
|
36
36
|
|
|
37
37
|
3. **Groups are computed, not judged.** Report the `group` the producer
|
|
38
38
|
returns rather than re-deriving it.
|
|
39
39
|
|
|
40
40
|
| Group | Test | Action offered |
|
|
41
41
|
|---|---|---|
|
|
42
|
-
| `waiting` - Waiting on you | `status == "awaiting_input"`, or a `pr.url`, or phase >=
|
|
42
|
+
| `waiting` - Waiting on you | `status == "awaiting_input"`, or a `pr.url`, or phase >= 4 | `resume #N` - the work landed, it needs your answer |
|
|
43
43
|
| `stopped` - Stopped mid-development | anything else past phase 0 | `resume #N` or `kill #N` |
|
|
44
44
|
| `question` - Left at a question | phase 0 | `garbage-collect --abandoned` - nothing was built |
|
|
45
45
|
| `unknown` - Status not recorded | no `status` field | say so; offer nothing |
|
|
@@ -54,8 +54,8 @@ Show every active and completed task as a table.
|
|
|
54
54
|
|
|
55
55
|
| ID | Jira/Task | Branch | Phase | Status | Duration |
|
|
56
56
|
|----|-----------|--------|-------|--------|----------|
|
|
57
|
-
| #1 | PROJ-133139 | feature/PROJ-133139-... |
|
|
58
|
-
| #3 | PROJ-133408 | feature/PROJ-133408-... |
|
|
57
|
+
| #1 | PROJ-133139 | feature/PROJ-133139-... | 5/5 DONE | ✅ Complete | 12m |
|
|
58
|
+
| #3 | PROJ-133408 | feature/PROJ-133408-... | 5/5 DONE | ✅ Complete | 8m |
|
|
59
59
|
|
|
60
60
|
💡 log #1 | resume #N | kill #N
|
|
61
61
|
```
|
|
@@ -43,7 +43,7 @@ is being replaced.
|
|
|
43
43
|
| `paused` / `failed` | Say the task is not running, and that `/multi-agent:resume #N` will re-enter with the instruction applied at that phase's entry. Queue it. |
|
|
44
44
|
| `complete` | Refuse. Nothing will read it. Point at `/multi-agent` for a follow-up run. |
|
|
45
45
|
|
|
46
|
-
`currentPhase` is 7 and status is `in_progress` → warn that Phase
|
|
46
|
+
`currentPhase` is 7 and status is `in_progress` → warn that Phase 5 is the
|
|
47
47
|
last one, so an instruction queued now may never be consumed.
|
|
48
48
|
|
|
49
49
|
3. **Read the instruction** - from the argument, or ask for it when the
|
|
@@ -54,7 +54,7 @@ is being replaced.
|
|
|
54
54
|
4. **Show what will be queued, and ask**:
|
|
55
55
|
|
|
56
56
|
```
|
|
57
|
-
Steer #3 ({JIRA-KEY}-12345, Phase
|
|
57
|
+
Steer #3 ({JIRA-KEY}-12345, Phase 2 Dev, in_progress)
|
|
58
58
|
|
|
59
59
|
"the field is called web, not frontend"
|
|
60
60
|
|
|
@@ -32,8 +32,8 @@ Run all steps automatically:
|
|
|
32
32
|
```
|
|
33
33
|
Step 0: DOCTOR node $HOME/.claude/scripts/doctor.mjs - exit 2 or 4 STOPS the sync
|
|
34
34
|
Step 1: DETECT Compare timestamps, find stale targets
|
|
35
|
-
Step 2: COPILOT Claude Code -> Copilot CLI (instructions +
|
|
36
|
-
Step 2b: CODEX Claude Code -> Codex CLI (1 router skill +
|
|
35
|
+
Step 2: COPILOT Claude Code -> Copilot CLI (instructions + 60 sub-command skills)
|
|
36
|
+
Step 2b: CODEX Claude Code -> Codex CLI (1 router skill + 60 specs as refs + 8 agent TOML)
|
|
37
37
|
Step 3: REPO Claude Code -> pipeline repo (genericized, personal data scrub)
|
|
38
38
|
Step 3d: DEV-TOOLKIT Companion MCP server -> detect movement, ship gates, commit + publish
|
|
39
39
|
Step 4: WEBSITE Version + phase/model counts -> {website-host} (i18n + projects.ts)
|
|
@@ -228,16 +228,17 @@ When invoked with the `release` argument:
|
|
|
228
228
|
|-------------|-------------|
|
|
229
229
|
| `~/.claude/commands/multi-agent/{cmd}/SKILL.md` | `~/.copilot/skills/multi-agent-{cmd}/SKILL.md` |
|
|
230
230
|
|
|
231
|
-
**
|
|
231
|
+
**60 commands are synced** (canonical inventory - must match `cross-cli-contract.md` section 1; drift = contract violation):
|
|
232
232
|
|
|
233
233
|
```
|
|
234
234
|
analysis, analysis-jira, analysis-resolve, autopilot, autopilot-off,
|
|
235
235
|
autopilot-on, autopilot-status, build-optimize, channels, complaint-analysis,
|
|
236
236
|
create-jira, design-check, diff-explain, doctor, feedback, forget,
|
|
237
237
|
garbage-collect, graph, help, ios-coding-standard, issue, jira, kill,
|
|
238
|
-
language, local, local-autopilot, log, manual-test, prune-logs,
|
|
238
|
+
language, local, local-autopilot, log, manual-test, model, prune-logs,
|
|
239
239
|
prune-prompts, purge, refactor, resume, resume-local, review,
|
|
240
|
-
review-analysis, review-issue, review-jira,
|
|
240
|
+
review-analysis, review-issue, review-jira, route-off, route-on,
|
|
241
|
+
route-status, routines, save, scan, search,
|
|
241
242
|
setup, stack, status, steer, store-ready, sync, test, test-accessibility,
|
|
242
243
|
test-dark-mode, test-dynamic-type, test-screenshots, testflight-validation,
|
|
243
244
|
uninstall, update
|
|
@@ -38,4 +38,4 @@ alarmkit, app-clips, app-intents, app-store-optimization, app-store-review, appl
|
|
|
38
38
|
|
|
39
39
|
avkit, core-data, cryptokit, ios-simulator, pdfkit, swift-api-design-guidelines, swift-architecture, swift-formatstyle, swift-security, swiftlint
|
|
40
40
|
|
|
41
|
-
Note: `swift-security` is a superset of the older standalone `ios-security` skill; `ios-security` is kept because Phase
|
|
41
|
+
Note: `swift-security` is a superset of the older standalone `ios-security` skill; `ios-security` is kept because Phase 3 review references it. Candidate for retirement in a later pass.
|
|
@@ -33,7 +33,14 @@ So there is no API path here, only the CLI's own web search and fetch. That make
|
|
|
33
33
|
|
|
34
34
|
- **opt-in** - `prefs.global.analyst.webSignals` defaults to false;
|
|
35
35
|
- **best-effort** - a source that does not answer marks the row "could not query" and the analysis continues;
|
|
36
|
-
- **not parity-enforced** - web search is not guaranteed on every
|
|
36
|
+
- **not parity-enforced** - the CLI's own web search is not guaranteed on every host this pipeline targets, the same carve-out Figma component work already has.
|
|
37
|
+
|
|
38
|
+
Since toolkit 3.13.0 there is a second path that does not depend on the host:
|
|
39
|
+
`research_search` and `research_ask` run over the MCP channel, which every host
|
|
40
|
+
already speaks, and return the same shape everywhere. Prefer them when the
|
|
41
|
+
toolkit is registered and a key is configured; the host's own search stays the
|
|
42
|
+
fallback. The keys live in the environment and are never passed as arguments, so
|
|
43
|
+
nothing about this path puts a credential in a transcript.
|
|
37
44
|
|
|
38
45
|
## Never let signal into the cache digest
|
|
39
46
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> Auto-generated by `pipeline/scripts/build-skills-index.mjs` - do not hand-edit.
|
|
4
4
|
> Regenerate with `node pipeline/scripts/build-skills-index.mjs`.
|
|
5
5
|
|
|
6
|
-
**
|
|
6
|
+
**216 skills** across 2 groups.
|
|
7
7
|
|
|
8
8
|
| Group | Name | Platform | Description |
|
|
9
9
|
|-------|------|----------|-------------|
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
| core | `multi-agent-complaint-analysis` | - | Customer-complaint triage. Ingests complaints (paste, csv/xlsx/txt/json file, Jira issue, Confluence URL), fetches Graylog evidence per trx/ |
|
|
106
106
|
| core | `multi-agent-create-jira` | - | Create a standards-compliant Jira issue (Task / Bug / Story): asks the type, mines project conventions, drafts from a standard template with |
|
|
107
107
|
| core | `multi-agent-design-check` | - | Mock-mode vs Figma design audit (iOS / Android, local-only). Pick repo + module, gate on mock support, enumerate every state driver into a c |
|
|
108
|
-
| core | `multi-agent-diff-explain` | - | Map Phase
|
|
108
|
+
| core | `multi-agent-diff-explain` | - | Map Phase 3 triage findings to branch diff lines. Read-only post-hoc command, used after review to answer 'which finding lines up with which |
|
|
109
109
|
| core | `multi-agent-doctor` | - | Health check for the installed pipeline: layout, preferences, credentials, hooks and host capabilities, each with one actionable step. Exit |
|
|
110
110
|
| core | `multi-agent-feedback` | - | Send one message to the maintainer: a bug, an idea or a question. Only the text you type is sent - no logs, no repo names, no paths. Shows t |
|
|
111
111
|
| core | `multi-agent-forget` | - | Remove a saved /multi-agent routine (created by /multi-agent:save): deletes its local-only command and its registry entry. Asks which one an |
|
|
@@ -118,19 +118,23 @@
|
|
|
118
118
|
| core | `multi-agent-kill` | - | Stop the given task, then remove its worktree and branch. Asks for confirmation. Use when a running or stuck task should be stopped and its |
|
|
119
119
|
| core | `multi-agent-language` | - | Toggle outputLanguage (assistant explanations, picker questions, PR/Jira/Confluence bodies). promptLanguage is fixed to English; commit mess |
|
|
120
120
|
| core | `multi-agent-local` | - | Full pipeline in local mode - no worktree, runs directly on the current branch. Use when the full pipeline should run on the current branc |
|
|
121
|
-
| core | `multi-agent-local-autopilot` | - | Full pipeline + local + autopilot - no worktree, no confirmations, all
|
|
121
|
+
| core | `multi-agent-local-autopilot` | - | Full pipeline + local + autopilot - no worktree, no confirmations, all 6 phases run end-to-end on the current branch. Use when the full pi |
|
|
122
122
|
| core | `multi-agent-log` | - | Show the agent-log.md for the given task. With no ID, shows the most recent task. Use when asked what a task did, or to read its log. |
|
|
123
123
|
| core | `multi-agent-manual-test` | - | Switch to the active task's branch and prepare it for manual testing in Xcode. Phase 5 standalone (the UI Bug Hunter lives at multi-agent-te |
|
|
124
|
+
| core | `multi-agent-model` | - | Turn the top model rung on or off and keep the cost ledger's pricing in step with it. Use when asked to enable or disable Fable, or which mo |
|
|
124
125
|
| core | `multi-agent-prune-logs` | - | Delete per-task project logs under ~/.claude/logs/multi-agent (filter by age/project/task). Audit trail + metrics are preserved. Dry-run fir |
|
|
125
126
|
| core | `multi-agent-prune-prompts` | - | Zero-base prompt review: measure the always-on instruction footprint, classify every rule block, propose keep/trial-removal/delete; applies |
|
|
126
127
|
| core | `multi-agent-purge` | - | ⚠️ Wipes every worktree, branch, log, and state file. Irreversible; asks for double confirmation. Use when every worktree, branch, log and s |
|
|
127
128
|
| core | `multi-agent-refactor` | - | Analyse the project: extract adapted best-practices, hunt real bugs + improvement areas, check upstream drift of derived skills, research th |
|
|
128
129
|
| core | `multi-agent-resume` | - | Resume a stopped or failed task from the phase where it left off. Use when a task stopped or failed and should carry on from where it left o |
|
|
129
|
-
| core | `multi-agent-resume-local` | - | Continue already-done LOCAL work through the pipeline tail: Review
|
|
130
|
+
| core | `multi-agent-resume-local` | - | Continue already-done LOCAL work through the pipeline tail: Review (with its build gate) → Commit/PR → Report (technical analysis + Jira tes |
|
|
130
131
|
| core | `multi-agent-review` | - | Run parallel review on a branch diff or a Pull Request: 3 models on Claude Code (Fable + Opus + Sonnet), 3 models on Copilot CLI (GPT + Opus |
|
|
131
132
|
| core | `multi-agent-review-analysis` | - | Review a written analysis document instead of a diff: resolve it from a path, a Confluence page or a Jira issue, run the deterministic gates |
|
|
132
133
|
| core | `multi-agent-review-issue` | - | Assess whether a GitHub issue is ready for multi-agent development: fetch it, grade scope / acceptance criteria / repro / design / API / sta |
|
|
133
134
|
| core | `multi-agent-review-jira` | - | Assess whether a Jira issue is ready for multi-agent development: fetch it, grade scope / acceptance criteria / repro / design / API / stack |
|
|
135
|
+
| core | `multi-agent-route-off` | - | Disable model routing and keep its rules, so turning it back on does not re-ask for the same configuration. Use when asked to turn model rou |
|
|
136
|
+
| core | `multi-agent-route-on` | - | Enable policy-driven model routing: pick a strategy, a scope, and the rules that say which rung a call lands on. Use when asked to turn mode |
|
|
137
|
+
| core | `multi-agent-route-status` | - | Report model routing: whether it is armed, which rule applies where, which rung the last dispatches took, and what this run has cost. Use wh |
|
|
134
138
|
| core | `multi-agent-routines` | - | List your saved /multi-agent routines (from /multi-agent:save) with what each one does, rendered in outputLanguage. Use when asked which sav |
|
|
135
139
|
| core | `multi-agent-save` | - | Save a recurring job as a reusable /multi-agent:<name> command. Reviews the conversation + your CLAUDE.md for candidate routines, you pick o |
|
|
136
140
|
| core | `multi-agent-scan` | - | Skill security scan: walks local skill directories against a tiered pattern catalog. Use when local skill directories need checking for unsa |
|