@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,498 @@
|
|
|
1
|
+
# /figma-cli-iterate-mend — Full Mend Pipeline Orchestrator for CLI
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Runs the complete Figma-to-SwiftUI **mend** pipeline for a single issue whose component already exists under `Discarded/` and must be re-implemented from scratch: pick → start → pre-flight (locate + catalog old files) → implement (phases 0-7 with selective old-file reference injection) → cleanup old files → commit. Returns a structured `ORCHESTRATOR_RESULT` block that the CLI orchestrator can parse.
|
|
6
|
+
|
|
7
|
+
This skill IS the mend orchestrator. It is the union of:
|
|
8
|
+
- `/figma-cli-iterate` — leaf-phase-only subagent dispatch, structured result output
|
|
9
|
+
- `/figma-mend` — discarded-component location, old-file cataloging, per-phase reference injection, post-implementation cleanup
|
|
10
|
+
|
|
11
|
+
**All leaf phase instructions, scripts, and references come from `.instructions/figma/figma-to-swiftui/`**. Nothing is duplicated. The only phases that differ from `/figma-cli-iterate` are:
|
|
12
|
+
|
|
13
|
+
1. A pre-flight step before Phase 0 that locates and catalogs the discarded files.
|
|
14
|
+
2. Every AI subagent dispatch prompt receives a `## Complementary Reference (Old Implementation)` section with phase-specific old file paths.
|
|
15
|
+
3. A cleanup step after Phase 7 that deletes the old files.
|
|
16
|
+
|
|
17
|
+
## Forbidden Dispatches
|
|
18
|
+
|
|
19
|
+
**NEVER dispatch these as subagents — they are orchestrators that would try to dispatch further:**
|
|
20
|
+
|
|
21
|
+
- `/figma-mend` (entire mend pipeline)
|
|
22
|
+
- `/figma-to-swiftui` (entire regular pipeline)
|
|
23
|
+
- `/figma-to-swift-ui-implement` (Phases 0-4)
|
|
24
|
+
- `/figma-to-swift-ui-test` (Phase 5)
|
|
25
|
+
- `/figma-to-swift-ui-code-connect` (Phase 6)
|
|
26
|
+
- `/figma-to-swift-ui-wiki` (Phase 7)
|
|
27
|
+
- `/figma-iteration-commit`
|
|
28
|
+
- `/figma-cli-iterate`
|
|
29
|
+
|
|
30
|
+
Instead, dispatch the **leaf phase instruction files** directly via the Agent tool.
|
|
31
|
+
|
|
32
|
+
## Parameters
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
/figma-cli-iterate-mend #230 ← mend the component referenced by issue #230
|
|
36
|
+
/figma-cli-iterate-mend ← auto-pick the next available mend issue
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The issue must reference a Figma node whose component exists under `Discarded/`. The pre-flight step locates it; if not found, the skill HALTs and asks the user to verify the Discarded/ catalog or fall back to `/figma-cli-iterate` for a fresh implementation.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Constants
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
GH_REPO = {github.componentsRepo}
|
|
47
|
+
REPO_ROOT = git repo root (auto-detect)
|
|
48
|
+
COMMON = ${REPO_ROOT}/{repos.common.path}
|
|
49
|
+
UICOMPONENTS = ${REPO_ROOT}/{repos.components.path}
|
|
50
|
+
WIKI = ${REPO_ROOT}/{repos.wiki.path}
|
|
51
|
+
DISCARDED = ${UICOMPONENTS}/Sources/UIComponents/Discarded
|
|
52
|
+
TESTS = ${UICOMPONENTS}/Tests/UIComponentsTests
|
|
53
|
+
ARTIFACTS = ${REPO_ROOT}/{repos.artifactsRepo}/ImplementationArtifacts
|
|
54
|
+
PHASE_DIR = .instructions/figma/figma-to-swiftui/phases
|
|
55
|
+
REF_DIR = .instructions/figma/figma-to-swiftui/reference
|
|
56
|
+
SCRIPT_DIR = .instructions/figma/figma-to-swiftui/scripts
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## STEP 0 — Pick Issue
|
|
62
|
+
|
|
63
|
+
Same logic as `/figma-iterate` STEP 0. Read `.instructions/figma/figma-iterate/SKILL.md` STEP 0 for details.
|
|
64
|
+
|
|
65
|
+
Extract from issue body: `componentName`, `figmaUrl`, `nodeId`, `nodeIdDash` (dash form, e.g. `517-834`), `jiraKey`, `registryName`, `figmaPage`, `acceptanceCriteria`.
|
|
66
|
+
|
|
67
|
+
If the issue does NOT have a `mend` label or the body does not reference `Discarded/`, you may still proceed — the PRE-FLIGHT step below is the authoritative check for whether this is a mend candidate.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## STEP 1 — Start
|
|
72
|
+
|
|
73
|
+
Run inline (not as a skill). Read `.instructions/figma/figma-to-swift-ui-start/SKILL.md` for the full procedure:
|
|
74
|
+
|
|
75
|
+
1. Parse issue → extract metadata
|
|
76
|
+
2. Fetch latest → checkout `develop` (main stays on develop, NO feature branch), `iteration/develop` (submodules)
|
|
77
|
+
3. Create feature branches on **submodules only** (common, uicomponents)
|
|
78
|
+
4. Registry lookup → `componentLocation`, `artifactPath`
|
|
79
|
+
5. Save specs artifact if acceptance criteria exist
|
|
80
|
+
6. Assign (GitHub + Jira)
|
|
81
|
+
7. Update Projects V2 status
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## STEP 2 — Pre-Flight: Locate and Catalog Old Component
|
|
86
|
+
|
|
87
|
+
**Run entirely in the orchestrator — no subagents.** Uses `Grep`, `Glob`, and `Bash` directly.
|
|
88
|
+
|
|
89
|
+
### PRE-1: LOCATE_OLD_COMPONENT
|
|
90
|
+
|
|
91
|
+
Search for the old component under `${DISCARDED}` using these strategies in order. The first match wins.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# 1. By node ID (colon form) in any FIGMA.md under Discarded/
|
|
95
|
+
grep -rl "{nodeId}" --include="FIGMA.md" "${DISCARDED}/"
|
|
96
|
+
|
|
97
|
+
# 2. By node ID (dash form) in any FIGMA.md under Discarded/
|
|
98
|
+
grep -rl "{nodeIdDash}" --include="FIGMA.md" "${DISCARDED}/"
|
|
99
|
+
|
|
100
|
+
# 3. By node ID (colon form) in any .figma.swift under Discarded/
|
|
101
|
+
grep -rl "{nodeId}" --include="*.figma.swift" "${DISCARDED}/"
|
|
102
|
+
|
|
103
|
+
# 4. By component name directory match (if the issue provides one)
|
|
104
|
+
find "${DISCARDED}/" -type d -name "{componentName}"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
If no match → HALT:
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
STATUS: HALT
|
|
111
|
+
PHASE: pre-flight
|
|
112
|
+
GATE: LOCATE_OLD_COMPONENT
|
|
113
|
+
REASON: No discarded component found for node {nodeId} under ${DISCARDED}/.
|
|
114
|
+
USER_ACTION_REQUIRED: Verify the component exists under Discarded/, or run /figma-cli-iterate instead for a fresh implementation.
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Extract:
|
|
118
|
+
- `oldComponentPath` = full path to the old component directory (the directory that contains its `{Name}.swift`, `FIGMA.md`, etc.)
|
|
119
|
+
- `oldComponentName` = basename of `oldComponentPath`
|
|
120
|
+
|
|
121
|
+
### PRE-2: CATALOG_OLD_FILES
|
|
122
|
+
|
|
123
|
+
Walk the filesystem and collect every file that belongs to the old component. Include not only the source directory but also its tests and artifacts.
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# Sources
|
|
127
|
+
find "{oldComponentPath}" -type f -name "*.swift"
|
|
128
|
+
|
|
129
|
+
# Tests (search by old component name across all test categories)
|
|
130
|
+
find "${TESTS}/Snapshot" -type d -name "{oldComponentName}"
|
|
131
|
+
find "${TESTS}/ViewInspector" -type d -name "{oldComponentName}"
|
|
132
|
+
find "${TESTS}" -type f -name "*{oldComponentName}*"
|
|
133
|
+
|
|
134
|
+
# Artifacts
|
|
135
|
+
find "${ARTIFACTS}/Figma/Components" -type d -name "{oldComponentName}"
|
|
136
|
+
find "${ARTIFACTS}/Confluence" -type d -name "{oldComponentName}"
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Build `oldFilesCatalog` as an in-memory structure:
|
|
140
|
+
|
|
141
|
+
| Key | Value |
|
|
142
|
+
|---|---|
|
|
143
|
+
| `sources` | list of `.swift` paths under `{oldComponentPath}` excluding `.figma.swift` |
|
|
144
|
+
| `codeConnect` | list of `.figma.swift` paths under `{oldComponentPath}` |
|
|
145
|
+
| `documentation` | path to `{oldComponentPath}/FIGMA.md` if present, else null |
|
|
146
|
+
| `modifiers` | list of `*+Modifiers.swift` paths under `{oldComponentPath}` |
|
|
147
|
+
| `tests.snapshot` | snapshot test directory path if present, else null |
|
|
148
|
+
| `tests.viewInspector` | viewInspector test directory path if present, else null |
|
|
149
|
+
| `tests.unit` | list of unit test file paths if present |
|
|
150
|
+
| `artifacts` | old `ImplementationArtifacts/Figma/Components/.../{oldComponentName}` directory if present |
|
|
151
|
+
| `confluence` | old `ImplementationArtifacts/Confluence/.../{oldComponentName}` directory if present |
|
|
152
|
+
|
|
153
|
+
### PRE-3: RESOLVE_NAMES
|
|
154
|
+
|
|
155
|
+
- `oldComponentName` — from PRE-1 (directory basename under `Discarded/`)
|
|
156
|
+
- `newComponentName` — from the issue's `Component Name (PascalCase)` field, or from Phase 0 registry lookup if the issue does not specify
|
|
157
|
+
- `nameChanged` — `true` if `oldComponentName != newComponentName`, else `false`
|
|
158
|
+
|
|
159
|
+
### PRE-4: DEFERRED_CONTEXT_PERSIST
|
|
160
|
+
|
|
161
|
+
Hold `oldFilesCatalog` in memory. Write `{artifactPath}/mend-context.json` immediately after Phase 0 creates `{artifactPath}/`. See STEP 3 Phase 0 subsection below.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## STEP 3 — Implement (Phases 0-7)
|
|
166
|
+
|
|
167
|
+
This is the core orchestration. Run each phase by dispatching leaf subagents and scripts — **same phase dispatch table as `/figma-cli-iterate`**.
|
|
168
|
+
|
|
169
|
+
### Spec Injection + Mend Injection
|
|
170
|
+
|
|
171
|
+
Before dispatching any Phase 4+ subagent, check if `{artifactPath}/pass0/specs.md` exists. If it does, inject the specs as standard gates per `/figma-cli-iterate`'s rules.
|
|
172
|
+
|
|
173
|
+
Additionally, **every AI subagent dispatch prompt for phases that should see old files** (see the Selective File Injection Table below) MUST append a `## Complementary Reference (Old Implementation)` section containing the relevant old file paths.
|
|
174
|
+
|
|
175
|
+
### Dispatch Prompt Template (mend variant)
|
|
176
|
+
|
|
177
|
+
For each leaf subagent eligible for old-file injection:
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
You are executing {Phase Name} of the Figma-to-SwiftUI workflow.
|
|
181
|
+
|
|
182
|
+
## Context
|
|
183
|
+
- Component: {newComponentName}
|
|
184
|
+
- File Key: {fileKey}
|
|
185
|
+
- Node ID: {nodeId}
|
|
186
|
+
- Artifact Path: {artifactPath}
|
|
187
|
+
- Component Location: {componentLocation}
|
|
188
|
+
- Mode: MEND (re-implementing a discarded component)
|
|
189
|
+
|
|
190
|
+
## CRITICAL SPEC GATES (only if specs exist)
|
|
191
|
+
{Concrete requirements extracted from specs — phrased as mandatory instructions.}
|
|
192
|
+
|
|
193
|
+
## Tool Restrictions
|
|
194
|
+
{from dispatch table}
|
|
195
|
+
|
|
196
|
+
## Your Instructions
|
|
197
|
+
Read and STRICTLY FOLLOW your phase instructions gate-by-gate from this file:
|
|
198
|
+
{PHASE_DIR}/{instruction file}
|
|
199
|
+
|
|
200
|
+
Read the return protocol from:
|
|
201
|
+
{REF_DIR}/halt-return-protocol.md
|
|
202
|
+
|
|
203
|
+
## Reference Files
|
|
204
|
+
{relevant reference files from the read-order table in figma-to-swiftui/SKILL.md}
|
|
205
|
+
|
|
206
|
+
## Previous Phase Artifacts
|
|
207
|
+
{artifact paths in read order — compact first}
|
|
208
|
+
|
|
209
|
+
## Complementary Reference (Old Implementation)
|
|
210
|
+
|
|
211
|
+
This component is being RE-IMPLEMENTED from Discarded/.
|
|
212
|
+
Old source files (read as reference — do NOT copy verbatim):
|
|
213
|
+
{list of relevant old file paths for this phase, from oldFilesCatalog via the Selective File Injection Table}
|
|
214
|
+
|
|
215
|
+
Preserve domain-specific patterns from the old implementation if architecturally sound:
|
|
216
|
+
- Animations, transitions, gesture handling
|
|
217
|
+
- UI refinements (feathered edges, gradients, shadows)
|
|
218
|
+
- Domain logic (list handling, data transformation, state management)
|
|
219
|
+
- Variant mappings that were manually refined
|
|
220
|
+
|
|
221
|
+
IMPORTANT: The new implementation MUST follow current workflow standards
|
|
222
|
+
(macros, Configuration pattern, design tokens, naming rules). Use old code
|
|
223
|
+
ONLY as reference for domain logic — not as a template for architecture.
|
|
224
|
+
If the old file violates a current rule (e.g. a concrete {Name}Item struct),
|
|
225
|
+
do NOT copy the violation forward.
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Phase Dispatch Table
|
|
229
|
+
|
|
230
|
+
Same as `/figma-cli-iterate`:
|
|
231
|
+
|
|
232
|
+
| Phase | Instruction | Model | Subagent? |
|
|
233
|
+
|-------|-------------|-------|-----------|
|
|
234
|
+
| 0 | `phase-0-init.md` | opus | Yes (leaf) |
|
|
235
|
+
| 1 | `${SCRIPT_DIR}/phase1-gather.py` | N/A | No (script) |
|
|
236
|
+
| 2A | `phase-2a-testing-identifiers.md` | opus | Yes (leaf) |
|
|
237
|
+
| 2B | `phase-2b-localization.md` | sonnet | Yes (leaf) |
|
|
238
|
+
| 2C | `phase-2c-accessibility.md` | opus | Yes (leaf) |
|
|
239
|
+
| 2D | `phase-2d-analytics.md` | sonnet | Yes (leaf) |
|
|
240
|
+
| 3A | `phase-3a-location.md` | sonnet | Yes (leaf) |
|
|
241
|
+
| 3C | `phase-3c-nested.md` | sonnet | Yes (leaf) |
|
|
242
|
+
| 3H | `phase-3h-variant-config.md` | opus | Yes (leaf) |
|
|
243
|
+
| 3D | `phase-3d-patterns.md` | opus | Yes (leaf) |
|
|
244
|
+
| 4A | `phase-4a-configuration.md` | opus | Yes (leaf, COMPLEX only) |
|
|
245
|
+
| 4B | `phase-4b-view.md` | opus | Yes (leaf) |
|
|
246
|
+
| 4C | `phase-4c-documentation.md` | sonnet | Yes (leaf) |
|
|
247
|
+
| 4D | `phase-4d-preview.md` | sonnet | Yes (leaf) |
|
|
248
|
+
| 4E | `phase-4e-modifiers.md` | sonnet | Yes (leaf, COMPLEX only) |
|
|
249
|
+
| 5A | `phase-5a-viewinspector.md` | sonnet | Yes (leaf) |
|
|
250
|
+
| 5B | `phase-5b-snapshot.md` | sonnet | Yes (leaf) |
|
|
251
|
+
| 5C | `phase-5c-unit.md` | sonnet | Yes (leaf, if applicable) |
|
|
252
|
+
| 6 | `phase-6-code-connect.md` | opus | Yes (leaf) |
|
|
253
|
+
| 7 | `phase-7a-wiki-generate.md` | sonnet | Yes (leaf) |
|
|
254
|
+
|
|
255
|
+
### Selective File Injection Table
|
|
256
|
+
|
|
257
|
+
Each phase receives ONLY the relevant old files to keep context tight. Reference only, not a blanket copy.
|
|
258
|
+
|
|
259
|
+
| Phase | Old files injected |
|
|
260
|
+
|-------|--------------------|
|
|
261
|
+
| 0 | None (standard init, but mend-context.json is written here) |
|
|
262
|
+
| 1 | None (automated script — no subagent prompt) |
|
|
263
|
+
| 2A | `oldFilesCatalog.documentation`, `oldFilesCatalog.sources` |
|
|
264
|
+
| 2B | `oldFilesCatalog.documentation` |
|
|
265
|
+
| 2C | `oldFilesCatalog.documentation`, `oldFilesCatalog.sources` |
|
|
266
|
+
| 2D | `oldFilesCatalog.documentation` |
|
|
267
|
+
| 3A | None |
|
|
268
|
+
| 3C | `oldFilesCatalog.sources` |
|
|
269
|
+
| 3H | `oldFilesCatalog.sources` (to see variant/Item classification in the old code) |
|
|
270
|
+
| 3D | `oldFilesCatalog.sources`, `oldFilesCatalog.modifiers` |
|
|
271
|
+
| 4A | Old Configuration and domain model files from `oldFilesCatalog.sources` |
|
|
272
|
+
| 4B | ALL `oldFilesCatalog.sources` (primary reference phase) |
|
|
273
|
+
| 4C | `oldFilesCatalog.documentation` |
|
|
274
|
+
| 4D | `oldFilesCatalog.sources` |
|
|
275
|
+
| 4E | `oldFilesCatalog.modifiers` |
|
|
276
|
+
| 5A | `oldFilesCatalog.tests.viewInspector` (files if present) |
|
|
277
|
+
| 5B | `oldFilesCatalog.tests.snapshot` (files if present) |
|
|
278
|
+
| 5C | `oldFilesCatalog.tests.unit` (files if present) |
|
|
279
|
+
| 6 | `oldFilesCatalog.codeConnect` |
|
|
280
|
+
| 7 | None |
|
|
281
|
+
|
|
282
|
+
### Phase Execution Flow
|
|
283
|
+
|
|
284
|
+
**Phase 0**: Dispatch subagent → verify `IMPLEMENTATION_HISTORY.md` created.
|
|
285
|
+
|
|
286
|
+
**Immediately after Phase 0 COMPLETE**: write `{artifactPath}/mend-context.json`:
|
|
287
|
+
|
|
288
|
+
```json
|
|
289
|
+
{
|
|
290
|
+
"mode": "mend",
|
|
291
|
+
"oldComponentName": "{oldComponentName}",
|
|
292
|
+
"oldComponentPath": "{oldComponentPath}",
|
|
293
|
+
"newComponentName": "{newComponentName}",
|
|
294
|
+
"nameChanged": {true|false},
|
|
295
|
+
"oldFiles": {
|
|
296
|
+
"sources": ["{path1}", "{path2}"],
|
|
297
|
+
"codeConnect": ["{path}"],
|
|
298
|
+
"documentation": "{path or null}",
|
|
299
|
+
"modifiers": ["{path}"],
|
|
300
|
+
"tests": {
|
|
301
|
+
"snapshot": "{dirPath or null}",
|
|
302
|
+
"viewInspector": "{dirPath or null}",
|
|
303
|
+
"unit": ["{path}"]
|
|
304
|
+
},
|
|
305
|
+
"artifacts": "{dirPath or null}",
|
|
306
|
+
"confluence": "{dirPath or null}"
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
Append to `{artifactPath}/IMPLEMENTATION_HISTORY.md`:
|
|
312
|
+
|
|
313
|
+
```markdown
|
|
314
|
+
## Mend Source
|
|
315
|
+
- Discarded component: {oldComponentName}
|
|
316
|
+
- Old path: {oldComponentPath}
|
|
317
|
+
- Name changed: {true|false}
|
|
318
|
+
- Old files catalogued in mend-context.json
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
**Phase 1**: Run the gather script. No dispatch prompt, no old-file injection.
|
|
322
|
+
|
|
323
|
+
**Phase 2**: Exact same structure as `/figma-cli-iterate`. Wave 1 dispatches 2A + 2B + 2C in parallel; Wave 2 dispatches 2D; then `phase2-finalize.py`. Apply the injection table above for each AI subagent.
|
|
324
|
+
|
|
325
|
+
**Phase 3**: Same as `/figma-cli-iterate` — Wave 1 script + 3A/3C/3H, token resolution if needed, Wave 2 (3D), Wave 3 script, spec compile, write `pass3/_index.md`. Apply the injection table.
|
|
326
|
+
|
|
327
|
+
**Phase 4**: Same as `/figma-cli-iterate` — read SIMPLE/COMPLEX, Wave 1 (4B + 4C + 4A if COMPLEX), Wave 2 (4D + 4E if COMPLEX), validate, build. Apply the injection table. Phase 4B is the primary reference phase and receives ALL old source files.
|
|
328
|
+
|
|
329
|
+
**Phase 5**: Same as `/figma-cli-iterate` — switch to local common, Wave 1 (5A + 5B), Wave 2 (5C if applicable), run tests sequentially, revert Package.swift. Apply the injection table — if the old tests exist they are very valuable reference for the new ones.
|
|
330
|
+
|
|
331
|
+
**Phase 6**: Dispatch subagent with `oldFilesCatalog.codeConnect` injected → run `phase6-finalize.py` as safety net.
|
|
332
|
+
|
|
333
|
+
**Phase 7**: Dispatch subagent. No old-file injection.
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## STEP 4 — Cleanup Old Files
|
|
338
|
+
|
|
339
|
+
Runs automatically after Phase 7 SUCCESS, **before** STEP 5 commit. This ensures the deletions are part of the same commit as the new implementation.
|
|
340
|
+
|
|
341
|
+
### CLEANUP-1: VERIFY_NEW_IMPLEMENTATION
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
# New component file exists
|
|
345
|
+
ls "{componentLocation}/{newComponentName}.swift"
|
|
346
|
+
|
|
347
|
+
# It builds (local common swap already done in Phase 5 if needed)
|
|
348
|
+
cd "${UICOMPONENTS}"
|
|
349
|
+
xcodebuild -scheme UIComponents -destination 'generic/platform=iOS Simulator' build 2>&1 | grep -E "(error:|BUILD (SUCCEEDED|FAILED))" | tail
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
If the new file is missing or the build fails → HALT. Do NOT delete anything.
|
|
353
|
+
|
|
354
|
+
### CLEANUP-2: DELETE_OLD_SOURCE
|
|
355
|
+
|
|
356
|
+
```bash
|
|
357
|
+
rm -rf "{oldComponentPath}"
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
Walk up parent directories (max 3 levels) and `rmdir` any that are now empty.
|
|
361
|
+
|
|
362
|
+
### CLEANUP-3: DELETE_OLD_TESTS
|
|
363
|
+
|
|
364
|
+
For each non-null entry in `oldFilesCatalog.tests`:
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
rm -rf "{oldFilesCatalog.tests.snapshot}"
|
|
368
|
+
rm -rf "{oldFilesCatalog.tests.viewInspector}"
|
|
369
|
+
# Unit tests: rm each file individually since they may not share a directory
|
|
370
|
+
for f in {oldFilesCatalog.tests.unit[*]}; do rm -f "$f"; done
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
Walk up parent directories and `rmdir` any empty ones.
|
|
374
|
+
|
|
375
|
+
### CLEANUP-4: DELETE_OLD_ARTIFACTS
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
rm -rf "{oldFilesCatalog.artifacts}"
|
|
379
|
+
rm -rf "{oldFilesCatalog.confluence}"
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### CLEANUP-5: VERIFY_BUILD_POST_DELETE
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
cd "${UICOMPONENTS}"
|
|
386
|
+
xcodebuild -scheme UIComponents -destination 'generic/platform=iOS Simulator' build 2>&1 | grep -E "(error:|BUILD (SUCCEEDED|FAILED))" | tail
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
Since the old files lived in `Discarded/` (not in the compiled target), the delete should never break the build. If it does, HALT and report the broken references — do not attempt automatic recovery.
|
|
390
|
+
|
|
391
|
+
### CLEANUP-6: UPDATE_HISTORY
|
|
392
|
+
|
|
393
|
+
Append to `{artifactPath}/IMPLEMENTATION_HISTORY.md`:
|
|
394
|
+
|
|
395
|
+
```markdown
|
|
396
|
+
## Mend Cleanup
|
|
397
|
+
- Old component: {oldComponentName} at {oldComponentPath}
|
|
398
|
+
- Sources deleted: {count} files
|
|
399
|
+
- Tests deleted: {count} directories/files
|
|
400
|
+
- Artifacts deleted: {count} directories
|
|
401
|
+
- Build verified after delete: yes
|
|
402
|
+
- Date: {YYYY-MM-DD}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## STEP 5 — Commit
|
|
408
|
+
|
|
409
|
+
Run inline. Read `.instructions/figma/figma-iteration-commit/SKILL.md` for the full procedure. Same as `/figma-cli-iterate`:
|
|
410
|
+
|
|
411
|
+
1. Rebase submodules to `iteration/develop` if on feature branch
|
|
412
|
+
2. Build validation
|
|
413
|
+
3. Commit to `iteration/develop` (common → uicomponents → wiki)
|
|
414
|
+
4. Push with rebase-retry loop
|
|
415
|
+
5. Clean up feature branches
|
|
416
|
+
6. Issue housekeeping (comment, phase update, wiki link)
|
|
417
|
+
7. Auto-unblock dependents
|
|
418
|
+
|
|
419
|
+
The commit on the uicomponents submodule will naturally include both the new component files AND the deletions from STEP 4 — one atomic mend commit.
|
|
420
|
+
|
|
421
|
+
**Commit message hint**: use `feat(uicomponents): [JIRA-KEY] mend {newComponentName} component` instead of `feat(uicomponents): [JIRA-KEY] add {newComponentName} component` so reviewers see at a glance that this replaces a Discarded/ component.
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## STEP 6 — Loop
|
|
426
|
+
|
|
427
|
+
Same logic as `/figma-iterate` STEP 4. If specific issue → exit after one. Otherwise → pick next mend issue.
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
431
|
+
## STEP 7 — Output Result
|
|
432
|
+
|
|
433
|
+
Output EXACTLY this block as your FINAL message. Nothing else after it.
|
|
434
|
+
|
|
435
|
+
### On success (per component):
|
|
436
|
+
|
|
437
|
+
```
|
|
438
|
+
ORCHESTRATOR_RESULT:
|
|
439
|
+
status: COMPLETE
|
|
440
|
+
mode: mend
|
|
441
|
+
issueNumber: <N>
|
|
442
|
+
componentName: <newComponentName>
|
|
443
|
+
oldComponentName: <oldComponentName>
|
|
444
|
+
nameChanged: <true|false>
|
|
445
|
+
figmaUrl: <url>
|
|
446
|
+
nodeId: <nodeId>
|
|
447
|
+
jiraKey: <key>
|
|
448
|
+
commits:
|
|
449
|
+
common: <SHA>
|
|
450
|
+
uicomponents: <SHA>
|
|
451
|
+
wiki: <SHA>
|
|
452
|
+
phases: [0, 1, 2, 3, 4, 5, 6, 7]
|
|
453
|
+
cleanup:
|
|
454
|
+
sourcesDeleted: <count>
|
|
455
|
+
testsDeleted: <count>
|
|
456
|
+
artifactsDeleted: <count>
|
|
457
|
+
testsRun: <count>
|
|
458
|
+
summary: <one-line>
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
### On failure:
|
|
462
|
+
|
|
463
|
+
```
|
|
464
|
+
ORCHESTRATOR_RESULT:
|
|
465
|
+
status: FAILED
|
|
466
|
+
mode: mend
|
|
467
|
+
issueNumber: <N>
|
|
468
|
+
componentName: <name>
|
|
469
|
+
failedPhase: <phase or pre-flight or cleanup>
|
|
470
|
+
reason: <exact reason>
|
|
471
|
+
suggestion: <what to fix>
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### On full iteration completion:
|
|
475
|
+
|
|
476
|
+
```
|
|
477
|
+
ORCHESTRATOR_RESULT:
|
|
478
|
+
status: ITERATION_COMPLETE
|
|
479
|
+
mode: mend
|
|
480
|
+
completed:
|
|
481
|
+
- { issue: <N>, component: <name>, oldComponent: <name>, commits: { common: <SHA>, uicomponents: <SHA>, wiki: <SHA> } }
|
|
482
|
+
failed:
|
|
483
|
+
- { issue: <N>, component: <name>, phase: <phase>, reason: <reason> }
|
|
484
|
+
remaining: <count>
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
---
|
|
488
|
+
|
|
489
|
+
## Error Handling
|
|
490
|
+
|
|
491
|
+
- **No available issues**: Output ORCHESTRATOR_RESULT with status ITERATION_COMPLETE, empty completed/failed.
|
|
492
|
+
- **Blocked issue**: Output FAILED.
|
|
493
|
+
- **Pre-flight LOCATE_OLD_COMPONENT fails**: Output FAILED with phase `pre-flight` and suggest running `/figma-cli-iterate` (no mend needed).
|
|
494
|
+
- **Phase HALT**: Show reason, ask user. If resolved → retry phase. If skipped → FAILED for this component, move to next.
|
|
495
|
+
- **Build failure during Phase 4**: Attempt auto-fix. If unfixable → FAILED.
|
|
496
|
+
- **Cleanup VERIFY_NEW_IMPLEMENTATION fails**: FAILED with phase `cleanup`. Old files are NOT deleted. New implementation must be fixed before re-running the skill with the same issue (which will resume from pre-flight — `mend-context.json` persists).
|
|
497
|
+
- **3 consecutive failures**: Stop iteration.
|
|
498
|
+
- **Subagents can't dispatch subagents**: This is why we dispatch only leaf phases. If a phase instruction file references dispatching subagents, ignore that — run its gates directly in the subagent.
|