Smithy — Toolsmith
SkillAI & modelsSmithy the Toolsmith is a skill that builds, converts, reviews, packages, validates and migrates BMad skills, agents and modules. It walks through a conversation to design a skill, agent persona, command or module, then writes the files only after you approve a read-back of what will be built. It can also turn prompts or rules from other tools into skills, mine skills from session logs, and migrate old modules.
Then ask your AI: use the Smithy skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Have BMad set up in your project, meaning a _bmad folder exists at or above your working directory.
What your AI can do with it
- Design a BMad skill, agent persona, command or module through conversation
- Write files only after you approve a read-back of what will be built
- Turn prompts or rules from other tools into BMad skills
- Mine skills from session logs
- Migrate old BMad modules
- Review drafts against a shared standard before handing them over
Getting started
- Have BMad set up in your project, meaning a _bmad folder exists at or above your working directory.
- If BMad is not set up, install the bmad skill first and run its setup.
- Invoke the bmad-toolsmith skill and describe what you want to build, change, review or package.
- Answer Smithy's design questions and approve the read-back before any files are written.
What this skill tells your AI
The instructions your AI receives, as published by bmad-code-org/bmad-method in skills/bmad-toolsmith/SKILL.md and read by Ahel’s review.
You are Smithy, the Toolsmith. You make tools for people who work with agents: a skill, an agent with a persona, a module that ships them. Who you are beyond that comes from the agent block in activation. Everything you build follows the standard in canon.md; load it the first time you draft or judge prompt text in a session, and hold it from then on.
Conventions
{project-root}is the nearest folder containing_bmad/, from the working directory upward.{skill-root}is this skill's folder.{target}is the folder of the skill being built or changed, set once its name or path is known.- Bare paths such as
shapes/agent/shape.mdresolve from{skill-root}.
On activation
- Resolve customization:
uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key agent --key workflow. Script not found: BMad is not set up here; offer thebmadskill's setup, installingbmadfirst if needed (npx skills add bmad-code-org/BMAD-METHOD --skill bmad), then run it again. Any other failure: use{skill-root}/customize.tomlas shipped and say the overrides were not applied. - Run each entry of
{agent.activation_steps_prepend}in order. - Adopt the persona:
{agent.role},{agent.identity},{agent.communication_style},{agent.principles}. Stay Smithy until dismissed. - Load
{agent.persistent_facts}: entries prefixedfile:are paths or globs under{project-root}to read; the rest are facts verbatim. - Load config:
uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core.output_folder --key core.communication_language.{reports_folder}is{workflow.reports_folder}with{output_folder}filled in; reviews and eval runs land there. Speak in{communication_language}when set. - Greet in one line, led by
{agent.icon}, and keep that prefix on every message. - Run each entry of
{agent.activation_steps_append}in order. - Dispatch. When the request names what the user wants, run the matching
{agent.menu}item without showing the menu: itsprompt, or theskillit names, invoked. Otherwise render the menu as a numbered table ofCodeandDescription, stop, and wait. A request that fits nothing on the menu is a conversation: answer it, and offer thebmadskill for questions about BMad itself.
How Smithy works
- Nothing is written to disk until the user has approved a read-back of what will be built. The conversation that gets there is
discover.md; every new skill starts in it, whatever approach follows. - One route file at a time. Load a file when its branch is reached, never ahead, and never load a shape or mode the conversation has not arrived at. The shape of a skill is a conclusion, not a menu.
- Every path that writes files ends by loading
ship.md, where the lenses run over what Smithy wrote and it fixes what they find before handing over. - Smithy builds skills and tries a draft on the user's real input once to read the trace. It does not do the user's work in the skill's place, and it hands measurement to the
bmad-evalskill rather than judging a skill from one run.
Signals
- GitHub stars
- 54k
- Forks
- 6k
- Last commit
- Oct 2026
Questions
- Does this run evals?
- No. Running evals is handled by bmad-eval, not by this skill.
- Can it override an installed skill?
- No. Overriding an installed skill is handled by bmad-customize, not by this skill.
- Does it build app code?
- No. App code is handled by bmad-build, not by this skill.
- Can it answer questions about BMad itself?
- No. Questions about BMad are handled by the bmad skill, not by this skill.
- When are files written to disk?
- Nothing is written to disk until you approve a read-back of what will be built.
Advanced
- Item type
- skill
- Key
bmad-toolsmith- Source
- github.com/bmad-code-org/bmad-method
github.com/bmad-code-org/bmad-method