@mmerterden/multi-agent-pipeline 8.6.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 +2623 -0
- package/LICENSE +21 -0
- package/README.md +852 -0
- package/docs/FIGMA_PIPELINE.md +138 -0
- package/docs/GENERICITY-REVIEW.md +277 -0
- package/docs/STABILITY-FIX-PLAN.md +168 -0
- package/docs/adr/0001-three-model-triage.md +81 -0
- package/docs/adr/0002-instruction-driven-flag.md +62 -0
- package/docs/adr/0003-unified-shared-skills.md +55 -0
- package/docs/adr/0004-zero-dependency-philosophy.md +60 -0
- package/docs/adr/0005-lazy-phase-docs.md +68 -0
- package/docs/adr/0006-skills-core-external-split.md +52 -0
- package/docs/adr/0007-multi-tool-adapter-framework.md +110 -0
- package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +98 -0
- package/docs/adr/README.md +33 -0
- package/docs/architecture.md +181 -0
- package/docs/best-practices.md +93 -0
- package/docs/features.md +274 -0
- package/docs/performance.md +116 -0
- package/docs/recovery-guide.md +479 -0
- package/index.js +76 -0
- package/install/_adapters.mjs +69 -0
- package/install/_common.mjs +150 -0
- package/install/_copilot-instructions.mjs +32 -0
- package/install/_dev-only-files.mjs +23 -0
- package/install/_platform-filter.mjs +132 -0
- package/install/_telemetry.mjs +79 -0
- package/install/claude.mjs +332 -0
- package/install/copilot.mjs +254 -0
- package/install/index.mjs +179 -0
- package/install/templates/copilot-instructions.md +319 -0
- package/install.js +24 -0
- package/package.json +78 -0
- package/pipeline/adapters/_base.mjs +288 -0
- package/pipeline/adapters/copilot-chat.mjs +158 -0
- package/pipeline/adapters/cursor.mjs +187 -0
- package/pipeline/agents/android-architect.md +42 -0
- package/pipeline/agents/backend-architect.md +43 -0
- package/pipeline/agents/code-reviewer.md +57 -0
- package/pipeline/agents/dev-critic.md +148 -0
- package/pipeline/agents/explorer.md +34 -0
- package/pipeline/agents/ios-architect.md +41 -0
- package/pipeline/agents/security-auditor.md +98 -0
- package/pipeline/agents/task-clarifier.md +113 -0
- package/pipeline/claude-md-template.md +55 -0
- package/pipeline/commands/archive-guard.md +45 -0
- package/pipeline/commands/deploy.md +54 -0
- package/pipeline/commands/figma-to-swiftui.md +295 -0
- package/pipeline/commands/multi-agent/_account-picker.md +90 -0
- package/pipeline/commands/multi-agent/_dev-context.md +111 -0
- package/pipeline/commands/multi-agent/_input-parser.md +43 -0
- package/pipeline/commands/multi-agent/_repo-picker.md +76 -0
- package/pipeline/commands/multi-agent/autopilot.md +116 -0
- package/pipeline/commands/multi-agent/channels.md +465 -0
- package/pipeline/commands/multi-agent/delete.md +66 -0
- package/pipeline/commands/multi-agent/dev-autopilot.md +120 -0
- package/pipeline/commands/multi-agent/dev-local-autopilot.md +110 -0
- package/pipeline/commands/multi-agent/dev-local.md +105 -0
- package/pipeline/commands/multi-agent/dev.md +246 -0
- package/pipeline/commands/multi-agent/diff-explain.md +68 -0
- package/pipeline/commands/multi-agent/help.md +422 -0
- package/pipeline/commands/multi-agent/issue.md +79 -0
- package/pipeline/commands/multi-agent/jira.md +132 -0
- package/pipeline/commands/multi-agent/kill.md +38 -0
- package/pipeline/commands/multi-agent/language.md +94 -0
- package/pipeline/commands/multi-agent/local-autopilot.md +139 -0
- package/pipeline/commands/multi-agent/local.md +117 -0
- package/pipeline/commands/multi-agent/log.md +25 -0
- package/pipeline/commands/multi-agent/manual-test.md +43 -0
- package/pipeline/commands/multi-agent/purge.md +39 -0
- package/pipeline/commands/multi-agent/refactor.md +188 -0
- package/pipeline/commands/multi-agent/refs/android-guide.md +250 -0
- package/pipeline/commands/multi-agent/refs/audit-guide.md +240 -0
- package/pipeline/commands/multi-agent/refs/backend-guide.md +135 -0
- package/pipeline/commands/multi-agent/refs/channels/confluence.md +153 -0
- package/pipeline/commands/multi-agent/refs/channels/issue-comment.md +141 -0
- package/pipeline/commands/multi-agent/refs/channels/jira.md +127 -0
- package/pipeline/commands/multi-agent/refs/channels/pr-review-actions.md +135 -0
- package/pipeline/commands/multi-agent/refs/channels/pr.md +139 -0
- package/pipeline/commands/multi-agent/refs/channels/wiki.md +66 -0
- package/pipeline/commands/multi-agent/refs/component-dispatch.md +92 -0
- package/pipeline/commands/multi-agent/refs/cross-cli-contract.md +326 -0
- package/pipeline/commands/multi-agent/refs/frontend-guide.md +136 -0
- package/pipeline/commands/multi-agent/refs/issue-jira-triad.md +104 -0
- package/pipeline/commands/multi-agent/refs/keychain.md +80 -0
- package/pipeline/commands/multi-agent/refs/knowledge.md +112 -0
- package/pipeline/commands/multi-agent/refs/multi-repo-integration-build.md +207 -0
- package/pipeline/commands/multi-agent/refs/phases/log-format.md +89 -0
- package/pipeline/commands/multi-agent/refs/phases/modes.md +156 -0
- package/pipeline/commands/multi-agent/refs/phases/operations.md +91 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-0-init.md +481 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-1-analysis.md +264 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-2-planning.md +278 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-3-dev.md +364 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-4-review.md +378 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-5-test.md +129 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-6-commit.md +339 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-7-report.md +361 -0
- package/pipeline/commands/multi-agent/refs/phases.md +187 -0
- package/pipeline/commands/multi-agent/refs/progress-contract.md +155 -0
- package/pipeline/commands/multi-agent/refs/rules.md +189 -0
- package/pipeline/commands/multi-agent/refs/swiftui-guide.md +254 -0
- package/pipeline/commands/multi-agent/refs/tracker-contract.md +256 -0
- package/pipeline/commands/multi-agent/refs/wiki-capture.md +109 -0
- package/pipeline/commands/multi-agent/resume.md +28 -0
- package/pipeline/commands/multi-agent/review.md +228 -0
- package/pipeline/commands/multi-agent/scan.md +74 -0
- package/pipeline/commands/multi-agent/search.md +97 -0
- package/pipeline/commands/multi-agent/setup.md +767 -0
- package/pipeline/commands/multi-agent/stack.md +48 -0
- package/pipeline/commands/multi-agent/status.md +38 -0
- package/pipeline/commands/multi-agent/sync.md +319 -0
- package/pipeline/commands/multi-agent/test.md +39 -0
- package/pipeline/commands/multi-agent/update.md +88 -0
- package/pipeline/commands/multi-agent.md +293 -0
- package/pipeline/commands/security-review.md +6 -0
- package/pipeline/commands/sim-test.md +256 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-1-analysis.json +25 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-2-plan.json +30 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-review.json +20 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-triage.json +15 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/task.json +12 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-1-analysis.json +29 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-2-plan.json +43 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-review.json +35 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-triage.json +35 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/task.json +12 -0
- package/pipeline/eval/golden-tasks/README.md +65 -0
- package/pipeline/eval/triage/01-empty-findings/expected.json +6 -0
- package/pipeline/eval/triage/01-empty-findings/input.json +5 -0
- package/pipeline/eval/triage/01-empty-findings/notes.md +7 -0
- package/pipeline/eval/triage/02-real-blocker/expected.json +15 -0
- package/pipeline/eval/triage/02-real-blocker/input.json +14 -0
- package/pipeline/eval/triage/02-real-blocker/notes.md +7 -0
- package/pipeline/eval/triage/03-out-of-scope-defer/expected.json +18 -0
- package/pipeline/eval/triage/03-out-of-scope-defer/input.json +14 -0
- package/pipeline/eval/triage/03-out-of-scope-defer/notes.md +10 -0
- package/pipeline/eval/triage/04-false-positive-reject/expected.json +18 -0
- package/pipeline/eval/triage/04-false-positive-reject/input.json +14 -0
- package/pipeline/eval/triage/04-false-positive-reject/notes.md +10 -0
- package/pipeline/eval/triage/05-mixed-classification/expected.json +43 -0
- package/pipeline/eval/triage/05-mixed-classification/input.json +38 -0
- package/pipeline/eval/triage/05-mixed-classification/notes.md +17 -0
- package/pipeline/eval/triage/06-severity-mismatch/expected.json +15 -0
- package/pipeline/eval/triage/06-severity-mismatch/input.json +14 -0
- package/pipeline/eval/triage/06-severity-mismatch/notes.md +9 -0
- package/pipeline/eval/triage/07-duplicate-reviewers/expected.json +27 -0
- package/pipeline/eval/triage/07-duplicate-reviewers/input.json +22 -0
- package/pipeline/eval/triage/07-duplicate-reviewers/notes.md +9 -0
- package/pipeline/eval/triage/08-style-misclassified/expected.json +18 -0
- package/pipeline/eval/triage/08-style-misclassified/input.json +14 -0
- package/pipeline/eval/triage/08-style-misclassified/notes.md +9 -0
- package/pipeline/eval/triage/09-cascading-finding/expected.json +23 -0
- package/pipeline/eval/triage/09-cascading-finding/input.json +22 -0
- package/pipeline/eval/triage/09-cascading-finding/notes.md +9 -0
- package/pipeline/eval/triage/10-deferred-crossref/expected.json +18 -0
- package/pipeline/eval/triage/10-deferred-crossref/input.json +14 -0
- package/pipeline/eval/triage/10-deferred-crossref/notes.md +9 -0
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/expected.json +27 -0
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/input.json +22 -0
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/notes.md +14 -0
- package/pipeline/eval/triage/README.md +54 -0
- package/pipeline/lib/account-resolver.sh +204 -0
- package/pipeline/lib/channels-multi-repo.sh +218 -0
- package/pipeline/lib/context-link-extractor.sh +192 -0
- package/pipeline/lib/credential-store-resolver.sh +57 -0
- package/pipeline/lib/credential-store.sh +226 -0
- package/pipeline/lib/fetch-confluence.sh +358 -0
- package/pipeline/lib/fetch-crashlytics.sh +314 -0
- package/pipeline/lib/fetch-fortify.sh +321 -0
- package/pipeline/lib/fetch-swagger.sh +270 -0
- package/pipeline/lib/issue-fetcher.sh +333 -0
- package/pipeline/lib/multi-repo-pipeline.sh +252 -0
- package/pipeline/lib/plan-todos.sh +284 -0
- package/pipeline/lib/post-pr-review.sh +374 -0
- package/pipeline/lib/repo-cache.sh +231 -0
- package/pipeline/lib/review-watch.sh +244 -0
- package/pipeline/lib/shadow-git.sh +222 -0
- package/pipeline/lib/submodule-detector.sh +177 -0
- package/pipeline/lib/vercel-deploy.sh +170 -0
- package/pipeline/preferences-template.json +132 -0
- package/pipeline/rules/app-store-guidelines.md +59 -0
- package/pipeline/rules/code-review.md +27 -0
- package/pipeline/rules/code-style.md +37 -0
- package/pipeline/rules/debugging.md +24 -0
- package/pipeline/rules/figma-pipeline.md +190 -0
- package/pipeline/rules/git-conventions.md +29 -0
- package/pipeline/rules/kotlin-android.md +92 -0
- package/pipeline/rules/performance.md +23 -0
- package/pipeline/rules/security.md +39 -0
- package/pipeline/rules/swiftui-qa.md +32 -0
- package/pipeline/rules/tdd.md +25 -0
- package/pipeline/rules/testing.md +37 -0
- package/pipeline/schemas/agent-state.schema.json +273 -0
- package/pipeline/schemas/analysis-output.schema.json +59 -0
- package/pipeline/schemas/clarify-output.schema.json +74 -0
- package/pipeline/schemas/dev-critic-output.schema.json +104 -0
- package/pipeline/schemas/diff-risk.schema.json +78 -0
- package/pipeline/schemas/figma-project-config.schema.json +372 -0
- package/pipeline/schemas/migrations/README.md +73 -0
- package/pipeline/schemas/migrations/figma-config-1.0.0-to-2.0.0.mjs +112 -0
- package/pipeline/schemas/migrations/prefs-2.0.0-to-2.1.0.mjs +75 -0
- package/pipeline/schemas/migrations/prefs-2.1.0-to-2.2.0.mjs +64 -0
- package/pipeline/schemas/migrations/prefs-2.2.0-to-2.3.0.mjs +36 -0
- package/pipeline/schemas/migrations/state-2.0.0-to-2.1.0.mjs +34 -0
- package/pipeline/schemas/plan-todos.schema.json +62 -0
- package/pipeline/schemas/planning-output.schema.json +57 -0
- package/pipeline/schemas/prefs.schema.json +1137 -0
- package/pipeline/schemas/reviewer-output.schema.json +55 -0
- package/pipeline/schemas/test-gap.schema.json +64 -0
- package/pipeline/schemas/token-budget.json +17 -0
- package/pipeline/schemas/triage-corpus.schema.json +31 -0
- package/pipeline/schemas/triage-output.schema.json +115 -0
- package/pipeline/scripts/.last-figma-sync-plan.json +23 -0
- package/pipeline/scripts/README-figma-smokes.md +34 -0
- package/pipeline/scripts/README.md +104 -0
- package/pipeline/scripts/aggregate-metrics.mjs +310 -0
- package/pipeline/scripts/audit-log-rotate.sh +61 -0
- package/pipeline/scripts/audit-log.sh +69 -0
- package/pipeline/scripts/benchmark-phase-0.sh +128 -0
- package/pipeline/scripts/build-skills-index.mjs +139 -0
- package/pipeline/scripts/classify-plan-safety.mjs +177 -0
- package/pipeline/scripts/cost-table.json +27 -0
- package/pipeline/scripts/diff-explain.mjs +276 -0
- package/pipeline/scripts/diff-risk-score.mjs +328 -0
- package/pipeline/scripts/eval-golden-tasks-live.mjs +294 -0
- package/pipeline/scripts/eval-golden-tasks.mjs +223 -0
- package/pipeline/scripts/eval-triage.mjs +171 -0
- package/pipeline/scripts/figma-placeholder-map.json +191 -0
- package/pipeline/scripts/fixtures/diff-risk-android.diff +40 -0
- package/pipeline/scripts/fixtures/diff-risk-ios.diff +48 -0
- package/pipeline/scripts/fixtures/install-layout.tsv +16 -0
- package/pipeline/scripts/fixtures/test-gap-node.diff +30 -0
- package/pipeline/scripts/fixtures/test-gap-python.diff +32 -0
- package/pipeline/scripts/gen-mode-dispatch.mjs +170 -0
- package/pipeline/scripts/gen-skills-index.mjs +90 -0
- package/pipeline/scripts/github-ssh-setup.sh +103 -0
- package/pipeline/scripts/import-figma-skills.sh +253 -0
- package/pipeline/scripts/keychain-save.sh +74 -0
- package/pipeline/scripts/keychain.py +294 -0
- package/pipeline/scripts/log-metric.sh +98 -0
- package/pipeline/scripts/match-skills.mjs +167 -0
- package/pipeline/scripts/memory-load.sh +46 -0
- package/pipeline/scripts/memory-save.sh +76 -0
- package/pipeline/scripts/migrate-prefs.mjs +390 -0
- package/pipeline/scripts/migrate-state.mjs +215 -0
- package/pipeline/scripts/output-quality-check.sh +125 -0
- package/pipeline/scripts/phase-banner.sh +158 -0
- package/pipeline/scripts/phase-tracker.sh +548 -0
- package/pipeline/scripts/pre-commit-check.sh +69 -0
- package/pipeline/scripts/pre-push-check.sh +77 -0
- package/pipeline/scripts/render-agent-log-cost.sh +149 -0
- package/pipeline/scripts/render-cost-summary.sh +137 -0
- package/pipeline/scripts/render-work-summary.sh +195 -0
- package/pipeline/scripts/repo-map.mjs +367 -0
- package/pipeline/scripts/run-aggregator.mjs +298 -0
- package/pipeline/scripts/scan-skills.sh +332 -0
- package/pipeline/scripts/search-logs.sh +291 -0
- package/pipeline/scripts/sign-skills.sh +67 -0
- package/pipeline/scripts/smoke-adapters.sh +207 -0
- package/pipeline/scripts/smoke-add-detail.sh +137 -0
- package/pipeline/scripts/smoke-agent-log-cost.sh +183 -0
- package/pipeline/scripts/smoke-agent-model-routing.sh +87 -0
- package/pipeline/scripts/smoke-bitbucket-contract.sh +223 -0
- package/pipeline/scripts/smoke-channels-flow.sh +130 -0
- package/pipeline/scripts/smoke-ci-workflows.sh +88 -0
- package/pipeline/scripts/smoke-clarify.sh +148 -0
- package/pipeline/scripts/smoke-commands-skills-parity.sh +87 -0
- package/pipeline/scripts/smoke-compliance-skills.sh +119 -0
- package/pipeline/scripts/smoke-cost-summary.sh +139 -0
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +198 -0
- package/pipeline/scripts/smoke-cross-phase-cohesion.sh +128 -0
- package/pipeline/scripts/smoke-delete-flow.sh +151 -0
- package/pipeline/scripts/smoke-dev-critic.sh +144 -0
- package/pipeline/scripts/smoke-diff-explain.sh +128 -0
- package/pipeline/scripts/smoke-diff-risk.sh +161 -0
- package/pipeline/scripts/smoke-dynamic-skill-loading.sh +160 -0
- package/pipeline/scripts/smoke-eval-live.sh +136 -0
- package/pipeline/scripts/smoke-existing-discovery-gate.sh +71 -0
- package/pipeline/scripts/smoke-figma-android-parity.sh +148 -0
- package/pipeline/scripts/smoke-figma-config-schema.sh +144 -0
- package/pipeline/scripts/smoke-figma-credential-store.sh +105 -0
- package/pipeline/scripts/smoke-figma-cross-cli-inventory.sh +177 -0
- package/pipeline/scripts/smoke-figma-dispatch.sh +123 -0
- package/pipeline/scripts/smoke-figma-skill-import.sh +174 -0
- package/pipeline/scripts/smoke-figma-sync.sh +149 -0
- package/pipeline/scripts/smoke-identity-isolation.sh +70 -0
- package/pipeline/scripts/smoke-install-layout.sh +241 -0
- package/pipeline/scripts/smoke-install-leak-gate.sh +125 -0
- package/pipeline/scripts/smoke-issue-comment-template.sh +86 -0
- package/pipeline/scripts/smoke-issue-jira-triad.sh +120 -0
- package/pipeline/scripts/smoke-keychain.sh +158 -0
- package/pipeline/scripts/smoke-language-axis.sh +109 -0
- package/pipeline/scripts/smoke-lib-scripts.sh +395 -0
- package/pipeline/scripts/smoke-migrate-state.sh +102 -0
- package/pipeline/scripts/smoke-mode-dispatch-drift.sh +158 -0
- package/pipeline/scripts/smoke-multi-repo-integration.sh +116 -0
- package/pipeline/scripts/smoke-multi-repo-worktree.sh +61 -0
- package/pipeline/scripts/smoke-no-token-prompt.sh +69 -0
- package/pipeline/scripts/smoke-pat-audit.sh +107 -0
- package/pipeline/scripts/smoke-per-repo-memory.sh +156 -0
- package/pipeline/scripts/smoke-personal-data.sh +82 -0
- package/pipeline/scripts/smoke-phase-0-multi-repo.sh +170 -0
- package/pipeline/scripts/smoke-phase-6-multi.sh +79 -0
- package/pipeline/scripts/smoke-phase-banner.sh +101 -0
- package/pipeline/scripts/smoke-phase-tracker.sh +255 -0
- package/pipeline/scripts/smoke-phase0-bridge-contract.sh +241 -0
- package/pipeline/scripts/smoke-phase4-triage.sh +142 -0
- package/pipeline/scripts/smoke-plan-approval-gate.sh +71 -0
- package/pipeline/scripts/smoke-plan-safety.sh +139 -0
- package/pipeline/scripts/smoke-plan-todos.sh +193 -0
- package/pipeline/scripts/smoke-pr-review-actions.sh +152 -0
- package/pipeline/scripts/smoke-pre-commit.sh +138 -0
- package/pipeline/scripts/smoke-pref-migration.sh +224 -0
- package/pipeline/scripts/smoke-prefs-language.sh +134 -0
- package/pipeline/scripts/smoke-progress-contract.sh +118 -0
- package/pipeline/scripts/smoke-push-retry.sh +75 -0
- package/pipeline/scripts/smoke-readme-counts.sh +120 -0
- package/pipeline/scripts/smoke-repo-map.sh +300 -0
- package/pipeline/scripts/smoke-review-watch.sh +134 -0
- package/pipeline/scripts/smoke-run-aggregator.sh +216 -0
- package/pipeline/scripts/smoke-schema-validation.sh +173 -0
- package/pipeline/scripts/smoke-search.sh +187 -0
- package/pipeline/scripts/smoke-shadow-git.sh +175 -0
- package/pipeline/scripts/smoke-skill-authoring.sh +142 -0
- package/pipeline/scripts/smoke-skill-language.sh +83 -0
- package/pipeline/scripts/smoke-skill-manifest.sh +138 -0
- package/pipeline/scripts/smoke-skill-scan.sh +198 -0
- package/pipeline/scripts/smoke-stack-swap.sh +132 -0
- package/pipeline/scripts/smoke-subagent-validators.sh +105 -0
- package/pipeline/scripts/smoke-sync-delegation.sh +74 -0
- package/pipeline/scripts/smoke-sync-parity.sh +92 -0
- package/pipeline/scripts/smoke-tasklist-ordering.sh +111 -0
- package/pipeline/scripts/smoke-telemetry.sh +147 -0
- package/pipeline/scripts/smoke-test-gap.sh +183 -0
- package/pipeline/scripts/smoke-token-budget.sh +67 -0
- package/pipeline/scripts/smoke-tracker-contract.sh +129 -0
- package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +65 -0
- package/pipeline/scripts/smoke-triage-memory.sh +174 -0
- package/pipeline/scripts/smoke-url-enrichment.sh +70 -0
- package/pipeline/scripts/smoke-validator-contradiction.sh +67 -0
- package/pipeline/scripts/smoke-vercel-deploy-redact.sh +129 -0
- package/pipeline/scripts/smoke-wiki-integration.sh +146 -0
- package/pipeline/scripts/smoke-work-summary.sh +163 -0
- package/pipeline/scripts/smoke-worktree-path-convention.sh +86 -0
- package/pipeline/scripts/smoke-write-state.sh +115 -0
- package/pipeline/scripts/stack-swap.sh +182 -0
- package/pipeline/scripts/sync-figma-source.sh +228 -0
- package/pipeline/scripts/sync-parity-check.sh +135 -0
- package/pipeline/scripts/test-gap-rules/android.json +25 -0
- package/pipeline/scripts/test-gap-rules/ios.json +29 -0
- package/pipeline/scripts/test-gap-rules/node.json +17 -0
- package/pipeline/scripts/test-gap-rules/python.json +19 -0
- package/pipeline/scripts/test-gap-scan.mjs +343 -0
- package/pipeline/scripts/token-budget-report.mjs +145 -0
- package/pipeline/scripts/triage-memory.mjs +258 -0
- package/pipeline/scripts/ui-tree-dumper.swift +122 -0
- package/pipeline/scripts/uninstall.mjs +331 -0
- package/pipeline/scripts/update-issue-progress.sh +146 -0
- package/pipeline/scripts/validate-analysis.mjs +132 -0
- package/pipeline/scripts/validate-diff-risk.mjs +117 -0
- package/pipeline/scripts/validate-planning.mjs +180 -0
- package/pipeline/scripts/validate-reviewer.mjs +131 -0
- package/pipeline/scripts/validate-schemas.mjs +88 -0
- package/pipeline/scripts/validate-test-gap.mjs +90 -0
- package/pipeline/scripts/validate-triage.mjs +175 -0
- package/pipeline/scripts/verify-skills.sh +126 -0
- package/pipeline/scripts/write-state.mjs +175 -0
- package/pipeline/skills/.skill-manifest.json +779 -0
- package/pipeline/skills/.skills-index.json +1771 -0
- package/pipeline/skills/figma-android/README.md +36 -0
- package/pipeline/skills/figma-android/figma-component-code-connect/SKILL.md +62 -0
- package/pipeline/skills/figma-android/figma-component-implement/SKILL.md +158 -0
- package/pipeline/skills/figma-android/figma-component-test/SKILL.md +120 -0
- package/pipeline/skills/figma-android/figma-component-wiki/SKILL.md +35 -0
- package/pipeline/skills/figma-android/figma-to-component/SKILL.md +124 -0
- package/pipeline/skills/figma-common/README.md +57 -0
- package/pipeline/skills/figma-common/figma-cli-iterate/SKILL.md +277 -0
- package/pipeline/skills/figma-common/figma-cli-iterate-mend/SKILL.md +498 -0
- package/pipeline/skills/figma-common/figma-cli-lean-iterate/SKILL.md +283 -0
- package/pipeline/skills/figma-common/figma-cli-skip/SKILL.md +362 -0
- package/pipeline/skills/figma-common/figma-commit/COMMON_REBASE.md +206 -0
- package/pipeline/skills/figma-common/figma-commit/REVIEW.md +337 -0
- package/pipeline/skills/figma-common/figma-commit/SKILL.md +211 -0
- package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +218 -0
- package/pipeline/skills/figma-common/figma-component-start/SKILL.md +246 -0
- package/pipeline/skills/figma-common/figma-component-status-update/SKILL.md +73 -0
- package/pipeline/skills/figma-common/figma-fix/SKILL.md +316 -0
- package/pipeline/skills/figma-common/figma-form-integration/SKILL.md +542 -0
- package/pipeline/skills/figma-common/figma-issue/SKILL.md +745 -0
- package/pipeline/skills/figma-common/figma-iterate/SKILL.md +203 -0
- package/pipeline/skills/figma-common/figma-iteration-commit/SKILL.md +1015 -0
- package/pipeline/skills/figma-common/figma-mend/SKILL.md +331 -0
- package/pipeline/skills/figma-common/figma-price-integration/SKILL.md +398 -0
- package/pipeline/skills/figma-common/figma-remote-mcp-auth/SKILL.md +104 -0
- package/pipeline/skills/figma-common/figma-review/SKILL.md +395 -0
- package/pipeline/skills/figma-common/figma-setup/SKILL.md +514 -0
- package/pipeline/skills/figma-common/figma-setup/scripts/fetch-mcp-token.py +592 -0
- package/pipeline/skills/figma-common/figma-skip/SKILL.md +129 -0
- package/pipeline/skills/figma-common/figma-ui-patterns/SKILL.md +104 -0
- package/pipeline/skills/figma-common/figma-utility/SKILL.md +274 -0
- package/pipeline/skills/figma-common/figma-utility/scripts/figma-utility.py +808 -0
- package/pipeline/skills/figma-common/figma-validate/SKILL.md +633 -0
- package/pipeline/skills/figma-common/performance-iteration-commit-all/SKILL.md +711 -0
- package/pipeline/skills/figma-common/performance-review-next/SKILL.md +233 -0
- package/pipeline/skills/figma-common/performance-start/SKILL.md +425 -0
- package/pipeline/skills/figma-common/performance-swiftui/SKILL.md +706 -0
- package/pipeline/skills/figma-common/performance-tour/SKILL.md +418 -0
- package/pipeline/skills/figma-ios/REVIEW_CHECKLIST.md +67 -0
- package/pipeline/skills/figma-ios/figma-component-code-connect/SKILL.md +178 -0
- package/pipeline/skills/figma-ios/figma-component-implement/SKILL.md +184 -0
- package/pipeline/skills/figma-ios/figma-component-test/SKILL.md +219 -0
- package/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md +274 -0
- package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +401 -0
- package/pipeline/skills/figma-ios/figma-to-component/halt-return-protocol.md +57 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-0-init.md +307 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1-gathering.md +119 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md +174 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md +333 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2a-testing-identifiers.md +368 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2b-localization.md +393 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2c-accessibility.md +617 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2d-analytics.md +352 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3-orchestrator.md +337 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3a-location.md +206 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3b-tokens.md +235 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3c-nested.md +214 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3d-patterns.md +871 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3e-assets.md +156 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3f-utilities.md +175 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3g-property-coverage.md +176 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3h-variant-config.md +333 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4-orchestrator.md +412 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4a-configuration.md +336 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4b-view.md +695 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4c-documentation.md +332 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4d-preview.md +380 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4e-modifiers.md +262 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5-orchestrator.md +482 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5a-viewinspector.md +274 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5b-snapshot.md +636 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5c-unit.md +142 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +547 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7-wiki.md +39 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-confluence-generate.md +659 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-wiki-generate.md +580 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-8-cleanup.md +51 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/accessibility.md +129 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/analytics-events.md +64 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +531 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-api.md +89 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-xhtml.md +155 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/figma-to-swiftui-effects.md +196 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/halt-return-protocol.md +57 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/localization-naming.md +89 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/macros.md +227 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/missing-tokens.md +157 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/orchestrator-discipline.md +90 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/registry.md +116 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/remote-mcp-script.md +153 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +130 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/scripts-inventory.md +218 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/snapshot-testing.md +188 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/subcomponent-graph.md +93 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md +98 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +261 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/viewinspector.md +147 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md +182 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/apply-author-login-map.py +185 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/backfill-status.py +609 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/build-author-registry.py +332 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/bulk-sync-issues.py +261 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-data-gather.py +184 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-publish.sh +188 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py +768 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status.py +191 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-data-gather.py +420 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.json +94 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-publish.py +336 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-subcomponent-graph.py +391 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-update.py +292 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/__init__.py +1 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/issue_sync_propagate.py +93 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/registry_writer.py +299 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_backfill_status.py +343 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update.py +206 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update_http.py +149 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_phase_clis.py +281 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_registry_writer.py +332 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_issue.py +176 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_review.py +98 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue.py +298 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue_gh.py +195 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +1298 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase2-finalize.py +228 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase3-scripts.py +1089 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase4-finalize.py +141 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase5-finalize.py +106 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase6-finalize.py +162 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase7-finalize.py +105 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/register-icons-codeconnect.py +179 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/remote-mcp-fetch.py +260 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/resolve-author-logins.py +260 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/run-uicomponents-tests.sh +86 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/sidebar-generator.py +321 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/update-issue-from-registry.py +1470 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase4.sh +176 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase6.sh +147 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase7a.py +629 -0
- package/pipeline/skills/shared/README.md +212 -0
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +315 -0
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +348 -0
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +944 -0
- package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +51 -0
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +300 -0
- package/pipeline/skills/shared/core/multi-agent-delete/SKILL.md +63 -0
- package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +64 -0
- package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +56 -0
- package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +36 -0
- package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +42 -0
- package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +66 -0
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +292 -0
- package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +35 -0
- package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +38 -0
- package/pipeline/skills/shared/core/multi-agent-kill/SKILL.md +41 -0
- package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +87 -0
- package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +37 -0
- package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +53 -0
- package/pipeline/skills/shared/core/multi-agent-log/SKILL.md +28 -0
- package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +47 -0
- package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +42 -0
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +191 -0
- package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +31 -0
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +61 -0
- package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +61 -0
- package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +62 -0
- package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +309 -0
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +55 -0
- package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +41 -0
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +184 -0
- package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +44 -0
- package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +34 -0
- package/pipeline/skills/shared/external/accessibility-compliance-accessibility-audit/SKILL.md +45 -0
- package/pipeline/skills/shared/external/agentflow/SKILL.md +199 -0
- package/pipeline/skills/shared/external/alarmkit/SKILL.md +438 -0
- package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +584 -0
- package/pipeline/skills/shared/external/android-architecture/SKILL.md +407 -0
- package/pipeline/skills/shared/external/android-jetpack-compose-expert/SKILL.md +153 -0
- package/pipeline/skills/shared/external/android-performance/SKILL.md +736 -0
- package/pipeline/skills/shared/external/android-security/SKILL.md +577 -0
- package/pipeline/skills/shared/external/android_ui_verification/SKILL.md +66 -0
- package/pipeline/skills/shared/external/api-patterns/SKILL.md +85 -0
- package/pipeline/skills/shared/external/api-security-best-practices/SKILL.md +910 -0
- package/pipeline/skills/shared/external/app-clips/SKILL.md +436 -0
- package/pipeline/skills/shared/external/app-intents/SKILL.md +489 -0
- package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +1076 -0
- package/pipeline/skills/shared/external/app-store-changelog/SKILL.md +75 -0
- package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +409 -0
- package/pipeline/skills/shared/external/app-store-review/SKILL.md +411 -0
- package/pipeline/skills/shared/external/app-store-review/references/code-signing.md +259 -0
- package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +90 -0
- package/pipeline/skills/shared/external/app-store-review/references/rejection-patterns.md +152 -0
- package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +118 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +500 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +425 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +344 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +508 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +285 -0
- package/pipeline/skills/shared/external/architecture/SKILL.md +60 -0
- package/pipeline/skills/shared/external/authentication/SKILL.md +496 -0
- package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +211 -0
- package/pipeline/skills/shared/external/background-processing/SKILL.md +499 -0
- package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +390 -0
- package/pipeline/skills/shared/external/callkit-voip/SKILL.md +461 -0
- package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +425 -0
- package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +462 -0
- package/pipeline/skills/shared/external/clean-code/SKILL.md +94 -0
- package/pipeline/skills/shared/external/closed-loop-delivery/SKILL.md +116 -0
- package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +492 -0
- package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +461 -0
- package/pipeline/skills/shared/external/compose-components/SKILL.md +441 -0
- package/pipeline/skills/shared/external/compose-navigation/SKILL.md +436 -0
- package/pipeline/skills/shared/external/compose-testing/SKILL.md +527 -0
- package/pipeline/skills/shared/external/contacts-framework/SKILL.md +425 -0
- package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +409 -0
- package/pipeline/skills/shared/external/context-compression/SKILL.md +266 -0
- package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +491 -0
- package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +435 -0
- package/pipeline/skills/shared/external/core-motion/SKILL.md +388 -0
- package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +405 -0
- package/pipeline/skills/shared/external/core-nfc/SKILL.md +495 -0
- package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +420 -0
- package/pipeline/skills/shared/external/coreml/SKILL.md +458 -0
- package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +765 -0
- package/pipeline/skills/shared/external/css-modern/SKILL.md +467 -0
- package/pipeline/skills/shared/external/database-patterns/SKILL.md +335 -0
- package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +422 -0
- package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +387 -0
- package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +298 -0
- package/pipeline/skills/shared/external/debugging-strategies/SKILL.md +37 -0
- package/pipeline/skills/shared/external/device-integrity/SKILL.md +477 -0
- package/pipeline/skills/shared/external/docker-expert/SKILL.md +413 -0
- package/pipeline/skills/shared/external/energykit/SKILL.md +460 -0
- package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +541 -0
- package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +483 -0
- package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +326 -0
- package/pipeline/skills/shared/external/fastapi-pro/SKILL.md +190 -0
- package/pipeline/skills/shared/external/firebase/SKILL.md +61 -0
- package/pipeline/skills/shared/external/github-actions-templates/SKILL.md +348 -0
- package/pipeline/skills/shared/external/gradle-kotlin-dsl/SKILL.md +552 -0
- package/pipeline/skills/shared/external/healthkit/SKILL.md +498 -0
- package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +602 -0
- package/pipeline/skills/shared/external/help-skills/SKILL.md +166 -0
- package/pipeline/skills/shared/external/hig-components-content/SKILL.md +81 -0
- package/pipeline/skills/shared/external/hig-components-layout/SKILL.md +95 -0
- package/pipeline/skills/shared/external/hig-components-status/SKILL.md +82 -0
- package/pipeline/skills/shared/external/hig-components-system/SKILL.md +101 -0
- package/pipeline/skills/shared/external/hig-foundations/SKILL.md +94 -0
- package/pipeline/skills/shared/external/hig-inputs/SKILL.md +110 -0
- package/pipeline/skills/shared/external/hig-patterns/SKILL.md +99 -0
- package/pipeline/skills/shared/external/hig-platforms/SKILL.md +81 -0
- package/pipeline/skills/shared/external/hig-technologies/SKILL.md +125 -0
- package/pipeline/skills/shared/external/homekit-matter/SKILL.md +496 -0
- package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +455 -0
- package/pipeline/skills/shared/external/html-semantic/SKILL.md +301 -0
- package/pipeline/skills/shared/external/humanizer/SKILL.md +118 -0
- package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +301 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +140 -0
- package/pipeline/skills/shared/external/ios-debugger-agent/SKILL.md +59 -0
- package/pipeline/skills/shared/external/ios-developer/SKILL.md +217 -0
- package/pipeline/skills/shared/external/ios-localization/SKILL.md +418 -0
- package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +627 -0
- package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +462 -0
- package/pipeline/skills/shared/external/ios-networking/SKILL.md +441 -0
- package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +862 -0
- package/pipeline/skills/shared/external/ios-networking/references/lightweight-clients.md +93 -0
- package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +563 -0
- package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +1116 -0
- package/pipeline/skills/shared/external/ios-security/SKILL.md +496 -0
- package/pipeline/skills/shared/external/ios-security/references/app-review-guidelines.md +174 -0
- package/pipeline/skills/shared/external/ios-security/references/cryptokit-advanced.md +297 -0
- package/pipeline/skills/shared/external/ios-security/references/file-storage-patterns.md +354 -0
- package/pipeline/skills/shared/external/ios-security/references/privacy-manifest.md +117 -0
- package/pipeline/skills/shared/external/kotlin-coroutines-expert/SKILL.md +101 -0
- package/pipeline/skills/shared/external/live-activities/SKILL.md +500 -0
- package/pipeline/skills/shared/external/live-activities/references/live-activity-patterns.md +868 -0
- package/pipeline/skills/shared/external/macos-menubar-tuist-app/SKILL.md +109 -0
- package/pipeline/skills/shared/external/macos-spm-app-packaging/SKILL.md +110 -0
- package/pipeline/skills/shared/external/mapkit-location/SKILL.md +485 -0
- package/pipeline/skills/shared/external/mapkit-location/references/corelocation-patterns.md +730 -0
- package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +748 -0
- package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +479 -0
- package/pipeline/skills/shared/external/monorepo-architect/SKILL.md +64 -0
- package/pipeline/skills/shared/external/musickit-audio/SKILL.md +395 -0
- package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +363 -0
- package/pipeline/skills/shared/external/natural-language/SKILL.md +412 -0
- package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +311 -0
- package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +418 -0
- package/pipeline/skills/shared/external/nodejs-backend-patterns/SKILL.md +38 -0
- package/pipeline/skills/shared/external/observability-engineer/SKILL.md +235 -0
- package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +398 -0
- package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +254 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +387 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/references/paperkit-integration.md +376 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +302 -0
- package/pipeline/skills/shared/external/permissionkit/SKILL.md +446 -0
- package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +435 -0
- package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +501 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/av-playback.md +701 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +774 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +869 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/photospicker-patterns.md +597 -0
- package/pipeline/skills/shared/external/play-store-review/SKILL.md +350 -0
- package/pipeline/skills/shared/external/push-notifications/SKILL.md +501 -0
- package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +677 -0
- package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +745 -0
- package/pipeline/skills/shared/external/python-patterns/SKILL.md +383 -0
- package/pipeline/skills/shared/external/react-best-practices/SKILL.md +290 -0
- package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +479 -0
- package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +480 -0
- package/pipeline/skills/shared/external/rest-api-design/SKILL.md +386 -0
- package/pipeline/skills/shared/external/retrofit-networking/SKILL.md +506 -0
- package/pipeline/skills/shared/external/room-database/SKILL.md +564 -0
- package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +483 -0
- package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +544 -0
- package/pipeline/skills/shared/external/speech-recognition/SKILL.md +485 -0
- package/pipeline/skills/shared/external/storekit/SKILL.md +478 -0
- package/pipeline/skills/shared/external/storekit/references/app-review-guidelines.md +58 -0
- package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +755 -0
- package/pipeline/skills/shared/external/swift-charts/SKILL.md +487 -0
- package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +895 -0
- package/pipeline/skills/shared/external/swift-codable/SKILL.md +467 -0
- package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +408 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/approachable-concurrency.md +80 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/swift-6-2-concurrency.md +233 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +187 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +341 -0
- package/pipeline/skills/shared/external/swift-concurrency-expert/SKILL.md +113 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/SKILL.md +124 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/actors.md +155 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/async-streams.md +67 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/bridging.md +52 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/bug-patterns.md +100 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/cancellation.md +107 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/diagnostics.md +70 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/hotspots.md +47 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/interop.md +129 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/new-features.md +224 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/structured.md +101 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/testing.md +218 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/unstructured.md +61 -0
- package/pipeline/skills/shared/external/swift-language/SKILL.md +498 -0
- package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +505 -0
- package/pipeline/skills/shared/external/swift-testing/SKILL.md +462 -0
- package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +504 -0
- package/pipeline/skills/shared/external/swift-testing-pro/SKILL.md +97 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/async-tests.md +252 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/core-rules.md +52 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/migrating-from-xctest.md +34 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +318 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/writing-better-tests.md +254 -0
- package/pipeline/skills/shared/external/swiftdata/SKILL.md +334 -0
- package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +504 -0
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +975 -0
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +675 -0
- package/pipeline/skills/shared/external/swiftdata-pro/SKILL.md +102 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/class-inheritance.md +104 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/cloudkit.md +10 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/core-rules.md +20 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/indexing.md +27 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/predicates.md +73 -0
- package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +503 -0
- package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +821 -0
- package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +553 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/SKILL.md +102 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/accessibility-patterns.md +215 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-advanced.md +403 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-basics.md +284 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-transitions.md +326 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts-accessibility.md +135 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts.md +602 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/image-optimization.md +203 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/latest-apis.md +464 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/layout-best-practices.md +266 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/liquid-glass.md +416 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/list-patterns.md +394 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-scenes.md +318 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-views.md +357 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-window-styling.md +303 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/performance-patterns.md +403 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/scroll-patterns.md +293 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/sheet-navigation-patterns.md +363 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/state-management.md +417 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/view-structure.md +389 -0
- package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +450 -0
- package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +425 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +336 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +97 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +69 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/list.md +99 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +147 -0
- package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +98 -0
- package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +262 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +207 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +177 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/sheets.md +169 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +178 -0
- package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +371 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +486 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +1097 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/design-polish.md +780 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +696 -0
- package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +487 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +46 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +29 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +33 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-improving-swiftui-performance.md +52 -0
- package/pipeline/skills/shared/external/swiftui-performance-audit/SKILL.md +114 -0
- package/pipeline/skills/shared/external/swiftui-pro/SKILL.md +108 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/accessibility.md +13 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/api.md +39 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/data.md +43 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/design.md +31 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/hygiene.md +9 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/navigation.md +14 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/performance.md +46 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/swift.md +56 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/views.md +35 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/SKILL.md +103 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +428 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +534 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +948 -0
- package/pipeline/skills/shared/external/swiftui-view-refactor/SKILL.md +210 -0
- package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +273 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/loading-and-observation.md +151 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/local-content-and-custom-schemes.md +95 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/migration-and-fallbacks.md +51 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/navigation-and-javascript.md +111 -0
- package/pipeline/skills/shared/external/tailwind-css/SKILL.md +309 -0
- package/pipeline/skills/shared/external/testing-backend/SKILL.md +393 -0
- package/pipeline/skills/shared/external/tipkit/SKILL.md +494 -0
- package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +782 -0
- package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +336 -0
- package/pipeline/skills/shared/external/vision-framework/SKILL.md +475 -0
- package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +736 -0
- package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +738 -0
- package/pipeline/skills/shared/external/vue-composition/SKILL.md +371 -0
- package/pipeline/skills/shared/external/weatherkit/SKILL.md +410 -0
- package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +567 -0
- package/pipeline/skills/shared/external/web-accessibility/SKILL.md +373 -0
- package/pipeline/skills/shared/external/web-performance/SKILL.md +345 -0
- package/pipeline/skills/shared/external/web-testing/SKILL.md +385 -0
- package/pipeline/skills/shared/external/widgetkit/SKILL.md +497 -0
- package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +871 -0
- package/pipeline/skills/skills-index.md +205 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: figma-component-implement
|
|
3
|
+
description: "Figma → SwiftUI implementation for a single component. Runs Phases 0–4 of the figma-to-swiftui pipeline (init, data gathering, analysis, code generation) and produces a production-ready SwiftUI view. Excludes testing, Code Connect, and wiki — those are separate standalone skills. iOS platform peer — Android equivalent lives under figma-android/."
|
|
4
|
+
user-invocable: true
|
|
5
|
+
argument-hint: "<figma-url>"
|
|
6
|
+
language: en
|
|
7
|
+
platform: ios
|
|
8
|
+
status: wip-v5
|
|
9
|
+
sourced-from: upstream/figma-to-swift-ui-implement
|
|
10
|
+
local-overlay: true
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# figma-component-implement — Standalone Implementation (Phases 0–4)
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Implements a Figma component as a production-ready SwiftUI view. Runs Phases 0–4 of the figma-to-swiftui pipeline: init, data gathering, analysis, and code generation. Does NOT include testing, Code Connect, or Confluence — those are separate standalone skills.
|
|
18
|
+
|
|
19
|
+
## Parameters
|
|
20
|
+
|
|
21
|
+
| Parameter | Required | Description |
|
|
22
|
+
|-----------|----------|-------------|
|
|
23
|
+
| Figma URL | Yes | `https://www.figma.com/design/{fileKey}/...?node-id={nodeId}` |
|
|
24
|
+
| `phase-N` | No | Resume from a specific phase |
|
|
25
|
+
| `status` | No | Show implementation status |
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
/figma-to-swift-ui-implement https://www.figma.com/design/9ipBvrtsq9HlQ175B9k0wx/?node-id=2073-17454
|
|
29
|
+
/figma-to-swift-ui-implement phase-3
|
|
30
|
+
/figma-to-swift-ui-implement status
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Parse Arguments
|
|
36
|
+
|
|
37
|
+
Same as `/figma-to-swiftui`:
|
|
38
|
+
|
|
39
|
+
| Input | Mode | Action |
|
|
40
|
+
|-------|------|--------|
|
|
41
|
+
| `https://www.figma.com/design/...` | **Start** | Extract fileKey + nodeId, begin Phase 0 |
|
|
42
|
+
| `phase-0` through `phase-4` | **Resume** | Read IMPLEMENTATION_HISTORY.md, dispatch that phase |
|
|
43
|
+
| `phase-2a` through `phase-2d` | **Resume** | Dispatch specific Phase 2 sub-phase |
|
|
44
|
+
| `status` | **Status** | Read and display IMPLEMENTATION_HISTORY.md |
|
|
45
|
+
|
|
46
|
+
### URL Parsing
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
https://www.figma.com/design/{fileKey}/{fileName}?node-id={nodeId}
|
|
50
|
+
```
|
|
51
|
+
Convert `-` to `:` in node-id.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Phase Execution Order
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
0 (Init) → 1 (Gather) → 2A → 2B → 2C → 2D → 3 (Analysis) → 4A → 4B → 4C → 4D → 4E
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
This skill stops after Phase 4. To continue:
|
|
62
|
+
- `/figma-to-swift-ui-test` → Phase 5 (testing)
|
|
63
|
+
- `/figma-to-swift-ui-code-connect` → Phase 6 (Code Connect)
|
|
64
|
+
- `/figma-to-swift-ui-confluence` → Phase 7 (documentation)
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Dispatch Table
|
|
69
|
+
|
|
70
|
+
All instruction files are in `.instructions/figma/figma-to-swiftui/` — shared with `/figma-to-swiftui`.
|
|
71
|
+
|
|
72
|
+
| Phase | Instruction (shared) | Model | Max Turns | Tool Restrictions |
|
|
73
|
+
|-------|---------------------|-------|-----------|-------------------|
|
|
74
|
+
| 0 | `phases/phase-0-init.md` | opus | 30 | No Edit |
|
|
75
|
+
| 1 | `scripts/phase1-gather.py` | N/A (script) | N/A | Bash only |
|
|
76
|
+
| 2A | `phases/phase-2a-testing-identifiers.md` | opus | 25 | No Edit |
|
|
77
|
+
| 2B | `phases/phase-2b-localization.md` | sonnet | 25 | No Edit |
|
|
78
|
+
| 2C | `phases/phase-2c-accessibility.md` | opus | 25 | No Edit |
|
|
79
|
+
| 2D | `phases/phase-2d-analytics.md` | sonnet | 20 | No Edit, No Bash |
|
|
80
|
+
| 3A | `phases/phase-3a-location.md` | sonnet | 20 | No Edit |
|
|
81
|
+
| 3C | `phases/phase-3c-nested.md` | sonnet | 20 | No Edit |
|
|
82
|
+
| 3H | `phases/phase-3h-variant-config.md` | opus | 25 | No Edit |
|
|
83
|
+
| 3D | `phases/phase-3d-patterns.md` | opus | 30 | No Edit |
|
|
84
|
+
| 4A | `phases/phase-4a-configuration.md` | opus | 30 | ALL allowed |
|
|
85
|
+
| 4B | `phases/phase-4b-view.md` | opus | 40 | ALL allowed |
|
|
86
|
+
| 4C | `phases/phase-4c-documentation.md` | sonnet | 20 | ALL allowed |
|
|
87
|
+
| 4D | `phases/phase-4d-preview.md` | sonnet | 20 | ALL allowed |
|
|
88
|
+
| 4E | `phases/phase-4e-modifiers.md` | sonnet | 20 | ALL allowed |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Phase Routing
|
|
93
|
+
|
|
94
|
+
All routing logic is identical to `/figma-to-swiftui` SKILL.md:
|
|
95
|
+
|
|
96
|
+
- **Phase 0**: Dispatch table
|
|
97
|
+
- **Phase 1**: Run script, handle COMPLETE_WITH_DEFERRED
|
|
98
|
+
- **Phase 2**: Inline routing (PRE-CHECK → NORMALIZE → REGISTRY_LOOKUP → Wave 1 parallel 2A+2B+2C → Wave 2 2D → FINALIZE script)
|
|
99
|
+
- **Phase 3**: Inline routing (PRE-CHECK → NORMALIZE → Wave 1 scripts+3A+3C+3H → missing token resolution → Wave 2 3D → Wave 3 3G → COLLECT → SPEC → INDEX)
|
|
100
|
+
- **Phase 4**: Inline routing (PRE-CHECK → LOAD_SPEC → PREPARE_DIRECTORY → Wave 1 4A+4B+4C → Wave 2 4D+4E → COLLECT → VALIDATE → BUILD → UPDATE_REGISTRY)
|
|
101
|
+
|
|
102
|
+
Refer to `.instructions/figma/figma-to-swiftui/SKILL.md` for the full routing logic — it is the authoritative source. This skill uses the exact same dispatch procedures, read-order tables, and return parsing.
|
|
103
|
+
|
|
104
|
+
### Phase 4 registry finalize
|
|
105
|
+
|
|
106
|
+
After BUILD passes, run `phase4-finalize.py` to mark `status.ios.implemented` green with a content-hashed version bump. See `phases/phase-4-orchestrator.md` GATE 4 for details.
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
python3 .instructions/figma/figma-to-swiftui/scripts/phase4-finalize.py \
|
|
110
|
+
--node-id "{nodeId}" \
|
|
111
|
+
--component-name "{ComponentName}" \
|
|
112
|
+
--source-file "{componentLocation}/{ComponentName}.swift" \
|
|
113
|
+
--platform ios
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The actual GitHub issue sync (labels, body progress table, Projects V2 fields, assignee) runs later when you call `/figma-iteration-commit` — it reads this registry state and invokes `update-issue-from-registry.py` once per node.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Reference Files
|
|
121
|
+
|
|
122
|
+
Same as `/figma-to-swiftui`:
|
|
123
|
+
|
|
124
|
+
| File | Used By Phases |
|
|
125
|
+
|------|----------------|
|
|
126
|
+
| `reference/tools.md` | 0, 1 |
|
|
127
|
+
| `reference/registry.md` | 0, 3 |
|
|
128
|
+
| `reference/missing-tokens.md` | 3, 4 |
|
|
129
|
+
| `reference/macros.md` | 4 |
|
|
130
|
+
| `reference/figma-to-swiftui-effects.md` | 4 |
|
|
131
|
+
| `reference/accessibility.md` | 2C |
|
|
132
|
+
| `reference/localization-naming.md` | 2B |
|
|
133
|
+
| `reference/testing-identifiers-naming.md` | 2A |
|
|
134
|
+
| `reference/analytics-events.md` | 2D |
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Artifact Path Resolution
|
|
139
|
+
|
|
140
|
+
Same as `/figma-to-swiftui`:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
CONFIG_PATH="{repos.common.path}"
|
|
144
|
+
cd "$CONFIG_PATH" && .build/debug/FigmaRegistryUtility lookup --node-id '{nodeId}'
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Resume Mode
|
|
150
|
+
|
|
151
|
+
Same as `/figma-to-swiftui`:
|
|
152
|
+
|
|
153
|
+
1. Find IMPLEMENTATION_HISTORY.md
|
|
154
|
+
2. Read context variables
|
|
155
|
+
3. Verify prerequisite artifacts
|
|
156
|
+
4. Dispatch requested phase
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Completion
|
|
161
|
+
|
|
162
|
+
After Phase 4 completes successfully, output:
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
Implementation complete: {ComponentName}
|
|
166
|
+
- Location: {componentLocation}
|
|
167
|
+
- Files: {ComponentName}.swift, FIGMA.md [, {ComponentName}Configuration.swift, {ComponentName}+Modifiers.swift]
|
|
168
|
+
- Build: PASSED
|
|
169
|
+
|
|
170
|
+
Next steps:
|
|
171
|
+
- /figma-to-swift-ui-test {figmaUrl} → generate and run tests
|
|
172
|
+
- /figma-to-swift-ui-code-connect {figmaUrl} → publish Code Connect
|
|
173
|
+
- /figma-to-swift-ui-confluence {figmaUrl} → upload Confluence docs
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Notes
|
|
179
|
+
|
|
180
|
+
- This skill runs Phases 0–4 only — the implementation core
|
|
181
|
+
- All phase files, scripts, and references are shared with `/figma-to-swiftui`
|
|
182
|
+
- The routing logic is identical — only the scope differs (stops at Phase 4 vs going to Phase 8)
|
|
183
|
+
- Resume mode works the same — `phase-3` resumes Phase 3 from existing artifacts
|
|
184
|
+
- Can be followed by any combination of the standalone skills in any order
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: figma-component-test
|
|
3
|
+
description: "Test generator + runner for implemented SwiftUI Figma components. Produces ViewInspector structural tests, snapshot tests, and XCTest unit tests for a component already built via Phase 4 codegen. Runs standalone (reads source files) or as a Phase 3.5 continuation. iOS platform peer — Android equivalent (Paparazzi/Roborazzi) lives under figma-android/."
|
|
4
|
+
user-invocable: true
|
|
5
|
+
argument-hint: "<figma-url> | --component <name>"
|
|
6
|
+
language: en
|
|
7
|
+
platform: ios
|
|
8
|
+
status: wip-v5
|
|
9
|
+
sourced-from: upstream/figma-to-swift-ui-test
|
|
10
|
+
local-overlay: true
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# figma-component-test — Standalone Test Generation & Execution
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Generates and runs ViewInspector, snapshot, and unit tests for an implemented Figma component. Works independently from `/figma-to-swiftui` — reads source files directly. Can also run as a continuation after Phase 4 when full artifacts exist.
|
|
18
|
+
|
|
19
|
+
## Parameters
|
|
20
|
+
|
|
21
|
+
| Parameter | Required | Description |
|
|
22
|
+
|-----------|----------|-------------|
|
|
23
|
+
| Figma URL | Yes | `https://www.figma.com/design/{fileKey}/...?node-id={nodeId}` |
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
/figma-to-swift-ui-test https://www.figma.com/design/9ipBvrtsq9HlQ175B9k0wx/?node-id=2073-17454
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Parse Arguments
|
|
32
|
+
|
|
33
|
+
Extract from Figma URL:
|
|
34
|
+
```
|
|
35
|
+
https://www.figma.com/design/{fileKey}/{fileName}?node-id={nodeId}
|
|
36
|
+
```
|
|
37
|
+
Convert `-` to `:` in node-id.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Gate 0: Preliminary Check
|
|
42
|
+
|
|
43
|
+
### 1. Resolve Component
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
cd {repos.common.path}
|
|
47
|
+
.build/debug/FigmaRegistryUtility lookup --node-id '{nodeId}'
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Extract: `componentName`, `suggestedComponentLocation`, `suggestedArtifactPath`.
|
|
51
|
+
|
|
52
|
+
### 2. Verify Prerequisites
|
|
53
|
+
|
|
54
|
+
| Check | Required | Source |
|
|
55
|
+
|-------|----------|--------|
|
|
56
|
+
| `{componentLocation}/{ComponentName}.swift` | Yes | Component must be implemented |
|
|
57
|
+
| `{componentLocation}/FIGMA.md` | Yes | Variant mapping for snapshot matrix |
|
|
58
|
+
| Component registry JSON (`{nodeId}.json`) | Yes | Testing identifiers |
|
|
59
|
+
|
|
60
|
+
If Swift file missing → HALT. Component not implemented.
|
|
61
|
+
|
|
62
|
+
### 3. Check Existing Tests
|
|
63
|
+
|
|
64
|
+
| Condition | Action |
|
|
65
|
+
|-----------|--------|
|
|
66
|
+
| ViewInspector + Snapshot tests exist | **UPDATE** mode — regenerate and re-record |
|
|
67
|
+
| Tests missing | **CREATE** mode |
|
|
68
|
+
|
|
69
|
+
### 4. Detect Path: HOT or COLD
|
|
70
|
+
|
|
71
|
+
| Condition | Path |
|
|
72
|
+
|-----------|------|
|
|
73
|
+
| `{artifactPath}/pass5/_test_index.md` exists | **HOT** — skip Gate 1, go to Gate 2 |
|
|
74
|
+
| Missing | **COLD** — run Gate 1 |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Gate 1: Test Data Accumulation (COLD path only)
|
|
79
|
+
|
|
80
|
+
AI subagent (sonnet, 20 turns) reads source files and produces the test index + supporting artifacts that Phase 5 subphases expect.
|
|
81
|
+
|
|
82
|
+
### Sources
|
|
83
|
+
|
|
84
|
+
| Source | Derives |
|
|
85
|
+
|--------|---------|
|
|
86
|
+
| `{ComponentName}.swift` (init signature, enums, types) | Variant axes, complexity (SIMPLE/COMPLEX), optional properties |
|
|
87
|
+
| FIGMA.md (variant mapping table) | Snapshot matrix — which property combinations to test |
|
|
88
|
+
| FIGMA.md (parameters table) | Parameter types, defaults |
|
|
89
|
+
| Component registry JSON (testingIdentifiers) | Accessibility identifier test cases |
|
|
90
|
+
| `{ComponentName}Configuration.swift` (if COMPLEX) | Configuration properties, chain modifiers |
|
|
91
|
+
|
|
92
|
+
### Outputs
|
|
93
|
+
|
|
94
|
+
The subagent writes:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
{artifactPath}/pass5/_test_index.md
|
|
98
|
+
{artifactPath}/pass3/04b_component_architecture.md (if missing)
|
|
99
|
+
{artifactPath}/pass3/04_patterns.md (if missing)
|
|
100
|
+
{artifactPath}/pass3/05_complexity.md (if missing)
|
|
101
|
+
{artifactPath}/pass2/utility_identifiers.json (if missing — from registry)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
The `_test_index.md` contains:
|
|
105
|
+
- componentName, sourceModule, componentPath
|
|
106
|
+
- Paths to all referenced artifacts
|
|
107
|
+
- Variant axes summary
|
|
108
|
+
- Testing identifier list
|
|
109
|
+
|
|
110
|
+
After this step, Phase 5A/5B/5C subphases can't distinguish HOT from COLD.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Gate 2: Test Generation
|
|
115
|
+
|
|
116
|
+
### Dependency Switch
|
|
117
|
+
|
|
118
|
+
Before running tests, switch to local common dependency:
|
|
119
|
+
|
|
120
|
+
In `{repos.components.path}/Package.swift`:
|
|
121
|
+
- Comment out `.package(url: "...{project.slug}-common...", ...)`
|
|
122
|
+
- Add `.package(path: "../{project.slug}-common")`
|
|
123
|
+
|
|
124
|
+
### Wave 1 (parallel): 5A + 5B
|
|
125
|
+
|
|
126
|
+
Dispatch subagents:
|
|
127
|
+
|
|
128
|
+
| Phase | Instruction (shared) | Model | Max Turns |
|
|
129
|
+
|-------|---------------------|-------|-----------|
|
|
130
|
+
| 5A | `phases/phase-5a-viewinspector.md` | sonnet | 40 |
|
|
131
|
+
| 5B | `phases/phase-5b-snapshot.md` | sonnet | 40 |
|
|
132
|
+
|
|
133
|
+
### Wave 2 (conditional): 5C
|
|
134
|
+
|
|
135
|
+
| Condition | Action |
|
|
136
|
+
|-----------|--------|
|
|
137
|
+
| Component has ViewModel/model logic | Dispatch `phases/phase-5c-unit.md` (sonnet, 30 turns) |
|
|
138
|
+
| Pure View + Configuration | Skip — N/A |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Gate 3: Test Execution
|
|
143
|
+
|
|
144
|
+
Run tests sequentially (shared DerivedData lock):
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
REPO_ROOT=$(git rev-parse --show-toplevel)
|
|
148
|
+
bash "${REPO_ROOT}/.instructions/figma/figma-to-swiftui/scripts/run-uicomponents-tests.sh" \
|
|
149
|
+
--filter "{ComponentName}ViewInspectorTests"
|
|
150
|
+
bash "${REPO_ROOT}/.instructions/figma/figma-to-swiftui/scripts/run-uicomponents-tests.sh" \
|
|
151
|
+
--filter "{ComponentName}SnapshotTests"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Both must exit 0. Fix any failures, re-run.
|
|
155
|
+
|
|
156
|
+
### Dependency Revert
|
|
157
|
+
|
|
158
|
+
After tests pass, revert Package.swift:
|
|
159
|
+
- Uncomment `.package(url: ...)`
|
|
160
|
+
- Remove `.package(path: ...)`
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Gate 4: Update Registry
|
|
165
|
+
|
|
166
|
+
Mark `status.ios.tested` green via the Phase 5 finalize script:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
python3 .instructions/figma/figma-to-swiftui/scripts/phase5-finalize.py \
|
|
170
|
+
--node-id "{nodeId}" \
|
|
171
|
+
--platform ios
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
The script records `against = status.ios.implemented.version`, so the flag will automatically drop to yellow next time Phase 4 bumps `implemented.version`.
|
|
175
|
+
|
|
176
|
+
| Result | Action |
|
|
177
|
+
|--------|--------|
|
|
178
|
+
| Exit 0, `"action": "updated"` / `"already_current"` / `"created"` | Proceed |
|
|
179
|
+
| Exit 1 | HALT — verify node-id matches registry |
|
|
180
|
+
|
|
181
|
+
GitHub issue sync (labels, Progress table, Projects V2 fields) runs later when `/figma-iteration-commit` invokes `update-issue-from-registry.py`.
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Dispatch Table
|
|
186
|
+
|
|
187
|
+
| Gate | Instruction | Model | Max Turns |
|
|
188
|
+
|------|-------------|-------|-----------|
|
|
189
|
+
| 0 | Inline (this file) | — | — |
|
|
190
|
+
| 1 | AI subagent | sonnet | 20 |
|
|
191
|
+
| 2 (5A) | `phases/phase-5a-viewinspector.md` (shared) | sonnet | 40 |
|
|
192
|
+
| 2 (5B) | `phases/phase-5b-snapshot.md` (shared) | sonnet | 40 |
|
|
193
|
+
| 2 (5C) | `phases/phase-5c-unit.md` (shared) | sonnet | 30 |
|
|
194
|
+
| 3 | Script (`run-uicomponents-tests.sh`) | — | — |
|
|
195
|
+
| 4 | Script (`phase5-finalize.py`) | — | — |
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Shared Resources
|
|
200
|
+
|
|
201
|
+
| Resource | Used By |
|
|
202
|
+
|----------|---------|
|
|
203
|
+
| `phases/phase-5a-viewinspector.md` | Gate 2 |
|
|
204
|
+
| `phases/phase-5b-snapshot.md` | Gate 2 |
|
|
205
|
+
| `phases/phase-5c-unit.md` | Gate 2 |
|
|
206
|
+
| `reference/viewinspector.md` | Gate 2 (5A) |
|
|
207
|
+
| `reference/snapshot-testing.md` | Gate 2 (5B) |
|
|
208
|
+
| `scripts/run-uicomponents-tests.sh` | Gate 3 |
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Notes
|
|
213
|
+
|
|
214
|
+
- Standalone entry point — does NOT require `/figma-to-swiftui` to have run
|
|
215
|
+
- When called after Phase 4, detects existing artifacts (HOT path) and skips data accumulation
|
|
216
|
+
- Phase 5A/5B/5C instruction files don't know which skill invoked them — fully modular
|
|
217
|
+
- Always switches to local common dependency for test execution, reverts after
|
|
218
|
+
- Snapshot tests run twice: first to record, second to verify
|
|
219
|
+
- If component already has tests (UPDATE mode), deletes old snapshots before re-recording
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: figma-component-wiki
|
|
3
|
+
description: Generate component wiki documentation with a pluggable adapter. Reads component source + FIGMA.md, renders markdown, then delegates publication to the adapter selected by figmaConfig.wiki.mode (submodule | in-repo | github-wiki | separate-repo).
|
|
4
|
+
user-invocable: true
|
|
5
|
+
argument-hint: <figma-url> | <component-name>
|
|
6
|
+
allowed-tools: Read, Write, Glob, Grep, Bash
|
|
7
|
+
status: wip-v5
|
|
8
|
+
sourced-from: upstream/figma-to-swift-ui-wiki
|
|
9
|
+
local-overlay: true
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# figma-component-wiki — Component Wiki Documentation
|
|
13
|
+
|
|
14
|
+
> **WS-5 v5.0.0 — locally overlaid.** `local-overlay: true` in frontmatter tells `sync-figma-source.sh` + `import-figma-skills.sh` to skip this file so this v5-specific contract (4-adapter dispatch) isn't flattened on every sync.
|
|
15
|
+
|
|
16
|
+
## Dispatch contract (Phase 7 Report Step 2)
|
|
17
|
+
|
|
18
|
+
Phase 7 calls this skill with:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
{
|
|
22
|
+
componentName: string,
|
|
23
|
+
componentPath: string,
|
|
24
|
+
figmaConfig: object,
|
|
25
|
+
agentState: object,
|
|
26
|
+
dryRun?: boolean
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Returns `{ writtenPaths, committedSha?, pushedRemote?, confluencePageId? }`.
|
|
31
|
+
|
|
32
|
+
Emit progress line `→ writing wiki {componentName} (mode: {mode})` as the first action. On failure, emit `→ wiki write failed (mode: {mode}): {reason}` and bubble the error; Phase 7 treats wiki as non-blocking.
|
|
33
|
+
|
|
34
|
+
## Adapter selection
|
|
35
|
+
|
|
36
|
+
| mode | when to pick | path layout | push semantics |
|
|
37
|
+
|---|---|---|---|
|
|
38
|
+
| `submodule` | Team versions the wiki as a git submodule (source project's native layout). | `{repos.wiki.path}/FigmaComponents/{Category}/{Name}/{Name}.md` + `assets/` | Commit into submodule's `{repos.wiki.branch}`, push. Updates parent repo's submodule pointer. |
|
|
39
|
+
| `in-repo` | Simple projects without a separate wiki repo (default). | `{repos.components.path}/.wiki/components/{Category}/{Name}.md` | No push — commits with the component change in Phase 6. |
|
|
40
|
+
| `github-wiki` | Team uses GitHub's built-in wiki (`{org}/{repo}.wiki.git`). | `{repo}.wiki.git/{Category}/{Name}.md` | Clone `.wiki.git`, add/commit, push. Idempotent over re-renders. |
|
|
41
|
+
| `separate-repo` | Wiki in a separate GitHub repo (not submodule, not `.wiki`). | Remote repo's configured branch; same file layout as submodule. | Clone on demand to `~/.cache/multi-agent/wiki/{slug}/`, commit, push. |
|
|
42
|
+
|
|
43
|
+
Every adapter:
|
|
44
|
+
|
|
45
|
+
1. Receives identical rendered markdown (content identical across layouts).
|
|
46
|
+
2. Generates `_Sidebar.md` via `pipeline/scripts/wiki/sidebar-generator.py` (ships in a follow-up).
|
|
47
|
+
3. Updates `ComponentImplementationStatus.md` via `pipeline/scripts/wiki/status-page.py` (ships in a follow-up).
|
|
48
|
+
4. Is idempotent — re-running on unchanged component produces no diff.
|
|
49
|
+
|
|
50
|
+
## Failure contracts
|
|
51
|
+
|
|
52
|
+
- `submodule` — submodule path missing → return error, no partial commit.
|
|
53
|
+
- `in-repo` — target dir not writable → return error; Phase 6 commit picks up the `.wiki/` change on its next run if paths eventually exist.
|
|
54
|
+
- `github-wiki` — wiki repo not enabled on GitHub → suggest enabling and skip (return success with `writtenPaths: []`).
|
|
55
|
+
- `separate-repo` — remote unreachable → cache the markdown under `~/.cache/multi-agent/wiki/{slug}/pending/` and return a warning; next run retries.
|
|
56
|
+
|
|
57
|
+
## Markdown rendering (mode-agnostic)
|
|
58
|
+
|
|
59
|
+
Reads `componentPath` + sibling `FIGMA.md` (variant matrix, usage examples). Writes:
|
|
60
|
+
|
|
61
|
+
- `{Name}.md` — component page (overview, parameters, variants, code examples, tokens, accessibility notes).
|
|
62
|
+
- `{Name}/assets/` — design screenshots.
|
|
63
|
+
- `_Sidebar.md` — navigation (regenerated by the sidebar script).
|
|
64
|
+
- `ComponentImplementationStatus.md` — status dashboard (regenerated).
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Legacy content (upstream — submodule-mode reference)
|
|
69
|
+
|
|
70
|
+
Everything below is the original `/figma-to-swift-ui-wiki` skill content, preserved as the reference implementation for the `submodule` adapter.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
# /figma-to-swift-ui-wiki — Standalone Wiki Documentation
|
|
75
|
+
|
|
76
|
+
## Purpose
|
|
77
|
+
|
|
78
|
+
Generates GitHub Wiki documentation for an implemented Figma component. Works independently from `/figma-to-swiftui` — reads source files and artifacts directly. Can also run as a continuation after Phase 6 when full artifacts exist.
|
|
79
|
+
|
|
80
|
+
The wiki is the **source of truth** for component documentation. Confluence pages are synced from the wiki via `/figma-to-swift-ui-confluence-sync`.
|
|
81
|
+
|
|
82
|
+
## Parameters
|
|
83
|
+
|
|
84
|
+
| Parameter | Required | Description |
|
|
85
|
+
|-----------|----------|-------------|
|
|
86
|
+
| Figma URL | Yes | `https://www.figma.com/design/{fileKey}/...?node-id={nodeId}` |
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
/figma-to-swift-ui-wiki https://www.figma.com/design/ps4xrJzhn7WNbfkZs895Bi/?node-id=9511-10868
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Parse Arguments
|
|
95
|
+
|
|
96
|
+
Extract from Figma URL:
|
|
97
|
+
```
|
|
98
|
+
https://www.figma.com/design/{fileKey}/{fileName}?node-id={nodeId}
|
|
99
|
+
```
|
|
100
|
+
Convert `-` to `:` in node-id.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Gate 0: Preliminary Check
|
|
105
|
+
|
|
106
|
+
1. Registry lookup:
|
|
107
|
+
```bash
|
|
108
|
+
cd {repos.common.path}
|
|
109
|
+
.build/debug/FigmaRegistryUtility lookup --node-id '{nodeId}'
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Extract: `suggestedComponentName`, `suggestedComponentLocation`, `suggestedArtifactPath`.
|
|
113
|
+
|
|
114
|
+
2. Verify the component is implemented:
|
|
115
|
+
```bash
|
|
116
|
+
# Swift view file must exist
|
|
117
|
+
ls {componentLocation}/{ComponentName}.swift
|
|
118
|
+
# FIGMA.md must exist
|
|
119
|
+
ls {componentLocation}/FIGMA.md
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
If either is missing → HALT: "Component not implemented. Run /figma-to-swiftui or /figma-to-swift-ui-implement first."
|
|
123
|
+
|
|
124
|
+
3. Derive paths:
|
|
125
|
+
- `wikiRoot` = `{repos.wiki.path}`
|
|
126
|
+
- `wikiCategory` = derive from `artifactPath` (e.g., `DesignSystemCore/BoardingPass`, `MobileAppComponents/FlowBasedComponents/Explore`)
|
|
127
|
+
- `wikiComponentPath` = `{wikiRoot}/{wikiCategory}/{ComponentName}`
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Gate 1: Generate Wiki Documentation
|
|
132
|
+
|
|
133
|
+
Dispatch Phase 7A as a subagent:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
Agent(
|
|
137
|
+
subagent_type: "general-purpose",
|
|
138
|
+
model: sonnet,
|
|
139
|
+
max_turns: 30,
|
|
140
|
+
prompt: "You are executing Phase 7A (Wiki Documentation) of the Figma-to-SwiftUI workflow.
|
|
141
|
+
|
|
142
|
+
## Context
|
|
143
|
+
- Component: {ComponentName}
|
|
144
|
+
- File Key: {fileKey}
|
|
145
|
+
- Node ID: {nodeId}
|
|
146
|
+
- Artifact Path: {artifactPath}
|
|
147
|
+
- Component Location: {componentLocation}
|
|
148
|
+
- Wiki Path: {wikiRoot}
|
|
149
|
+
|
|
150
|
+
## Tool Restrictions
|
|
151
|
+
Do NOT use the Edit tool.
|
|
152
|
+
|
|
153
|
+
## Your Instructions
|
|
154
|
+
Read and STRICTLY FOLLOW your phase instructions gate-by-gate from this file:
|
|
155
|
+
.instructions/figma/figma-to-swiftui/phases/phase-7a-wiki-generate.md
|
|
156
|
+
|
|
157
|
+
Execute every gate sequentially. Do not skip gates.
|
|
158
|
+
|
|
159
|
+
Read the return protocol from:
|
|
160
|
+
.instructions/figma/figma-to-swiftui/reference/halt-return-protocol.md
|
|
161
|
+
|
|
162
|
+
## Previous Phase Artifacts (read in this order)
|
|
163
|
+
- {componentLocation}/FIGMA.md
|
|
164
|
+
- {componentLocation}/{ComponentName}.swift
|
|
165
|
+
- {artifactPath}/IMPLEMENTATION_HISTORY.md
|
|
166
|
+
- {artifactPath}/pass3/07_implementation_spec.md
|
|
167
|
+
- {artifactPath}/pass3/08_utility_integration.md
|
|
168
|
+
- {artifactPath}/pass3/03_nested_components.md
|
|
169
|
+
- {artifactPath}/pass2/utility_analytics.md (if exists)
|
|
170
|
+
- {artifactPath}/pass1/component_summary.json"
|
|
171
|
+
)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
On COMPLETE → proceed to Gate 1.5.
|
|
175
|
+
On HALT → show user the halt reason, ask to resolve.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Gate 1.5: Verify Sidebar Updated
|
|
180
|
+
|
|
181
|
+
The Phase 7A subagent is responsible for updating `_Sidebar.md` (GATE 4) via `sidebar-generator.py`. Verify it actually happened before committing:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
cd ${wikiRoot}
|
|
185
|
+
grep -q "\[\[${ComponentName}\]\]" _Sidebar.md
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
If the component is **missing** from `_Sidebar.md`, re-run the sidebar generator as a safety net:
|
|
189
|
+
```bash
|
|
190
|
+
python3 .instructions/figma/figma-to-swiftui/scripts/sidebar-generator.py --wiki-root ${wikiRoot}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
This regenerates the entire sidebar from the wiki directory structure. If the component's wiki folder exists, it will appear in the output. If it still doesn't appear after regeneration, the wiki folder structure is incorrect — HALT and ask the user to verify the component's wiki directory path.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Gate 2: Commit & Push Wiki
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
cd ${wikiRoot}
|
|
201
|
+
git add -A
|
|
202
|
+
git commit -m "docs: add ${ComponentName} wiki documentation"
|
|
203
|
+
git push origin master
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
If push fails → HALT: "Wiki push failed. Check wiki submodule state."
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Gate 3: Update Status Page
|
|
211
|
+
|
|
212
|
+
Run the status page generator:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
python3 .instructions/figma/figma-to-swiftui/scripts/confluence-component-status.py
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Then commit and push the updated status page:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
cd ${wikiRoot}
|
|
222
|
+
git add ComponentImplementationStatus.md
|
|
223
|
+
git commit -m "docs: update Component Implementation Status"
|
|
224
|
+
git push origin master
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Gate 4: Update Registry
|
|
230
|
+
|
|
231
|
+
Mark `status.ios.wiki` green via the Phase 7 finalize script:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
python3 .instructions/figma/figma-to-swiftui/scripts/phase7-finalize.py \
|
|
235
|
+
--node-id "{nodeId}" \
|
|
236
|
+
--platform ios
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
The script records `against = status.ios.implemented.version`, so the flag drops to yellow automatically on the next Phase 4 version bump until the wiki is regenerated.
|
|
240
|
+
|
|
241
|
+
| Result | Action |
|
|
242
|
+
|--------|--------|
|
|
243
|
+
| Exit 0, `"action": "updated"` / `"already_current"` / `"created"` | Proceed |
|
|
244
|
+
| Exit 1 | HALT — verify node-id matches registry |
|
|
245
|
+
|
|
246
|
+
GitHub issue sync runs later via `/figma-iteration-commit` → `update-issue-from-registry.py`.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Summary
|
|
251
|
+
|
|
252
|
+
Print:
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
Wiki documentation complete:
|
|
256
|
+
|
|
257
|
+
| Field | Value |
|
|
258
|
+
|-------|-------|
|
|
259
|
+
| Component | {ComponentName} |
|
|
260
|
+
| Wiki Page | {wikiComponentPath}/{ComponentName}.md |
|
|
261
|
+
| Assets | {COUNT} screenshots |
|
|
262
|
+
| Status Page | Updated |
|
|
263
|
+
| Wiki URL | https://github.com/{github.componentsRepo}/wiki/{ComponentName} |
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Error Handling
|
|
269
|
+
|
|
270
|
+
- **Component not implemented**: HALT — run implementation first.
|
|
271
|
+
- **FigmaRegistryUtility not built**: Run `swift build --product FigmaRegistryUtility`.
|
|
272
|
+
- **Wiki submodule not initialized**: Run `git submodule update --init` on the wiki path.
|
|
273
|
+
- **Push fails**: Check if wiki submodule is on `master` and remote is accessible.
|
|
274
|
+
- **Phase 7A HALT**: Show reason, ask user to resolve.
|