skillui 1.1.5 → 1.1.7
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/dist/cli.js +46 -14
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -100949,8 +100949,6 @@ function generateSkillMd(profile, screenshotPath, ultraResult) {
|
|
|
100949
100949
|
md += `---
|
|
100950
100950
|
name: ${profile.projectName}-design
|
|
100951
100951
|
description: Design system skill for ${profile.projectName}. Activate when building UI components, pages, or any visual elements. Provides exact color tokens, typography scale, spacing grid, component patterns, and craft rules. Read references/DESIGN.md before writing any CSS or JSX.${ultraDesc}
|
|
100952
|
-
version: 1.0.0
|
|
100953
|
-
allowed-tools: [Read, Write, Edit, Glob, Grep]
|
|
100954
100952
|
---
|
|
100955
100953
|
|
|
100956
100954
|
`;
|
|
@@ -104561,7 +104559,7 @@ gradient.pastel = pastel;
|
|
|
104561
104559
|
// src/ui.ts
|
|
104562
104560
|
var import_cli_progress = __toESM(require_cli_progress());
|
|
104563
104561
|
var path15 = __toESM(require("path"));
|
|
104564
|
-
var VERSION = "1.1.
|
|
104562
|
+
var VERSION = "1.1.7";
|
|
104565
104563
|
function padAnsi(str, width) {
|
|
104566
104564
|
const raw = stripAnsi(str);
|
|
104567
104565
|
return str + " ".repeat(Math.max(0, width - raw.length));
|
|
@@ -104806,17 +104804,17 @@ function showResults(data) {
|
|
|
104806
104804
|
}));
|
|
104807
104805
|
console.log("");
|
|
104808
104806
|
}
|
|
104809
|
-
const skillLine = skillInstalled ? source_default.hex("#4ade80")(" \u2713 Skill auto-installed") + source_default.dim(" \u2014 type ") + source_default.hex("#38bdf8")("/skills") + source_default.dim(" in Claude Code to see it") : source_default.dim(" Copy SKILL.md to ") + source_default.hex("#38bdf8")("~/.claude/skills/" + projectName + ".md");
|
|
104810
104807
|
const nextSteps = [
|
|
104811
|
-
|
|
104808
|
+
source_default.dim(" Open Claude Code inside the design folder:"),
|
|
104809
|
+
" " + source_default.hex("#38bdf8")("cd " + projectName + "-design && claude"),
|
|
104812
104810
|
"",
|
|
104813
|
-
source_default.dim(" Then ask
|
|
104814
|
-
" " + source_default.dim('"Build me a UI that matches
|
|
104811
|
+
source_default.dim(" Claude will auto-read CLAUDE.md and SKILL.md. Then ask:"),
|
|
104812
|
+
" " + source_default.dim('"Build me a UI that matches this design system"')
|
|
104815
104813
|
].join("\n");
|
|
104816
104814
|
console.log(boxen(nextSteps, {
|
|
104817
104815
|
title: source_default.bold(" Next steps "),
|
|
104818
104816
|
borderStyle: "round",
|
|
104819
|
-
borderColor:
|
|
104817
|
+
borderColor: "green",
|
|
104820
104818
|
width: 76,
|
|
104821
104819
|
padding: { top: 0, bottom: 0, left: 0, right: 1 }
|
|
104822
104820
|
}));
|
|
@@ -104981,6 +104979,7 @@ program2.name("skillui").description("Reverse-engineer design systems from any p
|
|
|
104981
104979
|
skillFilePath = result.skillFile;
|
|
104982
104980
|
succeedSpinner(spSkill, ".skill package", skillFilePath);
|
|
104983
104981
|
skillInstalled = installSkillForClaude(result.skillDir, safeName);
|
|
104982
|
+
writeClaludeMd(result.skillDir, safeName, profile.projectName);
|
|
104984
104983
|
} catch (e) {
|
|
104985
104984
|
failSpinner(spSkill, ".skill package", e.message);
|
|
104986
104985
|
throw e;
|
|
@@ -105002,16 +105001,49 @@ program2.name("skillui").description("Reverse-engineer design systems from any p
|
|
|
105002
105001
|
}
|
|
105003
105002
|
});
|
|
105004
105003
|
program2.parse();
|
|
105004
|
+
function writeClaludeMd(skillDir, safeName, projectName) {
|
|
105005
|
+
try {
|
|
105006
|
+
const claudeMdPath = path16.join(skillDir, "CLAUDE.md");
|
|
105007
|
+
if (fs14.existsSync(claudeMdPath)) return;
|
|
105008
|
+
const content = `# ${projectName} Design System
|
|
105009
|
+
|
|
105010
|
+
This project uses the **${projectName}** design system extracted by skillui.
|
|
105011
|
+
|
|
105012
|
+
## How to use
|
|
105013
|
+
|
|
105014
|
+
Read \`SKILL.md\` in this directory for the full design system reference before writing any UI code.
|
|
105015
|
+
|
|
105016
|
+
Key files:
|
|
105017
|
+
- \`SKILL.md\` \u2014 master design reference (read this first)
|
|
105018
|
+
- \`references/DESIGN.md\` \u2014 extended tokens and component specs
|
|
105019
|
+
- \`references/ANIMATIONS.md\` \u2014 motion and keyframe specs
|
|
105020
|
+
- \`references/LAYOUT.md\` \u2014 grid and layout containers
|
|
105021
|
+
- \`references/COMPONENTS.md\` \u2014 DOM component patterns
|
|
105022
|
+
- \`screens/scroll/\` \u2014 scroll journey screenshots (study before implementing)
|
|
105023
|
+
|
|
105024
|
+
When building any UI, always read SKILL.md first and match colors, fonts, spacing, and motion exactly.
|
|
105025
|
+
`;
|
|
105026
|
+
fs14.writeFileSync(claudeMdPath, content, "utf-8");
|
|
105027
|
+
} catch {
|
|
105028
|
+
}
|
|
105029
|
+
}
|
|
105005
105030
|
function installSkillForClaude(skillDir, safeName) {
|
|
105006
105031
|
try {
|
|
105007
105032
|
const skillMdSrc = path16.join(skillDir, "SKILL.md");
|
|
105008
105033
|
if (!fs14.existsSync(skillMdSrc)) return false;
|
|
105009
|
-
|
|
105010
|
-
const
|
|
105011
|
-
|
|
105012
|
-
|
|
105013
|
-
|
|
105014
|
-
|
|
105034
|
+
let installed = false;
|
|
105035
|
+
const homeDir = process.env.USERPROFILE || process.env.HOME || "";
|
|
105036
|
+
if (homeDir) {
|
|
105037
|
+
const globalDir = path16.join(homeDir, ".claude", "skills");
|
|
105038
|
+
fs14.mkdirSync(globalDir, { recursive: true });
|
|
105039
|
+
fs14.copyFileSync(skillMdSrc, path16.join(globalDir, `${safeName}.md`));
|
|
105040
|
+
installed = true;
|
|
105041
|
+
}
|
|
105042
|
+
const localDir = path16.join(process.cwd(), ".claude", "skills");
|
|
105043
|
+
fs14.mkdirSync(localDir, { recursive: true });
|
|
105044
|
+
fs14.copyFileSync(skillMdSrc, path16.join(localDir, `${safeName}.md`));
|
|
105045
|
+
installed = true;
|
|
105046
|
+
return installed;
|
|
105015
105047
|
} catch {
|
|
105016
105048
|
return false;
|
|
105017
105049
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skillui",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.7",
|
|
4
4
|
"description": "Reverse-engineer design systems from any website, repo, or project. Extracts colors, fonts, spacing, animations, and components — packaged as a .skill file for Claude. Pure static analysis, zero AI, zero API keys.",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|