synthesisui 0.16.281 → 0.16.283
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/commands/mcp.js +3 -3
- package/dist/guide.js +21 -1
- package/dist/install-marks.js +1 -1
- package/dist/skill-configure.js +13 -0
- package/dist/skills.js +16 -0
- package/package.json +1 -1
package/dist/commands/mcp.js
CHANGED
|
@@ -184,14 +184,14 @@ const TOOLS = [
|
|
|
184
184
|
},
|
|
185
185
|
{
|
|
186
186
|
name: "playbook",
|
|
187
|
-
description: "The skill playbooks (init, import, adapt, compose) - SERVED, not shipped, so they are always current and your context only carries the step you are on. Call with { skill } to get the framing and a table of contents; then fetch ONLY the chapter for your current step with { skill, section }. Never fetch more than the step needs. `compose` is the hierarchy to walk when this system has no recipe for what you were asked to build - the layers it DOES have, in order.",
|
|
187
|
+
description: "The skill playbooks (init, import, adapt, compose, configure) - SERVED, not shipped, so they are always current and your context only carries the step you are on. Call with { skill } to get the framing and a table of contents; then fetch ONLY the chapter for your current step with { skill, section }. Never fetch more than the step needs. `compose` is the hierarchy to walk when this system has no recipe for what you were asked to build - the layers it DOES have, in order.",
|
|
188
188
|
inputSchema: {
|
|
189
189
|
type: "object",
|
|
190
190
|
properties: {
|
|
191
191
|
skill: {
|
|
192
192
|
type: "string",
|
|
193
|
-
enum: ["init", "import", "adapt", "compose"],
|
|
194
|
-
description: "Which playbook. `compose` is the one for building something this system has no recipe for.",
|
|
193
|
+
enum: ["init", "import", "adapt", "compose", "configure"],
|
|
194
|
+
description: "Which playbook. `compose` is the one for building something this system has no recipe for; `configure` is the one for wiring an installed system into the app when its tokens are not reaching the browser.",
|
|
195
195
|
},
|
|
196
196
|
section: {
|
|
197
197
|
type: "string",
|
package/dist/guide.js
CHANGED
|
@@ -262,6 +262,23 @@ export function buildGuide(payload) {
|
|
|
262
262
|
const { document: doc, slug, name, version } = payload;
|
|
263
263
|
const { meta, foundations, motion, components } = doc;
|
|
264
264
|
const semanticRoles = Object.keys(foundations.color.semantic);
|
|
265
|
+
/**
|
|
266
|
+
* O NOME QUE ELE DÁ AO PAPEL, quando o documento sabe qual é - `semanticNames`.
|
|
267
|
+
*
|
|
268
|
+
* O guia listava `info, faint, muted, scrim, accent, border, canvas, danger, raised, overlay,
|
|
269
|
+
* primary, success, surface, warning` e chamava isso de vocabulário do sistema DELE. Nenhuma dessas
|
|
270
|
+
* palavras está no código dele: `canvas` é `paper`, `primary` é `brand-blue`, `danger` é
|
|
271
|
+
* `feedback-error`. Este arquivo é o que o agente dele LÊ antes de escrever, então a nossa língua
|
|
272
|
+
* aqui vira o código dele.
|
|
273
|
+
*
|
|
274
|
+
* A missão de 16/08 tirou o nosso identificador das telas e da saída de texto do CLI; o guia é
|
|
275
|
+
* artefato e escapou da varredura. Medido em 22/08 no `codelevel-ui`: 14 papéis listados, 12 com
|
|
276
|
+
* nome dele guardado no documento e nenhum aparecendo.
|
|
277
|
+
*
|
|
278
|
+
* Sem `semanticNames` o papel sai como está - é o caso de um sistema que NASCEU aqui, e aí o nome
|
|
279
|
+
* é nosso mesmo.
|
|
280
|
+
*/
|
|
281
|
+
const theirRole = (role) => foundations.color.semanticNames?.[role] ?? role;
|
|
265
282
|
/**
|
|
266
283
|
* AS CORES QUE ELE NOMEIA POR PROPÓSITO, no arquivo que o agente lê primeiro.
|
|
267
284
|
*
|
|
@@ -679,7 +696,10 @@ ${hasTailwind
|
|
|
679
696
|
The token names below are the source vocabulary - every utility derives from them.`
|
|
680
697
|
: ""}
|
|
681
698
|
- **Always use semantic tokens**, never raw values nor primitives directly.
|
|
682
|
-
Color: \`var(--ds-color-semantic-<role>)\`${hasTailwind ? " (utility: `bg-<role>`/`text-<role>`)" : ""}. The roles are: ${list(semanticRoles)
|
|
699
|
+
Color: \`var(--ds-color-semantic-<role>)\`${hasTailwind ? " (utility: `bg-<role>`/`text-<role>`)" : ""}. The roles are: ${list(semanticRoles.map((r) => {
|
|
700
|
+
const theirs = theirRole(r);
|
|
701
|
+
return theirs === r ? r : `${r} (${theirs} in your code)`;
|
|
702
|
+
}))}.
|
|
683
703
|
- Primitives (\`--ds-color-<palette>-<step>\`) exist but should **not** be referenced directly -
|
|
684
704
|
they feed the semantic roles.${namedColours.length > 0
|
|
685
705
|
? `\n- **Yours by name** → \`var(--ds-color-<name>)\`: ${namedColours.length} colour${namedColours.length === 1 ? "" : "s"} your code names by PURPOSE rather than by step, so no scale could hold ${namedColours.length === 1 ? "it" : "them"} - ${list(namedColours.slice(0, 8))}${namedColours.length > 8 ? ", …" : ""}. These are yours: reach for them when the purpose matches, and prefer a semantic role when it does not.`
|
package/dist/install-marks.js
CHANGED
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
* é sempre o bump deste PR - nunca o número que o `package.json` já carrega, porque alguém pode
|
|
129
129
|
* publicar no meio.
|
|
130
130
|
*/
|
|
131
|
-
export const MATERIALISER_SINCE = "0.16.
|
|
131
|
+
export const MATERIALISER_SINCE = "0.16.283";
|
|
132
132
|
/**
|
|
133
133
|
* A ÚLTIMA VERSÃO EM QUE O QUE O HOOK RODA MUDOU.
|
|
134
134
|
*
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* O STUB DA SKILL - o corpo é SERVIDO, não embarcado (R1, dono 16/08).
|
|
3
|
+
*
|
|
4
|
+
* Mesma doutrina das outras quatro: o frontmatter fica inteiro aqui, porque é a `description` que
|
|
5
|
+
* faz a skill ser invocada e ela não é segredo; a esteira mora em `apps/web/src/lib/ds/playbooks.ts`
|
|
6
|
+
* e chega pelo catalogue autenticado.
|
|
7
|
+
*
|
|
8
|
+
* O QUE ELA RESOLVE: um sistema instalado e sincronizado pode não mudar um pixel na tela dele. Até
|
|
9
|
+
* uma folha de estilo importar os tokens e um elemento carregar `data-ds`, nada chega ao navegador -
|
|
10
|
+
* e essa era a única parte da instalação que ninguém escrevia, só imprimia.
|
|
11
|
+
*/
|
|
12
|
+
export const CONFIGURE_SKILL_PATH = ".claude/skills/sui-configure-ds/SKILL.md";
|
|
13
|
+
export const CONFIGURE_SKILL = '---\nname: sui-configure-ds\ndescription: Wire an installed design system into the app so its tokens actually reach the browser - the stylesheet import, the data-ds scope, and the type. Use when a system is installed and the app does not look themed, when `doctor` reports "installed - but not wired up yet", or when somebody asks to set up / connect / configure the design system in their app ("configura o design system aqui", "why aren\'t the tokens working", "/sui-configure-ds"). Asks the doctor first and does nothing when the three checks already pass.\n---\n\n# Wiring the system into the app - served live\n\nThis playbook is served from the platform, not shipped in this file - it is\nalways current, and your context only carries the step you are on.\n\n1. Call the `playbook` tool on the `synthesisui` MCP server with\n { "skill": "configure" } - you get the framing and a table of contents.\n2. Fetch ONLY the chapter for the step you are on:\n { "skill": "configure", "section": "<id from the toc>" }. Never fetch more\n than the current step needs.\n3. Follow it exactly. When the step is done, fetch the next chapter.\n\nStart by running `npx synthesisui doctor`: the three lines it prints are what\ndecide the work, and three ticks means there is nothing to do.\n\nIf the tool answers that you are not signed in, run `npx synthesisui login`\nin the terminal and call it again. If the `synthesisui` MCP server is not\navailable at all, run `npx synthesisui connect`, restart the session, and\ninvoke this skill again.\n';
|
package/dist/skills.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ADAPT_SKILL, ADAPT_SKILL_PATH } from "./skill-adapt.js";
|
|
2
2
|
import { COMPOSE_SKILL, COMPOSE_SKILL_PATH } from "./skill-compose.js";
|
|
3
|
+
import { CONFIGURE_SKILL, CONFIGURE_SKILL_PATH } from "./skill-configure.js";
|
|
3
4
|
import { IMPORT_SKILL, IMPORT_SKILL_PATH } from "./skill-import.js";
|
|
4
5
|
import { INIT_SKILL, INIT_SKILL_PATH } from "./skill-init.js";
|
|
5
6
|
/**
|
|
@@ -53,4 +54,19 @@ export const SKILLS = [
|
|
|
53
54
|
label: "/sui-compose",
|
|
54
55
|
what: "build what the system does not have, layer by layer",
|
|
55
56
|
},
|
|
57
|
+
/**
|
|
58
|
+
* A DE LIGAR O SISTEMA NO APP, e ela é a única aqui que fecha um passo que a esteira já sabia
|
|
59
|
+
* diagnosticar e não sabia resolver.
|
|
60
|
+
*
|
|
61
|
+
* O `add` IMPRIME a fiação, o `doctor` CONFERE a fiação com três ✓/✗, e nada a ESCREVE. Enquanto
|
|
62
|
+
* ela falta, os tokens não chegam ao navegador e o `doctor --fix` fica recusado de propósito - um
|
|
63
|
+
* fix num projeto sem fiação trocou 210 literais por variáveis que o navegador não resolvia e mudou
|
|
64
|
+
* a página (06/08).
|
|
65
|
+
*/
|
|
66
|
+
{
|
|
67
|
+
path: CONFIGURE_SKILL_PATH,
|
|
68
|
+
source: CONFIGURE_SKILL,
|
|
69
|
+
label: "/sui-configure-ds",
|
|
70
|
+
what: "the system wired into the app, so the tokens reach the browser",
|
|
71
|
+
},
|
|
56
72
|
];
|
package/package.json
CHANGED