Bootstrap Swift Package
Overview
Create a new Swift package quickly with repeatable defaults. Prefer the bundled script for deterministic setup.
Workflow
-
Confirm package intent.
-
Ask for package name , type (library , executable , or tool ), destination path, platform preset (mac , mobile , multiplatform ), and version profile (latest-major , current-minus-one , current-minus-two ).
-
Accept aliases: macos for mac , ios for mobile , both for multiplatform , and latest /minus-one /minus-two for version profiles.
-
Create the package.
-
Preferred: run scripts/bootstrap_swift_package.sh --name <Name> --type <library|executable|tool> --destination <dir> --platform <mac|macos|mobile|ios|multiplatform|both> --version-profile <latest-major|current-minus-one|current-minus-two|latest|minus-one|minus-two> .
-
Fallback: run swift package init --name <Name> --type <library|executable|tool> manually inside the target directory, patch Package.swift platforms, copy assets/AGENTS.md to repo root as AGENTS.md , then run git init .
-
Validate bootstrap output.
-
Verify Package.swift exists.
-
Verify .git exists.
-
Verify AGENTS.md exists.
-
Verify Tests/ exists.
-
Run swift build and swift test in the package root.
-
Report result.
-
Summarize created path, package type, platform preset, version profile, build/test status, and immediate next steps.
Defaults
-
Use library unless the user clearly asks for executable or tool .
-
Use multiplatform unless the user clearly wants only mac or mobile .
-
Use current-minus-one as the default version profile.
-
Keep generated structure minimal; do not add extra frameworks unless requested.
-
Always initialize git.
-
Always include AGENTS.md with repository expectations for working with Swift Package Manager and Swift packages.
Automation Prompting
-
Codex App automation fit: Guarded. Prefer event-driven or explicit scaffold requests over frequent recurring schedules.
-
Codex CLI automation fit: Strong. Use deterministic codex exec prompts with explicit placeholders and strict scope.
-
Use references/automation-prompts.md for ready-to-use Codex App and Codex CLI templates.
-
Keep schedule and workspace configuration outside the prompt body for App automations.
Troubleshooting
-
If swift is missing, stop and ask the user to install Xcode command line tools or Swift toolchain.
-
If git is missing, stop and ask the user to install git or Xcode command line tools.
-
If assets/AGENTS.md is missing, stop and restore the template before bootstrapping packages.
-
If destination exists and is non-empty (excluding ignorable macOS metadata like .DS_Store ), do not overwrite; ask for a new destination or explicit cleanup instructions.
-
If validation fails in constrained environments, rerun with --skip-validation and report that checks were skipped.
Resources
scripts/
- scripts/bootstrap_swift_package.sh : Create package directory, run swift package init , apply platforms defaults to Package.swift , initialize git, and run safety/validation checks.
references/
-
references/package-types.md : Quick selection guide for package types, platform presets, and version profiles.
-
references/automation-prompts.md : Codex App and Codex CLI automation prompt templates with placeholders and guardrails.
assets/
- assets/AGENTS.md : Template copied into each new package repository to set repository expectations for Swift Package Manager workflows.
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.