{"id":"300a6276-74e7-4612-add6-74c41c5690c8","shortId":"b7DPSE","kind":"skill","title":"asc-screenshot-resize","tagline":"Resize and validate App Store screenshots with current asc screenshot-size data and macOS sips. Use when preparing or fixing screenshots for App Store Connect submission.","description":"# asc screenshot resize\n\nUse this skill to prepare screenshots for App Store Connect. Do not rely on a hard-coded dimension table in this skill; the CLI owns the current size matrix.\n\n## Source of truth\n\nAlways discover current accepted sizes from `asc` first:\n\n```bash\nasc screenshots sizes --output table\nasc screenshots sizes --all --output table\n```\n\nFor local validation before upload:\n\n```bash\nasc screenshots validate --path \"./screenshots/iphone\" --device-type \"IPHONE_65\" --output table\nasc screenshots validate --path \"./screenshots/ipad\" --device-type \"IPAD_PRO_3GEN_129\" --output table\n```\n\nCommon current device-type anchors:\n\n- `IPHONE_65` for the common 6.5-inch iPhone screenshot set.\n- `IPAD_PRO_3GEN_129` for the common 12.9/13-inch iPad screenshot set.\n\nRun `asc screenshots sizes --all` when targeting other display types such as 6.9-inch iPhone, Apple TV, Mac, Vision Pro, iMessage, or Watch.\n\n## Workflow\n\n### 1. Sanitize filenames\n\nmacOS screenshots can contain hidden Unicode spaces that make tools fail with \"not a valid file\". Sanitize before batch work:\n\n```bash\npython3 -c \"\nimport os\nfor f in os.listdir('.'):\n    clean = f.replace('\\u202f', ' ')\n    if f != clean:\n        os.rename(f, clean)\n        print(f'Renamed: {clean}')\n\"\n```\n\n### 2. Inspect dimensions and metadata\n\n```bash\nsips -g pixelWidth -g pixelHeight screenshot.png\nsips -g hasAlpha -g space screenshot.png\n```\n\nApp Store Connect rejects screenshots with alpha transparency. Strip alpha by round-tripping through JPEG:\n\n```bash\nsips -s format jpeg input.png --out /tmp/asc-screenshot-no-alpha.jpg\nsips -s format png /tmp/asc-screenshot-no-alpha.jpg --out output.png\nrm /tmp/asc-screenshot-no-alpha.jpg\n```\n\nBatch-strip alpha from PNGs:\n\n```bash\nfor f in *.png; do\n  if sips -g hasAlpha \"$f\" | grep -q \"yes\"; then\n    sips -s format jpeg \"$f\" --out /tmp/asc-screenshot-no-alpha.jpg\n    sips -s format png /tmp/asc-screenshot-no-alpha.jpg --out \"$f\"\n    rm /tmp/asc-screenshot-no-alpha.jpg\n    echo \"Stripped alpha: $f\"\n  fi\ndone\n```\n\n### 3. Resize only after choosing a target from asc\n\nPick a width and height from `asc screenshots sizes --all`. `sips -z` takes height first, then width:\n\n```bash\n# Example: portrait IPHONE_65 1284 x 2778\nsips -z 2778 1284 input.png --out output.png\n```\n\nBatch resize to a chosen target:\n\n```bash\nmkdir -p resized\nfor f in *.png; do\n  sips -z 2778 1284 \"$f\" --out \"resized/$f\"\ndone\n```\n\n### 4. Validate outputs with asc\n\n```bash\nsips -g pixelWidth -g pixelHeight -g hasAlpha resized/*.png\nasc screenshots validate --path \"./resized\" --device-type \"IPHONE_65\" --output table\n```\n\n### 5. Upload only after validation\n\n```bash\nasc screenshots upload --version-localization \"LOC_ID\" --path \"./resized\" --device-type \"IPHONE_65\" --dry-run --output table\nasc screenshots upload --version-localization \"LOC_ID\" --path \"./resized\" --device-type \"IPHONE_65\"\n```\n\n## Guardrails\n\n- Treat `asc screenshots sizes --all` as authoritative; Apple size requirements change.\n- Do not stretch screenshots across incompatible aspect ratios unless the user accepts the visual tradeoff.\n- Always output to a separate file or directory to preserve originals.\n- Screenshots must be PNG or JPEG and must not include alpha transparency.\n- Convert Display P3 or other color spaces to sRGB when needed:\n\n```bash\nsips -m \"/System/Library/ColorSync/Profiles/sRGB IEC61966-2.1.icc\" input.png --out output.png\n```\n\n- Prefer `asc screenshots validate` over visual inspection before upload.","tags":["asc","screenshot","resize","app","store","connect","cli","skills","rorkai","agent-skills","ai-skills","app-store-connect"],"capabilities":["skill","source-rorkai","skill-asc-screenshot-resize","topic-agent-skills","topic-ai-skills","topic-app-store-connect","topic-apple","topic-asc","topic-automation","topic-cicd","topic-cli","topic-devops","topic-ios","topic-macos","topic-testflight"],"categories":["app-store-connect-cli-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/rorkai/app-store-connect-cli-skills/asc-screenshot-resize","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add rorkai/app-store-connect-cli-skills","source_repo":"https://github.com/rorkai/app-store-connect-cli-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 801 github stars · SKILL.md body (3,486 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-18T18:53:26.924Z","embedding":null,"createdAt":"2026-04-18T21:56:49.819Z","updatedAt":"2026-05-18T18:53:26.924Z","lastSeenAt":"2026-05-18T18:53:26.924Z","tsv":"'/13-inch':144 '/resized':395,418,438 '/screenshots/ipad':110 '/screenshots/iphone':98 '/system/library/colorsync/profiles/srgb':508 '/tmp/asc-screenshot-no-alpha.jpg':258,263,267,295,300,304 '1':172 '12.9':143 '1284':342,348,370 '129':117,139 '2':217 '2778':344,347,369 '3':311 '3gen':116,138 '4':376 '5':403 '6.5':131 '6.9':160 '65':103,127,341,400,423,443 'accept':71,467 'across':460 'alpha':241,244,271,307,492 'alway':68,471 'anchor':125 'app':8,28,42,235 'appl':163,452 'asc':2,13,32,74,77,82,94,106,149,319,326,380,391,409,429,446,514 'asc-screenshot-res':1 'aspect':462 'authorit':451 'bash':76,93,195,222,251,274,337,358,381,408,505 'batch':193,269,352 'batch-strip':268 'c':197 'chang':455 'choos':315 'chosen':356 'clean':204,209,212,216 'cli':59 'code':52 'color':499 'common':120,130,142 'connect':30,44,237 'contain':178 'convert':494 'current':12,62,70,121 'data':17 'devic':100,112,123,397,420,440 'device-typ':99,111,122,396,419,439 'dimens':53,219 'directori':478 'discov':69 'display':156,495 'done':310,375 'dri':425 'dry-run':424 'echo':305 'exampl':338 'f':201,208,211,214,276,284,293,302,308,363,371,374 'f.replace':205 'fail':185 'fi':309 'file':190,476 'filenam':174 'first':75,334 'fix':25 'format':254,261,291,298 'g':224,226,230,232,282,383,385,387 'grep':285 'guardrail':444 'hard':51 'hard-cod':50 'hasalpha':231,283,388 'height':324,333 'hidden':179 'id':416,436 'iec61966-2.1.icc':509 'imessag':168 'import':198 'inch':132,161 'includ':491 'incompat':461 'input.png':256,349,510 'inspect':218,519 'ipad':114,136,145 'iphon':102,126,133,162,340,399,422,442 'jpeg':250,255,292,487 'loc':415,435 'local':89,414,434 'm':507 'mac':165 'maco':19,175 'make':183 'matrix':64 'metadata':221 'mkdir':359 'must':483,489 'need':504 'origin':481 'os':199 'os.listdir':203 'os.rename':210 'output':80,86,104,118,378,401,427,472 'output.png':265,351,512 'own':60 'p':360 'p3':496 'path':97,109,394,417,437 'pick':320 'pixelheight':227,386 'pixelwidth':225,384 'png':262,278,299,365,390,485 'pngs':273 'portrait':339 'prefer':513 'prepar':23,39 'preserv':480 'print':213 'pro':115,137,167 'python3':196 'q':286 'ratio':463 'reject':238 'reli':47 'renam':215 'requir':454 'resiz':4,5,34,312,353,361,373,389 'rm':266,303 'round':247 'round-trip':246 'run':148,426 'sanit':173,191 'screenshot':3,10,15,26,33,40,78,83,95,107,134,146,150,176,239,327,392,410,430,447,459,482,515 'screenshot-s':14 'screenshot.png':228,234 'separ':475 'set':135,147 'sip':20,223,229,252,259,281,289,296,330,345,367,382,506 'size':16,63,72,79,84,151,328,448,453 'skill':37,57 'skill-asc-screenshot-resize' 'sourc':65 'source-rorkai' 'space':181,233,500 'srgb':502 'store':9,29,43,236 'stretch':458 'strip':243,270,306 'submiss':31 'tabl':54,81,87,105,119,402,428 'take':332 'target':154,317,357 'tool':184 'topic-agent-skills' 'topic-ai-skills' 'topic-app-store-connect' 'topic-apple' 'topic-asc' 'topic-automation' 'topic-cicd' 'topic-cli' 'topic-devops' 'topic-ios' 'topic-macos' 'topic-testflight' 'tradeoff':470 'transpar':242,493 'treat':445 'trip':248 'truth':67 'tv':164 'type':101,113,124,157,398,421,441 'u202f':206 'unicod':180 'unless':464 'upload':92,404,411,431,521 'use':21,35 'user':466 'valid':7,90,96,108,189,377,393,407,516 'version':413,433 'version-loc':412,432 'vision':166 'visual':469,518 'watch':170 'width':322,336 'work':194 'workflow':171 'x':343 'yes':287 'z':331,346,368","prices":[{"id":"456acb87-26ce-44c0-9160-f6097fc01660","listingId":"300a6276-74e7-4612-add6-74c41c5690c8","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"rorkai","category":"app-store-connect-cli-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:56:49.819Z"}],"sources":[{"listingId":"300a6276-74e7-4612-add6-74c41c5690c8","source":"github","sourceId":"rorkai/app-store-connect-cli-skills/asc-screenshot-resize","sourceUrl":"https://github.com/rorkai/app-store-connect-cli-skills/tree/main/skills/asc-screenshot-resize","isPrimary":false,"firstSeenAt":"2026-04-18T21:56:49.819Z","lastSeenAt":"2026-05-18T18:53:26.924Z"},{"listingId":"300a6276-74e7-4612-add6-74c41c5690c8","source":"skills_sh","sourceId":"rorkai/app-store-connect-cli-skills/asc-screenshot-resize","sourceUrl":"https://skills.sh/rorkai/app-store-connect-cli-skills/asc-screenshot-resize","isPrimary":true,"firstSeenAt":"2026-05-07T20:42:11.735Z","lastSeenAt":"2026-05-07T22:41:27.190Z"}],"details":{"listingId":"300a6276-74e7-4612-add6-74c41c5690c8","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"rorkai","slug":"asc-screenshot-resize","github":{"repo":"rorkai/app-store-connect-cli-skills","stars":801,"topics":["agent-skills","ai-skills","app-store-connect","apple","asc","automation","cicd","cli","devops","ios","macos","testflight","xcode"],"license":"mit","html_url":"https://github.com/rorkai/app-store-connect-cli-skills","pushed_at":"2026-05-03T17:28:47Z","description":"Skills to automate app store deployed and everything related to it using the asc cli","skill_md_sha":"892256d5af7862a342d175dcfefdd06a9c0fc4e2","skill_md_path":"skills/asc-screenshot-resize/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/rorkai/app-store-connect-cli-skills/tree/main/skills/asc-screenshot-resize"},"layout":"multi","source":"github","category":"app-store-connect-cli-skills","frontmatter":{"name":"asc-screenshot-resize","description":"Resize and validate App Store screenshots with current asc screenshot-size data and macOS sips. Use when preparing or fixing screenshots for App Store Connect submission."},"skills_sh_url":"https://skills.sh/rorkai/app-store-connect-cli-skills/asc-screenshot-resize"},"updatedAt":"2026-05-18T18:53:26.924Z"}}