Skip to content
Apple Development Foundation
Esc
navigateopen⌘Jpreview
On this page

Verification matrix

What to run after skill work, consumer app work, or archived package changes.

Pick the row that matches the change. Never claim a check passed without running it. Distinguish pre-existing failures from regressions you introduced.

Situation What to run
Behavioral routing fixture change ./Scripts/validate-skill-evaluations.py
Skill SKILL.md or manifest.json change ./Scripts/verify-skills.sh
Installer behavior change ./Scripts/verify-skills.sh + ./Scripts/test-install-skills.sh
Consumer app feature / bug fix XcodeBuildMCP build + tests; $swift-testing-verification
Shared SwiftUI components $apple-accessibility-review (+ design/component skills as needed)
Async / actors / Sendable $swift-concurrency-review (+ strict concurrency build when practical)
Files, logging, permissions, imports $apple-security-privacy-review
Critical UI flows $maestro-apple-app-testing + XcodeBuildMCP
New app bootstrap complete Bootstrap checklist + MCP build/test (+ optional screenshot)
Docs site (docs/, Blume config) npm run build and npm run validate
Archived package (archive/Sources/, etc.) Only if user asked: cd archive && ./Scripts/verify.sh — see ARCHIVE.md

Reporting standard

Always report:

  1. Active project / workspace / scheme
  2. Simulator ID or device (not an unstable OS=latest shorthand)
  3. What commands or MCP tools ran
  4. Pass/fail and the next actionable step on failure
  5. Residual risk — untested paths, manual-only checks, environment gaps

Stop conditions

Stop and ask (or report blocked) when:

Condition Why
No clear consumer workspace for app work Skills must not default into this repo’s archived package
XcodeBuildMCP MCP tools unavailable and neither CLI nor repository-native fallback is authorized Report the exact capability failure and policy boundary; do not invent or silently run a fallback
Maestro required but CLI missing Report blocker before speculative flows
User requested foundation audit but only ordinary routing ran Audits are explicit — see Skill routing
Review-only request Do not change code unless authorized

Was this page helpful?