desktop: a Fix button on scan and validate findings storebound can fix itself. Findings carry action { method, args } (cli/lib/fix-actions.ts); privacy-labels runs scan.write (scan --write-only, the dialog shows the config diff), Play listing gaps play.listing, a missing App Store localization or copyright apple.listing (editable version only), the App Review contact apple.review_details; each a dry run, the native dialog, then the confirmed run. --write-only is forbidden for MCP tools; tests pin the mapping, the round trip on a fixture and that no fix reaches a submit, release or publish
This commit is contained in:
parent
bd83d036ba
commit
992f5bcc0e
18 changed files with 257 additions and 37 deletions
|
|
@ -65,7 +65,13 @@ Types of the protocol: `cli/lib/desktop-protocol.ts`; pure portfolio logic: `cli
|
|||
worst devices, top issues, App Store metrics and signatures), Reviews (`reviews.list` + `reviews.drafts`: star
|
||||
distribution, filters, the local draft with its send checks, Approve via `reviews.approve`), TestFlight
|
||||
(`apple.testflight_status`), Checks (offline `scan`: rejection risks with guideline, evidence file:line, fix
|
||||
and skill, owner-accepted ones marked; offline `check`; `validate` with fix hints).
|
||||
and skill, owner-accepted ones marked; offline `check`; `validate` with fix hints). A finding whose fix an
|
||||
existing command fully determines carries `action: { method, args }` (cli/lib/fix-actions.ts) and gets a **Fix**
|
||||
button: a confirm-gated write (dry run, the native dialog showing it, then the real run). Mapped today:
|
||||
privacy-labels -> `scan.write` (`scan --write-only`: the detected Data safety / App Privacy answers into the
|
||||
config, the dialog shows the config diff), Play listing gaps -> `play.listing`, App Store missing localization and
|
||||
copyright -> `apple.listing` (editable version only), App Review contact -> `apple.review_details`. No fix reaches
|
||||
a submit, release or publish (tests/fix-actions.test.ts).
|
||||
- **First-run guide**: what the app does, add or start an app folder (`project.init` = `storebound init --profile`,
|
||||
confirmed in a native dialog), store keys into the shared credential profiles and which app uses which, local
|
||||
tools, first read.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue