From sdlc-team-ios
Scaffolds a new iOS app with submission-safe defaults — diffable project files, test targets, deployment-target policy, git-stamped build number, and required Info.plist keys. Use when starting a new iOS project.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sdlc-team-ios:ios-scaffold [app-name][app-name]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create a new iOS app project that is **submission-safe from the first commit** — so it doesn't hit the
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).
app-name — the app / bundle name (defaults to asking).Prefer a diffable, mergeable project definition over a hand-managed .xcodeproj:
.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.
swiftui-architect..gitignore covering *.xcodeproj (if generated), DerivedData/, .build/, *.xcuserstate,
.DS_Store, and any secrets file.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.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.Package.swift).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.ENABLE_USER_SCRIPT_SANDBOXING = NO (leave it YES
elsewhere) — a script that reads git/the environment fails to archive under the sandbox otherwise..xcconfig/build settings + a secrets mechanism.ios-ci to generate the GitHub Actions workflow (which gates on the pre-flight checks).PrivacyInfo.xcprivacy stub if the app will use required-reason APIs or bundle third-party SDKs.python -m ios_preflight.cli <project>) — it should be clean (or only INFO) on a fresh scaffold.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).
ios-testflight-release pre-flight on day one — don't leave the
export-compliance key or build-number policy "for later".swiftui-architect; for
idiomatic Swift, to swift-language-expert.npx claudepluginhub stevegjones/ai-first-sdlc-practices --plugin sdlc-team-iosGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.