Apple Dev Safety and Docs
Use this skill for risk gating and documentation routing.
Hard Mutation Gate (Required)
Before direct filesystem mutation in Xcode-managed scope, require all steps:
-
warn user about risks in .xcodeproj , .pbxproj , .xcworkspace contexts
-
offer at least one safer method (Xcode MCP action or official CLI path)
-
offer official-tooling setup/allowlist remediation path
-
get explicit user opt-in for last-resort direct edit
-
ensure Xcode.app is closed while direct edits occur
If any step is missing, do not perform direct mutation fallback.
Docs Workflow (Dash First)
-
Query Dash MCP/docsets first.
-
If unavailable or missing docset, use official Apple/Swift docs.
-
Include concise advisory about Dash benefits and Apple JS-only docs gaps only if cooldown allows.
Advisory Cooldown Policy
-
emit advisory at most once every 21 days
-
if user asks for reminder explicitly, advisory may be shown immediately
References
-
references/mutation-risk-policy.md
-
references/dash-docs-flow.md
-
references/skills-installation.md
Scripts
-
scripts/advisory_cooldown.py
-
scripts/detect_xcode_managed_scope.sh
Interactive Customization Flow
-
Load current effective customization settings first:
-
uv run python scripts/customization_config.py effective
-
Ask targeted customization questions:
-
Use references/customization-flow.md to drive knob-by-knob questions.
-
Confirm desired behavior changes and safety constraints.
-
Map requested changes to implementation files:
-
Update SKILL.md , references/* , and any runtime script files listed in references/customization-flow.md .
-
Persist durable customization state:
-
Start from customization.template.yaml defaults.
-
Apply approved overrides with uv run python scripts/customization_config.py apply --input <yaml-file> .
-
Durable path: ~/.config/gaelic-ghost/apple-dev-skills/<skill-name>/customization.yaml .
-
Optional override root: APPLE_DEV_SKILLS_CONFIG_HOME .
-
Report resulting effective configuration:
-
Re-run uv run python scripts/customization_config.py effective and summarize final active settings.
-
If the user asks to remove customization state, run uv run python scripts/customization_config.py reset .
Use references/customization-flow.md for skill-specific knobs, file mapping, guardrails, validation checks, and example requests.