chati-dev 4.0.0 → 4.0.1

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.
@@ -43,7 +43,47 @@ Define the user experience: information architecture, user flows, interaction pa
43
43
 
44
44
  ---
45
45
 
46
- ## Execution: 5 Phases
46
+ ## Execution: 6 Phases
47
+
48
+ ### Phase 0: Brand Identity (Brandbook)
49
+ ```
50
+ PREREQUISITE: Brief handoff + Architecture handoff
51
+
52
+ Before defining any design tokens or visual patterns, establish the brand identity:
53
+
54
+ 1. Define Brand Voice
55
+ - Personality traits (3-5 adjectives)
56
+ - Tone spectrum (formal <-> casual positioning)
57
+ - Writing principles and anti-patterns
58
+
59
+ 2. Define Visual Language
60
+ - Mood descriptor and visual metaphor
61
+ - Density and contrast philosophy
62
+ - Texture strategy (flat, layered, glassmorphic, etc.)
63
+
64
+ 3. Typography Rationale
65
+ - Display + body font pairing with WHY
66
+ - Hierarchy strategy
67
+ - Pairing logic explanation
68
+
69
+ 4. Color Philosophy
70
+ - Primary color rationale (emotional, functional)
71
+ - Palette derivation logic
72
+ - Accessibility considerations
73
+
74
+ 5. Spacing Rhythm
75
+ - Base unit selection + rationale
76
+ - Rhythm personality (generous, dense, modular)
77
+
78
+ 6. Iconography Style
79
+ - Style direction (outline, solid, duo-tone)
80
+ - Preferred library alignment with brand personality
81
+
82
+ Output: chati.dev/artifacts/4-UX/brandbook.md
83
+
84
+ RULE: Every subsequent design decision must trace back to the brandbook.
85
+ RULE: Brandbook establishes the WHY — Design System (Phase 4) establishes the WHAT.
86
+ ```
47
87
 
48
88
  ### Phase 1: User Flow Mapping
49
89
  ```
@@ -1,8 +1,8 @@
1
1
  # chati.dev Configuration
2
- version: "4.0.0"
2
+ version: "4.0.1"
3
3
  installed_at: "2026-02-07T10:00:00Z"
4
- updated_at: "2026-03-17T00:00:00Z"
5
- installer_version: "4.0.0"
4
+ updated_at: "2026-03-18T00:00:00Z"
5
+ installer_version: "4.0.1"
6
6
  project_type: greenfield
7
7
  language: en
8
8
  ides: [claude-code]
@@ -115,6 +115,12 @@ Every agent in Chati.dev:
115
115
  4. Error messages are constructive: what failed, why, and how to fix
116
116
  5. Status updates are concise and actionable
117
117
  6. Technical jargon is adapted to detected user level (vibecoder vs power user)
118
+ 7. Generated content MUST NOT contain AI-detectable writing patterns:
119
+ - No em dashes. Use commas, semicolons, colons, or periods instead
120
+ - Avoid formulaic phrases: "Delve into", "Dive into", "It's important to note that"
121
+ - Avoid stacking transitions: "Furthermore", "Moreover", "Additionally" in sequence
122
+ - Avoid over-hedging: "It could potentially perhaps maybe..."
123
+ - Write naturally. If a sentence reads like AI wrote it, rewrite it
118
124
 
119
125
  **Enforcement: GUIDE** — Violations trigger guidance, not blocking.
120
126
 
@@ -3,9 +3,9 @@
3
3
  # and by the Health Check for system integrity validation.
4
4
 
5
5
  metadata:
6
- version: "1.0.0"
7
- last_updated: "2026-02-12T00:00:00Z"
8
- entity_count: 50
6
+ version: "4.0.0"
7
+ last_updated: "2026-03-17T00:00:00Z"
8
+ entity_count: 55
9
9
  checksum_algorithm: sha256
10
10
 
11
11
  entities:
@@ -163,6 +163,38 @@ entities:
163
163
  dependencies: [brief]
164
164
  adaptability: 0.6
165
165
 
166
+ brandbook:
167
+ path: chati.dev/templates/brandbook-tmpl.yaml
168
+ type: template
169
+ purpose: "Brand identity foundation — voice, visual language, typography, color philosophy"
170
+ keywords: [brand, identity, voice, visual, typography, color]
171
+ dependencies: [ux]
172
+ adaptability: 0.8
173
+
174
+ design-tokens:
175
+ path: chati.dev/templates/design-token-tmpl.yaml
176
+ type: template
177
+ purpose: "Structured design token system — primitive, semantic, component, utility layers"
178
+ keywords: [design, tokens, colors, spacing, typography, components]
179
+ dependencies: [brandbook]
180
+ adaptability: 0.7
181
+
182
+ component-spec:
183
+ path: chati.dev/templates/component-spec-tmpl.yaml
184
+ type: template
185
+ purpose: "UI component specification — variants, states, anatomy, accessibility"
186
+ keywords: [component, specification, ui, variants, states, accessibility]
187
+ dependencies: [design-tokens]
188
+ adaptability: 0.7
189
+
190
+ icon-system:
191
+ path: chati.dev/templates/icon-system-tmpl.yaml
192
+ type: template
193
+ purpose: "Icon library selection, sizing scale, usage guidelines, and inventory"
194
+ keywords: [icons, library, sizing, accessibility, inventory]
195
+ dependencies: [brandbook]
196
+ adaptability: 0.8
197
+
166
198
  workflows:
167
199
  greenfield-fullstack:
168
200
  path: chati.dev/workflows/greenfield-fullstack.yaml
@@ -212,6 +244,14 @@ entities:
212
244
  dependencies: [orchestrator, brief, dev, qa-implementation, devops]
213
245
  adaptability: 0.4
214
246
 
247
+ standard-flow:
248
+ path: chati.dev/workflows/standard-flow.yaml
249
+ type: workflow
250
+ purpose: "Balanced pipeline for moderate tasks: features, integrations, brownfield enhancements. Uses 8 agents."
251
+ keywords: [standard, balanced, feature, integration, enhancement, moderate]
252
+ dependencies: [orchestrator, brief, detail, architect, tasks, qa-planning, dev, qa-implementation, devops]
253
+ adaptability: 0.4
254
+
215
255
  schemas:
216
256
  session:
217
257
  path: chati.dev/schemas/session.schema.json
@@ -29,7 +29,7 @@ rules:
29
29
  priority: critical
30
30
 
31
31
  - id: art-v
32
- text: "Communication follows structured protocol: guided options (1,2,3), clear formatting."
32
+ text: "Communication follows structured protocol: guided options (1,2,3), clear formatting. No em dashes or AI-detectable writing patterns."
33
33
  priority: normal
34
34
 
35
35
  - id: art-vi
@@ -18,6 +18,10 @@ rules:
18
18
  text: "Interact with user in their preferred language. Artifacts stay in English."
19
19
  priority: normal
20
20
 
21
+ - id: anti-dash
22
+ text: "Never use em dashes in generated content. Avoid AI-detectable writing patterns (formulaic transitions, over-hedging, stacking connectors)."
23
+ priority: high
24
+
21
25
  # Execution Profile Rules (v3.0.0)
22
26
  execution-profiles:
23
27
  - explore-readonly: "In explore profile, all write/edit tool calls are blocked."
@@ -75,10 +79,10 @@ modes:
75
79
 
76
80
  brackets:
77
81
  FRESH:
78
- behavior: "Full context injection. All layers active. Include detailed rules and examples."
82
+ behavior: "Moderate context injection. All layers active but model is warming up. Budget lower than MODERATE."
79
83
  MODERATE:
80
- behavior: "Standard injection. Skip task detail layer (L4). Summarize long rules."
84
+ behavior: "Peak context injection. Maximum token budget. Model has context and needs maximum reinforcement."
81
85
  DEPLETED:
82
- behavior: "Minimal injection. Only L0+L1+L2. Use rule IDs instead of full text."
86
+ behavior: "Reduced injection. Only L0+L1+L2. Use rule IDs instead of full text."
83
87
  CRITICAL:
84
88
  behavior: "Emergency. L0+L1 only. Trigger handoff advisory. Preserve essential state."
@@ -0,0 +1,33 @@
1
+ # Standard Flow Workflow Domain — PRISM L3
2
+ # Balanced pipeline for moderate tasks (features, integrations, brownfield enhancements)
3
+ # Uses 8 agents — between Quick Flow (4) and Full Flow (12)
4
+
5
+ steps:
6
+ - brief
7
+ - detail
8
+ - architect
9
+ - tasks
10
+ - qa-planning
11
+ - dev
12
+ - qa-implementation
13
+ - devops
14
+
15
+ rules:
16
+ - id: sf-scope
17
+ text: "Standard Flow targets 2-5 requirements. Escalate to full pipeline if scope exceeds this range."
18
+ priority: critical
19
+ - id: sf-quality
20
+ text: "Both QA gates (planning and implementation) are mandatory. Score >= 95% required at each gate."
21
+ priority: critical
22
+ - id: sf-no-ux-skip
23
+ text: "UX agent is excluded. If design-heavy requirements surface, escalate to full pipeline."
24
+ priority: high
25
+ - id: sf-no-phases
26
+ text: "Phases agent is excluded. Tasks agent handles scope decomposition directly from PRD + Architecture."
27
+ priority: high
28
+ - id: sf-escalation-up
29
+ text: "If architect discovers multi-service complexity or QA finds UX gaps, offer escalation to full pipeline."
30
+ priority: high
31
+ - id: sf-escalation-down
32
+ text: "If detail finds only 1 simple requirement and architect confirms no changes needed, suggest quick flow."
33
+ priority: medium
@@ -29,8 +29,8 @@ installer:
29
29
  created_overlays: "Created provider overlay directories"
30
30
  will_install: "Will install:"
31
31
  agents_count: "13 agent definitions (DISCOVER, PLAN, BUILD, DEPLOY phases)"
32
- workflows_count: "6 workflow blueprints"
33
- templates_count: "6 templates (PRD, Brownfield PRD, Architecture, Task, QA Gate, Quick Brief)"
32
+ workflows_count: "7 workflow blueprints"
33
+ templates_count: "10 templates (PRD, Brownfield PRD, Architecture, Task, QA Gate, Quick Brief, Brandbook, Design Tokens, Component Spec, Icon System)"
34
34
  constitution: "Constitution (19 Articles + Preamble)"
35
35
  session_mgmt: "Session management system"
36
36
  quality_gates: "Quality gates (3-tier verdicts)"
@@ -85,6 +85,15 @@ status:
85
85
  backlog_items: "Backlog Items"
86
86
  high_priority: "high priority"
87
87
 
88
+ features:
89
+ brandbook_step: "Phase 0: Establishing brand identity (Brandbook)"
90
+ tech_preset_loaded: "Tech preset loaded: {preset}"
91
+ tech_preset_detected: "Detected tech stack: {stack}"
92
+ doctor_running: "Running Doctor diagnostics..."
93
+ doctor_healthy: "Doctor: All checks passed"
94
+ doctor_degraded: "Doctor: Issues found (see report)"
95
+ doctor_fix_applied: "Doctor: Applied {count} auto-fix(es)"
96
+
88
97
  errors:
89
98
  session_corrupted: "Session file appears corrupted. Attempting recovery..."
90
99
  handoff_missing: "Handoff not found. Using session.yaml + CLAUDE.md as fallback."
@@ -29,8 +29,8 @@ installer:
29
29
  created_overlays: "Creados directorios de overlay de proveedores"
30
30
  will_install: "Se instalara:"
31
31
  agents_count: "13 definiciones de agentes (fases DISCOVER, PLAN, BUILD, DEPLOY)"
32
- workflows_count: "6 blueprints de workflow"
33
- templates_count: "6 templates (PRD, PRD Brownfield, Arquitectura, Task, QA Gate, Quick Brief)"
32
+ workflows_count: "7 blueprints de workflow"
33
+ templates_count: "10 templates (PRD, PRD Brownfield, Arquitectura, Task, QA Gate, Quick Brief, Brandbook, Design Tokens, Component Spec, Icon System)"
34
34
  constitution: "Constitucion (19 Articulos + Preambulo)"
35
35
  session_mgmt: "Sistema de gestion de sesion"
36
36
  quality_gates: "Quality gates (veredictos en 3 niveles)"
@@ -85,6 +85,15 @@ status:
85
85
  backlog_items: "Items del Backlog"
86
86
  high_priority: "alta prioridad"
87
87
 
88
+ features:
89
+ brandbook_step: "Fase 0: Estableciendo identidad de marca (Brandbook)"
90
+ tech_preset_loaded: "Tech preset cargado: {preset}"
91
+ tech_preset_detected: "Stack tecnologico detectado: {stack}"
92
+ doctor_running: "Ejecutando diagnosticos del Doctor..."
93
+ doctor_healthy: "Doctor: Todos los checks pasaron"
94
+ doctor_degraded: "Doctor: Problemas encontrados (ver reporte)"
95
+ doctor_fix_applied: "Doctor: Aplicado(s) {count} auto-fix(es)"
96
+
88
97
  errors:
89
98
  session_corrupted: "Archivo de sesion parece corrupto. Intentando recuperacion..."
90
99
  handoff_missing: "Handoff no encontrado. Usando session.yaml + CLAUDE.md como respaldo."
@@ -29,8 +29,8 @@ installer:
29
29
  created_overlays: "Crees les repertoires d'overlay des fournisseurs"
30
30
  will_install: "Sera installe:"
31
31
  agents_count: "13 definitions d'agents (phases DISCOVER, PLAN, BUILD, DEPLOY)"
32
- workflows_count: "6 blueprints de workflow"
33
- templates_count: "6 templates (PRD, PRD Brownfield, Architecture, Task, QA Gate, Quick Brief)"
32
+ workflows_count: "7 blueprints de workflow"
33
+ templates_count: "10 templates (PRD, PRD Brownfield, Architecture, Task, QA Gate, Quick Brief, Brandbook, Design Tokens, Component Spec, Icon System)"
34
34
  constitution: "Constitution (19 Articles + Preambule)"
35
35
  session_mgmt: "Systeme de gestion de session"
36
36
  quality_gates: "Quality gates (verdicts en 3 niveaux)"
@@ -85,6 +85,15 @@ status:
85
85
  backlog_items: "Elements du Backlog"
86
86
  high_priority: "haute priorite"
87
87
 
88
+ features:
89
+ brandbook_step: "Phase 0: Etablissement de l'identite de marque (Brandbook)"
90
+ tech_preset_loaded: "Tech preset charge: {preset}"
91
+ tech_preset_detected: "Stack technologique detecte: {stack}"
92
+ doctor_running: "Execution des diagnostics du Doctor..."
93
+ doctor_healthy: "Doctor: Tous les checks ont reussi"
94
+ doctor_degraded: "Doctor: Problemes trouves (voir rapport)"
95
+ doctor_fix_applied: "Doctor: Applique(s) {count} auto-fix(es)"
96
+
88
97
  errors:
89
98
  session_corrupted: "Le fichier de session semble corrompu. Tentative de recuperation..."
90
99
  handoff_missing: "Passation non trouvee. Utilisation de session.yaml + CLAUDE.md comme repli."
@@ -29,8 +29,8 @@ installer:
29
29
  created_overlays: "Criados diretorios de overlay de provedores"
30
30
  will_install: "Sera instalado:"
31
31
  agents_count: "13 definicoes de agentes (fases DISCOVER, PLAN, BUILD, DEPLOY)"
32
- workflows_count: "6 blueprints de workflow"
33
- templates_count: "6 templates (PRD, PRD Brownfield, Arquitetura, Task, QA Gate, Quick Brief)"
32
+ workflows_count: "7 blueprints de workflow"
33
+ templates_count: "10 templates (PRD, PRD Brownfield, Arquitetura, Task, QA Gate, Quick Brief, Brandbook, Design Tokens, Component Spec, Icon System)"
34
34
  constitution: "Constituicao (19 Artigos + Preambulo)"
35
35
  session_mgmt: "Sistema de gerenciamento de sessao"
36
36
  quality_gates: "Quality gates (veredictos em 3 niveis)"
@@ -85,6 +85,15 @@ status:
85
85
  backlog_items: "Itens do Backlog"
86
86
  high_priority: "alta prioridade"
87
87
 
88
+ features:
89
+ brandbook_step: "Fase 0: Estabelecendo identidade de marca (Brandbook)"
90
+ tech_preset_loaded: "Tech preset carregado: {preset}"
91
+ tech_preset_detected: "Stack tecnologico detectado: {stack}"
92
+ doctor_running: "Executando diagnosticos do Doctor..."
93
+ doctor_healthy: "Doctor: Todos os checks passaram"
94
+ doctor_degraded: "Doctor: Problemas encontrados (veja relatorio)"
95
+ doctor_fix_applied: "Doctor: Aplicado(s) {count} auto-fix(es)"
96
+
88
97
  errors:
89
98
  session_corrupted: "Arquivo de sessao parece corrompido. Tentando recuperacao..."
90
99
  handoff_missing: "Handoff nao encontrado. Usando session.yaml + CLAUDE.md como fallback."
@@ -0,0 +1,41 @@
1
+ # Tech Preset: Next.js
2
+ # Auto-loaded by Architect agent when Next.js stack is detected
3
+
4
+ stack: nextjs
5
+ displayName: "Next.js"
6
+
7
+ detection:
8
+ - next.config.js
9
+ - next.config.mjs
10
+ - next.config.ts
11
+
12
+ conventions:
13
+ routing: "App Router preferred (app/ directory)"
14
+ components: "Server Components by default, 'use client' for interactivity"
15
+ data_fetching: "Server-side fetch in page/layout, React Query for client"
16
+ styling: "Tailwind CSS or CSS Modules (no global CSS imports in components)"
17
+ api: "Route Handlers in app/api/ (not pages/api/)"
18
+
19
+ structure:
20
+ - "app/ — Routes, layouts, and pages"
21
+ - "app/api/ — Route Handlers (REST endpoints)"
22
+ - "components/ — Reusable UI components"
23
+ - "lib/ — Utility functions and shared logic"
24
+ - "public/ — Static assets"
25
+
26
+ rules:
27
+ - id: nextjs-ssr
28
+ text: "Prefer Server Components. Only add 'use client' when interactivity is needed."
29
+ priority: high
30
+ - id: nextjs-api
31
+ text: "Use Route Handlers (app/api/) for API endpoints. Not pages/api/."
32
+ priority: high
33
+ - id: nextjs-layout
34
+ text: "Use layout.tsx for shared UI. Avoid prop drilling through layouts."
35
+ priority: normal
36
+ - id: nextjs-metadata
37
+ text: "Export metadata from page.tsx for SEO. Use generateMetadata for dynamic pages."
38
+ priority: normal
39
+ - id: nextjs-loading
40
+ text: "Use loading.tsx and error.tsx for streaming and error boundaries."
41
+ priority: normal
@@ -0,0 +1,39 @@
1
+ # Tech Preset: Node.js + Express
2
+ # Auto-loaded by Architect agent when Express stack is detected
3
+
4
+ stack: node-express
5
+ displayName: "Node.js + Express"
6
+
7
+ detection:
8
+ - "package.json containing express"
9
+
10
+ conventions:
11
+ routing: "Express Router with modular route files"
12
+ middleware: "Error-handling middleware at the end of the chain"
13
+ validation: "Zod or Joi for request validation"
14
+ auth: "JWT or session-based, middleware pattern"
15
+ errors: "Centralized error handler with error classes"
16
+
17
+ structure:
18
+ - "src/ — Application source code"
19
+ - "src/routes/ — Express route definitions"
20
+ - "src/controllers/ — Request handlers"
21
+ - "src/middleware/ — Custom middleware"
22
+ - "src/services/ — Business logic"
23
+ - "src/models/ — Data models (ORM or raw queries)"
24
+ - "src/utils/ — Utility functions"
25
+ - "src/config/ — Configuration and environment"
26
+
27
+ rules:
28
+ - id: express-error-handler
29
+ text: "Always use a centralized error-handling middleware. Never swallow errors silently."
30
+ priority: critical
31
+ - id: express-validation
32
+ text: "Validate all request input (body, params, query) before processing."
33
+ priority: high
34
+ - id: express-async
35
+ text: "Wrap async route handlers to catch rejected promises (express-async-errors or manual try/catch)."
36
+ priority: high
37
+ - id: express-env
38
+ text: "Use environment variables for all configuration. Never hardcode secrets."
39
+ priority: critical
@@ -0,0 +1,37 @@
1
+ # Tech Preset: React + Vite
2
+ # Auto-loaded by Architect agent when React+Vite stack is detected
3
+
4
+ stack: react-vite
5
+ displayName: "React + Vite"
6
+
7
+ detection:
8
+ - vite.config.js
9
+ - vite.config.ts
10
+ - vite.config.mjs
11
+
12
+ conventions:
13
+ routing: "React Router v6+ with createBrowserRouter"
14
+ components: "Functional components with hooks"
15
+ state: "React Context for simple state, Zustand/Jotai for complex"
16
+ styling: "Tailwind CSS or CSS Modules"
17
+ build: "Vite with ESBuild for dev, Rollup for production"
18
+
19
+ structure:
20
+ - "src/ — Application source code"
21
+ - "src/components/ — Reusable UI components"
22
+ - "src/pages/ — Route-level components"
23
+ - "src/hooks/ — Custom React hooks"
24
+ - "src/lib/ — Utility functions"
25
+ - "src/assets/ — Static assets (images, fonts)"
26
+ - "public/ — Public static files"
27
+
28
+ rules:
29
+ - id: vite-env
30
+ text: "Use import.meta.env for environment variables. Prefix with VITE_ for client exposure."
31
+ priority: high
32
+ - id: vite-lazy
33
+ text: "Use React.lazy() and Suspense for route-level code splitting."
34
+ priority: normal
35
+ - id: vite-alias
36
+ text: "Configure path aliases in vite.config.ts (e.g., @ for src/)."
37
+ priority: normal
@@ -0,0 +1,37 @@
1
+ # Tech Preset: Supabase Fullstack
2
+ # Auto-loaded by Architect agent when Supabase stack is detected
3
+
4
+ stack: supabase-fullstack
5
+ displayName: "Supabase Fullstack"
6
+
7
+ detection:
8
+ - supabase/config.toml
9
+ - .env.local containing SUPABASE_URL
10
+
11
+ conventions:
12
+ auth: "Supabase Auth with RLS policies for authorization"
13
+ database: "PostgreSQL with Row Level Security (RLS) on every table"
14
+ storage: "Supabase Storage for file uploads with bucket policies"
15
+ functions: "Supabase Edge Functions (Deno) for serverless logic"
16
+ realtime: "Supabase Realtime for live subscriptions"
17
+
18
+ structure:
19
+ - "supabase/ — Supabase project configuration"
20
+ - "supabase/migrations/ — SQL migration files"
21
+ - "supabase/functions/ — Edge Functions (Deno)"
22
+ - "supabase/seed.sql — Seed data"
23
+ - "src/lib/supabase.ts — Supabase client initialization"
24
+
25
+ rules:
26
+ - id: supabase-rls
27
+ text: "EVERY table MUST have RLS enabled. No exceptions. Create policies before exposing data."
28
+ priority: critical
29
+ - id: supabase-migrations
30
+ text: "All schema changes go through migration files. Never modify production DB directly."
31
+ priority: critical
32
+ - id: supabase-types
33
+ text: "Generate TypeScript types from database schema (supabase gen types)."
34
+ priority: high
35
+ - id: supabase-auth
36
+ text: "Use Supabase Auth helpers for SSR frameworks. Handle auth state server-side."
37
+ priority: high
@@ -0,0 +1,113 @@
1
+ # Brandbook Template
2
+ # Used by: UX Agent (Phase 0: Brand Identity)
3
+ # Language: English (Constitution Article VII)
4
+
5
+ template:
6
+ name: Brandbook
7
+ version: "1.0.0"
8
+ description: >
9
+ Brand identity foundation document. Defines voice, visual language,
10
+ typography rationale, color philosophy, spacing rhythm, and iconography
11
+ style. Must be completed BEFORE design tokens.
12
+
13
+ output_path: chati.dev/artifacts/4-UX/brandbook.md
14
+
15
+ sections:
16
+ - brand_voice
17
+ - visual_language
18
+ - typography_rationale
19
+ - color_philosophy
20
+ - spacing_rhythm
21
+ - iconography_style
22
+
23
+ brand_voice:
24
+ description: "Brand personality, tone, and communication style"
25
+ fields:
26
+ - name: personality_traits
27
+ type: array
28
+ description: "3-5 adjectives defining the brand personality"
29
+ - name: tone_spectrum
30
+ type: object
31
+ description: "Formal vs casual, technical vs approachable spectrum"
32
+ - name: writing_guidelines
33
+ type: array
34
+ description: "Dos and don'ts for brand voice"
35
+ - name: example_phrases
36
+ type: array
37
+ description: "Sample phrases demonstrating brand voice"
38
+
39
+ visual_language:
40
+ description: "Core visual principles and aesthetic direction"
41
+ fields:
42
+ - name: design_principles
43
+ type: array
44
+ description: "3-5 guiding principles for visual design"
45
+ - name: mood_keywords
46
+ type: array
47
+ description: "Keywords capturing the visual mood"
48
+ - name: inspiration_references
49
+ type: array
50
+ description: "Visual references and mood board elements"
51
+
52
+ typography_rationale:
53
+ description: "Font selection rationale and typographic hierarchy"
54
+ fields:
55
+ - name: primary_font
56
+ type: object
57
+ description: "Primary typeface and why it was chosen"
58
+ - name: secondary_font
59
+ type: object
60
+ description: "Secondary typeface for contrast"
61
+ - name: hierarchy_rules
62
+ type: array
63
+ description: "Heading, body, caption sizing rationale"
64
+
65
+ color_philosophy:
66
+ description: "Color palette rationale and emotional associations"
67
+ fields:
68
+ - name: primary_palette
69
+ type: array
70
+ description: "Primary colors with emotional rationale"
71
+ - name: semantic_mapping
72
+ type: object
73
+ description: "Color-to-meaning mapping (success, warning, error)"
74
+ - name: accessibility_notes
75
+ type: string
76
+ description: "WCAG contrast compliance notes"
77
+
78
+ spacing_rhythm:
79
+ description: "Spacing scale rationale and rhythm system"
80
+ fields:
81
+ - name: base_unit
82
+ type: number
83
+ description: "Base spacing unit in pixels"
84
+ - name: scale_rationale
85
+ type: string
86
+ description: "Why this scale was chosen (4px, 8px, etc.)"
87
+ - name: rhythm_rules
88
+ type: array
89
+ description: "Rules for consistent vertical and horizontal rhythm"
90
+
91
+ iconography_style:
92
+ description: "Icon style direction and usage philosophy"
93
+ fields:
94
+ - name: style_direction
95
+ type: string
96
+ description: "Outlined, filled, duotone, etc."
97
+ - name: stroke_weight
98
+ type: string
99
+ description: "Consistent stroke weight for icon set"
100
+ - name: metaphor_guidelines
101
+ type: array
102
+ description: "Guidelines for icon metaphor selection"
103
+
104
+ rules:
105
+ - id: brand-before-tokens
106
+ text: "Brandbook MUST be completed before design tokens are defined."
107
+ priority: critical
108
+ - id: brand-consistency
109
+ text: "All visual decisions must trace back to brandbook principles."
110
+ priority: high
111
+ - id: brand-voice-artifacts
112
+ text: "All user-facing text in artifacts must follow brand voice guidelines."
113
+ priority: high
@@ -0,0 +1,74 @@
1
+ # Component Spec Template
2
+ # Used by: UX Agent (Phase 2: Component Specifications)
3
+ # Language: English (Constitution Article VII)
4
+
5
+ template:
6
+ name: Component Spec
7
+ version: "1.0.0"
8
+ description: >
9
+ UI component specification document. Defines variants, states,
10
+ anatomy, props, accessibility, and responsive behavior.
11
+
12
+ output_path: chati.dev/artifacts/4-UX/components/
13
+
14
+ fields:
15
+ - name: id
16
+ type: string
17
+ description: "Unique component identifier (kebab-case)"
18
+ required: true
19
+ - name: name
20
+ type: string
21
+ description: "Human-readable component name"
22
+ required: true
23
+ - name: category
24
+ type: enum
25
+ values: [primitive, composite, layout, feedback, navigation, data-display, form]
26
+ description: "Component category for organization"
27
+ required: true
28
+ - name: description
29
+ type: string
30
+ description: "One-sentence description of the component purpose"
31
+ required: true
32
+ - name: variants
33
+ type: array
34
+ description: "Visual variants (primary, secondary, ghost, destructive, etc.)"
35
+ required: true
36
+ - name: sizes
37
+ type: array
38
+ description: "Size variants (xs, sm, md, lg, xl)"
39
+ required: true
40
+ - name: states
41
+ type: array
42
+ description: "Interactive states (default, hover, active, focus, disabled, loading, error)"
43
+ required: true
44
+ - name: anatomy
45
+ type: object
46
+ description: "Component parts and their structure"
47
+ required: true
48
+ - name: props
49
+ type: array
50
+ description: "Component API (props with types, defaults, descriptions)"
51
+ required: true
52
+ - name: tokens_used
53
+ type: array
54
+ description: "Design tokens consumed by this component"
55
+ required: true
56
+ - name: accessibility
57
+ type: object
58
+ description: "ARIA roles, keyboard navigation, screen reader behavior"
59
+ required: true
60
+ - name: responsive_behavior
61
+ type: object
62
+ description: "How component adapts across breakpoints"
63
+ required: false
64
+
65
+ rules:
66
+ - id: tokens-required
67
+ text: "Every visual property MUST reference a design token. No hardcoded values."
68
+ priority: critical
69
+ - id: accessibility-required
70
+ text: "Every component MUST have ARIA roles and keyboard navigation defined."
71
+ priority: critical
72
+ - id: state-coverage
73
+ text: "All interactive states must be specified including disabled and loading."
74
+ priority: high
@@ -0,0 +1,55 @@
1
+ # Design Token Template
2
+ # Used by: UX Agent (Phase 1: Design Tokens)
3
+ # Language: English (Constitution Article VII)
4
+
5
+ template:
6
+ name: Design Tokens
7
+ version: "1.0.0"
8
+ description: >
9
+ Structured design token system with 4 layers: primitive, semantic,
10
+ component, and utility. Derived from brandbook decisions.
11
+
12
+ output_path: chati.dev/artifacts/4-UX/design-tokens.md
13
+
14
+ layers:
15
+ - primitive
16
+ - semantic
17
+ - component
18
+ - utility
19
+
20
+ token_categories:
21
+ color:
22
+ primitive: "Raw color values (hex, hsl)"
23
+ semantic: "Mapped to meaning (primary, success, error)"
24
+ component: "Component-specific (button-bg, card-border)"
25
+ spacing:
26
+ primitive: "Base unit multiples (4, 8, 12, 16, 24, 32, 48, 64)"
27
+ semantic: "Mapped to usage (compact, default, relaxed)"
28
+ component: "Component-specific (card-padding, input-gap)"
29
+ typography:
30
+ primitive: "Font families, raw sizes, weights"
31
+ semantic: "Mapped to roles (heading, body, caption, label)"
32
+ component: "Component-specific (button-text, input-label)"
33
+ radius:
34
+ primitive: "Raw radius values (0, 2, 4, 8, 12, full)"
35
+ semantic: "Mapped to shape intent (sharp, soft, round, pill)"
36
+ shadow:
37
+ primitive: "Raw shadow definitions (offset, blur, spread, color)"
38
+ semantic: "Mapped to elevation (flat, raised, floating, overlay)"
39
+ motion:
40
+ primitive: "Duration and easing values"
41
+ semantic: "Mapped to intent (enter, exit, emphasis, feedback)"
42
+
43
+ rules:
44
+ - id: tokens-after-brandbook
45
+ text: "Design tokens MUST be derived from brandbook decisions."
46
+ priority: critical
47
+ - id: primitive-first
48
+ text: "Define primitive tokens before semantic. Semantic references primitive."
49
+ priority: high
50
+ - id: token-naming
51
+ text: "Use consistent naming: layer-category-variant (e.g., color-primary-500)."
52
+ priority: high
53
+ - id: accessibility-contrast
54
+ text: "All text color tokens must meet WCAG AA contrast ratio (4.5:1)."
55
+ priority: critical
@@ -0,0 +1,95 @@
1
+ # Icon System Template
2
+ # Used by: UX Agent (Phase 0: Brand Identity / Iconography)
3
+ # Language: English (Constitution Article VII)
4
+
5
+ template:
6
+ name: Icon System
7
+ version: "1.0.0"
8
+ description: >
9
+ Icon library selection, sizing scale, usage guidelines, and inventory.
10
+ Aligned with brandbook iconography style.
11
+
12
+ output_path: chati.dev/artifacts/4-UX/icon-system.md
13
+
14
+ sections:
15
+ library_selection:
16
+ description: "Chosen icon library and rationale"
17
+ fields:
18
+ - name: library_name
19
+ type: string
20
+ description: "Selected icon library (e.g., Lucide, Phosphor, Heroicons)"
21
+ - name: rationale
22
+ type: string
23
+ description: "Why this library was chosen"
24
+ - name: style
25
+ type: enum
26
+ values: [outlined, filled, duotone, solid]
27
+ description: "Icon style variant"
28
+ - name: license
29
+ type: string
30
+ description: "Icon library license (MIT, Apache, etc.)"
31
+
32
+ sizing_scale:
33
+ description: "Icon size scale aligned with spacing tokens"
34
+ fields:
35
+ - name: xs
36
+ type: number
37
+ description: "Extra small icon size (12-14px)"
38
+ - name: sm
39
+ type: number
40
+ description: "Small icon size (16px)"
41
+ - name: md
42
+ type: number
43
+ description: "Medium icon size (20-24px)"
44
+ - name: lg
45
+ type: number
46
+ description: "Large icon size (28-32px)"
47
+ - name: xl
48
+ type: number
49
+ description: "Extra large icon size (40-48px)"
50
+ - name: xxl
51
+ type: number
52
+ description: "Display icon size (56-64px)"
53
+
54
+ usage_guidelines:
55
+ description: "Rules for consistent icon usage"
56
+ fields:
57
+ - name: with_text
58
+ type: string
59
+ description: "When to pair icons with text labels"
60
+ - name: standalone
61
+ type: string
62
+ description: "When icons can stand alone (with aria-label)"
63
+ - name: color_rules
64
+ type: string
65
+ description: "How icons inherit or override color tokens"
66
+ - name: touch_target
67
+ type: string
68
+ description: "Minimum touch target size (44x44px for mobile)"
69
+
70
+ icon_inventory:
71
+ description: "Catalog of icons used in the project"
72
+ fields:
73
+ - name: navigation
74
+ type: array
75
+ description: "Icons used in navigation elements"
76
+ - name: actions
77
+ type: array
78
+ description: "Icons for user actions (add, edit, delete, etc.)"
79
+ - name: status
80
+ type: array
81
+ description: "Icons for status indicators (success, warning, error, info)"
82
+ - name: content
83
+ type: array
84
+ description: "Icons for content types (file, folder, image, etc.)"
85
+
86
+ rules:
87
+ - id: icon-library-consistency
88
+ text: "Use ONE icon library per project. Do not mix libraries."
89
+ priority: critical
90
+ - id: icon-accessibility
91
+ text: "Standalone icons MUST have aria-label. Decorative icons use aria-hidden."
92
+ priority: critical
93
+ - id: icon-sizing-alignment
94
+ text: "Icon sizes must align with the spacing token scale from design tokens."
95
+ priority: high
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chati-dev",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "description": "AI-Powered Multi-Agent Orchestration System — Structured vibe coding for Full Stack Development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -37,7 +37,7 @@ const dirs = [
37
37
  'schemas', 'frameworks', 'intelligence', 'patterns',
38
38
  'hooks', 'domains',
39
39
  'i18n', 'migrations', 'data',
40
- 'tasks', 'context',
40
+ 'tasks', 'context', 'presets',
41
41
  ];
42
42
 
43
43
  for (const dir of dirs) {
@@ -10,7 +10,7 @@
10
10
  */
11
11
 
12
12
  import { existsSync, readFileSync } from 'fs';
13
- import { join } from 'path';
13
+
14
14
 
15
15
  /**
16
16
  * @typedef {object} DecisionIntent
@@ -198,7 +198,7 @@ export function parseRegistryEntities(raw) {
198
198
 
199
199
  for (const line of lines) {
200
200
  // Category header (agents:, templates:, etc.) — 2-space indent under entities:
201
- const categoryMatch = line.match(/^ (\w[\w-]*):\s*$/);
201
+ const categoryMatch = line.match(/^ {2}(\w[\w-]*):\s*$/);
202
202
  if (categoryMatch && !line.match(/^\s{4}/)) {
203
203
  // Save previous entity
204
204
  if (currentEntity && currentData.purpose) {
@@ -211,7 +211,7 @@ export function parseRegistryEntities(raw) {
211
211
  }
212
212
 
213
213
  // Entity header (e.g., " orchestrator:") — 4-space indent
214
- const entityMatch = line.match(/^ ([\w][\w-]*):\s*$/);
214
+ const entityMatch = line.match(/^ {4}([\w][\w-]*):\s*$/);
215
215
  if (entityMatch) {
216
216
  // Save previous entity
217
217
  if (currentEntity && currentData.purpose) {