storebound/docs
2026-10-14 11:11:24 +08:00
..
acceptance acceptance: macOS results of 0.8.3 from 1c44095 (123/123 on Node 20, Node 22, Bun), docs/acceptance.md regenerated 2026-10-14 08:51:14 +08:00
diagrams No hand-written SVG: visx charts, lucide icons, Mermaid journey diagram 2026-10-11 08:49:30 +08:00
img No hand-written SVG: visx charts, lucide icons, Mermaid journey diagram 2026-10-11 08:49:30 +08:00
research price changes of existing products need --allow-price-changes (play products, play/apple subscriptions, prices import): --yes and flow run --apply --yes confirm creates, first prices and other updates only; without the flag the run writes the rest, names each held change and exits 3 (declined), dry runs mark them owner, flows refuse the flag; lib/price-gate.ts, tests/price-gate.test.ts. CLI wording: console fill leaves what it cannot open or fill to the calling agent's browser tool (console plan / verify) instead of 'yourself'; other 'by hand' output points at the config; do-it-dont-ask test scans cli/ output 2026-10-12 09:38:57 +08:00
acceptance.md acceptance: macOS results of 0.8.3 from 1c44095 (123/123 on Node 20, Node 22, Bun), docs/acceptance.md regenerated 2026-10-14 08:51:14 +08:00
agents-core.md agent rules: first rule "Do it, don't ask" (agents-core and every adapter, README, store-pitfalls lead, first-release, declarations and console skills); the agent runs the real command after the dry run, the owner presses only final public or irreversible buttons and answers compliance facts in one batch; handoff text removed from skills; tests/do-it-dont-ask.test.ts. Pitfall 26 2026-10-12 09:28:45 +08:00
api-coverage.md store art from the live stores: storebound art pull (App Store screenshot sets and previews per locale and display type from imageAsset.templateUrl at the original size, the App Store icon from the newest build or the public artwork; per Play language icon, feature graphic, phone / 7" / 10" / TV / Wear screenshots as the =s0 originals checked against Play's sha256) into store/renders with pulled.json (sha256, store, URL host, store checksum); upsert (a re-run changes nothing, differing local files kept unless --force, the upload's file of a slot compared: Play .jpg, App Store .png, the App Store icon as a picture); onboard runs it; apple screenshots / previews and play images see unchanged pulled files as the store's own; check: render sources are notes with pulled art; local renders check: pulled files pass, store-empty sets not demanded; art live / thumb / replace; desktop Store art tab: live thumbnails per store, language and set (same / differs / not pulled), Pull from stores, store-only apps read-only, Replace with a file (image_pick, art.replace) in the lightbox and the art editor; boot check store art case; tests/art-pull.test.ts; console parity 76 rows (57 complete, 19 with the reason); store-screenshots skill (pull first for live apps), pitfall 59 2026-10-14 05:25:37 +08:00
api.md README, docs and site: one story (the whole job, no avoidable rejections, the desktop app, your AI, install) 2026-10-13 03:29:59 +08:00
commands.md desktop editors: edit in place what App Store Connect and Play Console let the owner edit (listings per language for both stores with live counters and the check / scan rules, store details, App info, age rating, App Review, Play store settings, Data safety and App Privacy answers, promotion blocks, catalog names / prices / offers, TestFlight information, scene order); storebound edit (project.edit) saves into the config by path keeping comments and formatting, the listing files and the review contact, dry run with the diff and the checks first; Apply shows each store's dry run in the window; unsaved edits survive tab switches with undo / redo; tests/edit.test.ts, apps/desktop/tests/edits.test.ts, boot check editor case 2026-10-14 00:37:08 +08:00
console-parity.md store art from the live stores: storebound art pull (App Store screenshot sets and previews per locale and display type from imageAsset.templateUrl at the original size, the App Store icon from the newest build or the public artwork; per Play language icon, feature graphic, phone / 7" / 10" / TV / Wear screenshots as the =s0 originals checked against Play's sha256) into store/renders with pulled.json (sha256, store, URL host, store checksum); upsert (a re-run changes nothing, differing local files kept unless --force, the upload's file of a slot compared: Play .jpg, App Store .png, the App Store icon as a picture); onboard runs it; apple screenshots / previews and play images see unchanged pulled files as the store's own; check: render sources are notes with pulled art; local renders check: pulled files pass, store-empty sets not demanded; art live / thumb / replace; desktop Store art tab: live thumbnails per store, language and set (same / differs / not pulled), Pull from stores, store-only apps read-only, Replace with a file (image_pick, art.replace) in the lightbox and the art editor; boot check store art case; tests/art-pull.test.ts; console parity 76 rows (57 complete, 19 with the reason); store-screenshots skill (pull first for live apps), pitfall 59 2026-10-14 05:25:37 +08:00
desktop-release.md release: privacy scan of signed macOS artifacts leaves out Apple code signatures only (copies with codesign --remove-signature on every Mach-O, the DMG's koly signature blob zeroed); any other hit still fails; tests and docs 2026-10-14 08:21:35 +08:00
desktop.md store-only apps edit their listing on the store (storebound listing live / set: old -> new per field with the checks, a PATCH of only the edited fields; serve listing.set is the one store-only write, its token bound to the store ids; policy.rs STORE_ONLY_WRITES, write_with_confirm for store targets); screenshot captions per language and scene edited as a text edit of the shots copy JSON (JSON files keep their layout); Play content rating, target audience and App content answers in App info; docs/console-parity.md after the editors (73 rows: 55 complete, 18 with the reason) and tests/console-parity.test.ts keeping it honest 2026-10-14 00:54:56 +08:00
faq.md CLI runs on Node 20+: npx storebound (bunx keeps working) 2026-10-13 04:03:28 +08:00
getting-started.md Onboarding live apps without owner questions for what the stores and the code prove: storebound onboard imports the live products and subscriptions with USD / base prices (catalog diff clean), contact values, the App Review contact and demo account (credentials.json, masked), sign-in for review from Apple's review detail and auth code, and the account deletion page from the app's site; App Store keywords count characters (live fields up to 265 bytes accepted); validate accepts the 6.5-inch iPhone set and Play's default-language graphics fallback; Play Reporting API off gives the project's enable link and apps list falls back to local apps; accounts default <profile>; store-only apps (apps add --store --app-id) shown read-only in the desktop (pitfalls 43-52) 2026-10-13 07:25:01 +08:00
growth.md README, docs and site: one story (the whole job, no avoidable rejections, the desktop app, your AI, install) 2026-10-13 03:29:59 +08:00
idempotency.md apple submit --build <n> (first submission, the resubmit steps; plan table with --json under serve); desktop owner actions to send for review: owner.apple_submit, owner.apple_resubmit, owner.apple_iap_submit, owner.play_production, and the price gate owner actions (owner.prices_play_products / _play_subscriptions / _apple_subscriptions; owner.prices_import passes --allow-price-changes after the dialog); OWNER_ALLOWED_ARGS ties each forbidden flag to its one action, dry runs never carry owner flags, MCP still has no submit or production release; submit dialog text in the host; system.tools androidSdk, project.inspect playRelease, declarations dataDeletion 2026-10-12 12:08:07 +08:00
journey.md README, docs and site: one story (the whole job, no avoidable rejections, the desktop app, your AI, install) 2026-10-13 03:29:59 +08:00
listing-languages.md README, docs and site: one story (the whole job, no avoidable rejections, the desktop app, your AI, install) 2026-10-13 03:29:59 +08:00
mcp.md README, docs and site: one story (the whole job, no avoidable rejections, the desktop app, your AI, install) 2026-10-13 03:29:59 +08:00
pitfalls.md Feature graphic fits the phone: shots.feature.fit 'contain' (default) sizes the device so its rotated box stays inside 1024x500 with a 24 px margin in both templates, 'bleed' keeps the crop, scale 0.5-1.5, config validated; shots render records measured device boxes (report.json devices) and shots check fails a feature graphic whose device leaves the canvas (warns for a screenshot's front device off a side or the top); tests/feature-fit.test.ts (rotated-box geometry, both templates rendered at 1024x500, bleeding fixture) (pitfall 55) 2026-10-13 09:50:15 +08:00
project.md README, docs and site: one story (the whole job, no avoidable rejections, the desktop app, your AI, install) 2026-10-13 03:29:59 +08:00
README.md README, docs and site: one story (the whole job, no avoidable rejections, the desktop app, your AI, install) 2026-10-13 03:29:59 +08:00
rejections.md README, docs and site: one story (the whole job, no avoidable rejections, the desktop app, your AI, install) 2026-10-13 03:29:59 +08:00
safety.md README, docs and site: one story (the whole job, no avoidable rejections, the desktop app, your AI, install) 2026-10-13 03:29:59 +08:00
site-analytics.md site: first-party, cookieless visit stats (self-hosted Umami at storebound.dev/s/, Do Not Track respected) with events for copy buttons, desktop downloads per OS, the teaser (play, 50 %, complete) and outbound docs / git / npm links; a privacy note in the footer; docs/site-analytics.md and tools/vds/ configs to rebuild the server side; scrub allows a page's public stats website id 2026-10-14 11:11:24 +08:00
skills.md README, docs and site: one story (the whole job, no avoidable rejections, the desktop app, your AI, install) 2026-10-13 03:29:59 +08:00
store-art.md README, docs and site: one story (the whole job, no avoidable rejections, the desktop app, your AI, install) 2026-10-13 03:29:59 +08:00
studios.md One product per machine: the CLI and the desktop app share one version, the store accounts and the app folder list 2026-10-13 06:17:37 +08:00

storebound docs

The README is the short tour; everything in detail lives here.

Start

  • Getting started: the 5-minute quick start, coming from fastlane, credentials, install for your AI tool
  • The journey: why storebound, how agents use it, every step from setup to Submit (API, console or yours)
  • FAQ

Ship

Agents and safety

Desktop app

Project