{"id":"b4a42e6c-44e0-4241-a607-27fb61ece27a","shortId":"RBXkYH","kind":"skill","title":"bootstrap-xcode-app-project","tagline":"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. D","description":"# Bootstrap Xcode App Project\n\n## Purpose\n\nCreate 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.\n\n## Companion Plugin Requirement\n\nThis 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`](https://github.com/gaelic-ghost/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`](https://github.com/gaelic-ghost/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.\n\n## When To Use\n\n- Use this skill when the user wants to start, begin, create, or bootstrap a new macOS, iOS, or iPadOS app project on macOS.\n- Use this skill when the user explicitly asks for a new Xcode app, a native Apple app, or a new SwiftUI app repository.\n- Use this skill when the user wants a reproducible app-project generator flow and prefers `XcodeGen`.\n- Use this skill when a brand-new app repo should also get baseline repo guidance such as `AGENTS.md`.\n- Do not use this skill for ordinary collaboration inside an existing Xcode project.\n- Do not use this skill for plain Swift packages, libraries, or tools that are not native Apple apps.\n- Recommend `bootstrap-swift-package` when the user wants a regular SwiftPM package instead of a native Apple app.\n- 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.\n- Recommend `xcode-testing-workflow` when the project already exists and the task is primarily about Swift Testing, XCTest, XCUITest, `.xctestplan`, or test diagnosis.\n\n## Single-Path Workflow\n\n1. Collect the required inputs:\n   - `name`\n   - `destination`\n   - `platform`\n   - `ui_stack`\n   - `project_generator`\n   - optional `bundle_identifier`\n   - optional `org_identifier`\n   - optional `skip_validation`\n   - optional `dry_run`\n2. Classify the request as a native Apple app bootstrap request before continuing:\n   - continue only for `project_kind=app`\n   - stop if the request is actually a Swift package, library, or tool bootstrap\n3. Apply the Apple docs gate before recommending project structure or implementation guidance:\n   - read the relevant Apple documentation first\n   - prefer Dash or local Apple docs first, then official Apple web docs when needed\n   - state the documented behavior being relied on before design or implementation guidance\n   - current documented anchors for this workflow include:\n     - Apple's Xcode project-creation guidance: [Creating an Xcode project for an app](https://developer.apple.com/documentation/xcode/creating_an_xcode_project_for_an_app)\n     - SwiftUI app lifecycle guidance through the `App` protocol: [App](https://developer.apple.com/documentation/swiftui/app)\n     - scene composition guidance through `Scene` and `WindowGroup`: [Scene](https://developer.apple.com/documentation/swiftui/scene) and [WindowGroup](https://developer.apple.com/documentation/swiftui/windowgroup)\n   - if the docs and the current code or planned scaffold conflict, stop and report that conflict\n   - if no relevant Apple docs can be found, say that explicitly before proceeding\n4. Apply the shared Swift policy before giving implementation guidance:\n   - apply the detailed local policy in `references/snippets/apple-xcode-project-core.md`\n   - preserve its simplicity-first, shape-preserving, and anti-ceremony Swift guidance\n5. Run `scripts/run_workflow.py` to normalize inputs, load customization state, and select the supported bootstrap path.\n6. Resolve the generator path:\n   - prefer `xcodegen` only when the user asked for it explicitly\n   - use `xcode` only when the user explicitly prefers the standard Xcode project-creation flow\n   - if the generator setting is `ask`, stop with a clear next step rather than guessing\n7. Create the project:\n   - for `xcodegen`, let `scripts/bootstrap_xcode_app_project.py` generate the repo scaffold, `project.yml`, source files, tests, and `AGENTS.md`, then run `xcodegen generate`\n   - keep the generated `project.yml` aligned with the current XcodeGen project spec concepts: project `options`, targets, sources, schemes, packages, test plans, and `minimumXcodeGenVersion`\n   - for `xcode`, use a guarded guidance path for now instead of pretending the repo supports full GUI automation already\n8. Validate the scaffold:\n   - verify the expected app files exist\n   - verify `.swiftformat` exists\n   - verify `AGENTS.md` exists when enabled\n   - verify generated guidance says tracked `.pbxproj` changes must be reviewed, staged, and committed before push, merge, release, or cleanup\n   - verify `scripts/repo-maintenance/hooks/pre-commit.sample` exists\n   - verify `scripts/repo-maintenance/validate-all.sh` and `scripts/repo-maintenance/release.sh` exist\n   - verify branch protection, when enabled, requires the GitHub Actions check context `validate` rather than `Validate Repo Maintenance / validate`\n   - if validation is enabled, verify project generation and basic project introspection succeeded\n9. Hand off existing-project work cleanly:\n   - recommend `sync-xcode-project-guidance` when the repo guidance should be refreshed or merged after creation\n   - recommend `xcode-build-run-workflow` for normal Xcode build or run collaboration after bootstrap and guidance sync\n   - recommend `xcode-testing-workflow` for test-focused collaboration after bootstrap and guidance sync\n\n## Inputs\n\n- `name`: required; app project name and repo directory name.\n- `destination`: parent directory for the new app repo.\n- `project_kind`: defaults to `app`; any non-app value blocks the workflow.\n- `platform`: `macos`, `ios`, or `ipados`.\n- `ui_stack`: `swiftui`, `uikit`, or `appkit`.\n- `project_generator`: `ask`, `xcode`, or `xcodegen`.\n- `bundle_identifier`: optional explicit bundle identifier.\n- `org_identifier`: optional organization identifier used to derive a bundle identifier when `bundle_identifier` is omitted.\n- `skip_validation`: optional flag to skip post-generation verification.\n- `dry_run`: optional flag to resolve inputs and emit the planned execution contract without creating files.\n- Defaults:\n  - runtime entrypoint: executable `scripts/run_workflow.py`\n  - `project_kind` defaults to `app`\n  - `destination` defaults to `.`\n  - `platform` defaults to `ask` unless explicitly set\n  - `ui_stack` defaults to `swiftui`\n  - `project_generator` defaults to `ask`\n  - `copy_agents_md` defaults to `true`\n  - validation runs unless `--skip-validation` is passed\n  - `maintain-project-repo` installs `scripts/repo-maintenance/` on successful mutating runs\n\n## Outputs\n\n- `status`\n  - `success`: bootstrap completed on the supported path\n  - `blocked`: prerequisites, unsupported selections, or safety rules prevented completion\n  - `failed`: the implementation path started but did not complete successfully\n- `path_type`\n  - `primary`: the documented supported path completed\n  - `fallback`: a guided fallback or non-mutating plan was returned instead\n- `output`\n  - resolved project path\n  - normalized inputs\n  - resolved bundle identifier\n  - generator path\n  - installed `maintain-project-repo` paths\n  - validation result\n  - one concise next step or handoff\n\n## Guards and Stop Conditions\n\n- Stop with `blocked` if `name` is missing.\n- Stop with `blocked` if `project_kind` is not `app`.\n- Stop with `blocked` if the platform cannot be resolved safely.\n- Stop with `blocked` if `project_generator=ask` and the request does not make the generator preference clear.\n- Stop with `blocked` if `ui_stack` is not supported by the current implementation path.\n- Stop with `blocked` if the target directory already exists and contains non-ignorable files.\n- Stop with `blocked` if `project_generator=xcodegen` and `xcodegen` is not available on `PATH`.\n- Stop with `blocked` if the user chose the standard Xcode flow and the repo cannot safely automate that path yet.\n\n## Fallbacks and Handoffs\n\n- Preferred implementation path in the first iteration is `XcodeGen` plus generated scaffold files.\n- Use the standard Xcode-created-project path only as a guided fallback for now.\n- 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.\n- 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.\n- After a successful bootstrap, hand off to `xcode-testing-workflow` for Swift Testing, XCTest, XCUITest, `.xctestplan`, and test diagnosis work.\n- 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.\n- 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.\n- Recommend `bootstrap-swift-package` directly when the task is really package bootstrap.\n- Recommend `sync-xcode-project-guidance` when the repo already exists and only needs repo-guidance or documentation alignment.\n\n## Customization\n\n- Use `references/customization-flow.md`.\n- `scripts/customization_config.py` stores and reports customization state.\n- `scripts/run_workflow.py` loads runtime-safe defaults from customization state before invoking the supported implementation path.\n- 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.\n- Run the Python wrapper and customization entrypoints through `uv`, because they rely on inline `PyYAML` script metadata rather than a repo-global Python environment.\n- 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.\n\n## References\n\n### Workflow References\n\n- `references/project-generators.md`\n- `references/platform-matrix.md`\n\n### Contract References\n\n- `references/automation-prompts.md`\n- `references/customization-flow.md`\n\n### Support References\n\n- `assets/AGENTS.md`\n- 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`.\n- `references/snippets/apple-xcode-project-core.md`\n\n### Script Inventory\n\n- `scripts/run_workflow.py`\n- `scripts/bootstrap_xcode_app_project.py`\n- `scripts/customization_config.py`","tags":["bootstrap","xcode","app","project","apple","dev","skills","gaelic-ghost","agent-skills","apple-development","apple-docs","apple-docs-mcp"],"capabilities":["skill","source-gaelic-ghost","skill-bootstrap-xcode-app-project","topic-agent-skills","topic-apple-development","topic-apple-docs","topic-apple-docs-mcp","topic-codex","topic-codex-app","topic-codex-cli","topic-codex-skills","topic-dash-docsets","topic-ios","topic-macos","topic-swift"],"categories":["apple-dev-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/gaelic-ghost/apple-dev-skills/bootstrap-xcode-app-project","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add gaelic-ghost/apple-dev-skills","source_repo":"https://github.com/gaelic-ghost/apple-dev-skills","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 7 github stars · SKILL.md body (11,581 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:13:58.327Z","embedding":null,"createdAt":"2026-05-18T13:21:10.454Z","updatedAt":"2026-05-18T19:13:58.327Z","lastSeenAt":"2026-05-18T19:13:58.327Z","tsv":"'/documentation/swiftui/app)':551 '/documentation/swiftui/scene)':562 '/documentation/swiftui/windowgroup)':567 '/documentation/xcode/creating_an_xcode_project_for_an_app)':539 '/gaelic-ghost/productivity-skills)':163 '/gaelic-ghost/socket)':194 '/socket':204 '1':415 '2':439 '3':471 '4':597 '5':628 '6':643 '7':688 '8':751 '9':826 'action':804 'actual':463 'add':189,200 'agent':1011 'agents.md':307,705,765,1459,1567 'align':714,1289,1420 'alongsid':183 'alreadi':367,395,750,1175,1410 'also':300 'anchor':518 'anti':624 'anti-ceremoni':623 'app':4,11,30,38,56,64,84,127,245,261,265,270,282,297,338,357,447,457,536,541,546,548,758,887,900,906,910,989,1126,1551 'app-project':281 'appkit':925 'appl':10,63,141,185,212,264,337,356,446,474,487,494,499,523,587 'apple-dev-skil':140,184,211 'appli':472,598,607 'ask':256,654,678,928,996,1009,1143 'assets/agents.md':1545 'assum':1522 'autom':749,1213 'avail':1194 'back':114 'baselin':50,71,302,1560 'basic':822 'begin':24,235 'behavior':507,1461,1476 'block':912,1043,1113,1120,1129,1139,1156,1170,1185,1199 'bootstrap':2,6,27,54,148,238,341,448,470,641,865,880,1037,1252,1276,1311,1332,1359,1390,1400 'bootstrap-swift-packag':340,1389 'bootstrap-xcode-app-project':1 'branch':797,1348,1362 'brand':295 'brand-new':294 'build':361,378,854,860,1296,1300 'bundl':428,932,936,947,950,1089,1455 'bundle-id':1454 'cannot':1133,1211 'catalog':222 'ceremoni':625 'chang':775,1272 'check':805,1377 'choic':1467 'chose':1203 'classifi':440 'clean':833 'cleanup':787 'clear':682,1153 'code':574 'codex':197 'collabor':315,863,878 'collect':416 'commit':781 'companion':129,157,167 'complet':1038,1051,1060,1069 'composit':553 'concept':721 'concis':1102 'condit':1110 'configur':1360 'conflict':578,583 'consum':1507 'contain':1178 'content':1562 'context':806,1378 'continu':451,452 'contract':976,1539 'copi':1010,1460 'core':110 'creat':25,59,96,236,530,689,978,1238 'creation':116,528,671,850 'current':108,516,573,717,1165,1445 'custom':635,1421,1428,1437,1486 'd':53 'dash':491 'default':904,980,987,991,994,1002,1007,1013,1435,1452 'depend':1532 'deriv':945 'design':512 'destin':421,894,990 'detail':609 'determinist':79 'dev':142,186,213 'developer.apple.com':538,550,561,566 'developer.apple.com/documentation/swiftui/app)':549 'developer.apple.com/documentation/swiftui/scene)':560 'developer.apple.com/documentation/swiftui/windowgroup)':565 'developer.apple.com/documentation/xcode/creating_an_xcode_project_for_an_app)':537 'diagnosi':410,1327 'diagnost':374,1302 'direct':1379,1393 'directori':892,896,1174 'discov':136 'disk':73 'doc':375,475,495,501,570,588,1306 'document':488,506,517,1066,1419 'dri':437,964 'edit':1257 'emit':972 'enabl':209,768,800,817 'enforc':1448 'entrypoint':103,982,1487 'environ':1505 'execut':373,975,983 'exist':318,368,385,396,760,763,766,790,795,830,1176,1411 'existing-project':829 'expect':757 'explicit':255,594,657,664,935,998,1478 'expos':1374 'fail':1052 'fallback':1070,1073,1217,1245 'featur':1347 'file':154,702,759,979,1182,1232 'first':37,75,489,496,618,1225 'fix':1474 'flag':957,967 'flow':98,285,672,1207 'focus':877 'found':591 'full':747 'gaelic':202 'gaelic-ghost':201 'gate':476 'generat':45,284,426,646,675,696,709,712,770,820,927,962,1006,1091,1142,1151,1188,1230,1260,1267,1466,1566 'get':301 'ghost':203 'github':803,1373 'github.com':162,193 'github.com/gaelic-ghost/productivity-skills)':161 'github.com/gaelic-ghost/socket)':192 'give':604 'global':1503 'guard':88,736,1107 'guess':687 'gui':748 'guid':1072,1244 'guidanc':52,304,483,515,529,543,554,606,627,737,771,839,843,867,882,1284,1288,1406,1417 'hand':827,1277,1312 'handoff':1106,1219 'id':1456 'identifi':429,432,933,937,939,942,948,951,1090 'ignor':1181 'implement':76,109,482,514,605,1054,1166,1221,1443 'includ':522,1450 'inlin':1494 'input':419,633,884,970,1087,1480 'insid':316,383 'instal':122,144,150,179,207,1028,1093,1533 'instead':352,741,1081 'introspect':824 'inventori':1570 'invoc':1479 'invok':1440 'io':15,242,917 'ipado':17,244,919 'iter':1226 'job':1376,1386 'keep':710 'kind':456,903,986,1123,1463 'knob':1449 'let':694 'librari':330,467 'lifecycl':542 'live':1472 'load':634,1431 'local':493,610,1336 'lookup':376 'maco':14,41,241,248,916 'main':1354 'maintain':119,169,1025,1095,1337 'maintain-project-repo':118,168,1024,1094 'mainten':153,812,1371 'make':1149 'manag':1368 'marketplac':195,199 'md':1012 'merg':784,848 'metadata':1497 'minimumxcodegenvers':731 'miss':174,1117 'mode':1341 'must':776 'mutat':147,377,1032,1077,1303 'name':420,885,889,893,1115 'nativ':9,62,263,336,355,445 'need':503,1291,1414,1530 'new':8,34,61,240,259,268,296,899,1550 'next':683,1103,1563 'non':909,1076,1180 'non-app':908 'non-ignor':1179 'non-mut':1075 'normal':632,858,1086 'noth':67 'offici':498 'omit':953 'one':1101 'option':43,427,430,433,436,723,934,940,956,966 'ordinari':314 'org':431,938 'organ':941 'output':1034,1082 'packag':329,343,351,466,727,1392,1399 'parent':895 'pass':1023 'path':81,90,149,413,642,647,738,1042,1055,1062,1068,1085,1092,1098,1167,1196,1215,1222,1240,1444,1511 'pbxproj':774 'plain':327,1523 'plan':89,576,729,974,1078 'platform':422,915,993,1132,1453 'plugin':130,164,198 'plus':117,1229,1385 'polici':602,611,1470,1561 'post':961 'post-gener':960 'prefer':46,287,490,648,665,1152,1220 'prefix':1457 'prerequisit':1044 'preserv':614,621 'pretend':743 'prevent':1050 'preview':381,1304 'primari':1064 'primarili':401 'priorit':77 'proceed':596 'product':159,181,217 'productivity-skil':158,180,216 'profil':128 'project':5,12,31,57,85,97,120,170,246,283,320,366,386,394,425,455,479,527,533,670,691,719,722,819,823,831,838,888,902,926,985,1005,1026,1084,1096,1122,1141,1187,1239,1261,1270,1283,1405,1462,1559 'project-cr':526,669 'project-spec':1269 'project.yml':700,713,1254 'protect':798,1353,1361 'protected-main':1352 'protocol':547 'purpos':58 'push':783 'python':1483,1504,1524 'python3':1526 'pyyaml':1495 'rather':685,808,1380,1498 'read':484 'realli':1398 'recommend':339,358,387,478,834,851,869,1388,1401,1546 'refer':1534,1536,1540,1544 'references/automation-prompts.md':1541 'references/customization-flow.md':1423,1542 'references/platform-matrix.md':1538 'references/project-generators.md':1537 'references/snippets/apple-xcode-project-core.md':613,1547,1568 'refresh':846 'regener':1264 'regular':349 'releas':785,1355 'relev':486,586 'reli':509,1492 'repo':49,121,152,171,298,303,698,745,811,842,891,901,1027,1097,1210,1287,1370,1409,1416,1502,1508,1552 'repo-baselin':48 'repo-glob':1501 'repo-guid':1286,1415 'repo-mainten':151,1369 'report':581,1427 'repositori':39,65,271 'reproduc':280 'request':442,449,461,1146 'requir':131,418,801,886,1364 'resolv':644,969,1083,1088,1135 'result':1100 'return':1080 'reusabl':1556 'review':778 'rule':1049 'run':362,379,438,629,707,855,862,965,1017,1033,1297,1301,1481,1514,1518 'runner':172 'runtim':102,981,1433,1447 'runtime-enforc':1446 'runtime-saf':1432 'safe':1136,1212,1434 'safeti':1048 'say':592,772 'scaffold':115,577,699,754,1231 'scene':552,556,559 'scheme':726 'script':1496,1569 'scripts/bootstrap_xcode_app_project.py':105,695,1572 'scripts/customization_config.py':1424,1519,1573 'scripts/repo-maintenance':1029 'scripts/repo-maintenance/hooks/pre-commit.sample':789 'scripts/repo-maintenance/release.sh':794,1340 'scripts/repo-maintenance/validate-all.sh':792,1334 'scripts/run_workflow.py':99,630,984,1430,1515,1571 'select':638,1046 'set':676,999 'setup':51 'shape':620 'shape-preserv':619 'share':600 'simplic':617 'simplicity-first':616 'singl':412 'single-path':411 'skill':133,143,160,182,187,214,218,228,251,274,291,312,325 'skill-bootstrap-xcode-app-project' 'skip':434,954,959,1020 'skip-valid':1019 'socket':191,221 'sourc':701,725,1258 'source-gaelic-ghost' 'spec':720,1271 'stack':424,921,1001,1159,1465 'stage':779 'standalon':139 'standard':93,667,1205,1235,1342 'start':23,234,1056,1554 'state':504,636,1429,1438 'status':1035 'step':684,1104 'stop':458,579,679,1109,1111,1118,1127,1137,1154,1168,1183,1197 'store':1425 'string':1387 'structur':480,1262 'succeed':825 'success':1031,1036,1061,1250,1275,1310,1331,1358 'support':640,746,1041,1067,1162,1442,1510,1543 'swift':328,342,403,465,601,626,1320,1391 'swiftformat':762 'swiftpm':350 'swiftui':36,83,269,540,922,1004 'swiftui-first':35 'sync':836,868,883,1281,1403 'sync-xcode-project-guid':835,1280,1402 'target':724,1173 'task':371,399,1396 'tell':175 'test':390,404,409,703,728,872,876,1317,1321,1326 'test-focus':875 'titl':1384 'tool':332,469 'topic-agent-skills' 'topic-apple-development' 'topic-apple-docs' 'topic-apple-docs-mcp' 'topic-codex' 'topic-codex-app' 'topic-codex-cli' 'topic-codex-skills' 'topic-dash-docsets' 'topic-ios' 'topic-macos' 'topic-swift' 'track':773 'treat':1253 'true':1015 'type':1063 'ui':423,920,1000,1158,1464 'uikit':923 'unless':997,1018 'unsupport':1045 'usabl':70 'use':32,225,226,249,272,289,310,323,658,734,943,1233,1333,1422 'user':20,177,231,254,277,346,653,663,1202 'uv':1489,1513,1517 'valid':435,752,807,810,813,815,955,1016,1021,1099,1338,1365,1469 'valu':911 'verif':963 'verifi':755,761,764,769,788,791,796,818 'version':1343 'vx.y.z':1344 'want':21,232,278,347 'web':500 'windowgroup':558,564 'without':977 'work':382,832,1307,1328 'workflow':363,391,414,521,856,873,914,1298,1318,1372,1383,1475,1535 'worktre':1350 'wrapper':1484 'xcode':3,29,55,95,126,260,319,360,389,525,532,659,668,733,837,853,859,871,929,1206,1237,1282,1295,1316,1404,1558 'xcode-app':125 'xcode-build-run-workflow':359,852,1294 'xcode-created-project':94,1236 'xcode-project':1557 'xcode-testing-workflow':388,870,1315 'xcodegen':44,80,113,288,649,693,708,718,931,1189,1191,1228,1251,1266 'xcodegen-back':112 'xctest':405,1322 'xctestplan':407,1324 'xcuitest':406,1323 'yaml':1531 'yet':1216","prices":[{"id":"b5922288-6a5b-4861-8c86-bf4beae419a3","listingId":"b4a42e6c-44e0-4241-a607-27fb61ece27a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"gaelic-ghost","category":"apple-dev-skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:21:10.454Z"}],"sources":[{"listingId":"b4a42e6c-44e0-4241-a607-27fb61ece27a","source":"github","sourceId":"gaelic-ghost/apple-dev-skills/bootstrap-xcode-app-project","sourceUrl":"https://github.com/gaelic-ghost/apple-dev-skills/tree/main/skills/bootstrap-xcode-app-project","isPrimary":false,"firstSeenAt":"2026-05-18T13:21:10.454Z","lastSeenAt":"2026-05-18T19:13:58.327Z"}],"details":{"listingId":"b4a42e6c-44e0-4241-a607-27fb61ece27a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"gaelic-ghost","slug":"bootstrap-xcode-app-project","github":{"repo":"gaelic-ghost/apple-dev-skills","stars":7,"topics":["agent-skills","apple-development","apple-docs","apple-docs-mcp","codex","codex-app","codex-cli","codex-skills","dash-docsets","ios","macos","swift","swift-package-manager","swift-toolchain","swiftly","swiftpm","xcode","xcode-mcp","xcodebuild","xcrun"],"license":"apache-2.0","html_url":"https://github.com/gaelic-ghost/apple-dev-skills","pushed_at":"2026-05-13T01:26:51Z","description":"Apple Dev Workflows for Codex | Now Available in Socket Marketplace","skill_md_sha":"9dc271c35b229529e9259aeccee53d8e733fd6b2","skill_md_path":"skills/bootstrap-xcode-app-project/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/gaelic-ghost/apple-dev-skills/tree/main/skills/bootstrap-xcode-app-project"},"layout":"multi","source":"github","category":"apple-dev-skills","frontmatter":{"name":"bootstrap-xcode-app-project","description":"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."},"skills_sh_url":"https://skills.sh/gaelic-ghost/apple-dev-skills/bootstrap-xcode-app-project"},"updatedAt":"2026-05-18T19:13:58.327Z"}}