@mmerterden/multi-agent-pipeline 20.33.0 → 20.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +98 -1
- package/README.md +3 -1
- package/README.tr.md +2 -1
- package/docs/adr/0018-cross-repo-links-not-a-global-graph.md +43 -0
- package/docs/adr/README.md +2 -1
- package/docs/facts.json +5 -4
- package/docs/features.md +1 -1
- package/install/_dev-only-files.mjs +1 -0
- package/install/catalog-history.json +1 -1
- package/install/claude.mjs +24 -2
- package/install/templates/claude-hooks.json +34 -1
- package/manifest.json +393 -339
- package/package.json +3 -1
- package/pipeline/agents/bulk-reader.md +3 -0
- package/pipeline/agents/code-reviewer.md +9 -0
- package/pipeline/agents/explorer.md +4 -0
- package/pipeline/agents/plan-critic.md +4 -2
- package/pipeline/commands/multi-agent/SKILL.md +17 -136
- package/pipeline/commands/multi-agent/channels/SKILL.md +16 -298
- package/pipeline/commands/multi-agent/graph/SKILL.md +5 -2
- package/pipeline/commands/multi-agent/language/SKILL.md +3 -3
- package/pipeline/commands/multi-agent/office-on/SKILL.md +7 -3
- package/pipeline/commands/multi-agent/office-status/SKILL.md +3 -2
- package/pipeline/commands/multi-agent/resume/SKILL.md +8 -22
- package/pipeline/commands/multi-agent/review/SKILL.md +7 -131
- package/pipeline/commands/multi-agent/setup/SKILL.md +19 -224
- package/pipeline/contract/CHANGELOG.md +9 -0
- package/pipeline/contract/README.md +6 -2
- package/pipeline/contract/fixtures/error-invalid-request.json +1 -1
- package/pipeline/contract/fixtures/error-unauthorized.json +1 -1
- package/pipeline/contract/fixtures/error-unsigned.json +1 -1
- package/pipeline/contract/manifest.json +14 -1
- package/pipeline/contract/types/index.d.ts +24 -2
- package/pipeline/lib/json-file-lock.mjs +61 -15
- package/pipeline/lib/office-remote.mjs +228 -0
- package/pipeline/lib/qr-code.mjs +360 -0
- package/pipeline/lib/repo-hygiene.sh +1 -0
- package/pipeline/lib/run-completion.mjs +17 -0
- package/pipeline/multi-agent-refs/channels/generator.md +146 -0
- package/pipeline/multi-agent-refs/channels/issue-comment.md +1 -1
- package/pipeline/multi-agent-refs/channels/menu.md +55 -0
- package/pipeline/multi-agent-refs/channels/multi-repo.md +6 -0
- package/pipeline/multi-agent-refs/channels/preview.md +25 -0
- package/pipeline/multi-agent-refs/channels/reference.md +98 -0
- package/pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md +1 -1
- package/pipeline/multi-agent-refs/features/code-graph.md +27 -0
- package/pipeline/multi-agent-refs/features/office-remote-protocol.md +166 -0
- package/pipeline/multi-agent-refs/features/office-threat-model.md +2 -2
- package/pipeline/multi-agent-refs/features/plan-critic.md +5 -2
- package/pipeline/multi-agent-refs/features/review-delta.md +4 -1
- package/pipeline/multi-agent-refs/features/scope-check.md +25 -1
- package/pipeline/multi-agent-refs/features/verify-by-test.md +10 -0
- package/pipeline/multi-agent-refs/keychain.md +7 -0
- package/pipeline/multi-agent-refs/knowledge.md +9 -0
- package/pipeline/multi-agent-refs/orchestrator/dispatcher.md +163 -0
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +6 -2
- package/pipeline/multi-agent-refs/phases/phase-1-plan.md +8 -10
- package/pipeline/multi-agent-refs/phases/phase-2-dev.md +18 -20
- package/pipeline/multi-agent-refs/phases/phase-3-review.md +20 -14
- package/pipeline/multi-agent-refs/phases/phase-4-commit.md +8 -7
- package/pipeline/multi-agent-refs/phases/phase-5-report.md +6 -3
- package/pipeline/multi-agent-refs/picker-contract.md +1 -1
- package/pipeline/multi-agent-refs/resume/details.md +35 -0
- package/pipeline/multi-agent-refs/review/inputs.md +87 -0
- package/pipeline/multi-agent-refs/review/module-guides.md +25 -0
- package/pipeline/multi-agent-refs/review/valven.md +42 -0
- package/pipeline/multi-agent-refs/rules.md +3 -2
- package/pipeline/multi-agent-refs/setup/accounts.md +27 -0
- package/pipeline/multi-agent-refs/setup/app-store-connect.md +5 -0
- package/pipeline/multi-agent-refs/setup/firebase.md +5 -0
- package/pipeline/multi-agent-refs/setup/google-play.md +4 -0
- package/pipeline/multi-agent-refs/setup/hooks-and-plugins.md +21 -0
- package/pipeline/multi-agent-refs/setup/language.md +46 -0
- package/pipeline/multi-agent-refs/setup/multi-repo-group.md +51 -0
- package/pipeline/multi-agent-refs/setup/summaries.md +63 -0
- package/pipeline/multi-agent-refs/setup/token-save-flow.md +51 -0
- package/pipeline/multi-agent-refs/tracker-contract.md +1 -1
- package/pipeline/office/NOTICE.md +4 -1
- package/pipeline/office/assets/char_12.png +0 -0
- package/pipeline/office/assets/char_13.png +0 -0
- package/pipeline/office/assets/char_14.png +0 -0
- package/pipeline/office/assets/char_15.png +0 -0
- package/pipeline/office/assets/char_16.png +0 -0
- package/pipeline/office/assets/char_17.png +0 -0
- package/pipeline/office/assets/char_18.png +0 -0
- package/pipeline/office/assets/char_19.png +0 -0
- package/pipeline/office/assets/char_20.png +0 -0
- package/pipeline/office/assets/char_21.png +0 -0
- package/pipeline/office/assets/char_22.png +0 -0
- package/pipeline/office/assets/char_23.png +0 -0
- package/pipeline/office/assets/char_24.png +0 -0
- package/pipeline/office/assets/char_25.png +0 -0
- package/pipeline/office/assets/char_26.png +0 -0
- package/pipeline/office/assets/char_27.png +0 -0
- package/pipeline/office/assets/char_28.png +0 -0
- package/pipeline/office/assets/char_29.png +0 -0
- package/pipeline/office/assets/char_30.png +0 -0
- package/pipeline/office/index.html +304 -55
- package/pipeline/office/toolkit.json +1 -1
- package/pipeline/rules/response-shape.md +6 -7
- package/pipeline/schemas/agent-state.schema.json +36 -0
- package/pipeline/schemas/phases.json +4 -4
- package/pipeline/schemas/plan-critique.schema.json +9 -2
- package/pipeline/schemas/planning-output.schema.json +43 -2
- package/pipeline/schemas/pr-reach.schema.json +55 -0
- package/pipeline/schemas/prefs.schema.json +37 -8
- package/pipeline/schemas/reviewer-output.schema.json +20 -2
- package/pipeline/schemas/token-budget.json +4 -4
- package/pipeline/schemas/triage-output.schema.json +32 -3
- package/pipeline/schemas/unattended-policy.json +2 -1
- package/pipeline/scripts/_graph-analysis.mjs +270 -0
- package/pipeline/scripts/_guard_rules.py +449 -1
- package/pipeline/scripts/_memory-policy.mjs +165 -0
- package/pipeline/scripts/_secret-scan.mjs +105 -0
- package/pipeline/scripts/_test-gaming.mjs +36 -0
- package/pipeline/scripts/_unified-diff.mjs +2 -2
- package/pipeline/scripts/agent-guard.py +79 -19
- package/pipeline/scripts/anonymize-findings.mjs +99 -0
- package/pipeline/scripts/answer-check.mjs +113 -0
- package/pipeline/scripts/answer-check.sh +20 -0
- package/pipeline/scripts/autopilot-publish.mjs +9 -2
- package/pipeline/scripts/capture-flush.sh +12 -2
- package/pipeline/scripts/check-read-size.sh +9 -0
- package/pipeline/scripts/code-graph-rules/android.json +8 -3
- package/pipeline/scripts/contract-server.mjs +71 -16
- package/pipeline/scripts/debt-ledger.mjs +323 -0
- package/pipeline/scripts/file-context.mjs +261 -0
- package/pipeline/scripts/file-context.sh +20 -0
- package/pipeline/scripts/gate-ledger.mjs +144 -21
- package/pipeline/scripts/graph-links.mjs +230 -0
- package/pipeline/scripts/graph-query.mjs +133 -1
- package/pipeline/scripts/graph-report.mjs +65 -0
- package/pipeline/scripts/learn-from-transcripts.mjs +12 -48
- package/pipeline/scripts/learnings-ledger.mjs +143 -24
- package/pipeline/scripts/office-build.mjs +276 -5
- package/pipeline/scripts/office-control.mjs +70 -10
- package/pipeline/scripts/office-pair.mjs +407 -0
- package/pipeline/scripts/office-remote-client.mjs +463 -0
- package/pipeline/scripts/phase-tracker.sh +8 -0
- package/pipeline/scripts/phase0-exit-gate.mjs +40 -37
- package/pipeline/scripts/phone-devices.mjs +9 -1
- package/pipeline/scripts/plan-critique-gate.mjs +11 -2
- package/pipeline/scripts/pre-commit-check.sh +28 -2
- package/pipeline/scripts/pre-push-check.sh +6 -12
- package/pipeline/scripts/rework-base.mjs +87 -0
- package/pipeline/scripts/rework-rulings.mjs +106 -0
- package/pipeline/scripts/run-commit-check.mjs +104 -0
- package/pipeline/scripts/run-scope-guard.mjs +58 -3
- package/pipeline/scripts/run-scope-guard.sh +13 -1
- package/pipeline/scripts/scope-check-gate.mjs +213 -2
- package/pipeline/scripts/task-mirror.mjs +106 -15
- package/pipeline/scripts/task-mirror.sh +3 -2
- package/pipeline/scripts/test-stability-gate.mjs +112 -0
- package/pipeline/scripts/triage-memory.mjs +64 -37
- package/pipeline/scripts/update-check.sh +7 -1
- package/pipeline/scripts/update-issue-progress.sh +73 -8
- package/pipeline/scripts/validate-planning.mjs +172 -4
- package/pipeline/scripts/validate-reviewer.mjs +20 -0
- package/pipeline/scripts/validate-triage.mjs +149 -4
- package/pipeline/scripts/work-items.mjs +119 -1
- package/pipeline/scripts/worktree-prepare-all.mjs +200 -0
- package/pipeline/scripts/worktree-prepare.sh +40 -4
- package/pipeline/scripts/write-state.mjs +67 -24
- package/pipeline/skills/.skill-manifest.json +9 -9
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +5 -5
- package/pipeline/skills/shared/core/google-play-compliance/references/rules.yml +1 -1
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-graph/SKILL.md +5 -2
- package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +4 -4
- package/pipeline/skills/shared/core/multi-agent-office-status/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +2 -0
- package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +4 -4
- package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +14 -0
- package/pipeline/skills/shared/external/android-architecture/references/patterns.md +6 -0
- package/pipeline/skills/shared/external/android-build-quality-gates/references/patterns.md +10 -0
- package/pipeline/skills/shared/external/android-datastore/references/patterns.md +11 -0
- package/pipeline/skills/shared/external/android-design-tokens-codegen/references/patterns.md +8 -0
- package/pipeline/skills/shared/external/android-jetpack-compose-expert/references/patterns.md +6 -0
- package/pipeline/skills/shared/external/android-mvi-viewmodel/references/patterns.md +10 -0
- package/pipeline/skills/shared/external/android-performance/references/patterns.md +13 -0
- package/pipeline/skills/shared/external/android-security/references/patterns.md +16 -0
- package/pipeline/skills/shared/external/api-patterns/references/contract-details.md +9 -0
- package/pipeline/skills/shared/external/api-security-best-practices/references/abuse-controls.md +12 -0
- package/pipeline/skills/shared/external/api-security-best-practices/references/identity-and-access.md +13 -0
- package/pipeline/skills/shared/external/api-security-best-practices/references/request-handling.md +12 -0
- package/pipeline/skills/shared/external/app-clips/references/data-handoff-notifications-location.md +9 -0
- package/pipeline/skills/shared/external/app-clips/references/routing-and-experiences.md +8 -0
- package/pipeline/skills/shared/external/app-clips/references/size-capabilities-and-promotion.md +10 -0
- package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +21 -0
- package/pipeline/skills/shared/external/app-store-optimization/references/keyword-research-methodology.md +9 -0
- package/pipeline/skills/shared/external/app-store-optimization/references/product-page-variants.md +7 -0
- package/pipeline/skills/shared/external/app-store-review/SKILL.md +2 -2
- package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +10 -0
- package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +10 -1
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +22 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +17 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +22 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +17 -0
- package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +9 -0
- package/pipeline/skills/shared/external/authentication/references/passkeys.md +11 -0
- package/pipeline/skills/shared/external/avkit/references/avkit-patterns.md +13 -0
- package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +9 -0
- package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +10 -0
- package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +15 -0
- package/pipeline/skills/shared/external/compose-components/references/patterns.md +7 -0
- package/pipeline/skills/shared/external/compose-navigation/references/patterns.md +7 -0
- package/pipeline/skills/shared/external/compose-testing/references/patterns.md +15 -0
- package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +9 -0
- package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +11 -0
- package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +10 -0
- package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +13 -0
- package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +20 -0
- package/pipeline/skills/shared/external/cryptokit/references/cryptokit-patterns.md +16 -0
- package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +16 -0
- package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +14 -0
- package/pipeline/skills/shared/external/device-integrity/references/device-integrity-patterns.md +13 -0
- package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +10 -0
- package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +10 -0
- package/pipeline/skills/shared/external/fastapi-pro/references/app-structure.md +10 -0
- package/pipeline/skills/shared/external/gradle-kotlin-dsl/references/patterns.md +17 -0
- package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +12 -0
- package/pipeline/skills/shared/external/hig-app-icons/references/icon-workflow.md +10 -0
- package/pipeline/skills/shared/external/hig-components-content/references/content-views.md +10 -0
- package/pipeline/skills/shared/external/hig-components-layout/references/bars-and-tabs.md +11 -0
- package/pipeline/skills/shared/external/hig-foundations/references/foundations-detail.md +13 -0
- package/pipeline/skills/shared/external/hig-foundations/references/type-color-spacing.md +13 -0
- package/pipeline/skills/shared/external/hig-patterns/references/onboarding-and-states.md +11 -0
- package/pipeline/skills/shared/external/hig-platforms/references/ipad-layout.md +12 -0
- package/pipeline/skills/shared/external/hig-technologies/references/technologies.md +16 -0
- package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +9 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +18 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/large-content-and-appearance.md +9 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/media-accessibility.md +9 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/nutrition-labels.md +7 -0
- package/pipeline/skills/shared/external/ios-coding-standard/references/STANDARD.md +13 -0
- package/pipeline/skills/shared/external/ios-design-review/references/appearance-matrix.md +9 -0
- package/pipeline/skills/shared/external/ios-design-review/references/checklist.md +15 -0
- package/pipeline/skills/shared/external/ios-haptics/references/core-haptics.md +11 -0
- package/pipeline/skills/shared/external/ios-iphone-duo/references/api-map.md +11 -0
- package/pipeline/skills/shared/external/ios-iphone-duo/references/fixed-assumptions.md +15 -0
- package/pipeline/skills/shared/external/ios-iphone-duo/references/poses-and-panes.md +11 -0
- package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +18 -0
- package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +19 -0
- package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +15 -0
- package/pipeline/skills/shared/external/ios-networking/references/file-storage-patterns.md +7 -0
- package/pipeline/skills/shared/external/ios-networking/references/lightweight-clients.md +8 -0
- package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +12 -0
- package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +17 -0
- package/pipeline/skills/shared/external/ios-security/references/app-review-guidelines.md +8 -0
- package/pipeline/skills/shared/external/ios-security/references/cryptokit-advanced.md +14 -0
- package/pipeline/skills/shared/external/ios-security/references/file-storage-patterns.md +8 -0
- package/pipeline/skills/shared/external/ios-security/references/privacy-manifest.md +9 -0
- package/pipeline/skills/shared/external/ios-sf-symbols/references/effects-and-custom-symbols.md +9 -0
- package/pipeline/skills/shared/external/ios-simulator/references/simctl-commands.md +13 -0
- package/pipeline/skills/shared/external/kotlin-coroutines-expert/references/patterns.md +8 -0
- package/pipeline/skills/shared/external/live-activities/references/activitykit-patterns.md +21 -0
- package/pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md +9 -0
- package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +12 -0
- package/pipeline/skills/shared/external/mapkit-location/references/mapkit-corelocation-patterns.md +16 -0
- package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +21 -0
- package/pipeline/skills/shared/external/metrickit-diagnostics/references/metrickit-patterns.md +10 -0
- package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +9 -0
- package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +12 -0
- package/pipeline/skills/shared/external/nodejs-backend-patterns/references/runtime-patterns.md +11 -0
- package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +11 -0
- package/pipeline/skills/shared/external/pdfkit/references/pdfkit-patterns.md +18 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +11 -0
- package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +11 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/av-playback.md +15 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +14 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +14 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/photokit-patterns.md +14 -0
- package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +14 -0
- package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +10 -0
- package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +12 -0
- package/pipeline/skills/shared/external/retrofit-networking/references/patterns.md +14 -0
- package/pipeline/skills/shared/external/room-database/references/patterns.md +16 -0
- package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +10 -0
- package/pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md +10 -0
- package/pipeline/skills/shared/external/spm-build-analysis/references/build-optimization-sources.md +14 -0
- package/pipeline/skills/shared/external/spm-build-analysis/references/spm-analysis-checks.md +19 -0
- package/pipeline/skills/shared/external/storekit/references/core-patterns.md +13 -0
- package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +31 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/argument-labels-and-parameters.md +8 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/conventions-and-special-rules.md +9 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/naming-and-clarity.md +10 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/side-effects-and-mutating-pairs.md +8 -0
- package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +24 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/bridging-interop.md +8 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/concurrency-patterns.md +14 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +12 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +10 -0
- package/pipeline/skills/shared/external/swift-concurrency-expert/references/swift-6-2-concurrency.md +8 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/actors.md +10 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/cancellation.md +7 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/interop.md +10 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/new-features.md +11 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/structured.md +9 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/testing.md +13 -0
- package/pipeline/skills/shared/external/swift-language/references/swift-attributes-interop.md +7 -0
- package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +14 -0
- package/pipeline/skills/shared/external/swift-security/references/biometric-authentication.md +16 -0
- package/pipeline/skills/shared/external/swift-security/references/certificate-trust.md +17 -0
- package/pipeline/skills/shared/external/swift-security/references/common-anti-patterns.md +19 -0
- package/pipeline/skills/shared/external/swift-security/references/compliance-owasp-mapping.md +16 -0
- package/pipeline/skills/shared/external/swift-security/references/credential-storage-patterns.md +19 -0
- package/pipeline/skills/shared/external/swift-security/references/cryptokit-public-key.md +18 -0
- package/pipeline/skills/shared/external/swift-security/references/cryptokit-symmetric.md +16 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-access-control.md +17 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-fundamentals.md +17 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-item-classes.md +17 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-sharing.md +18 -0
- package/pipeline/skills/shared/external/swift-security/references/migration-legacy-stores.md +21 -0
- package/pipeline/skills/shared/external/swift-security/references/secure-enclave.md +16 -0
- package/pipeline/skills/shared/external/swift-security/references/testing-security-code.md +16 -0
- package/pipeline/skills/shared/external/swift-testing/references/testing-advanced.md +9 -0
- package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +24 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/async-tests.md +9 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +11 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/writing-better-tests.md +13 -0
- package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +8 -0
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +17 -0
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +12 -0
- package/pipeline/skills/shared/external/swiftlint/references/adoption-and-configuration.md +11 -0
- package/pipeline/skills/shared/external/swiftlint/references/custom-rules-and-analyze.md +7 -0
- package/pipeline/skills/shared/external/swiftlint/references/plugins-run-scripts-and-integrations.md +13 -0
- package/pipeline/skills/shared/external/swiftlint/references/rule-reference.md +24 -0
- package/pipeline/skills/shared/external/swiftlint/references/rules-suppressions-and-baselines.md +12 -0
- package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +15 -0
- package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +15 -0
- package/pipeline/skills/shared/external/swiftui-animation/references/scroll-effects.md +12 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/accessibility-patterns.md +11 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-advanced.md +7 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-basics.md +13 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-transitions.md +9 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts-accessibility.md +9 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts.md +17 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/image-optimization.md +9 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/latest-apis.md +10 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/layout-best-practices.md +12 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/list-patterns.md +12 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-scenes.md +13 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-views.md +12 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-window-styling.md +12 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/performance-patterns.md +7 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/scroll-patterns.md +9 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/sheet-navigation-patterns.md +10 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/state-management.md +18 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/view-structure.md +16 -0
- package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +11 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +8 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +14 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +9 -0
- package/pipeline/skills/shared/external/swiftui-liquid-glass/references/liquid-glass.md +22 -0
- package/pipeline/skills/shared/external/swiftui-liquid-glass/references/uikit-glass.md +14 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +10 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +10 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/sheets.md +13 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +10 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +14 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +30 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +16 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +11 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +11 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +10 -0
- package/pipeline/skills/shared/external/swiftui-performance-audit/references/code-smells.md +8 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/references/app-wiring.md +12 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/references/menu-bar.md +10 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/references/navigationstack.md +11 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/references/scroll-reveal.md +12 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/references/sheets.md +14 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/references/tabview.md +10 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +10 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +13 -0
- package/pipeline/skills/shared/external/swiftui-view-refactor/references/mv-patterns.md +12 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/loading-and-observation.md +8 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/navigation-and-javascript.md +8 -0
- package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +14 -0
- package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +17 -0
- package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +11 -0
- package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +11 -0
- package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +27 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/references/build-settings-best-practices.md +9 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/references/fix-patterns.md +7 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/references/build-settings-best-practices.md +9 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/build-optimization-sources.md +14 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/code-compilation-checks.md +8 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-optimization-sources.md +14 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-settings-best-practices.md +9 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/project-audit-checks.md +13 -0
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# HealthKit patterns
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [Workout sessions in depth](#workout-sessions-in-depth)
|
|
6
|
+
- [Platform and authorization edge cases](#platform-and-authorization-edge-cases)
|
|
7
|
+
- [Background delivery in detail](#background-delivery-in-detail)
|
|
8
|
+
- [Anchored object queries](#anchored-object-queries)
|
|
9
|
+
- [Predicates](#predicates)
|
|
10
|
+
- [Chart data](#chart-data)
|
|
11
|
+
- [SwiftUI integration](#swiftui-integration)
|
|
12
|
+
- [Characteristics](#characteristics)
|
|
13
|
+
<!-- /toc -->
|
|
14
|
+
|
|
3
15
|
Extended examples that go with the main skill. Swift 6.3, iOS 26 unless noted.
|
|
4
16
|
|
|
5
17
|
## Contents
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Icon workflow
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. Preparing artwork](#1-preparing-artwork)
|
|
6
|
+
- [2. Building the icon in Icon Composer](#2-building-the-icon-in-icon-composer)
|
|
7
|
+
- [3. Adding it to Xcode](#3-adding-it-to-xcode)
|
|
8
|
+
- [4. The asset catalog route](#4-the-asset-catalog-route)
|
|
9
|
+
- [5. Alternate icons end to end](#5-alternate-icons-end-to-end)
|
|
10
|
+
- [6. Review checklist](#6-review-checklist)
|
|
11
|
+
<!-- /toc -->
|
|
12
|
+
|
|
3
13
|
Steps for building, wiring and checking an iOS app icon, with the asset
|
|
4
14
|
catalog route for projects that cannot move to Icon Composer yet.
|
|
5
15
|
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Content views in detail
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Lists and tables](#lists-and-tables)
|
|
5
|
+
- [Collections and grids](#collections-and-grids)
|
|
6
|
+
- [Charts](#charts)
|
|
7
|
+
- [Images and media](#images-and-media)
|
|
8
|
+
- [Text](#text)
|
|
9
|
+
- [Web content](#web-content)
|
|
10
|
+
- [Sharing](#sharing)
|
|
11
|
+
<!-- /toc -->
|
|
12
|
+
|
|
3
13
|
Companion to `../SKILL.md` for the `hig-components-content` skill.
|
|
4
14
|
|
|
5
15
|
## Lists and tables
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Bars, tabs and toolbars on iOS 26 and 27
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. Content layer and navigation layer](#1-content-layer-and-navigation-layer)
|
|
6
|
+
- [2. Tab bars](#2-tab-bars)
|
|
7
|
+
- [3. Search in a tab bar or toolbar](#3-search-in-a-tab-bar-or-toolbar)
|
|
8
|
+
- [4. Toolbars and navigation bars](#4-toolbars-and-navigation-bars)
|
|
9
|
+
- [5. Overflow, priority and pinning (iOS 27)](#5-overflow-priority-and-pinning-ios-27)
|
|
10
|
+
- [6. Minimizing bars on scroll](#6-minimizing-bars-on-scroll)
|
|
11
|
+
- [7. Review checklist](#7-review-checklist)
|
|
12
|
+
<!-- /toc -->
|
|
13
|
+
|
|
3
14
|
Companion to `../SKILL.md` for the `hig-components-layout` skill. Each API
|
|
4
15
|
carries the iOS release it first shipped in; gate anything newer than the
|
|
5
16
|
deployment target with `#available`. The glass material itself (variants,
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Foundations in detail
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. Typography](#1-typography)
|
|
6
|
+
- [2. Color](#2-color)
|
|
7
|
+
- [3. Layout, margins and safe areas](#3-layout-margins-and-safe-areas)
|
|
8
|
+
- [4. Icons and SF Symbols](#4-icons-and-sf-symbols)
|
|
9
|
+
- [5. Materials, Liquid Glass and depth](#5-materials-liquid-glass-and-depth)
|
|
10
|
+
- [6. Motion](#6-motion)
|
|
11
|
+
- [7. App icon](#7-app-icon)
|
|
12
|
+
- [8. Writing](#8-writing)
|
|
13
|
+
- [9. Accessibility, as a foundation](#9-accessibility-as-a-foundation)
|
|
14
|
+
<!-- /toc -->
|
|
15
|
+
|
|
3
16
|
Companion to `../SKILL.md` for the `hig-foundations` skill.
|
|
4
17
|
|
|
5
18
|
## Contents
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Typography, color and spacing: numbers and code
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. Text sizes and weights](#1-text-sizes-and-weights)
|
|
6
|
+
- [2. iOS text styles at the default size](#2-ios-text-styles-at-the-default-size)
|
|
7
|
+
- [3. Custom fonts that still scale](#3-custom-fonts-that-still-scale)
|
|
8
|
+
- [4. Adapting layout at large sizes](#4-adapting-layout-at-large-sizes)
|
|
9
|
+
- [5. Color roles](#5-color-roles)
|
|
10
|
+
- [6. Contrast minimums](#6-contrast-minimums)
|
|
11
|
+
- [7. Color on Liquid Glass](#7-color-on-liquid-glass)
|
|
12
|
+
- [8. Spacing and margins](#8-spacing-and-margins)
|
|
13
|
+
- [9. Touch targets](#9-touch-targets)
|
|
14
|
+
<!-- /toc -->
|
|
15
|
+
|
|
3
16
|
Companion to `../SKILL.md` for the `hig-foundations` skill. The numbers below
|
|
4
17
|
come from Apple's Human Interface Guidelines (Typography, Accessibility,
|
|
5
18
|
Color, Layout); the spacing scale is a design convention, marked as such.
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Onboarding, permission requests, empty and error states
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. Onboarding](#1-onboarding)
|
|
6
|
+
- [2. Teaching in context with TipKit](#2-teaching-in-context-with-tipkit)
|
|
7
|
+
- [3. Asking for permission](#3-asking-for-permission)
|
|
8
|
+
- [4. Pre-permission screens](#4-pre-permission-screens)
|
|
9
|
+
- [5. Empty states](#5-empty-states)
|
|
10
|
+
- [6. Error states](#6-error-states)
|
|
11
|
+
- [7. Loading before the empty state](#7-loading-before-the-empty-state)
|
|
12
|
+
<!-- /toc -->
|
|
13
|
+
|
|
3
14
|
Companion to `../SKILL.md` for the `hig-patterns` skill. Guidance follows
|
|
4
15
|
Apple's HIG pages on onboarding, launching, privacy and loading; the SwiftUI
|
|
5
16
|
code is ours.
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# iPad layout and windowing
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. Windows on iPadOS 26](#1-windows-on-ipados-26)
|
|
6
|
+
- [2. Size classes, not devices](#2-size-classes-not-devices)
|
|
7
|
+
- [3. Choosing a layout tool](#3-choosing-a-layout-tool)
|
|
8
|
+
- [4. ViewThatFits](#4-viewthatfits)
|
|
9
|
+
- [5. AnyLayout](#5-anylayout)
|
|
10
|
+
- [6. A custom Layout](#6-a-custom-layout)
|
|
11
|
+
- [7. Scenes, multiple windows and the menu bar](#7-scenes-multiple-windows-and-the-menu-bar)
|
|
12
|
+
- [8. Test matrix](#8-test-matrix)
|
|
13
|
+
<!-- /toc -->
|
|
14
|
+
|
|
3
15
|
Companion to `../SKILL.md` for the `hig-platforms` skill: how one SwiftUI
|
|
4
16
|
layout adapts from a narrow iPad window to a full external display. Hinged
|
|
5
17
|
iPhone hardware (iPhone Duo) has its own skill, `ios-iphone-duo`.
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Apple technologies in detail
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Identity: Sign in with Apple and passkeys](#identity-sign-in-with-apple-and-passkeys)
|
|
5
|
+
- [Payments: Apple Pay and in-app purchase](#payments-apple-pay-and-in-app-purchase)
|
|
6
|
+
- [Wallet](#wallet)
|
|
7
|
+
- [Siri, Shortcuts, Spotlight and App Intents](#siri-shortcuts-spotlight-and-app-intents)
|
|
8
|
+
- [Widgets, controls and Live Activities](#widgets-controls-and-live-activities)
|
|
9
|
+
- [Health and fitness](#health-and-fitness)
|
|
10
|
+
- [Home](#home)
|
|
11
|
+
- [iCloud](#icloud)
|
|
12
|
+
- [Maps and location](#maps-and-location)
|
|
13
|
+
- [SharePlay](#shareplay)
|
|
14
|
+
- [CarPlay](#carplay)
|
|
15
|
+
- [Augmented reality](#augmented-reality)
|
|
16
|
+
- [Apple Intelligence and generative features](#apple-intelligence-and-generative-features)
|
|
17
|
+
<!-- /toc -->
|
|
18
|
+
|
|
3
19
|
Companion to `../SKILL.md` for the `hig-technologies` skill.
|
|
4
20
|
|
|
5
21
|
## Identity: Sign in with Apple and passkeys
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Matter commissioning and HomeKit UI recipes
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [SwiftUI integration](#swiftui-integration)
|
|
6
|
+
- [Delegate wiring](#delegate-wiring)
|
|
7
|
+
- [Finding services by type](#finding-services-by-type)
|
|
8
|
+
- [A fuller MatterSupport handler](#a-fuller-mattersupport-handler)
|
|
9
|
+
- [Simulated accessories for testing](#simulated-accessories-for-testing)
|
|
10
|
+
<!-- /toc -->
|
|
11
|
+
|
|
3
12
|
Extended material for the `homekit-matter` skill ([../SKILL.md](../SKILL.md)):
|
|
4
13
|
a SwiftUI store, accessory screens, complete delegate wiring, service and
|
|
5
14
|
characteristic tables, a fuller MatterSupport handler, and simulator testing.
|
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Accessibility Code Patterns
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [Labels, values, hints](#labels-values-hints)
|
|
6
|
+
- [Traits and grouping](#traits-and-grouping)
|
|
7
|
+
- [Custom and adjustable controls](#custom-and-adjustable-controls)
|
|
8
|
+
- [Focus patterns](#focus-patterns)
|
|
9
|
+
- [Dynamic Type and layout](#dynamic-type-and-layout)
|
|
10
|
+
- [Custom rotors](#custom-rotors)
|
|
11
|
+
- [System preference values](#system-preference-values)
|
|
12
|
+
- [UIKit](#uikit)
|
|
13
|
+
- [AppKit](#appkit)
|
|
14
|
+
- [Mistakes to catch in review](#mistakes-to-catch-in-review)
|
|
15
|
+
- [Voice Control](#voice-control)
|
|
16
|
+
- [Switch Control](#switch-control)
|
|
17
|
+
- [Full Keyboard Access](#full-keyboard-access)
|
|
18
|
+
- [Automated checks with XCTest](#automated-checks-with-xctest)
|
|
19
|
+
<!-- /toc -->
|
|
20
|
+
|
|
3
21
|
Back to [SKILL.md](../SKILL.md).
|
|
4
22
|
|
|
5
23
|
## Contents
|
package/pipeline/skills/shared/external/ios-accessibility/references/large-content-and-appearance.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Large Content Viewer, and Liquid Glass with appearance settings
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. Large Content Viewer](#1-large-content-viewer)
|
|
6
|
+
- [2. SwiftUI](#2-swiftui)
|
|
7
|
+
- [3. UIKit](#3-uikit)
|
|
8
|
+
- [4. Liquid Glass and appearance settings](#4-liquid-glass-and-appearance-settings)
|
|
9
|
+
- [5. Checks](#5-checks)
|
|
10
|
+
<!-- /toc -->
|
|
11
|
+
|
|
3
12
|
Companion to `../SKILL.md` for the `ios-accessibility` skill.
|
|
4
13
|
|
|
5
14
|
## Contents
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Media Accessibility
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Captions, SDH and subtitles](#captions-sdh-and-subtitles)
|
|
5
|
+
- [Picking an accessible caption track](#picking-an-accessible-caption-track)
|
|
6
|
+
- [Picking an audio description track](#picking-an-audio-description-track)
|
|
7
|
+
- [Following the system settings](#following-the-system-settings)
|
|
8
|
+
- [SwiftUI `VideoPlayer`](#swiftui-videoplayer)
|
|
9
|
+
- [Custom player controls](#custom-player-controls)
|
|
10
|
+
<!-- /toc -->
|
|
11
|
+
|
|
3
12
|
Back to [SKILL.md](../SKILL.md).
|
|
4
13
|
|
|
5
14
|
How to make audio and video accessible with AVFoundation: tagging and choosing
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# App Store Accessibility Nutrition Labels
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [The nine categories](#the-nine-categories)
|
|
5
|
+
- [Rules for claiming a label](#rules-for-claiming-a-label)
|
|
6
|
+
- [What passes and what fails](#what-passes-and-what-fails)
|
|
7
|
+
- [Auditing a SwiftUI screen](#auditing-a-swiftui-screen)
|
|
8
|
+
<!-- /toc -->
|
|
9
|
+
|
|
3
10
|
Back to [SKILL.md](../SKILL.md).
|
|
4
11
|
|
|
5
12
|
App Store Connect lets a developer state which accessibility features an app
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# iOS Coding Standard
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [0. The ten lines](#0-the-ten-lines)
|
|
6
|
+
- [1. Security](#1-security)
|
|
7
|
+
- [2. Testability](#2-testability)
|
|
8
|
+
- [3. Readability](#3-readability)
|
|
9
|
+
- [4. Flexibility](#4-flexibility)
|
|
10
|
+
- [5. Concurrency](#5-concurrency)
|
|
11
|
+
- [6. Accessibility](#6-accessibility)
|
|
12
|
+
- [7. Performance - the four that are also readability](#7-performance---the-four-that-are-also-readability)
|
|
13
|
+
- [8. Exceptions](#8-exceptions)
|
|
14
|
+
<!-- /toc -->
|
|
15
|
+
|
|
3
16
|
The one document to read before your first PR. Rule IDs in brackets point at `rules.yml`, which
|
|
4
17
|
carries severity, tooling and rationale for each; `EXAMPLES.md` carries a worked ✗/✓ pair for
|
|
5
18
|
every rule a tool cannot decide - look one up by ID when a review cites it. Your module's own docs
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Appearance matrix and simulator procedure
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. Setting each appearance](#1-setting-each-appearance)
|
|
6
|
+
- [2. What breaks in each appearance](#2-what-breaks-in-each-appearance)
|
|
7
|
+
- [3. Sweep procedure](#3-sweep-procedure)
|
|
8
|
+
- [4. Example batch](#4-example-batch)
|
|
9
|
+
- [5. Limits of a simulator review](#5-limits-of-a-simulator-review)
|
|
10
|
+
<!-- /toc -->
|
|
11
|
+
|
|
3
12
|
How to put a simulator into each appearance, what to look for in it, and a
|
|
4
13
|
toolkit procedure that sweeps the matrix for one screen. Tool names are from
|
|
5
14
|
the multi-agent-toolkit MCP server (3.19.0 or later).
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Design review checklist
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. Layout and safe areas](#1-layout-and-safe-areas)
|
|
6
|
+
- [2. Typography](#2-typography)
|
|
7
|
+
- [3. Colour and contrast](#3-colour-and-contrast)
|
|
8
|
+
- [4. Materials and Liquid Glass](#4-materials-and-liquid-glass)
|
|
9
|
+
- [5. Iconography](#5-iconography)
|
|
10
|
+
- [6. Navigation and bars](#6-navigation-and-bars)
|
|
11
|
+
- [7. Controls and touch targets](#7-controls-and-touch-targets)
|
|
12
|
+
- [8. Feedback and motion](#8-feedback-and-motion)
|
|
13
|
+
- [9. States](#9-states)
|
|
14
|
+
- [10. Content, copy and localization](#10-content-copy-and-localization)
|
|
15
|
+
- [11. Report template](#11-report-template)
|
|
16
|
+
<!-- /toc -->
|
|
17
|
+
|
|
3
18
|
Questions per layer, with the threshold or HIG page behind each. Ask them of
|
|
4
19
|
the rendered screen; when a question can only be answered from code or a
|
|
5
20
|
device, note that under Not proven instead of guessing.
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Core Haptics
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. Engine lifecycle](#1-engine-lifecycle)
|
|
6
|
+
- [2. Events and parameters](#2-events-and-parameters)
|
|
7
|
+
- [3. Playing a pattern](#3-playing-a-pattern)
|
|
8
|
+
- [4. Parameter curves and dynamic parameters](#4-parameter-curves-and-dynamic-parameters)
|
|
9
|
+
- [5. Advanced players](#5-advanced-players)
|
|
10
|
+
- [6. AHAP files](#6-ahap-files)
|
|
11
|
+
- [7. Pitfalls](#7-pitfalls)
|
|
12
|
+
<!-- /toc -->
|
|
13
|
+
|
|
3
14
|
For patterns the feedback generators cannot express: shaped intensity and
|
|
4
15
|
sharpness, several events in sequence, haptics synchronised with audio, or a
|
|
5
16
|
pattern that changes while it plays (a drag that strengthens with distance).
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# iPhone Duo API map
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. Size, screen and shape](#1-size-screen-and-shape)
|
|
6
|
+
- [2. Reserved regions](#2-reserved-regions)
|
|
7
|
+
- [3. Arrangements](#3-arrangements)
|
|
8
|
+
- [4. Vertical bars](#4-vertical-bars)
|
|
9
|
+
- [5. Sheets](#5-sheets)
|
|
10
|
+
- [6. Hinge](#6-hinge)
|
|
11
|
+
- [7. Scenes and accessories](#7-scenes-and-accessories)
|
|
12
|
+
<!-- /toc -->
|
|
13
|
+
|
|
3
14
|
Every API this skill relies on, grouped by job, with the iOS version that
|
|
4
15
|
introduced it. *(27.1 beta)* marks symbols documented as beta in the iOS 27.1
|
|
5
16
|
SDK; their names and behaviour may change before release.
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Fixed assumptions: grep list and replacements
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. The search](#1-the-search)
|
|
6
|
+
- [2. Orientation](#2-orientation)
|
|
7
|
+
- [3. The screen](#3-the-screen)
|
|
8
|
+
- [4. Cached sizes](#4-cached-sizes)
|
|
9
|
+
- [5. Idiom and size class](#5-idiom-and-size-class)
|
|
10
|
+
- [6. Device sizes and thresholds](#6-device-sizes-and-thresholds)
|
|
11
|
+
- [7. Insets](#7-insets)
|
|
12
|
+
- [8. Bars](#8-bars)
|
|
13
|
+
- [9. Media](#9-media)
|
|
14
|
+
- [10. Life cycle, legacy guides and the keyboard](#10-life-cycle-legacy-guides-and-the-keyboard)
|
|
15
|
+
- [11. Recording the result](#11-recording-the-result)
|
|
16
|
+
<!-- /toc -->
|
|
17
|
+
|
|
3
18
|
Run these from the repository root. Every hit is a candidate, not a verdict:
|
|
4
19
|
read the surrounding code, decide whether it affects layout, and confirm on
|
|
5
20
|
the iPhone Duo simulator. Exclude vendored and generated code from the count.
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Poses, panes and the design review
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. Poses](#1-poses)
|
|
6
|
+
- [2. Pose to pattern](#2-pose-to-pattern)
|
|
7
|
+
- [3. Using the inner display](#3-using-the-inner-display)
|
|
8
|
+
- [4. Dual-pane rules](#4-dual-pane-rules)
|
|
9
|
+
- [5. Controls on the side](#5-controls-on-the-side)
|
|
10
|
+
- [6. The fold](#6-the-fold)
|
|
11
|
+
- [7. Review checklist](#7-review-checklist)
|
|
12
|
+
<!-- /toc -->
|
|
13
|
+
|
|
3
14
|
Design guidance for iPhone Duo. The rules marked HIG come from Apple's
|
|
4
15
|
Designing for iPhone Duo page; the pattern table is a recommendation built on
|
|
5
16
|
those rules and on size classes, and should be adapted to the app's content.
|
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# FormatStyle, Locale and Layout Direction
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [Replacing legacy formatters](#replacing-legacy-formatters)
|
|
6
|
+
- [Dates](#dates)
|
|
7
|
+
- [Numbers](#numbers)
|
|
8
|
+
- [Measurements](#measurements)
|
|
9
|
+
- [Durations](#durations)
|
|
10
|
+
- [Person names](#person-names)
|
|
11
|
+
- [Byte counts](#byte-counts)
|
|
12
|
+
- [Lists](#lists)
|
|
13
|
+
- [Custom styles](#custom-styles)
|
|
14
|
+
- [Pinning a locale](#pinning-a-locale)
|
|
15
|
+
- [Right-to-left in depth](#right-to-left-in-depth)
|
|
16
|
+
- [ScaledMetric and Dynamic Type](#scaledmetric-and-dynamic-type)
|
|
17
|
+
- [Checking layout with Accessibility Inspector](#checking-layout-with-accessibility-inspector)
|
|
18
|
+
- [Cheat sheet](#cheat-sheet)
|
|
19
|
+
<!-- /toc -->
|
|
20
|
+
|
|
3
21
|
`FormatStyle` needs iOS 15 or later. This skill uses it for locale-aware
|
|
4
22
|
display: numbers, dates, currency, units, names, lists, calendars and
|
|
5
23
|
separators, plus previews and tests across locales. Custom `FormatStyle`
|
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# String Catalogs in Depth
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [What a catalog is](#what-a-catalog-is)
|
|
6
|
+
- [Creating one](#creating-one)
|
|
7
|
+
- [What extraction picks up](#what-extraction-picks-up)
|
|
8
|
+
- [Managing keys by hand](#managing-keys-by-hand)
|
|
9
|
+
- [Strings outside SwiftUI](#strings-outside-swiftui)
|
|
10
|
+
- [Bundles](#bundles)
|
|
11
|
+
- [Swift packages and multiple modules](#swift-packages-and-multiple-modules)
|
|
12
|
+
- [Plurals](#plurals)
|
|
13
|
+
- [Device variants](#device-variants)
|
|
14
|
+
- [Working with translators](#working-with-translators)
|
|
15
|
+
- [The JSON format](#the-json-format)
|
|
16
|
+
- [Generated symbols (Xcode 26)](#generated-symbols-xcode-26)
|
|
17
|
+
- [Testing](#testing)
|
|
18
|
+
- [Migrating from .strings and .stringsdict](#migrating-from-strings-and-stringsdict)
|
|
19
|
+
- [Practices that scale](#practices-that-scale)
|
|
20
|
+
<!-- /toc -->
|
|
21
|
+
|
|
3
22
|
## Contents
|
|
4
23
|
|
|
5
24
|
1. [What a catalog is](#what-a-catalog-is)
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Background Transfers and WebSockets
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [Setting up a background session](#setting-up-a-background-session)
|
|
6
|
+
- [Downloads that outlive the app](#downloads-that-outlive-the-app)
|
|
7
|
+
- [Relaunch and session event delivery](#relaunch-and-session-event-delivery)
|
|
8
|
+
- [Uploads from a file on disk](#uploads-from-a-file-on-disk)
|
|
9
|
+
- [URLSessionWebSocketTask](#urlsessionwebsockettask)
|
|
10
|
+
- [Reconnecting a dropped socket](#reconnecting-a-dropped-socket)
|
|
11
|
+
- [Typed messages over a socket](#typed-messages-over-a-socket)
|
|
12
|
+
- [Pitfalls of background sessions](#pitfalls-of-background-sessions)
|
|
13
|
+
- [Showing download progress in SwiftUI](#showing-download-progress-in-swiftui)
|
|
14
|
+
- [WebSocket Authentication](#websocket-authentication)
|
|
15
|
+
- [Choosing a subprotocol](#choosing-a-subprotocol)
|
|
16
|
+
<!-- /toc -->
|
|
17
|
+
|
|
3
18
|
Two things that are often confused. A background URLSession moves HTTP and
|
|
4
19
|
HTTPS uploads and downloads while the app is not running. A WebSocket is a
|
|
5
20
|
live foreground connection. Neither does the other's job.
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# File Storage Patterns
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Directory Selection Guide](#directory-selection-guide)
|
|
5
|
+
- [FileProtectionType Levels](#fileprotectiontype-levels)
|
|
6
|
+
- [Backup Exclusion (isExcludedFromBackup)](#backup-exclusion-isexcludedfrombackup)
|
|
7
|
+
- [Storage Pressure Handling](#storage-pressure-handling)
|
|
8
|
+
<!-- /toc -->
|
|
9
|
+
|
|
3
10
|
Downloaded and uploaded data has to live somewhere. Where it lives decides
|
|
4
11
|
whether it is backed up, whether the system may delete it, and when it can be
|
|
5
12
|
read.
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Lightweight Closure-Based Clients
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Intent](#intent)
|
|
5
|
+
- [Minimal shape](#minimal-shape)
|
|
6
|
+
- [Usage pattern](#usage-pattern)
|
|
7
|
+
- [Guidance](#guidance)
|
|
8
|
+
- [Pitfalls](#pitfalls)
|
|
9
|
+
<!-- /toc -->
|
|
10
|
+
|
|
3
11
|
In an MV-style SwiftUI app a full view model plus a dependency injection
|
|
4
12
|
container is often more ceremony than the feature needs. A client made of a
|
|
5
13
|
few async closures keeps the service boundary swappable for previews and
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Network Framework
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [NWConnection](#nwconnection)
|
|
6
|
+
- [NWListener](#nwlistener)
|
|
7
|
+
- [NWBrowser](#nwbrowser)
|
|
8
|
+
- [NWPathMonitor](#nwpathmonitor)
|
|
9
|
+
- [NWParameters Configuration](#nwparameters-configuration)
|
|
10
|
+
- [TLS Configuration](#tls-configuration)
|
|
11
|
+
- [WebSocket Support](#websocket-support)
|
|
12
|
+
- [The iOS 26 NetworkConnection API](#the-ios-26-networkconnection-api)
|
|
13
|
+
<!-- /toc -->
|
|
14
|
+
|
|
3
15
|
Reach for Network.framework when URLSession is the wrong layer: raw TCP or
|
|
4
16
|
UDP, a WebSocket at the protocol level, Bonjour discovery, a local server, or
|
|
5
17
|
detailed path monitoring. Ordinary HTTP APIs stay on URLSession. Examples
|
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# URLSession Patterns
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [A protocol-backed API client](#a-protocol-backed-api-client)
|
|
6
|
+
- [Building requests step by step](#building-requests-step-by-step)
|
|
7
|
+
- [Uploading multipart form data](#uploading-multipart-form-data)
|
|
8
|
+
- [Downloads that report progress](#downloads-that-report-progress)
|
|
9
|
+
- [Paging by cursor](#paging-by-cursor)
|
|
10
|
+
- [Paging by offset](#paging-by-offset)
|
|
11
|
+
- [Stubbing the network with URLProtocol](#stubbing-the-network-with-urlprotocol)
|
|
12
|
+
- [Retries that back off exponentially](#retries-that-back-off-exponentially)
|
|
13
|
+
- [Pinning certificates in a session delegate](#pinning-certificates-in-a-session-delegate)
|
|
14
|
+
- [Middleware that logs requests](#middleware-that-logs-requests)
|
|
15
|
+
- [Choosing a cache policy](#choosing-a-cache-policy)
|
|
16
|
+
- [Reading a server-sent event stream](#reading-a-server-sent-event-stream)
|
|
17
|
+
- [A production-ready session setup](#a-production-ready-session-setup)
|
|
18
|
+
<!-- /toc -->
|
|
19
|
+
|
|
3
20
|
Longer implementations behind the summaries in [SKILL.md](../SKILL.md). The
|
|
4
21
|
types here are the same ones SKILL.md names: `APIClientProtocol` with
|
|
5
22
|
`fetch`, `send`, `perform` and `upload`; `Endpoint`; `NetworkError`;
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# App Review Guidelines -- Privacy and Security
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [PrivacyInfo.xcprivacy -- Privacy Manifest Requirements (Guideline 5.1.1)](#privacyinfoxcprivacy----privacy-manifest-requirements-guideline-511)
|
|
6
|
+
- [Data Use, Sharing, and Privacy Policy (Guideline 5.1.2)](#data-use-sharing-and-privacy-policy-guideline-512)
|
|
7
|
+
- [App Tracking Transparency (ATT)](#app-tracking-transparency-att)
|
|
8
|
+
- [Pre-Submission Privacy Checklist](#pre-submission-privacy-checklist)
|
|
9
|
+
<!-- /toc -->
|
|
10
|
+
|
|
3
11
|
App Store review rules relevant to security, privacy manifests, data handling,
|
|
4
12
|
and App Tracking Transparency. Extracted from Apple's App Store Review
|
|
5
13
|
Guidelines for self-contained reference.
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# CryptoKit Advanced Patterns
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [ChaChaPoly (Alternative to AES-GCM)](#chachapoly-alternative-to-aes-gcm)
|
|
6
|
+
- [Digital Signatures (P256 / ECDSA)](#digital-signatures-p256-ecdsa)
|
|
7
|
+
- [Key Agreement (Diffie-Hellman)](#key-agreement-diffie-hellman)
|
|
8
|
+
- [Key Derivation with HKDF](#key-derivation-with-hkdf)
|
|
9
|
+
- [Authenticated Encryption with Associated Data (AEAD)](#authenticated-encryption-with-associated-data-aead)
|
|
10
|
+
- [AES Key Wrapping](#aes-key-wrapping)
|
|
11
|
+
- [Secure Enclave Key Agreement](#secure-enclave-key-agreement)
|
|
12
|
+
- [Post-Quantum Cryptography](#post-quantum-cryptography)
|
|
13
|
+
- [Storing CryptoKit Keys in Keychain](#storing-cryptokit-keys-in-keychain)
|
|
14
|
+
- [Jailbreak Detection](#jailbreak-detection)
|
|
15
|
+
<!-- /toc -->
|
|
16
|
+
|
|
3
17
|
Extended CryptoKit usage beyond the basics covered in the main skill. Includes
|
|
4
18
|
digital signatures, key agreement, alternative ciphers, key derivation, and
|
|
5
19
|
post-quantum cryptography.
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# File Storage Patterns
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [Directory Selection Guide](#directory-selection-guide)
|
|
6
|
+
- [FileProtectionType Levels](#fileprotectiontype-levels)
|
|
7
|
+
- [Backup Exclusion (isExcludedFromBackup)](#backup-exclusion-isexcludedfrombackup)
|
|
8
|
+
- [Storage Pressure Handling](#storage-pressure-handling)
|
|
9
|
+
<!-- /toc -->
|
|
10
|
+
|
|
3
11
|
Guidance on choosing the right directory, applying file protection, managing
|
|
4
12
|
backup exclusions, and handling storage pressure on iOS.
|
|
5
13
|
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Privacy Manifests -- Security Perspective
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [Required API Declarations](#required-api-declarations)
|
|
6
|
+
- [Data Collection Declarations](#data-collection-declarations)
|
|
7
|
+
- [Tracking Domains](#tracking-domains)
|
|
8
|
+
- [Auditing Dependencies](#auditing-dependencies)
|
|
9
|
+
- [App Tracking Transparency (ATT)](#app-tracking-transparency-att)
|
|
10
|
+
<!-- /toc -->
|
|
11
|
+
|
|
3
12
|
This reference covers the security-relevant aspects of PrivacyInfo.xcprivacy:
|
|
4
13
|
required-reason API declarations, data collection types, and tracking domains.
|
|
5
14
|
For submission requirements and App Review compliance checklists, see
|
package/pipeline/skills/shared/external/ios-sf-symbols/references/effects-and-custom-symbols.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Symbol effects, UIKit API and custom symbols
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Contents](#contents)
|
|
5
|
+
- [1. Effect options](#1-effect-options)
|
|
6
|
+
- [2. Effects in UIKit](#2-effects-in-uikit)
|
|
7
|
+
- [3. Rendering and configuration in UIKit](#3-rendering-and-configuration-in-uikit)
|
|
8
|
+
- [4. Custom symbol workflow](#4-custom-symbol-workflow)
|
|
9
|
+
- [5. Review checklist](#5-review-checklist)
|
|
10
|
+
<!-- /toc -->
|
|
11
|
+
|
|
3
12
|
## Contents
|
|
4
13
|
|
|
5
14
|
1. Effect options
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# simctl command reference
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Devices](#devices)
|
|
5
|
+
- [Apps](#apps)
|
|
6
|
+
- [Simulation](#simulation)
|
|
7
|
+
- [Push payloads](#push-payloads)
|
|
8
|
+
- [Location](#location)
|
|
9
|
+
- [Media and capture](#media-and-capture)
|
|
10
|
+
- [JSON with jq](#json-with-jq)
|
|
11
|
+
- [Privacy services](#privacy-services)
|
|
12
|
+
- [Status bar flags](#status-bar-flags)
|
|
13
|
+
- [Troubleshooting](#troubleshooting)
|
|
14
|
+
<!-- /toc -->
|
|
15
|
+
|
|
3
16
|
Lookup tables for `xcrun simctl`. Workflows and the simulator-versus-hardware
|
|
4
17
|
boundary are in [the main skill](../SKILL.md). `<dev>` below means a UDID, or
|
|
5
18
|
`booted` when exactly one simulator is running. `xcrun simctl help <command>`
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Coroutines: Flow and testing
|
|
2
2
|
|
|
3
|
+
<!-- toc -->
|
|
4
|
+
- [Flow](#flow)
|
|
5
|
+
- [Operators worth knowing by reflex](#operators-worth-knowing-by-reflex)
|
|
6
|
+
- [Bridging callbacks](#bridging-callbacks)
|
|
7
|
+
- [Hot streams](#hot-streams)
|
|
8
|
+
- [Testing](#testing)
|
|
9
|
+
<!-- /toc -->
|
|
10
|
+
|
|
3
11
|
Loaded on demand from `../SKILL.md`.
|
|
4
12
|
|
|
5
13
|
## Flow
|