subagent-driven-development
OBobra/superpowers298k2,631 new stars in the last 7 days
Find Agent Skills for a goal the user cannot name yet, then export an installable bundle. Use when they ask which skills fit a project. Don't use for installing named skills, authoring skills, or catalog maintenance.
Help a user who has a goal but not a skill list find the right Agent Skills, explain what each one does, lay out an order to run them in, and — if they approve — hand them a single installable bundle file.
The user's defining trait is that they don't know what to ask for. Someone
who already knows they want frontend-design should just run
asm install …. This skill is for "I'm building an app and want to do marketing
from scratch, but I don't know marketing or which skills exist." Draw out the
goal, confirm it, then map it onto real, installable skills from the live catalog.
asm catalog for candidate skills (never guess skill names).Start at the step the user is already at. If they open with a rich goal ("I need SEO, a landing page, and launch copy for my SaaS"), confirm quickly and move to discovery. If they're vague ("help me market my app"), spend more time in steps 1–2. Never skip step 2: confirming before searching keeps recommendations relevant.
If the user asks for one capability ("is there a skill that converts PDFs?"), skip the loop: run one asm search "<term>" --available --json and give the matching asm install <installUrl> line.
This skill drives the asm CLI for discovery and produces a file it installs.
Run this before promising recommendations:
command -v asm || echo "MISSING"
If the output is MISSING, tell the user the skill needs the Agent Skill
Manager CLI on PATH, point them at npm install -g agent-skill-manager, and stop.
Ask open questions, one or two at a time, until you can state the user's goal in a sentence. Useful prompts:
Match your vocabulary to theirs. A non-marketer asking for "marketing" may actually need positioning, a landing page, and launch copy — offer those as options; do not assume. Avoid jargon ("ICP", "ASO") unless they use it first.
Before searching, play back what you heard and ask for an explicit confirmation:
Here's what I understand: you're building {project}, and you want to {goal}. The pieces you're unsure about are {gaps}. Did I get that right?
If they correct you, fold it in and ask again. Move on only after they agree. Confirming the situation is what prevents a confidently-wrong skill list.
Never invent skill names or install URLs. The catalog changes constantly;
the only trustworthy source at runtime is the asm CLI on the user's machine.
Derive 2–5 search terms from the confirmed goal and query each:
asm search "<term>" --available --json
Run a separate search per term — broad terms ("marketing", "seo", "landing page", "launch") surface different skills. Read references/catalog-discovery.md when you need the JSON shape, installed-vs-available rules, or empty-result handling; keep this detail out of the main context budget until Step 3 needs it.
Read each candidate's description to judge relevance; its "Use when…" / "Don't use for…" text tells you whether it fits the goal. Then run asm search "<term>" --json without --available to detect installed skills. Mention installed matches in the plan, but exclude them from the bundle. Only available skills with an installCommand go in.
From the union of search hits, build the recommendation set:
name. Keep one entry per name. If two repos offer
the same name, keep the one whose description best matches the goal and note
the choice in the plan.landing-page-copywriter writes
the words for your launch page so visitors understand and sign up."Order the curated skills into the sequence the user should run them in. For each step, state its input (what the user or the previous step provides) and its output (what they'll have after). Foundational/context skills usually come first; review/QA skills usually come last. Example shape:
Step 1 — marketing-context
in: your product description, target customer
out: a saved brand/positioning brief other skills read first
Step 2 — landing-page-copywriter
in: the brief from step 1
out: landing-page copy ready to paste
Show this plan to the user before exporting anything. Make it easy to say "drop step 2" or "add something for email". After any change, show the revised plan and ask for approval again.
Only after the user approves the plan, write a bundle file in asm's BundleManifest format with a goal-based name such as marketing-starter.bundle.json. Write it to the current directory unless the user names another path.
See references/bundle-format.md for the required JSON template, validation rules, and the reason this skill uses asm bundle install instead of asm install or asm import. Copy each installUrl from Step 3 verbatim; never hand-construct it and never include already-installed skills.
Check the file before handing it off:
asm bundle show ./marketing-starter.bundle.json --json
skills[].name list matches the approved plan, give the user the install command asm bundle install ./marketing-starter.bundle.json. In a terminal it asks for the tool, then which bundle skills to install, then the scope. Outside a terminal, -p/--tool <tool> is required; -y skips the skill and scope pickers.blocked with the error, and do not hand off an install command.After each step, print a compact status block: √ pass, × fail, — context.
◆ Step N — [step name]
··································································
[check]: √ pass
Result: PASS | FAIL | PARTIAL
Checks per step:
asm on PATHgoal stated in one sentence, user confirmed the goalone available search per term, one installed search per termno duplicate names, every step has in/out, user approved the planbundle file written, asm bundle show --json exit 0, listed skills match the planEnd every run with a short report the user can read without scrolling back:
complete, plan only (nothing to bundle, or the user declined export), or blocked (with the reason).asm bundle show passed.complete, the user's next action: asm bundle install ./<file> on its own line; installation happens only when they run it, so no other approval is needed. For plan only or blocked, name what would unblock the next step, or state that no action is needed.Keep explanations plain. The user came here because they didn't know the landscape — leave them understanding what they're about to install and why.
Verify all of these before calling the run complete:
asm search "<term>" --available --json query was run for each chosen search term.asm search "<term>" --json and excluded from the bundle.complete: a numbered plan, a bundle file path, and an install command. For plan only: the numbered plan and no bundle file.complete, asm bundle show ./<file>.bundle.json --json succeeded; otherwise the run reports blocked with the validation error instead of handing off a broken command.When reviewing a run's output (by eval or by a human), also check that a reader can:
asm bundle show check.An agent's own review cannot confirm human understanding. A reviewer who received no human feedback records understanding as unconfirmed.
asm not installed — stop at the prerequisite check; point them at the install docs.skill-creator if they may need to author something that doesn't exist yet.plan only.plan only.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