@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,4 +1,4 @@
|
|
|
1
|
-
# PHASE 2B
|
|
1
|
+
# PHASE 2B - Localization Keys
|
|
2
2
|
|
|
3
3
|
Localization key integration for 8 languages (ar, de, en, es, fr, it, ru, tr).
|
|
4
4
|
REF: `reference/localization-naming.md`
|
|
@@ -118,7 +118,7 @@ REF: `reference/localization-naming.md`
|
|
|
118
118
|
|------|-------|
|
|
119
119
|
| Key format | PascalCase.Dot.Notation |
|
|
120
120
|
| No unnecessary suffix | No `.Label`, `.Text`, `.Title` unless disambiguation needed |
|
|
121
|
-
| Complete text | No runtime concatenation
|
|
121
|
+
| Complete text | No runtime concatenation - display-ready strings |
|
|
122
122
|
| Unique per pattern | One key per unique text pattern |
|
|
123
123
|
| Shared texts | Single key for identical text across contexts |
|
|
124
124
|
| Max 5 levels | Key hierarchy depth ≤ 5 |
|
|
@@ -175,7 +175,7 @@ or
|
|
|
175
175
|
| Result | Action |
|
|
176
176
|
|--------|--------|
|
|
177
177
|
| `✅ Key exists` + `Missing: 0` | Mark status: "Existing" |
|
|
178
|
-
| `✅ Key exists` + `Missing: N` | Mark status: "Incomplete"
|
|
178
|
+
| `✅ Key exists` + `Missing: N` | Mark status: "Incomplete" - needs missing language translations |
|
|
179
179
|
| `❌ Key not found` | Mark status: "To Add" |
|
|
180
180
|
|
|
181
181
|
FAIL (tool error) →
|
|
@@ -196,7 +196,7 @@ USER_ACTION_REQUIRED: Options:
|
|
|
196
196
|
|
|
197
197
|
## GATE 5: ADD_MISSING_KEYS
|
|
198
198
|
|
|
199
|
-
**CRITICAL: Always use `TranslationManagerTool add` to add keys
|
|
199
|
+
**CRITICAL: Always use `TranslationManagerTool add` to add keys - NEVER edit localization JSON files directly. The tool writes to BOTH suggested and merged files atomically. Manual edits cause suggested/merged drift.**
|
|
200
200
|
|
|
201
201
|
For each key with status "To Add" or "Incomplete":
|
|
202
202
|
|
|
@@ -313,7 +313,7 @@ Write `{artifactPath}/pass2/utility_localization.json`:
|
|
|
313
313
|
|
|
314
314
|
If no localization keys needed, write `{ "localizationKeys": [] }`.
|
|
315
315
|
|
|
316
|
-
This JSON is consumed by `phase2-finalize.py` to build `component-utilities.json`. The orchestrator reads ONLY this JSON
|
|
316
|
+
This JSON is consumed by `phase2-finalize.py` to build `component-utilities.json`. The orchestrator reads ONLY this JSON - never the markdown.
|
|
317
317
|
|
|
318
318
|
### Markdown Artifact (human-readable)
|
|
319
319
|
|
|
@@ -368,7 +368,7 @@ Before marking complete, verify:
|
|
|
368
368
|
[ ] Key format: PascalCase.Dot.Notation
|
|
369
369
|
[ ] No unnecessary suffixes (.Label, .Text unless needed)
|
|
370
370
|
[ ] All 8 language translations provided (ar, de, en, es, fr, it, ru, tr)
|
|
371
|
-
[ ] No runtime concatenation
|
|
371
|
+
[ ] No runtime concatenation - display-ready strings only
|
|
372
372
|
[ ] One key per unique text pattern
|
|
373
373
|
[ ] TranslationManagerTool check passes for all keys
|
|
374
374
|
[ ] TranslationMetadataGenerator completed
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# PHASE 2C
|
|
1
|
+
# PHASE 2C - Accessibility Keys
|
|
2
2
|
|
|
3
3
|
Accessibility key integration for VoiceOver labels, hints, and values.
|
|
4
4
|
REF: `reference/accessibility.md`
|
|
5
5
|
|
|
6
|
-
required
|
|
6
|
+
required - always execute this phase.
|
|
7
7
|
PARALLEL WITH: Phase 2A, Phase 2B (all read from pass1/_index.md independently)
|
|
8
8
|
NEXT: Phase 2D (after all parallel phases complete)
|
|
9
9
|
|
|
@@ -18,7 +18,7 @@ Accessibility exists to help vision-impaired people **navigate and use** the app
|
|
|
18
18
|
- If YES → add it (e.g., a button's purpose, a meaningful image description)
|
|
19
19
|
- If NO → do not add it. You are cluttering the experience with useless noise.
|
|
20
20
|
|
|
21
|
-
Visual state indicators (colors, gradients, tier badges) are information that sighted users consume visually. A vision-impaired user already knows their own loyalty tier, their own account status, their own membership level. Announcing "Elite" or "Classic Plus" on a profile avatar adds zero navigational or functional value
|
|
21
|
+
Visual state indicators (colors, gradients, tier badges) are information that sighted users consume visually. A vision-impaired user already knows their own loyalty tier, their own account status, their own membership level. Announcing "Elite" or "Classic Plus" on a profile avatar adds zero navigational or functional value - it is noise.
|
|
22
22
|
|
|
23
23
|
Do NOT generate per-enum-variant accessibility keys for state that the user already knows or that adds no navigational value. An avatar is "Passenger avatar". A status badge with visible text is just the text. A colored indicator is decorative context, not actionable information.
|
|
24
24
|
|
|
@@ -28,13 +28,13 @@ VoiceOver reads the accessibility tree, NOT the view tree. SwiftUI builds this t
|
|
|
28
28
|
|
|
29
29
|
1. **`Text("Hello")` is already accessible.** VoiceOver reads "Hello" with no modifiers. SwiftUI knows it's static text. Adding `.accessibilityLabel("Hello")` duplicates what's already there. Adding `.accessibilityAddTraits(.isStaticText)` adds a trait SwiftUI already assigned.
|
|
30
30
|
|
|
31
|
-
2. **`Button("Save") { ... }` is already accessible.** VoiceOver reads "Save, Button"
|
|
31
|
+
2. **`Button("Save") { ... }` is already accessible.** VoiceOver reads "Save, Button" - the label AND the trait. Adding `.accessibilityLabel("Save")` or `.accessibilityAddTraits(.isButton)` is redundant.
|
|
32
32
|
|
|
33
33
|
3. **`Image(decorative: "bg")` is already hidden.** No modifier needed.
|
|
34
34
|
|
|
35
|
-
4. **`.accessibilityElement(children: .combine)` merges children.** If an HStack contains `Image` + `Text("Confirmed")`, combining them makes VoiceOver read "Confirmed" as one stop
|
|
35
|
+
4. **`.accessibilityElement(children: .combine)` merges children.** If an HStack contains `Image` + `Text("Confirmed")`, combining them makes VoiceOver read "Confirmed" as one stop - because SwiftUI concatenates the accessible text of all non-hidden children. You do NOT need `.accessibilityLabel("Confirmed")` on top of this - SwiftUI already reads the `Text`.
|
|
36
36
|
|
|
37
|
-
5. **`.accessibilityLabel` OVERRIDES, it does not supplement.** When you add `.accessibilityLabel("Confirmed, Success")` to a combined element, VoiceOver reads ONLY "Confirmed, Success"
|
|
37
|
+
5. **`.accessibilityLabel` OVERRIDES, it does not supplement.** When you add `.accessibilityLabel("Confirmed, Success")` to a combined element, VoiceOver reads ONLY "Confirmed, Success" - it ignores the children's text. This is useful when children text is wrong or insufficient. It is HARMFUL when children text is already correct, because now you're maintaining a redundant string.
|
|
38
38
|
|
|
39
39
|
### When to add NOTHING
|
|
40
40
|
|
|
@@ -45,7 +45,7 @@ If a component is:
|
|
|
45
45
|
|
|
46
46
|
Then you need ZERO accessibility modifiers on the container. Maybe `.accessibilityElement(children: .combine)` to group children into one stop. That's it. No `.accessibilityLabel`. No `.accessibilityAddTraits`. No `.accessibilityRemoveTraits`. No `.accessibilityHint`.
|
|
47
47
|
|
|
48
|
-
A non-interactive badge that shows "Confirmed" in green does NOT need `.accessibilityLabel("Confirmed, Success")`. The user hears "Confirmed"
|
|
48
|
+
A non-interactive badge that shows "Confirmed" in green does NOT need `.accessibilityLabel("Confirmed, Success")`. The user hears "Confirmed" - that's sufficient. "Success" is a visual color cue, not information the VoiceOver user needs or cares about.
|
|
49
49
|
|
|
50
50
|
### The question to ask for EVERY modifier
|
|
51
51
|
|
|
@@ -62,7 +62,7 @@ If removing a modifier changes nothing, the modifier should not exist.
|
|
|
62
62
|
|
|
63
63
|
1. **Does the component need ANY accessibility work?** If SwiftUI reads it correctly as-is → add NOTHING.
|
|
64
64
|
2. **Are there decorative elements?** → `.accessibilityHidden(true)` on those elements only.
|
|
65
|
-
3. **Should children be grouped?** → `.accessibilityElement(children: .combine)`
|
|
65
|
+
3. **Should children be grouped?** → `.accessibilityElement(children: .combine)` - then STOP. SwiftUI reads the combined text.
|
|
66
66
|
4. **Is the combined text wrong or missing?** → ONLY then add `.accessibilityLabel` with the correct text.
|
|
67
67
|
5. **Is there interactive state VoiceOver can't infer?** (custom toggle, not SwiftUI Toggle) → `.accessibilityValue`.
|
|
68
68
|
6. **Is there a trait SwiftUI can't infer?** (custom tappable view, not Button) → `.accessibilityAddTraits`.
|
|
@@ -76,12 +76,12 @@ Most components stop at step 2 or 3. If you reach step 4+, justify WHY in the ar
|
|
|
76
76
|
|---|---|
|
|
77
77
|
| Adding `.isButton` to a `Button` | SwiftUI already provides it |
|
|
78
78
|
| Adding `.isStaticText` to a `Text` | SwiftUI already provides it |
|
|
79
|
-
| `.accessibilityRemoveTraits(.isButton)` when no Button exists | Removing a trait that was never there
|
|
79
|
+
| `.accessibilityRemoveTraits(.isButton)` when no Button exists | Removing a trait that was never there - nonsensical |
|
|
80
80
|
| `.accessibilityLabel` that duplicates visible text | Overrides SwiftUI's correct reading with a redundant string you now maintain |
|
|
81
81
|
| `.accessibilityLabel("\(text), \(state.rawValue)")` on a non-interactive badge | State name ("Success") is a color cue, not information. VoiceOver user doesn't need it |
|
|
82
82
|
| Adding accessibility modifiers "just in case" | Every modifier is code to maintain. If it adds no value, it adds cost |
|
|
83
|
-
| Labeling every child in a group | VoiceOver stops at each child separately
|
|
84
|
-
| Separate key per enum variant | Key bloat
|
|
83
|
+
| Labeling every child in a group | VoiceOver stops at each child separately - use `.accessibilityElement(children: .combine)` |
|
|
84
|
+
| Separate key per enum variant | Key bloat - 5+ keys for trivially translatable names |
|
|
85
85
|
| `.accessibilityHint` when label is self-explanatory | "Close" button doesn't need hint "Closes this dialog" |
|
|
86
86
|
|
|
87
87
|
---
|
|
@@ -143,7 +143,7 @@ Only add traits SwiftUI cannot infer. Do NOT add `.isButton` to `Button`, `.isSt
|
|
|
143
143
|
|
|
144
144
|
| Rule | Implementation |
|
|
145
145
|
|------|----------------|
|
|
146
|
-
| Add nothing unless it breaks without it | Ask "what breaks if I remove this?"
|
|
146
|
+
| Add nothing unless it breaks without it | Ask "what breaks if I remove this?" - if nothing, don't add it |
|
|
147
147
|
| No redundant labels | Don't add `.accessibilityLabel` when SwiftUI reads visible text correctly |
|
|
148
148
|
| No redundant traits | Don't add `.isStaticText` to `Text`, `.isButton` to `Button` |
|
|
149
149
|
| No phantom trait removal | Don't `.accessibilityRemoveTraits(.isButton)` when no Button exists |
|
|
@@ -151,7 +151,7 @@ Only add traits SwiftUI cannot infer. Do NOT add `.isButton` to `Button`, `.isSt
|
|
|
151
151
|
| No "button" in label | Trait handles it |
|
|
152
152
|
| No "tap to" in hint | VoiceOver adds "double tap to" |
|
|
153
153
|
| No hint for obvious actions | "Close" button needs no hint |
|
|
154
|
-
| Group related content | `.accessibilityElement(children: .combine)`
|
|
154
|
+
| Group related content | `.accessibilityElement(children: .combine)` - then STOP |
|
|
155
155
|
| Hide decorative | `.accessibilityHidden(true)` |
|
|
156
156
|
| One stop per logical element | Group children, don't label each |
|
|
157
157
|
|
|
@@ -164,7 +164,7 @@ tools (Accessibility Inspector, XCUITest). The cascading `UIIdentifierContext`
|
|
|
164
164
|
ensures each component instance is uniquely identifiable even when the same
|
|
165
165
|
component appears multiple times on a screen.
|
|
166
166
|
|
|
167
|
-
VoiceOver `.accessibilityLabel` does NOT cascade
|
|
167
|
+
VoiceOver `.accessibilityLabel` does NOT cascade - labels are human-readable and
|
|
168
168
|
SwiftUI handles grouping/container semantics naturally via
|
|
169
169
|
`.accessibilityElement(children: .combine)`.
|
|
170
170
|
|
|
@@ -248,16 +248,16 @@ SCAN for accessibility-relevant elements. For each, ask: **does this need a key,
|
|
|
248
248
|
|-----------------|------|------------------|
|
|
249
249
|
| Button (SwiftUI `Button`) | Hint only if ambiguous | Skip label if button text is visible. Skip hint if action is obvious from label. |
|
|
250
250
|
| Button (custom tappable) | Label + maybe Hint | Skip hint if label makes action clear (e.g., "Close" needs no hint) |
|
|
251
|
-
| Image (meaningful) | Label |
|
|
252
|
-
| Image (decorative) | NONE | `.accessibilityHidden(true)`
|
|
251
|
+
| Image (meaningful) | Label | - |
|
|
252
|
+
| Image (decorative) | NONE | `.accessibilityHidden(true)` - no key |
|
|
253
253
|
| Input field | Label | Skip if placeholder text serves as label |
|
|
254
254
|
| Toggle/checkbox (interactive) | Value keys | Use `.Selected`/`.NotSelected` for state. Skip label if toggle text is visible. |
|
|
255
|
-
| List item | NONE usually | Skip
|
|
256
|
-
| Header text | NONE | Skip
|
|
257
|
-
| Close/dismiss button | Label only | Skip hint
|
|
258
|
-
| Grouped content | NONE | `.accessibilityElement(children: .combine)`
|
|
255
|
+
| List item | NONE usually | Skip - use `.accessibilityElement(children: .combine)` to group child content |
|
|
256
|
+
| Header text | NONE | Skip - use `.accessibilityAddTraits(.isHeader)` on the `Text` view, no key needed |
|
|
257
|
+
| Close/dismiss button | Label only | Skip hint - "Close" is self-explanatory |
|
|
258
|
+
| Grouped content | NONE | `.accessibilityElement(children: .combine)` - SwiftUI combines child text |
|
|
259
259
|
| Static text | NONE | SwiftUI reads `Text` content automatically |
|
|
260
|
-
| Variant state (non-interactive) | NONE | Evaluate through GATE 2B. No `.accessibilityLabel` needed
|
|
260
|
+
| Variant state (non-interactive) | NONE | Evaluate through GATE 2B. No `.accessibilityLabel` needed - `.accessibilityElement(children: .combine)` reads visible text |
|
|
261
261
|
| Variant state (interactive) | Value keys | Only for toggles/selections where state changes via user action |
|
|
262
262
|
|
|
263
263
|
Use `screenshot_response.md` to cross-reference:
|
|
@@ -266,7 +266,7 @@ Use `screenshot_response.md` to cross-reference:
|
|
|
266
266
|
- Whether grouped content should be combined
|
|
267
267
|
|
|
268
268
|
Use `component_properties.json` to identify:
|
|
269
|
-
- Boolean properties → value states (`.Selected`, `.NotSelected`)
|
|
269
|
+
- Boolean properties → value states (`.Selected`, `.NotSelected`) - only if interactive
|
|
270
270
|
- Variant properties → evaluate through GATE 2B
|
|
271
271
|
|
|
272
272
|
OUTPUT: List of `{ key, purpose, label_en, label_tr }`, filtered through GATE 2B.
|
|
@@ -288,7 +288,7 @@ For each variant property or boolean property identified in GATE 2, evaluate whe
|
|
|
288
288
|
- NO → Continue to step 3
|
|
289
289
|
|
|
290
290
|
3. **Is this a non-interactive display component?** (Badge, Tag, Chip, Status indicator, Label)
|
|
291
|
-
- YES → Skip state value keys. Do NOT add `.accessibilityLabel`
|
|
291
|
+
- YES → Skip state value keys. Do NOT add `.accessibilityLabel` - use `.accessibilityElement(children: .combine)` only. SwiftUI reads visible text naturally. Visual state (color) is not relevant to VoiceOver.
|
|
292
292
|
- NO → Continue to step 4
|
|
293
293
|
|
|
294
294
|
4. **Can the state be derived from an enum at runtime?**
|
|
@@ -304,9 +304,9 @@ Skip generating separate `.accessibilityValue` state keys when ALL of these are
|
|
|
304
304
|
4. Visible text or label already provides sufficient context
|
|
305
305
|
|
|
306
306
|
Instead, recommend in the artifact:
|
|
307
|
-
- Use `.accessibilityElement(children: .combine)`
|
|
308
|
-
- Do NOT add `.accessibilityLabel` with state name
|
|
309
|
-
- Do NOT add `.accessibilityAddTraits(.isStaticText)`
|
|
307
|
+
- Use `.accessibilityElement(children: .combine)` - SwiftUI reads visible text
|
|
308
|
+
- Do NOT add `.accessibilityLabel` with state name - visual state is irrelevant to VoiceOver for non-interactive components
|
|
309
|
+
- Do NOT add `.accessibilityAddTraits(.isStaticText)` - SwiftUI already knows `Text` is static text
|
|
310
310
|
|
|
311
311
|
### Example: LabelBadge (non-interactive badge)
|
|
312
312
|
|
|
@@ -318,7 +318,7 @@ Evaluation:
|
|
|
318
318
|
- Step 3: IS a display component (Badge) → Skip
|
|
319
319
|
|
|
320
320
|
Result: Do NOT generate `LabelBadge.SuccessState`, `LabelBadge.WarningState`, etc.
|
|
321
|
-
Recommend: `.accessibilityElement(children: .combine)` only
|
|
321
|
+
Recommend: `.accessibilityElement(children: .combine)` only - no custom `.accessibilityLabel`. Badge text is read naturally by SwiftUI.
|
|
322
322
|
|
|
323
323
|
OUTPUT: Updated keys list with state keys filtered. Include skipped keys in artifact.
|
|
324
324
|
|
|
@@ -376,7 +376,7 @@ or
|
|
|
376
376
|
| Result | Action |
|
|
377
377
|
|--------|--------|
|
|
378
378
|
| `✅ Key exists` + `Missing: 0` | Mark status: "Existing" |
|
|
379
|
-
| `✅ Key exists` + `Missing: N` | Mark status: "Incomplete"
|
|
379
|
+
| `✅ Key exists` + `Missing: N` | Mark status: "Incomplete" - needs missing language translations |
|
|
380
380
|
| `❌ Key not found` | Mark status: "To Add" |
|
|
381
381
|
|
|
382
382
|
FAIL (tool error) →
|
|
@@ -512,7 +512,7 @@ Write `{artifactPath}/pass2/utility_accessibility.json`:
|
|
|
512
512
|
|
|
513
513
|
If no accessibility keys needed, write `{ "accessibilityKeys": [] }`.
|
|
514
514
|
|
|
515
|
-
This JSON is consumed by `phase2-finalize.py` to build `component-utilities.json`. The orchestrator reads ONLY this JSON
|
|
515
|
+
This JSON is consumed by `phase2-finalize.py` to build `component-utilities.json`. The orchestrator reads ONLY this JSON - never the markdown.
|
|
516
516
|
|
|
517
517
|
### Markdown Artifact (human-readable)
|
|
518
518
|
|
|
@@ -540,13 +540,13 @@ Only keys that passed the necessity filter. If this table is empty, the componen
|
|
|
540
540
|
|
|
541
541
|
## Implementation
|
|
542
542
|
|
|
543
|
-
Show ONLY the modifiers this specific component actually needs. Do NOT include patterns the component doesn't use. If a component needs no accessibility modifiers beyond what SwiftUI provides, say so explicitly
|
|
543
|
+
Show ONLY the modifiers this specific component actually needs. Do NOT include patterns the component doesn't use. If a component needs no accessibility modifiers beyond what SwiftUI provides, say so explicitly - an empty Implementation section is a VALID output.
|
|
544
544
|
|
|
545
545
|
Ask for EVERY modifier: **"What breaks if I remove this?"** If the answer is "nothing", do not include it.
|
|
546
546
|
|
|
547
547
|
```swift
|
|
548
548
|
// EXAMPLE: Non-interactive display component (Badge, Tag, Chip)
|
|
549
|
-
// SwiftUI reads Text content automatically
|
|
549
|
+
// SwiftUI reads Text content automatically - NO custom label needed
|
|
550
550
|
|
|
551
551
|
// Decorative element → hide
|
|
552
552
|
iconView
|
|
@@ -574,13 +574,13 @@ Before marking complete, verify:
|
|
|
574
574
|
|
|
575
575
|
```
|
|
576
576
|
MINIMALISM CHECKS (do these FIRST):
|
|
577
|
-
[ ] Every modifier justified
|
|
578
|
-
[ ] No redundant traits
|
|
579
|
-
[ ] No unnecessary hints
|
|
580
|
-
[ ] No unnecessary labels
|
|
581
|
-
[ ] No unnecessary keys
|
|
582
|
-
[ ] Grouped content
|
|
583
|
-
[ ] State keys evaluated through GATE 2B
|
|
577
|
+
[ ] Every modifier justified - no modifier added that SwiftUI already handles
|
|
578
|
+
[ ] No redundant traits - .isButton not added to Button, .isStaticText not added to Text
|
|
579
|
+
[ ] No unnecessary hints - obvious actions (Close, Back, Delete) have no hint
|
|
580
|
+
[ ] No unnecessary labels - visible text not repeated in .accessibilityLabel
|
|
581
|
+
[ ] No unnecessary keys - runtime strings used where possible instead of LocalizedAccessibilityStringKey
|
|
582
|
+
[ ] Grouped content - related children combined into ONE VoiceOver stop, not labeled individually
|
|
583
|
+
[ ] State keys evaluated through GATE 2B - non-interactive states use runtime pattern
|
|
584
584
|
[ ] Each logical element = one VoiceOver announcement (not multiple stops)
|
|
585
585
|
|
|
586
586
|
CORRECTNESS CHECKS:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# PHASE 2D
|
|
1
|
+
# PHASE 2D - Analytics Events
|
|
2
2
|
|
|
3
3
|
Analytics event integration using `UIComponentUtilities` view modifiers.
|
|
4
4
|
REF: `reference/analytics-events.md`
|
|
@@ -57,7 +57,7 @@ Extensions: `Sources/UIComponentUtilities/Analytics/`
|
|
|
57
57
|
Read: {artifactPath}/pass1/_index.md
|
|
58
58
|
Read: {artifactPath}/pass1/design_context_response.json
|
|
59
59
|
Read: {artifactPath}/pass1/component_properties.json
|
|
60
|
-
Read: {artifactPath}/pass2/utility_identifiers.md # From Phase 2A
|
|
60
|
+
Read: {artifactPath}/pass2/utility_identifiers.md # From Phase 2A - use as event IDs
|
|
61
61
|
Read: {artifactPath}/IMPLEMENTATION_HISTORY.md
|
|
62
62
|
```
|
|
63
63
|
|
|
@@ -164,7 +164,7 @@ Write `{artifactPath}/pass2/utility_analytics.json`:
|
|
|
164
164
|
|
|
165
165
|
If no analytics events needed, write `{ "analyticsEvents": [] }`.
|
|
166
166
|
|
|
167
|
-
This JSON is consumed by `phase2-finalize.py` to build `component-utilities.json`. The orchestrator reads ONLY this JSON
|
|
167
|
+
This JSON is consumed by `phase2-finalize.py` to build `component-utilities.json`. The orchestrator reads ONLY this JSON - never the markdown.
|
|
168
168
|
|
|
169
169
|
### Markdown Artifact (human-readable)
|
|
170
170
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# PHASE 3
|
|
1
|
+
# PHASE 3 - Data Analysis Orchestrator
|
|
2
2
|
|
|
3
3
|
Orchestrates Phase 3 sub-phases: dispatches sub-agents, collects results, writes pass3/_index.md.
|
|
4
4
|
PREV: Phase 2 (Utility Integration)
|
|
@@ -63,9 +63,9 @@ Check the JSON structure:
|
|
|
63
63
|
|
|
64
64
|
| Format | Detection | Action |
|
|
65
65
|
|--------|-----------|--------|
|
|
66
|
-
| Normal | `sublayers` is `false` or absent | No action needed
|
|
66
|
+
| Normal | `sublayers` is `false` or absent | No action needed - `response` field exists |
|
|
67
67
|
| Sublayer | `sublayers` is `true` | Concatenate all `responses` values (see below) |
|
|
68
|
-
| Already normalized | `sublayers` is `true` AND `response` field exists | No action needed
|
|
68
|
+
| Already normalized | `sublayers` is `true` AND `response` field exists | No action needed - Phase 2 already normalized |
|
|
69
69
|
|
|
70
70
|
### Sublayer normalization (if not already done by Phase 2)
|
|
71
71
|
|
|
@@ -77,7 +77,7 @@ If `sublayers: true` and no `response` field:
|
|
|
77
77
|
4. Keep the original `sublayers`, `sublayerNodeIds`, and `responses` fields intact (for traceability)
|
|
78
78
|
5. Write the updated JSON back to `{artifactPath}/pass1/design_context_response.json`
|
|
79
79
|
|
|
80
|
-
After normalization, all sub-phases read the `response` field as usual
|
|
80
|
+
After normalization, all sub-phases read the `response` field as usual - no sublayer awareness needed.
|
|
81
81
|
|
|
82
82
|
---
|
|
83
83
|
|
|
@@ -103,7 +103,7 @@ PRE-CHECK
|
|
|
103
103
|
NORMALIZE_DESIGN_CONTEXT
|
|
104
104
|
↓
|
|
105
105
|
┌──────────────────────────────────────────────────┐
|
|
106
|
-
│ WAVE 1
|
|
106
|
+
│ WAVE 1 - PARALLEL │
|
|
107
107
|
│ │
|
|
108
108
|
│ Scripts (Bash, ~5s): │
|
|
109
109
|
│ python3 scripts/phase3-scripts.py wave1 │
|
|
@@ -112,15 +112,15 @@ NORMALIZE_DESIGN_CONTEXT
|
|
|
112
112
|
│ → 3F Utility Integration │
|
|
113
113
|
│ │
|
|
114
114
|
│ AI Agents (parallel sub-agents): │
|
|
115
|
-
│ 3A
|
|
116
|
-
│ 3C
|
|
117
|
-
│ 3D
|
|
115
|
+
│ 3A - Component Location ← required │
|
|
116
|
+
│ 3C - Nested Components ← required │
|
|
117
|
+
│ 3D - Patterns + Architecture ← required │
|
|
118
118
|
│ │
|
|
119
119
|
└──────────────────────────────────────────────────┘
|
|
120
120
|
↓ wait for all to complete
|
|
121
121
|
↓
|
|
122
122
|
┌──────────────────────────────────────────────────┐
|
|
123
|
-
│ WAVE 2
|
|
123
|
+
│ WAVE 2 - SEQUENTIAL (depends on 3D output) │
|
|
124
124
|
│ │
|
|
125
125
|
│ Script (Bash, ~1s): │
|
|
126
126
|
│ python3 scripts/phase3-scripts.py 3g │
|
|
@@ -151,7 +151,7 @@ python3 {skillPath}/scripts/phase3-scripts.py wave1 --artifact-path {artifactPat
|
|
|
151
151
|
This runs 3B, 3E, 3F sequentially (~5-10s total). The script handles skip conditions for 3E automatically.
|
|
152
152
|
|
|
153
153
|
AI Agents (sub-agents in parallel):
|
|
154
|
-
- 3A, 3C, 3D
|
|
154
|
+
- 3A, 3C, 3D - each reads from `pass1/` artifacts independently.
|
|
155
155
|
- `design_context_response.json` is already normalized (flat `response` field) by NORMALIZE_DESIGN_CONTEXT.
|
|
156
156
|
- Each writes its own file to `pass3/`.
|
|
157
157
|
- Wait for ALL (scripts + agents) to complete before Wave 2.
|
|
@@ -168,7 +168,7 @@ python3 {skillPath}/scripts/phase3-scripts.py 3g --artifact-path {artifactPath}
|
|
|
168
168
|
|
|
169
169
|
| Sub-phase | Skip when |
|
|
170
170
|
|-----------|-----------|
|
|
171
|
-
| 3E | No `pass1/design_context_assets.txt` exists or file is empty (handled by script
|
|
171
|
+
| 3E | No `pass1/design_context_assets.txt` exists or file is empty (handled by script - writes placeholder automatically) |
|
|
172
172
|
|
|
173
173
|
---
|
|
174
174
|
|
|
@@ -180,11 +180,11 @@ After all sub-phases complete, verify each produced its artifact:
|
|
|
180
180
|
[ ] pass3/01_component_location.md exists (Phase 3A)
|
|
181
181
|
[ ] pass3/02_token_mapping.md exists (Phase 3B)
|
|
182
182
|
[ ] pass3/03_nested_components.md exists (Phase 3C)
|
|
183
|
-
[ ] pass3/04_patterns.md exists (Phase 3D
|
|
184
|
-
[ ] pass3/04b_component_architecture.md exists (Phase 3D
|
|
185
|
-
[ ] pass3/04b_component_architecture.json exists (Phase 3D
|
|
186
|
-
[ ] pass3/05_complexity.md exists (Phase 3D
|
|
187
|
-
[ ] pass3/06_assets.md exists (Phase 3E
|
|
183
|
+
[ ] pass3/04_patterns.md exists (Phase 3D - patterns section)
|
|
184
|
+
[ ] pass3/04b_component_architecture.md exists (Phase 3D - architecture section)
|
|
185
|
+
[ ] pass3/04b_component_architecture.json exists (Phase 3D - structured, for 3G script)
|
|
186
|
+
[ ] pass3/05_complexity.md exists (Phase 3D - complexity section)
|
|
187
|
+
[ ] pass3/06_assets.md exists (Phase 3E - or skipped placeholder)
|
|
188
188
|
[ ] pass3/08_utility_integration.md exists (Phase 3F)
|
|
189
189
|
[ ] pass3/00_property_coverage.json exists (Phase 3G)
|
|
190
190
|
```
|
|
@@ -214,7 +214,7 @@ The script reads `04b_component_architecture.json`, `00_property_coverage.json`,
|
|
|
214
214
|
| Result | Action |
|
|
215
215
|
|--------|--------|
|
|
216
216
|
| Exit 0 | Proceed to GATE 3 |
|
|
217
|
-
| Exit 1 | HALT
|
|
217
|
+
| Exit 1 | HALT - missing required input files |
|
|
218
218
|
|
|
219
219
|
---
|
|
220
220
|
|
|
@@ -243,7 +243,7 @@ Append to `{artifactPath}/IMPLEMENTATION_HISTORY.md`:
|
|
|
243
243
|
Write `{artifactPath}/pass3/_index.md`:
|
|
244
244
|
|
|
245
245
|
```markdown
|
|
246
|
-
# Pass 3
|
|
246
|
+
# Pass 3 - Analysis Output
|
|
247
247
|
|
|
248
248
|
Component: {componentName}
|
|
249
249
|
Generated: {ISO_DATE}
|
|
@@ -291,7 +291,7 @@ Utility integration: `pass3/08_utility_integration.md`
|
|
|
291
291
|
[ ] 06_assets.md exists (or skipped placeholder)
|
|
292
292
|
[ ] 07_implementation_spec.md written by spec script (NOT by orchestrator reading files)
|
|
293
293
|
[ ] 08_utility_integration.md exists
|
|
294
|
-
[ ] 00_property_coverage.json exists (Phase 3G
|
|
294
|
+
[ ] 00_property_coverage.json exists (Phase 3G - all properties have IMPLEMENT/SKIP/DEFER status)
|
|
295
295
|
[ ] IMPLEMENTATION_HISTORY.md updated with Phase 3 summary
|
|
296
296
|
[ ] pass3/_index.md written listing ALL pass3 files
|
|
297
297
|
```
|
|
@@ -305,16 +305,16 @@ STATUS: COMPLETE
|
|
|
305
305
|
PHASE: phase-3
|
|
306
306
|
GATES_PASSED: [PRE_CHECK, NORMALIZE_DESIGN_CONTEXT, DISPATCH_WAVE_1, DISPATCH_WAVE_2, COLLECT_RESULTS, WRITE_IMPLEMENTATION_SPEC, UPDATE_IMPLEMENTATION_HISTORY, WRITE_PASS3_INDEX]
|
|
307
307
|
ARTIFACTS_CREATED:
|
|
308
|
-
- {artifactPath}/pass3/01_component_location.md (via Phase 3A
|
|
309
|
-
- {artifactPath}/pass3/02_token_mapping.md (via Phase 3B
|
|
310
|
-
- {artifactPath}/pass3/03_nested_components.md (via Phase 3C
|
|
311
|
-
- {artifactPath}/pass3/04_patterns.md (via Phase 3D
|
|
312
|
-
- {artifactPath}/pass3/04b_component_architecture.md (via Phase 3D
|
|
313
|
-
- {artifactPath}/pass3/04b_component_architecture.json (via Phase 3D
|
|
314
|
-
- {artifactPath}/pass3/05_complexity.md (via Phase 3D
|
|
315
|
-
- {artifactPath}/pass3/06_assets.md (via Phase 3E
|
|
316
|
-
- {artifactPath}/pass3/08_utility_integration.md (via Phase 3F
|
|
317
|
-
- {artifactPath}/pass3/00_property_coverage.json (via Phase 3G
|
|
308
|
+
- {artifactPath}/pass3/01_component_location.md (via Phase 3A - AI agent)
|
|
309
|
+
- {artifactPath}/pass3/02_token_mapping.md (via Phase 3B - script)
|
|
310
|
+
- {artifactPath}/pass3/03_nested_components.md (via Phase 3C - AI agent)
|
|
311
|
+
- {artifactPath}/pass3/04_patterns.md (via Phase 3D - AI agent)
|
|
312
|
+
- {artifactPath}/pass3/04b_component_architecture.md (via Phase 3D - AI agent)
|
|
313
|
+
- {artifactPath}/pass3/04b_component_architecture.json (via Phase 3D - AI agent)
|
|
314
|
+
- {artifactPath}/pass3/05_complexity.md (via Phase 3D - AI agent)
|
|
315
|
+
- {artifactPath}/pass3/06_assets.md (via Phase 3E - script)
|
|
316
|
+
- {artifactPath}/pass3/08_utility_integration.md (via Phase 3F - script)
|
|
317
|
+
- {artifactPath}/pass3/00_property_coverage.json (via Phase 3G - script)
|
|
318
318
|
- {artifactPath}/pass3/07_implementation_spec.md (orchestrator)
|
|
319
319
|
- {artifactPath}/pass3/_index.md
|
|
320
320
|
SUMMARY: Data analysis complete. {TOTAL_FILES} analysis files created. Complexity: {SIMPLE/COMPLEX}. {MAPPED}/{TOTAL} tokens mapped. {CONNECTED}/{TOTAL} nested components connected. Ready for Phase 4.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# PHASE 3A
|
|
1
|
+
# PHASE 3A - Component Location Resolution
|
|
2
2
|
|
|
3
3
|
Resolve component name, implementation path, and artifact path.
|
|
4
4
|
Uses user input (priority) and registry lookup (fallback).
|
|
5
5
|
|
|
6
|
-
required
|
|
6
|
+
required - always execute this phase.
|
|
7
7
|
PARALLEL WITH: Phase 3B, 3C, 3D, 3E, 3F (all read from pass1/ independently)
|
|
8
8
|
|
|
9
9
|
---
|
|
@@ -67,7 +67,7 @@ componentName = userProvidedName ?? suggestedComponentName
|
|
|
67
67
|
|
|
68
68
|
# 2. Build the folder path. Take whichever location source is available,
|
|
69
69
|
# strip its last segment, and append the resolved componentName.
|
|
70
|
-
# This guarantees the folder tail always equals componentName
|
|
70
|
+
# This guarantees the folder tail always equals componentName -
|
|
71
71
|
# a name override automatically propagates into the folder.
|
|
72
72
|
componentLocation = dirname(userProvidedLocation ?? suggestedComponentLocation) + "/" + componentName
|
|
73
73
|
|
|
@@ -87,7 +87,7 @@ ALL THREE must be resolved:
|
|
|
87
87
|
ALSO (structural invariant): `basename(componentLocation) == componentName`.
|
|
88
88
|
The last path segment of `componentLocation` MUST equal `componentName` exactly.
|
|
89
89
|
If they differ, HALT with `NEEDS_INPUT` asking the user to reconcile name vs.
|
|
90
|
-
location
|
|
90
|
+
location - do NOT proceed with a mismatched folder/type pair.
|
|
91
91
|
|
|
92
92
|
FAIL (any missing or invariant violated) →
|
|
93
93
|
|
|
@@ -104,7 +104,7 @@ QUESTION: Cannot determine component name and/or implementation location. Please
|
|
|
104
104
|
OPTIONS:
|
|
105
105
|
1) Provide component name and location manually
|
|
106
106
|
2) Update registry with correct mapping and retry
|
|
107
|
-
SUGGESTED: Option 1
|
|
107
|
+
SUGGESTED: Option 1 - provide manually.
|
|
108
108
|
COMPLETED_GATES: [PRE_CHECK, RESOLVE_COMPONENT_NAME_AND_LOCATION]
|
|
109
109
|
CONTEXT:
|
|
110
110
|
From registry: name={suggestedComponentName or "not found"}, location={suggestedComponentLocation or "not found"}
|
|
@@ -136,7 +136,7 @@ OPTIONS:
|
|
|
136
136
|
1) Override existing (delete and recreate)
|
|
137
137
|
2) Choose different name
|
|
138
138
|
3) Merge with existing (update files)
|
|
139
|
-
SUGGESTED: Option 3
|
|
139
|
+
SUGGESTED: Option 3 - merge with existing. Existing files will be updated, new files added.
|
|
140
140
|
COMPLETED_GATES: [PRE_CHECK, RESOLVE_COMPONENT_NAME_AND_LOCATION, VALIDATE_RESOLUTION]
|
|
141
141
|
CONTEXT:
|
|
142
142
|
Path: {componentLocation}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# PHASE 3B
|
|
1
|
+
# PHASE 3B - Variable Token Mapping
|
|
2
2
|
|
|
3
3
|
Map Figma design variables to Swift design tokens.
|
|
4
4
|
Translates colors, spacing, typography, and images from Figma variable names to Swift usage patterns.
|
|
5
5
|
|
|
6
|
-
required
|
|
6
|
+
required - always execute this phase.
|
|
7
7
|
PARALLEL WITH: Phase 3A, 3C, 3D, 3E, 3F (all read from pass1/ independently)
|
|
8
8
|
|
|
9
9
|
---
|
|
@@ -100,7 +100,7 @@ Map each resolved token to its Swift usage pattern:
|
|
|
100
100
|
|
|
101
101
|
### Typography dual usage
|
|
102
102
|
|
|
103
|
-
Typography tokens have two usage modes
|
|
103
|
+
Typography tokens have two usage modes - include BOTH in the output:
|
|
104
104
|
|
|
105
105
|
**1. Typography modifier (for Text views with full style):**
|
|
106
106
|
```swift
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# PHASE 3C
|
|
1
|
+
# PHASE 3C - Nested Component Resolution
|
|
2
2
|
|
|
3
3
|
Resolve nested/child components referenced by this component.
|
|
4
4
|
Reads FIGMA.md from connected components to extract init signatures and usage patterns.
|
|
5
5
|
|
|
6
|
-
required
|
|
6
|
+
required - always execute this phase.
|
|
7
7
|
PARALLEL WITH: Phase 3A, 3B, 3D, 3E, 3F (all read from pass1/ independently)
|
|
8
8
|
|
|
9
9
|
---
|
|
@@ -62,8 +62,8 @@ Also scan `design_context_response.json` for components that appear in the desig
|
|
|
62
62
|
- Look for instance references in the Figma design context code
|
|
63
63
|
|
|
64
64
|
OUTPUT: Two lists:
|
|
65
|
-
1. **Connected**
|
|
66
|
-
2. **Unconnected**
|
|
65
|
+
1. **Connected** - in code_connect_map with source path
|
|
66
|
+
2. **Unconnected** - referenced in design but NOT in code_connect_map
|
|
67
67
|
|
|
68
68
|
If NO nested components found (component is self-contained):
|
|
69
69
|
- Write artifact noting "No nested components"
|
|
@@ -83,14 +83,14 @@ For example, if codeConnectSrc is `Sources/UIComponents/Components/Buttons/TextL
|
|
|
83
83
|
`Sources/UIComponents/Components/Buttons/TextLink/FIGMA.md`
|
|
84
84
|
|
|
85
85
|
EXTRACT from each FIGMA.md:
|
|
86
|
-
- **Init signature**
|
|
87
|
-
- **Variant mapping**
|
|
88
|
-
- **First usage example**
|
|
86
|
+
- **Init signature** - the public init with parameter names and types
|
|
87
|
+
- **Variant mapping** - how Figma variants map to Swift properties
|
|
88
|
+
- **First usage example** - the recommended integration pattern
|
|
89
89
|
|
|
90
90
|
If FIGMA.md does not exist for a connected component:
|
|
91
91
|
- Read the Swift source file directly
|
|
92
92
|
- Extract the public init from the source code
|
|
93
|
-
- Mark as "No FIGMA.md
|
|
93
|
+
- Mark as "No FIGMA.md - signature from source"
|
|
94
94
|
|
|
95
95
|
---
|
|
96
96
|
|
|
@@ -113,8 +113,8 @@ QUESTION: {COUNT} nested component(s) not found in Code Connect. These are used
|
|
|
113
113
|
OPTIONS:
|
|
114
114
|
1) Implement dependencies first (pause this component)
|
|
115
115
|
2) Continue without (will need manual implementation inline or stub)
|
|
116
|
-
3) These are not real dependencies
|
|
117
|
-
SUGGESTED: Option 2
|
|
116
|
+
3) These are not real dependencies - ignore them
|
|
117
|
+
SUGGESTED: Option 2 - continue. Unconnected components will be documented for later implementation.
|
|
118
118
|
COMPLETED_GATES: [PRE_CHECK, EXTRACT_NESTED_COMPONENTS, READ_FIGMA_MD]
|
|
119
119
|
CONTEXT:
|
|
120
120
|
Unconnected components:
|
|
@@ -166,9 +166,9 @@ LabelBadge(text: statusText, state: .success)
|
|
|
166
166
|
|
|
167
167
|
| Component | Figma Node | Resolution |
|
|
168
168
|
|-----------|-----------|------------|
|
|
169
|
-
| CustomIcon | 789:012 | Continue without
|
|
169
|
+
| CustomIcon | 789:012 | Continue without - will implement inline |
|
|
170
170
|
|
|
171
|
-
OR: None
|
|
171
|
+
OR: None - all nested components are connected.
|
|
172
172
|
|
|
173
173
|
## Inline Components
|
|
174
174
|
|