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.
- package/.agents/macca-lock.json +1 -1
- package/.agents/skills/_shared/references/brainstorm-session.md +5 -5
- package/.agents/skills/_shared/references/fix-mode.md +18 -3
- package/.agents/skills/_shared/references/human-loop.md +1 -1
- package/.agents/skills/_shared/references/invocation-policy.md +20 -20
- package/.agents/skills/_shared/references/language-config.md +7 -5
- package/.agents/skills/_shared/references/output-ownership.md +11 -11
- package/.agents/skills/_shared/references/scope-rules.md +1 -1
- package/.agents/skills/_shared/references/skill-catalog.md +20 -20
- package/.agents/skills/_shared/scripts/validate-skills.py +37 -15
- package/.agents/skills/add-feature/SKILL.md +11 -3
- package/.agents/skills/antislop-copywriting/SKILL.md +372 -0
- package/.agents/skills/brainstorm-api/SKILL.md +33 -19
- package/.agents/skills/brainstorm-api/assets/api.template.md +35 -15
- package/.agents/skills/brainstorm-architecture/SKILL.md +40 -18
- package/.agents/skills/brainstorm-architecture/assets/architecture.template.md +44 -25
- package/.agents/skills/brainstorm-prd/SKILL.md +52 -20
- package/.agents/skills/brainstorm-prd/assets/PRD.template.md +47 -23
- package/.agents/skills/brainstorm-rules/SKILL.md +39 -22
- package/.agents/skills/brainstorm-rules/assets/rules.template.md +32 -18
- package/.agents/skills/brainstorm-schema/SKILL.md +23 -11
- package/.agents/skills/brainstorm-schema/assets/schema.template.md +25 -10
- package/.agents/skills/brainstorm-styleguide/SKILL.md +40 -22
- package/.agents/skills/brainstorm-styleguide/assets/StyleGuide.template.md +78 -60
- package/.agents/skills/brainstorm-task/SKILL.md +29 -14
- package/.agents/skills/brainstorm-task/assets/Task.template.md +29 -18
- package/.agents/skills/bug-fix/SKILL.md +39 -8
- package/.agents/skills/code-review/SKILL.md +9 -7
- package/.agents/skills/code-review/references/review-checklist.md +21 -10
- package/.agents/skills/developer/SKILL.md +10 -0
- package/.agents/skills/developer/references/execute-task.md +13 -7
- package/.agents/skills/developer/references/onboarding.md +1 -1
- package/.agents/skills/help/SKILL.md +39 -23
- package/.agents/skills/meet/SKILL.md +11 -4
- package/.agents/skills/quick-dev/SKILL.md +29 -22
- package/.agents/skills/release-readiness/SKILL.md +19 -13
- package/.agents/skills/skill-creator/LICENSE.txt +202 -0
- package/.agents/skills/skill-creator/SKILL.md +485 -0
- package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
- package/.agents/skills/skill-creator/agents/comparator.md +202 -0
- package/.agents/skills/skill-creator/agents/grader.md +223 -0
- package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
- package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/.agents/skills/skill-creator/references/schemas.md +441 -0
- package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
- package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
- package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
- package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
- package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
- package/.agents/skills/skill-creator/scripts/utils.py +47 -0
- package/.agents/skills/spec-audit/SKILL.md +33 -4
- package/.agents/skills/spec-compliance/SKILL.md +36 -21
- package/.agents/skills/spec-init/SKILL.md +31 -17
- package/README.md +165 -129
- package/bin/macca-method.js +1378 -1077
- package/package.json +40 -40
- package/scripts/run-skill-validator.js +27 -9
- package/scripts/test-install.js +611 -337
- package/scripts/test-upgrade-legacy.js +131 -76
- 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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
55
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
|
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
|
|
48
|
-
|
|
49
|
-
| id
|
|
50
|
-
| [column] | [type] | [Yes/No] | [default]
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
3. **Shared Runtime Setup** — before the interview:
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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:**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
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
|
|
46
|
-
|
|
47
|
-
| H1
|
|
48
|
-
| H2
|
|
49
|
-
| H3
|
|
50
|
-
| H4
|
|
51
|
-
| Body
|
|
52
|
-
| Small
|
|
53
|
-
| Caption | [size] | regular
|
|
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
|
|
60
|
-
|
|
61
|
-
| xs
|
|
62
|
-
| sm
|
|
63
|
-
| md
|
|
64
|
-
| lg
|
|
65
|
-
| xl
|
|
66
|
-
| 2xl
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
|
76
|
-
|
|
|
77
|
-
|
|
|
78
|
-
|
|
|
79
|
-
|
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
|
85
|
-
|
|
|
86
|
-
|
|
|
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
|
|
108
|
-
|
|
109
|
-
| sm
|
|
110
|
-
| md
|
|
111
|
-
| lg
|
|
112
|
-
| xl
|
|
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
|
|
130
|
-
|
|
131
|
-
| Loading
|
|
132
|
-
| Empty
|
|
133
|
-
| Error
|
|
134
|
-
| Forbidden
|
|
135
|
-
| Offline/Partial | [if applicable]
|
|
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]
|