@mmerterden/multi-agent-pipeline 17.0.0 → 17.3.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 +159 -0
- package/README.md +56 -4
- package/README.tr.md +57 -4
- package/docs/architecture.md +3 -3
- package/docs/ecosystem.md +5 -5
- package/docs/token-budget-history.md +22 -0
- package/install/_dev-only-files.mjs +1 -0
- package/install/codex.mjs +18 -1
- package/install/copilot.mjs +17 -1
- package/install/templates/multi-agent-autopilot.plist.template +79 -0
- package/package.json +1 -1
- package/pipeline/commands/multi-agent/autopilot-off/SKILL.md +64 -0
- package/pipeline/commands/multi-agent/autopilot-on/SKILL.md +181 -0
- package/pipeline/commands/multi-agent/autopilot-status/SKILL.md +74 -0
- package/pipeline/commands/multi-agent/channels/SKILL.md +41 -12
- package/pipeline/commands/multi-agent/help/SKILL.md +41 -35
- package/pipeline/commands/multi-agent/manual-test/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/sync/SKILL.md +10 -9
- package/pipeline/commands/multi-agent/update/SKILL.md +1 -1
- package/pipeline/lib/autopilot-activation.sh +117 -0
- package/pipeline/lib/autopilot-state.sh +184 -0
- package/pipeline/lib/issue-fetcher.sh +18 -1
- package/pipeline/lib/plan-todos.sh +18 -0
- package/pipeline/multi-agent-refs/_dev-context.md +10 -0
- package/pipeline/multi-agent-refs/analysis/redesign.md +8 -0
- package/pipeline/multi-agent-refs/analysis/review.md +9 -0
- package/pipeline/multi-agent-refs/android-guide.md +14 -0
- package/pipeline/multi-agent-refs/audit-guide.md +12 -0
- package/pipeline/multi-agent-refs/backend-guide.md +10 -0
- package/pipeline/multi-agent-refs/channels/confluence.md +11 -0
- package/pipeline/multi-agent-refs/channels/issue-comment.md +12 -0
- package/pipeline/multi-agent-refs/channels/jira.md +90 -20
- package/pipeline/multi-agent-refs/channels/pr-review-actions.md +13 -0
- package/pipeline/multi-agent-refs/channels/pr.md +76 -19
- package/pipeline/multi-agent-refs/component-dispatch.md +11 -0
- package/pipeline/multi-agent-refs/component-generation.md +11 -0
- package/pipeline/multi-agent-refs/conventions-defaults.md +15 -0
- package/pipeline/multi-agent-refs/cross-cli-contract.md +49 -5
- package/pipeline/multi-agent-refs/features/analysis-jira.md +11 -0
- package/pipeline/multi-agent-refs/features/design-conformance.md +10 -0
- package/pipeline/multi-agent-refs/features/doctor.md +10 -0
- package/pipeline/multi-agent-refs/features/external-context-injection.md +7 -0
- package/pipeline/multi-agent-refs/features/jira-context.md +9 -0
- package/pipeline/multi-agent-refs/features/model-fallback.md +10 -0
- package/pipeline/multi-agent-refs/features/skill-conformance.md +13 -0
- package/pipeline/multi-agent-refs/features/url-enrichment.md +9 -0
- package/pipeline/multi-agent-refs/features/visual-evidence.md +61 -7
- package/pipeline/multi-agent-refs/generate-issue.md +7 -0
- package/pipeline/multi-agent-refs/issue-jira-triad.md +9 -0
- package/pipeline/multi-agent-refs/knowledge.md +6 -0
- package/pipeline/multi-agent-refs/multi-repo-integration-build.md +13 -0
- package/pipeline/multi-agent-refs/phases/modes.md +7 -0
- package/pipeline/multi-agent-refs/phases/operations.md +9 -0
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +2 -2
- package/pipeline/multi-agent-refs/phases/phase-2-planning.md +17 -15
- package/pipeline/multi-agent-refs/phases/phase-3-dev.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-6-commit.md +1 -1
- package/pipeline/multi-agent-refs/phases.md +11 -0
- package/pipeline/multi-agent-refs/picker-contract.md +12 -0
- package/pipeline/multi-agent-refs/platform-parity.md +10 -0
- package/pipeline/multi-agent-refs/progress-contract.md +10 -0
- package/pipeline/multi-agent-refs/readiness-review.md +7 -1
- package/pipeline/multi-agent-refs/rules.md +3 -11
- package/pipeline/multi-agent-refs/setup/firebase.md +9 -0
- package/pipeline/multi-agent-refs/swiftui-guide.md +17 -0
- package/pipeline/multi-agent-refs/tracker-contract.md +44 -0
- package/pipeline/multi-agent-refs/web-guide.md +10 -0
- package/pipeline/multi-agent-refs/wiki-capture.md +11 -0
- package/pipeline/schemas/autopilot-config.schema.json +149 -0
- package/pipeline/schemas/prefs.schema.json +4 -0
- package/pipeline/schemas/token-budget.json +10 -19
- package/pipeline/scripts/autopilot-arming.mjs +147 -0
- package/pipeline/scripts/autopilot-intake.mjs +387 -0
- package/pipeline/scripts/autopilot-menubar.swift +361 -0
- package/pipeline/scripts/autopilot-runner.mjs +354 -0
- package/pipeline/scripts/autopilot-status.sh +213 -0
- package/pipeline/scripts/capture-evidence.sh +79 -11
- package/pipeline/scripts/gen-ref-toc.mjs +279 -0
- package/pipeline/scripts/jira-search.sh +70 -0
- package/pipeline/scripts/phase-tracker.sh +134 -12
- package/pipeline/scripts/probe-evidence-capability.sh +27 -3
- package/pipeline/scripts/run-ui-tests.sh +113 -4
- package/pipeline/skills/.skill-manifest.json +16 -4
- package/pipeline/skills/shared/core/multi-agent-autopilot-off/SKILL.md +67 -0
- package/pipeline/skills/shared/core/multi-agent-autopilot-on/SKILL.md +146 -0
- package/pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md +64 -0
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +62 -11
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +9 -8
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: multi-agent-autopilot-status
|
|
3
|
+
language: en
|
|
4
|
+
description: "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 when asked whether autopilot is on."
|
|
5
|
+
user-invocable: true
|
|
6
|
+
argument-hint: "[--subjects] - --subjects prints one widget line per in-flight item"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# multi-agent autopilot-status - what is it doing
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
bash "$HOME/.claude/scripts/autopilot-status.sh" ${ARGUMENTS}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
That script is the **only** producer. The menu bar indicator, this command and
|
|
17
|
+
the session-start hook all render the same `status.json` it writes, because the
|
|
18
|
+
moment each computes its own answer they start disagreeing - which is the failure
|
|
19
|
+
this whole area was built around: a run reading `in_progress` while its PR was
|
|
20
|
+
already open.
|
|
21
|
+
|
|
22
|
+
## What the output means
|
|
23
|
+
|
|
24
|
+
| Line | Meaning |
|
|
25
|
+
|---|---|
|
|
26
|
+
| `KAPALI` with repos selected | the selection is kept, launchd holds no job. `autopilot-on` starts it again without re-asking |
|
|
27
|
+
| `kurulu değil` | never configured on this machine; nothing has been written |
|
|
28
|
+
| `Koşuyor` | in flight now. Phase and elapsed come from the run's own state, not from a guess |
|
|
29
|
+
| `Cevap bekliyor` | the item was not mature enough, the open questions were posted as a comment, and it resumes on its own once answered |
|
|
30
|
+
| `config açık ama launchd'de iş yok` | the failure a `resume` command would have hidden: an OS update dropped the plist, or it was booted out. Re-run `autopilot-on` |
|
|
31
|
+
|
|
32
|
+
An empty queue is reported with the reason - no item carries the label yet - and
|
|
33
|
+
not as an error. That is the most common "why is nothing happening", and it is
|
|
34
|
+
not a fault.
|
|
35
|
+
|
|
36
|
+
## The menu bar indicator
|
|
37
|
+
|
|
38
|
+
When `swiftc` was available at `autopilot-on` time, `~/.claude/autopilot/bin/menubar`
|
|
39
|
+
shows the same thing in the top right, refreshing on its own: one row per item
|
|
40
|
+
with its id, whether it is running Full or Short, the phase as a fraction, the
|
|
41
|
+
elapsed time and the stack, then the queue, then what is waiting, then the PRs of
|
|
42
|
+
the last day - each one clickable.
|
|
43
|
+
|
|
44
|
+
The indicator only **draws**. It cannot start, stop or change a run: control
|
|
45
|
+
stays here, where it is confirmed. It disappears from the list the moment an item
|
|
46
|
+
finishes, and the item reappears under `Raporlar` with its PR.
|
|
47
|
+
|
|
48
|
+
No `swiftc` means no indicator and nothing else changes.
|
|
49
|
+
|
|
50
|
+
## `--subjects`
|
|
51
|
+
|
|
52
|
+
One line per in-flight item, shaped for the native task widget, with the numbers
|
|
53
|
+
travelling **inside** the subject string because the widget takes exactly one
|
|
54
|
+
string per row:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
PROJ-1234 · Full · Faz 3/8 Dev · ios
|
|
58
|
+
PROJ-1199 · cevap bekliyor
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Honest limit, worth saying rather than discovering: that widget belongs to the
|
|
62
|
+
session that calls `TaskUpdate`, and it refreshes when that session takes a turn -
|
|
63
|
+
when you type, or when a hook fires. It is a view, not a live counter. The menu
|
|
64
|
+
bar indicator is the one that updates on its own.
|
|
@@ -105,22 +105,69 @@ GitHub uses `gh pr edit --body-file` - reviewers independent, no risk.
|
|
|
105
105
|
|
|
106
106
|
### Jira comment (wiki markup)
|
|
107
107
|
|
|
108
|
+
Four sections in this fixed order, the PR link on line 1. Jira is read by the
|
|
109
|
+
person who filed the ticket and by whoever tests it, so the comment carries the
|
|
110
|
+
development summary, the scenarios to run and the impact - never class names,
|
|
111
|
+
never file paths, never a diff walk. The technical view lives in the PR, one
|
|
112
|
+
click away through that first line.
|
|
113
|
+
|
|
108
114
|
```
|
|
109
115
|
PR: {prUrl}
|
|
110
116
|
|
|
111
|
-
|
|
117
|
+
h2. Geliştirme Özeti
|
|
118
|
+
|
|
119
|
+
{2-5 sentences: what changed, where the user meets it, and the size of the
|
|
120
|
+
effect when it is measurable}
|
|
121
|
+
|
|
122
|
+
h2. Test Senaryoları
|
|
123
|
+
|
|
124
|
+
*1. {what this scenario exercises}*
|
|
125
|
+
# {step the tester performs, in the app's own words}
|
|
126
|
+
# {step}
|
|
127
|
+
# *Beklenen:* {what they should see}
|
|
128
|
+
|
|
129
|
+
*2. {regression scenario}*
|
|
130
|
+
# {step}
|
|
131
|
+
# *Beklenen:* {what should still behave as before}
|
|
132
|
+
|
|
133
|
+
h2. Etki Analizi
|
|
134
|
+
|
|
135
|
+
*1 - Problemin Tanımı*
|
|
136
|
+
{what was wrong and since when}
|
|
137
|
+
|
|
138
|
+
*2 - Yapılan Geliştirme*
|
|
139
|
+
{what the change does, and why the behaviour around it is unchanged}
|
|
112
140
|
|
|
113
|
-
*
|
|
114
|
-
|
|
141
|
+
*3 - Etkilenen Fonksiyonlar*
|
|
142
|
+
{the screens and flows that must be tested}
|
|
115
143
|
|
|
116
|
-
*
|
|
144
|
+
*4 - Diğer Sistemlere Etkisi*
|
|
145
|
+
{none, or which service, contract or channel}
|
|
117
146
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
147
|
+
h2. Bağlantılar
|
|
148
|
+
|
|
149
|
+
* Crashlytics / Confluence / Figma: {url}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Reproduction scenarios first, then regressions for whatever the change could
|
|
153
|
+
have disturbed. Full contract: `channels/jira.md`.
|
|
154
|
+
|
|
155
|
+
`{{file.ext → func}}`, `*Root cause:*` and `*Changed files:*` used to be this
|
|
156
|
+
template. They are gone deliberately: that shape put a hash-table mutation
|
|
157
|
+
walk in front of a tester, and `{{file → func}}` is exactly where a Swift
|
|
158
|
+
selector like `hash(into:)` ends up - whose trailing `:)` Jira renders as a
|
|
159
|
+
smiley.
|
|
160
|
+
|
|
161
|
+
**Post through the publisher, never a hand-rolled `curl`:**
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
bash "$HOME/.claude/lib/jira-publish.sh" --issue "$JIRA_ID" --body-file "$F" --target comment
|
|
121
165
|
```
|
|
122
166
|
|
|
123
|
-
|
|
167
|
+
It escapes every body unconditionally before sending and keeps the token off
|
|
168
|
+
argv. Jira turns `:)` `(x)` `(!)` `(/)` into emoticon images, including inside
|
|
169
|
+
`{{monospace}}`; an escape that has to be remembered is one that is eventually
|
|
170
|
+
forgotten, and that is how the selector above shipped.
|
|
124
171
|
|
|
125
172
|
### Confluence page
|
|
126
173
|
|
|
@@ -165,9 +212,13 @@ First line: PR URL (one-click jump). Run the converted body through `node "$HOME
|
|
|
165
212
|
| `path/to/File.ext` | +N / -M |
|
|
166
213
|
|
|
167
214
|
### Test Scenarios ← if "Test senaryoları" OR "Auto-diff"
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
215
|
+
**1. {what this scenario exercises}**
|
|
216
|
+
1. {step the tester performs}
|
|
217
|
+
2. **Expected:** {what they should see}
|
|
218
|
+
|
|
219
|
+
**2. {regression scenario}**
|
|
220
|
+
1. {step}
|
|
221
|
+
2. **Expected:** {what should still behave as before}
|
|
171
222
|
|
|
172
223
|
### Notes ← if "Manuel not" selected
|
|
173
224
|
{user message}
|
|
@@ -32,8 +32,8 @@ Run all steps automatically:
|
|
|
32
32
|
```
|
|
33
33
|
Step 0: DOCTOR node $HOME/.claude/scripts/doctor.mjs - exit 2 or 4 STOPS the sync
|
|
34
34
|
Step 1: DETECT Compare timestamps, find stale targets
|
|
35
|
-
Step 2: COPILOT Claude Code -> Copilot CLI (instructions +
|
|
36
|
-
Step 2b: CODEX Claude Code -> Codex CLI (1 router skill +
|
|
35
|
+
Step 2: COPILOT Claude Code -> Copilot CLI (instructions + 56 sub-command skills)
|
|
36
|
+
Step 2b: CODEX Claude Code -> Codex CLI (1 router skill + 56 specs as refs + 8 agent TOML)
|
|
37
37
|
Step 3: REPO Claude Code -> pipeline repo (genericized, personal data scrub)
|
|
38
38
|
Step 3d: DEV-TOOLKIT Companion MCP server -> detect movement, ship gates, commit + publish
|
|
39
39
|
Step 4: WEBSITE Version + phase/model counts -> {website-host} (i18n + projects.ts)
|
|
@@ -101,7 +101,7 @@ If nothing is stale -> report "All targets up to date" and stop.
|
|
|
101
101
|
## Codex Sync (Step 2b)
|
|
102
102
|
|
|
103
103
|
This step does **not** hand-copy files. The Codex tree is a *transform* of the Claude
|
|
104
|
-
tree, not a mirror: the
|
|
104
|
+
tree, not a mirror: the 56 sub-command specs become reference files (Codex silently
|
|
105
105
|
truncates its skills block - see `cross-cli-contract.md` 2.6), every reference to a
|
|
106
106
|
CLI-owned tree is retargeted (`agents/<persona>.md` becomes `.toml`, the dispatcher
|
|
107
107
|
becomes the router skill), the 8 personas are regenerated as TOML with a model +
|
|
@@ -228,13 +228,14 @@ When invoked with the `release` argument:
|
|
|
228
228
|
|-------------|-------------|
|
|
229
229
|
| `~/.claude/commands/multi-agent/{cmd}/SKILL.md` | `~/.copilot/skills/multi-agent-{cmd}/SKILL.md` |
|
|
230
230
|
|
|
231
|
-
**
|
|
231
|
+
**56 commands are synced** (canonical inventory - must match `cross-cli-contract.md` section 1; drift = contract violation):
|
|
232
232
|
|
|
233
233
|
```
|
|
234
|
-
analysis, analysis-jira, analysis-resolve, autopilot,
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
234
|
+
analysis, analysis-jira, analysis-resolve, autopilot, autopilot-off,
|
|
235
|
+
autopilot-on, autopilot-status, build-optimize, channels, complaint-analysis,
|
|
236
|
+
create-jira, design-check, diff-explain, doctor, feedback, forget,
|
|
237
|
+
garbage-collect, graph, help, ios-coding-standard, issue, jira, kill,
|
|
238
|
+
language, local, local-autopilot, log, manual-test, prune-logs,
|
|
238
239
|
prune-prompts, purge, refactor, resume, resume-local, review,
|
|
239
240
|
review-analysis, review-issue, review-jira, routines, save, scan, search,
|
|
240
241
|
setup, stack, status, steer, store-ready, sync, test, test-accessibility,
|