mapples 0.2.0-beta.6 → 0.2.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/api/errors.js +4 -2
  2. package/dist/api/errors.js.map +1 -1
  3. package/dist/style/theme.js +17 -1
  4. package/dist/style/theme.js.map +1 -1
  5. package/package.json +1 -1
  6. package/templates/app.json +0 -1
  7. package/templates/claude/CLAUDE.md +1 -1
  8. package/templates/claude/mapples.md +9 -9
  9. package/templates/claude/skills/mapples-conventions/SKILL.md +4 -4
  10. package/templates/claude/skills/mapples-design/SKILL.md +21 -21
  11. package/templates/claude/skills/mapples-design/reference/component-library.md +2 -2
  12. package/templates/claude/skills/mapples-design/reference/design-tokens.md +4 -4
  13. package/templates/claude/skills/mapples-design/reference/layout-contract.md +1 -1
  14. package/templates/claude/skills/mapples-design/reference/lint-checklist.md +3 -3
  15. package/templates/claude/skills/mapples-design/reference/plan.md +1 -1
  16. package/templates/claude/skills/mapples-design/reference/playbooks/empty-states.md +1 -1
  17. package/templates/claude/skills/mapples-design/reference/playbooks/forms-and-auth.md +1 -1
  18. package/templates/claude/skills/mapples-design/reference/playbooks/home-dashboard.md +1 -1
  19. package/templates/claude/skills/mapples-design/reference/playbooks/list-and-detail.md +1 -1
  20. package/templates/claude/skills/mapples-design/reference/playbooks/microcopy.md +1 -1
  21. package/templates/claude/skills/mapples-design/reference/playbooks/navigation-chrome.md +2 -2
  22. package/templates/claude/skills/mapples-design/reference/playbooks/onboarding-flow.md +1 -1
  23. package/templates/claude/skills/mapples-design/reference/playbooks/screen-flow-wiring.md +2 -2
  24. package/templates/claude/skills/mapples-design/reference/playbooks/settings-profile.md +1 -1
  25. package/templates/claude/skills/mapples-design/reference/playbooks/stats-and-progress.md +1 -1
  26. package/templates/claude/skills/mapples-design/reference/playbooks/visual-hierarchy.md +1 -1
  27. package/templates/claude/skills/mapples-design/reference/style-guides.md +1 -1
  28. package/templates/claude/skills/mapples-sync/SKILL.md +11 -10
  29. package/templates/package.json +11 -10
@@ -69,13 +69,15 @@ export function errorFromBody(status, body) {
69
69
  return new JpatchError('FORBIDDEN', body.detail);
70
70
  }
71
71
  if (isJpatchErrorBody(body)) {
72
- const { code, message, ...rest } = body;
72
+ // The real server words its errors as `detail`; the mock as `message`.
73
+ const { code, message, detail, ...rest } = body;
73
74
  if (code === 'HEAD_MISMATCH') {
74
75
  const head = rest.head;
75
76
  const delta = rest.delta;
76
77
  return new HeadMismatchError(head, delta);
77
78
  }
78
- return new JpatchError(code, typeof message === 'string' ? message : '', rest);
79
+ const text = typeof message === 'string' ? message : typeof detail === 'string' ? detail : '';
80
+ return new JpatchError(code, text, rest);
79
81
  }
80
82
  return new UnexpectedResponseError(status, body);
81
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/api/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/api/errors.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,17 @@ const ENTITY_BY_SECTION = {
13
13
  typography: 'Typography',
14
14
  sizing: 'Sizing',
15
15
  };
16
+ // The style entities are per-project singletons with fixed ids (RFC-0001
17
+ // genesis manifest; service--mapplesorg api/canvas/engine.py). An update op
18
+ // must name its target — the server rejects an id-less update (422). Their
19
+ // blobs are `{id, data}`: the document lives under `data`, so a patch does
20
+ // too — `typography` and `sizing` are structural keys at the top level and
21
+ // a flat patch of those documents is refused (PATCH_INVALID).
22
+ const ID_BY_SECTION = {
23
+ theme: 'th_default',
24
+ typography: 'ty_default',
25
+ sizing: 'sz_default',
26
+ };
16
27
  export function renderThemeFile(style) {
17
28
  const print = (v) => JSON.stringify(v, null, 2).replace(/"([A-Za-z_$][\w$]*)":/g, '$1:');
18
29
  return [
@@ -110,7 +121,12 @@ export function syncStyleFile(root, base, remote, report) {
110
121
  for (const section of SECTIONS) {
111
122
  const push = buildMergePatch(remoteStyle[section], merged[section]);
112
123
  if (push !== null) {
113
- pushOps.push({ op: 'update', entity: ENTITY_BY_SECTION[section], patch: push });
124
+ pushOps.push({
125
+ op: 'update',
126
+ entity: ENTITY_BY_SECTION[section],
127
+ id: ID_BY_SECTION[section],
128
+ patch: { data: push },
129
+ });
114
130
  }
115
131
  }
116
132
  const desired = renderThemeFile(merged);
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/style/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/style/theme.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,2EAA2E;AAC3E,2EAA2E;AAE3E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIrF,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACtD,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAC;AAE5D,MAAM,iBAAiB,GAA4B;IACjD,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;CACjB,CAAC;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,8DAA8D;AAC9D,MAAM,aAAa,GAA4B;IAC7C,KAAK,EAAE,YAAY;IACnB,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,YAAY;CACrB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,KAAkB;IAChD,MAAM,KAAK,GAAG,CAAC,CAAU,EAAU,EAAE,CACnC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IACtE,OAAO;QACL,6EAA6E;QAC7E,iFAAiF;QACjF,EAAE;QACF,wBAAwB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;QACtD,EAAE;QACF,6BAA6B,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY;QAChE,EAAE;QACF,yBAAyB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY;QACxD,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAO,UAAU,KAAK,QAAQ;QAC9B,UAAU,KAAK,IAAI;QACnB,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI,EACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,KAAK,EAAE,KAAgC;QACvC,UAAU,EAAE,UAAqC;QACjD,MAAM,EAAE,MAAiC;KAC1C,CAAC;AACJ,CAAC;AAOD,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,IAAwB,EACxB,MAA0B,EAC1B,MAAkB;IAElB,MAAM,KAAK,GAAgB,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACrE,MAAM,SAAS,GAAG,IAAI,IAAI,KAAK,CAAC;IAChC,MAAM,WAAW,GAAG,MAAM,IAAI,SAAS,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACxC,MAAM,OAAO,GAAe,EAAE,CAAC;IAE/B,MAAM,OAAO,GAAG,CAAC,EAAe,EAAW,EAAE,CAC3C,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IACnD,CAAC;IAED,IAAI,KAAK,GAAuB,IAAI,CAAC;IACrC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,GAAG,UAAU,uEAAuE;gBAC5F,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,IAAI,SAAS,CAAC;IAEtC,MAAM,MAAM,GAAgB,EAAE,GAAG,KAAK,EAAE,CAAC;IACzC,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CACvD,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,SAAS,OAAO,EAAE;gBACvB,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,OAAO;gBACd,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;gBAC/B,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;gBAChC,MAAM,EAAE,sBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC9D,CAAC,CAAC;QACL,CAAC;QACD,0EAA0E;QAC1E,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,EAAE,MAAM,CAA4B,CAAC;QACzE,MAAM,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,UAAU,EAAE,MAAM,CAA4B,CAAC;IACnF,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,YAAgC,CAAC;QACrC,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjF,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,yCAAyC,YAAY,IAAI,QAAQ,EAAE;SAC5E,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IACnD,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACpE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,QAAQ;gBACZ,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC;gBAClC,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC;gBAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7E,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAC1C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mapples",
3
- "version": "0.2.0-beta.6",
3
+ "version": "0.2.0-beta.7",
4
4
  "description": "Mapples CLI — two-way code sync between Creator and your Expo project",
5
5
  "license": "MIT",
6
6
  "author": "Oleksandr Soloviov <oleksolv@gmail.com>",
@@ -6,7 +6,6 @@
6
6
  "orientation": "portrait",
7
7
  "scheme": "__APP_NAME__",
8
8
  "userInterfaceStyle": "automatic",
9
- "newArchEnabled": true,
10
9
  "plugins": ["expo-router"],
11
10
  "experiments": {
12
11
  "typedRoutes": true
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Project instructions
3
3
 
4
4
  This Expo app is linked to a Mapples Creator project. The Mapples conventions
@@ -1,10 +1,10 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Mapples conventions
3
3
 
4
4
  This app is linked to a **Mapples Creator** project (visual editor at creator.mapples.io).
5
5
  The link is the `mapples` CLI: screens, components and design tokens are TSX and TS files in
6
- this repo, and `mapples sync` pushes your edits to Creator and pulls Creator's edits back
7
- (two-way, 3-way merged). Every write to the project goes through `mapples sync` — there is no
6
+ this repo, and `npx -y mapples@__CLI_VERSION__ sync` pushes your edits to Creator and pulls Creator's edits back
7
+ (two-way, 3-way merged). Every write to the project goes through `npx -y mapples@__CLI_VERSION__ sync` — there is no
8
8
  other write path from here. The `mapples` MCP server (`.mcp.json`) is **read-only**: use it to
9
9
  look at the project (style tokens, assets); never expect it to change anything.
10
10
 
@@ -12,7 +12,7 @@ look at the project (style tokens, assets); never expect it to change anything.
12
12
 
13
13
  - `/mapples-design` — build the whole app from a product brief (tokens → plan → screens → wiring → review).
14
14
  - `mapples-conventions` — how Mapples files are written (auto-applies when you edit them).
15
- - `mapples-sync` — running `mapples sync`, reading its JSON report, handling conflicts and exit codes.
15
+ - `mapples-sync` — running `npx -y mapples@__CLI_VERSION__ sync`, reading its JSON report, handling conflicts and exit codes.
16
16
 
17
17
  ## Where things live
18
18
 
@@ -33,7 +33,7 @@ Read `.mapples/config.json` for the real `routesDir` / `pagesDir` / `componentsD
33
33
 
34
34
  1. **`$sid` is opaque.** Every element Creator knows carries `$sid="nd_…"`. Never invent,
35
35
  renumber, duplicate, move between elements or delete a `$sid`. New elements get **no**
36
- `$sid` — `mapples sync` tags them and rewrites the file. Deleting an element deletes it in
36
+ `$sid` — `npx -y mapples@__CLI_VERSION__ sync` tags them and rewrites the file. Deleting an element deletes it in
37
37
  Creator on the next sync (that is a real delete — say so when you do it).
38
38
  2. **Never touch CLI-owned files**: `_layout.tsx` under the routes dir, `assetMap.ts`, anything
39
39
  in `.mapples/`, and `_depr_*` files. The one exception is the handshake for a new route
@@ -41,7 +41,7 @@ Read `.mapples/config.json` for the real `routesDir` / `pagesDir` / `componentsD
41
41
  `// GENERATED by Mapples` so the CLI adopts its navigator kind and owns it from then on.
42
42
  3. **Never delete `.mapples/head`, `.mapples/base/` or `.mapples/pages.json`** — they are the
43
43
  sync base; losing them turns the next sync into a cold bootstrap.
44
- 4. **Sync after every meaningful step** — `mapples sync --yes --json` — and read the report.
44
+ 4. **Sync after every meaningful step** — `npx -y mapples@__CLI_VERSION__ sync --yes --json` — and read the report.
45
45
  Exit 2 means conflicts (your file was kept as `_depr_<ts>_<name>.tsx.old`, the file was
46
46
  regenerated from Creator: re-apply your intent onto the new file, never restore the old one).
47
47
  5. **A `_depr_` file is a signal, not a resource.** Diff it against the regenerated file, carry
@@ -111,8 +111,8 @@ or editing the file and syncing pushes the tokens to Creator (missing file + emp
111
111
 
112
112
  ## The agent lease
113
113
 
114
- While `/mapples-design` runs, `mapples agent start` holds a lease on the project so Creator shows
115
- "Claude Code is working" and locks its own chat. `mapples agent step` reports progress;
116
- `mapples agent stop` releases. `.mapples/agent.json` exists while the lease is held and labels
114
+ While `/mapples-design` runs, `npx -y mapples@__CLI_VERSION__ agent start` holds a lease on the project so Creator shows
115
+ "Claude Code is working" and locks its own chat. `npx -y mapples@__CLI_VERSION__ agent step` reports progress;
116
+ `npx -y mapples@__CLI_VERSION__ agent stop` releases. `.mapples/agent.json` exists while the lease is held and labels
117
117
  every sync commit "Claude Code: <step>". Exit codes: `3` = the lease is gone (Creator
118
118
  disconnected you or it expired — stop and tell the user), `4` = another agent holds the project.
@@ -2,7 +2,7 @@
2
2
  name: mapples-conventions
3
3
  description: How Mapples-managed files are written — file layout, $sid rules, $actions/$data/$refs, the @mapples/ui vs @mapples/components import table, token strings and Styler dictionaries. Use whenever editing a route file, mapples/pages, mapples/components or mapples/theme.ts in a Mapples-linked Expo app.
4
4
  ---
5
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
5
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
6
6
  # Mapples conventions
7
7
 
8
8
  Read `.claude/mapples.md` first (the summary). This skill is the reference.
@@ -28,7 +28,7 @@ identity: keep it verbatim. Renaming the file renames the route in Creator.
28
28
 
29
29
  - `$sid="nd_…"` is the canvas node id. Opaque: never parse beyond the prefix, never invent,
30
30
  never renumber, never copy to another element, never reuse a deleted one.
31
- - New elements carry **no** `$sid`. `mapples sync` tags them (report: `tagged N new element(s)`)
31
+ - New elements carry **no** `$sid`. `npx -y mapples@__CLI_VERSION__ sync` tags them (report: `tagged N new element(s)`)
32
32
  and rewrites the file with the ids — re-read the file after a sync before editing again.
33
33
  - Wrapping an existing element (moving it inside a new `View`) keeps its `$sid`; the sync sees a
34
34
  move. Removing an element with a `$sid` deletes it in Creator.
@@ -121,13 +121,13 @@ export default function MainLayout() {
121
121
  }
122
122
  ```
123
123
 
124
- `mapples sync --yes` then adopts the directory as a tabs navigator (`<Stack>` → stack,
124
+ `npx -y mapples@__CLI_VERSION__ sync --yes` then adopts the directory as a tabs navigator (`<Stack>` → stack,
125
125
  `<Drawer>` from `expo-router/drawer` → drawer; no layout → stack) and regenerates the file. A
126
126
  layout **without** the header is treated as yours and deprecated on the first sync.
127
127
 
128
128
  ## What not to do
129
129
 
130
- - Do not run `mapples init`, `mapples create`, or edit `.mapples/config.json`.
130
+ - Do not run `npx -y mapples@__CLI_VERSION__ init`, `npx -y mapples@__CLI_VERSION__ create`, or edit `.mapples/config.json`.
131
131
  - Do not restore a `_depr_` file over the regenerated one.
132
132
  - Do not hand-write `$sid`s, `$refs`, or navigator options.
133
133
  - Do not put JSX children text inside `Typography` (`text` prop only), and do not use `Text`.
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: mapples-design
3
- description: Build a Mapples-linked Expo app from a product brief the way the Creator's in-app AI does — design tokens, an implementation plan, one screen per phase from the design playbooks, wiring and a review — writing route files and mapples/theme.ts and pushing each phase with `mapples sync` while holding the project's agent lease. Use when the user asks to design, generate or build the app, its screens or its design system.
3
+ description: Build a Mapples-linked Expo app from a product brief the way the Creator's in-app AI does — design tokens, an implementation plan, one screen per phase from the design playbooks, wiring and a review — writing route files and mapples/theme.ts and pushing each phase with `npx -y mapples@__CLI_VERSION__ sync` while holding the project's agent lease. Use when the user asks to design, generate or build the app, its screens or its design system.
4
4
  argument-hint: "<product brief> [--scope single|minimal|basic|advanced]"
5
5
  ---
6
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
6
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
7
7
  # /mapples-design — build the app from a brief
8
8
 
9
9
  You are the product designer and builder for this app. Your bar is a finished screen a
10
10
  designer would ship — not a wireframe. Everything you make is a file in this repo; every phase
11
- ends with `mapples sync --yes --json`, which pushes it to Creator where the user watches it land.
11
+ ends with `npx -y mapples@__CLI_VERSION__ sync --yes --json`, which pushes it to Creator where the user watches it land.
12
12
 
13
13
  Read `.claude/mapples.md` and the `mapples-conventions` and `mapples-sync` skills before the
14
14
  first file. Reference material for this skill lives next to it:
@@ -24,11 +24,11 @@ first file. Reference material for this skill lives next to it:
24
24
  ## Preconditions
25
25
 
26
26
  1. `.mapples/config.json` must exist (the app is linked). If not: stop and ask the user to run
27
- `npx mapples init --secret <key> --agent claude` — never run it yourself.
28
- 2. `mapples agent status --json`. If `session` is non-null with `status: "active"` and
27
+ `npx -y mapples@__CLI_VERSION__ init --secret <key> --agent claude` — never run it yourself.
28
+ 2. `npx -y mapples@__CLI_VERSION__ agent status --json`. If `session` is non-null with `status: "active"` and
29
29
  `holdsLease` is false, another agent is working on this project: stop and ask whether to take
30
30
  over (`--takeover` disconnects it). Never take over silently.
31
- 3. `mapples sync --yes --json` — be current before designing. Exit 2 here means the repo already
31
+ 3. `npx -y mapples@__CLI_VERSION__ sync --yes --json` — be current before designing. Exit 2 here means the repo already
32
32
  had conflicts: resolve them (see `mapples-sync`) before going on.
33
33
  4. Read `mapples/design.md` if it exists: a previous run's brief, chosen style and plan. Resume
34
34
  from the first phase whose output is missing rather than redoing everything.
@@ -46,17 +46,17 @@ progress log:
46
46
  Start the session as soon as the brief and scope are known, pre-declaring every step title:
47
47
 
48
48
  ```bash
49
- mapples agent start --label "Claude Code" --steps "Brief,Style guides,Design tokens,Plan,Scaffold navigation & screens" --json
49
+ npx -y mapples@__CLI_VERSION__ agent start --label "Claude Code" --steps "Brief,Style guides,Design tokens,Plan,Scaffold navigation & screens" --json
50
50
  ```
51
51
 
52
52
  Exit 4 = busy (see precondition 2). After the plan exists (phase 3), the remaining titles are
53
- declared as they run: `mapples agent step --index 5 --title "Build the Home screen" --status running`
53
+ declared as they run: `npx -y mapples@__CLI_VERSION__ agent step --index 5 --title "Build the Home screen" --status running`
54
54
  creates the step. Wrap **every** phase:
55
55
 
56
56
  ```bash
57
- mapples agent step --index <i> --title "<title>" --status running --json
57
+ npx -y mapples@__CLI_VERSION__ agent step --index <i> --title "<title>" --status running --json
58
58
  # … the work …
59
- mapples agent step --index <i> --title "<title>" --status done --detail "<one line>" --json
59
+ npx -y mapples@__CLI_VERSION__ agent step --index <i> --title "<title>" --status done --detail "<one line>" --json
60
60
  ```
61
61
 
62
62
  Exit 3 from any `agent` or `sync` command = the lease is gone (Creator disconnected you or the
@@ -65,8 +65,8 @@ lease expired). Stop immediately, do not sync again, and tell the user what was
65
65
  Always end the run — success or not:
66
66
 
67
67
  ```bash
68
- mapples agent stop --status done --json
69
- mapples agent stop --status failed --error "<what blocked the run>" --json
68
+ npx -y mapples@__CLI_VERSION__ agent stop --status done --json
69
+ npx -y mapples@__CLI_VERSION__ agent stop --status failed --error "<what blocked the run>" --json
70
70
  ```
71
71
 
72
72
  A phase's syncs are labelled with the running step in Creator's history automatically.
@@ -102,7 +102,7 @@ Follow `reference/design-tokens.md` exactly: write `mapples/theme.ts` (create it
102
102
  file and an empty project is a no-op, so the file is what pushes the tokens). Then
103
103
 
104
104
  ```bash
105
- mapples sync --yes --json
105
+ npx -y mapples@__CLI_VERSION__ sync --yes --json
106
106
  ```
107
107
 
108
108
  Assert: `exitCode` 0, `pushedOps` ≥ 3 (Theme, Typography, Sizing updates) and no
@@ -116,10 +116,10 @@ Follow `reference/plan.md`: decisions, navigation (sections → screens), entry
116
116
  build steps. Append it to `design.md` under `## Plan` **and** declare the remaining steps:
117
117
 
118
118
  ```bash
119
- mapples agent step --index 5 --title "<plan step 1 title>" --status pending --json
119
+ npx -y mapples@__CLI_VERSION__ agent step --index 5 --title "<plan step 1 title>" --status pending --json
120
120
  …
121
- mapples agent step --index <N-1> --title "Wiring" --status pending --json
122
- mapples agent step --index <N> --title "Review" --status pending --json
121
+ npx -y mapples@__CLI_VERSION__ agent step --index <N-1> --title "Wiring" --status pending --json
122
+ npx -y mapples@__CLI_VERSION__ agent step --index <N> --title "Review" --status pending --json
123
123
  ```
124
124
 
125
125
  Show the plan to the user in 6–10 lines; continue unless they object.
@@ -142,7 +142,7 @@ navigation:
142
142
  `pagesDir`.
143
143
 
144
144
  ```bash
145
- mapples sync --yes --json
145
+ npx -y mapples@__CLI_VERSION__ sync --yes --json
146
146
  ```
147
147
 
148
148
  Assert no conflicts, then read `.mapples/pages.json`: every scaffolded file must be a value's
@@ -167,7 +167,7 @@ For each plan step, in order:
167
167
  every existing `$sid` on the element it is on, add none. Obey `reference/layout-contract.md`
168
168
  and the chosen style guide's instructions (they outrank the contract where they differ).
169
169
  Real copy from the brief; picsum photos in every hero/featured/thumb slot.
170
- 4. `mapples sync --yes --json`. Assert `exitCode` 0; read `warnings` and fix what is yours
170
+ 4. `npx -y mapples@__CLI_VERSION__ sync --yes --json`. Assert `exitCode` 0; read `warnings` and fix what is yours
171
171
  (NON_LITERAL_PROP on a value you can make literal, UNKNOWN_ELEMENT). Exit 2 → resolve per
172
172
  `mapples-sync`, sync again.
173
173
  5. Re-read the file (it now carries `$sid`s), run it through `reference/lint-checklist.md`
@@ -199,10 +199,10 @@ path from the entry screen; every screen reachable, every flow with an exit. Syn
199
199
  ## Phase N — Review
200
200
 
201
201
  Load `reference/lint-checklist.md`. For every screen: re-read the file, check each item, fix.
202
- Then `mapples doctor --json` (no `duplicate`/`missing` issues; `drift` is fine before the final
203
- sync) and a final `mapples sync --yes --json` with exit 0. Update `design.md` with a `## Status`
202
+ Then `npx -y mapples@__CLI_VERSION__ doctor --json` (no `duplicate`/`missing` issues; `drift` is fine before the final
203
+ sync) and a final `npx -y mapples@__CLI_VERSION__ sync --yes --json` with exit 0. Update `design.md` with a `## Status`
204
204
  line (screens built, what was cut, the one decision the user may want to change). Then
205
- `mapples agent stop --status done`.
205
+ `npx -y mapples@__CLI_VERSION__ agent stop --status done`.
206
206
 
207
207
  Reply to the user in 3–5 lines: what was built, where to look in Creator, the one decision to
208
208
  revisit. No headings.
@@ -1,8 +1,8 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Component library — what to reach for
3
3
 
4
4
  Two packages, one canvas. Everything below is a registered canvas type: Creator renders it,
5
- its style panel edits it, and `mapples sync` round-trips it. Import primitives from
5
+ its style panel edits it, and `npx -y mapples@__CLI_VERSION__ sync` round-trips it. Import primitives from
6
6
  `@mapples/ui`, the themed library from `@mapples/components`. Anything else you import is an
7
7
  opaque `Custom` node (allowed, but Creator cannot design inside it).
8
8
 
@@ -1,9 +1,9 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Design tokens (phase 2) — `mapples/theme.ts`
3
3
 
4
4
  Ported from the Creator's full-variant generation (`generate.ts` `variantSystem` +
5
5
  `schemas.ts` `designVariantSchema`). The output is a file, not a JSON reply: `mapples/theme.ts`
6
- exports three **literal** objects — `theme`, `typography`, `sizing` — and `mapples sync` pushes
6
+ exports three **literal** objects — `theme`, `typography`, `sizing` — and `npx -y mapples@__CLI_VERSION__ sync` pushes
7
7
  them as the project's Theme, Typography and Sizing documents.
8
8
 
9
9
  ## Rules
@@ -53,7 +53,7 @@ colors are anchors to build around), same fonts, same shape language, same iconF
53
53
  ## The file — copy this shape exactly, fill every value
54
54
 
55
55
  ```ts
56
- // mapples/theme.ts — design tokens, synced with Creator by `mapples sync`.
56
+ // mapples/theme.ts — design tokens, synced with Creator by `npx -y mapples@__CLI_VERSION__ sync`.
57
57
  // Edit values freely; keys you add here are pushed to the canvas style config.
58
58
 
59
59
  export const theme = {
@@ -120,7 +120,7 @@ unreadable and the sync reports `NON_LITERAL_PROP … local style edits ignored`
120
120
  ## After writing
121
121
 
122
122
  ```bash
123
- mapples sync --yes --json
123
+ npx -y mapples@__CLI_VERSION__ sync --yes --json
124
124
  ```
125
125
 
126
126
  Expect `pushedOps` ≥ 3 and `exitCode` 0. The tokens are now the project's; every style token
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Layout contract — every screen
3
3
 
4
4
  Ported from the Creator agent's system prompt (`agent/prompt.ts`: `LAYOUT_CONTRACT`,
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Review checklist — the layout lint, by hand
3
3
 
4
4
  Ported from the Creator's `designLint.ts`, which runs on every AI-authored tree before it is
@@ -43,8 +43,8 @@ photos (the scrim gradient is there), an emoji anywhere, placeholder copy ("Item
43
43
  The squint test: if you blur the screen you should still see WHERE to look first and WHAT is
44
44
  tappable. If everything is even grey noise, raise the focal point and quiet the rest.
45
45
 
46
- Finally, `mapples doctor --json` must show no `duplicate` or `missing` issues, and the last
47
- `mapples sync --yes --json` must exit 0 with no `warnings` of kind `UNKNOWN_ELEMENT_WITH_SID`.
46
+ Finally, `npx -y mapples@__CLI_VERSION__ doctor --json` must show no `duplicate` or `missing` issues, and the last
47
+ `npx -y mapples@__CLI_VERSION__ sync --yes --json` must exit 0 with no `warnings` of kind `UNKNOWN_ELEMENT_WITH_SID`.
48
48
 
49
49
  > Not ported (Creator-only): `strictProps` per-schematic hint lists, the icon-glyph set and
50
50
  > token set validation (both live in the Creator's registry), `aiLint` hints (`selfSpaced`,
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Implementation plan (phase 3)
3
3
 
4
4
  Ported from `generate.ts` `generatePlan` and `schemas.ts` `implementationPlanSchema`. Act as a
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Empty states
3
3
 
4
4
  First-run and no-content screens: icon, copy formula, one clear action.
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Forms and auth
3
3
 
4
4
  Sign in/up and any input form: field anatomy, grouping, validation, CTA.
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Home / dashboard
3
3
 
4
4
  Home screens: greeting header, search, featured card, rails and lists.
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Lists and detail screens
3
3
 
4
4
  List rows, cards, detail screens with hero, meta pills and sticky CTA.
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Microcopy
3
3
 
4
4
  Copy that sells: verbs on buttons, benefit headlines, product voice, error tone.
@@ -1,10 +1,10 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Navigation chrome
3
3
 
4
4
  Headers, tab bars, chips, badges and breadcrumbs: navigator options vs content-sized elements.
5
5
 
6
6
  Two kinds of chrome, two mechanisms — never mix them up:
7
- - Stack headers and tab bars belong to the NAVIGATOR. In this version they are set in Creator (navigator options: header visible/title/colors/back, tab bar colors/labels; route options: title, tab label, tab icon asset) and land in the CLI-owned `_layout.tsx` on the next sync — you cannot set them from code, and you must not edit the layouts. Describe the intended chrome per section in `design.md` under `## Navigation chrome` (which sections hide the header, tab labels and icon concepts, modal routes) so the user applies it. A hand-built header row on a screen whose stack also shows a header gives two headers: design for one — the default root layout hides headers (`headerShown: false`), so in-content `TopAppBar` is the norm for apps born from `mapples create`.
7
+ - Stack headers and tab bars belong to the NAVIGATOR. In this version they are set in Creator (navigator options: header visible/title/colors/back, tab bar colors/labels; route options: title, tab label, tab icon asset) and land in the CLI-owned `_layout.tsx` on the next sync — you cannot set them from code, and you must not edit the layouts. Describe the intended chrome per section in `design.md` under `## Navigation chrome` (which sections hide the header, tab labels and icon concepts, modal routes) so the user applies it. A hand-built header row on a screen whose stack also shows a header gives two headers: design for one — the default root layout hides headers (`headerShown: false`), so in-content `TopAppBar` is the norm for apps born from `npx -y mapples@__CLI_VERSION__ create`.
8
8
  - Tab icons require an icon ASSET in Creator; an `Icon` element or a glyph name does nothing there. Note the icon concept per tab in `design.md`; keep tab labels short and distinct — never fake a tab bar from a row of buttons on the page.
9
9
  - Everything inside the content area (chips, pills, badges, breadcrumbs, in-content title rows) is a CONTENT-SIZED library element: never width 100% inside a row or a horizontal scroll; never a `Button` where a `Chip` is meant.
10
10
 
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Onboarding flow
3
3
 
4
4
  Welcome/intro flows: 2–3 value-prop screens with hero, dots and CTA arc.
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Screen flow wiring
3
3
 
4
4
  Wiring flows: every CTA connected, entries set, a walkable prototype.
@@ -30,7 +30,7 @@ The contract:
30
30
  - Entries: the app must open on the value, not on a settings screen. The initial section/route is a navigator option set in Creator — state the intended entry in `design.md` under `## Navigation chrome` (the scaffold's `index.tsx` of the initial section is the natural default).
31
31
  - Presentation: multi-screen interruptions and create-flows present as modal ROUTES (a navigator option — describe them in `design.md`); browsing pushes. Confirmations, pickers and quick details stay on the screen as `Dialog` / `BottomSheet` / `ActionSheet` with `visible={false}`, or bound through `$data={{ visible: { key: 'vars.<name>', active: true } }}` when the project has the variable — an overlay nobody can open or close is a dead end.
32
32
 
33
- Verify like a user: after wiring, walk the golden path mentally from the entry screen — first open → core value → primary action → done. Name the connection chain; every hop must exist. Then `mapples sync --yes --json` and check that `pushedOps` covers every `$actions` you added (an action on an element without a `$sid` yet lands on the sync after the element is tagged).
33
+ Verify like a user: after wiring, walk the golden path mentally from the entry screen — first open → core value → primary action → done. Name the connection chain; every hop must exist. Then `npx -y mapples@__CLI_VERSION__ sync --yes --json` and check that `pushedOps` covers every `$actions` you added (an action on an element without a `$sid` yet lands on the sync after the element is tagged).
34
34
 
35
35
  Pitfalls: wiring only the happy screen and leaving detail pages orphaned; two buttons navigating to the same place with different labels; a tab bar plus in-content navigation to the same sections.
36
36
 
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Settings and profile
3
3
 
4
4
  Settings and profile screens: grouped cards, icon rows, switches, sign out.
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Stats and progress
3
3
 
4
4
  Numbers, balances, goals: stat cards, progress bars, streaks — no fake charts.
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Visual hierarchy
3
3
 
4
4
  Cross-screen craft: one focal point, the type ladder, grouping, squint-test review.
@@ -1,4 +1,4 @@
1
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
1
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
2
2
  # Style guides (phase 1)
3
3
 
4
4
  Ported from the Creator's design setup (`service--mapples-ai` `design/generate.ts`): first art
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: mapples-sync
3
- description: Running `mapples sync` from an agent — the --yes --json invocation, the JSON report fields, exit codes 0/1/2/3/4, and what to do on conflicts, deprecated files, NON_LITERAL_PROP warnings, read-scoped keys and offline runs. Use before and after every sync in a Mapples-linked app.
3
+ description: Running `npx -y mapples@__CLI_VERSION__ sync` from an agent — the --yes --json invocation, the JSON report fields, exit codes 0/1/2/3/4, and what to do on conflicts, deprecated files, NON_LITERAL_PROP warnings, read-scoped keys and offline runs. Use before and after every sync in a Mapples-linked app.
4
4
  ---
5
- <!-- GENERATED by Mapples __CLI_VERSION__ — re-run mapples agent install --force to refresh -->
6
- # mapples sync
5
+ <!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
6
+ # npx -y mapples@__CLI_VERSION__ sync
7
7
 
8
- `mapples sync` is the only way changes reach Creator. Run it from the app root as
8
+ `npx -y mapples@__CLI_VERSION__ sync` is the only way changes reach Creator. Run it from the app root as
9
9
 
10
10
  ```bash
11
- mapples sync --yes --json
11
+ npx -y mapples@__CLI_VERSION__ sync --yes --json
12
12
  ```
13
13
 
14
14
  - `--yes` accepts every adoption proposal (new route files, pages, components) without a prompt —
@@ -16,8 +16,9 @@ mapples sync --yes --json
16
16
  leave new files untouched (e.g. a helper you do not want on the canvas yet).
17
17
  - `--json` prints one JSON report and nothing else. Always parse it; never rely on the exit
18
18
  code alone.
19
- - The CLI is on the app's `devDependencies`; use `npx mapples …` (or `yarn mapples …`) when the
20
- bare command is not on the PATH.
19
+ - Always run the CLI exactly as written here, pinned to the version that generated these skills:
20
+ `npx -y mapples@__CLI_VERSION__ …`. Never a bare `mapples` and never an unpinned `npx mapples` — npm's
21
+ `latest` tag can be an older CLI without these commands, and a fallback silently runs it.
21
22
 
22
23
  ## What one run does
23
24
 
@@ -61,8 +62,8 @@ mapples sync --yes --json
61
62
  | 0 | synced | read `pushedOps`, `files`, `warnings` |
62
63
  | 1 | error (bad key, malformed file, server refusal) | read stderr; fix the cause; never retry blindly |
63
64
  | 2 | synced **with conflicts** | for every `conflicts[]` entry: diff `deprecatedTo` against the regenerated file, re-apply your intent onto the new file, sync again |
64
- | 3 | agent lease gone (from `mapples agent …`) | stop working, tell the user Creator disconnected the agent |
65
- | 4 | project busy (from `mapples agent start`) | another agent session holds the project — ask before `--takeover` |
65
+ | 3 | agent lease gone (from `npx -y mapples@__CLI_VERSION__ agent …`) | stop working, tell the user Creator disconnected the agent |
66
+ | 4 | project busy (from `npx -y mapples@__CLI_VERSION__ agent start`) | another agent session holds the project — ask before `--takeover` |
66
67
 
67
68
  ## After a sync
68
69
 
@@ -83,7 +84,7 @@ mapples sync --yes --json
83
84
  only read. Ask the user for a read & write key (Creator → Project → Settings → API keys) and
84
85
  to restart with `MAPPLES_SECRET=<key> claude`; do not edit `.mapples/secret` yourself.
85
86
  - `no .mapples/config.json` — you are not in the app root, or the app is not linked; do not run
86
- `mapples init` on your own — ask.
87
+ `npx -y mapples@__CLI_VERSION__ init` on your own — ask.
87
88
  - `HEAD_MISMATCH … could not be committed after 5 rebases` — Creator is being edited at the same
88
89
  time; wait a moment and sync again.
89
90
 
@@ -35,16 +35,17 @@
35
35
  "@react-native-vector-icons/octicons": "^21.1.0",
36
36
  "@react-native-vector-icons/simple-line-icons": "^13.1.0",
37
37
  "@react-native-vector-icons/zocial": "^13.1.0",
38
- "expo": "~57.0.19",
39
- "expo-constants": "~57.0.17",
40
- "expo-font": "~57.0.3",
41
- "expo-linear-gradient": "~57.0.1",
42
- "expo-linking": "~57.0.9",
43
- "expo-router": "~57.0.18",
44
- "expo-splash-screen": "~57.0.8",
38
+ "expo": "~57.0.23",
39
+ "expo-constants": "~57.0.18",
40
+ "expo-font": "~57.0.4",
41
+ "expo-image": "~57.0.5",
42
+ "expo-linear-gradient": "~57.0.2",
43
+ "expo-linking": "~57.0.10",
44
+ "expo-router": "~57.0.21",
45
+ "expo-splash-screen": "~57.0.9",
45
46
  "expo-status-bar": "~57.0.1",
46
- "expo-system-ui": "~57.0.3",
47
- "expo-web-browser": "~57.0.2",
47
+ "expo-system-ui": "~57.0.4",
48
+ "expo-web-browser": "~57.0.3",
48
49
  "jsbarcode": "^3.12.3",
49
50
  "react": "19.2.3",
50
51
  "react-dom": "19.2.3",
@@ -54,7 +55,7 @@
54
55
  "react-native-reanimated": "4.5.1",
55
56
  "react-native-safe-area-context": "~5.7.0",
56
57
  "react-native-screens": "~4.26.0",
57
- "react-native-svg": "15.15.5",
58
+ "react-native-svg": "15.15.4",
58
59
  "react-native-web": "~0.21.0",
59
60
  "react-native-worklets": "0.10.1"
60
61
  },