@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
|
@@ -6,7 +6,7 @@ All scripts in `.instructions/figma/figma-to-swiftui/scripts/`. Each replaces sl
|
|
|
6
6
|
|
|
7
7
|
## Data Gathering
|
|
8
8
|
|
|
9
|
-
### `phase1-gather.py`
|
|
9
|
+
### `phase1-gather.py` - Phase 1 Data Collection
|
|
10
10
|
|
|
11
11
|
Replaces the Phase 1 LLM subagent. Collects all Figma data for a component in one run.
|
|
12
12
|
|
|
@@ -48,7 +48,7 @@ python3 scripts/phase1-gather.py \
|
|
|
48
48
|
|
|
49
49
|
---
|
|
50
50
|
|
|
51
|
-
### `remote-mcp-fetch.py`
|
|
51
|
+
### `remote-mcp-fetch.py` - Remote MCP Tool Caller
|
|
52
52
|
|
|
53
53
|
Calls Figma remote MCP from any context (subagents, CI, scripts). See `reference/remote-mcp-script.md` for full docs.
|
|
54
54
|
|
|
@@ -70,7 +70,7 @@ python3 scripts/remote-mcp-fetch.py \
|
|
|
70
70
|
|
|
71
71
|
## Phase Processing
|
|
72
72
|
|
|
73
|
-
### `phase2-finalize.py`
|
|
73
|
+
### `phase2-finalize.py` - Phase 2 Finalization
|
|
74
74
|
|
|
75
75
|
Builds `component-utilities.json` from Phase 2 sub-phase JSON sidecars and registers with FigmaRegistryUtility.
|
|
76
76
|
|
|
@@ -91,7 +91,7 @@ python3 scripts/phase2-finalize.py \
|
|
|
91
91
|
|
|
92
92
|
---
|
|
93
93
|
|
|
94
|
-
### `phase3-scripts.py`
|
|
94
|
+
### `phase3-scripts.py` - Phase 3 Scriptable Sub-Phases
|
|
95
95
|
|
|
96
96
|
Runs deterministic Phase 3 sub-phases that don't need AI reasoning.
|
|
97
97
|
|
|
@@ -115,7 +115,7 @@ python3 scripts/phase3-scripts.py wave1 --artifact-path /path # 3b+3e+3f togethe
|
|
|
115
115
|
|
|
116
116
|
## Validation
|
|
117
117
|
|
|
118
|
-
### `validate-phase4.sh`
|
|
118
|
+
### `validate-phase4.sh` - Phase 4 Output Validation
|
|
119
119
|
|
|
120
120
|
Checks Phase 4 (code generation) output for completeness.
|
|
121
121
|
|
|
@@ -123,7 +123,7 @@ Checks Phase 4 (code generation) output for completeness.
|
|
|
123
123
|
bash scripts/validate-phase4.sh /path/to/artifacts
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
### `validate-phase6.sh`
|
|
126
|
+
### `validate-phase6.sh` - Phase 6 Output Validation
|
|
127
127
|
|
|
128
128
|
Checks Phase 6 (Code Connect) output for completeness.
|
|
129
129
|
|
|
@@ -131,7 +131,7 @@ Checks Phase 6 (Code Connect) output for completeness.
|
|
|
131
131
|
bash scripts/validate-phase6.sh /path/to/artifacts
|
|
132
132
|
```
|
|
133
133
|
|
|
134
|
-
### `code-connect-publish.sh`
|
|
134
|
+
### `code-connect-publish.sh` - Resilient Code Connect Publish
|
|
135
135
|
|
|
136
136
|
Wrapper around `npx figma connect publish` that auto-excludes stale components causing validation failures, retries once, and restores `figma.config.json` via trap.
|
|
137
137
|
|
|
@@ -145,7 +145,7 @@ Must be run from the uicomponents package root. Requires `FIGMA_ACCESS_TOKEN` en
|
|
|
145
145
|
|
|
146
146
|
## Utilities
|
|
147
147
|
|
|
148
|
-
### `sync-skills.sh`
|
|
148
|
+
### `sync-skills.sh` - Sync Skill Files
|
|
149
149
|
|
|
150
150
|
Copies `.instructions/figma/figma-to-swiftui/` to `.gemini/skills/figma/` and `.github/skills/figma/`.
|
|
151
151
|
|
|
@@ -153,7 +153,7 @@ Copies `.instructions/figma/figma-to-swiftui/` to `.gemini/skills/figma/` and `.
|
|
|
153
153
|
bash scripts/sync-skills.sh
|
|
154
154
|
```
|
|
155
155
|
|
|
156
|
-
### `run-uicomponents-tests.sh`
|
|
156
|
+
### `run-uicomponents-tests.sh` - Run UIComponents Tests
|
|
157
157
|
|
|
158
158
|
Runs the Swift test suite for the UIComponents package.
|
|
159
159
|
|
|
@@ -165,7 +165,7 @@ bash scripts/run-uicomponents-tests.sh
|
|
|
165
165
|
|
|
166
166
|
## Code Connect
|
|
167
167
|
|
|
168
|
-
### `register-icons-codeconnect.py`
|
|
168
|
+
### `register-icons-codeconnect.py` - Batch Icon Registration
|
|
169
169
|
|
|
170
170
|
Registers icon assets in Figma via Code Connect.
|
|
171
171
|
|
|
@@ -173,7 +173,7 @@ Registers icon assets in Figma via Code Connect.
|
|
|
173
173
|
python3 scripts/register-icons-codeconnect.py [options]
|
|
174
174
|
```
|
|
175
175
|
|
|
176
|
-
### `figma-subcomponent-graph.py`
|
|
176
|
+
### `figma-subcomponent-graph.py` - Component Dependency Graph
|
|
177
177
|
|
|
178
178
|
Builds a graph of nested component dependencies from Figma metadata.
|
|
179
179
|
|
|
@@ -185,7 +185,7 @@ python3 scripts/figma-subcomponent-graph.py [options]
|
|
|
185
185
|
|
|
186
186
|
## Confluence
|
|
187
187
|
|
|
188
|
-
### `confluence-publish.py`
|
|
188
|
+
### `confluence-publish.py` - Publish to Confluence
|
|
189
189
|
|
|
190
190
|
Publishes component documentation to Confluence.
|
|
191
191
|
|
|
@@ -193,7 +193,7 @@ Publishes component documentation to Confluence.
|
|
|
193
193
|
python3 scripts/confluence-publish.py [options]
|
|
194
194
|
```
|
|
195
195
|
|
|
196
|
-
### `confluence-component-status.py`
|
|
196
|
+
### `confluence-component-status.py` - Component Status Tracker
|
|
197
197
|
|
|
198
198
|
Tracks implementation status across components in Confluence.
|
|
199
199
|
|
|
@@ -201,7 +201,7 @@ Tracks implementation status across components in Confluence.
|
|
|
201
201
|
python3 scripts/confluence-component-status.py [options]
|
|
202
202
|
```
|
|
203
203
|
|
|
204
|
-
### `confluence-page-ids.json`
|
|
204
|
+
### `confluence-page-ids.json` - Page ID Mapping
|
|
205
205
|
|
|
206
206
|
Static JSON mapping of Confluence page IDs for documentation targets.
|
|
207
207
|
|
|
@@ -134,7 +134,7 @@ assertSnapshot(of: vc, as: .image, named: "dark")
|
|
|
134
134
|
|
|
135
135
|
## DI REGISTRATION FOR TESTS
|
|
136
136
|
|
|
137
|
-
Snapshot tests run in SPM package context
|
|
137
|
+
Snapshot tests run in SPM package context - no AppDelegate, no DI registration. Use `TestDependencies` helper to register providers before tests.
|
|
138
138
|
|
|
139
139
|
```swift
|
|
140
140
|
override class func setUp() {
|
|
@@ -160,7 +160,7 @@ func test_snapshot_rtl_light_default() {
|
|
|
160
160
|
}
|
|
161
161
|
```
|
|
162
162
|
|
|
163
|
-
**CRITICAL:** `String(localized:bundle:locale:)` does NOT select translation language
|
|
163
|
+
**CRITICAL:** `String(localized:bundle:locale:)` does NOT select translation language - the `locale` parameter only affects interpolated value formatting. The `DevelopmentLocalizedStringProvider` uses `Bundle.localizedString(forKey:value:table:)` with a language-specific `.lproj` sub-bundle to correctly resolve translations by language.
|
|
164
164
|
|
|
165
165
|
**RTL snapshot helper pattern:**
|
|
166
166
|
|
|
@@ -22,7 +22,7 @@ python3 .instructions/figma/figma-to-swiftui/scripts/figma-subcomponent-graph.py
|
|
|
22
22
|
# Preview without API calls
|
|
23
23
|
python3 .instructions/figma/figma-to-swiftui/scripts/figma-subcomponent-graph.py --dry-run
|
|
24
24
|
|
|
25
|
-
# Skip Visual Assets (icons/flags
|
|
25
|
+
# Skip Visual Assets (icons/flags - rarely have sub-components)
|
|
26
26
|
python3 .instructions/figma/figma-to-swiftui/scripts/figma-subcomponent-graph.py --skip-assets
|
|
27
27
|
|
|
28
28
|
# Verbose output
|
|
@@ -82,9 +82,9 @@ python3 .instructions/figma/figma-to-swiftui/scripts/figma-subcomponent-graph.py
|
|
|
82
82
|
|
|
83
83
|
## Consumers
|
|
84
84
|
|
|
85
|
-
- `confluence-component-status.py`
|
|
86
|
-
- Phase 3C (nested components)
|
|
87
|
-
- Phase 4B (view implementation)
|
|
85
|
+
- `confluence-component-status.py` - reads graph to compute readiness (ready/blocked)
|
|
86
|
+
- Phase 3C (nested components) - can reference graph for dependency info
|
|
87
|
+
- Phase 4B (view implementation) - knows which sub-components to import
|
|
88
88
|
|
|
89
89
|
## When to Re-run
|
|
90
90
|
|
package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md
CHANGED
|
@@ -73,7 +73,7 @@ Both type-safe and raw string accepted:
|
|
|
73
73
|
.testIdentifier(.TurkishButton.button) // alias for accessibilityIdentifier
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
Context keys are regular UITestingIdentifierKey entries
|
|
76
|
+
Context keys are regular UITestingIdentifierKey entries - add via the tool:
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
79
|
UITestingIdentifierTool add --key 'PassengerList.screen' --value 'passenger_list'
|
|
@@ -81,11 +81,11 @@ UITestingIdentifierTool add --key 'PassengerList.screen' --value 'passenger_list
|
|
|
81
81
|
|
|
82
82
|
### Rules for Context Segments
|
|
83
83
|
|
|
84
|
-
- **snake_case**
|
|
85
|
-
- **Prefer type-safe keys**
|
|
86
|
-
- **Descriptive**
|
|
87
|
-
- **Stable**
|
|
88
|
-
- **No component name**
|
|
84
|
+
- **snake_case** - same as identifier values
|
|
85
|
+
- **Prefer type-safe keys** - `.identifierContext(.PassengerList.screen)` over raw strings
|
|
86
|
+
- **Descriptive** - `passenger_list`, not `pl` or `screen1`
|
|
87
|
+
- **Stable** - don't use indices unless necessary (use `.with()` for dynamic)
|
|
88
|
+
- **No component name** - the component's own identifier already includes it
|
|
89
89
|
|
|
90
90
|
---
|
|
91
91
|
|
|
@@ -22,16 +22,16 @@
|
|
|
22
22
|
| `generate_figma_design` | no | yes | Push web page or UI to Figma file | Figma file URL |
|
|
23
23
|
| `whoami` | no | yes | Verify OAuth authentication | Authenticated user info |
|
|
24
24
|
|
|
25
|
-
**Local prefix:** `mcp__figma__`
|
|
25
|
+
**Local prefix:** `mcp__figma__` - **Remote prefix:** `mcp__figma-remote__`
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
29
|
-
### 1.2 Tool Calls
|
|
29
|
+
### 1.2 Tool Calls - Local MCP
|
|
30
30
|
|
|
31
31
|
**Prefix:** `mcp__figma__`
|
|
32
32
|
**Endpoint:** `http://127.0.0.1:3845/mcp`
|
|
33
33
|
**Requirement:** Figma Desktop running + Dev Mode enabled (Shift+D)
|
|
34
|
-
**Note:** `nodeId` is optional on local
|
|
34
|
+
**Note:** `nodeId` is optional on local - omit to use the currently selected node.
|
|
35
35
|
|
|
36
36
|
```
|
|
37
37
|
mcp__figma__get_design_context(nodeId?: "X:Y", dirForAssetWrites?: "/abs/path", forceCode?: true)
|
|
@@ -49,7 +49,7 @@ mcp__figma__send_code_connect_mappings(nodeId: "X:Y", mappings: [...])
|
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
52
|
-
### 1.3 Tool Calls
|
|
52
|
+
### 1.3 Tool Calls - Remote MCP
|
|
53
53
|
|
|
54
54
|
**Prefix:** `mcp__figma-remote__`
|
|
55
55
|
**Endpoint:** `https://mcp.figma.com/mcp`
|
|
@@ -102,7 +102,7 @@ Prefer local for all active development. Use remote only when Figma Desktop is u
|
|
|
102
102
|
### 1.6 Return Formats
|
|
103
103
|
|
|
104
104
|
**get_design_context**
|
|
105
|
-
Returns generated code + asset URLs. If response is XML instead of code, the design node is too large
|
|
105
|
+
Returns generated code + asset URLs. If response is XML instead of code, the design node is too large - extract sublayer `nodeId` values from the XML and call again on each sublayer.
|
|
106
106
|
|
|
107
107
|
**get_variable_defs**
|
|
108
108
|
```json
|
|
@@ -120,11 +120,11 @@ XML containing node IDs, layer types, names, positions, and sizes. Use to identi
|
|
|
120
120
|
|
|
121
121
|
---
|
|
122
122
|
|
|
123
|
-
### 1.7 Rate Limits (MCP Remote
|
|
123
|
+
### 1.7 Rate Limits (MCP Remote - effective November 2025)
|
|
124
124
|
|
|
125
125
|
| Plan | Per Minute | Per Day |
|
|
126
126
|
|------|-----------|---------|
|
|
127
|
-
| Viewer / Collaborator |
|
|
127
|
+
| Viewer / Collaborator | - | 6 / month total |
|
|
128
128
|
| Dev / Full Pro | 15 | 200 |
|
|
129
129
|
| Dev / Full Org | 20 | 200 |
|
|
130
130
|
| Dev / Full Enterprise | 20 | 600 |
|
|
@@ -199,7 +199,7 @@ curl -H "X-Figma-Token: $TOKEN" \
|
|
|
199
199
|
| `projects:read` | Read team projects |
|
|
200
200
|
| `webhooks:write` | Manage webhooks |
|
|
201
201
|
|
|
202
|
-
**Deprecated:** `files:read`
|
|
202
|
+
**Deprecated:** `files:read` - replace with `file_content:read` + `file_metadata:read`.
|
|
203
203
|
**Note:** Personal Access Tokens (PATs) are capped at 90-day expiry.
|
|
204
204
|
|
|
205
205
|
---
|
|
@@ -208,7 +208,7 @@ curl -H "X-Figma-Token: $TOKEN" \
|
|
|
208
208
|
|
|
209
209
|
| Status | Meaning | Action |
|
|
210
210
|
|--------|---------|--------|
|
|
211
|
-
| 200 | Success |
|
|
211
|
+
| 200 | Success | - |
|
|
212
212
|
| 400 | Bad request | Check parameter format |
|
|
213
213
|
| 403 | Forbidden | Check token validity and scopes |
|
|
214
214
|
| 404 | Not found | Check fileKey and nodeId |
|
|
@@ -13,7 +13,7 @@ License: MIT
|
|
|
13
13
|
| Framework | Supported | Notes |
|
|
14
14
|
|-----------|-----------|-------|
|
|
15
15
|
| XCTest | Yes | Full support, RECOMMENDED |
|
|
16
|
-
| Swift Testing | Warning | Known issues with @Test (GitHub #319)
|
|
16
|
+
| Swift Testing | Warning | Known issues with @Test (GitHub #319) - use XCTest |
|
|
17
17
|
| Swift 6.0+ | Yes | Use `.implicitAnyView()` for implicit AnyView wrappers |
|
|
18
18
|
| iOS 17+ / iOS 26 | Yes | v0.10.3 fixes accessibilityIdentifier on iOS 26 |
|
|
19
19
|
|
package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md
CHANGED
|
@@ -155,7 +155,7 @@ code here
|
|
|
155
155
|
- XML attribute values (`ri:filename`, `ri:content-title`) MUST escape: `&` → `&`, `"` → `"`, `<` → `<`, `>` → `>`
|
|
156
156
|
- Text inside `<![CDATA[...]]>` blocks does NOT need escaping
|
|
157
157
|
- Text inside element content (between tags) needs `&` and `<` escaped
|
|
158
|
-
- Filenames on disk keep original characters
|
|
158
|
+
- Filenames on disk keep original characters - XML parser decodes the escapes
|
|
159
159
|
|
|
160
160
|
---
|
|
161
161
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
-
"""apply-author-login-map.py
|
|
2
|
+
"""apply-author-login-map.py - rewrite status.<platform>.implementedBy
|
|
3
3
|
in every registry entry, replacing git-author display names with the
|
|
4
4
|
resolved GitHub logins from temp/author-login-map.json.
|
|
5
5
|
|
|
@@ -11,7 +11,7 @@ the author resolved to the same login after manual fill) are
|
|
|
11
11
|
re-written idempotently (no-op write).
|
|
12
12
|
|
|
13
13
|
Entries whose implementedBy is not in the mapping file at all are
|
|
14
|
-
left alone
|
|
14
|
+
left alone - they were either set by something else or wouldn't be
|
|
15
15
|
found by the build-author-registry pass.
|
|
16
16
|
|
|
17
17
|
Writes go through lib.registry_writer.set_implemented_by so the
|
|
@@ -25,8 +25,8 @@ Usage:
|
|
|
25
25
|
[--dry-run]
|
|
26
26
|
|
|
27
27
|
Exit codes:
|
|
28
|
-
0
|
|
29
|
-
1
|
|
28
|
+
0 - success
|
|
29
|
+
1 - setup error (missing files)
|
|
30
30
|
"""
|
|
31
31
|
|
|
32
32
|
import argparse
|
|
@@ -134,7 +134,7 @@ def main() -> int:
|
|
|
134
134
|
# Current value isn't a key in the map. Might already be a login
|
|
135
135
|
# (e.g. the build-author-registry already resolved it directly
|
|
136
136
|
# for login-like names). Check: if current is a value in the map,
|
|
137
|
-
# we leave it
|
|
137
|
+
# we leave it - it's already correct.
|
|
138
138
|
if current in display_to_login.values():
|
|
139
139
|
counts["already_login"] += 1
|
|
140
140
|
else:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
-
"""backfill-status.py
|
|
2
|
+
"""backfill-status.py - populate status blocks in existing registry files.
|
|
3
3
|
|
|
4
4
|
Walks every JSON in the registry directory and, for each component,
|
|
5
5
|
infers the initial `status.ios.*` block from filesystem signals:
|
|
@@ -12,7 +12,7 @@ infers the initial `status.ios.*` block from filesystem signals:
|
|
|
12
12
|
- status.ios.codeConnect:
|
|
13
13
|
Mirrors the legacy top-level `codeConnect.ios` field. Only set if
|
|
14
14
|
the legacy value was True. Recorded against the current
|
|
15
|
-
impl.version
|
|
15
|
+
impl.version - so if impl was just set to 1 in this same run,
|
|
16
16
|
codeConnect lands green (against=1), not yellow.
|
|
17
17
|
|
|
18
18
|
- status.ios.tested and status.ios.wiki:
|
|
@@ -29,7 +29,7 @@ set_flag's built-in mirror keeps the two representations in sync going
|
|
|
29
29
|
forward, and the backfill never explicitly downgrades anything.
|
|
30
30
|
|
|
31
31
|
Usage:
|
|
32
|
-
# See what would change
|
|
32
|
+
# See what would change - no writes
|
|
33
33
|
python3 backfill-status.py \\
|
|
34
34
|
--registry-dir /path/to/Shared/Figma/Components \\
|
|
35
35
|
--sources-dir /path/to/uicomponents/Sources \\
|
|
@@ -45,8 +45,8 @@ Usage:
|
|
|
45
45
|
--registry-dir ... --sources-dir ...
|
|
46
46
|
|
|
47
47
|
Exit codes:
|
|
48
|
-
0
|
|
49
|
-
1
|
|
48
|
+
0 - Success (full walk completed)
|
|
49
|
+
1 - Error (bad paths, read/write failure)
|
|
50
50
|
"""
|
|
51
51
|
|
|
52
52
|
import argparse
|
|
@@ -190,10 +190,10 @@ def build_wiki_index(wiki_dir: Path) -> Dict[str, Path]:
|
|
|
190
190
|
stem = md.stem
|
|
191
191
|
parent_name = md.parent.name
|
|
192
192
|
if parent_name == stem:
|
|
193
|
-
# {Component}/{Component}.md
|
|
193
|
+
# {Component}/{Component}.md - canonical
|
|
194
194
|
index.setdefault(stem, md)
|
|
195
195
|
elif stem not in index:
|
|
196
|
-
# {Component}.md at any depth
|
|
196
|
+
# {Component}.md at any depth - fallback
|
|
197
197
|
index[stem] = md
|
|
198
198
|
return index
|
|
199
199
|
|
|
@@ -271,10 +271,10 @@ def decide_backfill(
|
|
|
271
271
|
) -> dict:
|
|
272
272
|
"""Decide what the backfill should do for one registry entry.
|
|
273
273
|
|
|
274
|
-
Pure function
|
|
274
|
+
Pure function - no I/O. Returns a dict describing the intended
|
|
275
275
|
action per flag, used by both dry-run and real-write paths.
|
|
276
276
|
|
|
277
|
-
test_index and wiki_index are optional for backward compat
|
|
277
|
+
test_index and wiki_index are optional for backward compat - when
|
|
278
278
|
None, tested/wiki detection is skipped and only implemented/cc are
|
|
279
279
|
considered (original Step 5 behavior).
|
|
280
280
|
|
|
@@ -285,18 +285,18 @@ def decide_backfill(
|
|
|
285
285
|
"has_status_block": bool,
|
|
286
286
|
"impl_action": ...,
|
|
287
287
|
"codeconnect_action": ...,
|
|
288
|
-
"tested_action": ..., # NEW
|
|
289
|
-
"wiki_action": ..., # NEW
|
|
288
|
+
"tested_action": ..., # NEW - "set" | "skip_*"
|
|
289
|
+
"wiki_action": ..., # NEW - "set" | "skip_*"
|
|
290
290
|
"swift_path": Optional[str],
|
|
291
|
-
"test_paths": List[str], # NEW
|
|
292
|
-
"wiki_path": Optional[str], # NEW
|
|
291
|
+
"test_paths": List[str], # NEW - 0+ paths that match the component
|
|
292
|
+
"wiki_path": Optional[str], # NEW - the detected wiki .md file
|
|
293
293
|
}
|
|
294
294
|
"""
|
|
295
295
|
node_id = entry.get("nodeId")
|
|
296
296
|
component_name = _component_name_ios(entry.get("componentName"))
|
|
297
297
|
|
|
298
298
|
# Legacy shape: `status` was a bare string like "implemented". Leave
|
|
299
|
-
# these for manual migration
|
|
299
|
+
# these for manual migration - do not overwrite with the new block.
|
|
300
300
|
raw_status = entry.get("status")
|
|
301
301
|
if isinstance(raw_status, str):
|
|
302
302
|
return {
|
|
@@ -362,7 +362,7 @@ def decide_backfill(
|
|
|
362
362
|
if has_status:
|
|
363
363
|
result["impl_action"] = "skip_existing_status"
|
|
364
364
|
result["codeconnect_action"] = "skip_existing_status"
|
|
365
|
-
# Populate swift_path even when skipping impl
|
|
365
|
+
# Populate swift_path even when skipping impl - author detection
|
|
366
366
|
# needs it, and we want to be able to fill in implementedBy for
|
|
367
367
|
# components that were backfilled before author detection existed.
|
|
368
368
|
swift_path = swift_index.get(component_name) if component_name else None
|
|
@@ -381,7 +381,7 @@ def decide_backfill(
|
|
|
381
381
|
result["wiki_action"] = "skip_existing_status" if wiki_set else "skip_no_wiki"
|
|
382
382
|
return result
|
|
383
383
|
|
|
384
|
-
# Fresh entry
|
|
384
|
+
# Fresh entry - check swift file for implementation
|
|
385
385
|
swift_path = swift_index.get(component_name)
|
|
386
386
|
if not swift_path:
|
|
387
387
|
result["impl_action"] = "skip_no_swift"
|
|
@@ -410,7 +410,7 @@ def apply_decision(
|
|
|
410
410
|
) -> None:
|
|
411
411
|
"""Execute the decision (skip if action is 'skip_*').
|
|
412
412
|
|
|
413
|
-
Writes are atomic per flag
|
|
413
|
+
Writes are atomic per flag - a crash between writes leaves a
|
|
414
414
|
partially-backfilled entry, recoverable on re-run. Order:
|
|
415
415
|
1. set_implemented (establishes version=1)
|
|
416
416
|
2. set_implemented_by (author)
|
|
@@ -431,7 +431,7 @@ def apply_decision(
|
|
|
431
431
|
source_file=None,
|
|
432
432
|
)
|
|
433
433
|
|
|
434
|
-
# Author detection
|
|
434
|
+
# Author detection - only meaningful when we actually set impl OR
|
|
435
435
|
# impl was already set (so the registry entry exists and we just
|
|
436
436
|
# want to populate the missing field).
|
|
437
437
|
if uicomponents_repo and decision.get("swift_path"):
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
-
"""build-author-registry.py
|
|
2
|
+
"""build-author-registry.py - walk registry components, git-blame each
|
|
3
3
|
swift file, build a reviewable author registry before ANY issue touch.
|
|
4
4
|
|
|
5
5
|
For every registry entry that has a swift file under Sources/, runs
|
|
@@ -47,8 +47,8 @@ Usage:
|
|
|
47
47
|
[--limit N]
|
|
48
48
|
|
|
49
49
|
Exit codes:
|
|
50
|
-
0
|
|
51
|
-
1
|
|
50
|
+
0 - success (even with some per-component errors)
|
|
51
|
+
1 - setup error (bad paths)
|
|
52
52
|
"""
|
|
53
53
|
|
|
54
54
|
import argparse
|
|
@@ -97,7 +97,7 @@ def default_temp_dir() -> Path:
|
|
|
97
97
|
|
|
98
98
|
|
|
99
99
|
# --------------------------------------------------------------------
|
|
100
|
-
# Heuristic
|
|
100
|
+
# Heuristic - does a git author name look like a GitHub login?
|
|
101
101
|
# --------------------------------------------------------------------
|
|
102
102
|
|
|
103
103
|
_GH_LOGIN_RE = re.compile(r"^[A-Za-z0-9][A-Za-z0-9\-_]{0,38}$")
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
-
"""bulk-sync-issues.py
|
|
2
|
+
"""bulk-sync-issues.py - sync every backfilled component's GitHub issue.
|
|
3
3
|
|
|
4
4
|
Walks the component registry, picks every entry where
|
|
5
5
|
`status.ios.implemented.value == true`, and invokes
|
|
@@ -10,7 +10,7 @@ doesn't spam 268 notifications to reviewers. Pass `--with-comment`
|
|
|
10
10
|
to override.
|
|
11
11
|
|
|
12
12
|
Usage:
|
|
13
|
-
# Dry-run
|
|
13
|
+
# Dry-run - no gh calls, just print what would happen
|
|
14
14
|
python3 bulk-sync-issues.py --dry-run
|
|
15
15
|
|
|
16
16
|
# Real run on first 5 (smoke test)
|
|
@@ -23,8 +23,8 @@ Usage:
|
|
|
23
23
|
python3 bulk-sync-issues.py --with-comment
|
|
24
24
|
|
|
25
25
|
Exit codes:
|
|
26
|
-
0
|
|
27
|
-
1
|
|
26
|
+
0 - success (maybe with some per-node failures logged)
|
|
27
|
+
1 - setup error (bad path, missing dependency)
|
|
28
28
|
"""
|
|
29
29
|
|
|
30
30
|
import argparse
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
"""
|
|
3
|
-
Code Connect Data Gather
|
|
3
|
+
Code Connect Data Gather - Fetches Figma component properties for standalone Code Connect publish.
|
|
4
4
|
|
|
5
5
|
Calls Figma REST API to get component property definitions and writes
|
|
6
6
|
pass1/component_properties.json in the same format Phase 1 produces.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
# code-connect-publish.sh
|
|
2
|
+
# code-connect-publish.sh - Resilient Code Connect publish wrapper
|
|
3
3
|
#
|
|
4
4
|
# Handles the case where stale .figma.swift files from OTHER components
|
|
5
5
|
# cause validation failures that block the entire batch publish.
|
|
@@ -111,10 +111,10 @@ if [[ $RC -eq 0 ]]; then
|
|
|
111
111
|
exit 0
|
|
112
112
|
fi
|
|
113
113
|
|
|
114
|
-
# Check for 403 (token issue)
|
|
114
|
+
# Check for 403 (token issue) - no retry can fix this
|
|
115
115
|
if echo "$OUTPUT" | grep -q "403"; then
|
|
116
116
|
echo ""
|
|
117
|
-
echo "[code-connect-publish] FATAL: 403 error detected. Token issue
|
|
117
|
+
echo "[code-connect-publish] FATAL: 403 error detected. Token issue - cannot retry." >&2
|
|
118
118
|
exit 1
|
|
119
119
|
fi
|
|
120
120
|
|
package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py
CHANGED
|
@@ -84,7 +84,7 @@ def build_component_index(figma_dir):
|
|
|
84
84
|
"variantCount": comp.get("variantCount", 0),
|
|
85
85
|
"codeConnect": comp.get("codeConnect", {}),
|
|
86
86
|
"subComponents": [],
|
|
87
|
-
# Registry fields
|
|
87
|
+
# Registry fields - filled below
|
|
88
88
|
"componentName": {},
|
|
89
89
|
"skip": False,
|
|
90
90
|
"confluence": {},
|
|
@@ -144,7 +144,7 @@ def build_component_index(figma_dir):
|
|
|
144
144
|
name_to_nid = {}
|
|
145
145
|
# Secondary fuzzy lookup keyed by figmaName with separators (`/ _ -`) and
|
|
146
146
|
# whitespace stripped, lowercased. The Figma sub-component graph emits
|
|
147
|
-
# plain instance-names like "CardsFareAvailabilityFareTypes"
|
|
147
|
+
# plain instance-names like "CardsFareAvailabilityFareTypes" - those won't
|
|
148
148
|
# match a catalog `figmaName` of "Cards/Fare/Availability/FareTypes" via
|
|
149
149
|
# the exact-match map below, but they collapse to the same key here.
|
|
150
150
|
# Used as a fallback when an exact lookup misses.
|
|
@@ -190,7 +190,7 @@ def build_component_index(figma_dir):
|
|
|
190
190
|
sub_names = gdata.get("subComponents", [])
|
|
191
191
|
if not sub_names:
|
|
192
192
|
continue
|
|
193
|
-
# Resolve sub-component names to nodeIds
|
|
193
|
+
# Resolve sub-component names to nodeIds - exact match first,
|
|
194
194
|
# then fall back to the stripped/lowercased key. The fuzzy pass
|
|
195
195
|
# turns the previous {nodeId: null} entries (which silently
|
|
196
196
|
# bypass the readiness algorithm downstream) into real refs.
|
|
@@ -256,7 +256,7 @@ def compute_readiness(comp, components, platform="ios"):
|
|
|
256
256
|
for sub in subs:
|
|
257
257
|
sub_nid = sub.get("nodeId")
|
|
258
258
|
if not sub_nid:
|
|
259
|
-
continue # Unresolved name (not in catalog or registry)
|
|
259
|
+
continue # Unresolved name (not in catalog or registry) - doesn't block
|
|
260
260
|
sub_comp = components.get(sub_nid)
|
|
261
261
|
if not sub_comp:
|
|
262
262
|
continue
|
|
@@ -321,10 +321,10 @@ def generate_xhtml(index):
|
|
|
321
321
|
|
|
322
322
|
p = []
|
|
323
323
|
|
|
324
|
-
p.append(f'<p><em>Component implementation status
|
|
324
|
+
p.append(f'<p><em>Component implementation status - generated from unified component index '
|
|
325
325
|
f'({summary["resolvedNames"]} name aliases, {summary["registryFiles"]} registry files).</em></p>')
|
|
326
326
|
p.append(f'<p><strong>Legend:</strong> '
|
|
327
|
-
f'✅ Implemented (Code Connected)
|
|
327
|
+
f'✅ Implemented (Code Connected) - shows component name | '
|
|
328
328
|
f'🟢 Ready for Development | '
|
|
329
329
|
f'🔴 Blocked (has unconnected sub-components) | '
|
|
330
330
|
f'⏭️ Skipped (will not be implemented)<br/>'
|
|
@@ -421,7 +421,7 @@ def generate_xhtml(index):
|
|
|
421
421
|
file_label_esc = xml_escape(file_label)
|
|
422
422
|
file_stats = f'iOS {file_ios_impl}/{file_ios_eff} / Android {file_android_impl}/{file_android_eff}'
|
|
423
423
|
if file_ios_eff == 0 and file_android_eff == 0:
|
|
424
|
-
# All skipped
|
|
424
|
+
# All skipped - no TOC entry, just a styled paragraph
|
|
425
425
|
p.append(f'<p><strong style="font-size:20px"><s>{file_label_esc} ({file_stats})</s></strong></p>')
|
|
426
426
|
else:
|
|
427
427
|
p.append(f'<h2>{file_label_esc} ({file_stats})</h2>')
|
|
@@ -439,7 +439,7 @@ def generate_xhtml(index):
|
|
|
439
439
|
page_name_esc = xml_escape(page_name)
|
|
440
440
|
pg_stats = f'iOS {pg_ios_impl}/{pg_ios_eff} / Android {pg_android_impl}/{pg_android_eff}'
|
|
441
441
|
if pg_ios_eff == 0 and pg_android_eff == 0:
|
|
442
|
-
# All skipped
|
|
442
|
+
# All skipped - no TOC entry, just a styled paragraph
|
|
443
443
|
p.append(f'<p><strong style="font-size:16px"><s>{page_name_esc} ({pg_stats})</s></strong></p>')
|
|
444
444
|
else:
|
|
445
445
|
p.append(f'<h3>{page_name_esc} ({pg_stats})</h3>')
|
|
@@ -447,12 +447,12 @@ def generate_xhtml(index):
|
|
|
447
447
|
sorted_comps = sorted(page_comps, key=lambda c: (
|
|
448
448
|
READINESS_ORDER.get(compute_readiness(c, components, "ios"), 9), c["name"]))
|
|
449
449
|
|
|
450
|
-
# Anchors OUTSIDE expand
|
|
450
|
+
# Anchors OUTSIDE expand - Confluence can't resolve anchors inside collapsed expand
|
|
451
451
|
for c in sorted_comps:
|
|
452
452
|
p.append(make_anchor(node_anchor(c["nodeId"])))
|
|
453
453
|
|
|
454
454
|
p.append('<ac:structured-macro ac:name="expand">')
|
|
455
|
-
p.append(f'<ac:parameter ac:name="title">{page_name_esc}
|
|
455
|
+
p.append(f'<ac:parameter ac:name="title">{page_name_esc} - '
|
|
456
456
|
f'iOS {pg_ios_impl}/{pg_ios_eff} / Android {pg_android_impl}/{pg_android_eff} '
|
|
457
457
|
f'({len(page_comps)} components)</ac:parameter>')
|
|
458
458
|
p.append('<ac:rich-text-body>')
|
|
@@ -493,9 +493,9 @@ def generate_xhtml(index):
|
|
|
493
493
|
|
|
494
494
|
# Variant count
|
|
495
495
|
vc = c.get("variantCount", 0)
|
|
496
|
-
variant_cell = str(vc) if vc > 0 else "
|
|
496
|
+
variant_cell = str(vc) if vc > 0 else " - "
|
|
497
497
|
|
|
498
|
-
# Sub-components
|
|
498
|
+
# Sub-components - colored links (blue/green/red/gray), NO emoji
|
|
499
499
|
subs = c.get("subComponents", [])
|
|
500
500
|
if subs:
|
|
501
501
|
sub_links = []
|
|
@@ -515,7 +515,7 @@ def generate_xhtml(index):
|
|
|
515
515
|
sub_links.append(f'<span style="color:#999">{xml_escape(sub_name)}</span>')
|
|
516
516
|
subs_cell = ", ".join(sub_links)
|
|
517
517
|
else:
|
|
518
|
-
subs_cell = "
|
|
518
|
+
subs_cell = " - "
|
|
519
519
|
|
|
520
520
|
row_style = ' style="background:#f5f5f5; color:#9E9E9E"' if is_skipped else ''
|
|
521
521
|
p.append(
|
|
@@ -536,9 +536,9 @@ def generate_xhtml(index):
|
|
|
536
536
|
|
|
537
537
|
p.append('<hr/>')
|
|
538
538
|
|
|
539
|
-
# --- Connected Components
|
|
539
|
+
# --- Connected Components - iOS ---
|
|
540
540
|
ios_connected = [c for c in catalog_comps if c.get("codeConnect", {}).get("ios")]
|
|
541
|
-
p.append('<h2>Connected Components
|
|
541
|
+
p.append('<h2>Connected Components - iOS</h2>')
|
|
542
542
|
if ios_connected:
|
|
543
543
|
p.append('<table><tbody>')
|
|
544
544
|
p.append('<tr><th>Component</th><th>Figma Name</th></tr>')
|
|
@@ -555,9 +555,9 @@ def generate_xhtml(index):
|
|
|
555
555
|
else:
|
|
556
556
|
p.append('<p><em>No iOS-connected components yet.</em></p>')
|
|
557
557
|
|
|
558
|
-
# --- Connected Components
|
|
558
|
+
# --- Connected Components - Android ---
|
|
559
559
|
android_connected = [c for c in catalog_comps if c.get("codeConnect", {}).get("android")]
|
|
560
|
-
p.append('<h2>Connected Components
|
|
560
|
+
p.append('<h2>Connected Components - Android</h2>')
|
|
561
561
|
if android_connected:
|
|
562
562
|
p.append('<table><tbody>')
|
|
563
563
|
p.append('<tr><th>Component</th><th>Figma Name</th></tr>')
|
|
@@ -717,7 +717,7 @@ def main():
|
|
|
717
717
|
|
|
718
718
|
# Write index to disk for inspection
|
|
719
719
|
index_path = os.path.join(figma_dir, "Generated", "component-index.json")
|
|
720
|
-
# Write a slim version (no nameLookup
|
|
720
|
+
# Write a slim version (no nameLookup - it's huge)
|
|
721
721
|
slim = {
|
|
722
722
|
"components": index["components"],
|
|
723
723
|
"files": index["files"],
|