Source-driven accessibility guidance for SwiftUI, UIKit, tvOS, macOS, and visionOS, designed for both human developers and AI coding agents.
Current version: 0.2.2
SwiftAccessibilityAgent is a documentation-first accessibility knowledge base for Apple-platform UI development.
It provides:
- Tiered source governance (Apple-first platform truth)
- Implementation guidance for SwiftUI/UIKit/AppKit and interop boundaries
- Testing and regression-triage workflows
- Agent-ready manifests and runtime loading rules
- Explicit routing and trust-language suitable for evaluation
- Engineers building Apple-platform UI
- Teams running accessibility-focused PR reviews
- AI agents generating or modifying UI code
Most users should install this skill from the root of the project where they want their agent to use it.
Example:
cd /path/to/your/projectIf you install it there, the skill is available to that project without affecting every other project on your machine.
You need:
- Terminal access on macOS
- Node.js installed (
nodeandnpx) - Git available (
git) - Internet access to download the skill
Quick check:
git --version
node --version
npx --versionIf all commands print a version number, continue to the install step.
Homebrew is the easiest way for many macOS users to install Node.js.
Official Homebrew install command:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"After Homebrew finishes, open a new Terminal window or follow the PATH instructions it prints.
Recommended on macOS if you use Homebrew:
brew install nodeIf you do not want to use Homebrew, install the official Node.js LTS package from:
Then confirm Node.js is available:
node --version
npx --versionFrom the root of the app or repository where you want the skill available:
npx skills add https://github.com/SerialForBreakfast/SwiftAccessibilityAgent --skill swift-accessibility-agent --agent codex --yesFirst, confirm the CLI sees the skill:
npx skills listThen confirm the files were installed in the current project:
find .agents/skills -maxdepth 2 -name SKILL.md 2>/dev/null | grep swift-accessibility-agentExpected project-local installed path:
./.agents/skills/swift-accessibility-agent/SKILL.md
If the skill installs correctly but does not appear in the active session immediately, refresh or restart the session.
- Open Terminal.
cdinto the project you are actively working on.- Make sure
nodeandnpxwork. - Run the install command once.
- Verify the skill appears in
npx skills list. - Start or refresh your agent session in that project.
Use this only if you want the skill available across multiple projects instead of just one:
npx skills add https://github.com/SerialForBreakfast/SwiftAccessibilityAgent --skill swift-accessibility-agent --agent codex --global --yesExpected global installed path:
~/.codex/skills/swift-accessibility-agent/SKILL.md
There are two common upgrade paths.
If you installed the skill through the normal skills workflow, go to the project where you installed it and run the install command again:
cd /path/to/your/project
npx skills add https://github.com/SerialForBreakfast/SwiftAccessibilityAgent --skill swift-accessibility-agent --agent codex --yesThen verify:
npx skills list
find .agents/skills -maxdepth 2 -name SKILL.md 2>/dev/null | grep swift-accessibility-agentThis is the safest default upgrade path for most users.
If you keep a local clone of this repository and use it directly, update the repo first:
cd /path/to/SwiftAccessibilityAgent
git pull origin mainAfter pulling:
- if you use the skills install workflow, re-run
npx skills add ...from the target project - if you use Xcode compatibility linking, re-run
./scripts/install-for-xcode.shor recreate the manual symlink
- Update the repo or re-run the install command.
- Confirm the version in
SKILL.mdorVERSION. - Restart the active Codex or Xcode session if it was already open.
- Re-test one known prompt, such as
Tell me about UILabel accessibility.
npx skills add ... remains the first-class install path for this repository.
If you also want to use the same skill content with Xcode's Codex agent, install an Xcode compatibility link from this repository root:
./scripts/install-for-xcode.shWhat this does:
- creates Xcode's Codex customization directory if needed
- creates a symlink from Xcode's Codex directory to this repository
- keeps
SKILL.md,agents/openai.yaml, andreferences/as the single source of truth
Expected Xcode compatibility path:
~/Library/Developer/Xcode/CodingAssistant/codex/swift-accessibility-agent
Verify the link:
ls -la ~/Library/Developer/Xcode/CodingAssistant/codex/swift-accessibility-agentIf Xcode is already open, quit and reopen it after running the script.
If you do not want to run the helper script, you can create the Xcode compatibility link manually.
From this repository root:
mkdir -p ~/Library/Developer/Xcode/CodingAssistant/codex
ln -sfn "$(pwd)" ~/Library/Developer/Xcode/CodingAssistant/codex/swift-accessibility-agentThen verify:
ls -la ~/Library/Developer/Xcode/CodingAssistant/codex/swift-accessibility-agentExpected entry files:
~/Library/Developer/Xcode/CodingAssistant/codex/swift-accessibility-agent/SKILL.md
~/Library/Developer/Xcode/CodingAssistant/codex/swift-accessibility-agent/agents/openai.yaml
If Xcode is already open, quit and reopen it after creating the link.
- Keep the main install path as
npx skills add ...for Codex/skills-based workflows. - From this repository root, either run
./scripts/install-for-xcode.shor create the link manually. - Restart Xcode.
- Open your project in Xcode and use the Codex agent there.
If node or npx is not found:
- Install Node.js first, then reopen Terminal.
If brew is not found:
- Install Homebrew first, or install Node.js directly from nodejs.org/download.
If git is not found:
- Install Apple's Command Line Tools when macOS prompts you, then reopen Terminal.
If the install command works but the skill does not appear in your session:
- Refresh or restart the session in the same project directory.
If you accidentally installed globally but wanted project-local behavior:
- Go back to your project directory and run the project-local install command there.
If Xcode does not pick up the compatibility install:
- Confirm
~/Library/Developer/Xcode/CodingAssistant/codex/swift-accessibility-agent/SKILL.mdexists. - Quit and reopen Xcode.
- Re-run
./scripts/install-for-xcode.shfrom this repository root.
- Pick a platform/framework track:
references/swiftui/references/uikit/references/tvos/references/macos/references/visionos/
- Load shared core guidance:
references/core/sources/registry.mdreferences/core/technology-map.mdreferences/core/taxonomy/semantics-checklist.md
- Apply guideline + testing artifacts relevant to your change.
- Agent operating contract:
SKILL.md - Version baseline:
VERSION - UI metadata:
agents/openai.yaml - Runtime manifests:
references/manifests/ - Versioning strategy:
references/core/versioning-strategy.md - Source registry:
references/core/sources/registry.md - Architecture principles:
references/core/architecture/architecture-principles.md - Decision matrix:
references/core/decision-matrix.md - Pattern review rubric:
references/core/pattern-review-rubric.md - External landscape references:
references/core/external-landscape.md - WWDC 2026 accessibility watchlist:
references/core/wwdc-2026-accessibility-watchlist.md - Semantics cookbook:
references/core/cookbook/semantics-cookbook.md - Known issues catalog:
references/core/known-os-issues.md - Version matrix:
references/core/version-matrix.md - Testing artifacts:
references/testing/
- Load
SKILL.md. - Choose task workflow first (review, improve, implement).
- Resolve runtime selection through
references/manifests/(platform,framework,task_type) only as needed. - Load only resolved docs and required verification artifacts.
For substantive repository-domain answers, the agent should emit:
- on the first response in a chat, one identity line:
Swift Accessibility Agent (v0.2.2)
- whenever the answer actually uses repository guidance:
- a
ROUTING:line naming the repo docs it used - the answer itself
- a trust footer with
Sources:,Freshness:, andAssumptions:
- a
If the answer does not use repository guidance, no ROUTING: line is required.
First response example:
Swift Accessibility Agent (v0.2.2)
Repository-guided answer example:
ROUTING: [uikit:u-005-grouping-containment.md, core:known-os-issues-workflow.md]
<answer>
Sources: docs/uikit/guidelines/u-005-grouping-containment.md; docs/core/known-os-issues-workflow.md
Freshness: HIGH — current repository guidance supports this answer
Assumptions: none
Use Assumptions: none only when the routed repository docs directly support the answer and the user's context is already specific enough.
If the answer requires an inference, state that inference briefly instead of using none.
Promptfoo scaffolding lives in:
evals/promptfoo/
The evaluation model compares:
C0: bare model baselineC1: agent identity + routing protocolC2: agent + injected reference docs
Primary checks:
- first-turn identity includes
Swift Accessibility Agent (v0.2.2) - repository-guided answers include
ROUTING: - routing names the expected repository file
- repository-guided answers include
Sources:,Freshness:, andAssumptions:
SKILL.mdexists at installed skill root.agents/openai.yamlexists.- Manifest and reference paths in
SKILL.mdresolve. - Skill appears in session available skills list.
- Skill triggers by name:
swift-accessibility-agent.
- Tier-1: Apple platform truth
- Tier-2: High-quality implementation references
- Tier-3: Discovery/context only
- If sources conflict, Tier-1 wins
MIT. See LICENSE.