@ggsvelte/skill
v0.41.0
Published
The ggsvelte agent skill (SKILL.md + references): teaches coding agents the ggsvelte grammar of graphics — Svelte 5 child-component composition, PortableSpec JSON, and the validate/render feedback loop. Versioned in lock-step with @ggsvelte/spec, @ggsvelt
Maintainers
Readme
@ggsvelte/skill
The ggsvelte agent skill: SKILL.md plus deep-dive references/ that teach a
coding agent the ggsvelte grammar of graphics — Svelte 5 child-component
composition, PortableSpec JSON authoring, and the validate() /
ggsvelte-render feedback loop.
This package is the one published home of the skill. It versions in lock-step
with @ggsvelte/spec,
@ggsvelte/core,
@ggsvelte/svelte, and
@ggsvelte/cli: a given version
number describes the spec, the renderers, and this skill as of the same
release. Pin it like any other dependency and let dependabot (or
npm-check-updates) tell you when the bundled skill in your repo is stale.
Install
bun add -D @ggsvelte/skill
# or: npm install --save-dev @ggsvelte/skillThe package root is the skill directory: SKILL.md sits next to this
README. Skill loaders key off the frontmatter (name: ggsvelte), not the
directory name.
Use
Point your agent at the skill, or copy/symlink it into your agent's skills
directory under the name ggsvelte:
# Claude Code
cp -R node_modules/@ggsvelte/skill .claude/skills/ggsvelte
# pi
cp -R node_modules/@ggsvelte/skill .pi/agent/skills/ggsvelte
# or reference it in place
node_modules/@ggsvelte/skill/SKILL.mdRe-run the copy on every version bump (a two-line postinstall or a sync
script works); the dependabot PR is the signal that the skill changed.
The skill assumes the agent can also run
@ggsvelte/cli
(ggsvelte-render) for spec validation and headless SVG rendering — install it
in every sandbox where an agent authors specs.
Contents
SKILL.md— trigger conditions, layer ontology, authoring workflow.references/— geoms and stats, scales and palettes, themes, interactions, composition surfaces, recipes.
Guarantees
The skill cannot quietly fall behind the library. CI enforces three layers:
- Content contracts (
scripts/skill-content.test.ts,scripts/skill-package.test.ts) — inventory completeness for every geom, stat, position, theme, and color scheme; every complete JSON fence normalizes and validates; pack shape and lock-step version. - Trigger / disclosure contracts (
scripts/skill-trigger.test.ts) — frontmatter description quality (the loader's selection signal), balanced positive/negative trigger fixtures underevals/trigger-cases.json, relative-link integrity, and progressive disclosure of everyreferences/file fromSKILL.md. - Held-out NL→spec evals (
tests/evals/,bun run evals) — model capability on PortableSpec authoring with deterministic graders. These do not load this skill today; agent-in-the-loop skill evals (with/without skill A/B, multi-trial trigger accuracy) are tracked as follow-up work.
evals/trigger-cases.json is not packed to npm (files is only SKILL.md +
references/). It is the living seed for future skill-loaded agent evals.
