@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,580 +0,0 @@
|
|
|
1
|
-
# PHASE 7A - Wiki Documentation: Generate Markdown
|
|
2
|
-
|
|
3
|
-
Generate a single-file markdown documentation page for the wiki submodule.
|
|
4
|
-
No VPN required. No Confluence knowledge needed.
|
|
5
|
-
|
|
6
|
-
PREV: Phase 6 (Code Connect)
|
|
7
|
-
NEXT: Phase 7B (inline - commit + push wiki repo)
|
|
8
|
-
TOOL RESTRICTIONS: No Edit
|
|
9
|
-
|
|
10
|
-
> **No VPN needed.** This phase writes to the local wiki submodule. The orchestrator
|
|
11
|
-
> handles git commit + push in Phase 7B (inline, no subagent).
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## PRE_CHECK
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
Read: {artifactPath}/IMPLEMENTATION_HISTORY.md
|
|
19
|
-
Read: {componentLocation}/{componentName}.swift
|
|
20
|
-
Read: {componentLocation}/FIGMA.md
|
|
21
|
-
Read: {artifactPath}/pass1/screenshot.png (verify exists)
|
|
22
|
-
Read: {artifactPath}/pass1/screenshots/variants.md (if exists - variant property values)
|
|
23
|
-
Read: {artifactPath}/pass3/07_implementation_spec.md
|
|
24
|
-
Read: {artifactPath}/pass3/08_utility_integration.md
|
|
25
|
-
Read: {artifactPath}/pass3/03_nested_components.md
|
|
26
|
-
Read: {artifactPath}/pass2/utility_analytics.md (if exists)
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Also find iOS snapshot tests and reference images:
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
Glob: Tests/UIComponentsTests/Snapshot/**/{componentName}SnapshotTests.swift
|
|
33
|
-
Glob: Tests/UIComponentsTests/Snapshot/**/{componentName}/__Snapshots__/{componentName}SnapshotTests/*.png
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
Read the snapshot test file to extract test names and the Swift code each test uses.
|
|
37
|
-
|
|
38
|
-
Also read the per-component registry:
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
cd {repos.common.path} && .build/debug/FigmaRegistryUtility lookup --node-id '{nodeId}'
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
EXTRACT:
|
|
45
|
-
- `componentName`, `nodeId`, `fileKey`
|
|
46
|
-
- `componentLocation`, `artifactPath`
|
|
47
|
-
- `complexity` (SIMPLE/COMPLEX from pass3/07)
|
|
48
|
-
- `registryData` (testingIdentifiers, localizationKeys, accessibilityKeys, analyticsEvents)
|
|
49
|
-
- Initializer signature (from FIGMA.md)
|
|
50
|
-
- Usage examples (from FIGMA.md)
|
|
51
|
-
- Nested components (from FIGMA.md / pass3/03)
|
|
52
|
-
- Description, screen, section, size (from pass3/07)
|
|
53
|
-
|
|
54
|
-
Derive wiki paths:
|
|
55
|
-
- `wikiRoot` = `{repos.wiki.path}`
|
|
56
|
-
- `wikiCategory` = derive from `artifactPath` (e.g., `DesignSystemCore`, `MobileAppComponents/Components/BottomAction`)
|
|
57
|
-
- `wikiComponentPath` = `{wikiRoot}/{wikiCategory}/{componentName}`
|
|
58
|
-
|
|
59
|
-
If IMPLEMENTATION_HISTORY.md, the Swift file, or FIGMA.md is missing:
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
STATUS: HALT
|
|
63
|
-
PHASE: phase-7a
|
|
64
|
-
GATE: PRE_CHECK
|
|
65
|
-
REASON: Required artifacts not found.
|
|
66
|
-
COMPLETED_GATES: []
|
|
67
|
-
ARTIFACTS_CREATED: none
|
|
68
|
-
USER_ACTION_REQUIRED: Ensure Phase 4 completed. Required: IMPLEMENTATION_HISTORY.md, {componentName}.swift, FIGMA.md
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## GATE 1: CREATE_WIKI_STRUCTURE
|
|
74
|
-
|
|
75
|
-
Create output directory and copy screenshots.
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
mkdir -p {wikiComponentPath}/assets
|
|
79
|
-
cp {artifactPath}/pass1/screenshot.png {wikiComponentPath}/assets/screenshot.png
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
If variant screenshots exist:
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
if [ -d "{artifactPath}/pass1/screenshots" ]; then
|
|
86
|
-
cp {artifactPath}/pass1/screenshots/*.png {wikiComponentPath}/assets/
|
|
87
|
-
fi
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
If iOS snapshot test reference images exist, copy with `ios_` prefix:
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
# Snapshot image filenames are: test_snapshot_{mode}_{variant}.{mode}_{variant}.png
|
|
94
|
-
# Extract the named part (after the dot) and prefix with ios_
|
|
95
|
-
# e.g. test_snapshot_light_success.light_success.png → ios_light_success.png
|
|
96
|
-
for f in __Snapshots__/{ComponentName}SnapshotTests/*.png; do
|
|
97
|
-
named=$(echo "$(basename "$f")" | sed 's/.*\.\(.*\)\.png/\1/')
|
|
98
|
-
cp "$f" {wikiComponentPath}/assets/ios_${named}.png
|
|
99
|
-
done
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
List all copied assets for the ARTIFACTS_CREATED output.
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## GATE 2: GENERATE_MARKDOWN
|
|
107
|
-
|
|
108
|
-
Write `{wikiComponentPath}/{ComponentName}.md` using the template below.
|
|
109
|
-
|
|
110
|
-
**All images use wiki syntax:** `[[/{wikiCategory}/{componentName}/assets/{filename}]]`
|
|
111
|
-
|
|
112
|
-
> **CRITICAL:** GitHub Wiki `[[image.png|alt]]` syntax uses `|` for alt text.
|
|
113
|
-
> Inside markdown tables, `|` is the column separator - so `[[image.png|alt]]` breaks the table.
|
|
114
|
-
> **Rule:** NEVER use `|alt` in image links inside tables. Use `[[image.png]]` only.
|
|
115
|
-
> Outside tables (e.g., the hero screenshot at top), `[[image.png|alt]]` is safe.
|
|
116
|
-
|
|
117
|
-
### Data Mapping
|
|
118
|
-
|
|
119
|
-
| Template Variable | Source |
|
|
120
|
-
|-------------------|--------|
|
|
121
|
-
| `{DESCRIPTION}` | Synthesize 1-line from pass3/07 overview |
|
|
122
|
-
| `{FILE_KEY}`, `{NODE_ID}` | From context |
|
|
123
|
-
| `{SCREEN}`, `{SECTION}`, `{SIZE}` | From pass3/07 metadata |
|
|
124
|
-
| `{OVERVIEW_TEXT}` | 2-3 sentence description from pass3/07 |
|
|
125
|
-
| Testing Identifiers table | `registryData.testingIdentifiers` - columns: Element (usage), Key, Value |
|
|
126
|
-
| Localization Keys table | `registryData.localizationKeys` - columns: Element, Key, Default |
|
|
127
|
-
| Accessibility tables | `registryData.accessibilityKeys` - Labels + Hints |
|
|
128
|
-
| Analytics Events | `registryData.analyticsEvents` - element + event description |
|
|
129
|
-
| Sub-Components | From FIGMA.md nested components / pass3/03 |
|
|
130
|
-
| Changelog | Current date + "Initial documentation" |
|
|
131
|
-
|
|
132
|
-
### Empty Section Handling
|
|
133
|
-
|
|
134
|
-
- If `testingIdentifiers` is empty: `*No testing identifiers registered.*`
|
|
135
|
-
- If `localizationKeys` is empty: `*No localization keys. Text content is dynamic.*`
|
|
136
|
-
- If `accessibilityKeys` is empty: `*No dedicated accessibility keys.*`
|
|
137
|
-
- If `analyticsEvents` is empty: `*No analytics events. No interactive elements.*`
|
|
138
|
-
- If no nested components: `*No nested View components.*`
|
|
139
|
-
- If no variant screenshots: show only main screenshot, skip Variants table
|
|
140
|
-
|
|
141
|
-
### Markdown Template
|
|
142
|
-
|
|
143
|
-
```markdown
|
|
144
|
-
# {ComponentName}
|
|
145
|
-
|
|
146
|
-
*{DESCRIPTION}*
|
|
147
|
-
|
|
148
|
-
[[/{wikiCategory}/{componentName}/assets/screenshot.png|{ComponentName}]]
|
|
149
|
-
|
|
150
|
-
[View in Figma](https://www.figma.com/design/{FILE_KEY}/?node-id={NODE_ID_DASH})
|
|
151
|
-
|
|
152
|
-
**Screen:** {SCREEN}
|
|
153
|
-
**Section:** {SECTION}
|
|
154
|
-
**Size:** {SIZE}
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
## Variants
|
|
159
|
-
|
|
160
|
-
| Variant | Properties | Screenshot |
|
|
161
|
-
|---------|-----------|-----------|
|
|
162
|
-
| {VariantName} | `{Prop}={Value}` | [[/{wikiCategory}/{componentName}/assets/{VariantName}.png]] |
|
|
163
|
-
|
|
164
|
-
<!-- Use pass1/screenshots/variants.md for variant names + property values -->
|
|
165
|
-
<!-- If no variant screenshots, skip this section entirely -->
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## Overview
|
|
170
|
-
|
|
171
|
-
{OVERVIEW_TEXT}
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
## Testing Identifiers
|
|
176
|
-
|
|
177
|
-
*Shared across platforms*
|
|
178
|
-
|
|
179
|
-
| Element | Key | Value |
|
|
180
|
-
|---------|-----|-------|
|
|
181
|
-
| {usage} | `{key}` | `{value}` |
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## Localization Keys
|
|
186
|
-
|
|
187
|
-
*Shared across platforms*
|
|
188
|
-
|
|
189
|
-
| Element | Key | Default (EN) |
|
|
190
|
-
|---------|-----|-------------|
|
|
191
|
-
| {element} | `{key}` | {default} |
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
## Accessibility
|
|
196
|
-
|
|
197
|
-
*Shared across platforms*
|
|
198
|
-
|
|
199
|
-
### Labels
|
|
200
|
-
|
|
201
|
-
| Element | Key |
|
|
202
|
-
|---------|-----|
|
|
203
|
-
| {element} | `{key}` |
|
|
204
|
-
|
|
205
|
-
### Hints
|
|
206
|
-
|
|
207
|
-
| Element | Key |
|
|
208
|
-
|---------|-----|
|
|
209
|
-
| {element} | `{key}` |
|
|
210
|
-
|
|
211
|
-
---
|
|
212
|
-
|
|
213
|
-
## Analytics Events
|
|
214
|
-
|
|
215
|
-
*Shared across platforms*
|
|
216
|
-
|
|
217
|
-
### {event_element}
|
|
218
|
-
|
|
219
|
-
{event_description}
|
|
220
|
-
|
|
221
|
-
| Property | Value |
|
|
222
|
-
|----------|-------|
|
|
223
|
-
| Element | {element} |
|
|
224
|
-
| Identifier Key | `{identifierKey}` |
|
|
225
|
-
|
|
226
|
-
---
|
|
227
|
-
|
|
228
|
-
## Sub-Components
|
|
229
|
-
|
|
230
|
-
| Component | Description |
|
|
231
|
-
|-----------|-------------|
|
|
232
|
-
| [[{SubComponentName}]] | {description} |
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
## Platform Implementations
|
|
237
|
-
|
|
238
|
-
| Platform | Status |
|
|
239
|
-
|----------|--------|
|
|
240
|
-
| iOS | Implemented |
|
|
241
|
-
| Android | Pending |
|
|
242
|
-
|
|
243
|
-
---
|
|
244
|
-
|
|
245
|
-
## iOS Implementation
|
|
246
|
-
|
|
247
|
-
### Initializer
|
|
248
|
-
|
|
249
|
-
<!-- IF SIMPLE: -->
|
|
250
|
-
```swift
|
|
251
|
-
{INIT_SIGNATURE}
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
#### Parameters
|
|
255
|
-
|
|
256
|
-
| Parameter | Type | Default | Description |
|
|
257
|
-
|-----------|------|---------|-------------|
|
|
258
|
-
| `{param}` | `{Type}` | {default} | {description} |
|
|
259
|
-
|
|
260
|
-
<!-- IF COMPLEX: -->
|
|
261
|
-
```swift
|
|
262
|
-
// Chain modifiers (recommended)
|
|
263
|
-
{ComponentName} { /* dependency closure */ }
|
|
264
|
-
.{modifier}({value})
|
|
265
|
-
|
|
266
|
-
// Configuration closure
|
|
267
|
-
{ComponentName} { config in
|
|
268
|
-
config
|
|
269
|
-
.{modifier}({value})
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
// Direct configuration
|
|
273
|
-
{ComponentName}(configuration: {ComponentName}Configuration(
|
|
274
|
-
{param}: {value}
|
|
275
|
-
))
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
#### Configuration Properties
|
|
279
|
-
|
|
280
|
-
| Property | Type | Default | Description |
|
|
281
|
-
|----------|------|---------|-------------|
|
|
282
|
-
| `{param}` | `{Type}` | {default} | {description} |
|
|
283
|
-
|
|
284
|
-
#### Chain Modifiers
|
|
285
|
-
|
|
286
|
-
Auto-generated by `@GenerateChainModifiers`.
|
|
287
|
-
|
|
288
|
-
| Modifier | Type | Description |
|
|
289
|
-
|----------|------|-------------|
|
|
290
|
-
| `.{property}(_:)` | `{Type}` | {description} |
|
|
291
|
-
|
|
292
|
-
<!-- END complexity branching -->
|
|
293
|
-
|
|
294
|
-
### Usage
|
|
295
|
-
|
|
296
|
-
```swift
|
|
297
|
-
import UIComponents
|
|
298
|
-
|
|
299
|
-
{USAGE_CODE}
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
### Testing Identifiers - iOS
|
|
303
|
-
|
|
304
|
-
| Element | iOS Usage |
|
|
305
|
-
|---------|-----------|
|
|
306
|
-
| {element} | `.accessibilityIdentifier(.{ComponentName}.{element})` |
|
|
307
|
-
|
|
308
|
-
<!-- Skip if no testing identifiers -->
|
|
309
|
-
|
|
310
|
-
### Localization - iOS
|
|
311
|
-
|
|
312
|
-
| Element | iOS Usage |
|
|
313
|
-
|---------|-----------|
|
|
314
|
-
| {element} | `Text(.{ComponentName}.{element})` |
|
|
315
|
-
|
|
316
|
-
<!-- Skip if no localization keys -->
|
|
317
|
-
|
|
318
|
-
### Accessibility - iOS
|
|
319
|
-
|
|
320
|
-
| Element | iOS Usage |
|
|
321
|
-
|---------|-----------|
|
|
322
|
-
| {element} | `.accessibilityLabel(.{ComponentName}.{element})` |
|
|
323
|
-
|
|
324
|
-
<!-- Skip if no accessibility keys -->
|
|
325
|
-
|
|
326
|
-
### Analytics - iOS
|
|
327
|
-
|
|
328
|
-
#### {event_element}
|
|
329
|
-
|
|
330
|
-
**Modifier:**
|
|
331
|
-
|
|
332
|
-
```swift
|
|
333
|
-
{ANALYTICS_MODIFIER_CODE_FROM_PASS2}
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
**Firebase Schema:**
|
|
337
|
-
|
|
338
|
-
```json
|
|
339
|
-
{FIREBASE_SCHEMA_JSON}
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
<!-- Skip if no analytics events -->
|
|
343
|
-
|
|
344
|
-
---
|
|
345
|
-
|
|
346
|
-
## Code Connect
|
|
347
|
-
|
|
348
|
-
| Property | Value |
|
|
349
|
-
|----------|-------|
|
|
350
|
-
| Status | Published |
|
|
351
|
-
| Strategy | {CODE_CONNECT_STRATEGY} |
|
|
352
|
-
| File | `{ComponentName}.figma.swift` |
|
|
353
|
-
|
|
354
|
-
<!-- Strategy from pass1/component_properties.json codeConnectStrategy -->
|
|
355
|
-
<!-- If Code Connect was not published (Phase 6 skipped), set Status = Pending -->
|
|
356
|
-
|
|
357
|
-
---
|
|
358
|
-
|
|
359
|
-
## Snapshot Tests
|
|
360
|
-
|
|
361
|
-
*Reference snapshots generated by `{ComponentName}SnapshotTests`.*
|
|
362
|
-
|
|
363
|
-
### {Category}
|
|
364
|
-
|
|
365
|
-
| Variant | Code | Light | Dark |
|
|
366
|
-
|---------|------|-------|------|
|
|
367
|
-
| **{VariantName}** | `{ComponentName}({param}: .{value})` | [[/{wikiCategory}/{componentName}/assets/ios_light_{variant}.png]] | [[/{wikiCategory}/{componentName}/assets/ios_dark_{variant}.png]] |
|
|
368
|
-
|
|
369
|
-
<!-- Group by test category from MARK comments in snapshot test file -->
|
|
370
|
-
<!-- Code column: full init using preferred style (SIMPLE: direct init, COMPLEX: chain modifiers) -->
|
|
371
|
-
<!-- Pair light/dark for same variant side by side -->
|
|
372
|
-
<!-- Skip this section if no snapshot tests exist -->
|
|
373
|
-
|
|
374
|
-
### RTL Variants (Arabic)
|
|
375
|
-
|
|
376
|
-
| Variant | Code | Light | Dark |
|
|
377
|
-
|---------|------|-------|------|
|
|
378
|
-
| **{VariantName}** | `{ComponentName}({param}: "{arabicText}")` | [[/{wikiCategory}/{componentName}/assets/ios_rtl_light_{variant}.png]] | [[/{wikiCategory}/{componentName}/assets/ios_rtl_dark_{variant}.png]] |
|
|
379
|
-
|
|
380
|
-
<!-- RTL snapshots use ios_rtl_ prefix. Arabic text from phase-5b Arabic Sample Text table. -->
|
|
381
|
-
<!-- Skip if no RTL snapshot tests exist -->
|
|
382
|
-
|
|
383
|
-
---
|
|
384
|
-
|
|
385
|
-
## Changelog
|
|
386
|
-
|
|
387
|
-
| Date | Change |
|
|
388
|
-
|------|--------|
|
|
389
|
-
| {DATE} | Initial documentation |
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
**IMPORTANT:**
|
|
393
|
-
- Replace ALL template variables with actual data.
|
|
394
|
-
- Remove ALL HTML comments (<!-- ... -->) from final output.
|
|
395
|
-
- Include only sections that have data - skip empty optional sections entirely.
|
|
396
|
-
- The `## iOS Implementation` heading is the split marker. Everything above is shared/cross-platform, everything from `## iOS Implementation` onward is iOS-specific. The standalone `/figma-to-swift-ui-confluence` skill uses this marker to split into two Confluence XHTML files.
|
|
397
|
-
|
|
398
|
-
---
|
|
399
|
-
|
|
400
|
-
## GATE 3: VALIDATE_MARKDOWN
|
|
401
|
-
|
|
402
|
-
Run the validation script:
|
|
403
|
-
|
|
404
|
-
```bash
|
|
405
|
-
python3 .instructions/figma/figma-to-swiftui/scripts/validate-phase7a.py \
|
|
406
|
-
--wiki-path "{wikiComponentPath}" \
|
|
407
|
-
--component-name "{ComponentName}" \
|
|
408
|
-
--mode wiki
|
|
409
|
-
```
|
|
410
|
-
|
|
411
|
-
The script outputs JSON with `status`, `violations`, `warnings`, and `stats`.
|
|
412
|
-
|
|
413
|
-
### What the script checks in wiki mode
|
|
414
|
-
|
|
415
|
-
**{ComponentName}.md - Structure:**
|
|
416
|
-
- Required sections: `## Overview`, `## Testing Identifiers`, `## Localization Keys`, `## Accessibility`, `## Analytics Events`, `## Sub-Components`, `## Platform Implementations`, `## Changelog`
|
|
417
|
-
- `## iOS Implementation` marker present
|
|
418
|
-
- Under iOS: `### Initializer`, `### Usage`, `### Snapshot Tests` (if snapshot assets exist)
|
|
419
|
-
|
|
420
|
-
**Content integrity:**
|
|
421
|
-
- No unreplaced template variables (`{ComponentName}`, `{DESCRIPTION}`, etc.)
|
|
422
|
-
- No remaining template comments (`<!-- IF`, `<!-- END`, `<!-- ELSE`)
|
|
423
|
-
|
|
424
|
-
**Asset reference integrity:**
|
|
425
|
-
- Every `[[...assets/{filename}` reference (with or without `|alt`) has a matching file in `{wikiComponentPath}/assets/`
|
|
426
|
-
- Orphan detection: files in `assets/` not referenced by markdown (warning, not failure)
|
|
427
|
-
- No `|alt` inside table rows (pipe breaks table columns)
|
|
428
|
-
- `screenshot.png` exists
|
|
429
|
-
|
|
430
|
-
**Snapshot coverage:**
|
|
431
|
-
- Every snapshot variant has both `ios_light_{variant}.png` AND `ios_dark_{variant}.png`
|
|
432
|
-
- Every snapshot asset is referenced in the markdown
|
|
433
|
-
- RTL: same check for `ios_rtl_light_` / `ios_rtl_dark_` pairs
|
|
434
|
-
|
|
435
|
-
### On failure
|
|
436
|
-
|
|
437
|
-
Fix violations, re-generate markdown, re-run validation.
|
|
438
|
-
|
|
439
|
-
```
|
|
440
|
-
STATUS: HALT
|
|
441
|
-
PHASE: phase-7a
|
|
442
|
-
GATE: VALIDATE_MARKDOWN
|
|
443
|
-
REASON: Wiki markdown validation failed.
|
|
444
|
-
VIOLATIONS: {violations from script JSON}
|
|
445
|
-
WARNINGS: {warnings from script JSON}
|
|
446
|
-
STATS: {stats from script JSON}
|
|
447
|
-
COMPLETED_GATES: [PRE_CHECK, CREATE_WIKI_STRUCTURE, GENERATE_MARKDOWN]
|
|
448
|
-
USER_ACTION_REQUIRED: Fix the violations listed above and re-generate the markdown.
|
|
449
|
-
```
|
|
450
|
-
|
|
451
|
-
---
|
|
452
|
-
|
|
453
|
-
## GATE 4: UPDATE_SIDEBAR
|
|
454
|
-
|
|
455
|
-
**Pre-condition**: Ensure the wiki is up-to-date before regenerating:
|
|
456
|
-
```bash
|
|
457
|
-
cd {wikiRoot}
|
|
458
|
-
git pull origin master 2>/dev/null || true
|
|
459
|
-
```
|
|
460
|
-
|
|
461
|
-
The sidebar is generated deterministically from the wiki directory structure by `sidebar-generator.py`. Do NOT manually edit `_Sidebar.md`.
|
|
462
|
-
|
|
463
|
-
Run the generator:
|
|
464
|
-
```bash
|
|
465
|
-
python3 .instructions/figma/figma-to-swiftui/scripts/sidebar-generator.py --wiki-root {wikiRoot}
|
|
466
|
-
```
|
|
467
|
-
|
|
468
|
-
This script scans `DesignSystemCore/`, `MobileAppComponents/`, and `VisualAssets/` folders, then produces a sorted, idempotent `_Sidebar.md`. Every run with the same directory state produces identical output - eliminating merge conflicts.
|
|
469
|
-
|
|
470
|
-
**Post-validation (HARD GATE - must pass to proceed)**:
|
|
471
|
-
```bash
|
|
472
|
-
grep -q '\[\[{ComponentName}\]\]' {wikiRoot}/_Sidebar.md
|
|
473
|
-
```
|
|
474
|
-
If grep exits non-zero → HALT:
|
|
475
|
-
```
|
|
476
|
-
STATUS: HALT
|
|
477
|
-
PHASE: phase-7a
|
|
478
|
-
GATE: UPDATE_SIDEBAR
|
|
479
|
-
REASON: _Sidebar.md does not contain [[{ComponentName}]] after sidebar-generator.py run.
|
|
480
|
-
USER_ACTION_REQUIRED: Verify the component wiki folder exists under the correct section directory and re-run sidebar-generator.py.
|
|
481
|
-
```
|
|
482
|
-
Do NOT proceed to GATE 5 until this validation passes.
|
|
483
|
-
|
|
484
|
-
---
|
|
485
|
-
|
|
486
|
-
## GATE 5: UPDATE_STATUS_TABLE
|
|
487
|
-
|
|
488
|
-
The status page is generated by `confluence-component-status.py`, not manually edited.
|
|
489
|
-
Run the script to regenerate it with the newly implemented component included:
|
|
490
|
-
|
|
491
|
-
```bash
|
|
492
|
-
python3 .instructions/figma/figma-to-swiftui/scripts/confluence-component-status.py
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
The script reads the component index and produces `{wikiRoot}/ComponentImplementationStatus.md` with the current status of all components. The newly implemented component will appear as ✅ with a `[[wiki-link]]` automatically.
|
|
496
|
-
|
|
497
|
-
---
|
|
498
|
-
|
|
499
|
-
## GATE 6: UPDATE_REGISTRY
|
|
500
|
-
|
|
501
|
-
Run the Phase 7 finalize script to mark `wiki` in the component registry:
|
|
502
|
-
|
|
503
|
-
```bash
|
|
504
|
-
python3 .instructions/figma/figma-to-swiftui/scripts/phase7-finalize.py \
|
|
505
|
-
--node-id "{nodeId}" \
|
|
506
|
-
--platform ios
|
|
507
|
-
```
|
|
508
|
-
|
|
509
|
-
| Result | Action |
|
|
510
|
-
|--------|--------|
|
|
511
|
-
| Exit 0, `"action": "updated"` | `status.ios.wiki` set green, `against = implemented.version` - proceed |
|
|
512
|
-
| Exit 0, `"action": "already_current"` | Already marked against current implemented.version - proceed |
|
|
513
|
-
| Exit 0, `"action": "created"` | New registry file created - proceed |
|
|
514
|
-
| Exit 1 | HALT - registry update failed |
|
|
515
|
-
|
|
516
|
-
**Why this matters:** This is the single source of truth for `status.ios.wiki`. The script records `against = status.ios.implemented.version` so the flag automatically drops to yellow on the next Phase 4 version bump until wiki pages are refreshed. `figma-iteration-commit` reads this and syncs the GitHub issue via `update-issue-from-registry.py`.
|
|
517
|
-
|
|
518
|
-
FAIL →
|
|
519
|
-
```
|
|
520
|
-
STATUS: HALT
|
|
521
|
-
PHASE: phase-7a
|
|
522
|
-
GATE: UPDATE_REGISTRY
|
|
523
|
-
REASON: phase7-finalize.py failed.
|
|
524
|
-
COMPLETED_GATES: [PRE_CHECK, CREATE_WIKI_STRUCTURE, GENERATE_MARKDOWN, VALIDATE_MARKDOWN, UPDATE_SIDEBAR, UPDATE_STATUS_TABLE]
|
|
525
|
-
USER_ACTION_REQUIRED: Check script error output; verify node-id matches the registry.
|
|
526
|
-
```
|
|
527
|
-
|
|
528
|
-
---
|
|
529
|
-
|
|
530
|
-
## GATE 7: UPDATE_HISTORY
|
|
531
|
-
|
|
532
|
-
Append to `{artifactPath}/IMPLEMENTATION_HISTORY.md`:
|
|
533
|
-
|
|
534
|
-
```markdown
|
|
535
|
-
## Phase 7A: Wiki Documentation
|
|
536
|
-
- Status: Complete
|
|
537
|
-
- Wiki Page: {wikiComponentPath}/{ComponentName}.md
|
|
538
|
-
- Assets: {COUNT} screenshots
|
|
539
|
-
- Validation: Passed
|
|
540
|
-
- Sidebar: Updated
|
|
541
|
-
- Status Table: Updated
|
|
542
|
-
```
|
|
543
|
-
|
|
544
|
-
---
|
|
545
|
-
|
|
546
|
-
## VALIDATION CHECKLIST
|
|
547
|
-
|
|
548
|
-
```
|
|
549
|
-
[ ] {wikiComponentPath}/{ComponentName}.md exists
|
|
550
|
-
[ ] {wikiComponentPath}/assets/screenshot.png exists
|
|
551
|
-
[ ] Markdown has ## iOS Implementation split marker
|
|
552
|
-
[ ] Main sections present: Variants, Overview, Testing IDs, Localization, Accessibility, Analytics, Sub-Components, Platform Implementations, Changelog
|
|
553
|
-
[ ] iOS sections present: Initializer, Usage, Code Connect, Snapshot Tests (if snapshots exist)
|
|
554
|
-
[ ] All images use wiki syntax: [[/...]]
|
|
555
|
-
[ ] No image alt text (|alt) used inside markdown tables
|
|
556
|
-
[ ] All template variables replaced
|
|
557
|
-
[ ] No HTML comments remaining
|
|
558
|
-
[ ] All referenced image filenames exist in assets/
|
|
559
|
-
[ ] _Sidebar.md contains [[{ComponentName}]]
|
|
560
|
-
[ ] ComponentImplementationStatus.md contains row for component
|
|
561
|
-
[ ] phase7-finalize.py passed (status.ios.wiki updated)
|
|
562
|
-
[ ] IMPLEMENTATION_HISTORY.md updated with Phase 7A entry
|
|
563
|
-
```
|
|
564
|
-
|
|
565
|
-
---
|
|
566
|
-
|
|
567
|
-
## SUCCESS OUTPUT
|
|
568
|
-
|
|
569
|
-
```
|
|
570
|
-
STATUS: COMPLETE
|
|
571
|
-
PHASE: phase-7a
|
|
572
|
-
GATES_PASSED: [PRE_CHECK, CREATE_WIKI_STRUCTURE, GENERATE_MARKDOWN, VALIDATE_MARKDOWN, UPDATE_SIDEBAR, UPDATE_STATUS_TABLE, UPDATE_REGISTRY, UPDATE_HISTORY]
|
|
573
|
-
ARTIFACTS_CREATED:
|
|
574
|
-
- {wikiComponentPath}/{ComponentName}.md (validated)
|
|
575
|
-
- {wikiComponentPath}/assets/ ({COUNT} screenshots)
|
|
576
|
-
- {wikiRoot}/_Sidebar.md (updated)
|
|
577
|
-
- {wikiRoot}/ComponentImplementationStatus.md (updated)
|
|
578
|
-
- {artifactPath}/IMPLEMENTATION_HISTORY.md (updated)
|
|
579
|
-
SUMMARY: Wiki documentation generated. {SECTION_COUNT} sections. {SCREENSHOT_COUNT} assets. Ready for phase-7b commit+push.
|
|
580
|
-
```
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# PHASE 8 - Cleanup
|
|
2
|
-
|
|
3
|
-
Remove generated artifacts that are no longer needed after upload, to avoid bloating the codebase.
|
|
4
|
-
PREV: Phase 7B (Confluence Upload)
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## PRE-CHECK
|
|
9
|
-
|
|
10
|
-
Read `{artifactPath}/IMPLEMENTATION_HISTORY.md`.
|
|
11
|
-
|
|
12
|
-
Verify Phase 7B is complete (has "Phase 7B" section with "Status: Complete").
|
|
13
|
-
|
|
14
|
-
If Phase 7B is not complete → HALT. Do not delete artifacts that haven't been uploaded yet.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## GATE 1: DELETE CONFLUENCE ARTIFACTS
|
|
19
|
-
|
|
20
|
-
If `{artifactPath}/confluence/` exists AND Phase 7B is complete:
|
|
21
|
-
|
|
22
|
-
Delete `{artifactPath}/confluence/` (the entire directory including `assets/`, `main.html`, `ios.html`).
|
|
23
|
-
|
|
24
|
-
These are local XHTML generation artifacts. The content is live on Confluence - the local copy is only needed during Phase 7A generation and 7B upload.
|
|
25
|
-
|
|
26
|
-
If confluence directory does not exist → skip (already cleaned or never generated locally).
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## GATE 2: UPDATE IMPLEMENTATION HISTORY
|
|
31
|
-
|
|
32
|
-
Append to `{artifactPath}/IMPLEMENTATION_HISTORY.md`:
|
|
33
|
-
|
|
34
|
-
```markdown
|
|
35
|
-
## Phase 8: Cleanup
|
|
36
|
-
- Confluence artifacts: Deleted (uploaded in Phase 7B)
|
|
37
|
-
- Date: {DD.MM.YYYY}
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## PHASE OUTPUT
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
STATUS: COMPLETE
|
|
46
|
-
PHASE: phase-8
|
|
47
|
-
GATES_PASSED: [PRE_CHECK, DELETE_CONFLUENCE_ARTIFACTS, UPDATE_HISTORY]
|
|
48
|
-
DELETED:
|
|
49
|
-
- {artifactPath}/confluence/ ({size})
|
|
50
|
-
SUMMARY: Cleanup complete. Removed {total_size} of generated Confluence artifacts.
|
|
51
|
-
```
|