@eximia-ventures/claude-code-toolkit 5.1.1 → 5.2.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.
- package/README.md +141 -23
- package/assets/skill/ds-apply.md +118 -0
- package/assets/skill/ds-install.md +94 -0
- package/assets/skill/ds-list.md +62 -0
- package/assets/skill/ds-pack.md +92 -0
- package/assets/skill/ds.md +248 -0
- package/package.json +1 -1
- package/src/modules/aios.js +6 -0
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
<p align="center">
|
|
11
11
|
<strong>Setup completo para Claude Code em um comando.</strong><br/>
|
|
12
|
-
Statusline customizada, session continuity, usage monitor, AIOS integration e Squad
|
|
12
|
+
Statusline customizada, session continuity, usage monitor, AIOS integration e Squad Arsenal.
|
|
13
13
|
</p>
|
|
14
14
|
|
|
15
15
|
<p align="center">
|
|
@@ -28,7 +28,7 @@ O `claude-code-toolkit` transforma sua experiência com o Claude Code instalando
|
|
|
28
28
|
| **Session Handoff** | Continuidade de sessão entre `/clear` (7 slash commands, 2 hooks) |
|
|
29
29
|
| **eximia-meter** | Monitor de consumo de tokens no menu bar do macOS |
|
|
30
30
|
| **AIOS Framework** | 7 slash commands com wizards interativos: story, epic, QA, publish, bootstrap, help, integrate (opt-in) |
|
|
31
|
-
| **Squad
|
|
31
|
+
| **Squad Arsenal** | Squads especializados — Forge (plataformas visuais), Design (Brad Frost, Atomic Design) |
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
@@ -465,6 +465,114 @@ forge/{target}/
|
|
|
465
465
|
└── deployment.md # Phase 8 — guia de deploy
|
|
466
466
|
```
|
|
467
467
|
|
|
468
|
+
---
|
|
469
|
+
|
|
470
|
+
### Squad Design 🎨
|
|
471
|
+
|
|
472
|
+
> **Brad Frost** — Design System Architect & Pattern Consolidator
|
|
473
|
+
|
|
474
|
+
Squad 100% independente (sem banco de dados, sem APIs externas) para criar, auditar e migrar design systems usando a metodologia Atomic Design.
|
|
475
|
+
|
|
476
|
+
#### Agent
|
|
477
|
+
|
|
478
|
+
| Agent | Persona | Papel |
|
|
479
|
+
|-------|---------|-------|
|
|
480
|
+
| `@design-system` 🎨 | Brad Frost (Atomic Design) | **Único executor** — audit, tokens, componentes, acessibilidade, migração |
|
|
481
|
+
|
|
482
|
+
**Filosofia Brad Frost:** *"Show the horror, then fix it"* — relatórios com números que fazem stakeholders dizer "oh god, what have we done" (47 botões → 3 = 93.6% de redução).
|
|
483
|
+
|
|
484
|
+
#### 3 Workflows
|
|
485
|
+
|
|
486
|
+
| Workflow | Descrição | Quando usar |
|
|
487
|
+
|----------|-----------|-------------|
|
|
488
|
+
| `brownfield-complete` | Audita codebase existente, consolida padrões, extrai tokens, gera plano de migração | Projeto legado sem DS |
|
|
489
|
+
| `greenfield-new` | Cria DS do zero com tokens, Shadcn/Tailwind, componentes atômicos | Projeto novo |
|
|
490
|
+
| `audit-only` | Gera relatórios de auditoria para stakeholders sem tocar no código | Apresentação executiva |
|
|
491
|
+
|
|
492
|
+
#### 33 Tasks especializadas
|
|
493
|
+
|
|
494
|
+
Organizadas em categorias:
|
|
495
|
+
|
|
496
|
+
| Categoria | Tasks |
|
|
497
|
+
|-----------|-------|
|
|
498
|
+
| **Brownfield** | ds-audit-codebase, ds-consolidate-patterns, ds-extract-tokens, ds-generate-shock-report, ds-calculate-roi |
|
|
499
|
+
| **Greenfield** | ds-setup-design-system, ds-build-component, ds-compose-molecule, bootstrap-shadcn-library |
|
|
500
|
+
| **Acessibilidade** | a11y-audit, aria-audit, contrast-matrix, focus-order-audit, audit-reading-experience |
|
|
501
|
+
| **Refactoring** | atomic-refactor-plan, atomic-refactor-execute, dead-code-detection, tailwind-upgrade |
|
|
502
|
+
| **Documentação** | ds-generate-documentation, create-doc, validate-design-fidelity |
|
|
503
|
+
| **Análise** | token-usage-analytics, bundle-audit, ds-health-metrics, design-compare |
|
|
504
|
+
|
|
505
|
+
#### Slash commands
|
|
506
|
+
|
|
507
|
+
| Comando | Descrição |
|
|
508
|
+
|---------|-----------|
|
|
509
|
+
| `/design-brownfield` | Pipeline brownfield completo (audit → consolidar → tokens → migração) |
|
|
510
|
+
| `/design-greenfield` | Criar design system do zero (tokens → Shadcn → componentes) |
|
|
511
|
+
| `/design-audit` | Relatório de auditoria para stakeholders (sem modificar código) |
|
|
512
|
+
| `/design-a11y` | Audit de acessibilidade (WCAG 2.1, Aria, contraste, foco) |
|
|
513
|
+
|
|
514
|
+
#### Integração com Forge
|
|
515
|
+
|
|
516
|
+
O `@design-system` é o executor da **Phase 3** do Squad Forge. Quando `/forge {squad}` roda, Brad Frost gera tokens, define o inventário de componentes e configura o tema Shadcn/Tailwind em `forge/{target}/design/`.
|
|
517
|
+
|
|
518
|
+
Se o `@eximia-ventures/ds` estiver instalado e houver `design-systems/manifest.json`, a Phase 3 **reutiliza os tokens do DS instalado** em vez de gerar do zero.
|
|
519
|
+
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
### Design System Manager (`@eximia-ventures/ds`) 📦
|
|
523
|
+
|
|
524
|
+
Pacote npm complementar que gerencia design systems como artefatos instaláveis (formato `.dspack`).
|
|
525
|
+
|
|
526
|
+
```bash
|
|
527
|
+
npm install @eximia-ventures/ds
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
**Formato `.dspack`** — zip padronizado compatível com W3C DTCG:
|
|
531
|
+
|
|
532
|
+
```
|
|
533
|
+
meu-ds.dspack
|
|
534
|
+
├── manifest.json # nome, versão, inventário, formato DTCG
|
|
535
|
+
├── tokens/
|
|
536
|
+
│ ├── tokens.json # W3C DTCG format
|
|
537
|
+
│ ├── tokens.css # CSS custom properties
|
|
538
|
+
│ └── tokens.tw.js # Tailwind config
|
|
539
|
+
└── components/
|
|
540
|
+
├── atoms/
|
|
541
|
+
├── molecules/
|
|
542
|
+
├── organisms/
|
|
543
|
+
└── templates/
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
**5 Skills instaladas com o AIOS:**
|
|
547
|
+
|
|
548
|
+
| Skill | Descrição |
|
|
549
|
+
|-------|-----------|
|
|
550
|
+
| `/ds` | Wizard central interativo — menu de operações |
|
|
551
|
+
| `/ds-pack` | Empacota um DS existente em `.dspack` |
|
|
552
|
+
| `/ds-install` | Instala um `.dspack` no projeto (`design-systems/`) |
|
|
553
|
+
| `/ds-list` | Lista DSs instalados e disponíveis |
|
|
554
|
+
| `/ds-apply` | Registra DS como ativo e gera `.ds-context.md` para Brad Frost e `@dev` |
|
|
555
|
+
|
|
556
|
+
**Fluxo com Forge:**
|
|
557
|
+
|
|
558
|
+
```mermaid
|
|
559
|
+
flowchart LR
|
|
560
|
+
PACK["meu-ds.dspack"] --> INSTALL["/ds-install"]
|
|
561
|
+
INSTALL --> MANIFEST["design-systems/\nmanifest.json"]
|
|
562
|
+
MANIFEST --> FORGE["@bret-victor *forge {squad}\nPhase 0: detecta DS instalado"]
|
|
563
|
+
FORGE --> P3["Phase 3: Brad Frost\nreutiliza tokens do DS"]
|
|
564
|
+
P3 --> OUT["forge/{target}/design/\ntokens + components + tema"]
|
|
565
|
+
|
|
566
|
+
style PACK fill:#f59e0b,color:#000,stroke:none
|
|
567
|
+
style INSTALL fill:#5B4FE5,color:#fff,stroke:none
|
|
568
|
+
style MANIFEST fill:#1e293b,color:#fff,stroke:none
|
|
569
|
+
style FORGE fill:#F56000,color:#fff,stroke:none
|
|
570
|
+
style P3 fill:#8b5cf6,color:#fff,stroke:none
|
|
571
|
+
style OUT fill:#22c55e,color:#fff,stroke:none
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
---
|
|
575
|
+
|
|
468
576
|
#### Integrar novos squads via inbox
|
|
469
577
|
|
|
470
578
|
Squads externos podem ser integrados via `/aios-integrate` ou pelo sistema de inbox:
|
|
@@ -537,31 +645,41 @@ claude-code-toolkit/
|
|
|
537
645
|
│ ├── aios-qa.md # QA toolkit
|
|
538
646
|
│ ├── aios-publish.md # Release management
|
|
539
647
|
│ ├── aios-bootstrap.md # Setup de projeto
|
|
540
|
-
│
|
|
648
|
+
│ ├── aios-help.md # Guia de comandos AIOS
|
|
649
|
+
│ ├── ds.md # Design System Manager — wizard central
|
|
650
|
+
│ ├── ds-pack.md # Empacotar DS em .dspack
|
|
651
|
+
│ ├── ds-install.md # Instalar .dspack no projeto
|
|
652
|
+
│ ├── ds-list.md # Listar DSs instalados
|
|
653
|
+
│ └── ds-apply.md # Registrar DS ativo + gerar contexto
|
|
541
654
|
└── squads/
|
|
542
|
-
|
|
655
|
+
├── forge/ # Squad Forge (Platform Materializer)
|
|
656
|
+
│ ├── squad.yaml # Manifest AIOS
|
|
657
|
+
│ ├── agents/
|
|
658
|
+
│ │ ├── bret-victor.md # Forge Orchestrator
|
|
659
|
+
│ │ ├── kinneret.md # Platform Voice Architect
|
|
660
|
+
│ │ └── wes-bush.md # Platform Growth Architect
|
|
661
|
+
│ ├── tasks/
|
|
662
|
+
│ │ ├── diagnose-squad.md # Detecta padrão de UI
|
|
663
|
+
│ │ └── map-capabilities.md # Capability → Feature mapping
|
|
664
|
+
│ ├── workflows/
|
|
665
|
+
│ │ └── wf-forge.yaml # Pipeline completo (9 fases)
|
|
666
|
+
│ ├── checklists/
|
|
667
|
+
│ ├── templates/
|
|
668
|
+
│ └── data/
|
|
669
|
+
│ ├── pattern-signatures.yaml
|
|
670
|
+
│ └── stack-recommendations.yaml
|
|
671
|
+
└── design/ # Squad Design (Brad Frost)
|
|
543
672
|
├── squad.yaml # Manifest AIOS
|
|
544
673
|
├── agents/
|
|
545
|
-
│
|
|
546
|
-
|
|
547
|
-
│ └── wes-bush.md # Platform Growth Architect
|
|
548
|
-
├── tasks/
|
|
549
|
-
│ ├── diagnose-squad.md # Detecta padrão de UI
|
|
550
|
-
│ └── map-capabilities.md # Capability → Feature mapping
|
|
674
|
+
│ └── design-system.md # Brad Frost — único agente
|
|
675
|
+
├── tasks/ # 33 tasks (audit, tokens, a11y, refactor...)
|
|
551
676
|
├── workflows/
|
|
552
|
-
│
|
|
553
|
-
├──
|
|
554
|
-
│
|
|
555
|
-
|
|
556
|
-
├── templates/
|
|
557
|
-
|
|
558
|
-
│ ├── platform-canvas-tmpl.yaml
|
|
559
|
-
│ ├── platform-wizard-tmpl.yaml
|
|
560
|
-
│ ├── platform-dashboard-tmpl.yaml
|
|
561
|
-
│ └── wizard-config-tmpl.yaml
|
|
562
|
-
└── data/
|
|
563
|
-
├── pattern-signatures.yaml # Sinais de detecção de padrão
|
|
564
|
-
└── stack-recommendations.yaml
|
|
677
|
+
│ ├── brownfield-complete.yaml
|
|
678
|
+
│ ├── greenfield-new.yaml
|
|
679
|
+
│ └── audit-only.yaml
|
|
680
|
+
├── checklists/ # 7 checklists
|
|
681
|
+
├── templates/ # 10 templates
|
|
682
|
+
└── data/ # 9 knowledge base files
|
|
565
683
|
```
|
|
566
684
|
|
|
567
685
|
---
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# ds-apply
|
|
2
|
+
|
|
3
|
+
Integra o design system instalado ao projeto — registra como ativo e prepara o contexto para o Brad Frost e o @dev implementarem.
|
|
4
|
+
|
|
5
|
+
**Este skill NÃO modifica código do projeto.**
|
|
6
|
+
A aplicação real (tokens no tailwind, componentes no src/) é responsabilidade do Brad Frost (`design:design-system`) e do @dev.
|
|
7
|
+
|
|
8
|
+
## Ativação
|
|
9
|
+
|
|
10
|
+
Ativado via `/ds-apply` no Claude Code.
|
|
11
|
+
|
|
12
|
+
## O que faz
|
|
13
|
+
|
|
14
|
+
1. Define o DS como ativo em `design-systems/manifest.json`
|
|
15
|
+
2. Valida a estrutura do DS (tokens, componentes, metodologia)
|
|
16
|
+
3. Gera um resumo de contexto para o Brad Frost e o @dev
|
|
17
|
+
4. Informa os próximos passos
|
|
18
|
+
|
|
19
|
+
## Processo
|
|
20
|
+
|
|
21
|
+
### 1. Identificar DS
|
|
22
|
+
|
|
23
|
+
Se o usuário passou argumento (`/ds-apply eximia-default`), usar esse.
|
|
24
|
+
Se não, ler `design-systems/manifest.json` e listar instalados:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
🎨 ds:apply — Integrar Design System
|
|
28
|
+
|
|
29
|
+
DSs instalados:
|
|
30
|
+
1. eximia-default v1.0.0 (ativo)
|
|
31
|
+
2. meu-ds v2.1.0
|
|
32
|
+
|
|
33
|
+
Qual integrar? (Enter para usar o ativo)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 2. Validar estrutura do DS
|
|
37
|
+
|
|
38
|
+
Verificar em `design-systems/{nome}/`:
|
|
39
|
+
- `manifest.json` existe e é válido
|
|
40
|
+
- Pasta `tokens/` ou arquivos de token presentes
|
|
41
|
+
- Estrutura Atomic Design presente (`atoms/`, `molecules/`, etc.) — se tiver componentes
|
|
42
|
+
|
|
43
|
+
Reportar o que foi encontrado:
|
|
44
|
+
```
|
|
45
|
+
Validando eximia-default...
|
|
46
|
+
✅ manifest.json — v1.0.0, Atomic Design
|
|
47
|
+
✅ tokens/ — 3 arquivo(s): tokens.json, tokens.css, tokens.tw.js
|
|
48
|
+
✅ atoms/ — 12 componente(s)
|
|
49
|
+
✅ molecules/ — 8 componente(s)
|
|
50
|
+
✅ organisms/ — 4 componente(s)
|
|
51
|
+
⚠️ templates/ — vazio
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 3. Definir como ativo
|
|
55
|
+
|
|
56
|
+
Atualizar `design-systems/manifest.json`:
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"active": "eximia-default"
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 4. Gerar contexto de handoff
|
|
64
|
+
|
|
65
|
+
Criar `design-systems/.ds-context.md` com as informações que o Brad Frost e o @dev precisam:
|
|
66
|
+
|
|
67
|
+
```markdown
|
|
68
|
+
# DS Ativo: eximia-default v1.0.0
|
|
69
|
+
|
|
70
|
+
## Localização
|
|
71
|
+
design-systems/eximia-default/
|
|
72
|
+
|
|
73
|
+
## Tokens disponíveis
|
|
74
|
+
- tokens/tokens.json — W3C DTCG format
|
|
75
|
+
- tokens/tokens.css — CSS custom properties
|
|
76
|
+
- tokens/tokens.tw.js — Tailwind config
|
|
77
|
+
|
|
78
|
+
## Componentes disponíveis
|
|
79
|
+
Atoms (12): Button, Input, Label, Badge, Icon, ...
|
|
80
|
+
Molecules (8): FormField, SearchBar, Card, ...
|
|
81
|
+
Organisms (4): Header, Sidebar, AuthForm, ...
|
|
82
|
+
Templates (0): —
|
|
83
|
+
|
|
84
|
+
## Metodologia
|
|
85
|
+
Atomic Design (Brad Frost)
|
|
86
|
+
|
|
87
|
+
## Para o Brad Frost (@design-system)
|
|
88
|
+
Use `design-systems/eximia-default/` como fonte de tokens e componentes.
|
|
89
|
+
Não gere tokens novos — reutilize os existentes.
|
|
90
|
+
|
|
91
|
+
## Para o @dev
|
|
92
|
+
Importe componentes de `design-systems/eximia-default/components/`.
|
|
93
|
+
Tokens CSS disponíveis em `design-systems/eximia-default/tokens/tokens.css`.
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 5. Confirmar integração
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
✅ Design System integrado!
|
|
100
|
+
|
|
101
|
+
DS ativo: eximia-default v1.0.0
|
|
102
|
+
Local: design-systems/eximia-default/
|
|
103
|
+
Contexto: design-systems/.ds-context.md
|
|
104
|
+
|
|
105
|
+
Próximos passos:
|
|
106
|
+
→ Brad Frost aplicará os tokens e componentes no projeto
|
|
107
|
+
→ @dev implementará os componentes conforme o DS
|
|
108
|
+
|
|
109
|
+
Para iniciar: @brad-frost *setup ou *build {componente}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Regras
|
|
113
|
+
|
|
114
|
+
- NÃO copiar arquivos para `src/` ou qualquer pasta do projeto
|
|
115
|
+
- NÃO modificar `tailwind.config.*`, `package.json` ou qualquer arquivo de configuração do projeto
|
|
116
|
+
- NÃO instalar dependências
|
|
117
|
+
- Apenas registrar, validar e preparar contexto
|
|
118
|
+
- O arquivo `.ds-context.md` é o único output gerado fora de `design-systems/`
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# ds-install
|
|
2
|
+
|
|
3
|
+
Instala um arquivo `.dspack` no projeto atual, extraindo seu conteúdo em `design-systems/`.
|
|
4
|
+
|
|
5
|
+
## Ativação
|
|
6
|
+
|
|
7
|
+
Ativado via `/ds-install {caminho}` no Claude Code.
|
|
8
|
+
|
|
9
|
+
## Processo
|
|
10
|
+
|
|
11
|
+
### 1. Identificar o arquivo
|
|
12
|
+
|
|
13
|
+
- **Com argumento**: `ds:install ./caminho/arquivo.dspack` — usar o caminho informado
|
|
14
|
+
- **Sem argumento**: listar arquivos `design-systems/*.dspack` e perguntar qual instalar
|
|
15
|
+
|
|
16
|
+
Se nenhum `.dspack` for encontrado, orientar o usuário a usar `ds:pack` ou obter um arquivo `.dspack`.
|
|
17
|
+
|
|
18
|
+
### 2. Validar o .dspack
|
|
19
|
+
|
|
20
|
+
Antes de extrair, verifique:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Verificar se é um zip válido
|
|
24
|
+
unzip -t "{caminho-do-dspack}"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Verificações:
|
|
28
|
+
- O arquivo existe no caminho informado
|
|
29
|
+
- É um zip válido (unzip -t não retorna erro)
|
|
30
|
+
- Contém `manifest.json` na raiz (`unzip -l` mostra o índice)
|
|
31
|
+
- O `manifest.json` tem `name` e `version`
|
|
32
|
+
|
|
33
|
+
Se qualquer verificação falhar, avise o usuário com a causa e interrompa.
|
|
34
|
+
|
|
35
|
+
### 3. Verificar conflito
|
|
36
|
+
|
|
37
|
+
Leia `design-systems/manifest.json`. Se o DS já estiver na lista `installed`:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
⚠️ {nome} v{versão-atual} já está instalado.
|
|
41
|
+
Substituir pela versão {versão-nova}? (s/n)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Se não, prosseguir.
|
|
45
|
+
|
|
46
|
+
### 4. Extrair
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Extrair para design-systems/{nome}/ a partir do caminho absoluto do .dspack
|
|
50
|
+
unzip -o "{caminho-absoluto-do-dspack}" -d "design-systems/{nome}/"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 5. Atualizar manifest.json do projeto
|
|
54
|
+
|
|
55
|
+
Leia `design-systems/manifest.json`, faça merge no array `installed` (não substitua), e salve:
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"version": "1.0.0",
|
|
60
|
+
"installed": [
|
|
61
|
+
{
|
|
62
|
+
"name": "{nome}",
|
|
63
|
+
"version": "{versão}",
|
|
64
|
+
"path": "design-systems/{nome}/",
|
|
65
|
+
"installed_at": "{ISO date atual}"
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
"active": "{nome}"
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
> Se já havia outros DSs em `installed`, mantê-los. Apenas adicionar (ou atualizar) o novo.
|
|
73
|
+
> Definir `active` como o DS recém-instalado.
|
|
74
|
+
|
|
75
|
+
### 6. Confirmar
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
✅ Design System instalado!
|
|
79
|
+
|
|
80
|
+
Nome: {nome}
|
|
81
|
+
Versão: {versão}
|
|
82
|
+
Local: design-systems/{nome}/
|
|
83
|
+
Status: ativo
|
|
84
|
+
|
|
85
|
+
Próximo passo:
|
|
86
|
+
/ds-apply → aplicar tokens e componentes no projeto
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Regras
|
|
90
|
+
|
|
91
|
+
- Sempre validar o zip antes de extrair
|
|
92
|
+
- Nunca sobrescrever instalação existente sem confirmação
|
|
93
|
+
- Fazer merge no array `installed`, nunca sobrescrever o manifest inteiro
|
|
94
|
+
- Definir o DS recém-instalado como `active` automaticamente
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# ds-list
|
|
2
|
+
|
|
3
|
+
Lista os design systems instalados e disponíveis no projeto atual.
|
|
4
|
+
|
|
5
|
+
## Ativação
|
|
6
|
+
|
|
7
|
+
Ativado via `/ds-list` no Claude Code.
|
|
8
|
+
|
|
9
|
+
## Processo
|
|
10
|
+
|
|
11
|
+
### 1. Verificar design-systems/
|
|
12
|
+
|
|
13
|
+
Se a pasta `design-systems/` não existir:
|
|
14
|
+
```
|
|
15
|
+
❌ design-systems/ não encontrado.
|
|
16
|
+
Execute: npm install @eximia-ventures/ds
|
|
17
|
+
```
|
|
18
|
+
Interromper.
|
|
19
|
+
|
|
20
|
+
### 2. Ler manifest.json
|
|
21
|
+
|
|
22
|
+
Leia `design-systems/manifest.json`.
|
|
23
|
+
|
|
24
|
+
Se não existir ou `installed` estiver vazio, pular para o passo 3.
|
|
25
|
+
|
|
26
|
+
### 3. Escanear .dspack disponíveis
|
|
27
|
+
|
|
28
|
+
Listar arquivos `design-systems/*.dspack` — estes estão disponíveis mas não instalados.
|
|
29
|
+
|
|
30
|
+
### 4. Exibir resultado
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
🎨 Design Systems — {nome-do-projeto}
|
|
34
|
+
|
|
35
|
+
Instalados:
|
|
36
|
+
✅ eximia-default v1.0.0 (ativo)
|
|
37
|
+
○ meu-ds v2.1.0
|
|
38
|
+
|
|
39
|
+
Disponíveis (não instalados):
|
|
40
|
+
📦 outro-ds.dspack
|
|
41
|
+
|
|
42
|
+
─────────────────────────────────
|
|
43
|
+
/ds-install {nome} → instalar
|
|
44
|
+
/ds-pack → empacotar um DS existente
|
|
45
|
+
/ds-apply → aplicar o DS ativo no projeto
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Se não houver nada instalado nem disponível:
|
|
49
|
+
```
|
|
50
|
+
🎨 Design Systems — {nome-do-projeto}
|
|
51
|
+
|
|
52
|
+
Nenhum DS encontrado.
|
|
53
|
+
|
|
54
|
+
/ds-pack → empacotar um design system existente
|
|
55
|
+
/ds-install → instalar um arquivo .dspack
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Regras
|
|
59
|
+
|
|
60
|
+
- Marcar o DS ativo com `(ativo)`
|
|
61
|
+
- Mostrar `.dspack` disponíveis separadamente dos instalados
|
|
62
|
+
- Nome do projeto vem do `package.json` (campo `name`) ou do nome do diretório atual
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# ds-pack
|
|
2
|
+
|
|
3
|
+
Empacota um design system existente em um arquivo `.dspack` (zip renomeado).
|
|
4
|
+
|
|
5
|
+
## Ativação
|
|
6
|
+
|
|
7
|
+
Ativado via `/ds-pack` no Claude Code.
|
|
8
|
+
|
|
9
|
+
## Processo
|
|
10
|
+
|
|
11
|
+
### 1. Coletar caminho
|
|
12
|
+
|
|
13
|
+
Pergunte ao usuário:
|
|
14
|
+
```
|
|
15
|
+
📦 ds:pack — Empacotar Design System
|
|
16
|
+
|
|
17
|
+
Informe o caminho do design system a empacotar:
|
|
18
|
+
(ex: ./src/design-system, ./tokens, ./ui)
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Se o caminho não existir, avise e interrompa.
|
|
22
|
+
|
|
23
|
+
### 2. Escanear o diretório
|
|
24
|
+
|
|
25
|
+
Analise o diretório e identifique:
|
|
26
|
+
- **Tokens**: `tokens.json`, `tokens.yaml`, `*.css` com variáveis CSS, `tailwind.config.*`
|
|
27
|
+
- **Componentes**: `*.tsx`, `*.jsx`, `*.vue` dentro de `atoms/`, `molecules/`, `organisms/`, `templates/`
|
|
28
|
+
- **Documentação**: `README.md`, `CHANGELOG.md`, configs do Storybook
|
|
29
|
+
|
|
30
|
+
### 3. Gerar manifest.json
|
|
31
|
+
|
|
32
|
+
Crie `{caminho}/manifest.json` com o inventário real do scan:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"name": "{nome-inferido-do-diretório}",
|
|
37
|
+
"version": "1.0.0",
|
|
38
|
+
"description": "",
|
|
39
|
+
"author": "",
|
|
40
|
+
"methodology": "atomic-design",
|
|
41
|
+
"tokens": {
|
|
42
|
+
"files": ["tokens/tokens.json"],
|
|
43
|
+
"format": "dtcg | css-variables | tailwind"
|
|
44
|
+
},
|
|
45
|
+
"components": {
|
|
46
|
+
"atoms": ["Button", "Input", "Label"],
|
|
47
|
+
"molecules": [],
|
|
48
|
+
"organisms": [],
|
|
49
|
+
"templates": []
|
|
50
|
+
},
|
|
51
|
+
"created_at": "{ISO date atual}"
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 4. Compactar
|
|
56
|
+
|
|
57
|
+
Use caminhos absolutos para evitar ambiguidade:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
zip -r "{caminho-absoluto-para-design-systems}/{nome}.dspack" "{caminho-absoluto-do-ds}/" \
|
|
61
|
+
-x "*/node_modules/*" \
|
|
62
|
+
-x "*/.git/*" \
|
|
63
|
+
-x "*/dist/*" \
|
|
64
|
+
-x "*/build/*" \
|
|
65
|
+
-x "*/.next/*"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
> **Windows (sem zip nativo):** use PowerShell:
|
|
69
|
+
> ```powershell
|
|
70
|
+
> Compress-Archive -Path "{caminho}" -DestinationPath "design-systems/{nome}.dspack"
|
|
71
|
+
> ```
|
|
72
|
+
|
|
73
|
+
### 5. Confirmar
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
✅ Design system empacotado!
|
|
77
|
+
|
|
78
|
+
Arquivo: design-systems/{nome}.dspack
|
|
79
|
+
Tamanho: {tamanho}
|
|
80
|
+
Tokens: {N} arquivo(s)
|
|
81
|
+
Atoms: {N} | Molecules: {N} | Organisms: {N}
|
|
82
|
+
|
|
83
|
+
Para instalar em outro projeto:
|
|
84
|
+
/ds-install design-systems/{nome}.dspack
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Regras
|
|
88
|
+
|
|
89
|
+
- Nunca incluir `node_modules/`, `.git/`, `dist/`, `build/` no pacote
|
|
90
|
+
- Sempre gerar `manifest.json` antes de compactar
|
|
91
|
+
- Salvar o `.dspack` em `design-systems/` da raiz do projeto atual
|
|
92
|
+
- Se `design-systems/` não existir, criar antes de salvar
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# ds
|
|
2
|
+
|
|
3
|
+
Assistente central do Design System Manager. Apresenta um menu interativo e guia o usuário pela operação desejada.
|
|
4
|
+
|
|
5
|
+
## Ativação
|
|
6
|
+
|
|
7
|
+
Ativado via `/ds` no Claude Code.
|
|
8
|
+
|
|
9
|
+
## Menu Principal
|
|
10
|
+
|
|
11
|
+
Ao ser ativado, sempre apresente:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
🎨 Design System Manager
|
|
15
|
+
|
|
16
|
+
Projeto: {nome do package.json ou nome do diretório}
|
|
17
|
+
DS ativo: {nome do DS ativo em design-systems/manifest.json, ou "nenhum"}
|
|
18
|
+
|
|
19
|
+
O que deseja fazer?
|
|
20
|
+
|
|
21
|
+
1. 📦 Empacotar — empacotar um DS existente em .dspack
|
|
22
|
+
2. 📥 Instalar — instalar um .dspack neste projeto
|
|
23
|
+
3. 📋 Listar — ver DSs instalados e disponíveis
|
|
24
|
+
4. 🎨 Aplicar — aplicar o DS ativo no projeto
|
|
25
|
+
5. ❓ Ajuda — ver dicas e comandos diretos
|
|
26
|
+
|
|
27
|
+
0. Sair
|
|
28
|
+
|
|
29
|
+
Digite o número da opção:
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Opção 1 — Empacotar
|
|
33
|
+
|
|
34
|
+
Execute o fluxo completo de `/ds-pack`:
|
|
35
|
+
|
|
36
|
+
### Passo 1 — Caminho do DS
|
|
37
|
+
```
|
|
38
|
+
📦 Empacotar Design System
|
|
39
|
+
|
|
40
|
+
Informe o caminho do design system:
|
|
41
|
+
(ex: ./src/design-system, ./tokens, ./ui)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Passo 2 — Confirmar inventário
|
|
45
|
+
Escaneie o diretório e exiba o que foi encontrado:
|
|
46
|
+
```
|
|
47
|
+
Encontrado em {caminho}:
|
|
48
|
+
|
|
49
|
+
Tokens: {N} arquivo(s) — {lista}
|
|
50
|
+
Atoms: {N} componente(s)
|
|
51
|
+
Molecules: {N} componente(s)
|
|
52
|
+
Organisms: {N} componente(s)
|
|
53
|
+
|
|
54
|
+
Nome sugerido: {nome-inferido}
|
|
55
|
+
Versão: 1.0.0
|
|
56
|
+
|
|
57
|
+
Confirmar e empacotar? (s/n)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Passo 3 — Empacotar e salvar
|
|
61
|
+
```bash
|
|
62
|
+
zip -r "design-systems/{nome}.dspack" "{caminho-absoluto}/" \
|
|
63
|
+
-x "*/node_modules/*" -x "*/.git/*" -x "*/dist/*" -x "*/build/*"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Resultado
|
|
67
|
+
```
|
|
68
|
+
✅ Empacotado!
|
|
69
|
+
|
|
70
|
+
design-systems/{nome}.dspack — {tamanho}
|
|
71
|
+
|
|
72
|
+
Próximo passo:
|
|
73
|
+
2 → Instalar em outro projeto
|
|
74
|
+
0 → Sair
|
|
75
|
+
|
|
76
|
+
Digite:
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Opção 2 — Instalar
|
|
82
|
+
|
|
83
|
+
Execute o fluxo completo de `/ds-install`:
|
|
84
|
+
|
|
85
|
+
### Passo 1 — Selecionar arquivo
|
|
86
|
+
Escaneie `design-systems/*.dspack` e liste:
|
|
87
|
+
```
|
|
88
|
+
📥 Instalar Design System
|
|
89
|
+
|
|
90
|
+
Arquivos disponíveis:
|
|
91
|
+
1. eximia-default.dspack
|
|
92
|
+
2. meu-ds.dspack
|
|
93
|
+
3. Informar outro caminho...
|
|
94
|
+
|
|
95
|
+
Selecione:
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Passo 2 — Validar
|
|
99
|
+
```
|
|
100
|
+
Validando {nome}.dspack...
|
|
101
|
+
✅ Arquivo válido
|
|
102
|
+
✅ manifest.json encontrado
|
|
103
|
+
Nome: {nome} | Versão: {versão}
|
|
104
|
+
|
|
105
|
+
Instalar? (s/n)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Passo 3 — Extrair e atualizar manifest
|
|
109
|
+
```bash
|
|
110
|
+
unzip -o "{caminho-absoluto}.dspack" -d "design-systems/{nome}/"
|
|
111
|
+
```
|
|
112
|
+
Atualizar `design-systems/manifest.json` fazendo merge no array `installed`.
|
|
113
|
+
|
|
114
|
+
### Resultado
|
|
115
|
+
```
|
|
116
|
+
✅ Instalado!
|
|
117
|
+
|
|
118
|
+
{nome} v{versão} — ativo
|
|
119
|
+
|
|
120
|
+
Próximo passo:
|
|
121
|
+
4 → Aplicar no projeto
|
|
122
|
+
0 → Sair
|
|
123
|
+
|
|
124
|
+
Digite:
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Opção 3 — Listar
|
|
130
|
+
|
|
131
|
+
Execute o fluxo de `/ds-list` e exiba:
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
📋 Design Systems — {projeto}
|
|
135
|
+
|
|
136
|
+
Instalados:
|
|
137
|
+
✅ eximia-default v1.0.0 (ativo)
|
|
138
|
+
○ meu-ds v2.1.0
|
|
139
|
+
|
|
140
|
+
Disponíveis para instalar:
|
|
141
|
+
📦 outro-ds.dspack
|
|
142
|
+
|
|
143
|
+
─────────────────────────
|
|
144
|
+
1 → Empacotar 2 → Instalar 4 → Aplicar 0 → Sair
|
|
145
|
+
|
|
146
|
+
Digite:
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Opção 4 — Aplicar
|
|
152
|
+
|
|
153
|
+
Execute o fluxo completo de `/ds-apply`:
|
|
154
|
+
|
|
155
|
+
### Passo 1 — Verificar DS ativo
|
|
156
|
+
Ler `design-systems/manifest.json → active`.
|
|
157
|
+
Se nenhum ativo, mostrar opção 3 antes de continuar.
|
|
158
|
+
|
|
159
|
+
### Passo 2 — Detectar stack (silencioso)
|
|
160
|
+
Antes de perguntar qualquer coisa, leia `package.json` e a estrutura de diretórios.
|
|
161
|
+
|
|
162
|
+
### Passo 3 — Wizard contextual
|
|
163
|
+
```
|
|
164
|
+
🎨 Aplicar DS — {nome} v{versão}
|
|
165
|
+
|
|
166
|
+
Stack detectada: {framework} + {css-approach}
|
|
167
|
+
Componentes: {pasta-detectada}
|
|
168
|
+
|
|
169
|
+
O que aplicar?
|
|
170
|
+
1. Apenas tokens ({formato} → {arquivo-destino})
|
|
171
|
+
2. Apenas componentes ({N} atoms, {N} molecules, {N} organisms)
|
|
172
|
+
3. Tudo
|
|
173
|
+
4. Interativo (arquivo por arquivo)
|
|
174
|
+
|
|
175
|
+
Selecione:
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Passo 4 — Preview antes de aplicar
|
|
179
|
+
```
|
|
180
|
+
Será aplicado:
|
|
181
|
+
|
|
182
|
+
Tokens:
|
|
183
|
+
→ {arquivo-destino} {novo | mesclar com existente}
|
|
184
|
+
|
|
185
|
+
Componentes:
|
|
186
|
+
→ {pasta}/atoms/ ({N} arquivos)
|
|
187
|
+
→ {pasta}/molecules/ ({N} arquivos)
|
|
188
|
+
|
|
189
|
+
Confirmar? (s/n)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Passo 5 — Aplicar e confirmar
|
|
193
|
+
Executar. Se conflito de arquivo:
|
|
194
|
+
```
|
|
195
|
+
⚠️ {arquivo} já existe.
|
|
196
|
+
Sobrescrever? (s = este | t = todos | n = pular)
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Resultado
|
|
200
|
+
```
|
|
201
|
+
✅ DS aplicado!
|
|
202
|
+
|
|
203
|
+
{N} token(s) → {destino}
|
|
204
|
+
{N} componente(s) → {pasta}
|
|
205
|
+
|
|
206
|
+
⚠️ Revise os imports antes de commitar.
|
|
207
|
+
|
|
208
|
+
0 → Sair
|
|
209
|
+
|
|
210
|
+
Digite:
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Opção 5 — Ajuda
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
❓ Design System Manager — Ajuda
|
|
219
|
+
|
|
220
|
+
Comandos diretos (atalhos):
|
|
221
|
+
/ds-pack → empacotar diretamente
|
|
222
|
+
/ds-install → instalar diretamente
|
|
223
|
+
/ds-list → listar diretamente
|
|
224
|
+
/ds-apply → aplicar diretamente
|
|
225
|
+
|
|
226
|
+
Formato .dspack:
|
|
227
|
+
→ Arquivo zip com manifest.json na raiz
|
|
228
|
+
→ Estrutura Atomic Design (atoms/molecules/organisms/templates)
|
|
229
|
+
→ Tokens em DTCG JSON, CSS vars ou Tailwind config
|
|
230
|
+
|
|
231
|
+
Pasta design-systems/:
|
|
232
|
+
→ Ignorada pelo git (cada dev instala localmente)
|
|
233
|
+
→ manifest.json rastreia DSs instalados e DS ativo
|
|
234
|
+
|
|
235
|
+
0 → Voltar ao menu
|
|
236
|
+
|
|
237
|
+
Digite:
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Regras Gerais
|
|
243
|
+
|
|
244
|
+
- Sempre ler `design-systems/manifest.json` ao iniciar para exibir estado atual
|
|
245
|
+
- Após cada operação, sempre oferecer próximo passo sugerido ou retorno ao menu
|
|
246
|
+
- Nunca sobrescrever arquivos sem confirmação explícita
|
|
247
|
+
- Detectar stack **antes** de exibir opções de aplicação
|
|
248
|
+
- Se `design-systems/` não existir, orientar: `npm install @eximia-ventures/ds`
|
package/package.json
CHANGED
package/src/modules/aios.js
CHANGED
|
@@ -14,6 +14,12 @@ const SKILLS = [
|
|
|
14
14
|
{ src: 'aios-publish.md', name: '/aios-publish', desc: 'Release management (version, changelog, publish)' },
|
|
15
15
|
{ src: 'aios-bootstrap.md', name: '/aios-bootstrap', desc: 'Setup de projeto (greenfield, brownfield, team, GitHub)' },
|
|
16
16
|
{ src: 'aios-help.md', name: '/aios-help', desc: 'Guia de comandos AIOS (reference, busca, workflows)' },
|
|
17
|
+
// Design System Manager (@eximia-ventures/ds)
|
|
18
|
+
{ src: 'ds.md', name: '/ds', desc: 'Design System Manager — wizard central interativo' },
|
|
19
|
+
{ src: 'ds-pack.md', name: '/ds-pack', desc: 'Empacotar design system em .dspack' },
|
|
20
|
+
{ src: 'ds-install.md', name: '/ds-install', desc: 'Instalar um .dspack no projeto' },
|
|
21
|
+
{ src: 'ds-list.md', name: '/ds-list', desc: 'Listar design systems instalados' },
|
|
22
|
+
{ src: 'ds-apply.md', name: '/ds-apply', desc: 'Registrar DS ativo e gerar contexto para Brad Frost/@dev' },
|
|
17
23
|
];
|
|
18
24
|
|
|
19
25
|
async function installCore({ targetDir } = {}) {
|