@easysociable/cli 0.1.33 → 0.1.35
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
|
@@ -20,7 +20,8 @@ What only the user has never blocks the Run; it becomes a visible, replaceable
|
|
|
20
20
|
stand-in they fill in Studio:
|
|
21
21
|
|
|
22
22
|
- their Brand (name, handle, avatar) → bound samples (step 1);
|
|
23
|
-
- their own material (screenshots, photos) →
|
|
23
|
+
- their own material (screenshots, photos, results) → a finished stand-in now,
|
|
24
|
+
and one "swap in yours" line in the final message (step 5).
|
|
24
25
|
|
|
25
26
|
## Command output (`--json`)
|
|
26
27
|
|
|
@@ -35,7 +36,8 @@ Read results from these paths; don't guess:
|
|
|
35
36
|
| `formulas get` | `data` (`beats[]`, `looks[].layouts`) |
|
|
36
37
|
| `templates references` | a top-level array (`familyId`, `name`, `roles`, `style`, `requiresImage`) |
|
|
37
38
|
| `templates source` | top level: `familyId`, `canvas`, `studioJson` |
|
|
38
|
-
| `icons search --query <word>` | icon list for the word |
|
|
39
|
+
| `icons search --query <word>` | icon list for the word (ids, no SVG) |
|
|
40
|
+
| `icons get --id <id> --idempotency-key <any-unique-string>` | `canonicalSvg` to inline |
|
|
39
41
|
| `images upload --path …` | `data[]` (`path`, `asset.url`, or `error`); exit 1 if any failed |
|
|
40
42
|
| `slideshows create` | top level: `id`, `studioUrl` |
|
|
41
43
|
|
|
@@ -75,9 +77,12 @@ asks the user for exactly those fields and updates every page when they fill the
|
|
|
75
77
|
Research the topic from primary sources (official announcement, docs,
|
|
76
78
|
reputable press). Keep a source URL for every fact. Drop claims you can only
|
|
77
79
|
find in secondary blogs. Never invent numbers, dates, quotes or features.
|
|
80
|
+
A first-person result ("I tested", "亲测", "it replied …") is a fact too: write
|
|
81
|
+
it only when the user's material or a knowledge page records it. Otherwise
|
|
82
|
+
write the step as an instruction ("send it this prompt"), not a report.
|
|
78
83
|
|
|
79
|
-
|
|
80
|
-
can be a page's focal point (a product screenshot, a chart, a figure from the
|
|
84
|
+
**Evidence images** are their own search, whatever the facts came from: real
|
|
85
|
+
pictures that can be a page's focal point (a product screenshot, a chart, a figure from the
|
|
81
86
|
paper). Aim for 2–4 per Run, the cover first. A page built around a real image
|
|
82
87
|
reads as proof and looks different from its neighbours; a text-only deck does
|
|
83
88
|
neither.
|
|
@@ -87,8 +92,10 @@ neither.
|
|
|
87
92
|
figure as its own file); openly licensed images (Wikimedia Commons, CC0/CC BY).
|
|
88
93
|
Never image search, stock sites, news-site photos, other creators' posts or
|
|
89
94
|
anything watermarked.
|
|
90
|
-
-
|
|
91
|
-
|
|
95
|
+
- Start from the subject itself: open its official site, docs or help pages,
|
|
96
|
+
launch post and launch video (a knowledge page's source links are a good
|
|
97
|
+
start). Take image URLs from those pages (`og:image`, images in the body)
|
|
98
|
+
and download them: `curl -sL -o assets/<name>.png <url>`. PNG, JPEG or
|
|
92
99
|
WebP only (convert anything else to PNG), ≤ 20 MB.
|
|
93
100
|
- Launch posts often show the product only in demo videos: pull frames of the
|
|
94
101
|
real UI straight from the video URL, without downloading the whole file
|
|
@@ -101,12 +108,11 @@ neither.
|
|
|
101
108
|
area, carries a watermark, or shows a recognisable person who is not the
|
|
102
109
|
subject.
|
|
103
110
|
- Keep each kept image's source URL for the final message.
|
|
104
|
-
-
|
|
105
|
-
|
|
111
|
+
- Done when the official site, docs and launch post/video were checked.
|
|
112
|
+
Nothing usable → fine, step 5 still gives every page a finished image.
|
|
106
113
|
|
|
107
114
|
When the user started from a Content Engine run, facts come from its knowledge
|
|
108
|
-
pages (see `easysociable-content`)
|
|
109
|
-
collect evidence images for the run's subject as above.
|
|
115
|
+
pages (see `easysociable-content`); evidence images are still searched as above.
|
|
110
116
|
|
|
111
117
|
### 3. Hook and structure
|
|
112
118
|
|
|
@@ -166,8 +172,9 @@ Structure (step 3) and look are chosen separately. The look comes from a
|
|
|
166
172
|
|
|
167
173
|
Don't filter out references that need an image just because you have none:
|
|
168
174
|
most covers in the library have an image area. Use one and fill that area
|
|
169
|
-
without a photo (references/REFERENCES.md, "A reference's image area").
|
|
170
|
-
|
|
175
|
+
without a photo (references/REFERENCES.md, "A reference's image area"). Decide
|
|
176
|
+
each page's image (step 5) while you pick its reference: a diagram needs the
|
|
177
|
+
image area, a large evidence image needs a large one.
|
|
171
178
|
`--no-image` is for when you specifically want designs drawn with type alone.
|
|
172
179
|
Read each chosen design with `easysociable templates source --family <familyId> --json`
|
|
173
180
|
and adapt it as in `references/REFERENCES.md` ("Adapting a reference" and
|
|
@@ -190,10 +197,11 @@ Say 'same as this'. Want another look? Say 'different look'."
|
|
|
190
197
|
- Real products, apps, people, data → real screenshots or photos only. Never
|
|
191
198
|
an AI-generated picture of a real product UI.
|
|
192
199
|
- Concept / mood / background → generate one if this environment has an
|
|
193
|
-
image-generation tool; otherwise
|
|
200
|
+
image-generation tool; otherwise a diagram (3 below).
|
|
194
201
|
- Generated images never contain text: all words stay in editable text layers.
|
|
195
202
|
(A real screenshot or figure keeps its own text.)
|
|
196
|
-
-
|
|
203
|
+
- Every image area ships finished: never a grey placeholder, never "add
|
|
204
|
+
later". Fill it with the first of these you can do:
|
|
197
205
|
1. The user's own image, when they gave one.
|
|
198
206
|
2. An evidence image from step 2. Upload it
|
|
199
207
|
(all at once: `easysociable images upload --path assets/a.png assets/b.jpg --json`)
|
|
@@ -201,25 +209,19 @@ Say 'same as this'. Want another look? Say 'different look'."
|
|
|
201
209
|
Crop and scale it (`objectFit: 'cover'`, `objectPosition`), never alter
|
|
202
210
|
what it shows. To point at something in it, add a separate element on top
|
|
203
211
|
(a red ellipse border, an underline bar) so the user can move or delete it.
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
the upload button to replace it. Markup and SVG in
|
|
218
|
-
`references/REFERENCES.md` ("Image placeholder").
|
|
219
|
-
5. Anything else → fill the area from the content or delete it
|
|
220
|
-
(`references/REFERENCES.md`, "A reference's image area").
|
|
221
|
-
- List every placeholder in the final message with how to get it
|
|
222
|
-
("page 2: Doubao reply — say … in voice mode and screenshot the correction").
|
|
212
|
+
A screen you can capture yourself right now (a browser tool, no login,
|
|
213
|
+
no region block) counts too; never type a password or stop to ask.
|
|
214
|
+
3. A diagram drawn from the page's own words (references/REFERENCES.md,
|
|
215
|
+
"A reference's image area"): a prompt card for a tutorial step, A vs B
|
|
216
|
+
cards, ✗ / ✓, a 3–4 step flow, a big number. Always possible.
|
|
217
|
+
- Never: a drawn imitation of a real product's UI, an invented AI reply or
|
|
218
|
+
screenshot, an invented number without "示例 / example" on it, an image from
|
|
219
|
+
someone else's post.
|
|
220
|
+
- What only the user can add (their screenshot after logging in, their
|
|
221
|
+
dashboard, their results) is an upgrade, not a gap: list it at the end of
|
|
222
|
+
the final message, page by page, with how to get it and what the copy may
|
|
223
|
+
then say ("p2–4: log in to Doubao, send the prompt, screenshot the
|
|
224
|
+
correction; then the caption can say '亲测'").
|
|
223
225
|
|
|
224
226
|
### 6. Check (hard gate)
|
|
225
227
|
|
|
@@ -249,7 +251,7 @@ left ("The name, handle and avatar on pages 1 and 6 are samples: fill them
|
|
|
249
251
|
once in the bar at the top of Studio, or in Brands at
|
|
250
252
|
https://my.easysociable.com/brands, and every page updates"; name only the
|
|
251
253
|
fields that are samples), the sources (facts and
|
|
252
|
-
each evidence image: "p1 image: <url>"), and
|
|
254
|
+
each evidence image: "p1 image: <url>"), and the optional upgrades (step 5). Tell them to edit in
|
|
253
255
|
Studio and click **Download** for the PNG ZIP.
|
|
254
256
|
|
|
255
257
|
### 8. Revise (same Run, never a copy)
|
|
@@ -29,13 +29,19 @@ Roles overlap in the catalog, so pass related ones together: `hook,cover` ·
|
|
|
29
29
|
`height` = lines × lineHeight + ~12% of fontSize for descenders.
|
|
30
30
|
4. Remove what you do not need; add only elements copied from another reference
|
|
31
31
|
with the same `style` (rule rows, a stat row).
|
|
32
|
-
4a. **A reference's image area** when you have no image
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
32
|
+
4a. **A reference's image area** when you have no real image: keep the area's
|
|
33
|
+
box and draw a diagram from the page's own words, every part editable text
|
|
34
|
+
or shapes:
|
|
35
|
+
- prompt card: the exact prompt the page tells the reader to send, in a
|
|
36
|
+
chat-bubble-like card with no product logo or UI chrome;
|
|
37
|
+
- A vs B: two cards side by side, a "vs" or arrow between;
|
|
38
|
+
- ✗ / ✓: the wrong and right version of the same thing;
|
|
39
|
+
- flow: 3–4 nodes with arrows for steps;
|
|
40
|
+
- a large number or keyword, a short quote with an oversized quote mark,
|
|
41
|
+
or an accent block carrying one word.
|
|
42
|
+
Icons: `easysociable icons search --query <word>`, then `icons get` for its
|
|
43
|
+
`canonicalSvg`. Made-up figures carry "示例 / example". Never an empty box. If
|
|
44
|
+
nothing fits, delete the area and give the headline its space.
|
|
39
45
|
5. Brand chrome — every Run carries the Brand, bound so one Brand edit updates
|
|
40
46
|
every page. The cover has a signature (avatar + name + handle); the CTA has
|
|
41
47
|
avatar + handle next to the action. Inner pages keep only the Brand spots
|
|
@@ -86,29 +92,3 @@ Use one in `theme.json` as `{ "color": { "canvas", "text", "textMuted", "accent"
|
|
|
86
92
|
| `dark` | `#06080C` / `#FFFFFF` / `#C7CBD3` / `#4C9BFF` |
|
|
87
93
|
| `bold_promo` | `#F9F9F9` / `#0A0A0A` / `#555555` / `#0066DD` |
|
|
88
94
|
|
|
89
|
-
## Image placeholder
|
|
90
|
-
|
|
91
|
-
A replaceable image slot for a real screenshot or photo the user will add.
|
|
92
|
-
Studio shows an upload button when it is selected.
|
|
93
|
-
|
|
94
|
-
```jsx
|
|
95
|
-
<img data-type="image" data-variable="image_0" data-image-mode="slot_default"
|
|
96
|
-
alt="Add: <what goes here>" src="data:image/svg+xml;base64,<SVG>"
|
|
97
|
-
style={{ position: 'absolute', left: 88, top: 760, width: 904, height: 388, objectFit: 'cover', borderRadius: 24 }} />
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
`<SVG>` is base64 of a grey box with an image icon and the label, sized to the slot:
|
|
101
|
-
|
|
102
|
-
```xml
|
|
103
|
-
<svg xmlns='http://www.w3.org/2000/svg' width='904' height='388' viewBox='0 0 904 388'>
|
|
104
|
-
<rect width='904' height='388' fill='#DDD6CC'/>
|
|
105
|
-
<g transform='translate(416,124)' fill='none' stroke='#8C8781' stroke-width='5' stroke-linejoin='round'>
|
|
106
|
-
<rect width='72' height='56' rx='8'/><path d='M6 50 L26 28 L40 42 L50 34 L66 50'/><circle cx='52' cy='16' r='6'/>
|
|
107
|
-
</g>
|
|
108
|
-
<text x='50%' y='230' text-anchor='middle' font-family='Inter, Arial, sans-serif' font-size='32' font-weight='600' fill='#6F6A64'>Add: Grok Bot app screenshot</text>
|
|
109
|
-
</svg>
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
Put the same data URL in the page's `slots` under `image_N`. Number slots
|
|
113
|
-
`image_0`, `image_1`, … per page. Use the style's own colours for the box
|
|
114
|
-
(canvas-adjacent grey on light styles, `#1A1F27` on dark ones).
|