@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,418 @@
|
|
|
1
|
+
# /performance-tour — Batch Component Production Pipeline
|
|
2
|
+
|
|
3
|
+
> Produces multiple Figma components in a single session. Validates dependencies,
|
|
4
|
+
> determines implementation order, produces each component sequentially with clean
|
|
5
|
+
> subagent contexts, then hands off to review and batch commit.
|
|
6
|
+
|
|
7
|
+
## Parameters
|
|
8
|
+
|
|
9
|
+
| Parameter | Required | Default | Description |
|
|
10
|
+
|-----------|----------|---------|-------------|
|
|
11
|
+
| `<issue-numbers>` | Yes | — | Comma-separated GitHub issue numbers from uicomponents repo |
|
|
12
|
+
| `--resume` | No | — | Resume an interrupted tour from `_tour_tracker.json` |
|
|
13
|
+
| `--lean` | No | — | Lean mode: skip Phase 5 (testing) and Phase 7 (wiki) for all components. Forwarded to `performance-start --lean` → `performance-swiftui --lean`. |
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
/performance-tour 1000, 1001, 1002
|
|
17
|
+
/performance-tour 200, 201, 202, 203, 204
|
|
18
|
+
/performance-tour 1000, 1001, 1002 --lean
|
|
19
|
+
/performance-tour --resume
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Constants
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
REPO_ROOT = git repo root (auto-detect)
|
|
28
|
+
GH_REPO = {github.componentsRepo}
|
|
29
|
+
COMMON = ${REPO_ROOT}/{repos.common.path}
|
|
30
|
+
UICOMPONENTS = ${REPO_ROOT}/{repos.components.path}
|
|
31
|
+
WIKI = ${REPO_ROOT}/{repos.wiki.path}
|
|
32
|
+
TRACKER_FILE = ${REPO_ROOT}/_tour_tracker.json
|
|
33
|
+
MAX_COMPONENTS = 5
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Tour Tracker File
|
|
39
|
+
|
|
40
|
+
The `_tour_tracker.json` is the **single source of truth** for the entire tour. It survives
|
|
41
|
+
context loss and conversation timeouts. Written after every state change.
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"tour_start": "2026-04-07T10:00:00Z",
|
|
46
|
+
"lean_mode": false,
|
|
47
|
+
"issues": [1000, 1001, 1002],
|
|
48
|
+
"execution_order": [1000, 1002, 1001],
|
|
49
|
+
"components": {
|
|
50
|
+
"1000": {
|
|
51
|
+
"name": "ComponentA",
|
|
52
|
+
"node_id": "2820:25995",
|
|
53
|
+
"figma_url": "https://www.figma.com/design/...",
|
|
54
|
+
"jira_key": "{jira.projectKey}-129850",
|
|
55
|
+
"artifact_path": "ImplementationArtifacts/...",
|
|
56
|
+
"component_location": "Sources/.../ComponentA",
|
|
57
|
+
"status": "produced",
|
|
58
|
+
"phase_halted": null,
|
|
59
|
+
"halt_reason": null,
|
|
60
|
+
"commit_sha": {
|
|
61
|
+
"common": null,
|
|
62
|
+
"uicomponents": null,
|
|
63
|
+
"wiki": null
|
|
64
|
+
},
|
|
65
|
+
"files_created": [],
|
|
66
|
+
"perf_tracker_path": "ImplementationArtifacts/.../_perf_tracker.json"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"dependency_graph": {
|
|
70
|
+
"1001": ["1000"]
|
|
71
|
+
},
|
|
72
|
+
"current_step": "STEP_1",
|
|
73
|
+
"current_component": 1002,
|
|
74
|
+
"halted_components": [],
|
|
75
|
+
"produced_components": [1000],
|
|
76
|
+
"reviewed_components": [],
|
|
77
|
+
"committed_components": []
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**CRITICAL:** Write the tracker file after every state change — component status update,
|
|
82
|
+
step transition, HALT event, review completion. This is the mechanism that survives context loss.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## STEP 0 — Parse, Validate & Sort
|
|
87
|
+
|
|
88
|
+
### 0a. Parse Issues
|
|
89
|
+
|
|
90
|
+
Parse comma-separated issue numbers from arguments.
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# For each issue number:
|
|
94
|
+
gh issue view <N> --repo ${GH_REPO} --json number,title,body,labels,state
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Extract from each issue body:
|
|
98
|
+
- **Component Name** — from `### Component Name (PascalCase)` section
|
|
99
|
+
- **Figma URL** — from `### Figma URL` section
|
|
100
|
+
- **Node ID** — from `### Node ID` section
|
|
101
|
+
- **Registry Name** — from `### Registry Name` section
|
|
102
|
+
- **Jira Key** — from `### Jira Issue` section
|
|
103
|
+
|
|
104
|
+
Validate:
|
|
105
|
+
- Issue is open → if closed, remove from tour with warning
|
|
106
|
+
- Issue is not blocked → if has `blocked` label, remove from tour with warning
|
|
107
|
+
- Required fields exist → if missing, HALT entire tour
|
|
108
|
+
|
|
109
|
+
### 0b. Validate Each Component
|
|
110
|
+
|
|
111
|
+
Run `/figma-validate` logic for each issue (inline, not as skill invocation):
|
|
112
|
+
- Criterion 7 (Already Implemented) — if already implemented, remove from tour
|
|
113
|
+
- Criterion 4 (Dependency Readiness) — collect nested dependencies
|
|
114
|
+
|
|
115
|
+
### 0c. Build Dependency Graph
|
|
116
|
+
|
|
117
|
+
For each component, check if any of its nested child INSTANCE node IDs match another
|
|
118
|
+
component in this tour:
|
|
119
|
+
|
|
120
|
+
```python
|
|
121
|
+
# For each component pair (A, B):
|
|
122
|
+
# Does A's Figma node contain B's node ID as a child instance?
|
|
123
|
+
# Does B's Figma node contain A's node ID as a child instance?
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
If component B depends on component A (B uses A as nested child):
|
|
127
|
+
- Record in `dependency_graph`: `{ "B_issue": ["A_issue"] }`
|
|
128
|
+
- B must be produced AFTER A
|
|
129
|
+
|
|
130
|
+
If circular dependency detected → HALT tour, report the cycle.
|
|
131
|
+
|
|
132
|
+
### 0d. Topological Sort
|
|
133
|
+
|
|
134
|
+
Sort components by dependency order:
|
|
135
|
+
1. Components with no dependencies first
|
|
136
|
+
2. Components that others depend on, before their dependents
|
|
137
|
+
3. Independent components in original issue order
|
|
138
|
+
|
|
139
|
+
```python
|
|
140
|
+
# Simple topological sort (Kahn's algorithm)
|
|
141
|
+
# Input: dependency_graph
|
|
142
|
+
# Output: execution_order (list of issue numbers)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 0e. Fetch Latest (ONE TIME)
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
cd ${COMMON}
|
|
149
|
+
git fetch origin
|
|
150
|
+
git checkout iteration/develop
|
|
151
|
+
git pull origin iteration/develop
|
|
152
|
+
|
|
153
|
+
cd ${UICOMPONENTS}
|
|
154
|
+
git fetch origin
|
|
155
|
+
git checkout iteration/develop
|
|
156
|
+
git pull origin iteration/develop
|
|
157
|
+
|
|
158
|
+
cd ${WIKI}
|
|
159
|
+
git fetch origin
|
|
160
|
+
git checkout master
|
|
161
|
+
git pull origin master
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### 0f. Initialize Tracker
|
|
165
|
+
|
|
166
|
+
Create `_tour_tracker.json` with all parsed data, dependency graph, and execution order.
|
|
167
|
+
If `--lean` flag is present, set `"lean_mode": true` in the tracker.
|
|
168
|
+
|
|
169
|
+
Print tour plan:
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
173
|
+
║ PERFORMANCE TOUR — PLAN ║
|
|
174
|
+
╠══════════════════════════════════════════════════════════════╣
|
|
175
|
+
║ ║
|
|
176
|
+
║ Execution Order: ║
|
|
177
|
+
║ 1. #1000 — ComponentA (independent) ║
|
|
178
|
+
║ 2. #1002 — ComponentC (independent) ║
|
|
179
|
+
║ 3. #1001 — ComponentB (depends on: ComponentA) ║
|
|
180
|
+
║ ║
|
|
181
|
+
║ Dependency Graph: ║
|
|
182
|
+
║ ComponentA ← ComponentB ║
|
|
183
|
+
║ ComponentC (independent) ║
|
|
184
|
+
║ ║
|
|
185
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
186
|
+
|
|
187
|
+
Proceed? (yes/no)
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Wait for user confirmation before proceeding to STEP 1.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## required PRE-READ
|
|
195
|
+
|
|
196
|
+
Before proceeding to STEP 1 (production loop), read:
|
|
197
|
+
.instructions/figma/figma-to-swiftui/reference/orchestrator-discipline.md
|
|
198
|
+
|
|
199
|
+
These 6 rules govern orchestrator behavior across the tour. Rules 2 (every dispatched component must complete), 3 (on HALT retry, never take over), and 4 (complementary skills are not dismissable) apply directly to the tour's sequential produce + HALT cleanup flow.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## STEP 1 — Sequential Produce + Local Commit
|
|
204
|
+
|
|
205
|
+
For each component in `execution_order`:
|
|
206
|
+
|
|
207
|
+
### 1a. Start (performance-start --tour)
|
|
208
|
+
|
|
209
|
+
Invoke `/performance-start <issue-number> --tour` (add `--lean` if `lean_mode` is `true` in tracker):
|
|
210
|
+
- Parses issue metadata (STEP 0)
|
|
211
|
+
- **SKIPS** fetch + pull (STEP 1) — already done in STEP 0e
|
|
212
|
+
- **SKIPS** branch creation (STEP 2) — staying on iteration/develop
|
|
213
|
+
- Runs registry lookup (STEP 3)
|
|
214
|
+
- Saves specs artifact (STEP 3.5)
|
|
215
|
+
- Assigns to me + sets In Progress (STEP 4, 5)
|
|
216
|
+
- Prints summary (STEP 6)
|
|
217
|
+
- Auto-launches `/performance-swiftui <figma-url>` (STEP 6) — with `--lean` if lean mode
|
|
218
|
+
|
|
219
|
+
### 1b. Wait for production to complete
|
|
220
|
+
|
|
221
|
+
`performance-swiftui` runs Phase 0–7 as a subagent chain (or Phase 0–4 + 6 in lean mode). When it completes:
|
|
222
|
+
|
|
223
|
+
**If COMPLETE:**
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
# Local commit — all submodules
|
|
227
|
+
cd ${COMMON}
|
|
228
|
+
git add -A
|
|
229
|
+
git commit -m "feat(common): [${JIRA_KEY}] add ${COMPONENT_NAME} tokens and keys
|
|
230
|
+
|
|
231
|
+
Refs: ${JIRA_KEY}
|
|
232
|
+
Tour: performance-tour $(date +%Y%m%d)"
|
|
233
|
+
|
|
234
|
+
cd ${UICOMPONENTS}
|
|
235
|
+
git add -A
|
|
236
|
+
git commit -m "feat(uicomponents): [${JIRA_KEY}] add ${COMPONENT_NAME} component
|
|
237
|
+
|
|
238
|
+
Refs: ${JIRA_KEY}
|
|
239
|
+
Tour: performance-tour $(date +%Y%m%d)"
|
|
240
|
+
|
|
241
|
+
# Wiki commit — SKIP if lean_mode is true
|
|
242
|
+
if [ "$LEAN_MODE" != "true" ]; then
|
|
243
|
+
cd ${WIKI}
|
|
244
|
+
git add -A
|
|
245
|
+
git commit -m "docs: [${JIRA_KEY}] add ${COMPONENT_NAME} wiki documentation
|
|
246
|
+
|
|
247
|
+
Refs: ${JIRA_KEY}
|
|
248
|
+
Tour: performance-tour $(date +%Y%m%d)"
|
|
249
|
+
fi
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Update tracker: set component status to `"produced"`, record files created.
|
|
253
|
+
|
|
254
|
+
**If HALT:**
|
|
255
|
+
|
|
256
|
+
Run selective cleanup (tracker-guided):
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
# 1. Identify HALT'd component's files from tracker/artifact
|
|
260
|
+
COMPONENT_LOCATION="${component.component_location}"
|
|
261
|
+
ARTIFACT_PATH="${component.artifact_path}"
|
|
262
|
+
|
|
263
|
+
# 2. Remove isolated files (component-specific directories)
|
|
264
|
+
rm -rf "${UICOMPONENTS}/${COMPONENT_LOCATION}"
|
|
265
|
+
# Remove test directories if created (skip check in lean mode — tests weren't generated)
|
|
266
|
+
if [ "$LEAN_MODE" != "true" ]; then
|
|
267
|
+
find "${UICOMPONENTS}/Tests" -type d -name "${COMPONENT_NAME}*" -exec rm -rf {} +
|
|
268
|
+
# Remove snapshot baselines if created
|
|
269
|
+
find "${UICOMPONENTS}/Tests" -path "*/__Snapshots__/${COMPONENT_NAME}*" -exec rm -rf {} +
|
|
270
|
+
fi
|
|
271
|
+
|
|
272
|
+
# 3. Remove component's keys from shared files
|
|
273
|
+
# Read artifact's {nodeId}.json for key list
|
|
274
|
+
# Use common-utility to remove keys:
|
|
275
|
+
cd ${COMMON}
|
|
276
|
+
swift run UITestingIdentifierTool remove --component ${COMPONENT_NAME} 2>/dev/null || true
|
|
277
|
+
# For localization and accessibility: regenerate from remaining components
|
|
278
|
+
swift package plugin --allow-writing-to-package-directory update-localizations-dev
|
|
279
|
+
swift package plugin --allow-writing-to-package-directory update-accessibility-dev
|
|
280
|
+
|
|
281
|
+
# 4. Remove Code Connect file if created
|
|
282
|
+
find "${UICOMPONENTS}" -name "${COMPONENT_NAME}.figma.swift" -exec rm -f {} +
|
|
283
|
+
|
|
284
|
+
# 5. Remove wiki file if created (skip in lean mode)
|
|
285
|
+
if [ "$LEAN_MODE" != "true" ]; then
|
|
286
|
+
find "${WIKI}" -name "${COMPONENT_NAME}*" -exec rm -f {} +
|
|
287
|
+
fi
|
|
288
|
+
|
|
289
|
+
# 6. Verify working tree is clean for this component
|
|
290
|
+
git -C "${COMMON}" diff --name-only
|
|
291
|
+
git -C "${UICOMPONENTS}" diff --name-only
|
|
292
|
+
git -C "${WIKI}" diff --name-only
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
Update tracker: set component status to `"halted"`, record `phase_halted` and `halt_reason`.
|
|
296
|
+
Add to `halted_components` list.
|
|
297
|
+
|
|
298
|
+
Print:
|
|
299
|
+
|
|
300
|
+
```
|
|
301
|
+
⚠️ ComponentB HALTED at Phase 4 — build failure
|
|
302
|
+
Files cleaned up. Proceeding to next component.
|
|
303
|
+
ComponentB can be fixed during review session.
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### 1c. Progress Update
|
|
307
|
+
|
|
308
|
+
After each component (produced or halted), print progress:
|
|
309
|
+
|
|
310
|
+
```
|
|
311
|
+
Tour Progress: 2/3 produced, 1/3 halted
|
|
312
|
+
✅ #1000 — ComponentA (produced)
|
|
313
|
+
❌ #1001 — ComponentB (halted: Phase 4 build failure)
|
|
314
|
+
🔄 #1002 — ComponentC (in progress...)
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### 1d. Loop
|
|
318
|
+
|
|
319
|
+
Continue to next component in `execution_order`. After all components processed:
|
|
320
|
+
|
|
321
|
+
Update tracker: `current_step = "STEP_2"`.
|
|
322
|
+
|
|
323
|
+
Print:
|
|
324
|
+
|
|
325
|
+
```
|
|
326
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
327
|
+
║ PRODUCTION COMPLETE ║
|
|
328
|
+
╠══════════════════════════════════════════════════════════════╣
|
|
329
|
+
║ Produced: 2/3 ║
|
|
330
|
+
║ Halted: 1/3 ║
|
|
331
|
+
║ ║
|
|
332
|
+
║ ✅ #1000 — ComponentA ║
|
|
333
|
+
║ ✅ #1002 — ComponentC ║
|
|
334
|
+
║ ❌ #1001 — ComponentB (Phase 4 build failure) ║
|
|
335
|
+
║ ║
|
|
336
|
+
║ Next: /performance-review-next ║
|
|
337
|
+
║ Or: /performance-tour --resume ║
|
|
338
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## STEP 2 — Review Session
|
|
344
|
+
|
|
345
|
+
Invoke `/performance-review-next` — this is a separate skill that reads the tracker
|
|
346
|
+
and manages the interactive review loop.
|
|
347
|
+
|
|
348
|
+
See `.instructions/figma/performance-review-next/SKILL.md` for details.
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## STEP 3 — Batch Commit
|
|
353
|
+
|
|
354
|
+
After all components are reviewed, invoke `/performance-iteration-commit-all` — this is
|
|
355
|
+
a separate skill that validates, pushes, and handles issue housekeeping.
|
|
356
|
+
|
|
357
|
+
See `.instructions/figma/performance-iteration-commit-all/SKILL.md` for details.
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
## Resume Mode (`--resume`)
|
|
362
|
+
|
|
363
|
+
When invoked with `--resume`:
|
|
364
|
+
|
|
365
|
+
1. Read `_tour_tracker.json`
|
|
366
|
+
2. Check `current_step` and `current_component`
|
|
367
|
+
3. Resume from where it left off:
|
|
368
|
+
- If in STEP 1: continue producing remaining components
|
|
369
|
+
- If in STEP 2: invoke `/performance-review-next`
|
|
370
|
+
- If in STEP 3: invoke `/performance-iteration-commit-all`
|
|
371
|
+
|
|
372
|
+
```
|
|
373
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
374
|
+
║ RESUMING TOUR ║
|
|
375
|
+
╠══════════════════════════════════════════════════════════════╣
|
|
376
|
+
║ Last state: STEP 1 — producing ComponentC (#1002) ║
|
|
377
|
+
║ Produced: 1 (ComponentA) ║
|
|
378
|
+
║ Halted: 1 (ComponentB) ║
|
|
379
|
+
║ Remaining: 1 (ComponentC) ║
|
|
380
|
+
║ ║
|
|
381
|
+
║ Resuming production of ComponentC... ║
|
|
382
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
## Error Handling
|
|
388
|
+
|
|
389
|
+
| Error | Action |
|
|
390
|
+
|-------|--------|
|
|
391
|
+
| No issues provided | HALT: "Provide at least 2 issue numbers" |
|
|
392
|
+
| Issue not found / closed | Remove from tour, warn, continue with remaining |
|
|
393
|
+
| All issues invalid | HALT: "No valid issues for tour" |
|
|
394
|
+
| Circular dependency | HALT: "Circular dependency detected: A → B → A" |
|
|
395
|
+
| FigmaRegistryUtility not built | Build it: `cd ${COMMON} && swift build --product FigmaRegistryUtility` |
|
|
396
|
+
| Submodule not on iteration/develop | STEP 0e handles this (fetch + checkout) |
|
|
397
|
+
| 3 consecutive HALTs | HALT tour: "Multiple consecutive failures. Review halted components before continuing." |
|
|
398
|
+
| Tracker file missing (--resume) | HALT: "No tour in progress. Start a new tour." |
|
|
399
|
+
| Tracker file corrupt | HALT: "Tracker file corrupt. Check _tour_tracker.json manually." |
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
## Guardrails
|
|
404
|
+
|
|
405
|
+
> **NEVER push during STEP 1.** All commits are local only. Push happens in STEP 3
|
|
406
|
+
> via `/performance-iteration-commit-all`.
|
|
407
|
+
|
|
408
|
+
> **NEVER create feature branches.** Stay on `iteration/develop` for all submodules.
|
|
409
|
+
> Use `--tour` flag when invoking `performance-start`.
|
|
410
|
+
> Use `--lean` flag when invoking `performance-start` if tour is in lean mode.
|
|
411
|
+
|
|
412
|
+
> **NEVER skip STEP 0e (fetch latest).** The working tree must start from latest
|
|
413
|
+
> remote `iteration/develop` to minimize rebase conflicts at push time.
|
|
414
|
+
|
|
415
|
+
> **ALWAYS write tracker after every state change.** This is the recovery mechanism.
|
|
416
|
+
|
|
417
|
+
> **ALWAYS clean up after HALT.** Do not leave half-produced files in the working tree.
|
|
418
|
+
> The next component must start with a clean incremental state.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Figma-iOS Skill Review Checklist
|
|
2
|
+
|
|
3
|
+
> **Status: WIP — v5.0.0 pass 1 (markdown only).** Every skill in this directory was imported from an upstream source via `pipeline/scripts/import-figma-skills.sh`. Placeholders have been applied, personal-data smoke is green, but **no skill is production-ready until it passes this checklist**. Common skills were moved to `pipeline/skills/figma-common/` in WS-7b — only platform-specific skills (orchestrator + implement + test + code-connect + wiki) remain here.
|
|
4
|
+
|
|
5
|
+
## Scope of this pass
|
|
6
|
+
|
|
7
|
+
- ✅ Markdown files transformed: `SKILL.md`, `phases/*.md`, `reference/*.md`, top-level support files (e.g. `halt-return-protocol.md`).
|
|
8
|
+
- ❌ Python/shell scripts **not** imported in this pass — hardcoded paths beyond the placeholder map require manual review. Scheduled for WS-2b.
|
|
9
|
+
|
|
10
|
+
## Per-skill review gates
|
|
11
|
+
|
|
12
|
+
For each skill listed below, a reviewer must confirm:
|
|
13
|
+
|
|
14
|
+
1. **Frontmatter accuracy** — `description`, `argument-hint`, `allowed-tools`, `user-invocable` reflect the generic behaviour. Remove `status: wip-v5` when passed.
|
|
15
|
+
2. **Placeholder coverage** — run `grep -E '\{(github|jira|repos|build|confluence|project|user)\.' SKILL.md` — every placeholder must resolve from `figma-project-config.schema.json` v2.0.0. Any unresolved placeholder either extends the schema or becomes a literal default.
|
|
16
|
+
3. **No upstream bleed** — `grep -riE 'turkish|dijital|thy\.com|PVT_[A-Za-z0-9]+' skill/` returns nothing. (Guarded by `smoke-personal-data.sh` globally.)
|
|
17
|
+
4. **Cross-references** — internal links point at the new names (no `figma-to-swift-ui-*`). Script references either resolve under `scripts/` once WS-2b lands, or are explicitly commented as TODO.
|
|
18
|
+
5. **Progress-contract adoption** — add the `<!-- progress-contract: applied -->` marker once the skill emits `→ <verb> <object>` lines per `refs/progress-contract.md`.
|
|
19
|
+
6. **Android parity note** — for component-implement/component-test, note which bits are iOS-only so WS-7 can write the Android peer.
|
|
20
|
+
7. **Smoke green** — `smoke-figma-skill-import.sh`, `smoke-personal-data.sh`, `smoke-commands-skills-parity.sh`, `smoke-progress-contract.sh`.
|
|
21
|
+
|
|
22
|
+
## Skills to review (32)
|
|
23
|
+
|
|
24
|
+
| Skill | Source upstream | Reviewed? | Notes |
|
|
25
|
+
|---|---|---|---|
|
|
26
|
+
| figma-cli-iterate | figma-cli-iterate | ⬜ | Batch iterate runner |
|
|
27
|
+
| figma-cli-iterate-mend | figma-cli-iterate-mend | ⬜ | Batch mend runner |
|
|
28
|
+
| figma-cli-lean-iterate | figma-cli-lean-iterate | ⬜ | Iterate without test+wiki |
|
|
29
|
+
| figma-cli-skip | figma-cli-skip | ⬜ | Skip a component |
|
|
30
|
+
| figma-commit | figma-commit | ⬜ | 14-item review + PR |
|
|
31
|
+
| figma-component-code-connect | figma-to-swift-ui-code-connect | ⬜ | Renamed |
|
|
32
|
+
| figma-component-confluence-sync | figma-to-swift-ui-confluence-sync | ⬜ | Renamed |
|
|
33
|
+
| figma-component-implement | figma-to-swift-ui-implement | ⬜ | Renamed. Android peer needed (WS-7). |
|
|
34
|
+
| figma-component-start | figma-to-swift-ui-start | ⬜ | Renamed. Issue → branches. |
|
|
35
|
+
| figma-component-status-update | figma-to-swift-ui-status-update | ⬜ | Renamed. Confluence dashboard refresh. |
|
|
36
|
+
| figma-component-test | figma-to-swift-ui-test | ⬜ | Renamed. Android peer needed (WS-7). |
|
|
37
|
+
| figma-component-wiki | figma-to-swift-ui-wiki | ⬜ | Renamed. WS-5 wiki mode integration. |
|
|
38
|
+
| figma-fix | figma-fix | ⬜ | Targeted bug fix |
|
|
39
|
+
| figma-form-integration | figma-form-integration | ⬜ | Form protocol adapter |
|
|
40
|
+
| figma-issue | figma-issue | ⬜ | GitHub + Jira issue creation. WS-6 triad source. |
|
|
41
|
+
| figma-iterate | figma-iterate | ⬜ | Auto loop |
|
|
42
|
+
| figma-iteration-commit | figma-iteration-commit | ⬜ | Batch iteration commit |
|
|
43
|
+
| figma-mend | figma-mend | ⬜ | Re-implement from scratch |
|
|
44
|
+
| figma-price-integration | figma-price-integration | ⬜ | Price protocol adopter |
|
|
45
|
+
| figma-remote-mcp-auth | figma-remote-mcp-auth | ⬜ | Figma MCP OAuth |
|
|
46
|
+
| figma-review | figma-review | ⬜ | Interactive review |
|
|
47
|
+
| figma-setup | figma-setup | ⬜ | Env wizard |
|
|
48
|
+
| figma-skip | figma-skip | ⬜ | Skip + update Confluence |
|
|
49
|
+
| figma-to-component | figma-to-swiftui | ⬜ | **Orchestrator.** Renamed to platform-agnostic name. Biggest review surface. |
|
|
50
|
+
| figma-ui-patterns | figma-ui-patterns | ⬜ | Pattern library |
|
|
51
|
+
| figma-utility | figma-utility | ⬜ | Figma data fetch |
|
|
52
|
+
| figma-validate | figma-validate | ⬜ | Pre-impl validation |
|
|
53
|
+
| performance-iteration-commit-all | performance-iteration-commit-all | ⬜ | Batch validate + push |
|
|
54
|
+
| performance-review-next | performance-review-next | ⬜ | Interactive batch review |
|
|
55
|
+
| performance-start | performance-start | ⬜ | Perf-tracked start |
|
|
56
|
+
| performance-swiftui | performance-swiftui | ⬜ | Perf-optimized pipeline |
|
|
57
|
+
| performance-tour | performance-tour | ⬜ | Batch produce components |
|
|
58
|
+
|
|
59
|
+
## Follow-up workstreams that consume this output
|
|
60
|
+
|
|
61
|
+
- **WS-2b** — Import Python/shell scripts with transform + manual review.
|
|
62
|
+
- **WS-4** — Reduce Phase 3 dispatch to single `figma-to-component` call.
|
|
63
|
+
- **WS-5** — Wiki mode adapter; update `figma-component-wiki`.
|
|
64
|
+
- **WS-6** — Issue → Jira → Wiki triad; extend `figma-issue` + `figma-component-wiki`.
|
|
65
|
+
- **WS-7** — Android peer skills (`figma-component-implement-android`, `figma-component-test-android`).
|
|
66
|
+
- **WS-8** — Cross-CLI parity matrix expansion.
|
|
67
|
+
- **WS-11** — Add `<!-- progress-contract: applied -->` marker + `→ <verb>` lines to each skill.
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: figma-component-code-connect
|
|
3
|
+
description: "Figma Code Connect mapping publisher for implemented SwiftUI components. Creates + publishes .figma.swift registration for a component already built via Phase 4 codegen. Runs standalone (reads source files + fetches Figma property data) or as a Phase 3.6 continuation. iOS platform peer — Android equivalent 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-code-connect
|
|
10
|
+
local-overlay: true
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# figma-component-code-connect — Standalone Code Connect Publish
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Creates and publishes Figma Code Connect mapping for an implemented component. Works independently from `/figma-to-swiftui` — reads source files and fetches Figma property data directly. Can also run as a continuation after Phase 5 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-code-connect 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 | Must have variant mapping |
|
|
58
|
+
| Figma Access Token (Keychain) | Yes | For parse + publish |
|
|
59
|
+
| `figma` CLI or npx | Yes | For parse + publish |
|
|
60
|
+
|
|
61
|
+
If Swift file or FIGMA.md missing → HALT. Component not implemented.
|
|
62
|
+
|
|
63
|
+
### 3. Check Existing Code Connect
|
|
64
|
+
|
|
65
|
+
| Condition | Action |
|
|
66
|
+
|-----------|--------|
|
|
67
|
+
| `{ComponentName}.figma.swift` exists | **UPDATE** mode — will overwrite |
|
|
68
|
+
| `{ComponentName}.figma.swift` missing | **CREATE** mode |
|
|
69
|
+
|
|
70
|
+
### 4. Detect Path: HOT or COLD
|
|
71
|
+
|
|
72
|
+
| Condition | Path |
|
|
73
|
+
|-----------|------|
|
|
74
|
+
| `{artifactPath}/pass1/component_properties.json` exists | **HOT** — skip Gate 1, go to Gate 2 |
|
|
75
|
+
| Missing | **COLD** — run Gate 1 |
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Gate 1: Property Accumulation (COLD path only)
|
|
80
|
+
|
|
81
|
+
Two-step process: script (Figma REST API) → AI subagent (deduction).
|
|
82
|
+
|
|
83
|
+
### Step 1: Script — Fetch Component Properties
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
python3 .instructions/figma/figma-to-swiftui/scripts/code-connect-data-gather.py \
|
|
87
|
+
--file-key "{fileKey}" \
|
|
88
|
+
--node-id "{nodeId}" \
|
|
89
|
+
--artifact-path "{artifactPath}"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
This script:
|
|
93
|
+
1. Calls Figma REST API: `GET /v1/files/{fileKey}/nodes?ids={nodeId}`
|
|
94
|
+
2. Extracts `componentPropertyDefinitions` from the node document
|
|
95
|
+
3. Writes `pass1/component_properties.json` in the same format Phase 1 produces
|
|
96
|
+
|
|
97
|
+
### Step 2: AI Subagent — Boolean Classification
|
|
98
|
+
|
|
99
|
+
Dispatch a subagent (sonnet, 15 turns) to read source files and produce the variant config analysis:
|
|
100
|
+
|
|
101
|
+
| Source | Derives |
|
|
102
|
+
|--------|---------|
|
|
103
|
+
| FIGMA.md (variant mapping table) | Property names, values, Swift mappings |
|
|
104
|
+
| Swift source (enums, types, optionals) | Boolean → Swift type classification |
|
|
105
|
+
| `pass1/component_properties.json` | Figma property types (VARIANT, BOOLEAN, TEXT) |
|
|
106
|
+
|
|
107
|
+
Writes: `pass3/04c_variant_config_analysis.json`
|
|
108
|
+
|
|
109
|
+
After this step, phase-6 can't distinguish HOT from COLD.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Gate 2: Code Connect Generation + Publish
|
|
114
|
+
|
|
115
|
+
Delegate to the shared phase instruction:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
.instructions/figma/figma-to-swiftui/phases/phase-6-code-connect.md
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Dispatch as subagent with:
|
|
122
|
+
- componentName, fileKey, nodeId, artifactPath, componentLocation
|
|
123
|
+
- All standard context variables
|
|
124
|
+
|
|
125
|
+
The phase file is shared with `/figma-to-swiftui` — same templates, same validation, same publish flow.
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Gate 3: Registry Update
|
|
130
|
+
|
|
131
|
+
Run the Phase 6 finalize script:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
python3 .instructions/figma/figma-to-swiftui/scripts/phase6-finalize.py \
|
|
135
|
+
--node-id '{nodeId}' \
|
|
136
|
+
--file-key '{fileKey}' \
|
|
137
|
+
--component-name '{componentName}' \
|
|
138
|
+
--platform ios
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Updates `codeConnect.ios = true` in the component registry JSON.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Dispatch Table
|
|
146
|
+
|
|
147
|
+
| Gate | Instruction | Model | Max Turns |
|
|
148
|
+
|------|-------------|-------|-----------|
|
|
149
|
+
| 0 | Inline (this file) | — | — |
|
|
150
|
+
| 1 Step 1 | Script (`code-connect-data-gather.py`) | — | — |
|
|
151
|
+
| 1 Step 2 | AI subagent | sonnet | 15 |
|
|
152
|
+
| 2 | `phases/phase-6-code-connect.md` (shared) | opus | 30 |
|
|
153
|
+
| 3 | Script (`phase6-finalize.py`) | — | — |
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Shared Resources
|
|
158
|
+
|
|
159
|
+
These files are shared with `/figma-to-swiftui` phase 6:
|
|
160
|
+
|
|
161
|
+
| Resource | Used By |
|
|
162
|
+
|----------|---------|
|
|
163
|
+
| `phases/phase-6-code-connect.md` | Gate 2 |
|
|
164
|
+
| `reference/code-connect.md` | Gate 2 |
|
|
165
|
+
| `scripts/phase6-finalize.py` | Gate 3 |
|
|
166
|
+
| `scripts/validate-phase6.sh` | Gate 2 (inside phase-6) |
|
|
167
|
+
| `figma.config.json` (in uicomponents) | Gate 2 (publish) |
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Notes
|
|
172
|
+
|
|
173
|
+
- Standalone entry point — does NOT require `/figma-to-swiftui` to have run
|
|
174
|
+
- When called after Phase 5, detects existing artifacts (HOT path) and skips data gathering
|
|
175
|
+
- The data gather script produces the same artifact structure as Phase 1
|
|
176
|
+
- Phase 6 instruction file doesn't know which skill invoked it — fully modular
|
|
177
|
+
- Handles the `figma.config.json` exclude list for broken components (see phase-6 §GATE 5)
|
|
178
|
+
- If component has no Figma property definitions → uses STATIC_VALUES strategy automatically
|