@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
|
@@ -0,0 +1,1062 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "v3 canonical template for /multi-agent:analysis. 23 main sections + 3 footer sections. Platform-agnostic concept layer (Pass A) projected per-platform with repo-driven naming (Pass B). Includes Lite mode for small features."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Analysis Template v3 - 23 Main Sections + 3 Footer
|
|
6
|
+
|
|
7
|
+
`/multi-agent:analysis` renders every output against this template. Document language follows `prefs.global.outputLanguage` (`tr` or `en`). Tables use pipe-syntax markdown; the Confluence channel (`md2confluence-v3.py`) converts them to storage XML at emit time, embeds attachment images, and runs the humanizer punctuation gate before write.
|
|
8
|
+
|
|
9
|
+
> **Heading style**: plain Arabic numeral numbering: `## 1. Geliştirme Özeti`, `## 2. Hedefler ve Karşı Hedefler`. No special section characters. The section sign codepoint (U+00A7) is banned by `feedback_no-section-sign`.
|
|
10
|
+
|
|
11
|
+
> **Language**: This file is read as a system prompt. Prose stays English. Example tables and headings carry bilingual TR / EN scaffolds; the runtime renderer picks the right column per `outputLanguage`.
|
|
12
|
+
|
|
13
|
+
> **Locked decisions that govern this template**: 1 (one feature per run), 2 (omission rule), 3 (citation discipline), 4 (forward-looking spec), 7 (humanizer punctuation policy), 8 (standards binding), 9 (per-platform output split), 11 (repo-evidence reuse-first), 12 (Gherkin), 13 (Goals + Non-Goals), 14 (SVG default), 15 (Files-to-Add tag), 16 (API response variants), 17 (screenshots embedded), 18 (all Figma variants), 19 (8-locale full coverage), 20 (References at bottom), 21 (platform-agnostic + Pass B), 22 (convention extraction), 23 (fallback risk), 24 (Pass B footnote mandatory), 28 (SwiftUI Preview block iOS), 29 (variant usage explicit), 30 (analysis self-contained pipeline-wide MCP forbidden outside analysis phase).
|
|
14
|
+
|
|
15
|
+
## Mode selection - Full vs Lite
|
|
16
|
+
|
|
17
|
+
The renderer picks Full or Lite mode automatically based on signals captured in Phase 1, or honours an explicit `--lite` flag from the user.
|
|
18
|
+
|
|
19
|
+
| Mode | Sections | When |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| Full | 23 main + 3 footer | Default. Used when feature has multi-screen flow, external service contracts, or complex business rules. |
|
|
22
|
+
| Lite | 7 main + 1 footer: 1, 2, 4, 9, 13, 14, 21, 23 | Used when (a) Confluence spec < 100 lines AND (b) Figma frames <= 1 AND (c) repo evidence direct-match >= 8. Manual override: user passes `--lite`. |
|
|
23
|
+
|
|
24
|
+
Lite mode sections retain the same scaffold as Full mode; only the section set is reduced.
|
|
25
|
+
|
|
26
|
+
## Section duplication mode per platform (A3 hybrid)
|
|
27
|
+
|
|
28
|
+
Locked 9 - one file per selected platform under `analysis/<feature>-<platform>.md`. Sections fall into three duplication categories:
|
|
29
|
+
|
|
30
|
+
| Category | Sections | Behaviour |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| Shared verbatim | 1, 2, 3, 4, 9, 21 | Identical content in every per-platform file. Pass A renders once, Pass B copies verbatim. |
|
|
33
|
+
| Per-platform projection | 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 | Logical content shared; expressions (class names, paths, code snippets, test framework, identifier patterns) projected per platform from Phase 1c conventions. |
|
|
34
|
+
| Footer | 22, 23 | Optional in Lite mode. In Full mode, identical across platforms. |
|
|
35
|
+
|
|
36
|
+
Backend-only run drops Sections 5 (Design), 6 (Components), 7 (Tokens), 8 (Assets), 10 (Localization keys can omit if no server-rendered text), 11 (Analytics if no backend telemetry), 12 (Deeplink/Push if no outgoing contracts), 16 (Accessibility N/A), 17 (subset: server-side input validation only).
|
|
37
|
+
|
|
38
|
+
## Front-matter header (per-platform file)
|
|
39
|
+
|
|
40
|
+
Every per-platform file starts with this YAML block:
|
|
41
|
+
|
|
42
|
+
```yaml
|
|
43
|
+
---
|
|
44
|
+
feature: <FeatureName>
|
|
45
|
+
platform: ios | android | backend | frontend
|
|
46
|
+
language: tr | en
|
|
47
|
+
mode: full | lite
|
|
48
|
+
generated: <ISO 8601 UTC timestamp>
|
|
49
|
+
jira: <JIRA_KEY>-<id>
|
|
50
|
+
branch: <branch-name>
|
|
51
|
+
base_branch: <base-branch>
|
|
52
|
+
siblings:
|
|
53
|
+
- analysis/<FeatureName>-<other-platform>.md
|
|
54
|
+
standards:
|
|
55
|
+
- <absolute path or confluence:title or github-wiki:slug>
|
|
56
|
+
evidence_digest: sha256:<digest>
|
|
57
|
+
template_version: v3
|
|
58
|
+
---
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
The dev pipeline (`/multi-agent:dev`) reads `platform` to verify file match, `evidence_digest` to detect stale specs, and `mode` to know which section set to expect.
|
|
62
|
+
|
|
63
|
+
## Omission rules
|
|
64
|
+
|
|
65
|
+
Locked 2 - no `TBD` / `Not applicable` placeholder. Sections with zero evidence are omitted entirely. Numbering remains sequential `1..N` over the rendered set; numbers re-flow when sections drop. The dispatch report logs the omission list.
|
|
66
|
+
|
|
67
|
+
| Section | Omission condition |
|
|
68
|
+
|---|---|
|
|
69
|
+
| 3 Flow Chart | Single screen AND single service AND simple business rule (no state transitions) |
|
|
70
|
+
| 5 Design Reference | No Figma URL AND no Code Connect mapping in any selected repo |
|
|
71
|
+
| 6 Component Inventory | No Figma URL AND no UI primitive evidence in repo |
|
|
72
|
+
| 7 Design Tokens | Sections 5 and 6 both omitted |
|
|
73
|
+
| 8 Asset Inventory | No new visual asset planned AND no existing asset modified |
|
|
74
|
+
| 10 Localization | No Figma text layer AND no localization key file in repo |
|
|
75
|
+
| 11 Analytics | No Firebase input AND no analytics call site in repo |
|
|
76
|
+
| 12 Deeplink/Push | No deeplink handler in repo AND no push payload binding AND spec silent |
|
|
77
|
+
| 15 Test Plan | Backend-only run with no contract testing planned (rare) |
|
|
78
|
+
| 16 Accessibility | Backend-only (no UI surface) |
|
|
79
|
+
| 17 Security | No PII / auth / health data touched (rare, document explicit decision) |
|
|
80
|
+
| 18 Rollout | Lite mode |
|
|
81
|
+
| 19 Alternatives | Lite mode AND zero significant architectural decision points |
|
|
82
|
+
| 22 Glossary | Lite mode |
|
|
83
|
+
| 23 Changelog | Lite mode (optional even in Full for small revisions) |
|
|
84
|
+
|
|
85
|
+
Sections 1, 2, 4, 9, 13, 14, 20, 21 are never omitted.
|
|
86
|
+
|
|
87
|
+
## Pass B footnote format (Locked 24)
|
|
88
|
+
|
|
89
|
+
Every Pass B-rendered cell carries a footnote pointing to its evidence source:
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
| Cell label | Cell value ^[<convention-key> <confidence>: <evidence-source>] |
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Examples:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
| State holder | `PassengerFlightViewModel` ^[C2 high: 8 örnek; en yakın StandaloneLoginViewModel.swift] |
|
|
99
|
+
| Test naming | `@Test func fetch_validInput_returnsIdle()` ^[C4 medium: 4 mevcut örnek, çoğunluk Swift Testing] |
|
|
100
|
+
| Identifier | `passengerFlight.continueButton` ^[C5 high: ui-testing-identifiers.json dot notation] |
|
|
101
|
+
| State model | sealed enum `PassengerFlightUIState` ^[C3 fallback: conventions-defaults.md:C3-iOS, repo evidence none] |
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Footnote-less cells fail the dispatch gate.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
# Section scaffolds
|
|
109
|
+
|
|
110
|
+
## 1. Geliştirme Özeti / Summary
|
|
111
|
+
|
|
112
|
+
Never omitted. 2-3 paragraphs. Reader-friendly explanation of what the feature does and why it exists.
|
|
113
|
+
|
|
114
|
+
```markdown
|
|
115
|
+
## 1. Geliştirme Özeti <!-- TR -->
|
|
116
|
+
## 1. Summary <!-- EN -->
|
|
117
|
+
|
|
118
|
+
<one-sentence definition citing the primary spec source>
|
|
119
|
+
|
|
120
|
+
<paragraph: what the user gains from the feature>
|
|
121
|
+
|
|
122
|
+
<paragraph: which platforms and which app versions ship this>
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Citation: feature definition cites the primary Confluence spec page (`[Confluence:<pageId>:<heading>]`).
|
|
126
|
+
|
|
127
|
+
## 2. Hedefler ve Karşı Hedefler / Goals and Non-Goals
|
|
128
|
+
|
|
129
|
+
Never omitted. Locked 13 - both columns mandatory. A row in only one column is not accepted.
|
|
130
|
+
|
|
131
|
+
```markdown
|
|
132
|
+
## 2. Hedefler ve Karşı Hedefler <!-- TR -->
|
|
133
|
+
## 2. Goals and Non-Goals <!-- EN -->
|
|
134
|
+
|
|
135
|
+
| Hedef / Goal | Karşı Hedef / Non-Goal |
|
|
136
|
+
|---|---|
|
|
137
|
+
| <goal 1 citing source> | <non-goal 1 citing source> |
|
|
138
|
+
| <goal 2> | <non-goal 2> |
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Each non-goal must say what it does NOT cover, not a vague "out of scope".
|
|
142
|
+
|
|
143
|
+
## 3. Akış Diyagramı / Flow Chart
|
|
144
|
+
|
|
145
|
+
Mermaid diagram(s). At least one is mandatory unless omission conditions hold (single screen + single service + simple rule).
|
|
146
|
+
|
|
147
|
+
```markdown
|
|
148
|
+
## 3. Akış Diyagramı <!-- TR -->
|
|
149
|
+
## 3. Flow Chart <!-- EN -->
|
|
150
|
+
|
|
151
|
+
### 3.1 Navigasyon Akışı / Navigation Flow
|
|
152
|
+
|
|
153
|
+
\`\`\`mermaid
|
|
154
|
+
flowchart TD
|
|
155
|
+
A[Entry] --> B{Validation}
|
|
156
|
+
B -->|valid| C[POST endpoint]
|
|
157
|
+
B -->|invalid| A
|
|
158
|
+
C --> D{Server response}
|
|
159
|
+
D -->|case A| E[Next screen]
|
|
160
|
+
D -->|case B| F[Modal]
|
|
161
|
+
\`\`\`
|
|
162
|
+
|
|
163
|
+
### 3.2 Servis Sırası / Sequence Diagram
|
|
164
|
+
|
|
165
|
+
\`\`\`mermaid
|
|
166
|
+
sequenceDiagram
|
|
167
|
+
actor U as User
|
|
168
|
+
participant A as App
|
|
169
|
+
participant B as BFF
|
|
170
|
+
participant S as Service
|
|
171
|
+
|
|
172
|
+
U->>A: action
|
|
173
|
+
A->>B: request
|
|
174
|
+
B->>S: downstream
|
|
175
|
+
S-->>B: response
|
|
176
|
+
B-->>A: aggregated
|
|
177
|
+
A->>U: rendered
|
|
178
|
+
\`\`\`
|
|
179
|
+
|
|
180
|
+
### 3.3 Durum Makinesi / State Machine (optional)
|
|
181
|
+
|
|
182
|
+
\`\`\`mermaid
|
|
183
|
+
stateDiagram-v2
|
|
184
|
+
[*] --> Loading
|
|
185
|
+
Loading --> Idle: success
|
|
186
|
+
Loading --> Error: failure
|
|
187
|
+
Idle --> Submitting: action
|
|
188
|
+
Submitting --> [*]: success
|
|
189
|
+
Submitting --> Error: validation
|
|
190
|
+
Error --> Idle: retry
|
|
191
|
+
\`\`\`
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Confluence dispatch wraps each mermaid block in `<ac:structured-macro ac:name="mermaid">`. If the macro is unavailable, `md2confluence-v3.py --mermaid-fallback` converts to a numbered list. The dispatch report carries `mermaid_macro_fallback_used: true/false`.
|
|
195
|
+
|
|
196
|
+
## 4. Kullanıcı Hikayeleri / User Stories
|
|
197
|
+
|
|
198
|
+
Never omitted. Locked 12 - Gherkin format mandatory. **Source-story completeness gate**: Gherkin scenarios cover the key happy/error/edge paths, but a `### 4.0 Kaynak Hikaye Izlenebilirligi / Source Story Traceability` table MUST list EVERY source-spec user-story ID (US-1..US-N) verbatim, each mapped to where it is covered (a Gherkin scenario or another section). Condensing into a few Gherkin scenarios is allowed ONLY if this table preserves the full source ID set; no source user story may be silently dropped. A missing source ID is a blocker and emits a Section 20 Risk row.
|
|
199
|
+
|
|
200
|
+
```markdown
|
|
201
|
+
## 4. Kullanıcı Hikayeleri <!-- TR -->
|
|
202
|
+
## 4. User Stories <!-- EN -->
|
|
203
|
+
|
|
204
|
+
### 4.1 Mutlu yol / Happy path
|
|
205
|
+
|
|
206
|
+
\`\`\`gherkin
|
|
207
|
+
Given <precondition>
|
|
208
|
+
And <additional context>
|
|
209
|
+
When <action>
|
|
210
|
+
Then <expected outcome>
|
|
211
|
+
And <secondary outcome>
|
|
212
|
+
\`\`\`
|
|
213
|
+
|
|
214
|
+
### 4.2 <Hata adı> / <Error name>
|
|
215
|
+
|
|
216
|
+
\`\`\`gherkin
|
|
217
|
+
Given <precondition>
|
|
218
|
+
But <conflicting state>
|
|
219
|
+
When <action>
|
|
220
|
+
Then <prevention code shown, e.g. PP-211>
|
|
221
|
+
And <user guidance>
|
|
222
|
+
\`\`\`
|
|
223
|
+
|
|
224
|
+
### 4.3 <Edge case>
|
|
225
|
+
|
|
226
|
+
\`\`\`gherkin
|
|
227
|
+
Given <precondition>
|
|
228
|
+
When <action>
|
|
229
|
+
Then <expected outcome>
|
|
230
|
+
\`\`\`
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Each scenario cites the matching prevention code (Section 9) when applicable. Plain-prose user stories without Given/When/Then are rejected by the renderer.
|
|
234
|
+
|
|
235
|
+
## 5. Tasarım Referansı / Design Reference
|
|
236
|
+
|
|
237
|
+
Per-platform projection. Omitted if no Figma URL AND no Code Connect mapping. Locked 17 + 18.
|
|
238
|
+
|
|
239
|
+
```markdown
|
|
240
|
+
## 5. Tasarım Referansı <!-- TR -->
|
|
241
|
+
## 5. Design Reference <!-- EN -->
|
|
242
|
+
|
|
243
|
+
### 5.1 Frame galerisi / Frame gallery
|
|
244
|
+
|
|
245
|
+
Drill into every Figma variant (Locked 18). When a section URL is given, list all of its child frames.
|
|
246
|
+
|
|
247
|
+
| Frame ID | Varyant / Variant | Boyut / Dimensions | Görüntü / Screenshot | Ayırt edici / Distinctive | Code Connect |
|
|
248
|
+
|---|---|---|---|---|---|
|
|
249
|
+
| <nodeId 1> | <name> (canonical) | <w>x<h> |  | <list> | <component name> ^[Figma <nodeId>] |
|
|
250
|
+
| <nodeId 2> | <name> | <w>x<h> |  | <list> | <component name> |
|
|
251
|
+
| <nodeId 3> | Error state | <w>x<h> |  | <list> | <component name> |
|
|
252
|
+
|
|
253
|
+
The `Code Connect` column is filled from `evidence.codeConnect[]` (Phase 1b.1): the component bound to that frame's `nodeId` (matched by `fileKey` + `nodeId`), or blank when the frame has no existing binding.
|
|
254
|
+
|
|
255
|
+
### 5.2 Padding ve hizalama / Padding and alignment
|
|
256
|
+
|
|
257
|
+
Token references for each variant (no raw numbers).
|
|
258
|
+
|
|
259
|
+
| Varyant | Outer padding | Card gap | Section top | CTA stack |
|
|
260
|
+
|---|---|---|---|---|
|
|
261
|
+
| Canonical | Spacing.spacing16 | Spacing.spacing12 | Spacing.spacing24 | Spacing.spacing16 / 20 |
|
|
262
|
+
| Error | same | same | Spacing.spacing48 | same |
|
|
263
|
+
|
|
264
|
+
### 5.3 Tier durumu / Tier status
|
|
265
|
+
|
|
266
|
+
Tier in use: <1 (MCP) | 2 (REST) | 3 (user screenshot)>
|
|
267
|
+
Screenshots attached: <count>
|
|
268
|
+
Auth retries used: <count>
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Frame gallery images are uploaded to Confluence as multipart attachments and referenced via `<ac:image><ri:attachment ri:filename="..." /></ac:image>` (Locked 17). Section URL drilling enumerates all child frames automatically via `mcp__claude_ai_Figma__get_metadata` or `figma-screenshot.sh --section`.
|
|
272
|
+
|
|
273
|
+
## 6. Bileşen Envanteri / Component Inventory
|
|
274
|
+
|
|
275
|
+
Per-platform projection.
|
|
276
|
+
|
|
277
|
+
```markdown
|
|
278
|
+
## 6. Bileşen Envanteri <!-- TR -->
|
|
279
|
+
## 6. Component Inventory <!-- EN -->
|
|
280
|
+
|
|
281
|
+
| Bileşen / Component | Mevcut / Existing | Konum / Location | Kullanım / Usage | Notlar / Notes |
|
|
282
|
+
|---|---|---|---|---|
|
|
283
|
+
| <Name> | yes | <path> | <where used> | reuse ^[direct-match] |
|
|
284
|
+
| <Name> | yes | <path> | <where used> | modify: <variant property to add> |
|
|
285
|
+
| <Name> | no | new | <where used> | added to Section 14 ^[Figma <nodeId>] |
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Locked 11 - existence is resolved against `evidence.codeConnect[]` (the Code Connect index from Phase 1b.1) first: a design `nodeId` (or its `fileKey`) that matches an index entry emits a `reuse` row (`Mevcut/Existing = yes`, pointing at the bound component + path), because figma-to-swiftui already built and bound it. A `nodeId` with no Code Connect match falls back to the Phase 1b `uiComponents` heuristic; only when neither finds a candidate does the row become a new component (`Existing = no`, added to Section 14).
|
|
289
|
+
|
|
290
|
+
## 7. Tasarım Token'ları / Design Tokens
|
|
291
|
+
|
|
292
|
+
Per-platform projection. No magic numbers, no raw hex, no raw `.font()`.
|
|
293
|
+
|
|
294
|
+
```markdown
|
|
295
|
+
## 7. Tasarım Token'ları <!-- TR -->
|
|
296
|
+
## 7. Design Tokens <!-- EN -->
|
|
297
|
+
|
|
298
|
+
### 7.1 Spacing
|
|
299
|
+
|
|
300
|
+
| Token | Değer / Value | Kullanım / Usage |
|
|
301
|
+
|---|---|---|
|
|
302
|
+
| Spacing.spacing12 | 12 pt | <where> |
|
|
303
|
+
| Spacing.spacing16 | 16 pt | <where> |
|
|
304
|
+
|
|
305
|
+
### 7.2 Renkler / Colors
|
|
306
|
+
|
|
307
|
+
| Token | Hex (reference) | Kullanım / Usage |
|
|
308
|
+
|---|---|---|
|
|
309
|
+
| Color.Primary.primary | #E31837 | <where> |
|
|
310
|
+
| Color.Status.error | #D32F2F | <where> |
|
|
311
|
+
|
|
312
|
+
### 7.3 Tipografi / Typography
|
|
313
|
+
|
|
314
|
+
| Token | Kullanım / Usage |
|
|
315
|
+
|---|---|
|
|
316
|
+
| .h6 | <where> |
|
|
317
|
+
| .body1 | <where> |
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
Per-platform projection translates token names: iOS uses `.Spacing.spacingN` enum; Android uses `MaterialTheme.spacing.medium` or design system equivalent; Frontend uses CSS variables `--spacing-md` or Tailwind classes; Backend section omitted.
|
|
321
|
+
|
|
322
|
+
## 8. Asset Envanteri / Asset Inventory
|
|
323
|
+
|
|
324
|
+
```markdown
|
|
325
|
+
## 8. Asset Envanteri <!-- TR -->
|
|
326
|
+
## 8. Asset Inventory <!-- EN -->
|
|
327
|
+
|
|
328
|
+
| Asset adı / Name | Format | Mevcut / Existing | Kaynak / Source | Notlar / Notes |
|
|
329
|
+
|---|---|---|---|---|
|
|
330
|
+
| <name> | SVG | yes | xcassets | reuse |
|
|
331
|
+
| <name> | SVG | no | Figma frame <nodeId> | new ^[Figma <nodeId>] |
|
|
332
|
+
| <name> | Lottie | no | Figma + motion spec | new, istisna gerekçesi / exception rationale: <reason> |
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
Locked 14 - SVG default for new assets. Lottie or optimized PNG accepted with explicit rationale in the Notes column.
|
|
336
|
+
|
|
337
|
+
## 9. API Kontratları / API Contracts
|
|
338
|
+
|
|
339
|
+
Never omitted (if any service is consumed). Locked 16 - response variants exhaustive. **Service-completeness gate**: do NOT rely solely on the supplied Swagger/Confluence inputs - reconcile against the canonical Api Contract page(s) for this screen. Every endpoint listed on the screen's Api Contract page MUST appear in 9.1 (or be explicitly tagged out-of-scope with a reason). An uncovered contract endpoint is a blocker and emits a Section 20 Risk row.
|
|
340
|
+
|
|
341
|
+
```markdown
|
|
342
|
+
## 9. API Kontratları <!-- TR -->
|
|
343
|
+
## 9. API Contracts <!-- EN -->
|
|
344
|
+
|
|
345
|
+
**Swagger / OpenAPI**: <url-or-omit>
|
|
346
|
+
**Confluence kontrat sayfası / Confluence contract page**: <url-or-omit>
|
|
347
|
+
|
|
348
|
+
### 9.1 Endpoint
|
|
349
|
+
|
|
350
|
+
\`\`\`
|
|
351
|
+
POST /v1/<endpoint>
|
|
352
|
+
Content-Type: application/json
|
|
353
|
+
Authorization: Bearer <token>
|
|
354
|
+
\`\`\`
|
|
355
|
+
|
|
356
|
+
### 9.2 Request body
|
|
357
|
+
|
|
358
|
+
\`\`\`json
|
|
359
|
+
{
|
|
360
|
+
"field1": "value",
|
|
361
|
+
"field2": 0
|
|
362
|
+
}
|
|
363
|
+
\`\`\`
|
|
364
|
+
|
|
365
|
+
| Alan / Field | Tip / Type | Zorunlu / Required | Validation |
|
|
366
|
+
|---|---|---|---|
|
|
367
|
+
| field1 | string | yes | <rule> |
|
|
368
|
+
| field2 | integer | no | <rule> |
|
|
369
|
+
|
|
370
|
+
### 9.3 Response varyantları / Response variants
|
|
371
|
+
|
|
372
|
+
List every HTTP status code one by one.
|
|
373
|
+
|
|
374
|
+
| HTTP | Senaryo / Scenario | Body | UI sonucu / UI outcome |
|
|
375
|
+
|---|---|---|---|
|
|
376
|
+
| 200 | success | <body> | <UI> |
|
|
377
|
+
| 200 | redirect type A | <body> | <UI> |
|
|
378
|
+
| 400 | invalid input | `{"code":"FP-011"}` | <UI> |
|
|
379
|
+
| 422 | business rule violated | `{"code":"FP-031"}` | <UI> |
|
|
380
|
+
| 500 | server error | `{"code":"GEN-500"}` | <UI> |
|
|
381
|
+
|
|
382
|
+
### 9.4 Prevention catalog (when applicable)
|
|
383
|
+
|
|
384
|
+
| Kod / Code | Anlam / Meaning | UI konumu / UI location |
|
|
385
|
+
|---|---|---|
|
|
386
|
+
| FP-011 | Invalid format | <screen> |
|
|
387
|
+
| PP-211 | Empty result set | <screen> |
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
## 10. Lokalizasyon Anahtarları / Localization Keys
|
|
391
|
+
|
|
392
|
+
Per-platform projection. Locked 19 - 8-locale full coverage mandatory for new keys.
|
|
393
|
+
|
|
394
|
+
```markdown
|
|
395
|
+
## 10. Lokalizasyon Anahtarları <!-- TR -->
|
|
396
|
+
## 10. Localization Keys <!-- EN -->
|
|
397
|
+
|
|
398
|
+
Desteklenen diller: TR, EN, AR, DE, ES, FR, RU, ZH
|
|
399
|
+
|
|
400
|
+
| Key | TR | EN | AR | DE | ES | FR | RU | ZH | Source | Status |
|
|
401
|
+
|---|---|---|---|---|---|---|---|---|---|---|
|
|
402
|
+
| <key 1> | <tr> | <en> | <ar> | <de> | <es> | <fr> | <ru> | <zh> | Figma <nodeId> | new |
|
|
403
|
+
| <key 2> | <tr> | <en> | <ar> | <de> | <es> | <fr> | <ru> | <zh> | repo:Localizable.xcstrings | reuse |
|
|
404
|
+
| <key 3> | <tr> | <en> | [bekleniyor: çeviri ekibi] | [bekleniyor: çeviri ekibi] | ... | ... | ... | ... | Figma | partial |
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
Status values:
|
|
408
|
+
|
|
409
|
+
| Status | Meaning |
|
|
410
|
+
|---|---|
|
|
411
|
+
| reuse | Existing namespace, no new translation needed |
|
|
412
|
+
| new | New key, all 8 locales must be filled |
|
|
413
|
+
| partial | TR + EN filled, remaining 6 locales pending translation team. Dispatch report flags `i18n_pending: <count>` as blocker. |
|
|
414
|
+
|
|
415
|
+
Per-platform projection:
|
|
416
|
+
|
|
417
|
+
| Platform | File format | Key convention | Example |
|
|
418
|
+
|---|---|---|---|
|
|
419
|
+
| iOS | `Localizable.xcstrings` | hierarchical dot PascalCase | `Feature.Element` ^[C6 high] |
|
|
420
|
+
| Android | `strings.xml` | flat snake_case | `feature_element` ^[C6 high] |
|
|
421
|
+
| Backend | error code table | per server convention | uppercase enum |
|
|
422
|
+
| Frontend | `i18n/*.json` | hierarchical dot camelCase | `feature.element` ^[C6 high] |
|
|
423
|
+
|
|
424
|
+
## 11. Analytics
|
|
425
|
+
|
|
426
|
+
```markdown
|
|
427
|
+
## 11. Analytics
|
|
428
|
+
|
|
429
|
+
| Event | Parametreler / Params | Tetiklenme / Trigger | Source | Status |
|
|
430
|
+
|---|---|---|---|---|
|
|
431
|
+
| <event_name> | <param1, param2> | <when> | <Firebase schema / repo / Confluence> | new |
|
|
432
|
+
| <event_name> | <params> | <when> | <source> | reuse |
|
|
433
|
+
|
|
434
|
+
PII redaction: <list of fields hashed before telemetry>
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
Locked 11 - direct-match events emit reuse rows. Locked 17 - PII fields (PNR, surname, ffp number) hashed before emit.
|
|
438
|
+
|
|
439
|
+
## 12. Deeplink ve Push Notification / Deeplink and Push
|
|
440
|
+
|
|
441
|
+
Conditional. Included when: repo grep hits deeplink/push handler, OR Confluence spec mentions deeplink/push routing, OR feature has push payload binding.
|
|
442
|
+
|
|
443
|
+
```markdown
|
|
444
|
+
## 12. Deeplink ve Push Notification <!-- TR -->
|
|
445
|
+
## 12. Deeplink and Push Notification <!-- EN -->
|
|
446
|
+
|
|
447
|
+
### 12.1 Deeplink tablosu / Deeplink table
|
|
448
|
+
|
|
449
|
+
| URL Pattern | Parametreler / Params | Hedef route / Target route | Handler | autoSubmit |
|
|
450
|
+
|---|---|---|---|---|
|
|
451
|
+
| `<scheme>://<feature>?<params>` | <params> | <screen> | <handler:line> | yes/no |
|
|
452
|
+
| `https://<domain>/<feature>?<params>` | <params> | <screen> | <handler:line> | yes/no |
|
|
453
|
+
|
|
454
|
+
### 12.2 Push payload
|
|
455
|
+
|
|
456
|
+
| Event | Payload | Hedef route / Target route | Handler | Foreground davranışı / Foreground behaviour |
|
|
457
|
+
|---|---|---|---|---|
|
|
458
|
+
| <event> | `{...}` | <screen> | <handler> | banner + tap or full screen |
|
|
459
|
+
|
|
460
|
+
### 12.3 Universal Links / Associated domains
|
|
461
|
+
|
|
462
|
+
apple-app-site-association: `<path>`
|
|
463
|
+
Android intent-filter: `<host>` / `<scheme>`
|
|
464
|
+
|
|
465
|
+
### 12.4 Routing sequence
|
|
466
|
+
|
|
467
|
+
\`\`\`mermaid
|
|
468
|
+
sequenceDiagram
|
|
469
|
+
participant N as Notification
|
|
470
|
+
participant AD as AppDelegate / FirebaseMessagingService
|
|
471
|
+
participant DR as DeeplinkRouter
|
|
472
|
+
participant C as Coordinator / Navigator
|
|
473
|
+
participant V as View
|
|
474
|
+
|
|
475
|
+
N->>AD: payload
|
|
476
|
+
AD->>DR: resolve
|
|
477
|
+
DR->>C: start(route, params)
|
|
478
|
+
C->>V: attach
|
|
479
|
+
\`\`\`
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
## 13. Mimari Plan / Architecture Plan
|
|
483
|
+
|
|
484
|
+
Never omitted. Per-platform projection from Phase 1c conventions.
|
|
485
|
+
|
|
486
|
+
```markdown
|
|
487
|
+
## 13. Mimari Plan <!-- TR -->
|
|
488
|
+
## 13. Architecture Plan <!-- EN -->
|
|
489
|
+
|
|
490
|
+
### 13.1 Kavram tablosu / Concept table
|
|
491
|
+
|
|
492
|
+
Locked 21 - platform-agnostic concept layer rendered with repo conventions.
|
|
493
|
+
|
|
494
|
+
| Kavram / Concept | Karşılığı / Realization | Confidence | Evidence |
|
|
495
|
+
|---|---|---|---|
|
|
496
|
+
| Module folder | <repo path> | high | C1 |
|
|
497
|
+
| State holder | `<class name>` | high | C2 |
|
|
498
|
+
| View / Screen | `<class name>` | high | C2 |
|
|
499
|
+
| Navigator | `<class name>` | high | C2 |
|
|
500
|
+
| Use case | `<class names>` | high | C2 |
|
|
501
|
+
| Repository | `<class name>` | high | C2 |
|
|
502
|
+
| DTO | `<class names>` | high | C2 |
|
|
503
|
+
| UI state model | <sealed enum / data class / discriminated union> | high | C3 |
|
|
504
|
+
| DI registration | <configurator / module / Depends / hook factory> | high | C7 |
|
|
505
|
+
| Localization key | `<example>` | high | C6 |
|
|
506
|
+
| Accessibility id | `<example>` | high | C5 |
|
|
507
|
+
| Test method | `<example>` | high | C4 |
|
|
508
|
+
|
|
509
|
+
### 13.2 State holder snippet
|
|
510
|
+
|
|
511
|
+
\`\`\`<lang>
|
|
512
|
+
<rendered class skeleton per Pass B>
|
|
513
|
+
\`\`\`
|
|
514
|
+
|
|
515
|
+
### 13.3 State model
|
|
516
|
+
|
|
517
|
+
\`\`\`<lang>
|
|
518
|
+
<rendered state type per Pass B>
|
|
519
|
+
\`\`\`
|
|
520
|
+
|
|
521
|
+
### 13.4 Validation kuralları / Validation rules
|
|
522
|
+
|
|
523
|
+
| Kural / Rule | Konum / Location | Davranış / Behaviour |
|
|
524
|
+
|---|---|---|
|
|
525
|
+
| <rule> | <use case class> | <effect> |
|
|
526
|
+
|
|
527
|
+
### 13.5 Navigator / Coordinator
|
|
528
|
+
|
|
529
|
+
\`\`\`<lang>
|
|
530
|
+
<rendered navigator interface per Pass B>
|
|
531
|
+
\`\`\`
|
|
532
|
+
|
|
533
|
+
### 13.6 DI registration
|
|
534
|
+
|
|
535
|
+
\`\`\`<lang>
|
|
536
|
+
<rendered DI register line per Pass B>
|
|
537
|
+
\`\`\`
|
|
538
|
+
|
|
539
|
+
### 13.6 SwiftUI Preview block (iOS projection, SwiftUI views only)
|
|
540
|
+
|
|
541
|
+
Per Locked 29 - SwiftUI views ship with `#Preview` macro (Swift 5.9+) or `PreviewProvider` (legacy). UIKit view controllers are exempt from this section. Pass B detects the view kind via `import SwiftUI` + `: View` protocol conformance against `evidence.repoEvidence[<repo>].buckets.uiComponents`; if a feature has only UIKit `UIViewController` artefacts, this subsection is omitted with note `(N/A: UIKit-only feature)`.
|
|
542
|
+
|
|
543
|
+
One preview entry per variant matters for Xcode Canvas and snapshot test alignment. Preview macro convention is read from `conventions[<repo>].previewMacro` (Phase 1c) - the renderer picks `#Preview` for Swift 5.9+ repos and `PreviewProvider` for legacy ones.
|
|
544
|
+
|
|
545
|
+
| Varyant / Variant | Mode / Trait | Notes |
|
|
546
|
+
|---|---|---|
|
|
547
|
+
| Default (canonical) | LTR Light | basic happy path |
|
|
548
|
+
| Default | LTR Dark | dark mode regression check |
|
|
549
|
+
| Default | RTL Light | RTL layout regression |
|
|
550
|
+
| Default | Dynamic Type accessibilityLarge | scaling regression |
|
|
551
|
+
| Error state | LTR Light | empty state, prevention message |
|
|
552
|
+
| Loading state | LTR Light | skeleton or spinner |
|
|
553
|
+
| Edge case (e.g. long copy, single passenger) | LTR Light | optional, when distinct from canonical |
|
|
554
|
+
|
|
555
|
+
Preview snippet (Pass B fills variant list per Phase 1c convention):
|
|
556
|
+
|
|
557
|
+
\`\`\`swift
|
|
558
|
+
#Preview("Default") {
|
|
559
|
+
PassengerFlightView(viewModel: .preview(.idle))
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
#Preview("Error - PP-211") {
|
|
563
|
+
PassengerFlightView(viewModel: .preview(.error(.PP_211)))
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
#Preview("Dark") {
|
|
567
|
+
PassengerFlightView(viewModel: .preview(.idle))
|
|
568
|
+
.preferredColorScheme(.dark)
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
#Preview("RTL") {
|
|
572
|
+
PassengerFlightView(viewModel: .preview(.idle))
|
|
573
|
+
.environment(\.layoutDirection, .rightToLeft)
|
|
574
|
+
}
|
|
575
|
+
\`\`\`
|
|
576
|
+
|
|
577
|
+
Reuse rule (Locked 11 + 24): if `evidence.repoEvidence[<repo>].buckets.uiComponents` shows that the view already has a `#Preview` block, the table cell carries `Reuse existing block at <file:line>` instead of `Add new preview`. Conventions footnote example: `^[C8 high: 6 örnek, #Preview macro convention, en yakın StandaloneLoginView.swift:120]`.
|
|
578
|
+
|
|
579
|
+
Snapshot test linkage: Section 15.2 Snapshot Tests must enumerate each preview variant listed here so Canvas previews and CI snapshots stay aligned. A preview without a matching snapshot row triggers a Section 20 Risk.
|
|
580
|
+
|
|
581
|
+
### 13.7 Standards binding
|
|
582
|
+
|
|
583
|
+
Decisions cite their binding source (Locked 8):
|
|
584
|
+
|
|
585
|
+
| Decision | Source |
|
|
586
|
+
|---|---|
|
|
587
|
+
| <decision> | <standards file or wiki page> |
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
## 14. Eklenecek Dosyalar / Files to Add
|
|
591
|
+
|
|
592
|
+
Never omitted. Locked 15 - every row carries Reuse / Add new / Modify tag.
|
|
593
|
+
|
|
594
|
+
```markdown
|
|
595
|
+
## 14. Eklenecek Dosyalar <!-- TR -->
|
|
596
|
+
## 14. Files to Add <!-- EN -->
|
|
597
|
+
|
|
598
|
+
| Dosya / File | Etiket / Tag | Notlar / Notes |
|
|
599
|
+
|---|---|---|
|
|
600
|
+
| <path> | Add new | <purpose> |
|
|
601
|
+
| <path> | Reuse | <where it lives, why no change> ^[direct-match] |
|
|
602
|
+
| <path> | Modify | <what changes> |
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
## 15. Test Planı / Test Plan
|
|
606
|
+
|
|
607
|
+
Per-platform projection.
|
|
608
|
+
|
|
609
|
+
```markdown
|
|
610
|
+
## 15. Test Planı <!-- TR -->
|
|
611
|
+
## 15. Test Plan <!-- EN -->
|
|
612
|
+
|
|
613
|
+
### 15.1 Birim testleri / Unit tests
|
|
614
|
+
|
|
615
|
+
| Test | Hedef / Target |
|
|
616
|
+
|---|---|
|
|
617
|
+
| <test name per C4 convention> | <what it verifies> |
|
|
618
|
+
|
|
619
|
+
### 15.2 Görsel regresyon / Snapshot tests
|
|
620
|
+
|
|
621
|
+
| Senaryo / Scenario | Mod / Mode |
|
|
622
|
+
|---|---|
|
|
623
|
+
| Canonical | LTR Light |
|
|
624
|
+
| Canonical | LTR Dark |
|
|
625
|
+
| Canonical | RTL Light |
|
|
626
|
+
| Error state | LTR Light |
|
|
627
|
+
| Empty state | LTR Light |
|
|
628
|
+
|
|
629
|
+
Cihaz boyutları / Device sizes: <list>
|
|
630
|
+
|
|
631
|
+
### 15.3 Sahte servisler / Mock services
|
|
632
|
+
|
|
633
|
+
| Service | Mock class / file | Use case |
|
|
634
|
+
|---|---|---|
|
|
635
|
+
| <service> | <mock> | <UC> |
|
|
636
|
+
|
|
637
|
+
### 15.4 Kabul senaryoları / Acceptance scenarios
|
|
638
|
+
|
|
639
|
+
Gherkin scenarios from Section 4 mapped to UI test names.
|
|
640
|
+
|
|
641
|
+
| Senaryo | UI test |
|
|
642
|
+
|---|---|
|
|
643
|
+
| 4.1 happy path | <XCUITest / Espresso / Playwright name> |
|
|
644
|
+
|
|
645
|
+
### 15.5 Performans bütçesi / Performance budget
|
|
646
|
+
|
|
647
|
+
| Metrik / Metric | Hedef / Target |
|
|
648
|
+
|---|---|
|
|
649
|
+
| Cold start to ready | <ms> |
|
|
650
|
+
| Scroll FPS | 60 |
|
|
651
|
+
| Memory peak | <MB> |
|
|
652
|
+
```
|
|
653
|
+
|
|
654
|
+
## 16. Erişilebilirlik / Accessibility
|
|
655
|
+
|
|
656
|
+
Per-platform projection. WCAG 2.2 AA + Apple HIG + Material A11y.
|
|
657
|
+
|
|
658
|
+
```markdown
|
|
659
|
+
## 16. Erişilebilirlik <!-- TR -->
|
|
660
|
+
## 16. Accessibility <!-- EN -->
|
|
661
|
+
|
|
662
|
+
| Madde / Item | Durum / Status | Notlar / Notes |
|
|
663
|
+
|---|---|---|
|
|
664
|
+
| Unique identifier on every interactive element | required | <per C5 convention> |
|
|
665
|
+
| Minimum tap target (iOS 44x44 pt / Android 48x48 dp / Web 44x44 px) | required | |
|
|
666
|
+
| Screen reader label (accessibilityLabel / contentDescription / aria-label) | required | |
|
|
667
|
+
| Hint text (accessibilityHint / stateDescription / aria-description) | optional | |
|
|
668
|
+
| Dynamic Type / font scaling support | required | |
|
|
669
|
+
| Contrast ratio >= 4.5:1 | required | |
|
|
670
|
+
| State expressed beyond colour | required | |
|
|
671
|
+
| Keyboard navigation (web only) | required | tabindex + focus order |
|
|
672
|
+
| Voice Over / TalkBack reading order | required | |
|
|
673
|
+
```
|
|
674
|
+
|
|
675
|
+
## 17. Güvenlik ve Gizlilik / Security and Privacy
|
|
676
|
+
|
|
677
|
+
Per-platform projection. Locked decisions: no PII in logs, HTTPS only, Keychain for secrets, hashing for telemetry, ATT before tracking, KVKK/GDPR compliance.
|
|
678
|
+
|
|
679
|
+
```markdown
|
|
680
|
+
## 17. Güvenlik ve Gizlilik <!-- TR -->
|
|
681
|
+
## 17. Security and Privacy <!-- EN -->
|
|
682
|
+
|
|
683
|
+
| Kural / Rule | Uygulama / Implementation |
|
|
684
|
+
|---|---|
|
|
685
|
+
| Secrets in secure storage (Keychain / KeyStore / encrypted env) | required |
|
|
686
|
+
| Sensitive fields hashed before telemetry | required, SHA-256 |
|
|
687
|
+
| HTTPS only, no ATS exception | required |
|
|
688
|
+
| Certificate pinning (where applicable) | required |
|
|
689
|
+
| ATT consent before tracking (iOS) | required if tracking enabled |
|
|
690
|
+
| KVKK / GDPR data lifecycle disclosed | required |
|
|
691
|
+
|
|
692
|
+
OWASP MASVS quick check:
|
|
693
|
+
|
|
694
|
+
| MSTG | Status |
|
|
695
|
+
|---|---|
|
|
696
|
+
| AUTH-1 | <status> |
|
|
697
|
+
| NETWORK-1 | <status> |
|
|
698
|
+
| STORAGE-1 | <status> |
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
## 18. Yayılım Planı / Rollout Plan
|
|
702
|
+
|
|
703
|
+
```markdown
|
|
704
|
+
## 18. Yayılım Planı <!-- TR -->
|
|
705
|
+
## 18. Rollout Plan <!-- EN -->
|
|
706
|
+
|
|
707
|
+
| Aşama / Stage | Aksiyon / Action |
|
|
708
|
+
|---|---|
|
|
709
|
+
| Development | feature branch <name> |
|
|
710
|
+
| Code review | <number of approvals, who> |
|
|
711
|
+
| QA test | <devices and versions> |
|
|
712
|
+
| Staged rollout | <internal -> beta -> production %> |
|
|
713
|
+
| Rollback | <remote flag name> |
|
|
714
|
+
```
|
|
715
|
+
|
|
716
|
+
## 19. Değerlendirilen Alternatifler / Alternatives Considered
|
|
717
|
+
|
|
718
|
+
ADR format.
|
|
719
|
+
|
|
720
|
+
```markdown
|
|
721
|
+
## 19. Değerlendirilen Alternatifler <!-- TR -->
|
|
722
|
+
## 19. Alternatives Considered <!-- EN -->
|
|
723
|
+
|
|
724
|
+
### Alternatif <n> / Alternative <n>
|
|
725
|
+
|
|
726
|
+
| Seçenek / Option | Artı / Pro | Eksi / Con |
|
|
727
|
+
|---|---|---|
|
|
728
|
+
| <chosen> | <pro list> | <con list> |
|
|
729
|
+
| <alternative> | <pro list> | <con list> |
|
|
730
|
+
|
|
731
|
+
Karar / Decision: <chosen>. Gerekçe / Rationale: <reason>.
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
## 20. Riskler ve Açık Sorular / Risks and Open Questions
|
|
735
|
+
|
|
736
|
+
Never omitted.
|
|
737
|
+
|
|
738
|
+
```markdown
|
|
739
|
+
## 20. Riskler ve Açık Sorular <!-- TR -->
|
|
740
|
+
## 20. Risks and Open Questions <!-- EN -->
|
|
741
|
+
|
|
742
|
+
| Risk / Soru / Risk / Question | Sahibi / Owner | Durum / Status |
|
|
743
|
+
|---|---|---|
|
|
744
|
+
| <risk or question> | <name or role> | Açık / Open |
|
|
745
|
+
| <convention fallback applied> | Pass B (auto) | Açık / Open |
|
|
746
|
+
| <existing X candidate found; reuse or document why a new one is needed> | <name> | Açık / Open |
|
|
747
|
+
```
|
|
748
|
+
|
|
749
|
+
Auto-populated rows (Locked 11, 23): repo-evidence direct-match candidates that conflict with planned new-write; convention fallbacks where Phase 1c confidence was none.
|
|
750
|
+
|
|
751
|
+
## 21. Referanslar / References
|
|
752
|
+
|
|
753
|
+
Never omitted. Locked 20 - at the bottom, not at the top.
|
|
754
|
+
|
|
755
|
+
```markdown
|
|
756
|
+
## 21. Referanslar <!-- TR -->
|
|
757
|
+
## 21. References <!-- EN -->
|
|
758
|
+
|
|
759
|
+
| Tür / Type | Kaynak / Source | URL or Path | Rol / Role | Notlar / Notes |
|
|
760
|
+
|---|---|---|---|---|
|
|
761
|
+
| Standards | <name> | <url or path> | binding | <version> |
|
|
762
|
+
| Wiki | <name> | <url> | binding | <pattern referenced> |
|
|
763
|
+
| Figma | <design name> | <url> | UI design | <n variants, all screenshots embedded> |
|
|
764
|
+
| Confluence | <spec name> | <url> | feature spec | <v<n>> |
|
|
765
|
+
| Confluence | <api contract> | <url> | API contract | <endpoint summary> |
|
|
766
|
+
| Jira | <ticket id> | <url> | ticket | <description> |
|
|
767
|
+
| Firebase | events | <console url> | reference only | auth-gated |
|
|
768
|
+
| OpenAPI | generated | <repo path> | DTO source | <regen plugin name> |
|
|
769
|
+
| Repo | <module> | <repo path> | existing implementation | <reuse summary> |
|
|
770
|
+
```
|
|
771
|
+
|
|
772
|
+
## 22. Sözlük / Glossary
|
|
773
|
+
|
|
774
|
+
Footer. Optional in Lite mode. Alphabetical.
|
|
775
|
+
|
|
776
|
+
```markdown
|
|
777
|
+
## 22. Sözlük <!-- TR -->
|
|
778
|
+
## 22. Glossary <!-- EN -->
|
|
779
|
+
|
|
780
|
+
| Kısaltma / Abbreviation | Açıklama / Description |
|
|
781
|
+
|---|---|
|
|
782
|
+
| APIS | Advance Passenger Information System |
|
|
783
|
+
| ATS | App Transport Security |
|
|
784
|
+
| BFF | Backend For Frontend |
|
|
785
|
+
| CTA | Call To Action |
|
|
786
|
+
| FFP | Frequent Flyer Programme |
|
|
787
|
+
| KVKK | Kişisel Verilerin Korunması Kanunu |
|
|
788
|
+
| PNR | Passenger Name Record |
|
|
789
|
+
| WCAG | Web Content Accessibility Guidelines |
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
Only terms used in this document are listed. Generic IT terms (HTTP, JSON, REST) are excluded.
|
|
793
|
+
|
|
794
|
+
## 23. Değişiklik Geçmişi / Changelog
|
|
795
|
+
|
|
796
|
+
Footer.
|
|
797
|
+
|
|
798
|
+
```markdown
|
|
799
|
+
## 23. Değişiklik Geçmişi <!-- TR -->
|
|
800
|
+
## 23. Changelog <!-- EN -->
|
|
801
|
+
|
|
802
|
+
| Sürüm / Version | Tarih / Date | Yazar / Author | Değişiklik / Change |
|
|
803
|
+
|---|---|---|---|
|
|
804
|
+
| v1 | <date> | <author> | İlk taslak / Initial draft |
|
|
805
|
+
| v2 | <date> | <author> | <change summary> |
|
|
806
|
+
```
|
|
807
|
+
|
|
808
|
+
---
|
|
809
|
+
|
|
810
|
+
# Pass B render examples (per platform)
|
|
811
|
+
|
|
812
|
+
The following examples show how Pass B fills the same Pass A concept layer (state holder + use case + view + state model) for each platform when repo conventions are extracted with `high` confidence.
|
|
813
|
+
|
|
814
|
+
## iOS render example
|
|
815
|
+
|
|
816
|
+
Conventions extracted: feature-first + clean arch, `<Feature>ViewModel`, sealed enum state, Swift Testing, dot-notation accessibility identifiers, hierarchical dot PascalCase localization, manual configurator DI.
|
|
817
|
+
|
|
818
|
+
```swift
|
|
819
|
+
@MainActor
|
|
820
|
+
final class PassengerFlightViewModel: ObservableObject {
|
|
821
|
+
@Published private(set) var state: PassengerFlightUIState = .loading
|
|
822
|
+
private let fetchUseCase: FetchPassengerFlightUseCaseProtocol
|
|
823
|
+
|
|
824
|
+
init(fetchUseCase: FetchPassengerFlightUseCaseProtocol) {
|
|
825
|
+
self.fetchUseCase = fetchUseCase
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
func onAppear() async {
|
|
829
|
+
do {
|
|
830
|
+
let result = try await fetchUseCase.execute()
|
|
831
|
+
state = .idle(passengers: result.passengers, flights: result.flights)
|
|
832
|
+
} catch let error as PreventionError {
|
|
833
|
+
state = .error(error.code)
|
|
834
|
+
} catch {
|
|
835
|
+
state = .error(.generic)
|
|
836
|
+
}
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
enum PassengerFlightUIState {
|
|
841
|
+
case loading
|
|
842
|
+
case idle(passengers: [PassengerEntity], flights: [FlightEntity])
|
|
843
|
+
case error(PreventionCode)
|
|
844
|
+
}
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
Folder: `Domains/Checkin/Sources/Checkin/Screens/PassengerAndFlightSelection/Presentation/ViewModel/`
|
|
848
|
+
Test name: `@Test func fetch_validInput_returnsIdle()`
|
|
849
|
+
Identifier: `passengerFlight.continueButton`
|
|
850
|
+
Localization key: `PassengerFlight.ContinueButton`
|
|
851
|
+
|
|
852
|
+
## Android render example
|
|
853
|
+
|
|
854
|
+
Conventions extracted: feature module + clean arch, `<Feature>ViewModel`, sealed interface state, JUnit5 + Turbine, camelCase testTag, snake_case strings.xml, Hilt module DI.
|
|
855
|
+
|
|
856
|
+
```kotlin
|
|
857
|
+
@HiltViewModel
|
|
858
|
+
class PassengerFlightViewModel @Inject constructor(
|
|
859
|
+
private val fetchUseCase: FetchPassengerFlightUseCase
|
|
860
|
+
) : ViewModel() {
|
|
861
|
+
private val _state = MutableStateFlow<PassengerFlightUiState>(PassengerFlightUiState.Loading)
|
|
862
|
+
val state: StateFlow<PassengerFlightUiState> = _state.asStateFlow()
|
|
863
|
+
|
|
864
|
+
fun onAppear() {
|
|
865
|
+
viewModelScope.launch {
|
|
866
|
+
try {
|
|
867
|
+
val result = fetchUseCase.execute()
|
|
868
|
+
_state.value = PassengerFlightUiState.Idle(result.passengers, result.flights)
|
|
869
|
+
} catch (e: PreventionException) {
|
|
870
|
+
_state.value = PassengerFlightUiState.Error(e.code)
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
sealed interface PassengerFlightUiState {
|
|
877
|
+
data object Loading : PassengerFlightUiState
|
|
878
|
+
data class Idle(val passengers: List<Passenger>, val flights: List<Flight>) : PassengerFlightUiState
|
|
879
|
+
data class Error(val code: PreventionCode) : PassengerFlightUiState
|
|
880
|
+
}
|
|
881
|
+
```
|
|
882
|
+
|
|
883
|
+
Folder: `feature/checkin/src/main/java/<package>/passengerflight/ui/`
|
|
884
|
+
Test name: `fun fetch_validInput_returnsIdle()`
|
|
885
|
+
testTag: `passengerFlightContinueButton`
|
|
886
|
+
strings.xml: `passenger_flight_continue_button`
|
|
887
|
+
|
|
888
|
+
## Backend render example
|
|
889
|
+
|
|
890
|
+
Conventions extracted: layered Python FastAPI, router + service + repository, Pydantic DTO, pytest snake_case, FastAPI Depends.
|
|
891
|
+
|
|
892
|
+
```python
|
|
893
|
+
class PassengerFlightService:
|
|
894
|
+
def __init__(
|
|
895
|
+
self,
|
|
896
|
+
repository: PassengerFlightRepository,
|
|
897
|
+
validator: PassengerSelectionValidator,
|
|
898
|
+
):
|
|
899
|
+
self.repository = repository
|
|
900
|
+
self.validator = validator
|
|
901
|
+
|
|
902
|
+
async def fetch(self, request: PassengerFlightIn) -> PassengerFlightOut:
|
|
903
|
+
passengers = await self.repository.search_passengers(request.pnr, request.surname)
|
|
904
|
+
flights = await self.repository.get_flight_details(request.pnr)
|
|
905
|
+
return PassengerFlightOut(passengers=passengers, flights=flights)
|
|
906
|
+
|
|
907
|
+
|
|
908
|
+
@router.post("/start-checkin", response_model=PassengerFlightOut)
|
|
909
|
+
async def start_checkin(
|
|
910
|
+
request: PassengerFlightIn,
|
|
911
|
+
service: PassengerFlightService = Depends(get_passenger_flight_service),
|
|
912
|
+
) -> PassengerFlightOut:
|
|
913
|
+
return await service.fetch(request)
|
|
914
|
+
```
|
|
915
|
+
|
|
916
|
+
Folder: `app/api/checkin/`, `app/services/checkin/`, `app/schemas/checkin/`
|
|
917
|
+
Test name: `def test_fetch_valid_input_returns_passenger_list():`
|
|
918
|
+
OpenAPI operationId: `startCheckin`
|
|
919
|
+
|
|
920
|
+
## Frontend render example
|
|
921
|
+
|
|
922
|
+
Conventions extracted: Next.js App Router, feature folder, React Query hooks, Zustand stores, Vitest, kebab data-testid, hierarchical dot camelCase i18n.
|
|
923
|
+
|
|
924
|
+
```tsx
|
|
925
|
+
type PassengerFlightState =
|
|
926
|
+
| { kind: "loading" }
|
|
927
|
+
| { kind: "idle"; passengers: Passenger[]; flights: Flight[] }
|
|
928
|
+
| { kind: "error"; code: PreventionCode };
|
|
929
|
+
|
|
930
|
+
export function usePassengerFlight(pnr: string, surname: string) {
|
|
931
|
+
return useQuery<PassengerFlightDto, PreventionError>({
|
|
932
|
+
queryKey: ["passenger-flight", pnr, surname],
|
|
933
|
+
queryFn: () => passengerFlightApi.fetch({ pnr, surname }),
|
|
934
|
+
});
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
export function PassengerFlightPage({ pnr, surname }: Props) {
|
|
938
|
+
const query = usePassengerFlight(pnr, surname);
|
|
939
|
+
if (query.isLoading) return <LoadingState />;
|
|
940
|
+
if (query.isError) return <ErrorState code={query.error.code} />;
|
|
941
|
+
return <PassengerFlightContent data={query.data} />;
|
|
942
|
+
}
|
|
943
|
+
```
|
|
944
|
+
|
|
945
|
+
Folder: `src/features/checkin/passenger-flight/{components,hooks,api,types}/`
|
|
946
|
+
Test name: `it('returns idle state for valid input', ...)`
|
|
947
|
+
data-testid: `passenger-flight-continue-button`
|
|
948
|
+
i18n key: `passengerFlight.continueButton`
|
|
949
|
+
|
|
950
|
+
---
|
|
951
|
+
|
|
952
|
+
# Output language matrix
|
|
953
|
+
|
|
954
|
+
Canonical TR / EN pairs for headings and system strings. The dispatcher reads `outputLanguage` at render time.
|
|
955
|
+
|
|
956
|
+
| TR | EN |
|
|
957
|
+
|---|---|
|
|
958
|
+
| Geliştirme Özeti | Summary |
|
|
959
|
+
| Hedefler ve Karşı Hedefler | Goals and Non-Goals |
|
|
960
|
+
| Hedef | Goal |
|
|
961
|
+
| Karşı Hedef | Non-Goal |
|
|
962
|
+
| Akış Diyagramı | Flow Chart |
|
|
963
|
+
| Navigasyon Akışı | Navigation Flow |
|
|
964
|
+
| Servis Sırası | Sequence Diagram |
|
|
965
|
+
| Durum Makinesi | State Machine |
|
|
966
|
+
| Kullanıcı Hikayeleri | User Stories |
|
|
967
|
+
| Mutlu yol | Happy path |
|
|
968
|
+
| Tasarım Referansı | Design Reference |
|
|
969
|
+
| Frame galerisi | Frame gallery |
|
|
970
|
+
| Varyant | Variant |
|
|
971
|
+
| Boyut | Dimensions |
|
|
972
|
+
| Görüntü | Screenshot |
|
|
973
|
+
| Ayırt edici | Distinctive |
|
|
974
|
+
| Padding ve hizalama | Padding and alignment |
|
|
975
|
+
| Tier durumu | Tier status |
|
|
976
|
+
| Bileşen Envanteri | Component Inventory |
|
|
977
|
+
| Bileşen | Component |
|
|
978
|
+
| Mevcut | Existing |
|
|
979
|
+
| Konum | Location |
|
|
980
|
+
| Kullanım | Usage |
|
|
981
|
+
| Notlar | Notes |
|
|
982
|
+
| Tasarım Token'ları | Design Tokens |
|
|
983
|
+
| Renkler | Colors |
|
|
984
|
+
| Tipografi | Typography |
|
|
985
|
+
| Asset Envanteri | Asset Inventory |
|
|
986
|
+
| Asset adı | Asset name |
|
|
987
|
+
| Format | Format |
|
|
988
|
+
| Kaynak | Source |
|
|
989
|
+
| API Kontratları | API Contracts |
|
|
990
|
+
| Alan | Field |
|
|
991
|
+
| Tip | Type |
|
|
992
|
+
| Zorunlu | Required |
|
|
993
|
+
| Response varyantları | Response variants |
|
|
994
|
+
| Senaryo | Scenario |
|
|
995
|
+
| UI sonucu | UI outcome |
|
|
996
|
+
| Kod | Code |
|
|
997
|
+
| Anlam | Meaning |
|
|
998
|
+
| UI konumu | UI location |
|
|
999
|
+
| Lokalizasyon Anahtarları | Localization Keys |
|
|
1000
|
+
| Anahtar | Key |
|
|
1001
|
+
| Yeni | New |
|
|
1002
|
+
| Kısmi | Partial |
|
|
1003
|
+
| Tetiklenme | Trigger |
|
|
1004
|
+
| Parametreler | Params |
|
|
1005
|
+
| Deeplink ve Push Notification | Deeplink and Push Notification |
|
|
1006
|
+
| Deeplink tablosu | Deeplink table |
|
|
1007
|
+
| URL deseni | URL pattern |
|
|
1008
|
+
| Hedef route | Target route |
|
|
1009
|
+
| Foreground davranışı | Foreground behaviour |
|
|
1010
|
+
| Yönlendirme sırası | Routing sequence |
|
|
1011
|
+
| Mimari Plan | Architecture Plan |
|
|
1012
|
+
| Kavram tablosu | Concept table |
|
|
1013
|
+
| Karşılığı | Realization |
|
|
1014
|
+
| Validation kuralları | Validation rules |
|
|
1015
|
+
| Kural | Rule |
|
|
1016
|
+
| Davranış | Behaviour |
|
|
1017
|
+
| Standards binding | Standards binding |
|
|
1018
|
+
| Eklenecek Dosyalar | Files to Add |
|
|
1019
|
+
| Dosya | File |
|
|
1020
|
+
| Etiket | Tag |
|
|
1021
|
+
| Test Planı | Test Plan |
|
|
1022
|
+
| Birim testleri | Unit tests |
|
|
1023
|
+
| Hedef | Target |
|
|
1024
|
+
| Görsel regresyon | Snapshot tests |
|
|
1025
|
+
| Mod | Mode |
|
|
1026
|
+
| Sahte servisler | Mock services |
|
|
1027
|
+
| Kabul senaryoları | Acceptance scenarios |
|
|
1028
|
+
| Performans bütçesi | Performance budget |
|
|
1029
|
+
| Metrik | Metric |
|
|
1030
|
+
| Erişilebilirlik | Accessibility |
|
|
1031
|
+
| Madde | Item |
|
|
1032
|
+
| Durum | Status |
|
|
1033
|
+
| Güvenlik ve Gizlilik | Security and Privacy |
|
|
1034
|
+
| Uygulama | Implementation |
|
|
1035
|
+
| Yayılım Planı | Rollout Plan |
|
|
1036
|
+
| Aşama | Stage |
|
|
1037
|
+
| Aksiyon | Action |
|
|
1038
|
+
| Değerlendirilen Alternatifler | Alternatives Considered |
|
|
1039
|
+
| Seçenek | Option |
|
|
1040
|
+
| Artı | Pro |
|
|
1041
|
+
| Eksi | Con |
|
|
1042
|
+
| Karar | Decision |
|
|
1043
|
+
| Gerekçe | Rationale |
|
|
1044
|
+
| Riskler ve Açık Sorular | Risks and Open Questions |
|
|
1045
|
+
| Sahibi | Owner |
|
|
1046
|
+
| Açık | Open |
|
|
1047
|
+
| Referanslar | References |
|
|
1048
|
+
| Tür | Type |
|
|
1049
|
+
| Rol | Role |
|
|
1050
|
+
| Sözlük | Glossary |
|
|
1051
|
+
| Kısaltma | Abbreviation |
|
|
1052
|
+
| Açıklama | Description |
|
|
1053
|
+
| Değişiklik Geçmişi | Changelog |
|
|
1054
|
+
| Sürüm | Version |
|
|
1055
|
+
| Tarih | Date |
|
|
1056
|
+
| Yazar | Author |
|
|
1057
|
+
| Değişiklik | Change |
|
|
1058
|
+
| İlk taslak | Initial draft |
|
|
1059
|
+
| bekleniyor: çeviri ekibi | pending: translation team |
|
|
1060
|
+
| Pass B (auto) | Pass B (auto) |
|
|
1061
|
+
| convention fallback applied | convention fallback applied |
|
|
1062
|
+
| existing X candidate found | existing X candidate found |
|