synthesisui 0.16.227 → 0.16.231
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/dist/absorb-plan.js +57 -5
- package/dist/commands/absorb.js +5 -6
- package/dist/commands/doctor.js +130 -34
- package/dist/commands/hook.js +3 -3
- package/dist/commands/mcp.js +3 -3
- package/dist/config.js +13 -6
- package/dist/doctor/apply-fix.js +40 -5
- package/dist/doctor/scan.js +62 -4
- package/dist/doctor/their-names.js +154 -0
- package/dist/doctor/tokens.js +18 -4
- package/dist/install-marks.js +28 -1
- package/dist/measured-scope.js +3 -1
- package/dist/skill-adapt.js +155 -70
- package/package.json +1 -1
package/dist/skill-adapt.js
CHANGED
|
@@ -38,16 +38,46 @@ com o meu design system?"*.
|
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
41
|
-
## 0.
|
|
41
|
+
## 0. COMO VOCÊ FALA COM ELE
|
|
42
|
+
|
|
43
|
+
**Ele quer saber o que está no projeto DELE. Nada do que está do nosso lado interessa.**
|
|
44
|
+
|
|
45
|
+
Esta seção vale acima de qualquer outra abaixo, porque uma medição perfeita escrita na
|
|
46
|
+
nossa língua é uma medição que ele não lê. Palavras que **nunca** aparecem para ele:
|
|
47
|
+
|
|
48
|
+
\`\`\`
|
|
49
|
+
ledger · census · scope · reading as ADOPTION · refresh_system · check_file
|
|
50
|
+
system_doctrine · carrier · alcançável · o número da versão do CLI · --fix --write
|
|
51
|
+
cobertura de token · o nome de qualquer comando ou ferramenta nossa
|
|
52
|
+
\`\`\`
|
|
53
|
+
|
|
54
|
+
A tradução é sempre a mesma: fale do **arquivo**, da **propriedade**, do **valor** e da
|
|
55
|
+
**variável dele**.
|
|
56
|
+
|
|
57
|
+
\`\`\`
|
|
58
|
+
em vez de diga
|
|
59
|
+
o ledger.cli está em 0.16.229 sua ferramenta está em dia
|
|
60
|
+
o scope do sistema é packages/ui este arquivo fica fora da pasta de onde o
|
|
61
|
+
seu design system nasceu, e isso é normal
|
|
62
|
+
1em → var(--ds-spacing-md) o seu projeto já chama esse valor de \`--spacing-md\`
|
|
63
|
+
cobertura de token: 0% nenhum destes valores vem do seu design system
|
|
64
|
+
rode doctor --fix --write eu troco para você, se você quiser
|
|
65
|
+
\`\`\`
|
|
66
|
+
|
|
67
|
+
**A variável que você oferece é a DELE.** O comando já devolve o nome do vocabulário dele
|
|
68
|
+
quando o repositório tem um - \`--color-lightgray-700\`, e não \`--ds-color-gray-400\`. Nunca
|
|
69
|
+
reescreva a sugestão para o nosso prefixo: renomear a variável dele não é adotar o sistema.
|
|
70
|
+
|
|
71
|
+
## 0b. O QUE ESTA SKILL NÃO FAZ
|
|
42
72
|
|
|
43
73
|
Três limites, e cada um existe por um motivo que já custou alguma coisa:
|
|
44
74
|
|
|
45
75
|
\`\`\`
|
|
46
|
-
não escreve sem propor é o repositório DELE.
|
|
47
|
-
|
|
76
|
+
não escreve sem propor é o repositório DELE. Escrever sem confirmação é outra
|
|
77
|
+
categoria de confiança, e uma skill que perde essa
|
|
48
78
|
confiança não é rodada uma segunda vez
|
|
49
|
-
não arquiva pedido
|
|
50
|
-
|
|
79
|
+
não arquiva pedido um pedido fila uma decisão na plataforma. A skill
|
|
80
|
+
PERGUNTA; quem decide é ele
|
|
51
81
|
não inventa token, nome um agente que cala um relatório fazendo o sistema crescer é
|
|
52
82
|
nem regra pior que a deriva que ele veio medir
|
|
53
83
|
\`\`\`
|
|
@@ -64,14 +94,14 @@ ao lado é justamente onde os valores à mão se escondem.
|
|
|
64
94
|
3. DIGA qual escopo você usou, com o número de arquivos
|
|
65
95
|
\`\`\`
|
|
66
96
|
|
|
67
|
-
Nunca meça os dois e escolha o maior. Diga o que mediu
|
|
97
|
+
Nunca meça os dois e escolha o maior. Diga o que mediu - **com os nomes dos arquivos**, não
|
|
98
|
+
com a palavra "escopo".
|
|
68
99
|
|
|
69
100
|
**O alvo fora da pasta importada é o caso COMUM, e não um erro.** O sistema nasceu de uma
|
|
70
|
-
pasta
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
\`request component\`.
|
|
101
|
+
pasta, e uma tela de app que consome o DS está fora dela - é literalmente o pedido
|
|
102
|
+
*"conserta essa página pro meu design system"*. Ali as variáveis valem igual, porque elas
|
|
103
|
+
são globais; o que não existe é receita daquele componente. Diga isso em uma linha, sem a
|
|
104
|
+
palavra "escopo", e siga.
|
|
75
105
|
|
|
76
106
|
## 2. MEÇA - e a medida é determinística, não sua
|
|
77
107
|
|
|
@@ -82,75 +112,96 @@ MCP check_file { path }
|
|
|
82
112
|
terminal npx synthesisui doctor <alvo>
|
|
83
113
|
\`\`\`
|
|
84
114
|
|
|
85
|
-
O que
|
|
115
|
+
Não recalcule nada de cabeça. O número que você reporta é o que o comando disse.
|
|
116
|
+
|
|
117
|
+
**A abertura tem três linhas e nenhuma a mais.** Ela responde "está em dia?", "o que você
|
|
118
|
+
leu?" e "como estou?", nesta ordem:
|
|
86
119
|
|
|
87
120
|
\`\`\`
|
|
88
|
-
|
|
89
|
-
scope: packages/ui/src/lib/SignalUI/organisms/ArticleCard/ArticleCard.tsx
|
|
121
|
+
sua ferramenta está em dia
|
|
90
122
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
123
|
+
li OverviewHeaderInformation - o componente e a folha de estilo dele, 2 arquivos
|
|
124
|
+
|
|
125
|
+
17 valores estão escritos à mão aqui, e nenhum vem do seu design system
|
|
94
126
|
\`\`\`
|
|
95
127
|
|
|
96
|
-
|
|
128
|
+
Se a ferramenta NÃO estiver em dia, essa primeira linha vira o primeiro item da fila, com o
|
|
129
|
+
comando à vista - uma medição feita com a versão velha responde outra coisa.
|
|
130
|
+
|
|
131
|
+
Os três grupos que o comando separa, e o que cada um vira:
|
|
97
132
|
|
|
98
133
|
\`\`\`
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
134
|
+
já usa uma variável nada a fazer
|
|
135
|
+
o projeto já nomeia é uma troca - vira item, com a variável DELE ao lado
|
|
136
|
+
ninguém nomeia é uma decisão dele - vira item, com as três saídas
|
|
102
137
|
\`\`\`
|
|
103
138
|
|
|
104
|
-
Não recalcule nada disso de cabeça. O número que você reporta é o que o comando disse.
|
|
105
|
-
|
|
106
139
|
## 3. MONTE A FILA, E CONTE OS ITENS ANTES DE COMEÇAR
|
|
107
140
|
|
|
108
141
|
Aqui é onde esta skill se ganha ou se perde. Despejar tudo de uma vez - duas regras, quatro
|
|
109
142
|
decisões, dez trocas - não é um relatório, é uma parede. Quem lê não tem como agir; só
|
|
110
143
|
concordar ou fechar a aba.
|
|
111
144
|
|
|
112
|
-
Junte tudo o que você achou
|
|
113
|
-
passo 5) numa fila ÚNICA, e **ordene por custo**:
|
|
145
|
+
Junte tudo o que você achou numa fila ÚNICA e **ordene por custo**:
|
|
114
146
|
|
|
115
147
|
\`\`\`
|
|
116
|
-
1º não muda um pixel troca por
|
|
117
|
-
2º
|
|
118
|
-
3º não é troca, é pedido
|
|
148
|
+
1º não muda um pixel troca por uma variável de mesmo valor
|
|
149
|
+
2º pode mudar o pixel \`em\` que segue a fonte, um degrau que colapsa
|
|
150
|
+
3º não é troca, é pedido variável nova, peça nova, regra nova
|
|
119
151
|
\`\`\`
|
|
120
152
|
|
|
121
153
|
Assim ele despacha o barato primeiro e para quando quiser, sem ficar devendo nada.
|
|
122
154
|
|
|
123
|
-
Anuncie o tamanho antes do primeiro item, sempre:
|
|
155
|
+
Anuncie o tamanho antes do primeiro item, sempre, e em uma frase que ele leia:
|
|
124
156
|
|
|
125
157
|
\`\`\`
|
|
126
|
-
|
|
158
|
+
achei 8 coisas. 2 não mudam nada na tela, 4 podem mudar, e 2 são decisão sua.
|
|
127
159
|
\`\`\`
|
|
128
160
|
|
|
129
|
-
## 4. UM ITEM POR VEZ, COM
|
|
161
|
+
## 4. UM ITEM POR VEZ, COM AS TRÊS SAÍDAS - e espere a resposta
|
|
130
162
|
|
|
131
163
|
Nunca apresente o item 2 antes de ele responder o 1. O cabeçalho carrega a posição, para
|
|
132
|
-
ele saber onde está e quanto falta
|
|
164
|
+
ele saber onde está e quanto falta. O corpo fala do componente dele, e termina numa
|
|
165
|
+
pergunta:
|
|
133
166
|
|
|
134
167
|
\`\`\`
|
|
135
|
-
item 1 de
|
|
168
|
+
item 1 de 8
|
|
169
|
+
|
|
170
|
+
OverviewHeaderInformation espaça com \`1em\` em 4 lugares, e esse valor não está
|
|
171
|
+
ligado ao seu design system.
|
|
172
|
+
|
|
173
|
+
styles.module.scss padding: 1em 0
|
|
174
|
+
padding-right: 1em
|
|
175
|
+
margin-left: 1em
|
|
176
|
+
margin-right: 0.5em
|
|
177
|
+
|
|
178
|
+
O que você quer fazer?
|
|
136
179
|
|
|
137
|
-
|
|
138
|
-
|
|
180
|
+
1 deixar como está
|
|
181
|
+
2 usar \`--spacing-md\`, que o seu projeto já tem
|
|
182
|
+
⚠ \`em\` segue a fonte do elemento, então isto pode mudar o espaçamento na tela
|
|
183
|
+
3 criar um nome novo para este valor no seu design system
|
|
139
184
|
|
|
140
|
-
[
|
|
185
|
+
[1] [2] [3] ou me diga outra coisa · [parar por aqui]
|
|
141
186
|
\`\`\`
|
|
142
187
|
|
|
143
|
-
|
|
188
|
+
As três saídas são sempre as mesmas, porque são as três que existem de verdade:
|
|
144
189
|
|
|
145
190
|
\`\`\`
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
191
|
+
1 deixar como está ele segue para o próximo, e o item entra no resumo como não mexido
|
|
192
|
+
2 usar uma variável você faz a edição e confirma em uma linha
|
|
193
|
+
SE a troca puder mudar a tela, isso vem escrito NA OPÇÃO, não depois
|
|
194
|
+
3 criar um nome novo vira um pedido, e é ele quem manda - ver o passo 6
|
|
150
195
|
\`\`\`
|
|
151
196
|
|
|
152
|
-
|
|
153
|
-
|
|
197
|
+
E \`parar por aqui\` fecha o resumo com o que andou. É sempre legítimo.
|
|
198
|
+
|
|
199
|
+
**Quando ele pedir para ver antes**, mostre as linhas e volte a perguntar - isso não conta
|
|
200
|
+
como resposta.
|
|
201
|
+
|
|
202
|
+
**Na opção 2, liste as variáveis dele quando houver mais de uma candidata.** Ele não decora
|
|
203
|
+
o vocabulário do próprio projeto, e escolher entre dois nomes é mais fácil que lembrar de
|
|
204
|
+
um.
|
|
154
205
|
|
|
155
206
|
## 5. AS REGRAS, QUE É A METADE QUE NENHUM COMANDO FAZ
|
|
156
207
|
|
|
@@ -167,8 +218,8 @@ e a terceira é a que interessa:
|
|
|
167
218
|
|
|
168
219
|
\`\`\`
|
|
169
220
|
cumpre some do relatório. Diga só o total no fim
|
|
170
|
-
NÃO cumpre vira um ITEM da fila, com arquivo, linha e
|
|
171
|
-
a regra não fala sobre isto vira um item de
|
|
221
|
+
NÃO cumpre vira um ITEM da fila, com arquivo, linha e as três saídas
|
|
222
|
+
a regra não fala sobre isto vira um item de decisão - uma regra nova
|
|
172
223
|
\`\`\`
|
|
173
224
|
|
|
174
225
|
Uma regra que você teve que interpretar para aplicar não é "cumpre". É o terceiro caso.
|
|
@@ -178,22 +229,25 @@ as que TÊM conserto pronto - é a melhor notícia do relatório vestida como a
|
|
|
178
229
|
|
|
179
230
|
## 6. OS PEDIDOS - você mostra o comando, ele roda
|
|
180
231
|
|
|
181
|
-
|
|
232
|
+
Quando ele escolhe a saída 3, existem três destinos, e todos existem de verdade:
|
|
182
233
|
|
|
183
234
|
\`\`\`
|
|
184
|
-
valor sem nome no sistema
|
|
235
|
+
um valor sem nome no sistema
|
|
185
236
|
-> npx synthesisui request token --value "<valor>" --name "<como se chamaria>" --for "<o caso>"
|
|
186
|
-
peça que falta
|
|
237
|
+
uma peça que falta
|
|
187
238
|
-> npx synthesisui request component --name "<nome>" --for "<o caso>"
|
|
188
|
-
|
|
239
|
+
o sistema não tem regra sobre este caso
|
|
189
240
|
-> npx synthesisui request rule --name "<o que a regra diria>" --for "<o caso que pediu>"
|
|
190
241
|
\`\`\`
|
|
191
242
|
|
|
192
243
|
**Arquivar em nome dele seria decidir por ele** - e tirar dele a chance de dizer "não, isso
|
|
193
|
-
fica local mesmo". Antes de propor
|
|
244
|
+
fica local mesmo". Antes de propor uma regra nova, leia a doutrina inteira: uma regra que já
|
|
194
245
|
existe e você não achou vira duplicata na fila, e a fila perde valor na terceira.
|
|
195
246
|
|
|
196
|
-
|
|
247
|
+
E o nome que você propõe para a variável nova segue a convenção DELE. Se o projeto escreve
|
|
248
|
+
\`--color-lightgray-700\`, o valor novo não vira \`--ds-color-neutral-4\`.
|
|
249
|
+
|
|
250
|
+
## 6b. A RÉGUA É O QUE DÁ PARA FAZER HOJE, E O TETO SE DIZ JUNTO
|
|
197
251
|
|
|
198
252
|
**100% quase nunca é alcançável hoje, e isso não é falha dele.** Se o sistema não tem nome
|
|
199
253
|
para \`#555\`, ninguém chega a 100% sem antes decidir criar esse nome. Um medidor que mostra
|
|
@@ -203,46 +257,77 @@ Os números para a conta certa já vêm do comando:
|
|
|
203
257
|
|
|
204
258
|
\`\`\`
|
|
205
259
|
3 valores à mão
|
|
206
|
-
2 o
|
|
207
|
-
1
|
|
260
|
+
2 o projeto já nomeia -> alcançável hoje: 67%
|
|
261
|
+
1 ninguém nomeia -> precisa de uma decisão dele
|
|
262
|
+
\`\`\`
|
|
263
|
+
|
|
264
|
+
Então o teto de hoje é 67% - e ao falar com ele, isso não se chama "alcançável", se chama
|
|
265
|
+
*"o máximo que dá para resolver sem você decidir nada novo"*.
|
|
266
|
+
|
|
267
|
+
## 6b-2. O ÚLTIMO ITEM DA FILA É MANDAR O REGISTRO
|
|
268
|
+
|
|
269
|
+
Cada escrita fica gravada numa fila local, e ela **nunca toca a rede** sozinha - essa
|
|
270
|
+
divisão é o que mantém a verificação instalada. Uma skill que mandasse por conta própria
|
|
271
|
+
seria a verificação ligando para casa.
|
|
272
|
+
|
|
273
|
+
Então o envio é um item como os outros, o último, e ele só acontece se ele mandar:
|
|
274
|
+
|
|
275
|
+
\`\`\`
|
|
276
|
+
item 8 de 8
|
|
277
|
+
|
|
278
|
+
você mudou 3 coisas nesta conversa. A plataforma ainda está pontuando este
|
|
279
|
+
repositório pelo que ela viu da última vez.
|
|
280
|
+
|
|
281
|
+
[mandar agora] [depois] npx synthesisui sync --record-only
|
|
282
|
+
\`\`\`
|
|
283
|
+
|
|
284
|
+
**\`--record-only\`, e não \`sync\` puro.** O \`sync\` completo re-mede tudo e reescreve as
|
|
285
|
+
receitas no RASCUNHO - fazer isso no fim de uma revisão move o chão de quem está revisando.
|
|
286
|
+
|
|
287
|
+
O \`sync\` COMPLETO é outro item, e só aparece quando algum item mexeu em FUNDAÇÃO (uma cor,
|
|
288
|
+
um degrau, uma variável nova). Aí a plataforma precisa reler, e a skill diz isso sem jargão:
|
|
289
|
+
|
|
290
|
+
\`\`\`
|
|
291
|
+
isto mexeu numa das bases do seu design system, então a plataforma precisa reler o
|
|
292
|
+
seu repositório. Você vê o resultado antes de publicar - ele reescreve as receitas no rascunho.
|
|
293
|
+
[rodar agora] [depois] npx synthesisui sync
|
|
208
294
|
\`\`\`
|
|
209
295
|
|
|
210
|
-
|
|
211
|
-
para fazer com o vocabulário que existe.
|
|
296
|
+
Se nada foi escrito, não ofereça nem um nem outro. Um item que não tem o que mandar é ruído.
|
|
212
297
|
|
|
213
298
|
## 6c. FECHE PELO QUE ANDOU, E MOSTRE O CAMINHO ATÉ 100%
|
|
214
299
|
|
|
215
300
|
\`\`\`
|
|
216
|
-
|
|
301
|
+
OverviewHeaderInformation 2 arquivos
|
|
217
302
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
303
|
+
dá para resolver hoje 82% é o que o seu vocabulário já cobre
|
|
304
|
+
resolvido 82% ✓ nada mecânico ficou para trás
|
|
305
|
+
deixado como estava 12 os \`em\`, que podem mexer no layout
|
|
306
|
+
esperando você 3 valores que ainda não têm nome
|
|
222
307
|
\`\`\`
|
|
223
308
|
|
|
224
309
|
Nunca "0% -> 0%". Se nada era mecânico, o teto era zero, e a frase é *"não havia nada que
|
|
225
|
-
o vocabulário de hoje resolvesse - o que existe são N decisões suas"*.
|
|
310
|
+
o seu vocabulário de hoje resolvesse - o que existe são N decisões suas"*.
|
|
226
311
|
|
|
227
312
|
E quando sobrou pedido, termine com o caminho, porque ele é de dois passos e o primeiro é
|
|
228
313
|
dele:
|
|
229
314
|
|
|
230
315
|
\`\`\`
|
|
231
316
|
para chegar a 100%, faltam dois passos:
|
|
232
|
-
1. autorize o pedido no
|
|
317
|
+
1. autorize o pedido no painel (ele já está na fila)
|
|
233
318
|
2. publique, e rode \`npx synthesisui upgrade\` aqui
|
|
234
319
|
depois disso, /sui-adapt neste componente fecha em 100%
|
|
235
320
|
\`\`\`
|
|
236
321
|
|
|
237
|
-
Autorizar escreve o RASCUNHO, e o repo recebe a última PUBLICADA - por isso os dois passos
|
|
238
|
-
|
|
239
|
-
|
|
322
|
+
Autorizar escreve o RASCUNHO, e o repo recebe a última PUBLICADA - por isso os dois passos.
|
|
323
|
+
Prometer que \`upgrade\` sozinho traz a variável é mandar a pessoa rodar um comando que
|
|
324
|
+
responde "already at the latest version".
|
|
240
325
|
|
|
241
326
|
Se a fila esvaziou, o fim é uma linha só:
|
|
242
327
|
|
|
243
328
|
\`\`\`
|
|
244
|
-
|
|
245
|
-
|
|
329
|
+
dá para resolver hoje 100%
|
|
330
|
+
resolvido 100% ✓ este componente está inteiro no seu design system
|
|
246
331
|
\`\`\`
|
|
247
332
|
|
|
248
333
|
## 7. ROTINA
|
|
@@ -255,8 +340,8 @@ depois de mexer componente novo, ou alteração grande: rode ANTES do commit, e
|
|
|
255
340
|
decisão ainda está quente e o conserto ainda é barato
|
|
256
341
|
\`\`\`
|
|
257
342
|
|
|
258
|
-
|
|
259
|
-
o que dizer. Esta skill é o passo deliberado: ela junta
|
|
260
|
-
conversa só, e termina com o cliente decidindo - não com um relatório.
|
|
343
|
+
A verificação automática já roda a metade determinística a cada escrita, calada quando não
|
|
344
|
+
há o que dizer. Esta skill é o passo deliberado: ela junta a verificação, a doutrina e a
|
|
345
|
+
fila numa conversa só, e termina com o cliente decidindo - não com um relatório.
|
|
261
346
|
`;
|
|
262
347
|
export const ADAPT_SKILL_PATH = ".claude/skills/sui-adapt/SKILL.md";
|
package/package.json
CHANGED