@mmerterden/multi-agent-pipeline 8.6.1 → 10.0.6
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 +544 -2484
- package/README.md +117 -138
- package/docs/features.md +1 -1
- package/index.js +8 -10
- package/install/_adapters.mjs +5 -1
- package/install/_common.mjs +63 -0
- package/install/claude.mjs +14 -14
- package/install/copilot.mjs +14 -8
- package/install/index.mjs +85 -19
- package/install/templates/claude-hooks.json +18 -0
- package/install/templates/copilot-instructions.md +3 -3
- package/package.json +21 -6
- package/pipeline/adapters/_base.mjs +366 -14
- package/pipeline/adapters/antigravity.mjs +140 -0
- package/pipeline/adapters/codex.mjs +159 -0
- package/pipeline/adapters/copilot-chat-orchestration.mjs +148 -0
- package/pipeline/adapters/copilot-chat.mjs +34 -68
- package/pipeline/adapters/cursor-orchestration.mjs +152 -0
- package/pipeline/adapters/cursor.mjs +49 -90
- package/pipeline/agents/android-architect.md +5 -5
- package/pipeline/agents/backend-architect.md +4 -4
- package/pipeline/agents/code-reviewer.md +10 -10
- package/pipeline/agents/dev-critic.md +17 -17
- package/pipeline/agents/explorer.md +3 -3
- package/pipeline/agents/ios-architect.md +4 -4
- package/pipeline/agents/security-auditor.md +12 -12
- package/pipeline/agents/task-clarifier.md +18 -18
- package/pipeline/claude-md-template.md +3 -3
- package/pipeline/commands/archive-guard.md +3 -3
- package/pipeline/commands/figma-to-swiftui.md +10 -10
- package/pipeline/commands/multi-agent/_account-picker.md +13 -9
- package/pipeline/commands/multi-agent/_dev-context.md +15 -15
- package/pipeline/commands/multi-agent/_input-parser.md +4 -4
- package/pipeline/commands/multi-agent/_repo-picker.md +9 -9
- package/pipeline/commands/multi-agent/analysis-resolve.md +129 -0
- package/pipeline/commands/multi-agent/analysis.md +667 -0
- package/pipeline/commands/multi-agent/autopilot.md +22 -22
- package/pipeline/commands/multi-agent/build-optimize.md +77 -0
- package/pipeline/commands/multi-agent/channels.md +96 -96
- package/pipeline/commands/multi-agent/delete.md +19 -17
- package/pipeline/commands/multi-agent/dev-autopilot.md +23 -23
- package/pipeline/commands/multi-agent/dev-local-autopilot.md +23 -23
- package/pipeline/commands/multi-agent/dev-local.md +25 -22
- package/pipeline/commands/multi-agent/dev.md +49 -49
- package/pipeline/commands/multi-agent/diff-explain.md +4 -4
- package/pipeline/commands/multi-agent/garbage-collect.md +58 -0
- package/pipeline/commands/multi-agent/help.md +75 -66
- package/pipeline/commands/multi-agent/issue.md +3 -3
- package/pipeline/commands/multi-agent/jira.md +12 -12
- package/pipeline/commands/multi-agent/kill.md +6 -6
- package/pipeline/commands/multi-agent/language.md +12 -12
- package/pipeline/commands/multi-agent/local-autopilot.md +34 -34
- package/pipeline/commands/multi-agent/local.md +24 -25
- package/pipeline/commands/multi-agent/log.md +6 -6
- package/pipeline/commands/multi-agent/manual-test.md +3 -3
- package/pipeline/commands/multi-agent/prune-logs.md +60 -0
- package/pipeline/commands/multi-agent/purge.md +10 -7
- package/pipeline/commands/multi-agent/refactor.md +9 -9
- package/pipeline/commands/multi-agent/refs/analysis-template.md +1062 -0
- package/pipeline/commands/multi-agent/refs/android-guide.md +15 -13
- package/pipeline/commands/multi-agent/refs/audit-guide.md +20 -20
- package/pipeline/commands/multi-agent/refs/backend-guide.md +9 -9
- package/pipeline/commands/multi-agent/refs/channels/confluence.md +17 -17
- package/pipeline/commands/multi-agent/refs/channels/issue-comment.md +30 -30
- package/pipeline/commands/multi-agent/refs/channels/jira.md +15 -15
- package/pipeline/commands/multi-agent/refs/channels/pr-review-actions.md +19 -17
- package/pipeline/commands/multi-agent/refs/channels/pr.md +22 -22
- package/pipeline/commands/multi-agent/refs/channels/wiki.md +19 -19
- package/pipeline/commands/multi-agent/refs/component-dispatch.md +11 -11
- package/pipeline/commands/multi-agent/refs/conventions-defaults.md +179 -0
- package/pipeline/commands/multi-agent/refs/cross-cli-contract.md +35 -33
- package/pipeline/commands/multi-agent/refs/features/dev-critic.md +5 -5
- package/pipeline/commands/multi-agent/refs/features/external-context-injection.md +6 -6
- package/pipeline/commands/multi-agent/refs/features/model-fallback.md +73 -0
- package/pipeline/commands/multi-agent/refs/features/plan-todos.md +1 -1
- package/pipeline/commands/multi-agent/refs/features/prior-fix-detection.md +4 -4
- package/pipeline/commands/multi-agent/refs/features/repo-map.md +6 -6
- package/pipeline/commands/multi-agent/refs/features/shadow-git.md +2 -2
- package/pipeline/commands/multi-agent/refs/frontend-guide.md +16 -16
- package/pipeline/commands/multi-agent/refs/issue-jira-triad.md +18 -18
- package/pipeline/commands/multi-agent/refs/keychain.md +18 -8
- package/pipeline/commands/multi-agent/refs/knowledge.md +9 -9
- package/pipeline/commands/multi-agent/refs/multi-repo-integration-build.md +19 -19
- package/pipeline/commands/multi-agent/refs/phases/log-format.md +29 -9
- package/pipeline/commands/multi-agent/refs/phases/modes.md +33 -33
- package/pipeline/commands/multi-agent/refs/phases/operations.md +11 -11
- package/pipeline/commands/multi-agent/refs/phases/phase-0-init.md +93 -57
- package/pipeline/commands/multi-agent/refs/phases/phase-1-analysis.md +59 -28
- package/pipeline/commands/multi-agent/refs/phases/phase-2-planning.md +115 -63
- package/pipeline/commands/multi-agent/refs/phases/phase-3-dev.md +99 -36
- package/pipeline/commands/multi-agent/refs/phases/phase-4-review.md +160 -63
- package/pipeline/commands/multi-agent/refs/phases/phase-5-test.md +33 -18
- package/pipeline/commands/multi-agent/refs/phases/phase-6-commit.md +45 -43
- package/pipeline/commands/multi-agent/refs/phases/phase-7-report.md +54 -28
- package/pipeline/commands/multi-agent/refs/phases.md +17 -17
- package/pipeline/commands/multi-agent/refs/picker-contract.md +65 -0
- package/pipeline/commands/multi-agent/refs/progress-contract.md +37 -21
- package/pipeline/commands/multi-agent/refs/rules.md +83 -25
- package/pipeline/commands/multi-agent/refs/swiftui-guide.md +32 -30
- package/pipeline/commands/multi-agent/refs/tracker-contract.md +54 -30
- package/pipeline/commands/multi-agent/refs/wiki-capture.md +36 -33
- package/pipeline/commands/multi-agent/resume.md +9 -9
- package/pipeline/commands/multi-agent/review.md +24 -24
- package/pipeline/commands/multi-agent/scan.md +10 -10
- package/pipeline/commands/multi-agent/search.md +8 -8
- package/pipeline/commands/multi-agent/setup.md +111 -84
- package/pipeline/commands/multi-agent/stack.md +5 -5
- package/pipeline/commands/multi-agent/status.md +5 -5
- package/pipeline/commands/multi-agent/sync.md +123 -111
- package/pipeline/commands/multi-agent/test.md +6 -6
- package/pipeline/commands/multi-agent/update.md +1 -1
- package/pipeline/commands/multi-agent.md +66 -60
- package/pipeline/commands/sim-test.md +14 -14
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-1-analysis.json +1 -1
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-review.json +2 -2
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-triage.json +2 -2
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/metadata.json +1 -1
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-1-analysis.json +2 -2
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-review.json +3 -3
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-triage.json +4 -4
- package/pipeline/eval/golden-tasks/02-android-feature-compose/metadata.json +1 -1
- package/pipeline/eval/golden-tasks/02-android-feature-compose/task.json +1 -1
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-1-analysis.json +29 -0
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-2-plan.json +42 -0
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-4-review.json +20 -0
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-4-triage.json +15 -0
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/task.json +12 -0
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-1-analysis.json +29 -0
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-2-plan.json +40 -0
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-4-review.json +20 -0
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-4-triage.json +15 -0
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/task.json +12 -0
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-1-analysis.json +29 -0
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-2-plan.json +42 -0
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-4-review.json +28 -0
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-4-triage.json +27 -0
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/task.json +12 -0
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-1-analysis.json +29 -0
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-2-plan.json +41 -0
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-4-review.json +12 -0
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-4-triage.json +6 -0
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/task.json +12 -0
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-1-analysis.json +29 -0
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-2-plan.json +42 -0
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-4-review.json +28 -0
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-4-triage.json +27 -0
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/task.json +12 -0
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-1-analysis.json +25 -0
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-2-plan.json +31 -0
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-4-review.json +12 -0
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-4-triage.json +18 -0
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/task.json +12 -0
- package/pipeline/eval/golden-tasks/README.md +14 -14
- package/pipeline/eval/intent-cases.json +40 -0
- package/pipeline/eval/run-metrics-fixture.json +46 -0
- package/pipeline/eval/triage/01-empty-findings/notes.md +1 -1
- package/pipeline/eval/triage/02-real-blocker/notes.md +2 -2
- package/pipeline/eval/triage/03-out-of-scope-defer/notes.md +1 -1
- package/pipeline/eval/triage/04-false-positive-reject/notes.md +1 -1
- package/pipeline/eval/triage/05-mixed-classification/notes.md +2 -2
- package/pipeline/eval/triage/06-severity-mismatch/notes.md +2 -2
- package/pipeline/eval/triage/07-duplicate-reviewers/notes.md +1 -1
- package/pipeline/eval/triage/08-style-misclassified/notes.md +1 -1
- package/pipeline/eval/triage/09-cascading-finding/notes.md +2 -2
- package/pipeline/eval/triage/10-deferred-crossref/notes.md +2 -2
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/expected.json +3 -3
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/input.json +2 -2
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/notes.md +5 -5
- package/pipeline/eval/triage/README.md +4 -4
- package/pipeline/lib/account-resolver.sh +3 -3
- package/pipeline/lib/ask-choice.sh +98 -0
- package/pipeline/lib/channels-multi-repo.sh +3 -3
- package/pipeline/lib/classify-intent.sh +110 -0
- package/pipeline/lib/context-link-extractor.sh +3 -3
- package/pipeline/lib/credential-store-resolver.sh +3 -3
- package/pipeline/lib/credential-store.sh +9 -5
- package/pipeline/lib/extract-conventions.sh +1034 -0
- package/pipeline/lib/fetch-confluence.sh +3 -3
- package/pipeline/lib/fetch-crashlytics.sh +5 -5
- package/pipeline/lib/fetch-fortify.sh +5 -21
- package/pipeline/lib/fetch-swagger.sh +5 -5
- package/pipeline/lib/figma-screenshot.sh +536 -0
- package/pipeline/lib/issue-fetcher.sh +46 -20
- package/pipeline/lib/md2confluence-v3.py +1076 -0
- package/pipeline/lib/multi-repo-pipeline.sh +13 -22
- package/pipeline/lib/plan-todos.sh +7 -7
- package/pipeline/lib/post-pr-review.sh +53 -21
- package/pipeline/lib/repo-cache.sh +5 -5
- package/pipeline/lib/review-watch.sh +17 -13
- package/pipeline/lib/shadow-git.sh +7 -7
- package/pipeline/lib/submodule-detector.sh +3 -3
- package/pipeline/lib/vercel-deploy.sh +28 -15
- package/pipeline/preferences-template.json +21 -4
- package/pipeline/rules/app-store-guidelines.md +2 -2
- package/pipeline/rules/code-style.md +6 -6
- package/pipeline/rules/figma-pipeline.md +100 -2
- package/pipeline/rules/kotlin-android.md +8 -8
- package/pipeline/rules/security.md +4 -4
- package/pipeline/rules/tdd.md +1 -1
- package/pipeline/rules/testing.md +5 -5
- package/pipeline/schemas/agent-state.schema.json +55 -20
- package/pipeline/schemas/analysis-output.schema.json +7 -2
- package/pipeline/schemas/analysis-spec.schema.json +484 -0
- package/pipeline/schemas/clarify-output.schema.json +5 -5
- package/pipeline/schemas/conventions-output.schema.json +70 -0
- package/pipeline/schemas/dev-critic-output.schema.json +2 -2
- package/pipeline/schemas/diff-risk.schema.json +3 -3
- package/pipeline/schemas/figma-project-config.schema.json +3 -3
- package/pipeline/schemas/learnings-ledger.schema.json +39 -0
- package/pipeline/schemas/migrations/README.md +2 -2
- package/pipeline/schemas/migrations/figma-config-1.0.0-to-2.0.0.mjs +5 -5
- package/pipeline/schemas/migrations/prefs-2.0.0-to-2.1.0.mjs +3 -3
- package/pipeline/schemas/migrations/prefs-2.1.0-to-2.2.0.mjs +4 -4
- package/pipeline/schemas/migrations/prefs-2.2.0-to-2.3.0.mjs +5 -5
- package/pipeline/schemas/migrations/state-2.0.0-to-2.1.0.mjs +3 -3
- package/pipeline/schemas/plan-todos.schema.json +4 -4
- package/pipeline/schemas/planning-output.schema.json +3 -3
- package/pipeline/schemas/prefs.schema.json +97 -13
- package/pipeline/schemas/reviewer-output.schema.json +7 -3
- package/pipeline/schemas/test-gap.schema.json +1 -1
- package/pipeline/schemas/token-budget.json +8 -8
- package/pipeline/schemas/triage-corpus.schema.json +1 -1
- package/pipeline/schemas/triage-output.schema.json +44 -6
- package/pipeline/scripts/README.md +64 -64
- package/pipeline/scripts/aggregate-metrics.mjs +55 -16
- package/pipeline/scripts/audit-log-rotate.sh +3 -3
- package/pipeline/scripts/audit-log.sh +20 -7
- package/pipeline/scripts/benchmark-phase-0.sh +6 -6
- package/pipeline/scripts/build-skills-index.mjs +15 -15
- package/pipeline/scripts/check-md-links.mjs +59 -0
- package/pipeline/scripts/classify-plan-safety.mjs +24 -18
- package/pipeline/scripts/cost-budget-check.mjs +160 -0
- package/pipeline/scripts/cost-table.json +23 -13
- package/pipeline/scripts/diff-explain.mjs +12 -12
- package/pipeline/scripts/diff-risk-score.mjs +18 -17
- package/pipeline/scripts/eval-golden-tasks-live.mjs +13 -10
- package/pipeline/scripts/eval-golden-tasks.mjs +3 -14
- package/pipeline/scripts/eval-intent.mjs +103 -0
- package/pipeline/scripts/eval-triage.mjs +3 -3
- package/pipeline/scripts/evidence-gate.mjs +155 -0
- package/pipeline/scripts/fixtures/install-layout.tsv +9 -9
- package/pipeline/scripts/gc-tmp.sh +102 -0
- package/pipeline/scripts/gen-mode-dispatch.mjs +27 -21
- package/pipeline/scripts/gen-skills-index.mjs +6 -6
- package/pipeline/scripts/github-ssh-setup.sh +1 -1
- package/pipeline/scripts/keychain-save.sh +1 -1
- package/pipeline/scripts/keychain.py +6 -6
- package/pipeline/scripts/learnings-ledger.mjs +284 -0
- package/pipeline/scripts/lint-skills.mjs +80 -0
- package/pipeline/scripts/log-metric.sh +18 -9
- package/pipeline/scripts/match-skills.mjs +13 -8
- package/pipeline/scripts/memory-load.sh +3 -3
- package/pipeline/scripts/memory-save.sh +5 -5
- package/pipeline/scripts/migrate-prefs.mjs +17 -17
- package/pipeline/scripts/migrate-state.mjs +12 -12
- package/pipeline/scripts/output-quality-check.sh +7 -7
- package/pipeline/scripts/phase-banner.sh +5 -5
- package/pipeline/scripts/phase-tracker.sh +90 -53
- package/pipeline/scripts/pre-commit-check.sh +45 -5
- package/pipeline/scripts/pre-push-check.sh +7 -7
- package/pipeline/scripts/prune-logs.sh +118 -0
- package/pipeline/scripts/render-agent-log-cost.sh +55 -18
- package/pipeline/scripts/render-cost-summary.sh +9 -9
- package/pipeline/scripts/render-work-summary.sh +4 -4
- package/pipeline/scripts/repo-map.mjs +9 -9
- package/pipeline/scripts/run-aggregator.mjs +7 -6
- package/pipeline/scripts/run-metrics.mjs +129 -0
- package/pipeline/scripts/run-smokes.mjs +76 -0
- package/pipeline/scripts/scan-skills.sh +11 -11
- package/pipeline/scripts/search-logs.sh +8 -8
- package/pipeline/scripts/sign-skills.sh +2 -2
- package/pipeline/scripts/smoke-adapters.sh +79 -10
- package/pipeline/scripts/smoke-add-detail.sh +5 -5
- package/pipeline/scripts/smoke-agent-log-cost.sh +85 -6
- package/pipeline/scripts/smoke-agent-model-routing.sh +3 -3
- package/pipeline/scripts/smoke-ask-choice.sh +42 -0
- package/pipeline/scripts/smoke-bitbucket-contract.sh +19 -3
- package/pipeline/scripts/smoke-changelog-version.sh +47 -0
- package/pipeline/scripts/smoke-channels-flow.sh +1 -1
- package/pipeline/scripts/smoke-ci-workflows.sh +5 -5
- package/pipeline/scripts/smoke-clarify.sh +3 -3
- package/pipeline/scripts/smoke-commands-skills-parity.sh +4 -4
- package/pipeline/scripts/smoke-community-gates.sh +75 -0
- package/pipeline/scripts/smoke-compliance-skills.sh +5 -5
- package/pipeline/scripts/smoke-cost-budget.sh +70 -0
- package/pipeline/scripts/smoke-cost-summary.sh +4 -4
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +50 -9
- package/pipeline/scripts/smoke-cross-phase-cohesion.sh +5 -5
- package/pipeline/scripts/smoke-delete-flow.sh +5 -5
- package/pipeline/scripts/smoke-dev-critic.sh +2 -2
- package/pipeline/scripts/smoke-diff-explain.sh +22 -3
- package/pipeline/scripts/smoke-diff-risk.sh +1 -1
- package/pipeline/scripts/smoke-dynamic-skill-loading.sh +1 -1
- package/pipeline/scripts/smoke-eval-live.sh +4 -4
- package/pipeline/scripts/smoke-evidence-gate.sh +93 -0
- package/pipeline/scripts/smoke-existing-discovery-gate.sh +1 -1
- package/pipeline/scripts/smoke-extract-conventions.sh +163 -0
- package/pipeline/scripts/smoke-figma-android-parity.sh +1 -1
- package/pipeline/scripts/smoke-figma-credential-store.sh +3 -3
- package/pipeline/scripts/smoke-figma-cross-cli-inventory.sh +12 -12
- package/pipeline/scripts/smoke-figma-dispatch.sh +5 -5
- package/pipeline/scripts/smoke-figma-sync.sh +1 -1
- package/pipeline/scripts/smoke-gate-hooks.sh +56 -0
- package/pipeline/scripts/smoke-gc-tmp.sh +84 -0
- package/pipeline/scripts/smoke-identity-isolation.sh +7 -7
- package/pipeline/scripts/smoke-install-layout.sh +10 -10
- package/pipeline/scripts/smoke-intent-guard.sh +86 -0
- package/pipeline/scripts/smoke-issue-comment-template.sh +3 -3
- package/pipeline/scripts/smoke-issue-jira-triad.sh +1 -1
- package/pipeline/scripts/smoke-keychain.sh +6 -6
- package/pipeline/scripts/smoke-language-axis.sh +2 -2
- package/pipeline/scripts/smoke-learnings-ledger.sh +86 -0
- package/pipeline/scripts/smoke-lib-scripts.sh +2 -2
- package/pipeline/scripts/smoke-mcp-gate.sh +68 -0
- package/pipeline/scripts/smoke-md-links.sh +8 -0
- package/pipeline/scripts/smoke-md2confluence.sh +126 -0
- package/pipeline/scripts/smoke-metrics-cache-ratio.sh +72 -0
- package/pipeline/scripts/smoke-migrate-state.sh +10 -10
- package/pipeline/scripts/smoke-mode-dispatch-drift.sh +7 -4
- package/pipeline/scripts/smoke-model-fallback.sh +80 -0
- package/pipeline/scripts/smoke-multi-repo-integration.sh +3 -3
- package/pipeline/scripts/smoke-multi-repo-worktree.sh +1 -1
- package/pipeline/scripts/smoke-no-mcp-in-dev-phases.sh +115 -0
- package/pipeline/scripts/smoke-no-token-prompt.sh +31 -15
- package/pipeline/scripts/smoke-pat-audit.sh +26 -5
- package/pipeline/scripts/smoke-per-repo-memory.sh +1 -1
- package/pipeline/scripts/smoke-phase-0-multi-repo.sh +1 -1
- package/pipeline/scripts/smoke-phase-6-multi.sh +2 -2
- package/pipeline/scripts/smoke-phase-banner.sh +1 -1
- package/pipeline/scripts/smoke-phase-tracker.sh +1 -1
- package/pipeline/scripts/smoke-phase0-bridge-contract.sh +4 -4
- package/pipeline/scripts/smoke-phase4-triage.sh +94 -7
- package/pipeline/scripts/smoke-plan-approval-gate.sh +3 -3
- package/pipeline/scripts/smoke-plan-safety.sh +1 -1
- package/pipeline/scripts/smoke-plan-todos.sh +7 -4
- package/pipeline/scripts/smoke-pr-review-actions.sh +2 -2
- package/pipeline/scripts/smoke-pre-commit.sh +34 -2
- package/pipeline/scripts/smoke-pref-migration.sh +1 -1
- package/pipeline/scripts/smoke-prefs-language.sh +5 -5
- package/pipeline/scripts/smoke-progress-contract.sh +3 -3
- package/pipeline/scripts/smoke-prune-logs.sh +87 -0
- package/pipeline/scripts/smoke-push-retry.sh +1 -1
- package/pipeline/scripts/smoke-readme-counts.sh +1 -1
- package/pipeline/scripts/smoke-repo-map.sh +9 -9
- package/pipeline/scripts/smoke-review-watch.sh +12 -0
- package/pipeline/scripts/smoke-run-aggregator.sh +7 -7
- package/pipeline/scripts/smoke-run-metrics.sh +50 -0
- package/pipeline/scripts/smoke-schema-validation.sh +18 -11
- package/pipeline/scripts/smoke-search.sh +5 -5
- package/pipeline/scripts/smoke-shared-runtime.sh +108 -0
- package/pipeline/scripts/smoke-skill-authoring.sh +13 -13
- package/pipeline/scripts/smoke-skill-language.sh +4 -4
- package/pipeline/scripts/smoke-skill-manifest.sh +2 -2
- package/pipeline/scripts/smoke-skill-scan.sh +2 -2
- package/pipeline/scripts/smoke-stack-swap.sh +2 -2
- package/pipeline/scripts/smoke-subagent-validators.sh +8 -5
- package/pipeline/scripts/smoke-sync-adapters.sh +1 -1
- package/pipeline/scripts/smoke-sync-delegation.sh +7 -7
- package/pipeline/scripts/smoke-sync-parity.sh +1 -1
- package/pipeline/scripts/smoke-tasklist-ordering.sh +7 -7
- package/pipeline/scripts/smoke-telemetry.sh +1 -1
- package/pipeline/scripts/smoke-test-gap.sh +5 -5
- package/pipeline/scripts/smoke-token-budget.sh +1 -1
- package/pipeline/scripts/smoke-tracker-contract.sh +6 -6
- package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +9 -1
- package/pipeline/scripts/smoke-triage-memory.sh +2 -2
- package/pipeline/scripts/smoke-url-enrichment.sh +2 -2
- package/pipeline/scripts/smoke-validator-contradiction.sh +1 -1
- package/pipeline/scripts/smoke-validator-gates.sh +164 -0
- package/pipeline/scripts/smoke-vercel-deploy-redact.sh +11 -11
- package/pipeline/scripts/smoke-wiki-integration.sh +2 -2
- package/pipeline/scripts/smoke-work-summary.sh +3 -3
- package/pipeline/scripts/smoke-worktree-path-convention.sh +4 -4
- package/pipeline/scripts/smoke-write-state.sh +2 -2
- package/pipeline/scripts/stack-swap.sh +3 -3
- package/pipeline/scripts/sync-adapters.mjs +37 -10
- package/pipeline/scripts/sync-parity-check.sh +6 -6
- package/pipeline/scripts/test-gap-scan.mjs +11 -13
- package/pipeline/scripts/token-budget-report.mjs +4 -4
- package/pipeline/scripts/triage-memory.mjs +6 -6
- package/pipeline/scripts/uninstall.mjs +42 -4
- package/pipeline/scripts/update-issue-progress.sh +2 -2
- package/pipeline/scripts/validate-analysis.mjs +19 -21
- package/pipeline/scripts/validate-diff-risk.mjs +4 -4
- package/pipeline/scripts/validate-planning.mjs +3 -3
- package/pipeline/scripts/validate-reviewer.mjs +4 -4
- package/pipeline/scripts/validate-schemas.mjs +4 -4
- package/pipeline/scripts/validate-test-gap.mjs +4 -4
- package/pipeline/scripts/validate-triage.mjs +68 -9
- package/pipeline/scripts/verify-skills.sh +7 -7
- package/pipeline/scripts/write-state.mjs +49 -11
- package/pipeline/skills/.skill-manifest.json +245 -149
- package/pipeline/skills/.skills-index.json +236 -47
- package/pipeline/skills/figma-android/README.md +5 -5
- package/pipeline/skills/figma-android/figma-component-code-connect/SKILL.md +3 -3
- package/pipeline/skills/figma-android/figma-component-implement/SKILL.md +8 -8
- package/pipeline/skills/figma-android/figma-component-test/SKILL.md +4 -4
- package/pipeline/skills/figma-android/figma-component-wiki/SKILL.md +5 -5
- package/pipeline/skills/figma-android/figma-to-component/SKILL.md +14 -14
- package/pipeline/skills/figma-common/README.md +29 -29
- package/pipeline/skills/figma-common/figma-cli-iterate/SKILL.md +20 -15
- package/pipeline/skills/figma-common/figma-cli-iterate-mend/SKILL.md +35 -30
- package/pipeline/skills/figma-common/figma-cli-lean-iterate/SKILL.md +35 -30
- package/pipeline/skills/figma-common/figma-cli-skip/SKILL.md +20 -20
- package/pipeline/skills/figma-common/figma-commit/COMMON_REBASE.md +32 -32
- package/pipeline/skills/figma-common/figma-commit/REVIEW.md +9 -9
- package/pipeline/skills/figma-common/figma-commit/SKILL.md +25 -20
- package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +11 -6
- package/pipeline/skills/figma-common/figma-component-start/SKILL.md +30 -25
- package/pipeline/skills/figma-common/figma-component-status-update/SKILL.md +9 -4
- package/pipeline/skills/figma-common/figma-fix/SKILL.md +27 -22
- package/pipeline/skills/figma-common/figma-form-integration/SKILL.md +38 -38
- package/pipeline/skills/figma-common/figma-issue/SKILL.md +39 -34
- package/pipeline/skills/figma-common/figma-iterate/SKILL.md +20 -15
- package/pipeline/skills/figma-common/figma-iteration-commit/SKILL.md +44 -39
- package/pipeline/skills/figma-common/figma-mend/SKILL.md +6 -6
- package/pipeline/skills/figma-common/figma-price-integration/SKILL.md +30 -30
- package/pipeline/skills/figma-common/figma-remote-mcp-auth/SKILL.md +1 -1
- package/pipeline/skills/figma-common/figma-review/SKILL.md +31 -26
- package/pipeline/skills/figma-common/figma-setup/SKILL.md +11 -11
- package/pipeline/skills/figma-common/figma-setup/scripts/fetch-mcp-token.py +5 -5
- package/pipeline/skills/figma-common/figma-skip/SKILL.md +6 -6
- package/pipeline/skills/figma-common/figma-ui-patterns/SKILL.md +12 -12
- package/pipeline/skills/figma-common/figma-utility/SKILL.md +4 -4
- package/pipeline/skills/figma-common/figma-utility/scripts/figma-utility.py +1 -1
- package/pipeline/skills/figma-common/figma-validate/SKILL.md +48 -48
- package/pipeline/skills/figma-common/performance-iteration-commit-all/SKILL.md +42 -37
- package/pipeline/skills/figma-common/performance-review-next/SKILL.md +23 -18
- package/pipeline/skills/figma-common/performance-start/SKILL.md +52 -47
- package/pipeline/skills/figma-common/performance-swiftui/SKILL.md +68 -68
- package/pipeline/skills/figma-common/performance-tour/SKILL.md +42 -37
- package/pipeline/skills/figma-ios/REVIEW_CHECKLIST.md +16 -16
- package/pipeline/skills/figma-ios/figma-component-code-connect/SKILL.md +15 -15
- package/pipeline/skills/figma-ios/figma-component-implement/SKILL.md +9 -9
- package/pipeline/skills/figma-ios/figma-component-test/SKILL.md +15 -15
- package/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md +18 -18
- package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +38 -38
- package/pipeline/skills/figma-ios/figma-to-component/halt-return-protocol.md +2 -2
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-0-init.md +12 -12
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1-gathering.md +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md +19 -19
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md +25 -25
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2a-testing-identifiers.md +7 -7
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2b-localization.md +6 -6
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2c-accessibility.md +38 -38
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2d-analytics.md +3 -3
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3-orchestrator.md +29 -29
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3a-location.md +6 -6
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3b-tokens.md +3 -3
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3c-nested.md +12 -12
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3d-patterns.md +57 -57
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3e-assets.md +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3f-utilities.md +6 -6
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3g-property-coverage.md +10 -10
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3h-variant-config.md +16 -16
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4-orchestrator.md +23 -23
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4a-configuration.md +26 -26
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4b-view.md +43 -43
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4c-documentation.md +17 -17
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4d-preview.md +19 -19
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4e-modifiers.md +15 -15
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5-orchestrator.md +39 -39
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5a-viewinspector.md +7 -7
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5b-snapshot.md +29 -29
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5c-unit.md +9 -9
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +31 -31
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7-wiki.md +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-confluence-generate.md +18 -18
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-wiki-generate.md +16 -16
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-8-cleanup.md +2 -2
- package/pipeline/skills/figma-ios/figma-to-component/reference/accessibility.md +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +49 -49
- package/pipeline/skills/figma-ios/figma-to-component/reference/figma-to-swiftui-effects.md +8 -8
- package/pipeline/skills/figma-ios/figma-to-component/reference/halt-return-protocol.md +2 -2
- package/pipeline/skills/figma-ios/figma-to-component/reference/macros.md +9 -9
- package/pipeline/skills/figma-ios/figma-to-component/reference/missing-tokens.md +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/reference/orchestrator-discipline.md +10 -10
- package/pipeline/skills/figma-ios/figma-to-component/reference/remote-mcp-script.md +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +11 -11
- package/pipeline/skills/figma-ios/figma-to-component/reference/scripts-inventory.md +14 -14
- package/pipeline/skills/figma-ios/figma-to-component/reference/snapshot-testing.md +2 -2
- package/pipeline/skills/figma-ios/figma-to-component/reference/subcomponent-graph.md +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md +6 -6
- package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +9 -9
- package/pipeline/skills/figma-ios/figma-to-component/reference/viewinspector.md +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/apply-author-login-map.py +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/scripts/backfill-status.py +18 -18
- package/pipeline/skills/figma-ios/figma-to-component/scripts/build-author-registry.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/bulk-sync-issues.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-data-gather.py +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-publish.sh +3 -3
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py +18 -18
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-data-gather.py +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.example.json +9 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-publish.py +3 -3
- package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-subcomponent-graph.py +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-update.py +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/issue_sync_propagate.py +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/registry_writer.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update.py +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_registry_writer.py +3 -3
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_issue.py +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue_gh.py +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +12 -12
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase2-finalize.py +3 -3
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase3-scripts.py +26 -26
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase4-finalize.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase5-finalize.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase6-finalize.py +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase7-finalize.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/register-icons-codeconnect.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/remote-mcp-fetch.py +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/scripts/resolve-author-logins.py +2 -2
- package/pipeline/skills/figma-ios/figma-to-component/scripts/run-uicomponents-tests.sh +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/sidebar-generator.py +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/scripts/update-issue-from-registry.py +41 -41
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase4.sh +8 -8
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase6.sh +7 -7
- package/pipeline/skills/shared/README.md +62 -41
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +39 -39
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +44 -44
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +182 -176
- package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +55 -0
- package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +48 -0
- package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +16 -16
- package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +48 -0
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +40 -40
- package/pipeline/skills/shared/core/multi-agent-delete/SKILL.md +33 -30
- package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +26 -26
- package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +22 -22
- package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +6 -6
- package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +12 -12
- package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +20 -20
- package/pipeline/skills/shared/core/multi-agent-garbage-collect/SKILL.md +61 -0
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +22 -22
- package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +15 -15
- package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +12 -12
- package/pipeline/skills/shared/core/multi-agent-kill/SKILL.md +14 -14
- package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +12 -12
- package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +10 -10
- package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +18 -18
- package/pipeline/skills/shared/core/multi-agent-log/SKILL.md +9 -9
- package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +20 -20
- package/pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md +63 -0
- package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +16 -13
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +110 -110
- package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +13 -13
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +22 -22
- package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +18 -18
- package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +13 -13
- package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +33 -30
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +14 -14
- package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +9 -9
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +79 -79
- package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +5 -5
- package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +10 -10
- package/pipeline/skills/shared/external/NOTICE-swift-ios-skills.md +41 -0
- package/pipeline/skills/shared/external/NOTICE-xcode-build-skills.md +53 -0
- package/pipeline/skills/shared/external/agentflow/SKILL.md +9 -9
- package/pipeline/skills/shared/external/alarmkit/SKILL.md +113 -52
- package/pipeline/skills/shared/external/alarmkit/evals/evals.json +41 -0
- package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +23 -16
- package/pipeline/skills/shared/external/app-clips/SKILL.md +85 -354
- package/pipeline/skills/shared/external/app-clips/evals/evals.json +50 -0
- package/pipeline/skills/shared/external/app-clips/references/data-handoff-notifications-location.md +135 -0
- package/pipeline/skills/shared/external/app-clips/references/routing-and-experiences.md +125 -0
- package/pipeline/skills/shared/external/app-clips/references/size-capabilities-and-promotion.md +113 -0
- package/pipeline/skills/shared/external/app-intents/SKILL.md +152 -59
- package/pipeline/skills/shared/external/app-intents/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +161 -118
- package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +289 -392
- package/pipeline/skills/shared/external/app-store-optimization/evals/evals.json +46 -0
- package/pipeline/skills/shared/external/app-store-optimization/references/keyword-research-methodology.md +174 -0
- package/pipeline/skills/shared/external/app-store-optimization/references/product-page-variants.md +191 -0
- package/pipeline/skills/shared/external/app-store-review/SKILL.md +57 -107
- package/pipeline/skills/shared/external/app-store-review/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +35 -12
- package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +28 -26
- package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +53 -62
- package/pipeline/skills/shared/external/apple-on-device-ai/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +7 -1
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +4 -1
- package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +32 -12
- package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +34 -30
- package/pipeline/skills/shared/external/authentication/SKILL.md +134 -138
- package/pipeline/skills/shared/external/authentication/evals/evals.json +48 -0
- package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +56 -29
- package/pipeline/skills/shared/external/authentication/references/passkeys.md +183 -0
- package/pipeline/skills/shared/external/avkit/SKILL.md +497 -0
- package/pipeline/skills/shared/external/avkit/evals/evals.json +55 -0
- package/pipeline/skills/shared/external/avkit/references/avkit-patterns.md +668 -0
- package/pipeline/skills/shared/external/background-processing/SKILL.md +29 -29
- package/pipeline/skills/shared/external/background-processing/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +44 -19
- package/pipeline/skills/shared/external/callkit-voip/SKILL.md +136 -99
- package/pipeline/skills/shared/external/callkit-voip/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +27 -8
- package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +7 -6
- package/pipeline/skills/shared/external/clean-code/SKILL.md +2 -2
- package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +63 -56
- package/pipeline/skills/shared/external/cloudkit-sync/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +7 -4
- package/pipeline/skills/shared/external/contacts-framework/SKILL.md +31 -11
- package/pipeline/skills/shared/external/contacts-framework/evals/evals.json +41 -0
- package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +51 -51
- package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +70 -65
- package/pipeline/skills/shared/external/core-bluetooth/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +25 -1
- package/pipeline/skills/shared/external/core-data/SKILL.md +496 -0
- package/pipeline/skills/shared/external/core-data/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/core-motion/SKILL.md +47 -14
- package/pipeline/skills/shared/external/core-motion/evals/evals.json +49 -0
- package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +47 -16
- package/pipeline/skills/shared/external/core-nfc/SKILL.md +43 -54
- package/pipeline/skills/shared/external/core-nfc/evals/evals.json +49 -0
- package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +32 -2
- package/pipeline/skills/shared/external/coreml/SKILL.md +89 -48
- package/pipeline/skills/shared/external/coreml/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +82 -37
- package/pipeline/skills/shared/external/cryptokit/SKILL.md +493 -0
- package/pipeline/skills/shared/external/cryptokit/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/cryptokit/references/cryptokit-patterns.md +602 -0
- package/pipeline/skills/shared/external/css-modern/SKILL.md +3 -2
- package/pipeline/skills/shared/external/database-patterns/SKILL.md +6 -5
- package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +77 -47
- package/pipeline/skills/shared/external/debugging-instruments/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +42 -34
- package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +2 -2
- package/pipeline/skills/shared/external/device-integrity/SKILL.md +136 -176
- package/pipeline/skills/shared/external/device-integrity/evals/evals.json +45 -0
- package/pipeline/skills/shared/external/device-integrity/references/device-integrity-patterns.md +240 -0
- package/pipeline/skills/shared/external/energykit/SKILL.md +73 -34
- package/pipeline/skills/shared/external/energykit/evals/evals.json +45 -0
- package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +80 -38
- package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +67 -53
- package/pipeline/skills/shared/external/eventkit-calendar/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +53 -3
- package/pipeline/skills/shared/external/healthkit/SKILL.md +57 -124
- package/pipeline/skills/shared/external/healthkit/evals/evals.json +46 -0
- package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +82 -1
- package/pipeline/skills/shared/external/homekit-matter/SKILL.md +43 -41
- package/pipeline/skills/shared/external/homekit-matter/evals/evals.json +45 -0
- package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +13 -8
- package/pipeline/skills/shared/external/html-semantic/SKILL.md +5 -4
- package/pipeline/skills/shared/external/humanizer/SKILL.md +4 -4
- package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +174 -18
- package/pipeline/skills/shared/external/ios-accessibility/evals/evals.json +49 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +262 -4
- package/pipeline/skills/shared/external/ios-accessibility/references/media-accessibility.md +117 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/nutrition-labels.md +141 -0
- package/pipeline/skills/shared/external/ios-localization/SKILL.md +67 -14
- package/pipeline/skills/shared/external/ios-localization/evals/evals.json +49 -0
- package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +20 -3
- package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +131 -22
- package/pipeline/skills/shared/external/ios-networking/SKILL.md +69 -22
- package/pipeline/skills/shared/external/ios-networking/evals/evals.json +50 -0
- package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +28 -16
- package/pipeline/skills/shared/external/ios-networking/references/file-storage-patterns.md +354 -0
- package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +69 -44
- package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +35 -69
- package/pipeline/skills/shared/external/ios-security/references/file-storage-patterns.md +8 -8
- package/pipeline/skills/shared/external/ios-simulator/SKILL.md +485 -0
- package/pipeline/skills/shared/external/ios-simulator/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/ios-simulator/references/simctl-commands.md +316 -0
- package/pipeline/skills/shared/external/live-activities/SKILL.md +120 -131
- package/pipeline/skills/shared/external/live-activities/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/live-activities/references/{live-activity-patterns.md → activitykit-patterns.md} +148 -63
- package/pipeline/skills/shared/external/mapkit-location/SKILL.md +40 -21
- package/pipeline/skills/shared/external/mapkit-location/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/mapkit-location/references/{corelocation-patterns.md → mapkit-corelocation-patterns.md} +88 -41
- package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +27 -24
- package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +129 -172
- package/pipeline/skills/shared/external/metrickit-diagnostics/evals/evals.json +46 -0
- package/pipeline/skills/shared/external/metrickit-diagnostics/references/metrickit-patterns.md +180 -0
- package/pipeline/skills/shared/external/musickit-audio/SKILL.md +45 -18
- package/pipeline/skills/shared/external/musickit-audio/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +26 -6
- package/pipeline/skills/shared/external/natural-language/SKILL.md +48 -18
- package/pipeline/skills/shared/external/natural-language/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +20 -7
- package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +4 -3
- package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +156 -66
- package/pipeline/skills/shared/external/passkit-wallet/evals/evals.json +51 -0
- package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +69 -19
- package/pipeline/skills/shared/external/pdfkit/SKILL.md +499 -0
- package/pipeline/skills/shared/external/pdfkit/evals/evals.json +42 -0
- package/pipeline/skills/shared/external/pdfkit/references/pdfkit-patterns.md +844 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +122 -28
- package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +49 -18
- package/pipeline/skills/shared/external/permissionkit/SKILL.md +100 -51
- package/pipeline/skills/shared/external/permissionkit/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +48 -8
- package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +13 -15
- package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +4 -4
- package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +2 -2
- package/pipeline/skills/shared/external/photos-camera-media/references/{photospicker-patterns.md → photokit-patterns.md} +3 -3
- package/pipeline/skills/shared/external/push-notifications/SKILL.md +45 -48
- package/pipeline/skills/shared/external/push-notifications/evals/evals.json +46 -0
- package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +22 -33
- package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +56 -37
- package/pipeline/skills/shared/external/python-patterns/SKILL.md +4 -3
- package/pipeline/skills/shared/external/react-best-practices/SKILL.md +1 -0
- package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +74 -53
- package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +10 -10
- package/pipeline/skills/shared/external/rest-api-design/SKILL.md +21 -20
- package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +81 -64
- package/pipeline/skills/shared/external/shareplay-activities/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +48 -9
- package/pipeline/skills/shared/external/speech-recognition/SKILL.md +118 -104
- package/pipeline/skills/shared/external/speech-recognition/evals/evals.json +49 -0
- package/pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md +171 -0
- package/pipeline/skills/shared/external/spm-build-analysis/SKILL.md +93 -0
- package/pipeline/skills/shared/external/spm-build-analysis/references/build-optimization-sources.md +155 -0
- package/pipeline/skills/shared/external/spm-build-analysis/references/recommendation-format.md +85 -0
- package/pipeline/skills/shared/external/spm-build-analysis/references/spm-analysis-checks.md +105 -0
- package/pipeline/skills/shared/external/spm-build-analysis/scripts/check_spm_pins.py +118 -0
- package/pipeline/skills/shared/external/storekit/SKILL.md +110 -44
- package/pipeline/skills/shared/external/storekit/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/storekit/references/app-review-guidelines.md +94 -43
- package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +82 -33
- package/pipeline/skills/shared/external/swift-api-design-guidelines/SKILL.md +449 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/evals/evals.json +50 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/argument-labels-and-parameters.md +164 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/conventions-and-special-rules.md +219 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/naming-and-clarity.md +184 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/side-effects-and-mutating-pairs.md +158 -0
- package/pipeline/skills/shared/external/swift-architecture/SKILL.md +499 -0
- package/pipeline/skills/shared/external/swift-architecture/evals/evals.json +45 -0
- package/pipeline/skills/shared/external/swift-charts/SKILL.md +52 -40
- package/pipeline/skills/shared/external/swift-charts/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +92 -11
- package/pipeline/skills/shared/external/swift-codable/SKILL.md +43 -16
- package/pipeline/skills/shared/external/swift-codable/evals/evals.json +43 -0
- package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +50 -30
- package/pipeline/skills/shared/external/swift-concurrency/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/approachable-concurrency.md +11 -4
- package/pipeline/skills/shared/external/swift-concurrency/references/async-algorithms.md +113 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/bridging-interop.md +150 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/{swift-6-2-concurrency.md → concurrency-patterns.md} +22 -11
- package/pipeline/skills/shared/external/swift-concurrency/references/diagnostics.md +52 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +2 -2
- package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +21 -15
- package/pipeline/skills/shared/external/swift-concurrency-expert/SKILL.md +3 -3
- package/pipeline/skills/shared/external/swift-concurrency-pro/SKILL.md +2 -2
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/actors.md +3 -3
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/async-streams.md +1 -1
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/bridging.md +3 -3
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/bug-patterns.md +3 -3
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/cancellation.md +8 -8
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/diagnostics.md +1 -1
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/hotspots.md +2 -2
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/interop.md +4 -4
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/new-features.md +1 -1
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/structured.md +2 -2
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/testing.md +2 -2
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/unstructured.md +3 -3
- package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +339 -0
- package/pipeline/skills/shared/external/swift-language/SKILL.md +33 -34
- package/pipeline/skills/shared/external/swift-language/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/swift-language/references/swift-attributes-interop.md +97 -0
- package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +19 -6
- package/pipeline/skills/shared/external/swift-security/SKILL.md +195 -0
- package/pipeline/skills/shared/external/swift-security/evals/evals.json +48 -0
- package/pipeline/skills/shared/external/swift-security/references/biometric-authentication.md +595 -0
- package/pipeline/skills/shared/external/swift-security/references/certificate-trust.md +611 -0
- package/pipeline/skills/shared/external/swift-security/references/common-anti-patterns.md +708 -0
- package/pipeline/skills/shared/external/swift-security/references/compliance-owasp-mapping.md +573 -0
- package/pipeline/skills/shared/external/swift-security/references/credential-storage-patterns.md +752 -0
- package/pipeline/skills/shared/external/swift-security/references/cryptokit-public-key.md +538 -0
- package/pipeline/skills/shared/external/swift-security/references/cryptokit-symmetric.md +530 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-access-control.md +543 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-fundamentals.md +620 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-item-classes.md +515 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-sharing.md +496 -0
- package/pipeline/skills/shared/external/swift-security/references/migration-legacy-stores.md +747 -0
- package/pipeline/skills/shared/external/swift-security/references/secure-enclave.md +566 -0
- package/pipeline/skills/shared/external/swift-security/references/testing-security-code.md +813 -0
- package/pipeline/skills/shared/external/swift-testing/SKILL.md +97 -297
- package/pipeline/skills/shared/external/swift-testing/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/swift-testing/references/testing-advanced.md +123 -0
- package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +162 -34
- package/pipeline/skills/shared/external/swift-testing-pro/SKILL.md +2 -2
- package/pipeline/skills/shared/external/swift-testing-pro/references/async-tests.md +3 -3
- package/pipeline/skills/shared/external/swift-testing-pro/references/core-rules.md +2 -2
- package/pipeline/skills/shared/external/swift-testing-pro/references/migrating-from-xctest.md +5 -5
- package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +3 -3
- package/pipeline/skills/shared/external/swift-testing-pro/references/writing-better-tests.md +5 -5
- package/pipeline/skills/shared/external/swiftdata/SKILL.md +44 -23
- package/pipeline/skills/shared/external/swiftdata/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +3 -3
- package/pipeline/skills/shared/external/swiftdata/references/indexing.md +75 -0
- package/pipeline/skills/shared/external/swiftdata/references/predicate-pitfalls.md +54 -0
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +14 -10
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +5 -5
- package/pipeline/skills/shared/external/swiftdata-pro/SKILL.md +2 -2
- package/pipeline/skills/shared/external/swiftdata-pro/references/class-inheritance.md +2 -2
- package/pipeline/skills/shared/external/swiftdata-pro/references/cloudkit.md +1 -1
- package/pipeline/skills/shared/external/swiftdata-pro/references/core-rules.md +6 -6
- package/pipeline/skills/shared/external/swiftlint/SKILL.md +337 -0
- package/pipeline/skills/shared/external/swiftlint/references/adoption-and-configuration.md +297 -0
- package/pipeline/skills/shared/external/swiftlint/references/custom-rules-and-analyze.md +170 -0
- package/pipeline/skills/shared/external/swiftlint/references/plugins-run-scripts-and-integrations.md +307 -0
- package/pipeline/skills/shared/external/swiftlint/references/rule-reference.md +35 -0
- package/pipeline/skills/shared/external/swiftlint/references/rules-suppressions-and-baselines.md +306 -0
- package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +56 -65
- package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +48 -44
- package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +6 -6
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts-accessibility.md +13 -13
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts.md +3 -3
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/image-optimization.md +1 -1
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/latest-apis.md +4 -4
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/layout-best-practices.md +2 -2
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/list-patterns.md +1 -1
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-scenes.md +16 -16
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-views.md +11 -11
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-window-styling.md +7 -7
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/state-management.md +5 -5
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/view-structure.md +6 -6
- package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +38 -16
- package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +13 -3
- package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +32 -28
- package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +1 -1
- package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +202 -41
- package/pipeline/skills/shared/external/swiftui-layout-components/references/list.md +16 -25
- package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +71 -26
- package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +284 -65
- package/pipeline/skills/shared/external/swiftui-liquid-glass/references/liquid-glass.md +387 -0
- package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +10 -10
- package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +15 -3
- package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +2 -2
- package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +1 -1
- package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +51 -25
- package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +78 -6
- package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +161 -16
- package/pipeline/skills/shared/external/swiftui-patterns/references/design-polish.md +85 -27
- package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +37 -33
- package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +39 -51
- package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +204 -30
- package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +226 -21
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +220 -20
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-improving-swiftui-performance.md +159 -34
- package/pipeline/skills/shared/external/swiftui-performance/references/wwdc-session-sources.md +27 -0
- package/pipeline/skills/shared/external/swiftui-pro/SKILL.md +2 -2
- package/pipeline/skills/shared/external/swiftui-pro/references/accessibility.md +4 -4
- package/pipeline/skills/shared/external/swiftui-pro/references/api.md +1 -1
- package/pipeline/skills/shared/external/swiftui-pro/references/data.md +2 -2
- package/pipeline/skills/shared/external/swiftui-pro/references/design.md +4 -4
- package/pipeline/skills/shared/external/swiftui-pro/references/hygiene.md +2 -2
- package/pipeline/skills/shared/external/swiftui-pro/references/navigation.md +1 -1
- package/pipeline/skills/shared/external/swiftui-pro/references/performance.md +1 -1
- package/pipeline/skills/shared/external/swiftui-pro/references/swift.md +2 -2
- package/pipeline/skills/shared/external/swiftui-pro/references/views.md +2 -2
- package/pipeline/skills/shared/external/swiftui-ui-patterns/SKILL.md +1 -1
- package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +12 -12
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +3 -3
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +1 -1
- package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +11 -11
- package/pipeline/skills/shared/external/swiftui-webkit/references/migration-and-fallbacks.md +124 -10
- package/pipeline/skills/shared/external/tailwind-css/SKILL.md +3 -2
- package/pipeline/skills/shared/external/testing-backend/SKILL.md +2 -1
- package/pipeline/skills/shared/external/tipkit/SKILL.md +3 -3
- package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +9 -9
- package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +17 -16
- package/pipeline/skills/shared/external/vision-framework/SKILL.md +11 -11
- package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +1 -1
- package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +5 -5
- package/pipeline/skills/shared/external/vue-composition/SKILL.md +7 -6
- package/pipeline/skills/shared/external/weatherkit/SKILL.md +3 -3
- package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +9 -9
- package/pipeline/skills/shared/external/web-accessibility/SKILL.md +1 -0
- package/pipeline/skills/shared/external/web-performance/SKILL.md +8 -7
- package/pipeline/skills/shared/external/web-testing/SKILL.md +7 -6
- package/pipeline/skills/shared/external/widgetkit/SKILL.md +23 -17
- package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +99 -0
- package/pipeline/skills/shared/external/xcode-build-benchmark/SKILL.md +89 -0
- package/pipeline/skills/shared/external/xcode-build-benchmark/references/benchmark-artifacts.md +94 -0
- package/pipeline/skills/shared/external/xcode-build-benchmark/references/benchmarking-workflow.md +67 -0
- package/pipeline/skills/shared/external/xcode-build-benchmark/schemas/build-benchmark.schema.json +230 -0
- package/pipeline/skills/shared/external/xcode-build-benchmark/scripts/benchmark_builds.py +308 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/SKILL.md +219 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/references/build-settings-best-practices.md +216 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/references/fix-patterns.md +290 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/references/recommendation-format.md +85 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/scripts/benchmark_builds.py +308 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/SKILL.md +157 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/references/benchmark-artifacts.md +94 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/references/build-settings-best-practices.md +216 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/references/orchestration-report-template.md +143 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/references/recommendation-format.md +85 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/scripts/benchmark_builds.py +308 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/scripts/diagnose_compilation.py +273 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/scripts/generate_optimization_report.py +533 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/SKILL.md +90 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/build-optimization-sources.md +155 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/code-compilation-checks.md +106 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/recommendation-format.md +85 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/scripts/diagnose_compilation.py +273 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/SKILL.md +77 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-optimization-sources.md +155 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-settings-best-practices.md +216 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/project-audit-checks.md +101 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/recommendation-format.md +85 -0
- package/pipeline/skills/skills-index.md +213 -192
- package/docs/GENERICITY-REVIEW.md +0 -277
- package/docs/STABILITY-FIX-PLAN.md +0 -168
- package/pipeline/scripts/.last-figma-sync-plan.json +0 -23
- package/pipeline/scripts/README-figma-smokes.md +0 -34
- package/pipeline/scripts/figma-placeholder-map.json +0 -191
- package/pipeline/scripts/import-figma-skills.sh +0 -253
- package/pipeline/scripts/smoke-figma-config-schema.sh +0 -144
- package/pipeline/scripts/smoke-figma-skill-import.sh +0 -174
- package/pipeline/scripts/smoke-install-leak-gate.sh +0 -125
- package/pipeline/scripts/smoke-personal-data.sh +0 -82
- package/pipeline/scripts/sync-figma-source.sh +0 -228
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.json +0 -94
- package/pipeline/skills/shared/external/app-store-review/references/code-signing.md +0 -259
- package/pipeline/skills/shared/external/app-store-review/references/rejection-patterns.md +0 -152
- package/pipeline/skills/shared/external/pencilkit-drawing/references/paperkit-integration.md +0 -376
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
name: performance-start
|
|
3
|
+
description: Identical to `/figma-to-swift-ui-start` for Steps 0-5. After printing the summary (Step 6), automatically invokes `/performance-swiftui <figma-url>` to begin the implementation pipeline.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /performance-start - Start + Auto-Launch Performance Pipeline
|
|
2
7
|
|
|
3
|
-
> Identical to `/figma-to-swift-ui-start` for Steps 0
|
|
8
|
+
> Identical to `/figma-to-swift-ui-start` for Steps 0-5. After printing the summary (Step 6),
|
|
4
9
|
> automatically invokes `/performance-swiftui <figma-url>` to begin the implementation pipeline
|
|
5
10
|
> without waiting for user input.
|
|
6
11
|
|
|
@@ -8,10 +13,10 @@
|
|
|
8
13
|
|
|
9
14
|
| Parameter | Required | Default | Description |
|
|
10
15
|
|-----------|----------|---------|-------------|
|
|
11
|
-
| `<issue-number>` | Yes |
|
|
12
|
-
| `jira id <KEY>` | No |
|
|
13
|
-
| `--tour` | No |
|
|
14
|
-
| `--lean` | No |
|
|
16
|
+
| `<issue-number>` | Yes | - | GitHub issue number from uicomponents repo |
|
|
17
|
+
| `jira id <KEY>` | No | - | Jira issue key (e.g., `{jira.projectKey}-129850`). If provided, updates GitHub issue body and populates Jira task. |
|
|
18
|
+
| `--tour` | No | - | Tour mode: skips fetch/pull (STEP 1) and branch creation (STEP 2). Used by `/performance-tour` when producing multiple components on `iteration/develop`. |
|
|
19
|
+
| `--lean` | No | - | Lean mode: forwarded to `/performance-swiftui` to skip Phase 5 (testing) and Phase 7 (wiki). Can be combined with `--tour`. |
|
|
15
20
|
|
|
16
21
|
```
|
|
17
22
|
/performance-start #107
|
|
@@ -28,15 +33,15 @@ When `--tour` is passed, the following steps are **SKIPPED**:
|
|
|
28
33
|
|
|
29
34
|
| Step | Normal Mode | Tour Mode |
|
|
30
35
|
|------|------------|:---------:|
|
|
31
|
-
| STEP 0
|
|
32
|
-
| STEP 0.5
|
|
33
|
-
| STEP 1
|
|
34
|
-
| STEP 2
|
|
35
|
-
| STEP 3
|
|
36
|
-
| STEP 3.5
|
|
37
|
-
| STEP 4
|
|
38
|
-
| STEP 5
|
|
39
|
-
| STEP 6
|
|
36
|
+
| STEP 0 - Parse Issue | ✅ | ✅ |
|
|
37
|
+
| STEP 0.5 - Confirm Pipeline Mode | ✅ | **SKIP** |
|
|
38
|
+
| STEP 1 - Fetch Latest | ✅ | **SKIP** |
|
|
39
|
+
| STEP 2 - Create Feature Branches | ✅ | **SKIP** |
|
|
40
|
+
| STEP 3 - Registry Lookup | ✅ | ✅ |
|
|
41
|
+
| STEP 3.5 - Save Specs Artifact | ✅ | ✅ |
|
|
42
|
+
| STEP 4 - Assign to Me | ✅ | ✅ |
|
|
43
|
+
| STEP 5 - Update Issue Status | ✅ | ✅ |
|
|
44
|
+
| STEP 6 - Summary + Auto-Launch | ✅ | ✅ |
|
|
40
45
|
|
|
41
46
|
**Rationale:** In tour mode, `/performance-tour` has already fetched latest and
|
|
42
47
|
all submodules are on `iteration/develop`. Creating feature branches would conflict
|
|
@@ -64,24 +69,24 @@ WIKI = ${REPO_ROOT}/{repos.wiki.path}
|
|
|
64
69
|
|
|
65
70
|
---
|
|
66
71
|
|
|
67
|
-
## STEP 0
|
|
72
|
+
## STEP 0 - Parse Issue
|
|
68
73
|
|
|
69
74
|
```bash
|
|
70
75
|
gh issue view <N> --repo ${GH_REPO} --json number,title,body,labels,assignees
|
|
71
76
|
```
|
|
72
77
|
|
|
73
78
|
Extract from the issue body:
|
|
74
|
-
- **Component Name**
|
|
75
|
-
- **Figma URL**
|
|
76
|
-
- **Node ID**
|
|
77
|
-
- **Registry Name**
|
|
78
|
-
- **Figma Page**
|
|
79
|
-
- **Jira Key**
|
|
80
|
-
- **Acceptance Criteria**
|
|
79
|
+
- **Component Name** - from `### Component Name (PascalCase)` section
|
|
80
|
+
- **Figma URL** - from `### Figma URL` section
|
|
81
|
+
- **Node ID** - from `### Node ID` section
|
|
82
|
+
- **Registry Name** - from `### Registry Name` section
|
|
83
|
+
- **Figma Page** - from `### Figma Page` section
|
|
84
|
+
- **Jira Key** - from `### Jira Issue` section (if not `_No response_`)
|
|
85
|
+
- **Acceptance Criteria** - from `### Acceptance Criteria` section (if not `_No response_`)
|
|
81
86
|
|
|
82
87
|
If Jira key is `_No response_` or empty **and** user provided a `jira id` parameter:
|
|
83
88
|
1. Use the user-provided key as `JIRA_ISSUE`.
|
|
84
|
-
2. Update the GitHub issue body
|
|
89
|
+
2. Update the GitHub issue body - replace `_No response_` under `### Jira Issue` with a Jira link:
|
|
85
90
|
```bash
|
|
86
91
|
# Read current body, replace the Jira section, update via gh
|
|
87
92
|
CURRENT_BODY=$(gh issue view <N> --repo ${GH_REPO} --json body --jq '.body')
|
|
@@ -114,17 +119,17 @@ Print:
|
|
|
114
119
|
|
|
115
120
|
---
|
|
116
121
|
|
|
117
|
-
## STEP 0.5
|
|
122
|
+
## STEP 0.5 - Confirm Pipeline Mode
|
|
118
123
|
|
|
119
124
|
> **If `--tour` is set → SKIP this step.** Tour mode delegates mode selection to `/performance-tour`.
|
|
120
125
|
|
|
121
|
-
After parsing the issue, **always ask the user** to confirm which pipeline mode to use
|
|
126
|
+
After parsing the issue, **always ask the user** to confirm which pipeline mode to use - regardless of whether `--lean` was passed as a parameter. This prevents accidental full-pipeline runs when lean was intended, or vice versa.
|
|
122
127
|
|
|
123
128
|
**Use the ask-questions tool** with these options:
|
|
124
129
|
|
|
125
130
|
| Header | Question | Options |
|
|
126
131
|
|--------|----------|---------|
|
|
127
|
-
| Pipeline Mode | `<COMPONENT_PASCAL>` implementation
|
|
132
|
+
| Pipeline Mode | `<COMPONENT_PASCAL>` implementation - which pipeline mode? | **Lean** (skip testing & wiki - Phases 5, 7) · **Full** (all 8 phases) |
|
|
128
133
|
|
|
129
134
|
- If `--lean` was passed in the original command, pre-select **Lean** as the recommended option.
|
|
130
135
|
- If no flag was passed, pre-select **Full** as the recommended option.
|
|
@@ -137,7 +142,7 @@ This confirmation overrides whatever was passed on the command line.
|
|
|
137
142
|
|
|
138
143
|
---
|
|
139
144
|
|
|
140
|
-
## STEP 1
|
|
145
|
+
## STEP 1 - Fetch Latest
|
|
141
146
|
|
|
142
147
|
> **If `--tour` is set → SKIP this entire step.** Tour mode assumes
|
|
143
148
|
> `/performance-tour` STEP 0e has already fetched and checked out the correct branches.
|
|
@@ -163,12 +168,12 @@ git pull origin iteration/develop
|
|
|
163
168
|
|
|
164
169
|
---
|
|
165
170
|
|
|
166
|
-
## STEP 2
|
|
171
|
+
## STEP 2 - Create Feature Branches
|
|
167
172
|
|
|
168
173
|
> **If `--tour` is set → SKIP this entire step.** Tour mode stays on
|
|
169
174
|
> `iteration/develop` with local commits. No feature branches are created.
|
|
170
175
|
|
|
171
|
-
Create feature branches on **submodules only**. Do NOT create branches on the main repo
|
|
176
|
+
Create feature branches on **submodules only**. Do NOT create branches on the main repo - it stays on `develop`. The main repo never receives commits from this workflow; submodule refs are updated separately.
|
|
172
177
|
|
|
173
178
|
```bash
|
|
174
179
|
# Common (tokens, localization, accessibility, testing identifiers)
|
|
@@ -180,11 +185,11 @@ cd ${UICOMPONENTS}
|
|
|
180
185
|
git checkout -b ${BRANCH_NAME}
|
|
181
186
|
```
|
|
182
187
|
|
|
183
|
-
Wiki submodule stays on `master`
|
|
188
|
+
Wiki submodule stays on `master` - wiki changes are committed directly.
|
|
184
189
|
|
|
185
190
|
---
|
|
186
191
|
|
|
187
|
-
## STEP 3
|
|
192
|
+
## STEP 3 - Registry Lookup
|
|
188
193
|
|
|
189
194
|
```bash
|
|
190
195
|
cd ${COMMON}
|
|
@@ -192,8 +197,8 @@ cd ${COMMON}
|
|
|
192
197
|
```
|
|
193
198
|
|
|
194
199
|
Collect:
|
|
195
|
-
- `suggestedComponentLocation`
|
|
196
|
-
- `suggestedArtifactPath`
|
|
200
|
+
- `suggestedComponentLocation` - where the Swift files will go
|
|
201
|
+
- `suggestedArtifactPath` - where implementation artifacts go
|
|
197
202
|
|
|
198
203
|
Print:
|
|
199
204
|
|
|
@@ -204,7 +209,7 @@ Artifact Path: <suggestedArtifactPath>
|
|
|
204
209
|
|
|
205
210
|
---
|
|
206
211
|
|
|
207
|
-
## STEP 3.5
|
|
212
|
+
## STEP 3.5 - Save Specs Artifact
|
|
208
213
|
|
|
209
214
|
If the issue has acceptance criteria (not `_No response_`), save them as an artifact that the implementation pipeline can consume.
|
|
210
215
|
|
|
@@ -223,21 +228,21 @@ Write `${suggestedArtifactPath}/pass0/specs.md`:
|
|
|
223
228
|
|
|
224
229
|
## Acceptance Criteria
|
|
225
230
|
|
|
226
|
-
{ACCEPTANCE_CRITERIA from issue body
|
|
231
|
+
{ACCEPTANCE_CRITERIA from issue body - verbatim}
|
|
227
232
|
|
|
228
233
|
## Implementation Guidance
|
|
229
234
|
|
|
230
235
|
{Convert the acceptance criteria into actionable implementation instructions for the AI agent:
|
|
231
236
|
- Rephrase checkbox items as concrete requirements
|
|
232
237
|
- Add technical context where the criteria imply Swift/SwiftUI patterns
|
|
233
|
-
- Preserve the user's intent exactly
|
|
238
|
+
- Preserve the user's intent exactly - don't add or remove requirements}
|
|
234
239
|
```
|
|
235
240
|
|
|
236
241
|
If no acceptance criteria → skip this step. No file created.
|
|
237
242
|
|
|
238
243
|
---
|
|
239
244
|
|
|
240
|
-
## STEP 4
|
|
245
|
+
## STEP 4 - Assign to Me
|
|
241
246
|
|
|
242
247
|
Assign the GitHub issue and linked Jira task (if any) to the current user. Same logic as `/figma-issue assign`:
|
|
243
248
|
|
|
@@ -245,7 +250,7 @@ Assign the GitHub issue and linked Jira task (if any) to the current user. Same
|
|
|
245
250
|
gh issue edit <N> --repo ${GH_REPO} --add-assignee @me
|
|
246
251
|
```
|
|
247
252
|
|
|
248
|
-
If Jira key exists (from issue body or user-provided `jira id` parameter
|
|
253
|
+
If Jira key exists (from issue body or user-provided `jira id` parameter - not `_No response_` and not `DEFAULT_JIRA`):
|
|
249
254
|
|
|
250
255
|
Use **Python urllib** for all Jira API calls (curl is blocked by terminal auto-approval policy):
|
|
251
256
|
|
|
@@ -288,7 +293,7 @@ try:
|
|
|
288
293
|
resp2 = urllib.request.urlopen(req2, timeout=15)
|
|
289
294
|
print(f"Assigned {JIRA_KEY} to {username} (HTTP {resp2.status})")
|
|
290
295
|
except urllib.error.HTTPError as e:
|
|
291
|
-
print(f"Assign failed
|
|
296
|
+
print(f"Assign failed - HTTP {e.code}: {e.read().decode()[:200]}")
|
|
292
297
|
|
|
293
298
|
# 3. Update Jira summary, description, and labels
|
|
294
299
|
description = (
|
|
@@ -328,7 +333,7 @@ try:
|
|
|
328
333
|
resp3 = urllib.request.urlopen(req3, timeout=15)
|
|
329
334
|
print(f"Updated {JIRA_KEY} content (HTTP {resp3.status})")
|
|
330
335
|
except urllib.error.HTTPError as e:
|
|
331
|
-
print(f"Update failed
|
|
336
|
+
print(f"Update failed - HTTP {e.code}: {e.read().decode()[:200]}")
|
|
332
337
|
```
|
|
333
338
|
|
|
334
339
|
Run: `python3 /tmp/jira_start_<JIRA_KEY>.py`
|
|
@@ -341,7 +346,7 @@ If Jira token not found or VPN unreachable, skip with warning:
|
|
|
341
346
|
|
|
342
347
|
---
|
|
343
348
|
|
|
344
|
-
## STEP 5
|
|
349
|
+
## STEP 5 - Update Issue Status (required)
|
|
345
350
|
|
|
346
351
|
**This step is mandatory. Do not skip it and do not defer it.** The issue
|
|
347
352
|
is on the board with Status=Todo after creation. Moving it to Status=In
|
|
@@ -355,7 +360,7 @@ Set the issue phase to "Implementation" and status to "In Develop" on the Projec
|
|
|
355
360
|
# Get issue node ID
|
|
356
361
|
ISSUE_NODE_ID=$(gh api graphql -f query='{ repository(owner: "{github.org}", name: "{project.slug}-components") { issue(number: <N>) { id } } }' --jq '.data.repository.issue.id')
|
|
357
362
|
|
|
358
|
-
# Add to project (if not already). This mutation is idempotent
|
|
363
|
+
# Add to project (if not already). This mutation is idempotent - if the
|
|
359
364
|
# item already exists it returns the existing item id.
|
|
360
365
|
ITEM_ID=$(gh api graphql -f query='mutation { addProjectV2ItemById(input: { projectId: "{github.projectV2Id}", contentId: "'"$ISSUE_NODE_ID"'" }) { item { id } } }' --jq '.data.addProjectV2ItemById.item.id')
|
|
361
366
|
|
|
@@ -377,12 +382,12 @@ gh api graphql -f query='{ node(id: "'"$ITEM_ID"'") { ... on ProjectV2Item { fie
|
|
|
377
382
|
```
|
|
378
383
|
|
|
379
384
|
Expected output: `In Develop`. If you see anything else (or empty),
|
|
380
|
-
re-fetch the current option IDs and retry
|
|
385
|
+
re-fetch the current option IDs and retry - do NOT proceed to implementation
|
|
381
386
|
without the Status set correctly.
|
|
382
387
|
|
|
383
388
|
---
|
|
384
389
|
|
|
385
|
-
## STEP 6
|
|
390
|
+
## STEP 6 - Summary + Auto-Launch Pipeline
|
|
386
391
|
|
|
387
392
|
Print:
|
|
388
393
|
|
|
@@ -411,7 +416,7 @@ Ready to implement:
|
|
|
411
416
|
|
|
412
417
|
Forward `--lean` based on the user's confirmed selection in **STEP 0.5** (not the raw command-line flag). This starts Phase 0 of the performance-optimized implementation pipeline.
|
|
413
418
|
|
|
414
|
-
> If any STEP (0
|
|
419
|
+
> If any STEP (0-5) failed or was aborted, do NOT auto-launch. Print the error and stop.
|
|
415
420
|
|
|
416
421
|
---
|
|
417
422
|
|
|
@@ -420,6 +425,6 @@ Forward `--lean` based on the user's confirmed selection in **STEP 0.5** (not th
|
|
|
420
425
|
- **Issue not found**: Print error and stop.
|
|
421
426
|
- **Issue body missing required fields**: Print which fields are missing, stop.
|
|
422
427
|
- **FigmaRegistryUtility not built**: Run `swift build --product FigmaRegistryUtility` in common.
|
|
423
|
-
- **Branch already exists**: Print warning
|
|
428
|
+
- **Branch already exists**: Print warning - checkout existing branch instead of creating.
|
|
424
429
|
- **Main repo not on develop**: Fetch and checkout automatically.
|
|
425
430
|
- **Submodule not on iteration/develop**: Fetch and checkout automatically.
|
|
@@ -8,7 +8,7 @@ status: wip-v5
|
|
|
8
8
|
sourced-from: upstream/performance-swiftui
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
# /performance-swiftui
|
|
11
|
+
# /performance-swiftui - Performance-Optimized Figma-to-SwiftUI Workflow
|
|
12
12
|
|
|
13
13
|
> Based on `/figma-to-swiftui`. All phase instruction files, scripts, and reference docs
|
|
14
14
|
> are shared from `.instructions/figma/figma-to-swiftui/`. Only the orchestrator routing,
|
|
@@ -31,7 +31,7 @@ sourced-from: upstream/performance-swiftui
|
|
|
31
31
|
|
|
32
32
|
### Lean Mode (`--lean`)
|
|
33
33
|
|
|
34
|
-
When `--lean` is appended to a Figma URL, the workflow runs **Phases 0
|
|
34
|
+
When `--lean` is appended to a Figma URL, the workflow runs **Phases 0-4 + Phase 6 only**.
|
|
35
35
|
Phase 5 (testing) and Phase 7 (wiki) are **skipped**.
|
|
36
36
|
|
|
37
37
|
Lean mode is persisted in the `_perf_tracker.json` tracker:
|
|
@@ -62,7 +62,7 @@ Convert `-` to `:` in node-id (e.g., `9419-30700` → `9419:30700`).
|
|
|
62
62
|
|
|
63
63
|
### Tracker File
|
|
64
64
|
|
|
65
|
-
All performance metrics are stored in `{artifactPath}/_perf_tracker.json`. This file is the **single source of truth**
|
|
65
|
+
All performance metrics are stored in `{artifactPath}/_perf_tracker.json`. This file is the **single source of truth** - never rely on in-memory variables for timing or reliability data.
|
|
66
66
|
|
|
67
67
|
**At workflow start** (Phase 0 or first resumed phase), create/update the tracker file:
|
|
68
68
|
|
|
@@ -114,7 +114,7 @@ with open(tracker_path, "w") as f:
|
|
|
114
114
|
json.dump(tracker, f, indent=2)
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
-
**CRITICAL:** The tracker file write happens IMMEDIATELY after each phase dispatch returns
|
|
117
|
+
**CRITICAL:** The tracker file write happens IMMEDIATELY after each phase dispatch returns - before proceeding to the next phase. This is the mechanism that survives context loss.
|
|
118
118
|
|
|
119
119
|
---
|
|
120
120
|
|
|
@@ -141,7 +141,7 @@ These 6 rules govern orchestrator behavior. Violations have caused repeated fail
|
|
|
141
141
|
|
|
142
142
|
In lean mode, Phase 5 (testing) and Phase 7 (wiki) are **SKIPPED**. Phase 6 runs sequentially (no parallel partner).
|
|
143
143
|
|
|
144
|
-
This skill dispatches Phase 2 and Phase 5 sub-phases directly
|
|
144
|
+
This skill dispatches Phase 2 and Phase 5 sub-phases directly - no orchestrator subagent.
|
|
145
145
|
|
|
146
146
|
When `phase-7` is invoked:
|
|
147
147
|
1. Dispatch `phase-7a` (generate two wiki pages: main + iOS, plus assets into wiki submodule).
|
|
@@ -228,11 +228,11 @@ You are executing {Phase Name} of the Figma-to-SwiftUI workflow.
|
|
|
228
228
|
- Artifact Path: {artifactPath}
|
|
229
229
|
- Component Location: {componentLocation}
|
|
230
230
|
- GitHub Issue: {issueNumber} (omit if not available)
|
|
231
|
-
- Wiki Path: {wikiPath} (Phase 7 only
|
|
232
|
-
- Specs: {specsPath} (if `{artifactPath}/pass0/specs.md` exists
|
|
231
|
+
- Wiki Path: {wikiPath} (Phase 7 only - `{repos.wiki.path}`)
|
|
232
|
+
- Specs: {specsPath} (if `{artifactPath}/pass0/specs.md` exists - include in Phase 3, 4 dispatch prompts as additional implementation guidance)
|
|
233
233
|
|
|
234
234
|
## Tool Restrictions
|
|
235
|
-
{from dispatch table
|
|
235
|
+
{from dispatch table - e.g., "Do NOT use the Edit tool."}
|
|
236
236
|
|
|
237
237
|
## Your Instructions
|
|
238
238
|
Read and STRICTLY FOLLOW your phase instructions gate-by-gate from this file:
|
|
@@ -245,18 +245,18 @@ Read the return protocol from:
|
|
|
245
245
|
|
|
246
246
|
## Specs (if present)
|
|
247
247
|
- {artifactPath}/pass0/specs.md
|
|
248
|
-
Read and incorporate specs alongside phase instructions. Both are inputs you must follow
|
|
248
|
+
Read and incorporate specs alongside phase instructions. Both are inputs you must follow - phase instructions define methodology and coding standards, specs define acceptance criteria and design intent. Neither overrides the other.
|
|
249
249
|
|
|
250
250
|
## Reference Files (read during execution if needed)
|
|
251
251
|
- .instructions/figma/figma-to-swiftui/{reference path}
|
|
252
252
|
|
|
253
253
|
## Previous Phase Artifacts (read in this order)
|
|
254
|
-
{use the Read-Order Table below
|
|
254
|
+
{use the Read-Order Table below - list file PATHS only, do not embed content}
|
|
255
255
|
```
|
|
256
256
|
|
|
257
257
|
### 2. Dispatch
|
|
258
258
|
|
|
259
|
-
**Phase 1 (script):** Run directly via Bash
|
|
259
|
+
**Phase 1 (script):** Run directly via Bash - no subagent needed:
|
|
260
260
|
|
|
261
261
|
```bash
|
|
262
262
|
python3 .instructions/figma/figma-to-swiftui/scripts/phase1-gather.py \
|
|
@@ -271,7 +271,7 @@ The script tries remote MCP first, falls back to local MCP automatically.
|
|
|
271
271
|
|
|
272
272
|
**If `status` = `COMPLETE_WITH_DEFERRED`:**
|
|
273
273
|
Design context was deferred (too many sublayers). All other artifacts are present.
|
|
274
|
-
Do NOT ask the user
|
|
274
|
+
Do NOT ask the user - dispatch a **Phase 1 subagent** for deferred resolution:
|
|
275
275
|
|
|
276
276
|
```
|
|
277
277
|
Agent(
|
|
@@ -301,7 +301,7 @@ Agent(
|
|
|
301
301
|
|
|
302
302
|
### 3. Parse the return
|
|
303
303
|
|
|
304
|
-
> **All counters are persisted to `{artifactPath}/_perf_tracker.json`
|
|
304
|
+
> **All counters are persisted to `{artifactPath}/_perf_tracker.json` - NOT held in memory.**
|
|
305
305
|
> Read the tracker file before updating, write it back immediately after. This survives context loss.
|
|
306
306
|
|
|
307
307
|
**Before dispatching each phase**, record the start time in the tracker:
|
|
@@ -319,16 +319,16 @@ with open(tracker_path, "w") as f:
|
|
|
319
319
|
**STATUS: COMPLETE**
|
|
320
320
|
→ Record gates and artifacts
|
|
321
321
|
→ **Update tracker file on disk**: set phase `end`, `duration_seconds`, `status: "COMPLETE"`
|
|
322
|
-
→ **Append phase timing to IMPLEMENTATION_HISTORY.md** (incremental write
|
|
322
|
+
→ **Append phase timing to IMPLEMENTATION_HISTORY.md** (incremental write - see step 4)
|
|
323
323
|
→ Proceed to next phase
|
|
324
324
|
|
|
325
325
|
**STATUS: HALT**
|
|
326
326
|
→ **Update tracker file on disk**: increment `halt_count`, append to `halt_log`
|
|
327
327
|
→ Show user: GATE, REASON, USER_ACTION_REQUIRED via AskUserQuestion
|
|
328
328
|
→ Options: "Fix and retry", "Skip this phase", "Abort workflow"
|
|
329
|
-
→ Retry: update tracker
|
|
330
|
-
→ Skip: update tracker
|
|
331
|
-
→ Abort: update tracker
|
|
329
|
+
→ Retry: update tracker - increment `retry_count`, set `resolution: "retry"`, re-dispatch same phase
|
|
330
|
+
→ Skip: update tracker - set `resolution: "skipped"`, `status: "SKIPPED"`, proceed
|
|
331
|
+
→ Abort: update tracker - set `resolution: "aborted"`, `status: "ABORTED"`, stop workflow
|
|
332
332
|
|
|
333
333
|
**STATUS: NEEDS_INPUT**
|
|
334
334
|
→ Show user: QUESTION, OPTIONS, SUGGESTED via AskUserQuestion
|
|
@@ -339,7 +339,7 @@ with open(tracker_path, "w") as f:
|
|
|
339
339
|
ANSWER: {user's choice}
|
|
340
340
|
```
|
|
341
341
|
|
|
342
|
-
### 4. Update history (incremental
|
|
342
|
+
### 4. Update history (incremental - after EVERY phase)
|
|
343
343
|
|
|
344
344
|
**After each phase completes, IMMEDIATELY write two things:**
|
|
345
345
|
|
|
@@ -371,15 +371,15 @@ Also update IMPLEMENTATION_HISTORY.md with the standard phase status, gates, and
|
|
|
371
371
|
|
|
372
372
|
---
|
|
373
373
|
|
|
374
|
-
## Phase 2 Routing (inline
|
|
374
|
+
## Phase 2 Routing (inline - do NOT read phase-2-orchestrator.md)
|
|
375
375
|
|
|
376
376
|
**Do NOT read `phase-2-orchestrator.md`. All routing logic is here. Subagents read their own docs.**
|
|
377
377
|
|
|
378
|
-
> **UNCHANGED from original**
|
|
378
|
+
> **UNCHANGED from original** - Phase 2 routing preserved exactly.
|
|
379
379
|
|
|
380
380
|
1. **PRE-CHECK**: Read `IMPLEMENTATION_HISTORY.md` (already in context). Verify `pass1/_index.md` exists.
|
|
381
|
-
2. **NORMALIZE**: Check `pass1/design_context_response.json`
|
|
382
|
-
3. **REGISTRY_LOOKUP**: `cd {repos.common.path} && .build/debug/FigmaRegistryUtility utility-lookup --node-id '{nodeId}'`
|
|
381
|
+
2. **NORMALIZE**: Check `pass1/design_context_response.json` - if `sublayers: true` and no `response` field, concatenate `responses` values into `response` field and write back.
|
|
382
|
+
3. **REGISTRY_LOOKUP**: `cd {repos.common.path} && .build/debug/FigmaRegistryUtility utility-lookup --node-id '{nodeId}'` - pass result as `registryData` context to subagents.
|
|
383
383
|
4. **Wave 1 (parallel)**: Dispatch 2A + 2B + 2C as subagents (each reads its own instruction doc by path).
|
|
384
384
|
5. **Wave 2**: Dispatch 2D as subagent (depends on 2A output).
|
|
385
385
|
6. **FINALIZE (script)**:
|
|
@@ -393,11 +393,11 @@ Also update IMPLEMENTATION_HISTORY.md with the standard phase status, gates, and
|
|
|
393
393
|
|
|
394
394
|
---
|
|
395
395
|
|
|
396
|
-
## Phase 3 Routing (inline
|
|
396
|
+
## Phase 3 Routing (inline - do NOT read phase-3-orchestrator.md)
|
|
397
397
|
|
|
398
398
|
**Do NOT read `phase-3-orchestrator.md`. Subagents read their own docs. Scripts handle deterministic phases.**
|
|
399
399
|
|
|
400
|
-
> **UNCHANGED from original**
|
|
400
|
+
> **UNCHANGED from original** - Phase 3 routing preserved exactly.
|
|
401
401
|
|
|
402
402
|
1. **PRE-CHECK**: Verify `pass2/_index.md` exists.
|
|
403
403
|
2. **NORMALIZE**: Same sublayer check as Phase 2 (skip if already normalized).
|
|
@@ -405,14 +405,14 @@ Also update IMPLEMENTATION_HISTORY.md with the standard phase status, gates, and
|
|
|
405
405
|
- **Scripts**: `python3 .instructions/figma/figma-to-swiftui/scripts/phase3-scripts.py wave1 --artifact-path '{artifactPath}'` (runs 3B+3E+3F, ~5s)
|
|
406
406
|
- **Subagents**: 3A (`phase-3a-location.md`, sonnet, 20 turns), 3C (`phase-3c-nested.md`, sonnet, 20 turns), 3H (`phase-3h-variant-config.md`, opus, 25 turns)
|
|
407
407
|
4. **MISSING TOKEN RESOLUTION**: After Wave 1, check `pass3/02_token_mapping.md` for missing tokens (lines with "⚠️ not found"). If any exist, dispatch a subagent:
|
|
408
|
-
- **Subagent** (`general-purpose`, opus, 25 turns)
|
|
408
|
+
- **Subagent** (`general-purpose`, opus, 25 turns) - reads `reference/missing-tokens.md` for procedure, resolves each missing token by:
|
|
409
409
|
- **Typography**: Adding alias entries to `typography-registry.json` (match font size + weight to existing Swift tokens)
|
|
410
410
|
- **Colors**: Adding to `Shared/UIAssets/Colors/*.json` (source), running `swift package plugin --allow-writing-to-package-directory generate-ui-assets`, adding to `ui-token-index.json`
|
|
411
411
|
- **Variables**: Using `FigmaRegistryUtility ui-token-lookup` / `ui-token-index` to verify
|
|
412
412
|
- Pass artifact path and token mapping path as context. Subagent updates token mapping after resolution.
|
|
413
413
|
- If 0 missing tokens, skip this step entirely.
|
|
414
414
|
5. **Wave 2 (parallel)**: Launch simultaneously:
|
|
415
|
-
- **Subagent**: 3D (`phase-3d-patterns.md`, opus, 30 turns)
|
|
415
|
+
- **Subagent**: 3D (`phase-3d-patterns.md`, opus, 30 turns) - reads 3H output (`pass3/04c_variant_config_analysis.json`)
|
|
416
416
|
6. **Wave 3**: `python3 .instructions/figma/figma-to-swiftui/scripts/phase3-scripts.py 3g --artifact-path '{artifactPath}'` (depends on 3D JSON output)
|
|
417
417
|
7. **COLLECT**: Verify 12 artifacts exist in `pass3/` (10 original + 2 from 3H).
|
|
418
418
|
8. **SPEC (script)**: `python3 .instructions/figma/figma-to-swiftui/scripts/phase3-scripts.py spec --artifact-path '{artifactPath}'`
|
|
@@ -421,24 +421,24 @@ Also update IMPLEMENTATION_HISTORY.md with the standard phase status, gates, and
|
|
|
421
421
|
|
|
422
422
|
---
|
|
423
423
|
|
|
424
|
-
## Phase 4 Routing (inline
|
|
424
|
+
## Phase 4 Routing (inline - do NOT read phase-4-orchestrator.md)
|
|
425
425
|
|
|
426
426
|
**Do NOT read `phase-4-orchestrator.md`. Subagents read their own docs. Orchestrator stays lean.**
|
|
427
427
|
|
|
428
428
|
1. **PRE-CHECK**: Verify `pass3/_index.md` exists.
|
|
429
|
-
2. **LOAD_SPEC**: Read `pass3/07_implementation_spec.md` and `pass3/05_complexity.md`
|
|
429
|
+
2. **LOAD_SPEC**: Read `pass3/07_implementation_spec.md` and `pass3/05_complexity.md` - extract `componentLocation`, `complexity` (SIMPLE/COMPLEX).
|
|
430
430
|
3. **PREPARE_DIRECTORY**: `mkdir -p {componentLocation}`. Get `gitUser` via `git config user.name`. Get `date` in DD.MM.YYYY format.
|
|
431
431
|
4. **Wave 1 (parallel)**: Dispatch subagents:
|
|
432
|
-
- **4A** (`phase-4a-configuration.md`, opus, 30 turns)
|
|
433
|
-
- **4B** (`phase-4b-view.md`, opus, 40 turns)
|
|
434
|
-
- **4C** (`phase-4c-documentation.md`, sonnet, 20 turns)
|
|
435
|
-
- Pass to each: componentName, componentLocation, artifactPath, nodeId, fileKey, complexity, gitUser, date, issueNumber (from IMPLEMENTATION_HISTORY.md `GitHub Issue` field
|
|
432
|
+
- **4A** (`phase-4a-configuration.md`, opus, 30 turns) - **COMPLEX only** (skip if SIMPLE). Writes `{ComponentName}Configuration.swift`.
|
|
433
|
+
- **4B** (`phase-4b-view.md`, opus, 40 turns) - **ALWAYS**. Writes `{ComponentName}.swift`.
|
|
434
|
+
- **4C** (`phase-4c-documentation.md`, sonnet, 20 turns) - **ALWAYS**. Writes `FIGMA.md`.
|
|
435
|
+
- Pass to each: componentName, componentLocation, artifactPath, nodeId, fileKey, complexity, gitUser, date, issueNumber (from IMPLEMENTATION_HISTORY.md `GitHub Issue` field - extract the number after `#`).
|
|
436
436
|
5. **Wave 2 (parallel)**: Dispatch subagents that depend on 4A+4B:
|
|
437
|
-
- **4D** (`phase-4d-preview.md`, sonnet, 20 turns)
|
|
438
|
-
- **4E** (`phase-4e-modifiers.md`, sonnet, 20 turns)
|
|
437
|
+
- **4D** (`phase-4d-preview.md`, sonnet, 20 turns) - appends Preview to `{ComponentName}.swift`.
|
|
438
|
+
- **4E** (`phase-4e-modifiers.md`, sonnet, 20 turns) - **COMPLEX only** (skip if SIMPLE). Writes `{ComponentName}+Modifiers.swift`.
|
|
439
439
|
6. **COLLECT**: Verify `{ComponentName}.swift`, `{ComponentName}Configuration.swift` (if COMPLEX), `{ComponentName}+Modifiers.swift` (if COMPLEX), `FIGMA.md` exist.
|
|
440
|
-
7. **VALIDATE**: `bash .instructions/figma/figma-to-swiftui/scripts/validate-phase4.sh "{componentLocation}" "{ComponentName}" "{artifactPath}/pass3/00_property_coverage.json"`
|
|
441
|
-
8. **BUILD**: `xcodebuild build -project "$(git rev-parse --show-toplevel)/{build.xcodeproj}" -scheme {build.scheme} -destination 'generic/platform=iOS' CODE_SIGNING_ALLOWED=NO -quiet`
|
|
440
|
+
7. **VALIDATE**: `bash .instructions/figma/figma-to-swiftui/scripts/validate-phase4.sh "{componentLocation}" "{ComponentName}" "{artifactPath}/pass3/00_property_coverage.json"` - fix violations if any.
|
|
441
|
+
8. **BUILD**: `xcodebuild build -project "$(git rev-parse --show-toplevel)/{build.xcodeproj}" -scheme {build.scheme} -destination 'generic/platform=iOS' CODE_SIGNING_ALLOWED=NO -quiet` - fix compilation errors if any.
|
|
442
442
|
9. **REGISTRY FINALIZE**: After build passes, mark `status.ios.implemented` green in the component registry with a content-hashed version bump:
|
|
443
443
|
```bash
|
|
444
444
|
python3 .instructions/figma/figma-to-swiftui/scripts/phase4-finalize.py \
|
|
@@ -447,32 +447,32 @@ Also update IMPLEMENTATION_HISTORY.md with the standard phase status, gates, and
|
|
|
447
447
|
--source-file "{componentLocation}/{ComponentName}.swift" \
|
|
448
448
|
--platform ios
|
|
449
449
|
```
|
|
450
|
-
Parse stdout JSON. On success (`"status": "ok"`), the registry entry now has `implemented.value: true`, `implemented.version: 1` (or bumped), and a content hash. On failure, log the error but do NOT halt
|
|
450
|
+
Parse stdout JSON. On success (`"status": "ok"`), the registry entry now has `implemented.value: true`, `implemented.version: 1` (or bumped), and a content hash. On failure, log the error but do NOT halt - the finalize can be re-run manually or via `/figma-iteration-commit`.
|
|
451
451
|
10. **UPDATE HISTORY**: Append Phase 4 summary.
|
|
452
452
|
|
|
453
453
|
---
|
|
454
454
|
|
|
455
|
-
## Phase 5 Routing (inline
|
|
455
|
+
## Phase 5 Routing (inline - do NOT read phase-5-orchestrator.md)
|
|
456
456
|
|
|
457
457
|
> **LEAN MODE: If `lean_mode` is `true` in `_perf_tracker.json`, SKIP this entire section.**
|
|
458
|
-
> Record Phase 5 as `"status": "SKIPPED"` in the tracker and append `| Phase 5 (Testing) |
|
|
458
|
+
> Record Phase 5 as `"status": "SKIPPED"` in the tracker and append `| Phase 5 (Testing) | - | ⏭️ lean | ... |` to IMPLEMENTATION_HISTORY.md.
|
|
459
459
|
> Proceed directly to Phase 6 (sequentially, not parallel with Phase 7).
|
|
460
460
|
|
|
461
461
|
**Do NOT read `phase-5-orchestrator.md`. Subagents read their own docs.**
|
|
462
462
|
|
|
463
|
-
> **PERF CHANGE: Combined test execution**
|
|
464
|
-
> **PERF CHANGE: Simulator pre-warm**
|
|
463
|
+
> **PERF CHANGE: Combined test execution** - runs ViewInspector + Snapshot tests in a single xcodebuild invocation instead of two separate build+test cycles.
|
|
464
|
+
> **PERF CHANGE: Simulator pre-warm** - boots simulator in background during test file generation to eliminate cold-start latency.
|
|
465
465
|
|
|
466
466
|
1. **PRE-CHECK**: Verify Phase 4 complete (component Swift file exists at `{componentLocation}`).
|
|
467
467
|
2. **SIMULATOR PRE-WARM** (parallel with Wave 1): Boot the simulator in the background before test files are written:
|
|
468
468
|
```bash
|
|
469
469
|
xcrun simctl boot "iPhone 17 Pro" 2>/dev/null &
|
|
470
470
|
```
|
|
471
|
-
This runs asynchronously
|
|
471
|
+
This runs asynchronously - no need to wait. By the time test execution starts (step 4b), the simulator is ready.
|
|
472
472
|
3. **Wave 1 (parallel)**: Dispatch subagents:
|
|
473
|
-
- **5A** (`phase-5a-viewinspector.md`, sonnet, 40 turns)
|
|
474
|
-
- **5B** (`phase-5b-snapshot.md`, sonnet, 40 turns)
|
|
475
|
-
4. **Wave 2 (conditional)**: **5C** (`phase-5c-unit.md`, sonnet, 30 turns)
|
|
473
|
+
- **5A** (`phase-5a-viewinspector.md`, sonnet, 40 turns) - ViewInspector structure + accessibility tests.
|
|
474
|
+
- **5B** (`phase-5b-snapshot.md`, sonnet, 40 turns) - Snapshot tests for all Figma variants.
|
|
475
|
+
4. **Wave 2 (conditional)**: **5C** (`phase-5c-unit.md`, sonnet, 30 turns) - Unit tests. Only if component has ViewModel/model logic. N/A for pure View + Configuration.
|
|
476
476
|
5. **TEST EXECUTION (combined)**: Run all tests via a SINGLE xcodebuild invocation:
|
|
477
477
|
a. **Switch to local common dependency**: In `{repos.components.path}/Package.swift`, comment out the `.package(url: "...{project.slug}-common...", ...)` line and add `.package(path: "../{project.slug}-common"),` below it. This is needed because the SPM package resolves dependencies from remote git, but Phase 2 adds identifiers/keys to the local editable copy.
|
|
478
478
|
b. **Run ALL tests in a single invocation**:
|
|
@@ -499,10 +499,10 @@ Also update IMPLEMENTATION_HISTORY.md with the standard phase status, gates, and
|
|
|
499
499
|
|
|
500
500
|
> **LEAN MODE:** If `lean_mode` is `true` in `_perf_tracker.json`:
|
|
501
501
|
> - Run **Phase 6 only** (sequentially, after Phase 4).
|
|
502
|
-
> - **SKIP Phase 7 entirely.** Record as `"status": "SKIPPED"` in the tracker and append `| Phase 7 (Wiki) |
|
|
502
|
+
> - **SKIP Phase 7 entirely.** Record as `"status": "SKIPPED"` in the tracker and append `| Phase 7 (Wiki) | - | ⏭️ lean | ... |` to IMPLEMENTATION_HISTORY.md.
|
|
503
503
|
> - Do NOT touch the wiki submodule.
|
|
504
504
|
|
|
505
|
-
> **PERF CHANGE:** Phase 6 (Code Connect) and Phase 7 (Wiki Markdown generation) have NO dependency on each other. Phase 7 reads component Swift files + FIGMA.md + pass3 artifacts
|
|
505
|
+
> **PERF CHANGE:** Phase 6 (Code Connect) and Phase 7 (Wiki Markdown generation) have NO dependency on each other. Phase 7 reads component Swift files + FIGMA.md + pass3 artifacts - all completed in Phase 4. Phase 6 publishes to Figma. Running them in parallel saves ~5-10 minutes.
|
|
506
506
|
|
|
507
507
|
After Phase 5 completes (or Phase 4 in lean mode):
|
|
508
508
|
|
|
@@ -524,7 +524,7 @@ After Phase 5 completes (or Phase 4 in lean mode):
|
|
|
524
524
|
subagent_type: "general-purpose",
|
|
525
525
|
model: sonnet,
|
|
526
526
|
max_turns: 30,
|
|
527
|
-
prompt: {standard Phase 7 dispatch prompt
|
|
527
|
+
prompt: {standard Phase 7 dispatch prompt - include wikiPath in context}
|
|
528
528
|
)
|
|
529
529
|
```
|
|
530
530
|
|
|
@@ -549,24 +549,24 @@ After Phase 5 completes (or Phase 4 in lean mode):
|
|
|
549
549
|
|
|
550
550
|
When building the `Previous Phase Artifacts` section of the dispatch prompt, list artifacts in this order. Compact artifacts go FIRST so the subagent establishes context before large files consume the context window.
|
|
551
551
|
|
|
552
|
-
Every phase must be independently operable from a clean session
|
|
552
|
+
Every phase must be independently operable from a clean session - all artifacts remain accessible on disk. This table is a **read-ordering preference**, not a prohibition.
|
|
553
553
|
|
|
554
554
|
| Phase | Read FIRST (compact) | Read SECOND (if detail needed) |
|
|
555
555
|
|-------|---------------------|-------------------------------|
|
|
556
556
|
| 2A-2D | `pass1/component_summary.json` | `pass1/design_context_response.json`, `pass1/component_properties.json` |
|
|
557
|
-
| 3A | `pass1/component_summary.json`, `IMPLEMENTATION_HISTORY.md` |
|
|
557
|
+
| 3A | `pass1/component_summary.json`, `IMPLEMENTATION_HISTORY.md` | - |
|
|
558
558
|
| 3B | `pass1/component_summary.json`, `pass1/variable_defs_response.json` | `pass1/design_context_response.json` (for binding context) |
|
|
559
|
-
| 3C | `pass1/component_summary.json`, `pass1/code_connect_map_response.json` |
|
|
559
|
+
| 3C | `pass1/component_summary.json`, `pass1/code_connect_map_response.json` | - |
|
|
560
560
|
| 3D | `pass1/component_summary.json`, `pass1/component_properties.json` | `pass1/design_context_response.json`, `pass1/metadata_response.xml` |
|
|
561
|
-
| 3E | `pass1/component_summary.json`, `pass1/design_context_assets.txt` |
|
|
561
|
+
| 3E | `pass1/component_summary.json`, `pass1/design_context_assets.txt` | - |
|
|
562
562
|
| 3F | `pass1/component_summary.json`, `pass2/utility_*.md` | `pass1/design_context_response.json` |
|
|
563
|
-
| 3G | `pass1/component_summary.json`, `pass3/04b_component_architecture.md` |
|
|
563
|
+
| 3G | `pass1/component_summary.json`, `pass3/04b_component_architecture.md` | - |
|
|
564
564
|
| 4A | `pass3/04b_component_architecture.md`, `pass3/05_complexity.md`, `pass3/00_property_coverage.json` | `pass1/component_summary.json` |
|
|
565
565
|
| 4B | `pass1/component_summary.json`, `pass3/00_property_coverage.json`, `pass3/07_implementation_spec.md`, `pass3/02_token_mapping.md`, `pass3/04b_component_architecture.md`, `pass3/04_patterns.md`, `pass3/03_nested_components.md`, `pass3/08_utility_integration.md`, `pass1/screenshot.png` | `pass1/design_context_response.json` (for complex layout detail) |
|
|
566
566
|
| 4C | `pass3/07_implementation_spec.md`, `pass3/04b_component_architecture.md`, `pass3/00_property_coverage.json` | `pass1/component_summary.json` |
|
|
567
567
|
| 4D | `{componentLocation}/{ComponentName}.swift`, `{componentLocation}/{ComponentName}Configuration.swift` (if exists) | `pass3/04_patterns.md` |
|
|
568
|
-
| 4E | `{componentLocation}/{ComponentName}Configuration.swift`, `{componentLocation}/{ComponentName}.swift` |
|
|
569
|
-
| 6 | `pass1/component_properties.json`, `{sourceLocation}/FIGMA.md`, `{sourceLocation}/{componentName}.swift` |
|
|
568
|
+
| 4E | `{componentLocation}/{ComponentName}Configuration.swift`, `{componentLocation}/{ComponentName}.swift` | - |
|
|
569
|
+
| 6 | `pass1/component_properties.json`, `{sourceLocation}/FIGMA.md`, `{sourceLocation}/{componentName}.swift` | - |
|
|
570
570
|
|
|
571
571
|
---
|
|
572
572
|
|
|
@@ -591,7 +591,7 @@ When `$ARGUMENTS` is `status`:
|
|
|
591
591
|
2. For each found IMPLEMENTATION_HISTORY.md, look for a sibling `_perf_tracker.json` in the same directory.
|
|
592
592
|
3. If `_perf_tracker.json` exists:
|
|
593
593
|
a. Read it and display the full timing/reliability summary (same format as Final Summary).
|
|
594
|
-
b. If IMPLEMENTATION_HISTORY.md is missing the `## Workflow Summary` section but the tracker shows all phases completed, **generate and append the summary now**
|
|
594
|
+
b. If IMPLEMENTATION_HISTORY.md is missing the `## Workflow Summary` section but the tracker shows all phases completed, **generate and append the summary now** - this recovers from context loss.
|
|
595
595
|
4. If `_perf_tracker.json` does not exist, fall back to displaying: component name, current phase, last gate, last updated (from IMPLEMENTATION_HISTORY.md only).
|
|
596
596
|
|
|
597
597
|
---
|
|
@@ -618,8 +618,8 @@ Derive confluencePath from artifactPath: replace `Figma/Components` with `Conflu
|
|
|
618
618
|
|
|
619
619
|
When the last phase completes (or workflow is aborted/skipped):
|
|
620
620
|
|
|
621
|
-
1. **Read `{artifactPath}/_perf_tracker.json`**
|
|
622
|
-
2. **Read IMPLEMENTATION_HISTORY.md** `## Phase Timings` table
|
|
621
|
+
1. **Read `{artifactPath}/_perf_tracker.json`** - this is the single source of truth for all timing and reliability data.
|
|
622
|
+
2. **Read IMPLEMENTATION_HISTORY.md** `## Phase Timings` table - as a cross-check.
|
|
623
623
|
3. **Compute totals** from the tracker file (not from memory).
|
|
624
624
|
4. **Output the summary** to the user AND **append it to IMPLEMENTATION_HISTORY.md**.
|
|
625
625
|
|
|
@@ -633,9 +633,9 @@ When the last phase completes (or workflow is aborted/skipped):
|
|
|
633
633
|
## Workflow Summary
|
|
634
634
|
|
|
635
635
|
- Component: {componentName}
|
|
636
|
-
- Lean Mode: {yes/no
|
|
637
|
-
- Phases Executed: {list of completed phases
|
|
638
|
-
- Phases Skipped: {list, if any
|
|
636
|
+
- Lean Mode: {yes/no - from tracker `lean_mode` field}
|
|
637
|
+
- Phases Executed: {list of completed phases - from tracker}
|
|
638
|
+
- Phases Skipped: {list, if any - from tracker. In lean mode: Phase 5, Phase 7}
|
|
639
639
|
- Total Elapsed Time: {HH:MM:SS} (from tracker workflow_start to last phase end)
|
|
640
640
|
- Artifacts: {artifactPath}
|
|
641
641
|
- Component Location: {componentLocation}
|
|
@@ -655,12 +655,12 @@ When the last phase completes (or workflow is aborted/skipped):
|
|
|
655
655
|
|
|
656
656
|
### Reliability
|
|
657
657
|
- First-pass success: {phases_without_halt}/{total_phases} phases ({percentage}%)
|
|
658
|
-
- HALTs: {halt_count from tracker}
|
|
658
|
+
- HALTs: {halt_count from tracker} - {halt_log entries}
|
|
659
659
|
- Retries: {retry_count from tracker}
|
|
660
660
|
|
|
661
661
|
### Bottlenecks
|
|
662
|
-
⚠️ Phase {N} took {actual} (expected ~{expected})
|
|
663
|
-
{If no bottlenecks: "None
|
|
662
|
+
⚠️ Phase {N} took {actual} (expected ~{expected}) - {reason if known from halt_log, else "investigate"}
|
|
663
|
+
{If no bottlenecks: "None - all phases within expected duration."}
|
|
664
664
|
```
|
|
665
665
|
|
|
666
666
|
**Expected Phase Durations** (used for bottleneck detection):
|
|
@@ -700,7 +700,7 @@ The `status` command reads `_perf_tracker.json`, computes the summary, and appen
|
|
|
700
700
|
| **Combined test execution** | Single `xcodebuild test` with multiple `--only-testing:` instead of 2 separate build+test cycles |
|
|
701
701
|
| **Simulator pre-warm** | Boots iOS Simulator in background during test file generation, eliminating cold-start latency |
|
|
702
702
|
| **Phase 6 ∥ 7 parallelism** | Code Connect publish + Wiki Markdown generation run simultaneously |
|
|
703
|
-
| **Phase 4 registry finalize** | Calls `phase4-finalize.py` after BUILD to mark `implemented: true`
|
|
704
|
-
| **Disk-persisted tracking** | All timing, HALT, and retry data written to `_perf_tracker.json` after every phase
|
|
705
|
-
| **Incremental history writes** | Phase timing rows appended to IMPLEMENTATION_HISTORY.md after each phase
|
|
706
|
-
| **Bottleneck detection** | Flags phases exceeding 2× expected duration
|
|
703
|
+
| **Phase 4 registry finalize** | Calls `phase4-finalize.py` after BUILD to mark `implemented: true` - was missing in original routing, caused gray implementation flags on issue board |
|
|
704
|
+
| **Disk-persisted tracking** | All timing, HALT, and retry data written to `_perf_tracker.json` after every phase - survives context loss |
|
|
705
|
+
| **Incremental history writes** | Phase timing rows appended to IMPLEMENTATION_HISTORY.md after each phase - no data lost if conversation cuts |
|
|
706
|
+
| **Bottleneck detection** | Flags phases exceeding 2× expected duration - reconstructable from `_perf_tracker.json` at any time |
|