Overview
@medyll/skiller is an npm CLI + library for the full lifecycle of SKILL.md files in @medyll packages: template creation, multi-target installation, multi-model evaluation, HTML reporting, and AI-powered optimization.
When to use skiller vs other skills
| You want to... | Use |
|---|---|
| Create a SKILL.md template for an @medyll package | skiller (npx @medyll/skiller create-skill) |
| Install a skill to Claude/Cursor/Codex/Windsurf/Zed | skiller (npx @medyll/skiller add-skill) |
| Run multi-model tests on a skill (Claude, Qwen, Ollama) | skiller (npx @medyll/skiller test-skill) |
| View HTML test reports | skiller (npx @medyll/skiller report) |
| AI-optimize a skill based on test failures | skiller (npx @medyll/skiller optimize) |
| Validate/repair SKILL.md frontmatter structure | skill-master |
| Author a new Claude Code skill from scratch with eval loops | skill-creator |
Install
pnpm add @medyll/skiller
CLI Commands
install-skill — Install skiller's own skill (NEW)
npx @medyll/skiller install-skill # Install to user-wide (~/.claude/skills/skiller/)
npx @medyll/skiller install-skill --target cursor # Install to specific target
Use this to install skiller's documentation to your AI agent. Run from anywhere.
create-skill — Generate a SKILL.md template
npx @medyll/skiller create-skill --name my-package --description "My package description"
Creates src/lib/skill/<pkg>/SKILL.md and optionally test-suite.json.
SKILL.md lookup order (used by add-skill and all resolution logic):
src/lib/skill/<pkg>/SKILL.md— source, preferred (@medyll SvelteKit packages)dist/skill/<pkg>/SKILL.md— compiled build, fallback when source is absent (consumed as dependency)lib/skill/<pkg>/SKILL.md— legacy only
add-skill — Install a skill to an editor target
npx @medyll/skiller add-skill
Interactive prompt to choose a target. Non-interactive: npx @medyll/skiller add-skill --target user.
Note: Run this from within a package directory that has a SKILL.md.
test-skill — Run multi-model evaluations
npx @medyll/skiller test-skill # All configured models
npx @medyll/skiller test-skill --model claude # Specific model
npx @medyll/skiller test-skill --parallel # Parallel execution
report — View HTML test results
npx @medyll/skiller report # Latest report
npx @medyll/skiller report --session 20260331-194500 # Specific session
optimize — AI-powered skill optimization
npx @medyll/skiller optimize --skill my-package
npx @medyll/skiller optimize --skill my-package --dry-run # Preview suggestions
Installation Targets
| Target | Location | Scope |
|---|---|---|
user |
~/.claude/skills/<pkg>/SKILL.md |
Global |
claude |
./.claude/skills/<pkg>/SKILL.md |
Project |
codex |
~/.codex/skills/<pkg>/SKILL.md |
Global |
agent |
./.github/skills/<pkg>/SKILL.md |
Project |
cursor |
~/.cursor/skills/<pkg>/SKILL.md |
Global |
windsurf |
~/.windsurf/skills/<pkg>/SKILL.md |
Global |
zed |
~/.zed/skills/<pkg>/SKILL.md |
Global |
custom |
User-specified path | Custom |
Configuration: packages/skiller/src/registry.json.
test-suite.json Format
{
"name": "my-skill",
"models": [
{ "name": "claude", "adapter": "claude" },
{ "name": "qwen", "adapter": "qwen", "model": "qwen-turbo" },
{ "name": "ollama", "adapter": "ollama", "model": "llama3" }
],
"cases": [
{
"id": "case-001",
"name": "Basic usage test",
"input": "User prompt to test against the skill",
"assertions": {
"min_length": 100,
"max_length": 5000,
"format": "markdown",
"required_keywords": ["import", "function"],
"forbidden_keywords": ["deprecated"],
"contains_code": true
}
}
]
}
Assertion types: min_length, max_length, format (markdown|json|code), required_keywords, forbidden_keywords, contains_code.
SKILL.md Template
---
name: <package-name>
description: <When to trigger + what it does. Be specific and include trigger phrases.>
---
## Overview
What the package does, when and why to use it.
## Install
\`\`\`bash
pnpm add @medyll/<package-name>
\`\`\`
## Core API
Main functions, classes, signatures with brief descriptions.
## Usage
Realistic code examples showing typical workflows.
## References
Point to references/ files for advanced API docs, integration guides, etc.
Self-editing workflow (skiller's own SKILL.md)
Skiller's authoritative source directory is the REFERENCE_DIRECTORY above. All files in this skill (SKILL.md, references/, test-suite.json, etc.) MUST be edited inside that directory. The installed copies (user-wide, project, etc.) are deployment artifacts — never edit them directly.
Rules:
- Directory-first: Always resolve
REFERENCE_DIRECTORYbefore any edit. If the directory does not exist or is unreachable, do nothing and report the missing path to the user. Never fall back to editing an installed copy. - After modification: Once the source SKILL.md has been updated, make it available by:
- Stage and commit the change (
git add+git commit) - Push to remote so CI / other consumers pick it up
- Optionally re-run
npx @medyll/skiller install-skillto refresh the user-wide installed copy
- Stage and commit the change (
References
For detailed documentation, read these files from references/:
references/api-reference.md— Full library API exports and usage examplesreferences/integration-guide.md— How to addadd-skillto your package, CI/CD setupreferences/search-paths.md— SKILL.md lookup order and usage examples
Source: medyll/idae — distributed by TomeVault.