ios-scaffold
Scaffold a new iOS app with SDLC and submission-safe defaults — diffable project files, app + test targets, deployment-target policy, a git-stamped build…
Skill by SteveGJones
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/stevegjones-ios-scaffold
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ios-scaffold
What's inside
- Skill name
ios-scaffold- Description
- Scaffold a new iOS app with SDLC and submission-safe defaults — diffable project files, app + test targets, deployment-target policy, a git-stamped build number, and the Info.plist keys the pre-flight checker wants so the project passes TestFlight from day one. Use when starting a new iOS project.
- License
- MIT
- Instructions
- 80 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# iOS Scaffold Create a new iOS app project that is **submission-safe from the first commit** — so it doesn't hit the TestFlight/App Store blockers `ios-testflight-release` and the pre-flight checker exist to catch. Belongs to the **`sdlc-team-ios`** plugin; pairs with `swiftui-architect` (structure) and `swift-language-expert` (language). ## Arguments - `app-name` — the app / bundle name (defaults to asking). ## Steps ### 1. Choose the project-generation approach Prefer a **diffable, mergeable** project definition over a hand-managed `.xcodeproj`: - **Swift Package Manager** (an app built as a package + a thin app target) for library-first / simple apps. - **Tuist** or **XcodeGen** to generate the `.xcodeproj` from a committed manifest (Tuist's `Project.swift`, or an XcodeGen YAML manifest) that *is* committed, so project changes review cleanly and don't cause merge conflicts. Ask which the team prefers; default to XcodeGen/Tuist for an app that needs a real Xcode project. ### 2. Establish structure - **App target** + **unit-test target** (Swift Testing) + optional **UI-test target** (XCUITest). - A **SwiftPM feature-module** layout if the app is non-trivial (feature packages + Core/DesignSystem/ Models; thin app composition root) — see `swiftui-architect`. - `.gitignore` covering `*.xcodeproj` (if generated), `DerivedData/`, `.build/`, `*.xcuserstate`, `.DS_Store`, and any secrets file. ### 3. Wire submission-safe Info.plist defaults (this is the point of the skill) Pre-set the keys the pre-flight checker looks for, so uploads don't stall or get rejected later: - **`ITSAppUsesNonExemptEncryption = false`** (if the app uses only exempt encryption such as standard HTTPS) — skips the export-compliance questionnaire on every upload. - A **`NS…UsageDescription`** placeholder-with-a-real-sentence for each capability the app will use (add them as you add frameworks; the pre-flight check maps CoreMotion→`NSMotionUsageDescription`, etc.). Leave a comment reminding that these must be real human sentences. - Set the **deployment target** to the team's minimum-supported iOS per policy (and keep it consistent across targets and `Package.swift`). ### 4. Git-stamped, monotonic build number - Keep `MARKETING_VERSION` fixed pre-1.0 (e.g. `1.0.0`) and stamp **`CFBundleVersion` from `git rev-list --count HEAD`** (optionally plus the short SHA and date) in a **build-phase script**, so every build is unique, monotonic, and traceable to a commit. - On the target that runs that script, set **`ENABLE_USER_SCRIPT_SANDBOXING = NO`** (leave it `YES` elsewhere) — a script that reads git/the environment fails to archive under the sandbox otherwise. ### 5. Release-default safety - Gate debug menus, feature flags, verbose logging, and staging endpoints behind a build config or a flag that is **OFF in Release** unless explicitly enabled. - No secrets/API keys in the repo or the bundle — use `.xcconfig`/build settings + a secrets mechanism. ### 6. CI and privacy manifest - Offer to run `ios-ci` to generate the GitHub Actions workflow (which gates on the pre-flight checks). - Add a `PrivacyInfo.xcprivacy` stub if the app will use required-reason APIs or bundle third-party SDKs. ### 7. Verify - Build once; run the unit-test target; and run the pre-flight checker (`python -m ios_preflight.cli <project>`) — it should be clean (or only INFO) on a fresh scaffold. ### 8. Report Summarise what was generated, the generation approach chosen, the build-number policy, and confirm the pre-flight checker is clean. Note anything the user must fill in (real purpose strings, signing team). ## Notes - The goal is a project that passes `ios-testflight-release` pre-flight on day one — don't leave the export-compliance key or build-number policy "for later". - For app *architecture* choices (state, navigation, persistence), hand off to `swiftui-architect`; for idiomatic Swift, to `swift-language-expert`.
From SteveGJones/ai-first-sdlc-practices, MIT.
More from SteveGJones/ai-first-sdlc-practices
- 0.643score
kb-ingest-bulk
SteveGJones
Parallel map-reduce bulk ingest for large source sets.
SkillAFreshness: A★ 41Claude Code +9 - 0.640score
kb-rebuild-indexes
SteveGJones
Rebuild the knowledge base shelf-index with hash-based change detection.
SkillAFreshness: A★ 41Claude Code +9 - 0.640score
kb-ingest-batch
SteveGJones
Drive agent-knowledge-updater over a batch of staged files in library/raw/.
SkillAFreshness: A★ 41Claude Code +9 - 0.640score
kb-query
SteveGJones
Query the project knowledge base.
SkillAFreshness: A★ 41Claude Code +9 - 0.555score
android-scaffold
SteveGJones
Scaffold a new Android app with SDLC and Play-safe defaults — Kotlin/Compose Gradle project with version catalog, convention plugins, module layout, a…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
android-signing-setup
SteveGJones
Set up Android app signing safely — generate an upload keystore, enroll in Play App Signing, and wire a Gradle release signingConfig that reads secrets from a…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
ios-ci
SteveGJones
Generate a GitHub Actions workflow for iOS — macOS runner, SPM/DerivedData caching, build, test on a simulator matrix, run the iOS pre-flight checks, and…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
android-ci
SteveGJones
Generate a GitHub Actions workflow for Android — JDK + Gradle caching, build, unit + instrumented tests, Android Lint, run the Android pre-flight checks, and…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
kb-lint
SteveGJones
Health-check the project knowledge base.
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
android-play-release
SteveGJones
Validated Google Play release — runs the pre-flight checks and clears the Play policy gates, builds a signed app bundle with a git-stamped versionCode…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
council-policy
SteveGJones
Policy for the cross-model council: when to hand off to an installed sibling plugin's own slash command (`/codex:*`) versus dispatching our…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
ios-signing-doctor
SteveGJones
Diagnose and fix iOS code-signing, provisioning, and entitlement failures — the "no signing certificate / no profiles / doesn't match / get-task-allow"…
SkillCFreshness: C★ 41Claude Code +9
Signals
- Stars
- 41
- Forks
- 6
- Open issues
- 37
- Last commit (this folder)
- Jul 23, 2026 (3 months ago)
- Last release
- Aug 10, 2025 (1 year ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from SteveGJones
- 0.643score
kb-ingest-bulk
SteveGJones
Parallel map-reduce bulk ingest for large source sets.
SkillAFreshness: A★ 41Claude Code +9 - 0.640score
kb-query
SteveGJones
Query the project knowledge base.
SkillAFreshness: A★ 41Claude Code +9 - 0.640score
kb-ingest-batch
SteveGJones
Drive agent-knowledge-updater over a batch of staged files in library/raw/.
SkillAFreshness: A★ 41Claude Code +9 - 0.640score
kb-rebuild-indexes
SteveGJones
Rebuild the knowledge base shelf-index with hash-based change detection.
SkillAFreshness: A★ 41Claude Code +9 - 0.555score
council-policy
SteveGJones
Policy for the cross-model council: when to hand off to an installed sibling plugin's own slash command (`/codex:*`) versus dispatching our…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
kb-lint
SteveGJones
Health-check the project knowledge base.
SkillCFreshness: C★ 41Claude Code +9
Cite this page
ios-scaffold skill. Agent Mart. https://agentmart.dev/skills/stevegjones-ios-scaffold (last updated 2026-10-24)