subagent-driven-development
OBobra/superpowers298k2,631 new stars in the last 7 days
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/R runtime sidecars, or testing whether another Agent can follow the workflow.
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.
<skill-name>/
├── SKILL.md # frontmatter trigger + procedure body
├── runtime.py # optional helpers for the persistent Python runtime
├── runtime.r # optional helpers for the persistent R runtime
├── 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.
.wisp/skills/<name>/SKILL.md with write.runtime.py and/or runtime.r when helpers need to work with
persistent interpreter state. The rendered skill supplies a one-time loading
instruction for each file: exec(compile(...)) through python, or
source(..., local = TRUE) through r. Skill loading itself does not execute
them or inject Wisp tools. These files run inside the selected runtime;
do not invoke them as standalone CLI scripts.scripts/quick_validate.py <skill-directory>.search_skills and load it with use_skill.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.
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.
Keep top-level code definition-only:
python or r tool after loading; reload when that
runtime restarts or the conversation/execution context changes;__main__, so put self-checks in explicitly called
functions rather than a __main__ guard.Use scripts/ when a helper is a standalone CLI, needs argument parsing, or
should run through run_in_context. Choose by state reuse and execution needs,
not file length. scripts/runtime.py and scripts/runtime.r are ordinary
scripts; only the reserved root-level filenames get runtime loading guidance.
scripts/quick_validate.py <skill-dir> — checks frontmatter shape, kebab-case
naming, folder/name match, and length limits; prints every problem at once.scripts/package_skill.py <skill-dir> [out-dir] — validates, then zips the
folder into <name>.skill for user-wide installation, skipping build junk
and a root-level evals/ folder.To evaluate a skill, run it on realistic tasks yourself (step 8 above) and keep evaluation artifacts out of the skill folder unless they are intentional reusable resources.
search_skills and use_skill do not edit the catalog.run_in_context executes deterministic work; it does not publish skills or
call models.customize and use
save_specialist only when that explicit tool is advertised.OBobra/superpowers298k2,631 new stars in the last 7 days
MAmattpocock/skills288k10,178 new stars in the last 7 days
MAmattpocock/skills288k10,178 new stars in the last 7 days
MAmattpocock/skills288k10,178 new stars in the last 7 days
AFaffaan-m/ECC278k4,046 new stars in the last 7 days
AFaffaan-m/ECC278k4,046 new stars in the last 7 days