macca-method 2.0.0 → 2.1.2

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 (64) hide show
  1. package/.agents/macca-lock.json +1 -1
  2. package/.agents/skills/_shared/references/brainstorm-session.md +5 -5
  3. package/.agents/skills/_shared/references/fix-mode.md +18 -3
  4. package/.agents/skills/_shared/references/human-loop.md +1 -1
  5. package/.agents/skills/_shared/references/invocation-policy.md +20 -20
  6. package/.agents/skills/_shared/references/language-config.md +7 -5
  7. package/.agents/skills/_shared/references/output-ownership.md +11 -11
  8. package/.agents/skills/_shared/references/scope-rules.md +1 -1
  9. package/.agents/skills/_shared/references/skill-catalog.md +20 -20
  10. package/.agents/skills/_shared/scripts/validate-skills.py +37 -15
  11. package/.agents/skills/add-feature/SKILL.md +11 -3
  12. package/.agents/skills/antislop-copywriting/SKILL.md +372 -0
  13. package/.agents/skills/brainstorm-api/SKILL.md +33 -19
  14. package/.agents/skills/brainstorm-api/assets/api.template.md +35 -15
  15. package/.agents/skills/brainstorm-architecture/SKILL.md +40 -18
  16. package/.agents/skills/brainstorm-architecture/assets/architecture.template.md +44 -25
  17. package/.agents/skills/brainstorm-prd/SKILL.md +52 -20
  18. package/.agents/skills/brainstorm-prd/assets/PRD.template.md +47 -23
  19. package/.agents/skills/brainstorm-rules/SKILL.md +39 -22
  20. package/.agents/skills/brainstorm-rules/assets/rules.template.md +32 -18
  21. package/.agents/skills/brainstorm-schema/SKILL.md +23 -11
  22. package/.agents/skills/brainstorm-schema/assets/schema.template.md +25 -10
  23. package/.agents/skills/brainstorm-styleguide/SKILL.md +40 -22
  24. package/.agents/skills/brainstorm-styleguide/assets/StyleGuide.template.md +78 -60
  25. package/.agents/skills/brainstorm-task/SKILL.md +29 -14
  26. package/.agents/skills/brainstorm-task/assets/Task.template.md +29 -18
  27. package/.agents/skills/bug-fix/SKILL.md +39 -8
  28. package/.agents/skills/code-review/SKILL.md +9 -7
  29. package/.agents/skills/code-review/references/review-checklist.md +21 -10
  30. package/.agents/skills/developer/SKILL.md +10 -0
  31. package/.agents/skills/developer/references/execute-task.md +13 -7
  32. package/.agents/skills/developer/references/onboarding.md +1 -1
  33. package/.agents/skills/help/SKILL.md +39 -23
  34. package/.agents/skills/meet/SKILL.md +11 -4
  35. package/.agents/skills/quick-dev/SKILL.md +29 -22
  36. package/.agents/skills/release-readiness/SKILL.md +19 -13
  37. package/.agents/skills/skill-creator/LICENSE.txt +202 -0
  38. package/.agents/skills/skill-creator/SKILL.md +485 -0
  39. package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
  40. package/.agents/skills/skill-creator/agents/comparator.md +202 -0
  41. package/.agents/skills/skill-creator/agents/grader.md +223 -0
  42. package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
  43. package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  44. package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  45. package/.agents/skills/skill-creator/references/schemas.md +441 -0
  46. package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
  47. package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  48. package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
  49. package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
  50. package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
  51. package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
  52. package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
  53. package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
  54. package/.agents/skills/skill-creator/scripts/utils.py +47 -0
  55. package/.agents/skills/spec-audit/SKILL.md +33 -4
  56. package/.agents/skills/spec-compliance/SKILL.md +36 -21
  57. package/.agents/skills/spec-init/SKILL.md +31 -17
  58. package/README.md +165 -129
  59. package/bin/macca-method.js +1378 -1077
  60. package/package.json +40 -40
  61. package/scripts/run-skill-validator.js +27 -9
  62. package/scripts/test-install.js +611 -337
  63. package/scripts/test-upgrade-legacy.js +131 -76
  64. package/scripts/validate-skill-behavior.js +175 -64
@@ -20,6 +20,7 @@ Run as `@Fachri` (Tech Lead). Use the shared persona profile in `../_shared/refe
20
20
  You are **@Fachri — Tech Lead**, a **Senior Database Architect** who designs efficient, correct, secure data structures.
21
21
 
22
22
  **Expertise:**
23
+
23
24
  - Database modeling (relational and non-relational)
24
25
  - Normalization, intentional denormalization, and trade-offs
25
26
  - Indexing strategies based on real access patterns
@@ -34,15 +35,17 @@ You are **@Fachri — Tech Lead**, a **Senior Database Architect** who designs e
34
35
 
35
36
  ## Shared Runtime Setup
36
37
 
38
+ Paths written as `../...` below are relative to this SKILL.md's own folder, not the project's working directory - resolve them as a sibling of the folder that contains this file.
39
+
37
40
  Before any interview:
38
41
 
39
42
  1. Read `../_shared/references/language-config.md`.
40
43
  2. Read `../_shared/references/config-mutation.md`.
41
44
  3. Read `../_shared/references/brainstorm-session.md`.
42
45
  4. Read `../_shared/references/scope-rules.md`.
43
- 4. Use `languagePreferences.communication.normalized` for chat.
44
- 5. Use `languagePreferences.documents.normalized` for the final `project-context/schema.md`.
45
- 6. Apply `brainstormPreferences.discussionMode`, `recommendations`, and `discoveryDepth` using the shared session policy.
46
+ 5. Use `languagePreferences.communication.normalized` for chat.
47
+ 6. Use `languagePreferences.documents.normalized` for the final `project-context/schema.md`.
48
+ 7. Apply `brainstormPreferences.discussionMode`, `recommendations`, and `discoveryDepth` using the shared session policy.
46
49
 
47
50
  ---
48
51
 
@@ -51,8 +54,8 @@ Before any interview:
51
54
  1. Load after `architecture.md` is complete.
52
55
 
53
56
  2. **Read existing project-context**:
54
- - `project-context/PRD.md` — features and business rules that determine tables
55
- - `project-context/architecture.md` — tech stack, ORM, database conventions
57
+ - `project-context/PRD.md` — features and business rules that determine tables
58
+ - `project-context/architecture.md` — tech stack, ORM, database conventions
56
59
 
57
60
  3. If `.agents/developer-config.json` exists and `developerPreferences.scope = "frontend"`, DO NOT create `schema.md`. Explain that database and schema work is outside the current scope, and that backend dependencies should be documented only through the `api.md` consumer contract.
58
61
 
@@ -71,9 +74,11 @@ Before any interview:
71
74
  Ask all five topics using the chosen pacing mode. First classify the persistence model from `architecture.md` as relational, document, key-value, graph, event store, or mixed. Adapt terminology and output to that model.
72
75
 
73
76
  ### 1. Database Conventions
74
- *"Before tables, let's align on conventions. Any preferences?"*
77
+
78
+ _"Before tables, let's align on conventions. Any preferences?"_
75
79
 
76
80
  Collect:
81
+
77
82
  - **Identity strategy:** primary key, document ID, aggregate/stream ID, graph ID, or key format?
78
83
  - **Naming:** datastore-native naming for tables, collections, keys, node labels, streams, and fields?
79
84
  - **Audit/version metadata:** timestamps, version/revision, event metadata, or none?
@@ -82,9 +87,11 @@ Collect:
82
87
  - **Retention:** How long is data stored? Any anonymization or archival schedule?
83
88
 
84
89
  ### 2. Entity/Storage List
85
- *"What tables, collections, aggregates, nodes, or stores are needed?"*
90
+
91
+ _"What tables, collections, aggregates, nodes, or stores are needed?"_
86
92
 
87
93
  Collect by persistence model:
94
+
88
95
  - **Relational:** tables and junction tables
89
96
  - **Document:** collections, document roots, and embedded subdocuments
90
97
  - **Key-value:** key spaces, key format, and value shape
@@ -94,9 +101,11 @@ Collect by persistence model:
94
101
  - **Multi-tenant systems only:** tenant key/boundary, isolation enforcement, cross-tenant constraints, export/deletion, and partition strategy
95
102
 
96
103
  ### 3. Fields & Data Types
97
- *"For each data structure, list fields and datastore-native data types."*
104
+
105
+ _"For each data structure, list fields and datastore-native data types."_
98
106
 
99
107
  Collect per datastore-native structure:
108
+
100
109
  - Field names and datastore-native types
101
110
  - Validation/constraints appropriate to the selected model
102
111
  - Which columns contain sensitive data/PII?
@@ -105,9 +114,11 @@ Collect per datastore-native structure:
105
114
  - Expected record/document/event volume, growth rate, payload size, and retention horizon where material
106
115
 
107
116
  ### 4. Relationships and Data Placement
108
- *"What relationships exist, and should related data use foreign keys, references, embedding, edges, or another datastore-native pattern?"*
117
+
118
+ _"What relationships exist, and should related data use foreign keys, references, embedding, edges, or another datastore-native pattern?"_
109
119
 
110
120
  Collect:
121
+
111
122
  - **Relational:** cardinality, foreign-key owner, and cascade/set-null/restrict behavior
112
123
  - **Document:** embedding vs references, document growth, and update atomicity
113
124
  - **Key-value:** key composition, lookup direction, and secondary-index needs
@@ -117,9 +128,11 @@ Collect:
117
128
  - Concurrency model: transaction boundary, optimistic version, lock/contention policy, duplicate update protection, or equivalent
118
129
 
119
130
  ### 5. Indexes & Performance
120
- *"Which access patterns, filters, sorts, traversals, stream reads, or lookups must be efficient? What datastore-native indexes or projections support them?"*
131
+
132
+ _"Which access patterns, filters, sorts, traversals, stream reads, or lookups must be efficient? What datastore-native indexes or projections support them?"_
121
133
 
122
134
  Collect:
135
+
123
136
  - Required reads/writes and expected scale
124
137
  - Datastore-native indexes, projections, partitioning, traversal, or caching needed for those access patterns
125
138
  - Consistency and latency expectations that constrain the design
@@ -148,5 +161,4 @@ Adapt only sections that are applicable and preserve every required contract fro
148
161
  - If the user has no table plan yet, suggest tables from PRD features and user stories.
149
162
  - Render the final document in the configured document language
150
163
 
151
-
152
164
  ---
@@ -1,11 +1,13 @@
1
1
  # Database Schema
2
2
 
3
3
  ## Document Role
4
+
4
5
  - **Source of Truth:** Data model and persistence contract
5
6
  - **Primary Owner:** `brainstorm-schema`
6
7
  - **Out of Scope:** Endpoint behavior, UI rules, and code-level implementation details
7
8
 
8
9
  ## Persistence Profile
10
+
9
11
  - **Model:** Relational / Document / Key-value / Graph / Event store / Mixed
10
12
  - **Identity Strategy:** [UUID / key format / aggregate ID / stream ID]
11
13
  - **Naming:** [datastore-native naming rules]
@@ -14,21 +16,25 @@
14
16
  - **Timezone:** [UTC/local/N/A]
15
17
 
16
18
  ## Entity / Storage Map
17
- | Data ID | Structure | Type | Purpose | Trace to |
18
- |---------|-----------|------|---------|----------|
19
- | DATA-01 | `[name]` | Table / Collection / Key Space / Node / Stream / Aggregate | [purpose] | `FEAT-01 / BR-01` |
19
+
20
+ | Data ID | Structure | Type | Purpose | Trace to |
21
+ | ------- | --------- | ---------------------------------------------------------- | --------- | ----------------- |
22
+ | DATA-01 | `[name]` | Table / Collection / Key Space / Node / Stream / Aggregate | [purpose] | `FEAT-01 / BR-01` |
20
23
 
21
24
  ## Global Data Protection
22
- | Structure/Field | Category | Protection | Retention | Notes |
23
- |-----------------|----------|------------|-----------|-------|
24
- | [users.email] | PII | [encrypt/mask/plain] | [retention rule] | [notes] |
25
+
26
+ | Structure/Field | Category | Protection | Retention | Notes |
27
+ | --------------- | -------- | -------------------- | ---------------- | ------- |
28
+ | [users.email] | PII | [encrypt/mask/plain] | [retention rule] | [notes] |
25
29
 
26
30
  ## Scale, Tenancy & Concurrency
31
+
27
32
  - **Expected Scale/Growth:** [records, payload, growth]
28
33
  - **Tenant Isolation:** [N/A or enforcement model]
29
34
  - **Concurrency Strategy:** [transaction/version/lock/idempotency]
30
35
 
31
36
  ## Schema Evolution & Migration
37
+
32
38
  - **Compatibility:** [backward/forward policy]
33
39
  - **Migration Order:** [expand/backfill/switch/contract or equivalent]
34
40
  - **Backfill & Validation:** [strategy]
@@ -40,19 +46,22 @@
40
46
  ## Relational Section (include only for relational or mixed)
41
47
 
42
48
  ### Table DATA-01: `[table_name]`
49
+
43
50
  > **Trace to:** [FEAT-01 / BR-01]
44
51
  > **PII:** Yes / No
45
52
  > **Retention:** [policy]
46
53
 
47
- | Column | Type | Nullable | Default | Constraint | Notes |
48
- |--------|------|----------|---------|------------|-------|
49
- | id | UUID | No | gen_random_uuid() | PRIMARY KEY | |
50
- | [column] | [type] | [Yes/No] | [default] | [constraint] | [notes] |
54
+ | Column | Type | Nullable | Default | Constraint | Notes |
55
+ | -------- | ------ | -------- | ----------------- | ------------ | ------- |
56
+ | id | UUID | No | gen_random_uuid() | PRIMARY KEY | |
57
+ | [column] | [type] | [Yes/No] | [default] | [constraint] | [notes] |
51
58
 
52
59
  **Relationships:**
60
+
53
61
  - [One-to-many / many-to-many / delete rule]
54
62
 
55
63
  **Indexes:**
64
+
56
65
  - [column/index purpose]
57
66
 
58
67
  ---
@@ -60,6 +69,7 @@
60
69
  ## Document Section (include only for document or mixed)
61
70
 
62
71
  ### Collection DATA-01: `[collection_name]`
72
+
63
73
  > **Trace to:** [FEAT-01 / BR-01]
64
74
 
65
75
  - **Root Document Shape:** [summary]
@@ -72,6 +82,7 @@
72
82
  ## Key-Value Section (include only for key-value or mixed)
73
83
 
74
84
  ### Key Space DATA-01: `[keyspace_name]`
85
+
75
86
  > **Trace to:** [FEAT-01 / BR-01]
76
87
 
77
88
  - **Key Format:** [pattern]
@@ -83,6 +94,7 @@
83
94
  ## Graph Section (include only for graph or mixed)
84
95
 
85
96
  ### Node / Edge DATA-01: `[node_or_edge_name]`
97
+
86
98
  > **Trace to:** [FEAT-01 / BR-01]
87
99
 
88
100
  - **Node/Edge Type:** [type]
@@ -94,6 +106,7 @@
94
106
  ## Event Store Section (include only for event-store or mixed)
95
107
 
96
108
  ### Aggregate / Stream DATA-01: `[stream_name]`
109
+
97
110
  > **Trace to:** [FEAT-01 / BR-01]
98
111
 
99
112
  - **Aggregate Boundary:** [summary]
@@ -102,8 +115,10 @@
102
115
  - **Ordering / Versioning:** [rules]
103
116
 
104
117
  ## Not Yet Modeled / Deferred
118
+
105
119
  - [Data area intentionally not yet modeled]
106
120
 
107
121
  ## Assumptions & Open Questions
122
+
108
123
  - [Assumption about structures, relationships, or data rules]
109
124
  - [Question that needs user confirmation]
@@ -20,6 +20,7 @@ Run as `@Akram` (UI/UX Designer). Use the shared persona profile in `../_shared/
20
20
  You are a **Senior UI/UX Designer** who builds scalable, consistent design systems.
21
21
 
22
22
  **Expertise:**
23
+
23
24
  - Building design tokens (color, typography, spacing)
24
25
  - Tailwind CSS, CSS Modules, utility-first approaches
25
26
  - Accessibility (WCAG) and responsive design principles
@@ -39,19 +40,19 @@ This skill generates **StyleGuide.md** through an interactive interview. It prev
39
40
  1. Run this after the PRD and architecture are clear, or when discussing UI design.
40
41
 
41
42
  2. **Read existing project-context** before any user interaction:
42
- - `project-context/PRD.md` — target platforms and referenced UI patterns
43
- - `project-context/architecture.md` — chosen frontend tech stack
44
- - If `.agents/developer-config.json` exists, read `developerPreferences.scope`
45
-
46
- 3. **Shared Runtime Setup** — before the interview:
47
- - Read `../_shared/references/language-config.md`.
48
- - Read `../_shared/references/config-mutation.md`.
49
- - Read `../_shared/references/brainstorm-session.md`.
50
- - Read `../_shared/references/scope-rules.md`.
51
- - Use `languagePreferences.communication.normalized` for chat.
52
- - Use `languagePreferences.documents.normalized` for the final `project-context/StyleGuide.md`.
53
- - Apply `brainstormPreferences.discussionMode`, `recommendations`, and `discoveryDepth` using the shared session policy.
54
- - For this skill: announce that there are 7 topics, ask for pacing (one by one / three at once / all at once), and ask for recommendation preference if it is not already stored.
43
+ - `project-context/PRD.md` — target platforms and referenced UI patterns
44
+ - `project-context/architecture.md` — chosen frontend tech stack
45
+ - If `.agents/developer-config.json` exists, read `developerPreferences.scope`
46
+
47
+ 3. **Shared Runtime Setup** — before the interview (paths written as `../...` are relative to this SKILL.md's own folder, not the project's working directory):
48
+ - Read `../_shared/references/language-config.md`.
49
+ - Read `../_shared/references/config-mutation.md`.
50
+ - Read `../_shared/references/brainstorm-session.md`.
51
+ - Read `../_shared/references/scope-rules.md`.
52
+ - Use `languagePreferences.communication.normalized` for chat.
53
+ - Use `languagePreferences.documents.normalized` for the final `project-context/StyleGuide.md`.
54
+ - Apply `brainstormPreferences.discussionMode`, `recommendations`, and `discoveryDepth` using the shared session policy.
55
+ - For this skill: announce that there are 8 topics, ask for pacing (one by one / three at once / all at once), and ask for recommendation preference if it is not already stored.
55
56
 
56
57
  4. If scope = `backend`, DO NOT create `StyleGuide.md`. Explain that UI work is outside the current scope.
57
58
 
@@ -59,25 +60,29 @@ This skill generates **StyleGuide.md** through an interactive interview. It prev
59
60
 
60
61
  6. After all topics are complete, create `project-context/StyleGuide.md` (create `project-context/` if needed).
61
62
 
62
- > ⚠️ **If the file already exists:** ask the user before overwriting — "(A) Replace the entire file, (B) cancel and review first." Wait for the answer.
63
+ > ⚠️ **If the file already exists:** "(A) Overwrite all, (B) Cancel and review first." Wait for the answer.
63
64
 
64
65
  7. Summarize the result and provide next steps.
65
66
 
66
67
  ## Interview Topics (8)
67
68
 
68
69
  ### 1. CSS Framework
69
- **Ask:** *"What CSS framework is used: Tailwind, Bootstrap, or custom CSS?"*
70
+
71
+ **Ask:** _"What CSS framework is used: Tailwind, Bootstrap, or custom CSS?"_
70
72
 
71
73
  **Collect:**
74
+
72
75
  - If Tailwind: v3 or v4?
73
76
  - If Bootstrap: preferred version?
74
77
  - Or CSS modules / styled-components / vanilla CSS?
75
78
  - Utility-first or component-based?
76
79
 
77
80
  ### 2. Color Palette
78
- **Ask:** *"What color scheme do you want? List primary, secondary, accent, and status colors."*
81
+
82
+ **Ask:** _"What color scheme do you want? List primary, secondary, accent, and status colors."_
79
83
 
80
84
  **Collect:**
85
+
81
86
  - Primary color (brand)
82
87
  - Secondary color (accent)
83
88
  - Background color
@@ -87,9 +92,11 @@ This skill generates **StyleGuide.md** through an interactive interview. It prev
87
92
  - Hex/RGB codes if available
88
93
 
89
94
  ### 3. Typography
90
- **Ask:** *"What fonts do you want? Any difference between headings and body text?"*
95
+
96
+ **Ask:** _"What fonts do you want? Any difference between headings and body text?"_
91
97
 
92
98
  **Collect:**
99
+
93
100
  - Heading font family (for example Inter, Poppins, Roboto)
94
101
  - Body font family
95
102
  - Font sizes for H1, H2, H3, H4, body, caption
@@ -97,18 +104,22 @@ This skill generates **StyleGuide.md** through an interactive interview. It prev
97
104
  - Google Fonts or custom fonts?
98
105
 
99
106
  ### 4. Spacing System
100
- **Ask:** *"What spacing scale do you want? Is the base unit 4px, 8px, or 16px?"*
107
+
108
+ **Ask:** _"What spacing scale do you want? Is the base unit 4px, 8px, or 16px?"_
101
109
 
102
110
  **Collect:**
111
+
103
112
  - Base spacing unit (4px or 8px?)
104
113
  - Use default Tailwind scale or custom?
105
114
  - Padding/margin for containers, cards, buttons
106
115
  - Spacing between page sections
107
116
 
108
117
  ### 5. Component Style
109
- **Ask:** *"How should components look? For buttons, cards, and inputs, what border and shadow style do you want?"*
118
+
119
+ **Ask:** _"How should components look? For buttons, cards, and inputs, what border and shadow style do you want?"_
110
120
 
111
121
  **Collect:**
122
+
112
123
  - Border radius (rounded-sm, rounded-md, rounded-full, square)
113
124
  - Button style (filled, outline, ghost) and sizes (sm, md, lg)
114
125
  - Card style (border, shadow, background)
@@ -117,25 +128,31 @@ This skill generates **StyleGuide.md** through an interactive interview. It prev
117
128
  - Transitions/animation: duration and easing (for example `150ms ease-in-out`)
118
129
 
119
130
  ### 6. Responsive & Breakpoints
120
- **Ask:** *"What responsive breakpoints are used? Mobile-first or desktop-first?"*
131
+
132
+ **Ask:** _"What responsive breakpoints are used? Mobile-first or desktop-first?"_
121
133
 
122
134
  **Collect:**
135
+
123
136
  - Mobile-first (default) or desktop-first?
124
137
  - Breakpoint values (or use Tailwind defaults: sm:640, md:768, lg:1024, xl:1280)
125
138
  - Layout changes per breakpoint (for example sidebar collapses below md)
126
139
 
127
140
  ### 7. Iconography
128
- **Ask:** *"What icon library is used: Lucide, Heroicons, FontAwesome, or custom?"*
141
+
142
+ **Ask:** _"What icon library is used: Lucide, Heroicons, FontAwesome, or custom?"_
129
143
 
130
144
  **Collect:**
145
+
131
146
  - Preferred icon library
132
147
  - Default icon size (16px, 20px, 24px)
133
148
  - Need custom SVG icons?
134
149
 
135
150
  ### 8. Accessibility, Localization & Operational States
136
- **Ask:** *"Which accessibility target and non-happy-path states must the UI support: loading, empty, error, forbidden, offline, reduced motion, keyboard, screen reader, or localization?"*
151
+
152
+ **Ask:** _"Which accessibility target and non-happy-path states must the UI support: loading, empty, error, forbidden, offline, reduced motion, keyboard, screen reader, or localization?"_
137
153
 
138
154
  **Collect:**
155
+
139
156
  - Accessibility target from PRD (for example WCAG AA), keyboard order, visible focus, labels, contrast, touch targets, and reduced motion
140
157
  - Loading/skeleton, empty, error, disabled/read-only, permission-denied, offline, and partial-data behavior that applies to primary surfaces
141
158
  - Supported locales from PRD; text expansion, pluralization, date/number/currency/timezone formatting, and RTL only when relevant
@@ -152,6 +169,7 @@ Adapt only sections that are applicable and preserve every required contract fro
152
169
  ## Next Steps
153
170
 
154
171
  After StyleGuide.md is complete:
172
+
155
173
  1. Run `brainstorm-rules` to create coding standards
156
174
  2. Then: `brainstorm-task` to create Task.md
157
175
 
@@ -3,136 +3,152 @@
3
3
  > **Framework:** [CSS Framework] | **Approach:** [Utility-first / Component-based]
4
4
 
5
5
  ## Document Role
6
+
6
7
  - **Source of Truth:** Visual system and UI conventions for this project
7
8
  - **Primary Owner:** `brainstorm-styleguide`
8
9
  - **Out of Scope:** Backend logic, API contracts, and non-UI technical architecture
9
10
 
10
11
  ## Supported Surfaces
11
- | Surface | Included? | Notes |
12
- |---------|-----------|-------|
13
- | Web app | Yes / No | [notes] |
14
- | Admin panel | Yes / No | [notes] |
15
- | Marketing site | Yes / No | [notes] |
16
- | Email / PDF / export | Yes / No | [notes] |
12
+
13
+ | Surface | Included? | Notes |
14
+ | -------------------- | --------- | ------- |
15
+ | Web app | Yes / No | [notes] |
16
+ | Admin panel | Yes / No | [notes] |
17
+ | Marketing site | Yes / No | [notes] |
18
+ | Email / PDF / export | Yes / No | [notes] |
17
19
 
18
20
  ---
19
21
 
20
22
  ## 1. CSS Framework
23
+
21
24
  - **Framework:** [Tailwind CSS v3 / Bootstrap 5 / CSS Modules / etc.]
22
25
  - **Version:** [version]
23
26
  - **Notes:** [Additional rules]
24
27
 
25
28
  ## 2. Color Palette
26
- | Role | Hex | Tailwind | Description |
27
- |------|-----|----------|-------------|
28
- | Primary | `#xxx` | `bg-blue-600` | Main brand |
29
- | Secondary | `#xxx` | `bg-gray-600` | Accent |
30
- | Background | `#xxx` | `bg-gray-50` | Page background |
31
- | Surface | `#xxx` | `bg-white` | Card/panel background |
32
- | Primary Text | `#xxx` | `text-gray-900` | Main text |
33
- | Secondary Text | `#xxx` | `text-gray-500` | Secondary text |
34
- | Error | `#xxx` | `text-red-500` | Error message |
35
- | Success | `#xxx` | `text-green-500` | Success message |
36
- | Warning | `#xxx` | `text-yellow-500` | Warning message |
37
- | Info | `#xxx` | `text-blue-500` | Info message |
29
+
30
+ | Role | Hex | Tailwind | Description |
31
+ | -------------- | ------ | ----------------- | --------------------- |
32
+ | Primary | `#xxx` | `bg-blue-600` | Main brand |
33
+ | Secondary | `#xxx` | `bg-gray-600` | Accent |
34
+ | Background | `#xxx` | `bg-gray-50` | Page background |
35
+ | Surface | `#xxx` | `bg-white` | Card/panel background |
36
+ | Primary Text | `#xxx` | `text-gray-900` | Main text |
37
+ | Secondary Text | `#xxx` | `text-gray-500` | Secondary text |
38
+ | Error | `#xxx` | `text-red-500` | Error message |
39
+ | Success | `#xxx` | `text-green-500` | Success message |
40
+ | Warning | `#xxx` | `text-yellow-500` | Warning message |
41
+ | Info | `#xxx` | `text-blue-500` | Info message |
38
42
 
39
43
  **Dark Mode:** [Supported / Not supported]
40
44
 
41
45
  ## 3. Typography
46
+
42
47
  - **Heading Font:** [Font Name] — via [Google Fonts / local]
43
48
  - **Body Font:** [Font Name] — via [Google Fonts / local]
44
49
 
45
- | Level | Size | Weight | Line Height |
46
- |-------|------|--------|-------------|
47
- | H1 | [size] | [weight] | [line-height] |
48
- | H2 | [size] | [weight] | [line-height] |
49
- | H3 | [size] | [weight] | [line-height] |
50
- | H4 | [size] | [weight] | [line-height] |
51
- | Body | [size] | regular | [line-height] |
52
- | Small | [size] | regular | [line-height] |
53
- | Caption | [size] | regular | [line-height] |
50
+ | Level | Size | Weight | Line Height |
51
+ | ------- | ------ | -------- | ------------- |
52
+ | H1 | [size] | [weight] | [line-height] |
53
+ | H2 | [size] | [weight] | [line-height] |
54
+ | H3 | [size] | [weight] | [line-height] |
55
+ | H4 | [size] | [weight] | [line-height] |
56
+ | Body | [size] | regular | [line-height] |
57
+ | Small | [size] | regular | [line-height] |
58
+ | Caption | [size] | regular | [line-height] |
54
59
 
55
60
  ## 4. Spacing System
61
+
56
62
  - **Base Unit:** [4px / 8px]
57
63
  - **Scale:** [Tailwind Default / Custom]
58
64
 
59
- | Token | Value | Tailwind |
60
- |-------|-------|----------|
61
- | xs | [4px] | `p-1` |
62
- | sm | [8px] | `p-2` |
63
- | md | [16px] | `p-4` |
64
- | lg | [24px] | `p-6` |
65
- | xl | [32px] | `p-8` |
66
- | 2xl | [48px] | `p-12` |
65
+ | Token | Value | Tailwind |
66
+ | ----- | ------ | -------- |
67
+ | xs | [4px] | `p-1` |
68
+ | sm | [8px] | `p-2` |
69
+ | md | [16px] | `p-4` |
70
+ | lg | [24px] | `p-6` |
71
+ | xl | [32px] | `p-8` |
72
+ | 2xl | [48px] | `p-12` |
67
73
 
68
74
  ## 5. Component Style
75
+
69
76
  - **Border Radius:** [rounded-md / rounded-lg / none]
70
77
  - **Shadow:** [shadow-sm / shadow-md / none]
71
78
 
72
79
  ## Component Inventory
73
- | Component | Status | Notes |
74
- |-----------|--------|-------|
75
- | Button | Defined | [notes] |
76
- | Card | Defined | [notes] |
77
- | Input | Defined | [notes] |
78
- | Modal | Defined / Deferred | [notes] |
79
- | Table | Defined / Deferred | [notes] |
80
+
81
+ | Component | Status | Notes |
82
+ | --------- | ------------------ | ------- |
83
+ | Button | Defined | [notes] |
84
+ | Card | Defined | [notes] |
85
+ | Input | Defined | [notes] |
86
+ | Modal | Defined / Deferred | [notes] |
87
+ | Table | Defined / Deferred | [notes] |
80
88
 
81
89
  ### Button
82
- | Variant | Style |
83
- |---------|-------|
84
- | Primary | [bg-primary text-white rounded-md px-4 py-2] |
85
- | Secondary | [outline / ghost] |
86
- | Danger | [bg-error text-white] |
90
+
91
+ | Variant | Style |
92
+ | --------- | -------------------------------------------- |
93
+ | Primary | [bg-primary text-white rounded-md px-4 py-2] |
94
+ | Secondary | [outline / ghost] |
95
+ | Danger | [bg-error text-white] |
87
96
 
88
97
  ### Card
98
+
89
99
  - Background: [surface color]
90
100
  - Border: [border style]
91
101
  - Shadow: [shadow level]
92
102
  - Padding: [padding value]
93
103
 
94
104
  ### Input
105
+
95
106
  - Border: [border style]
96
107
  - Focus: [focus ring style]
97
108
  - Error state: [error border + message style]
98
109
 
99
110
  ### Transition & Animation
111
+
100
112
  - **Default Duration:** [150ms / 200ms / 300ms]
101
113
  - **Easing:** [ease-in-out / ease-out]
102
114
  - **Pattern:** `transition-all duration-150 ease-in-out`
103
115
 
104
116
  ## 6. Responsive & Breakpoints
117
+
105
118
  - **Approach:** [Mobile-first / Desktop-first]
106
119
 
107
- | Breakpoint | Value | Description |
108
- |------------|-------|-------------|
109
- | sm | [640px] | Small tablet |
110
- | md | [768px] | Tablet |
111
- | lg | [1024px] | Desktop |
112
- | xl | [1280px] | Large desktop |
120
+ | Breakpoint | Value | Description |
121
+ | ---------- | -------- | ------------- |
122
+ | sm | [640px] | Small tablet |
123
+ | md | [768px] | Tablet |
124
+ | lg | [1024px] | Desktop |
125
+ | xl | [1280px] | Large desktop |
113
126
 
114
127
  **Layout Rules:**
128
+
115
129
  - [Description of layout changes per breakpoint]
116
130
 
117
131
  ## 7. Iconography
132
+
118
133
  - **Library:** [Lucide React / Heroicons / FontAwesome / etc.]
119
134
  - **Default Size:** [20px / 24px]
120
135
  - **Import Pattern:** `import { IconName } from 'lucide-react'`
121
136
  - **Notes:** [Rules for icon usage]
122
137
 
123
138
  ## 8. Accessibility, Localization & Operational States
139
+
124
140
  - **Accessibility Target:** [PRD target / WCAG level]
125
141
  - **Keyboard & Focus:** [rules]
126
142
  - **Screen Reader & Labels:** [rules]
127
143
  - **Reduced Motion:** [behavior]
128
144
 
129
- | State | Required UI Behavior | Recovery/Action |
130
- |-------|----------------------|-----------------|
131
- | Loading | [skeleton/progress] | [wait/cancel] |
132
- | Empty | [message/CTA] | [next action] |
133
- | Error | [message/retry] | [recovery] |
134
- | Forbidden | [explanation] | [request access/back] |
135
- | Offline/Partial | [if applicable] | [sync/retry] |
145
+ | State | Required UI Behavior | Recovery/Action |
146
+ | --------------- | -------------------- | --------------------- |
147
+ | Loading | [skeleton/progress] | [wait/cancel] |
148
+ | Empty | [message/CTA] | [next action] |
149
+ | Error | [message/retry] | [recovery] |
150
+ | Forbidden | [explanation] | [request access/back] |
151
+ | Offline/Partial | [if applicable] | [sync/retry] |
136
152
 
137
153
  - **Locales & Text Expansion:** [supported locales or N/A]
138
154
  - **Formatting:** [date/number/currency/timezone]
@@ -140,8 +156,10 @@
140
156
  - **UI Performance Budget:** [fonts/assets/motion/render constraints]
141
157
 
142
158
  ## Non-Goals / Not Yet Defined
159
+
143
160
  - [UI areas intentionally outside this style guide]
144
161
 
145
162
  ## Assumptions & Open Questions
163
+
146
164
  - [Assumption about branding, assets, or surface coverage]
147
165
  - [Question that needs confirmation]