@mmerterden/multi-agent-pipeline 14.2.2 → 15.0.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 +76 -6
- package/README.md +15 -8
- package/README.tr.md +15 -8
- package/docs/FIGMA_PIPELINE.md +3 -3
- package/docs/adr/0006-skills-core-external-split.md +1 -1
- package/docs/adr/0009-claude-stack-skills-plugin-only.md +31 -0
- package/docs/adr/README.md +1 -0
- package/docs/architecture.md +7 -7
- package/docs/ecosystem.md +28 -28
- package/docs/features.md +5 -5
- package/index.js +2 -0
- package/install/_codex-agents.mjs +11 -2
- package/install/_common.mjs +65 -1
- package/install/_dev-only-files.mjs +0 -1
- package/install/_platform-filter.mjs +73 -7
- package/install/_plugin-skills.mjs +19 -8
- package/install/claude.mjs +144 -59
- package/install/codex.mjs +28 -3
- package/install/copilot.mjs +36 -11
- package/install/index.mjs +6 -2
- package/install/templates/codex-instructions.md +1 -1
- package/install/templates/copilot-instructions.md +3 -3
- package/package.json +1 -2
- package/pipeline/commands/multi-agent/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/analysis/SKILL.md +3 -3
- package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/build-optimize/SKILL.md +9 -9
- package/pipeline/commands/multi-agent/channels/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/complaint-analysis/SKILL.md +186 -0
- package/pipeline/commands/multi-agent/dev/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/dev-autopilot/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/dev-local/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/dev-local-autopilot/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/help/SKILL.md +19 -4
- package/pipeline/commands/multi-agent/ios-coding-standard/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/jira/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/prune-prompts/SKILL.md +81 -0
- package/pipeline/commands/multi-agent/resume/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/{ship → resume-local}/SKILL.md +8 -8
- package/pipeline/commands/multi-agent/setup/SKILL.md +5 -5
- package/pipeline/commands/multi-agent/stack/SKILL.md +55 -43
- package/pipeline/commands/multi-agent/store-ready/SKILL.md +3 -3
- package/pipeline/commands/multi-agent/sync/SKILL.md +18 -11
- package/pipeline/commands/multi-agent/testflight-validation/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/uninstall/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/update/SKILL.md +1 -1
- package/pipeline/lib/issue-fetcher.sh +1 -1
- package/pipeline/lib/parse-complaints.sh +306 -0
- package/pipeline/multi-agent-refs/channels/wiki.md +3 -3
- package/pipeline/multi-agent-refs/complaint-analysis-template.md +99 -0
- package/pipeline/multi-agent-refs/component-dispatch.md +6 -6
- package/pipeline/multi-agent-refs/cross-cli-contract.md +16 -16
- package/pipeline/multi-agent-refs/features/external-context-injection.md +1 -1
- package/pipeline/multi-agent-refs/features/stack-skill-routing.md +5 -5
- package/pipeline/multi-agent-refs/generate-issue.md +1 -1
- package/pipeline/multi-agent-refs/phases/modes.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-1-analysis.md +7 -7
- package/pipeline/multi-agent-refs/phases/phase-2-planning.md +5 -5
- package/pipeline/multi-agent-refs/phases/phase-3-dev.md +3 -3
- package/pipeline/multi-agent-refs/phases/phase-4-review.md +12 -12
- package/pipeline/multi-agent-refs/phases/phase-5-test.md +1 -1
- package/pipeline/multi-agent-refs/tracker-contract.md +1 -1
- package/pipeline/multi-agent-refs/wiki-capture.md +2 -2
- package/pipeline/preferences-template.json +13 -5
- package/pipeline/rules/figma-pipeline.md +2 -2
- package/pipeline/schemas/agent-state.schema.json +1 -1
- package/pipeline/schemas/complaint-analysis-spec.schema.json +216 -0
- package/pipeline/schemas/migrations/prefs-2.5.0-to-2.6.0.mjs +46 -0
- package/pipeline/schemas/prefs.schema.json +276 -66
- package/pipeline/schemas/token-budget.json +2 -2
- package/pipeline/scripts/_stack-routing.mjs +79 -0
- package/pipeline/scripts/audit-log-rotate.sh +4 -1
- package/pipeline/scripts/build-skills-index.mjs +11 -0
- package/pipeline/scripts/build-stack-plugins.mjs +28 -60
- package/pipeline/scripts/check-derived-drift.mjs +52 -28
- package/pipeline/scripts/gc-worktrees.sh +4 -1
- package/pipeline/scripts/gen-skills-index.mjs +1 -1
- package/pipeline/scripts/match-skills.mjs +8 -2
- package/pipeline/scripts/migrate-prefs.mjs +28 -20
- package/pipeline/scripts/phase-tracker.sh +13 -5
- package/pipeline/scripts/phase0-exit-gate.mjs +3 -2
- package/pipeline/scripts/run-aggregator.mjs +7 -2
- package/pipeline/scripts/scan-agent-config.sh +1 -1
- package/pipeline/scripts/skill-conformance.mjs +165 -30
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +1 -1
- package/pipeline/scripts/test-gap-rules/android.json +25 -0
- package/pipeline/scripts/test-gap-rules/ios.json +34 -0
- package/pipeline/scripts/test-gap-rules/node.json +29 -0
- package/pipeline/scripts/test-gap-rules/python.json +25 -0
- package/pipeline/scripts/uninstall.mjs +158 -11
- package/pipeline/scripts/validate-complaint-doc.mjs +229 -0
- package/pipeline/scripts/validate-reviewer.mjs +9 -3
- package/pipeline/skills/.skill-manifest.json +156 -108
- package/pipeline/skills/.skills-index.json +449 -12
- package/pipeline/skills/shared/README.md +14 -10
- package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-complaint-analysis/SKILL.md +49 -0
- package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-prune-prompts/SKILL.md +83 -0
- package/pipeline/skills/shared/core/{multi-agent-ship → multi-agent-resume-local}/SKILL.md +6 -6
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +79 -22
- package/pipeline/skills/shared/core/multi-agent-store-ready/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +8 -8
- package/pipeline/skills/shared/core/multi-agent-testflight-validation/SKILL.md +1 -1
- package/pipeline/skills/shared/external/ios-coding-standard/modules/_TEMPLATE.yml +2 -2
- package/pipeline/skills/shared/external/ios-coding-standard/references/rules.yml +368 -33
- package/pipeline/skills/shared/external/ios-coding-standard/references/swiftlint.draft.yml +1 -2
- package/pipeline/skills/shared/external/ios-coding-standard/scripts/check_structure.py +765 -0
- package/pipeline/skills/shared/external/ios-module-structure/SKILL.md +75 -0
- package/pipeline/skills/shared/external/ios-module-structure/modules/_TEMPLATE.yml +131 -0
- package/pipeline/skills/shared/external/ios-module-structure/references/rules.yml +559 -0
- package/pipeline/skills/shared/external/ios-module-structure/scripts/check_structure.py +765 -0
- package/pipeline/skills/shared/external/localization-reuse-map/example-mapping.json +53 -10
- package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +4 -3
- package/pipeline/skills/skills-index.md +7 -4
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
Single source of truth for skills delivered to both Claude Code (`~/.claude/skills/`) and Copilot CLI (`~/.copilot/skills/`) by the installer.
|
|
4
4
|
|
|
5
|
-
**Total:**
|
|
5
|
+
**Total:** 205 skills (54 core + 151 external). Auto-generated by `scripts/gen-skills-index.mjs` - do not edit by hand.
|
|
6
6
|
|
|
7
7
|
## Directory layout
|
|
8
8
|
|
|
9
|
-
- **`core/`** -
|
|
10
|
-
- **`external/`** -
|
|
11
|
-
- Install
|
|
9
|
+
- **`core/`** - 54 `multi-agent*` orchestration skills that are pipeline-critical. Edits here are core-code changes.
|
|
10
|
+
- **`external/`** - 151 iOS / Android / generic skills imported from the upstream skill library. Mirrors of third-party guidance.
|
|
11
|
+
- Install destinations (ADR-0009): Claude Code gets NO local copy of `external/` - it loads those skills from the `multi-agent-plugins` marketplace, namespaced (`ai-<stack>-toolkit:<name>`); only the two compliance catalogs from `core/` land in `~/.claude/skills/`. Copilot CLI and Codex CLI receive a flat copy filtered to the enabled stacks. `external/` remains the single authoring source that `build-stack-plugins.mjs` publishes from.
|
|
12
12
|
|
|
13
13
|
Source layout is logical grouping only - skill discovery at runtime is unchanged.
|
|
14
14
|
|
|
15
15
|
## Categories
|
|
16
16
|
|
|
17
|
-
- [Pipeline Orchestration](#pipeline-orchestration) -
|
|
18
|
-
- [iOS / Apple Ecosystem](#ios-apple-ecosystem) -
|
|
17
|
+
- [Pipeline Orchestration](#pipeline-orchestration) - 54
|
|
18
|
+
- [iOS / Apple Ecosystem](#ios-apple-ecosystem) - 90
|
|
19
19
|
- [Android / Kotlin](#android-kotlin) - 13
|
|
20
20
|
- [Web / Frontend](#web-frontend) - 10
|
|
21
21
|
- [Backend / API](#backend-api) - 11
|
|
22
|
-
- [Cross-cutting](#cross-cutting) -
|
|
22
|
+
- [Cross-cutting](#cross-cutting) - 27
|
|
23
23
|
|
|
24
24
|
## Pipeline Orchestration
|
|
25
25
|
|
|
@@ -29,10 +29,11 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
29
29
|
| [`google-play-compliance`](./core/google-play-compliance/) | `core` | Google Play Store publication compliance - bundletool + aapt2 + apksigner orchestration + 21-rule policy catalog with Play Console error c |
|
|
30
30
|
| [`multi-agent`](./core/multi-agent/) | `core` | Task orchestrator: runs the full pipeline from a Jira ID or GitHub Issue URL - analysis → plan → TDD development → parallel review (Fable |
|
|
31
31
|
| [`multi-agent-analysis`](./core/multi-agent-analysis/) | `core` | Standalone feature-spec analysis (v3 template). Platform-agnostic concept layer with repo-driven convention extraction and per-platform Pass |
|
|
32
|
-
| [`multi-agent-analysis-resolve`](./core/multi-agent-analysis-resolve/) | `core` | Resolve the Section 20 Risks and Open Questions of an analysis v3 document one row at a time
|
|
32
|
+
| [`multi-agent-analysis-resolve`](./core/multi-agent-analysis-resolve/) | `core` | Resolve the Section 20 Risks and Open Questions of an analysis v3 document one row at a time: up to 3 source-labeled answer candidates per r |
|
|
33
33
|
| [`multi-agent-autopilot`](./core/multi-agent-autopilot/) | `core` | Launch any task in autopilot mode: skips every confirmation, runs end-to-end autonomously. Use when a task should run end to end with no con |
|
|
34
34
|
| [`multi-agent-build-optimize`](./core/multi-agent-build-optimize/) | `core` | Wrapper that dispatches to xcode-build-orchestrator on iOS repos. Benchmarks the current Xcode build, runs compilation / project / SPM analy |
|
|
35
35
|
| [`multi-agent-channels`](./core/multi-agent-channels/) | `core` | Multi-channel reporter - Jira/Confluence/Wiki/PR description. Multi-select channels + content, humanizer pass, reviewer-preserving Bitbuck |
|
|
36
|
+
| [`multi-agent-complaint-analysis`](./core/multi-agent-complaint-analysis/) | `core` | Customer-complaint triage. Ingests complaints (paste, csv/xlsx/txt/json file, Jira issue, Confluence URL), fetches Graylog evidence per trx/ |
|
|
36
37
|
| [`multi-agent-create-jira`](./core/multi-agent-create-jira/) | `core` | Create a standards-compliant Jira issue (Task / Bug / Story): asks the type, mines project conventions, drafts from a standard template with |
|
|
37
38
|
| [`multi-agent-design-check`](./core/multi-agent-design-check/) | `core` | Mock-mode vs Figma design audit (iOS / Android, local-only). Pick repo + module, gate on mock support, enumerate every state driver into a c |
|
|
38
39
|
| [`multi-agent-dev`](./core/multi-agent-dev/) | `core` | Fast development mode: Init → Dev (Opus) → Review → Test → Commit → Report. Analysis and planning are skipped, review is not. Use when the w |
|
|
@@ -53,9 +54,11 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
53
54
|
| [`multi-agent-log`](./core/multi-agent-log/) | `core` | Show the agent-log.md for the given task. With no ID, shows the most recent task. Use when asked what a task did, or to read its log. |
|
|
54
55
|
| [`multi-agent-manual-test`](./core/multi-agent-manual-test/) | `core` | Switch to the active task's branch and prepare it for manual testing in Xcode. Phase 5 standalone (the UI Bug Hunter lives at multi-agent-te |
|
|
55
56
|
| [`multi-agent-prune-logs`](./core/multi-agent-prune-logs/) | `core` | Delete per-task project logs under ~/.claude/logs/multi-agent (filter by age/project/task). Audit trail + metrics are preserved. Dry-run fir |
|
|
57
|
+
| [`multi-agent-prune-prompts`](./core/multi-agent-prune-prompts/) | `core` | Zero-base prompt review: measure the always-on instruction footprint, classify every rule block, propose keep/trial-removal/delete; applies |
|
|
56
58
|
| [`multi-agent-purge`](./core/multi-agent-purge/) | `core` | ⚠️ Wipes every worktree, branch, log, and state file. Irreversible; asks for double confirmation. Use when every worktree, branch, log and s |
|
|
57
59
|
| [`multi-agent-refactor`](./core/multi-agent-refactor/) | `core` | Analyse the project: extract adapted best-practices, hunt real bugs + improvement areas, check upstream drift of derived skills, research th |
|
|
58
60
|
| [`multi-agent-resume`](./core/multi-agent-resume/) | `core` | Resume a stopped or failed task from the phase where it left off. Use when a task stopped or failed and should carry on from where it left o |
|
|
61
|
+
| [`multi-agent-resume-local`](./core/multi-agent-resume-local/) | `core` | Continue already-done LOCAL work through the pipeline tail: Review → Build+Test → Commit/PR → Report (technical analysis + Jira test-scenari |
|
|
59
62
|
| [`multi-agent-review`](./core/multi-agent-review/) | `core` | Run parallel review on a branch diff or a Pull Request: 2 models on Claude Code (Fable + Sonnet), 3 models on Copilot CLI (GPT + Opus + Sonn |
|
|
60
63
|
| [`multi-agent-review-issue`](./core/multi-agent-review-issue/) | `core` | Assess whether a GitHub issue is ready for multi-agent development: fetch it, grade scope / acceptance criteria / repro / design / API / sta |
|
|
61
64
|
| [`multi-agent-review-jira`](./core/multi-agent-review-jira/) | `core` | Assess whether a Jira issue is ready for multi-agent development: fetch it, grade scope / acceptance criteria / repro / design / API / stack |
|
|
@@ -64,8 +67,7 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
64
67
|
| [`multi-agent-scan`](./core/multi-agent-scan/) | `core` | Skill security scan: walks local skill directories against a tiered pattern catalog. Use when local skill directories need checking for unsa |
|
|
65
68
|
| [`multi-agent-search`](./core/multi-agent-search/) | `core` | Log search across every agent-log.md with smart ranking and filters. Optional --semantic flag queries the per-repo triage corpus. Use when s |
|
|
66
69
|
| [`multi-agent-setup`](./core/multi-agent-setup/) | `core` | First-run setup wizard: keychain token discovery, Git Identity onboarding, and pipeline preparation. Use when the pipeline is being set up f |
|
|
67
|
-
| [`multi-agent-
|
|
68
|
-
| [`multi-agent-stack`](./core/multi-agent-stack/) | `core` | Select the active stack for this repo by enabling the matching marketplace plugin(s) in .claude/settings.json (ios/android/mobile/backend/fr |
|
|
70
|
+
| [`multi-agent-stack`](./core/multi-agent-stack/) | `core` | Select the active stack(s) for this repo by enabling the matching marketplace plugin(s) in .claude/settings.json. Multi-select: pass several |
|
|
69
71
|
| [`multi-agent-status`](./core/multi-agent-status/) | `core` | Show every multi-agent task's ID, phase, branch, and status. Use when asked what is running, or for an overview of every task. |
|
|
70
72
|
| [`multi-agent-store-ready`](./core/multi-agent-store-ready/) | `core` | Pre-submission store readiness for a built package, iOS and Android, local-only. Three symmetric gates per platform: a static package audit, |
|
|
71
73
|
| [`multi-agent-sync`](./core/multi-agent-sync/) | `core` | One-shot sync of the entire multi-agent ecosystem: Claude Code, Copilot CLI, pipeline repo, website, and the dev-toolkit MCP server. Use whe |
|
|
@@ -119,6 +121,7 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
119
121
|
| [`ios-debugger-agent`](./external/ios-debugger-agent/) | `external` | Debug the current iOS project on a booted simulator with XcodeBuildMCP. Use when an iOS bug has to be reproduced and diagnosed on a booted s |
|
|
120
122
|
| [`ios-developer`](./external/ios-developer/) | `external` | Develop native iOS applications with Swift/SwiftUI. Masters iOS 18, SwiftUI, UIKit integration, Core Data, networking, and App Store optimiz |
|
|
121
123
|
| [`ios-localization`](./external/ios-localization/) | `external` | Implement, review, or improve localization and internationalization in iOS/macOS apps - String Catalogs (.xcstrings), generated localizabl |
|
|
124
|
+
| [`ios-module-structure`](./external/ios-module-structure/) | `external` | The ios-module-structure rule registry: stable-ID rules over where a declaration lives, what its file is called and what its folder must con |
|
|
122
125
|
| [`ios-networking`](./external/ios-networking/) | `external` | Build, review, or improve networking code in iOS/macOS apps using URLSession with async/await, structured concurrency, and modern Swift patt |
|
|
123
126
|
| [`ios-security`](./external/ios-security/) | `external` | Secure iOS apps with Keychain Services, CryptoKit encryption, biometric authentication (Face ID, Touch ID), Secure Enclave key storage, LACo |
|
|
124
127
|
| [`ios-simulator`](./external/ios-simulator/) | `external` | Manages iOS Simulator devices and tests app behaviour with xcrun simctl: device lifecycle, app install and launch, push notification and loc |
|
|
@@ -242,6 +245,7 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
242
245
|
| [`github-actions-templates`](./external/github-actions-templates/) | `external` | Production-ready GitHub Actions workflow patterns for testing, building, and deploying applications. Use when a GitHub Actions workflow has |
|
|
243
246
|
| [`help-skills`](./external/help-skills/) | `external` | Mevcut tum iOS/Swift skill'lerini listeler ve ne ise yaradiklarini aciklar. Use when asked which iOS or Swift skills are available and what |
|
|
244
247
|
| [`humanizer`](./external/humanizer/) | `external` | \| |
|
|
248
|
+
| [`localization-reuse-map`](./external/localization-reuse-map/) | `external` | >- |
|
|
245
249
|
| [`pdfkit`](./external/pdfkit/) | `external` | Display and manipulate PDF documents using PDFKit. Use when embedding PDFView to show PDF files, creating or modifying PDFDocument instances |
|
|
246
250
|
| [`search-first`](./external/search-first/) | `external` | \| |
|
|
247
251
|
| [`skill-creator`](./external/skill-creator/) | `external` | Author and refine skills for a plugin/toolkit efficiently. Use when creating a new skill, trimming or splitting an existing one, writing a s |
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent-analysis-resolve
|
|
3
3
|
language: en
|
|
4
|
-
description: "Resolve the Section 20 Risks and Open Questions of an analysis v3 document one row at a time
|
|
4
|
+
description: "Resolve the Section 20 Risks and Open Questions of an analysis v3 document one row at a time: up to 3 source-labeled answer candidates per row (evidence / repo / AI reasoned), chosen answer merged into the target section, doc updated in place with a changelog bump. Same locked decisions as /multi-agent:analysis. Use when an analysis document's open questions need answering before development starts."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
argument-hint: "[path/to/analysis/<feature>-<platform>.md] [--autonomous]"
|
|
7
7
|
---
|
|
@@ -39,7 +39,7 @@ Thin wrapper around the vendored `xcode-build-orchestrator` skill so iOS users d
|
|
|
39
39
|
## Detailed implementation
|
|
40
40
|
|
|
41
41
|
Full steps: `$HOME/.claude/commands/multi-agent/build-optimize/SKILL.md`.
|
|
42
|
-
Upstream attribution:
|
|
42
|
+
Upstream attribution: ai-ios-toolkit plugin NOTICE (xcode build skills).
|
|
43
43
|
|
|
44
44
|
## Notes
|
|
45
45
|
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: multi-agent-complaint-analysis
|
|
3
|
+
language: en
|
|
4
|
+
description: "Customer-complaint triage. Ingests complaints (paste, csv/xlsx/txt/json file, Jira issue, Confluence URL), fetches Graylog evidence per trx/conversation id, correlates read-only against the selected client + BFF repos; per complaint: client/bff root cause + fix plan + dev prompt, or core routing recommendation, or insufficient-evidence. Report only, no dev chaining. Use when customer-reported errors need layer triage."
|
|
5
|
+
user-invocable: true
|
|
6
|
+
argument-hint: "[\"<run-name>\"] [--file <path>] [<jira-id | jira-url | confluence-url> ...]"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# multi-agent-complaint-analysis - Customer Complaint Triage
|
|
10
|
+
|
|
11
|
+
**Input**: $ARGUMENTS (optional run name, optional `--file <path>`, optional Jira ids / Confluence URLs; remaining free text = pasted complaints)
|
|
12
|
+
|
|
13
|
+
Triage of customer-reported errors across the layers the team owns. Per complaint: Graylog evidence by trx/conversation id, read-only repo correlation, and a verdict. Core failures get a routing recommendation to the backend core team, never a fix analysis. **Independent and read-only**: no branches, worktrees, commits, PRs, or dev chaining - the run ends at the report.
|
|
14
|
+
|
|
15
|
+
## When to use
|
|
16
|
+
|
|
17
|
+
- A batch of customer complaints / store reviews / support tickets needs to be mapped to responsible layers (ios / android / web / mobile-bff / web-bff vs backend core)
|
|
18
|
+
- Production error reports carry trxId / conversationId values worth pulling from Graylog
|
|
19
|
+
- The team needs a forwardable routing record for core-side failures
|
|
20
|
+
|
|
21
|
+
## Key rules
|
|
22
|
+
|
|
23
|
+
- Graylog is the primary evidence in this command (deliberate departure from the dev pipeline's advisory-only rule); a failed fetch degrades that complaint to `insufficient-evidence`, never halts the run.
|
|
24
|
+
- Ids are never guessed: complaints without trx/conv ids trigger a supply-or-skip prompt.
|
|
25
|
+
- Complaint text is redacted at intake (email / phone / card / national-id / PNR shapes); raw PII never reaches state or any output.
|
|
26
|
+
- Core is a residual classification, not a repo: no core-repo grepping, no fix speculation.
|
|
27
|
+
- Client/bff verdicts carry a development handoff: a fix plan referencing the existing architecture (`file:line` reuse-first steps) plus a fenced English dev prompt ready for the dev pipeline or a Jira description. The command still never runs dev itself.
|
|
28
|
+
- Output default is Local file; Confluence / Jira are posted only on request. Never closes or transitions issues.
|
|
29
|
+
|
|
30
|
+
## Flow
|
|
31
|
+
|
|
32
|
+
| Phase | Action |
|
|
33
|
+
|---|---|
|
|
34
|
+
| 0. Intake | Run name + account picker + repo multi-select + layer-tag confirmation + multi-source complaint ingestion (`lib/parse-complaints.sh`) + id confirmation loop |
|
|
35
|
+
| 1. Graylog | Per-complaint `lib/fetch-graylog.sh --trx/--conv`; credential/host failure degrades and continues |
|
|
36
|
+
| 2. Correlate | Extract signals (endpoints, error codes, exceptions, source services) from Graylog hits; read-only grep across selected repos |
|
|
37
|
+
| 3. Triage | Verdict per complaint: `client:<layer>` / `bff:<layer>` (citations + fix plan grounded in the existing architecture + ready-to-run dev prompt) or `core` (routing recommendation) or `insufficient-evidence` |
|
|
38
|
+
| 4. Draft | Render 8-section report, humanizer pass, punctuation gate |
|
|
39
|
+
| 4.5 Output picker | Local file (default) / Confluence page / Jira comment (asked only after the draft exists) |
|
|
40
|
+
| 5. Dispatch | `validate-complaint-doc.mjs` gate, write/post, verdict-count summary. **Stop.** |
|
|
41
|
+
|
|
42
|
+
Pickers route through `lib/ask-choice.sh` per the picker contract.
|
|
43
|
+
|
|
44
|
+
## Detailed implementation
|
|
45
|
+
|
|
46
|
+
Full steps: the Claude-side command doc for `complaint-analysis` (same phase structure and locked decisions).
|
|
47
|
+
Report template: `complaint-analysis-template.md` (8 sections; routing section required per core verdict).
|
|
48
|
+
State schema: `schemas/complaint-analysis-spec.schema.json`.
|
|
49
|
+
Report gate: `scripts/validate-complaint-doc.mjs` (front-matter, sections, verdict tokens, routing entries, punctuation, redaction-leak scan).
|
|
@@ -70,4 +70,4 @@ Before writing anything outward-facing - PR body, Jira comment, Confluence pag
|
|
|
70
70
|
|
|
71
71
|
## Intake warnings (`--dev` family)
|
|
72
72
|
|
|
73
|
-
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:
|
|
73
|
+
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:resume-local`, not a second Dev pass). Read that section rather than reasoning about it from scratch.
|
|
@@ -62,4 +62,4 @@ Before writing anything outward-facing - PR body, Jira comment, Confluence pag
|
|
|
62
62
|
|
|
63
63
|
## Intake warnings (`--dev` family)
|
|
64
64
|
|
|
65
|
-
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:
|
|
65
|
+
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:resume-local`, not a second Dev pass). Read that section rather than reasoning about it from scratch.
|
|
@@ -42,4 +42,4 @@ Before writing anything outward-facing - PR body, Jira comment, Confluence pag
|
|
|
42
42
|
|
|
43
43
|
## Intake warnings (`--dev` family)
|
|
44
44
|
|
|
45
|
-
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:
|
|
45
|
+
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:resume-local`, not a second Dev pass). Read that section rather than reasoning about it from scratch.
|
|
@@ -48,4 +48,4 @@ Before writing anything outward-facing - PR body, Jira comment, Confluence pag
|
|
|
48
48
|
|
|
49
49
|
## Intake warnings (`--dev` family)
|
|
50
50
|
|
|
51
|
-
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:
|
|
51
|
+
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:resume-local`, not a second Dev pass). Read that section rather than reasoning about it from scratch.
|
|
@@ -10,9 +10,9 @@ argument-hint: "[module name or path]"
|
|
|
10
10
|
|
|
11
11
|
**Input**: $ARGUMENTS - optionally a module name or path. When absent, Phase 1 discovers and asks.
|
|
12
12
|
|
|
13
|
-
This routine is the **procedure**. The rules live in the `ios-coding-standard` skill, whose registry is
|
|
13
|
+
This routine is the **procedure**. The rules live in the `ai-ios-toolkit:ios-coding-standard` skill, whose registry is
|
|
14
14
|
`references/rules.yml` and whose teaching doc is `references/STANDARD.md`. Load that
|
|
15
|
-
skill first;
|
|
15
|
+
skill first; Claude Code loads it from the iOS stack plugin, Copilot/Codex from their local copy, so
|
|
16
16
|
there is one registry rather than a copy per CLI. Never restate a rule here - cite its ID. A rule that is not in the
|
|
17
17
|
registry is not a rule; if the audit needs one, propose it as `status: proposed` and say so.
|
|
18
18
|
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: multi-agent-prune-prompts
|
|
3
|
+
language: en
|
|
4
|
+
description: "Zero-base prompt review: measure the always-on instruction footprint, classify every rule block, propose keep/trial-removal/delete; applies only approved rows. Use when a new model ships or instructions have accumulated."
|
|
5
|
+
user-invocable: true
|
|
6
|
+
argument-hint: "[--report-only]"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# multi-agent prune-prompts - Zero-Base Prompt Review
|
|
10
|
+
|
|
11
|
+
Instruction files only grow. Every rule was added because some model once got
|
|
12
|
+
something wrong, and nobody deletes a rule once a workaround ships. A newer
|
|
13
|
+
model needs fewer of them; the ones it no longer needs are pure context tax on
|
|
14
|
+
every session, and stale rules actively mislead.
|
|
15
|
+
|
|
16
|
+
The discipline this command applies (after Boris Cherny's advice): on a model
|
|
17
|
+
upgrade, assume ZERO instructions are needed, and let each line earn its way
|
|
18
|
+
back. A line earns its way back only after the model gets the same thing wrong
|
|
19
|
+
repeatedly (three strikes) WITHOUT it. Instructions are a cache of past model
|
|
20
|
+
failures; a new model invalidates that cache.
|
|
21
|
+
|
|
22
|
+
## Flow
|
|
23
|
+
|
|
24
|
+
### 1. MEASURE - the always-on footprint
|
|
25
|
+
|
|
26
|
+
Estimate tokens (chars/4) for each layer the model carries into every session:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
wc -c "$HOME/.claude/CLAUDE.md" 2>/dev/null
|
|
30
|
+
wc -c "$HOME"/.claude/rules/*.md 2>/dev/null
|
|
31
|
+
find "$PWD" -maxdepth 2 -name "CLAUDE.md" -exec wc -c {} + 2>/dev/null
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Report a table: layer, file, estimated tokens, share of total. Flag any single
|
|
35
|
+
file above ~2,000 estimated tokens.
|
|
36
|
+
|
|
37
|
+
### 2. CLASSIFY - what kind of line is each rule
|
|
38
|
+
|
|
39
|
+
Walk CLAUDE.md + each rules/ file section by section. Classify every
|
|
40
|
+
instruction block:
|
|
41
|
+
|
|
42
|
+
| Class | Meaning | Default verdict |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| **Constraint** | Facts the model cannot infer (hosts, key names, branch formats, team conventions) | keep |
|
|
45
|
+
| **Failure patch** | "Never do X" added after a model did X | trial removal - the current model may not need it |
|
|
46
|
+
| **Restatement** | Something the model does correctly anyway (write tests, guard early) | delete |
|
|
47
|
+
| **Stale** | References files, commands or workflows that no longer exist | delete |
|
|
48
|
+
|
|
49
|
+
For failure patches, note WHEN the patch was added if git history shows it -
|
|
50
|
+
a patch older than the current model's release is the strongest removal
|
|
51
|
+
candidate.
|
|
52
|
+
|
|
53
|
+
### 3. REPORT - the zero-base proposal
|
|
54
|
+
|
|
55
|
+
One table, every block accounted for: file, section, class, verdict
|
|
56
|
+
(keep / trial-removal / delete), and the one-line reason. Never a sample -
|
|
57
|
+
if a section is not in the table, the review did not happen.
|
|
58
|
+
|
|
59
|
+
With `--report-only`, stop here.
|
|
60
|
+
|
|
61
|
+
### 4. APPLY - only what the user approves
|
|
62
|
+
|
|
63
|
+
Present the table, ask which verdicts to apply (all deletes / all
|
|
64
|
+
trial-removals too / pick rows). For approved rows, edit the files. Trial
|
|
65
|
+
removals move the block into `~/.claude/rules/.pruned/<file>.md` with a
|
|
66
|
+
dated header rather than deleting outright, so a strike-out can be reverted
|
|
67
|
+
by moving the block back.
|
|
68
|
+
|
|
69
|
+
### 5. THE THREE-STRIKE RULE going forward
|
|
70
|
+
|
|
71
|
+
After a prune, when the model gets something wrong that a removed rule used
|
|
72
|
+
to cover, do NOT restore it on the first miss. Record the miss (the
|
|
73
|
+
`.pruned/` file has a `strikes:` line per block). Restore the line only on
|
|
74
|
+
the third occurrence of the SAME failure. One line back at a time - never
|
|
75
|
+
the whole file.
|
|
76
|
+
|
|
77
|
+
## Boundaries
|
|
78
|
+
|
|
79
|
+
- Never touches skill bodies or command files - those load on demand and are
|
|
80
|
+
not part of the always-on footprint. The lint gate (`lint-skills.mjs`)
|
|
81
|
+
owns their budgets.
|
|
82
|
+
- Never touches `multi-agent-preferences.json` or anything under `logs/`.
|
|
83
|
+
- Applies nothing without explicit approval on the report table.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: multi-agent-
|
|
2
|
+
name: multi-agent-resume-local
|
|
3
3
|
language: en
|
|
4
4
|
description: "Continue already-done LOCAL work through the pipeline tail: Review → Build+Test → Commit/PR → Report (technical analysis + Jira test-scenario comment). No dev phase. Use when local work is already done and only review, build, commit and reporting remain."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# multi-agent
|
|
8
|
+
# multi-agent resume-local - Take Existing Branch Work Through the Pipeline Tail
|
|
9
9
|
|
|
10
10
|
You already wrote (and maybe hand-tested) the change on the current branch, or committed it outside the pipeline entirely. `ship` picks up from there and runs the **pipeline tail** over that existing work in one command, without re-developing. (As of v14.0.0 the `--dev` family reviews its own output, so this is for work with no pipeline run behind it.)
|
|
11
11
|
|
|
@@ -34,10 +34,10 @@ Phases 1-3 (Analysis / Planning / Dev) are skipped by design - the branch's lo
|
|
|
34
34
|
## Input
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
multi-agent
|
|
38
|
-
multi-agent
|
|
39
|
-
multi-agent
|
|
40
|
-
multi-agent
|
|
37
|
+
multi-agent resume-local # current branch vs base; Jira id from branch name
|
|
38
|
+
multi-agent resume-local PROJ-12345 # explicit Jira id for the Phase 7 comment
|
|
39
|
+
multi-agent resume-local --base develop # override base branch for the diff
|
|
40
|
+
multi-agent resume-local autopilot # no gate prompts: auto-fix, auto-PR, auto-comment
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
## Notes
|
|
@@ -1,50 +1,107 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent-stack
|
|
3
3
|
language: en
|
|
4
|
-
description: "Select the active stack for this repo by enabling the matching marketplace plugin(s) in .claude/settings.json (ios
|
|
4
|
+
description: "Select the active stack(s) for this repo by enabling the matching marketplace plugin(s) in .claude/settings.json. Multi-select: pass several stacks (ios backend) or pick them in the native picker. Use when a repo's stack changed or the wrong plugins are enabled for it."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# multi-agent stack - Select Stack via Plugin Enablement
|
|
8
|
+
# multi-agent stack - Select Stack(s) via Plugin Enablement
|
|
9
9
|
|
|
10
|
-
Stack skills ship as plugins in the `{owner}/multi-agent-plugins` marketplace. Selecting a stack = **enabling the matching plugin(s)** in the current repo's `.claude/settings.json` `enabledPlugins`. The `ai-common-
|
|
10
|
+
Stack skills ship as plugins in the `{owner}/multi-agent-plugins` marketplace. Selecting a stack = **enabling the matching plugin(s)** in the current repo's `.claude/settings.json` `enabledPlugins`. The `ai-common-toolkit` (accessibility audit, humanizer, Firebase) is always enabled alongside the stack plugin(s).
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
On Claude Code the marketplace plugins are the ONLY source of stack skills - nothing is copied into `~/.claude/skills` anymore. A stack that is not enabled here is simply absent from the session. Copilot CLI and Codex CLI have no plugin loader; they receive a local copy filtered to the enabled stacks at install time, which is why step 5 below offers to refresh those copies after a change.
|
|
13
|
+
|
|
14
|
+
This replaces the old `stack-swap.sh` mechanic that physically moved skill directories in `~/.claude/skills/`. There is no SessionStart hook and no directory shuffling - enablement is declarative, per-repo, and versioned.
|
|
13
15
|
|
|
14
16
|
## Usage
|
|
15
17
|
|
|
16
18
|
```bash
|
|
17
|
-
multi-agent
|
|
18
|
-
multi-agent
|
|
19
|
-
multi-agent
|
|
20
|
-
multi-agent
|
|
21
|
-
multi-agent
|
|
22
|
-
multi-agent
|
|
23
|
-
multi-agent
|
|
24
|
-
multi-agent
|
|
19
|
+
/multi-agent:stack # no arg → native multi-select picker (current state pre-noted)
|
|
20
|
+
/multi-agent:stack ios # SwiftUI toolkit + common
|
|
21
|
+
/multi-agent:stack ios backend # any combination, space-separated
|
|
22
|
+
/multi-agent:stack android # Compose toolkit + common
|
|
23
|
+
/multi-agent:stack mobile # alias: ios + android + common
|
|
24
|
+
/multi-agent:stack backend # Python / Node spec-driven toolkit + common
|
|
25
|
+
/multi-agent:stack frontend # React / TSX toolkit + common (alias: web)
|
|
26
|
+
/multi-agent:stack fullstack # alias: frontend + backend + common
|
|
27
|
+
/multi-agent:stack all # all four stack toolkits + common
|
|
25
28
|
```
|
|
26
29
|
|
|
27
30
|
## Stack → plugin map
|
|
28
31
|
|
|
29
32
|
| Stack | Plugins enabled (all `@multi-agent-plugins`) |
|
|
30
33
|
|---|---|
|
|
31
|
-
| `ios` | `ai-common-
|
|
32
|
-
| `android` | `ai-common-
|
|
33
|
-
| `frontend` | `ai-common-
|
|
34
|
-
| `backend` | `ai-common-
|
|
35
|
-
| `mobile` | common + `ai-ios-
|
|
36
|
-
| `fullstack` | common + `ai-frontend-
|
|
34
|
+
| `ios` | `ai-common-toolkit`, `ai-ios-toolkit` |
|
|
35
|
+
| `android` | `ai-common-toolkit`, `ai-android-toolkit` |
|
|
36
|
+
| `frontend` / `web` | `ai-common-toolkit`, `ai-frontend-toolkit` |
|
|
37
|
+
| `backend` | `ai-common-toolkit`, `ai-backend-toolkit` |
|
|
38
|
+
| `mobile` | common + `ai-ios-toolkit` + `ai-android-toolkit` |
|
|
39
|
+
| `fullstack` | common + `ai-frontend-toolkit` + `ai-backend-toolkit` |
|
|
37
40
|
| `all` | common + all four stack toolkits |
|
|
38
41
|
|
|
42
|
+
Multiple args union their plugin sets: `ios backend` → common + iOS + backend.
|
|
43
|
+
|
|
39
44
|
## Behaviour
|
|
40
45
|
|
|
41
|
-
1. **No arg →
|
|
42
|
-
|
|
43
|
-
|
|
46
|
+
1. **No arg → native multi-select picker.** Read `.claude/settings.json` (repo) + `~/.claude/settings.json` (global) to learn the current state, then ask with `AskUserQuestion` (`multiSelect: true`) - NEVER a numbered text menu:
|
|
47
|
+
- `question` (in `outputLanguage`): which stacks should be active in this repo, noting the currently enabled ones
|
|
48
|
+
- `header`: "Stacks" (English, UI contract)
|
|
49
|
+
- `options` (4): `ios` / `android` / `frontend (web)` / `backend`, each `description` (in `outputLanguage`) naming the plugin it enables and marking the ones already enabled with "(currently on)" / "(şu an açık)"
|
|
50
|
+
- Empty selection or cancel → **status mode**: print the currently enabled `@multi-agent-plugins` plugins and exit without modifying anything.
|
|
51
|
+
2. **Arg(s) present → enable mode.** Accept multiple space-separated stacks. Resolve each through the alias table (`web`→`frontend`, `mobile`→`ios android`, `fullstack`→`frontend backend`, `all`→every stack), union the plugin sets, then write the **current repo's** `.claude/settings.json`.
|
|
52
|
+
3. **Write rules:**
|
|
53
|
+
- every plugin in the union is set to `true`
|
|
54
|
+
- every stack toolkit **not** in the union is set to `false` (leave non-`@multi-agent-plugins` entries untouched)
|
|
55
|
+
- `ai-common-toolkit@multi-agent-plugins` is always `true`
|
|
56
|
+
- **legacy-key cleanup**: delete any `ai-*-engineering-toolkit@multi-agent-plugins` keys - those plugin names were retired by the `ai-<stack>-toolkit` rename and a stale `true` there enables a plugin that no longer exists in the marketplace
|
|
57
|
+
4. **Unknown arg** → show the table above; do not guess.
|
|
58
|
+
5. **Copilot/Codex refresh offer.** Their local skill copies are filtered to the enabled stacks at install time, so after a change ask (single `AskUserQuestion`, not silent): "Refresh Copilot/Codex local copies now?" - Yes runs `node <pipelineRepo>/install.js --copilot --codex`, No leaves them stale with a one-line warning naming the command to run later. Skip this question entirely when neither `~/.copilot` nor `~/.codex` exists.
|
|
59
|
+
|
|
60
|
+
## Implementation
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
REPO_SETTINGS=".claude/settings.json"
|
|
64
|
+
MP="multi-agent-plugins"
|
|
65
|
+
|
|
66
|
+
# --- ensure the marketplace is known (idempotent) -------------------------
|
|
67
|
+
if ! claude marketplace list 2>/dev/null | grep -q "$MP"; then
|
|
68
|
+
claude marketplace add {owner}/multi-agent-plugins 2>/dev/null \
|
|
69
|
+
|| echo "note: add the marketplace once with: claude marketplace add {owner}/multi-agent-plugins"
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
COMMON="ai-common-toolkit@${MP}"
|
|
73
|
+
IOS="ai-ios-toolkit@${MP}"
|
|
74
|
+
ANDROID="ai-android-toolkit@${MP}"
|
|
75
|
+
FRONTEND="ai-frontend-toolkit@${MP}"
|
|
76
|
+
BACKEND="ai-backend-toolkit@${MP}"
|
|
77
|
+
|
|
78
|
+
# resolve every arg through the alias table, union the ON set
|
|
79
|
+
ON="$COMMON"
|
|
80
|
+
for ARG in "$@"; do
|
|
81
|
+
case "$ARG" in
|
|
82
|
+
ios) ON="$ON $IOS" ;;
|
|
83
|
+
android) ON="$ON $ANDROID" ;;
|
|
84
|
+
frontend|web) ON="$ON $FRONTEND" ;;
|
|
85
|
+
backend) ON="$ON $BACKEND" ;;
|
|
86
|
+
mobile) ON="$ON $IOS $ANDROID" ;;
|
|
87
|
+
fullstack) ON="$ON $FRONTEND $BACKEND" ;;
|
|
88
|
+
all) ON="$ON $IOS $ANDROID $FRONTEND $BACKEND" ;;
|
|
89
|
+
*) echo "Unknown stack '$ARG'. One of: ios android mobile backend frontend web fullstack all"; exit 1 ;;
|
|
90
|
+
esac
|
|
91
|
+
done
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
After resolving `$ON`, edit `.claude/settings.json` (create `{ "enabledPlugins": {} }` if absent) so that:
|
|
95
|
+
- every plugin in `$ON` is set to `true`,
|
|
96
|
+
- every stack toolkit **not** in `$ON` is set to `false` (leave non-`@multi-agent-plugins` entries untouched),
|
|
97
|
+
- `ai-common-toolkit@multi-agent-plugins` is always `true`,
|
|
98
|
+
- every `ai-*-engineering-toolkit@multi-agent-plugins` key is **deleted** (retired names).
|
|
99
|
+
|
|
100
|
+
Use the Read + Edit/Write tools (JSON must stay valid). Then print the resulting `enabledPlugins` block and run step 5 (Copilot/Codex refresh offer).
|
|
44
101
|
|
|
45
102
|
## Notes
|
|
46
103
|
|
|
47
104
|
- Enablement is per-repo and declarative - commit `.claude/settings.json` so teammates get the same stack.
|
|
48
|
-
- Restart the conversation to pick up newly enabled plugins.
|
|
105
|
+
- Restart the conversation (or reload the window) for Claude Code to pick up newly enabled plugins.
|
|
49
106
|
- Pipeline Phase 1 stack detection is independent (it reads project files); `stack` only sets which plugin skill set is active.
|
|
50
107
|
- The old `stack-swap.sh` skill-dir swap has been removed; stack selection is entirely plugin enablement.
|
|
@@ -37,7 +37,7 @@ doc is the contract.
|
|
|
37
37
|
|---|---|---|
|
|
38
38
|
| 1 Static | `ios_app_store_audit` 18 rules, needs an `.xcarchive` | `android_apk_audit` + `google-play-compliance` 21 rules, needs an `.aab` |
|
|
39
39
|
| 2 Authoritative | `ios_testflight_validate` → `altool --validate-app`, needs credentials | `SKIPPED` - Play's authoritative check is server-side only and no client ships here |
|
|
40
|
-
| 3 Policy | `app-store-review` skill vs repo source | `play-store-review` skill vs repo source |
|
|
40
|
+
| 3 Policy | `ai-ios-toolkit:app-store-review` skill vs repo source | `ai-android-toolkit:play-store-review` skill vs repo source |
|
|
41
41
|
|
|
42
42
|
Gate 2's asymmetry is reported as an asymmetry. An Android run clears at most 2 of 3
|
|
43
43
|
gates and must never print `passed`. A skipped gate is never folded into the pass
|
|
@@ -31,8 +31,8 @@ Run all steps automatically:
|
|
|
31
31
|
|
|
32
32
|
```
|
|
33
33
|
Step 1: DETECT Compare timestamps, find stale targets
|
|
34
|
-
Step 2: COPILOT Claude Code -> Copilot CLI (instructions +
|
|
35
|
-
Step 2b: CODEX Claude Code -> Codex CLI (1 router skill +
|
|
34
|
+
Step 2: COPILOT Claude Code -> Copilot CLI (instructions + 51 sub-command skills)
|
|
35
|
+
Step 2b: CODEX Claude Code -> Codex CLI (1 router skill + 51 specs as refs + 8 agent TOML)
|
|
36
36
|
Step 3: REPO Claude Code -> pipeline repo (genericized, personal data scrub)
|
|
37
37
|
Step 3d: DEV-TOOLKIT Companion MCP server -> detect movement, ship gates, commit + publish
|
|
38
38
|
Step 4: WEBSITE Version + phase/model counts -> {website-host} (i18n + projects.ts)
|
|
@@ -91,14 +91,14 @@ If nothing is stale -> report "All targets up to date" and stop.
|
|
|
91
91
|
- `~/.claude/multi-agent-preferences.json`
|
|
92
92
|
- `~/.claude/CLAUDE.md`, `~/.claude/rules/`, `~/.claude/knowledge/`
|
|
93
93
|
- `~/.claude/scripts/` - EXCEPT `pre-commit-check.sh` and `build-stack-plugins.mjs` (generic, synced)
|
|
94
|
-
- Step 3c (PLUGINS): rebuild the `{owner}/multi-agent-plugins` marketplace from `shared/external` via `build-stack-plugins.mjs` (bumps changed plugins' patch version), then commit + push the plugins repo
|
|
94
|
+
- Step 3c (PLUGINS): rebuild the `{owner}/multi-agent-plugins` marketplace from `shared/external` via `build-stack-plugins.mjs` (bumps changed plugins' patch version), then commit + push the plugins repo. On any change also verify help + README freshness: every plugin registers `./skills/tools/help` in plugin.json, `tools/bump.py --check` shows no DRIFT, `tools/validate.py` clean (CHANGELOG entry per bumped version), and pipeline help/READMEs reflect any command-surface change from Step 3
|
|
95
95
|
- `~/.claude/settings.json`
|
|
96
96
|
|
|
97
97
|
|
|
98
98
|
## Codex Sync (Step 2b)
|
|
99
99
|
|
|
100
100
|
This step does **not** hand-copy files. The Codex tree is a *transform* of the Claude
|
|
101
|
-
tree, not a mirror: the
|
|
101
|
+
tree, not a mirror: the 51 sub-command specs become reference files (Codex silently
|
|
102
102
|
truncates its skills block - see `cross-cli-contract.md` 2.6), every reference to a
|
|
103
103
|
CLI-owned tree is retargeted (`agents/<persona>.md` becomes `.toml`, the dispatcher
|
|
104
104
|
becomes the router skill), the 8 personas are regenerated as TOML with a model +
|
|
@@ -223,14 +223,14 @@ When invoked with the `release` argument:
|
|
|
223
223
|
|-------------|-------------|
|
|
224
224
|
| `~/.claude/commands/multi-agent/{cmd}.md` | `~/.copilot/skills/multi-agent-{cmd}/SKILL.md` |
|
|
225
225
|
|
|
226
|
-
**
|
|
226
|
+
**51 commands are synced** (canonical inventory - must match `cross-cli-contract.md` section 1; drift = contract violation):
|
|
227
227
|
|
|
228
228
|
```
|
|
229
|
-
analysis, analysis-resolve, autopilot, build-optimize, channels, create-jira, design-check, dev,
|
|
229
|
+
analysis, analysis-resolve, autopilot, build-optimize, channels, complaint-analysis, create-jira, design-check, dev,
|
|
230
230
|
dev-autopilot, dev-local, dev-local-autopilot, diff-explain, forget, garbage-collect,
|
|
231
231
|
help, ios-coding-standard, issue, jira, kill, language, local,
|
|
232
|
-
local-autopilot, log, manual-test, prune-logs, purge, refactor, resume, review, review-issue, review-jira,
|
|
233
|
-
routines, save, scan, search, setup,
|
|
232
|
+
local-autopilot, log, manual-test, prune-logs, prune-prompts, purge, refactor, resume, review, review-issue, review-jira,
|
|
233
|
+
routines, save, scan, search, setup, resume-local, stack, status, store-ready, sync, test, test-accessibility,
|
|
234
234
|
test-dark-mode, test-dynamic-type, test-screenshots, testflight-validation, uninstall, update
|
|
235
235
|
```
|
|
236
236
|
|
|
@@ -42,7 +42,7 @@ Unchanged from before the merge, on the iOS path:
|
|
|
42
42
|
|---|---|---|
|
|
43
43
|
| **1. Static** | `ios_app_store_audit` (18 rules, real ITMS codes) | an `.xcarchive` |
|
|
44
44
|
| **2. Authoritative** | `ios_testflight_validate` → `altool --validate-app` | an `.ipa` + credentials |
|
|
45
|
-
| **3. Policy** | `app-store-review` skill vs repo source | repo checkout |
|
|
45
|
+
| **3. Policy** | `ai-ios-toolkit:app-store-review` skill vs repo source | repo checkout |
|
|
46
46
|
|
|
47
47
|
A skipped gate is never folded into the pass count, and the run never uploads. The
|
|
48
48
|
report lands in `~/StoreChecks/ios-<repo>-<branch>-<timestamp>/report.md`.
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
module: <YourModule>
|
|
20
20
|
path: <Path/To/Module>
|
|
21
|
-
role: feature
|
|
21
|
+
role: feature # feature | common | app
|
|
22
22
|
registry_version: 1.1.0
|
|
23
23
|
updated: <YYYY-MM-DD>
|
|
24
24
|
|
|
@@ -52,7 +52,7 @@ dialect:
|
|
|
52
52
|
# An unfilled slot disables the rules that read it.
|
|
53
53
|
vocabulary:
|
|
54
54
|
ScreenRoot: <Sources/<Module>/Screens>
|
|
55
|
-
ScreenRoleSuffixes: []
|
|
55
|
+
ScreenRoleSuffixes: [] # e.g. [Scene, ViewModel, UseCase, Repository, Mapper]
|
|
56
56
|
HandlerName: "<Screen><Suffix>"
|
|
57
57
|
|
|
58
58
|
# --- Sensitive data inventory -----------------------------------------
|