@chinhae/atw-cli 0.5.0 → 0.6.0

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 (21) hide show
  1. package/dist/migrations/manifests/0.6.0.json +442 -0
  2. package/dist/templates/common/bundled-skills/atw-prototype/SKILL.md +2 -2
  3. package/dist/templates/common/bundled-skills/atw-prototype/UI.md +44 -24
  4. package/dist/templates/common/bundled-skills/atw-prototype/references/design-direction.md +91 -58
  5. package/dist/templates/common/bundled-skills/atw-prototype/references/direction-persuasion.md +25 -0
  6. package/dist/templates/common/bundled-skills/atw-prototype/references/style-explorer.md +1 -1
  7. package/dist/templates/common/bundled-skills/atw-ui/SKILL.md +46 -31
  8. package/dist/templates/common/bundled-skills/atw-ui/references/layout-and-viewport.md +7 -5
  9. package/dist/templates/common/bundled-skills/atw-ui/references/media.md +117 -20
  10. package/dist/templates/common/bundled-skills/atw-ui/references/motion.md +47 -23
  11. package/dist/templates/common/bundled-skills/atw-ui/references/play.md +18 -0
  12. package/dist/templates/common/bundled-skills/atw-ui/references/reviewer-manual.md +73 -0
  13. package/dist/templates/common/bundled-skills/atw-ui/references/scroll-narrative.md +98 -0
  14. package/dist/templates/common/bundled-skills/atw-ui/references/tools.md +46 -0
  15. package/dist/templates/common/bundled-skills/atw-ui/references/visual-language.md +40 -24
  16. package/dist/templates/common/bundled-skills/atw-ui/references/visual-review.md +26 -82
  17. package/dist/templates/common/bundled-skills/atw-ui/scripts/shoot.mjs +1721 -0
  18. package/package.json +2 -2
  19. package/dist/templates/common/bundled-skills/atw-prototype/references/visual-language.md +0 -88
  20. package/dist/templates/common/bundled-skills/atw-prototype/references/visual-review.md +0 -63
  21. package/dist/templates/common/bundled-skills/atw-ui/references/imagery.md +0 -69
@@ -0,0 +1,442 @@
1
+ {
2
+ "version": "0.6.0",
3
+ "description": "atw-ui and atw-prototype are brought up to oil-ui 0.22.1. atw-prototype names the product's category, takes benchmarks apart and offers three directions in words before it builds any screen. atw-ui ships a screenshot tool and a separate manual for the review sub-agent. Three reference files are retired, and atw update removes them.",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "The two interface skills, atw-prototype and atw-ui, are synced to oil-ui 0.22.1, the project they were forked from on 2026-10-01. Upstream's paid-version prompts, update check and first-use recommendations are not included. atw-prototype, choosing a direction. Stage one now starts by naming the product's category and two or three benchmarks, and taking the benchmarks apart from real screens saved under the task's references/. When no real screen can be fetched, the direction card says so and marks font, colour and main visual as not yet verified. The AI then writes three directions in three or four lines each, with a recommendation, sends that and stops. A direction picked from the text is the only one carried forward: stage one builds no first screen and no comparison page for it. Three first screens side by side are built only when the user wants to see them, and layout comparisons go words first too. When the user says to decide, or nobody is there, the three screens are still built for the record and the AI writes down why it chose one. Stage one is skipped only when ui-direction.md already exists or the user named one complete direction. Colour for each direction is derived in four steps from the product itself, and directions are no longer told apart by light and dark. The first screen is planned differently for a persuasion page and for a content or workspace page, where the first screen is the first row of content. The direction card gains columns for benchmarks and trade-offs, the form of each section, control grammar, and motion. The eight skeletons for persuasion pages move to a new file, references/direction-persuasion.md. atw-ui, scope and motion. Requests in an existing project are split three ways: polish the UI, change a flow, add a feature. A flow change or a new feature keeps the visual style the project has and does not go through direction exploration. Polishing a single component has its own path: one direction, with the visual protagonist chosen first. A new interface, or one whose operating flow changed, must have three baseline motions: feedback on the main action, where a state change comes from, and the first entrance. Two new guides: references/scroll-narrative.md, required reading for landing, brand, launch and exhibition pages, and references/play.md for small games, draws and controls that depend on feel. media.md takes upstream's structure and absorbs imagery.md; visual-language.md and layout-and-viewport.md follow upstream's current text. atw-ui, screenshot tool. The skill ships scripts/shoot.mjs and a guide to it, references/tools.md. One command takes the evidence set before review and before delivery: state shots, a side-by-side, a version with the text masked, a 2x shot and a screen recording. Each shot also reports default-pattern hints read from the page's styles, in two groups: readability problems to fix, and patterns to either change or justify in the delivery notes. The tool can compare a page against a reference image and draw numbered boxes on elements. It needs Node 22 or later and a local Chrome, Chromium or Edge; without them the skill falls back to the host's browser tool and hands over the same evidence. atw-ui, review. The review protocol is now two files. references/visual-review.md is the dispatch protocol the main agent reads: when to dispatch a reviewer and in which mode, what to hand over, and how to act on the feedback. references/reviewer-manual.md is new and is the only file the review sub-agent reads: a three-second test, deductions for model-default patterns, a motion check, three uplift items, a 'redo' line and a 'keep' line, and a table of thresholds for scores 1 to 10. Its second section covers polishing an existing interface against the project's own design-system.md, in one round and without a score. Inside /atw-implement the pipeline's review step still dispatches the reviewer, not the main agent. One copy of shared documents. atw-prototype no longer carries its own visual-language.md and visual-review.md. Its documents link to atw-ui's copies by relative path; every platform installs the two skills side by side under the same skills directory.",
7
+ "migrations": [
8
+ {
9
+ "type": "safe-file-delete",
10
+ "from": ".agent/skills/atw-prototype/references/visual-language.md",
11
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
12
+ "allowed_hashes": [
13
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
14
+ ]
15
+ },
16
+ {
17
+ "type": "safe-file-delete",
18
+ "from": ".agent/skills/atw-prototype/references/visual-review.md",
19
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
20
+ "allowed_hashes": [
21
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
22
+ ]
23
+ },
24
+ {
25
+ "type": "safe-file-delete",
26
+ "from": ".agent/skills/atw-ui/references/imagery.md",
27
+ "description": "Folded into media.md in 0.6.0",
28
+ "allowed_hashes": [
29
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
30
+ ]
31
+ },
32
+ {
33
+ "type": "safe-file-delete",
34
+ "from": ".agents/skills/atw-prototype/references/visual-language.md",
35
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
36
+ "allowed_hashes": [
37
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
38
+ ]
39
+ },
40
+ {
41
+ "type": "safe-file-delete",
42
+ "from": ".agents/skills/atw-prototype/references/visual-review.md",
43
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
44
+ "allowed_hashes": [
45
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
46
+ ]
47
+ },
48
+ {
49
+ "type": "safe-file-delete",
50
+ "from": ".agents/skills/atw-ui/references/imagery.md",
51
+ "description": "Folded into media.md in 0.6.0",
52
+ "allowed_hashes": [
53
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
54
+ ]
55
+ },
56
+ {
57
+ "type": "safe-file-delete",
58
+ "from": ".claude/skills/atw-prototype/references/visual-language.md",
59
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
60
+ "allowed_hashes": [
61
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
62
+ ]
63
+ },
64
+ {
65
+ "type": "safe-file-delete",
66
+ "from": ".claude/skills/atw-prototype/references/visual-review.md",
67
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
68
+ "allowed_hashes": [
69
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
70
+ ]
71
+ },
72
+ {
73
+ "type": "safe-file-delete",
74
+ "from": ".claude/skills/atw-ui/references/imagery.md",
75
+ "description": "Folded into media.md in 0.6.0",
76
+ "allowed_hashes": [
77
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
78
+ ]
79
+ },
80
+ {
81
+ "type": "safe-file-delete",
82
+ "from": ".codebuddy/skills/atw-prototype/references/visual-language.md",
83
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
84
+ "allowed_hashes": [
85
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
86
+ ]
87
+ },
88
+ {
89
+ "type": "safe-file-delete",
90
+ "from": ".codebuddy/skills/atw-prototype/references/visual-review.md",
91
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
92
+ "allowed_hashes": [
93
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
94
+ ]
95
+ },
96
+ {
97
+ "type": "safe-file-delete",
98
+ "from": ".codebuddy/skills/atw-ui/references/imagery.md",
99
+ "description": "Folded into media.md in 0.6.0",
100
+ "allowed_hashes": [
101
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
102
+ ]
103
+ },
104
+ {
105
+ "type": "safe-file-delete",
106
+ "from": ".cursor/skills/atw-prototype/references/visual-language.md",
107
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
108
+ "allowed_hashes": [
109
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
110
+ ]
111
+ },
112
+ {
113
+ "type": "safe-file-delete",
114
+ "from": ".cursor/skills/atw-prototype/references/visual-review.md",
115
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
116
+ "allowed_hashes": [
117
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
118
+ ]
119
+ },
120
+ {
121
+ "type": "safe-file-delete",
122
+ "from": ".cursor/skills/atw-ui/references/imagery.md",
123
+ "description": "Folded into media.md in 0.6.0",
124
+ "allowed_hashes": [
125
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
126
+ ]
127
+ },
128
+ {
129
+ "type": "safe-file-delete",
130
+ "from": ".devin/skills/atw-prototype/references/visual-language.md",
131
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
132
+ "allowed_hashes": [
133
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
134
+ ]
135
+ },
136
+ {
137
+ "type": "safe-file-delete",
138
+ "from": ".devin/skills/atw-prototype/references/visual-review.md",
139
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
140
+ "allowed_hashes": [
141
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
142
+ ]
143
+ },
144
+ {
145
+ "type": "safe-file-delete",
146
+ "from": ".devin/skills/atw-ui/references/imagery.md",
147
+ "description": "Folded into media.md in 0.6.0",
148
+ "allowed_hashes": [
149
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
150
+ ]
151
+ },
152
+ {
153
+ "type": "safe-file-delete",
154
+ "from": ".factory/skills/atw-prototype/references/visual-language.md",
155
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
156
+ "allowed_hashes": [
157
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
158
+ ]
159
+ },
160
+ {
161
+ "type": "safe-file-delete",
162
+ "from": ".factory/skills/atw-prototype/references/visual-review.md",
163
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
164
+ "allowed_hashes": [
165
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
166
+ ]
167
+ },
168
+ {
169
+ "type": "safe-file-delete",
170
+ "from": ".factory/skills/atw-ui/references/imagery.md",
171
+ "description": "Folded into media.md in 0.6.0",
172
+ "allowed_hashes": [
173
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
174
+ ]
175
+ },
176
+ {
177
+ "type": "safe-file-delete",
178
+ "from": ".github/skills/atw-prototype/references/visual-language.md",
179
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
180
+ "allowed_hashes": [
181
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
182
+ ]
183
+ },
184
+ {
185
+ "type": "safe-file-delete",
186
+ "from": ".github/skills/atw-prototype/references/visual-review.md",
187
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
188
+ "allowed_hashes": [
189
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
190
+ ]
191
+ },
192
+ {
193
+ "type": "safe-file-delete",
194
+ "from": ".github/skills/atw-ui/references/imagery.md",
195
+ "description": "Folded into media.md in 0.6.0",
196
+ "allowed_hashes": [
197
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
198
+ ]
199
+ },
200
+ {
201
+ "type": "safe-file-delete",
202
+ "from": ".grok/skills/atw-prototype/references/visual-language.md",
203
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
204
+ "allowed_hashes": [
205
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
206
+ ]
207
+ },
208
+ {
209
+ "type": "safe-file-delete",
210
+ "from": ".grok/skills/atw-prototype/references/visual-review.md",
211
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
212
+ "allowed_hashes": [
213
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
214
+ ]
215
+ },
216
+ {
217
+ "type": "safe-file-delete",
218
+ "from": ".grok/skills/atw-ui/references/imagery.md",
219
+ "description": "Folded into media.md in 0.6.0",
220
+ "allowed_hashes": [
221
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
222
+ ]
223
+ },
224
+ {
225
+ "type": "safe-file-delete",
226
+ "from": ".kilocode/skills/atw-prototype/references/visual-language.md",
227
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
228
+ "allowed_hashes": [
229
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
230
+ ]
231
+ },
232
+ {
233
+ "type": "safe-file-delete",
234
+ "from": ".kilocode/skills/atw-prototype/references/visual-review.md",
235
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
236
+ "allowed_hashes": [
237
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
238
+ ]
239
+ },
240
+ {
241
+ "type": "safe-file-delete",
242
+ "from": ".kilocode/skills/atw-ui/references/imagery.md",
243
+ "description": "Folded into media.md in 0.6.0",
244
+ "allowed_hashes": [
245
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
246
+ ]
247
+ },
248
+ {
249
+ "type": "safe-file-delete",
250
+ "from": ".kiro/skills/atw-prototype/references/visual-language.md",
251
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
252
+ "allowed_hashes": [
253
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
254
+ ]
255
+ },
256
+ {
257
+ "type": "safe-file-delete",
258
+ "from": ".kiro/skills/atw-prototype/references/visual-review.md",
259
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
260
+ "allowed_hashes": [
261
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
262
+ ]
263
+ },
264
+ {
265
+ "type": "safe-file-delete",
266
+ "from": ".kiro/skills/atw-ui/references/imagery.md",
267
+ "description": "Folded into media.md in 0.6.0",
268
+ "allowed_hashes": [
269
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
270
+ ]
271
+ },
272
+ {
273
+ "type": "safe-file-delete",
274
+ "from": ".omp/skills/atw-prototype/references/visual-language.md",
275
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
276
+ "allowed_hashes": [
277
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
278
+ ]
279
+ },
280
+ {
281
+ "type": "safe-file-delete",
282
+ "from": ".omp/skills/atw-prototype/references/visual-review.md",
283
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
284
+ "allowed_hashes": [
285
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
286
+ ]
287
+ },
288
+ {
289
+ "type": "safe-file-delete",
290
+ "from": ".omp/skills/atw-ui/references/imagery.md",
291
+ "description": "Folded into media.md in 0.6.0",
292
+ "allowed_hashes": [
293
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
294
+ ]
295
+ },
296
+ {
297
+ "type": "safe-file-delete",
298
+ "from": ".opencode/skills/atw-prototype/references/visual-language.md",
299
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
300
+ "allowed_hashes": [
301
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
302
+ ]
303
+ },
304
+ {
305
+ "type": "safe-file-delete",
306
+ "from": ".opencode/skills/atw-prototype/references/visual-review.md",
307
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
308
+ "allowed_hashes": [
309
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
310
+ ]
311
+ },
312
+ {
313
+ "type": "safe-file-delete",
314
+ "from": ".opencode/skills/atw-ui/references/imagery.md",
315
+ "description": "Folded into media.md in 0.6.0",
316
+ "allowed_hashes": [
317
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
318
+ ]
319
+ },
320
+ {
321
+ "type": "safe-file-delete",
322
+ "from": ".qoder/skills/atw-prototype/references/visual-language.md",
323
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
324
+ "allowed_hashes": [
325
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
326
+ ]
327
+ },
328
+ {
329
+ "type": "safe-file-delete",
330
+ "from": ".qoder/skills/atw-prototype/references/visual-review.md",
331
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
332
+ "allowed_hashes": [
333
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
334
+ ]
335
+ },
336
+ {
337
+ "type": "safe-file-delete",
338
+ "from": ".qoder/skills/atw-ui/references/imagery.md",
339
+ "description": "Folded into media.md in 0.6.0",
340
+ "allowed_hashes": [
341
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
342
+ ]
343
+ },
344
+ {
345
+ "type": "safe-file-delete",
346
+ "from": ".reasonix/skills/atw-prototype/references/visual-language.md",
347
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
348
+ "allowed_hashes": [
349
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
350
+ ]
351
+ },
352
+ {
353
+ "type": "safe-file-delete",
354
+ "from": ".reasonix/skills/atw-prototype/references/visual-review.md",
355
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
356
+ "allowed_hashes": [
357
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
358
+ ]
359
+ },
360
+ {
361
+ "type": "safe-file-delete",
362
+ "from": ".reasonix/skills/atw-ui/references/imagery.md",
363
+ "description": "Folded into media.md in 0.6.0",
364
+ "allowed_hashes": [
365
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
366
+ ]
367
+ },
368
+ {
369
+ "type": "safe-file-delete",
370
+ "from": ".snow/skills/atw-prototype/references/visual-language.md",
371
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
372
+ "allowed_hashes": [
373
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
374
+ ]
375
+ },
376
+ {
377
+ "type": "safe-file-delete",
378
+ "from": ".snow/skills/atw-prototype/references/visual-review.md",
379
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
380
+ "allowed_hashes": [
381
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
382
+ ]
383
+ },
384
+ {
385
+ "type": "safe-file-delete",
386
+ "from": ".snow/skills/atw-ui/references/imagery.md",
387
+ "description": "Folded into media.md in 0.6.0",
388
+ "allowed_hashes": [
389
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
390
+ ]
391
+ },
392
+ {
393
+ "type": "safe-file-delete",
394
+ "from": ".trae/skills/atw-prototype/references/visual-language.md",
395
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
396
+ "allowed_hashes": [
397
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
398
+ ]
399
+ },
400
+ {
401
+ "type": "safe-file-delete",
402
+ "from": ".trae/skills/atw-prototype/references/visual-review.md",
403
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
404
+ "allowed_hashes": [
405
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
406
+ ]
407
+ },
408
+ {
409
+ "type": "safe-file-delete",
410
+ "from": ".trae/skills/atw-ui/references/imagery.md",
411
+ "description": "Folded into media.md in 0.6.0",
412
+ "allowed_hashes": [
413
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
414
+ ]
415
+ },
416
+ {
417
+ "type": "safe-file-delete",
418
+ "from": ".zcode/skills/atw-prototype/references/visual-language.md",
419
+ "description": "atw-prototype reads atw-ui's visual-language.md as of 0.6.0",
420
+ "allowed_hashes": [
421
+ "76fbb6bc5624fb30896347a4233b2e18944f2b9c6391495fc2ae154c25ca122f"
422
+ ]
423
+ },
424
+ {
425
+ "type": "safe-file-delete",
426
+ "from": ".zcode/skills/atw-prototype/references/visual-review.md",
427
+ "description": "atw-prototype reads atw-ui's visual-review.md as of 0.6.0",
428
+ "allowed_hashes": [
429
+ "4ea6413171b1b19f1af593fa282bb772375b22b2e2fcfafa3912514d59a4b7b1"
430
+ ]
431
+ },
432
+ {
433
+ "type": "safe-file-delete",
434
+ "from": ".zcode/skills/atw-ui/references/imagery.md",
435
+ "description": "Folded into media.md in 0.6.0",
436
+ "allowed_hashes": [
437
+ "6454e931f0a3428088b5158a7c5e5626f1722febf3b550337b209eccc90ba09b"
438
+ ]
439
+ }
440
+ ],
441
+ "notes": "No manual migration required. atw update deletes three retired files from the skills directory of every configured platform: atw-ui/references/imagery.md, atw-prototype/references/visual-language.md and atw-prototype/references/visual-review.md. A copy the project left untouched is deleted without asking; a copy that was edited is kept and listed as modified, skipped. In a dev project atw update also adds six files per skills directory (atw-ui/scripts/shoot.mjs, atw-ui/references/tools.md, reviewer-manual.md, scroll-narrative.md and play.md, and atw-prototype/references/direction-persuasion.md) and updates ten: in atw-ui, SKILL.md and references/layout-and-viewport.md, media.md, motion.md, visual-language.md and visual-review.md; in atw-prototype, SKILL.md, UI.md, references/design-direction.md and references/style-explorer.md. They update as Template updated where the project left them untouched; where a project edited them locally, atw update asks before replacing. A general project installs neither skill, so nothing in it changes. No setting in .atw/config.yaml changes, and .atw/workflow.md is the same as in 0.5.0."
442
+ }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: atw-prototype
3
- description: "构建一次性原型来解答设计问题。用于验证状态模型或业务逻辑是否合理、探索界面应该长什么样(多个风格方向并排对比后由用户选定),或把选定方向做成能完整点一遍、带业务逻辑的可交互原型。原型只用于做决定,不是正式实现;按选定方向做正式界面、精修和评审交给 atw-ui。"
3
+ description: "构建一次性原型来解答设计问题。用于验证状态模型或业务逻辑是否合理、探索界面应该长什么样(先用文字比较几个风格方向,要看画面时再做成首屏并排对比,由用户选定),或把选定方向做成能完整点一遍、带业务逻辑的可交互原型。原型只用于做决定,不是正式实现;按选定方向做正式界面、精修和评审交给 atw-ui。"
4
4
  ---
5
5
 
6
6
  # Prototype
@@ -12,7 +12,7 @@ description: "构建一次性原型来解答设计问题。用于验证状态模
12
12
  先从用户的请求、相关代码判断要回答的是哪个问题;用户在场时可以直接问:
13
13
 
14
14
  - **“这套逻辑 / 状态模型对不对?”** → [LOGIC.md](LOGIC.md)。做一个可分享的单文件 HTML:自由操作的按钮加按标签页划分的引导演练,把纸面上难以推演的状态组合跑一遍,让不写代码的人也能自己操作。
15
- - **“这个界面应该长什么样?”** 或 **“这个页面用起来对不对?”** → [UI.md](UI.md)。分两段:先做几个风格明显不同的方向放进对比页,由用户选定;需要时再把选定方向深化成带业务逻辑的可交互原型,业务逻辑按 LOGIC.md 的方式写成独立的纯模块。
15
+ - **“这个界面应该长什么样?”** 或 **“这个页面用起来对不对?”** → [UI.md](UI.md)。分两段:先认品类、拆标杆,用文字写出三个风格明显不同的方向请用户选,用户要看画面时再把三个首屏放进对比页;需要时再把选定方向深化成带业务逻辑的可交互原型,业务逻辑按 LOGIC.md 的方式写成独立的纯模块。
16
16
 
17
17
  两个分支的产物差别很大,选错等于白做。问题确实模糊且用户不在时,按周边代码选:后端模块走逻辑,页面或组件走界面;并在原型顶部写明这个假设。
18
18
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  界面原型分两段:
4
4
 
5
- - **第一段:选方向。** 做几个风格和结构都明显不同的方向,放进同一个对比页,由用户挑选,再说出具体喜欢和不喜欢哪里。
5
+ - **第一段:选方向。** 先认品类、拆标杆,用文字写出三个风格和结构都明显不同的方向请用户选;用户想看实际画面时,再把三个方向各做成一张首屏放进同一个对比页挑,并说出具体喜欢和不喜欢哪里。
6
6
  - **第二段:深化成可交互原型。** 只在问题包含“用起来对不对”时才做:把选定方向做成完整页面,接上按 [LOGIC.md](LOGIC.md) 写的纯逻辑模块,让人能把真实业务流程完整点一遍。
7
7
 
8
8
  两段的产物都是用来做决定的,不是正式代码。选定之后的正式界面由 atw-ui 按设计说明重新实现。
@@ -19,6 +19,8 @@
19
19
 
20
20
  ## 承载方式:优先挂在已有页面上
21
21
 
22
+ 要做出画面时才选承载方式:第一段的三个首屏,或第二段的完整页面。用户从文字里就选定了方向、又不做第二段时,不建任何页面。
23
+
22
24
  界面原型**贴着应用的其他部分**才好判断:真实的顶栏、侧栏、数据和密度。一个孤零零的新页面是真空,每个方案单独看都还行。所以只要有合理的宿主页面,就优先方式 A。
23
25
 
24
26
  ### 方式 A:在已有页面上调整(优先)
@@ -37,49 +39,66 @@
37
39
 
38
40
  ## 第一段:选方向
39
41
 
40
- ### 1. 写下问题,定方案数量
42
+ ### 1. 写下问题,定方向数量
41
43
 
42
- 默认 **3 个方向**。超过 5 个就不再是“明显不同”而是噪音,上限 5。窄小的任务不强求多方案。
44
+ 默认写 **3 个方向**。用户要更多时照做,但超过 5 个就不再是“明显不同”而是噪音,上限 5。窄小的任务不强求多方案;任务明确只要一个方向时只写一个,见第 6 步。
43
45
 
44
- 把计划写成一句话,放在原型所在位置或文件顶部注释里:
46
+ 把计划写成一句话;做出画面时放在原型所在位置或文件顶部注释里:
45
47
 
46
- > “设置页的三个方向,用 `?variant=` 在现有 `/settings` 路由上切换,并汇总到对比页。”
48
+ > “设置页的三个方向,先用文字问;要看画面时用 `?variant=` 在现有 `/settings` 路由上切换,并汇总到对比页。”
47
49
 
48
50
  用户在不在场都适用。
49
51
 
50
- ### 2. 定调性,写方向卡,做差异检验
52
+ ### 2. 认品类,拆标杆,写方向卡
53
+
54
+ 方向未定时按 [设计方向](references/design-direction.md) 的顺序做:先认品类、拆标杆,标杆的真实画面存进 ATW 任务目录的 `references/`(没有任务时放在原型旁边),不写进技能安装目录;再从产品题材、受众和使用场合推出调性;每个方向从一个具体的生成引擎出发,色彩按“定色彩”的四步从产品推出;写文案之前先定首屏骨架,说服型页面按 [说服型页面首屏骨架](references/direction-persuasion.md) 选,内容和工作区页面的首屏就是第一排内容;为每个方向填方向卡,最后逐条做差异检验。
55
+
56
+ 这一轮几个方向共用调性和标杆与取舍,每个方向只填北极星、生成引擎、首屏骨架、字体、色彩、主视觉、图标和控件语法;其余各栏在方向选定后补齐,见第 7 步。
51
57
 
52
- 方向未定时按 [设计方向](references/design-direction.md) 的顺序做:先从产品题材、受众和使用场合推出调性;每个方向从一个具体的生成引擎出发;写文案之前先定首屏骨架;为每个方向填方向卡,写下它的记忆点;最后逐条做差异检验。
58
+ 方向**必须在结构上不同**:布局、信息层级、主要操作方式都不一样,不只是换颜色。三个微调过的卡片网格不是界面原型,是墙纸。两个方向太像时,回到骨架重选其中一个,不靠换装饰补救。
53
59
 
54
- 方向**必须在结构上不同**:布局、信息层级、主要操作方式都不一样,不只是换颜色。三个微调过的卡片网格不是界面原型,是墙纸。两个方向做出来太像时,回到骨架表重选其中一个,不靠换装饰补救。
60
+ 方向由用户的品味来定,不直接采用模型自己想出的方向。任务目录里已有 `ui-direction.md`,或用户明确指定了一个完整的方向时,跳过第一段,直接进入第二段或交给 atw-ui。用户只给了参考图、品牌规范或说了想要的风格,不算给定方向:仍写三个方向、走第 3 步,三个方向怎样写见第 6 步。
55
61
 
56
- 方向由用户的品味来定,不直接采用模型自己想出的方向。用户已经给定方向时跳过这一步,直接进入第二段或交给 atw-ui。
62
+ ### 3. 先用文字问一次
57
63
 
58
- ### 3. 做小样
64
+ 方向卡写完,不急着做页面。把每个方向用三四行写给用户:它给人什么感觉,首屏长什么样,用什么字体和色彩,主视觉靠什么。附上你推荐哪一个和理由,然后问:按其中一个定下来,还是把三个都做成首屏放在一起比。发给用户后这一轮结束。
59
65
 
60
- 每个方向只做首屏和最能体现方向的一两个区块;用户明确要完整页面时照做。挑能暴露方向优缺点的内容:含复杂表单的产品不能只做封面。
66
+ - 用户选了一个,或者从描述里已经说清想要什么:方向就定了,定下的就是这一个方向。第一段不做首屏,也不做对比页:按 [设计方向](references/design-direction.md) 的“差异检验”把它和拆过的标杆并排比一次,确认不撞脸,然后到第 7 步补齐方向卡、写设计说明。完整页面在第二段或 atw-ui 里做。
67
+ - 用户想看实际画面:按第 4 步把三个都做成首屏。
68
+ - 之后凡是要做出几个候选让用户挑,都先这样用文字问一次:用户从文字里定得下来,就定选中的那一个,不把几个候选都做成画面。
61
69
 
62
- 每个方向要守住:
70
+ ### 4. 用户要看实际画面时,做三个首屏
63
71
 
64
- - 页面的用途和它能拿到的数据;所有方向共享同样的核心内容和主要操作。
65
- - 方式 A 用项目已有的组件库和样式体系(TailwindCSS、shadcn、MUI、纯 CSS 等);方式 B 的独立小样不受此限,但图标只内联用到的 SVG,不引用外部资源。
66
- - 方式 A 中每个方向导出清楚的组件名,例如 `VariantA`、`VariantB`、`VariantC`。
72
+ 每个方向都是一张真实的首屏,骨架、字体、色彩和主视觉都拉开。只做看得出风格所需的东西:
67
73
 
68
- 示例内容按真实产品的样子写,避免整数指标和“标题”“描述”这类占位字;画面上不出现“示例”“示意图”“按钮未接入”这类制作说明,这些写进交付说明。视觉层级、字体、色彩和留白的判断见 [视觉语言](references/visual-language.md)。
74
+ - 每个方向一个文件(方式 A 是一个方向组件,导出清楚的组件名,例如 `VariantA`、`VariantB`、`VariantC`;方式 B 是一个 HTML)、一个视口、只有主状态;不写交互,不做响应式和动效,不取证,不派评审。
75
+ - 几个方向共用同一份示例文字和数据,只写一次;页面的用途、核心内容和主要操作也相同。结构和样式各写各的:不用同一个模板换几组样式来生成,那样几个方向的骨架天生是同一个。
76
+ - 方式 A 用项目已有的组件库和样式体系(TailwindCSS、shadcn、MUI、纯 CSS 等);方式 B 的独立首屏不受此限,但图标只内联用到的 SVG,不引用外部资源。
77
+ - 主视觉靠图的方向,生成一张,至多重新生成一次;其余图位先用从页面取色的色块占着。
78
+ - 每个方向用宿主的浏览器工具截一张图自己看过,改掉重叠、裁切和明显的粗糙就交。
69
79
 
70
- ### 4. 生成对比页
80
+ 首屏选能暴露方向优缺点的那一页:含复杂表单的产品不能只做封面。示例内容按真实产品的样子写,避免整数指标和“标题”“描述”这类占位字;画面上不出现“示例”“示意图”“按钮未接入”这类制作说明,这些写进交付说明。视觉层级、字体、色彩和留白的判断见 [视觉语言](../atw-ui/references/visual-language.md)。
71
81
 
72
82
  按 [风格对比页](references/style-explorer.md) 准备 `manifest.json`,把方向卡里的北极星、字体、色板和特征写进去,用内置生成器组装成一个离线 HTML。不要每次自己重做对比工具。对比页和 manifest 放在 ATW 任务目录(没有任务时放在原型旁边),不写进技能安装目录。
73
83
 
74
- ### 5. 交给用户选
84
+ ### 5. 交对比页,版式也先用文字问
85
+
86
+ 把对比页交给用户,这一轮到此结束:附上推荐理由,请用户选一个方向、说出具体喜欢和不喜欢哪里,并说明想比较不同的版式也可以说。用户只说“再高级一点”这类模糊词时,用设计方向里的翻译表追问,或拿两张首屏让用户比较。三个首屏和版式变体不派评审;用户明确要求时,才按 atw-ui 的 [视觉评审派发协议](../atw-ui/references/visual-review.md) 评一轮。协议里说的“本 Skill 目录”是 atw-ui 的目录:给评审者的是 [评审手册](../atw-ui/references/reviewer-manual.md) 的绝对路径。首屏没跑截图工具,没有 `report.json`,不交默认做法提示,交接里写明未跑截图工具。
87
+
88
+ 用户要比版式,先用文字写出两三种骨架的差别;从文字里定得下来就按选中的定,要看实际画面再做成首屏,连同选中的那一版放进对比页再选一次。版式之间保持选定方向的字体、色彩和控件语法,只在骨架、主视觉的摆法和页面结构上拉开。用户只回了选哪个,就把意见并进去,到第 7 步;想把两个方向拼在一起的,先做出拼合后的首屏给用户确认。
89
+
90
+ ### 6. 哪些情况不这样走
75
91
 
76
- 给出简短的方向清单和对比页,附推荐理由,请用户选定,并说出具体喜欢和不喜欢哪里。用户只说“再高级一点”这类模糊词时,用设计方向里的翻译表追问,或拿两张小样让用户比较。
92
+ - 只要设计说明时不做页面,用文字写下方向的决定。
93
+ - 用户已经给了参考图、品牌规范或说清了风格,风格就定了:三个方向都留在这个风格里,只在骨架、主视觉和页面结构上拉开。
94
+ - 用户说了“你定”“直接做”,或者无人值守时,不问:三个首屏仍做出来放进对比页留档,把三张截图缩到 480px 宽并排看一次,自己选定并写明理由,接着到第 7 步。
95
+ - 任务明确只要一个方向时不问也不做对比页,直接写方向卡,再按 [设计方向](references/design-direction.md) 的“差异检验”把它和拆过的标杆并排比一次,确认不撞脸。
77
96
 
78
- 交付对比页时,把一轮独立评审作为**推荐的下一步**告诉用户:说明它能改善什么(打破几个方向共用的模板骨架)、大约需要多少时间和调用,由用户决定是否执行,不默认派发。用户同意时按 [视觉评审协议](references/visual-review.md) 给每个方向各评审、修改一轮;用户直接选定方向时跳过。
97
+ ### 7. 写设计说明
79
98
 
80
- 用户明确让你自行决定、或当前无法交互时,仍然先做小样、生成对比页留档,再按任务适配、辨识度和可执行性选定,并说明理由。
99
+ 方向选定后先把方向卡补齐:第 2 步没填的页面结构、各区块的形式、动效、结构性突破、记忆点和放弃什么都填上,“标杆与取舍”里写明标杆画面的存放路径。
81
100
 
82
- 选定后写一份简短的**设计说明**:用户任务、内容与主动作、选定方向(附方向卡)、用户的喜欢与不喜欢、视觉关系、关键状态、设备约束和验收重点。放在 ATW 任务目录的 `ui-direction.md`;已有说明直接更新。这份说明是第二段和 atw-ui 的依据。
101
+ 再写一份简短的**设计说明**:用户任务、内容与主动作、选定方向(附补齐后的方向卡,标杆与取舍、各区块的形式、控件语法和动效四栏都在)、用户的喜欢与不喜欢、视觉关系、关键状态、设备约束和验收重点。放在 ATW 任务目录的 `ui-direction.md`;已有说明直接更新。这份说明是第二段和 atw-ui 的依据。
83
102
 
84
103
  ## 第二段:深化成可交互原型
85
104
 
@@ -91,7 +110,7 @@
91
110
 
92
111
  ### 2. 选定方向做成完整页面
93
112
 
94
- 把选定方向从小样扩展成完整页面,作为逻辑模块外面的一层外壳:页面只调用模块、渲染模块返回的状态。关键状态都要在界面上有样子——空、加载、成功、失败、被拒绝的非法操作——不只做漂亮的默认状态。
113
+ 把选定方向做成完整页面(做过首屏的从首屏扩展),作为逻辑模块外面的一层外壳:页面只调用模块、渲染模块返回的状态。关键状态都要在界面上有样子——空、加载、成功、失败、被拒绝的非法操作——不只做漂亮的默认状态。
95
114
 
96
115
  方向卡里的记忆点(某个动作的反馈、完成的那一刻)在这里做出来;动效遵循方向的调性。修改数据的动作一律经过逻辑模块,接口用桩代替,不接真实后端。
97
116
 
@@ -149,7 +168,7 @@ return (
149
168
 
150
169
  ## 交给用户
151
170
 
152
- 给出对比页路径、页面地址和 `?variant=` 的取值;第二段还要说明状态抽屉怎么打开、有哪些演练场景。用户有空时会翻看。最有价值的反馈常常是 **“我要 B 的顶栏配 C 的侧栏”**——那才是他们真正想要的设计。
171
+ 做了画面时,给出对比页路径、页面地址和 `?variant=` 的取值;第二段还要说明状态抽屉怎么打开、有哪些演练场景。用户有空时会翻看。最有价值的反馈常常是 **“我要 B 的顶栏配 C 的侧栏”**——那才是他们真正想要的设计。
153
172
 
154
173
  交付说明里写清:哪些是模拟数据、生成图片、未接入的动作;实际查看过哪些视口;哪一步没做以及原因。
155
174
 
@@ -165,6 +184,7 @@ return (
165
184
 
166
185
  ## 反模式
167
186
 
187
+ - **不问就做三个首屏。** 用户在场时先用文字问一次;从文字里定得下来,就不做首屏和对比页。
168
188
  - **方向之间只差颜色或文案。** 那是微调,不是原型。真正的方向在结构上互不相同。
169
189
  - **按明暗分方向。** “一个亮、一个暗、一个暖”是最常见的失败;每个方向要有自己的色彩身份。
170
190
  - **默认左右分栏。** 一轮里最多一个方向用左右分栏,并写出为什么非它不可。