@mmerterden/multi-agent-pipeline 20.36.0 → 20.37.1
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 +37 -0
- package/docs/facts.json +2 -2
- package/docs/features.md +1 -1
- package/docs/recovery-guide.md +1 -1
- package/install/catalog-history.json +1 -1
- package/manifest.json +225 -148
- package/package.json +1 -1
- package/pipeline/commands/multi-agent/SKILL.md +33 -154
- package/pipeline/commands/multi-agent/analysis/SKILL.md +14 -68
- package/pipeline/commands/multi-agent/analysis-jira/SKILL.md +5 -8
- package/pipeline/commands/multi-agent/autopilot-on/SKILL.md +38 -109
- package/pipeline/commands/multi-agent/channels/SKILL.md +38 -167
- package/pipeline/commands/multi-agent/complaint-analysis/SKILL.md +37 -144
- package/pipeline/commands/multi-agent/design-check/SKILL.md +27 -131
- package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +22 -48
- package/pipeline/commands/multi-agent/ios-coding-standard/SKILL.md +37 -180
- package/pipeline/commands/multi-agent/jira/SKILL.md +16 -46
- package/pipeline/commands/multi-agent/manual-test/SKILL.md +12 -7
- package/pipeline/commands/multi-agent/refactor/SKILL.md +23 -184
- package/pipeline/commands/multi-agent/resume/SKILL.md +30 -136
- package/pipeline/commands/multi-agent/review/SKILL.md +24 -199
- package/pipeline/commands/multi-agent/setup/SKILL.md +25 -181
- package/pipeline/commands/multi-agent/stack/SKILL.md +9 -53
- package/pipeline/commands/multi-agent/status/SKILL.md +13 -2
- package/pipeline/commands/multi-agent/store-ready/SKILL.md +27 -226
- package/pipeline/commands/multi-agent/sync/SKILL.md +35 -164
- package/pipeline/commands/multi-agent/test-gen/SKILL.md +2 -4
- package/pipeline/commands/multi-agent/update/SKILL.md +18 -60
- package/pipeline/contract/CHANGELOG.md +9 -0
- package/pipeline/contract/fixtures/error-invalid-request.json +1 -1
- package/pipeline/contract/fixtures/error-unauthorized.json +1 -1
- package/pipeline/contract/fixtures/error-unsigned.json +1 -1
- package/pipeline/contract/fixtures/runs-awaiting-question.json +1 -1
- package/pipeline/contract/fixtures/runs-empty.json +1 -1
- package/pipeline/contract/fixtures/runs-failed.json +1 -1
- package/pipeline/contract/fixtures/runs-pr-opened-redacted.json +1 -1
- package/pipeline/contract/fixtures/runs-pr-opened.json +1 -1
- package/pipeline/contract/fixtures/runs-running.json +1 -1
- package/pipeline/contract/manifest.json +5 -5
- package/pipeline/contract/types/index.d.ts +3 -2
- package/pipeline/multi-agent-refs/audit-guide.md +20 -0
- package/pipeline/multi-agent-refs/autopilot-on/details.md +148 -0
- package/pipeline/multi-agent-refs/channels/generator.md +14 -0
- package/pipeline/multi-agent-refs/channels/preview.md +13 -0
- package/pipeline/multi-agent-refs/channels/reference.md +46 -0
- package/pipeline/multi-agent-refs/complaint-analysis/phases.md +159 -0
- package/pipeline/multi-agent-refs/design-check/export.md +1 -0
- package/pipeline/multi-agent-refs/design-check/init-inventory.md +1 -1
- package/pipeline/multi-agent-refs/design-check/scope-and-ledger.md +64 -0
- package/pipeline/multi-agent-refs/features/analysis-command-notes.md +53 -0
- package/pipeline/multi-agent-refs/features/commit-multi-repo.md +63 -0
- package/pipeline/multi-agent-refs/features/dev-multi-repo.md +51 -0
- package/pipeline/multi-agent-refs/features/test-gap.md +40 -0
- package/pipeline/multi-agent-refs/features/worktree-finalize.md +1 -1
- package/pipeline/multi-agent-refs/garbage-collect/phases.md +60 -0
- package/pipeline/multi-agent-refs/ios-coding-standard/plan.md +71 -0
- package/pipeline/multi-agent-refs/ios-coding-standard/resolve-and-scan.md +135 -0
- package/pipeline/multi-agent-refs/jira/picker-detail.md +71 -0
- package/pipeline/multi-agent-refs/orchestrator/copilot-pipeline.md +88 -0
- package/pipeline/multi-agent-refs/orchestrator/dispatcher.md +96 -1
- package/pipeline/multi-agent-refs/orchestrator/phase-3-user-test.md +12 -9
- package/pipeline/multi-agent-refs/phases/phase-1-plan.md +4 -4
- package/pipeline/multi-agent-refs/phases/phase-2-dev.md +8 -47
- package/pipeline/multi-agent-refs/phases/phase-3-review.md +21 -65
- package/pipeline/multi-agent-refs/phases/phase-4-commit.md +9 -59
- package/pipeline/multi-agent-refs/phases/phase-5-report.md +0 -31
- package/pipeline/multi-agent-refs/refactor/sweep.md +190 -0
- package/pipeline/multi-agent-refs/resume/details.md +115 -2
- package/pipeline/multi-agent-refs/review/inputs.md +33 -1
- package/pipeline/multi-agent-refs/review/module-guides.md +9 -1
- package/pipeline/multi-agent-refs/review/panel.md +75 -0
- package/pipeline/multi-agent-refs/review/valven.md +5 -1
- package/pipeline/multi-agent-refs/rules.md +1 -1
- package/pipeline/multi-agent-refs/setup/hooks-and-plugins.md +4 -0
- package/pipeline/multi-agent-refs/setup/token-save-flow.md +13 -0
- package/pipeline/multi-agent-refs/stack/background.md +72 -0
- package/pipeline/multi-agent-refs/store-ready/gates.md +139 -0
- package/pipeline/multi-agent-refs/store-ready/report.md +40 -2
- package/pipeline/multi-agent-refs/sync/office.md +10 -0
- package/pipeline/multi-agent-refs/sync/overview.md +61 -0
- package/pipeline/multi-agent-refs/sync/repo.md +91 -0
- package/pipeline/multi-agent-refs/update/details.md +83 -0
- package/pipeline/office/index.html +6 -3
- package/pipeline/office/toolkit.json +1 -1
- package/pipeline/rules/figma-pipeline.md +6 -3
- package/pipeline/schemas/prefs.schema.json +1 -1
- package/pipeline/schemas/runs-index.schema.json +2 -1
- package/pipeline/scripts/_memory-policy.mjs +27 -5
- package/pipeline/scripts/checkpoint-fold.sh +59 -0
- package/pipeline/scripts/contract-server.mjs +1 -1
- package/pipeline/scripts/gate-ledger.mjs +1 -1
- package/pipeline/scripts/office-control.mjs +41 -15
- package/pipeline/scripts/offload-ref.sh +1 -1
- package/pipeline/scripts/rework-rulings.mjs +5 -3
- package/pipeline/scripts/runs-index.mjs +34 -7
- package/pipeline/scripts/scope-check-gate.mjs +15 -2
- package/pipeline/scripts/status-overview.mjs +401 -0
- package/pipeline/scripts/user-test-handoff.sh +203 -0
- package/pipeline/scripts/validate-planning.mjs +5 -3
- package/pipeline/scripts/validate-triage.mjs +2 -1
- package/pipeline/scripts/write-state.mjs +13 -4
- package/pipeline/skills/.skill-manifest.json +64 -64
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +7 -70
- package/pipeline/skills/shared/core/apple-archive-compliance/references/examples.md +67 -0
- package/pipeline/skills/shared/core/apple-archive-compliance/references/version-history.md +8 -0
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +10 -72
- package/pipeline/skills/shared/core/google-play-compliance/references/examples.md +69 -0
- package/pipeline/skills/shared/core/google-play-compliance/references/notes.md +7 -0
- package/pipeline/skills/shared/core/google-play-compliance/references/version-history.md +5 -0
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +39 -262
- package/pipeline/skills/shared/core/multi-agent-autopilot-on/SKILL.md +35 -73
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +37 -337
- package/pipeline/skills/shared/core/multi-agent-design-check/SKILL.md +27 -122
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +8 -340
- package/pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md +37 -180
- package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +12 -7
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +23 -184
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +14 -82
- package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +25 -277
- package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +13 -2
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +73 -217
- package/pipeline/skills/shared/external/alarmkit/SKILL.md +11 -162
- package/pipeline/skills/shared/external/alarmkit/references/alarmkit-code.md +257 -0
- package/pipeline/skills/shared/external/android-architecture/SKILL.md +7 -58
- package/pipeline/skills/shared/external/android-architecture/references/code-examples.md +68 -0
- package/pipeline/skills/shared/external/app-intents/SKILL.md +3 -45
- package/pipeline/skills/shared/external/app-intents/references/code-examples.md +54 -0
- package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +5 -81
- package/pipeline/skills/shared/external/app-store-optimization/references/engagement-and-localization.md +96 -0
- package/pipeline/skills/shared/external/app-store-review/SKILL.md +6 -112
- package/pipeline/skills/shared/external/app-store-review/references/monetization-and-submission.md +138 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +10 -117
- package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models-code.md +186 -0
- package/pipeline/skills/shared/external/authentication/SKILL.md +3 -50
- package/pipeline/skills/shared/external/authentication/references/code-examples.md +59 -0
- package/pipeline/skills/shared/external/callkit-voip/SKILL.md +3 -84
- package/pipeline/skills/shared/external/callkit-voip/references/code-examples.md +93 -0
- package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +7 -263
- package/pipeline/skills/shared/external/ci-cd-pipelines/references/pipeline-examples.md +281 -0
- package/pipeline/skills/shared/external/clean-code/SKILL.md +8 -41
- package/pipeline/skills/shared/external/clean-code/references/code-examples.md +56 -0
- package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +8 -146
- package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-code.md +214 -0
- package/pipeline/skills/shared/external/compose-components/SKILL.md +6 -80
- package/pipeline/skills/shared/external/compose-components/references/code-examples.md +89 -0
- package/pipeline/skills/shared/external/compose-navigation/SKILL.md +5 -64
- package/pipeline/skills/shared/external/compose-navigation/references/code-examples.md +70 -0
- package/pipeline/skills/shared/external/core-data/SKILL.md +9 -157
- package/pipeline/skills/shared/external/core-data/references/core-data-code.md +221 -0
- package/pipeline/skills/shared/external/core-nfc/SKILL.md +3 -89
- package/pipeline/skills/shared/external/core-nfc/references/code-examples.md +98 -0
- package/pipeline/skills/shared/external/coreml/SKILL.md +17 -133
- package/pipeline/skills/shared/external/coreml/references/coreml-code.md +208 -0
- package/pipeline/skills/shared/external/css-modern/SKILL.md +8 -131
- package/pipeline/skills/shared/external/css-modern/references/code-examples.md +142 -0
- package/pipeline/skills/shared/external/database-patterns/SKILL.md +6 -103
- package/pipeline/skills/shared/external/database-patterns/references/orm-examples.md +112 -0
- package/pipeline/skills/shared/external/html-semantic/SKILL.md +7 -48
- package/pipeline/skills/shared/external/html-semantic/references/code-examples.md +54 -0
- package/pipeline/skills/shared/external/humanizer/SKILL.md +6 -19
- package/pipeline/skills/shared/external/humanizer/references/voice.md +24 -0
- package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +13 -170
- package/pipeline/skills/shared/external/ios-accessibility/references/assistive-tech-review.md +224 -0
- package/pipeline/skills/shared/external/ios-localization/SKILL.md +2 -24
- package/pipeline/skills/shared/external/ios-localization/references/code-examples.md +30 -0
- package/pipeline/skills/shared/external/ios-networking/SKILL.md +3 -58
- package/pipeline/skills/shared/external/ios-networking/references/code-examples.md +67 -0
- package/pipeline/skills/shared/external/ios-security/SKILL.md +4 -64
- package/pipeline/skills/shared/external/ios-security/references/code-examples.md +74 -0
- package/pipeline/skills/shared/external/live-activities/SKILL.md +4 -90
- package/pipeline/skills/shared/external/live-activities/references/code-examples.md +108 -0
- package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +9 -23
- package/pipeline/skills/shared/external/localization-reuse-map/references/project-settings.md +22 -0
- package/pipeline/skills/shared/external/mapkit-location/SKILL.md +5 -95
- package/pipeline/skills/shared/external/mapkit-location/references/code-examples.md +117 -0
- package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +7 -106
- package/pipeline/skills/shared/external/nextjs-app-router/references/app-router-examples.md +124 -0
- package/pipeline/skills/shared/external/permissionkit/SKILL.md +2 -31
- package/pipeline/skills/shared/external/permissionkit/references/code-examples.md +37 -0
- package/pipeline/skills/shared/external/play-store-review/SKILL.md +6 -74
- package/pipeline/skills/shared/external/play-store-review/references/signing-and-policies.md +83 -0
- package/pipeline/skills/shared/external/push-notifications/SKILL.md +8 -125
- package/pipeline/skills/shared/external/push-notifications/references/notification-code.md +176 -0
- package/pipeline/skills/shared/external/python-patterns/SKILL.md +7 -158
- package/pipeline/skills/shared/external/python-patterns/references/python-examples.md +176 -0
- package/pipeline/skills/shared/external/rest-api-design/SKILL.md +7 -157
- package/pipeline/skills/shared/external/rest-api-design/references/api-examples.md +175 -0
- package/pipeline/skills/shared/external/swift-architecture/SKILL.md +11 -230
- package/pipeline/skills/shared/external/swift-architecture/references/pattern-examples.md +295 -0
- package/pipeline/skills/shared/external/swift-codable/SKILL.md +17 -149
- package/pipeline/skills/shared/external/swift-codable/references/codable-recipes.md +207 -0
- package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +12 -99
- package/pipeline/skills/shared/external/swift-concurrency/references/code-examples.md +100 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/swift-6-2-additions.md +18 -0
- package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +9 -78
- package/pipeline/skills/shared/external/swift-formatstyle/references/formatstyle-examples.md +113 -0
- package/pipeline/skills/shared/external/swift-language/SKILL.md +3 -56
- package/pipeline/skills/shared/external/swift-language/references/code-examples.md +65 -0
- package/pipeline/skills/shared/external/swift-testing-pro/SKILL.md +1 -0
- package/pipeline/skills/shared/external/swiftdata/SKILL.md +6 -122
- package/pipeline/skills/shared/external/swiftdata/references/code-examples.md +140 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +12 -139
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/interop-code.md +198 -0
- package/pipeline/skills/shared/external/tailwind-css/SKILL.md +9 -81
- package/pipeline/skills/shared/external/tailwind-css/references/code-examples.md +91 -0
- package/pipeline/skills/shared/external/testing-backend/SKILL.md +7 -207
- package/pipeline/skills/shared/external/testing-backend/references/testing-examples.md +225 -0
- package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +8 -89
- package/pipeline/skills/shared/external/typescript-patterns/references/code-examples.md +100 -0
- package/pipeline/skills/shared/external/vision-framework/SKILL.md +2 -20
- package/pipeline/skills/shared/external/vision-framework/references/code-examples.md +26 -0
- package/pipeline/skills/shared/external/vue-composition/SKILL.md +7 -169
- package/pipeline/skills/shared/external/vue-composition/references/vue-examples.md +187 -0
- package/pipeline/skills/shared/external/web-accessibility/SKILL.md +7 -174
- package/pipeline/skills/shared/external/web-accessibility/references/a11y-examples.md +192 -0
- package/pipeline/skills/shared/external/web-performance/SKILL.md +8 -66
- package/pipeline/skills/shared/external/web-performance/references/code-examples.md +77 -0
- package/pipeline/skills/shared/external/web-testing/SKILL.md +11 -186
- package/pipeline/skills/shared/external/web-testing/references/testing-examples.md +213 -0
- /package/pipeline/skills/shared/external/localization-reuse-map/{reference → references}/format-and-output.md +0 -0
- /package/pipeline/skills/shared/external/localization-reuse-map/{reference → references}/publish-and-snapshot.md +0 -0
- /package/pipeline/skills/shared/external/localization-reuse-map/{reference → references}/sources-and-recipes.md +0 -0
|
@@ -13,14 +13,14 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, WebFetch
|
|
|
13
13
|
|
|
14
14
|
**One command. Full ecosystem sync. No arguments needed.**
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
It syncs all targets in order, updating only the stale ones, and reports. macOS only (ADR-0012); credential access goes through `~/.claude/lib/credential-store.sh` so no call site names the keychain backend.
|
|
17
17
|
|
|
18
18
|
**Input**: $ARGUMENTS (optional)
|
|
19
19
|
|
|
20
20
|
| Arg | Meaning |
|
|
21
21
|
|---|---|
|
|
22
|
-
| (none) | Full ecosystem sync
|
|
23
|
-
| `release` | Full sync + version bump + tag + npm publish + website deploy (
|
|
22
|
+
| (none) | Full ecosystem sync, every target |
|
|
23
|
+
| `release` | Full sync + version bump + tag + npm publish + website deploy (Release Flow) |
|
|
24
24
|
| `multi-agent-toolkit` | Run Step 3d only: gate, commit and publish the companion MCP server |
|
|
25
25
|
| `"change description"` | Apply the description to every target at once |
|
|
26
26
|
|
|
@@ -28,43 +28,16 @@ When invoked, it synchronizes all targets in order. It detects what changed, upd
|
|
|
28
28
|
|
|
29
29
|
- The pre-push gate is timing-sensitive: under heavy load a deadline test fails closed. Re-run it on a quiet machine; never push with `--no-verify`.
|
|
30
30
|
- `npm publish` answering 202 means the registry is still processing. Verify with the registry's dist-tags before moving `required`, which is asked for every release.
|
|
31
|
-
- The installed tree is localized (Turkish descriptions, `model: opus` while fable is off). Normalize
|
|
31
|
+
- The installed tree is localized (Turkish descriptions, `model: opus` while fable is off). Normalize to English and `model: fable` before copying into the repo.
|
|
32
32
|
- Synced shell runs on BSD userland: BSD grep has no Perl-regex flag, and `sed` has no `\b` or `\|`. A pattern that silently matches nothing reads as "clean".
|
|
33
33
|
|
|
34
34
|
## Targets
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
| 3 | multi-agent-pipeline repo | `~/multi-agent-pipeline/pipeline/` | <- from Claude (genericized) |
|
|
42
|
-
| 4 | Website | `{owner}/{website-host}` | <- version + features |
|
|
43
|
-
| 5 | multi-agent-toolkit MCP server | resolved from `prefs.global.devToolkit` or the `mcpServers` registration | own repo: gate, commit, publish |
|
|
44
|
-
|
|
45
|
-
## Platform Support (macOS only)
|
|
46
|
-
|
|
47
|
-
Only macOS is supported (ADR-0012). `package.json` declares `os: ["darwin"]`, which npm enforces on the root package, so this tree cannot be installed elsewhere, and a detection table for other hosts would describe a case that cannot occur.
|
|
48
|
-
|
|
49
|
-
**Contract for synced shell scripts.** The runtime is BSD userland and bash 3.2,
|
|
50
|
-
and that is a stricter constraint than "cross-platform", not a looser one:
|
|
51
|
-
|
|
52
|
-
1. Path handling: always quote (`"$f"`); use `$HOME`, never `/Users/...`.
|
|
53
|
-
2. `grep -P` is banned. BSD grep has no `-P`: it exits 2, and with `2>/dev/null`
|
|
54
|
-
that reads as "found nothing". Two gates have already shipped green for
|
|
55
|
-
exactly this reason. Use `-E`.
|
|
56
|
-
3. Timestamps: `stat -c %Y` FIRST, then `stat -f %m`. GNU-first ordering is
|
|
57
|
-
required because `stat -f` is a valid GNU flag (`--file-system`) that
|
|
58
|
-
succeeds and prints something that is not a timestamp.
|
|
59
|
-
4. Hashes: `sha256sum || shasum`, in that order. The gate fails a file that
|
|
60
|
-
names either alone.
|
|
61
|
-
5. `find` traversal: `-prune` for `node_modules`, `Pods`, `.build`,
|
|
62
|
-
`DerivedData`, `.next`.
|
|
63
|
-
6. Sed / awk: POSIX-portable. `-E`, never `-r`; `sed -i ''` on BSD.
|
|
64
|
-
7. Keychain I/O: always via `~/.claude/lib/credential-store.sh get|set`, never
|
|
65
|
-
`security` directly - the wrapper is what keeps a secret off argv.
|
|
66
|
-
8. Verification: after Step 3 (REPO), `bash -n` every shell script in
|
|
67
|
-
`pipeline/lib/` and `pipeline/scripts/`.
|
|
36
|
+
Claude Code (source of truth) -> Copilot CLI, Codex CLI (path-rewritten), the
|
|
37
|
+
pipeline repo (genericized), the website (`{owner}/{website-host}`) and the
|
|
38
|
+
multi-agent-toolkit MCP server (its own repo). Paths, directions, the shared
|
|
39
|
+
Claude <-> Copilot sections and the token table: `$HOME/.claude/multi-agent-refs/sync/overview.md`; read it
|
|
40
|
+
before Step 1.5.
|
|
68
41
|
|
|
69
42
|
## Default Behavior (no arguments)
|
|
70
43
|
|
|
@@ -74,15 +47,14 @@ Run every step automatically:
|
|
|
74
47
|
Step 0: DOCTOR doctor.mjs - exit 2 or 4 stops the sync
|
|
75
48
|
Step 1.5: DETECT Compare timestamps, find stale targets
|
|
76
49
|
Step 2: COPILOT Claude Code -> Copilot CLI (instructions + 70 sub-command skills)
|
|
77
|
-
Step 2b: CODEX Claude Code -> Codex CLI (
|
|
50
|
+
Step 2b: CODEX Claude Code -> Codex CLI (router skill + specs as refs + agent TOML)
|
|
78
51
|
Step 3: REPO Claude Code -> pipeline repo (genericized, personal data scrub, bash -n on all sh)
|
|
79
|
-
Step 3c: PLUGINS
|
|
80
|
-
bump changed plugins' patch version, commit + push the plugins repo)
|
|
52
|
+
Step 3c: PLUGINS shared/external -> multi-agent-plugins marketplace (rebuild, bump, push)
|
|
81
53
|
Step 3d: DEV-TOOLKIT companion MCP server -> detect movement, run the ship gates, commit + publish
|
|
82
54
|
Step 3e: OFFICE panel page is current, installed copies match it, toolkit version recorded
|
|
83
55
|
Step 4: WEBSITE Version + phase/model counts -> {website-host} (i18n + projects.ts)
|
|
84
56
|
Step 5: Commit Commit + push all changed repos
|
|
85
|
-
Step 6: Report
|
|
57
|
+
Step 6: Report Synced targets, changed files, deploy status, multi-agent-toolkit version
|
|
86
58
|
```
|
|
87
59
|
|
|
88
60
|
If nothing is stale → report "All targets up to date" and stop.
|
|
@@ -93,104 +65,30 @@ Step 0 gate rules and why: `features/doctor.md`.
|
|
|
93
65
|
|
|
94
66
|
## Sync rules
|
|
95
67
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
- `copilot-instructions.md`: general development instructions + pipeline summary section
|
|
100
|
-
- `multi-agent-pipeline/pipeline/`: generic open-source version (NO personal data)
|
|
101
|
-
3. **Sync the shared sections** (Claude ↔ Copilot):
|
|
102
|
-
- Pipeline entries table (base / :autopilot)
|
|
103
|
-
- Project detection (URL-based + cwd-based)
|
|
104
|
-
- Figma pipeline flow
|
|
105
|
-
- Git conventions (author, branch, commit format)
|
|
106
|
-
- Keychain management (registry, naming convention, multi-agent pattern)
|
|
107
|
-
4. **Do not duplicate** - summary in Copilot, full spec in Claude. Keep this distinction.
|
|
108
|
-
5. **Report** - show a short diff summary after sync
|
|
68
|
+
Read every target's current state before changing anything; keep each target's
|
|
69
|
+
own format; summary in Copilot, full spec in Claude, never duplicated; finish
|
|
70
|
+
with a short diff summary.
|
|
109
71
|
|
|
110
72
|
---
|
|
111
73
|
|
|
112
|
-
##
|
|
113
|
-
|
|
114
|
-
1. **Source**: `~/.claude/commands/multi-agent/` + `~/.claude/multi-agent-refs/` + `~/.claude/agents/` + `~/.claude/lib/`
|
|
115
|
-
2. **Target**: `~/multi-agent-pipeline/pipeline/`
|
|
116
|
-
3. **Genericization** (must be applied BEFORE writing to the target):
|
|
117
|
-
- Jira project key (`prefs.global.defaultJiraKey`) -> `{JIRA_KEY}`, `PROJ` in examples
|
|
118
|
-
- Personal names/emails -> generic placeholder
|
|
119
|
-
- Branch names -> `develop`
|
|
120
|
-
- Project names -> `my-app`
|
|
121
|
-
- `{JIRA_HOST}`, `{BITBUCKET_HOST}`, `{CONFLUENCE_HOST}`, `{CORP_DOMAIN}` stay as-is
|
|
122
|
-
- **Verify**: `grep` scan for personal/corporate data inside pipeline/ -> 0 results
|
|
123
|
-
4. **File mapping**:
|
|
124
|
-
```
|
|
125
|
-
~/.claude/commands/multi-agent/ -> pipeline/commands/multi-agent/
|
|
126
|
-
~/.claude/multi-agent-refs/ -> pipeline/multi-agent-refs/ (refs + pickers, non-command)
|
|
127
|
-
~/.claude/commands/sim-test.md -> pipeline/commands/sim-test.md
|
|
128
|
-
~/.claude/agents/*.md -> pipeline/agents/
|
|
129
|
-
```
|
|
130
|
-
5. **Files NOT synced** (local-only, may contain personal data):
|
|
131
|
-
- `~/.claude/multi-agent-preferences.json`
|
|
132
|
-
- `~/.claude/CLAUDE.md`, `~/.claude/rules/`, `~/.claude/knowledge/`
|
|
133
|
-
- `~/.claude/scripts/` - EXCEPT `pre-commit-check.sh`, `agent-guard.sh`, `agent-guard.py`, and `build-stack-plugins.mjs` (generic, synced)
|
|
134
|
-
- `~/.claude/settings.json`
|
|
135
|
-
- `~/.claude/office/` - the office panel flows the other way: its source is the repo (`pipeline/office-src`, built by `office-build.mjs` into `pipeline/office`), and the installer copies it to each host. Never copy it from `~/.claude` into the repo; Step 3e checks it instead
|
|
136
|
-
- `~/.claude/multi-agent-refs/registries/` - the installer copies gate registries there from `pipeline/skills/shared/external`; the repo already holds the source
|
|
137
|
-
- **Any `~/.claude/commands/multi-agent/*/SKILL.md` whose frontmatter has `local-only: true`** - these are user/repo-specific alias wrappers that delegate to a private marketplace plugin's skills exposed as `multi-agent:<name>`. Syncing them would leak the private plugin/skill names into the public pipeline. Skip them at copy time; the backstop below proves none reached `pipeline/commands/`.
|
|
138
|
-
```bash
|
|
139
|
-
grep -rl "^local-only: true" ~/multi-agent-pipeline/pipeline/commands/ 2>/dev/null \
|
|
140
|
-
&& { echo "ABORT: local-only wrapper leaked into pipeline/commands"; exit 1; } || true
|
|
141
|
-
# backstop: corporate refs only (generic ai-ios-toolkit is fine)
|
|
142
|
-
grep -rniE "ai-(ios-engineering|mobile)-toolkit:(create-ui-component|evolve-ui-component|fix-bug|branch-and-pr|backlog|code-connect|figma-utility|resource-utility|component-wiki|component-docs|figma-setup)" \
|
|
143
|
-
~/multi-agent-pipeline/pipeline/commands/ 2>/dev/null \
|
|
144
|
-
&& { echo "ABORT: corporate reference leaked into pipeline/commands"; exit 1; } || true
|
|
145
|
-
```
|
|
146
|
-
- **Installed-tree artifacts.** Picker descriptions are Turkish with a
|
|
147
|
-
`description-en:` sidecar when `outputLanguage=tr`, and fable-tier agents
|
|
148
|
-
carry `model: opus` while `fableEnabled` is off. The repo always gets the
|
|
149
|
-
English form and `model: fable`, so normalize after copying:
|
|
150
|
-
```bash
|
|
151
|
-
# normalize: restore English descriptions, strip description-en sidecars
|
|
152
|
-
node ~/multi-agent-pipeline/pipeline/scripts/localize-commands.mjs restore \
|
|
153
|
-
--dir ~/multi-agent-pipeline/pipeline/commands/multi-agent
|
|
154
|
-
grep -rl "^description-en:" ~/multi-agent-pipeline/pipeline/commands/ 2>/dev/null \
|
|
155
|
-
&& { echo "ABORT: description-en sidecar leaked into pipeline/commands"; exit 1; } || true
|
|
156
|
-
# backstop: repo description lines must be English (Turkish-diacritics proxy)
|
|
157
|
-
grep -rn '^description:.*[çğıöşüÇĞİÖŞÜ]' ~/multi-agent-pipeline/pipeline/commands/ 2>/dev/null \
|
|
158
|
-
&& { echo "ABORT: localized description leaked into pipeline/commands"; exit 1; } || true
|
|
159
|
-
node ~/multi-agent-pipeline/pipeline/lib/agent-model-sync.mjs --dir ~/multi-agent-pipeline/pipeline/agents --fable-on
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
6. **Cross-platform smoke gate** (final step of the REPO sync, before push):
|
|
163
|
-
```bash
|
|
164
|
-
# bash -n: parse-level syntax check on every shell script
|
|
165
|
-
find ~/multi-agent-pipeline/pipeline/lib ~/multi-agent-pipeline/pipeline/scripts \
|
|
166
|
-
-name "*.sh" -type f -exec bash -n {} \;
|
|
167
|
-
# Should print nothing - any output is a portability regression.
|
|
168
|
-
|
|
169
|
-
# Portability grep: flag known non-portable constructs introduced post-sync.
|
|
170
|
-
grep -rnE "stat -f[^[:space:]]+[^|]|sed -i[^[:space:]'\"]" \
|
|
171
|
-
~/multi-agent-pipeline/pipeline/lib ~/multi-agent-pipeline/pipeline/scripts || true
|
|
172
|
-
# Each hit needs an explicit GNU/BSD fallback per the Platform Support contract.
|
|
173
|
-
```
|
|
174
|
-
Gate failure -> abort push, surface the file + line, fix in the `~/.claude/` source first, re-sync.
|
|
74
|
+
## Step procedures (read each file before its step)
|
|
175
75
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
Full procedure: `$HOME/.claude/multi-agent-refs/sync/stack-plugins.md`. Read it before Step 3c.
|
|
76
|
+
| Step | Procedure |
|
|
77
|
+
|---|---|
|
|
78
|
+
| 2b CODEX (runs after Step 3) | `$HOME/.claude/multi-agent-refs/sync/codex.md` |
|
|
79
|
+
| 3 REPO | `$HOME/.claude/multi-agent-refs/sync/repo.md` |
|
|
80
|
+
| 3c PLUGINS | `$HOME/.claude/multi-agent-refs/sync/stack-plugins.md` |
|
|
81
|
+
| 3d DEV-TOOLKIT (and `multi-agent-toolkit` arg) | `$HOME/.claude/multi-agent-refs/sync/dev-toolkit.md` |
|
|
82
|
+
| 3e OFFICE (also release step 9c) | `$HOME/.claude/multi-agent-refs/sync/office.md` |
|
|
185
83
|
|
|
186
|
-
|
|
84
|
+
Hard rules for Step 3, whatever `repo.md` adds:
|
|
187
85
|
|
|
188
|
-
|
|
86
|
+
- Genericize BEFORE writing to `~/multi-agent-pipeline/pipeline/`; the personal/corporate data scan must return 0 results.
|
|
87
|
+
- Never sync a `local-only: true` SKILL.md, local config, or `~/.claude/office/`. A leaked wrapper, sidecar or localized description aborts the sync.
|
|
88
|
+
- Synced shell follows the BSD / bash 3.2 contract in `repo.md` (`grep -P` banned, keychain I/O only via `credential-store.sh`). A failed smoke gate aborts the push; fix the `~/.claude/` source, re-sync.
|
|
189
89
|
|
|
190
90
|
## Website Sync (Step 4)
|
|
191
91
|
|
|
192
|
-
Propagate version, phase and model counts and feature descriptions to the website.
|
|
193
|
-
|
|
194
92
|
```bash
|
|
195
93
|
gh auth switch --user {owner}
|
|
196
94
|
WEBSITE_DIR="$HOME/{website-host}"
|
|
@@ -198,14 +96,10 @@ WEBSITE_DIR="$HOME/{website-host}"
|
|
|
198
96
|
cd "$WEBSITE_DIR" && git pull origin main
|
|
199
97
|
```
|
|
200
98
|
|
|
201
|
-
|
|
202
|
-
|-------|--------------|
|
|
203
|
-
| `src/lib/i18n.tsx` | Phase count, model count, feature descriptions (EN + TR) |
|
|
204
|
-
| `src/data/projects.ts` | Version number, tagline, description, feature list |
|
|
99
|
+
Files: `src/lib/i18n.tsx` (counts, feature copy EN + TR) and `src/data/projects.ts` (version, features); detail in `overview.md`.
|
|
205
100
|
|
|
206
101
|
```bash
|
|
207
|
-
#
|
|
208
|
-
# keeps the old version. {identity} is the one routed to {owner}, not the run's own.
|
|
102
|
+
# {identity} is the one routed to {owner}, not the run's own.
|
|
209
103
|
# Why, signature, recovery: `$HOME/.claude/multi-agent-refs/website-deploy.md`.
|
|
210
104
|
bash "$HOME/.claude/scripts/website-deploy-commit.sh" "{identity.name}" "{identity.email}" "{VERSION}" "$WEBSITE_DIR"
|
|
211
105
|
```
|
|
@@ -219,8 +113,7 @@ When invoked with the `release` argument:
|
|
|
219
113
|
```
|
|
220
114
|
1. REPO Claude Code -> pipeline repo (genericized)
|
|
221
115
|
2. VERIFY Personal data scan -> 0 results; config-hygiene scan (scan-agent-config.sh) -> 0 HIGH
|
|
222
|
-
3. LINT + TEST ESLint + smoke tests (
|
|
223
|
-
it with sign-skills.sh whenever a SKILL.md moved)
|
|
116
|
+
3. LINT + TEST ESLint + smoke tests (re-sign .skill-manifest.json with sign-skills.sh when a SKILL.md moved)
|
|
224
117
|
4. VERSION package.json version bump (patch/minor/major)
|
|
225
118
|
5. Commit + TAG git commit + git tag v{VERSION}
|
|
226
119
|
6. PUSH git push --tags; publish is local (release.yml off)
|
|
@@ -232,26 +125,13 @@ When invoked with the `release` argument:
|
|
|
232
125
|
10. Report Summary: version, touched repos, deploy status
|
|
233
126
|
```
|
|
234
127
|
|
|
235
|
-
### Step 3e: OFFICE (every sync, and step 9c of a release)
|
|
236
|
-
|
|
237
|
-
The office panel ships with the pipeline, so a sync carries it by checking it, not by copying it:
|
|
238
|
-
|
|
239
|
-
1. `node ~/multi-agent-pipeline/pipeline/scripts/office-build.mjs --check`: the committed page is what `pipeline/office-src` builds to, and `office/toolkit.json` carries the toolkit version in `docs/facts.json`. Either stale fails the sync until it is rebuilt and committed; a release that regenerates facts rebuilds the office right after.
|
|
240
|
-
2. After the install steps, compare `pipeline/office/index.html` with the installed copies (`~/.claude/office/`, and the Copilot and Codex trees when installed), byte for byte, plus the asset list. A difference means the install is behind: run `node install.js --installed` and compare again.
|
|
241
|
-
3. Report the toolkit version the installed `office/toolkit.json` carries: it is what the office Tools window starts, and it moves forward with every release.
|
|
242
|
-
4. An office server that is already running picks the update up by itself: the open page shows a reload banner, and `/multi-agent:office-on` replaces a server whose code changed. Nothing to restart by hand.
|
|
243
|
-
|
|
244
128
|
---
|
|
245
129
|
|
|
246
130
|
## Sub-Command Sync (Claude Code <-> Copilot CLI Skills)
|
|
247
131
|
|
|
248
|
-
|
|
249
|
-
same specs as reference files rather than as peer skills, via Step 2b - see
|
|
250
|
-
`cross-cli-contract.md` 2.6 for why the parity axis differs per host.
|
|
132
|
+
Claude <-> Copilot axis only; Codex takes Step 2b (`cross-cli-contract.md` 2.6).
|
|
251
133
|
|
|
252
|
-
|
|
253
|
-
|-------------|-------------|
|
|
254
|
-
| `~/.claude/commands/multi-agent/{cmd}/SKILL.md` | `~/.copilot/skills/multi-agent-{cmd}/SKILL.md` |
|
|
134
|
+
`~/.claude/commands/multi-agent/{cmd}/SKILL.md` <-> `~/.copilot/skills/multi-agent-{cmd}/SKILL.md`.
|
|
255
135
|
|
|
256
136
|
**70 commands are synced** (canonical inventory - must match `cross-cli-contract.md` section 1; drift = contract violation):
|
|
257
137
|
|
|
@@ -268,20 +148,11 @@ testflight-validation, uninstall, update
|
|
|
268
148
|
|
|
269
149
|
**NOT synced**: `$HOME/.claude/multi-agent-refs/*` - lazy-load references, Claude Code specific
|
|
270
150
|
|
|
271
|
-
|
|
272
|
-
**Copilot -> Claude**: simplify the frontmatter (`description` + `allowed-tools`), add `$ARGUMENTS`
|
|
151
|
+
Frontmatter conversion between the two forms: `overview.md`, "Sub-command paths".
|
|
273
152
|
|
|
274
153
|
---
|
|
275
154
|
|
|
276
155
|
## Keychain Token Access
|
|
277
156
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
| `gh` CLI (personal) | `{owner}` gh auth (Keychain) |
|
|
281
|
-
| `gh` CLI (work) | `{user}_<work-label>` gh auth (Keychain) - see `prefs.global.accounts[]` |
|
|
282
|
-
| npm publish | `NODE_AUTH_TOKEN` - `GITHUB_TOKEN` in CI, Keychain PAT locally |
|
|
283
|
-
| multi-agent-toolkit publish (Step 3d) | `npm` logical Keychain key -> throwaway `--userconfig`, registry from that repo's `publishConfig` |
|
|
284
|
-
|
|
285
|
-
```bash
|
|
286
|
-
gh auth switch --user {owner} # for personal repos
|
|
287
|
-
```
|
|
157
|
+
Token sources per operation: `overview.md`. Personal repos run under
|
|
158
|
+
`gh auth switch --user {owner}`; tokens are read only through `credential-store.sh`.
|
|
@@ -75,10 +75,8 @@ Scripts: `test-gen-gate.mjs` (artefact, handle and write gates),
|
|
|
75
75
|
(`tracker-contract.md`, "Call pattern").
|
|
76
76
|
2. Toolkit: `test_results_classify`, `coverage_gap` and `ui_locator_codegen`
|
|
77
77
|
need `@mmerterden/multi-agent-toolkit-mcp` >= v3.25.0. Check the tool list
|
|
78
|
-
once. Each missing tool has a fallback in `stages.md` (
|
|
79
|
-
|
|
80
|
-
locators written by hand from the handles); say which fallbacks are in use,
|
|
81
|
-
once.
|
|
78
|
+
once. Each missing tool has a fallback in `stages.md` (stages 3, 5 and 7);
|
|
79
|
+
say which fallbacks are in use, once.
|
|
82
80
|
3. Change base. `TG_STATE="$HOME/.claude/knowledge/<project>/test-gen-state.json"`:
|
|
83
81
|
|
|
84
82
|
```bash
|
|
@@ -14,9 +14,7 @@ confirm: none
|
|
|
14
14
|
node "$HOME/.claude/scripts/doctor.mjs"
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
worth most: a script that moved, a host tree that did not get the copy, a version
|
|
19
|
-
stamp that disagrees with the package. Report the result in `outputLanguage`.
|
|
17
|
+
Report the result in `outputLanguage`.
|
|
20
18
|
Exit 2 means the update left the install in a state a run will fail from - say
|
|
21
19
|
that, do not report "updated" and stop.
|
|
22
20
|
|
|
@@ -24,7 +22,10 @@ that, do not report "updated" and stop.
|
|
|
24
22
|
|
|
25
23
|
Update the pipeline in one command. The npm registry is the single update channel: the latest published release is downloaded and installed. Existing preferences are preserved; only skill / script / schema files are refreshed.
|
|
26
24
|
|
|
27
|
-
|
|
25
|
+
Reasoning behind the steps, the step 6 summary format and a sample output:
|
|
26
|
+
`$HOME/.claude/multi-agent-refs/update/details.md`; read it before step 6.
|
|
27
|
+
|
|
28
|
+
A git clone of the pipeline repo is a maintainer workspace (`/multi-agent:sync`) and is never consulted here.
|
|
28
29
|
|
|
29
30
|
## Steps
|
|
30
31
|
|
|
@@ -40,7 +41,7 @@ and every later block that needs them starts by sourcing it.
|
|
|
40
41
|
UPD_DIR="${TMPDIR:-/tmp}/multi-agent-update"
|
|
41
42
|
CUR=$(tr -d '[:space:]' < "$HOME/.claude/.pipeline-version" 2>/dev/null)
|
|
42
43
|
[ -n "$CUR" ] || CUR="unknown"
|
|
43
|
-
# Read the registry directly
|
|
44
|
+
# Read the registry directly, never `npm view`.
|
|
44
45
|
LATEST=$(curl -fsS "$REG/$(printf '%s' "$PKG" | sed 's|/|%2F|')/latest" \
|
|
45
46
|
| node -pe 'JSON.parse(require("fs").readFileSync(0,"utf8")).version' 2>/dev/null)
|
|
46
47
|
if [ -z "$LATEST" ]; then
|
|
@@ -71,10 +72,7 @@ and every later block that needs them starts by sourcing it.
|
|
|
71
72
|
```bash
|
|
72
73
|
. "${TMPDIR:-/tmp}/multi-agent-update.env" || { echo "Run step 1 first."; exit 1; }
|
|
73
74
|
rm -rf "$UPD_DIR" && mkdir -p "$UPD_DIR"
|
|
74
|
-
# `--registry`
|
|
75
|
-
# like `@scope:registry=https://npm.pkg.github.com` wins over it, so the
|
|
76
|
-
# download hits the wrong registry, fails with `notarget`, and `--silent`
|
|
77
|
-
# hides why. Pin the SCOPE, which is the setting that actually loses.
|
|
75
|
+
# Pin the SCOPE: `--registry` alone loses to an .npmrc scope mapping.
|
|
78
76
|
SCOPE=$(printf '%s' "$PKG" | sed -n 's|^@\([^/]*\)/.*|\1|p')
|
|
79
77
|
PACK_OUT=$(npm pack "$PKG@$LATEST" ${SCOPE:+"--@${SCOPE}:registry=$REG"} \
|
|
80
78
|
--registry "$REG" --pack-destination "$UPD_DIR" 2>&1) || {
|
|
@@ -83,20 +81,16 @@ and every later block that needs them starts by sourcing it.
|
|
|
83
81
|
echo " npm config get @${SCOPE}:registry"
|
|
84
82
|
exit 1
|
|
85
83
|
}
|
|
86
|
-
# Never glob into tar:
|
|
87
|
-
# instead, and the run would install the version it was trying to leave.
|
|
84
|
+
# Never glob into tar: take the path npm pack printed.
|
|
88
85
|
TGZ="$UPD_DIR/$(printf '%s' "$PACK_OUT" | tail -1 | tr -d '[:space:]')"
|
|
89
86
|
[ -f "$TGZ" ] || { echo "npm pack reported no tarball; aborting."; exit 1; }
|
|
90
87
|
tar -xzf "$TGZ" -C "$UPD_DIR"
|
|
91
88
|
node "$UPD_DIR/package/install.js" --installed
|
|
92
89
|
```
|
|
93
90
|
|
|
94
|
-
`--installed` refreshes
|
|
95
|
-
stamp
|
|
96
|
-
|
|
97
|
-
Copilot CLI or Codex CLI on a machine that only had Claude Code. With no stamp
|
|
98
|
-
at all it installs Claude Code. Each refreshed target gets the new version
|
|
99
|
-
stamp.
|
|
91
|
+
`--installed` refreshes only the CLI targets that already carry a version
|
|
92
|
+
stamp and adds none: an update never installs a CLI target the machine did
|
|
93
|
+
not have.
|
|
100
94
|
|
|
101
95
|
4b. **Update the stack plugins** (catalog refresh, then every installed plugin in its own scope):
|
|
102
96
|
```bash
|
|
@@ -108,10 +102,8 @@ and every later block that needs them starts by sourcing it.
|
|
|
108
102
|
```
|
|
109
103
|
A non-zero exit means a step failed and the CLI's own error is already on screen. Report it to the user; do not retry silently. The log feeds step 6, which tells the user what each updated plugin brought.
|
|
110
104
|
|
|
111
|
-
4c. **Prune retired adapter files** (
|
|
105
|
+
4c. **Prune retired adapter files** (per-project adapter files are left untouched; see `details.md`):
|
|
112
106
|
```bash
|
|
113
|
-
# Per-project adapter files (.cursor/, .agent/, .github/copilot-instructions.md)
|
|
114
|
-
# live in your repos and are left untouched - remove them manually if you like.
|
|
115
107
|
echo " -> no global adapter files to prune"
|
|
116
108
|
```
|
|
117
109
|
|
|
@@ -156,27 +148,11 @@ and every later block that needs them starts by sourcing it.
|
|
|
156
148
|
--plugin-refresh-log "${TMPDIR:-/tmp}/multi-agent-plugin-refresh.log"
|
|
157
149
|
```
|
|
158
150
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
- First line: `✓ Updated: v<CUR> → v<NEW>`, then one line per updated plugin
|
|
165
|
-
(`ai-ios-toolkit 0.20.0 → 0.21.0`).
|
|
166
|
-
- Then up to four groups, each only when it has entries: **New** (added),
|
|
167
|
-
**Fixed**, **Changed**, **Removed** (Turkish: Yeni, Düzeltilen, Değişen,
|
|
168
|
-
Kaldırılan). Put security entries first under Fixed.
|
|
169
|
-
- One plain sentence per item about what the user notices or can now do.
|
|
170
|
-
Merge items that say the same thing; leave out internal-only entries
|
|
171
|
-
(smoke tests, CI, refactors, budgets, docs) unless they change what a user
|
|
172
|
-
sees. At most about eight items per group; when more were dropped, say how
|
|
173
|
-
many and that the full list is in the CHANGELOG.
|
|
174
|
-
- Use only what the JSON says. Never invent a feature or a fix, and never
|
|
175
|
-
guess why something changed.
|
|
176
|
-
- Last line, when anything needs action: what to do (restart Claude Code for
|
|
177
|
-
plugin changes, run a command a release asks for).
|
|
178
|
-
|
|
179
|
-
With empty notes and no plugin updates, print only the version line.
|
|
151
|
+
Turn the JSON into a short note in `outputLanguage` for the person using the
|
|
152
|
+
pipeline, in the format of `details.md`, "Writing the step 6 summary" (version
|
|
153
|
+
line, plugin lines, New / Fixed / Changed / Removed groups). Use only what the
|
|
154
|
+
JSON says. Never invent a feature or a fix, and never guess why something
|
|
155
|
+
changed. With empty notes and no plugin updates, print only the version line.
|
|
180
156
|
|
|
181
157
|
7. **Smoke test (optional)** - the release tarball ships exactly two smokes for this purpose:
|
|
182
158
|
```bash
|
|
@@ -190,22 +166,4 @@ and every later block that needs them starts by sourcing it.
|
|
|
190
166
|
|
|
191
167
|
## Output
|
|
192
168
|
|
|
193
|
-
|
|
194
|
-
Current: v15.6.0 Latest: v15.7.0
|
|
195
|
-
-> npm pack @{npm-scope}/multi-agent-pipeline@15.7.0
|
|
196
|
-
-> node install.js --installed (Claude Code; no Copilot CLI or Codex CLI stamp, not installed)
|
|
197
|
-
-> migrate-prefs.mjs (0 changes - already v2.6.0)
|
|
198
|
-
|
|
199
|
-
✓ Updated: v15.6.0 → v15.7.0
|
|
200
|
-
ai-ios-toolkit 0.19.0 → 0.20.0
|
|
201
|
-
|
|
202
|
-
New
|
|
203
|
-
- iOS design review: critiques a screen against the HIG from screenshots.
|
|
204
|
-
Fixed
|
|
205
|
-
- The usage report reads the tracker as it is written.
|
|
206
|
-
Restart Claude Code to load the updated plugins.
|
|
207
|
-
|
|
208
|
-
Verification:
|
|
209
|
-
schema-validation: 27/27 pass
|
|
210
|
-
cross-cli-behavior: 14/14 pass
|
|
211
|
-
```
|
|
169
|
+
See the sample in `details.md`.
|
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
Versions of the client contract (`manifest.json` `contractVersion`), separate
|
|
4
4
|
from the package version. See `README.md` for what counts as minor and major.
|
|
5
5
|
|
|
6
|
+
## 1.8.0
|
|
7
|
+
|
|
8
|
+
Added. Nothing existing changes shape.
|
|
9
|
+
|
|
10
|
+
- `runs-index` 1.4.0 (`GET /v1/runs`, `/v1/runs/{id}`, `/v1/phone/runs`): `group`
|
|
11
|
+
can be `done`, for a run whose status is complete, completed, done, abandoned
|
|
12
|
+
or cancelled. Such a run was grouped by phase before, so a finished run could
|
|
13
|
+
read as waiting. A client that does not know a group shows it neutrally.
|
|
14
|
+
|
|
6
15
|
## 1.7.0
|
|
7
16
|
|
|
8
17
|
Added. Nothing existing changes shape.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"contractVersion": "1.
|
|
2
|
+
"contractVersion": "1.8.0",
|
|
3
3
|
"supportedMajors": [1],
|
|
4
4
|
"description": "The pipeline's client contract: every surface a client reads or writes, the CLI invocation and the HTTP route that carry it, and the schema its JSON follows. Schemas are not copied here; schemasDir points at the one tree the producers validate against. Paths in cli are relative to the pipeline directory (installed: ~/.claude).",
|
|
5
5
|
"schemasDir": "../schemas",
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
"query": ["group", "redact"],
|
|
121
121
|
"cli": ["node", "scripts/runs-index.mjs", "--json", "[--group <group>]", "[--redact]"],
|
|
122
122
|
"schema": "runs-index.schema.json",
|
|
123
|
-
"version": "1.
|
|
123
|
+
"version": "1.4.0",
|
|
124
124
|
"remote": "read",
|
|
125
125
|
"risk": "read"
|
|
126
126
|
},
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
"query": ["redact"],
|
|
132
132
|
"cli": ["node", "scripts/runs-index.mjs", "--json", "--task-id", "{id}", "[--redact]"],
|
|
133
133
|
"schema": "runs-index.schema.json",
|
|
134
|
-
"version": "1.
|
|
134
|
+
"version": "1.4.0",
|
|
135
135
|
"remote": "read",
|
|
136
136
|
"risk": "read"
|
|
137
137
|
},
|
|
@@ -378,7 +378,7 @@
|
|
|
378
378
|
"scope": "read",
|
|
379
379
|
"cli": ["node", "scripts/runs-index.mjs", "--json", "[--group <group>]", "--redact"],
|
|
380
380
|
"schema": "runs-index.schema.json",
|
|
381
|
-
"version": "1.
|
|
381
|
+
"version": "1.4.0",
|
|
382
382
|
"note": "Always redacted; redact=0 is refused.",
|
|
383
383
|
"risk": "read"
|
|
384
384
|
},
|
|
@@ -391,7 +391,7 @@
|
|
|
391
391
|
"scope": "read",
|
|
392
392
|
"cli": ["node", "scripts/runs-index.mjs", "--json", "--task-id", "{id}", "--redact"],
|
|
393
393
|
"schema": "runs-index.schema.json",
|
|
394
|
-
"version": "1.
|
|
394
|
+
"version": "1.4.0",
|
|
395
395
|
"note": "Always redacted; redact=0 is refused.",
|
|
396
396
|
"risk": "read"
|
|
397
397
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Generated by pipeline/contract/build.mjs from pipeline/schemas/*.schema.json.
|
|
2
2
|
// Do not edit: change the schema and run `node pipeline/contract/build.mjs --write`.
|
|
3
3
|
|
|
4
|
-
export type ContractVersion = "1.
|
|
4
|
+
export type ContractVersion = "1.8.0";
|
|
5
5
|
export type SurfaceId = "runs" | "run" | "commands" | "questions" | "issues" | "worktrees" | "launch-spec" | "repos" | "repo-add" | "repo-remove" | "launch" | "answer" | "run-log" | "resume" | "kill" | "gc" | "autopilot" | "autopilot-off" | "phone-runs" | "phone-run" | "phone-answer" | "phone-launch" | "autopilot-on" | "steer" | "activity" | "activity-stream" | "agent-chat" | "routines" | "routine-delete" | "jobs" | "job-start" | "stack" | "stack-set" | "ledger" | "system" | "prune-logs" | "settings" | "settings-set" | "credentials" | "memory" | "run-results" | "run-evidence" | "review-verdict" | "issue-maturity" | "prs" | "prs-reach" | "tools" | "tool-call" | "service-confluence" | "service-crashlytics" | "service-figma" | "permissions";
|
|
6
6
|
|
|
7
7
|
/** What `runs-index.mjs --json` prints: every run under the log root and the unattended log root (one record per task id), grouped per status/SKILL.md 3b. Fields are only ever added - a decoder ignores keys it does not know. `--redact` drops every x-sensitivity local field (and `logsRoot`) and scrubs the free text in the title, `now`, sub-step names, task subjects and the pending question. */
|
|
@@ -42,7 +42,8 @@ export interface RunsIndexRun {
|
|
|
42
42
|
waitingFor?: string | null;
|
|
43
43
|
/** The question the run stopped on, present only with waitingFor question. Answer it with one of options[].id through `answer-question.mjs` or POST /v1/runs/{id}/answer. text and labels are scrubbed under --redact. Added in 1.1.0. */
|
|
44
44
|
pendingQuestion?: null | RunsIndexQuestion;
|
|
45
|
-
|
|
45
|
+
/** done (added in 1.4.0): the run's status is complete, completed, done, abandoned or cancelled; it is placed before every other test, so a finished run is never offered resume. */
|
|
46
|
+
group: "waiting" | "stopped" | "question" | "unknown" | "done";
|
|
46
47
|
phases: Array<RunsIndexPhase>;
|
|
47
48
|
tokens: {
|
|
48
49
|
in: number;
|