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.
Files changed (2) hide show
  1. package/dist/cli.js +46 -14
  2. 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.5";
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
- skillLine,
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 Claude:"),
104814
- " " + source_default.dim('"Build me a UI that matches the ' + projectName + ' design system"')
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: skillInstalled ? "green" : "yellow",
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
- const homeDir = process.env.HOME || process.env.USERPROFILE || "";
105010
- const claudeSkillsDir = path16.join(homeDir, ".claude", "skills");
105011
- fs14.mkdirSync(claudeSkillsDir, { recursive: true });
105012
- const dest = path16.join(claudeSkillsDir, `${safeName}.md`);
105013
- fs14.copyFileSync(skillMdSrc, dest);
105014
- return true;
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.5",
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": {