roast-my-design-system 5.2.2 → 5.2.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 +8 -8
- package/bin/roast.mjs +2 -2
- package/package.json +1 -1
- package/skills/roast-my-design-system/scripts/card/index.mjs +1 -1
- package/skills/roast-my-design-system/scripts/lib/version.mjs +1 -1
- package/skills/roast-my-design-system/scripts/mcp/tools.mjs +1 -1
- package/skills/roast-my-design-system/scripts/rules/build.mjs +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# roast-my-design-system
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/roast-my-design-system) [](https://www.npmjs.com/package/roast-my-design-system) [](LICENSE)
|
|
3
|
+
[](https://www.npmjs.com/package/roast-my-design-system) [](https://www.npmjs.com/package/roast-my-design-system) [](https://socket.dev/npm/package/roast-my-design-system) [](LICENSE)
|
|
4
4
|
|
|
5
5
|
## Your AI can write the UI. This makes sure it writes *your* UI.
|
|
6
6
|
|
|
@@ -28,8 +28,8 @@ One scan powers all of it; the flags decide what lands on disk. Combine freely.
|
|
|
28
28
|
|
|
29
29
|
| Command | What you get |
|
|
30
30
|
|---|---|
|
|
31
|
-
| <code>npx roast-my-design-system</code> | The scan and `design-system-roast.html`, opened in your browser |
|
|
32
|
-
| <code>npx roast-my-design-system <path></code> | Scan a different repo than the current directory |
|
|
31
|
+
| <code>npx roast-my-design-system@latest</code> | The scan and `design-system-roast.html`, opened in your browser |
|
|
32
|
+
| <code>npx roast-my-design-system@latest <path></code> | Scan a different repo than the current directory |
|
|
33
33
|
| `... --apply` | The generated agent rules injected straight into every agent file you have: `CLAUDE.md`, `AGENTS.md`, `.cursorrules`, `.cursor/rules/`, `.windsurfrules` and `.github/copilot-instructions.md`, inside a marked block. Re-running replaces only that block, never your own text. Windsurf and Copilot get a compact variant sized for their limits |
|
|
34
34
|
| `... --rules` | The same rules written to `design-system-rules.md` instead, for pasting by hand |
|
|
35
35
|
| `... --card` | `roast-card.svg`: a shareable 1200x630 card with the score and worst findings. Pure SVG, embeds in a README |
|
|
@@ -55,11 +55,11 @@ One scan powers all of it; the flags decide what lands on disk. Combine freely.
|
|
|
55
55
|
|
|
56
56
|
The full report for vercel/ai-chatbot, top to bottom — including "What the numbers mean", Claude's read of the scan, embedded right under the verdict:
|
|
57
57
|
|
|
58
|
-

|
|
59
59
|
|
|
60
60
|
The same report in light mode (one file, built-in toggle):
|
|
61
61
|
|
|
62
|
-

|
|
63
63
|
|
|
64
64
|
## What makes the numbers trustworthy
|
|
65
65
|
|
|
@@ -76,7 +76,7 @@ The same report in light mode (one file, built-in toggle):
|
|
|
76
76
|
Some repos host more than one visual world on purpose: the product plus a marketing site, a playground, a batch of experiments. Blending them produces a score that describes none of them. Scope the scan to the design system you are actually judging:
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
-
npx roast-my-design-system --exclude lab/ --exclude playground/
|
|
79
|
+
npx roast-my-design-system@latest --exclude lab/ --exclude playground/
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
Or make it permanent with a `.roastignore` file at the repo root, one repo-relative folder per line:
|
|
@@ -117,7 +117,7 @@ The scanner already speaks SARIF, so wiring it into GitHub code scanning is six
|
|
|
117
117
|
|
|
118
118
|
```yaml
|
|
119
119
|
- uses: actions/checkout@v4
|
|
120
|
-
- run: npx roast-my-design-system . --sarif --no-open
|
|
120
|
+
- run: npx roast-my-design-system@latest . --sarif --no-open
|
|
121
121
|
- uses: github/codeql-action/upload-sarif@v3
|
|
122
122
|
with:
|
|
123
123
|
sarif_file: design-system-roast.sarif
|
|
@@ -128,7 +128,7 @@ The scanner already speaks SARIF, so wiring it into GitHub code scanning is six
|
|
|
128
128
|
**No install, no Claude needed — just try it:**
|
|
129
129
|
|
|
130
130
|
```bash
|
|
131
|
-
npx roast-my-design-system
|
|
131
|
+
npx roast-my-design-system@latest
|
|
132
132
|
```
|
|
133
133
|
|
|
134
134
|
Run it inside any repo. Same scanner, same report, straight from npm. The Claude Code skill below adds the conversation on top: the roast in chat, then a punch list you can actually work through with Claude.
|
package/bin/roast.mjs
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* diagnose it against Ideal Design System norms and the 29-repo benchmark,
|
|
6
6
|
* write design-system-roast.html, open it, print the score.
|
|
7
7
|
*
|
|
8
|
-
* npx roast-my-design-system [path] [--theme dark|light] [--out report.html] [--no-open]
|
|
8
|
+
* npx roast-my-design-system@latest [path] [--theme dark|light] [--out report.html] [--no-open]
|
|
9
9
|
* [--rules] [--json] [--exclude <path>]
|
|
10
10
|
*/
|
|
11
11
|
import { spawnSync } from 'node:child_process';
|
|
@@ -61,7 +61,7 @@ if (flag('version') || flag('v')) { console.log(VERSION); process.exit(0); }
|
|
|
61
61
|
if (flag('help') || flag('h')) {
|
|
62
62
|
console.log(`roast-my-design-system ${VERSION}
|
|
63
63
|
|
|
64
|
-
Usage: npx roast-my-design-system [path] [options]
|
|
64
|
+
Usage: npx roast-my-design-system@latest [path] [options]
|
|
65
65
|
|
|
66
66
|
path repo to scan (default: current directory)
|
|
67
67
|
--theme <t> dark | light (default: dark)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "roast-my-design-system",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.4",
|
|
4
4
|
"mcpName": "io.github.gregkozakiewicz/roast-my-design-system",
|
|
5
5
|
"description": "Your AI can write the UI. This makes sure it writes your UI. A deterministic scanner scores your design system 0-100 against 34 public repos, writes rules for Claude, Cursor, Copilot and Windsurf with --apply, and runs as a local MCP server with --mcp.",
|
|
6
6
|
"keywords": [
|
|
@@ -75,7 +75,7 @@ const svg = `<svg width="1200" height="630" viewBox="0 0 1200 630" xmlns="http:/
|
|
|
75
75
|
${rows}
|
|
76
76
|
|
|
77
77
|
<line x1="96" y1="486" x2="1104" y2="486" stroke="#272c37" stroke-width="1.5"/>
|
|
78
|
-
<text x="96" y="536" font-family="${MONO}" font-size="20" fill="#8b93a7">npx roast-my-design-system</text>
|
|
78
|
+
<text x="96" y="536" font-family="${MONO}" font-size="20" fill="#8b93a7">npx roast-my-design-system@latest</text>
|
|
79
79
|
<text x="1104" y="536" font-family="${MONO}" font-size="17" fill="#5a6172" text-anchor="end">scanned ${date} · ver. ${esc(s.version ?? '')}</text>
|
|
80
80
|
</svg>
|
|
81
81
|
`;
|
|
@@ -62,7 +62,7 @@ export function getContext(k, { path = null } = {}) {
|
|
|
62
62
|
const faces = distinctTypefaces(t.fontFamilies ?? []);
|
|
63
63
|
if (faces.length) L.push(`TYPE: ${faces.slice(0, 3).join(', ')}. No new typefaces, no hand-declared font stacks.`);
|
|
64
64
|
L.push('DISCIPLINE: no static style={{ }}, no !important, no new arbitrary values. Match the neighbouring component.');
|
|
65
|
-
if (k.agentFiles.length === 0) L.push('NOTE: this repo has no agent rules file; these lines are the only guardrail. Suggest running npx roast-my-design-system --apply.');
|
|
65
|
+
if (k.agentFiles.length === 0) L.push('NOTE: this repo has no agent rules file; these lines are the only guardrail. Suggest running npx roast-my-design-system@latest --apply.');
|
|
66
66
|
L.push('Before finishing: call roast_validate on what you wrote, then roast_review.');
|
|
67
67
|
|
|
68
68
|
let text = L.join('\n');
|
|
@@ -30,7 +30,7 @@ const repoName = h.profile?.name ?? 'this repo';
|
|
|
30
30
|
if (!compact) {
|
|
31
31
|
lines.push(`<!-- Generated by roast-my-design-system from a scan of ${repoName} on ${scanDate}.`);
|
|
32
32
|
lines.push(' Paste into CLAUDE.md, .cursor/rules or AGENTS.md. Regenerate after big refactors:');
|
|
33
|
-
lines.push(' npx roast-my-design-system --rules -->');
|
|
33
|
+
lines.push(' npx roast-my-design-system@latest --rules -->');
|
|
34
34
|
lines.push('');
|
|
35
35
|
}
|
|
36
36
|
// Mirror of the report's "no design system" banner: with almost no colour or
|