skillui 1.1.4 → 1.1.6

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 +32 -10
  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.4";
104562
+ var VERSION = "1.1.6";
104565
104563
  function padAnsi(str, width) {
104566
104564
  const raw = stripAnsi(str);
104567
104565
  return str + " ".repeat(Math.max(0, width - raw.length));
@@ -104755,7 +104753,7 @@ function showUltraPlaywrightError() {
104755
104753
  console.log("");
104756
104754
  }
104757
104755
  function showResults(data) {
104758
- const { profile, animations, skillFilePath, designMdPath, projectName } = data;
104756
+ const { profile, animations, skillFilePath, designMdPath, projectName, skillInstalled } = data;
104759
104757
  const fontCount = new Set(profile.typography.map((t) => t.fontFamily)).size;
104760
104758
  const framework = profile.frameworks.map((f) => f.name).join(", ") || "none detected";
104761
104759
  const darkMode = profile.designTraits.hasDarkMode ? "detected" : "not detected";
@@ -104806,17 +104804,17 @@ function showResults(data) {
104806
104804
  }));
104807
104805
  console.log("");
104808
104806
  }
104807
+ 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");
104809
104808
  const nextSteps = [
104810
- source_default.dim(" Install skill in Claude Code:"),
104811
- " " + source_default.hex("#38bdf8")("claude skill install ./" + projectName + ".skill"),
104809
+ skillLine,
104812
104810
  "",
104813
- source_default.dim(" Or drop DESIGN.md into your project and ask Claude:"),
104814
- " " + source_default.dim('"Build me a UI that matches this design system"')
104811
+ source_default.dim(" Then ask Claude:"),
104812
+ " " + source_default.dim('"Build me a UI that matches the ' + projectName + ' 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: "yellow",
104817
+ borderColor: skillInstalled ? "green" : "yellow",
104820
104818
  width: 76,
104821
104819
  padding: { top: 0, bottom: 0, left: 0, right: 1 }
104822
104820
  }));
@@ -104973,12 +104971,14 @@ program2.name("skillui").description("Reverse-engineer design systems from any p
104973
104971
  succeedSpinner(spWrite, "DESIGN.md", designMdPath);
104974
104972
  }
104975
104973
  let skillFilePath;
104974
+ let skillInstalled = false;
104976
104975
  if (shouldWriteSkill) {
104977
104976
  const spSkill = startSpinner("Bundling .skill package...");
104978
104977
  try {
104979
104978
  const result = await generateSkill(profile, designMdContent, path16.resolve(opts.out), screenshotPath, ultraAnimations);
104980
104979
  skillFilePath = result.skillFile;
104981
104980
  succeedSpinner(spSkill, ".skill package", skillFilePath);
104981
+ skillInstalled = installSkillForClaude(result.skillDir, safeName);
104982
104982
  } catch (e) {
104983
104983
  failSpinner(spSkill, ".skill package", e.message);
104984
104984
  throw e;
@@ -104989,7 +104989,8 @@ program2.name("skillui").description("Reverse-engineer design systems from any p
104989
104989
  animations: ultraAnimations ?? void 0,
104990
104990
  skillFilePath,
104991
104991
  designMdPath,
104992
- projectName: safeName
104992
+ projectName: safeName,
104993
+ skillInstalled
104993
104994
  });
104994
104995
  } catch (err) {
104995
104996
  console.error(`
@@ -104999,6 +105000,27 @@ program2.name("skillui").description("Reverse-engineer design systems from any p
104999
105000
  }
105000
105001
  });
105001
105002
  program2.parse();
105003
+ function installSkillForClaude(skillDir, safeName) {
105004
+ try {
105005
+ const skillMdSrc = path16.join(skillDir, "SKILL.md");
105006
+ if (!fs14.existsSync(skillMdSrc)) return false;
105007
+ let installed = false;
105008
+ const homeDir = process.env.USERPROFILE || process.env.HOME || "";
105009
+ if (homeDir) {
105010
+ const globalDir = path16.join(homeDir, ".claude", "skills");
105011
+ fs14.mkdirSync(globalDir, { recursive: true });
105012
+ fs14.copyFileSync(skillMdSrc, path16.join(globalDir, `${safeName}.md`));
105013
+ installed = true;
105014
+ }
105015
+ const localDir = path16.join(process.cwd(), ".claude", "skills");
105016
+ fs14.mkdirSync(localDir, { recursive: true });
105017
+ fs14.copyFileSync(skillMdSrc, path16.join(localDir, `${safeName}.md`));
105018
+ installed = true;
105019
+ return installed;
105020
+ } catch {
105021
+ return false;
105022
+ }
105023
+ }
105002
105024
  /*! Bundled license information:
105003
105025
 
105004
105026
  tmp/lib/tmp.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillui",
3
- "version": "1.1.4",
3
+ "version": "1.1.6",
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": {