bmad-os-skill-to-bundle
Installation
SKILL.md
bmad-os-skill-to-bundle
Convert a BMad skill folder into a self-contained web bundle a non-technical user installs as a Gemini Gem or ChatGPT Custom GPT. Canonical example: assets/example-bundle/. INSTRUCTIONS scaffold: assets/instructions-template.md.
What the bundle must carry that you cannot derive from the source
- Persona/protocol split. The pasted INSTRUCTIONS block defines the voice. The uploaded
SKILL.mddefines the protocol. Both required. - Persona inheritance from an owning agent. If a
bmad-agent-*peer in the same module owns this work (analyst owns brainstorming, research, brief, PRFAQ; pm owns PRD, epics, stories), liftname,title,icon,role,identity,communication_style,principlesverbatim from itscustomize.toml. Invent only when no owning agent exists. - One methodology master named in the protocol. Bezos for Working Backwards, Osborn for brainstorming, Cagan for PRD, Kerth for retro, Norman for UX. Persona-level influences stay in the persona; methodology champions live in the protocol. Two max.
- Canvas-first, visual-first, web-search-biased. Consumer platforms have no filesystem; anything that accumulates lives in Canvas, updated as content forms. Mermaid (rendered as HTML) and HTML tables beat prose for structural content. Training data is months stale, so the protocol must instruct the persona to web-search rather than recall whenever facts could have moved (people, products, versions, prices, events, regulatory state).
- Framework dependencies translated, not dropped. No subagents, scripts, gh/git, filesystem, or skill loading at runtime. Subagents become sequential passes; scripts become prose or inline code; tool calls become asking the user; loaded validation skills become a sibling reference file the protocol loads during polish.
- No decision logs. Even if the source skill keeps one. Canvas continuous-update replaces it.
[preferences]defaults to none. It earns a slot only for values that persist usefully across sessions (default user name is the classic). Per-session choices (mode, depth, focus) are opening conversation, not preferences.- Outcome-driven prompt craft. Every line in the bundle must pass "would a capable LLM do this correctly without being told?" If yes, cut it. Trust the model: it knows how to coach, mirror, ask follow-ups, honor user steering, avoid hedging, and stay in character. Bundles state goals, non-obvious failure modes, and specifics the LLM cannot derive (named methodologies, capture formats, ID schemes, validation dimensions, Mermaid type names). Source skills often carry ceremonial framing, restated values, and LLM-default coaching advice that earned its place in a framework context but bloats a bundle. Strip it. A bundle 30-50% smaller than its source is normal and good.
Inputs
- Skill folder path (required): contains
SKILL.mdplus optionalreferences/and data files. - Bundle name / output path (optional): override the derived slug and
bundles-output/<slug>/.