@eximia-ventures/claude-code-toolkit 5.1.0 → 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 +203 -33
- package/assets/skill/aios-integrate.md +22 -7
- 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
|
|
|
@@ -370,16 +370,47 @@ O Forge classifica automaticamente o squad em um dos 4 padrões visuais:
|
|
|
370
370
|
|
|
371
371
|
#### Pipeline wf-forge (9 fases)
|
|
372
372
|
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
Phase
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
Phase
|
|
381
|
-
|
|
382
|
-
|
|
373
|
+
```mermaid
|
|
374
|
+
flowchart TD
|
|
375
|
+
START(["@bret-victor *forge {squad}"]) --> P0
|
|
376
|
+
|
|
377
|
+
P0["Phase 0\nQuick Wizard\n@bret-victor"]
|
|
378
|
+
P0 --> P1
|
|
379
|
+
|
|
380
|
+
P1["Phase 1\nAnalysis\n@bret-victor"]
|
|
381
|
+
P1 --> PAT{Padrão\ndetectado}
|
|
382
|
+
PAT --> CHAT["Chat\nVercel AI SDK"]
|
|
383
|
+
PAT --> CANVAS["Canvas\nReact DnD"]
|
|
384
|
+
PAT --> WIZARD["Wizard\nRHF + Zod"]
|
|
385
|
+
PAT --> DASH["Dashboard\nTremor"]
|
|
386
|
+
|
|
387
|
+
CHAT & CANVAS & WIZARD & DASH --> P2
|
|
388
|
+
|
|
389
|
+
P2["Phase 2\nStrategy\n@wes-bush"]
|
|
390
|
+
P2 --> P3["Phase 3\nDesign System\n@design-system"]
|
|
391
|
+
P3 --> P4["Phase 4\nUX Writing\n@kinneret"]
|
|
392
|
+
P4 --> P5["Phase 5\nSpec\n@pm + @architect"]
|
|
393
|
+
P5 --> P6["Phase 6\nBuild\n@dev"]
|
|
394
|
+
P6 --> P7["Phase 7\nQA\n@qa"]
|
|
395
|
+
P7 --> P8["Phase 8\nDeploy\n@devops"]
|
|
396
|
+
P8 --> END(["✓ Plataforma publicada"])
|
|
397
|
+
|
|
398
|
+
style START fill:#F56000,color:#fff,stroke:none
|
|
399
|
+
style END fill:#22c55e,color:#fff,stroke:none
|
|
400
|
+
style P0 fill:#F56000,color:#fff,stroke:none
|
|
401
|
+
style P1 fill:#F56000,color:#fff,stroke:none
|
|
402
|
+
style P2 fill:#3b82f6,color:#fff,stroke:none
|
|
403
|
+
style P3 fill:#8b5cf6,color:#fff,stroke:none
|
|
404
|
+
style P4 fill:#ec4899,color:#fff,stroke:none
|
|
405
|
+
style P5 fill:#5B4FE5,color:#fff,stroke:none
|
|
406
|
+
style P6 fill:#22c55e,color:#fff,stroke:none
|
|
407
|
+
style P7 fill:#f59e0b,color:#000,stroke:none
|
|
408
|
+
style P8 fill:#14b8a6,color:#fff,stroke:none
|
|
409
|
+
style PAT fill:#1e293b,color:#fff,stroke:none
|
|
410
|
+
style CHAT fill:#0ea5e9,color:#fff,stroke:none
|
|
411
|
+
style CANVAS fill:#a855f7,color:#fff,stroke:none
|
|
412
|
+
style WIZARD fill:#f97316,color:#fff,stroke:none
|
|
413
|
+
style DASH fill:#10b981,color:#fff,stroke:none
|
|
383
414
|
```
|
|
384
415
|
|
|
385
416
|
#### Slash commands
|
|
@@ -434,6 +465,114 @@ forge/{target}/
|
|
|
434
465
|
└── deployment.md # Phase 8 — guia de deploy
|
|
435
466
|
```
|
|
436
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
|
+
|
|
437
576
|
#### Integrar novos squads via inbox
|
|
438
577
|
|
|
439
578
|
Squads externos podem ser integrados via `/aios-integrate` ou pelo sistema de inbox:
|
|
@@ -449,6 +588,27 @@ Squads externos podem ser integrados via `/aios-integrate` ou pelo sistema de in
|
|
|
449
588
|
# Depois execute /aios-integrate — o inbox é detectado automaticamente
|
|
450
589
|
```
|
|
451
590
|
|
|
591
|
+
```mermaid
|
|
592
|
+
flowchart LR
|
|
593
|
+
ZIP["squad-export.zip"] --> INBOX[".aios-core/inbox/{squad}/"]
|
|
594
|
+
INBOX --> DETECT{"/aios-integrate\ndetecta inbox"}
|
|
595
|
+
DETECT --> VAL["Validação\nschema + IDs"]
|
|
596
|
+
VAL -->|PASS| COPY["squads/{name}/\n+ .codex/agents/\n+ .antigravity/\n+ .agent/workflows/"]
|
|
597
|
+
VAL -->|FAIL| ERR["Erro reportado\n+ sugestão de fix"]
|
|
598
|
+
COPY --> CSV[".aios-core/manifests/agents.csv\natualizado"]
|
|
599
|
+
COPY --> CMD[".claude/commands/\n{prefix}-*.md criados"]
|
|
600
|
+
COPY --> PROC[".aios-core/inbox/.processed/\nartefato arquivado"]
|
|
601
|
+
|
|
602
|
+
style ZIP fill:#f59e0b,color:#000,stroke:none
|
|
603
|
+
style DETECT fill:#5B4FE5,color:#fff,stroke:none
|
|
604
|
+
style VAL fill:#1e293b,color:#fff,stroke:none
|
|
605
|
+
style COPY fill:#22c55e,color:#fff,stroke:none
|
|
606
|
+
style ERR fill:#ef4444,color:#fff,stroke:none
|
|
607
|
+
style CSV fill:#3b82f6,color:#fff,stroke:none
|
|
608
|
+
style CMD fill:#8b5cf6,color:#fff,stroke:none
|
|
609
|
+
style PROC fill:#64748b,color:#fff,stroke:none
|
|
610
|
+
```
|
|
611
|
+
|
|
452
612
|
---
|
|
453
613
|
|
|
454
614
|
## Arquitetura
|
|
@@ -485,31 +645,41 @@ claude-code-toolkit/
|
|
|
485
645
|
│ ├── aios-qa.md # QA toolkit
|
|
486
646
|
│ ├── aios-publish.md # Release management
|
|
487
647
|
│ ├── aios-bootstrap.md # Setup de projeto
|
|
488
|
-
│
|
|
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
|
|
489
654
|
└── squads/
|
|
490
|
-
|
|
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)
|
|
491
672
|
├── squad.yaml # Manifest AIOS
|
|
492
673
|
├── agents/
|
|
493
|
-
│
|
|
494
|
-
|
|
495
|
-
│ └── wes-bush.md # Platform Growth Architect
|
|
496
|
-
├── tasks/
|
|
497
|
-
│ ├── diagnose-squad.md # Detecta padrão de UI
|
|
498
|
-
│ └── map-capabilities.md # Capability → Feature mapping
|
|
674
|
+
│ └── design-system.md # Brad Frost — único agente
|
|
675
|
+
├── tasks/ # 33 tasks (audit, tokens, a11y, refactor...)
|
|
499
676
|
├── workflows/
|
|
500
|
-
│
|
|
501
|
-
├──
|
|
502
|
-
│
|
|
503
|
-
|
|
504
|
-
├── templates/
|
|
505
|
-
|
|
506
|
-
│ ├── platform-canvas-tmpl.yaml
|
|
507
|
-
│ ├── platform-wizard-tmpl.yaml
|
|
508
|
-
│ ├── platform-dashboard-tmpl.yaml
|
|
509
|
-
│ └── wizard-config-tmpl.yaml
|
|
510
|
-
└── data/
|
|
511
|
-
├── pattern-signatures.yaml # Sinais de detecção de padrão
|
|
512
|
-
└── 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
|
|
513
683
|
```
|
|
514
684
|
|
|
515
685
|
---
|
|
@@ -597,15 +597,30 @@ Quando o usuario escolher exportar:
|
|
|
597
597
|
```
|
|
598
598
|
Incluir este arquivo dentro do pacote exportado.
|
|
599
599
|
|
|
600
|
-
4. **
|
|
601
|
-
- **Preferido:** `zip -r {artifact-name}-export.zip {files}`
|
|
602
|
-
- **Fallback:** Se `zip` nao disponivel (`which zip` falha), usar `tar -czf {artifact-name}-export.tar.gz {files}` com aviso: "Comando `zip` nao encontrado. Usando tar.gz como fallback."
|
|
600
|
+
4. **Perguntar o formato de saida (wizard obrigatorio):**
|
|
603
601
|
|
|
604
|
-
|
|
602
|
+
Exibir sempre, independente de quais ferramentas estao disponiveis:
|
|
603
|
+
|
|
604
|
+
```
|
|
605
|
+
Formato de exportacao:
|
|
606
|
+
1. .zip — Compativel com /aios-integrate (recomendado)
|
|
607
|
+
2. .tar.gz — Alternativa Unix
|
|
608
|
+
3. Pasta — Diretorio descompactado (sem empacotamento)
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
- Se o usuario escolher `.zip` mas `zip` nao estiver disponivel (`which zip` falhar) → exibir: "Comando `zip` nao encontrado. Deseja usar `.tar.gz` como alternativa? (s/n)"
|
|
612
|
+
- Se o usuario escolher `.tar.gz` mas `tar` nao estiver disponivel → exibir erro e sugerir "Pasta" como alternativa
|
|
613
|
+
- **Default:** opcao 1 (`.zip`) — highlight no menu
|
|
614
|
+
|
|
615
|
+
5. **Empacotar** conforme escolha:
|
|
616
|
+
- `.zip` → `zip -r {artifact-name}-export.zip {files}`
|
|
617
|
+
- `.tar.gz` → `tar -czf {artifact-name}-export.tar.gz {files}`
|
|
618
|
+
- `Pasta` → copiar arquivos para `./{artifact-name}-export/` sem compressao
|
|
605
619
|
|
|
606
620
|
6. **Relatorio:**
|
|
607
621
|
```
|
|
608
|
-
✓ Exportado: ./{artifact-name}-export.
|
|
622
|
+
✓ Exportado: ./{artifact-name}-export.{ext}
|
|
623
|
+
Formato: {zip | tar.gz | pasta}
|
|
609
624
|
Conteudo: N arquivos, M KB
|
|
610
625
|
Inclui: _manifest-entry.csv (para re-importacao)
|
|
611
626
|
Arquivos:
|
|
@@ -613,10 +628,10 @@ Quando o usuario escolher exportar:
|
|
|
613
628
|
- commands/{id}-cmd1.md
|
|
614
629
|
- commands/{id}-cmd2.md
|
|
615
630
|
- _manifest-entry.csv
|
|
616
|
-
Para importar em outro projeto: /aios-integrate → Integrar → caminho do
|
|
631
|
+
Para importar em outro projeto: /aios-integrate → Integrar → caminho do arquivo
|
|
617
632
|
```
|
|
618
633
|
|
|
619
|
-
**Na importacao (Integrar):** Detectar e aceitar
|
|
634
|
+
**Na importacao (Integrar):** Detectar e aceitar `.zip`, `.tar.gz` e pastas descompactadas. Extrair/ler para pasta temporaria e processar o conteudo normalmente. Se `_manifest-entry.csv` existir no pacote, usar seus dados como base para o registro no manifest.
|
|
620
635
|
|
|
621
636
|
---
|
|
622
637
|
|
|
@@ -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 } = {}) {
|