{"id":"c9a9125c-e639-4aa1-92f9-876a5d5ed373","shortId":"p5wKAy","kind":"skill","title":"xcode-testing-workflow","tagline":"Guide Swift Testing, XCTest, XCUITest, XCUIAutomation-oriented mechanics, xctestplan matrices, accessibility-verification follow-through, test filtering, retries, diagnostics, and test-specific fallback work in existing Xcode-managed projects and workspaces. Use when Xcode-aware ","description":"# Xcode Testing Workflow\n\n## Purpose\n\nUse this skill as the primary execution workflow for test-focused work in or around Xcode-managed projects and workspaces. Keep it focused on Swift Testing, XCTest, XCUITest, XCUIAutomation-oriented mechanics, `.xctestplan`, destinations, launch arguments, interruption handling, attachments, accessibility-verification follow-through, Instruments profiling, `xctrace` trace capture, filters, retries, diagnostics, and test-specific Debug/Release validation instead of broad build/run or toolchain work. `scripts/run_workflow.py` is the runtime entrypoint for MCP-first test execution, official CLI fallback planning, and the remaining `.pbxproj` warning boundary when mutation enters project-file territory.\n\n## When To Use\n\n- Use this skill for Xcode test execution, test diagnosis, test filtering, retries, destination selection, and test-plan work.\n- Use this skill for Swift Testing, XCTest, XCUITest, XCUIAutomation-oriented mechanics, `.xctestplan`, flaky-test diagnosis, accessibility-verification follow-through, and test-only configuration validation.\n- Use this skill for Instruments and `xctrace` follow-through when performance-sensitive tests need Time Profiler, Metal System Trace, Allocations, VM Tracker, Points of Interest, signpost-aligned traces, or `.trace` artifact interpretation.\n- Use this skill for Xcode MCP operations and official Apple CLI fallback when the work is primarily about tests rather than build/run.\n- Use this skill when direct filesystem mutation around tests or test plans may be required.\n- Do not use this skill as the default path for ordinary build, run, preview, archive, or general project-integrity work.\n- Recommend `xcode-build-run-workflow` when the task is primarily about build, run, previews, file membership, archives, toolchains, or guarded non-test mutation work.\n- Recommend `explore-apple-swift-docs` when the user needs Apple or Swift documentation lookup rather than execution work.\n- Recommend `swift-package-testing-workflow` when the task is package-first testing outside Xcode-managed execution.\n- Recommend `sync-xcode-project-guidance` when an existing Xcode app repo needs `AGENTS.md` or workflow-guidance alignment rather than active engineering work.\n\n## Single-Path Workflow\n\n1. Classify the request into one operation type:\n   - read, search, or diagnostics\n   - test\n   - mutation\n2. Apply the Apple docs gate before any Apple design, architecture, implementation, or refactor guidance:\n   - use `explore-apple-swift-docs` to gather the relevant Apple documentation first\n   - state the documented API behavior, lifecycle rule, or workflow requirement being relied on before proposing changes\n   - do not rely on memory as the primary source when Apple docs exist\n   - if the docs and the current code conflict, stop and report that conflict\n   - if no relevant Apple docs can be found, say that explicitly before proceeding\n3. 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\n   - preserve its project-appropriate logging, telemetry, and SwiftUI architecture guidance\n4. Run `scripts/run_workflow.py` to apply runtime configuration, `.pbxproj` warning safeguards, and CLI fallback planning.\n5. Use the focused references for the right testing surface:\n   - `references/xctestplan-configurations-and-matrix.md` for `.xctestplan`, launch-argument matrices, named configurations, and Debug/Release test coverage\n   - `references/xcuitest-and-xcuiautomation.md` for UI automation mechanics, waits, interruption handling, activities, and attachments\n   - `references/ui-accessibility-verification.md` for accessibility-specific runtime verification expectations and coordination with `apple-ui-accessibility-workflow`\n   - `references/instruments-performance-profiling.md` for Instruments, `xctrace`, Time Profiler, Metal System Trace, Allocations, VM Tracker, Points of Interest, and signpost-aligned trace evidence\n   - `references/testing-plans-file-membership-and-configurations.md` for the condensed cross-cutting summary and file-membership reminder\n6. Use `references/xcodegen-project-maintenance.md` when the repo is XcodeGen-backed and the task touches generated test targets, scheme test actions, test-plan references, launch arguments, environment variables, or test bundle membership.\n7. If MCP fails, use the structured fallback output from `scripts/run_workflow.py` together with `references/cli-fallback-matrix.md`.\n8. Report which parts were agent-executed, which parts were locally enforced by script, the Apple docs relied on, any tracked `.pbxproj` diff that must be staged and committed with the branch, and any required next step.\n\n## Inputs\n\n- `operation_type`: one of the operation types listed above.\n- `request`: optional short natural-language request text used to infer `operation_type` when the explicit operation is omitted.\n- `workspace_path`: optional absolute path for the target Xcode or Swift workspace.\n- `tab_identifier`: optional MCP tab identifier when already known.\n- `mcp_failure_reason`: optional input when continuing from an earlier MCP failure.\n- `direct_pbxproj_edit`: optional flag when the requested mutation would directly edit a `.pbxproj` file.\n- `direct_pbxproj_edit_opt_in`: optional explicit opt-in after the user has been warned about direct `.pbxproj` edit risks.\n- Defaults:\n  - runtime entrypoint: executable `scripts/run_workflow.py`\n  - the runtime may infer `operation_type` from `--request` text when the request wording is clear enough\n  - agent-side MCP retries once for transient failures\n  - direct edits are allowed by default when they do not directly edit `.pbxproj`\n\n## Outputs\n\n- `status`\n  - `success`: the workflow completed on its primary or fallback path\n  - `handoff`: the workflow is handing off to another skill because the request is actually build/run-focused\n  - `blocked`: prerequisites, policy, or mutation safeguards prevented completion\n- `path_type`\n  - `primary`: the guided agent-side MCP path completed successfully\n  - `fallback`: the official CLI fallback path completed successfully\n- `output`\n  - operation type\n  - `guard_result`\n  - `fallback_commands`\n  - one next step payload when needed\n\n## Guards and Stop Conditions\n\n- Apply the mutation safeguard from `references/mutation-risk-policy.md` only when the operation type is `mutation`.\n- Do not skip the explicit warning path for direct `.pbxproj` edits.\n- In XcodeGen-backed repos, edit the XcodeGen spec set and regenerate the project instead of hand-editing generated `.pbxproj` files.\n- Stop with `handoff` when the request is really build/run or toolchain work.\n- Stop with `blocked` when the required workspace context cannot be resolved and the operation cannot safely continue.\n- Stop with `blocked` when allowlist or sandbox rules prevent the official CLI fallback and no safe alternative exists.\n\n## Fallbacks and Handoffs\n\n- Official CLI execution is the only fallback path when the primary agent-side MCP path cannot complete.\n- Use `references/mcp-failure-handoff.md` for the canonical fallback and handoff payload.\n- Use `references/allowlist-guidance.md` when a safe official CLI fallback is blocked by local rules.\n- Hand off to `xcode-build-run-workflow` when the request becomes primarily about build, run, previews, archives, file membership, or toolchains.\n- Recommend `explore-apple-swift-docs` directly when the task becomes Apple or Swift docs exploration work.\n- Recommend `swift-package-testing-workflow` directly when the task becomes package-first test execution, package workload design, signpost placement, or SwiftPM-first profiling harness work.\n- Recommend `apple-ui-accessibility-workflow` directly when the task is primarily about accessibility semantics or review rather than runtime test execution.\n- Recommend `format-swift-sources` directly when the task becomes SwiftLint or SwiftFormat setup, config export, or style-tooling maintenance work.\n- Recommend `structure-swift-sources` directly when the task becomes structural source cleanup work.\n- Recommend `sync-xcode-project-guidance` directly when the repo needs Xcode-specific guidance sync rather than execution.\n- `scripts/run_workflow.py` plans fallback commands; MCP execution itself remains agent-side tool usage guided by this skill.\n- When maintaining this repository itself, refresh repo-guidance consumers after substantial Xcode-testing-policy changes and keep the top-level export-surface docs aligned. Do not tell users to rely on repo-local installer workflows; this repository does not ship them.\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` reads customization state for the remaining user-facing execution knobs.\n- MCP tool execution itself remains agent-side and is not performed by the local runtime entrypoint or by the skill as a direct runtime.\n\n## References\n\n### Workflow References\n\n- `references/workflow-policy.md`\n- `references/mcp-tool-matrix.md`\n- `references/cli-fallback-matrix.md`\n- `references/xctestplan-configurations-and-matrix.md`\n- `references/xcuitest-and-xcuiautomation.md`\n- `references/ui-accessibility-verification.md`\n- `references/instruments-performance-profiling.md`\n- `references/testing-plans-file-membership-and-configurations.md`\n- `references/xcodegen-project-maintenance.md`\n- `references/mutation-risk-policy.md`\n- `references/mutation-via-mcp.md`\n\n### Contract References\n\n- `references/mcp-failure-handoff.md`\n- `references/customization-flow.md`\n\n### Support References\n\n- Recommend `explore-apple-swift-docs` when the user needs Apple or Swift docs exploration or Dash-compatible docs access.\n- Recommend `format-swift-sources` when the user needs SwiftLint or SwiftFormat setup rather than active Xcode testing work.\n- Recommend `structure-swift-sources` when the user needs structural Swift source cleanup rather than active Xcode testing work.\n- Recommend `sync-xcode-project-guidance` when the user needs repo guidance aligned inside an existing Xcode app repo.\n- Recommend `references/snippets/apple-xcode-project-core.md` when the user needs to add or merge the shared Xcode-project guidance into an end-user repo.\n- `references/allowlist-guidance.md`\n- `references/skills-installation.md`\n- `references/skills-discovery.md`\n- `references/snippets/apple-xcode-project-core.md`\n\n### Script Inventory\n\n- `scripts/run_workflow.py`\n- `scripts/detect_xcode_managed_scope.sh`\n- `scripts/customization_config.py`","tags":["xcode","testing","workflow","apple","dev","skills","gaelic-ghost","agent-skills","apple-development","apple-docs","apple-docs-mcp","codex"],"capabilities":["skill","source-gaelic-ghost","skill-xcode-testing-workflow","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/xcode-testing-workflow","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 (10,737 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:59.504Z","embedding":null,"createdAt":"2026-05-18T13:21:12.147Z","updatedAt":"2026-05-18T19:13:59.504Z","lastSeenAt":"2026-05-18T19:13:59.504Z","tsv":"'1':381 '2':395 '3':478 '4':520 '5':534 '6':618 '7':650 '8':664 'absolut':734 'access':17,91,185,571,582,1122,1131,1344 'accessibility-specif':570 'accessibility-verif':16,90,184 'action':637 'activ':374,565,1360,1379 'actual':868 'add':1409 'agent':670,822,884,1023,1204,1285 'agent-execut':669 'agent-sid':821,883,1022,1203,1284 'agents.md':366 'align':225,371,602,1239,1395 'alloc':217,593 'allow':833 'allowlist':994 'alreadi':750 'altern':1006 'anoth':862 'anti':505 'anti-ceremoni':504 'api':426 'app':363,1400 'appl':240,318,325,398,403,413,420,449,468,580,680,1076,1084,1120,1327,1334 'apple-ui-accessibility-workflow':579,1119 'appli':396,479,488,524,915 'appropri':513 'architectur':405,518 'archiv':282,306,1068 'argument':86,549,643 'around':64,260 'artifact':229 'attach':89,567 'autom':560 'awar':44 'back':627,942 'becom':1062,1083,1100,1149,1171 'behavior':427 'block':870,975,992,1047 'boundari':137 'branch':696 'broad':112 'build':279,292,301,1056,1065 'build/run':113,252,969 'build/run-focused':869 'bundl':648 'cannot':981,987,1027 'canon':1033 'captur':100 'ceremoni':506 'chang':438,1228 'classifi':382 'cleanup':1174,1376 'clear':819 'cli':129,241,531,893,1001,1012,1044 'code':458 'command':904,1198 'commit':693 'compat':1342 'complet':848,877,888,896,1028 'condens':608 'condit':914 'config':1154 'configur':194,526,552 'conflict':459,464 'consum':1221 'context':980 'continu':758,989 'contract':1318 'coordin':577 'coverag':556 'cross':610 'cross-cut':609 'current':457 'custom':1258,1265,1269 'cut':611 'dash':1341 'dash-compat':1340 'debug/release':108,554 'default':275,800,835 'design':404,1108 'destin':84,160 'detail':490 'diagnosi':156,183 'diagnost':25,103,392 'diff':687 'direct':257,764,774,779,796,830,840,936,1079,1096,1124,1145,1167,1182,1302 'doc':320,399,415,450,454,469,681,1078,1087,1238,1329,1337,1343 'document':328,421,425 'earlier':761 'edit':766,775,781,798,831,841,938,944,957 'end':1421 'end-us':1420 'enforc':676 'engin':375 'enough':820 'enter':140 'entrypoint':121,802,1295 'environ':644 'evid':604 'execut':55,127,154,332,352,671,803,1013,1105,1139,1194,1200,1277,1281 'exist':33,361,451,1007,1398 'expect':575 'explicit':475,727,785,932 'explor':317,412,1075,1088,1326,1338 'explore-apple-swift-doc':316,411,1074,1325 'export':1155,1236 'export-surfac':1235 'face':1276 'fail':653 'failur':753,763,829 'fallback':30,130,242,532,657,853,890,894,903,1002,1008,1017,1034,1045,1197 'file':143,304,615,778,960,1069 'file-membership':614 'filesystem':258 'filter':23,101,158 'first':125,346,422,499,1103,1114 'flag':768 'flaki':181 'flaky-test':180 'focus':60,73,537 'follow':20,94,188,204 'follow-through':19,93,187,203 'format':1142,1347 'format-swift-sourc':1141,1346 'found':472 'gate':400 'gather':417 'general':284 'generat':632,958 'give':485 'guard':309,901,911 'guid':5,882,1208 'guidanc':358,370,409,487,508,519,1181,1190,1220,1388,1394,1417 'hand':859,956,1051 'hand-edit':955 'handl':88,564 'handoff':855,963,1010,1036 'har':1116 'identifi':744,748 'implement':406,486 'infer':722,808 'input':702,756 'insid':1396 'instal':1250 'instead':110,953 'instrument':96,200,586 'integr':287 'interest':222,598 'interpret':230 'interrupt':87,563 'inventori':1429 'keep':71,1230 'knob':1278 'known':751 'languag':717 'launch':85,548,642 'launch-argu':547 'level':1234 'lifecycl':428 'list':710 'local':491,675,1049,1249,1293 'log':514 'lookup':329 'maintain':1213 'mainten':1160 'manag':36,67,351 'matric':15,550 'may':265,807 'mcp':124,236,652,746,752,762,824,886,1025,1199,1279 'mcp-first':123 'mechan':13,82,178,561 'membership':305,616,649,1070 'memori':443 'merg':1411 'metal':214,590 'must':689 'mutat':139,259,313,394,772,874,917,927 'name':551 'natur':716 'natural-languag':715 'need':211,324,365,910,1186,1333,1353,1372,1392,1407 'next':700,906 'non':311 'non-test':310 'offici':128,239,892,1000,1011,1043 'omit':730 'one':386,705,905 'oper':237,387,703,708,723,728,809,899,924,986 'opt':782,787 'opt-in':786 'option':713,733,745,755,767,784 'ordinari':278 'orient':12,81,177 'output':658,843,898 'outsid':348 'packag':337,345,1093,1102,1106 'package-first':344,1101 'part':667,673 'path':276,379,732,735,854,878,887,895,934,1018,1026 'payload':908,1037 'pbxproj':135,527,686,765,777,780,797,842,937,959 'perform':208,1290 'performance-sensit':207 'placement':1110 'plan':131,165,264,533,640,1196 'point':220,596 'polici':483,492,872,1227 'prerequisit':871 'preserv':495,502,509 'prevent':876,998 'preview':281,303,1067 'primari':54,446,851,880,1021 'primarili':247,299,1063,1129 'proceed':477 'profil':97,213,589,1115 'project':37,68,142,286,357,512,952,1180,1387,1416 'project-appropri':511 'project-fil':141 'project-integr':285 'propos':437 'purpos':48 'rather':250,330,372,1135,1192,1358,1377 'read':389,1268 'realli':968 'reason':754 'recommend':289,315,334,353,1073,1090,1118,1140,1162,1176,1324,1345,1364,1383,1402 'refactor':408 'refer':538,641,1304,1306,1319,1323 'references/allowlist-guidance.md':1039,1424 'references/cli-fallback-matrix.md':663,1309 'references/customization-flow.md':1260,1321 'references/instruments-performance-profiling.md':584,1313 'references/mcp-failure-handoff.md':1030,1320 'references/mcp-tool-matrix.md':1308 'references/mutation-risk-policy.md':920,1316 'references/mutation-via-mcp.md':1317 'references/skills-discovery.md':1426 'references/skills-installation.md':1425 'references/snippets/apple-xcode-project-core.md':494,1403,1427 'references/testing-plans-file-membership-and-configurations.md':605,1314 'references/ui-accessibility-verification.md':568,1312 'references/workflow-policy.md':1307 'references/xcodegen-project-maintenance.md':620,1315 'references/xctestplan-configurations-and-matrix.md':544,1310 'references/xcuitest-and-xcuiautomation.md':557,1311 'refresh':1217 'regener':950 'relev':419,467 'reli':434,441,682,1245 'remain':134,1202,1273,1283 'remind':617 'repo':364,623,943,1185,1219,1248,1393,1401,1423 'repo-guid':1218 'repo-loc':1247 'report':462,665,1264 'repositori':1215,1253 'request':384,712,718,771,812,816,866,966,1061 'requir':267,432,699,978 'resolv':983 'result':902 'retri':24,102,159,825 'review':1134 'right':541 'risk':799 'rule':429,997,1050 'run':280,293,302,521,1057,1066 'runtim':120,525,573,801,806,1137,1294,1303 'safe':988,1005,1042 'safeguard':529,875,918 'sandbox':996 'say':473 'scheme':635 'script':678,1428 'scripts/customization_config.py':1261,1432 'scripts/detect_xcode_managed_scope.sh':1431 'scripts/run_workflow.py':117,522,660,804,1195,1267,1430 'search':390 'select':161 'semant':1132 'sensit':209 'set':948 'setup':1153,1357 'shape':501 'shape-preserv':500 'share':481,1413 'ship':1256 'short':714 'side':823,885,1024,1205,1286 'signpost':224,601,1109 'signpost-align':223,600 'simplic':498 'simplicity-first':497 'singl':378 'single-path':377 'skill':51,150,169,198,233,255,272,863,1211,1299 'skill-xcode-testing-workflow' 'skip':930 'sourc':447,1144,1166,1173,1349,1368,1375 'source-gaelic-ghost' 'spec':947 'specif':29,107,572,1189 'stage':691 'state':423,1266,1270 'status':844 'step':701,907 'stop':460,913,961,973,990 'store':1262 'structur':656,1164,1172,1366,1373 'structure-swift-sourc':1163,1365 'style':1158 'style-tool':1157 'substanti':1223 'success':845,889,897 'summari':612 'support':1322 'surfac':543,1237 'swift':6,75,171,319,327,336,414,482,507,741,1077,1086,1092,1143,1165,1328,1336,1348,1367,1374 'swift-package-testing-workflow':335,1091 'swiftformat':1152,1356 'swiftlint':1150,1354 'swiftpm':1113 'swiftpm-first':1112 'swiftui':517 'sync':355,1178,1191,1385 'sync-xcode-project-guid':354,1177,1384 'system':215,591 'tab':743,747 'target':634,738 'task':297,342,630,1082,1099,1127,1148,1170 'telemetri':515 'tell':1242 'territori':144 'test':3,7,22,28,46,59,76,106,126,153,155,157,164,172,182,192,210,249,261,263,312,338,347,393,542,555,633,636,639,647,1094,1104,1138,1226,1362,1381 'test-focus':58 'test-on':191 'test-plan':163,638 'test-specif':27,105 'text':719,813 'time':212,588 'togeth':661 'tool':1159,1206,1280 'toolchain':115,307,971,1072 'top':1233 'top-level':1232 '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' 'touch':631 'trace':99,216,226,228,592,603 'track':685 'tracker':219,595 'transient':828 'type':388,704,709,724,810,879,900,925 'ui':559,581,1121 'usag':1207 'use':40,49,147,148,167,196,231,253,270,410,535,619,654,720,1029,1038,1259 'user':323,791,1243,1275,1332,1352,1371,1391,1406,1422 'user-fac':1274 'valid':109,195 'variabl':645 'verif':18,92,186,574 'vm':218,594 'wait':562 'warn':136,528,794,933 'word':817 'work':31,61,116,166,245,288,314,333,376,972,1089,1117,1161,1175,1363,1382 'workflow':4,47,56,294,339,369,380,431,583,847,857,1058,1095,1123,1251,1305 'workflow-guid':368 'workload':1107 'workspac':39,70,731,742,979 'would':773 'xcode':2,35,43,45,66,152,235,291,350,356,362,739,1055,1179,1188,1225,1361,1380,1386,1399,1415 'xcode-awar':42 'xcode-build-run-workflow':290,1054 'xcode-manag':34,65,349 'xcode-project':1414 'xcode-specif':1187 'xcode-testing-polici':1224 'xcode-testing-workflow':1 'xcodegen':626,941,946 'xcodegen-back':625,940 'xctest':8,77,173 'xctestplan':14,83,179,546 'xctrace':98,202,587 'xcuiautom':11,80,176 'xcuiautomation-ori':10,79,175 'xcuitest':9,78,174","prices":[{"id":"5f804aeb-850d-4cca-a727-bea38064581e","listingId":"c9a9125c-e639-4aa1-92f9-876a5d5ed373","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:12.147Z"}],"sources":[{"listingId":"c9a9125c-e639-4aa1-92f9-876a5d5ed373","source":"github","sourceId":"gaelic-ghost/apple-dev-skills/xcode-testing-workflow","sourceUrl":"https://github.com/gaelic-ghost/apple-dev-skills/tree/main/skills/xcode-testing-workflow","isPrimary":false,"firstSeenAt":"2026-05-18T13:21:12.147Z","lastSeenAt":"2026-05-18T19:13:59.504Z"}],"details":{"listingId":"c9a9125c-e639-4aa1-92f9-876a5d5ed373","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"gaelic-ghost","slug":"xcode-testing-workflow","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":"d060ead100e502149acefae91a306976eb47b45e","skill_md_path":"skills/xcode-testing-workflow/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/gaelic-ghost/apple-dev-skills/tree/main/skills/xcode-testing-workflow"},"layout":"multi","source":"github","category":"apple-dev-skills","frontmatter":{"name":"xcode-testing-workflow","description":"Guide Swift Testing, XCTest, XCUITest, XCUIAutomation-oriented mechanics, xctestplan matrices, accessibility-verification follow-through, test filtering, retries, diagnostics, and test-specific fallback work in existing Xcode-managed projects and workspaces. Use when Xcode-aware execution is needed and the task is primarily about testing rather than build or run work."},"skills_sh_url":"https://skills.sh/gaelic-ghost/apple-dev-skills/xcode-testing-workflow"},"updatedAt":"2026-05-18T19:13:59.504Z"}}