design-brain-memory 0.9.3 → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +273 -0
- package/dist/agentBrowser.d.ts +0 -1
- package/dist/agentBrowser.js +13 -31
- package/dist/agentBrowser.js.map +1 -1
- package/dist/aggregate.d.ts +9 -0
- package/dist/aggregate.js +53 -0
- package/dist/aggregate.js.map +1 -0
- package/dist/batch.d.ts +16 -0
- package/dist/batch.js +44 -0
- package/dist/batch.js.map +1 -0
- package/dist/cli.js +250 -216
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +60 -1
- package/dist/commands.js +323 -10
- package/dist/commands.js.map +1 -1
- package/dist/compare.d.ts +33 -0
- package/dist/compare.js +83 -0
- package/dist/compare.js.map +1 -0
- package/dist/componentGraph.d.ts +22 -0
- package/dist/componentGraph.js +106 -0
- package/dist/componentGraph.js.map +1 -0
- package/dist/contextLayer.d.ts +12 -0
- package/dist/contextLayer.js +263 -0
- package/dist/contextLayer.js.map +1 -0
- package/dist/cssInJs.d.ts +9 -0
- package/dist/cssInJs.js +124 -0
- package/dist/cssInJs.js.map +1 -0
- package/dist/extractFromUrl.d.ts +8 -0
- package/dist/extractFromUrl.js +508 -414
- package/dist/extractFromUrl.js.map +1 -1
- package/dist/graphView.d.ts +21 -0
- package/dist/graphView.js +492 -0
- package/dist/graphView.js.map +1 -0
- package/dist/index.d.ts +26 -11
- package/dist/index.js +17 -10
- package/dist/index.js.map +1 -1
- package/dist/knowledge.d.ts +20 -0
- package/dist/knowledge.js +208 -0
- package/dist/knowledge.js.map +1 -0
- package/dist/liveView.d.ts +15 -0
- package/dist/liveView.js +475 -0
- package/dist/liveView.js.map +1 -0
- package/dist/llm.js +1 -9
- package/dist/llm.js.map +1 -1
- package/dist/moodboard.d.ts +3 -0
- package/dist/moodboard.js +152 -0
- package/dist/moodboard.js.map +1 -0
- package/dist/persona.d.ts +2 -2
- package/dist/persona.js +82 -210
- package/dist/persona.js.map +1 -1
- package/dist/query.js +1 -6
- package/dist/query.js.map +1 -1
- package/dist/render.d.ts +2 -10
- package/dist/render.js +80 -175
- package/dist/render.js.map +1 -1
- package/dist/reviewChecklist.d.ts +17 -0
- package/dist/reviewChecklist.js +126 -0
- package/dist/reviewChecklist.js.map +1 -0
- package/dist/scan.d.ts +19 -7
- package/dist/scan.js +132 -374
- package/dist/scan.js.map +1 -1
- package/dist/scorecard.d.ts +53 -0
- package/dist/scorecard.js +325 -0
- package/dist/scorecard.js.map +1 -0
- package/dist/skillPrompt.d.ts +1 -3
- package/dist/skillPrompt.js +22 -148
- package/dist/skillPrompt.js.map +1 -1
- package/dist/store.d.ts +2 -2
- package/dist/store.js +7 -9
- package/dist/store.js.map +1 -1
- package/dist/styleDictionary.d.ts +16 -0
- package/dist/styleDictionary.js +89 -0
- package/dist/styleDictionary.js.map +1 -0
- package/dist/svg.d.ts +5 -0
- package/dist/svg.js +162 -0
- package/dist/svg.js.map +1 -0
- package/dist/systemDiff.d.ts +28 -0
- package/dist/systemDiff.js +107 -0
- package/dist/systemDiff.js.map +1 -0
- package/dist/tailwind.d.ts +2 -0
- package/dist/tailwind.js +122 -0
- package/dist/tailwind.js.map +1 -0
- package/dist/taste.d.ts +3 -2
- package/dist/taste.js +349 -536
- package/dist/taste.js.map +1 -1
- package/dist/tasteRenderer.d.ts +2 -3
- package/dist/tasteRenderer.js +123 -119
- package/dist/tasteRenderer.js.map +1 -1
- package/dist/tokenNaming.d.ts +5 -0
- package/dist/tokenNaming.js +229 -0
- package/dist/tokenNaming.js.map +1 -0
- package/dist/tokens.d.ts +17 -0
- package/dist/tokens.js +44 -0
- package/dist/tokens.js.map +1 -0
- package/dist/trends.d.ts +12 -0
- package/dist/trends.js +178 -0
- package/dist/trends.js.map +1 -0
- package/dist/types.d.ts +47 -101
- package/dist/wiki.d.ts +10 -0
- package/dist/wiki.js +346 -0
- package/dist/wiki.js.map +1 -0
- package/dist/writingStyle.d.ts +38 -0
- package/dist/writingStyle.js +224 -0
- package/dist/writingStyle.js.map +1 -0
- package/package.json +5 -4
- package/dist/classify.d.ts +0 -21
- package/dist/classify.js +0 -205
- package/dist/classify.js.map +0 -1
- package/dist/scanRenderer.d.ts +0 -2
- package/dist/scanRenderer.js +0 -155
- package/dist/scanRenderer.js.map +0 -1
- package/dist/tasteDiff.d.ts +0 -19
- package/dist/tasteDiff.js +0 -340
- package/dist/tasteDiff.js.map +0 -1
- package/dist/tasteGenerate.d.ts +0 -12
- package/dist/tasteGenerate.js +0 -140
- package/dist/tasteGenerate.js.map +0 -1
- package/dist/tasteRefine.d.ts +0 -13
- package/dist/tasteRefine.js +0 -351
- package/dist/tasteRefine.js.map +0 -1
- package/dist/theatrical.d.ts +0 -5
- package/dist/theatrical.js +0 -258
- package/dist/theatrical.js.map +0 -1
- package/skills/SKILL.md +0 -36
- package/skills/design-brain/SKILL.md +0 -77
package/dist/render.js
CHANGED
|
@@ -1,183 +1,18 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import fs from 'fs-extra';
|
|
3
3
|
import { brainRoot, projectDir } from './store.js';
|
|
4
|
+
import { generatePaletteSvg, generateComponentsSvg, generateTypographySvg, generateLayoutSvg, } from './svg.js';
|
|
5
|
+
import { aggregateColors, aggregateTypography, aggregateComponents, aggregateMotion } from './aggregate.js';
|
|
6
|
+
import { ensureKnowledgeFiles } from './knowledge.js';
|
|
7
|
+
import { generateComponentTokens } from './tokens.js';
|
|
8
|
+
import { generateTailwindConfig } from './tailwind.js';
|
|
4
9
|
import { csvEscape, relPath, truncate, unique } from './util.js';
|
|
5
|
-
function isAnimationToken(token) {
|
|
6
|
-
return 'library' in token && 'motionIntent' in token;
|
|
7
|
-
}
|
|
8
10
|
function mdTable(headers, rows) {
|
|
9
11
|
const head = `| ${headers.join(' | ')} |`;
|
|
10
12
|
const rule = `| ${headers.map(() => '---').join(' | ')} |`;
|
|
11
13
|
const body = rows.map((row) => `| ${row.join(' | ')} |`).join('\n');
|
|
12
14
|
return [head, rule, body].filter((line) => line.length > 0).join('\n');
|
|
13
15
|
}
|
|
14
|
-
export function aggregateColors(records) {
|
|
15
|
-
const map = new Map();
|
|
16
|
-
for (const record of records) {
|
|
17
|
-
for (const color of record.analysis.colors) {
|
|
18
|
-
const existing = map.get(color.hex) ?? { hex: color.hex, count: 0, samples: [] };
|
|
19
|
-
existing.count += color.count;
|
|
20
|
-
for (const sample of color.samples) {
|
|
21
|
-
if (existing.samples.length < 6 && !existing.samples.includes(sample)) {
|
|
22
|
-
existing.samples.push(sample);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
map.set(color.hex, existing);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return [...map.values()].sort((a, b) => b.count - a.count).slice(0, 40);
|
|
29
|
-
}
|
|
30
|
-
export function aggregateTypography(records) {
|
|
31
|
-
const map = new Map();
|
|
32
|
-
for (const record of records) {
|
|
33
|
-
for (const token of record.analysis.typography) {
|
|
34
|
-
const key = `${token.fontFamily}|${token.fontSize}|${token.fontWeight}|${token.lineHeight}`;
|
|
35
|
-
const existing = map.get(key) ?? { ...token, count: 0 };
|
|
36
|
-
existing.count += token.count;
|
|
37
|
-
map.set(key, existing);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return [...map.values()].sort((a, b) => b.count - a.count).slice(0, 60);
|
|
41
|
-
}
|
|
42
|
-
export function aggregateComponents(records) {
|
|
43
|
-
const map = new Map();
|
|
44
|
-
for (const record of records) {
|
|
45
|
-
for (const token of record.analysis.components) {
|
|
46
|
-
const key = `${token.kind}|${token.tag}|${token.selector}`;
|
|
47
|
-
const existing = map.get(key) ?? { ...token, count: 0 };
|
|
48
|
-
existing.count += 1;
|
|
49
|
-
map.set(key, existing);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return [...map.values()].sort((a, b) => b.count - a.count).slice(0, 120);
|
|
53
|
-
}
|
|
54
|
-
export function aggregateMotion(records) {
|
|
55
|
-
const map = new Map();
|
|
56
|
-
for (const record of records) {
|
|
57
|
-
for (const token of record.analysis.motion) {
|
|
58
|
-
const key = isAnimationToken(token)
|
|
59
|
-
? `${token.selector}|${token.library}|${token.motionIntent}`
|
|
60
|
-
: `${token.selector}|${token.transition}|${token.animation}|${token.transform}`;
|
|
61
|
-
const existing = map.get(key) ?? { ...token, count: 0 };
|
|
62
|
-
existing.count += 1;
|
|
63
|
-
map.set(key, existing);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return [...map.values()].sort((a, b) => b.count - a.count).slice(0, 140);
|
|
67
|
-
}
|
|
68
|
-
function renderRichMotionSection(tokens) {
|
|
69
|
-
const animTokens = tokens.filter(isAnimationToken);
|
|
70
|
-
const legacyTokens = tokens.filter((t) => !isAnimationToken(t));
|
|
71
|
-
if (animTokens.length === 0 && legacyTokens.length > 0) {
|
|
72
|
-
const rows = legacyTokens.map((t) => [
|
|
73
|
-
truncate(t.transition || 'none'),
|
|
74
|
-
truncate(t.animation || 'none'),
|
|
75
|
-
`\`${t.selector}\``,
|
|
76
|
-
`${t.count}`,
|
|
77
|
-
]);
|
|
78
|
-
return mdTable(['Transition', 'Animation', 'Selector', 'Occurrences'], rows);
|
|
79
|
-
}
|
|
80
|
-
const sections = [];
|
|
81
|
-
// Libraries
|
|
82
|
-
const libraries = new Set();
|
|
83
|
-
for (const t of animTokens) {
|
|
84
|
-
if (t.library !== 'css' && t.library !== 'unknown') {
|
|
85
|
-
libraries.add(t.library);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
if (libraries.size > 0) {
|
|
89
|
-
sections.push('### Libraries Detected\n' + [...libraries].map((l) => `- **${l}**`).join('\n'));
|
|
90
|
-
}
|
|
91
|
-
// Group by motionIntent
|
|
92
|
-
const groups = new Map();
|
|
93
|
-
for (const t of animTokens) {
|
|
94
|
-
const group = groups.get(t.motionIntent) ?? [];
|
|
95
|
-
group.push(t);
|
|
96
|
-
groups.set(t.motionIntent, group);
|
|
97
|
-
}
|
|
98
|
-
const intentOrder = ['fade', 'slide', 'scale', 'rotate', 'spring', 'bounce', 'color-shift', 'reveal', 'morph', 'parallax', 'complex'];
|
|
99
|
-
for (const intent of intentOrder) {
|
|
100
|
-
const group = groups.get(intent);
|
|
101
|
-
if (!group || group.length === 0)
|
|
102
|
-
continue;
|
|
103
|
-
const label = intent.charAt(0).toUpperCase() + intent.slice(1);
|
|
104
|
-
if (intent === 'spring' || intent === 'bounce') {
|
|
105
|
-
const rows = group.map((t) => [
|
|
106
|
-
`\`${t.selector}\``,
|
|
107
|
-
t.timing ? `${t.timing.duration}ms` : '-',
|
|
108
|
-
t.physics?.overshootPercent != null ? `${t.physics.overshootPercent}%` : '-',
|
|
109
|
-
t.physics?.oscillationCount != null ? `${t.physics.oscillationCount}` : '-',
|
|
110
|
-
t.library,
|
|
111
|
-
]);
|
|
112
|
-
sections.push(`### ${label} Animations (${group.length})\n\n` + mdTable(['Element', 'Duration', 'Overshoot', 'Oscillations', 'Library'], rows));
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
const rows = group.map((t) => [
|
|
116
|
-
`\`${t.selector}\``,
|
|
117
|
-
t.timing ? `${t.timing.duration}ms` : '-',
|
|
118
|
-
t.timing?.easing ?? '-',
|
|
119
|
-
t.trigger,
|
|
120
|
-
t.library,
|
|
121
|
-
]);
|
|
122
|
-
sections.push(`### ${label} Animations (${group.length})\n\n` + mdTable(['Element', 'Duration', 'Easing', 'Trigger', 'Library'], rows));
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
// Lottie
|
|
126
|
-
const lotties = animTokens.filter((t) => t.lottieMetadata);
|
|
127
|
-
if (lotties.length > 0) {
|
|
128
|
-
const rows = lotties.map((t) => [
|
|
129
|
-
`\`${t.selector}\``,
|
|
130
|
-
t.lottieMetadata ? `${t.lottieMetadata.frameRate}fps` : '-',
|
|
131
|
-
t.lottieMetadata ? `${t.lottieMetadata.duration.toFixed(1)}s` : '-',
|
|
132
|
-
t.lottieMetadata ? `${t.lottieMetadata.totalFrames}` : '-',
|
|
133
|
-
]);
|
|
134
|
-
sections.push('### Lottie Animations\n\n' + mdTable(['Container', 'Frame Rate', 'Duration', 'Frames'], rows));
|
|
135
|
-
}
|
|
136
|
-
// Scroll-bound
|
|
137
|
-
const scrollBound = animTokens.filter((t) => t.trigger === 'scroll' || t.scrollBinding);
|
|
138
|
-
if (scrollBound.length > 0) {
|
|
139
|
-
const rows = scrollBound.map((t) => [
|
|
140
|
-
`\`${t.selector}\``,
|
|
141
|
-
t.scrollBinding?.hasScrollTrigger ? 'ScrollTrigger' : 'CSS ScrollTimeline',
|
|
142
|
-
t.library,
|
|
143
|
-
]);
|
|
144
|
-
sections.push('### Scroll-Bound (passive)\n\n' + mdTable(['Element', 'Type', 'Library'], rows));
|
|
145
|
-
}
|
|
146
|
-
// Animation sequences
|
|
147
|
-
const groupedTokens = animTokens.filter((t) => t.group);
|
|
148
|
-
const sequenceMap = new Map();
|
|
149
|
-
for (const t of groupedTokens) {
|
|
150
|
-
const gid = t.group.groupId;
|
|
151
|
-
const seq = sequenceMap.get(gid) ?? [];
|
|
152
|
-
seq.push(t);
|
|
153
|
-
sequenceMap.set(gid, seq);
|
|
154
|
-
}
|
|
155
|
-
if (sequenceMap.size > 0) {
|
|
156
|
-
const seqLines = [];
|
|
157
|
-
for (const [gid, seq] of sequenceMap) {
|
|
158
|
-
const sorted = seq.sort((a, b) => (a.group?.staggerDelay ?? 0) - (b.group?.staggerDelay ?? 0));
|
|
159
|
-
const parts = sorted.map((t) => {
|
|
160
|
-
const delay = t.group?.staggerDelay ?? 0;
|
|
161
|
-
return t.group?.role === 'lead'
|
|
162
|
-
? `\`${t.selector}\` (lead)`
|
|
163
|
-
: `\`${t.selector}\` (+${delay}ms)`;
|
|
164
|
-
});
|
|
165
|
-
seqLines.push(`- **${gid}**: ${parts.join(' → ')}`);
|
|
166
|
-
}
|
|
167
|
-
sections.push('### Animation Sequences\n\n' + seqLines.join('\n'));
|
|
168
|
-
}
|
|
169
|
-
// Legacy tokens at the end
|
|
170
|
-
if (legacyTokens.length > 0) {
|
|
171
|
-
const rows = legacyTokens.map((t) => [
|
|
172
|
-
truncate(t.transition || 'none'),
|
|
173
|
-
truncate(t.animation || 'none'),
|
|
174
|
-
`\`${t.selector}\``,
|
|
175
|
-
`${t.count}`,
|
|
176
|
-
]);
|
|
177
|
-
sections.push('### CSS Transitions (legacy)\n\n' + mdTable(['Transition', 'Animation', 'Selector', 'Occurrences'], rows));
|
|
178
|
-
}
|
|
179
|
-
return sections.join('\n\n');
|
|
180
|
-
}
|
|
181
16
|
function renderProjectReadme(project) {
|
|
182
17
|
const inspirationLinks = project.inspirations.length > 0
|
|
183
18
|
? project.inspirations.map((record) => `- [${record.name}](./inspirations/${record.id}.md)`).join('\n')
|
|
@@ -196,6 +31,13 @@ function renderProjectReadme(project) {
|
|
|
196
31
|
+ `- [Components](./tokens/components.md)\n`
|
|
197
32
|
+ `- [Motion](./tokens/motion.md)\n`
|
|
198
33
|
+ `- [Layout](./tokens/layout.md)\n\n`
|
|
34
|
+
+ `## Exports\n\n`
|
|
35
|
+
+ `- [Tailwind Config](./tailwind.config.js)\n\n`
|
|
36
|
+
+ `## Visual Catalog\n\n`
|
|
37
|
+
+ `\n`
|
|
38
|
+
+ `\n`
|
|
39
|
+
+ `\n`
|
|
40
|
+
+ `\n\n`
|
|
199
41
|
+ `## Inspirations\n\n${inspirationLinks}\n\n`
|
|
200
42
|
+ `## Outcomes\n\n${outcomeLinks}\n`;
|
|
201
43
|
}
|
|
@@ -219,7 +61,25 @@ function renderInspiration(record, projectId) {
|
|
|
219
61
|
truncate(component.text || '-'),
|
|
220
62
|
truncate(component.className || '-'),
|
|
221
63
|
]);
|
|
222
|
-
const
|
|
64
|
+
const motionRows = record.analysis.motion.slice(0, 80).map((motion) => {
|
|
65
|
+
const transitionDetail = (motion.transitions ?? [])
|
|
66
|
+
.map((t) => `${t.property} ${t.duration} ${t.timingFunction}${t.delay !== '0s' ? ` ${t.delay}` : ''}`)
|
|
67
|
+
.join('<br/>');
|
|
68
|
+
const animationDetail = (motion.animations ?? [])
|
|
69
|
+
.map((a) => `${a.name} ${a.duration} ${a.timingFunction} ${a.iterationCount}${a.fillMode !== 'none' ? ` ${a.fillMode}` : ''}`)
|
|
70
|
+
.join('<br/>');
|
|
71
|
+
return [
|
|
72
|
+
`\`${motion.selector}\``,
|
|
73
|
+
truncate(transitionDetail || motion.transition || 'none'),
|
|
74
|
+
truncate(animationDetail || motion.animation || 'none'),
|
|
75
|
+
truncate(motion.transform || 'none'),
|
|
76
|
+
];
|
|
77
|
+
});
|
|
78
|
+
const keyframeRows = (record.analysis.keyframes ?? []).slice(0, 40).map((kf) => [
|
|
79
|
+
`\`${kf.name}\``,
|
|
80
|
+
`${kf.steps.length}`,
|
|
81
|
+
kf.steps.map((s) => `${s.offset}: ${truncate(Object.entries(s.declarations).map(([k, v]) => `${k}: ${v}`).join('; '), 80)}`).join('<br/>'),
|
|
82
|
+
]);
|
|
223
83
|
const layoutRows = record.analysis.layout.slice(0, 80).map((layout) => [
|
|
224
84
|
layout.tag,
|
|
225
85
|
`\`${layout.selector}\``,
|
|
@@ -271,10 +131,16 @@ function renderInspiration(record, projectId) {
|
|
|
271
131
|
+ `${responsiveRows.length > 0 ? `## Responsive Coverage\n\n${mdTable(['Viewport', 'Size', 'Colors', 'Typography', 'Components', 'Title'], responsiveRows)}\n\n` : ''}`
|
|
272
132
|
+ `${stateRows.length > 0 ? `## Interaction States\n\n${mdTable(['Selector', 'State', 'Declarations'], stateRows)}\n\n` : ''}`
|
|
273
133
|
+ `${journeyRows.length > 0 ? `## Journey Capture\n\n${mdTable(['Step', 'Action', 'From', 'To', 'Summary'], journeyRows)}\n\n` : ''}`
|
|
134
|
+
+ `## Visual Catalog\n\n`
|
|
135
|
+
+ `\n`
|
|
136
|
+
+ `\n`
|
|
137
|
+
+ `\n`
|
|
138
|
+
+ `\n\n`
|
|
274
139
|
+ `## Colors\n\n${mdTable(['Hex', 'Weight', 'Samples'], colorsRows)}\n\n`
|
|
275
140
|
+ `## Typography\n\n${mdTable(['Font', 'Size', 'Weight', 'Line Height', 'Weight'], typeRows)}\n\n`
|
|
276
141
|
+ `## Components\n\n${mdTable(['Kind', 'Selector', 'Tag', 'Text', 'Class'], componentRows)}\n\n`
|
|
277
|
-
+ `## Motion\n\n${
|
|
142
|
+
+ `## Motion\n\n${mdTable(['Selector', 'Transition', 'Animation', 'Transform'], motionRows)}\n\n`
|
|
143
|
+
+ `${keyframeRows.length > 0 ? `## Keyframes\n\n${mdTable(['Name', 'Steps', 'Declarations'], keyframeRows)}\n\n` : ''}`
|
|
278
144
|
+ `## Layout\n\n${mdTable(['Tag', 'Selector', 'Role', 'Children'], layoutRows)}\n\n`
|
|
279
145
|
+ `## CSS Variables\n\n${mdTable(['Variable', 'Value'], variablesRows)}\n\n`
|
|
280
146
|
+ `${record.analysis.accessibilitySnapshot ? `## Accessibility Snapshot\n\n\`\`\`text\n${record.analysis.accessibilitySnapshot}\n\`\`\`\n` : ''}`;
|
|
@@ -306,7 +172,7 @@ function renderTokens(project) {
|
|
|
306
172
|
const colorRows = colors.map((token) => [token.hex, `${token.count}`, token.samples.map((sample) => `\`${sample}\``).join('<br/>')]);
|
|
307
173
|
const typographyRows = typography.map((token) => [token.fontFamily, token.fontSize, token.fontWeight, token.lineHeight, `${token.count}`]);
|
|
308
174
|
const componentRows = components.map((token) => [token.kind, token.tag, `\`${token.selector}\``, `${token.count}`]);
|
|
309
|
-
const
|
|
175
|
+
const motionRows = motion.map((token) => [truncate(token.transition || 'none'), truncate(token.animation || 'none'), `\`${token.selector}\``, `${token.count}`]);
|
|
310
176
|
const layoutRows = project.inspirations
|
|
311
177
|
.flatMap((inspiration) => inspiration.analysis.layout.map((layout) => [
|
|
312
178
|
layout.tag,
|
|
@@ -320,7 +186,7 @@ function renderTokens(project) {
|
|
|
320
186
|
colors: `# ${project.name} Color Brain\n\n` + mdTable(['Hex', 'Weight', 'Samples'], colorRows) + '\n',
|
|
321
187
|
typography: `# ${project.name} Typography Brain\n\n` + mdTable(['Font', 'Size', 'Weight', 'Line Height', 'Weight'], typographyRows) + '\n',
|
|
322
188
|
components: `# ${project.name} Component Brain\n\n` + mdTable(['Kind', 'Tag', 'Selector', 'Occurrences'], componentRows) + '\n',
|
|
323
|
-
motion: `# ${project.name} Motion Brain\n\n` +
|
|
189
|
+
motion: `# ${project.name} Motion Brain\n\n` + mdTable(['Transition', 'Animation', 'Selector', 'Occurrences'], motionRows) + '\n',
|
|
324
190
|
layout: `# ${project.name} Layout Brain\n\n` + mdTable(['Tag', 'Selector', 'Role', 'Children', 'Source'], layoutRows) + '\n',
|
|
325
191
|
};
|
|
326
192
|
}
|
|
@@ -402,9 +268,35 @@ function renderGraphFiles(db) {
|
|
|
402
268
|
relations: relationRows.join('\n') + '\n',
|
|
403
269
|
};
|
|
404
270
|
}
|
|
405
|
-
|
|
271
|
+
async function renderVisuals(baseDir, project, skipVisuals) {
|
|
272
|
+
if (skipVisuals)
|
|
273
|
+
return;
|
|
274
|
+
const visualDir = path.join(baseDir, 'visuals');
|
|
275
|
+
await fs.ensureDir(visualDir);
|
|
276
|
+
const colors = aggregateColors(project.inspirations);
|
|
277
|
+
const components = aggregateComponents(project.inspirations);
|
|
278
|
+
const typography = aggregateTypography(project.inspirations);
|
|
279
|
+
const layout = project.inspirations.at(-1)?.analysis.layout ?? [];
|
|
280
|
+
await fs.writeFile(path.join(visualDir, 'palette.svg'), generatePaletteSvg(colors, project.name));
|
|
281
|
+
await fs.writeFile(path.join(visualDir, 'components.svg'), generateComponentsSvg(components, project.name));
|
|
282
|
+
await fs.writeFile(path.join(visualDir, 'typography.svg'), generateTypographySvg(typography, project.name));
|
|
283
|
+
await fs.writeFile(path.join(visualDir, 'layout.svg'), generateLayoutSvg(layout, project.name));
|
|
284
|
+
for (const inspiration of project.inspirations) {
|
|
285
|
+
const inspoVisualDir = path.join(baseDir, 'inspirations', inspiration.id);
|
|
286
|
+
await fs.ensureDir(inspoVisualDir);
|
|
287
|
+
await fs.writeFile(path.join(inspoVisualDir, 'palette.svg'), generatePaletteSvg(inspiration.analysis.colors, inspiration.name));
|
|
288
|
+
await fs.writeFile(path.join(inspoVisualDir, 'components.svg'), generateComponentsSvg(inspiration.analysis.components, inspiration.name));
|
|
289
|
+
await fs.writeFile(path.join(inspoVisualDir, 'typography.svg'), generateTypographySvg(inspiration.analysis.typography, inspiration.name));
|
|
290
|
+
await fs.writeFile(path.join(inspoVisualDir, 'layout.svg'), generateLayoutSvg(inspiration.analysis.layout, inspiration.name));
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
export async function renderAll(rootDir, db, skipVisuals = false) {
|
|
406
294
|
const root = brainRoot(rootDir);
|
|
407
295
|
await fs.ensureDir(root);
|
|
296
|
+
// Ensure knowledge system directories exist
|
|
297
|
+
for (const dir of ['self', 'notes/patterns', 'notes/decisions', 'notes/principles', 'notes/mocs', 'ops/queue', 'ops/sessions']) {
|
|
298
|
+
await fs.ensureDir(path.join(root, dir));
|
|
299
|
+
}
|
|
408
300
|
await fs.writeFile(path.join(root, 'README.md'), renderRootReadme(db));
|
|
409
301
|
for (const project of db.projects) {
|
|
410
302
|
const baseDir = projectDir(rootDir, project.id);
|
|
@@ -427,6 +319,17 @@ export async function renderAll(rootDir, db) {
|
|
|
427
319
|
await fs.writeFile(path.join(tokenDir, 'components.md'), tokenFiles.components);
|
|
428
320
|
await fs.writeFile(path.join(tokenDir, 'motion.md'), tokenFiles.motion);
|
|
429
321
|
await fs.writeFile(path.join(tokenDir, 'layout.md'), tokenFiles.layout);
|
|
322
|
+
await renderVisuals(baseDir, project, skipVisuals);
|
|
323
|
+
if (!skipVisuals) {
|
|
324
|
+
const componentTokenDir = path.join(tokenDir, 'components');
|
|
325
|
+
await fs.ensureDir(componentTokenDir);
|
|
326
|
+
const componentTokens = generateComponentTokens(project);
|
|
327
|
+
for (const [kind, tokenFile] of Object.entries(componentTokens)) {
|
|
328
|
+
await fs.writeJson(path.join(componentTokenDir, `${kind}.json`), tokenFile, { spaces: 2 });
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
const tailwindConfig = generateTailwindConfig(project);
|
|
332
|
+
await fs.writeFile(path.join(baseDir, 'tailwind.config.js'), tailwindConfig);
|
|
430
333
|
const projectIndex = path.join(baseDir, 'index.md');
|
|
431
334
|
const from = path.dirname(projectIndex);
|
|
432
335
|
const links = [
|
|
@@ -440,5 +343,7 @@ export async function renderAll(rootDir, db) {
|
|
|
440
343
|
const graph = renderGraphFiles(db);
|
|
441
344
|
await fs.writeFile(path.join(root, 'graph', 'entities.csv'), graph.entities);
|
|
442
345
|
await fs.writeFile(path.join(root, 'graph', 'relations.csv'), graph.relations);
|
|
346
|
+
// Generate knowledge system files (self/, notes/mocs/, ops/)
|
|
347
|
+
await ensureKnowledgeFiles(rootDir, db);
|
|
443
348
|
}
|
|
444
349
|
//# sourceMappingURL=render.js.map
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ProjectRecord } from './types.js';
|
|
2
|
+
import type { CodebaseTokens } from './scorecard.js';
|
|
3
|
+
export interface ChecklistItem {
|
|
4
|
+
category: 'color' | 'typography' | 'component' | 'motion' | 'scorecard';
|
|
5
|
+
description: string;
|
|
6
|
+
severity: 'info' | 'warning' | 'action';
|
|
7
|
+
}
|
|
8
|
+
export interface ReviewChecklist {
|
|
9
|
+
projectId: string;
|
|
10
|
+
items: ChecklistItem[];
|
|
11
|
+
generatedAt: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function buildChecklist(params: {
|
|
14
|
+
project: ProjectRecord;
|
|
15
|
+
codebaseTokens?: CodebaseTokens;
|
|
16
|
+
}): ReviewChecklist;
|
|
17
|
+
export declare function renderChecklist(checklist: ReviewChecklist, projectId: string): string;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { aggregateColors, aggregateTypography, aggregateComponents, aggregateMotion, } from './aggregate.js';
|
|
2
|
+
import { scoreAgainstProject } from './scorecard.js';
|
|
3
|
+
export function buildChecklist(params) {
|
|
4
|
+
const { project, codebaseTokens } = params;
|
|
5
|
+
const items = [];
|
|
6
|
+
const colors = aggregateColors(project.inspirations);
|
|
7
|
+
if (colors.length > 0) {
|
|
8
|
+
items.push({
|
|
9
|
+
category: 'color',
|
|
10
|
+
description: `Verify primary palette uses top ${Math.min(colors.length, 5)} captured colors: ${colors.slice(0, 5).map((c) => c.hex).join(', ')}`,
|
|
11
|
+
severity: 'info',
|
|
12
|
+
});
|
|
13
|
+
if (colors.length > 20) {
|
|
14
|
+
items.push({
|
|
15
|
+
category: 'color',
|
|
16
|
+
description: `${colors.length} unique colors captured — consider consolidating to reduce palette complexity`,
|
|
17
|
+
severity: 'warning',
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const typography = aggregateTypography(project.inspirations);
|
|
22
|
+
if (typography.length > 0) {
|
|
23
|
+
const families = [...new Set(typography.map((t) => t.fontFamily.split(',')[0].trim().replace(/['"]/g, '')))];
|
|
24
|
+
items.push({
|
|
25
|
+
category: 'typography',
|
|
26
|
+
description: `Verify font stack includes: ${families.slice(0, 3).join(', ')}`,
|
|
27
|
+
severity: 'info',
|
|
28
|
+
});
|
|
29
|
+
const sizes = [...new Set(typography.map((t) => t.fontSize))];
|
|
30
|
+
if (sizes.length > 8) {
|
|
31
|
+
items.push({
|
|
32
|
+
category: 'typography',
|
|
33
|
+
description: `${sizes.length} unique font sizes — consider establishing a type scale`,
|
|
34
|
+
severity: 'warning',
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const components = aggregateComponents(project.inspirations);
|
|
39
|
+
if (components.length > 0) {
|
|
40
|
+
const kinds = [...new Set(components.map((c) => c.kind))];
|
|
41
|
+
items.push({
|
|
42
|
+
category: 'component',
|
|
43
|
+
description: `Component library should cover: ${kinds.slice(0, 8).join(', ')}`,
|
|
44
|
+
severity: 'info',
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
const motion = aggregateMotion(project.inspirations);
|
|
48
|
+
if (motion.length > 0) {
|
|
49
|
+
const durations = new Set();
|
|
50
|
+
for (const m of motion) {
|
|
51
|
+
for (const t of m.transitions ?? []) {
|
|
52
|
+
if (t.duration && t.duration !== '0s')
|
|
53
|
+
durations.add(t.duration);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (durations.size > 0) {
|
|
57
|
+
items.push({
|
|
58
|
+
category: 'motion',
|
|
59
|
+
description: `Standard transition durations: ${[...durations].slice(0, 4).join(', ')}`,
|
|
60
|
+
severity: 'info',
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (codebaseTokens) {
|
|
65
|
+
const scores = scoreAgainstProject(codebaseTokens, project);
|
|
66
|
+
if (scores.colorScore.offPalette > 0) {
|
|
67
|
+
items.push({
|
|
68
|
+
category: 'scorecard',
|
|
69
|
+
description: `${scores.colorScore.offPalette} off-palette color usages found in codebase`,
|
|
70
|
+
severity: 'action',
|
|
71
|
+
});
|
|
72
|
+
for (const detail of scores.colorScore.details.slice(0, 5)) {
|
|
73
|
+
items.push({
|
|
74
|
+
category: 'scorecard',
|
|
75
|
+
description: `Replace off-palette color ${detail.value}`,
|
|
76
|
+
severity: 'action',
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (scores.typographyScore.offSystem > 0) {
|
|
81
|
+
items.push({
|
|
82
|
+
category: 'scorecard',
|
|
83
|
+
description: `${scores.typographyScore.offSystem} off-system typography usages found`,
|
|
84
|
+
severity: 'action',
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
if (scores.motionScore.inconsistent > 0) {
|
|
88
|
+
items.push({
|
|
89
|
+
category: 'scorecard',
|
|
90
|
+
description: `${scores.motionScore.inconsistent} inconsistent motion values found`,
|
|
91
|
+
severity: 'warning',
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
projectId: project.id,
|
|
97
|
+
items,
|
|
98
|
+
generatedAt: new Date().toISOString(),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export function renderChecklist(checklist, projectId) {
|
|
102
|
+
const lines = [];
|
|
103
|
+
lines.push(`# Design Review Checklist — ${projectId}\n`);
|
|
104
|
+
lines.push(`Generated: ${checklist.generatedAt}\n`);
|
|
105
|
+
const categories = ['color', 'typography', 'component', 'motion', 'scorecard'];
|
|
106
|
+
const categoryLabels = {
|
|
107
|
+
color: 'Colors',
|
|
108
|
+
typography: 'Typography',
|
|
109
|
+
component: 'Components',
|
|
110
|
+
motion: 'Motion',
|
|
111
|
+
scorecard: 'Codebase Audit',
|
|
112
|
+
};
|
|
113
|
+
for (const category of categories) {
|
|
114
|
+
const categoryItems = checklist.items.filter((i) => i.category === category);
|
|
115
|
+
if (categoryItems.length === 0)
|
|
116
|
+
continue;
|
|
117
|
+
lines.push(`## ${categoryLabels[category]}\n`);
|
|
118
|
+
for (const item of categoryItems) {
|
|
119
|
+
const prefix = item.severity === 'action' ? '- [ ] **ACTION:**' : item.severity === 'warning' ? '- [ ] **WARNING:**' : '- [ ]';
|
|
120
|
+
lines.push(`${prefix} ${item.description}`);
|
|
121
|
+
}
|
|
122
|
+
lines.push('');
|
|
123
|
+
}
|
|
124
|
+
return lines.join('\n');
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=reviewChecklist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewChecklist.js","sourceRoot":"","sources":["../src/reviewChecklist.ts"],"names":[],"mappings":"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"}
|
package/dist/scan.d.ts
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import type { DesignAnalysis, ScanScore } from './types.js';
|
|
2
|
+
export interface ScanTokens {
|
|
3
|
+
colorCount: number;
|
|
4
|
+
uniqueHues: number;
|
|
5
|
+
typographyFamilies: string[];
|
|
6
|
+
typographySizes: string[];
|
|
7
|
+
componentKinds: string[];
|
|
8
|
+
motionCount: number;
|
|
9
|
+
hasTransitions: boolean;
|
|
10
|
+
hasAnimations: boolean;
|
|
11
|
+
spacingValues: number[];
|
|
12
|
+
gridAligned: number;
|
|
13
|
+
gridTotal: number;
|
|
14
|
+
}
|
|
6
15
|
export declare function looksLikeUrl(input: string): boolean;
|
|
7
16
|
export declare function normalizeToUrl(input: string): string;
|
|
17
|
+
declare function hueFromHex(hex: string): number;
|
|
18
|
+
declare function saturationFromHex(hex: string): number;
|
|
19
|
+
declare function lightnessFromHex(hex: string): number;
|
|
20
|
+
export { hueFromHex, saturationFromHex, lightnessFromHex };
|
|
8
21
|
export declare function designAnalysisToScanTokens(analysis: DesignAnalysis): ScanTokens;
|
|
9
|
-
export declare function
|
|
10
|
-
export declare function scanFromUrl(url: string): Promise<ScanResult>;
|
|
22
|
+
export declare function computeScore(tokens: ScanTokens): ScanScore;
|