@riligar/agents-kit 1.0.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.
Files changed (59) hide show
  1. package/.agent/skills/riligar-design-system/SKILL.md +55 -0
  2. package/.agent/skills/riligar-design-system/assets/theme.js +113 -0
  3. package/.agent/skills/riligar-design-system/references/anti-patterns.md +36 -0
  4. package/.agent/skills/riligar-design-system/references/design-system.md +113 -0
  5. package/.agent/skills/riligar-design-system/references/images/1R2bQt3sbej3wnOY1CzfuxBTFGs.jpeg +0 -0
  6. package/.agent/skills/riligar-design-system/references/images/AMHVTwvXORjj3X8El59HL1MsjA.jpeg +0 -0
  7. package/.agent/skills/riligar-design-system/references/images/E4BSw6KHGDGMwsyv95cOa9bcta0.jpeg +0 -0
  8. package/.agent/skills/riligar-design-system/references/images/EwwLnyjifpH8aT4o9OYb4zmuU.jpeg +0 -0
  9. package/.agent/skills/riligar-design-system/references/images/JXpiVPGQAlCoSPheFiv7XIo.jpeg +0 -0
  10. package/.agent/skills/riligar-design-system/references/images/K3aMG2lUKgIMnch6nKHeyaNkY.jpeg +0 -0
  11. package/.agent/skills/riligar-design-system/references/images/PjZ3v7ODdeBewzcBtIB1CwSwY.jpeg +0 -0
  12. package/.agent/skills/riligar-design-system/references/images/St7v862tpyR6MnIY3Lvr0jkd8I.jpeg +0 -0
  13. package/.agent/skills/riligar-design-system/references/images/WLmykbH6cFIJQ2logW1FiST1K3g.jpeg +0 -0
  14. package/.agent/skills/riligar-design-system/references/images/XHjqY7bWbsoyHD8E8K5p0Wm8kWA.jpeg +0 -0
  15. package/.agent/skills/riligar-design-system/references/images/dgn7biiYdKjxwkYGC84E3APk63Q.jpeg +0 -0
  16. package/.agent/skills/riligar-design-system/references/images/dgn7biiYdKjxwkYGC84E3APk63Q_sips.jpeg +0 -0
  17. package/.agent/skills/riligar-design-system/references/images/ioNOnyTfpolkwrFsdoBVsMGQ.jpeg +0 -0
  18. package/.agent/skills/riligar-design-system/references/images/xJVNp4LsZrmOYqTYgnj82rglWcA.jpeg +0 -0
  19. package/.agent/skills/riligar-design-system/references/master-patterns.md +140 -0
  20. package/.agent/skills/riligar-design-system/references/visual-references.md +71 -0
  21. package/.agent/skills/riligar-dev-autopilot/SKILL.md +63 -0
  22. package/.agent/skills/riligar-dev-landing-page/SKILL.md +53 -0
  23. package/.agent/skills/riligar-dev-landing-page/assets/original-2a03320f967a884fd2ad275d788f32e5.webp +0 -0
  24. package/.agent/skills/riligar-dev-landing-page/assets/original-481d7179109272dcaff2516fef62b718.webp +0 -0
  25. package/.agent/skills/riligar-dev-landing-page/assets/original-56d848520060ca714456601d1a7417cd.webp +0 -0
  26. package/.agent/skills/riligar-dev-landing-page/assets/original-93104cd260129cd6b76dac4119622eaf.webp +0 -0
  27. package/.agent/skills/riligar-dev-landing-page/assets/original-c5d259b0497cec98c36c48fc33ebbde6.webp +0 -0
  28. package/.agent/skills/riligar-dev-landing-page/assets/original-e865b2464fdf5ca567af716e1ed4fd16.webp +0 -0
  29. package/.agent/skills/riligar-dev-landing-page/assets/original-f1459f5315f0045705c2ca4937204146.webp +0 -0
  30. package/.agent/skills/riligar-dev-landing-page/assets/original-f67954754fdc2fc57009369fd3437205.webp +0 -0
  31. package/.agent/skills/riligar-dev-landing-page/assets/screencapture-caddaddy-app-2025-11-03-20_16_14.webp +0 -0
  32. package/.agent/skills/riligar-dev-landing-page/assets/screencapture-ciromaciel-click-2026-01-06-17_08_01.webp +0 -0
  33. package/.agent/skills/riligar-dev-landing-page/assets/screencapture-notionsecondbrain-2026-01-06-16_07_56.webp +0 -0
  34. package/.agent/skills/riligar-dev-landing-page/assets/screencapture-skillsmp-2026-01-16-14_40_22.webp +0 -0
  35. package/.agent/skills/riligar-dev-landing-page/references/conversion-framework.md +39 -0
  36. package/.agent/skills/riligar-dev-landing-page/references/copywriting-guide.md +38 -0
  37. package/.agent/skills/riligar-dev-landing-page/references/section-blueprints.md +56 -0
  38. package/.agent/skills/riligar-dev-seo/SKILL.md +200 -0
  39. package/.agent/skills/riligar-dev-seo/references/checklist.md +87 -0
  40. package/.agent/skills/riligar-dev-seo/references/implementation.md +215 -0
  41. package/.agent/skills/riligar-dev-seo/references/structured-data.md +119 -0
  42. package/.agent/skills/riligar-infrastructure/SKILL.md +126 -0
  43. package/.agent/skills/riligar-infrastructure/references/infrastructure.md +229 -0
  44. package/.agent/skills/riligar-marketing-copy/SKILL.md +117 -0
  45. package/.agent/skills/riligar-marketing-copy/references/examples.md +256 -0
  46. package/.agent/skills/riligar-marketing-copy/references/style-guide.md +112 -0
  47. package/.agent/skills/riligar-tech-stack/SKILL.md +114 -0
  48. package/.agent/skills/riligar-tech-stack/references/tech-stack.md +131 -0
  49. package/.agent/skills/skill-creator/LICENSE.txt +202 -0
  50. package/.agent/skills/skill-creator/SKILL.md +356 -0
  51. package/.agent/skills/skill-creator/references/output-patterns.md +82 -0
  52. package/.agent/skills/skill-creator/references/workflows.md +28 -0
  53. package/.agent/skills/skill-creator/scripts/init_skill.py +303 -0
  54. package/.agent/skills/skill-creator/scripts/package_skill.py +110 -0
  55. package/.agent/skills/skill-creator/scripts/quick_validate.py +95 -0
  56. package/LICENSE +201 -0
  57. package/README.md +39 -0
  58. package/bin/cli.js +66 -0
  59. package/package.json +62 -0
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: riligar-design-system
3
+ description: Especialista no Sistema Visual da RiLiGar. Use para: (1) Criação de interfaces web e mobile (Light/Dark Mode), (2) Implementação de componentes UI (Mantine Only), (3) Garantir estética minimalista "Content-First", (4) Aplicar tokens de design via Mantine Theme.
4
+ license: Apache-2.0
5
+ ---
6
+
7
+ # RiLiGar Design System Expert
8
+
9
+ Você é um especialista em design e interface seguindo as diretrizes da RiLiGar. Sua missão é garantir que qualquer código gerado use **APENAS** a API do Mantine 8, sem CSS customizado ou inline.
10
+
11
+ ## Filosofia: "Content-First" & "Theme-Aware"
12
+
13
+ A interface deve ser invisível e funcionar perfeitamente em Light e Dark Mode.
14
+
15
+ - **Estrutura:** Whitespace e alinhamento preciso.
16
+ - **Estética:** Monocromática, funcional, estilo Notion/Linear.
17
+ - **Técnica:** Zero CSS files. Zero `style={{}}`. Tudo via Props.
18
+
19
+ ## Guia de Referência
20
+
21
+ Para atingir a excelência:
22
+
23
+ - **[Excellence Patterns](references/master-patterns.md)**: Código "Gold Standard" usando Mantine Props. **Sempre use como base.**
24
+ - **[Theme Config](assets/theme.js)**: Configuração do tema com suporte a Dark Mode automático.
25
+ - **[Visual references](references/visual-references.md)**: Mapeamento de nuances estéticas.
26
+ - **[Anti-patterns](references/anti-patterns.md)**: O que evitar (especialmente CSS inline).
27
+
28
+ ## Checklist de Lapidação (RiLiGar Excellence)
29
+
30
+ Antes de entregar qualquer interface, o agente **DEVE** validar:
31
+
32
+ 1. [ ] Configurei `defaultProps` no theme.js para evitar repetição de props?
33
+ 2. [ ] O código do componente está "limpo"? (Ex: `<Button>Save</Button>` sem `radius/size`).
34
+ 3. [ ] Removi **TODO** o CSS inline (`style={{}}`)?
35
+ 4. [ ] Usei props semânticas do Mantine (`bd`, `bg`, `c`)?
36
+ 5. [ ] As cores são semânticas e theme-aware? (Ex: `c="dimmed"`).
37
+ 6. [ ] Removi todas as tags HTML nativas (`div`, `button`)?
38
+ 7. [ ] Usei Montserrat via font-family do tema?
39
+ 8. [ ] O padding vertical em listas e tabelas é compacto?
40
+ 9. [ ] Os ícones usam `stroke={1.5}`?
41
+ 10. [ ] O resultado é "Clean" e livre de ruído visual?
42
+
43
+ ## Princípios de Implementação
44
+
45
+ 1. **Theme First:** Se você está repetindo `size="sm"` em todo lugar, mova para `theme.components`.
46
+ 2. **Mantine Nativo:** Use APENAS a API do Mantine. Zero CSS files.
47
+ 3. **Semântica:** Use `bg="default"` ou `bg="body"` para superfícies que mudam com o tema.
48
+ 4. **Bordas:** Use `withBorder` em componentes ou `bd` em Caixas.
49
+ 5. **Tipografia:** Use `Title`, `Text` e `Code` do sistema.
50
+
51
+ ## Instruções de Geração
52
+
53
+ Ao gerar UI, sempre prefira as estruturas em **[Master Patterns](references/master-patterns.md)**.
54
+
55
+ **Atenção:** Código verboso com muitas props repetidas será considerado uma falha de design system.
@@ -0,0 +1,113 @@
1
+ /**
2
+ * RiLiGar Design System - Mantine 8 Theme
3
+ * Estética minimalista e adaptável (Light/Dark Mode).
4
+ *
5
+ * CENTRALIZAÇÃO TOTAL:
6
+ * Toda a configuração visual (sizes, borders, radius) DEVE estar aqui.
7
+ * O código do componente deve ser limpo.
8
+ */
9
+
10
+ import { createTheme, rem } from '@mantine/core'
11
+
12
+ export const rlgTheme = createTheme({
13
+ fontFamily: 'Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',
14
+
15
+ colors: {
16
+ // Escala Neutra Universal (Substitui o gray padrão)
17
+ gray: [
18
+ '#F9FAFB', // 0: App Background
19
+ '#F3F4F6', // 1: Hover/Subtle
20
+ '#E5E7EB', // 2: Borders
21
+ '#D1D5DB', // 3: Disabled
22
+ '#9CA3AF', // 4: Placeholder
23
+ '#6B7280', // 5: Text Secondary
24
+ '#4B5563', // 6: Text Primary Soft
25
+ '#374151', // 7: Text Primary
26
+ '#1F2937', // 8: Headers
27
+ '#11181C', // 9: Absolute Black
28
+ ],
29
+ // Semânticos
30
+ error: ['#FEF2F2', '#FEE2E2', '#FECACA', '#FCA5A5', '#F87171', '#EF4444', '#DC2626', '#B91C1C', '#991B1B', '#7F1D1D'],
31
+ success: ['#F0FDF4', '#DCFCE7', '#BBF7D0', '#86EFAC', '#4ADE80', '#22C55E', '#16A34A', '#15803D', '#166534', '#14532D'],
32
+ },
33
+
34
+ primaryColor: 'dark', // Escala dark mapeada para cinzas
35
+ autoContrast: true,
36
+
37
+ defaultRadius: 'md', // 6px
38
+
39
+ components: {
40
+ // --- LAYOUT & CONTAINERS ---
41
+ Paper: {
42
+ defaultProps: {
43
+ withBorder: true,
44
+ shadow: 'none',
45
+ radius: 'lg', // 8px para containers
46
+ },
47
+ },
48
+ Card: {
49
+ defaultProps: {
50
+ withBorder: true,
51
+ shadow: 'none',
52
+ radius: 'lg',
53
+ padding: 'md',
54
+ },
55
+ },
56
+
57
+ // --- DATA DISPLAY ---
58
+ Table: {
59
+ defaultProps: {
60
+ verticalSpacing: 'xs', // 8px density
61
+ horizontalSpacing: 'md',
62
+ withRowBorders: true,
63
+ highlightOnHover: true,
64
+ },
65
+ },
66
+ Badge: {
67
+ defaultProps: {
68
+ size: 'sm',
69
+ radius: 'sm',
70
+ variant: 'light',
71
+ fw: 500,
72
+ },
73
+ },
74
+
75
+ // --- INPUTS & ACTIONS ---
76
+ Button: {
77
+ defaultProps: {
78
+ size: 'sm', // 32px
79
+ fw: 500,
80
+ radius: 'md',
81
+ },
82
+ // Variações semânticas via theme vars se necessário
83
+ },
84
+ TextInput: {
85
+ defaultProps: {
86
+ size: 'sm', // 32px height
87
+ radius: 'md',
88
+ },
89
+ styles: theme => ({
90
+ input: {
91
+ border: `1px solid ${theme.colors.gray[2]}`, // Garante borda 1px
92
+ '&:focus': {
93
+ borderColor: theme.colors.dark[8],
94
+ },
95
+ },
96
+ }),
97
+ },
98
+ Select: {
99
+ defaultProps: {
100
+ size: 'sm',
101
+ radius: 'md',
102
+ },
103
+ },
104
+ ActionIcon: {
105
+ defaultProps: {
106
+ size: 'sm', // 26px context triggers
107
+ variant: 'subtle',
108
+ color: 'gray',
109
+ radius: 'md',
110
+ },
111
+ },
112
+ },
113
+ })
@@ -0,0 +1,36 @@
1
+ # Anti-Patterns: O que NÃO é RiLiGar
2
+
3
+ Para atingir a excelência, devemos eliminar vícios de design comum que deixam a interface com cara de "genérica".
4
+
5
+ | Erro Comum | Por que é ruim? | A Solução RiLiGar |
6
+ | :-------------------------- | :------------------------------------------------------ | :-------------------------------------------------- |
7
+ | **Sombras Drop (Pesadas)** | Adiciona ruído visual e amadorismo. | `border: 1px solid #E5E7EB`. |
8
+ | **Azul "Bootstrap"** | Cor saturada demais para a estética minimalista. | Use `#000000` (Preto) ou um azul marinho `#11181C`. |
9
+ | **Pillings (Radius total)** | Lembra apps mobile infantis ou Google Material antigos. | `border-radius: 6px`. Retangular com quinas suaves. |
10
+ | **Inputs Gigantes** | Quebram a densidade de informação útil. | `height: 32px`. Compacto e focado. |
11
+ | **Gradientes Lineares** | Introduzem profundidade desnecessária. | Cores puras e sólidas (Flat). |
12
+ | **Divisores Escuros** | Chamam mais atenção que o próprio conteúdo. | Use `#F3F4F6` para divisores internos. |
13
+
14
+ ## Exemplo de Refatoração (Cérebro do Agente)
15
+
16
+ **❌ Antes (Design Comum):**
17
+
18
+ ```html
19
+ <div style="box-shadow: 0 4px 6px rgba(0,0,0,0.1); border-radius: 20px; padding: 20px; background: blue;">
20
+ <h1 style="color: white; font-weight: 800;">User Info</h1>
21
+ <button style="border-radius: 50px; padding: 10px 20px;">Click Me</button>
22
+ </div>
23
+ ```
24
+
25
+ **✅ Depois (RiLiGar Excellence):**
26
+
27
+ ```html
28
+ <div style="border: 1px solid #E5E7EB; border-radius: 8px; padding: 16px; background: #FFF;">
29
+ <h3 style="color: #11181C; font-weight: 600; font-size: 14px; margin-bottom: 8px;">User Info</h3>
30
+ <button style="border-radius: 6px; height: 32px; padding: 0 12px; background: #000; color: #FFF; font-size: 12px;">Action</button>
31
+ </div>
32
+ ```
33
+
34
+ ---
35
+
36
+ _Lembre-se: O design RiLiGar é sobre **restrição**. Se você pode remover uma borda ou uma cor e o app ainda funciona, remova._
@@ -0,0 +1,113 @@
1
+ # Diretrizes de Design & Sistema Visual
2
+
3
+ > Baseado na análise de UI Minimalista/SaaS Premium (Notion)
4
+
5
+ ## 1. Filosofia Visual: "Content-First"
6
+
7
+ A interface deve recuar para deixar o conteúdo brilhar. A estética é utilitária, limpa e focada na densidade de informação sem sacrificar a legibilidade.
8
+
9
+ - **Minimalismo:** Remover ornamentos desnecessários (sombras pesadas, gradientes complexos).
10
+ - **Estrutura:** O design depende de alinhamento preciso e espaço em branco (whitespace), não de caixas coloridas.
11
+
12
+ ## 2. Tipografia
13
+
14
+ A tipografia é a principal ferramenta de estrutura da interface.
15
+ **Família:** Montserrat (Geométrica e Moderna).
16
+
17
+ | Função | Peso | Cor | Tracking |
18
+ | :--------------------- | :-------------- | :--------------------- | :-------- |
19
+ | **Corpo / Dados** | Regular (400) | `#11181C` (Primário) | Normal |
20
+ | **Cabeçalhos Tabela** | Medium (500) | `#687076` (Secundário) | Normal |
21
+ | **Botões / Ações** | Medium (500) | Variável | `-0.01em` |
22
+ | **Títulos (H1, H2)** | Semi-Bold (600) | `#11181C` (Primário) | `-0.02em` |
23
+ | **Labels / Metadados** | Regular (400) | `#737373` (Terciário) | Normal |
24
+
25
+ **Hierarquia de Cores de Texto:**
26
+
27
+ 1. **Primária:** `#11181C` ou `#171717` (Quase preto, nunca `#000000`).
28
+ 2. **Secundária:** `#687076` (Cinza neutro para suporte).
29
+ 3. **Terciária:** `#B0B0B0` (Desabilitado ou placeholder).
30
+
31
+ ## 3. Paleta de Cores & Superfícies
32
+
33
+ Uso estrito de monocromia com cores semânticas apenas quando necessário.
34
+
35
+ - **Fundos (Backgrounds):**
36
+ - _App Base:_ `#FFFFFF` (Branco Puro).
37
+ - _Sidebars / Headers:_ `#FAFAFA` ou `#F9FAFB` (Cinza ultra-sútil).
38
+ - **Bordas:**
39
+ - _Padrão:_ `#E5E7EB` ou `#E2E8F0` (Sutil, 1px).
40
+ - **Acentos (Action Colors):**
41
+ - _Brand/Primary:_ `#000000` (Preto Sólido) ou Azul Índigo Profundo.
42
+ - _Feedback:_ Cores pastéis no fundo, texto saturado.
43
+ - _Erro:_ Bg `#FEF2F2` / Text `#991B1B`.
44
+ - _Sucesso:_ Bg `#F0FDF4` / Text `#166534`.
45
+
46
+ ## 4. Componentes (UI Kit)
47
+
48
+ ### Botões
49
+
50
+ - **Altura:** `32px` (Small/Dense) ou `36px` (Regular).
51
+ - **Border-Radius:** `6px` a `8px` (Suave, mas não "pill").
52
+ - **Estilos:**
53
+ - _Primary:_ Fundo Preto, Texto Branco. Hover suave.
54
+ - _Secondary/Ghost:_ Fundo Transparente, Texto Cinza. Hover com bg `#F3F4F6`.
55
+
56
+ ### Tabelas & Listas
57
+
58
+ - **Estilo:** "Clean Rows".
59
+ - **Bordas:** Apenas linhas horizontais (`border-bottom`). Sem linhas verticais.
60
+ - **Hover:** Linhas destacam com cinza pálido (`#F9FAFB`) ao passar o mouse.
61
+ - **Padding:** Compacto (`py-2`, `px-4`) para alta densidade de dados.
62
+
63
+ ### Inputs
64
+
65
+ - **Borda:** `1px solid #E5E5E5`.
66
+ - **Foco:** Ring duplo sutil (ex: `ring-2 ring-gray-200`) ou borda escurecida. Nunca glow neon forte.
67
+
68
+ ## 5. Layout & Espaçamento
69
+
70
+ - **Respiro:** Margens generosas ao redor do container principal, mas densidade alta dentro dos componentes de dados.
71
+ - **Navegação:** Sidebar fixa para contexto global; Topbar simples para contexto local.
72
+
73
+ ## 6. Micro-interações
74
+
75
+ - **Animações:** Rápidas e invisíveis (150ms - 200ms ease-out).
76
+ - **Sombras:** Usadas apenas para elevação (Modais, Dropdowns).
77
+ - _Drop Shadow:_ Suave e difusa (`0 4px 20px rgba(0,0,0,0.05)`).
78
+
79
+ ## 7. Diretrizes para Geração via LLM (Prompting Helper)
80
+
81
+ > Use estas instruções para garantir que a IA gere resultados fiéis ao design system.
82
+
83
+ ### Keywords Essenciais (Contexto)
84
+
85
+ Sempre inclua estas palavras-chave no prompt de geração de UI:
86
+ `"Linear-style interface"`, `"Notion-like aesthetic"`, `"High density data"`, `"Clean minimalist SaaS"`, `"Monochrome color palette with subtle borders"`, `"Inter/Montserrat typography"`, `"1px border separation"`.
87
+
88
+ ### Regras de Ouro (Constraints)
89
+
90
+ 1. **NUNCA** use sombras coloridas ou "glow" efeitos.
91
+ 2. **NUNCA** use fundos saturados para containers (apenas branco ou cinza muito claro).
92
+ 3. **EVITE** cartões (cards) com sombras pesadas para agrupar conteúdo. Use **linhas e bordas sutis** para separar seções.
93
+ 4. **Botões:** Evite botões grandes e chamativos. O botão primário deve ser discreto (preto/branco), e os secundários devem ser quase invisíveis até o hover.
94
+
95
+ ### Estrutura de Prompt Recomendada
96
+
97
+ Ao pedir código ou design para uma IA, use este formato:
98
+
99
+ > "Crie uma interface [Tela/Componente] seguindo uma estética estritamente minimalista (estilo Notion). Use a fonte Montserrat. O layout deve ser denso, focado em dados, sem sobras desnecessárias. Use bordas de 1px (#E5E5E5) para separação em vez de cards flutuantes. Cores: Preto (#11181C) para texto principal, Cinza (#687076) para secundário. Fundo branco puro."
100
+
101
+ ### Tratamento de Casos Especiais
102
+
103
+ - **Empty States:** Devem ser minimalistas. Um ícone de linha fina (stroke 1.5px) em cinza claro, um título em H3 e um botão de ação. Nada de ilustrações 3D coloridas.
104
+ - **Modais:** Devem ter um backdrop com blur (`backdrop-blur-sm`) e fundo branco sólido. Sem cabeçalhos coloridos.
105
+ - **Dashboards:** Devem privilegiar números grandes (Big Numbers) em monocromia, com rótulos pequenos abaixo. Gráficos devem ser limpos, sem grid lines pesadas.
106
+
107
+ ---
108
+
109
+ ## 🤖 Integração com Gemini CLI
110
+
111
+ Este repositório possui uma **Skill do Gemini CLI** configurada em [`riligar-design-system/SKILL.md`](../SKILL.md). Ao usar o Gemini CLI neste repositório, o agente aplicará automaticamente estas diretrizes a qualquer código ou design gerado.
112
+
113
+ Para saber como usar, veja o [README principal](../../README.md).
@@ -0,0 +1,140 @@
1
+ # Master Patterns: Mantine Clean Code
2
+
3
+ O código deve ser limpo. A customização visual vive no **Tema**, não no componente.
4
+
5
+ ## 1. Sidebar (Clean)
6
+
7
+ ```jsx
8
+ import { Stack, Box, Text, UnstyledButton, Group } from '@mantine/core'
9
+ import { IconHome, IconSettings } from '@tabler/icons-react'
10
+
11
+ function Sidebar() {
12
+ return (
13
+ // bg="gray.0" -> Layer 0 (Canvas) [Visual-Code Dictionary §2]
14
+ // bd="solid gray.2" -> Layer 1 Separation [Visual-Code Dictionary §2]
15
+ // p="sm" -> Layout Rhythm (Section) [Visual-Code Dictionary §1]
16
+ <Box
17
+ w={260}
18
+ h="100vh"
19
+ bg="gray.0"
20
+ bd={{ base: '1px solid gray.2' }}
21
+ p="sm"
22
+ >
23
+ <Stack gap={4}>
24
+ <NavItem
25
+ icon={IconHome}
26
+ label="Home"
27
+ active
28
+ />
29
+ <NavItem
30
+ icon={IconSettings}
31
+ label="Settings"
32
+ />
33
+ </Stack>
34
+ </Box>
35
+ )
36
+ }
37
+
38
+ function NavItem({ icon: Icon, label, active }) {
39
+ return (
40
+ <UnstyledButton
41
+ data-active={active || undefined}
42
+ w="100%"
43
+ p="xs" // Component Rhythm (8px) [Visual-Code Dictionary §1]
44
+ // Radius md (6px) -> Defined in theme, enforced here for clarity
45
+ style={{ borderRadius: 'var(--mantine-radius-md)' }}
46
+ bg={active ? 'white' : 'transparent'}
47
+ c={active ? 'text' : 'dimmed'}
48
+ >
49
+ <Group gap="xs">
50
+ {/* Excellence Nuance #1: Stroke 1.5 [Visual-Code Dictionary §4] */}
51
+ <Icon
52
+ size={16}
53
+ stroke={1.5}
54
+ />
55
+ <Text
56
+ size="sm"
57
+ fw={500}
58
+ >
59
+ {label}
60
+ </Text>
61
+ </Group>
62
+ </UnstyledButton>
63
+ )
64
+ }
65
+ ```
66
+
67
+ ## 2. Tabela (Zero Props)
68
+
69
+ ```jsx
70
+ import { Table, Text, Badge } from '@mantine/core'
71
+
72
+ // Note a ausência de props de estilo.
73
+ // O <Table> já vem com spacing e borders configurados no tema.
74
+ // [Visual-Code Dictionary §3: Table Row Anatomy]
75
+ function DenseTable({ data }) {
76
+ return (
77
+ <Table>
78
+ <Table.Thead>
79
+ <Table.Tr>
80
+ <Table.Th>NAME</Table.Th>
81
+ <Table.Th>STATUS</Table.Th>
82
+ </Table.Tr>
83
+ </Table.Thead>
84
+ <Table.Tbody>
85
+ {data.map(item => (
86
+ <Table.Tr key={item.id}>
87
+ <Table.Td>
88
+ <Text fw={500}>{item.name}</Text>
89
+ </Table.Td>
90
+ <Table.Td>
91
+ <Badge color="gray">{item.status}</Badge>
92
+ </Table.Td>
93
+ </Table.Tr>
94
+ ))}
95
+ </Table.Tbody>
96
+ </Table>
97
+ )
98
+ }
99
+ ```
100
+
101
+ ## 3. Cards (Clean)
102
+
103
+ ```jsx
104
+ import { Paper, Text, Group, Button, Stack, Box } from '@mantine/core'
105
+
106
+ function ContentCard() {
107
+ return (
108
+ // <Paper> já vem com border e radius corretos do tema
109
+ // [Visual-Code Dictionary §2: Layer 1 Card]
110
+ <Paper overflow="hidden">
111
+ <Box
112
+ p="md"
113
+ py="xs"
114
+ bg="gray.0"
115
+ bd={{ bottom: '1px solid gray.2' }}
116
+ >
117
+ <Text fw={600}>Project Alpha</Text>
118
+ </Box>
119
+
120
+ <Stack
121
+ p="md"
122
+ gap="sm"
123
+ >
124
+ <Text
125
+ c="dimmed"
126
+ size="sm"
127
+ >
128
+ Descrição limpa e focada.
129
+ </Text>
130
+
131
+ <Group justify="flex-end">
132
+ {/* Variantes e tamanhos vêm do defaultProps do tema */}
133
+ <Button variant="default">Cancel</Button>
134
+ <Button>Save</Button>
135
+ </Group>
136
+ </Stack>
137
+ </Paper>
138
+ )
139
+ }
140
+ ```
@@ -0,0 +1,71 @@
1
+ # Dicionário Visual (Visual-Code Dictionary)
2
+
3
+ Este documento traduz "Sensação Visual" em "Regras de Código". Use-o para eliminar a subjetividade.
4
+
5
+ ## 1. Ritmo & Espaçamento (Layout Rhythms)
6
+
7
+ A densidade do RiLiGar é definida matematicamente. Não adivinhe, use estas medidas.
8
+
9
+ | Nível | Medida | Token Mantine | Onde Usar |
10
+ | :------------ | :------ | :------------------- | :------------------------------------------------------------------ |
11
+ | **Micro** | `4px` | `gap="xs"` (half) | Espaço entre Ícone e Texto. |
12
+ | **Component** | `8px` | `p="xs"`, `gap="xs"` | Padding interno de Botões, Inputs, Table Cells. |
13
+ | **Flow** | `12px` | `gap={12}` | Espaço entre elementos de um formulário ou lista vertical de cards. |
14
+ | **Section** | `16px` | `p="md"`, `gap="md"` | Padding padrão de Cards, Modais e Sidebars. |
15
+ | **Layout** | `24px+` | `p="lg"`, `gap="lg"` | Margens da página, separação de grandes blocos. |
16
+
17
+ ## 2. Regra das 3 Camadas (Depth Stacking)
18
+
19
+ Para evitar o visual "chapado", use esta hierarquia estrita de cores e bordas.
20
+
21
+ ### Layer 0: O Canvas (Fundo)
22
+
23
+ - **Cor:** `bg="gray.0"` (`#F9FAFB` Light / Dark Auto-adapt).
24
+ - **Uso:** O fundo de toda a aplicação. Nunca use branco puro (`#FFF`) no fundo da página.
25
+
26
+ ### Layer 1: O Conteúdo (Cards/Surface)
27
+
28
+ - **Cor:** `bg="white"` (Light) / `bg="gray.9"` (Dark).
29
+ - **Borda:** `bd="1px solid gray.2"` (Essencial para recorte).
30
+ - **Sombra:** `shadow="none"` (A borda faz o trabalho de separação).
31
+ - **Radius:** `radius="lg"` (8px).
32
+
33
+ ### Layer 2: O Feedback (Hover/Overlay)
34
+
35
+ - **Hover:** `bg="gray.0"` (Interação sutil).
36
+ - **Active:** `bg="gray.1"` (Seleção).
37
+ - **Overlay:** `shadow="lg"` + `bd="gray.2"` (Apenas para Popovers e Modais).
38
+
39
+ ## 3. Anatomia Atômica (Component Specifications)
40
+
41
+ Se você for criar um destes componentes, ele **DEVE** seguir estas medidas exatas.
42
+
43
+ ### Sidebar Item (Linear Style)
44
+
45
+ - **Altura:** `32px` ou `28px` (Ultra-denso).
46
+ - **Padding:** `px="xs"` (8px horizontal).
47
+ - **Radius:** `radius="md"` (6px).
48
+ - **Fonte:** `size="sm"` (13px), `fw={500}`.
49
+ - **Cor:** Default `c="dimmed"`, Active `c="text"`, Hover `bg="gray.1"`.
50
+
51
+ ### Table Row (Notion Style)
52
+
53
+ - **Altura:** `36px` (Conteúdo + Padding).
54
+ - **Borda:** `borderBottom: '1px solid gray.1'` (Nota: gray.1, mais sutil que a borda do card).
55
+ - **Header:** `c="dimmed"`, `fw={600}`, `fz="xs"` (12px), `textTransform="uppercase"`.
56
+ - **Cell:** `fz="sm"` (13px ou 14px).
57
+
58
+ ### Page Header
59
+
60
+ - **Altura:** `48px` ou `56px`.
61
+ - **Fundo:** `bg="gray.0"` (Transparente/Blur opcional).
62
+ - **Borda:** `borderBottom: '1px solid gray.2'`.
63
+ - **Conteúdo:** Título `h4` (`fw={600}`), Ações à direita.
64
+
65
+ ## 4. Nuances de "Excellence"
66
+
67
+ 1. **Ícones:** Sempre use `stroke={1.5}`. Ícones mais grossos (2px) parecem "infantis" neste design system. Tamanho padrão `16px` ou `18px`.
68
+ 2. **Tracking:**
69
+ - Títulos (H1-H3): `letter-spacing: -0.02em` (Aperta o título, visual premium).
70
+ - Botões/Labels: `letter-spacing: -0.005em` (Leve toque de densidade).
71
+ 3. **Bordas:** Nunca use `#000` ou `#DDD`. Use sempre o token `gray.2` do tema, que é calibrado para ser visível mas não intrusivo.
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: riligar-dev-autopilot
3
+ description: Automação do ciclo de vida de desenvolvimento: Validação com Bun, Auto-correção, Commit Semântico e Deploy.
4
+ license: Apache-2.0
5
+ metadata:
6
+ author: riligar
7
+ version: '1.0'
8
+ ---
9
+
10
+ # RiLiGar Dev-Autopilot Expert
11
+
12
+ Você é responsável por garantir que cada interação do chat resulte em código funcional e entregue. Sua missão é fechar o ciclo entre o "escrever código" e o "código em produção".
13
+
14
+ ## 1. Filosofia do Loop
15
+
16
+ - **Confiança:** O código não é considerado pronto até ser validado.
17
+ - **Autonomia:** Corrigir erros triviais (lint, build, testes simples) sem onerar o usuário.
18
+ - **Velocidade:** Uso intensivo do Bun para ciclos de feedback instantâneos.
19
+ - **Transparência:** Commits claros que explicam a evolução da história/bug.
20
+
21
+ ## 2. Fluxo de Trabalho Obrigatório
22
+
23
+ Toda vez que uma alteração de código for finalizada, você deve seguir este fluxo:
24
+
25
+ ### Passo 1: Validação (Bun)
26
+
27
+ - **Check:** Executar `bun run lint` ou `bun x eslint .` para garantir padrões.
28
+ - **Testes:** Rodar testes unitários/integração com `bun test`.
29
+ - **Build:** Se for um projeto compilado (Vite), rodar `bun run build`.
30
+ - **Auto-Correção:** Se houver erros, ANALISE a stack trace, CORRIJA o código e RE-VALIDE. Tente até 2 vezes antes de pedir ajuda ao usuário.
31
+
32
+ ### Passo 2: Versionamento (Commit Semântico)
33
+
34
+ - Se a validação passar, gere uma mensagem de commit seguindo o padrão **Conventional Commits**:
35
+ - `feat:` para novas histórias.
36
+ - `fix:` para correções de bugs.
37
+ - `refactor:` para melhorias de código sem mudança de comportamento.
38
+ - `docs:` para documentação.
39
+
40
+ ### Passo 3: Publicação & Deploy
41
+
42
+ - **Push:** Executar o comando `git-publish` (ou o atalho `gcp`).
43
+ - **Deploy:**
44
+ - Se for infra Fly.io: Executar `fly deploy`.
45
+ - Se for via GitHub Actions: O push para a branch principal deve disparar o fluxo.
46
+
47
+ ## 3. Regras de Interface com o Usuário
48
+
49
+ Ao concluir o loop com sucesso, apresente um resumo:
50
+
51
+ - ✅ **Validado:** [Comando executado] (ex: `bun test` passou).
52
+ - 📦 **Commit:** `[mensagem de commit]`
53
+ - 🚀 **Status:** Deploy iniciado/concluído.
54
+
55
+ Se falhar após as tentativas de auto-correção:
56
+
57
+ - ❌ **Erro:** Explique detalhadamente o que falhou e mostre o log.
58
+ - 💡 **Ação:** Pergunte como o usuário deseja proceder.
59
+
60
+ ## 4. Integração com Tech Stack
61
+
62
+ - **Bun First:** Sempre prefira `bun` como gerenciador de pacotes e runtime.
63
+ - **Mantine/React:** Verifique se as novas bibliotecas seguem o `riligar-design-system`.