@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 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 Forge.
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 Forge** | Arsenal de squads especializados — transforma agents em plataformas visuais interativas |
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
- Phase 0: Quick Wizard ───── @bret-victor (3 perguntas, depois autônomo)
375
- Phase 1: Analysis ───────── @bret-victor (detecção de padrão + capability mapping)
376
- Phase 2: Strategy ───────── @wes-bush (PLG, onboarding, multi-tenant)
377
- Phase 3: Design System ──── @design-system (tokens, components — Brad Frost)
378
- Phase 4: UX Writing ─────── @kinneret (voice chart, microcopy, narrativa)
379
- Phase 5: Spec ───────────── @pm + @architect (PRD + tech spec + api design)
380
- Phase 6: Build ──────────── @dev (implementação)
381
- Phase 7: QA ─────────────── @qa (validação)
382
- Phase 8: Deploy ─────────── @devops (publicação)
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
- └── aios-help.md # Guia de comandos AIOS
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
- └── forge/ # Squad Forge (Platform Materializer)
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
- ├── bret-victor.md # Forge Orchestrator
494
- ├── kinneret.md # Platform Voice Architect
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
- └── wf-forge.yaml # Pipeline completo (9 fases)
501
- ├── checklists/
502
- ├── forge-readiness-checklist.md
503
- │ └── productization-checklist.md
504
- ├── templates/
505
- │ ├── platform-chat-tmpl.yaml
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. **Empacotar:**
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
- 5. **Salvar** na pasta atual
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.zip
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 .zip
631
+ Para importar em outro projeto: /aios-integrate → Integrar → caminho do arquivo
617
632
  ```
618
633
 
619
- **Na importacao (Integrar):** Detectar e aceitar tanto `.zip` quanto `.tar.gz`. Extrair 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.
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eximia-ventures/claude-code-toolkit",
3
- "version": "5.1.0",
3
+ "version": "5.2.0",
4
4
  "description": "Setup completo para Claude Code: statusline, session handoff, AIOS integration",
5
5
  "main": "src/index.js",
6
6
  "bin": {
@@ -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 } = {}) {