@uxelle/skills
v0.2.4
Published
uxElle generate-UI agent skills: component API reference and design harness, as versioned markdown with a machine-readable manifest
Readme
@uxelle/skills
Versioned generate-UI agent skills for uxElle: component API reference (uxelle-components) and composition recipes (uxelle-design-harness), plus a machine-readable manifest.
The version of this package tracks @uxelle/components. Pin them to the same version so generated props match the installed component API.
npm install @uxelle/skillsExports
| Specifier | What it is |
| --------------------------- | -------------------------------------------------- |
| @uxelle/skills | Typed SKILLS manifest and skillFileSpecifier() |
| @uxelle/skills/index.json | Same manifest as JSON |
| @uxelle/skills/skills/* | Raw markdown (SKILL.md, Button.md, recipes, …) |
import { readFileSync } from "node:fs";
import { fileURLToPath } from "node:url";
import { SKILLS, skillFileSpecifier } from "@uxelle/skills";
for (const skill of SKILLS.skills) {
const specifier = skillFileSpecifier(skill.name, "SKILL.md");
const markdown = readFileSync(fileURLToPath(import.meta.resolve(specifier)), "utf8");
}Vite / webpack can load the same files with ?raw (import x from "@uxelle/skills/skills/uxelle-components/SKILL.md?raw"). Node cannot import() .md.
Load SKILL.md for each skill plus the manifest up front. Fetch individual component or recipe files on demand — uxelle-components/SKILL.md tells agents not to preload every component file. For a new app, fetch uxelle-components/getting-started.md next (install, CSS, theme). That file is generated from the root README Quick Start region; npm run stage / build for this package (and the other stageSkills pack paths) re-extract it before copying.
The two skill folders are siblings. The harness links into component docs with relative paths such as ../uxelle-components/Table.md; do not split them.
index.json
{
"schemaVersion": 1,
"version": "0.2.0-beta.2",
"skills": [
{
"name": "uxelle-components",
"description": "…",
"files": [{ "path": "SKILL.md", "size": 12345, "hash": "sha256:…" }]
}
]
}files[].path is POSIX, relative to that skill folder. hash is sha256: plus 64 hex digits.
Tests and pack checks (this repo)
Staged content under packages/skills/skills/ and index.json are gitignored build output. npm test -w @uxelle/skills stages and sanitizes before Vitest (stage re-extracts getting-started.md from the root README). npm run pack:check -w @uxelle/skills builds, sanitizes, then dry-runs npm pack.
