@mmerterden/multi-agent-pipeline 11.2.0 → 11.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +68 -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 +39 -17
- package/install/copilot.mjs +22 -16
- 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/lib/credential-store.sh +8 -4
- 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/build-skills-index.mjs +3 -6
- package/pipeline/scripts/eval-mine-corpus.mjs +187 -0
- package/pipeline/scripts/fixtures/install-layout.tsv +6 -5
- package/pipeline/scripts/gen-mode-dispatch.mjs +3 -3
- package/pipeline/scripts/lint-skills.mjs +26 -1
- 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 +17 -6
- package/pipeline/skills/.skill-manifest.json +40 -160
- package/pipeline/skills/.skills-index.json +3 -373
- 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 +3 -44
- 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 dev-local - Fast + Local
|
|
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
|
Dedicated form of the `--dev` + `--local` combination. A 4-phase fast pipeline (no worktree).
|
|
11
11
|
|
|
@@ -29,7 +29,7 @@ Phase 7: Report → Jira / Wiki + log + knowledge/memory
|
|
|
29
29
|
- A change you trust - no need for multi-model review
|
|
30
30
|
## Required: Phase Tracker Contract
|
|
31
31
|
|
|
32
|
-
**The phase tracker is mandatory** - the agent cannot skip it. Full spec: [
|
|
32
|
+
**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).
|
|
33
33
|
|
|
34
34
|
> **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.
|
|
35
35
|
|
|
@@ -57,7 +57,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out>
|
|
|
57
57
|
|
|
58
58
|
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.
|
|
59
59
|
|
|
60
|
-
**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
|
|
60
|
+
**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)".
|
|
61
61
|
|
|
62
62
|
```text
|
|
63
63
|
# Phase 0 startup - register one tile per phase (0..N), capture the taskId, persist it:
|
|
@@ -82,7 +82,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh update <N> completed
|
|
|
82
82
|
|
|
83
83
|
#### TaskCreate ordering (strict)
|
|
84
84
|
|
|
85
|
-
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--dev local` that means: Phase 0 → Phase 3 → 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
|
|
85
|
+
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--dev local` that means: Phase 0 → Phase 3 → 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)".
|
|
86
86
|
|
|
87
87
|
### Visual channel - Copilot CLI / plain shell
|
|
88
88
|
|
|
@@ -95,7 +95,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh render
|
|
|
95
95
|
Do NOT call TaskCreate on these CLIs - the tool does not exist and the call fails.
|
|
96
96
|
## Delegation
|
|
97
97
|
|
|
98
|
-
Routes to the orchestrator with `--dev --local` flags. Apply the `$HOME/.claude/commands/multi-agent/dev.md` pipeline in local mode:
|
|
98
|
+
Routes to the orchestrator with `--dev --local` flags. Apply the `$HOME/.claude/commands/multi-agent/dev/SKILL.md` pipeline in local mode:
|
|
99
99
|
- Phase 0: skip worktree creation, continue on the current branch
|
|
100
100
|
- Phase 1 (Analysis), Phase 2 (Planning + Approval Gate), Phase 4 (Review), and Phase 5 (User Test) are skipped (`--dev` + local/autopilot drop the interactive test gate)
|
|
101
101
|
- Phase 3: develop on Opus (instead of the Sonnet TDD cycle)
|
package/pipeline/commands/multi-agent/{dev-local-autopilot.md → dev-local-autopilot/SKILL.md}
RENAMED
|
@@ -5,7 +5,7 @@ allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdat
|
|
|
5
5
|
|
|
6
6
|
# multi-agent dev-local-autopilot - Fastest + Local
|
|
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 triple `--dev` + `--local` + `autopilot` - the fastest form available. Zero confirmations, NO worktree.
|
|
11
11
|
|
|
@@ -42,7 +42,7 @@ Routes to the orchestrator with `--dev --local autopilot` flags. The pipeline co
|
|
|
42
42
|
```
|
|
43
43
|
## Required: Phase Tracker Contract
|
|
44
44
|
|
|
45
|
-
**The phase tracker is mandatory** - the agent cannot skip it. Full spec: [
|
|
45
|
+
**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).
|
|
46
46
|
|
|
47
47
|
> **Autopilot mode:** user confirmations are skipped. The tracker is still mandatory - autopilot agent calls cannot skip it; skipping breaks `smoke-tracker-contract.sh`.
|
|
48
48
|
|
|
@@ -72,7 +72,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out>
|
|
|
72
72
|
|
|
73
73
|
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.
|
|
74
74
|
|
|
75
|
-
**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
|
|
75
|
+
**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)".
|
|
76
76
|
|
|
77
77
|
```text
|
|
78
78
|
# Phase 0 startup - register one tile per phase (0..N), capture the taskId, persist it:
|
|
@@ -97,7 +97,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh update <N> completed
|
|
|
97
97
|
|
|
98
98
|
#### TaskCreate ordering (strict)
|
|
99
99
|
|
|
100
|
-
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--dev local autopilot` that means: Phase 0 → Phase 3 → 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
|
|
100
|
+
**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For `--dev local autopilot` that means: Phase 0 → Phase 3 → 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)".
|
|
101
101
|
|
|
102
102
|
### Visual channel - Copilot CLI / plain shell
|
|
103
103
|
|
|
@@ -5,7 +5,7 @@ allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdat
|
|
|
5
5
|
|
|
6
6
|
# multi-agent finish - Ship Local Work Through the Pipeline Tail
|
|
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
|
You already did the work locally - wrote code on the current branch and maybe tested it by hand (or ran `/multi-agent:local` / `/multi-agent:dev-local`, which skip Review + Test). `/multi-agent:finish` picks up from there and runs the **pipeline tail** over that existing local work in one command: parallel review, a build + test success gate, commit/push + PR, then the technical analysis and a **Jira comment with test scenarios**. It does NOT re-develop - Analysis / Planning / Dev (phases 1-3) are intentionally skipped; the diff already on the branch IS the input.
|
|
11
11
|
|
|
@@ -51,12 +51,12 @@ Phases 1-3 (Analysis / Planning / Dev) are skipped by design - `finish` treats
|
|
|
51
51
|
|
|
52
52
|
## Phase execution (reuse the existing phase contracts)
|
|
53
53
|
|
|
54
|
-
- **Phase 4 Review** — run per
|
|
54
|
+
- **Phase 4 Review** — run per `$HOME/.claude/multi-agent-refs/phases/phase-4-review.md` against the resolved diff: deterministic gates (Step 1.x), stack-specific parallel reviewers (Fable + Sonnet on Claude Code; GPT + Opus + Sonnet on Copilot CLI), Fable triage → `triage.accepted`. Blocking/important accepted findings:
|
|
55
55
|
- interactive: present them and ask (`AskUserQuestion`) whether to fix now (loop back through a minimal Phase-3-style TDD fix) or proceed;
|
|
56
56
|
- `autopilot` (or `prefs.global.finish.autoFix == true`): auto-fix accepted blocking/important findings, then re-review the fix, before advancing.
|
|
57
57
|
- **Phase 5 Build+Test** — the **automated success gate** (this is what "build+test success" means here; the interactive device user-test is `/multi-agent:manual-test`). Stack-aware: build via `figma-config.build` (iOS scheme / Android gradle / detected backend/frontend build) and run the existing test suite if present (`swift test` / `xcodebuild test` / `./gradlew test` / `pytest` / `npm test` / `vitest`). Require success to advance; on failure, surface logs and (interactive) stop or (autopilot) attempt a bounded fix loop. **If the repo has no tests, report "no tests present" — never fabricate test results.**
|
|
58
|
-
- **Phase 6 Commit/PR** — per
|
|
59
|
-
- **Phase 7 Report** — per
|
|
58
|
+
- **Phase 6 Commit/PR** — per `$HOME/.claude/multi-agent-refs/phases/phase-6-commit.md`: stage + commit any remaining local changes with a conventional message (`{type}(scope): desc [{JIRA_KEY}-{id}]`), push, and open a PR **only if one does not already exist** for the branch. PR body per `$HOME/.claude/multi-agent-refs/pipeline-output-formatting` and `rules/git-conventions` — `Ref: #N` / `Related: #N`, never `Closes/Fixes/Resolves`; NO AI/bot attribution anywhere.
|
|
59
|
+
- **Phase 7 Report** — per `$HOME/.claude/multi-agent-refs/phases/phase-7-report.md` + `channels.md`: produce the **technical analysis** and **test scenarios**, then post to the configured channels. Default content for `finish`: a Jira **comment** carrying the technical analysis + the test scenarios (and, when the PR was opened, the PR description). Every body runs through the humanizer; bot/tool/AI signatures are FORBIDDEN in comments.
|
|
60
60
|
|
|
61
61
|
## Modes
|
|
62
62
|
|
|
@@ -65,7 +65,7 @@ Phases 1-3 (Analysis / Planning / Dev) are skipped by design - `finish` treats
|
|
|
65
65
|
|
|
66
66
|
## Required: Phase Tracker Contract
|
|
67
67
|
|
|
68
|
-
**The phase tracker is required.** Full spec: [
|
|
68
|
+
**The phase tracker is required.** Full spec: [`$HOME/.claude/multi-agent-refs/tracker-contract.md`]($HOME/.claude/multi-agent-refs/tracker-contract.md). `finish` registers its active phase set - `0:Init 4:Review 5:Build+Test 6:Commit 7:Report` - but NEVER resets a tracker that an earlier run already built (load-or-continue; contract section "Continuation runs"):
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
71
|
# Phase 0, first shell call (every CLI). init ONLY when no prior state exists -
|
|
@@ -90,7 +90,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out> [cached]
|
|
|
90
90
|
|
|
91
91
|
### Visual channel - Claude Code (native TaskList widget, required)
|
|
92
92
|
|
|
93
|
-
Fresh state: register one tile per phase in strict phase-number order (`0 → 4 → 5 → 6 → 7`) BEFORE any TaskUpdate, capture each `taskId`, persist via `phase-tracker.sh meta <N> tasklist_id "<taskId>"`, then flip status with `TaskUpdate` at each boundary. Out-of-order TaskCreate scrambles the tile stack. Full contract:
|
|
93
|
+
Fresh state: register one tile per phase in strict phase-number order (`0 → 4 → 5 → 6 → 7`) BEFORE any TaskUpdate, capture each `taskId`, persist via `phase-tracker.sh meta <N> tasklist_id "<taskId>"`, then flip status with `TaskUpdate` at each boundary. Out-of-order TaskCreate scrambles the tile stack. Full contract: `$HOME/.claude/multi-agent-refs/tracker-contract.md` "TaskCreate ordering (strict)".
|
|
94
94
|
|
|
95
95
|
Continuation: rebuild the FULL TaskList from the state file (completed 0-3 tiles included) in phase order before any `TaskUpdate`, refreshing every `tasklist_id` meta - same as the contract's "Resume behaviour".
|
|
96
96
|
|
|
@@ -13,7 +13,7 @@ Creates exactly one Jira issue, and only after explicit approval. The issue type
|
|
|
13
13
|
|
|
14
14
|
## Issue types
|
|
15
15
|
|
|
16
|
-
Type is chosen at step [3/11] via AskUserQuestion (never inferred silently). Each type has a standard template baseline; sections auto-size (see
|
|
16
|
+
Type is chosen at step [3/11] via AskUserQuestion (never inferred silently). Each type has a standard template baseline; sections auto-size (see `$HOME/.claude/multi-agent-refs/generate-issue.md` for the full A/C matrix and inclusion rules).
|
|
17
17
|
|
|
18
18
|
| Type | Always-present sections | Conditional sections (included only when their trigger is present) |
|
|
19
19
|
|---|---|---|
|
|
@@ -23,7 +23,7 @@ Type is chosen at step [3/11] via AskUserQuestion (never inferred silently). Eac
|
|
|
23
23
|
|
|
24
24
|
## Flow
|
|
25
25
|
|
|
26
|
-
Read `$HOME/.claude/
|
|
26
|
+
Read `$HOME/.claude/multi-agent-refs/generate-issue.md` and execute the 11-step shared flow. Non-negotiables restated:
|
|
27
27
|
|
|
28
28
|
- Ask the user (AskUserQuestion) for the issue type first, then about every genuinely unknown field - component, epic, priority, labels, assignee, sprint vs backlog, required custom fields.
|
|
29
29
|
- A conditional section renders only when its trigger is present (Figma URL, pasted screenshot/log, Swagger URL/contract, real Notes content). No empty placeholder headings; content the user did not supply and mining could not derive is never invented.
|
|
@@ -31,4 +31,4 @@ Read `$HOME/.claude/commands/multi-agent/refs/generate-issue.md` and execute the
|
|
|
31
31
|
|
|
32
32
|
## Error paths
|
|
33
33
|
|
|
34
|
-
See
|
|
34
|
+
See `$HOME/.claude/multi-agent-refs/generate-issue.md` Error paths. No command-specific additions.
|
|
@@ -115,14 +115,14 @@ Post-Hoc & Side-Channel:
|
|
|
115
115
|
/multi-agent:diff-explain Map a Phase 4 triage finding back to specific diff lines
|
|
116
116
|
/multi-agent:search Cross-task log search with smart ranking; --semantic queries triage corpus
|
|
117
117
|
/multi-agent:scan Skill security scan against tiered pattern catalog
|
|
118
|
-
/multi-agent:refactor
|
|
118
|
+
/multi-agent:refactor Adapted best-practices + bug hunt + upstream-drift check -> one plan, approval, dev + sync
|
|
119
119
|
|
|
120
120
|
Setup & Maintenance:
|
|
121
121
|
|
|
122
122
|
/multi-agent:setup First-run wizard - Keychain tokens + Git identity + language
|
|
123
123
|
/multi-agent:language [en|tr] Show or set outputLanguage (promptLanguage stays English)
|
|
124
124
|
/multi-agent:stack <id> Select stack by enabling the matching marketplace plugin(s) (ios / android / mobile / backend / frontend / fullstack / all)
|
|
125
|
-
/multi-agent:sync Sync ecosystem (Claude Code + Copilot CLI + pipeline + website
|
|
125
|
+
/multi-agent:sync Sync ecosystem (Claude Code + Copilot CLI + pipeline + website)
|
|
126
126
|
/multi-agent:update Pull latest pipeline + reinstall + run migrations
|
|
127
127
|
/multi-agent:delete Uninstall pipeline from every CLI (Keychain tokens left intact, double confirm)
|
|
128
128
|
|
|
@@ -327,14 +327,14 @@ Post-Hoc & Side-Channel:
|
|
|
327
327
|
/multi-agent:diff-explain Phase 4 triage bulgusunu diff satırlarına eşle
|
|
328
328
|
/multi-agent:search Task log'larında akıllı arama; --semantic triage corpus'unu sorgular
|
|
329
329
|
/multi-agent:scan Skill güvenlik taraması (tiered pattern catalog)
|
|
330
|
-
/multi-agent:refactor
|
|
330
|
+
/multi-agent:refactor Uyarlanmış best-practice + bug avı + upstream-drift kontrolü -> tek plan, onay, dev + sync
|
|
331
331
|
|
|
332
332
|
Setup & Maintenance:
|
|
333
333
|
|
|
334
334
|
/multi-agent:setup İlk kurulum sihirbazı - Keychain token + Git kimliği + dil
|
|
335
335
|
/multi-agent:language [en|tr] outputLanguage'ı göster veya ayarla (promptLanguage İngilizce kalır)
|
|
336
336
|
/multi-agent:stack <id> Stack'i eşleşen marketplace plugin'i etkinleştirerek seç (ios / android / mobile / backend / frontend / fullstack / all)
|
|
337
|
-
/multi-agent:sync Ekosistemi senkronize et (Claude Code + Copilot CLI + pipeline + website
|
|
337
|
+
/multi-agent:sync Ekosistemi senkronize et (Claude Code + Copilot CLI + pipeline + website)
|
|
338
338
|
/multi-agent:update En son pipeline'ı çek + reinstall + migration çalıştır
|
|
339
339
|
/multi-agent:delete Pipeline'ı tüm CLI'lerden kaldır (Keychain token dokunulmaz, çift onay)
|
|
340
340
|
|
|
@@ -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}
|