Commit graph

221 commits

Author SHA1 Message Date
CRT
3f12452e3f TestFlight through the App Store Connect API: apple testflight status | groups | testers | what-to-test | info | distribute
Beta groups from apple.testflight.groups (created when missing, never changed), testers from a CSV in .storebound/
(masked in logs, confirmation before Apple emails invitations, --remove / --invite), What to Test per locale from the
App Store listing (whatToTest or whatsNew), Test Information and Beta App Review details, builds by exact number to
groups, Beta App Review submission behind --submit-review and a confirmation. Pure planners in cli/lib/testflight.ts,
shared CSV / table / JSON:API helpers. MCP: apple_testflight_status, _groups, _what_to_test, _info, _distribute
(internal groups only). Skill testflight.
2026-10-10 23:28:10 +08:00
CRT
b63c5dc1cf store-screenshots skill: MCP use; iPhone required class (medium Dynamic Island) and why 6.9" stays the default 2026-10-10 22:24:58 +08:00
CRT
ccd48465a6 MCP: shots_check (read-only), shots_capture / render / gallery / record / video (local, dry by default), apple_previews; variant on uploads 2026-10-10 22:24:58 +08:00
CRT
5b4902496d shots render --dry: plan per language and variant 2026-10-10 22:24:58 +08:00
CRT
b97242b863 Register shots record, shots video and apple previews 2026-10-10 22:22:52 +08:00
CRT
6470c486f6 play listing sends the promo video URL (play.video) 2026-10-10 22:22:52 +08:00
CRT
2914f04129 apple previews: app preview sets per locale, MD5-idempotent, poster frame time code, local checks first, --dry 2026-10-10 22:22:52 +08:00
CRT
0cf5b8cdae shots video: dry run, clips under half a second skipped instead of the remainder 2026-10-10 22:22:52 +08:00
CRT
ea18406712 shots record: gameplay clips from a web build (Chromium screencast), iOS Simulator, Android emulator or a folder 2026-10-10 22:22:52 +08:00
CRT
d304cdab6d shots gallery: self-contained review page of every render with issues highlighted 2026-10-10 22:16:38 +08:00
CRT
bd12bd0690 --variant on play images, apple screenshots and shots jpeg; shared set up-to-date check 2026-10-10 22:16:38 +08:00
CRT
595bdbcf78 Contact sheet packed into a grid, Android tablet body for Play tablet sizes, variant in the feature graphic 2026-10-10 22:16:38 +08:00
CRT
aecdcb1c50 Store image checks in shots check and validate
- Apple sizes accepted portrait or landscape; Play screenshots any accepted size (320-3840 px, at most 2:1);
  Play rejects 16-bit PNGs; feature graphic exactly 1024 x 500
- Required sets per language (Apple only with an App Store locale, Play only with a Play code)
- shots check scans A/B variant folders only with --variants
- validate adds the local renders checks: store errors are blockers, overflow flags warnings (--no-local skips)
2026-10-10 21:54:47 +08:00
CRT
3d257402cc 13" iPad end to end: frame defaults with apple.ipad, per-device crop, iPad display set, simulator warm-up
- Tablet frames default to the 13" iPad screen (1032 x 1352 @2x below a 24 px bar) when apple.ipad is set
- shots.capture.cropTop takes a number or { phone, tablet }; default is the frame's bar share per device class
- capture warns when a cropped frame does not match the frame aspect
- apple screenshots uploads ipad13 as APP_IPAD_PRO_3GEN_129 only with apple.ipad; validate requires it then
- ios-sim: one warm-up launch after a cold boot (ios.warmupMs, default 8000) so the first frame is not blank
2026-10-10 21:54:47 +08:00
CRT
c154f38c29 Register shots check; describe the capture sources in help and README 2026-10-10 21:30:40 +08:00
CRT
1b8847e759 Shots capture: iOS Simulator, Android emulator / device and folder sources
simctl / adb / ffmpeg argv builders in devices.ts; capture.ts runs them with
per-shot progress, --dry, clear errors when xcrun / adb / ffmpeg are missing,
status bar restore, and shuts down only a simulator it booted (--keep-booted).
2026-10-10 21:30:40 +08:00
CRT
8a4083d9fd Screenshot pipeline groundwork: capture source config, device builders, store specs, checks, variants, video builders
Salvaged from wip/shots-pipeline. Pure modules (spec, devices, report, video,
check), variant support in render / lib, 13" iPad size and 3:4 template layout.
Not all of it is wired into the CLI yet.
2026-10-10 21:30:40 +08:00
CRT
03a95d2c0a MCP server and install --agent for any AI coding tool
- storebound mcp: stdio MCP server (spec 2025-11-25, tools only), one tool per command, write tools
  dry_run by default, readOnly/destructive/idempotent/openWorld annotations; submit, release,
  rollout, cancel and delete are not exposed. Own JSON-RPC subset, no SDK, zero runtime deps.
- storebound install --agent claude|codex|cursor|copilot|windsurf|gemini|opencode: copies the skills
  and adds the storebound MCP entry (.mcp.json, .codex/config.toml, .cursor/mcp.json, .vscode/mcp.json,
  Windsurf mcp_config.json, .gemini/settings.json, opencode.json). Idempotent, keeps other entries, --dry.
2026-10-10 21:03:10 +08:00
CRT
1fc94da443 CLI: store readiness, release management, export compliance, ASO audit, release notes, privacy manifest scan
- validate: read-only App Store Connect + Play report with ordered blockers (exit 1)
- apple release --phased on|pause|resume|complete and --manual-release (asks first)
- apple status --wait-review (exit 0 approved, 1 rejected, 7 timeout), apple next-build, apple encryption
- play rollout --fraction|--halt|--resume|--complete, play next-version-code
- check --aso, whats-new --since <tag>, privacy-manifest --ios <path>, version
- Apple IAP description limit is 45 characters (App Store Connect Help), not 55
- config: apple.usesNonExemptEncryption, apple.screenshotTypes, ads.appAdsTxt
2026-10-10 21:02:55 +08:00
CRT
11c45efab8 Rename to storebound (plugin, CLI, config file, credentials folder, repo) 2026-10-10 20:35:26 +08:00
CRT
3cd31b7601 crt-ship 0.1.0: CLI, Claude Code skills and templates for shipping mobile games to Google Play and the App Store 2026-10-10 20:29:20 +08:00