@mmerterden/multi-agent-pipeline 20.2.1 → 20.3.1
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 +919 -1
- package/README.md +104 -81
- package/README.tr.md +103 -62
- package/docs/FIGMA_PIPELINE.md +35 -35
- package/docs/adr/0006-skills-core-external-split.md +1 -1
- package/docs/adr/0007-multi-tool-adapter-framework.md +6 -0
- package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +7 -0
- package/docs/architecture.md +50 -14
- package/docs/best-practices.md +1 -1
- package/docs/ecosystem.md +56 -32
- package/docs/facts.json +10 -10
- package/docs/features.md +97 -5
- package/docs/recovery-guide.md +7 -14
- package/docs/server-readiness.md +31 -24
- package/index.js +1 -1
- package/install/_common.mjs +3 -5
- package/install/_platform-filter.mjs +23 -1
- package/install/_unattended-profile.mjs +321 -75
- package/install/claude.mjs +51 -10
- package/install/codex.mjs +2 -0
- package/install/copilot.mjs +2 -0
- package/install/index.mjs +30 -17
- package/install/templates/claude-hooks.json +16 -5
- package/install/templates/copilot-instructions.md +1 -1
- package/install/templates/multi-agent-autopilot-awake.plist.template +48 -0
- package/install/templates/multi-agent-autopilot.plist.template +12 -5
- package/install/unattended-profile-legacy.json +80 -0
- package/manifest.json +617 -483
- package/package.json +8 -3
- package/pipeline/agents/code-reviewer.md +10 -0
- package/pipeline/agents/plan-critic.md +98 -0
- package/pipeline/agents/security-auditor.md +10 -0
- package/pipeline/agents/task-clarifier.md +10 -0
- package/pipeline/commands/multi-agent/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/analysis/SKILL.md +6 -2
- package/pipeline/commands/multi-agent/analysis-jira/SKILL.md +12 -1
- package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/autopilot/SKILL.md +6 -2
- package/pipeline/commands/multi-agent/autopilot-off/SKILL.md +36 -6
- package/pipeline/commands/multi-agent/autopilot-on/SKILL.md +77 -12
- package/pipeline/commands/multi-agent/autopilot-status/SKILL.md +29 -8
- package/pipeline/commands/multi-agent/build-optimize/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/channels/SKILL.md +9 -9
- package/pipeline/commands/multi-agent/complaint-analysis/SKILL.md +5 -1
- package/pipeline/commands/multi-agent/create-jira/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/design-check/SKILL.md +16 -11
- package/pipeline/commands/multi-agent/diff-explain/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/doctor/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/feedback/SKILL.md +5 -1
- package/pipeline/commands/multi-agent/forget/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/graph/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/help/SKILL.md +37 -39
- package/pipeline/commands/multi-agent/ios-coding-standard/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/issue/SKILL.md +7 -1
- package/pipeline/commands/multi-agent/jira/SKILL.md +7 -1
- package/pipeline/commands/multi-agent/kill/SKILL.md +9 -3
- package/pipeline/commands/multi-agent/language/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/log/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/manual-test/SKILL.md +5 -0
- package/pipeline/commands/multi-agent/model/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/prune-logs/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/prune-prompts/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/purge/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/refactor/SKILL.md +5 -0
- package/pipeline/commands/multi-agent/research/SKILL.md +49 -0
- package/pipeline/commands/multi-agent/resume/SKILL.md +29 -6
- package/pipeline/commands/multi-agent/review/SKILL.md +28 -9
- package/pipeline/commands/multi-agent/review-analysis/SKILL.md +5 -1
- package/pipeline/commands/multi-agent/review-issue/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/review-jira/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/route-off/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/route-on/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/route-status/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/routines/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/save/SKILL.md +6 -2
- package/pipeline/commands/multi-agent/scaffold/SKILL.md +47 -0
- package/pipeline/commands/multi-agent/scan/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/search/SKILL.md +12 -8
- package/pipeline/commands/multi-agent/security-review/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/serve/SKILL.md +62 -0
- package/pipeline/commands/multi-agent/setup/SKILL.md +27 -36
- package/pipeline/commands/multi-agent/stack/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/status/SKILL.md +10 -9
- package/pipeline/commands/multi-agent/steer/SKILL.md +5 -1
- package/pipeline/commands/multi-agent/store-ready/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/sync/SKILL.md +13 -13
- package/pipeline/commands/multi-agent/test/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/test-accessibility/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/test-dark-mode/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/test-dynamic-type/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/test-screenshots/SKILL.md +5 -1
- package/pipeline/commands/multi-agent/testflight-validation/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/uninstall/SKILL.md +5 -1
- package/pipeline/commands/multi-agent/update/SKILL.md +4 -0
- package/pipeline/contract/CHANGELOG.md +74 -0
- package/pipeline/contract/README.md +126 -0
- package/pipeline/contract/build.mjs +427 -0
- package/pipeline/contract/fixtures/answer-result.json +11 -0
- package/pipeline/contract/fixtures/error-invalid-request.json +8 -0
- package/pipeline/contract/fixtures/error-unauthorized.json +5 -0
- package/pipeline/contract/fixtures/error-unsigned.json +5 -0
- package/pipeline/contract/fixtures/issues-empty.json +18 -0
- package/pipeline/contract/fixtures/launch-plan.json +31 -0
- package/pipeline/contract/fixtures/runs-awaiting-question.json +70 -0
- package/pipeline/contract/fixtures/runs-empty.json +6 -0
- package/pipeline/contract/fixtures/runs-failed.json +84 -0
- package/pipeline/contract/fixtures/runs-old-schema.json +70 -0
- package/pipeline/contract/fixtures/runs-pr-opened-redacted.json +101 -0
- package/pipeline/contract/fixtures/runs-pr-opened.json +106 -0
- package/pipeline/contract/fixtures/runs-running.json +84 -0
- package/pipeline/contract/fixtures/worktrees-empty.json +4 -0
- package/pipeline/contract/frozen/toolbox.json +107 -0
- package/pipeline/contract/manifest.json +263 -0
- package/pipeline/contract/types/index.d.ts +343 -0
- package/pipeline/lib/_jira-auth.sh +6 -2
- package/pipeline/lib/account-resolver.sh +1 -1
- package/pipeline/lib/autopilot-state.sh +19 -0
- package/pipeline/lib/context-link-extractor.sh +12 -5
- package/pipeline/lib/credential-inventory.sh +12 -5
- package/pipeline/lib/credential-store.sh +116 -185
- package/pipeline/lib/fetch-confluence.sh +44 -3
- package/pipeline/lib/fetch-document.sh +3 -4
- package/pipeline/lib/fetch-fortify.sh +1 -1
- package/pipeline/lib/figma-mcp-refresh.sh +2 -2
- package/pipeline/lib/figma-token.sh +5 -1
- package/pipeline/lib/issue-fetcher.sh +233 -16
- package/pipeline/lib/json-file-lock.mjs +172 -0
- package/pipeline/lib/model-dispatch.sh +21 -12
- package/pipeline/lib/model-rung.sh +6 -1
- package/pipeline/lib/multi-repo-pipeline.sh +1 -1
- package/pipeline/lib/outbound-gate.mjs +46 -16
- package/pipeline/lib/parse-complaints.sh +14 -7
- package/pipeline/lib/plan-todos.sh +3 -3
- package/pipeline/lib/post-pr-review.sh +9 -9
- package/pipeline/lib/pr-request-location.mjs +85 -0
- package/pipeline/lib/regular-file.mjs +153 -0
- package/pipeline/lib/repo-hygiene.sh +17 -0
- package/pipeline/lib/route-state.sh +5 -1
- package/pipeline/lib/run-paths.sh +3 -2
- package/pipeline/lib/stack-detect.sh +19 -1
- package/pipeline/lib/unattended-profile-check.mjs +178 -0
- package/pipeline/lib/unattended-settings-location.mjs +28 -0
- package/pipeline/lib/unattended.mjs +76 -0
- package/pipeline/lib/unattended.sh +32 -0
- package/pipeline/lib/untrusted.mjs +76 -0
- package/pipeline/lib/usage-endpoint.mjs +33 -0
- package/pipeline/lib/user-facing.mjs +82 -0
- package/pipeline/lib/user-facing.sh +58 -0
- package/pipeline/multi-agent-refs/_dev-context.md +1 -1
- package/pipeline/multi-agent-refs/analysis/evidence.md +4 -0
- package/pipeline/multi-agent-refs/analysis/locked.md +2 -2
- package/pipeline/multi-agent-refs/analysis/render.md +4 -3
- package/pipeline/multi-agent-refs/analysis/resolve.md +3 -1
- package/pipeline/multi-agent-refs/analysis/synthesis.md +4 -5
- package/pipeline/multi-agent-refs/analysis-template.md +10 -17
- package/pipeline/multi-agent-refs/channels/jira.md +1 -1
- package/pipeline/multi-agent-refs/component-dispatch.md +3 -3
- package/pipeline/multi-agent-refs/conventions-defaults.md +32 -32
- package/pipeline/multi-agent-refs/cross-cli-contract.md +10 -17
- package/pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md +37 -9
- package/pipeline/multi-agent-refs/features/autopilot-operations.md +277 -0
- package/pipeline/multi-agent-refs/features/constitution.md +196 -0
- package/pipeline/multi-agent-refs/features/doctor.md +6 -3
- package/pipeline/multi-agent-refs/features/external-context-injection.md +6 -1
- package/pipeline/multi-agent-refs/features/jira-context.md +1 -1
- package/pipeline/multi-agent-refs/features/maturity-followup.md +43 -23
- package/pipeline/multi-agent-refs/features/model-fallback.md +9 -0
- package/pipeline/multi-agent-refs/features/phone-api.md +306 -0
- package/pipeline/multi-agent-refs/features/plan-critic.md +159 -0
- package/pipeline/multi-agent-refs/features/research.md +150 -0
- package/pipeline/multi-agent-refs/features/review-decision.md +185 -0
- package/pipeline/multi-agent-refs/features/scaffold.md +160 -0
- package/pipeline/multi-agent-refs/features/security-audit.md +6 -2
- package/pipeline/multi-agent-refs/features/skill-conformance.md +4 -1
- package/pipeline/multi-agent-refs/features/stack-adapters.md +116 -0
- package/pipeline/multi-agent-refs/features/unattended-gates.md +316 -0
- package/pipeline/multi-agent-refs/features/unattended-security.md +731 -0
- package/pipeline/multi-agent-refs/features/url-enrichment.md +2 -2
- package/pipeline/multi-agent-refs/features/usage-reporting.md +127 -35
- package/pipeline/multi-agent-refs/features/verify-by-test.md +1 -1
- package/pipeline/multi-agent-refs/features/visual-evidence.md +7 -7
- package/pipeline/multi-agent-refs/keychain.md +6 -11
- package/pipeline/multi-agent-refs/payload-contracts.md +2 -2
- package/pipeline/multi-agent-refs/phases/log-format.md +2 -3
- package/pipeline/multi-agent-refs/phases/modes.md +10 -12
- package/pipeline/multi-agent-refs/phases/operations.md +11 -5
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +73 -81
- package/pipeline/multi-agent-refs/phases/phase-1-plan.md +22 -22
- package/pipeline/multi-agent-refs/phases/phase-2-dev.md +42 -66
- package/pipeline/multi-agent-refs/phases/phase-3-review.md +45 -79
- package/pipeline/multi-agent-refs/phases/phase-4-commit.md +28 -38
- package/pipeline/multi-agent-refs/phases/phase-5-report.md +27 -25
- package/pipeline/multi-agent-refs/phases.md +1 -1
- package/pipeline/multi-agent-refs/picker-contract.md +1 -1
- package/pipeline/multi-agent-refs/progress-contract.md +13 -16
- package/pipeline/multi-agent-refs/readiness-review.md +1 -1
- package/pipeline/multi-agent-refs/research/engine.md +91 -0
- package/pipeline/multi-agent-refs/rules.md +6 -4
- package/pipeline/multi-agent-refs/setup/repo-discovery.md +2 -2
- package/pipeline/multi-agent-refs/tracker-contract.md +2 -2
- package/pipeline/multi-agent-refs/unattended-contract.md +68 -16
- package/pipeline/rules/figma-pipeline.md +12 -12
- package/pipeline/schemas/agent-state.schema.json +480 -18
- package/pipeline/schemas/analysis-spec.schema.json +4 -4
- package/pipeline/schemas/answer-request.schema.json +24 -0
- package/pipeline/schemas/answer-result.schema.json +28 -0
- package/pipeline/schemas/autopilot-config.schema.json +111 -13
- package/pipeline/schemas/command-parameters.schema.json +99 -0
- package/pipeline/schemas/constitution.schema.json +56 -0
- package/pipeline/schemas/contract-error.schema.json +52 -0
- package/pipeline/schemas/design-check-config.schema.json +5 -1
- package/pipeline/schemas/issues.schema.json +61 -0
- package/pipeline/schemas/launch-plan.schema.json +46 -0
- package/pipeline/schemas/launch-request.schema.json +45 -0
- package/pipeline/schemas/launch.json +61 -0
- package/pipeline/schemas/launch.schema.json +84 -0
- package/pipeline/schemas/phases.json +2 -2
- package/pipeline/schemas/phases.schema.json +68 -0
- package/pipeline/schemas/phone-devices.schema.json +61 -0
- package/pipeline/schemas/phone-signed-request.schema.json +67 -0
- package/pipeline/schemas/plan-critique.schema.json +99 -0
- package/pipeline/schemas/plan-todos.schema.json +7 -7
- package/pipeline/schemas/planning-output.schema.json +5 -0
- package/pipeline/schemas/pr-request.schema.json +46 -0
- package/pipeline/schemas/prefs.schema.json +79 -8
- package/pipeline/schemas/research-output.schema.json +118 -0
- package/pipeline/schemas/review-file-exclusions.schema.json +25 -0
- package/pipeline/schemas/reviewer-output.schema.json +40 -4
- package/pipeline/schemas/run-questions.json +392 -0
- package/pipeline/schemas/run-questions.schema.json +118 -0
- package/pipeline/schemas/runs-index.schema.json +189 -0
- package/pipeline/schemas/scaffold-manifest.schema.json +43 -0
- package/pipeline/schemas/secret-patterns.schema.json +28 -0
- package/pipeline/schemas/stack-adapters.json +527 -0
- package/pipeline/schemas/stack-adapters.schema.json +184 -0
- package/pipeline/schemas/token-budget.json +1 -1
- package/pipeline/schemas/token-budget.schema.json +26 -0
- package/pipeline/schemas/triage-output.schema.json +64 -3
- package/pipeline/schemas/unattended-policy.json +139 -0
- package/pipeline/schemas/unattended-policy.schema.json +73 -0
- package/pipeline/schemas/unattended-profile.json +248 -0
- package/pipeline/schemas/unattended-profile.schema.json +198 -0
- package/pipeline/schemas/worktrees.schema.json +51 -0
- package/pipeline/scripts/README.md +1 -0
- package/pipeline/scripts/_autopilot-config.mjs +130 -0
- package/pipeline/scripts/_autopilot-ops.mjs +567 -0
- package/pipeline/scripts/_autopilot-outcomes.mjs +174 -0
- package/pipeline/scripts/_command-contract.mjs +384 -0
- package/pipeline/scripts/_cost.mjs +40 -0
- package/pipeline/scripts/_notices.mjs +160 -0
- package/pipeline/scripts/_phone-auth.mjs +485 -0
- package/pipeline/scripts/_pre-existing.mjs +294 -0
- package/pipeline/scripts/_redact.mjs +77 -0
- package/pipeline/scripts/_run-paths.mjs +4 -2
- package/pipeline/scripts/_stack-adapter.mjs +678 -0
- package/pipeline/scripts/_stack-routing.mjs +1 -1
- package/pipeline/scripts/agent-guard.py +348 -37
- package/pipeline/scripts/agent-guard.sh +41 -13
- package/pipeline/scripts/analysis-story-tree.mjs +79 -3
- package/pipeline/scripts/answer-question.mjs +181 -0
- package/pipeline/scripts/audit-log-rotate.sh +1 -4
- package/pipeline/scripts/audit-log.sh +4 -4
- package/pipeline/scripts/autopilot-arming.mjs +389 -21
- package/pipeline/scripts/autopilot-awake.mjs +255 -0
- package/pipeline/scripts/autopilot-intake.mjs +137 -36
- package/pipeline/scripts/autopilot-menubar.swift +156 -44
- package/pipeline/scripts/autopilot-publish.mjs +1625 -0
- package/pipeline/scripts/autopilot-runner.mjs +1678 -222
- package/pipeline/scripts/autopilot-status.sh +198 -33
- package/pipeline/scripts/build-lock.sh +120 -0
- package/pipeline/scripts/build-references.mjs +4 -1
- package/pipeline/scripts/build-stack-plugins.mjs +59 -22
- package/pipeline/scripts/capture-flush.sh +1 -1
- package/pipeline/scripts/capture-resume.sh +13 -9
- package/pipeline/scripts/check-derived-drift.mjs +52 -11
- package/pipeline/scripts/commands.mjs +88 -0
- package/pipeline/scripts/constitution.mjs +362 -0
- package/pipeline/scripts/contract-server.mjs +776 -0
- package/pipeline/scripts/cost-analyze.mjs +89 -39
- package/pipeline/scripts/diff-explain.mjs +12 -1
- package/pipeline/scripts/doctor.mjs +77 -28
- package/pipeline/scripts/evidence-gate.mjs +192 -12
- package/pipeline/scripts/feedback-send.mjs +4 -2
- package/pipeline/scripts/gate-ledger.mjs +449 -0
- package/pipeline/scripts/gc-abandoned.sh +132 -13
- package/pipeline/scripts/gen-facts.mjs +31 -15
- package/pipeline/scripts/gen-mode-dispatch.mjs +3 -3
- package/pipeline/scripts/github-ssh-setup.sh +140 -29
- package/pipeline/scripts/graph-mermaid.mjs +4 -1
- package/pipeline/scripts/issues.mjs +236 -0
- package/pipeline/scripts/jira-attach.sh +6 -2
- package/pipeline/scripts/jira-search.sh +4 -3
- package/pipeline/scripts/keychain-save.sh +125 -24
- package/pipeline/scripts/keychain.py +63 -93
- package/pipeline/scripts/launch-request.mjs +747 -0
- package/pipeline/scripts/localize-commands.mjs +4 -10
- package/pipeline/scripts/log-metric.sh +6 -5
- package/pipeline/scripts/maturity-followup.mjs +13 -4
- package/pipeline/scripts/memory-save.sh +25 -0
- package/pipeline/scripts/migrate-prefs.mjs +4 -3
- package/pipeline/scripts/open-questions-gate.mjs +276 -0
- package/pipeline/scripts/phase-tracker.sh +41 -27
- package/pipeline/scripts/phase0-exit-gate.mjs +22 -4
- package/pipeline/scripts/phone-devices.mjs +224 -0
- package/pipeline/scripts/plan-coverage-gate.mjs +200 -66
- package/pipeline/scripts/plan-critique-gate.mjs +591 -0
- package/pipeline/scripts/pr-request.mjs +188 -0
- package/pipeline/scripts/pre-commit-check.sh +115 -4
- package/pipeline/scripts/probe-evidence-capability.sh +44 -5
- package/pipeline/scripts/record-phase.mjs +71 -0
- package/pipeline/scripts/render-agent-log-cost.sh +17 -2
- package/pipeline/scripts/render-cost-summary.sh +1 -1
- package/pipeline/scripts/render-work-summary.sh +1 -1
- package/pipeline/scripts/require-supported-version.sh +4 -1
- package/pipeline/scripts/research-gate.mjs +704 -0
- package/pipeline/scripts/review-decision-gate.mjs +403 -0
- package/pipeline/scripts/routine-registry.mjs +5 -2
- package/pipeline/scripts/runs-index.mjs +135 -27
- package/pipeline/scripts/scaffold-gate.mjs +393 -0
- package/pipeline/scripts/skill-conformance.mjs +25 -8
- package/pipeline/scripts/skill-siblings.mjs +2 -1
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +32 -6
- package/pipeline/scripts/smoke-schema-validation.sh +6 -2
- package/pipeline/scripts/spec-consistency-gate.mjs +469 -0
- package/pipeline/scripts/symbol-existence-gate.mjs +450 -0
- package/pipeline/scripts/test-gap-scan.mjs +40 -2
- package/pipeline/scripts/test-integrity-gate.mjs +20 -4
- package/pipeline/scripts/test-strength.mjs +484 -0
- package/pipeline/scripts/test-summary.mjs +651 -0
- package/pipeline/scripts/triage-memory.mjs +49 -9
- package/pipeline/scripts/unattended_policy.py +2786 -0
- package/pipeline/scripts/uninstall.mjs +10 -10
- package/pipeline/scripts/update-issue-progress.sh +1 -1
- package/pipeline/scripts/usage-identity.mjs +288 -0
- package/pipeline/scripts/usage-register.mjs +187 -67
- package/pipeline/scripts/usage-report.mjs +232 -67
- package/pipeline/scripts/validate-complaint-doc.mjs +28 -10
- package/pipeline/scripts/validate-planning.mjs +6 -0
- package/pipeline/scripts/verify-citations.mjs +151 -38
- package/pipeline/scripts/verify.mjs +58 -18
- package/pipeline/scripts/worktree-prepare.sh +126 -0
- package/pipeline/scripts/worktrees.mjs +124 -0
- package/pipeline/scripts/write-state.mjs +48 -17
- package/pipeline/skills/.skill-manifest.json +222 -226
- package/pipeline/skills/.skills-index.json +77 -88
- package/pipeline/skills/shared/README.md +44 -45
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +3 -2
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +10 -9
- package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +6 -5
- package/pipeline/skills/shared/core/multi-agent-analysis-jira/SKILL.md +11 -3
- package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +4 -3
- package/pipeline/skills/shared/core/multi-agent-autopilot-off/SKILL.md +32 -6
- package/pipeline/skills/shared/core/multi-agent-autopilot-on/SKILL.md +66 -8
- package/pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md +27 -9
- package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +7 -4
- package/pipeline/skills/shared/core/multi-agent-complaint-analysis/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-design-check/SKILL.md +7 -5
- package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-doctor/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent-feedback/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-forget/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-garbage-collect/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-graph/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-kill/SKILL.md +7 -4
- package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-log/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-model/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-prune-prompts/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-research/SKILL.md +35 -0
- package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +7 -3
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +7 -5
- package/pipeline/skills/shared/core/multi-agent-review-analysis/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-review-issue/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent-review-jira/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-route-off/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-route-on/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-route-status/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-routines/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-save/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent-scaffold/SKILL.md +30 -0
- package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +4 -3
- package/pipeline/skills/shared/core/multi-agent-security-review/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-serve/SKILL.md +60 -0
- package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +8 -8
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +7 -8
- package/pipeline/skills/shared/core/multi-agent-steer/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-store-ready/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +10 -10
- package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-test-accessibility/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-test-dark-mode/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-test-dynamic-type/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-test-screenshots/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-testflight-validation/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-uninstall/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +2 -1
- package/pipeline/skills/shared/external/NOTICE-avdlee-swiftui-agent-skill.md +46 -0
- package/pipeline/skills/shared/external/NOTICE-dimillian-skills.md +9 -3
- package/pipeline/skills/shared/external/NOTICE-paul-hudson-skills.md +54 -0
- package/pipeline/skills/shared/external/NOTICE-swift-ios-skills.md +9 -11
- package/pipeline/skills/shared/external/NOTICE-vibeship-spawner-skills.md +203 -0
- package/pipeline/skills/shared/external/NOTICE-xcode-build-skills.md +10 -3
- package/pipeline/skills/shared/external/accessibility-compliance-accessibility-audit/SKILL.md +131 -25
- package/pipeline/skills/shared/external/agent-introspection-debugging/SKILL.md +4 -3
- package/pipeline/skills/shared/external/alarmkit/SKILL.md +2 -1
- package/pipeline/skills/shared/external/android-architecture/SKILL.md +85 -76
- package/pipeline/skills/shared/external/android-build-quality-gates/SKILL.md +51 -3
- package/pipeline/skills/shared/external/android-build-quality-gates/references/patterns.md +9 -0
- package/pipeline/skills/shared/external/android-datastore/SKILL.md +4 -3
- package/pipeline/skills/shared/external/android-design-tokens-codegen/SKILL.md +4 -3
- package/pipeline/skills/shared/external/android-jetpack-compose-expert/SKILL.md +106 -181
- package/pipeline/skills/shared/external/android-jetpack-compose-expert/references/patterns.md +147 -0
- package/pipeline/skills/shared/external/android-mvi-viewmodel/SKILL.md +45 -4
- package/pipeline/skills/shared/external/android-performance/SKILL.md +27 -2
- package/pipeline/skills/shared/external/android-performance/references/patterns.md +37 -37
- package/pipeline/skills/shared/external/api-patterns/SKILL.md +111 -67
- package/pipeline/skills/shared/external/api-patterns/references/contract-details.md +128 -0
- package/pipeline/skills/shared/external/api-security-best-practices/SKILL.md +136 -186
- package/pipeline/skills/shared/external/api-security-best-practices/references/abuse-controls.md +140 -0
- package/pipeline/skills/shared/external/api-security-best-practices/references/identity-and-access.md +207 -0
- package/pipeline/skills/shared/external/api-security-best-practices/references/operations.md +66 -0
- package/pipeline/skills/shared/external/api-security-best-practices/references/request-handling.md +175 -0
- package/pipeline/skills/shared/external/app-clips/SKILL.md +2 -0
- package/pipeline/skills/shared/external/app-intents/SKILL.md +2 -0
- package/pipeline/skills/shared/external/app-store-changelog/SKILL.md +4 -3
- package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +2 -0
- package/pipeline/skills/shared/external/app-store-review/SKILL.md +2 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +2 -0
- package/pipeline/skills/shared/external/architecture/SKILL.md +106 -39
- package/pipeline/skills/shared/external/architecture/references/adr-and-review.md +76 -0
- package/pipeline/skills/shared/external/authentication/SKILL.md +2 -0
- package/pipeline/skills/shared/external/avkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/background-processing/SKILL.md +2 -1
- package/pipeline/skills/shared/external/backlog/SKILL.md +3 -2
- package/pipeline/skills/shared/external/callkit-voip/SKILL.md +2 -0
- package/pipeline/skills/shared/external/callkit-voip/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +3 -2
- package/pipeline/skills/shared/external/clean-code/SKILL.md +192 -90
- package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +2 -1
- package/pipeline/skills/shared/external/cloudkit-sync/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/compose-components/SKILL.md +4 -4
- package/pipeline/skills/shared/external/compose-navigation/SKILL.md +22 -22
- package/pipeline/skills/shared/external/compose-navigation/references/patterns.md +10 -10
- package/pipeline/skills/shared/external/compose-testing/SKILL.md +13 -6
- package/pipeline/skills/shared/external/compose-testing/references/patterns.md +59 -59
- package/pipeline/skills/shared/external/contacts-framework/SKILL.md +2 -0
- package/pipeline/skills/shared/external/context-compression/SKILL.md +118 -250
- package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +2 -0
- package/pipeline/skills/shared/external/core-data/SKILL.md +2 -0
- package/pipeline/skills/shared/external/core-motion/SKILL.md +2 -0
- package/pipeline/skills/shared/external/core-nfc/SKILL.md +2 -0
- package/pipeline/skills/shared/external/coreml/SKILL.md +2 -1
- package/pipeline/skills/shared/external/council/SKILL.md +2 -1
- package/pipeline/skills/shared/external/cryptokit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/css-modern/SKILL.md +3 -2
- package/pipeline/skills/shared/external/database-patterns/SKILL.md +3 -2
- package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +2 -0
- package/pipeline/skills/shared/external/debugging-strategies/SKILL.md +130 -20
- package/pipeline/skills/shared/external/debugging-strategies/references/hard-cases.md +54 -0
- package/pipeline/skills/shared/external/device-integrity/SKILL.md +2 -0
- package/pipeline/skills/shared/external/docker-expert/SKILL.md +137 -381
- package/pipeline/skills/shared/external/docker-expert/references/patterns.md +98 -0
- package/pipeline/skills/shared/external/energykit/SKILL.md +2 -1
- package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +3 -1
- package/pipeline/skills/shared/external/eventkit-calendar/evals/evals.json +2 -2
- package/pipeline/skills/shared/external/fastapi-pro/SKILL.md +116 -185
- package/pipeline/skills/shared/external/fastapi-pro/references/app-structure.md +235 -0
- package/pipeline/skills/shared/external/fastapi-pro/references/testing-and-deployment.md +69 -0
- package/pipeline/skills/shared/external/firebase/SKILL.md +4 -3
- package/pipeline/skills/shared/external/github-actions-templates/SKILL.md +151 -293
- package/pipeline/skills/shared/external/github-actions-templates/references/patterns.md +96 -0
- package/pipeline/skills/shared/external/healthkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/hig-components-content/SKILL.md +69 -72
- package/pipeline/skills/shared/external/hig-components-content/references/content-views.md +111 -0
- package/pipeline/skills/shared/external/hig-components-layout/SKILL.md +77 -86
- package/pipeline/skills/shared/external/hig-components-layout/references/containers.md +98 -0
- package/pipeline/skills/shared/external/hig-components-status/SKILL.md +150 -78
- package/pipeline/skills/shared/external/hig-components-system/SKILL.md +76 -97
- package/pipeline/skills/shared/external/hig-components-system/references/surfaces.md +98 -0
- package/pipeline/skills/shared/external/hig-foundations/SKILL.md +48 -76
- package/pipeline/skills/shared/external/hig-foundations/references/foundations-detail.md +132 -0
- package/pipeline/skills/shared/external/hig-inputs/SKILL.md +147 -106
- package/pipeline/skills/shared/external/hig-patterns/SKILL.md +61 -77
- package/pipeline/skills/shared/external/hig-patterns/references/patterns.md +92 -0
- package/pipeline/skills/shared/external/hig-platforms/SKILL.md +147 -77
- package/pipeline/skills/shared/external/hig-technologies/SKILL.md +61 -121
- package/pipeline/skills/shared/external/hig-technologies/references/technologies.md +108 -0
- package/pipeline/skills/shared/external/homekit-matter/SKILL.md +2 -0
- package/pipeline/skills/shared/external/homekit-matter/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/html-semantic/SKILL.md +3 -2
- package/pipeline/skills/shared/external/humanizer/SKILL.md +2 -1
- package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +2 -0
- package/pipeline/skills/shared/external/ios-coding-standard/SKILL.md +2 -1
- package/pipeline/skills/shared/external/ios-coding-standard/references/STANDARD.md +14 -2
- package/pipeline/skills/shared/external/ios-coding-standard/references/rules.yml +2 -2
- package/pipeline/skills/shared/external/ios-debugger-agent/SKILL.md +4 -3
- package/pipeline/skills/shared/external/ios-localization/SKILL.md +8 -6
- package/pipeline/skills/shared/external/ios-localization/evals/evals.json +2 -2
- package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +11 -11
- package/pipeline/skills/shared/external/ios-module-structure/SKILL.md +2 -1
- package/pipeline/skills/shared/external/ios-networking/SKILL.md +2 -0
- package/pipeline/skills/shared/external/ios-simulator/SKILL.md +2 -0
- package/pipeline/skills/shared/external/kotlin-coroutines-expert/SKILL.md +102 -193
- package/pipeline/skills/shared/external/kotlin-coroutines-expert/references/patterns.md +103 -0
- package/pipeline/skills/shared/external/live-activities/SKILL.md +4 -2
- package/pipeline/skills/shared/external/live-activities/evals/evals.json +2 -2
- package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +7 -9
- package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +3 -3
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +2 -2
- package/pipeline/skills/shared/external/macos-menubar-tuist-app/SKILL.md +4 -3
- package/pipeline/skills/shared/external/macos-spm-app-packaging/SKILL.md +5 -3
- package/pipeline/skills/shared/external/mapkit-location/SKILL.md +2 -0
- package/pipeline/skills/shared/external/mapkit-location/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +2 -0
- package/pipeline/skills/shared/external/metrickit-diagnostics/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/monorepo-architect/SKILL.md +149 -46
- package/pipeline/skills/shared/external/monorepo-architect/references/patterns.md +70 -0
- package/pipeline/skills/shared/external/musickit-audio/SKILL.md +2 -0
- package/pipeline/skills/shared/external/musickit-audio/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/natural-language/SKILL.md +2 -0
- package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +3 -2
- package/pipeline/skills/shared/external/nodejs-backend-patterns/SKILL.md +91 -21
- package/pipeline/skills/shared/external/nodejs-backend-patterns/references/runtime-patterns.md +247 -0
- package/pipeline/skills/shared/external/nodejs-backend-patterns/references/testing-and-frameworks.md +57 -0
- package/pipeline/skills/shared/external/observability-engineer/SKILL.md +155 -232
- package/pipeline/skills/shared/external/observability-engineer/references/patterns.md +75 -0
- package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +2 -0
- package/pipeline/skills/shared/external/passkit-wallet/evals/evals.json +2 -2
- package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +18 -18
- package/pipeline/skills/shared/external/pdfkit/SKILL.md +2 -1
- package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +2 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/permissionkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +2 -1
- package/pipeline/skills/shared/external/push-notifications/SKILL.md +2 -0
- package/pipeline/skills/shared/external/python-patterns/SKILL.md +3 -2
- package/pipeline/skills/shared/external/react-best-practices/SKILL.md +3 -2
- package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +2 -2
- package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/rest-api-design/SKILL.md +3 -2
- package/pipeline/skills/shared/external/retrofit-networking/SKILL.md +7 -7
- package/pipeline/skills/shared/external/retrofit-networking/references/patterns.md +69 -69
- package/pipeline/skills/shared/external/room-database/references/patterns.md +126 -126
- package/pipeline/skills/shared/external/search-first/SKILL.md +2 -1
- package/pipeline/skills/shared/external/security-review/SKILL.md +4 -3
- package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +2 -2
- package/pipeline/skills/shared/external/signal-community/SKILL.md +1 -1
- package/pipeline/skills/shared/external/skill-creator/SKILL.md +2 -1
- package/pipeline/skills/shared/external/speech-recognition/SKILL.md +2 -1
- package/pipeline/skills/shared/external/spm-build-analysis/SKILL.md +2 -0
- package/pipeline/skills/shared/external/storekit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swift-architecture/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swift-charts/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swift-codable/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +3 -1
- package/pipeline/skills/shared/external/swift-concurrency-expert/SKILL.md +5 -4
- package/pipeline/skills/shared/external/swift-concurrency-pro/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swift-language/SKILL.md +3 -1
- package/pipeline/skills/shared/external/swift-security/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swift-testing/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swift-testing-pro/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +10 -0
- package/pipeline/skills/shared/external/swiftdata/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftdata-pro/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swiftlint/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/SKILL.md +3 -1
- package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +3 -1
- package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +3 -1
- package/pipeline/skills/shared/external/swiftui-performance-audit/SKILL.md +5 -4
- package/pipeline/skills/shared/external/swiftui-pro/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swiftui-ui-patterns/SKILL.md +5 -4
- package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-view-refactor/SKILL.md +4 -3
- package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/tailwind-css/SKILL.md +3 -2
- package/pipeline/skills/shared/external/testing-backend/SKILL.md +3 -2
- package/pipeline/skills/shared/external/tipkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +3 -2
- package/pipeline/skills/shared/external/vision-framework/SKILL.md +2 -0
- package/pipeline/skills/shared/external/vue-composition/SKILL.md +3 -2
- package/pipeline/skills/shared/external/weatherkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/web-accessibility/SKILL.md +3 -2
- package/pipeline/skills/shared/external/web-performance/SKILL.md +3 -2
- package/pipeline/skills/shared/external/web-testing/SKILL.md +3 -2
- package/pipeline/skills/shared/external/widgetkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +1 -1
- package/pipeline/skills/shared/external/xcode-build-benchmark/SKILL.md +2 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/SKILL.md +2 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/SKILL.md +2 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/SKILL.md +2 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/SKILL.md +2 -0
- package/pipeline/skills/skills-index.md +40 -41
- package/docs/token-budget-history.md +0 -24
- package/pipeline/skills/shared/external/agentflow/SKILL.md +0 -199
- package/pipeline/skills/shared/external/android-ui-verification/SKILL.md +0 -66
- package/pipeline/skills/shared/external/api-security-best-practices/references/auth.md +0 -299
- package/pipeline/skills/shared/external/api-security-best-practices/references/input-validation.md +0 -255
- package/pipeline/skills/shared/external/api-security-best-practices/references/rate-limiting.md +0 -167
- package/pipeline/skills/shared/external/closed-loop-delivery/SKILL.md +0 -116
- package/pipeline/skills/shared/external/ios-developer/SKILL.md +0 -216
|
@@ -1,125 +1,65 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: hig-technologies
|
|
3
|
-
description: "Apple
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
description: "Apple HIG for system technologies: Sign in with Apple, passkeys, Apple Pay, Wallet, Siri and App Intents, HealthKit, HomeKit, iCloud, Maps, SharePlay, CarPlay. Use when an app adopts an Apple technology."
|
|
4
|
+
metadata:
|
|
5
|
+
risk: safe
|
|
6
|
+
source: multi-agent-pipeline
|
|
7
|
+
date_added: "2026-09-25"
|
|
7
8
|
---
|
|
8
9
|
|
|
9
|
-
#
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
3. **
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
## Topics
|
|
66
|
-
|
|
67
|
-
| Topic | Key content |
|
|
68
|
-
|---|---|
|
|
69
|
-
| Siri | Intents, shortcuts, voice interaction, App Shortcuts |
|
|
70
|
-
| Apple Pay | Payment buttons, checkout flow, security |
|
|
71
|
-
| Tap to Pay | Merchant flows, contactless payment |
|
|
72
|
-
| In-app purchase | Subscriptions, one-time purchases, transparency |
|
|
73
|
-
| HealthKit | Health data access, privacy, permissions |
|
|
74
|
-
| CareKit | Care plans, tasks, health management |
|
|
75
|
-
| ResearchKit | Studies, informed consent, data collection |
|
|
76
|
-
| HomeKit | Smart home control, device state, scenes |
|
|
77
|
-
| ARKit | Spatial context, surface detection, setup |
|
|
78
|
-
| Core ML | Predictions, smart features, confidence handling |
|
|
79
|
-
| Generative AI | Attribution, editing, responsible AI, uncertainty |
|
|
80
|
-
| iCloud | CloudKit, cross-device sync, conflict resolution |
|
|
81
|
-
| Sign in with Apple | Authentication, privacy, button styles |
|
|
82
|
-
| ID Verifier | Identity verification, document scanning |
|
|
83
|
-
| SharePlay | Shared experiences, participant presence |
|
|
84
|
-
| AirPlay | Media streaming, Now Playing, wireless display |
|
|
85
|
-
| CarPlay | Driver safety, permitted app types, large targets |
|
|
86
|
-
| Game Center | Achievements, leaderboards, multiplayer |
|
|
87
|
-
| VoiceOver | Screen reader, labels, traits, accessibility |
|
|
88
|
-
| Wallet | Passes, tickets, loyalty cards |
|
|
89
|
-
| NFC | Tag reading, quick interactions, App Clips |
|
|
90
|
-
| Maps | Location display, annotations, directions |
|
|
91
|
-
| Mac Catalyst | iPad to Mac, menu bar, keyboard, pointer |
|
|
92
|
-
| Live Photos | Motion capture, playback, editing |
|
|
93
|
-
| iMessage apps | Messages extension, stickers, compact UI |
|
|
94
|
-
| ShazamKit | Audio recognition, music identification |
|
|
95
|
-
| Always-on display | Dimmed state, power efficiency, reduced updates |
|
|
96
|
-
| Photo editing | System photo editor, filters, adjustments |
|
|
97
|
-
|
|
98
|
-
## Output Format
|
|
99
|
-
|
|
100
|
-
1. **Implementation checklist** -- step-by-step requirements per Apple's guidelines.
|
|
101
|
-
2. **Required vs optional features** for approval.
|
|
102
|
-
3. **Privacy and permission requirements** -- data access, usage descriptions.
|
|
103
|
-
4. **User-facing flow** from permission prompt through task completion.
|
|
104
|
-
5. **Testing guidance** -- key scenarios including edge cases.
|
|
105
|
-
|
|
106
|
-
## Questions to Ask
|
|
107
|
-
|
|
108
|
-
1. Which Apple technology?
|
|
109
|
-
2. Core use case?
|
|
110
|
-
3. Which platforms?
|
|
111
|
-
4. API requirements and entitlements reviewed?
|
|
112
|
-
5. What data or permissions needed?
|
|
113
|
-
|
|
114
|
-
## Related Skills
|
|
115
|
-
|
|
116
|
-
- **hig-inputs** -- Input methods interacting with technologies (voice for Siri, Pencil for AR, gestures for Maps)
|
|
117
|
-
- **hig-components-system** -- Widgets, complications, Live Activities surfacing technology data
|
|
118
|
-
- **hig-components-status** -- Progress indicators for technology operations (sync, payment, AR loading)
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
*Built by [Raintree Technology](https://raintree.technology) · [More developer tools](https://raintree.technology)*
|
|
123
|
-
|
|
124
|
-
## When to Use
|
|
125
|
-
This skill is applicable to execute the workflow or actions described in the overview.
|
|
10
|
+
# HIG Technologies
|
|
11
|
+
|
|
12
|
+
When an app uses an Apple technology, part of its interface is borrowed: a
|
|
13
|
+
branded button, a system sheet, a Siri response, a pass in Wallet, a widget on
|
|
14
|
+
the Home Screen. People already know how those behave. The job is to fit the
|
|
15
|
+
borrowed part in cleanly, follow its brand rules, and keep your own screens
|
|
16
|
+
consistent with it.
|
|
17
|
+
|
|
18
|
+
## Three rules that apply to every technology
|
|
19
|
+
|
|
20
|
+
1. **Use the system component.** Apple provides the button, sheet or view for
|
|
21
|
+
most technologies. Rebuilding it breaks trust and often breaks review rules.
|
|
22
|
+
2. **Follow the brand guidance exactly.** Button titles, marks and colors are
|
|
23
|
+
specified; do not restyle, recolor or rename them.
|
|
24
|
+
3. **Explain the value before the permission.** A short sentence of context
|
|
25
|
+
before a system prompt converts better than a surprise dialog.
|
|
26
|
+
|
|
27
|
+
## Details on demand
|
|
28
|
+
|
|
29
|
+
Load `references/technologies.md` for the rules for identity, payments, Wallet, App Intents, widgets, Health, Home, iCloud, Maps, SharePlay, CarPlay, AR and Apple Intelligence.
|
|
30
|
+
|
|
31
|
+
## Review output
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
[Apple Pay] Checkout shows a custom black button titled "Apple Pay".
|
|
35
|
+
Fix: replace with PayWithApplePayButton(.checkout) and hide it when
|
|
36
|
+
the device cannot make payments.
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Related skills
|
|
40
|
+
|
|
41
|
+
- `authentication`, `storekit`, `passkit-wallet`, `app-intents`, `widgetkit`,
|
|
42
|
+
`live-activities`, `healthkit`, `homekit-matter`, `mapkit-location`,
|
|
43
|
+
`shareplay-activities`, `realitykit-ar`, `apple-on-device-ai` for
|
|
44
|
+
implementation detail.
|
|
45
|
+
- `hig-patterns` for account and permission flows.
|
|
46
|
+
|
|
47
|
+
## References
|
|
48
|
+
|
|
49
|
+
- https://developer.apple.com/design/human-interface-guidelines/technologies
|
|
50
|
+
- https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple
|
|
51
|
+
- https://developer.apple.com/design/human-interface-guidelines/apple-pay
|
|
52
|
+
- https://developer.apple.com/design/human-interface-guidelines/in-app-purchase
|
|
53
|
+
- https://developer.apple.com/design/human-interface-guidelines/wallet
|
|
54
|
+
- https://developer.apple.com/design/human-interface-guidelines/siri
|
|
55
|
+
- https://developer.apple.com/design/human-interface-guidelines/app-shortcuts
|
|
56
|
+
- https://developer.apple.com/design/human-interface-guidelines/widgets
|
|
57
|
+
- https://developer.apple.com/design/human-interface-guidelines/live-activities
|
|
58
|
+
- https://developer.apple.com/design/human-interface-guidelines/healthkit
|
|
59
|
+
- https://developer.apple.com/design/human-interface-guidelines/homekit
|
|
60
|
+
- https://developer.apple.com/design/human-interface-guidelines/icloud
|
|
61
|
+
- https://developer.apple.com/design/human-interface-guidelines/maps
|
|
62
|
+
- https://developer.apple.com/design/human-interface-guidelines/shareplay
|
|
63
|
+
- https://developer.apple.com/design/human-interface-guidelines/carplay
|
|
64
|
+
- https://developer.apple.com/design/human-interface-guidelines/augmented-reality
|
|
65
|
+
- https://developer.apple.com/design/human-interface-guidelines/generative-ai
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Apple technologies in detail
|
|
2
|
+
|
|
3
|
+
Companion to `../SKILL.md` for the `hig-technologies` skill.
|
|
4
|
+
|
|
5
|
+
## Identity: Sign in with Apple and passkeys
|
|
6
|
+
|
|
7
|
+
- Use `SignInWithAppleButton` with one of the permitted styles (black, white,
|
|
8
|
+
white outline) and a permitted label. Size it like the other sign-in options
|
|
9
|
+
and place it at least as prominently.
|
|
10
|
+
- Request only the scopes you need; accept the relay email address.
|
|
11
|
+
- Offer passkeys as the primary credential when you run your own accounts, and
|
|
12
|
+
support AutoFill for existing passwords.
|
|
13
|
+
- Provide account deletion inside the app.
|
|
14
|
+
|
|
15
|
+
## Payments: Apple Pay and in-app purchase
|
|
16
|
+
|
|
17
|
+
- Apple Pay: use `PayWithApplePayButton` in SwiftUI, show it where checkout
|
|
18
|
+
begins, and include it as an option wherever you show other payment methods.
|
|
19
|
+
Display a clear order summary before the sheet appears.
|
|
20
|
+
- Do not show an Apple Pay button when the device cannot pay; check
|
|
21
|
+
availability first.
|
|
22
|
+
- In-app purchase: digital goods and subscriptions use StoreKit. `StoreView`,
|
|
23
|
+
`ProductView` and `SubscriptionStoreView` give compliant merchandising with
|
|
24
|
+
little code.
|
|
25
|
+
- State price, period, trial terms and renewal plainly before purchase; make
|
|
26
|
+
restoring purchases and managing subscriptions easy to find.
|
|
27
|
+
|
|
28
|
+
## Wallet
|
|
29
|
+
|
|
30
|
+
- Passes (loyalty cards, tickets, coupons, store cards) are added with
|
|
31
|
+
`AddPassToWalletButton`. Keep the pass front minimal: the one number or code
|
|
32
|
+
people need at the counter.
|
|
33
|
+
- Update passes when their information changes instead of issuing new ones.
|
|
34
|
+
|
|
35
|
+
## Siri, Shortcuts, Spotlight and App Intents
|
|
36
|
+
|
|
37
|
+
- Model the app's key actions and content as App Intents and entities; the same
|
|
38
|
+
definitions feed Siri, Shortcuts, Spotlight, widgets, controls and the Action
|
|
39
|
+
button.
|
|
40
|
+
- Provide `AppShortcutsProvider` phrases that sound natural when spoken, such as
|
|
41
|
+
"Reorder my last purchase in AppName".
|
|
42
|
+
- Keep responses short and useful without the screen; return a snippet view
|
|
43
|
+
when visual confirmation helps.
|
|
44
|
+
- Confirm before intents that spend money or delete data.
|
|
45
|
+
|
|
46
|
+
## Widgets, controls and Live Activities
|
|
47
|
+
|
|
48
|
+
- Widgets show glanceable, timely content and deep link to the right place.
|
|
49
|
+
Support the families that fit the content, and accented and clear rendering
|
|
50
|
+
modes on iOS 18 and later; test tinted and glass appearances on iOS 26.
|
|
51
|
+
- Controls in Control Center and on the Lock Screen perform one action or toggle
|
|
52
|
+
one state.
|
|
53
|
+
- Live Activities track a single event with a clear end, such as an order out
|
|
54
|
+
for delivery. Keep compact and minimal Dynamic Island presentations
|
|
55
|
+
legible at a glance; end the activity promptly when the event finishes.
|
|
56
|
+
|
|
57
|
+
## Health and fitness
|
|
58
|
+
|
|
59
|
+
- Ask for HealthKit access only for the data types the feature uses, when the
|
|
60
|
+
feature is first used, and explain why.
|
|
61
|
+
- Never use health data for advertising; be explicit about what leaves the
|
|
62
|
+
device.
|
|
63
|
+
- Use Apple's terminology and units, respecting the person's locale settings.
|
|
64
|
+
|
|
65
|
+
## Home
|
|
66
|
+
|
|
67
|
+
- HomeKit and Matter accessories should use their system names and room
|
|
68
|
+
assignments. Let the Home app remain the source of truth for setup where
|
|
69
|
+
possible.
|
|
70
|
+
|
|
71
|
+
## iCloud
|
|
72
|
+
|
|
73
|
+
- Sync should be invisible: the same notes appear on every device without an
|
|
74
|
+
explicit sync button. Handle offline edits and conflicts gracefully.
|
|
75
|
+
- Respect the person's choice to turn iCloud off for the app.
|
|
76
|
+
|
|
77
|
+
## Maps and location
|
|
78
|
+
|
|
79
|
+
- Use MapKit's `Map` with standard annotations and controls
|
|
80
|
+
(`MapUserLocationButton`, `MapCompass`) so it behaves like Maps.
|
|
81
|
+
- Request "When In Use" location unless background tracking is essential, and
|
|
82
|
+
show the benefit before the prompt.
|
|
83
|
+
|
|
84
|
+
## SharePlay
|
|
85
|
+
|
|
86
|
+
- Offer SharePlay where a shared experience is natural, such as reviewing a
|
|
87
|
+
shopping list together. Use the system share and session UI; keep all
|
|
88
|
+
participants in sync and make leaving easy.
|
|
89
|
+
|
|
90
|
+
## CarPlay
|
|
91
|
+
|
|
92
|
+
- CarPlay apps use templates provided by the framework; there is no free-form
|
|
93
|
+
UI. Keep interactions few and glanceable, and never require reading long text
|
|
94
|
+
while driving.
|
|
95
|
+
|
|
96
|
+
## Augmented reality
|
|
97
|
+
|
|
98
|
+
- Coach people into a good session (surface detection, lighting) with the
|
|
99
|
+
system coaching view. Place content on real surfaces at believable scale and
|
|
100
|
+
give a way out of the AR view.
|
|
101
|
+
|
|
102
|
+
## Apple Intelligence and generative features
|
|
103
|
+
|
|
104
|
+
- Use system features (Writing Tools, Image Playground, Genmoji) through their
|
|
105
|
+
standard entry points; standard text views get Writing Tools automatically.
|
|
106
|
+
- For custom on-device generation with the Foundation Models framework, make it
|
|
107
|
+
clear what is generated, let people edit or discard output, and handle
|
|
108
|
+
unavailability when the device or region does not support the model.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: homekit-matter
|
|
3
3
|
description: "Control smart-home accessories and commission Matter devices using HomeKit and MatterSupport. Use when managing homes/rooms/accessories, creating action sets or triggers, reading accessory characteristics, onboarding Matter devices, or building a third-party smart-home ecosystem app."
|
|
4
|
+
metadata:
|
|
5
|
+
source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# HomeKit
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: html-semantic
|
|
3
3
|
description: "Semantic HTML5: elements, forms with validation and accessibility, SEO best practices, structured data, Open Graph, Twitter Cards. Use when writing or reviewing markup, forms or document structure for semantics, accessibility and SEO."
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
tags: [html, semantic, seo, forms, open-graph, structured-data, frontend]
|
|
6
|
+
version: "2025.1"
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# Semantic HTML5
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: humanizer
|
|
3
|
-
version: 1.2.0
|
|
4
3
|
description: |
|
|
5
4
|
Remove AI-generated writing patterns from text. Makes output sound natural
|
|
6
5
|
and human-written. Detects inflated language, filler phrases, AI vocabulary,
|
|
7
6
|
mechanical structure, and sycophantic tone. Use when editing text, writing
|
|
8
7
|
documentation, commit messages, PR descriptions, or any user-facing content.
|
|
8
|
+
metadata:
|
|
9
|
+
version: 1.2.0
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
# Humanizer
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ios-accessibility
|
|
3
3
|
description: "Implements, reviews, or improves accessibility in iOS/macOS apps with SwiftUI, UIKit, and AppKit. Use when adding VoiceOver, Voice Control, Switch Control, or Full Keyboard Access support; when working with accessibility labels, hints, values, traits, accessibilityInputLabels, NSAccessibility, grouping, reading order, accessibility focus restoration with @AccessibilityFocusState, Dynamic Type, @ScaledMetric, custom rotors, accessibility actions, XCTest accessibility checks, App Store Accessibility Nutrition Labels, App Store Connect accessibility answers, a11y compliance audits, or system accessibility preferences."
|
|
4
|
+
metadata:
|
|
5
|
+
source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# iOS/macOS Accessibility - SwiftUI, UIKit, and AppKit
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
name: ios-coding-standard
|
|
3
3
|
description: "The iOS coding-standard rule registry: 99 stable-ID rules across readability, security, service layer, business rules, concurrency, testing, module boundaries, naming and visibility, each with a severity and enforcement kind. Use when writing or reviewing Swift and you need the project rule rather than an opinion, or on a persistence, logging or business-rule-placement question."
|
|
4
4
|
user-invocable: true
|
|
5
|
-
|
|
5
|
+
metadata:
|
|
6
|
+
standards-registry: references/rules.yml
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# iOS coding standard
|
|
@@ -8,6 +8,18 @@ win where they differ - this is the floor, not the ceiling.
|
|
|
8
8
|
Five principles, in the order they break things: **security · testability · readability ·
|
|
9
9
|
flexibility · consistency.**
|
|
10
10
|
|
|
11
|
+
## Contents
|
|
12
|
+
|
|
13
|
+
- [0. The ten lines](#0-the-ten-lines)
|
|
14
|
+
- [1. Security](#1-security)
|
|
15
|
+
- [2. Testability](#2-testability)
|
|
16
|
+
- [3. Readability](#3-readability)
|
|
17
|
+
- [4. Flexibility](#4-flexibility)
|
|
18
|
+
- [5. Concurrency](#5-concurrency)
|
|
19
|
+
- [6. Accessibility](#6-accessibility)
|
|
20
|
+
- [7. Performance](#7-performance-----the-four-that-are-also-readability)
|
|
21
|
+
- [8. Exceptions](#8-exceptions)
|
|
22
|
+
|
|
11
23
|
---
|
|
12
24
|
|
|
13
25
|
## 0. The ten lines
|
|
@@ -31,8 +43,8 @@ flexibility · consistency.**
|
|
|
31
43
|
## 1. Security
|
|
32
44
|
|
|
33
45
|
Work out which **data class** a value belongs to before you decide where it goes.
|
|
34
|
-
`rules.yml → sensitive_data_classes` is the list: auth token, credential, government ID,
|
|
35
|
-
document,
|
|
46
|
+
`rules.yml → sensitive_data_classes` is the list: auth token, credential, government ID, identity
|
|
47
|
+
document, order reference, membership identity, payment instrument, personal contact,
|
|
36
48
|
biometric/health, precise location. The class decides the storage, not convenience.
|
|
37
49
|
|
|
38
50
|
### Storage `[SEC-01]` - ask "does it persist?" before "where does it go?"
|
|
@@ -193,11 +193,11 @@ sensitive_data_classes:
|
|
|
193
193
|
covers: national identity number, tax number, driving licence number
|
|
194
194
|
at_rest: keychain-required
|
|
195
195
|
loggable: never
|
|
196
|
-
- id:
|
|
196
|
+
- id: identity-document
|
|
197
197
|
covers: passport number and expiry, visa data, residence permit
|
|
198
198
|
at_rest: keychain-required
|
|
199
199
|
loggable: never
|
|
200
|
-
- id:
|
|
200
|
+
- id: order-reference
|
|
201
201
|
covers: order number, reservation code, ticket number, confirmation barcode payload
|
|
202
202
|
at_rest: keychain-or-protected
|
|
203
203
|
loggable: never
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ios-debugger-agent
|
|
3
3
|
description: "Debug the current iOS project on a booted simulator with XcodeBuildMCP. Use when an iOS bug has to be reproduced and diagnosed on a booted simulator."
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
risk: safe
|
|
6
|
+
source: "Dimillian/Skills (MIT)"
|
|
7
|
+
date_added: "2026-03-25"
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# iOS Debugger Agent
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ios-localization
|
|
3
3
|
description: "Implement, review, or improve localization and internationalization in iOS/macOS apps - String Catalogs (.xcstrings), generated localizable symbols, stable key naming, LocalizedStringKey, LocalizedStringResource, pluralization, FormatStyle for numbers/dates/measurements, right-to-left layout, Dynamic Type, and locale-aware formatting. Use when adding multi-language support, setting up String Catalogs, enabling generated symbols for compile-time-safe localization keys, handling plural forms, formatting dates/numbers/currencies for different locales, testing localizations, or making UI work correctly in RTL languages like Arabic and Hebrew."
|
|
4
|
+
metadata:
|
|
5
|
+
source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# iOS Localization & Internationalization
|
|
@@ -61,14 +63,14 @@ For generated-symbol or migration answers, start by stating: "String Catalogs ar
|
|
|
61
63
|
**Workflow:** Add a key manually via the (+) button in the String Catalog editor - manual keys have the **Generate Swift Symbol** checkbox enabled by default. Auto-extracted keys can also opt in via Refactor > Convert Strings to Symbols. Use stable manual keys for generated-symbol strings. Avoid source-copy-derived keys for API-facing strings because wording edits can rename generated identifiers and churn call sites.
|
|
62
64
|
|
|
63
65
|
```swift
|
|
64
|
-
// Generated from key "
|
|
65
|
-
Text(.
|
|
66
|
+
// Generated from key "item_available" in Localizable.xcstrings
|
|
67
|
+
Text(.itemAvailable)
|
|
66
68
|
|
|
67
|
-
// Parameterized key "
|
|
68
|
-
Text(.
|
|
69
|
+
// Parameterized key "products_count" with %1$(count)lld
|
|
70
|
+
Text(.productsCount(count: 42))
|
|
69
71
|
|
|
70
|
-
// Non-default table "
|
|
71
|
-
Text(.
|
|
72
|
+
// Non-default table "Checkout.xcstrings"
|
|
73
|
+
Text(.Checkout.confirmOrderCta)
|
|
72
74
|
```
|
|
73
75
|
|
|
74
76
|
Xcode derives symbol names by camelCasing the key: `settings.notifications.toggle` → `.settingsNotificationsToggle`. You can convert existing extracted strings to symbols via Refactor > Convert Strings to Symbols (reversible).
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
{
|
|
5
5
|
"id": 0,
|
|
6
6
|
"name": "generated-symbols-plurals",
|
|
7
|
-
"prompt": "I am updating an iOS 26 SwiftUI
|
|
7
|
+
"prompt": "I am updating an iOS 26 SwiftUI shop app for localization. We have a new Localizable.xcstrings file, a manually managed key named item_available whose English value is \"Add this item\", and a parameterized key named products_count for \"42 products\". Give me a concise migration plan and Swift snippets that use Xcode generated localizable symbols, plural-friendly placeholders, and modern string APIs. Also say what to do with old NSLocalizedString calls.",
|
|
8
8
|
"expected_output": "A concise migration plan that uses String Catalogs, generated symbols, correct positional named placeholders, modern String(localized:) / LocalizedStringResource guidance, plural variants, and legacy NSLocalizedString migration notes.",
|
|
9
9
|
"files": [],
|
|
10
10
|
"expectations": [
|
|
11
11
|
"Frames String Catalogs as the Xcode 15+ recommended workflow and does not claim they require iOS 17.",
|
|
12
12
|
"Mentions enabling Generate String Catalog Symbols and using stable manually managed keys.",
|
|
13
|
-
"Uses generated symbol examples such as Text(.
|
|
13
|
+
"Uses generated symbol examples such as Text(.itemAvailable) and Text(.productsCount(count: 42)).",
|
|
14
14
|
"Uses a positional named placeholder such as %1$(count)lld for the parameterized generated symbol.",
|
|
15
15
|
"Distinguishes String(localized:) for resolved strings from LocalizedStringResource for deferred or system-framework resolution.",
|
|
16
16
|
"Treats NSLocalizedString as legacy for new Swift code while acknowledging literal keys can still be exported or migrated."
|
|
@@ -335,14 +335,14 @@ The `.xcstrings` file is Xcode-managed JSON. Understanding the observed structur
|
|
|
335
335
|
}
|
|
336
336
|
}
|
|
337
337
|
},
|
|
338
|
-
"
|
|
339
|
-
"comment": "Button label on
|
|
338
|
+
"item_available": {
|
|
339
|
+
"comment": "Button label on product search results",
|
|
340
340
|
"extractionState": "manual",
|
|
341
341
|
"localizations": {
|
|
342
342
|
"en": {
|
|
343
343
|
"stringUnit": {
|
|
344
344
|
"state": "translated",
|
|
345
|
-
"value": "
|
|
345
|
+
"value": "Add this item"
|
|
346
346
|
}
|
|
347
347
|
}
|
|
348
348
|
}
|
|
@@ -373,7 +373,7 @@ The `.xcstrings` file is Xcode-managed JSON. Understanding the observed structur
|
|
|
373
373
|
}
|
|
374
374
|
```
|
|
375
375
|
|
|
376
|
-
Note the `"
|
|
376
|
+
Note the `"item_available"` key above: it uses `"extractionState": "manual"` and a stable symbol-style key with the English text in `"value"`, not in the key itself. Use stable manual keys for generated-symbol strings. Avoid source-copy-derived keys for API-facing strings because wording edits can rename generated identifiers and churn call sites.
|
|
377
377
|
|
|
378
378
|
### Translation states
|
|
379
379
|
- `"new"` -- Xcode extracted the key but no translation exists
|
|
@@ -410,7 +410,7 @@ Xcode camelCases the key name, lowercasing the first segment:
|
|
|
410
410
|
|
|
411
411
|
| Catalog key | Generated symbol |
|
|
412
412
|
|-------------|-----------------|
|
|
413
|
-
| `
|
|
413
|
+
| `item_available` | `.itemAvailable` |
|
|
414
414
|
| `settings.notifications.toggle` | `.settingsNotificationsToggle` |
|
|
415
415
|
| `TITLE` | `.title` |
|
|
416
416
|
|
|
@@ -418,7 +418,7 @@ Keys with format specifiers become functions. Use positional named placeholders
|
|
|
418
418
|
|
|
419
419
|
| Catalog key | Format | Generated symbol |
|
|
420
420
|
|-------------|--------|-----------------|
|
|
421
|
-
| `
|
|
421
|
+
| `products_count` | `%1$(count)lld` | `.productsCount(count: Int)` |
|
|
422
422
|
| `greeting` | `%@` | `.greeting(_ param1: String)` |
|
|
423
423
|
|
|
424
424
|
You can rename parameters during refactoring for more descriptive signatures.
|
|
@@ -427,16 +427,16 @@ You can rename parameters during refactoring for more descriptive signatures.
|
|
|
427
427
|
|
|
428
428
|
```swift
|
|
429
429
|
// Simple key - static property
|
|
430
|
-
Text(.
|
|
430
|
+
Text(.itemAvailable)
|
|
431
431
|
|
|
432
432
|
// Parameterized key - function
|
|
433
|
-
Text(.
|
|
433
|
+
Text(.productsCount(count: 42))
|
|
434
434
|
|
|
435
|
-
// Non-default table (
|
|
436
|
-
Text(.
|
|
435
|
+
// Non-default table (Checkout.xcstrings)
|
|
436
|
+
Text(.Checkout.confirmOrderCta)
|
|
437
437
|
|
|
438
438
|
// In non-SwiftUI code
|
|
439
|
-
let title = String(localized: .
|
|
439
|
+
let title = String(localized: .itemAvailable)
|
|
440
440
|
let attributed = AttributedString(localized: .greeting(userName))
|
|
441
441
|
```
|
|
442
442
|
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
name: ios-module-structure
|
|
3
3
|
description: "The ios-module-structure rule registry: stable-ID rules over where a declaration lives, what its file is called and what its folder must contain beside it, plus a checker that runs them against one module. Use when auditing or refactoring a module's tree, or when a review wants a rule ID rather than a preference about layout."
|
|
4
4
|
user-invocable: true
|
|
5
|
-
|
|
5
|
+
metadata:
|
|
6
|
+
standards-registry: references/rules.yml
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# Module structure
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ios-networking
|
|
3
3
|
description: "Build, review, or improve networking code in iOS/macOS apps using URLSession with async/await, structured concurrency, and modern Swift patterns. Use when working with REST APIs, downloading files, uploading data, WebSocket connections, pagination, retry logic, request middleware, caching, background transfers, or network reachability monitoring. Also use when handling HTTP requests, API clients, network error handling, or data fetching in Swift apps."
|
|
4
|
+
metadata:
|
|
5
|
+
source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# iOS Networking
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ios-simulator
|
|
3
3
|
description: "Manages iOS Simulator devices and tests app behaviour with xcrun simctl: device lifecycle, app install and launch, push notification and location simulation, privacy permission grants, deep links via openurl, status bar overrides, screenshot and video capture, os_log streaming, app container paths, and targetEnvironment(simulator) checks. Use when managing simulator devices, testing push without APNs, simulating GPS, resetting permissions, capturing screens from the command line, streaming device logs, or debugging simulator boot and CoreSimulator failures."
|
|
4
|
+
metadata:
|
|
5
|
+
source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# iOS Simulator
|