@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
|
@@ -1,336 +0,0 @@
|
|
|
1
|
-
# PHASE 4A - Configuration File
|
|
2
|
-
|
|
3
|
-
Write the Configuration struct with chain modifier macros.
|
|
4
|
-
Only executed for COMPLEX components (>3 properties).
|
|
5
|
-
|
|
6
|
-
CONDITIONAL - skip if SIMPLE.
|
|
7
|
-
PARALLEL WITH: Phase 4B (View), Phase 4C (FIGMA.md)
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## CONTEXT VARIABLES
|
|
12
|
-
|
|
13
|
-
These are provided by the orchestrator in the dispatch prompt:
|
|
14
|
-
- `componentName` - e.g., "LabelBadge"
|
|
15
|
-
- `componentLocation` - e.g., "Sources/UIComponents/.../LabelBadge/"
|
|
16
|
-
- `artifactPath` - path to implementation artifacts
|
|
17
|
-
- `nodeId` - Figma node ID
|
|
18
|
-
- `fileKey` - Figma file key
|
|
19
|
-
- `complexity` - must be COMPLEX for this phase to execute
|
|
20
|
-
- `gitUser` - from `git config user.name`
|
|
21
|
-
- `date` - current date in DD.MM.YYYY format
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## PRE-CHECK
|
|
26
|
-
|
|
27
|
-
If `complexity` is SIMPLE → do not execute. Return:
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
STATUS: COMPLETE
|
|
31
|
-
PHASE: phase-4a
|
|
32
|
-
GATES_PASSED: [PRE_CHECK]
|
|
33
|
-
ARTIFACTS_CREATED: none
|
|
34
|
-
SUMMARY: Skipped - SIMPLE component, no configuration file needed.
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Read:
|
|
38
|
-
```
|
|
39
|
-
{artifactPath}/pass3/04b_component_architecture.md
|
|
40
|
-
{artifactPath}/pass3/04c_variant_config_analysis.json
|
|
41
|
-
{artifactPath}/pass3/05_complexity.md
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
The `04c_variant_config_analysis.json` (from Phase 3H) provides typed recommendations for each boolean property:
|
|
45
|
-
- `KNOWN_SUBCOMPONENT` entries → use `swiftType` from 3H. Only `dynamicProps` go in config. If 2+ dynamic props → create mini config struct. If 1 → unwrap to single type. If 0 → boolean presence only.
|
|
46
|
-
- `PAIRED_ACTION_SUBCOMPONENT` entries → same as KNOWN_SUBCOMPONENT for data props. The `pairedClosure` is a View dependency - NOT in Configuration. Phase 4B generates the paired modifier.
|
|
47
|
-
- `ICON_BOOLEAN_GATED` entries → use `swiftType` (`Image?` or `Optional3<Image>`)
|
|
48
|
-
- `CONTENT_LEAF` entries → `String?` (nil = hidden)
|
|
49
|
-
|
|
50
|
-
Use `swiftName` from 3H for property naming. Use `rationale` to understand the classification.
|
|
51
|
-
|
|
52
|
-
Read macros reference:
|
|
53
|
-
```
|
|
54
|
-
.instructions/figma/figma-to-swiftui/reference/macros.md
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
If any required file is missing:
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
STATUS: HALT
|
|
61
|
-
PHASE: phase-4a
|
|
62
|
-
GATE: PRE_CHECK
|
|
63
|
-
REASON: Required Phase 3 artifacts missing.
|
|
64
|
-
COMPLETED_GATES: []
|
|
65
|
-
ARTIFACTS_CREATED: none
|
|
66
|
-
USER_ACTION_REQUIRED: Run Phase 3 first.
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## ARCHITECTURAL RULE - Configuration Purity
|
|
72
|
-
|
|
73
|
-
**Configuration structs hold ONLY declarative, value-type properties.**
|
|
74
|
-
|
|
75
|
-
Do NOT put these in Configuration - they are direct View dependencies:
|
|
76
|
-
|
|
77
|
-
| Excluded Type | Where It Lives Instead |
|
|
78
|
-
|---------------|----------------------|
|
|
79
|
-
| Closures (`() -> Void`, `(T) -> Void`) | View property: `private var action: (() -> Void)?` |
|
|
80
|
-
| `Binding<T>` / `@Binding` | View property: `@Binding var isPresented: Bool` |
|
|
81
|
-
| `@State` / `@ObservedObject` / `@StateObject` | View property |
|
|
82
|
-
| `AnyView` / `@ViewBuilder` closures | View property or generic parameter |
|
|
83
|
-
|
|
84
|
-
This separation enables the `+Modifiers` extension (Phase 4E) to safely forward all Configuration properties as view-level chain modifiers.
|
|
85
|
-
|
|
86
|
-
## ARCHITECTURAL RULE - Only Dynamic Props in Config
|
|
87
|
-
|
|
88
|
-
**Sub-component properties that are fixed by the parent's design (static) do NOT go in Configuration.** Only caller-controlled (dynamic) properties are exposed.
|
|
89
|
-
|
|
90
|
-
Phase 3H provides `dynamicProps` and `staticProps` for each sub-component entry. Use only `dynamicProps` when creating config properties or mini config structs. The parent View hardcodes `staticProps` internally when instantiating the sub-component.
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## GATE 1: CHECK_EXISTING
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
ls {componentLocation}/*Configuration.swift 2>/dev/null
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
| Result | Action |
|
|
101
|
-
|--------|--------|
|
|
102
|
-
| File exists | Read existing, extend if needed. Proceed to GATE 3. |
|
|
103
|
-
| Not found | Create new (GATE 2) |
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## GATE 2: WRITE_CONFIGURATION
|
|
108
|
-
|
|
109
|
-
INPUT: `pass3/04b_component_architecture.md` - contains the Final API Design section
|
|
110
|
-
|
|
111
|
-
### 2.1 Extract from architecture
|
|
112
|
-
|
|
113
|
-
From the **Final API Design** section, extract:
|
|
114
|
-
- All enum definitions
|
|
115
|
-
- All stored properties with types and defaults
|
|
116
|
-
- All sub-configuration structs (if any)
|
|
117
|
-
- Property attributes (@IgnoreChainModifier, @IgnoreLocalization, @ChainModifierName)
|
|
118
|
-
|
|
119
|
-
### 2.2 Determine property attributes
|
|
120
|
-
|
|
121
|
-
| Property Pattern | Attribute |
|
|
122
|
-
|------------------|-----------|
|
|
123
|
-
| UUID, ID, identifier | `@IgnoreChainModifier` - immutable, not chainable |
|
|
124
|
-
| Non-localizable String (URL, code, ID) | `@IgnoreLocalization` - no `.title(localized:)` variant |
|
|
125
|
-
| Name conflicts with SwiftUI methods | `@ChainModifierName("customName")` |
|
|
126
|
-
| Closure `() -> Void` | `@IgnoreLocalization` - not a String |
|
|
127
|
-
| Image | No special attribute needed |
|
|
128
|
-
| Optional property | No attribute - macro generates double-optional `T??` in `modified()` automatically |
|
|
129
|
-
|
|
130
|
-
### 2.3 Write file
|
|
131
|
-
|
|
132
|
-
Write `{componentLocation}/{ComponentName}Configuration.swift`:
|
|
133
|
-
|
|
134
|
-
```swift
|
|
135
|
-
//
|
|
136
|
-
// {ComponentName}Configuration.swift
|
|
137
|
-
// UIComponents
|
|
138
|
-
//
|
|
139
|
-
// Created by {gitUser} on {date}.
|
|
140
|
-
//
|
|
141
|
-
|
|
142
|
-
import SwiftUI
|
|
143
|
-
import UIMacros
|
|
144
|
-
|
|
145
|
-
// MARK: - {ComponentName} Configuration
|
|
146
|
-
|
|
147
|
-
/// Configuration for ``{ComponentName}`` component.
|
|
148
|
-
///
|
|
149
|
-
/// Use chain modifiers to customize:
|
|
150
|
-
/// ```swift
|
|
151
|
-
/// {ComponentName} { config in
|
|
152
|
-
/// config
|
|
153
|
-
/// .property1("value")
|
|
154
|
-
/// .property2(.variant)
|
|
155
|
-
/// }
|
|
156
|
-
/// ```
|
|
157
|
-
@GenerateChainModifiers
|
|
158
|
-
public struct {ComponentName}Configuration: Sendable {
|
|
159
|
-
|
|
160
|
-
// MARK: - Enums
|
|
161
|
-
|
|
162
|
-
{Enum definitions from architecture - inside the struct if component-specific}
|
|
163
|
-
|
|
164
|
-
// MARK: - Properties
|
|
165
|
-
|
|
166
|
-
public let {property1}: {Type}
|
|
167
|
-
public let {property2}: {Type}?
|
|
168
|
-
{... all properties from Final API Design}
|
|
169
|
-
|
|
170
|
-
// MARK: - Initialization
|
|
171
|
-
|
|
172
|
-
public init(
|
|
173
|
-
{property1}: {Type} = {default},
|
|
174
|
-
{property2}: {Type}? = nil
|
|
175
|
-
) {
|
|
176
|
-
self.{property1} = {property1}
|
|
177
|
-
self.{property2} = {property2}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
**CRITICAL:** Do NOT manually write `modified()`, chain methods, or localized variants.
|
|
183
|
-
The `@GenerateChainModifiers` macro generates ALL of these automatically:
|
|
184
|
-
- `private func modified(...)` with double-optional pattern for optional properties
|
|
185
|
-
- `.property1(_)` chain method for each property
|
|
186
|
-
- `.property1(localized:)` for String properties (unless `@IgnoreLocalization`)
|
|
187
|
-
|
|
188
|
-
### 2.4 Enum placement rules
|
|
189
|
-
|
|
190
|
-
| Enum Scope | Placement |
|
|
191
|
-
|------------|-----------|
|
|
192
|
-
| Component-specific (e.g., `LabelBadgeState`) | Inside the Configuration struct |
|
|
193
|
-
| Shared across components | Separate file or existing shared enum |
|
|
194
|
-
| Purely visual (only affects styling) | Inside the Configuration struct, but consider making it internal |
|
|
195
|
-
|
|
196
|
-
### 2.5 Sub-configuration structs
|
|
197
|
-
|
|
198
|
-
If the architecture specifies sub-configurations (grouped properties):
|
|
199
|
-
|
|
200
|
-
**For price data:** When the architecture identifies a `PRICE_PATTERN`, read the `/figma-price-integration` skill at `.instructions/figma/figma-price-integration/SKILL.md`. Define a nested `Price` struct conforming to `PriceRepresentable` with only the properties this component needs:
|
|
201
|
-
|
|
202
|
-
```swift
|
|
203
|
-
@GenerateChainModifiers
|
|
204
|
-
public struct {ComponentName}Configuration: Sendable {
|
|
205
|
-
public let title: String
|
|
206
|
-
public let price: Price?
|
|
207
|
-
|
|
208
|
-
// Nested PriceRepresentable - only the fields this component uses
|
|
209
|
-
public struct Price: PriceRepresentable {
|
|
210
|
-
public let amount: Double
|
|
211
|
-
public let currency: String
|
|
212
|
-
|
|
213
|
-
public init(amount: Double, currency: String) {
|
|
214
|
-
self.amount = amount
|
|
215
|
-
self.currency = currency
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
public init(
|
|
220
|
-
title: String = "",
|
|
221
|
-
price: Price? = nil
|
|
222
|
-
) {
|
|
223
|
-
self.title = title
|
|
224
|
-
self.price = price
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
**For form data:** When the architecture identifies a `FORM_PATTERN` (component embeds 1+ form-capable sub-components - Selectbox, Checkbox, Radio, TextboxTextarea, DatepickerSchedule), read the `/figma-form-integration` skill at `.instructions/figma/figma-form-integration/SKILL.md`. Define a nested `Section` class conforming to `FormSection` (annotated with `@FormSection @Observable`) with ONLY the form fields this component renders. The `section` lives on Configuration; static labels/placeholders remain as Configuration strings:
|
|
230
|
-
|
|
231
|
-
```swift
|
|
232
|
-
@GenerateChainModifiers
|
|
233
|
-
public struct {ComponentName}Configuration: Sendable {
|
|
234
|
-
public let section: {ComponentName}.Section
|
|
235
|
-
public let emailLabel: String
|
|
236
|
-
public let emailPlaceholder: String
|
|
237
|
-
public let phoneLabel: String
|
|
238
|
-
public let toggleLabel: String
|
|
239
|
-
|
|
240
|
-
public init(
|
|
241
|
-
section: {ComponentName}.Section,
|
|
242
|
-
emailLabel: String,
|
|
243
|
-
emailPlaceholder: String,
|
|
244
|
-
phoneLabel: String,
|
|
245
|
-
toggleLabel: String
|
|
246
|
-
) {
|
|
247
|
-
self.section = section
|
|
248
|
-
self.emailLabel = emailLabel
|
|
249
|
-
self.emailPlaceholder = emailPlaceholder
|
|
250
|
-
self.phoneLabel = phoneLabel
|
|
251
|
-
self.toggleLabel = toggleLabel
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
extension {ComponentName} {
|
|
256
|
-
@FormSection
|
|
257
|
-
@Observable
|
|
258
|
-
public final class Section: FormSection {
|
|
259
|
-
public let email = TextFormField(rules: [RequiredRule(), EmailRule()])
|
|
260
|
-
public let phoneCountry = PickerFormField<CountryCode>.searchable(
|
|
261
|
-
options: CountryCode.all,
|
|
262
|
-
initialValue: .tr,
|
|
263
|
-
rules: [RequiredSelectionRule()]
|
|
264
|
-
)
|
|
265
|
-
public let phoneNumber = TextFormField(rules: [RequiredRule(), PhoneRule()])
|
|
266
|
-
public let isPrimary = CheckboxFormField()
|
|
267
|
-
|
|
268
|
-
public init() {} // macro synthesizes `state` and `children`
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
For atomic form components (exactly 1 embedded form sub-component), skip the `Section` and put the `FormField` directly on Configuration (or the View init for SIMPLE components). Value-carrying fields never flatten into Configuration as `Binding` or raw value properties.
|
|
274
|
-
|
|
275
|
-
**For non-price, non-form sub-configurations:**
|
|
276
|
-
|
|
277
|
-
```swift
|
|
278
|
-
@GenerateChainModifiers
|
|
279
|
-
public struct {ComponentName}Configuration: Sendable {
|
|
280
|
-
public let title: String
|
|
281
|
-
public let badge: BadgeSection?
|
|
282
|
-
|
|
283
|
-
// Nested sub-configuration (no @GenerateChainModifiers - only top-level gets it)
|
|
284
|
-
public struct BadgeSection: Sendable {
|
|
285
|
-
public let text: String
|
|
286
|
-
public let style: BadgeStyle
|
|
287
|
-
|
|
288
|
-
public init(text: String, style: BadgeStyle) {
|
|
289
|
-
self.text = text
|
|
290
|
-
self.style = style
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
public init(
|
|
295
|
-
title: String = "",
|
|
296
|
-
badge: BadgeSection? = nil
|
|
297
|
-
) {
|
|
298
|
-
self.title = title
|
|
299
|
-
self.badge = badge
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
---
|
|
305
|
-
|
|
306
|
-
## GATE 3: VALIDATE
|
|
307
|
-
|
|
308
|
-
Verify the written file:
|
|
309
|
-
|
|
310
|
-
```
|
|
311
|
-
[ ] File exists at {componentLocation}/{ComponentName}Configuration.swift
|
|
312
|
-
[ ] @GenerateChainModifiers applied to struct
|
|
313
|
-
[ ] All properties from Final API Design present
|
|
314
|
-
[ ] All enums defined with correct cases
|
|
315
|
-
[ ] Init has sensible defaults (empty string, nil for optionals, first enum case or required)
|
|
316
|
-
[ ] Struct is Sendable
|
|
317
|
-
[ ] NO manual modified() method - macro handles it
|
|
318
|
-
[ ] NO manual chain methods - macro handles it
|
|
319
|
-
[ ] @IgnoreChainModifier on non-chainable properties
|
|
320
|
-
[ ] @IgnoreLocalization on non-localizable String properties
|
|
321
|
-
[ ] Correct imports: SwiftUI, UIMacros
|
|
322
|
-
[ ] File header has correct author and date
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
---
|
|
326
|
-
|
|
327
|
-
## SUCCESS OUTPUT
|
|
328
|
-
|
|
329
|
-
```
|
|
330
|
-
STATUS: COMPLETE
|
|
331
|
-
PHASE: phase-4a
|
|
332
|
-
GATES_PASSED: [PRE_CHECK, CHECK_EXISTING, WRITE_CONFIGURATION, VALIDATE]
|
|
333
|
-
ARTIFACTS_CREATED:
|
|
334
|
-
- {componentLocation}/{ComponentName}Configuration.swift
|
|
335
|
-
SUMMARY: Configuration written with @GenerateChainModifiers. {PROPERTY_COUNT} properties, {ENUM_COUNT} enums. Macro generates chain methods automatically.
|
|
336
|
-
```
|