@mmerterden/multi-agent-pipeline 14.1.1 → 14.2.2
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 +162 -0
- package/README.md +10 -6
- package/README.tr.md +143 -0
- package/docs/architecture.md +23 -8
- package/docs/ecosystem.md +237 -0
- package/install/_plugin-skills.mjs +16 -2
- package/install/codex.mjs +9 -4
- package/install/templates/copilot-instructions.md +12 -9
- package/package.json +1 -1
- package/pipeline/commands/deploy.md +4 -1
- package/pipeline/commands/multi-agent/SKILL.md +8 -5
- package/pipeline/commands/multi-agent/analysis/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/autopilot/SKILL.md +6 -2
- package/pipeline/commands/multi-agent/channels/SKILL.md +15 -4
- package/pipeline/commands/multi-agent/create-jira/SKILL.md +4 -4
- package/pipeline/commands/multi-agent/dev/SKILL.md +10 -23
- package/pipeline/commands/multi-agent/dev-autopilot/SKILL.md +10 -2
- package/pipeline/commands/multi-agent/dev-local/SKILL.md +10 -24
- package/pipeline/commands/multi-agent/dev-local-autopilot/SKILL.md +10 -3
- package/pipeline/commands/multi-agent/help/SKILL.md +49 -11
- package/pipeline/commands/multi-agent/jira/SKILL.md +13 -2
- package/pipeline/commands/multi-agent/language/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/local/SKILL.md +6 -2
- package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +6 -2
- package/pipeline/commands/multi-agent/log/SKILL.md +7 -1
- package/pipeline/commands/multi-agent/setup/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/ship/SKILL.md +5 -1
- package/pipeline/commands/multi-agent/store-ready/SKILL.md +340 -0
- package/pipeline/commands/multi-agent/sync/SKILL.md +7 -6
- package/pipeline/commands/multi-agent/test/SKILL.md +18 -8
- package/pipeline/commands/multi-agent/test-accessibility/SKILL.md +33 -0
- package/pipeline/commands/multi-agent/test-dark-mode/SKILL.md +33 -0
- package/pipeline/commands/multi-agent/test-dynamic-type/SKILL.md +33 -0
- package/pipeline/commands/multi-agent/test-screenshots/SKILL.md +41 -0
- package/pipeline/commands/multi-agent/testflight-validation/SKILL.md +28 -201
- package/pipeline/commands/multi-agent/update/SKILL.md +1 -1
- package/pipeline/commands/sim-test.md +45 -36
- package/pipeline/lib/extract-conventions.sh +44 -15
- package/pipeline/lib/fetch-figma-annotations.sh +8 -1
- package/pipeline/lib/fetch-fortify.sh +23 -8
- package/pipeline/lib/figma-screenshot.sh +11 -1
- package/pipeline/lib/issue-fetcher.sh +76 -9
- package/pipeline/lib/md2confluence-v3.py +16 -2
- package/pipeline/lib/plan-todos.sh +5 -2
- package/pipeline/lib/post-pr-review.sh +8 -6
- package/pipeline/lib/shadow-git.sh +50 -9
- package/pipeline/lib/submodule-detector.sh +8 -1
- package/pipeline/multi-agent-refs/_input-parser.md +1 -1
- package/pipeline/multi-agent-refs/channels/confluence.md +3 -0
- package/pipeline/multi-agent-refs/channels/issue-comment.md +2 -2
- package/pipeline/multi-agent-refs/channels/jira.md +13 -2
- package/pipeline/multi-agent-refs/channels/pr-review-actions.md +1 -1
- package/pipeline/multi-agent-refs/channels/pr.md +20 -0
- package/pipeline/multi-agent-refs/channels/wiki.md +1 -1
- package/pipeline/multi-agent-refs/cross-cli-contract.md +6 -5
- package/pipeline/multi-agent-refs/features/worktree-finalize.md +1 -1
- package/pipeline/multi-agent-refs/generate-issue.md +2 -2
- package/pipeline/multi-agent-refs/issue-jira-triad.md +3 -3
- package/pipeline/multi-agent-refs/knowledge.md +1 -1
- package/pipeline/multi-agent-refs/payload-contracts.md +67 -0
- package/pipeline/multi-agent-refs/phases/modes.md +20 -0
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +2 -2
- package/pipeline/multi-agent-refs/phases/phase-6-commit.md +8 -40
- package/pipeline/multi-agent-refs/phases/phase-7-report.md +5 -3
- package/pipeline/multi-agent-refs/phases.md +6 -0
- package/pipeline/multi-agent-refs/rules.md +2 -0
- package/pipeline/schemas/prefs.schema.json +2 -2
- package/pipeline/scripts/audit-log-rotate.sh +10 -0
- package/pipeline/scripts/build-stack-plugins.mjs +8 -1
- package/pipeline/scripts/check-derived-drift.mjs +13 -1
- package/pipeline/scripts/diff-explain.mjs +41 -3
- package/pipeline/scripts/diff-risk-score.mjs +72 -8
- package/pipeline/scripts/gen-mode-dispatch.mjs +1 -1
- package/pipeline/scripts/learning-curve.mjs +8 -2
- package/pipeline/scripts/output-quality-check.sh +15 -4
- package/pipeline/scripts/phase-tracker.sh +21 -8
- package/pipeline/scripts/pre-commit-check.sh +69 -22
- package/pipeline/scripts/render-agent-log-cost.sh +8 -3
- package/pipeline/scripts/render-cost-summary.sh +42 -22
- package/pipeline/scripts/render-work-summary.sh +47 -13
- package/pipeline/scripts/review-scope.mjs +1 -1
- package/pipeline/scripts/run-aggregator.mjs +38 -14
- package/pipeline/scripts/smoke-schema-validation.sh +5 -1
- package/pipeline/scripts/test-gap-scan.mjs +45 -6
- package/pipeline/scripts/uninstall.mjs +39 -4
- package/pipeline/scripts/update-issue-progress.sh +12 -16
- package/pipeline/scripts/worktree-finalize.sh +23 -2
- package/pipeline/skills/.skills-index.json +58 -4
- package/pipeline/skills/shared/README.md +12 -7
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +13 -17
- package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +4 -0
- package/pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +4 -17
- package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +8 -0
- package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +5 -18
- package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +8 -0
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +50 -12
- package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +4 -0
- package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +4 -0
- package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +18 -3
- package/pipeline/skills/shared/core/multi-agent-ship/SKILL.md +4 -0
- package/pipeline/skills/shared/core/multi-agent-store-ready/SKILL.md +50 -0
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +6 -5
- package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +18 -8
- package/pipeline/skills/shared/core/multi-agent-test-accessibility/SKILL.md +37 -0
- package/pipeline/skills/shared/core/multi-agent-test-dark-mode/SKILL.md +37 -0
- package/pipeline/skills/shared/core/multi-agent-test-dynamic-type/SKILL.md +37 -0
- package/pipeline/skills/shared/core/multi-agent-test-screenshots/SKILL.md +44 -0
- package/pipeline/skills/shared/core/multi-agent-testflight-validation/SKILL.md +29 -101
- package/pipeline/skills/shared/external/firebase/SKILL.md +1 -1
- package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +302 -0
- package/pipeline/skills/shared/external/localization-reuse-map/example-mapping.json +144 -0
- package/pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md +156 -0
- package/pipeline/skills/shared/external/localization-reuse-map/reference/publish-and-snapshot.md +108 -0
- package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +175 -0
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py +865 -0
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-spreadsheet.py +335 -0
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-annotations.py +344 -0
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-legacy-labels.py +130 -0
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/publish-confluence.py +264 -0
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-key-shots.py +298 -0
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-overlay.py +529 -0
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-legacy-values.py +187 -0
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +171 -0
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/scan-screen-keys.py +184 -0
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/snapshot-resources.sh +26 -0
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/verify-map.py +173 -0
- package/pipeline/skills/skills-index.md +10 -4
|
@@ -7,7 +7,7 @@ description-tr: "En hızlı mod: Dev (Opus) + Autopilot. Init → Dev → Review
|
|
|
7
7
|
|
|
8
8
|
**Input**: $ARGUMENTS
|
|
9
9
|
|
|
10
|
-
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` and external
|
|
10
|
+
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` `label`/`header` stay English, but its `question` and option `description`s render in `outputLanguage`; external payload bodies follow `outputLanguage` too (identifiers, commit messages, branch names stay English). Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
11
11
|
|
|
12
12
|
Dev mode + Autopilot combined: a 4-phase pipeline with no confirmations, end-to-end autonomous.
|
|
13
13
|
|
|
@@ -59,6 +59,14 @@ Phase 7: Report → short terminal summary
|
|
|
59
59
|
| Review | Parallel + triage (CLI-aware) | Parallel + triage (CLI-aware) | Parallel + triage (CLI-aware) | **Parallel + triage, auto-fix** |
|
|
60
60
|
| Blocking finding | Fix loop, then ask | Fix loop, then ask | Auto-fix, breaker at 3 | **Auto-fix, breaker at 3** |
|
|
61
61
|
| Estimated duration | ~12 min | ~7 min | ~10 min | **~5 min** |
|
|
62
|
+
## Intake warnings (`--dev` family)
|
|
63
|
+
|
|
64
|
+
Two checks belong at the top of every `--dev` run and are specified once in `$HOME/.claude/multi-agent-refs/phases/modes.md` "Intake warnings shared by the whole `--dev` family": an analysis document supplied to a mode that skips Analysis and Planning, and a branch that already carries the work (which wants `/multi-agent:ship`, not a second Dev pass). Read that section rather than reasoning about it from scratch.
|
|
65
|
+
|
|
66
|
+
## Required: outward-facing payload contracts
|
|
67
|
+
|
|
68
|
+
Before writing anything outward-facing - PR body, Jira comment, Confluence page, closing report - load `$HOME/.claude/multi-agent-refs/payload-contracts.md`. It names the canonical section set for each payload, the markup dialect per surface (PR body is Markdown, Jira is wiki markup - mixing them is a defect), and the token/duration numbers the closing report must carry. Improvising a payload shape from memory is the most common failure of the short modes.
|
|
69
|
+
|
|
62
70
|
## Required: Phase Tracker Contract
|
|
63
71
|
|
|
64
72
|
**The phase tracker is mandatory** - the agent cannot skip it. Full spec: [`$HOME/.claude/multi-agent-refs/tracker-contract.md`]($HOME/.claude/multi-agent-refs/tracker-contract.md).
|
|
@@ -82,7 +90,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh update 0 in_progress
|
|
|
82
90
|
bash $HOME/.claude/scripts/phase-tracker.sh update <N> in_progress|completed|failed|skipped
|
|
83
91
|
|
|
84
92
|
# After every LLM call (every CLI):
|
|
85
|
-
bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out>
|
|
93
|
+
bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out> [cached]
|
|
86
94
|
```
|
|
87
95
|
|
|
88
96
|
### Visual channel - Claude Code (native TaskList widget, required)
|
|
@@ -6,7 +6,7 @@ allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdat
|
|
|
6
6
|
|
|
7
7
|
# multi-agent dev-local - Fast + Local
|
|
8
8
|
|
|
9
|
-
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` and external
|
|
9
|
+
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` `label`/`header` stay English, but its `question` and option `description`s render in `outputLanguage`; external payload bodies follow `outputLanguage` too (identifiers, commit messages, branch names stay English). Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
10
10
|
|
|
11
11
|
Dedicated form of the `--dev` + `--local` combination. A 4-phase fast pipeline (no worktree).
|
|
12
12
|
|
|
@@ -22,7 +22,6 @@ Phase 7: Report → Jira / Wiki + log + knowledge/memory
|
|
|
22
22
|
|
|
23
23
|
`--dev local` skips Phase 1 (Analysis), Phase 2 (Planning + Approval Gate), and Phase 5 (User Test - local/autopilot variants skip the interactive test gate). It differs from `--dev` on two axes: no git worktree is created (development happens directly on the current branch in `$PROJECT_ROOT`), and the interactive User Test phase is skipped. **Review is not skipped** - Phase 4 runs its gates, resolves the criteria the dev phase was supposed to honour, reviews in parallel and triages, and accepted blocking findings return to Phase 3 (3-iteration cap).
|
|
24
24
|
|
|
25
|
-
> **Already have work on the branch?** For changes developed outside the pipeline, or by hand, run [`/multi-agent:ship`](../ship/SKILL.md) on that branch: it puts the existing diff through the same review, adds a build+test success gate, opens the PR and posts the Jira technical-analysis + test-scenario comment - without re-developing.
|
|
26
25
|
|
|
27
26
|
## When to use it
|
|
28
27
|
|
|
@@ -52,7 +51,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh update 0 in_progress
|
|
|
52
51
|
bash $HOME/.claude/scripts/phase-tracker.sh update <N> in_progress|completed|failed|skipped
|
|
53
52
|
|
|
54
53
|
# After every LLM call (every CLI):
|
|
55
|
-
bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out>
|
|
54
|
+
bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out> [cached]
|
|
56
55
|
```
|
|
57
56
|
|
|
58
57
|
### Visual channel - Claude Code (native TaskList widget, required)
|
|
@@ -105,30 +104,17 @@ Routes to the orchestrator with `--dev --local` flags. Apply the `$HOME/.claude/
|
|
|
105
104
|
- Phase 6: commit + push + PR (the local checkout prompt is natural in local mode - you're already there; no worktree removal needed, code is already in `$PROJECT_ROOT`)
|
|
106
105
|
- Phase 7: report + channels (same as `--dev`)
|
|
107
106
|
|
|
108
|
-
##
|
|
107
|
+
## Intake warnings (`--dev` family)
|
|
109
108
|
|
|
110
|
-
|
|
111
|
-
/multi-agent:dev-local "PROJ-12345" # Jira
|
|
112
|
-
/multi-agent:dev-local "Bug: LoginView dark mode" # Free-text
|
|
113
|
-
```
|
|
109
|
+
Two checks belong at the top of every `--dev` run and are specified once in `$HOME/.claude/multi-agent-refs/phases/modes.md` "Intake warnings shared by the whole `--dev` family": an analysis document supplied to a mode that skips Analysis and Planning, and a branch that already carries the work (which wants `/multi-agent:ship`, not a second Dev pass). Read that section rather than reasoning about it from scratch.
|
|
114
110
|
|
|
115
|
-
##
|
|
111
|
+
## Required: outward-facing payload contracts
|
|
116
112
|
|
|
117
|
-
|
|
118
|
-
the input references an analysis document - a Confluence URL, a local analysis file,
|
|
119
|
-
or the user says "I ran analysis for this" - there is **no phase that turns it into a
|
|
120
|
-
plan**. The doc becomes raw context for one Dev pass, and work comes out ordered by
|
|
121
|
-
whatever the model read first: the bottom of the dependency chain lands, the screen
|
|
122
|
-
wiring does not.
|
|
113
|
+
Skipping Analysis and Planning does not shorten the payload contracts. Before writing anything outward-facing, load `$HOME/.claude/multi-agent-refs/payload-contracts.md` - the canonical list of what to read for the PR body, the Jira comment, and the closing report, plus the markup dialect per surface. Improvising a payload shape from memory is the single most common failure of the fast modes.
|
|
123
114
|
|
|
124
|
-
|
|
115
|
+
## Examples
|
|
125
116
|
|
|
117
|
+
```bash
|
|
118
|
+
/multi-agent:dev-local "PROJ-12345" # Jira
|
|
119
|
+
/multi-agent:dev-local "Bug: LoginView dark mode" # Free-text
|
|
126
120
|
```
|
|
127
|
-
This mode skips Analysis and Planning, so the analysis document will not be turned
|
|
128
|
-
into a task breakdown. For analysis-driven screen work, /multi-agent or
|
|
129
|
-
/multi-agent:local run both phases.
|
|
130
|
-
1. Continue with --dev (doc as context only)
|
|
131
|
-
2. Switch to the full pipeline
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
Autopilot picks 1 and logs the warning rather than asking.
|
|
@@ -6,7 +6,7 @@ allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdat
|
|
|
6
6
|
|
|
7
7
|
# multi-agent dev-local-autopilot - Fastest + Local
|
|
8
8
|
|
|
9
|
-
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` and external
|
|
9
|
+
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` `label`/`header` stay English, but its `question` and option `description`s render in `outputLanguage`; external payload bodies follow `outputLanguage` too (identifiers, commit messages, branch names stay English). Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
10
10
|
|
|
11
11
|
The triple `--dev` + `--local` + `autopilot` - the fastest form available. Zero confirmations, NO worktree.
|
|
12
12
|
|
|
@@ -38,7 +38,6 @@ Phase 1 (Analysis), Phase 2 (Planning + Approval Gate) and Phase 5 (User Test) a
|
|
|
38
38
|
|
|
39
39
|
Routes to the orchestrator with `--dev --local autopilot` flags. The pipeline contract matches [`dev-autopilot/SKILL.md`](../dev-autopilot/SKILL.md) exactly, with Phase 0 Step 8 (worktree creation) skipped.
|
|
40
40
|
|
|
41
|
-
> **Already have work on the branch?** For a diff that exists without a pipeline run behind it, [`/multi-agent:ship`](../ship/SKILL.md) applies the same review plus a build+test gate before the PR.
|
|
42
41
|
|
|
43
42
|
## Examples
|
|
44
43
|
|
|
@@ -46,6 +45,14 @@ Routes to the orchestrator with `--dev --local autopilot` flags. The pipeline co
|
|
|
46
45
|
/multi-agent:dev-local-autopilot "PROJ-12345" # Jira
|
|
47
46
|
/multi-agent:dev-local-autopilot "Add retry to HomeNetworking" # Free-text
|
|
48
47
|
```
|
|
48
|
+
## Intake warnings (`--dev` family)
|
|
49
|
+
|
|
50
|
+
Two checks belong at the top of every `--dev` run and are specified once in `$HOME/.claude/multi-agent-refs/phases/modes.md` "Intake warnings shared by the whole `--dev` family": an analysis document supplied to a mode that skips Analysis and Planning, and a branch that already carries the work (which wants `/multi-agent:ship`, not a second Dev pass). Read that section rather than reasoning about it from scratch.
|
|
51
|
+
|
|
52
|
+
## Required: outward-facing payload contracts
|
|
53
|
+
|
|
54
|
+
Before writing anything outward-facing - PR body, Jira comment, Confluence page, closing report - load `$HOME/.claude/multi-agent-refs/payload-contracts.md`. It names the canonical section set for each payload, the markup dialect per surface (PR body is Markdown, Jira is wiki markup - mixing them is a defect), and the token/duration numbers the closing report must carry. Improvising a payload shape from memory is the most common failure of the short modes.
|
|
55
|
+
|
|
49
56
|
## Required: Phase Tracker Contract
|
|
50
57
|
|
|
51
58
|
**The phase tracker is mandatory** - the agent cannot skip it. Full spec: [`$HOME/.claude/multi-agent-refs/tracker-contract.md`]($HOME/.claude/multi-agent-refs/tracker-contract.md).
|
|
@@ -71,7 +78,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh update 0 in_progress
|
|
|
71
78
|
bash $HOME/.claude/scripts/phase-tracker.sh update <N> in_progress|completed|failed|skipped
|
|
72
79
|
|
|
73
80
|
# After every LLM call (every CLI):
|
|
74
|
-
bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out>
|
|
81
|
+
bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out> [cached]
|
|
75
82
|
```
|
|
76
83
|
|
|
77
84
|
### Visual channel - Claude Code (native TaskList widget, required)
|
|
@@ -119,6 +119,14 @@ Post-Hoc & Side-Channel:
|
|
|
119
119
|
/multi-agent:search Cross-task log search with smart ranking; --semantic queries triage corpus
|
|
120
120
|
/multi-agent:scan Skill security scan against tiered pattern catalog
|
|
121
121
|
/multi-agent:refactor Adapted best-practices + bug hunt + upstream-drift + dev-toolkit MCP research -> one plan, approval, dev + sync
|
|
122
|
+
/multi-agent:store-ready [repo] [--archive=|--ipa=|--aab=|--apk=] [--skip-sweep] Pre-submission store readiness,
|
|
123
|
+
iOS + Android, local-only. Three symmetric gates per platform: static package audit,
|
|
124
|
+
the store's own validator, policy review vs repo source. Plus the running-app sweep.
|
|
125
|
+
A skipped gate is never counted as a pass. Validates only, never uploads.
|
|
126
|
+
/multi-agent:testflight-validation [repo] [--ipa=|--archive=] iOS-pinned alias of :store-ready, kept because it is
|
|
127
|
+
the name you reach for when the target is TestFlight. Same three gates, one implementation.
|
|
128
|
+
/multi-agent:ios-coding-standard [module] Audit an iOS module against the 99-rule coding-standard registry -> remediation
|
|
129
|
+
plan + one-page onboarding summary -> hand off to dev / dev-local. Read-only, never edits source.
|
|
122
130
|
|
|
123
131
|
Setup & Maintenance:
|
|
124
132
|
|
|
@@ -156,11 +164,22 @@ Interactive Launchers:
|
|
|
156
164
|
UI Testing (standalone - not part of pipeline phases):
|
|
157
165
|
|
|
158
166
|
/multi-agent:test Full simulator test (screenshot all screens)
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
/multi-agent:test
|
|
163
|
-
/multi-agent:test
|
|
167
|
+
|
|
168
|
+
Fixed-scenario commands - no quoting, and they autocomplete off `test-`:
|
|
169
|
+
|
|
170
|
+
/multi-agent:test-dark-mode Dark mode bug test
|
|
171
|
+
/multi-agent:test-accessibility Accessibility audit (labels, tap targets, contrast)
|
|
172
|
+
/multi-agent:test-dynamic-type Large text size test
|
|
173
|
+
/multi-agent:test-screenshots [tr] App Store screenshot set in a locale (default tr)
|
|
174
|
+
|
|
175
|
+
The scenario-tag form still works and is not deprecated - each command above is
|
|
176
|
+
an alias for it.
|
|
177
|
+
|
|
178
|
+
/multi-agent:test "dark mode" | "accessibility" | "dynamic type" | "screenshot <lang>"
|
|
179
|
+
|
|
180
|
+
`store-ready` is NOT a UI test: it validates a built package, on iOS and Android,
|
|
181
|
+
through three gates per platform, and lives at /multi-agent:store-ready. The old
|
|
182
|
+
/multi-agent:test "store-ready" [path] tag still works and hands off there.
|
|
164
183
|
|
|
165
184
|
Uses xcrun simctl / adb (native, no external app needed).
|
|
166
185
|
Booted simulator/emulator required. Auto-detects bundle ID from project.
|
|
@@ -362,6 +381,14 @@ Post-Hoc & Side-Channel:
|
|
|
362
381
|
/multi-agent:search Task log'larında akıllı arama; --semantic triage corpus'unu sorgular
|
|
363
382
|
/multi-agent:scan Skill güvenlik taraması (tiered pattern catalog)
|
|
364
383
|
/multi-agent:refactor Uyarlanmış best-practice + bug avı + upstream-drift + dev-toolkit MCP araştırması -> tek plan, onay, dev + sync
|
|
384
|
+
/multi-agent:store-ready [repo] [--archive=|--ipa=|--aab=|--apk=] [--skip-sweep] Yükleme öncesi store hazırlığı,
|
|
385
|
+
iOS + Android, yalnızca lokal. Platform başına 3 simetrik kapı: statik paket denetimi,
|
|
386
|
+
store'un kendi doğrulayıcısı, kaynağa karşı politika incelemesi. Artı çalışan-app sweep'i.
|
|
387
|
+
Atlanan kapı asla pass sayılmaz. Sadece doğrular, asla yüklemez.
|
|
388
|
+
/multi-agent:testflight-validation [repo] [--ipa=|--archive=] :store-ready'nin iOS'a sabitlenmiş alias'ı; hedef
|
|
389
|
+
TestFlight olduğunda akla gelen isim olduğu için korunuyor. Aynı 3 kapı, tek implementasyon.
|
|
390
|
+
/multi-agent:ios-coding-standard [modül] Bir iOS modülünü 99 kurallık kodlama-standardı registry'sine göre denetler -> düzeltme
|
|
391
|
+
planı + tek sayfalık onboarding özeti -> dev / dev-local'e devreder. Read-only, kaynağı hiç düzenlemez.
|
|
365
392
|
|
|
366
393
|
Setup & Maintenance:
|
|
367
394
|
|
|
@@ -399,11 +426,22 @@ Rutinler (kendi tekrar eden işlerin):
|
|
|
399
426
|
UI Testing (standalone - pipeline fazlarından bağımsız):
|
|
400
427
|
|
|
401
428
|
/multi-agent:test Tam simulator testi (tüm ekran screenshot'ları)
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
/multi-agent:test
|
|
406
|
-
/multi-agent:test
|
|
429
|
+
|
|
430
|
+
Sabit-senaryo komutları - tırnak gerekmez, `test-` ile autocomplete'e düşer:
|
|
431
|
+
|
|
432
|
+
/multi-agent:test-dark-mode Dark mode bug testi
|
|
433
|
+
/multi-agent:test-accessibility Erişilebilirlik denetimi (label/tap-target/kontrast)
|
|
434
|
+
/multi-agent:test-dynamic-type Büyük metin boyutu testi
|
|
435
|
+
/multi-agent:test-screenshots [tr] Belirtilen dilde App Store screenshot seti (default tr)
|
|
436
|
+
|
|
437
|
+
Senaryo etiketli form çalışmaya devam eder, kaldırılmadı - yukarıdaki komutların
|
|
438
|
+
her biri onun alias'ı.
|
|
439
|
+
|
|
440
|
+
/multi-agent:test "dark mode" | "accessibility" | "dynamic type" | "screenshot <dil>"
|
|
441
|
+
|
|
442
|
+
`store-ready` bir UI testi DEĞİL: üretilmiş paketi platform başına üç kapıdan
|
|
443
|
+
geçirerek doğrular, iOS + Android, ve /multi-agent:store-ready altında. Eski
|
|
444
|
+
/multi-agent:test "store-ready" [path] etiketi çalışır ve oraya devreder.
|
|
407
445
|
|
|
408
446
|
xcrun simctl / adb kullanır (harici app gerekmez).
|
|
409
447
|
Booted simulator/emulator şart. Bundle ID proje'den otomatik algılanır.
|
|
@@ -458,7 +496,7 @@ Temel Özellikler:
|
|
|
458
496
|
Multi-Repo Repo başına worktree, repo başına identity, commit öncesi entegrasyon build'i
|
|
459
497
|
Identity Routing Repo origin URL'sinden git kimliği seçimi (kurumsal vs kişisel)
|
|
460
498
|
Issue Safety Issue'lar asla auto-close edilmez (GitHub + Jira için 4 onay gerekir)
|
|
461
|
-
Store Compliance /multi-agent:test "store-ready" - iOS için
|
|
499
|
+
Store Compliance /multi-agent:test "store-ready" - iOS için 18 kurallık audit (ITMS / Privacy Manifest /
|
|
462
500
|
code signing / debug-tool leak / IPv6 / SDK list / vb.) + Android için 21 kurallık audit
|
|
463
501
|
Bilingual EN + TR - outputLanguage assistant açıklamasını değiştirir; promptLanguage en kilitli
|
|
464
502
|
|
|
@@ -71,15 +71,26 @@ After issue selection, inspect `maturity` from `~/.claude/lib/issue-fetcher.sh`:
|
|
|
71
71
|
"maturity": {
|
|
72
72
|
"score": 0..100,
|
|
73
73
|
"blockers": ["status_closed", "already_resolved", "description_empty"],
|
|
74
|
-
"warnings": ["short_description", "no_repro_steps", "no_acceptance_criteria"],
|
|
74
|
+
"warnings": ["short_description", "no_repro_steps", "no_acceptance_criteria", "description_empty_parent_available"],
|
|
75
75
|
"summary": "..."
|
|
76
76
|
}
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
+
> **Empty description → parent candidate**: development sub-tasks are often filed with no description of their own, with the real requirements on the parent issue. Before scoring, `issue-fetcher.sh` fetches the issue's `parent` (single hop, no chasing the parent's parent). If the issue's own description is empty and the parent's isn't, it does **not** auto-substitute - it exposes `descriptor.parentKey` + `descriptor.parentDescription` as a candidate and adds `description_empty_parent_available` to `warnings` (not `blockers`) instead of the plain `description_empty` blocker. If the parent is also empty or unreachable, `description_empty` still blocks exactly as before.
|
|
80
|
+
>
|
|
81
|
+
> When `description_empty_parent_available` is present, ask a tailored question instead of the generic "Continue?" below:
|
|
82
|
+
> - `question` (outputLanguage): "Bu issue'nun (`{KEY}`) açıklaması boş, ama parent'ın (`{parentKey}`) açıklaması var. Parent'ın açıklamasından devam edilsin mi?" / "This issue's (`{KEY}`) description is empty, but its parent (`{parentKey}`) has one. Continue using the parent's description?" — show a short excerpt of `parentDescription` for context.
|
|
83
|
+
> - `header` (English, <=12 chars): `"Parent desc"`
|
|
84
|
+
> - `options`: `{ label: "Use parent's description" (Recommended), description: "Continue with descriptor.parentDescription as the working description for this task." }` / `{ label: "No, halt", description: "Treat like description_empty - fix the issue's own description in Jira first." }`
|
|
85
|
+
> - **Accept** → set the working `description` to `parentDescription` for every later phase (analysis/dev/review all read this one substituted value); log the substitution (source issue + parent key) to `agent-log.md`.
|
|
86
|
+
> - **Decline** → same as a `description_empty` blocker: halt, advise fixing the issue's own description.
|
|
87
|
+
> - **Autopilot**: auto-accepts "Use parent's description" (same "warnings auto-continue" rule as any other warning), logs the auto-accept + parent key to `agent-log.md`.
|
|
88
|
+
|
|
79
89
|
| Outcome | Behavior |
|
|
80
90
|
|---|---|
|
|
81
91
|
| `blockers` non-empty | **Halt** (autopilot too): show summary, advise "fix the issue first" |
|
|
82
|
-
|
|
|
92
|
+
| `warnings` contains `description_empty_parent_available` | Tailored parent-description question above (not the generic one) |
|
|
93
|
+
| other `warnings` only | AskUserQuestion: show summary + "Continue?". Autopilot auto-continues; warnings logged to `agent-log.md` |
|
|
83
94
|
| both empty (score ≥ 90) | Continue silently |
|
|
84
95
|
|
|
85
96
|
> **Resolution check**: If Jira `resolution` is set (`Fixed`, `Done`, `Won't Do`, `Resolved`...), `already_resolved` is added - the issue was closed already. To reopen, clear `resolution` in Jira first.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Toggle outputLanguage (assistant explanations). promptLanguage is fixed to English
|
|
2
|
+
description: "Toggle outputLanguage (assistant explanations, picker questions, PR/Jira/Confluence bodies). promptLanguage is fixed to English; commit messages, branch names and identifiers stay English. Use when the assistant should explain itself in a different language."
|
|
3
3
|
description-tr: "outputLanguage'i değiştirir (asistan açıklamaları). promptLanguage İngilizce sabittir. Dış payload'lar İngilizce kalır."
|
|
4
4
|
argument-hint: "[en|tr] - sets outputLanguage; omit for interactive picker; use 'output en|tr' for explicit form"
|
|
5
5
|
---
|
|
@@ -6,7 +6,7 @@ allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdat
|
|
|
6
6
|
|
|
7
7
|
# multi-agent local - Full Pipeline, Local Branch
|
|
8
8
|
|
|
9
|
-
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` and external
|
|
9
|
+
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` `label`/`header` stay English, but its `question` and option `description`s render in `outputLanguage`; external payload bodies follow `outputLanguage` too (identifiers, commit messages, branch names stay English). Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
10
10
|
|
|
11
11
|
The full pipeline in normal mode (Plan Approval Gate + parallel review + triage included), running on the **current branch with no worktree**. Dedicated alias for the `multi-agent "task" --local` flag form. Phase 5 (User Test) is skipped because there is no worktree to check the change out from; the other seven phases all run.
|
|
12
12
|
|
|
@@ -49,6 +49,10 @@ Read the routing table in `$HOME/.claude/commands/multi-agent.md` and apply Phas
|
|
|
49
49
|
/multi-agent:local "#42" # GitHub issue
|
|
50
50
|
/multi-agent:local "LoginView dark mode fix" # Free-text
|
|
51
51
|
```
|
|
52
|
+
## Required: outward-facing payload contracts
|
|
53
|
+
|
|
54
|
+
Before writing anything outward-facing - PR body, Jira comment, Confluence page, closing report - load `$HOME/.claude/multi-agent-refs/payload-contracts.md`. It names the canonical section set for each payload, the markup dialect per surface (PR body is Markdown, Jira is wiki markup - mixing them is a defect), and the token/duration numbers the closing report must carry. Improvising a payload shape from memory is the most common failure of the short modes.
|
|
55
|
+
|
|
52
56
|
## Required: Phase Tracker Contract
|
|
53
57
|
|
|
54
58
|
**The phase tracker is mandatory** - the agent cannot skip it. Full spec: [`$HOME/.claude/multi-agent-refs/tracker-contract.md`]($HOME/.claude/multi-agent-refs/tracker-contract.md).
|
|
@@ -72,7 +76,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh update 0 in_progress
|
|
|
72
76
|
bash $HOME/.claude/scripts/phase-tracker.sh update <N> in_progress|completed|failed|skipped
|
|
73
77
|
|
|
74
78
|
# After every LLM call (every CLI):
|
|
75
|
-
bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out>
|
|
79
|
+
bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out> [cached]
|
|
76
80
|
```
|
|
77
81
|
|
|
78
82
|
### Visual channel - Claude Code (native TaskList widget, required)
|
|
@@ -9,7 +9,7 @@ allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdat
|
|
|
9
9
|
|
|
10
10
|
**Input**: $ARGUMENTS
|
|
11
11
|
|
|
12
|
-
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` and external
|
|
12
|
+
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` `label`/`header` stay English, but its `question` and option `description`s render in `outputLanguage`; external payload bodies follow `outputLanguage` too (identifiers, commit messages, branch names stay English). Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
13
13
|
|
|
14
14
|
Run the full pipeline **without a worktree** and **with every confirmation skipped**. Phase 5 (User Test) does not run (no worktree to check out from, and no interaction), so 7 phases execute. The `autopilot + local` combination - vs `/multi-agent:autopilot` the only difference is no worktree (work stays on the current branch); vs `/multi-agent:local` the only difference is zero interaction.
|
|
15
15
|
|
|
@@ -70,6 +70,10 @@ Run the full pipeline **without a worktree** and **with every confirmation skipp
|
|
|
70
70
|
## Delegation
|
|
71
71
|
|
|
72
72
|
Orchestrator routing: the routing table in `$HOME/.claude/commands/multi-agent.md` resolves `local-autopilot` as the union of the `dev-local` + `autopilot` mode mixins. Contract details: `$HOME/.claude/multi-agent-refs/phases/phase-0-init.md` Step 8 (local branch) + `$HOME/.claude/multi-agent-refs/phases/phase-2-planning.md` Step 5 (autopilot gate skip + safety classifier).
|
|
73
|
+
## Required: outward-facing payload contracts
|
|
74
|
+
|
|
75
|
+
Before writing anything outward-facing - PR body, Jira comment, Confluence page, closing report - load `$HOME/.claude/multi-agent-refs/payload-contracts.md`. It names the canonical section set for each payload, the markup dialect per surface (PR body is Markdown, Jira is wiki markup - mixing them is a defect), and the token/duration numbers the closing report must carry. Improvising a payload shape from memory is the most common failure of the short modes.
|
|
76
|
+
|
|
73
77
|
## Required: Phase Tracker Contract
|
|
74
78
|
|
|
75
79
|
**The phase tracker is mandatory** - the agent cannot skip it. Full spec: [`$HOME/.claude/multi-agent-refs/tracker-contract.md`]($HOME/.claude/multi-agent-refs/tracker-contract.md).
|
|
@@ -95,7 +99,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh update 0 in_progress
|
|
|
95
99
|
bash $HOME/.claude/scripts/phase-tracker.sh update <N> in_progress|completed|failed|skipped
|
|
96
100
|
|
|
97
101
|
# After every LLM call (every CLI):
|
|
98
|
-
bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out>
|
|
102
|
+
bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out> [cached]
|
|
99
103
|
```
|
|
100
104
|
|
|
101
105
|
### Visual channel - Claude Code (native TaskList widget, required)
|
|
@@ -23,4 +23,10 @@ Show the task's detailed agent-log.md report.
|
|
|
23
23
|
|
|
24
24
|
3. **Read agent-log.md** - display the file.
|
|
25
25
|
|
|
26
|
-
4. **
|
|
26
|
+
4. **Cost + durations come from the tracker, not only the log.** The tracker contract promises token/duration data "surfaced in `:log` reports", and agent-log.md only carries it when Phase 7 appended the Cost Breakdown. When that section is absent, render it live:
|
|
27
|
+
```bash
|
|
28
|
+
bash $HOME/.claude/scripts/render-agent-log-cost.sh "<task-id>" 2>/dev/null
|
|
29
|
+
```
|
|
30
|
+
Exit 2 means no tracker data exists - say so in one line (`cost unavailable: no token telemetry recorded`) instead of leaving the section out silently.
|
|
31
|
+
|
|
32
|
+
5. **Provide a summary** - when the log is long, show only the Timeline table + Review Consensus + the cost block, and give the file path for the full log.
|
|
@@ -116,7 +116,7 @@ These are the RECOMMENDED key names. When creating NEW keys, use these. But exis
|
|
|
116
116
|
|
|
117
117
|
> Multi-agent setup onboards **both** Figma tokens because the pipeline's 3-tier Figma access chain (see `$HOME/.claude/rules/figma-pipeline.md`) uses them in priority order: Tier 1 = MCP (`figma_mcp`), Tier 2 = REST PAT (`figma`), Tier 3 = user screenshot fallback. Missing either token forces a downshift; missing both leaves Tier 3 as the only path. The Tier 2 logical key is `figma`, not `figma_pat`: `figma_pat` is the pre-v13.6 name that `migrate-prefs.mjs` consolidates away, and writing a new mapping under it means the next migration deletes it.
|
|
118
118
|
|
|
119
|
-
> The four App Store Connect entries are **iOS-only and optional**: skip them all and the pipeline still works, it just reports Gate 2 of `/multi-agent:
|
|
119
|
+
> The four App Store Connect entries are **iOS-only and optional**: skip them all and the pipeline still works, it just reports Gate 2 of `/multi-agent:store-ready` as `SKIPPED` (never as a pass). They mirror the Figma 3-tier shape - Tier 1 = API key (`appstore_connect_key_id` + `appstore_connect_issuer_id`), Tier 2 = Apple ID + app-specific password (`appstore_connect_apple_id` + `appstore_connect_password_item`), Tier 3 = nothing configured. **Offer Tier 2 first when the user says they cannot create an API key**: creating one needs an Admin or App Manager role in App Store Connect, while an app-specific password is generated by the account holder at `appleid.apple.com` with no team permission at all. Two of these hold identifiers rather than secrets (key id, issuer id) and one holds a keychain ITEM NAME, not a password - they still go through the mapping layer so every credential is read the same way. Onboarding mechanics in Step 3b.
|
|
120
120
|
|
|
121
121
|
**1c. Resolution logic (per service):**
|
|
122
122
|
|
|
@@ -6,7 +6,7 @@ allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdat
|
|
|
6
6
|
|
|
7
7
|
# multi-agent ship - Take Existing Branch Work Through the Pipeline Tail
|
|
8
8
|
|
|
9
|
-
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` and external
|
|
9
|
+
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` `label`/`header` stay English, but its `question` and option `description`s render in `outputLanguage`; external payload bodies follow `outputLanguage` too (identifiers, commit messages, branch names stay English). Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
10
10
|
|
|
11
11
|
You already did the work locally - wrote code on the current branch and maybe tested it by hand, or committed it outside the pipeline entirely. (As of v14.0.0 the `--dev` family reviews its own output, so this command is for work that had no pipeline run behind it, not a patch for a mode that skipped review.) `/multi-agent:ship` picks up from there and runs the **pipeline tail** over that existing local work in one command: parallel review, a build + test success gate, commit/push + PR, then the technical analysis and a **Jira comment with test scenarios**. It does NOT re-develop - Analysis / Planning / Dev (phases 1-3) are intentionally skipped; the diff already on the branch IS the input.
|
|
12
12
|
|
|
@@ -64,6 +64,10 @@ Phases 1-3 (Analysis / Planning / Dev) are skipped by design - `ship` treats t
|
|
|
64
64
|
- **interactive** (default): stops at the Phase 4 gate when there are blocking/important findings; asks before committing/PR when appropriate.
|
|
65
65
|
- **`autopilot`**: no prompts - auto-fix accepted blocking/important findings, auto-commit/push/PR, auto-post the Jira comment. Mirrors `local-autopilot`.
|
|
66
66
|
|
|
67
|
+
## Required: outward-facing payload contracts
|
|
68
|
+
|
|
69
|
+
Before writing anything outward-facing - PR body, Jira comment, Confluence page, closing report - load `$HOME/.claude/multi-agent-refs/payload-contracts.md`. It names the canonical section set for each payload, the markup dialect per surface (PR body is Markdown, Jira is wiki markup - mixing them is a defect), and the token/duration numbers the closing report must carry. Improvising a payload shape from memory is the most common failure of the short modes.
|
|
70
|
+
|
|
67
71
|
## Required: Phase Tracker Contract
|
|
68
72
|
|
|
69
73
|
**The phase tracker is required.** Full spec: [`$HOME/.claude/multi-agent-refs/tracker-contract.md`]($HOME/.claude/multi-agent-refs/tracker-contract.md). `ship` registers its active phase set - `0:Init 4:Review 5:Build+Test 6:Commit 7:Report` - but NEVER resets a tracker that an earlier run already built (load-or-continue; contract section "Continuation runs"):
|