@mmerterden/multi-agent-pipeline 17.6.0 → 19.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 +310 -0
- package/README.md +76 -18
- package/README.tr.md +55 -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/0011-dormant-ci.md +25 -1
- 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 +37 -26
- package/docs/engineering.md +1 -1
- package/docs/facts.json +45 -0
- package/docs/features.md +54 -53
- package/docs/performance.md +5 -5
- package/docs/recovery-guide.md +9 -9
- package/docs/server-readiness.md +188 -0
- package/docs/token-budget-history.md +3 -1
- package/index.js +18 -3
- package/install/_codex-agents.mjs +1 -1
- package/install/_common.mjs +42 -17
- package/install/_dev-only-files.mjs +8 -0
- package/install/_unattended-profile.mjs +113 -0
- package/install/index.mjs +48 -0
- 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 +1065 -0
- package/package.json +6 -3
- package/pipeline/agents/dev-critic.md +3 -3
- package/pipeline/commands/figma-to-swiftui.md +1 -1
- package/pipeline/commands/multi-agent/SKILL.md +8 -8
- package/pipeline/commands/multi-agent/analysis/SKILL.md +9 -9
- 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 +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 +54 -23
- 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/_jira-auth.sh +8 -0
- package/pipeline/lib/analysis-jira-write.sh +32 -0
- package/pipeline/lib/ask-choice.sh +13 -2
- package/pipeline/lib/autopilot-state.sh +8 -0
- package/pipeline/lib/credential-inventory.sh +1 -1
- package/pipeline/lib/fatal.mjs +129 -0
- package/pipeline/lib/fetch-fortify.sh +1 -1
- package/pipeline/lib/figma-mcp-refresh.sh +18 -0
- package/pipeline/lib/figma-screenshot.sh +18 -0
- package/pipeline/lib/invoked-directly.mjs +43 -0
- package/pipeline/lib/jira-publish.sh +42 -0
- package/pipeline/lib/md2confluence-v3.py +47 -0
- package/pipeline/lib/model-rung.sh +142 -0
- package/pipeline/lib/outbound-gate.mjs +175 -0
- package/pipeline/lib/phase-schema.mjs +88 -0
- package/pipeline/lib/plan-todos.sh +32 -11
- package/pipeline/lib/post-pr-review.sh +77 -8
- package/pipeline/lib/repo-hygiene.sh +8 -3
- package/pipeline/lib/require-jq.sh +40 -0
- package/pipeline/lib/route-state.sh +161 -0
- package/pipeline/lib/run-paths.sh +335 -0
- package/pipeline/multi-agent-refs/_account-picker.md +1 -1
- package/pipeline/multi-agent-refs/_dev-context.md +1 -1
- package/pipeline/multi-agent-refs/_input-parser.md +1 -1
- package/pipeline/multi-agent-refs/analysis/evidence.md +0 -9
- package/pipeline/multi-agent-refs/analysis/intake.md +1 -1
- package/pipeline/multi-agent-refs/analysis/locked.md +21 -22
- package/pipeline/multi-agent-refs/analysis/render.md +1 -1
- package/pipeline/multi-agent-refs/analysis/synthesis.md +12 -6
- 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 +3 -3
- package/pipeline/multi-agent-refs/cross-cli-contract.md +31 -6
- package/pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md +74 -4
- package/pipeline/multi-agent-refs/features/code-graph.md +5 -5
- package/pipeline/multi-agent-refs/features/cost-analysis.md +93 -0
- 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 +47 -2
- 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 +5 -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 +1 -1
- 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/verify-by-test.md +4 -4
- package/pipeline/multi-agent-refs/features/verify.md +83 -0
- 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 +21 -10
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +25 -25
- 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/unattended-contract.md +129 -0
- package/pipeline/multi-agent-refs/wiki-capture.md +14 -14
- package/pipeline/preferences-template.json +9 -1
- 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 +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/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 +100 -56
- 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/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 +372 -0
- package/pipeline/scripts/_smoke-root.sh +1 -1
- package/pipeline/scripts/aggregate-metrics.mjs +65 -65
- package/pipeline/scripts/autopilot-arming.mjs +2 -1
- package/pipeline/scripts/autopilot-intake.mjs +2 -1
- package/pipeline/scripts/autopilot-runner.mjs +206 -2
- package/pipeline/scripts/build-references.mjs +2 -1
- package/pipeline/scripts/build-stack-plugins.mjs +10 -2
- package/pipeline/scripts/capture-evidence.sh +7 -2
- package/pipeline/scripts/capture-flush.sh +8 -8
- package/pipeline/scripts/capture-resume.sh +3 -3
- package/pipeline/scripts/classify-plan-safety.mjs +3 -2
- package/pipeline/scripts/cost-analyze.mjs +600 -0
- package/pipeline/scripts/cost-budget-check.mjs +4 -12
- package/pipeline/scripts/council-view.mjs +2 -1
- package/pipeline/scripts/crush-json.mjs +2 -1
- package/pipeline/scripts/diff-explain.mjs +7 -10
- package/pipeline/scripts/diff-risk-score.mjs +2 -1
- package/pipeline/scripts/doctor.mjs +140 -6
- package/pipeline/scripts/evidence-gate.mjs +9 -3
- package/pipeline/scripts/feedback-send.mjs +12 -2
- package/pipeline/scripts/gc-abandoned.sh +32 -16
- package/pipeline/scripts/gc-tmp.sh +1 -1
- package/pipeline/scripts/gc-worktrees.sh +12 -5
- package/pipeline/scripts/gen-facts.mjs +175 -0
- package/pipeline/scripts/gen-mode-dispatch.mjs +32 -37
- package/pipeline/scripts/gen-ref-toc.mjs +1 -1
- package/pipeline/scripts/github-ssh-setup.sh +64 -7
- package/pipeline/scripts/graph-mermaid.mjs +4 -2
- package/pipeline/scripts/graph-report.mjs +1 -1
- package/pipeline/scripts/jira-attach.sh +1 -1
- package/pipeline/scripts/keychain-save.sh +101 -30
- package/pipeline/scripts/learn-from-transcripts.mjs +3 -2
- package/pipeline/scripts/learning-curve.mjs +36 -31
- package/pipeline/scripts/log-metric.sh +17 -4
- package/pipeline/scripts/make-manifest.mjs +199 -0
- package/pipeline/scripts/memory-save.sh +1 -1
- package/pipeline/scripts/migrate-prefs.mjs +24 -6
- package/pipeline/scripts/migrate-state.mjs +94 -4
- package/pipeline/scripts/phase-banner.sh +26 -22
- package/pipeline/scripts/phase-tracker.sh +48 -10
- package/pipeline/scripts/plan-coverage-gate.mjs +8 -4
- package/pipeline/scripts/pre-commit-check.sh +7 -0
- package/pipeline/scripts/pre-push-check.sh +7 -0
- package/pipeline/scripts/purge.sh +23 -6
- package/pipeline/scripts/render-agent-log-cost.sh +10 -3
- package/pipeline/scripts/render-cost-summary.sh +9 -2
- package/pipeline/scripts/render-work-summary.sh +14 -7
- package/pipeline/scripts/review-file-filter.mjs +5 -3
- package/pipeline/scripts/review-scope.mjs +2 -1
- package/pipeline/scripts/routine-registry.mjs +2 -1
- package/pipeline/scripts/run-aggregator.mjs +26 -20
- package/pipeline/scripts/run-metrics.mjs +4 -2
- package/pipeline/scripts/runs-index.mjs +353 -0
- package/pipeline/scripts/scorecard-snapshot.mjs +178 -0
- package/pipeline/scripts/search-logs.sh +18 -0
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +6 -6
- package/pipeline/scripts/smoke-schema-validation.sh +26 -7
- package/pipeline/scripts/test-gap-scan.mjs +2 -1
- package/pipeline/scripts/test-integrity-gate.mjs +2 -1
- package/pipeline/scripts/token-budget-report.mjs +13 -2
- package/pipeline/scripts/triage-memory.mjs +2 -2
- package/pipeline/scripts/update-issue-progress.sh +56 -7
- package/pipeline/scripts/usage-report.mjs +12 -1
- package/pipeline/scripts/validate-analysis-doc.mjs +75 -18
- package/pipeline/scripts/validate-code-graph.mjs +6 -3
- package/pipeline/scripts/validate-complaint-doc.mjs +2 -1
- package/pipeline/scripts/validate-diff-risk.mjs +6 -3
- 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-test-gap.mjs +6 -3
- package/pipeline/scripts/validate-triage.mjs +6 -4
- package/pipeline/scripts/verify-citations.mjs +4 -2
- package/pipeline/scripts/verify.mjs +327 -0
- package/pipeline/scripts/worktree-finalize.sh +18 -9
- package/pipeline/scripts/write-state.mjs +154 -15
- package/pipeline/skills/.skill-manifest.json +37 -21
- package/pipeline/skills/.skills-index.json +104 -5
- package/pipeline/skills/shared/README.md +15 -6
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +2 -2
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +69 -71
- 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 +35 -11
- 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/macos-spm-app-packaging/assets/templates/package_app.sh +4 -1
- package/pipeline/skills/shared/external/macos-spm-app-packaging/assets/templates/setup_dev_signing.sh +4 -1
- package/pipeline/skills/shared/external/macos-spm-app-packaging/assets/templates/sign-and-notarize.sh +2 -1
- package/pipeline/skills/skills-index.md +13 -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
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Single source of truth for skills delivered to both Claude Code (`~/.claude/skills/`) and Copilot CLI (`~/.copilot/skills/`) by the installer.
|
|
4
4
|
|
|
5
|
-
**Total:**
|
|
5
|
+
**Total:** 216 skills (63 core + 153 external). Auto-generated by `scripts/gen-skills-index.mjs` - do not edit by hand.
|
|
6
6
|
|
|
7
7
|
## Directory layout
|
|
8
8
|
|
|
9
|
-
- **`core/`** -
|
|
9
|
+
- **`core/`** - 63 `multi-agent*` orchestration skills that are pipeline-critical. Edits here are core-code changes.
|
|
10
10
|
- **`external/`** - 153 iOS / Android / generic skills imported from the upstream skill library. Mirrors of third-party guidance.
|
|
11
11
|
- Install destinations (ADR-0009): Claude Code gets NO local copy of `external/` - it loads those skills from the `multi-agent-plugins` marketplace, namespaced (`ai-<stack>-toolkit:<name>`); only the two compliance catalogs from `core/` land in `~/.claude/skills/`. Copilot CLI and Codex CLI receive a flat copy filtered to the enabled stacks. `external/` remains the single authoring source that `build-stack-plugins.mjs` publishes from.
|
|
12
12
|
|
|
@@ -14,7 +14,7 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
14
14
|
|
|
15
15
|
## Categories
|
|
16
16
|
|
|
17
|
-
- [Pipeline Orchestration](#pipeline-orchestration) -
|
|
17
|
+
- [Pipeline Orchestration](#pipeline-orchestration) - 63
|
|
18
18
|
- [iOS / Apple Ecosystem](#ios-apple-ecosystem) - 90
|
|
19
19
|
- [Android / Kotlin](#android-kotlin) - 13
|
|
20
20
|
- [Web](#web) - 10
|
|
@@ -29,14 +29,19 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
29
29
|
| [`google-play-compliance`](./core/google-play-compliance/) | `core` | Google Play Store publication compliance - bundletool + aapt2 + apksigner orchestration + 21-rule policy catalog with Play Console error c |
|
|
30
30
|
| [`multi-agent`](./core/multi-agent/) | `core` | Task orchestrator: runs the full pipeline from a Jira ID or GitHub Issue URL - analysis → plan → TDD development → parallel review (Fable |
|
|
31
31
|
| [`multi-agent-analysis`](./core/multi-agent-analysis/) | `core` | Standalone feature-spec analysis. Two profiles picked at intake: global (23-section development handoff, 8 of them in Lite mode) or corporat |
|
|
32
|
+
| [`multi-agent-analysis-jira`](./core/multi-agent-analysis-jira/) | `core` | Turn a rendered analysis document into a Jira story tree: derive stories from the document's own rule ids, check coverage both ways, preview |
|
|
32
33
|
| [`multi-agent-analysis-resolve`](./core/multi-agent-analysis-resolve/) | `core` | Resolve the Section 20 Risks and Open Questions of an analysis v3 document one row at a time: up to 3 source-labeled answer candidates per r |
|
|
33
34
|
| [`multi-agent-autopilot`](./core/multi-agent-autopilot/) | `core` | Launch any task in autopilot mode: skips every confirmation, runs end-to-end autonomously. Use when a task should run end to end with no con |
|
|
35
|
+
| [`multi-agent-autopilot-off`](./core/multi-agent-autopilot-off/) | `core` | Turn off continuous mode on this machine: the schedule is removed, work already running finishes, the repo selection is kept. Use when the m |
|
|
36
|
+
| [`multi-agent-autopilot-on`](./core/multi-agent-autopilot-on/) | `core` | Turn on continuous mode on THIS machine: pick the repos it watches; labelled GitHub issues and assigned+labelled Jira items then run in a wo |
|
|
37
|
+
| [`multi-agent-autopilot-status`](./core/multi-agent-autopilot-status/) | `core` | Show what continuous mode is doing here: what runs at which phase, what is queued, what waits for an answer, what PRs it opened today. Use w |
|
|
34
38
|
| [`multi-agent-build-optimize`](./core/multi-agent-build-optimize/) | `core` | Wrapper that dispatches to xcode-build-orchestrator on iOS repos. Benchmarks the current Xcode build, runs compilation / project / SPM analy |
|
|
35
39
|
| [`multi-agent-channels`](./core/multi-agent-channels/) | `core` | Multi-channel reporter - Jira/Confluence/Wiki/PR description. Multi-select channels + content, humanizer pass, reviewer-preserving Bitbuck |
|
|
36
40
|
| [`multi-agent-complaint-analysis`](./core/multi-agent-complaint-analysis/) | `core` | Customer-complaint triage. Ingests complaints (paste, csv/xlsx/txt/json file, Jira issue, Confluence URL), fetches Graylog evidence per trx/ |
|
|
37
41
|
| [`multi-agent-create-jira`](./core/multi-agent-create-jira/) | `core` | Create a standards-compliant Jira issue (Task / Bug / Story): asks the type, mines project conventions, drafts from a standard template with |
|
|
38
42
|
| [`multi-agent-design-check`](./core/multi-agent-design-check/) | `core` | Mock-mode vs Figma design audit (iOS / Android, local-only). Pick repo + module, gate on mock support, enumerate every state driver into a c |
|
|
39
|
-
| [`multi-agent-diff-explain`](./core/multi-agent-diff-explain/) | `core` | Map Phase
|
|
43
|
+
| [`multi-agent-diff-explain`](./core/multi-agent-diff-explain/) | `core` | 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 |
|
|
44
|
+
| [`multi-agent-doctor`](./core/multi-agent-doctor/) | `core` | Health check for the installed pipeline: layout, preferences, credentials, hooks and host capabilities, each with one actionable step. Exit |
|
|
40
45
|
| [`multi-agent-feedback`](./core/multi-agent-feedback/) | `core` | 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 |
|
|
41
46
|
| [`multi-agent-forget`](./core/multi-agent-forget/) | `core` | Remove a saved /multi-agent routine (created by /multi-agent:save): deletes its local-only command and its registry entry. Asks which one an |
|
|
42
47
|
| [`multi-agent-garbage-collect`](./core/multi-agent-garbage-collect/) | `core` | Sweep leftover /tmp scratch (picker state, review diffs, channel payloads, analysis drafts) from past runs. Dry-run first; confirms before d |
|
|
@@ -48,19 +53,23 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
48
53
|
| [`multi-agent-kill`](./core/multi-agent-kill/) | `core` | 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 |
|
|
49
54
|
| [`multi-agent-language`](./core/multi-agent-language/) | `core` | Toggle outputLanguage (assistant explanations, picker questions, PR/Jira/Confluence bodies). promptLanguage is fixed to English; commit mess |
|
|
50
55
|
| [`multi-agent-local`](./core/multi-agent-local/) | `core` | Full pipeline in local mode - no worktree, runs directly on the current branch. Use when the full pipeline should run on the current branc |
|
|
51
|
-
| [`multi-agent-local-autopilot`](./core/multi-agent-local-autopilot/) | `core` | Full pipeline + local + autopilot - no worktree, no confirmations, all
|
|
56
|
+
| [`multi-agent-local-autopilot`](./core/multi-agent-local-autopilot/) | `core` | Full pipeline + local + autopilot - no worktree, no confirmations, all 6 phases run end-to-end on the current branch. Use when the full pi |
|
|
52
57
|
| [`multi-agent-log`](./core/multi-agent-log/) | `core` | 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. |
|
|
53
58
|
| [`multi-agent-manual-test`](./core/multi-agent-manual-test/) | `core` | 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 |
|
|
59
|
+
| [`multi-agent-model`](./core/multi-agent-model/) | `core` | 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 |
|
|
54
60
|
| [`multi-agent-prune-logs`](./core/multi-agent-prune-logs/) | `core` | Delete per-task project logs under ~/.claude/logs/multi-agent (filter by age/project/task). Audit trail + metrics are preserved. Dry-run fir |
|
|
55
61
|
| [`multi-agent-prune-prompts`](./core/multi-agent-prune-prompts/) | `core` | Zero-base prompt review: measure the always-on instruction footprint, classify every rule block, propose keep/trial-removal/delete; applies |
|
|
56
62
|
| [`multi-agent-purge`](./core/multi-agent-purge/) | `core` | ⚠️ Wipes every worktree, branch, log, and state file. Irreversible; asks for double confirmation. Use when every worktree, branch, log and s |
|
|
57
63
|
| [`multi-agent-refactor`](./core/multi-agent-refactor/) | `core` | Analyse the project: extract adapted best-practices, hunt real bugs + improvement areas, check upstream drift of derived skills, research th |
|
|
58
64
|
| [`multi-agent-resume`](./core/multi-agent-resume/) | `core` | 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 |
|
|
59
|
-
| [`multi-agent-resume-local`](./core/multi-agent-resume-local/) | `core` | Continue already-done LOCAL work through the pipeline tail: Review
|
|
65
|
+
| [`multi-agent-resume-local`](./core/multi-agent-resume-local/) | `core` | Continue already-done LOCAL work through the pipeline tail: Review (with its build gate) → Commit/PR → Report (technical analysis + Jira tes |
|
|
60
66
|
| [`multi-agent-review`](./core/multi-agent-review/) | `core` | 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 |
|
|
61
67
|
| [`multi-agent-review-analysis`](./core/multi-agent-review-analysis/) | `core` | 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 |
|
|
62
68
|
| [`multi-agent-review-issue`](./core/multi-agent-review-issue/) | `core` | Assess whether a GitHub issue is ready for multi-agent development: fetch it, grade scope / acceptance criteria / repro / design / API / sta |
|
|
63
69
|
| [`multi-agent-review-jira`](./core/multi-agent-review-jira/) | `core` | Assess whether a Jira issue is ready for multi-agent development: fetch it, grade scope / acceptance criteria / repro / design / API / stack |
|
|
70
|
+
| [`multi-agent-route-off`](./core/multi-agent-route-off/) | `core` | 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 |
|
|
71
|
+
| [`multi-agent-route-on`](./core/multi-agent-route-on/) | `core` | 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 |
|
|
72
|
+
| [`multi-agent-route-status`](./core/multi-agent-route-status/) | `core` | 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 |
|
|
64
73
|
| [`multi-agent-routines`](./core/multi-agent-routines/) | `core` | List your saved /multi-agent routines (from /multi-agent:save) with what each one does, rendered in outputLanguage. Use when asked which sav |
|
|
65
74
|
| [`multi-agent-save`](./core/multi-agent-save/) | `core` | Save a recurring job as a reusable /multi-agent:<name> command. Reviews the conversation + your CLAUDE.md for candidate routines, you pick o |
|
|
66
75
|
| [`multi-agent-scan`](./core/multi-agent-scan/) | `core` | Skill security scan: walks local skill directories against a tiered pattern catalog. Use when local skill directories need checking for unsa |
|
|
@@ -137,7 +137,7 @@ Apple App Store Review Guidelines + ITMS upload error codes that the underlying
|
|
|
137
137
|
|
|
138
138
|
| Severity | What pipeline consumers do with it |
|
|
139
139
|
|---|---|
|
|
140
|
-
| `error` | **Blocker.** Report it as `blocking` in Phase
|
|
140
|
+
| `error` | **Blocker.** Report it as `blocking` in Phase 3 triage / channels PR body. Don't merge until fixed. |
|
|
141
141
|
| `warning` | **Important.** Surface in PR description / Jira comment under "Compliance warnings". Merging OK but note it. |
|
|
142
142
|
| `info` | **Informational.** Log to agent-log.md only. Don't pollute PR body. |
|
|
143
143
|
|
|
@@ -263,7 +263,7 @@ mcp__multi-agent-toolkit__ios_app_store_audit({ archive_path: "~/Library/Develop
|
|
|
263
263
|
|
|
264
264
|
### Phase 4 Security Auditor (catalog cross-ref, no binary invocation)
|
|
265
265
|
|
|
266
|
-
When a Phase
|
|
266
|
+
When a Phase 3 review diff touches iOS release-relevant paths (`Info.plist`, `PrivacyInfo.xcprivacy`, `*.entitlements`, `AppDelegate.swift`, `project.pbxproj`), the security-auditor persona loads this skill's 18-rule catalog and cites matching ruleIDs next to its findings. No binary invocation at review time - catalog reads are free.
|
|
267
267
|
|
|
268
268
|
```
|
|
269
269
|
# Example finding from Phase 4 Security Auditor (wired in v5.8.1):
|
|
@@ -158,7 +158,7 @@ Current Google Play policies + Play Console rejection codes. Sourced from `suppo
|
|
|
158
158
|
|
|
159
159
|
| Severity | What pipeline consumers do with it |
|
|
160
160
|
|---|---|
|
|
161
|
-
| `error` | **Blocker.** Play Console will reject the upload (or the bundle build will fail). Report as `blocking` in Phase
|
|
161
|
+
| `error` | **Blocker.** Play Console will reject the upload (or the bundle build will fail). Report as `blocking` in Phase 3 triage / channels PR body. |
|
|
162
162
|
| `warning` | **Policy review risk.** Might not reject immediately but increases manual review chance + user trust hit. Surface in PR description. |
|
|
163
163
|
| `info` | **Best practice.** Log only. Don't pollute PR body. |
|
|
164
164
|
|
|
@@ -288,7 +288,7 @@ multi-agent-test "store-ready" --last-version-code=142 --auto-pick
|
|
|
288
288
|
|
|
289
289
|
### Phase 4 Security Auditor (catalog cross-ref, no tool invocation)
|
|
290
290
|
|
|
291
|
-
When a Phase
|
|
291
|
+
When a Phase 3 review diff touches Android release-relevant paths (`AndroidManifest.xml`, `build.gradle(.kts)`, `proguard-rules.pro`, `network_security_config.xml`), the security-auditor persona loads this skill's 21-rule policy catalog and cites matching ruleIDs next to its findings. No bundletool / aapt2 / apksigner invocation at review time - catalog reads are free.
|
|
292
292
|
|
|
293
293
|
```
|
|
294
294
|
# Example finding from Phase 4 Security Auditor (wired in v5.8.1):
|
|
@@ -75,13 +75,13 @@ multi-agent "LoginView dark mode fix" autopilot
|
|
|
75
75
|
|
|
76
76
|
| Phase | Normal | Autopilot |
|
|
77
77
|
|-------|--------|-----------|
|
|
78
|
-
| Phase
|
|
79
|
-
| Phase 5 (User Test) | "Want to test it?" → wait | Skip → go straight to Phase
|
|
80
|
-
| Phase
|
|
81
|
-
| Phase
|
|
78
|
+
| Phase 1 (Plan Approval Gate) | Clarification (max 2 rounds) + approval loop - user replies `onayla`/`iptal`/free-text | **Gate skip** - log the plan, go straight to Phase 3 (autopilot contract: zero interaction) |
|
|
79
|
+
| Phase 5 (User Test) | "Want to test it?" → wait | Skip → go straight to Phase 4 |
|
|
80
|
+
| Phase 4 (Commit) | "Want to commit?" → wait | Automatic commit + push |
|
|
81
|
+
| Phase 4 (PR) | "Want to open a PR?" → wait | Automatically create the PR |
|
|
82
82
|
|
|
83
83
|
**What NEVER skips (even in autopilot):**
|
|
84
|
-
- Phase
|
|
84
|
+
- Phase 3 Review → if there is a blocking finding, return to Phase 3, fix + rebuild automatically (safety)
|
|
85
85
|
- Kill/Purge confirmations → destructive operations always ask
|
|
86
86
|
- Build fail → fix + rebuild automatically (max 3 retries). If it still fails after 3 retries → pause, ask the user
|
|
87
87
|
|
|
@@ -108,8 +108,8 @@ ID is stored in `agent-state.json` and shown in `multi-agent status`:
|
|
|
108
108
|
|
|
109
109
|
| ID | Jira | Branch | Phase | Status |
|
|
110
110
|
|----|------|--------|-------|--------|
|
|
111
|
-
| #1 | PROJ-12345 | feature/PROJ-12345-... |
|
|
112
|
-
| #2 | PROJ-67890 | feature/PROJ-67890-... | 1/
|
|
111
|
+
| #1 | PROJ-12345 | feature/PROJ-12345-... | 2/5 Dev | ⚡ in progress |
|
|
112
|
+
| #2 | PROJ-67890 | feature/PROJ-67890-... | 1/5 Analysis | 📊 scanning |
|
|
113
113
|
```
|
|
114
114
|
|
|
115
115
|
ID counter stored at `.worktrees/.multi-agent-counter` (persists across sessions).
|
|
@@ -181,14 +181,14 @@ When `multi-agent purge` is called:
|
|
|
181
181
|
|
|
182
182
|
When `multi-agent resume [id]` is called:
|
|
183
183
|
|
|
184
|
-
1. **Find state file**: `$HOME/.claude/logs/multi-agent/{project}/{task-id}/agent-state.json` - that is where Phase 0 writes it, not inside the worktree. A task finalized by Phase
|
|
184
|
+
1. **Find state file**: `$HOME/.claude/logs/multi-agent/{project}/{task-id}/agent-state.json` - that is where Phase 0 writes it, not inside the worktree. A task finalized by Phase 4 keeps its state at `.../{task-id}/artifacts/agent-state.json`, so look there too before reporting not-found.
|
|
185
185
|
- If no `id` given, take the most recent task dir with `status != "done"`
|
|
186
186
|
2. **Read state**: Parse `agent-state.json` → determine last completed phase
|
|
187
187
|
3. **Restore context**: Read `agent-log.md` for previous findings:
|
|
188
|
-
- Phase 1 analysis findings → reuse in Phase 2+
|
|
189
|
-
- Phase
|
|
190
|
-
- Phase
|
|
191
|
-
- Phase
|
|
188
|
+
- Phase 1 analysis findings → reuse in Phase 2+ (Dev onwards)
|
|
189
|
+
- Phase 1 plan/todos → reuse in Phase 2+
|
|
190
|
+
- Phase 2 code changes → already on disk in worktree
|
|
191
|
+
- Phase 3 review findings → reuse if re-reviewing
|
|
192
192
|
4. **Resume from next phase**: Skip completed phases, start from `currentPhase + 1`
|
|
193
193
|
5. **Log**: `🔄 Resumed PROJ-{id} from Phase {N}`
|
|
194
194
|
|
|
@@ -207,7 +207,7 @@ Every agent persona under `$HOME/.claude/agents/*.md` declares a `preferredModel
|
|
|
207
207
|
| Persona | `preferredModel` | Rationale (condensed) |
|
|
208
208
|
|---|---|---|
|
|
209
209
|
| `explorer` | `sonnet` | Scan/pattern work, cost-efficient without quality loss |
|
|
210
|
-
| `code-reviewer` | `fable` | Reviewer 1; Phase
|
|
210
|
+
| `code-reviewer` | `fable` | Reviewer 1; Phase 3 sets Reviewer 2 `opus`, Reviewer 3 `sonnet` |
|
|
211
211
|
| `security-auditor` | `opus` | False-negative cost is high; opus reduces miss rate |
|
|
212
212
|
| `ios-architect` | `fable` | Deep module/protocol/migration reasoning |
|
|
213
213
|
| `android-architect` | `fable` | Gradle modules, Compose stability, Hilt graphs |
|
|
@@ -218,7 +218,7 @@ Every agent persona under `$HOME/.claude/agents/*.md` declares a `preferredModel
|
|
|
218
218
|
```bash
|
|
219
219
|
persona_file="$HOME/.claude/agents/${persona}.md"
|
|
220
220
|
pref_model="$(awk '/^preferredModel:/ {print $2; exit}' "$persona_file")"
|
|
221
|
-
override="${PHASE_MODEL_OVERRIDE:-}" # set by orchestrator per-dispatch (e.g. Phase
|
|
221
|
+
override="${PHASE_MODEL_OVERRIDE:-}" # set by orchestrator per-dispatch (e.g. Phase 3 Reviewer 3 → sonnet)
|
|
222
222
|
resolved_model="${override:-${pref_model:-opus}}"
|
|
223
223
|
|
|
224
224
|
export CLAUDE_CODE_SUBAGENT_MODEL="$resolved_model"
|
|
@@ -255,7 +255,7 @@ matched_skills=$(node "$HOME/.claude/scripts/match-skills.mjs" \
|
|
|
255
255
|
--limit 12 \
|
|
256
256
|
--json)
|
|
257
257
|
|
|
258
|
-
# Inject only matched skills[] into subagent prompts for Phase
|
|
258
|
+
# Inject only matched skills[] into subagent prompts for Phase 1-3.
|
|
259
259
|
# Skills not in the matched list are not loaded - saves ~10K-30K tokens
|
|
260
260
|
# per subagent dispatch on small tasks.
|
|
261
261
|
```
|
|
@@ -289,16 +289,14 @@ and the copy named a path the code had stopped using.
|
|
|
289
289
|
|
|
290
290
|
Every user-facing phase title - TaskCreate cards, `phase-banner.sh` headers, and any status line rendered to the terminal - MUST come from this table. Phase labels are English on every host (`promptLanguage` is fixed to `en`; picker text follows its own matrix):
|
|
291
291
|
|
|
292
|
-
| # | Label
|
|
293
|
-
|
|
294
|
-
| 0 | Phase 0: Init
|
|
295
|
-
| 1 | Phase 1:
|
|
296
|
-
| 2 | Phase 2:
|
|
297
|
-
| 3 | Phase 3:
|
|
298
|
-
| 4 | Phase 4:
|
|
299
|
-
| 5 | Phase 5:
|
|
300
|
-
| 6 | Phase 6: Commit & PR |
|
|
301
|
-
| 7 | Phase 7: Report |
|
|
292
|
+
| # | Label |
|
|
293
|
+
|---|----------------------|
|
|
294
|
+
| 0 | Phase 0: Init |
|
|
295
|
+
| 1 | Phase 1: Plan |
|
|
296
|
+
| 2 | Phase 2: Dev |
|
|
297
|
+
| 3 | Phase 3: Review |
|
|
298
|
+
| 4 | Phase 4: Commit & PR |
|
|
299
|
+
| 5 | Phase 5: Report |
|
|
302
300
|
|
|
303
301
|
**Render rule:**
|
|
304
302
|
|
|
@@ -313,7 +311,7 @@ Every user-facing phase title - TaskCreate cards, `phase-banner.sh` headers, a
|
|
|
313
311
|
All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied (Claude Code path; Copilot CLI does not have a TaskList widget so this rule is Claude-only). The native widget renders by creation order, not by phase-number metadata - out-of-order calls produce visually scrambled tile stacks (e.g. `1 ✓ · 2 ✓ · 4 ✓ · 0 ▶ · 3 ☐`) even when the underlying state file is correct. Pre-marking phases as completed/skipped before Phase 0 starts is FORBIDDEN: register the tile in order with default `pending` status, then flip via TaskUpdate when the phase actually short-circuits. Mode-specific phase sets:
|
|
314
312
|
|
|
315
313
|
- `multi-agent`: 0 → 1 → 2 → 3 → 4 → 5 → 6 → 7
|
|
316
|
-
- `multi-agent-local`, `multi-agent-autopilot`, `multi-agent-local-autopilot`: 0 → 1 → 2 → 3 → 4 →
|
|
314
|
+
- `multi-agent-local`, `multi-agent-autopilot`, `multi-agent-local-autopilot`: 0 → 1 → 2 → 3 → 4 → 5 (the interactive Phase 5 gate needs a worktree checkout and an attended run)
|
|
317
315
|
- `multi-agent-analysis`: 0 → 1 → 2 → 4 → 6 → 7 (no code, so no Dev and no Test)
|
|
318
316
|
|
|
319
317
|
Depth decides WHICH of the command's set is registered. The tracker boots at Step -1, long before the depth question can be asked, so it registers Phase 0 alone and the remaining tiles are created at Step 7.5 once the answer is known - a Short run never draws an Analysis or Planning tile.
|
|
@@ -421,26 +419,26 @@ Full contract: `refs/tracker-contract.md` section "TaskCreate ordering (strict)"
|
|
|
421
419
|
|
|
422
420
|
**IMPORTANT**: Update `agent-state.json` at EVERY phase transition. This file is the resume source of truth.
|
|
423
421
|
|
|
424
|
-
### Phase 1:
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
422
|
+
### Phase 1: Plan
|
|
423
|
+
Two halves, one phase, one approval gate (Phases 1 and 2 until 19.0.0).
|
|
424
|
+
|
|
425
|
+
**1a - Analysis** (claude-sonnet-5, `explorer` persona)
|
|
426
|
+
1. Launch **explore agents** (parallel) to scan the codebase: related files, existing patterns and conventions, potential impact areas
|
|
429
427
|
2. Optionally launch **security-auditor** agent for pre-check
|
|
430
428
|
3. Summarize findings
|
|
431
|
-
4. Log: `📊 Phase 1:
|
|
429
|
+
4. Log: `📊 Phase 1: Plan (analysis) - {N} files identified, {summary}`
|
|
432
430
|
|
|
433
|
-
|
|
431
|
+
**1b - Planning** (claude-fable-5)
|
|
434
432
|
1. Create task breakdown → todos with dependencies
|
|
435
433
|
2. Launch **ios-architect** agent for architecture review (if structural changes)
|
|
436
434
|
3. Determine development approach per todo (new file, modify, refactor)
|
|
437
|
-
4. Log: `🧠 Phase
|
|
438
|
-
5. **Plan Approval Gate** (Full + interactive only - a Short run has no plan, autopilot may not ask). Full flow in `refs/phases/phase-
|
|
435
|
+
4. Log: `🧠 Phase 1: Plan - {N} todos created`
|
|
436
|
+
5. **Plan Approval Gate** (Full + interactive only - a Short run has no plan, autopilot may not ask). Full flow in `refs/phases/phase-1-plan.md` Step 5:
|
|
439
437
|
- **5a - Clarification** (conditional, max 2 rounds): if the Jira/issue description is ambiguous (vague acceptance, UI task without Figma, API task without endpoint contract, `ambiguityScore >= 2`, parent-story scope drift), ask structured questions before rendering the plan. User answers → plan regenerated. If it is still unclear after the 2nd round, render the plan with a "best-effort" banner.
|
|
440
438
|
- **5b - Approval loop**: render plan → user: `onayla`/`iptal`/free-text. A free-text edit request → the planning model (Fable) revises the plan → show it again. No iteration cap; user controls exit via `onayla` or `iptal`.
|
|
441
|
-
- Persist `clarificationRounds`, `clarificationQuestions`, `clarificationAnswers`, `planIterations`, `planApprovedAt`, `planEditRequests` to `state.phases["
|
|
439
|
+
- Persist `clarificationRounds`, `clarificationQuestions`, `clarificationAnswers`, `planIterations`, `planApprovedAt`, `planEditRequests` to `state.phases["1"]`.
|
|
442
440
|
|
|
443
|
-
### Phase
|
|
441
|
+
### Phase 2: Dev (claude-sonnet-5)
|
|
444
442
|
For each todo (respecting dependency order):
|
|
445
443
|
1. Update todo status: `in_progress`
|
|
446
444
|
2. **TDD cycle**:
|
|
@@ -450,31 +448,31 @@ For each todo (respecting dependency order):
|
|
|
450
448
|
3. Run build: `xcodebuild` via **task agent**
|
|
451
449
|
4. If build fails → fix → rebuild (max 3 attempts, track `retryCount` in `agent-state.json`)
|
|
452
450
|
5. Update todo status: `done`
|
|
453
|
-
6. Log: `⚡ Phase
|
|
451
|
+
6. Log: `⚡ Phase 2: {todo-id} - Test ✅ Build ✅`
|
|
454
452
|
|
|
455
|
-
### Phase
|
|
453
|
+
### Phase 3: Review (parallel + triage)
|
|
456
454
|
0. **Diff Risk Scoring (advisory, v8.3+)** - before reviewer dispatch run `node $HOME/.claude/scripts/diff-risk-score.mjs --base "$BASE_BRANCH" --top 5` and inject the top-N risk-ranked files as a `${PRIORITY_FILES}` block into each reviewer's prompt. Heuristic, deterministic, sub-second, never gates the pipeline. Disabled when `prefs.global.diffRiskAdvisory = false`. Signals: security paths (×3), schema migrations (×4), public API surfaces (×2), no-test-change (×2.5), complexity delta (×1.5), UI-critical paths (×1.5), loc changed (×1).
|
|
457
455
|
1. Launch **code-reviewer** agents in parallel. Reviewer set depends on which CLI is hosting the pipeline:
|
|
458
456
|
- **Claude Code** (3 reviewers): `claude-fable-5` (deep security + architecture) + `claude-opus-5` (edge cases, different perspective) + `claude-sonnet-5` (quality + correctness)
|
|
459
457
|
- **Copilot CLI** (3 reviewers): `gpt-5.4` (edge cases, different perspective) + `claude-opus-5` + `claude-sonnet-5` (Fable 5 is not offered on Copilot CLI)
|
|
460
458
|
- Triage: single top-tier pass over merged findings (`claude-fable-5` on Claude Code, `claude-opus-5` on Copilot CLI)
|
|
461
459
|
2. Collect findings, classify:
|
|
462
|
-
- 🔴 **Blocking** → must fix → back to Phase
|
|
460
|
+
- 🔴 **Blocking** → must fix → back to Phase 2 (max 3 iterations)
|
|
463
461
|
- 🟡 **Important** → fix and re-review
|
|
464
462
|
- 🟢 **Suggestion** → apply if reasonable
|
|
465
|
-
3. Log: `🔍 Phase
|
|
463
|
+
3. Log: `🔍 Phase 3: Review - {consensus}`
|
|
466
464
|
|
|
467
|
-
|
|
468
|
-
Lets the user
|
|
465
|
+
#### Phase 3 user test (optional, interactive)
|
|
466
|
+
Lets the user test the code before the PR. The prompt MUST say that yes **removes the worktree and checks the branch out locally**, or the side effect is implicit.
|
|
469
467
|
|
|
470
|
-
0. **Test Gap Report (advisory, v8.3+)** - before the local-checkout prompt run `node $HOME/.claude/scripts/test-gap-scan.mjs --base "$BASE_BRANCH" --stack <ios|android|python|node>` to surface public symbols added in this branch that have no paired test. Heuristic, deterministic, sub-second, never gates by default. iOS `*View.swift` / Android `@Composable` symbols default to `important` severity; other public API additions to `suggestion`. Optional gating via `prefs.testGap.blockingThreshold` (loops back to Phase
|
|
468
|
+
0. **Test Gap Report (advisory, v8.3+)** - before the local-checkout prompt run `node $HOME/.claude/scripts/test-gap-scan.mjs --base "$BASE_BRANCH" --stack <ios|android|python|node>` to surface public symbols added in this branch that have no paired test. Heuristic, deterministic, sub-second, never gates by default. iOS `*View.swift` / Android `@Composable` symbols default to `important` severity; other public API additions to `suggestion`. Optional gating via `prefs.testGap.blockingThreshold` (loops back to Phase 2 rework when the important+blocking count exceeds the threshold). Disabled when `prefs.testGap.enabled = false`.
|
|
471
469
|
1. **Ask** with a native `AskUserQuestion` picker (never a typed y/N prompt). The options MUST make the local-checkout side effect explicit - testing removes the worktree and checks the branch out into the main repo:
|
|
472
470
|
- `question`: "Check out locally to test now?" (rendered in `outputLanguage`)
|
|
473
471
|
- `header`: "Test" (English, <=12 chars)
|
|
474
472
|
- `options`:
|
|
475
473
|
- `{ label: "Test now", description: "Removes the worktree and checks the branch out into the main repo for Xcode / manual test" }`
|
|
476
|
-
- `{ label: "Skip", description: "Stay in the worktree and go to Phase
|
|
477
|
-
- **Skip** → go to Phase
|
|
474
|
+
- `{ label: "Skip", description: "Stay in the worktree and go to Phase 4" }`
|
|
475
|
+
- **Skip** → go to Phase 4
|
|
478
476
|
- **Test now** → continue:
|
|
479
477
|
2. **Remove the worktree and switch to the branch** (automatic):
|
|
480
478
|
```bash
|
|
@@ -491,18 +489,18 @@ Lets the user physically test the code before opening a PR. The prompt MUST make
|
|
|
491
489
|
• Xcode → open the app's `.xcworkspace` → Cmd+B → Cmd+U
|
|
492
490
|
• Manual test on the Simulator
|
|
493
491
|
|
|
494
|
-
✅ "tamam" → proceeds to Phase
|
|
495
|
-
❌ "fix: ..." → worktree is recreated, returns to Phase
|
|
492
|
+
✅ "tamam" → proceeds to Phase 4
|
|
493
|
+
❌ "fix: ..." → worktree is recreated, returns to Phase 2
|
|
496
494
|
```
|
|
497
495
|
4. **Pause and wait**: Wait for the user's response
|
|
498
496
|
5. **If a fix is needed**:
|
|
499
497
|
- Recreate the worktree: `git worktree add .worktrees/PROJ-{id} {branch-name}`
|
|
500
|
-
- Return to Phase
|
|
501
|
-
6. Log: `🧪 Phase
|
|
498
|
+
- Return to Phase 2
|
|
499
|
+
6. Log: `🧪 Phase 3: Review (user test) - {result}`
|
|
502
500
|
|
|
503
501
|
> ⚠️ Commits live on the branch - removing the worktree does NOT delete the commits.
|
|
504
502
|
|
|
505
|
-
### Phase
|
|
503
|
+
### Phase 4: Commit & PR
|
|
506
504
|
|
|
507
505
|
**Project-specific commit strategy:**
|
|
508
506
|
|
|
@@ -513,7 +511,7 @@ Lets the user physically test the code before opening a PR. The prompt MUST make
|
|
|
513
511
|
2. Run `/figma-iteration-commit {ComponentName}`
|
|
514
512
|
- Build verification, test, key sync, code review, submodule commits to `iteration/develop`, push with rebase-retry, issue housekeeping, auto-unblock dependents - the skill handles all of it
|
|
515
513
|
- Do NOT commit manually - the skill manages everything
|
|
516
|
-
3. Log: `📦 Phase
|
|
514
|
+
3. Log: `📦 Phase 4: figma-iteration-commit - {ComponentName}`
|
|
517
515
|
|
|
518
516
|
#### my-app / generic
|
|
519
517
|
1. **Ask**: "Want to commit?"
|
|
@@ -524,15 +522,15 @@ Lets the user physically test the code before opening a PR. The prompt MUST make
|
|
|
524
522
|
- Author: resolved from `prefs.global.identities[]` (e.g. `Ada Lovelace <ada@example.com>`) - NEVER hardcode.
|
|
525
523
|
4. Push to remote
|
|
526
524
|
5. **Ask**: "Want to open a Pull Request?"
|
|
527
|
-
- **No** → go to Phase
|
|
525
|
+
- **No** → go to Phase 5 (only commit + push will have been done)
|
|
528
526
|
- **Yes** → create the PR (target: source branch)
|
|
529
527
|
6. **Issue body update** (if GitHub Issue exists):
|
|
530
528
|
- Fill PR links in issue body: `- **common:** {PR URL}`, `- **uicomponents:** {PR URL}`
|
|
531
529
|
- Update Progress flags: `Implementation 🟢`, `Testing 🟢`, `Code Connect 🟢`
|
|
532
530
|
- Use `gh issue edit {issueNo} --body "{updated body}"` - preserve all existing sections
|
|
533
|
-
7. Log: `📦 Phase
|
|
531
|
+
7. Log: `📦 Phase 4: Commit {sha} - PR #{number}`
|
|
534
532
|
|
|
535
|
-
### Phase
|
|
533
|
+
### Phase 5 Report Step 2: WIKI + Figma Screenshots (for component tasks with GitHub Issue)
|
|
536
534
|
|
|
537
535
|
Skip this sub-step if the task is NOT a component implementation (e.g., bug fix, refactor).
|
|
538
536
|
|
|
@@ -566,9 +564,9 @@ Skip this sub-step if the task is NOT a component implementation (e.g., bug fix,
|
|
|
566
564
|
git push origin HEAD:master
|
|
567
565
|
```
|
|
568
566
|
7. **Update issue Wiki flag**: Set `Wiki` → `🟢` in issue body
|
|
569
|
-
8. Log: `📖 Phase
|
|
567
|
+
8. Log: `📖 Phase 5 Step 2: Wiki - {ComponentName}.md + {ComponentName}-iOS.md + screenshot`
|
|
570
568
|
|
|
571
|
-
### Phase
|
|
569
|
+
### Phase 5: Report
|
|
572
570
|
1. Finalize `agent-log.md` with ALL sections:
|
|
573
571
|
- **Timeline table**: phase, agent, model, duration, status, detail
|
|
574
572
|
- **Agent Activity Report**: per-agent call count, total duration, models used, skill count
|
|
@@ -586,7 +584,7 @@ Skip this sub-step if the task is NOT a component implementation (e.g., bug fix,
|
|
|
586
584
|
📖 Wiki: {ComponentName}.md pushed to wiki master
|
|
587
585
|
📋 Full report: ~/.claude/logs/multi-agent/{project}/{task-id}/agent-log.md
|
|
588
586
|
```
|
|
589
|
-
3. Log: `📋 Phase
|
|
587
|
+
3. Log: `📋 Phase 5: Report complete`
|
|
590
588
|
|
|
591
589
|
---
|
|
592
590
|
|
|
@@ -635,27 +633,27 @@ Sub-agents have embedded skills in their `.agent.md` files. Each agent is pre-lo
|
|
|
635
633
|
|
|
636
634
|
| Agent | Embedded Skills | When Activated |
|
|
637
635
|
|-------|----------------|----------------|
|
|
638
|
-
| **code-reviewer** | Code Review Excellence, Security Audit, Performance Review, TDD Verification, Error Detective | Phase
|
|
639
|
-
| **ios-architect** | Spec-Driven Architecture, Context Management, Multi-Agent Coordination, API Design, Performance Architecture, Design System Governance | Phase
|
|
640
|
-
| **security-auditor** | iOS Security Deep Dive, App Store Review Gates, Third-Party SDK Risk, Error Detective (Security) | Phase 1:
|
|
636
|
+
| **code-reviewer** | Code Review Excellence, Security Audit, Performance Review, TDD Verification, Error Detective | Phase 3: Review |
|
|
637
|
+
| **ios-architect** | Spec-Driven Architecture, Context Management, Multi-Agent Coordination, API Design, Performance Architecture, Design System Governance | Phase 1: Plan |
|
|
638
|
+
| **security-auditor** | iOS Security Deep Dive, App Store Review Gates, Third-Party SDK Risk, Error Detective (Security) | Phase 1: Plan (analysis half, pre-check) + Phase 3: Review |
|
|
641
639
|
|
|
642
640
|
### Phase → Agent → Skills Flow
|
|
643
641
|
|
|
644
642
|
```
|
|
645
|
-
Phase 1:
|
|
643
|
+
Phase 1: Plan - analysis half
|
|
646
644
|
├─ explore agents (no skills needed - pure file reading)
|
|
647
645
|
└─ security-auditor agent
|
|
648
646
|
└─ Skills: iOS Security Deep Dive, App Store Review Gates, SDK Risk
|
|
649
647
|
|
|
650
|
-
Phase
|
|
648
|
+
Phase 1: Plan - planning half
|
|
651
649
|
└─ ios-architect agent
|
|
652
650
|
└─ Skills: Spec-Driven Architecture, API Design, Performance Architecture
|
|
653
651
|
|
|
654
|
-
Phase
|
|
652
|
+
Phase 2: Dev
|
|
655
653
|
└─ Ana agent (reads copilot-instructions.md directly)
|
|
656
654
|
└─ TDD, token rules, code style - from global instructions
|
|
657
655
|
|
|
658
|
-
Phase
|
|
656
|
+
Phase 3: Review (parallel + triage)
|
|
659
657
|
Claude Code (3 parallel):
|
|
660
658
|
├─ code-reviewer (claude-opus) → all 5 review skills
|
|
661
659
|
└─ code-reviewer (claude-sonnet) → all 5 review skills
|
|
@@ -671,13 +669,13 @@ Phase 4: Review (parallel + triage)
|
|
|
671
669
|
When calling sub-agents, the ana agent SHOULD add task-specific context to the prompt:
|
|
672
670
|
|
|
673
671
|
```
|
|
674
|
-
For code-reviewer in Phase
|
|
672
|
+
For code-reviewer in Phase 3:
|
|
675
673
|
"Review this diff for PROJ-{id}. Focus areas based on analysis:
|
|
676
674
|
- {files changed summary from Phase 1}
|
|
677
|
-
- {architecture decisions from Phase
|
|
675
|
+
- {architecture decisions from Phase 1}
|
|
678
676
|
- {specific risk areas identified}"
|
|
679
677
|
|
|
680
|
-
For ios-architect in Phase
|
|
678
|
+
For ios-architect in Phase 1:
|
|
681
679
|
"Evaluate architecture for PROJ-{id}. Context:
|
|
682
680
|
- {task description from Jira/GitHub}
|
|
683
681
|
- {affected modules from Phase 1 analysis}
|
|
@@ -697,9 +695,9 @@ When `multi-agent status` is called, show:
|
|
|
697
695
|
|
|
698
696
|
| ID | Jira | Branch | Phase | Status | Duration |
|
|
699
697
|
|----|------|--------|-------|--------|----------|
|
|
700
|
-
| #1 | PROJ-12345 | feature/PROJ-12345-... |
|
|
701
|
-
| #2 | PROJ-67890 | feature/PROJ-67890-... |
|
|
702
|
-
| #3 | PROJ-11111 | feature/PROJ-11111-... |
|
|
698
|
+
| #1 | PROJ-12345 | feature/PROJ-12345-... | 2/5 Dev | ⚡ todo-2 in progress | 4m |
|
|
699
|
+
| #2 | PROJ-67890 | feature/PROJ-67890-... | 3/5 Review | 🔍 Waiting consensus | 7m |
|
|
700
|
+
| #3 | PROJ-11111 | feature/PROJ-11111-... | 5/5 DONE | ✅ Complete | 12m |
|
|
703
701
|
|
|
704
702
|
💡 kill #2 | log #1 | resume #3
|
|
705
703
|
```
|
|
@@ -17,9 +17,9 @@ Run the task end-to-end with no confirmations.
|
|
|
17
17
|
| Phase | Normal | Autopilot |
|
|
18
18
|
|-----|--------|-----------|
|
|
19
19
|
| Phase 2 (Plan) | "Shall I continue?" → wait | Go straight to Phase 3 |
|
|
20
|
-
| Phase 5 (Test) | "Do you want to test?" → wait | Skip → Phase
|
|
21
|
-
| Phase
|
|
22
|
-
| Phase
|
|
20
|
+
| Phase 5 (Test) | "Do you want to test?" → wait | Skip → Phase 4 |
|
|
21
|
+
| Phase 4 (Commit) | "Shall I commit?" → wait | Automatic commit + push |
|
|
22
|
+
| Phase 4 (PR) | "Shall I open a PR?" → wait | Create PR automatically |
|
|
23
23
|
|
|
24
24
|
## What is NEVER skipped
|
|
25
25
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent-channels
|
|
3
3
|
language: en
|
|
4
|
-
description: "Multi-channel reporter - Jira/Confluence/Wiki/PR description. Multi-select channels + content, humanizer pass, reviewer-preserving Bitbucket PR PUT. Phase
|
|
4
|
+
description: "Multi-channel reporter - Jira/Confluence/Wiki/PR description. Multi-select channels + content, humanizer pass, reviewer-preserving Bitbucket PR PUT. Phase 5 delegates to this skill; users can invoke post-hoc by Jira ID / PR URL / branch."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
argument-hint: '<Jira-id | PR-url | #N | Jira-url> [--channels pr,jira,confluence,wiki] [--content normal,technical,test,auto-diff,note] [--message "..."] [--message-file path] [--dry-run] [--append] [--ready]'
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# multi-agent-channels - Multi-Channel Reporter
|
|
10
10
|
|
|
11
|
-
> **TLDR** - Single entry point for posting task reports to external channels. Supports Jira, Confluence, Wiki (component-only), and PR description updates. Multi-select channels × multi-select content sources. Phase
|
|
11
|
+
> **TLDR** - Single entry point for posting task reports to external channels. Supports Jira, Confluence, Wiki (component-only), and PR description updates. Multi-select channels × multi-select content sources. Phase 5 of the pipeline delegates to this skill; users can also invoke it post-hoc by Jira ID / PR URL / branch.
|
|
12
12
|
>
|
|
13
13
|
> **Replaces the old enrich skill in v5.7+** - all enrich capabilities (diff auto-summarize, manual mode, reviewer-preserving Bitbucket PR PUT) are preserved and extended with two additional channels (Confluence, Wiki).
|
|
14
14
|
|
|
@@ -39,7 +39,7 @@ multi-agent-channels PROJ-12345 --dry-run # preview, no POST
|
|
|
39
39
|
1. **Target resolution** - Parse argument, classify (Jira-id, Jira-url, PR-url GitHub or Bitbucket, GitHub-issue-number, empty→cwd+branch). Resolve linked entities (Jira→PR, PR→Jira). Detect remote type.
|
|
40
40
|
2. **Context source detection** - auto-pick best available: pipeline log (`$HOME/.claude/logs/multi-agent/<project>/<task-id>/agent-log.md` matching jiraId), PR diff (`gh pr diff` or Bitbucket `/diff?contextLines=5`), or manual `--message`.
|
|
41
41
|
3. **Menu (multi-select)** - channel + content, previous selections pre-ticked from `prefs.global.reportChannels` + `prefs.global.reportContent`. Greyed-out rules per context availability.
|
|
42
|
-
4. **Mode short-circuit** - `--channels X,Y` + `--content A,B` flags skip menu. Autopilot ALWAYS pauses at the menu (v5.7+ Phase
|
|
42
|
+
4. **Mode short-circuit** - `--channels X,Y` + `--content A,B` flags skip menu. Autopilot ALWAYS pauses at the menu (v5.7+ Phase 5 exception).
|
|
43
43
|
5. **Generator** - for each selected content source, produce a section body. Humanizer pass per channel separately.
|
|
44
44
|
6. **Body preview + approval gate** - interactive runs render every selected channel's final body and ask Approve & post / Edit (loop) / Skip channels / Cancel BEFORE any external write. Skipped only by autopilot and `--dry-run`. What is posted is byte-identical to the approved preview.
|
|
45
45
|
7. **Channel dispatch** - parallel adapter calls, never before the gate resolves: PR description (reviewer-preserving PUT on Bitbucket), Jira comment (wiki markup), Confluence page (storage format + parent page), Wiki (component adapter - Case A scope multi-select or Case B precondition menu).
|
|
@@ -69,7 +69,7 @@ Rendered in English (`promptLanguage` is locked to `en`).
|
|
|
69
69
|
**Greyed-out rules:**
|
|
70
70
|
- Wiki unselectable unless `state.taskType === "component"` AND `figmaConfig.wiki.enabled === true`.
|
|
71
71
|
- Normal analiz + Test senaryoları unselectable if no pipeline log found.
|
|
72
|
-
- Teknik analiz unselectable if no Phase
|
|
72
|
+
- Teknik analiz unselectable if no Phase 1 planning log AND no PR diff.
|
|
73
73
|
- Auto-diff unselectable if no PR found.
|
|
74
74
|
- Manuel not always available.
|
|
75
75
|
|
|
@@ -192,9 +192,9 @@ forgotten, and that is how the selector above shipped.
|
|
|
192
192
|
|
|
193
193
|
### Technical Details ← if "Teknik analiz" selected
|
|
194
194
|
#### Changes
|
|
195
|
-
{Per changed-file-group, what changed + why - from Phase
|
|
195
|
+
{Per changed-file-group, what changed + why - from Phase 2 dev log}
|
|
196
196
|
#### Architecture
|
|
197
|
-
{Structural decisions, pattern changes - from Phase
|
|
197
|
+
{Structural decisions, pattern changes - from Phase 1 plan}
|
|
198
198
|
#### Dependencies
|
|
199
199
|
{New imports / frameworks / packages - from git diff --stat, or "None"}
|
|
200
200
|
|
|
@@ -290,16 +290,16 @@ Target length: < 80 lines (fits one screen). Auto-diff capped at 5 lines per sec
|
|
|
290
290
|
| Jira token missing/expired | Token Save Flow inline; skip on user-skip |
|
|
291
291
|
| Wiki preconditions not met | Case B menu per `refs/wiki-capture.md` |
|
|
292
292
|
|
|
293
|
-
## Phase
|
|
293
|
+
## Phase 5 delegation contract
|
|
294
294
|
|
|
295
|
-
Phase
|
|
295
|
+
Phase 5 builds a state bundle and invokes this skill internally. Responsibilities:
|
|
296
296
|
|
|
297
297
|
| Who | What |
|
|
298
298
|
|---|---|
|
|
299
|
-
| Phase
|
|
299
|
+
| Phase 5 | Progress tracker (3 sub-steps), agent-log finalization, knowledge+memory capture, telemetry emission |
|
|
300
300
|
| `multi-agent-channels` | All external delivery: PR description update, Jira comment, Confluence page, Wiki pages |
|
|
301
301
|
|
|
302
|
-
**State bundle** passed from Phase
|
|
302
|
+
**State bundle** passed from Phase 5:
|
|
303
303
|
```json
|
|
304
304
|
{
|
|
305
305
|
"jiraId": "PROJ-12345",
|
|
@@ -313,7 +313,7 @@ Phase 7 builds a state bundle and invokes this skill internally. Responsibilitie
|
|
|
313
313
|
}
|
|
314
314
|
```
|
|
315
315
|
|
|
316
|
-
**Autopilot pause contract:** Phase
|
|
316
|
+
**Autopilot pause contract:** Phase 5 ALWAYS pauses at the channels menu - 30-min timeout → session ends cleanly → resumable via `/multi-agent:resume`. Full contract in `refs/phases/modes.md` + `refs/phases/phase-5-report.md`.
|
|
317
317
|
|
|
318
318
|
## Cross-CLI parity
|
|
319
319
|
|
|
@@ -322,12 +322,12 @@ Prompts MUST be byte-identical between Claude and Copilot. `smoke-cross-cli-beha
|
|
|
322
322
|
Progress emission on Copilot (no native TaskCreate UI):
|
|
323
323
|
|
|
324
324
|
```bash
|
|
325
|
-
bash ~/.copilot/scripts/phase-tracker.sh sub
|
|
325
|
+
bash ~/.copilot/scripts/phase-tracker.sh sub 5 1 "Channels dispatch" in_progress
|
|
326
326
|
# ... adapter runs ...
|
|
327
|
-
bash ~/.copilot/scripts/phase-tracker.sh sub
|
|
327
|
+
bash ~/.copilot/scripts/phase-tracker.sh sub 5 1 "Channels dispatch" completed
|
|
328
328
|
```
|
|
329
329
|
|
|
330
|
-
Same shape as Phase
|
|
330
|
+
Same shape as Phase 5 sub-step tracking.
|
|
331
331
|
|
|
332
332
|
## Examples
|
|
333
333
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent-diff-explain
|
|
3
3
|
language: en
|
|
4
|
-
description: "Map Phase
|
|
4
|
+
description: "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 code change'. Use when a review finding has to be traced to the exact lines that caused it."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
argument-hint: "[#task-id | --triage <path> | --state <path>] [--branch <name>] [--base <name>]"
|
|
7
7
|
---
|
|
@@ -10,12 +10,12 @@ argument-hint: "[#task-id | --triage <path> | --state <path>] [--branch <name>]
|
|
|
10
10
|
|
|
11
11
|
**Input**: $ARGUMENTS
|
|
12
12
|
|
|
13
|
-
Maps the Phase
|
|
13
|
+
Maps the Phase 3 triage output (`accepted` / `deferred` / `rejected`) to the branch's `git diff` output. For each finding, the relevant file/line hunk is embedded in the output. **Produces no side effects** - it only runs `git diff` and emits markdown.
|
|
14
14
|
|
|
15
15
|
## When to use it
|
|
16
16
|
|
|
17
17
|
- After Phase 4 but before Phase 5/6: to answer "which finding lines up with which code?".
|
|
18
|
-
- Phase
|
|
18
|
+
- Phase 5 reporting content: "review summary with code context" for Wiki / Confluence.
|
|
19
19
|
- Post-hoc audit: review-vs-fix comparison for a closed PR.
|
|
20
20
|
|
|
21
21
|
## Steps
|
|
@@ -40,7 +40,7 @@ Maps the Phase 4 triage output (`accepted` / `deferred` / `rejected`) to the bra
|
|
|
40
40
|
|
|
41
41
|
4. **Show the output to the user** and optionally add commentary:
|
|
42
42
|
- Phase 3 fix coverage: were all blocking findings touched
|
|
43
|
-
- Deferred follow-up: are they all on the Phase
|
|
43
|
+
- Deferred follow-up: are they all on the Phase 5 list
|
|
44
44
|
|
|
45
45
|
## Output template
|
|
46
46
|
|
|
@@ -57,7 +57,7 @@ Maps the Phase 4 triage output (`accepted` / `deferred` / `rejected`) to the bra
|
|
|
57
57
|
> Race condition: order total computed twice without lock
|
|
58
58
|
**Fix:** Compute total once inside the existing transaction block
|
|
59
59
|
\`\`\`diff
|
|
60
|
-
|
|
60
|
+
-98,5 +98,7 ...
|
|
61
61
|
\`\`\`
|
|
62
62
|
```
|
|
63
63
|
|
|
@@ -11,7 +11,7 @@ argument-hint: "[build | refresh | ask \"<question>\" | affected \"<symbol>\" |
|
|
|
11
11
|
|
|
12
12
|
A code graph is a map of what this repo declares and what refers to what, built by
|
|
13
13
|
regex over comment-stripped source. It exists so Phase 1 can narrow its Explore
|
|
14
|
-
fan-out and Phase
|
|
14
|
+
fan-out and Phase 5 can refresh `~/.claude/knowledge/<project>/` without an LLM
|
|
15
15
|
pass. It answers "where does this live" and "what depends on this". It does not
|
|
16
16
|
answer "what calls this at runtime": call graphs and type resolution need a real
|
|
17
17
|
parser, which would be an npm runtime dependency, and ADR-0004 forbids one.
|