README, docs and site: one story (the whole job, no avoidable rejections, the desktop app, your AI, install)

README is a short front page (about 120 lines) with one real visual per section; every former section moved
unchanged into docs/*.md with a docs/README.md index (journey, rejections, getting-started, commands, growth,
studios, store-art, listing-languages, api, skills, mcp, safety, faq, project). The site tells the same story on one
page: the teaser in the hero, real CLI output as text, the desktop app as a section with light/dark captures of eight
screens and the per-system downloads (desktop/latest.json); /desktop/ redirects to /#download. New capture tools:
tools/site-desktop-shots.ts (fixture-mode desktop frames) and tools/site-term-shots.ts (real CLI output as text and
WebP). tests/docs-links.test.ts checks README, docs and site links resolve.
This commit is contained in:
CRTkafa 2026-10-13 03:29:59 +08:00
parent deb218943c
commit 710c3a53d0
63 changed files with 2742 additions and 1782 deletions

View file

@ -1,6 +1,6 @@
// Where each AI coding tool looks for Agent Skills and MCP servers in a project, and pure merge helpers that add the
// storebound entry without touching anything else in those files. Formats checked against each tool's docs in
// October 2026 (see README "Agent support").
// October 2026 (see docs/project.md "Agent support").
export type AgentId = 'claude' | 'codex' | 'cursor' | 'copilot' | 'windsurf' | 'gemini' | 'opencode';

View file

@ -16,7 +16,7 @@ export const DATA_SAFETY_UPLOADED = '.storebound/data-safety.uploaded.csv';
/**
* Play Data safety "Account creation" (question PSL_SUPPORTED_ACCOUNT_CREATION_METHODS): the options Play Console
* shows (Data safety > Data collection and security > Account creation) and the response ids storebound writes.
* Google publishes no list of these ids (README "Not verified"): compare with a Console export (App content > Data
* Google publishes no list of these ids (docs/project.md "Not verified"): compare with a Console export (App content > Data
* safety > Export to CSV) when an import is refused.
*/
export const ACCOUNT_CREATION: Record<string, string> = {

View file

@ -11,7 +11,7 @@ import { homedir } from 'node:os';
import { join } from 'node:path';
export const BUNDLE_ID = 'dev.storebound.desktop';
export const PAGE = 'https://storebound.dev/desktop/';
export const PAGE = 'https://storebound.dev/#download';
export const MANIFEST: Record<'stable' | 'beta', string> = {
stable: 'https://storebound.dev/desktop/latest.json',
beta: 'https://storebound.dev/desktop/beta/latest.json',