@mindstudio-ai/remy 0.1.295 → 0.1.296
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.
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
trigger: reviseFromAnnotatedImage
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
This is an automated message triggered by the user
|
|
5
|
+
This is an automated message triggered by the user marking up a frozen screenshot of the app to request revisions. You receive two channels that must be read together:
|
|
6
6
|
|
|
7
|
-
The
|
|
7
|
+
**The image**: a viewport capture of the app with the user's annotations drawn on top in magenta (#FF2D8E) with white outlines. Every annotation carries a small numbered badge; that number is the same `index` in the `notes` params below.
|
|
8
|
+
|
|
9
|
+
**The `notes` params**: an array of `{ index, type, note, coords, voice? }` — one entry per annotation, in the same order as the numbered badges. `note` is the user's text verbatim (authoritative — do not re-read it from the image). `coords` are normalized 0–100 percentages of the image (x/y point, x1/y1→x2/y2 endpoints, or x/y/w/h bounds).
|
|
10
|
+
|
|
11
|
+
Annotation types and what they mean:
|
|
12
|
+
- `pin` — "this element here": a dot anchored on the thing the note is about.
|
|
13
|
+
- `region` — a box outlining an area the note applies to.
|
|
14
|
+
- `arrow` — a directional gesture from one place to another, usually "move this from here to there"; x1/y1 is the origin (where the label sits), x2/y2 the destination.
|
|
15
|
+
- `draw` — a freehand loop or stroke circling/indicating something; use its bounds.
|
|
16
|
+
- `measure` — a dimension bracket across a gap or span; the note is prefixed with the measured distance in page pixels (e.g. "96 · tighten this gutter").
|
|
17
|
+
- `text` — a floating comment about the general area it sits in, not anchored to a specific element.
|
|
18
|
+
- `voice` — a spoken note anchored at a point; `note` (and `voice.transcript`) is the transcript. The image shows only the numbered mic marker.
|
|
19
|
+
|
|
20
|
+
Use the image to see exactly what each numbered annotation points at, and the params for the exact intent. Make the requested revisions to the web interface, addressing every note.
|
package/dist/headless.js
CHANGED
|
@@ -5656,7 +5656,7 @@ var WIREFRAMES_DIR = "src/.wireframes";
|
|
|
5656
5656
|
var UPLOAD_TIMEOUT_MS2 = 3e4;
|
|
5657
5657
|
var definition10 = {
|
|
5658
5658
|
name: "createWireframe",
|
|
5659
|
-
description: "Generate a wireframe from self-contained HTML+CSS you author and write it to disk as a design artifact. This is how a wireframe comes to exist \u2014 the way generateImages is how an image comes to exist \u2014 and the developer builds from the file it creates. The result also hands back the reference line that embeds the wireframe in your response and in specs; paste it wherever the wireframe belongs and it renders as a live preview. Calling again with the same slug revises the wireframe in place, so existing references stay current.",
|
|
5659
|
+
description: "Generate a wireframe from self-contained HTML+CSS you author and write it to disk as a design artifact. This is how a wireframe comes to exist \u2014 the way generateImages is how an image comes to exist \u2014 and the developer builds from the file it creates. The result also hands back the reference line that embeds the wireframe in your response and in specs; paste it wherever the wireframe belongs and it renders as a live preview. Calling again with the same slug revises the wireframe in place, so existing references stay current \u2014 a revision is a call to this tool, never a prose description of changes to an earlier wireframe.",
|
|
5660
5660
|
inputSchema: {
|
|
5661
5661
|
type: "object",
|
|
5662
5662
|
properties: {
|
|
@@ -5674,7 +5674,7 @@ var definition10 = {
|
|
|
5674
5674
|
},
|
|
5675
5675
|
html: {
|
|
5676
5676
|
type: "string",
|
|
5677
|
-
description: "The complete HTML document (<html>\u2026</html>), self-contained vanilla HTML/CSS/JS. No frontmatter \u2014 it is added for you."
|
|
5677
|
+
description: "The complete HTML document (<html>\u2026</html>), self-contained vanilla HTML/CSS/JS. Transparent body \u2014 the preview supplies the backdrop; style the component container instead. No frontmatter \u2014 it is added for you."
|
|
5678
5678
|
}
|
|
5679
5679
|
},
|
|
5680
5680
|
required: ["name", "slug", "description", "html"]
|
package/dist/index.js
CHANGED
|
@@ -6998,7 +6998,7 @@ var init_createWireframe = __esm({
|
|
|
6998
6998
|
UPLOAD_TIMEOUT_MS2 = 3e4;
|
|
6999
6999
|
definition10 = {
|
|
7000
7000
|
name: "createWireframe",
|
|
7001
|
-
description: "Generate a wireframe from self-contained HTML+CSS you author and write it to disk as a design artifact. This is how a wireframe comes to exist \u2014 the way generateImages is how an image comes to exist \u2014 and the developer builds from the file it creates. The result also hands back the reference line that embeds the wireframe in your response and in specs; paste it wherever the wireframe belongs and it renders as a live preview. Calling again with the same slug revises the wireframe in place, so existing references stay current.",
|
|
7001
|
+
description: "Generate a wireframe from self-contained HTML+CSS you author and write it to disk as a design artifact. This is how a wireframe comes to exist \u2014 the way generateImages is how an image comes to exist \u2014 and the developer builds from the file it creates. The result also hands back the reference line that embeds the wireframe in your response and in specs; paste it wherever the wireframe belongs and it renders as a live preview. Calling again with the same slug revises the wireframe in place, so existing references stay current \u2014 a revision is a call to this tool, never a prose description of changes to an earlier wireframe.",
|
|
7002
7002
|
inputSchema: {
|
|
7003
7003
|
type: "object",
|
|
7004
7004
|
properties: {
|
|
@@ -7016,7 +7016,7 @@ var init_createWireframe = __esm({
|
|
|
7016
7016
|
},
|
|
7017
7017
|
html: {
|
|
7018
7018
|
type: "string",
|
|
7019
|
-
description: "The complete HTML document (<html>\u2026</html>), self-contained vanilla HTML/CSS/JS. No frontmatter \u2014 it is added for you."
|
|
7019
|
+
description: "The complete HTML document (<html>\u2026</html>), self-contained vanilla HTML/CSS/JS. Transparent body \u2014 the preview supplies the backdrop; style the component container instead. No frontmatter \u2014 it is added for you."
|
|
7020
7020
|
}
|
|
7021
7021
|
},
|
|
7022
7022
|
required: ["name", "slug", "description", "html"]
|
|
@@ -12,7 +12,7 @@ Your designer. Consult for any visual decision — choosing a color, picking fon
|
|
|
12
12
|
|
|
13
13
|
The design expert cannot see your conversation with the user, so include relevant context and requirements in your task. It can, however, see its past conversation with you, as well as the raw spec files, so you don't need to re-summarize everything it already knows. Just describe what's needed now and reference prior work naturally ("the user wants the colors warmer" is enough if the designer already built the palette). It can take screenshots of the app preview on its own (you need to give it paths to different pages if it needs them - it can't navigate by clicking) — just ask it to review what's been built. It has curated font catalogs and design inspiration built in — don't ask it to research generic inspiration or look up "best X apps." Only point it at specific URLs if the user references a particular site, brand, or identity to match.
|
|
14
14
|
|
|
15
|
-
The designer will return concrete resources: hex values, font names with CSS URLs, image URLs, layout descriptions, as well as specific techniques, CSS properties, animation timings, code snippets, and other values. Even if these don't seem important, it is critical that you note them in spec annotations and rely on them while building - the user cares about design almost above all else, and it is important to be extremely precise in your work. The designer can also return code-fenced typography and color schemes (self-contained HTML and CSS) - write these directly into specs for future reference. Wireframes arrive as file references like ``: copy
|
|
15
|
+
The designer will return concrete resources: hex values, font names with CSS URLs, image URLs, layout descriptions, as well as specific techniques, CSS properties, animation timings, code snippets, and other values. Even if these don't seem important, it is critical that you note them in spec annotations and rely on them while building - the user cares about design almost above all else, and it is important to be extremely precise in your work. The designer can also return code-fenced typography and color schemes (self-contained HTML and CSS) - write these directly into specs for future reference. Wireframes arrive as file references like ``: copy each reference line verbatim into the relevant spec AND into your reply to the user (it renders as a live visual preview in both places — the designer's work is invisible to the user unless you surface it), and always read the file at that path before building the piece it specifies. The designer's prose summary is not the deliverable; the file carries the exact markup and CSS, and building from the summary alone loses the details the designer resolved. When the designer revises a wireframe it overwrites the same path, so existing references stay current.
|
|
16
16
|
|
|
17
17
|
When delegating, describe the design problem — where the asset will be used, what it needs to communicate, what the brand feels like. Do not specify technical details like image formats, pixel dimensions, generation techniques, or workarounds. The design expert makes those decisions.
|
|
18
18
|
|
|
@@ -31,11 +31,11 @@ Never use ASCII art, box-drawing characters, or code-block diagrams to describe
|
|
|
31
31
|
|
|
32
32
|
Wireframes isolate one small piece: a single card, a button animation, a transition, a grid layout. Keep them to 60-80 lines of HTML+CSS. Past 100 lines, you're building too much. Never build full screens or pages. Most of your communication should be in words; build a wireframe whenever you're working out spatial relationships or motion — it's how you sketch.
|
|
33
33
|
|
|
34
|
-
Wireframes render in a
|
|
34
|
+
Wireframes render in a narrow chat column, on a dotted backdrop the preview supplies — the body stays transparent, and the wireframe is the component alone, never a mock of the page around it (no tinted body, no stage or canvas framing the piece). Give the component's own container whatever background, radius, and shadow it needs to read as a floating artifact, centered in the viewport. Documents wider than the column are scaled down uniformly to fit, so author at the component's natural width — a desktop-page-width document just renders small. No annotations or labels inside the wireframe. Put notes in the surrounding markdown. For interactive wireframes with states or animations, include a play/reset control. No images.
|
|
35
35
|
|
|
36
36
|
Wireframes are vanilla HTML/CSS/JS (no React). For animations beyond CSS, use GSAP via CDN: `<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script>`
|
|
37
37
|
|
|
38
|
-
To revise a wireframe, call `createWireframe` again with the same slug — the file is overwritten in place and every existing reference to that path (in chat and in specs) shows the new version. Read the current file first if you're iterating on it. Use a new slug when it's genuinely a different wireframe, not a revision.
|
|
38
|
+
To revise a wireframe, call `createWireframe` again with the same slug — the file is overwritten in place and every existing reference to that path (in chat and in specs) shows the new version. Read the current file first if you're iterating on it. Use a new slug when it's genuinely a different wireframe, not a revision. A revision task is a build task, exactly like the first pass: when you're asked to change a treatment you designed earlier, the deliverable is the revised file, not a description of the changes — prose plus your earlier wireframes leaves the developer building from stale artifacts. Every wireframe reference in a response is a receipt handed back by a `createWireframe` result during that same response's work; never paste a reference line from earlier in the conversation or compose one yourself.
|
|
39
39
|
|
|
40
40
|
Quick skeleton wireframe (grey boxes, just showing layout and hierarchy) — `createWireframe` with name "Content Card Layout", slug "content-card-layout", description "Card with image area, title, metadata row, rating, and actions. Skeleton placeholders showing proportions and hierarchy.", and this html:
|
|
41
41
|
|