@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
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: figma-component-status-update
|
|
3
|
-
description: Refreshes the global Component Implementation Status dashboard on Confluence.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /figma-to-swift-ui-status-update - Confluence Component Status Dashboard
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Refreshes the global Component Implementation Status dashboard on Confluence. Reads the component catalog, registry, and sub-component graph to generate a comprehensive status page showing implementation readiness per platform.
|
|
11
|
-
|
|
12
|
-
Requires VPN to {confluence.host}.
|
|
13
|
-
|
|
14
|
-
## Parameters
|
|
15
|
-
|
|
16
|
-
None.
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
/figma-to-swift-ui-status-update
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Workflow
|
|
25
|
-
|
|
26
|
-
### 1. VPN Check
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
curl -s --connect-timeout 5 {confluence.baseUrl} >/dev/null 2>&1 && echo "OK" || echo "NO VPN"
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
If no VPN → HALT. Ask user to connect.
|
|
33
|
-
|
|
34
|
-
### 2. Run Status Dashboard Script
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
python3 .instructions/figma/figma-to-swiftui/scripts/confluence-component-status.py
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
This script:
|
|
41
|
-
1. Reads component-catalog.json, component-index.json, sub-component-graph.json
|
|
42
|
-
2. Reads all component registry JSONs from `Shared/Figma/Components/`
|
|
43
|
-
3. Merges into a unified index with implementation status per platform
|
|
44
|
-
4. Generates XHTML with color-coded status table
|
|
45
|
-
5. Uploads to Confluence (updates in-place to avoid version bloat)
|
|
46
|
-
|
|
47
|
-
The script reads the **architecture-update 4-flag status block** (`status.ios.{implemented,tested,codeConnect,wiki}`) - with fallback to legacy `codeConnect.ios` for any pre-backfill entry. Green/yellow/gray in the XHTML output is derived from `{value, against, implemented.version}`: green if `value=true` and `against >= implemented.version`, yellow if `against < implemented.version`, gray if `value=false`.
|
|
48
|
-
|
|
49
|
-
### 3. Output
|
|
50
|
-
|
|
51
|
-
Report the script output - total components, implemented count, and per-flag status breakdown (implemented / tested / code-connected / wiki counts).
|
|
52
|
-
|
|
53
|
-
### 4. Per-component sync (optional)
|
|
54
|
-
|
|
55
|
-
This skill refreshes the **global dashboard**. To sync a specific component's registry state to its GitHub issue + Projects V2 board at the same time, use:
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
python3 .instructions/figma/figma-to-swiftui/scripts/update-issue-from-registry.py \
|
|
59
|
-
--node-id "{nodeId}"
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Or bulk:
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
python3 .instructions/figma/figma-to-swiftui/scripts/bulk-sync-issues.py
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Bulk sync is already run by the `fix GitHub issues` job - only re-run if multiple registry entries have changed.
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Shared Resources
|
|
73
|
-
|
|
74
|
-
| Resource | Description |
|
|
75
|
-
|----------|-------------|
|
|
76
|
-
| `scripts/confluence-component-status.py` | Dashboard generator + uploader |
|
|
77
|
-
| `scripts/confluence-page-ids.json` | Confluence page ID mapping |
|
|
78
|
-
| Component catalog + registry | Source data |
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: figma-evolve-component
|
|
3
|
-
description: "On-demand reconcile-and-extend for an ALREADY-implemented UI component (iOS SwiftUI or Android Jetpack Compose). Heals drift from current Figma (stale variants/props/structure, design-token drift, a detached/overridden deviation) AND extends the component non-destructively to cover a need the design can't express — always behind a mandatory human gate. Reach for this when an existing component drifted from its current design or doesn't cover a need. Not for building from scratch (figma-to-component / figma-mend) or fixing one review bug (figma-fix)."
|
|
4
|
-
user-invocable: true
|
|
5
|
-
argument-hint: <component | figma-url> [--report-only]
|
|
6
|
-
allowed-tools: Task, Read, Glob, Grep, Bash, Edit, Write, AskUserQuestion
|
|
7
|
-
status: wip-v5
|
|
8
|
-
sourced-from: upstream/figma-evolve-component
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# /figma-evolve-component - reconcile & extend an existing component
|
|
12
|
-
|
|
13
|
-
> **Use when:** an existing UI component drifted from its current Figma design, OR it doesn't cover a need you now have.
|
|
14
|
-
> **Don't use when:** building a brand-new component → `figma-to-swiftui`; re-implementing a discarded component from scratch → `figma-mend`; fixing a single bug filed in review → `figma-fix`.
|
|
15
|
-
|
|
16
|
-
## Scope
|
|
17
|
-
Reconcile **one** existing component against current Figma and extend it for a real need, then propagate the change to its Code Connect mapping + docs + wiki. **Out:** new components, networking, navigation graphs, batch/all-component sweeps.
|
|
18
|
-
|
|
19
|
-
## Invariants
|
|
20
|
-
- **Two truths.** Design is truth for **heal** (drift); **the user** is truth for **extend** (a need/divergence design can't supply). Design cannot tell us which gap to close - the user does.
|
|
21
|
-
- **Human gate is mandatory.** Never write before the user's decisions (Procedure step 3). This is prompt-driven, not autonomous. `--report-only` stops after the diff.
|
|
22
|
-
- **Additive / non-destructive.** Preserve the public API, init signatures, and variant cases. Never remove or rename them without explicit confirmation - it breaks callers.
|
|
23
|
-
- **Detached / overridden node = suspect truth.** If the Figma node is a detached instance or has local overrides, surface it and reconcile against the **main** component - don't auto-heal toward a deviated instance.
|
|
24
|
-
- **Recorded divergences are respected.** A `// evolve-keep: <reason>` marker in the code means the audit skips it and apply never reverts it.
|
|
25
|
-
- **Not done until it builds + existing call sites still compile + tests/snapshots pass** (`figma-to-swiftui` Phase 5 / `reference/build-and-test`).
|
|
26
|
-
|
|
27
|
-
## Conventions & golden paths (point, don't re-implement)
|
|
28
|
-
- **Design truth** → `/figma-utility` (`properties`, `tokens`, `context`, `metadata`, `screenshot`, `code-connect`). Analysis phase only - same MCP/REST rules as the pipeline.
|
|
29
|
-
- **Locate the component + its Figma node** → `FigmaRegistryUtility` lookup / repo grep for the `{ComponentName}` files and its `*.figma.swift`, or a URL the user gives. Paths resolve from `figma-config.json` (`repos.*`, component roots) - never hardcode.
|
|
30
|
-
- **Component structure + tokens** → `reference/ui` (`figma-to-component/reference/`), `figma-to-swiftui-effects.md`, `macros.md`. Cross-cutting patterns → `/figma-ui-patterns`, `/figma-form-integration`, `/figma-price-integration`, `/figma-navigation`, `/figma-overlays`, `/figma-bottom-sheets`.
|
|
31
|
-
- **After any prop/variant change, regenerate the derived artifacts - don't hand-roll:** Code Connect → `figma-to-component` Phase 6; local `.figma.md` doc → Phase 4C / `figma-component-docs`; public wiki → Phase 7 / `figma-component-wiki`.
|
|
32
|
-
- Build/run/test gate → `reference/build-and-test`; ship → `figma-commit` / `figma-iteration-commit`.
|
|
33
|
-
|
|
34
|
-
## Decision rules - classify each finding heal / extend / keep
|
|
35
|
-
- **stale** — variant/prop/structure differs from current Figma → **heal** toward design.
|
|
36
|
-
- **token drift** — hardcoded or old color/spacing/typography/radius vs the current token → **heal** to the current token (resolve the token name via the registry / `reference/ui`; don't guess).
|
|
37
|
-
- **detached / override** — node deviates from its main → **stop, ask the user** which is truth.
|
|
38
|
-
- **coverage gap** — design doesn't cover the need, or the impl is wrong → **extend**; the user says what to add.
|
|
39
|
-
- Removing/renaming public API or a variant case is **never** automatic → explicit confirmation.
|
|
40
|
-
|
|
41
|
-
## Procedure (the gate is non-negotiable)
|
|
42
|
-
1. **Resolve & gather** — locate the component file(s) + its Figma node (registry / Code Connect map / user URL). Pull design truth via `/figma-utility`.
|
|
43
|
-
- If the node is unresolved, or **detached/overridden** → ask the user (which node is truth?).
|
|
44
|
-
2. **Diff & present** — list findings per drift axis, each tagged **heal / extend / keep**. **No writes.** (`--report-only` stops here.)
|
|
45
|
-
3. **GATE — user decides** (`AskUserQuestion`): which to heal, which to keep (→ add `// evolve-keep:` marker), what to extend (the need design can't supply). Do not proceed without this.
|
|
46
|
-
4. **Apply** — only the approved changes, additively / non-destructively. When healing token drift, resolve the current token name via the registry / `reference/ui` - don't guess it.
|
|
47
|
-
5. **Propagate** — regenerate Code Connect (Phase 6), the local `.figma.md` doc (Phase 4C), and the wiki page (Phase 7) for the changed props/variants. If keys changed (testing/loc/a11y/analytics), update them through the normal utility path.
|
|
48
|
-
6. **Verify** — build + snapshot/preview; confirm existing call sites still compile (no API break); run affected tests.
|
|
49
|
-
|
|
50
|
-
## Verification
|
|
51
|
-
Build (project scheme from figma-config) + snapshot/preview render; callers compile; Code Connect + `.figma.md` + wiki reflect the new props/variants.
|
|
52
|
-
|
|
53
|
-
## Pitfalls
|
|
54
|
-
- Applying without the step-3 gate - this skill is human-gated by design.
|
|
55
|
-
- Healing toward a detached/overridden node (deviated truth).
|
|
56
|
-
- Removing/renaming a variant or init param → breaks callers; stay additive.
|
|
57
|
-
- Skipping Propagate → Code Connect + docs silently go stale after a prop/variant change.
|
|
58
|
-
|
|
59
|
-
## Escape hatches
|
|
60
|
-
- Build new from scratch → `figma-to-swiftui`. Re-implement a discarded component → `figma-mend`. Fix one review bug → `figma-fix`.
|
|
61
|
-
- Just fetch design data → `/figma-utility`. Build/test → `reference/build-and-test`. Commit/PR → `figma-commit`.
|
|
@@ -1,321 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: figma-fix
|
|
3
|
-
description: Applies a targeted fix for a bug filed during component review (via `/figma-review`), re-runs affected pipeline phases, closes the bug sub-issue, and cleanly transitions the parent component back to In Review with a.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /figma-fix - Fix a Review Bug
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Applies a targeted fix for a bug filed during component review (via `/figma-review`), re-runs affected pipeline phases, closes the bug sub-issue, and cleanly transitions the parent component back to **In Review** with a fresh review cycle (0/4).
|
|
11
|
-
|
|
12
|
-
This skill fills the gap between `/figma-review` (which *files* bugs) and `/figma-iteration-commit` (which *syncs* state). Neither of those actually *fixes* the code.
|
|
13
|
-
|
|
14
|
-
## Parameters
|
|
15
|
-
|
|
16
|
-
| Parameter | Required | Description |
|
|
17
|
-
|-----------|----------|-------------|
|
|
18
|
-
| Bug issue number | Yes (one of) | `#123` - the bug sub-issue filed by a reviewer |
|
|
19
|
-
| Parent issue number | Alternative | `#100` - the parent component issue (lists open bugs to pick from) |
|
|
20
|
-
| Figma URL | Alternative | Resolves to the component, then lists open bugs |
|
|
21
|
-
|
|
22
|
-
```
|
|
23
|
-
/figma-fix #456
|
|
24
|
-
/figma-fix #100
|
|
25
|
-
/figma-fix https://www.figma.com/design/9ipBvrtsq9HlQ175B9k0wx/?node-id=3:9872
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Constants
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
GH_REPO = {github.componentsRepo}
|
|
34
|
-
COMMON_PATH = {repos.common.path}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Gate 0: Resolve Bug + Component
|
|
40
|
-
|
|
41
|
-
### If bug issue number provided (#N):
|
|
42
|
-
|
|
43
|
-
1. Fetch the issue:
|
|
44
|
-
```bash
|
|
45
|
-
gh issue view <N> --repo ${GH_REPO} --json number,title,body,labels,assignees,parent
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
2. Verify it's a bug sub-issue:
|
|
49
|
-
- Must have `review-fix` or `bug` label
|
|
50
|
-
- Must have a parent issue (the component)
|
|
51
|
-
|
|
52
|
-
3. Extract from parent:
|
|
53
|
-
- Node ID (from `### Node ID` section in parent body)
|
|
54
|
-
- Component name (from `### Component Name` section)
|
|
55
|
-
|
|
56
|
-
### If parent issue number provided (#M):
|
|
57
|
-
|
|
58
|
-
1. List open bug sub-issues:
|
|
59
|
-
```bash
|
|
60
|
-
gh issue list --repo ${GH_REPO} --search "parent:#<M> label:review-fix state:open" --json number,title,labels
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
2. If multiple bugs: present them and ask which to fix (or fix all sequentially).
|
|
64
|
-
3. If zero bugs: HALT - "No open bugs on this component."
|
|
65
|
-
|
|
66
|
-
### If Figma URL provided:
|
|
67
|
-
|
|
68
|
-
1. Extract node-id, resolve via `FigmaRegistryUtility lookup`
|
|
69
|
-
2. Find the matching open issue via node-id search
|
|
70
|
-
3. Then follow the parent-issue path above
|
|
71
|
-
|
|
72
|
-
### Resolve component paths:
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
cd ${COMMON_PATH}
|
|
76
|
-
.build/debug/FigmaRegistryUtility lookup --node-id '{nodeId}'
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
Extract: `componentName`, `suggestedComponentLocation`, `suggestedArtifactPath`.
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## Gate 1: Understand the Bug
|
|
84
|
-
|
|
85
|
-
1. Read the bug sub-issue body for:
|
|
86
|
-
- Bug description
|
|
87
|
-
- Expected vs actual behavior
|
|
88
|
-
- Severity (`bug-minor` or `bug-major` label)
|
|
89
|
-
|
|
90
|
-
2. Read the component source files:
|
|
91
|
-
- `{componentLocation}/{ComponentName}.swift`
|
|
92
|
-
- `{componentLocation}/{ComponentName}Configuration.swift` (if exists)
|
|
93
|
-
- `{componentLocation}/FIGMA.md`
|
|
94
|
-
|
|
95
|
-
3. Read the Figma design (if MCP available) or FIGMA.md variant mapping to understand the correct behavior.
|
|
96
|
-
|
|
97
|
-
4. Identify the fix - what code needs to change.
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
## Gate 2: Apply the Fix
|
|
102
|
-
|
|
103
|
-
Edit the component source files to fix the bug. This is a **surgical edit**, not a full re-implementation.
|
|
104
|
-
|
|
105
|
-
Rules:
|
|
106
|
-
- Only edit files that need changing - don't rewrite the entire component
|
|
107
|
-
- Follow existing code patterns (tokens, modifiers, configuration style)
|
|
108
|
-
- If the fix requires new assets/tokens, use `/common-utility assets add-color` or `/common-utility assets generate`
|
|
109
|
-
- If the fix requires new testing identifiers/localization/accessibility keys, use `/common-utility identifiers add` / `localization add` / `accessibility add`
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
## Gate 3: Build Verification
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
xcodebuild build \
|
|
117
|
-
-project "${REPO_ROOT}/{build.xcodeproj}" \
|
|
118
|
-
-scheme {build.scheme} \
|
|
119
|
-
-destination 'generic/platform=iOS' \
|
|
120
|
-
CODE_SIGNING_ALLOWED=NO \
|
|
121
|
-
-quiet
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
Must exit 0. If build fails, fix errors and retry.
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
## Gate 4: Re-run Phase 4 Finalize (version bump)
|
|
129
|
-
|
|
130
|
-
The code changed, so the implementation version must bump:
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
python3 .instructions/figma/figma-to-swiftui/scripts/phase4-finalize.py \
|
|
134
|
-
--node-id "{nodeId}" \
|
|
135
|
-
--component-name "{ComponentName}" \
|
|
136
|
-
--source-file "{componentLocation}/{ComponentName}.swift" \
|
|
137
|
-
--platform ios \
|
|
138
|
-
--no-sync
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
The `--no-sync` flag defers issue sync until Gate 7. The version bump automatically makes `tested` and `codeConnect` yellow (their `against` is now < `implemented.version`).
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## Gate 5: Re-run Tests (Phase 5)
|
|
146
|
-
|
|
147
|
-
Since code changed, tests must be re-run and may need updating:
|
|
148
|
-
|
|
149
|
-
1. Run existing tests:
|
|
150
|
-
```bash
|
|
151
|
-
bash .instructions/figma/figma-to-swiftui/scripts/run-uicomponents-tests.sh \
|
|
152
|
-
--filter "{ComponentName}ViewInspectorTests"
|
|
153
|
-
bash .instructions/figma/figma-to-swiftui/scripts/run-uicomponents-tests.sh \
|
|
154
|
-
--filter "{ComponentName}SnapshotTests"
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
2. If tests fail:
|
|
158
|
-
- ViewInspector failures: update test expectations to match the fix
|
|
159
|
-
- Snapshot failures: delete old snapshots, re-record with `withSnapshotTesting(record: .all)`
|
|
160
|
-
|
|
161
|
-
3. After tests pass:
|
|
162
|
-
```bash
|
|
163
|
-
python3 .instructions/figma/figma-to-swiftui/scripts/phase5-finalize.py \
|
|
164
|
-
--node-id "{nodeId}" \
|
|
165
|
-
--platform ios \
|
|
166
|
-
--no-sync
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
## Gate 6: Re-run Code Connect (Phase 6)
|
|
172
|
-
|
|
173
|
-
If the fix changed the component's public interface or variant mapping:
|
|
174
|
-
|
|
175
|
-
1. Check if `.figma.swift` needs updating:
|
|
176
|
-
- Read `{componentLocation}/{ComponentName}.figma.swift`
|
|
177
|
-
- Compare with FIGMA.md variant mapping
|
|
178
|
-
- If mapping changed → update `.figma.swift`
|
|
179
|
-
- If unchanged → skip
|
|
180
|
-
|
|
181
|
-
2. If updated:
|
|
182
|
-
```bash
|
|
183
|
-
python3 .instructions/figma/figma-to-swiftui/scripts/phase6-finalize.py \
|
|
184
|
-
--node-id "{nodeId}" \
|
|
185
|
-
--file-key "{fileKey}" \
|
|
186
|
-
--component-name "{ComponentName}" \
|
|
187
|
-
--platform ios \
|
|
188
|
-
--no-sync
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
3. If skipped (no interface change), still re-mark codeConnect to clear the yellow:
|
|
192
|
-
```bash
|
|
193
|
-
python3 .instructions/figma/figma-to-swiftui/scripts/phase6-finalize.py \
|
|
194
|
-
--node-id "{nodeId}" \
|
|
195
|
-
--file-key "{fileKey}" \
|
|
196
|
-
--component-name "{ComponentName}" \
|
|
197
|
-
--platform ios \
|
|
198
|
-
--no-sync
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
## Gate 7: Close Bug + Sync Parent
|
|
204
|
-
|
|
205
|
-
### 7a. Close the bug sub-issue
|
|
206
|
-
|
|
207
|
-
```bash
|
|
208
|
-
gh issue close <bug_number> --repo ${GH_REPO} \
|
|
209
|
-
--comment "Fixed in $(git log -1 --format='%h') - $(git log -1 --format='%s')"
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
### 7b. Check remaining open bugs on parent
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
gh issue list --repo ${GH_REPO} \
|
|
216
|
-
--search "parent:#<parent_number> label:review-fix state:open" \
|
|
217
|
-
--json number
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
### 7c. If no more open bugs → remove review-fix from parent
|
|
221
|
-
|
|
222
|
-
```bash
|
|
223
|
-
gh issue edit <parent_number> --repo ${GH_REPO} --remove-label "review-fix"
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
### 7d. Sync parent issue to Projects V2
|
|
227
|
-
|
|
228
|
-
```bash
|
|
229
|
-
python3 .instructions/figma/figma-to-swiftui/scripts/update-issue-from-registry.py \
|
|
230
|
-
--node-id "{nodeId}"
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
This will:
|
|
234
|
-
- Recompute flag states (all green after Gates 4-6)
|
|
235
|
-
- Detect no bugfix signal (label removed + no open bugs)
|
|
236
|
-
- Set Status column → **In Review**
|
|
237
|
-
- Reset Review Progress → **0/4** (stale reviews from version bump)
|
|
238
|
-
- Update Progress table emoji in issue body
|
|
239
|
-
|
|
240
|
-
---
|
|
241
|
-
|
|
242
|
-
## Gate 8: Commit
|
|
243
|
-
|
|
244
|
-
Use `/figma-iteration-commit` or commit manually:
|
|
245
|
-
|
|
246
|
-
```bash
|
|
247
|
-
git add -A {componentLocation}/ Tests/
|
|
248
|
-
git commit -m "fix({ComponentName}): <bug description summary>
|
|
249
|
-
|
|
250
|
-
Fixes #<bug_number>
|
|
251
|
-
Refs: <JIRA_KEY>"
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
The commit message references the bug issue number so GitHub auto-links it.
|
|
255
|
-
|
|
256
|
-
---
|
|
257
|
-
|
|
258
|
-
## Validation Checklist
|
|
259
|
-
|
|
260
|
-
```
|
|
261
|
-
[ ] Bug sub-issue identified and read
|
|
262
|
-
[ ] Component source files read
|
|
263
|
-
[ ] Fix applied - only changed files that needed changing
|
|
264
|
-
[ ] xcodebuild build passed (exit 0)
|
|
265
|
-
[ ] phase4-finalize.py ran - implementation version bumped
|
|
266
|
-
[ ] Tests re-run and passing (ViewInspector + Snapshot)
|
|
267
|
-
[ ] phase5-finalize.py ran - tested flag green
|
|
268
|
-
[ ] Code Connect checked - .figma.swift updated if needed
|
|
269
|
-
[ ] phase6-finalize.py ran - codeConnect flag green
|
|
270
|
-
[ ] Bug sub-issue closed with fix commit reference
|
|
271
|
-
[ ] review-fix label removed from parent (if last bug)
|
|
272
|
-
[ ] update-issue-from-registry.py ran - parent synced to board
|
|
273
|
-
[ ] Parent status column: In Review (not Bugfix)
|
|
274
|
-
[ ] Parent review progress: 0/4 (fresh cycle)
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
|
|
279
|
-
## Success Output
|
|
280
|
-
|
|
281
|
-
```
|
|
282
|
-
Bug fix complete: {ComponentName} - #{bug_number}
|
|
283
|
-
|
|
284
|
-
| Field | Value |
|
|
285
|
-
|-------|-------|
|
|
286
|
-
| Bug | #{bug_number} - {bug_title} |
|
|
287
|
-
| Component | {ComponentName} |
|
|
288
|
-
| Fix commit | {commit_hash} |
|
|
289
|
-
| Implementation version | {new_version} (bumped from {old_version}) |
|
|
290
|
-
| Flags | impl: green, tested: green, cc: green, wiki: {state} |
|
|
291
|
-
| Parent status | In Review (0/4) |
|
|
292
|
-
| Remaining bugs | {count} open on #{parent_number} |
|
|
293
|
-
|
|
294
|
-
Next: Reviewers can re-review the component at #{parent_number}.
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
---
|
|
298
|
-
|
|
299
|
-
## Error Handling
|
|
300
|
-
|
|
301
|
-
| Error | Action |
|
|
302
|
-
|-------|--------|
|
|
303
|
-
| Issue is not a bug (no review-fix/bug label) | HALT - not a bug issue |
|
|
304
|
-
| No parent issue | HALT - orphan bug, can't resolve component |
|
|
305
|
-
| Component not found via registry | HALT - check node-id |
|
|
306
|
-
| Build fails after fix | Show errors, iterate |
|
|
307
|
-
| Tests fail after fix | Show failures, update tests |
|
|
308
|
-
| Bug close fails | Show error, ask user to close manually |
|
|
309
|
-
| review-fix label removal blocked | Non-fatal - sync will still work via sub-issue count |
|
|
310
|
-
| Sync fails | Non-fatal - finalize scripts already updated registry |
|
|
311
|
-
|
|
312
|
-
---
|
|
313
|
-
|
|
314
|
-
## Notes
|
|
315
|
-
|
|
316
|
-
- This skill is **surgical** - it fixes one specific bug, not a full re-implementation
|
|
317
|
-
- It always bumps `implemented.version` (Phase 4 finalize) because the code changed
|
|
318
|
-
- The version bump automatically makes the old review count stale, forcing a fresh review cycle
|
|
319
|
-
- Multiple bugs on the same component: run `/figma-fix` once per bug, or pass the parent issue to batch
|
|
320
|
-
- The `--no-sync` flag on Gates 4-6 prevents 3 redundant sync calls - Gate 7d does a single authoritative sync
|
|
321
|
-
- Works hand-in-hand with `/figma-review` (which creates bugs) and `/figma-iteration-commit` (which commits)
|