@mmerterden/multi-agent-pipeline 20.3.0 → 20.4.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 +20 -0
- package/docs/ecosystem.md +2 -2
- package/docs/facts.json +1 -1
- package/install/claude.mjs +35 -0
- package/manifest.json +42 -40
- package/package.json +1 -1
- package/pipeline/commands/figma-to-swiftui.md +6 -4
- package/pipeline/commands/multi-agent/jira/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/refactor/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/review/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/setup/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/stack/SKILL.md +2 -4
- package/pipeline/commands/multi-agent/sync/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/update/SKILL.md +3 -10
- package/pipeline/lib/usage-endpoint.mjs +33 -0
- package/pipeline/multi-agent-refs/channels/pr.md +2 -2
- package/pipeline/multi-agent-refs/features/doctor.md +2 -1
- package/pipeline/multi-agent-refs/features/prior-fix-detection.md +1 -1
- package/pipeline/multi-agent-refs/generate-issue.md +9 -9
- package/pipeline/multi-agent-refs/outside-the-pipeline.md +2 -2
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-2-dev.md +2 -1
- package/pipeline/multi-agent-refs/phases/phase-4-commit.md +4 -4
- package/pipeline/multi-agent-refs/setup/repo-discovery.md +2 -2
- package/pipeline/schemas/prefs.schema.json +1 -1
- package/pipeline/scripts/capture-resume.sh +51 -37
- package/pipeline/scripts/check-derived-drift.mjs +1 -1
- package/pipeline/scripts/doctor.mjs +21 -0
- package/pipeline/scripts/plugin-refresh.sh +92 -0
- package/pipeline/scripts/usage-register.mjs +6 -6
- package/pipeline/scripts/usage-report.mjs +6 -5
- package/pipeline/skills/.skill-manifest.json +7 -7
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +6 -4
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +2 -4
- package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +1 -1
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py +1 -1
|
@@ -525,7 +525,7 @@ Lets the user test the code before the PR. The prompt MUST say that yes **remove
|
|
|
525
525
|
6. **Issue body update** (if GitHub Issue exists):
|
|
526
526
|
- Fill PR links in issue body: `- **common:** {PR URL}`, `- **uicomponents:** {PR URL}`
|
|
527
527
|
- Update Progress flags: `Implementation 🟢`, `Testing 🟢`, `Code Connect 🟢`
|
|
528
|
-
-
|
|
528
|
+
- Write the updated body to a temp file and use `gh issue edit {issueNo} --body-file <file>` - preserve all existing sections
|
|
529
529
|
7. Log: `📦 Phase 4: Commit {sha} - PR #{number}`
|
|
530
530
|
|
|
531
531
|
### Phase 5 Report Step 2: WIKI + Figma Screenshots (for component tasks with GitHub Issue)
|
|
@@ -541,8 +541,8 @@ Skip this sub-step if the task is NOT a component implementation (e.g., bug fix,
|
|
|
541
541
|
3. **Fetch Figma screenshot** via REST API:
|
|
542
542
|
```bash
|
|
543
543
|
FIGMA_TOKEN=$(~/.copilot/lib/credential-store.sh get "Figma_Access_Token")
|
|
544
|
-
|
|
545
|
-
|
|
544
|
+
printf 'X-Figma-Token: %s\n' "$FIGMA_TOKEN" | curl -s -H @- \
|
|
545
|
+
"https://api.figma.com/v1/images/{fileKey}?ids={nodeId}&format=png&scale=2"
|
|
546
546
|
# Download the image URL to {wikiComponentPath}/assets/screenshot.png
|
|
547
547
|
```
|
|
548
548
|
4. **Generate main wiki page** (`{ComponentName}.md`):
|
|
@@ -557,7 +557,9 @@ Skip this sub-step if the task is NOT a component implementation (e.g., bug fix,
|
|
|
557
557
|
```bash
|
|
558
558
|
cd {wikiRoot}
|
|
559
559
|
git add {wikiCategory}/{ComponentName}/
|
|
560
|
-
git commit -
|
|
560
|
+
git commit -F - <<'MA_MSG'
|
|
561
|
+
docs({scope}): add {ComponentName} wiki pages [PROJ-{id}]
|
|
562
|
+
MA_MSG
|
|
561
563
|
git fetch origin && git rebase origin/master
|
|
562
564
|
git push origin HEAD:master
|
|
563
565
|
```
|
|
@@ -79,7 +79,7 @@ Rendered in English (`promptLanguage` is locked to `en`).
|
|
|
79
79
|
### PR description (Bitbucket reviewer-preserving PUT)
|
|
80
80
|
|
|
81
81
|
```bash
|
|
82
|
-
PR_JSON=$(curl -s
|
|
82
|
+
PR_JSON=$(curl -s --config <(printf 'user = "%s:%s"\n' "$BB_USER" "$BB_TOKEN") "$PR_URL")
|
|
83
83
|
REVIEWERS=$(jq '[.reviewers[] | {user: {name: .user.name}, approved, status}]' <<< "$PR_JSON")
|
|
84
84
|
VERSION=$(jq -r '.version' <<< "$PR_JSON")
|
|
85
85
|
TITLE=$(jq -r '.title' <<< "$PR_JSON")
|
|
@@ -96,7 +96,7 @@ jq -n --rawfile body /tmp/channels-$TASK_ID-pr.md \
|
|
|
96
96
|
reviewers: $reviewers, fromRef: $fromRef, toRef: $toRef, draft: $draft}' \
|
|
97
97
|
> /tmp/channels-$TASK_ID-pr-payload.json
|
|
98
98
|
|
|
99
|
-
curl -s -X PUT
|
|
99
|
+
curl -s -X PUT --config <(printf 'user = "%s:%s"\n' "$BB_USER" "$BB_TOKEN") -H "Content-Type: application/json" \
|
|
100
100
|
--data-binary @/tmp/channels-$TASK_ID-pr-payload.json "$PR_URL"
|
|
101
101
|
```
|
|
102
102
|
|
|
@@ -23,8 +23,8 @@ Interactively list the user's open Jira issues, let the user pick one, and send
|
|
|
23
23
|
|
|
24
24
|
2. **Fetch the open issues** - via the Jira REST API:
|
|
25
25
|
```bash
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
printf 'Authorization: Bearer %s\n' "$JIRA_TOKEN" | curl -s -H @- \
|
|
27
|
+
"https://$JIRA_HOST/rest/api/2/search?jql=assignee=currentUser()+AND+status+not+in+(Done,Closed)&fields=key,summary,status"
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
3. **Let the user pick** - present the issues as options
|
|
@@ -86,7 +86,7 @@ The upstream mapping is **configuration, never hardcoded** (it can reference pri
|
|
|
86
86
|
}
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
**The plugin cache is a mirror, not the authority.** `~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/` only holds whatever the last `claude marketplace update` fetched. Reading it as the current upstream version is how this step reported "up to date" while the derivation was four releases behind: the cache sat at 0.2.1 and upstream was at 0.4.1. Resolve in the order below and never let the cache alone produce an "up to date" verdict.
|
|
89
|
+
**The plugin cache is a mirror, not the authority.** `~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/` only holds whatever the last `claude plugin marketplace update` fetched. Reading it as the current upstream version is how this step reported "up to date" while the derivation was four releases behind: the cache sat at 0.2.1 and upstream was at 0.4.1. Resolve in the order below and never let the cache alone produce an "up to date" verdict.
|
|
90
90
|
|
|
91
91
|
**Which manifest carries the version** is `upstreamVersionSource`, default `marketplace.json`. That is what a marketplace consumer actually resolves, and some upstreams keep per-plugin `plugin.json` versions deliberately unused - reading those records a version nobody ships. An entry here was recorded at 0.7.0 from `plugin.json` while the upstream marketplace said 0.6.0 and its CHANGELOG stated in as many words that `plugin.json` is not used.
|
|
92
92
|
|
|
@@ -66,10 +66,8 @@ REPO_SETTINGS=".claude/settings.json"
|
|
|
66
66
|
MP="multi-agent-plugins"
|
|
67
67
|
|
|
68
68
|
# --- ensure the marketplace is known (idempotent) -------------------------
|
|
69
|
-
|
|
70
|
-
claude marketplace add {owner}
|
|
71
|
-
|| echo "note: add the marketplace once with: claude marketplace add {owner}/multi-agent-plugins"
|
|
72
|
-
fi
|
|
69
|
+
bash "$HOME/.claude/scripts/plugin-refresh.sh" {owner} --add-only \
|
|
70
|
+
|| echo "note: add the marketplace once with: claude plugin marketplace add {owner}/$MP"
|
|
73
71
|
|
|
74
72
|
COMMON="ai-common-toolkit@${MP}"
|
|
75
73
|
ANALYST="ai-analyst-toolkit@${MP}"
|
|
@@ -36,7 +36,7 @@ Update the pipeline with a single command. Preferences are preserved; only skill
|
|
|
36
36
|
3. `git pull origin main`
|
|
37
37
|
4. `node install.js --all` (Claude + Copilot)
|
|
38
38
|
4b. Refresh the stack-plugin marketplace so the latest plugin versions are picked up:
|
|
39
|
-
`claude marketplace
|
|
39
|
+
`bash "$HOME/.claude/scripts/plugin-refresh.sh" {owner}` (adds the marketplace if needed, refreshes it, then runs `claude plugin update` for every installed plugin)
|
|
40
40
|
5. `node migrate-prefs.mjs` (if there is a schema upgrade)
|
|
41
41
|
5b. `node "$HOME/.claude/scripts/usage-register.mjs"` - operational reporting.
|
|
42
42
|
It requests a per-machine **write-only** token when none resolves, stores it in
|
|
@@ -770,7 +770,7 @@ def upload_curl(slug, m):
|
|
|
770
770
|
"# Equivalent by hand (curl, Server/DC Bearer PAT - NOT Cloud user:token).\n"
|
|
771
771
|
"# $CONFLUENCE_BASE_URL / $CONFLUENCE_SPACE / $CONFLUENCE_PARENT are your wiki's target:\n"
|
|
772
772
|
'# TOKEN=$(security find-generic-password -s CONFLUENCE_API_TOKEN -w)\n'
|
|
773
|
-
'#
|
|
773
|
+
'# printf \'Authorization: Bearer %s\\n\' "$TOKEN" | curl -sS -H @- -X POST '
|
|
774
774
|
'"$CONFLUENCE_BASE_URL/rest/api/content" \\\n'
|
|
775
775
|
'# -H "Content-Type: application/json" -d @- <<JSON\n'
|
|
776
776
|
f'# {{"type":"page","title":{json.dumps(PAGE_TITLE_PREFIX + "-" + screen)},'
|