console: agent-first mode (console plan / console verify), verified App Privacy and Play Create app facts

- `storebound console plan <form> [--json] [--lookup]`: read-only plan for an AI agent that drives the browser
  itself: start URL (deep links), ordered steps, answer sheet with the console's exact labels (certain / ask owner,
  curly quotes noted), never-press list, verified UI facts, driving guidance (in-page async loop + window.__log),
  verify instructions. All six forms.
- `storebound console verify <form> [--from-text <file|->]`: App Privacy per-type summaries from page text, Play
  Create app from input states, content rating / target audience summaries, App Store record and age rating from
  the API; exit 1 on a mismatch.
- MCP: console_plan, console_verify (read-only); console fill stays off MCP.
- App Privacy (verified 2026-10-12): two information steps, unlabeled purpose checkboxes (nearest parent text),
  "Definitions and Examples" never pressed; fixture and engine follow.
- Play Create app (verified 2026-10-12): /developers/<id>/create-new-app, App package name + read-only Check
  availability, material-radio inner [role=radio] click, app dashboard URL and play.appId, service account
  "Add app" as an owner step.
- console-autofill skill rewritten agent-first; agents-core rule 10; README; pitfalls 12, 18 (confirmed sign-out),
  19; CHANGELOG; play-first-release.
This commit is contained in:
CRTkafa 2026-10-12 08:22:03 +08:00
parent a9261a8052
commit c9a7f095c4
34 changed files with 1430 additions and 113 deletions

View file

@ -2,6 +2,30 @@
## Unreleased
- Agent-first console mode. `storebound console plan <form> [--json]` (read-only, offline; `--lookup` asks the App
Store Connect API for the app id) gives an AI agent everything to fill a console form with its own browser tool:
the start URL (deep links from apple.appId, play.developerId, the new play.appId and the remembered ids), ordered
steps (what to click by visible text), the answer sheet (each answer certain or ask-owner, with the console's exact
labels, curly quotes noted), the never-press list (Publish, Submit, Create, agreements, help panels), the known UI
facts per form and how to verify. `storebound console verify <form> [--from-text <file|->]` (read-only, exit 1 on a
mismatch) checks the result: App Privacy from the page text (per-type "Used for …", linked, tracking), Play Create
app from the input states, content rating and target audience from their summaries, the App Store record and age
rating from the API. MCP: `console_plan`, `console_verify` (read-only; `console fill` stays off MCP). The
console-autofill skill now puts the agent-driven mode first; `console fill` is the optional scripted fast path.
Pitfall 20.
- App Privacy, verified on a real console (2026-10-12): two information steps in each type dialog ("Let’s define two
important terms…", "To help put tracking into context…"), purpose checkboxes without an accessible name (matched by
the nearest parent text), "Definitions and Examples" never pressed. The scripted engine handles all of it.
- Play Create app, verified through Claude in Chrome (2026-10-12): the form's own URL
`/console/u/0/developers/<id>/create-new-app` (the engine opens it directly with a developer id); the App package
name field (from `play.packageName`, max 150) and its read-only "Check availability" ("Package name available"),
which storebound presses; the `<material-radio>` gotcha (the native input does not update the form's model: the
engine clicks the inner `[role=radio]`); the app dashboard `/developers/<id>/app/<appId>/app-dashboard` (the app id
is remembered and deep-links the App content forms); after Create app the owner adds the new app to the service
account (Users and permissions > the service account > Add app), never an agent. The old note "the first AAB
upload sets the package name" is gone.
- Confirmed (2026-10-12): the earlier default copy of the owner's Google cookies DID sign the owner out of Play
Console in their real Chrome (pitfall 18). The copy has been opt-in since the change below.
- Fix (`play images`): a phone-only project no longer aborts with "no sevenInchScreenshots ... (render first)". Play
requires the 512 icon, the 1024 x 500 feature graphic and at least 2 screenshots (Play Console Help answer 9866151);
7" / 10" tablet screenshots are optional. `play images` (dry and real) uploads what exists (icon, feature graphic,