0.7.1: README links and images absolute (npmjs.com rendered relative paths as 404s); test keeps README free of relative links
This commit is contained in:
parent
ba8cfd2594
commit
d5ffc159c0
8 changed files with 39 additions and 29 deletions
|
|
@ -9,7 +9,7 @@
|
|||
"name": "storebound",
|
||||
"source": ".",
|
||||
"description": "Take a mobile app or game from nothing to Submit for review on both stores: skills for every store step and questionnaire plus the storebound CLI and MCP server.",
|
||||
"version": "0.7.0",
|
||||
"version": "0.7.1",
|
||||
"category": "development",
|
||||
"tags": [
|
||||
"mobile",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "storebound",
|
||||
"version": "0.7.0",
|
||||
"version": "0.7.1",
|
||||
"description": "Take a mobile app or game from nothing to Submit for review on Google Play and the App Store: app records, listings in every language, in-app products and subscriptions with regional prices, every questionnaire (Data safety, App access and demo accounts, account deletion, IARC, target audience, ads, App Privacy, age rating, export compliance), privacy, icons, screenshots and previews, validate, TestFlight, release management, and after launch: crash vitals, review replies, price sheets, store analytics, Product Page Optimization. Agent Skills plus a Bun CLI and MCP server (storebound); you press Submit. CRTkafa's own toolchain, open-sourced.",
|
||||
"author": {
|
||||
"name": "CRTkafa"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "storebound",
|
||||
"version": "0.7.0",
|
||||
"version": "0.7.1",
|
||||
"description": "Take a mobile app or game from nothing to Submit for review on Google Play and the App Store: app records, listings in every language, in-app products and subscriptions with regional prices, every questionnaire (Data safety, App access and demo accounts, account deletion, IARC, target audience, ads, App Privacy, age rating, export compliance), privacy, icons, screenshots and previews, validate, TestFlight, release management, and after launch: crash vitals, review replies, price sheets, store analytics, Product Page Optimization. Agent Skills plus a Bun CLI and MCP server (storebound); you press Submit. CRTkafa's own toolchain, open-sourced.",
|
||||
"author": {
|
||||
"name": "CRTkafa"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
# Changelog
|
||||
|
||||
## 0.7.1 · 2026-10-13
|
||||
|
||||
- Fix: README links and images on npmjs.com resolved against npmjs.com and gave 404 (`docs/README.md`, the logo).
|
||||
Every README link and image is now absolute (git.crt.fyi), and a test keeps it that way.
|
||||
|
||||
## 0.7.0 · 2026-10-13
|
||||
|
||||
Agent-first: the AI does the whole job ("do it, don't ask") and the owner presses only the final public buttons, with
|
||||
|
|
|
|||
48
README.md
48
README.md
|
|
@ -1,4 +1,4 @@
|
|||
<p><img src="brand/logo-mark-256.png" width="96" height="96" alt="storebound logo"></p>
|
||||
<p><img src="https://git.crt.fyi/CRT/storebound/raw/branch/main/brand/logo-mark-256.png" width="96" height="96" alt="storebound logo"></p>
|
||||
|
||||
# storebound
|
||||
|
||||
|
|
@ -8,14 +8,14 @@ Your AI agent does all of it with storebound: builds, uploads, store text, scree
|
|||
in-app products and prices, the compliance forms, even the consoles that have no API. You only press Submit.
|
||||
|
||||
[](https://www.npmjs.com/package/storebound)
|
||||
[](LICENSE)
|
||||
[](CHANGELOG.md)
|
||||
[](https://git.crt.fyi/CRT/storebound/src/branch/main/LICENSE)
|
||||
[](https://git.crt.fyi/CRT/storebound/src/branch/main/CHANGELOG.md)
|
||||
[](#install-and-start)
|
||||
[](package.json)
|
||||
[](skills)
|
||||
[](docs/mcp.md)
|
||||
[](https://git.crt.fyi/CRT/storebound/src/branch/main/package.json)
|
||||
[](https://git.crt.fyi/CRT/storebound/src/branch/main/skills)
|
||||
[](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/mcp.md)
|
||||
|
||||
**Website: [storebound.dev](https://storebound.dev) · Docs: [docs/](docs/README.md) · `npx storebound init`**
|
||||
**Website: [storebound.dev](https://storebound.dev) · Docs: [docs/](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/README.md) · `npx storebound init`**
|
||||
|
||||
[](https://storebound.dev/#teaser)
|
||||
|
||||
|
|
@ -31,8 +31,8 @@ and the console pages that have no API (the agent drives them from a `console pl
|
|||

|
||||
|
||||
You press only the final public or irreversible buttons (Submit for review, releasing, App Privacy Publish, legal
|
||||
agreements) and answer, once and in one batch, the facts no file can prove. The full rules: [AGENTS.md](AGENTS.md);
|
||||
the whole journey step by step: [docs/journey.md](docs/journey.md).
|
||||
agreements) and answer, once and in one batch, the facts no file can prove. The full rules: [AGENTS.md](https://git.crt.fyi/CRT/storebound/src/branch/main/AGENTS.md);
|
||||
the whole journey step by step: [docs/journey.md](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/journey.md).
|
||||
|
||||
## You won't get rejected for the avoidable things
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ evidence as `file:line`, and the fix.
|
|||
|
||||

|
||||
|
||||
Every rule, what it proves and what only a reviewer can see: [docs/rejections.md](docs/rejections.md).
|
||||
Every rule, what it proves and what only a reviewer can see: [docs/rejections.md](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/rejections.md).
|
||||
|
||||
## The desktop app: every app, both stores, one window
|
||||
|
||||
|
|
@ -65,7 +65,7 @@ confirm, then your click. Same storebound underneath; store keys stay in the sys
|
|||
</details>
|
||||
|
||||
Download for macOS, Windows and Linux: [storebound.dev/#download](https://storebound.dev/#download), or
|
||||
`storebound desktop --download` (checks the signature, never installs). Internals: [docs/desktop.md](docs/desktop.md).
|
||||
`storebound desktop --download` (checks the signature, never installs). Internals: [docs/desktop.md](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/desktop.md).
|
||||
|
||||
## Works with your AI, safe by design
|
||||
|
||||
|
|
@ -75,8 +75,8 @@ stay in env vars or the gitignored `.storebound/`.
|
|||
|
||||

|
||||
|
||||
Per-tool setup: [docs/getting-started.md](docs/getting-started.md#install-for-your-ai-tool) · MCP tools:
|
||||
[docs/mcp.md](docs/mcp.md) · Safety model: [docs/safety.md](docs/safety.md).
|
||||
Per-tool setup: [docs/getting-started.md](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/getting-started.md#install-for-your-ai-tool) · MCP tools:
|
||||
[docs/mcp.md](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/mcp.md) · Safety model: [docs/safety.md](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/safety.md).
|
||||
|
||||
## Install and start
|
||||
|
||||
|
|
@ -93,7 +93,7 @@ npx storebound check # offline: config, limits, Data safety,
|
|||
Every `npx storebound ...` below works as `bunx storebound ...` too.
|
||||
|
||||
Then ask your agent: "take my app to Google Play and the App Store". Claude Code plugin, credentials, coming from
|
||||
fastlane: [docs/getting-started.md](docs/getting-started.md). Desktop app: [storebound.dev/#download](https://storebound.dev/#download).
|
||||
fastlane: [docs/getting-started.md](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/getting-started.md). Desktop app: [storebound.dev/#download](https://storebound.dev/#download).
|
||||
|
||||
## What it covers
|
||||
|
||||
|
|
@ -101,16 +101,16 @@ Store screenshots of the demo game, rendered by storebound in every size and lan
|
|||
|
||||

|
||||
|
||||
- [The journey](docs/journey.md): every step from setup to Submit, what is API, what the agent drives in a console, what stays yours
|
||||
- [Rejection scan](docs/rejections.md): every rule with its App Store guideline or Play policy
|
||||
- [Commands](docs/commands.md): the full command reference
|
||||
- [Store art](docs/store-art.md): screenshots, fonts, previews, variants
|
||||
- [Growth extras and console forms](docs/growth.md): PPP prices, Apple Ads, web presence, RevenueCat, `console plan` / `console fill`
|
||||
- [Many apps, release trains, workflows](docs/studios.md) · [Listings in more languages](docs/listing-languages.md) · [Every API endpoint](docs/api.md)
|
||||
- [Skills](docs/skills.md) · [MCP server](docs/mcp.md) · [Safety model](docs/safety.md) · [Idempotency](docs/idempotency.md) · [Pitfalls](docs/pitfalls.md)
|
||||
- [Desktop app](docs/desktop.md) · [Desktop releases](docs/desktop-release.md) · [FAQ](docs/faq.md) · [Roadmap, contributing, credits](docs/project.md)
|
||||
- [The journey](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/journey.md): every step from setup to Submit, what is API, what the agent drives in a console, what stays yours
|
||||
- [Rejection scan](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/rejections.md): every rule with its App Store guideline or Play policy
|
||||
- [Commands](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/commands.md): the full command reference
|
||||
- [Store art](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/store-art.md): screenshots, fonts, previews, variants
|
||||
- [Growth extras and console forms](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/growth.md): PPP prices, Apple Ads, web presence, RevenueCat, `console plan` / `console fill`
|
||||
- [Many apps, release trains, workflows](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/studios.md) · [Listings in more languages](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/listing-languages.md) · [Every API endpoint](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/api.md)
|
||||
- [Skills](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/skills.md) · [MCP server](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/mcp.md) · [Safety model](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/safety.md) · [Idempotency](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/idempotency.md) · [Pitfalls](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/pitfalls.md)
|
||||
- [Desktop app](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/desktop.md) · [Desktop releases](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/desktop-release.md) · [FAQ](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/faq.md) · [Roadmap, contributing, credits](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/project.md)
|
||||
|
||||
## Contributing and license
|
||||
|
||||
Issues and pull requests are welcome; see [CONTRIBUTING.md](CONTRIBUTING.md) (`bun run ci` must be green).
|
||||
MIT, see [LICENSE](LICENSE). Copyright (c) 2026 CRTkafa. Not affiliated with Google or Apple.
|
||||
Issues and pull requests are welcome; see [CONTRIBUTING.md](https://git.crt.fyi/CRT/storebound/src/branch/main/CONTRIBUTING.md) (`bun run ci` must be green).
|
||||
MIT, see [LICENSE](https://git.crt.fyi/CRT/storebound/src/branch/main/LICENSE). Copyright (c) 2026 CRTkafa. Not affiliated with Google or Apple.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "storebound",
|
||||
"version": "0.7.0",
|
||||
"version": "0.7.1",
|
||||
"description": "Take a mobile app or game from nothing to Submit for review on Google Play and the App Store: app records, listings in every language, in-app products and subscriptions with regional prices, every questionnaire (Data safety, App access and demo accounts, account deletion, IARC, target audience, ads, App Privacy, age rating, export compliance), privacy, icons, screenshots and previews, validate, TestFlight, release management, and after launch: crash vitals, review replies, price sheets, store analytics, Product Page Optimization. Agent Skills plus a Bun CLI and MCP server (storebound); you press Submit. CRTkafa's own toolchain, open-sourced.",
|
||||
"contextFileName": "GEMINI.md",
|
||||
"mcpServers": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "storebound",
|
||||
"version": "0.7.0",
|
||||
"version": "0.7.1",
|
||||
"desktopVersion": "0.1.0",
|
||||
"description": "Take a mobile app or game from nothing to Submit for review on Google Play and the App Store: app records, listings in every language, in-app products and subscriptions with regional prices, every store questionnaire (incl. account deletion and App Review demo accounts), privacy, icons, screenshots and previews, TestFlight. After launch: crash vitals, review replies, price sheets, analytics and Product Page Optimization. One config, a CLI (Node 20+ or Bun), an MCP server and Agent Skills for your AI coding agent.",
|
||||
"license": "MIT",
|
||||
|
|
|
|||
|
|
@ -67,6 +67,11 @@ describe('links resolve', () => {
|
|||
test('README.md and docs/*.md', () => {
|
||||
expect([join(ROOT, 'README.md'), ...docs].flatMap(problems)).toEqual([]);
|
||||
});
|
||||
test('README.md has only absolute links and images (npm renders it on npmjs.com, where relative paths 404)', () => {
|
||||
const md = readFileSync(join(ROOT, 'README.md'), 'utf8');
|
||||
const rel = [...md.matchAll(/!?\]\((?!https?:|#|mailto:)([^)\s]+)\)|(?:src|href)="(?!https?:|#|mailto:)([^"]+)"/g)].map(m => m[1] ?? m[2]);
|
||||
expect(rel).toEqual([]);
|
||||
});
|
||||
test('site pages', () => {
|
||||
const pages = ['site/index.html', 'site/desktop/index.html'].map(p => join(ROOT, p)).filter(existsSync);
|
||||
expect(pages.flatMap(problems)).toEqual([]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue