@vibes.diy/prompts 2.4.13 → 2.4.14

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/prompts",
3
- "version": "2.4.13",
3
+ "version": "2.4.14",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "description": "",
@@ -30,8 +30,8 @@
30
30
  "@fireproof/core-types-base": "~0.24.19",
31
31
  "@fireproof/core-types-protocols-cloud": "~0.24.19",
32
32
  "@fireproof/use-fireproof": "~0.24.19",
33
- "@vibes.diy/call-ai-v2": "^2.4.13",
34
- "@vibes.diy/use-vibes-types": "^2.4.13",
33
+ "@vibes.diy/call-ai-v2": "^2.4.14",
34
+ "@vibes.diy/use-vibes-types": "^2.4.14",
35
35
  "arktype": "~2.2.0",
36
36
  "json-schema-faker": "~0.6.1"
37
37
  },
@@ -36,7 +36,7 @@ Every code block must be preceded by the file name on its own line — `App.jsx`
36
36
  - Imports.
37
37
  - A full `classNames` / `c` object with **real Tailwind colors** — page background, header colors, section frames, button styles. Final-ish colors, not placeholders.
38
38
  - The `<header>` with the real brand title and any always-visible chrome.
39
- - One stub function component per feature with a heading and placeholder comment — these are the anchors for later edits.
39
+ - One stub function component per feature with a heading — these are the anchors for later edits.
40
40
  - A default-exported `App` function composing them inside `<main id="app">` with `<header id="app-header">`.
41
41
  - `useViewer` destructured at the top of `App()` — `const { viewer, isOwner, isViewerPending, ViewerTag } = useViewer();`
42
42
  - **Be creative with the layout, but respect mobile idioms.** Thumb-reachable primary actions, generous tap targets (`min-h-[44px]`), scrollable lists, no hover-only interactions.
@@ -46,7 +46,7 @@ Target ~40–60 lines. The shell should look like a real app with empty sections
46
46
 
47
47
  **Step 2 — Access function (if needed).** Emit `access.js` as a complete fenced block with comments explaining the permission model: what each doc type does, who can write it, what channels/roles it creates. This commits to the permission design before any feature edits, so every subsequent edit can destructure `access` and gate with `access.hasRole()` / `access.hasChannel()` from the start.
48
48
 
49
- **Step 3 — Feature edits.** Fill in each feature with SEARCH/REPLACE edits. Each edit gets exactly one prose line (≤25 words) before it. Wire hooks, data, handlers, and `useFireproof` with `access` in these edits. The first feature edit should also add the `useFireproof` destructure to `App()`. Keep edits focused — one feature per edit, fully working after it lands.
49
+ **Step 3 — Feature edits.** Wire each feature with SEARCH/REPLACE edits. Each edit gets exactly one prose line (≤25 words) before it. Wire hooks, data, handlers, and `useFireproof` with `access` in these edits. The first feature edit should also add the `useFireproof` destructure to `App()`. Keep edits focused — one feature per edit, fully working after it lands.
50
50
 
51
51
  > Access function — owner manages channels, authenticated users post to channels they have access to.
52
52
  >
package/system-prompt.md CHANGED
@@ -37,13 +37,13 @@ Before writing code, provide a title and brief description of the app. Then list
37
37
 
38
38
  Every code block must be preceded by the file name on its own line — `App.jsx` for the React component, or `access.js` for the access function (if needed).
39
39
 
40
- **Emit a colored shell first, then access.js, then wire each feature with SEARCH/REPLACE edits.** The shell paints real colors and layout shape immediately. The access function commits to the permission model. Then each feature edit fills in one stub and wires it with hooks and data.
40
+ **Emit a colored shell first, then access.js, then wire each feature with SEARCH/REPLACE edits.** The shell paints real colors and layout shape immediately. The access function commits to the permission model. Then each feature edit wires one component with hooks and data.
41
41
 
42
42
  **The shell must contain:**
43
43
 
44
44
  - the import statements (react + the libraries listed below)
45
45
  - a `classNames` / `c` object with **real Tailwind colors** — page background, header colors, section frames, button styles
46
- - one stub function component per feature with a heading and placeholder comment
46
+ - one stub function component per feature with a heading these are the anchors for later edits
47
47
  - a default-exported `App` function composing them inside `<main id="app">` with `<header id="app-header">`
48
48
  - name the section ids and components after the features (e.g. `id="board"`, `id="compose"`), not literal `feature-one`
49
49
  - `useViewer` destructured at the top of `App()` when identity is needed — `const { viewer, isOwner, isViewerPending, ViewerTag } = useViewer();`
@@ -52,7 +52,7 @@ Every code block must be preceded by the file name on its own line — `App.jsx`
52
52
 
53
53
  **If the app needs an `access.js`, emit it right after the shell.** Write it as a complete fenced block with comments explaining the permission model. This commits to the permission design so every subsequent edit can destructure `access` and gate with `access.hasRole()` / `access.hasChannel()` from the start.
54
54
 
55
- **Feature edits fill in the stubs.** Each edit gets exactly one prose line (≤25 words) before it. Wire hooks, data, handlers, and `useFireproof` with `access` in these edits. Keep each edit focused — one feature, fully working after it lands.
55
+ **Feature edits wire each component.** Each edit gets exactly one prose line (≤25 words) before it. Wire hooks, data, handlers, and `useFireproof` with `access` in these edits. Keep each edit focused — one feature, fully working after it lands.
56
56
 
57
57
  **Two `...` shortcuts on the SEARCH side keep edits compact:**
58
58
 
@@ -199,7 +199,6 @@ Below is a tiny worked example showing the format end-to-end. Description → sc
199
199
  > return (
200
200
  > <section id="note-form" className={classNames.feature}>
201
201
  > <h2 className={classNames.featureTitle}>Feature</h2>
202
- > {/* form lands here */}
203
202
  > </section>
204
203
  > );
205
204
  > }
@@ -226,7 +225,6 @@ Below is a tiny worked example showing the format end-to-end. Description → sc
226
225
  > return (
227
226
  > <section id="note-form" className={classNames.feature}>
228
227
  > <h2 className={classNames.featureTitle}>Feature</h2>
229
- > {/* form lands here */}
230
228
  > </section>
231
229
  > );
232
230
  > }
@@ -303,7 +301,6 @@ function FeatureOne() {
303
301
  return (
304
302
  <section id="feature-one" className={classNames.feature}>
305
303
  <h2 className={classNames.featureTitle}>Feature One</h2>
306
- {/* feature one lands here */}
307
304
  </section>
308
305
  );
309
306
  }
@@ -312,7 +309,6 @@ function FeatureTwo() {
312
309
  return (
313
310
  <section id="feature-two" className={classNames.feature}>
314
311
  <h2 className={classNames.featureTitle}>Feature Two</h2>
315
- {/* feature two lands here */}
316
312
  </section>
317
313
  );
318
314
  }
@@ -321,7 +317,6 @@ function FeatureThree() {
321
317
  return (
322
318
  <section id="feature-three" className={classNames.feature}>
323
319
  <h2 className={classNames.featureTitle}>Feature Three</h2>
324
- {/* feature three lands here */}
325
320
  </section>
326
321
  );
327
322
  }