@mmerterden/multi-agent-pipeline 11.2.0 → 11.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/README.md +2 -2
- package/docs/FIGMA_PIPELINE.md +12 -25
- package/docs/architecture.md +3 -5
- package/docs/features.md +8 -8
- package/install/_dev-only-files.mjs +0 -6
- package/install/claude.mjs +33 -15
- package/install/copilot.mjs +16 -14
- package/install/templates/copilot-instructions.md +3 -3
- package/package.json +1 -1
- package/pipeline/commands/{multi-agent.md → multi-agent/SKILL.md} +39 -39
- package/pipeline/commands/multi-agent/{analysis.md → analysis/SKILL.md} +18 -18
- package/pipeline/commands/multi-agent/{analysis-resolve.md → analysis-resolve/SKILL.md} +4 -4
- package/pipeline/commands/multi-agent/{autopilot.md → autopilot/SKILL.md} +4 -4
- package/pipeline/commands/multi-agent/{build-optimize.md → build-optimize/SKILL.md} +1 -1
- package/pipeline/commands/multi-agent/{channels.md → channels/SKILL.md} +12 -12
- package/pipeline/commands/multi-agent/{dev.md → dev/SKILL.md} +4 -4
- package/pipeline/commands/multi-agent/{dev-autopilot.md → dev-autopilot/SKILL.md} +4 -4
- package/pipeline/commands/multi-agent/{dev-local.md → dev-local/SKILL.md} +5 -5
- package/pipeline/commands/multi-agent/{dev-local-autopilot.md → dev-local-autopilot/SKILL.md} +4 -4
- package/pipeline/commands/multi-agent/{finish.md → finish/SKILL.md} +6 -6
- package/pipeline/commands/multi-agent/{generate.md → generate/SKILL.md} +3 -3
- package/pipeline/commands/multi-agent/{help.md → help/SKILL.md} +4 -4
- package/pipeline/commands/multi-agent/{local.md → local/SKILL.md} +5 -5
- package/pipeline/commands/multi-agent/{local-autopilot.md → local-autopilot/SKILL.md} +5 -5
- package/pipeline/commands/multi-agent/{manual-test.md → manual-test/SKILL.md} +1 -1
- package/pipeline/commands/multi-agent/refactor/SKILL.md +257 -0
- package/pipeline/commands/multi-agent/{resume.md → resume/SKILL.md} +1 -1
- package/pipeline/commands/multi-agent/{review.md → review/SKILL.md} +5 -5
- package/pipeline/commands/multi-agent/{setup.md → setup/SKILL.md} +1 -1
- package/pipeline/commands/multi-agent/{sync.md → sync/SKILL.md} +20 -58
- package/pipeline/{commands/multi-agent → multi-agent-refs}/_account-picker.md +2 -2
- package/pipeline/{commands/multi-agent → multi-agent-refs}/_dev-context.md +2 -2
- package/pipeline/{commands/multi-agent → multi-agent-refs}/_repo-picker.md +2 -2
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/android-guide.md +1 -1
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/jira.md +1 -1
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/wiki.md +7 -7
- package/pipeline/multi-agent-refs/component-dispatch.md +92 -0
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/cross-cli-contract.md +10 -77
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/verify-by-test.md +1 -1
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/generate-issue.md +2 -2
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/issue-jira-triad.md +1 -1
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/keychain.md +1 -1
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/log-format.md +1 -1
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/modes.md +2 -2
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/operations.md +1 -1
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-0-init.md +10 -10
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-1-analysis.md +6 -6
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-2-planning.md +3 -3
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-3-dev.md +10 -10
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-4-review.md +8 -8
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-5-test.md +3 -3
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-6-commit.md +4 -4
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-7-report.md +6 -6
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases.md +12 -12
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/progress-contract.md +4 -4
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/swiftui-guide.md +1 -1
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/tracker-contract.md +3 -3
- package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/wiki-capture.md +4 -4
- package/pipeline/preferences-template.json +17 -1
- package/pipeline/rules/figma-pipeline.md +2 -2
- package/pipeline/schemas/prefs.schema.json +0 -34
- package/pipeline/scripts/README.md +1 -3
- package/pipeline/scripts/fixtures/install-layout.tsv +6 -5
- package/pipeline/scripts/gen-mode-dispatch.mjs +3 -3
- package/pipeline/scripts/phase-banner.sh +2 -2
- package/pipeline/scripts/review-scope.mjs +94 -0
- package/pipeline/scripts/scan-agent-config.sh +2 -2
- package/pipeline/scripts/smoke-agent-log-cost.sh +1 -1
- package/pipeline/scripts/smoke-agent-model-routing.sh +4 -4
- package/pipeline/scripts/smoke-autopilot-circuit-breaker.sh +2 -2
- package/pipeline/scripts/smoke-channels-approval-gate.sh +2 -2
- package/pipeline/scripts/smoke-channels-flow.sh +5 -5
- package/pipeline/scripts/smoke-clarify.sh +1 -1
- package/pipeline/scripts/smoke-commands-skills-parity.sh +3 -3
- package/pipeline/scripts/smoke-community-gates.sh +1 -1
- package/pipeline/scripts/smoke-compliance-skills.sh +2 -2
- package/pipeline/scripts/smoke-cost-summary.sh +1 -1
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +17 -43
- package/pipeline/scripts/smoke-cross-phase-cohesion.sh +1 -1
- package/pipeline/scripts/smoke-dev-critic.sh +1 -1
- package/pipeline/scripts/smoke-diff-explain.sh +1 -1
- package/pipeline/scripts/smoke-diff-risk.sh +1 -1
- package/pipeline/scripts/smoke-evidence-gate.sh +1 -1
- package/pipeline/scripts/smoke-figma-dispatch.sh +46 -57
- package/pipeline/scripts/smoke-gate-hooks.sh +1 -1
- package/pipeline/scripts/smoke-generate-issue.sh +8 -8
- package/pipeline/scripts/smoke-handoff-contract.sh +3 -3
- package/pipeline/scripts/smoke-identity-isolation.sh +2 -2
- package/pipeline/scripts/smoke-intent-guard.sh +1 -1
- package/pipeline/scripts/smoke-issue-comment-template.sh +2 -2
- package/pipeline/scripts/smoke-issue-jira-triad.sh +4 -4
- package/pipeline/scripts/smoke-language-axis.sh +6 -6
- package/pipeline/scripts/smoke-learnings-ledger.sh +3 -3
- package/pipeline/scripts/smoke-mode-dispatch-drift.sh +16 -16
- package/pipeline/scripts/smoke-model-fallback.sh +3 -3
- package/pipeline/scripts/smoke-multi-repo-integration.sh +2 -2
- package/pipeline/scripts/smoke-multi-repo-worktree.sh +1 -1
- package/pipeline/scripts/smoke-no-token-prompt.sh +5 -5
- package/pipeline/scripts/smoke-phase-0-multi-repo.sh +1 -1
- package/pipeline/scripts/smoke-phase-6-multi.sh +1 -1
- package/pipeline/scripts/smoke-phase4-gates.sh +45 -0
- package/pipeline/scripts/smoke-plan-approval-gate.sh +5 -5
- package/pipeline/scripts/smoke-plan-todos.sh +3 -3
- package/pipeline/scripts/smoke-pr-review-actions.sh +3 -3
- package/pipeline/scripts/smoke-prefs-language.sh +1 -1
- package/pipeline/scripts/smoke-progress-contract.sh +2 -2
- package/pipeline/scripts/smoke-push-retry.sh +1 -1
- package/pipeline/scripts/smoke-repo-map.sh +2 -2
- package/pipeline/scripts/smoke-shadow-git.sh +1 -1
- package/pipeline/scripts/smoke-skill-authoring.sh +4 -9
- package/pipeline/scripts/smoke-tasklist-ordering.sh +10 -10
- package/pipeline/scripts/smoke-test-gap.sh +1 -1
- package/pipeline/scripts/smoke-token-budget.sh +1 -1
- package/pipeline/scripts/smoke-token-preflight.sh +2 -2
- package/pipeline/scripts/smoke-tracker-contract.sh +13 -13
- package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +5 -5
- package/pipeline/scripts/smoke-triage-memory.sh +2 -2
- package/pipeline/scripts/smoke-update-check.sh +1 -1
- package/pipeline/scripts/smoke-url-enrichment.sh +2 -2
- package/pipeline/scripts/smoke-validator-gates.sh +1 -1
- package/pipeline/scripts/smoke-verify-by-test.sh +3 -3
- package/pipeline/scripts/smoke-wiki-integration.sh +9 -33
- package/pipeline/scripts/smoke-work-summary.sh +1 -1
- package/pipeline/scripts/smoke-worktree-path-convention.sh +4 -4
- package/pipeline/scripts/test-integrity-gate.mjs +83 -0
- package/pipeline/scripts/uninstall.mjs +2 -2
- package/pipeline/skills/.skill-manifest.json +40 -160
- package/pipeline/skills/.skills-index.json +3 -372
- package/pipeline/skills/shared/README.md +1 -1
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +3 -3
- package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-finish/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +116 -51
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +8 -30
- package/pipeline/skills/shared/external/compose-components/SKILL.md +14 -14
- package/pipeline/skills/skills-index.md +2 -43
- package/pipeline/commands/multi-agent/refactor.md +0 -188
- package/pipeline/commands/multi-agent/refs/component-dispatch.md +0 -92
- package/pipeline/scripts/smoke-existing-discovery-gate.sh +0 -71
- package/pipeline/scripts/smoke-figma-android-parity.sh +0 -148
- package/pipeline/scripts/smoke-figma-credential-store.sh +0 -105
- package/pipeline/scripts/smoke-figma-cross-cli-inventory.sh +0 -177
- package/pipeline/scripts/smoke-figma-sync.sh +0 -149
- package/pipeline/scripts/smoke-sync-delegation.sh +0 -74
- package/pipeline/skills/figma-android/README.md +0 -38
- package/pipeline/skills/figma-android/figma-component-code-connect/SKILL.md +0 -62
- package/pipeline/skills/figma-android/figma-component-implement/SKILL.md +0 -158
- package/pipeline/skills/figma-android/figma-component-test/SKILL.md +0 -120
- package/pipeline/skills/figma-android/figma-component-wiki/SKILL.md +0 -35
- package/pipeline/skills/figma-android/figma-to-component/SKILL.md +0 -124
- package/pipeline/skills/figma-common/README.md +0 -64
- package/pipeline/skills/figma-common/figma-bottom-sheets/SKILL.md +0 -152
- package/pipeline/skills/figma-common/figma-cli-iterate/SKILL.md +0 -282
- package/pipeline/skills/figma-common/figma-cli-iterate-mend/SKILL.md +0 -503
- package/pipeline/skills/figma-common/figma-cli-lean-iterate/SKILL.md +0 -288
- package/pipeline/skills/figma-common/figma-cli-skip/SKILL.md +0 -362
- package/pipeline/skills/figma-common/figma-commit/COMMON_REBASE.md +0 -206
- package/pipeline/skills/figma-common/figma-commit/REVIEW.md +0 -337
- package/pipeline/skills/figma-common/figma-commit/SKILL.md +0 -216
- package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +0 -223
- package/pipeline/skills/figma-common/figma-component-start/SKILL.md +0 -251
- package/pipeline/skills/figma-common/figma-component-status-update/SKILL.md +0 -78
- package/pipeline/skills/figma-common/figma-evolve-component/SKILL.md +0 -61
- package/pipeline/skills/figma-common/figma-fix/SKILL.md +0 -321
- package/pipeline/skills/figma-common/figma-form-integration/SKILL.md +0 -542
- package/pipeline/skills/figma-common/figma-issue/SKILL.md +0 -750
- package/pipeline/skills/figma-common/figma-iterate/SKILL.md +0 -208
- package/pipeline/skills/figma-common/figma-iteration-commit/SKILL.md +0 -1020
- package/pipeline/skills/figma-common/figma-mend/SKILL.md +0 -331
- package/pipeline/skills/figma-common/figma-navigation/SKILL.md +0 -156
- package/pipeline/skills/figma-common/figma-overlays/SKILL.md +0 -142
- package/pipeline/skills/figma-common/figma-price-integration/SKILL.md +0 -398
- package/pipeline/skills/figma-common/figma-remote-mcp-auth/SKILL.md +0 -104
- package/pipeline/skills/figma-common/figma-review/SKILL.md +0 -400
- package/pipeline/skills/figma-common/figma-setup/SKILL.md +0 -514
- package/pipeline/skills/figma-common/figma-setup/scripts/fetch-mcp-token.py +0 -592
- package/pipeline/skills/figma-common/figma-skip/SKILL.md +0 -129
- package/pipeline/skills/figma-common/figma-ui-patterns/SKILL.md +0 -105
- package/pipeline/skills/figma-common/figma-ui-patterns/patterns/animated-gradient-border.md +0 -116
- package/pipeline/skills/figma-common/figma-utility/SKILL.md +0 -274
- package/pipeline/skills/figma-common/figma-utility/scripts/figma-utility.py +0 -808
- package/pipeline/skills/figma-common/figma-validate/SKILL.md +0 -633
- package/pipeline/skills/figma-common/performance-iteration-commit-all/SKILL.md +0 -716
- package/pipeline/skills/figma-common/performance-review-next/SKILL.md +0 -238
- package/pipeline/skills/figma-common/performance-start/SKILL.md +0 -430
- package/pipeline/skills/figma-common/performance-swiftui/SKILL.md +0 -706
- package/pipeline/skills/figma-common/performance-tour/SKILL.md +0 -423
- package/pipeline/skills/figma-ios/REVIEW_CHECKLIST.md +0 -67
- package/pipeline/skills/figma-ios/figma-component-code-connect/SKILL.md +0 -178
- package/pipeline/skills/figma-ios/figma-component-implement/SKILL.md +0 -184
- package/pipeline/skills/figma-ios/figma-component-test/SKILL.md +0 -219
- package/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md +0 -274
- package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +0 -416
- package/pipeline/skills/figma-ios/figma-to-component/halt-return-protocol.md +0 -57
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-0-init.md +0 -307
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1-gathering.md +0 -119
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md +0 -174
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md +0 -333
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2a-testing-identifiers.md +0 -368
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2b-localization.md +0 -393
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2c-accessibility.md +0 -617
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2d-analytics.md +0 -352
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3-orchestrator.md +0 -337
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3a-location.md +0 -206
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3b-tokens.md +0 -235
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3c-nested.md +0 -214
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3d-patterns.md +0 -902
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3e-assets.md +0 -156
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3f-utilities.md +0 -175
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3g-property-coverage.md +0 -176
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3h-variant-config.md +0 -333
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4-orchestrator.md +0 -412
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4a-configuration.md +0 -336
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4b-view.md +0 -705
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4c-documentation.md +0 -332
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4d-preview.md +0 -380
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4e-modifiers.md +0 -262
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5-orchestrator.md +0 -482
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5a-viewinspector.md +0 -274
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5b-snapshot.md +0 -636
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5c-unit.md +0 -142
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +0 -547
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7-wiki.md +0 -39
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-confluence-generate.md +0 -659
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-wiki-generate.md +0 -580
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-8-cleanup.md +0 -51
- package/pipeline/skills/figma-ios/figma-to-component/reference/accessibility.md +0 -183
- package/pipeline/skills/figma-ios/figma-to-component/reference/analytics-events.md +0 -64
- package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +0 -531
- package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-api.md +0 -89
- package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-xhtml.md +0 -155
- package/pipeline/skills/figma-ios/figma-to-component/reference/figma-to-swiftui-effects.md +0 -196
- package/pipeline/skills/figma-ios/figma-to-component/reference/halt-return-protocol.md +0 -57
- package/pipeline/skills/figma-ios/figma-to-component/reference/localization-naming.md +0 -89
- package/pipeline/skills/figma-ios/figma-to-component/reference/macros.md +0 -227
- package/pipeline/skills/figma-ios/figma-to-component/reference/missing-tokens.md +0 -157
- package/pipeline/skills/figma-ios/figma-to-component/reference/orchestrator-discipline.md +0 -90
- package/pipeline/skills/figma-ios/figma-to-component/reference/registry.md +0 -116
- package/pipeline/skills/figma-ios/figma-to-component/reference/remote-mcp-script.md +0 -153
- package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +0 -130
- package/pipeline/skills/figma-ios/figma-to-component/reference/scripts-inventory.md +0 -218
- package/pipeline/skills/figma-ios/figma-to-component/reference/snapshot-testing.md +0 -188
- package/pipeline/skills/figma-ios/figma-to-component/reference/subcomponent-graph.md +0 -93
- package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md +0 -98
- package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +0 -261
- package/pipeline/skills/figma-ios/figma-to-component/reference/viewinspector.md +0 -147
- package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md +0 -182
- package/pipeline/skills/figma-ios/figma-to-component/scripts/apply-author-login-map.py +0 -185
- package/pipeline/skills/figma-ios/figma-to-component/scripts/backfill-status.py +0 -609
- package/pipeline/skills/figma-ios/figma-to-component/scripts/build-author-registry.py +0 -332
- package/pipeline/skills/figma-ios/figma-to-component/scripts/bulk-sync-issues.py +0 -261
- package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-data-gather.py +0 -184
- package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-publish.sh +0 -188
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py +0 -768
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status.py +0 -191
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-data-gather.py +0 -420
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.example.json +0 -9
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-publish.py +0 -336
- package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-subcomponent-graph.py +0 -391
- package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-update.py +0 -292
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/__init__.py +0 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/issue_sync_propagate.py +0 -93
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/registry_writer.py +0 -299
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_backfill_status.py +0 -343
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update.py +0 -206
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update_http.py +0 -149
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_phase_clis.py +0 -281
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_registry_writer.py +0 -332
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_issue.py +0 -176
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_review.py +0 -98
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue.py +0 -298
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue_gh.py +0 -195
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +0 -1298
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase2-finalize.py +0 -228
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase3-scripts.py +0 -1089
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase4-finalize.py +0 -141
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase5-finalize.py +0 -106
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase6-finalize.py +0 -162
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase7-finalize.py +0 -105
- package/pipeline/skills/figma-ios/figma-to-component/scripts/register-icons-codeconnect.py +0 -179
- package/pipeline/skills/figma-ios/figma-to-component/scripts/remote-mcp-fetch.py +0 -260
- package/pipeline/skills/figma-ios/figma-to-component/scripts/resolve-author-logins.py +0 -260
- package/pipeline/skills/figma-ios/figma-to-component/scripts/run-uicomponents-tests.sh +0 -86
- package/pipeline/skills/figma-ios/figma-to-component/scripts/sidebar-generator.py +0 -321
- package/pipeline/skills/figma-ios/figma-to-component/scripts/update-issue-from-registry.py +0 -1470
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase4.sh +0 -176
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase6.sh +0 -147
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase7a.py +0 -629
- /package/pipeline/commands/multi-agent/{delete.md → delete/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{diff-explain.md → diff-explain/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{garbage-collect.md → garbage-collect/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{issue.md → issue/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{jira.md → jira/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{kill.md → kill/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{language.md → language/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{log.md → log/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{prune-logs.md → prune-logs/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{purge.md → purge/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{scan.md → scan/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{search.md → search/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{stack.md → stack/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{status.md → status/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{test.md → test/SKILL.md} +0 -0
- /package/pipeline/commands/multi-agent/{update.md → update/SKILL.md} +0 -0
- /package/pipeline/{commands/multi-agent → multi-agent-refs}/_input-parser.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/analysis-template.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/audit-guide.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/backend-guide.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/confluence.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/issue-comment.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr-review-actions.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/conventions-defaults.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/autopilot-circuit-breaker.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/dev-critic.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/external-context-injection.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/model-fallback.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/plan-todos.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/prior-fix-detection.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/repo-map.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/shadow-git.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/frontend-guide.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/knowledge.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/multi-repo-integration-build.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/picker-contract.md +0 -0
- /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/rules.md +0 -0
|
@@ -5,7 +5,7 @@ allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdat
|
|
|
5
5
|
|
|
6
6
|
# multi-agent local - Full Pipeline, Local Branch
|
|
7
7
|
|
|
8
|
-
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` and external payloads stay English. Full contract:
|
|
8
|
+
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` and external payloads stay English. Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
9
9
|
|
|
10
10
|
The full pipeline in normal mode (Plan Approval Gate + parallel review + triage included), running on the **current branch with no worktree**. Dedicated alias for the `multi-agent "task" --local` flag form. Phase 5 (User Test) is skipped because there is no worktree to check the change out from; the other seven phases all run.
|
|
11
11
|
|
|
@@ -37,7 +37,7 @@ Phase 7: Report → Jira / Wiki / Confluence + log + knowledge/memory
|
|
|
37
37
|
|
|
38
38
|
## Delegation
|
|
39
39
|
|
|
40
|
-
This command routes to the orchestrator with the `--local` flag set. The Phase 0-7 contract from
|
|
40
|
+
This command routes to the orchestrator with the `--local` flag set. The Phase 0-7 contract from `$HOME/.claude/multi-agent-refs/phases/phase-0-init.md` and the later phase docs applies as-is - only the worktree step is skipped, and `state.projects[*].worktreePath` stays `null`.
|
|
41
41
|
|
|
42
42
|
Read the routing table in `$HOME/.claude/commands/multi-agent.md` and apply Phase 0 Step 8 in local mode (no worktree: continue on the current branch, state file under `.claude/logs/multi-agent/{project}/{taskId}/`).
|
|
43
43
|
|
|
@@ -50,7 +50,7 @@ Read the routing table in `$HOME/.claude/commands/multi-agent.md` and apply Phas
|
|
|
50
50
|
```
|
|
51
51
|
## Required: Phase Tracker Contract
|
|
52
52
|
|
|
53
|
-
**The phase tracker is mandatory** - the agent cannot skip it. Full spec: [
|
|
53
|
+
**The phase tracker is mandatory** - the agent cannot skip it. Full spec: [`$HOME/.claude/multi-agent-refs/tracker-contract.md`]($HOME/.claude/multi-agent-refs/tracker-contract.md).
|
|
54
54
|
|
|
55
55
|
> **Local mode:** no worktree is created, work happens on the current branch. Phase 0 Init still calls `init` - the `--local` flag is stored in tracker-state.json, and `:resume` restores the correct CWD.
|
|
56
56
|
|
|
@@ -78,7 +78,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out>
|
|
|
78
78
|
|
|
79
79
|
In Claude Code the agent MUST also drive the native TaskList widget so the user sees a sticky phase tile stack - this is the only progress signal Claude Code surfaces. Skipping these calls is the #1 source of "I don't see any phases" complaints.
|
|
80
80
|
|
|
81
|
-
**TaskCreate ordering (strict)**: All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks (e.g. `1 ✓ · 2 ✓ · 4 ✓ · 0 ▶ · 3 ☐`) even when the underlying state is correct. Pre-marking phases as completed/skipped before Phase 0 starts is FORBIDDEN - register the tile in order, then flip status via TaskUpdate when the phase actually short-circuits. Full contract in
|
|
81
|
+
**TaskCreate ordering (strict)**: All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks (e.g. `1 ✓ · 2 ✓ · 4 ✓ · 0 ▶ · 3 ☐`) even when the underlying state is correct. Pre-marking phases as completed/skipped before Phase 0 starts is FORBIDDEN - register the tile in order, then flip status via TaskUpdate when the phase actually short-circuits. Full contract in `$HOME/.claude/multi-agent-refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
82
82
|
|
|
83
83
|
```text
|
|
84
84
|
# Phase 0 startup - register one tile per phase (0..N), capture the taskId, persist it:
|
|
@@ -103,7 +103,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh update <N> completed
|
|
|
103
103
|
|
|
104
104
|
#### TaskCreate ordering (strict)
|
|
105
105
|
|
|
106
|
-
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--local` that means: Phase 0 → Phase 1 → Phase 2 → Phase 3 → Phase 4 → Phase 6 → Phase 7. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in
|
|
106
|
+
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--local` that means: Phase 0 → Phase 1 → Phase 2 → Phase 3 → Phase 4 → Phase 6 → Phase 7. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in `$HOME/.claude/multi-agent-refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
107
107
|
|
|
108
108
|
### Visual channel - Copilot CLI / plain shell
|
|
109
109
|
|
|
@@ -8,7 +8,7 @@ allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdat
|
|
|
8
8
|
|
|
9
9
|
**Input**: $ARGUMENTS
|
|
10
10
|
|
|
11
|
-
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` and external payloads stay English. Full contract:
|
|
11
|
+
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` and external payloads stay English. Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
12
12
|
|
|
13
13
|
Run the full pipeline **without a worktree** and **with every confirmation skipped**. Phase 5 (User Test) does not run (no worktree to check out from, and no interaction), so 7 phases execute. The `autopilot + local` combination - vs `/multi-agent:autopilot` the only difference is no worktree (work stays on the current branch); vs `/multi-agent:local` the only difference is zero interaction.
|
|
14
14
|
|
|
@@ -68,10 +68,10 @@ Run the full pipeline **without a worktree** and **with every confirmation skipp
|
|
|
68
68
|
|
|
69
69
|
## Delegation
|
|
70
70
|
|
|
71
|
-
Orchestrator routing: the routing table in `$HOME/.claude/commands/multi-agent.md` resolves `local-autopilot` as the union of the `dev-local` + `autopilot` mode mixins. Contract details:
|
|
71
|
+
Orchestrator routing: the routing table in `$HOME/.claude/commands/multi-agent.md` resolves `local-autopilot` as the union of the `dev-local` + `autopilot` mode mixins. Contract details: `$HOME/.claude/multi-agent-refs/phases/phase-0-init.md` Step 8 (local branch) + `$HOME/.claude/multi-agent-refs/phases/phase-2-planning.md` Step 5 (autopilot gate skip + safety classifier).
|
|
72
72
|
## Required: Phase Tracker Contract
|
|
73
73
|
|
|
74
|
-
**The phase tracker is mandatory** - the agent cannot skip it. Full spec: [
|
|
74
|
+
**The phase tracker is mandatory** - the agent cannot skip it. Full spec: [`$HOME/.claude/multi-agent-refs/tracker-contract.md`]($HOME/.claude/multi-agent-refs/tracker-contract.md).
|
|
75
75
|
|
|
76
76
|
> **Autopilot mode:** user confirmations are skipped. The tracker is still mandatory - autopilot agent calls cannot skip it; skipping breaks `smoke-tracker-contract.sh`.
|
|
77
77
|
|
|
@@ -101,7 +101,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out>
|
|
|
101
101
|
|
|
102
102
|
In Claude Code the agent MUST also drive the native TaskList widget so the user sees a sticky phase tile stack - this is the only progress signal Claude Code surfaces. Skipping these calls is the #1 source of "I don't see any phases" complaints.
|
|
103
103
|
|
|
104
|
-
**TaskCreate ordering (strict)**: All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks (e.g. `1 ✓ · 2 ✓ · 4 ✓ · 0 ▶ · 3 ☐`) even when the underlying state is correct. Pre-marking phases as completed/skipped before Phase 0 starts is FORBIDDEN - register the tile in order, then flip status via TaskUpdate when the phase actually short-circuits. Full contract in
|
|
104
|
+
**TaskCreate ordering (strict)**: All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks (e.g. `1 ✓ · 2 ✓ · 4 ✓ · 0 ▶ · 3 ☐`) even when the underlying state is correct. Pre-marking phases as completed/skipped before Phase 0 starts is FORBIDDEN - register the tile in order, then flip status via TaskUpdate when the phase actually short-circuits. Full contract in `$HOME/.claude/multi-agent-refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
105
105
|
|
|
106
106
|
```text
|
|
107
107
|
# Phase 0 startup - register one tile per phase (0..N), capture the taskId, persist it:
|
|
@@ -126,7 +126,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh update <N> completed
|
|
|
126
126
|
|
|
127
127
|
#### TaskCreate ordering (strict)
|
|
128
128
|
|
|
129
|
-
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--local autopilot` that means: Phase 0 → Phase 1 → Phase 2 → Phase 3 → Phase 4 → Phase 6 → Phase 7. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in
|
|
129
|
+
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--local autopilot` that means: Phase 0 → Phase 1 → Phase 2 → Phase 3 → Phase 4 → Phase 6 → Phase 7. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in `$HOME/.claude/multi-agent-refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
130
130
|
|
|
131
131
|
### Visual channel - Copilot CLI / plain shell
|
|
132
132
|
|
|
@@ -22,7 +22,7 @@ Lets you switch to the task branch for manual testing in Xcode before the PR is
|
|
|
22
22
|
git checkout {branch-name}
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Then mark the tracker as waiting (this CONTINUES the task's existing `tracker-state.json`; never `init` here - see
|
|
25
|
+
Then mark the tracker as waiting (this CONTINUES the task's existing `tracker-state.json`; never `init` here - see `$HOME/.claude/multi-agent-refs/tracker-contract.md` "Continuation runs"). On Claude Code in a fresh session, first rebuild the TaskList from state per the same contract:
|
|
26
26
|
```bash
|
|
27
27
|
bash $HOME/.claude/scripts/phase-tracker.sh update 5 in_progress
|
|
28
28
|
bash $HOME/.claude/scripts/phase-tracker.sh now 5 "awaiting local test (user)"
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Analyse the project: extract adapted best-practices, hunt real bugs + improvement areas, check upstream drift of derived skills, draft one plan, take approval, develop, then ask whether to sync."
|
|
3
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent, AskUserQuestion, WebFetch
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Multi-Agent Refactor
|
|
7
|
+
|
|
8
|
+
**One command. Best-practices + Bug hunt + Upstream drift -> Score -> Plan -> Approval -> Develop -> Sync.**
|
|
9
|
+
|
|
10
|
+
Deep-analyses the current project, extracts the global best-practices worth adopting (adapted to our stack), hunts real bugs and improvement areas, checks whether any skills we derived from an upstream source have drifted, scores everything, drafts a single prioritized plan, asks the user for approval, applies the approved items, and asks about sync at the end.
|
|
11
|
+
|
|
12
|
+
**Input**: $ARGUMENTS (optional - area to focus on: "security", "performance", "tests", "bugs", "best-practices", "drift", etc.)
|
|
13
|
+
|
|
14
|
+
## Flow
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
Step 0: BEST-PRACTICES Research the field, extract the best approaches, ADAPT them to our stack -> plan band A
|
|
18
|
+
Step 0b: DRIFT Check upstream-derived skills for updates we have not pulled -> plan band D
|
|
19
|
+
Step 1: SCAN Walk the project structure (files, LOC, dependencies, CI, tests)
|
|
20
|
+
Step 2: ANALYZE 10 categories + an explicit BUG HUNT (real defects, not just scores) -> plan bands B, C
|
|
21
|
+
Step 3: SCORE Each category /10, overall /100
|
|
22
|
+
Step 4: PLAN Merge bands A (best-practice) + B (bugs) + C (improvements) + D (drift), priority-ordered
|
|
23
|
+
Step 5: ASK "Start the work?" - wait for user approval
|
|
24
|
+
Step 6: IMPLEMENT Apply approved items one by one (lint, test, commit)
|
|
25
|
+
Step 7: VERIFY Confirm every test + lint passes
|
|
26
|
+
Step 8: ASK SYNC "Run /multi-agent:sync?" - wait for user approval
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Plan bands (all four feed the single Step 4 table):
|
|
30
|
+
- **A - Best-practice**: the best field approaches, adapted so they actually fit this repo.
|
|
31
|
+
- **B - Bug**: real defects found in the code (correctness, security, data-loss, crashes).
|
|
32
|
+
- **C - Improvement**: quality/perf/DX gaps surfaced by the 10-category analysis.
|
|
33
|
+
- **D - Drift**: upstream updates to skills we derived from an external source.
|
|
34
|
+
|
|
35
|
+
## Step 0: BEST-PRACTICES - research the field, adapt to us
|
|
36
|
+
|
|
37
|
+
Do not copy features blindly. The goal is the best *approaches*, reshaped so they are applicable to THIS project's stack, size, and constraints.
|
|
38
|
+
|
|
39
|
+
1. **Identify the domain** of the current project (read README + package/build manifests): what kind of project is it (CLI, SDK, app, pipeline, library), what stack, who uses it.
|
|
40
|
+
2. **Research the best-in-class** for that exact domain:
|
|
41
|
+
- **GitHub**: search the domain terms + `stars:>50`; read the top repos' READMEs, architecture docs, CI configs, test layout.
|
|
42
|
+
- **X / Twitter**: search the domain terms + "best practices" / "we switched to" / "lesson learned"; capture what practitioners and tool authors actually recommend right now (WebFetch/WebSearch on `x.com` / `twitter.com` threads).
|
|
43
|
+
- **Reddit**: relevant subreddits for real-world pain points and adopted patterns.
|
|
44
|
+
- **Web**: "<domain> best practices <current-year>", official style guides, and the platform's own guidance.
|
|
45
|
+
3. **For each candidate approach, record**:
|
|
46
|
+
- what it is, who does it well (source link)
|
|
47
|
+
- the concrete benefit
|
|
48
|
+
- **adaptation**: exactly how it would look in OUR repo (which file/dir/script), and what has to change for it to fit - not a generic "add tests" but "add a flow-assertion helper in `test/helpers/`"
|
|
49
|
+
- effort (Low/Med/High) and impact (Low/Med/High/Critical)
|
|
50
|
+
4. **Discard** approaches that do not fit our stack, our scale, or our constraints - and say WHY (so the user sees the filter working, not just the survivors).
|
|
51
|
+
|
|
52
|
+
Output (plan band A):
|
|
53
|
+
```
|
|
54
|
+
| Source | Approach | Adaptation to our repo | Effort | Impact | In plan? |
|
|
55
|
+
|--------|----------|------------------------|--------|--------|----------|
|
|
56
|
+
| <repo> | <what> | <concrete change here> | Low | High | Yes (P1) |
|
|
57
|
+
| <repo> | <what> | does not fit: <reason> | - | - | No |
|
|
58
|
+
```
|
|
59
|
+
Roll the high-impact + low/med-effort survivors into the Step 4 plan as band-A items.
|
|
60
|
+
|
|
61
|
+
## Step 0b: DRIFT - upstream-derived skill check
|
|
62
|
+
|
|
63
|
+
Some skills/components in this project (or in the marketplace plugins it ships) were derived from an upstream source. Upstream keeps evolving - it fixes bugs and adds features. This step detects upstream drift so we can decide whether to pull the improvements back.
|
|
64
|
+
|
|
65
|
+
The upstream mapping is **configuration, never hardcoded** (it can reference private sources, so it stays out of the shipped skill). Read it from `~/.claude/multi-agent-preferences.json` at `global.derivedSkillSources` (an array). Each entry:
|
|
66
|
+
|
|
67
|
+
```jsonc
|
|
68
|
+
{
|
|
69
|
+
"label": "<human name for this derivation>",
|
|
70
|
+
"localPath": "<repo-relative dir where our derived copy lives>",
|
|
71
|
+
"upstreamMarketplace": "<installed marketplace name>", // resolved under ~/.claude/plugins/cache/<marketplace>/
|
|
72
|
+
"upstreamPlugin": "<plugin name>",
|
|
73
|
+
"upstreamSkills": ["<skill-a>", "<skill-b>"], // the upstream skills we took
|
|
74
|
+
"derivedFromVersion": "<x.y.z>", // the version we last synced from
|
|
75
|
+
"upstreamRepoUrl": "<optional https url>" // used only if the marketplace is not installed locally
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Procedure:
|
|
80
|
+
1. If `global.derivedSkillSources` is missing or empty -> **skip** this step and report "no derived-skill sources configured" (nothing to check). Never invent a source.
|
|
81
|
+
2. For each entry, resolve the current upstream version:
|
|
82
|
+
- **Preferred**: read the newest installed version under `~/.claude/plugins/cache/<upstreamMarketplace>/<upstreamPlugin>/*/` (its `.claude-plugin/plugin.json` `version`), plus that version's `CHANGELOG.md`.
|
|
83
|
+
- **Fallback**: if the marketplace is not installed locally and `upstreamRepoUrl` is set, `WebFetch` the upstream `plugin.json` + `CHANGELOG.md`.
|
|
84
|
+
- If neither is reachable, record the entry as "upstream unreachable" and move on (do not fail the whole run).
|
|
85
|
+
3. Compare the resolved upstream version to `derivedFromVersion`:
|
|
86
|
+
- equal -> "up to date" (no drift)
|
|
87
|
+
- newer -> **drift**: read the CHANGELOG entries between the two versions, and diff each `upstreamSkills` SKILL.md (+ any templates) against our `localPath` copy. Summarize what changed upstream (bug fixes, new sections, new templates, renamed inputs).
|
|
88
|
+
4. Emit the drift table (plan band D):
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
| Derivation | Our copy (localPath) | Derived-from | Upstream now | Drift | What changed upstream |
|
|
92
|
+
|------------|----------------------|--------------|--------------|-------|-----------------------|
|
|
93
|
+
| <label> | <path> | 0.2.1 | 0.3.0 | YES | <changelog + diff summary> |
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
5. For each drifted entry, add a band-D plan item: "port upstream <plugin> <version> changes into <localPath>", with the specific skills to update. Do not auto-apply upstream changes - they go through Step 5 approval like everything else, and after porting, bump the entry's `derivedFromVersion`.
|
|
97
|
+
|
|
98
|
+
## Step 1: SCAN
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
- file count, LOC (cloc or wc -l)
|
|
102
|
+
- package.json / Package.swift / build.gradle analysis
|
|
103
|
+
- dependency count (runtime vs dev)
|
|
104
|
+
- Is there a CI/CD pipeline? (.github/workflows/, fastlane/, Makefile)
|
|
105
|
+
- Is there test infrastructure? How many tests? Coverage?
|
|
106
|
+
- Is a linter/formatter config in place?
|
|
107
|
+
- Do README, LICENSE, SECURITY.md, CHANGELOG.md exist?
|
|
108
|
+
- Git state: branch count, last commit date, tags
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Step 2: ANALYZE - 10 categories + BUG HUNT
|
|
112
|
+
|
|
113
|
+
### 2a. 10 categories (quality lens)
|
|
114
|
+
|
|
115
|
+
| # | Category | What to check |
|
|
116
|
+
|---|----------|---------------|
|
|
117
|
+
| 1 | **Architecture** | Layer separation, modularity, SOLID, dependency direction |
|
|
118
|
+
| 2 | **Code Quality** | Naming, magic numbers, dead code, complexity, DRY |
|
|
119
|
+
| 3 | **Security** | Hardcoded secrets, input validation, Keychain, ATS, ATT |
|
|
120
|
+
| 4 | **Tests** | Coverage, test pyramid, edge cases, mock/stub quality |
|
|
121
|
+
| 5 | **CI/CD** | Build matrix, lint job, release automation, artifact caching |
|
|
122
|
+
| 6 | **Docs** | README quality, JSDoc / Swift docs, API docs, CHANGELOG |
|
|
123
|
+
| 7 | **Performance** | Bundle size, lazy loading, memory leaks, unnecessary re-renders |
|
|
124
|
+
| 8 | **Accessibility** | a11y labels, tap targets, VoiceOver, Dynamic Type |
|
|
125
|
+
| 9 | **Dependency Management** | Outdated deps, vulnerability scan, lockfile, version pinning |
|
|
126
|
+
| 10 | **DevEx** | Onboarding time, script ergonomics, error messages, debug tooling |
|
|
127
|
+
|
|
128
|
+
### 2b. BUG HUNT (real defects, not scores)
|
|
129
|
+
|
|
130
|
+
Category scores measure quality; they do not find the bug that ships. Run an explicit defect hunt IN ADDITION to the scoring:
|
|
131
|
+
|
|
132
|
+
- Dispatch focused review agents (Agent tool, `code-reviewer` persona where available) over the highest-risk surfaces: recently changed files, error/edge-path handling, concurrency, external input parsing, resource cleanup, off-by-one boundaries.
|
|
133
|
+
- For each candidate defect, record: **file:line**, the concrete failure scenario (inputs/state -> wrong output/crash), and severity.
|
|
134
|
+
- **Verify before reporting**: only list a bug you can trace to a real failure path; drop the plausible-but-unprovable ones. Match the bar you would apply to a third party's code.
|
|
135
|
+
|
|
136
|
+
Output (plan band B) - every confirmed defect becomes a P0/P1 item:
|
|
137
|
+
```
|
|
138
|
+
| # | Severity | File:line | Defect | Failure scenario |
|
|
139
|
+
|---|----------|-----------|--------|------------------|
|
|
140
|
+
| 1 | Blocking | src/x.ts:42 | unchecked nil deref | empty response -> crash |
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Improvement areas surfaced by 2a that are not outright bugs become band-C items.
|
|
144
|
+
|
|
145
|
+
## Step 3: SCORE
|
|
146
|
+
|
|
147
|
+
Each category is scored out of 10. Output:
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
+---------------------+-------+
|
|
151
|
+
| Category | Score |
|
|
152
|
+
+---------------------+-------+
|
|
153
|
+
| Architecture | 9/10 |
|
|
154
|
+
| Code Quality | 8/10 |
|
|
155
|
+
| Security | 9/10 |
|
|
156
|
+
| Tests | 7/10 |
|
|
157
|
+
| CI/CD | 8/10 |
|
|
158
|
+
| Docs | 7/10 |
|
|
159
|
+
| Performance | 9/10 |
|
|
160
|
+
| Accessibility | 6/10 |
|
|
161
|
+
| Dependency Mgmt | 8/10 |
|
|
162
|
+
| DevEx | 9/10 |
|
|
163
|
+
+---------------------+-------+
|
|
164
|
+
| TOTAL | 80/100|
|
|
165
|
+
+---------------------+-------+
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Step 4: PLAN - one merged, prioritized table
|
|
169
|
+
|
|
170
|
+
Merge all four bands into a single plan. Tag each row with its band (A best-practice / B bug / C improvement / D drift) so the source is visible.
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
| # | Priority | Band | Category | Item | Impact |
|
|
174
|
+
|---|----------|------|----------|------|--------|
|
|
175
|
+
| 1 | P0 | B | Security | Remove hardcoded API key (src/x:12) | Critical |
|
|
176
|
+
| 2 | P0 | B | Tests | Fix nil-deref on empty response (src/y:42) | High |
|
|
177
|
+
| 3 | P1 | A | CI/CD | Adopt matrix build (adapt: .github/workflows/ci.yml) | Medium |
|
|
178
|
+
| 4 | P1 | D | Skills | Port upstream <plugin> 0.3.0 fixes into <localPath> | Medium |
|
|
179
|
+
| 5 | P2 | C | DevEx | Rename npm scripts for consistency | Low |
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Priority levels:
|
|
183
|
+
- **P0**: bugs, security holes, broken functionality - must fix
|
|
184
|
+
- **P1**: clear quality improvement or high-value adopted best-practice / drift port - should be done
|
|
185
|
+
- **P2**: nice-to-have - if time allows
|
|
186
|
+
|
|
187
|
+
## Step 5: ASK - user approval
|
|
188
|
+
|
|
189
|
+
After showing the plan, ask:
|
|
190
|
+
|
|
191
|
+
> "Found X items (P0: N, P1: M, P2: K) across bugs, best-practices, improvements, and upstream drift. Should I start the work?"
|
|
192
|
+
|
|
193
|
+
Options:
|
|
194
|
+
- "Yes, do all"
|
|
195
|
+
- "Only P0"
|
|
196
|
+
- "P0 + P1 only"
|
|
197
|
+
- "Only bugs (band B)"
|
|
198
|
+
- (the user may pick specific items)
|
|
199
|
+
|
|
200
|
+
**Never start the work without approval.**
|
|
201
|
+
|
|
202
|
+
## Step 6: IMPLEMENT
|
|
203
|
+
|
|
204
|
+
Apply the approved items one by one:
|
|
205
|
+
|
|
206
|
+
1. For each item:
|
|
207
|
+
- apply the change (for band D, port the upstream diff into `localPath`, then bump that entry's `derivedFromVersion` in preferences)
|
|
208
|
+
- run the relevant tests
|
|
209
|
+
- on success, move to the next
|
|
210
|
+
- on failure, roll back and notify the user
|
|
211
|
+
2. After all changes are done:
|
|
212
|
+
- run the full lint + test suite
|
|
213
|
+
- on success, commit
|
|
214
|
+
|
|
215
|
+
Commit format: `refactor(scope): {short description}`
|
|
216
|
+
|
|
217
|
+
## Step 7: VERIFY
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
# Lint
|
|
221
|
+
npm run lint 2>/dev/null || swift build 2>/dev/null
|
|
222
|
+
|
|
223
|
+
# Test
|
|
224
|
+
npm test 2>/dev/null || swift test 2>/dev/null || xcodebuild test 2>/dev/null
|
|
225
|
+
|
|
226
|
+
# Result
|
|
227
|
+
echo "Lint: PASS/FAIL"
|
|
228
|
+
echo "Test: PASS/FAIL (X/Y passed)"
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Step 8: ASK SYNC
|
|
232
|
+
|
|
233
|
+
After every approved item is applied, ask:
|
|
234
|
+
|
|
235
|
+
> "Work is complete. Should I run /multi-agent:sync?"
|
|
236
|
+
|
|
237
|
+
Options:
|
|
238
|
+
- "Yes" -> run the `/multi-agent:sync` command (full ecosystem sync)
|
|
239
|
+
- "No" -> emit a report and stop
|
|
240
|
+
- "Commit + push only" -> push the current repo without sync
|
|
241
|
+
|
|
242
|
+
## Focus filter
|
|
243
|
+
|
|
244
|
+
If $ARGUMENTS is set, focus on that band/category only:
|
|
245
|
+
|
|
246
|
+
| Input | Focus |
|
|
247
|
+
|-------|-------|
|
|
248
|
+
| `bugs` | Bug hunt only (band B) |
|
|
249
|
+
| `best-practices` | Field research + adapted plan only (band A) |
|
|
250
|
+
| `drift` | Upstream derived-skill drift only (band D) |
|
|
251
|
+
| `security` | Security analysis only |
|
|
252
|
+
| `tests` | Test coverage and quality only |
|
|
253
|
+
| `performance` | Performance optimisation only |
|
|
254
|
+
| `docs` | Docs only |
|
|
255
|
+
| `ci` | CI/CD pipeline only |
|
|
256
|
+
| `deps` | Dependency updates only |
|
|
257
|
+
| (empty) | Everything (default) |
|
|
@@ -31,7 +31,7 @@ Resume a paused or failed task from the last successful phase.
|
|
|
31
31
|
- Phase 3 code → already in the worktree
|
|
32
32
|
- Recent `git log --oneline -10` in the worktree grounds what was actually committed vs. claimed.
|
|
33
33
|
|
|
34
|
-
4. **Rebuild the phase tiles** - load `tracker-state.json` for the task (never re-init it;
|
|
34
|
+
4. **Rebuild the phase tiles** - load `tracker-state.json` for the task (never re-init it; `$HOME/.claude/multi-agent-refs/tracker-contract.md` "Resume behaviour" + "Continuation runs"):
|
|
35
35
|
- Claude Code: `TaskCreate` every phase from the state file in phase order, then `TaskUpdate` each to its stored status, and replace every `tasklist_id` meta with the new IDs.
|
|
36
36
|
- Other CLIs: a single `bash $HOME/.claude/scripts/phase-tracker.sh render`.
|
|
37
37
|
|
|
@@ -18,7 +18,7 @@ Skip Phase 0-3 and review a diff only. Five input shapes, two providers:
|
|
|
18
18
|
| `https://github.com/.../pull/1250` | GitHub PR URL | Yes |
|
|
19
19
|
| `https://bitbucket.<host>/projects/<KEY>/repos/<slug>/pull-requests/<N>/...` | Bitbucket Server PR URL | Yes |
|
|
20
20
|
|
|
21
|
-
Branch-mode runs print to chat only. PR-mode runs print to chat AND post the verdict to the PR per
|
|
21
|
+
Branch-mode runs print to chat only. PR-mode runs print to chat AND post the verdict to the PR per `$HOME/.claude/multi-agent-refs/channels/pr-review-actions.md`: per-finding inline comments + an explicit approve / needs-work state. **No monolithic advisory comment** is ever posted.
|
|
22
22
|
|
|
23
23
|
## Steps
|
|
24
24
|
|
|
@@ -152,7 +152,7 @@ Scope note: a guide governs only files under its own directory - a guide found
|
|
|
152
152
|
- Agent 2: `gpt-5.4` → edge cases, alternate perspective
|
|
153
153
|
- Agent 3: `claude-sonnet-4-6` → general quality
|
|
154
154
|
|
|
155
|
-
Each reviewer receives the diff, the module review guides from Step 2b (when any were found), plus the standard reviewer system prompt (see
|
|
155
|
+
Each reviewer receives the diff, the module review guides from Step 2b (when any were found), plus the standard reviewer system prompt (see `$HOME/.claude/multi-agent-refs/phases/phase-4-review.md` for the prompt contract). Output: structured `findings[]` per reviewer.
|
|
156
156
|
|
|
157
157
|
### 4. Store-compliance cross-reference
|
|
158
158
|
|
|
@@ -194,7 +194,7 @@ This summary ALWAYS prints, regardless of input mode. The chat is the live conve
|
|
|
194
194
|
|
|
195
195
|
### 7. Post to PR - only when input.kind === "pr"
|
|
196
196
|
|
|
197
|
-
The contract (full spec:
|
|
197
|
+
The contract (full spec: `$HOME/.claude/multi-agent-refs/channels/pr-review-actions.md`):
|
|
198
198
|
|
|
199
199
|
- **Decision** - purely from `accepted` finding counts:
|
|
200
200
|
- 0 accepted blocking AND 0 accepted important → **APPROVE**
|
|
@@ -203,7 +203,7 @@ The contract (full spec: `refs/channels/pr-review-actions.md`):
|
|
|
203
203
|
|
|
204
204
|
- **No monolith advisory comment.** "Render one big body and post via `gh pr comment`" is forbidden. Findings that need to surface on the PR become inline comments anchored to `file:line`.
|
|
205
205
|
|
|
206
|
-
- **Body language follows `outputLanguage`.** Per
|
|
206
|
+
- **Body language follows `outputLanguage`.** Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix, external payloads (PR comment bodies are external) render in `prefs.global.outputLanguage`. The renderer in `lib/post-pr-review.sh` honors this.
|
|
207
207
|
|
|
208
208
|
Optional opt-out prompt (interactive mode only; autopilot skips and posts):
|
|
209
209
|
|
|
@@ -240,7 +240,7 @@ If the post fails (network, token, harness block), `post-pr-review.sh` exits non
|
|
|
240
240
|
|
|
241
241
|
### 8. Token telemetry
|
|
242
242
|
|
|
243
|
-
Per the
|
|
243
|
+
Per the `$HOME/.claude/multi-agent-refs/tracker-contract.md` tokens contract, after each reviewer LLM call:
|
|
244
244
|
|
|
245
245
|
```bash
|
|
246
246
|
bash $HOME/.claude/scripts/phase-tracker.sh tokens 4 <input_count> <output_count>
|
|
@@ -241,7 +241,7 @@ Missing token (first-time / unmapped):
|
|
|
241
241
|
Select:
|
|
242
242
|
```
|
|
243
243
|
|
|
244
|
-
Expired / rejected token (401 / 403 mid-run) - the Expired-token decision from
|
|
244
|
+
Expired / rejected token (401 / 403 mid-run) - the Expired-token decision from `$HOME/.claude/multi-agent-refs/keychain.md` Rule 1:
|
|
245
245
|
```
|
|
246
246
|
{Service} token expired (the service returned 401/403).
|
|
247
247
|
Where to get a fresh one: {source URL/instructions}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "One-shot sync of the entire multi-agent ecosystem: Claude Code, Copilot CLI, pipeline repo,
|
|
2
|
+
description: "One-shot sync of the entire multi-agent ecosystem: Claude Code, Copilot CLI, pipeline repo, and website."
|
|
3
3
|
argument-hint: "[release] [--platform=<macos|linux|windows>]"
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, WebFetch
|
|
5
5
|
---
|
|
@@ -8,13 +8,13 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, WebFetch
|
|
|
8
8
|
|
|
9
9
|
**One command. Full ecosystem sync. No arguments needed.**
|
|
10
10
|
|
|
11
|
-
When invoked, it synchronizes all
|
|
11
|
+
When invoked, it synchronizes all targets in order. It detects what changed, updates only the stale ones, and returns a result report. The host platform (macOS / Linux / Windows) is auto-detected; all dispatch commands stay platform-agnostic through `~/.claude/lib/credential-store.sh`.
|
|
12
12
|
|
|
13
13
|
**Input**: $ARGUMENTS (optional)
|
|
14
14
|
|
|
15
15
|
| Arg | Meaning |
|
|
16
16
|
|---|---|
|
|
17
|
-
| (none) | Full ecosystem sync: Claude Code, Copilot CLI, pipeline repo, website
|
|
17
|
+
| (none) | Full ecosystem sync: Claude Code, Copilot CLI, pipeline repo, website. |
|
|
18
18
|
| `release` | Full sync + version bump + tag + npm publish + website deploy |
|
|
19
19
|
| `--platform=<macos\|linux\|windows>` | Override automatic platform detection. For CI / cross-platform smoke. |
|
|
20
20
|
| `"change description"` | Apply the description to every target at once |
|
|
@@ -23,12 +23,10 @@ When invoked, it synchronizes all 7 targets in order. It detects what changed, u
|
|
|
23
23
|
|
|
24
24
|
| # | Target | Path | Direction |
|
|
25
25
|
|---|-------|-----|-----|
|
|
26
|
-
| 0 | Figma source (deprecated) | `prefs.global.figmaSource.path` | skip (see memory `feedback_figma_source_deprecated`) |
|
|
27
26
|
| 1 | Claude Code (source of truth) | `~/.claude/commands/multi-agent.md` + `~/.claude/commands/multi-agent/` + `~/.claude/agents/` + `~/.claude/scripts/` + `~/.claude/lib/` | source |
|
|
28
27
|
| 2 | Copilot CLI | `~/.copilot/copilot-instructions.md` + `~/.copilot/skills/` | <- from Claude |
|
|
29
28
|
| 3 | multi-agent-pipeline repo | `~/multi-agent-pipeline/pipeline/` | <- from Claude (genericized) |
|
|
30
29
|
| 4 | Website | `{owner}/{website-host}` | <- version + features |
|
|
31
|
-
| 5 | Remote Control | `{owner}/remote-control` | <- pipeline references |
|
|
32
30
|
|
|
33
31
|
## Platform Support (macOS / Linux / Windows)
|
|
34
32
|
|
|
@@ -55,7 +53,6 @@ The sync skill must run on all three platforms. Commands go through the platform
|
|
|
55
53
|
Run every step automatically:
|
|
56
54
|
|
|
57
55
|
```
|
|
58
|
-
Step 0: FIGMA_SYNC SKIP (deprecated - feedback_figma_source_deprecated)
|
|
59
56
|
Step 1: PLATFORM Detect macOS / Linux / Windows (Git Bash / WSL); export PLATFORM env
|
|
60
57
|
Step 1.5: DETECT Compare timestamps, find stale targets
|
|
61
58
|
Step 2: COPILOT Claude Code -> Copilot CLI (instructions + 36 sub-command skills)
|
|
@@ -63,38 +60,10 @@ Step 3: REPO Claude Code -> pipeline repo (genericized, personal data scr
|
|
|
63
60
|
Step 3c: PLUGINS pipeline shared/external -> multi-agent-plugins marketplace (rebuild knowledge/,
|
|
64
61
|
bump changed plugins' patch version, commit + push the plugins repo)
|
|
65
62
|
Step 4: WEBSITE Version + phase/model counts -> {website-host} (i18n + projects.ts)
|
|
66
|
-
Step 5:
|
|
67
|
-
Step 6:
|
|
68
|
-
Step 7: Report Summary: synced targets, platform, changed files, deploy status
|
|
63
|
+
Step 5: Commit Commit + push all changed repos
|
|
64
|
+
Step 6: Report Summary: synced targets, platform, changed files, deploy status
|
|
69
65
|
```
|
|
70
66
|
|
|
71
|
-
### Step 0 - Figma source sync (opt-in)
|
|
72
|
-
|
|
73
|
-
If `prefs.global.figmaSource.path` is set, run a plan-driven figma sync BEFORE any other step:
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
# 1. Once plan:
|
|
77
|
-
bash "$REPO_ROOT/pipeline/scripts/sync-figma-source.sh" --plan
|
|
78
|
-
|
|
79
|
-
# 2. Review the plan (.last-figma-sync-plan.json), confirm overlay skips,
|
|
80
|
-
# and approve the figma-ios vs figma-common routing for new upstream skills.
|
|
81
|
-
|
|
82
|
-
# 3. If approved, apply:
|
|
83
|
-
bash "$REPO_ROOT/pipeline/scripts/sync-figma-source.sh"
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
- **Plan-driven flow**: `--plan` once rebuilds the "what would change" view -
|
|
87
|
-
upstream skill → local name (post-rename) → target tree (figma-ios vs
|
|
88
|
-
figma-common) → overlay-skip status. Writes `.last-figma-sync-plan.json`.
|
|
89
|
-
Apply mode (no flag) executes the plan.
|
|
90
|
-
- Script is idempotent - incremental, uses the `lastCommit` watermark.
|
|
91
|
-
- Updates the figma-ios / figma-common skills (transform + placeholder).
|
|
92
|
-
- Files marked `local-overlay: true` are preserved (they appear as `overlaySkip: true` in the plan).
|
|
93
|
-
- figma-android/ trees are NOT touched (no upstream source today).
|
|
94
|
-
- Appends a `### Sync YYYY-MM-DD (@ sha)` block to CHANGELOG.md.
|
|
95
|
-
- The output of this step is committed in Step 3 (REPO).
|
|
96
|
-
- If `figmaSource.path` is unset, the step is silently skipped.
|
|
97
|
-
|
|
98
67
|
If nothing is stale → report "All targets up to date" and stop.
|
|
99
68
|
|
|
100
69
|
## Special inputs
|
|
@@ -142,6 +111,7 @@ If nothing is stale → report "All targets up to date" and stop.
|
|
|
142
111
|
```
|
|
143
112
|
~/.claude/commands/multi-agent.md -> pipeline/commands/multi-agent.md
|
|
144
113
|
~/.claude/commands/multi-agent/ -> pipeline/commands/multi-agent/
|
|
114
|
+
~/.claude/multi-agent-refs/ -> pipeline/multi-agent-refs/ (refs + pickers, non-command)
|
|
145
115
|
~/.claude/commands/sim-test.md -> pipeline/commands/sim-test.md
|
|
146
116
|
~/.claude/agents/*.md -> pipeline/agents/
|
|
147
117
|
```
|
|
@@ -150,6 +120,16 @@ If nothing is stale → report "All targets up to date" and stop.
|
|
|
150
120
|
- `~/.claude/CLAUDE.md`, `~/.claude/rules/`, `~/.claude/knowledge/`
|
|
151
121
|
- `~/.claude/scripts/` - EXCEPT `pre-commit-check.sh`, `agent-guard.sh`, `agent-guard.py`, and `build-stack-plugins.mjs` (generic, synced)
|
|
152
122
|
- `~/.claude/settings.json`
|
|
123
|
+
- **Any `~/.claude/commands/multi-agent/*.md` whose frontmatter has `local-only: true`** — these are user/repo-specific alias wrappers that delegate to a private marketplace plugin (e.g. corporate `ai-ios-engineering-toolkit` skills exposed as `multi-agent:<name>`). Syncing them would leak the private plugin/skill names into the public pipeline. Filter before copy: skip every source file containing `local-only: true`, and after copy assert none reached `pipeline/commands/`.
|
|
124
|
+
```bash
|
|
125
|
+
# backstop: no local-only wrapper may exist in the synced target
|
|
126
|
+
grep -rl "^local-only: true" ~/multi-agent-pipeline/pipeline/commands/ 2>/dev/null \
|
|
127
|
+
&& { echo "ABORT: local-only wrapper leaked into pipeline/commands"; exit 1; } || true
|
|
128
|
+
# backstop: no corporate marketplace/skill reference in the synced tree
|
|
129
|
+
grep -rniE "ai-ios-engineering-toolkit:(create-ui-component|evolve-ui-component|component-wiki|figma-setup|resource-utility)" \
|
|
130
|
+
~/multi-agent-pipeline/pipeline/commands/ 2>/dev/null \
|
|
131
|
+
&& { echo "ABORT: corporate reference leaked into pipeline/commands"; exit 1; } || true
|
|
132
|
+
```
|
|
153
133
|
|
|
154
134
|
6. **Cross-platform smoke gate** (final step of the REPO sync, before push):
|
|
155
135
|
```bash
|
|
@@ -233,23 +213,6 @@ git push origin main # Vercel auto-deploy
|
|
|
233
213
|
|
|
234
214
|
---
|
|
235
215
|
|
|
236
|
-
## Remote Control Sync (Step 5)
|
|
237
|
-
|
|
238
|
-
```bash
|
|
239
|
-
REMOTE_DIR="$HOME/remote-control"
|
|
240
|
-
[ ! -d "$REMOTE_DIR" ] && gh repo clone {owner}/remote-control "$REMOTE_DIR"
|
|
241
|
-
cd "$REMOTE_DIR" && git pull origin main
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
| File | What to sync |
|
|
245
|
-
|-------|--------------|
|
|
246
|
-
| `README.md` | Pipeline feature description |
|
|
247
|
-
| `src/index.ts` | Help text / chip labels (if any) |
|
|
248
|
-
|
|
249
|
-
Update only if the pipeline's public-facing features changed.
|
|
250
|
-
|
|
251
|
-
---
|
|
252
|
-
|
|
253
216
|
## Release Flow
|
|
254
217
|
|
|
255
218
|
When invoked with the `release` argument:
|
|
@@ -262,9 +225,8 @@ When invoked with the `release` argument:
|
|
|
262
225
|
5. Commit + TAG git commit + git tag v{VERSION}
|
|
263
226
|
6. PUSH git push --tags -> release.yml auto-publish
|
|
264
227
|
7. WEBSITE Version + features -> {website-host}
|
|
265
|
-
8.
|
|
266
|
-
9.
|
|
267
|
-
10. Report Summary: version, touched repos, deploy status
|
|
228
|
+
8. COPILOT Copilot CLI instructions + skills sync
|
|
229
|
+
9. Report Summary: version, touched repos, deploy status
|
|
268
230
|
```
|
|
269
231
|
|
|
270
232
|
---
|
|
@@ -275,7 +237,7 @@ This runs on the Claude <-> Copilot axis — the two CLIs the pipeline supports
|
|
|
275
237
|
|
|
276
238
|
| Claude Code | Copilot CLI |
|
|
277
239
|
|-------------|-------------|
|
|
278
|
-
| `~/.claude/commands/multi-agent/{cmd}.md` | `~/.copilot/skills/multi-agent-{cmd}/SKILL.md` |
|
|
240
|
+
| `~/.claude/commands/multi-agent/{cmd}/SKILL.md` | `~/.copilot/skills/multi-agent-{cmd}/SKILL.md` |
|
|
279
241
|
|
|
280
242
|
**36 commands are synced** (canonical inventory - must match `cross-cli-contract.md` section 1; drift = contract violation):
|
|
281
243
|
|
|
@@ -287,7 +249,7 @@ local-autopilot, log, manual-test, prune-logs, purge, refactor, resume, review,
|
|
|
287
249
|
scan, search, setup, stack, status, sync, test, update
|
|
288
250
|
```
|
|
289
251
|
|
|
290
|
-
**NOT synced**:
|
|
252
|
+
**NOT synced**: `$HOME/.claude/multi-agent-refs/*` - lazy-load references, Claude Code specific
|
|
291
253
|
|
|
292
254
|
**Claude -> Copilot**: add SKILL.md frontmatter (`name`, `description`, `user-invocable: true`, `argument-hint`)
|
|
293
255
|
**Copilot -> Claude**: simplify the frontmatter (`description` + `allowed-tools`), add `$ARGUMENTS`
|
|
@@ -14,7 +14,7 @@ First step of every `multi-agent` flow **that touches a remote provider**.
|
|
|
14
14
|
> repos, account-picker is bypassed and the state file's `accountId` is left
|
|
15
15
|
> `null` with `tokens={}`. Phases 6/7 read these as "local-only" signals.
|
|
16
16
|
|
|
17
|
-
> **Language**: Per
|
|
17
|
+
> **Language**: Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix - `AskUserQuestion.label` and `header` stay English (UI button + chip contract); `question` and `description` follow `outputLanguage`. Commit/PR/Jira payloads: subject + branch names + code identifiers stay English; body text follows `outputLanguage`.
|
|
18
18
|
|
|
19
19
|
## Steps
|
|
20
20
|
|
|
@@ -28,7 +28,7 @@ First step of every `multi-agent` flow **that touches a remote provider**.
|
|
|
28
28
|
- Bitbucket-based flow → `--providers bitbucket`
|
|
29
29
|
|
|
30
30
|
3. **Picker UI** - show via AskUserQuestion (single-select):
|
|
31
|
-
- Breadcrumb (per
|
|
31
|
+
- Breadcrumb (per `$HOME/.claude/multi-agent-refs/picker-contract.md` Step narration): before the question, print the narrator line `<localized: "Step 1/N: account selection">` (`N` = total Phase 0 steps for the active flow).
|
|
32
32
|
- `header`: "Account" (English chip)
|
|
33
33
|
- `question`: `<localized: "Which account should this run use?">`
|
|
34
34
|
- one option per account: `label` = account label (English), `description` = providers in `outputLanguage`
|
|
@@ -6,7 +6,7 @@ description: "Internal - dev context (extra repos) picker for multi-agent."
|
|
|
6
6
|
|
|
7
7
|
Selects extra repos the pipeline may touch beyond the primary repo(s) - typically submodules (e.g. SDKs vendored inside an app repo) or sibling libraries. Each candidate is enriched with a `canPush` flag so the picker can pre-select repos that the active account is allowed to edit, and surface read-only ones as advisory context the pipeline will not modify.
|
|
8
8
|
|
|
9
|
-
> **Language**: Per
|
|
9
|
+
> **Language**: Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix - `AskUserQuestion.label` and `header` stay English (UI button + chip contract); `question` and `description` follow `outputLanguage`. Commit/PR/Jira/Wiki payloads: subject + branch names + code identifiers stay English; body text follows `outputLanguage`.
|
|
10
10
|
|
|
11
11
|
## Steps
|
|
12
12
|
|
|
@@ -34,7 +34,7 @@ Selects extra repos the pipeline may touch beyond the primary repo(s) - typica
|
|
|
34
34
|
- `editable` - `canPush=true` → picker options, pre-selected
|
|
35
35
|
- `readonly` - `canPush=false` → printed as an advisory note; not selectable
|
|
36
36
|
|
|
37
|
-
3. **AskUserQuestion (multiSelect=true)**. Print the breadcrumb narrator line first (per
|
|
37
|
+
3. **AskUserQuestion (multiSelect=true)**. Print the breadcrumb narrator line first (per `$HOME/.claude/multi-agent-refs/picker-contract.md` Step narration): `<localized: "Step N/N: extra dev repos">`.
|
|
38
38
|
```
|
|
39
39
|
[N/N] Extra editable dev repos (multi):
|
|
40
40
|
[x] <submodule-a> (suggestion: from .gitmodules)
|