@mmerterden/multi-agent-pipeline 8.6.1 → 8.6.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/README.md +29 -48
- package/package.json +1 -1
- package/pipeline/commands/multi-agent/_account-picker.md +1 -1
- package/pipeline/commands/multi-agent/sync.md +1 -1
- package/pipeline/schemas/prefs.schema.json +2 -2
- package/pipeline/scripts/smoke-personal-data.sh +5 -3
- package/pipeline/scripts/smoke-plan-todos.sh +5 -2
- package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +1 -1
- package/pipeline/scripts/.last-figma-sync-plan.json +0 -23
package/README.md
CHANGED
|
@@ -46,38 +46,24 @@ Full version history lives in [CHANGELOG.md](./CHANGELOG.md). Every release entr
|
|
|
46
46
|
|
|
47
47
|
- Node.js 18+
|
|
48
48
|
- Claude Code (https://claude.ai/code) **or** GitHub Copilot CLI
|
|
49
|
-
- macOS
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
- ✅ `read:packages`
|
|
61
|
-
- ✅ `repo` (required for private package access)
|
|
62
|
-
|
|
63
|
-
If your GitHub account belongs to an SSO-enforced organization, after creating the token click **"Configure SSO" → Authorize** on the token row.
|
|
64
|
-
|
|
65
|
-
### 2. Configure `~/.npmrc`
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
# Replace ghp_xxx with the token from step 1
|
|
69
|
-
echo "@mmerterden:registry=https://npm.pkg.github.com" >> ~/.npmrc
|
|
70
|
-
echo "//npm.pkg.github.com/:_authToken=ghp_xxx" >> ~/.npmrc
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### 3. Verify access
|
|
49
|
+
- macOS, Linux, or Windows (Git Bash / WSL). Native credential storage everywhere:
|
|
50
|
+
- **macOS** → Keychain (`security`)
|
|
51
|
+
- **Linux** → libsecret (`secret-tool` — `apt install libsecret-tools` / `dnf install libsecret`)
|
|
52
|
+
- **Windows** → Credential Manager (PowerShell `CredentialManager` module — `Install-Module CredentialManager`)
|
|
53
|
+
- Runtime CLIs the pipeline shells out to:
|
|
54
|
+
- `gh` (GitHub CLI) for issue / PR flows
|
|
55
|
+
- `jq` for JSON parsing
|
|
56
|
+
- `python3` (stdlib only, used by the deterministic keychain helper)
|
|
57
|
+
- `bash` 4+
|
|
58
|
+
|
|
59
|
+
The package is **public on npmjs.org** — no auth, no PAT, no `~/.npmrc` setup needed:
|
|
74
60
|
|
|
75
61
|
```bash
|
|
76
62
|
npm view @mmerterden/multi-agent-pipeline version
|
|
77
|
-
# → prints "
|
|
63
|
+
# → prints "8.6.1" (or newer)
|
|
78
64
|
```
|
|
79
65
|
|
|
80
|
-
If
|
|
66
|
+
If `npm view` shows a stale version, run `npm cache clean --force` and retry.
|
|
81
67
|
|
|
82
68
|
> **New here?** Worked end-to-end transcripts live in [`examples/`](./examples/) — bug fix from Jira, feature in autopilot, `--dev` fast path, and recovery from a broken run. Read one before you run the pipeline on your own code.
|
|
83
69
|
>
|
|
@@ -87,9 +73,9 @@ If this fails, see [Troubleshooting](#troubleshooting) below.
|
|
|
87
73
|
|
|
88
74
|
## Quick Start
|
|
89
75
|
|
|
90
|
-
### Option A — Install from source (recommended
|
|
76
|
+
### Option A — Install from source (recommended for development)
|
|
91
77
|
|
|
92
|
-
|
|
78
|
+
Clone the repo and run the installer directly — full read access to source files.
|
|
93
79
|
|
|
94
80
|
```bash
|
|
95
81
|
git clone git@github.com:mmerterden/multi-agent-pipeline.git
|
|
@@ -127,7 +113,7 @@ This discovers your Keychain tokens (Jira, Bitbucket, GitHub, etc.), sets up you
|
|
|
127
113
|
|
|
128
114
|
Update later with `git pull && npm install` inside the clone. Pin to a specific version by checking out the corresponding tag (`git tag -l` to list).
|
|
129
115
|
|
|
130
|
-
### Option B — npx (
|
|
116
|
+
### Option B — npx (public registry, no auth)
|
|
131
117
|
|
|
132
118
|
```bash
|
|
133
119
|
npx @mmerterden/multi-agent-pipeline install # Claude Code (default)
|
|
@@ -143,7 +129,7 @@ npx @mmerterden/multi-agent-pipeline uninstall # interactive, all targe
|
|
|
143
129
|
npx @mmerterden/multi-agent-pipeline uninstall --dry-run # preview only
|
|
144
130
|
```
|
|
145
131
|
|
|
146
|
-
### Option C — Global install (
|
|
132
|
+
### Option C — Global install (public registry, no auth)
|
|
147
133
|
|
|
148
134
|
```bash
|
|
149
135
|
npm install -g @mmerterden/multi-agent-pipeline
|
|
@@ -177,32 +163,27 @@ slows down the install.
|
|
|
177
163
|
|
|
178
164
|
### `sh: multi-agent-pipeline: command not found`
|
|
179
165
|
|
|
180
|
-
npx couldn't fetch the package
|
|
166
|
+
`npx` couldn't fetch the package. Most common causes:
|
|
181
167
|
|
|
182
|
-
|
|
168
|
+
- Network blocked or proxy in front of npmjs.org.
|
|
169
|
+
- Stale npx cache — `npx clear-npx-cache` then retry.
|
|
170
|
+
- Wrong package name (it is `@mmerterden/multi-agent-pipeline`, with the scope).
|
|
183
171
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
- PAT is fine-grained instead of **Classic**. Recreate as Classic.
|
|
187
|
-
- PAT is missing `repo` scope. Private packages require both `read:packages` **and** `repo`.
|
|
188
|
-
- SSO not authorized. On the token row, click **"Configure SSO" → Authorize** for the relevant org.
|
|
189
|
-
- Token expired or revoked.
|
|
172
|
+
### `npm error code E404` on `registry.npmjs.org`
|
|
190
173
|
|
|
191
|
-
Quick
|
|
174
|
+
The package wasn't reachable. Quick checks:
|
|
192
175
|
|
|
193
176
|
```bash
|
|
194
|
-
curl -
|
|
195
|
-
|
|
177
|
+
curl -fsSL "https://registry.npmjs.org/@mmerterden/multi-agent-pipeline" | jq -r '."dist-tags".latest'
|
|
178
|
+
# Should print 8.6.1 (or newer)
|
|
196
179
|
```
|
|
197
180
|
|
|
198
|
-
-
|
|
199
|
-
-
|
|
200
|
-
- `403` — token valid but no repo access. Ask the repo owner to add you as a collaborator.
|
|
201
|
-
- `404` — scope misconfigured in `~/.npmrc`, or package name is wrong.
|
|
181
|
+
- If this prints a version → your local npm cache is stale; run `npm cache clean --force` and retry.
|
|
182
|
+
- If it 404s → registry outage or scope/package-name typo. Verify the URL hits the JSON above.
|
|
202
183
|
|
|
203
|
-
###
|
|
184
|
+
### Older PAT / GitHub Packages docs
|
|
204
185
|
|
|
205
|
-
|
|
186
|
+
Earlier README revisions referenced GitHub Packages with a Classic PAT and `~/.npmrc` setup. The package moved to **public npmjs.org** in v8.6.1; no token, no `~/.npmrc` line is needed. If you set one up previously, you can leave it — it just won't be consulted.
|
|
206
187
|
|
|
207
188
|
## Tool support
|
|
208
189
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "8.6.
|
|
3
|
+
"version": "8.6.2",
|
|
4
4
|
"description": "8-phase AI development pipeline. Full orchestration on Claude Code + Copilot CLI; knowledge layer (rules + skills) ports to Cursor, Windsurf, and Cline. Analysis, planning, TDD, CLI-aware parallel review with Opus triage, wiki generation, commit automation. Token-preserving uninstall.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -312,7 +312,7 @@ refactor, resume, review, scan, search, setup, stack, status, sync, test, update
|
|
|
312
312
|
| Islem | Token Kaynagi |
|
|
313
313
|
|-------|---------------|
|
|
314
314
|
| `gh` CLI (personal) | `{owner}` gh auth (Keychain) |
|
|
315
|
-
| `gh` CLI (work) | `
|
|
315
|
+
| `gh` CLI (work) | `{user}_<work-label>` gh auth (Keychain) — see `prefs.global.accounts[]` |
|
|
316
316
|
| npm publish | `NODE_AUTH_TOKEN` — CI'da `GITHUB_TOKEN`, local'de Keychain PAT |
|
|
317
317
|
|
|
318
318
|
```bash
|
|
@@ -977,7 +977,7 @@
|
|
|
977
977
|
"properties": {
|
|
978
978
|
"id": {
|
|
979
979
|
"type": "string",
|
|
980
|
-
"description": "Short id from account-resolver, e.g.
|
|
980
|
+
"description": "Short id from account-resolver, e.g. my-account"
|
|
981
981
|
},
|
|
982
982
|
"prefix": {
|
|
983
983
|
"type": "string",
|
|
@@ -997,7 +997,7 @@
|
|
|
997
997
|
},
|
|
998
998
|
"accounts": {
|
|
999
999
|
"type": "array",
|
|
1000
|
-
"description": "v7.4.0+. Per-account overrides \u2014 host, label, default platform. Resolved by account-resolver.sh by matching `id` (e.g.
|
|
1000
|
+
"description": "v7.4.0+. Per-account overrides \u2014 host, label, default platform. Resolved by account-resolver.sh by matching `id` (e.g. my-account). When unset, hosts fall back to global.hosts.{jira,bitbucket}.",
|
|
1001
1001
|
"items": {
|
|
1002
1002
|
"type": "object",
|
|
1003
1003
|
"additionalProperties": false,
|
|
@@ -40,8 +40,11 @@ FORBIDDEN=(
|
|
|
40
40
|
'mmerterden\.dev'
|
|
41
41
|
'mmerterden/remote-control'
|
|
42
42
|
'mmerterden/mmerterden\.dev'
|
|
43
|
-
# Author's macOS username
|
|
44
|
-
|
|
43
|
+
# Author's macOS username — both forms: M_ERDEN3 (underscore) appears in
|
|
44
|
+
# Keychain labels, M-ERDEN3 (dash) appears in gh auth usernames + paths
|
|
45
|
+
# encoded by the Claude projects convention (/ → -).
|
|
46
|
+
'\bM_ERDEN3\b'
|
|
47
|
+
'\bM-ERDEN3\b'
|
|
45
48
|
)
|
|
46
49
|
|
|
47
50
|
PASS=0
|
|
@@ -56,7 +59,6 @@ for pattern in "${FORBIDDEN[@]}"; do
|
|
|
56
59
|
--exclude="smoke-personal-data.sh" \
|
|
57
60
|
--exclude="smoke-install-leak-gate.sh" \
|
|
58
61
|
--exclude="figma-placeholder-map.json" \
|
|
59
|
-
--exclude=".last-figma-sync-plan.json" \
|
|
60
62
|
--exclude="REVIEW_CHECKLIST.md" \
|
|
61
63
|
"$pattern" "$PIPELINE_DIR" 2>/dev/null || true)
|
|
62
64
|
if [ -n "$matches" ]; then
|
|
@@ -95,8 +95,11 @@ else
|
|
|
95
95
|
fi
|
|
96
96
|
|
|
97
97
|
# 5-8. Lifecycle test against a temp state dir
|
|
98
|
+
# Use a temp directory derived from $HOME so the path stays cross-user.
|
|
98
99
|
TEST_TASK="SMOKE-PT-$$"
|
|
99
|
-
|
|
100
|
+
TEST_PROJECT_KEY=$(printf '%s' "$HOME/test-plan-todos-smoke" | tr '/' '-')
|
|
101
|
+
TEST_PROJECT_ROOT="$HOME/.claude/projects/$TEST_PROJECT_KEY"
|
|
102
|
+
TEST_DIR="$TEST_PROJECT_ROOT/state/$TEST_TASK"
|
|
100
103
|
mkdir -p "$TEST_DIR"
|
|
101
104
|
echo '{"task":{"id":"'"$TEST_TASK"'"}}' > "$TEST_DIR/agent-state.json"
|
|
102
105
|
PLAN='{"title":"Smoke","todos":[
|
|
@@ -157,7 +160,7 @@ else
|
|
|
157
160
|
fi
|
|
158
161
|
|
|
159
162
|
# Cleanup the test state
|
|
160
|
-
rm -rf "$
|
|
163
|
+
rm -rf "$TEST_PROJECT_ROOT"
|
|
161
164
|
|
|
162
165
|
# 9. Prefs schema toggle
|
|
163
166
|
if jq -e '.properties.global.properties.planTodos.properties.enabled
|
|
@@ -19,7 +19,7 @@ Unassigned GitHub issue'ları interactive olarak listele, seçtir ve pipeline'a
|
|
|
19
19
|
- `my-figma-app` → `my-org/my-figma-app`
|
|
20
20
|
- Başka → kullanıcıya repo sor
|
|
21
21
|
|
|
22
|
-
2. **gh auth switch** — İş reposu ise `
|
|
22
|
+
2. **gh auth switch** — İş reposu ise `prefs.global.accounts[]` içindeki work account label'ına geç (`gh auth switch --user {work-label}`)
|
|
23
23
|
|
|
24
24
|
3. **Issue'ları çek** — `gh issue list --state open --assignee "" --json number,title,labels --limit 50`
|
|
25
25
|
- `implemented` veya `in progress` label'lı olanları filtrele
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"source": { "path": "/Users/M_ERDEN3/turkish-airlines-ios-figma", "branch": "develop", "commit": "6702673562d797e5bb77364922f211a4b5d5c0ae", "lastCommit": "cd0cde2f25abbc2524f3f20407d8c0d9ff6c2245" },
|
|
3
|
-
"summary": { "changedSkills": 12 },
|
|
4
|
-
"changes": [
|
|
5
|
-
{ "upstream": "figma-cli-iterate", "local": "figma-cli-iterate", "tree": "figma-common", "renamed": false, "overlaySkip": false },
|
|
6
|
-
{ "upstream": "figma-cli-lean-iterate", "local": "figma-cli-lean-iterate", "tree": "figma-common", "renamed": false, "overlaySkip": false },
|
|
7
|
-
{ "upstream": "figma-form-integration", "local": "figma-form-integration", "tree": "figma-common", "renamed": false, "overlaySkip": false },
|
|
8
|
-
{ "upstream": "figma-issue", "local": "figma-issue", "tree": "figma-common", "renamed": false, "overlaySkip": false },
|
|
9
|
-
{ "upstream": "figma-iterate", "local": "figma-iterate", "tree": "figma-common", "renamed": false, "overlaySkip": false },
|
|
10
|
-
{ "upstream": "figma-iteration-commit", "local": "figma-iteration-commit", "tree": "figma-common", "renamed": false, "overlaySkip": false },
|
|
11
|
-
{ "upstream": "figma-to-swift-ui-implement", "local": "figma-component-implement", "tree": "figma-ios", "renamed": true, "overlaySkip": true },
|
|
12
|
-
{ "upstream": "figma-to-swift-ui-start", "local": "figma-component-start", "tree": "figma-common", "renamed": true, "overlaySkip": false },
|
|
13
|
-
{ "upstream": "figma-to-swiftui", "local": "figma-to-component", "tree": "figma-ios", "renamed": true, "overlaySkip": false },
|
|
14
|
-
{ "upstream": "figma-ui-patterns", "local": "figma-ui-patterns", "tree": "figma-common", "renamed": false, "overlaySkip": false },
|
|
15
|
-
{ "upstream": "performance-swiftui", "local": "performance-swiftui", "tree": "figma-common", "renamed": false, "overlaySkip": false },
|
|
16
|
-
{ "upstream": "performance-tour", "local": "performance-tour", "tree": "figma-common", "renamed": false, "overlaySkip": false }
|
|
17
|
-
],
|
|
18
|
-
"postActions": [
|
|
19
|
-
"run `npm run test:smoke` — all 28 suites must stay green",
|
|
20
|
-
"review figma-ios/REVIEW_CHECKLIST.md for skills still WIP",
|
|
21
|
-
"commit with \"chore(sync): upstream @ 6702673562d797e5bb77364922f211a4b5d5c0ae\""
|
|
22
|
-
]
|
|
23
|
-
}
|