Skill creator
Create, update, validate, and evaluate Wisp skills. Use when authoring a project-local or installable skill, refining its trigger description, adding deterministic scripts or Python sidecars, or testing whether another Agent can follow the workflow.From its SKILL.md
npx -y skills add xuzhougeng/wisp-science --skill skill-creatorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
4.2 KB, 854 tokens by cl100k_base, as published. Nobody here has run it
Create Wisp skills
Author project-local skills under .wisp/skills/<name>/. Wisp also discovers
bundled skills, user-installed skills, and paths configured by
WISP_SKILLS_PATH, but only normal project paths are directly writable through
Agent file tools.
Structure
<skill-name>/
├── SKILL.md
├── kernel.py # optional pure helper definitions
├── scripts/ # optional standalone deterministic programs
├── references/ # optional detailed domain material
└── assets/ # optional output templates or static inputs
Keep SKILL.md concise. Put triggering information in frontmatter
description; put essential procedure in the body; move detailed variants to
one-level-deep references. Add only resources the workflow actually uses.
Workflow
- Define concrete user requests that should trigger the skill and the expected outputs.
- Search existing skills before creating a duplicate.
- Choose a lowercase hyphenated name and create
.wisp/skills/<name>/SKILL.mdwithwrite. - Add reusable scripts before writing long inline code examples. Execute every new script on representative local data.
- Add
kernel.pyonly for small reusable Python helpers. Loading a skill does not inject Wisp tools into Python. The rendered skill supplies a one-timeexec(compile(open(...)))instruction that defines the sidecar names in the persistentpythonkernel. - Validate structure with this skill's
scripts/quick_validate.py <skill-directory>. - Refresh or reopen the project if the new skill does not yet appear, then find
it with
search_skillsand load it withuse_skill. - Exercise the skill on realistic tasks. When explicit Wisp delegation is available, use a fresh bounded task with only the skill path and user-style request; do not leak the expected answer into the evaluation prompt.
For a user-wide installation, ask the user to install the validated folder via Settings → Skills. There is no Agent-side publish, overwrite, or delete API.
Frontmatter
At minimum include:
---
name: my-skill
description: Perform X. Use when the user asks for Y, Z, or related output.
---
The folder name and name should match. The description is the primary trigger;
state both what the skill does and when it should be selected.
Python sidecar rules
Keep top-level code definition-only:
- allow imports, function definitions, and literal constant assignments;
- defer optional third-party imports into function bodies;
- do not run work, access the network, or modify files at load time;
- do not depend on injected Agent, Run, credential, artifact, or model objects;
- pass paths and configuration explicitly;
- use
pythonto call helpers after the one-time loader instruction.
Use scripts/ instead when a helper is a standalone CLI, exceeds roughly one
hundred lines, needs argument parsing, or should run through run_in_context.
Evaluation resources
Use the bundled scripts only when their extra rigor is useful:
scripts/run_eval.pyfor test prompts;scripts/aggregate_benchmark.pyfor repeated result aggregation;scripts/generate_report.pyandeval-viewer/for human review;scripts/improve_description.pyfor trigger-description experiments;scripts/package_skill.pyto package a validated skill folder.
Inspect each script's CLI help before running it. Keep evaluation artifacts out of the skill folder unless they are intentional reusable resources.
Wisp boundaries
search_skillsanduse_skilldo not edit the catalog.- Project file tools cannot manage user-wide installed skills outside granted workspace paths.
run_in_contextexecutes deterministic work; it does not publish skills or call models.- Specialist creation is separate. Load
customizeand usesave_specialistonly when that explicit tool is advertised.
What ships with it: 16 files
183.6 KB alongside SKILL.md, 10 of them executable
agents/
- analyzer.md10.3 KB
- comparator.md7.2 KB
- grader.md8.8 KB
assets/
- eval_review.html8.3 KB
eval-viewer/
- generate_review.pyruns16.0 KB
- viewer.html49.8 KB
references/
- schemas.md11.8 KB
scripts/
- aggregate_benchmark.pyruns14.2 KB
- generate_report.pyruns12.3 KB
- improve_description.pyruns10.9 KB
- __init__.pyruns0 B
- package_skill.pyruns4.1 KB
- quick_validate.pyruns3.9 KB
- run_eval.pyruns11.2 KB
- run_loop.pyruns13.3 KB
- utils.pyruns1.6 KB