diff --git a/.cursor/rules/storebound.mdc b/.cursor/rules/storebound.mdc index 9b268ea..865e027 100644 --- a/.cursor/rules/storebound.mdc +++ b/.cursor/rules/storebound.mdc @@ -7,16 +7,43 @@ alwaysApply: false These rules apply to every AI tool that uses storebound (skills, MCP server or the CLI in a terminal). +## First rule: do it, don't ask + +storebound plus you, the AI agent, do the work. The owner is not your pair of hands. + +1. **You do everything yourself:** API calls, uploads, builds, template and CSV downloads and exports, every console + navigation (open, Get Started, Edit, Next, Continue, Save draft), console forms, and the verification afterwards. + Never tell the owner "run this yourself" or "click X yourself" for any of these. +2. **The owner keeps only the final public or irreversible buttons:** Submit for review (App Review or Beta App + Review), releasing a version or completing / resuming a production rollout, App Privacy Publish, accepting legal + agreements; plus deleting store data, changing live prices, sending review replies and inviting or removing + testers. (Also the owner's: canceling a submission, starting or stopping a store experiment, a console form's final + Submit / Create that a console plan lists in `buttons.final`, signing in and granting account permissions.) For + these you prepare everything, show the dry run, and the owner presses one button or says yes. +3. **Ask the owner only for facts that no code, config or doc can prove:** compliance answers such as Data safety, + App Privacy, age rating, export compliance, partial data deletion. Collect ALL of them in ONE batch at the start + (`storebound check` and `storebound validate` list them), never one at a time during the run. Reuse answers that + are already in the config. +4. **Default loop:** plan, then you drive (the API first, your browser tool for consoles without an API), then verify + (read it back), then continue. No round trip to the owner in between. +5. **Catch rejections offline.** Before a write, `storebound check` and `--dry` must catch what the store would refuse + (live-shape fixtures, id and pair checks). A failure belongs in the dry run, not in a 400 at write time; when a + store refuses something the dry run passed, fix the check (pitfalls), not just the data. + +Every hour of "please click this" is an hour the owner did not want to spend. If you catch yourself writing "you +need to ...", do it instead, unless it is one of the owner steps in point 2. + +## The other rules + **Read `skills/store-pitfalls/SKILL.md` before any store task.** It lists the mistakes already made in real releases (store lists that lag after a create, dry runs without a plan, taken App Store names, byte limits, ...) and what to do. -1. **The owner decides public and irreversible steps.** Submitting for review (App Review or Beta App Review), - releasing a version, resuming or completing a rollout, canceling a submission, deleting products or listings, - accepting agreements, sending review replies, inviting or removing testers, changing prices, starting or stopping - a store experiment: explain what will happen and let the owner do it (or run the command only after a clear yes in - chat). storebound's MCP server does not offer these at all. -2. **Dry run first.** Every write command has `--dry` (MCP: `dry_run`, default true). Show the dry run (the rows that - change, not just a count), then run it for real only after the owner agrees. +1. **The owner presses only the owner steps** (point 2 of the first rule). Prepare them completely, say what will + happen, and let the owner press the button, or run the command only after a clear yes in chat. storebound's MCP + server does not offer these at all. Everything else you run yourself. +2. **Dry run first, then run it yourself.** Every write command has `--dry` (MCP: `dry_run`, default true). Run the + dry run, check and show it (the rows that change, not just a count), then run the real command yourself (`--yes` + where it asks for a confirmation) and read the result back. Wait for the owner's yes only before an owner step. 3. **Read before you write.** `storebound scan` (offline: rejection risks in the project itself), `storebound check` (offline) and `storebound validate` (read-only, both stores) tell you what is missing and in which order to fix it. 4. **Credentials only from the environment, `.storebound/`** in the project (gitignored) **or a credential profile** @@ -24,7 +51,8 @@ These rules apply to every AI tool that uses storebound (skills, MCP server or t passwords or tokens in chat, never print them, never write them into the config, docs or commits. The same goes for the App Review demo account (`reviewDemoAccount` in `.storebound/credentials.json`): the owner puts it there. 5. **Never answer a compliance question you cannot know.** Export compliance, Data safety, App Privacy, age rating, - target audience: ask the owner when the code does not prove the answer. A wrong "no" is worse than a slow "ask". + target audience: ask the owner when the code does not prove the answer, all such questions in one batch at the + start (first rule, point 3), and write the answers into the config. A wrong "no" is worse than a slow "ask". 6. **Pick builds by explicit number.** Use the build number / versionCode you just uploaded, never "the latest". 7. **Long uploads run in the background with a log** (`storebound play images > .storebound/images.log 2>&1 &`) and you report the progress lines, not guesses. @@ -36,7 +64,7 @@ These rules apply to every AI tool that uses storebound (skills, MCP server or t 10. **Console forms without an API: drive them yourself, agent-first.** `storebound console plan