AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Bootstrap Xcode App Project

skill-gaelic-ghost-socket-bootstrap-xcode-app-project · by gaelic-ghost

Bootstrap a new native Apple app project for macOS, iOS, or iPadOS when the user wants to start, begin, create, or bootstrap an Xcode app project. Use for new SwiftUI-first app repositories on macOS, with optional XcodeGen generation preference and repo-baseline setup guidance. Do not use for plain Swift packages, libraries, or tools that are not native Apple apps.

No reviews yet
0 installs
25 views
0.0% view→install

Install

$ agentstack add skill-gaelic-ghost-socket-bootstrap-xcode-app-project

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-gaelic-ghost-socket-bootstrap-xcode-app-project)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Bootstrap Xcode App Project? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Bootstrap Xcode App Project

SwiftData And SwiftUI Rule

When a task combines SwiftData with SwiftUI, keep SwiftData directly coupled to SwiftUI through Apple's data-driven path: modelContainer, environment modelContext, @Query, SwiftData model objects, and bindings. Do not add repositories, stores, service layers, DTO mirrors, view-model caches, wrapper objects, or other abstraction layers between SwiftData and SwiftUI. If this skill is not the right owner for SwiftData-backed SwiftUI work, hand off to apple-dev-skills:swiftui-app-architecture-workflow instead of inventing an intermediate data layer.

Purpose

Create a new native Apple app repository from nothing to a usable baseline on disk. The first implementation prioritizes a deterministic XcodeGen path for SwiftUI app projects and a guarded planning path for the standard Xcode-created-project flow. scripts/run_workflow.py is the runtime entrypoint, and scripts/bootstrap_xcode_app_project.py is the current implementation core for XcodeGen-backed scaffold creation plus maintain-project-repo installation with the xcode-app profile.

Companion Plugin Requirement

This skill can be discovered from a standalone apple-dev-skills install, but its mutating bootstrap path installs repo-maintenance files through the companion productivity-skills plugin. If the companion maintain-project-repo runner is missing, tell the user to install productivity-skills alongside apple-dev-skills, or add the socket marketplace with codex plugin marketplace add gaelic-ghost/socket and then install or enable both apple-dev-skills and productivity-skills from the Socket catalog.

When To Use

  • Use this skill when the user wants to start, begin, create, or bootstrap a new macOS, iOS, or iPadOS app project on macOS.
  • Use this skill when the user explicitly asks for a new Xcode app, a native Apple app, or a new SwiftUI app repository.
  • Use this skill when the user wants a reproducible app-project generator flow and prefers XcodeGen.
  • Use this skill when a brand-new app repo should also get baseline repo guidance such as AGENTS.md.
  • Do not use this skill for ordinary collaboration inside an existing Xcode project.
  • Do not use this skill for plain Swift packages, libraries, or tools that are not native Apple apps.
  • Recommend bootstrap-swift-package when the user wants a regular SwiftPM package instead of a native Apple app.
  • Recommend xcode-build-run-workflow when the project already exists and the task is execution, diagnostics, docs lookup, mutation, build, run, or preview work inside that existing project.
  • Recommend xcode-testing-workflow when the project already exists and the task is primarily about Swift Testing, XCTest, XCUITest, .xctestplan, or test diagnosis.

Single-Path Workflow

  1. Collect the required inputs:
  • name
  • destination
  • platform
  • ui_stack
  • project_generator
  • optional bundle_identifier
  • optional org_identifier
  • optional skip_validation
  • optional dry_run
  1. Classify the request as a native Apple app bootstrap request before continuing:
  • continue only for project_kind=app
  • stop if the request is actually a Swift package, library, or tool bootstrap
  1. Apply the Apple docs gate before recommending project structure or implementation guidance:
  • read the relevant Apple documentation first
  • use Xcode MCP DocumentationSearch or Xcode-local documentation first for Apple-owned SDK, framework, lifecycle, and Xcode project-creation behavior
  • use Dash MCP or Dash HTTP next when installed local docsets are a better fit
  • use open source Swift project repositories, generated DocC, or release notes when the relevant Swift package or tool is open source and available there
  • use official Apple web docs only when the page content is actually readable through a capable source; generic no-JS web search/open results, snippets, metadata shells, or bare URLs are not enough
  • state the documented behavior being relied on before design or implementation guidance
  • current documented anchors for this workflow include:
  • Apple's Xcode project-creation guidance: Creating an Xcode project for an app
  • SwiftUI app lifecycle guidance through the App protocol: App
  • scene composition guidance through Scene and WindowGroup: Scene and WindowGroup
  • if the docs and the current code or planned scaffold conflict, stop and report that conflict
  • if no relevant Apple docs can be found, say that explicitly before proceeding
  1. Apply the shared Swift policy before giving implementation guidance:
  • apply the detailed local policy in references/snippets/apple-xcode-project-core.md
  • preserve its simplicity-first, shape-preserving, and anti-ceremony Swift guidance
  1. Run scripts/run_workflow.py to normalize inputs, load customization state, and select the supported bootstrap path.
  2. Resolve the generator path:
  • prefer xcodegen by default for new app projects unless the user explicitly prefers the standard Xcode project-creation flow
  • use xcode only when the user explicitly prefers the standard Xcode project-creation flow
  • treat ask as a legacy explicit-blocking value only when the user or customization state supplies it intentionally
  1. Create the project:
  • for xcodegen, let scripts/bootstrap_xcode_app_project.py generate the repo scaffold, project.yml, checked-in .xcconfig files, source files, tests, and AGENTS.md, then run xcodegen generate
  • install .codex/environments/xcode-project.toml from templates/codex-local-environments/xcode-project.toml and replace the scheme placeholder with the generated app target name
  • keep the generated project.yml aligned with the current XcodeGen project spec concepts: project options, targets, sources, schemes, packages, config files, test plans, and minimumXcodeGenVersion
  • keep nontrivial build settings in external .xcconfig files by default and wire them through the XcodeGen spec instead of duplicating settings inline
  • for xcode, use a guarded guidance path for now instead of pretending the repo supports full GUI automation already
  1. Validate the scaffold:
  • verify the expected app files exist
  • verify .swiftformat exists
  • verify AGENTS.md exists when enabled
  • verify .codex/environments/xcode-project.toml exists and uses the generated app target name for Codex GUI actions
  • verify generated guidance says tracked .pbxproj changes must be reviewed, staged, and committed before push, merge, release, or cleanup
  • verify scripts/repo-maintenance/hooks/pre-commit.sample exists
  • verify scripts/repo-maintenance/validate-all.sh and scripts/repo-maintenance/release.sh exist
  • verify branch protection, when enabled, requires the GitHub Actions check context validate rather than Validate Repo Maintenance / validate
  • when a GitHub remote is created or already exists, route repository

settings audit or mutation through productivity-skills:maintain-github-repository instead of embedding a separate Xcode-specific baseline

  • if validation is enabled, verify project generation and basic project introspection succeeded
  1. Hand off existing-project work cleanly:
  • recommend sync-xcode-project-guidance when the repo guidance should be refreshed or merged after creation
  • recommend xcode-build-run-workflow for normal Xcode build or run collaboration after bootstrap and guidance sync
  • recommend xcode-testing-workflow for test-focused collaboration after bootstrap and guidance sync

Inputs

  • name: required; app project name and repo directory name.
  • destination: parent directory for the new app repo.
  • project_kind: defaults to app; any non-app value blocks the workflow.
  • platform: macos, ios, or ipados.
  • ui_stack: swiftui, uikit, or appkit.
  • project_generator: ask, xcode, or xcodegen.
  • bundle_identifier: optional explicit bundle identifier.
  • org_identifier: optional organization identifier used to derive a bundle identifier when bundle_identifier is omitted.
  • skip_validation: optional flag to skip post-generation verification.
  • dry_run: optional flag to resolve inputs and emit the planned execution contract without creating files.
  • Defaults:
  • runtime entrypoint: executable scripts/run_workflow.py
  • project_kind defaults to app
  • destination defaults to .
  • platform defaults to ask unless explicitly set
  • ui_stack defaults to swiftui
  • project_generator defaults to xcodegen
  • copy_agents_md defaults to true
  • Codex GUI local environments are installed from templates/codex-local-environments/xcode-project.toml into .codex/environments/xcode-project.toml
  • validation runs unless --skip-validation is passed
  • maintain-project-repo installs scripts/repo-maintenance/ on successful mutating runs

Outputs

  • status
  • success: bootstrap completed on the supported path
  • blocked: prerequisites, unsupported selections, or safety rules prevented completion
  • failed: the implementation path started but did not complete successfully
  • path_type
  • primary: the documented supported path completed
  • fallback: a guided fallback or non-mutating plan was returned instead
  • output
  • resolved project path
  • normalized inputs
  • resolved bundle identifier
  • generator path
  • installed .codex/environments/xcode-project.toml
  • installed maintain-project-repo paths
  • validation result
  • one concise next step or handoff

Guards and Stop Conditions

  • Stop with blocked if name is missing.
  • Stop with blocked if project_kind is not app.
  • Stop with blocked if the platform cannot be resolved safely.
  • Stop with blocked if project_generator=ask and the request intentionally asks not to choose the default generator.
  • Stop with blocked if ui_stack is not supported by the current implementation path.
  • Stop with blocked if the target directory already exists and contains non-ignorable files.
  • Stop with blocked if project_generator=xcodegen and xcodegen is not available on PATH.
  • Stop with blocked if the user chose the standard Xcode flow and the repo cannot safely automate that path yet.

Fallbacks and Handoffs

  • Preferred implementation path in the first iteration is XcodeGen plus generated scaffold files.
  • Use the standard Xcode-created-project path only as a guided fallback for now.
  • After a successful XcodeGen bootstrap, treat project.yml as the editable source for generated project structure and regenerate with xcodegen generate after project-spec changes.
  • After a successful bootstrap, hand off to sync-xcode-project-guidance for repo-guidance alignment when needed, then to xcode-build-run-workflow for build, run, diagnostics, mutation, preview, and docs work.
  • After a successful bootstrap, hand off to xcode-testing-workflow for Swift Testing, XCTest, XCUITest, .xctestplan, and test diagnosis work.
  • After a successful bootstrap, use scripts/repo-maintenance/validate-all.sh for local maintainer validation and scripts/repo-maintenance/release.sh --mode standard --version vX.Y.Z from a feature branch or worktree for protected-main releases.
  • After a successful bootstrap, configure protected branches to require validate for the managed repo-maintenance workflow; GitHub exposes that job check context directly rather than the workflow title plus job string.
  • When the app repository is published to GitHub, use

productivity-skills:maintain-github-repository to audit repository features, merge modes, security automation, sign-off policy, and branch protection.

  • Recommend bootstrap-swift-package directly when the task is really package bootstrap.
  • Recommend sync-xcode-project-guidance when the repo already exists and only needs repo-guidance or documentation alignment.

Customization

  • Use references/customization-flow.md.
  • scripts/customization_config.py stores and reports customization state.
  • scripts/run_workflow.py loads runtime-safe defaults from customization state before invoking the supported implementation path.
  • Current runtime-enforced knobs include the default platform, bundle-ID prefix, and AGENTS.md copy behavior. Project kind, UI stack, generator choice, and validation policy now live as fixed workflow behavior or explicit invocation inputs.
  • Run the Python wrapper and customization entrypoints through uv, because they rely on inline PyYAML script metadata rather than a repo-global Python environment.
  • In consuming repos, the supported path is uv run scripts/run_workflow.py ... and uv run scripts/customization_config.py ...; do not assume plain python or python3 will have the needed YAML dependency installed.

References

Workflow References

  • references/project-generators.md
  • references/platform-matrix.md

Contract References

  • references/automation-prompts.md
  • references/customization-flow.md

Support References

  • assets/AGENTS.md
  • Recommend references/snippets/apple-xcode-project-core.md when the new app repo should start with reusable Xcode-project baseline policy content next to the generated AGENTS.md.
  • references/snippets/apple-xcode-project-core.md

Script Inventory

  • scripts/run_workflow.py
  • scripts/bootstrap_xcode_app_project.py
  • scripts/customization_config.py

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.