From 0e6e33c4285ca761aea33556360a5d8161e87df3 Mon Sep 17 00:00:00 2001 From: Sinabina Date: Thu, 23 Jul 2026 18:33:53 -0700 Subject: [PATCH 1/3] fix(gstack2): marketing screenshots do not require an API key The deck editor skill is marketing-grade, free, local, and headlessly exportable; forbid claiming screenshots need an image backend while it is installed. ASO AI pipeline explicitly the only key-requiring option. Co-Authored-By: Claude Fable 5 --- scripts/gstack2/generate-skill-tree.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/gstack2/generate-skill-tree.ts b/scripts/gstack2/generate-skill-tree.ts index 01eb0bedc9..e2329ed343 100644 --- a/scripts/gstack2/generate-skill-tree.ts +++ b/scripts/gstack2/generate-skill-tree.ts @@ -662,8 +662,9 @@ Resolve and verify before archiving. Fix what the printed mutation boundary auth Only when preflight finds the icon or screenshots missing, ask once — the journey's second and final permitted question — then act on the choice without further prompts. Once per app, EVER: before asking, check the decision store (\`bin/gstack-decision-search --scope repo --query "store assets"\`); a settled choice (including "defer screenshots" or "TestFlight only") is applied silently, never re-asked. After the user answers, persist it (\`bin/gstack-decision-log\` with scope \`repo\`) so no future run asks again; the user changes it by saying so, not by being re-prompted. Offer: - **App icon**: SnapAI (\`npx snapai\`, the app-icon agent skill) generates the single 1024×1024 with the user's own image-generation key; Xcode 15+ derives every size from that one image. -- **Screenshots, free and local**: capture the built app in the simulator and frame with fastlane \`frameit\`. -- **Marketing-grade screenshots**: the aso-appstore-screenshots agent skill (benefit headlines, breakout panels, exact App Store dimensions, user's own Gemini key) or the app-store-screenshots deck editor; when installed, follow their workflows rather than reimplementing them. +- **Marketing screenshots, free and local, no API key**: the app-store-screenshots deck editor skill — scaffold it, prefill its deck JSON with simulator captures and benefit headlines, and export one bundle covering every required iPhone size (the export is headlessly automatable). Marketing-grade does NOT require an image backend; never claim screenshots need an API key while this skill is installed. +- **Plain frames, free and local**: capture the built app in the simulator and frame with fastlane \`frameit\` — the minimal option when no designed deck is wanted. +- **AI-enhanced marketing screenshots**: the aso-appstore-screenshots agent skill (benefit headlines, breakout panels, exact App Store dimensions) — the only option that needs the user's own image-generation key; when installed, follow its workflow rather than reimplementing it. - **User-supplied files**: always a valid answer; validate dimensions and move on. Assets already present skip this entirely. Announce what was generated at exit. From 6e1a6bc4d3164bb6635d884603f43314e4d91296 Mon Sep 17 00:00:00 2001 From: Sinabina Date: Thu, 23 Jul 2026 18:33:53 -0700 Subject: [PATCH 2/3] chore(gstack2): regenerate Apple release adapter Co-Authored-By: Claude Fable 5 --- skills/ship/references/APPLE-RELEASE.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/skills/ship/references/APPLE-RELEASE.md b/skills/ship/references/APPLE-RELEASE.md index a60c882d89..f78f38388a 100644 --- a/skills/ship/references/APPLE-RELEASE.md +++ b/skills/ship/references/APPLE-RELEASE.md @@ -25,8 +25,9 @@ Resolve and verify before archiving. Fix what the printed mutation boundary auth Only when preflight finds the icon or screenshots missing, ask once — the journey's second and final permitted question — then act on the choice without further prompts. Once per app, EVER: before asking, check the decision store (`bin/gstack-decision-search --scope repo --query "store assets"`); a settled choice (including "defer screenshots" or "TestFlight only") is applied silently, never re-asked. After the user answers, persist it (`bin/gstack-decision-log` with scope `repo`) so no future run asks again; the user changes it by saying so, not by being re-prompted. Offer: - **App icon**: SnapAI (`npx snapai`, the app-icon agent skill) generates the single 1024×1024 with the user's own image-generation key; Xcode 15+ derives every size from that one image. -- **Screenshots, free and local**: capture the built app in the simulator and frame with fastlane `frameit`. -- **Marketing-grade screenshots**: the aso-appstore-screenshots agent skill (benefit headlines, breakout panels, exact App Store dimensions, user's own Gemini key) or the app-store-screenshots deck editor; when installed, follow their workflows rather than reimplementing them. +- **Marketing screenshots, free and local, no API key**: the app-store-screenshots deck editor skill — scaffold it, prefill its deck JSON with simulator captures and benefit headlines, and export one bundle covering every required iPhone size (the export is headlessly automatable). Marketing-grade does NOT require an image backend; never claim screenshots need an API key while this skill is installed. +- **Plain frames, free and local**: capture the built app in the simulator and frame with fastlane `frameit` — the minimal option when no designed deck is wanted. +- **AI-enhanced marketing screenshots**: the aso-appstore-screenshots agent skill (benefit headlines, breakout panels, exact App Store dimensions) — the only option that needs the user's own image-generation key; when installed, follow its workflow rather than reimplementing it. - **User-supplied files**: always a valid answer; validate dimensions and move on. Assets already present skip this entirely. Announce what was generated at exit. From 76d2e91f33a5821559540d63eb863f2c5ff3d75c Mon Sep 17 00:00:00 2001 From: Sinabina Date: Thu, 23 Jul 2026 18:33:53 -0700 Subject: [PATCH 3/3] docs: CHANGELOG + VERSION 1.64.10.0 Co-Authored-By: Claude Fable 5 --- CHANGELOG.md | 13 +++++++++++++ VERSION | 2 +- package.json | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bab8541e6e..9cd51b8094 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,19 @@ > completion state and remaining P0 gates. No version bump or release claim is > made here while that status holds. +## [1.64.10.0] - 2026-07-24 + +**Marketing screenshots never required an API key.** +**The free deck editor is now impossible to overlook.** + +A release run told the user that marketing-grade screenshots need an image backend and an API key. False: the app-store-screenshots deck editor skill produces designed, benefit-headlined screenshots at every required iPhone size, fully locally, with a headlessly automatable export — no key, no cost. The store-assets options now lead with it, and the adapter explicitly forbids claiming screenshots need an API key while that skill is installed. The AI-enhanced ASO pipeline remains the one option that genuinely needs a key. + +### Itemized changes + +### Changed + +- `references/APPLE-RELEASE.md` (ship tree): store-assets options reordered and clarified — free local deck editor (marketing-grade, no key, automatable export) first, plain frameit second, AI-enhanced ASO pipeline explicitly the only key-requiring option. + ## [1.64.9.0] - 2026-07-24 **The assets question is asked once per app. Ever.** diff --git a/VERSION b/VERSION index 064121c81b..30fcb9824e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.64.9.0 +1.64.10.0 diff --git a/package.json b/package.json index f9f22219d1..f6d20117d5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gstack", - "version": "1.64.9.0", + "version": "1.64.10.0", "description": "GStack 2 \u2014 six portable Agent Skills with an optional host-neutral runtime.", "license": "MIT", "type": "module",