@mmerterden/multi-agent-pipeline 11.1.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 +58 -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/_common.mjs +9 -1
- package/install/_dev-only-files.mjs +0 -6
- package/install/claude.mjs +45 -18
- 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/build-stack-plugins.mjs +1 -1
- 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 +21 -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/backlog/BACKLOG.md +32 -0
- package/pipeline/skills/shared/external/backlog/SKILL.md +49 -0
- package/pipeline/skills/shared/external/compose-components/SKILL.md +14 -14
- package/pipeline/skills/shared/external/skill-creator/SKILL.md +48 -0
- package/pipeline/skills/shared/external/skill-creator/audit.md +59 -0
- package/pipeline/skills/shared/external/skill-creator/checklist.md +32 -0
- package/pipeline/skills/shared/external/skill-creator/examples.md +65 -0
- package/pipeline/skills/shared/external/skill-creator/label-check.md +43 -0
- package/pipeline/skills/shared/external/skill-creator/scripts/audit-panel.js +83 -0
- package/pipeline/skills/shared/external/skill-creator/template.md +67 -0
- package/pipeline/skills/skills-index.md +4 -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
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Examples — descriptions & shape
|
|
2
|
+
|
|
3
|
+
## Descriptions: the discovery lever
|
|
4
|
+
|
|
5
|
+
**Bad (vague — rarely triggers):**
|
|
6
|
+
```yaml
|
|
7
|
+
description: Helps with navigation
|
|
8
|
+
```
|
|
9
|
+
Why it fails: no "when", no trigger words, no platform — the router can't tell what task this matches.
|
|
10
|
+
|
|
11
|
+
**Good (what + when + triggers + platform):**
|
|
12
|
+
```yaml
|
|
13
|
+
description: "In-app navigation for a SwiftUI iOS app — the coordinator-per-domain pattern, the tab shell, cross-domain navigation, deep links, and modals. Reach for this when adding a screen, a tab, a deep link, or a modal, or deciding how one screen reaches another."
|
|
14
|
+
```
|
|
15
|
+
Why it works: states the domain, lists concrete triggers ("adding a screen, a tab, a deep link"), names the platform, and implies the boundary.
|
|
16
|
+
|
|
17
|
+
**Workflow example (action + when to run):**
|
|
18
|
+
```yaml
|
|
19
|
+
description: "Branch, commit, push, and open a PR for this repo. Owns the git/PR spine and house guardrails — type-first branch names, no AI attribution, no force-push, correct base branch. Reach for this whenever a change is ready to ship."
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Recipe
|
|
23
|
+
`<what it covers/does> + <concrete when/trigger phrases> + <platform> + <implied boundary vs siblings>`
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Shape: reference vs workflow
|
|
28
|
+
|
|
29
|
+
**Wrong — a reference skill drifting into a procedure:**
|
|
30
|
+
```markdown
|
|
31
|
+
## Procedures
|
|
32
|
+
1. Open the file
|
|
33
|
+
2. Add the wrapper
|
|
34
|
+
3. Register the route
|
|
35
|
+
4. Build and run
|
|
36
|
+
```
|
|
37
|
+
A reference (knowledge) skill should describe *the rule and where the canonical example lives*, not script the keystrokes.
|
|
38
|
+
|
|
39
|
+
**Right — reference stays descriptive:**
|
|
40
|
+
```markdown
|
|
41
|
+
## Decision rules
|
|
42
|
+
- New screen in a domain → add `<Name>Screen` under its Presentation layer,
|
|
43
|
+
wrap content in the domain's container, route via the domain coordinator.
|
|
44
|
+
Canonical: `<repo>/Features/Profile/ProfileScreen.swift`.
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Right — workflow earns its numbered steps** (deterministic/irreversible spine):
|
|
48
|
+
```markdown
|
|
49
|
+
## Procedures
|
|
50
|
+
1. Pre-flight: `git status` clean? on base branch?
|
|
51
|
+
2. Branch: `git checkout -b <type>/<scope>/<desc>`
|
|
52
|
+
3. Commit: stage; conventional message; strip any AI co-author trailer.
|
|
53
|
+
4. Push; never force-push a protected branch.
|
|
54
|
+
5. PR: `gh pr create --base <base> …` (no AI footer).
|
|
55
|
+
## Verification
|
|
56
|
+
- `git log -1` shows clean message, no AI trailer, correct author.
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Leanness: cut what the model already knows
|
|
62
|
+
|
|
63
|
+
**Bloat:** "PDF files are documents that contain text and images. To read them you first need a library that can parse the binary format…"
|
|
64
|
+
|
|
65
|
+
**Lean:** "Extract text from PDFs with `pdfplumber`."
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Label intent check — does a title carry its own meaning?
|
|
2
|
+
|
|
3
|
+
A label (rule title, section header, principle/constraint name) is the handle a reader grasps *before* the body. If the handle leaks the wrong shape — ambiguous, one-sided, or off-topic — the reader forms the wrong model and the body has to fight it. This is a cheap test that catches that early: have **fresh subagents infer the rule from the label alone**, then compare against your intended meaning. Convergence = the label is self-carrying.
|
|
4
|
+
|
|
5
|
+
## When to run it
|
|
6
|
+
- Naming a **strict rule** or constraint inside a skill (the kind a reader must obey).
|
|
7
|
+
- A **section header** that gates non-trivial content (phase/principle/constraint names).
|
|
8
|
+
- Any label meant to convey the **whole intent** of its body (not a summary — the intent).
|
|
9
|
+
- Skip it for purely organizational labels ("Examples", "See also") — they carry no intent.
|
|
10
|
+
|
|
11
|
+
## Inputs (collect first)
|
|
12
|
+
1. **Candidate label** — the exact string under test.
|
|
13
|
+
2. **Surrounding context** — one paragraph: which skill/doc, what adjacent labels cover, the domain concepts in play.
|
|
14
|
+
3. **Intended meaning** — 1–3 sentences of ground truth (what the body says / what the reader should walk away believing). **Not** shown to the inference agents. If you can't state it in 3 sentences, the body is unclear — fix that first.
|
|
15
|
+
|
|
16
|
+
## Procedure
|
|
17
|
+
**One iteration = 5 parallel subagents**, each given ONLY the label + context (never the body), each forced to commit:
|
|
18
|
+
```
|
|
19
|
+
Context: <surrounding context — 1 paragraph>.
|
|
20
|
+
The label under test is: **"<candidate label>"**
|
|
21
|
+
You have NOT seen the body. From ONLY this label + context, what do you infer it
|
|
22
|
+
enforces / requires / means? 1–2 concrete sentences, under 80 words. Commit — no
|
|
23
|
+
hedging, no clarifying questions.
|
|
24
|
+
```
|
|
25
|
+
Launch all 5 in the **same** message (parallel) so they're independent by construction.
|
|
26
|
+
|
|
27
|
+
**Convergence (per iteration), comparing the 5 inferences to the intended meaning:**
|
|
28
|
+
- **PASS** — ≥4/5 cover *all* key intent beats (including the bidirectional / edge / scope beat, if the intent has one). Wording drift is fine.
|
|
29
|
+
- **PARTIAL** — they consistently catch one side of a bidirectional rule but miss the other, or over-extend into an adjacent concern. Revise the label, re-run.
|
|
30
|
+
- **FAIL** — inferences diverge wildly or miss the core beat. Revise, re-run.
|
|
31
|
+
|
|
32
|
+
**Idempotency (after a PASS):** run **2 more rounds**, 5 fresh agents each (3×5 = 15 inferences), same prompt. Require **all 3 rounds PASS** with no new systematic miss — confirms the PASS wasn't luck. A regression in round 2/3 → treat as PARTIAL and iterate.
|
|
33
|
+
|
|
34
|
+
**Termination:** converged (3/3 PASS) → apply the label. 3 iterations without a PASS → stop, hand back the best candidate + the persistent miss; don't force a label that won't stick.
|
|
35
|
+
|
|
36
|
+
## Defaults
|
|
37
|
+
5 agents/round · 3 rounds · 80-word inference cap · max 3 iterations before handing back. High-stakes labels (top-level skill names, protocol names) → 7 agents × 3 rounds; throwaway section headers → 3 × 2.
|
|
38
|
+
|
|
39
|
+
## Anti-patterns
|
|
40
|
+
- **Giving agents the body** — defeats the test (you're checking the label's *self-carrying* power).
|
|
41
|
+
- **Running sequentially** — they'd anchor on each other; must be parallel.
|
|
42
|
+
- **Tweaking one word on a FAIL** — step back and rethink the concept the label names, don't polish a wrong handle.
|
|
43
|
+
- **Accepting "mostly right"** — a label that reliably misses a beat misleads every reader the same way. Fix it, or accept the rule is one-sided and split the body.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// audit-panel.js — Workflow template for the multi-architect skill audit.
|
|
2
|
+
//
|
|
3
|
+
// Run with the Workflow tool. Edit the CONFIG block for your target, then launch.
|
|
4
|
+
// Returns { remaining, clearsBar, verdict }. If clearsBar is false, apply the
|
|
5
|
+
// `remaining` blockers/majors, then RE-RUN A FRESH copy (do NOT resume — agents
|
|
6
|
+
// must read the current files). Loop until clearsBar. See ../audit.md.
|
|
7
|
+
|
|
8
|
+
export const meta = {
|
|
9
|
+
name: 'skill-audit-panel',
|
|
10
|
+
description: 'Adversarial N-architect audit of a skill against the skill-creator rubric',
|
|
11
|
+
phases: [{ title: 'Audit' }, { title: 'Synthesis' }],
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// ── CONFIG — edit these ──────────────────────────────────────────────────────
|
|
15
|
+
const TARGET = `
|
|
16
|
+
- <abs path to SKILL.md>
|
|
17
|
+
- <abs path to each bundled file / script>
|
|
18
|
+
`
|
|
19
|
+
const RUBRIC = `<abs path to reference/skill-creator/SKILL.md> + checklist.md`
|
|
20
|
+
const EXEMPLAR = `<abs path to a known-good skill of the same layer>`
|
|
21
|
+
const GROUND_TRUTH = `<abs path to the real source the skill describes (e.g. the iOS repo), with key facts>`
|
|
22
|
+
// Pick a lens set from audit.md (general or prompt-engineering). [label, brief] pairs:
|
|
23
|
+
const LENSES = [
|
|
24
|
+
['discovery', 'description-as-discovery: what+when+trigger words+example; would it activate on a real task?'],
|
|
25
|
+
['disambiguation', 'distinct from sibling skills; a reader can tell when to pick this vs a neighbor.'],
|
|
26
|
+
['triggers', 'real user phrasings + synonyms are covered.'],
|
|
27
|
+
['clarity', 'instructions unambiguous, ordered, single-interpretation; no vague directives.'],
|
|
28
|
+
['layer', 'degrees of freedom match the layer (reference=descriptive / workflow=spine / tool=thin-index).'],
|
|
29
|
+
['leanness', 'SKILL.md is an index; detail bundled one level deep; no duplication or bloat.'],
|
|
30
|
+
['tokens', 'every line load-bearing; nothing restates what the model already knows.'],
|
|
31
|
+
['consistency', 'terminology, naming, paths, cross-refs, examples all agree.'],
|
|
32
|
+
['misfire', 'would the model over-apply, skip a gate, hallucinate a path, or follow it to a wrong output?'],
|
|
33
|
+
['redteam', 'adversarially make it not trigger / trigger wrongly / produce broken output; hunt overclaims (says X, script does not).'],
|
|
34
|
+
]
|
|
35
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
36
|
+
|
|
37
|
+
const COMMON = `
|
|
38
|
+
You are auditing a skill. Read the CURRENT files and report ONLY genuine, specific,
|
|
39
|
+
reproducible findings for YOUR lens. Verify against the rubric + ground truth — do
|
|
40
|
+
not assume. Read-only; do NOT edit. If your lens is clean, return an empty array.
|
|
41
|
+
|
|
42
|
+
TARGET (the skill under audit):${TARGET}
|
|
43
|
+
RUBRIC (the bar): ${RUBRIC}
|
|
44
|
+
EXEMPLAR (known-good of this layer): ${EXEMPLAR}
|
|
45
|
+
GROUND TRUTH (what the skill describes): ${GROUND_TRUTH}
|
|
46
|
+
|
|
47
|
+
Each finding: severity (blocker|major|minor|nit), file:location, the problem, the concrete fix.
|
|
48
|
+
`
|
|
49
|
+
|
|
50
|
+
const FINDING = {
|
|
51
|
+
type: 'object', additionalProperties: false,
|
|
52
|
+
properties: {
|
|
53
|
+
severity: { type: 'string', enum: ['blocker', 'major', 'minor', 'nit'] },
|
|
54
|
+
location: { type: 'string' }, problem: { type: 'string' }, fix: { type: 'string' },
|
|
55
|
+
}, required: ['severity', 'location', 'problem', 'fix'],
|
|
56
|
+
}
|
|
57
|
+
const LENS_SCHEMA = {
|
|
58
|
+
type: 'object', additionalProperties: false,
|
|
59
|
+
properties: { lens: { type: 'string' }, findings: { type: 'array', items: FINDING } },
|
|
60
|
+
required: ['lens', 'findings'],
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
phase('Audit')
|
|
64
|
+
const results = await parallel(LENSES.map(([lens, brief]) => () =>
|
|
65
|
+
agent(`${COMMON}\n\nYOUR LENS — ${lens}: ${brief}`, { label: `audit:${lens}`, phase: 'Audit', schema: LENS_SCHEMA })
|
|
66
|
+
))
|
|
67
|
+
const all = results.filter(Boolean).flatMap(r => r.findings.map(f => ({ ...f, lens: r.lens })))
|
|
68
|
+
|
|
69
|
+
phase('Synthesis')
|
|
70
|
+
const SYNTH = {
|
|
71
|
+
type: 'object', additionalProperties: false,
|
|
72
|
+
properties: {
|
|
73
|
+
remaining: { type: 'array', items: { type: 'object', additionalProperties: false,
|
|
74
|
+
properties: { ...FINDING.properties, lenses: { type: 'string' } },
|
|
75
|
+
required: [...FINDING.required, 'lenses'] } },
|
|
76
|
+
clearsBar: { type: 'boolean' },
|
|
77
|
+
verdict: { type: 'string' },
|
|
78
|
+
}, required: ['remaining', 'clearsBar', 'verdict'],
|
|
79
|
+
}
|
|
80
|
+
return await agent(
|
|
81
|
+
`${COMMON}\n\nYou are the SYNTHESIS architect. Below are ${all.length} raw findings from ${LENSES.length} lenses. Dedup overlaps (note which lenses raised each). DROP false positives — verify against the files before keeping; if you cannot reproduce it, drop it. Classify each survivor; set clearsBar=true ONLY if no blockers and no majors remain. One-paragraph verdict.\n\nRAW:\n${JSON.stringify(all, null, 2)}`,
|
|
82
|
+
{ label: 'synthesis', phase: 'Synthesis', schema: SYNTH }
|
|
83
|
+
)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Skill skeletons
|
|
2
|
+
|
|
3
|
+
Two skeletons — pick by layer. Both stay lean; push detail into one-level-deep bundled files.
|
|
4
|
+
|
|
5
|
+
Frontmatter fields used in this toolkit: `name`, `description` (required-quality), `user-invocable`, `argument-hint` (optional), `allowed-tools`.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Reference skill (descriptive — knowledge)
|
|
10
|
+
|
|
11
|
+
No numbered procedures. Principles + pointers + heuristics.
|
|
12
|
+
|
|
13
|
+
```markdown
|
|
14
|
+
---
|
|
15
|
+
name: <aspect-noun> # e.g. navigation — NO platform prefix
|
|
16
|
+
description: <what it covers + when to reach for it + trigger words. Say "iOS/SwiftUI" so the router can disambiguate.>
|
|
17
|
+
user-invocable: true
|
|
18
|
+
allowed-tools: Read, Grep, Glob, Bash, Edit, Write
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# <name> — <short title>
|
|
22
|
+
|
|
23
|
+
> **Layer:** reference (knowledge)
|
|
24
|
+
> **Use when:** <trigger> **Hand off to:** <sibling skill>
|
|
25
|
+
|
|
26
|
+
## Scope
|
|
27
|
+
In / out, 1–2 lines.
|
|
28
|
+
|
|
29
|
+
## Invariants <!-- non-negotiables + the why -->
|
|
30
|
+
## Conventions & golden paths <!-- point to canonical files; don't paste code -->
|
|
31
|
+
## Decision rules <!-- if X do A; when unsure, ask/verify -->
|
|
32
|
+
## Pitfalls <!-- known traps -->
|
|
33
|
+
## Escape hatches <!-- when this doesn't apply → which skill -->
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Workflow skill (imperative — action)
|
|
39
|
+
|
|
40
|
+
Has a numbered procedure, but only for the deterministic/irreversible spine. Cite reference skills for judgment. Always include a verification gate.
|
|
41
|
+
|
|
42
|
+
```markdown
|
|
43
|
+
---
|
|
44
|
+
name: <verb-phrase> # e.g. branch-and-pr
|
|
45
|
+
description: <what it does + when to run it + trigger words (iOS/SwiftUI).>
|
|
46
|
+
user-invocable: true
|
|
47
|
+
argument-hint: [<step> | ...]
|
|
48
|
+
allowed-tools: Bash, Read
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
# <name> — <short title>
|
|
52
|
+
|
|
53
|
+
> **Layer:** workflow (action)
|
|
54
|
+
> **Use when:** <trigger> **Don't use when:** <hand off>
|
|
55
|
+
|
|
56
|
+
## Scope
|
|
57
|
+
In / out, 1–2 lines.
|
|
58
|
+
|
|
59
|
+
## Invariants <!-- hard rules / guardrails -->
|
|
60
|
+
## Conventions & golden paths <!-- base branch, auth, canonical commands -->
|
|
61
|
+
## Decision rules <!-- branch when…, escalate when… -->
|
|
62
|
+
## Procedures <!-- IMPERATIVE: only deterministic/irreversible steps -->
|
|
63
|
+
1. ...
|
|
64
|
+
## Verification <!-- IMPERATIVE: prove it worked (build/run/test) -->
|
|
65
|
+
## Pitfalls
|
|
66
|
+
## Escape hatches
|
|
67
|
+
```
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> Auto-generated by `pipeline/scripts/build-skills-index.mjs` - do not hand-edit.
|
|
4
4
|
> Regenerate with `node pipeline/scripts/build-skills-index.mjs`.
|
|
5
5
|
|
|
6
|
-
**
|
|
6
|
+
**187 skills** across 2 groups.
|
|
7
7
|
|
|
8
8
|
| Group | Name | Platform | Description |
|
|
9
9
|
|-------|------|----------|-------------|
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
| external | `authentication` | - | Implement iOS authentication flows with AuthenticationServices and LocalAuthentication. Use when building Sign in with Apple, passkey/WebAut |
|
|
30
30
|
| external | `avkit` | - | Create media playback experiences using AVKit. Use when adding video players with AVPlayerViewController, enabling Picture-in-Picture, routi |
|
|
31
31
|
| external | `background-processing` | - | Schedule and execute background work on iOS using BGTaskScheduler. Use when registering BGAppRefreshTask for short background fetches, BGPro |
|
|
32
|
+
| external | `backlog` | - | The engineering backlog registry for deferred-but-approved work in this codebase. Every job the user defers ('defer it', 'add it to the list |
|
|
32
33
|
| external | `callkit-voip` | - | Implement VoIP calling with CallKit and PushKit. Use when building incoming/outgoing call flows, registering for VoIP push notifications, co |
|
|
33
34
|
| external | `ci-cd-pipelines` | - | CI/CD pipelines: GitHub Actions workflows, Docker multi-stage builds, environment management, secret management, deployment strategies |
|
|
34
35
|
| external | `clean-code` | - | This skill embodies the principles of \"Clean Code\" by Robert C. Martin (Uncle Bob). Use it to transform \"code that works\" into \"code th |
|
|
@@ -55,42 +56,6 @@
|
|
|
55
56
|
| external | `energykit` | - | Query grid electricity forecasts and submit load events using EnergyKit to help users optimize home electricity usage. Use when building sma |
|
|
56
57
|
| external | `eventkit-calendar` | - | Create, read, and manage calendar events and reminders using EventKit and EventKitUI. Use when adding events to the user's calendar, creatin |
|
|
57
58
|
| external | `fastapi-pro` | - | Build high-performance async APIs with FastAPI, SQLAlchemy 2.0, and Pydantic V2. Master microservices, WebSockets, and modern Python async p |
|
|
58
|
-
| figma-common | `figma-bottom-sheets` | - | Bottom-sheet / detent pattern integration for Figma-to-UI components (iOS SwiftUI + Android Jetpack Compose) — half-sheets, drawers, pinned |
|
|
59
|
-
| figma-common | `figma-cli-iterate` | - | Runs the complete Figma-to-SwiftUI pipeline for one or more issues: pick → start → implement (phases 0-7) → commit. Returns a structured `OR |
|
|
60
|
-
| figma-common | `figma-cli-iterate-mend` | - | Runs the complete Figma-to-SwiftUI mend pipeline for a single issue whose component already exists under `Discarded/` and must be re-impleme |
|
|
61
|
-
| figma-common | `figma-cli-lean-iterate` | - | Runs a lean Figma-to-SwiftUI pipeline for one or more issues: pick → start → implement (phases 0-4) → code connect (phase 6) → commit. Skips |
|
|
62
|
-
| figma-common | `figma-cli-skip` | - | CLI variant of /figma-skip - fetches origin iteration/develop on mobile-common, marks a Figma component as skipped in the registry, commit |
|
|
63
|
-
| figma-common | `figma-commit` | - | Reviews a Figma component implementation, then creates feature branches across submodules, commits, pushes, and opens PRs. Delegates mobile- |
|
|
64
|
-
| figma-android | `figma-component-code-connect` | android | Generate Code Connect for Compose mappings - {Name}.figma.kt registers the composable with Figma's Code Connect so designers see live code |
|
|
65
|
-
| figma-ios | `figma-component-code-connect` | ios | Figma Code Connect mapping publisher for implemented SwiftUI components. Creates + publishes .figma.swift registration for a component alrea |
|
|
66
|
-
| figma-common | `figma-component-confluence-sync` | - | Syncs component documentation from the GitHub Wiki (source of truth) to Confluence. Reads wiki markdown, converts to Confluence XHTML, uploa |
|
|
67
|
-
| figma-android | `figma-component-implement` | android | Generate a Jetpack Compose component (Configuration data class + Composable + Modifier extensions + Preview + README) from gathered Figma da |
|
|
68
|
-
| figma-ios | `figma-component-implement` | ios | Figma → SwiftUI implementation for a single component. Runs Phases 0-4 of the figma-to-swiftui pipeline (init, data gathering, analysis, cod |
|
|
69
|
-
| figma-common | `figma-component-start` | - | Reads a GitHub Issue, extracts component metadata, creates feature branches from `develop` (main repo) / `iteration/develop` (submodules), a |
|
|
70
|
-
| figma-common | `figma-component-status-update` | - | Refreshes the global Component Implementation Status dashboard on Confluence. |
|
|
71
|
-
| figma-android | `figma-component-test` | android | Generate Compose Testing + Paparazzi/Roborazzi snapshot + unit tests for a Jetpack Compose component. Android peer to pipeline/skills/figma- |
|
|
72
|
-
| figma-ios | `figma-component-test` | ios | Test generator + runner for implemented SwiftUI Figma components. Produces ViewInspector structural tests, snapshot tests, and XCTest unit t |
|
|
73
|
-
| figma-android | `figma-component-wiki` | android | Component wiki generation for Android. Dispatches to the same 4-mode adapter set as the iOS peer (submodule / in-repo / github-wiki / separa |
|
|
74
|
-
| figma-ios | `figma-component-wiki` | - | Generate component wiki documentation with a pluggable adapter. Reads component source + FIGMA.md, renders markdown, then delegates publicat |
|
|
75
|
-
| figma-common | `figma-evolve-component` | - | On-demand reconcile-and-extend for an ALREADY-implemented UI component (iOS SwiftUI or Android Jetpack Compose). Heals drift from current Fi |
|
|
76
|
-
| figma-common | `figma-fix` | - | Applies a targeted fix for a bug filed during component review (via `/figma-review`), re-runs affected pipeline phases, closes the bug sub-i |
|
|
77
|
-
| figma-common | `figma-form-integration` | - | Form pattern integration for Figma-to-SwiftUI components. Guides FormSection/FormField adoption - when a component embeds form-capable sub |
|
|
78
|
-
| figma-common | `figma-issue` | - | Creates and manages GitHub Issues for Figma component implementations. |
|
|
79
|
-
| figma-common | `figma-iterate` | - | Picks the next available component issue and runs the full pipeline end-to-end: start → implement → commit. Loops until no more issues are a |
|
|
80
|
-
| figma-common | `figma-iteration-commit` | - | NEVER create branches on the main repo (REPO_ROOT). Do not create `iteration/develop` or any other branch on the main repo. Do not commit to |
|
|
81
|
-
| figma-common | `figma-mend` | - | Re-implements discarded components from scratch using the figma-to-swiftui workflow, preserving old implementation as complementary referenc |
|
|
82
|
-
| figma-common | `figma-navigation` | - | Navigation pattern integration for Figma-to-UI components (iOS SwiftUI + Android Jetpack Compose). Guides how a component reaches other scre |
|
|
83
|
-
| figma-common | `figma-overlays` | - | Overlay pattern integration for Figma-to-UI components (iOS SwiftUI + Android Jetpack Compose) — toasts/snackbars, blocking loading HUDs, al |
|
|
84
|
-
| figma-common | `figma-price-integration` | - | Price pattern integration for Figma-to-SwiftUI components. Guides PriceRepresentable protocol adoption when a component displays price data. |
|
|
85
|
-
| figma-common | `figma-remote-mcp-auth` | - | Runs Figma Remote MCP OAuth flow to obtain and store a token in macOS Keychain. Requires OAuth client credentials. |
|
|
86
|
-
| figma-common | `figma-review` | - | Guided review session for a Figma component implementation. Resolves the component, finds or creates the GitHub issue, shows relevant code, |
|
|
87
|
-
| figma-common | `figma-setup` | - | One-time environment setup for Figma-to-SwiftUI workflow. Verifies MCP connectivity, API credentials, Code Connect CLI, and FigmaRegistryUti |
|
|
88
|
-
| figma-common | `figma-skip` | - | Marks a Figma component as skipped in the component registry and updates the Confluence status dashboard. |
|
|
89
|
-
| figma-android | `figma-to-component` | android | Figma-to-Compose component implementation workflow for Android. Takes a Figma URL and produces a production-ready Jetpack Compose component |
|
|
90
|
-
| figma-ios | `figma-to-component` | - | Figma-to-SwiftUI component implementation workflow. Takes a Figma URL and produces a production-ready SwiftUI component through 8 phases - |
|
|
91
|
-
| figma-common | `figma-ui-patterns` | - | Index of reusable SwiftUI UI-pattern guides (carousels, scroll tricks, animations, shaped views like scallops, pagers, parallax, gestures). |
|
|
92
|
-
| figma-common | `figma-utility` | - | On-demand Figma data utility. Fetch screenshots, metadata, properties, tokens, design context, Code Connect mappings, node data, component l |
|
|
93
|
-
| figma-common | `figma-validate` | - | Pre-implementation validation for Figma components. Checks 7 criteria: (1) Registry presence, (2) Code Connect strategy, (3) Design token co |
|
|
94
59
|
| external | `firebase` | - | You're a developer who has shipped dozens of Firebase projects. You've seen the \"easy\" path lead to security breaches, runaway costs, and |
|
|
95
60
|
| external | `github-actions-templates` | - | Production-ready GitHub Actions workflow patterns for testing, building, and deploying applications. |
|
|
96
61
|
| core | `google-play-compliance` | - | Google Play Store publication compliance - bundletool + aapt2 + apksigner orchestration + 21-rule policy catalog with Play Console error c |
|
|
@@ -157,7 +122,7 @@
|
|
|
157
122
|
| core | `multi-agent-setup` | - | First-run setup wizard: keychain token discovery, Git Identity onboarding, and pipeline preparation. |
|
|
158
123
|
| core | `multi-agent-stack` | - | Select the active stack for this repo by enabling the matching marketplace plugin(s) in .claude/settings.json (ios/android/mobile/backend/fr |
|
|
159
124
|
| core | `multi-agent-status` | - | Show every multi-agent task's ID, phase, branch, and status. |
|
|
160
|
-
| core | `multi-agent-sync` | - | One-shot sync of the entire multi-agent ecosystem: Claude Code, Copilot CLI, pipeline repo,
|
|
125
|
+
| core | `multi-agent-sync` | - | One-shot sync of the entire multi-agent ecosystem: Claude Code, Copilot CLI, pipeline repo, and website. |
|
|
161
126
|
| core | `multi-agent-test` | - | UI Bug Hunter - iOS Simulator (simctl) + Android Emulator (adb). Auto-detects platform. Screenshot + tap + analyze on the booted device. T |
|
|
162
127
|
| core | `multi-agent-update` | - | Update the pipeline to the latest version: git pull, install, migrate. |
|
|
163
128
|
| external | `musickit-audio` | - | Integrate Apple Music playback, catalog search, and Now Playing metadata using MusicKit and MediaPlayer. Use when adding music search, Apple |
|
|
@@ -168,11 +133,6 @@
|
|
|
168
133
|
| external | `passkit-wallet` | - | Integrate Apple Pay payments and Wallet passes using PassKit. Use when adding Apple Pay buttons, creating payment requests, handling payment |
|
|
169
134
|
| external | `pdfkit` | - | Display and manipulate PDF documents using PDFKit. Use when embedding PDFView to show PDF files, creating or modifying PDFDocument instances |
|
|
170
135
|
| external | `pencilkit-drawing` | - | Add Apple Pencil drawing with PKCanvasView, PKToolPicker, PKDrawing serialization/export, stroke inspection, and PencilKit/PaperKit handoffs |
|
|
171
|
-
| figma-common | `performance-iteration-commit-all` | - | Reads `_tour_tracker.json`, validates all reviewed components in a single build+test cycle, pushes all local commits in a single push per su |
|
|
172
|
-
| figma-common | `performance-review-next` | - | Reads `_tour_tracker.json`, presents a dashboard of produced components, and guides the user through reviewing each one. Fix commits are sep |
|
|
173
|
-
| figma-common | `performance-start` | - | Identical to `/figma-to-swift-ui-start` for Steps 0-5. After printing the summary (Step 6), automatically invokes `/performance-swiftui <fig |
|
|
174
|
-
| figma-common | `performance-swiftui` | - | Performance-optimized Figma-to-SwiftUI workflow. Same phases as figma-to-swiftui but with model downgrades on deterministic phases, parallel |
|
|
175
|
-
| figma-common | `performance-tour` | - | Produces multiple Figma components in a single session. Validates dependencies, determines implementation order, produces each component seq |
|
|
176
136
|
| external | `permissionkit` | - | Create child communication safety experiences using PermissionKit to request parental permission for children. Use when building apps that i |
|
|
177
137
|
| external | `photos-camera-media` | - | Implement, review, or improve photo picking, camera capture, and media handling in iOS apps using PhotoKit and AVFoundation. Use when workin |
|
|
178
138
|
| external | `play-store-review` | - | Prepare Android apps for Google Play Store review and compliance. Covers Google Play policy requirements, content rating questionnaire, targ |
|
|
@@ -185,6 +145,7 @@
|
|
|
185
145
|
| external | `room-database` | - | Implement Room database persistence on Android with @Entity, @Dao, @Database, Flow-based reactive queries, TypeConverters for complex types, |
|
|
186
146
|
| external | `search-first` | - | \| |
|
|
187
147
|
| external | `shareplay-activities` | - | Build shared real-time experiences using GroupActivities and SharePlay. Use when implementing shared media playback, collaborative app featu |
|
|
148
|
+
| external | `skill-creator` | - | Author and refine skills for a plugin/toolkit efficiently. Use when creating a new skill, trimming or splitting an existing one, writing a s |
|
|
188
149
|
| external | `speech-recognition` | - | Transcribe speech to text using Apple's Speech framework. Use when implementing live microphone transcription with AVAudioEngine, recognizin |
|
|
189
150
|
| external | `spm-build-analysis` | - | Analyze Swift Package Manager dependencies, package plugins, module variants, and CI-oriented build overhead that slow Xcode builds. Use whe |
|
|
190
151
|
| external | `storekit` | - | Implement, review, or improve in-app purchases and subscriptions using StoreKit 2. Use when building paywalls with SubscriptionStoreView or |
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Analyse the project, score it, draft an improvement 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. Analyse → Score → Plan → Approval → Develop → Sync.**
|
|
9
|
-
|
|
10
|
-
Deep-analyses the current project, scores it across 10 categories, drafts every improvement, asks the user for approval, applies them, and asks about sync at the end.
|
|
11
|
-
|
|
12
|
-
**Input**: $ARGUMENTS (optional - area to focus on: "security", "performance", "tests", etc.)
|
|
13
|
-
|
|
14
|
-
## Flow
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
Step 0: RESEARCH Search GitHub + Reddit for competing projects, gather good ideas
|
|
18
|
-
Step 1: SCAN Walk the project structure (files, LOC, dependencies, CI, tests)
|
|
19
|
-
Step 2: ANALYZE Deep analysis across 10 categories
|
|
20
|
-
Step 3: SCORE Each category /10, overall /100
|
|
21
|
-
Step 4: PLAN List every improvement + competitor idea in priority order
|
|
22
|
-
Step 5: ASK "Start the work?" - wait for user approval
|
|
23
|
-
Step 6: IMPLEMENT Apply approved improvements one by one (lint, test, commit)
|
|
24
|
-
Step 7: VERIFY Confirm every test + lint passes
|
|
25
|
-
Step 8: ASK SYNC "Run multi-agent-sync?" - wait for user approval
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Step 0: RESEARCH - competitor analysis
|
|
29
|
-
|
|
30
|
-
Before starting work, scan for similar projects:
|
|
31
|
-
|
|
32
|
-
1. **GitHub Search**: `multi-agent pipeline AI development` + `Claude Code pipeline` + `AI coding agent`
|
|
33
|
-
- find repos with stars:>10
|
|
34
|
-
- read their READMEs
|
|
35
|
-
- extract their distinct features
|
|
36
|
-
2. **Reddit Search**: multi-agent discussions in `r/ClaudeAI`, `r/ChatGPT`, `r/LocalLLaMA`
|
|
37
|
-
3. **For each competitor, record**:
|
|
38
|
-
- distinct features we DO NOT have
|
|
39
|
-
- ideas worth adopting
|
|
40
|
-
- things they do better than us
|
|
41
|
-
- things we do better than them
|
|
42
|
-
4. **Add to the plan**: roll the high-impact + low-effort ideas into the PLAN step (P1 priority)
|
|
43
|
-
|
|
44
|
-
Output format:
|
|
45
|
-
```
|
|
46
|
-
| Source | Idea | Effort | Impact | In plan? |
|
|
47
|
-
|--------|-------|--------|------|--------------|
|
|
48
|
-
| ralph-loop | Symlink distribution | Low | High | Yes |
|
|
49
|
-
| atelier | Persistent Brain | High | Very High | No (roadmap) |
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
## Step 1: SCAN
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
- file count, LOC (cloc or wc -l)
|
|
56
|
-
- package.json / Package.swift / build.gradle analizi
|
|
57
|
-
- dependency count (runtime vs dev)
|
|
58
|
-
- Is there a CI/CD pipeline? (.github/workflows/, fastlane/, Makefile)
|
|
59
|
-
- Is there test infrastructure? How many tests? Coverage?
|
|
60
|
-
- Is linter/formatter config in place?
|
|
61
|
-
- Do README, LICENSE, SECURITY.md, CHANGELOG.md exist?
|
|
62
|
-
- Git state: branch count, last commit date, tags
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## Step 2: ANALYZE - 10 categories
|
|
66
|
-
|
|
67
|
-
| # | Category | What to check |
|
|
68
|
-
|---|----------|-------------------|
|
|
69
|
-
| 1 | **Architecture** | Layer separation, modularity, SOLID, dependency direction |
|
|
70
|
-
| 2 | **Code Quality** | Naming, magic numbers, dead code, complexity, DRY |
|
|
71
|
-
| 3 | **Security** | Hardcoded secrets, input validation, Keychain, ATS, ATT |
|
|
72
|
-
| 4 | **Tests** | Coverage, test pyramid, edge cases, mock/stub quality |
|
|
73
|
-
| 5 | **CI/CD** | Build matrix, lint job, release automation, artifact caching |
|
|
74
|
-
| 6 | **Docs** | README quality, JSDoc / Swift docs, API docs, CHANGELOG |
|
|
75
|
-
| 7 | **Performance** | Bundle size, lazy loading, memory leaks, unnecessary re-renders |
|
|
76
|
-
| 8 | **Accessibility** | a11y labels, tap targets, VoiceOver, Dynamic Type |
|
|
77
|
-
| 9 | **Dependency Management** | Outdated deps, vulnerability scan, lockfile, version pinning |
|
|
78
|
-
| 10 | **DevEx** | Onboarding time, script ergonomics, error messages, debug tooling |
|
|
79
|
-
|
|
80
|
-
## Step 3: SCORE
|
|
81
|
-
|
|
82
|
-
Her kategori 10 uzerinden puanlanir. Output format:
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
+---------------------+-------+
|
|
86
|
-
| Category | Score |
|
|
87
|
-
+---------------------+-------+
|
|
88
|
-
| Architecture | 9/10 |
|
|
89
|
-
| Code Quality | 8/10 |
|
|
90
|
-
| Security | 9/10 |
|
|
91
|
-
| Tests | 7/10 |
|
|
92
|
-
| CI/CD | 8/10 |
|
|
93
|
-
| Docs | 7/10 |
|
|
94
|
-
| Performance | 9/10 |
|
|
95
|
-
| Accessibility | 6/10 |
|
|
96
|
-
| Dependency Mgmt | 8/10 |
|
|
97
|
-
| DevEx | 9/10 |
|
|
98
|
-
+---------------------+-------+
|
|
99
|
-
| TOTAL | 80/100|
|
|
100
|
-
+---------------------+-------+
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
## Step 4: PLAN
|
|
104
|
-
|
|
105
|
-
List every improvement found:
|
|
106
|
-
|
|
107
|
-
```
|
|
108
|
-
| # | Priority | Category | Improvement | Impact |
|
|
109
|
-
|---|---------|----------|-------------|------|
|
|
110
|
-
| 1 | P0 | Security | Remove hardcoded API key | Critical |
|
|
111
|
-
| 2 | P0 | Tests | Missing edge-case tests | High |
|
|
112
|
-
| 3 | P1 | CI/CD | Add Node matrix | Medium |
|
|
113
|
-
| 4 | P1 | Docs | Functions missing JSDoc | Medium |
|
|
114
|
-
| 5 | P2 | DevEx | npm script naming | Low |
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
Priority levels:
|
|
118
|
-
- **P0**: bugs, security holes, broken functionality - MUST fix
|
|
119
|
-
- **P1**: clear quality improvement - should be done
|
|
120
|
-
- **P2**: nice-to-have - if time allows
|
|
121
|
-
|
|
122
|
-
## Step 5: ASK - user approval
|
|
123
|
-
|
|
124
|
-
After showing the plan, ask:
|
|
125
|
-
|
|
126
|
-
> "Found X improvements (P0: N, P1: M, P2: K). Should I start the work?"
|
|
127
|
-
|
|
128
|
-
Options:
|
|
129
|
-
- "Yes, do all"
|
|
130
|
-
- "Only P0"
|
|
131
|
-
- "P0 + P1 only"
|
|
132
|
-
- (the user may pick specific items)
|
|
133
|
-
|
|
134
|
-
**NEVER start the work without approval.**
|
|
135
|
-
|
|
136
|
-
## Step 6: IMPLEMENT
|
|
137
|
-
|
|
138
|
-
Apply the approved improvements one by one:
|
|
139
|
-
|
|
140
|
-
1. For each improvement:
|
|
141
|
-
- apply the change
|
|
142
|
-
- run the relevant tests
|
|
143
|
-
- on success, move to the next
|
|
144
|
-
- On failure, roll back and notify the user
|
|
145
|
-
2. After all changes are done:
|
|
146
|
-
- run the full lint + test suite
|
|
147
|
-
- on success, commit
|
|
148
|
-
|
|
149
|
-
Commit format: `refactor(scope): {short description}`
|
|
150
|
-
|
|
151
|
-
## Step 7: VERIFY
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
# Lint
|
|
155
|
-
npm run lint 2>/dev/null || swift build 2>/dev/null
|
|
156
|
-
|
|
157
|
-
# Test
|
|
158
|
-
npm test 2>/dev/null || swift test 2>/dev/null || xcodebuild test 2>/dev/null
|
|
159
|
-
|
|
160
|
-
# Result
|
|
161
|
-
echo "Lint: PASS/FAIL"
|
|
162
|
-
echo "Test: PASS/FAIL (X/Y passed)"
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
## Step 8: ASK SYNC
|
|
166
|
-
|
|
167
|
-
After every improvement is applied, ask:
|
|
168
|
-
|
|
169
|
-
> "Work is complete. Should I run multi-agent-sync?"
|
|
170
|
-
|
|
171
|
-
Options:
|
|
172
|
-
- "Yes" → run the `/sync` command (full ecosystem sync)
|
|
173
|
-
- "No" → emit a report and stop
|
|
174
|
-
- "Commit + push only" → push the current repo without sync
|
|
175
|
-
|
|
176
|
-
## Focus filter
|
|
177
|
-
|
|
178
|
-
If $ARGUMENTS is set, focus on that category only:
|
|
179
|
-
|
|
180
|
-
| Input | Focus |
|
|
181
|
-
|-------|------|
|
|
182
|
-
| `security` | Security analysis only |
|
|
183
|
-
| `tests` | Test coverage and quality only |
|
|
184
|
-
| `performance` | Performance optimisation only |
|
|
185
|
-
| `docs` | Docs only |
|
|
186
|
-
| `ci` | CI/CD pipeline only |
|
|
187
|
-
| `deps` | Dependency updates only |
|
|
188
|
-
| (empty) | All 10 categories (default) |
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# Component Dispatch (Phase 3 short-circuit)
|
|
2
|
-
|
|
3
|
-
> **TLDR** - When `taskType === "component"` (Figma URL in task description or instruction-driven figma workflow), multi-agent Phase 3 **does not run the TDD loop**. It delegates the entire phase to the `figma-to-component` skill and relays its subphases 3.0 - 3.8 via the existing phase-tracker contract. Implementation lives in the skill; multi-agent's job is classification, dispatch, and state report.
|
|
4
|
-
|
|
5
|
-
This doc is referenced from `refs/phases/phase-3-dev.md`. Keeping it separate lets `phase-3-dev.md` remain tight (it's already the largest phase doc) and gives the orchestrator-report contract a stable URL for both Claude-side and Copilot-side implementations.
|
|
6
|
-
|
|
7
|
-
## Entry conditions
|
|
8
|
-
|
|
9
|
-
Phase 3 checks, in order:
|
|
10
|
-
|
|
11
|
-
1. `agent-state.json` has `taskType: "component"` (set by Phase 0 Step 7).
|
|
12
|
-
2. `agent-state.json` has a non-null `figmaUrl`.
|
|
13
|
-
|
|
14
|
-
Either missing → log the anomaly to `agent-log.md` ("component dispatch expected but state incomplete"), fall through to the standard TDD path. Never silently skip the Figma work.
|
|
15
|
-
|
|
16
|
-
## Orchestrator resolution
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
project.platform → orchestrator skill
|
|
20
|
-
────────────────────────────────────────────────────────────────
|
|
21
|
-
ios → pipeline/skills/figma-ios/figma-to-component/
|
|
22
|
-
android → pipeline/skills/figma-android/figma-to-component/
|
|
23
|
-
web, multi-* → HALT with clear error (no web target)
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
If the chosen skill directory is missing, **halt with a user-visible error**. Do not silently fall back to TDD - a component task ran through the bugfix path would produce wrong artefacts and waste review cycles.
|
|
27
|
-
|
|
28
|
-
## Dispatch call
|
|
29
|
-
|
|
30
|
-
Emit `→ dispatching figma-to-component <componentName>` via the progress contract, then launch a single agent invocation on the orchestrator skill with:
|
|
31
|
-
|
|
32
|
-
- `figmaUrl` - primary positional argument
|
|
33
|
-
- `agentState` - the path to `agent-state.json` so the orchestrator enriches `state.phases["3"].subphases[]`
|
|
34
|
-
- `progressVerbosity` - forced to `verbose` when multi-agent runs in `mode: "autopilot"`; otherwise inherits `prefs.global.settings.progressVerbosity`
|
|
35
|
-
- `mode` - `"dev"` for `--dev` runs; `"full"` otherwise
|
|
36
|
-
|
|
37
|
-
## Subphase contract
|
|
38
|
-
|
|
39
|
-
The orchestrator writes each of its 8 subphases to `state.phases["3"].subphases[]` as it completes, with the shape:
|
|
40
|
-
|
|
41
|
-
```json
|
|
42
|
-
{
|
|
43
|
-
"id": "3.4a",
|
|
44
|
-
"name": "4A-Configuration",
|
|
45
|
-
"status": "done",
|
|
46
|
-
"startedAt": "2026-04-16T18:12:02Z",
|
|
47
|
-
"endedAt": "2026-04-16T18:13:47Z",
|
|
48
|
-
"buildStatus": "green",
|
|
49
|
-
"testStatus": "green"
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Multi-agent's `phase-tracker` reads this array without any component-specific code - the tracker UI renders one row per subphase under the Phase 3 row. No new phase-tracker field is required.
|
|
54
|
-
|
|
55
|
-
## Multi-repo report
|
|
56
|
-
|
|
57
|
-
When multi-repo mode is active (`state.projects.length > 1`), the orchestrator reads `state.projects[]` and runs subphases against the correct per-repo worktree:
|
|
58
|
-
|
|
59
|
-
- Tokens, accessibility metadata, testing identifiers, localisation keys → `repos.common`
|
|
60
|
-
- View / Configuration / Modifiers / Preview → `repos.components`
|
|
61
|
-
- Wiki markdown → `repos.wiki` (if `wiki.mode === submodule` or `separate-repo`) or `repos.components/.wiki/components/` (if `wiki.mode === in-repo`)
|
|
62
|
-
|
|
63
|
-
Multi-agent does **not** split the component task into per-repo Phase 3 runs - the orchestrator is aware of the repo graph and sequences writes correctly (e.g. token writes to `common` precede component reads in `components`).
|
|
64
|
-
|
|
65
|
-
## Failure + resume
|
|
66
|
-
|
|
67
|
-
On orchestrator failure (subphase hits a build/test error that can't auto-fix, or hits retry cap):
|
|
68
|
-
|
|
69
|
-
1. The orchestrator persists `{subphase, error, buildLog, testLog}` to `state.phases["3"].errors[]`.
|
|
70
|
-
2. Multi-agent increments `state.phases["3"].retryCount`.
|
|
71
|
-
3. Retry re-enters the orchestrator with `phase-<N>` as the argument (the failed subphase), so the skill resumes instead of restarting.
|
|
72
|
-
4. Hard kill at `retryCount === 3` → surface the errors to the user, halt Phase 3. Do not loop indefinitely.
|
|
73
|
-
|
|
74
|
-
## `--dev` mode behaviour
|
|
75
|
-
|
|
76
|
-
When multi-agent is invoked with `--dev` (fast path: Init → Dev → Commit → Report), the orchestrator receives `mode: "dev"` and is allowed to elide:
|
|
77
|
-
|
|
78
|
-
- Subphase 5C (unit tests) - structural + snapshot are still required
|
|
79
|
-
- Subphase 7 (wiki) - can be deferred; Phase 7 in multi-agent will ask the user whether to run it post-commit
|
|
80
|
-
|
|
81
|
-
Phase 4 reviewer-skipping is **not** Phase 3's concern - Phase 4 decides based on `mode: "dev"` itself.
|
|
82
|
-
|
|
83
|
-
## Cross-CLI parity
|
|
84
|
-
|
|
85
|
-
Both Claude Code and Copilot CLI implementations MUST:
|
|
86
|
-
|
|
87
|
-
- Use the same orchestrator resolution table (ios / android / halt).
|
|
88
|
-
- Emit byte-identical progress lines (`→ dispatching figma-to-component <name>`).
|
|
89
|
-
- Write the same `state.phases["3"].subphases[]` schema.
|
|
90
|
-
- Treat `--dev` the same way (elide 5C + 7 by default, no reviewer skip).
|
|
91
|
-
|
|
92
|
-
`smoke-cross-cli-behavior.sh` asserts this contract.
|