Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ your-module/
### Path Variables

- `{project-root}/_bmad/bmb/` — Installation path (in repo, maps to `src/`)
- `{bmad_builder_output_folder}` — User's custom content output
- `{builder_output_folder}` — User's custom content output (per-skill, resolved from each builder skill's `customize.toml`)
- Runtime variables: `{output_folder}`, `{project-root}` from Core config

## Development Notes
Expand Down
2 changes: 1 addition & 1 deletion docs/explanation/module-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ module,skill,display-name,menu-code,description,action,args,phase,preceded-by,fo
| **preceded-by** | Capabilities that should complete before this one (this capability is preceded by them): format `skill-name:action`, comma-separated for multiple |
| **followed-by** | Capabilities that should run after this one (this capability is followed by them), same format as `preceded-by` |
| **required** | `true` if this is a blocking gate for phase progression, `false` otherwise |
| **output-location** | Config variable name (e.g., `output_folder`, `bmad_builder_reports`); `bmad-help` resolves from config to scan for completion artifacts |
| **output-location** | Config variable name (e.g., `output_folder`, `builder_output_folder`); `bmad-help` resolves from config to scan for completion artifacts. Leave blank when output is per-invocation (e.g., reports that land next to whatever's being analyzed) — completion detection is skipped for those rows. |
| **outputs** | File patterns `bmad-help` looks for in the output location to detect completion (e.g., "quality report", "agent skill") |

### How bmad-help Uses These Entries
Expand Down
2 changes: 1 addition & 1 deletion docs/how-to/run-evals-against-a-skill.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ The runner stages each eval's workspace, executes `claude -p` against the prompt

When the run finishes, the runner emits two paths:

- The run folder, at `~/bmad-evals/<run-id>/` (or your configured `bmad_builder_reports` location)
- The run folder, at `~/bmad-evals/<run-id>/` (or `{builder_output_folder}/eval-runs/<run-id>/` if `bmad-eval-runner`'s `customize.toml` is resolvable)
- An HTML report at `<run-folder>/report.html`

Open the report for the summary view. Drop into the run folder for full transcripts, artifacts, and grading details for any eval you want to examine.
Expand Down
6 changes: 3 additions & 3 deletions docs/reference/builder-commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ The optimizer runs three tiers of analysis.

### Report Synthesis

After all scanners complete, the optimizer synthesizes results into a unified report saved to `{bmad_builder_reports}/{skill-name}/quality-scan/{timestamp}/`.
After all scanners complete, the optimizer synthesizes results into a unified report saved to `{target-skill-path}/reports/quality-scan/{timestamp}/` — reports always land next to the skill being analyzed.

@augmentcode augmentcode Bot May 26, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section says the synthesized report is saved under {target-skill-path}/reports/quality-scan/{timestamp}/, but other updated docs refer to {target-skill-path}/reports/quality-analysis/...; if both directories aren’t intentionally distinct, readers may look in the wrong location.

Severity: low

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Unify quality report directory naming with the skill reference docs.

This line documents reports/quality-scan/..., but the quality-analysis reference uses reports/quality-analysis/.... Please standardize one path to avoid broken operator expectations and missed artifacts.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/reference/builder-commands.md` at line 251, Update the documented report
path to match the skill reference docs by replacing occurrences of
"reports/quality-scan" with "reports/quality-analysis" in the sentence that
mentions `{target-skill-path}/reports/.../{timestamp}/`; ensure the output
directory string now reads
`{target-skill-path}/reports/quality-analysis/{timestamp}/` and scan other
builder docs to make all references to "reports/quality-analysis" consistent.


In interactive mode, it presents a summary with severity counts and offers next steps:

Expand Down Expand Up @@ -299,7 +299,7 @@ The HTML report includes:
| **What survived** | Content that earns its place: instructions the LLM wouldn't follow correctly without being told |
| **Verdict** | One-sentence summary of the conversion |

Reports are saved to `{bmad_builder_reports}/convert-{skill-name}/`.
Reports are saved to `{target-skill-path}/reports/convert/` — next to the skill being converted.

### When to Use Convert vs Build Process

Expand Down Expand Up @@ -331,7 +331,7 @@ A brainstorming session that helps you plan your module from scratch. The builde
| --------------- | ----------------------------------------------- |
| **Interaction** | Interactive only; no headless mode |
| **Input** | An idea or rough description |
| **Output** | Plan document saved to `{bmad_builder_reports}` |
| **Output** | Plan document saved to `{output_folder}/module-plans/` |

**What it covers:**

Expand Down
6 changes: 3 additions & 3 deletions skills/bmad-agent-builder/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ Act as an architect guide — walk users through conversational discovery to und

1. Detect user's intent. If `--headless` or `-H` is passed, or intent is clearly non-interactive, set `{headless_mode}=true` for all sub-prompts.

2. Load available config from `{project-root}/_bmad/config.yaml` and `{project-root}/_bmad/config.user.yaml` (root and bmb section). If neither exists, fall back to `{project-root}/_bmad/bmb/config.yaml` (legacy per-module format). If still missing, and the `bmad-builder-setup` skill is available, let the user know they can run it at any time to configure. Resolve and apply throughout the session (defaults in parens):
2. Load core config from `{project-root}/_bmad/config.toml` (and `config.user.toml`) for shared identity values. Resolve this skill's `customize.toml` (merged with any `{project-root}/_bmad/custom/bmad-agent-builder.toml` and `.user.toml` overrides) for skill-local knobs. Apply throughout the session (defaults in parens):
- `{user_name}` (default: null) — address the user by name
- `{communication_language}` (default: user or system intent) — use for all communications
- `{document_output_language}` (default: user or system intent) — use for generated document content
- `{bmad_builder_output_folder}` (default: `{project-root}/skills`) — save built agents here
- `{bmad_builder_reports}` (default: `{project-root}/skills/reports`) — save reports (quality, eval, planning) here
- `{builder_output_folder}` (default: `{project-root}/skills`) — save built agents here
- Quality / analysis reports always land next to the skill being analyzed: `<target-skill-path>/reports/<analysis-type>/<date>/`.

3. Route by intent — see Quick Reference below.

Expand Down
12 changes: 12 additions & 0 deletions skills/bmad-agent-builder/customize.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# DO NOT EDIT -- overwritten on every update.
#
# Workflow customization surface for bmad-agent-builder.
#
# Override files (not edited here):
# {project-root}/_bmad/custom/bmad-agent-builder.toml (team)
# {project-root}/_bmad/custom/bmad-agent-builder.user.toml (personal)

[workflow]

# Where built agent skills land. Override in team/user TOML to redirect.
builder_output_folder = "{project-root}/skills"
2 changes: 1 addition & 1 deletion skills/bmad-agent-builder/references/build-process.md
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ Load `./references/sample-capability-prompt.md` as a quality reference for capab
- `./references/skill-best-practices.md` — outcome-driven authoring, patterns, anti-patterns
- `./references/quality-dimensions.md` — build quality checklist

Build the agent using templates from `./assets/` and rules from `./references/template-substitution-rules.md`. Output to `{bmad_builder_output_folder}`.
Build the agent using templates from `./assets/` and rules from `./references/template-substitution-rules.md`. Output to `{builder_output_folder}`.

### Emit `customize.toml` (always, every archetype)

Expand Down
2 changes: 1 addition & 1 deletion skills/bmad-agent-builder/references/quality-analysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ Each scanner writes a free-form analysis document:

## Execution

First create output directory: `{bmad_builder_reports}/{skill-name}/quality-analysis/{date-time-stamp}/`
First create output directory: `{target-skill-path}/reports/quality-analysis/{date-time-stamp}/` — reports always land next to the skill being analyzed, never in a central bucket.

### Step 1: Run All Scripts (Parallel)

Expand Down
4 changes: 2 additions & 2 deletions skills/bmad-agent-builder/references/standard-fields.md
Original file line number Diff line number Diff line change
Expand Up @@ -194,5 +194,5 @@ Use `{project-root}/...` for any path relative to the project root:
Use directly — they already contain `{project-root}` in their resolved values:

- `{output_folder}/file.md`
- Correct: `{bmad_builder_output_folder}/agent.md`
- Wrong: `{project-root}/{bmad_builder_output_folder}/agent.md` (double-prefix)
- Correct: `{builder_output_folder}/agent.md`
- Wrong: `{project-root}/{builder_output_folder}/agent.md` (double-prefix)
16 changes: 8 additions & 8 deletions skills/bmad-bmb-setup/assets/module-help.csv
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
module,skill,display-name,menu-code,description,action,args,phase,preceded-by,followed-by,required,output-location,outputs
BMad Builder,bmad-bmb-setup,Setup Builder Module,SB,"Install or update BMad Builder module config and help entries.",configure,"{-H: headless mode}|{inline values: skip prompts with provided values}",anytime,,,false,{project-root}/_bmad,config.yaml and config.user.yaml
BMad Builder,bmad-agent-builder,Build an Agent,BA,"Create, edit, or rebuild an agent skill through conversational discovery.",build-process,"{-H: headless mode}|{description: initial agent concept}|{path: existing agent to edit or rebuild}",anytime,,bmad-agent-builder:quality-analysis,false,bmad_builder_output_folder,agent skill
BMad Builder,bmad-agent-builder,Analyze an Agent,AA,"Run quality analysis on an existing agent — structure, cohesion, prompt craft, and enhancement opportunities.",quality-analysis,"{-H: headless mode}|{path: agent to analyze}",anytime,bmad-agent-builder:build-process,,false,bmad_builder_reports,quality report
BMad Builder,bmad-workflow-builder,Build a Workflow,BW,"Create, edit, or rebuild a workflow or utility skill.",build-process,"{-H: headless mode}|{description: initial skill concept}|{path: existing skill to edit or rebuild}",anytime,,bmad-workflow-builder:quality-analysis,false,bmad_builder_output_folder,workflow skill
BMad Builder,bmad-workflow-builder,Analyze a Workflow,AW,"Run quality analysis on an existing workflow/skill — structure, efficiency, and enhancement opportunities.",quality-analysis,"{-H: headless mode}|{path: skill to analyze}",anytime,bmad-workflow-builder:build-process,,false,bmad_builder_reports,quality report
BMad Builder,bmad-workflow-builder,Convert a Skill,CW,"Convert any skill to BMad-compliant, outcome-driven equivalent with before/after HTML comparison report.",convert-process,"{--convert: path or URL to source skill}|{-H: headless mode}",anytime,,,false,bmad_builder_reports,converted skill + comparison report
BMad Builder,bmad-module-builder,Ideate Module,IM,"Brainstorm and plan a BMad module — explore ideas, decide architecture, and produce a build plan.",ideate-module,"{description: initial module idea}",anytime,,bmad-module-builder:create-module,false,bmad_builder_reports,module plan
BMad Builder,bmad-module-builder,Create Module,CM,"Scaffold module infrastructure into built skills, making them an installable BMad module.",create-module,"{-H: headless mode}|{path: skills folder or single SKILL.md}",anytime,bmad-module-builder:ideate-module,,false,bmad_builder_output_folder,setup skill
BMad Builder,bmad-module-builder,Validate Module,VM,"Check that a module's structure is complete, accurate, and all capabilities are properly registered.",validate-module,"{-H: headless mode}|{path: module or skill to validate}",anytime,bmad-module-builder:create-module,,false,bmad_builder_reports,validation report
BMad Builder,bmad-agent-builder,Build an Agent,BA,"Create, edit, or rebuild an agent skill through conversational discovery.",build-process,"{-H: headless mode}|{description: initial agent concept}|{path: existing agent to edit or rebuild}",anytime,,bmad-agent-builder:quality-analysis,false,builder_output_folder,agent skill
BMad Builder,bmad-agent-builder,Analyze an Agent,AA,"Run quality analysis on an existing agent — structure, cohesion, prompt craft, and enhancement opportunities.",quality-analysis,"{-H: headless mode}|{path: agent to analyze}",anytime,bmad-agent-builder:build-process,,false,,quality report (lands next to analyzed skill)
BMad Builder,bmad-workflow-builder,Build a Workflow,BW,"Create, edit, or rebuild a workflow or utility skill.",build-process,"{-H: headless mode}|{description: initial skill concept}|{path: existing skill to edit or rebuild}",anytime,,bmad-workflow-builder:quality-analysis,false,builder_output_folder,workflow skill
BMad Builder,bmad-workflow-builder,Analyze a Workflow,AW,"Run quality analysis on an existing workflow/skill — structure, efficiency, and enhancement opportunities.",quality-analysis,"{-H: headless mode}|{path: skill to analyze}",anytime,bmad-workflow-builder:build-process,,false,,quality report (lands next to analyzed skill)
BMad Builder,bmad-workflow-builder,Convert a Skill,CW,"Convert any skill to BMad-compliant, outcome-driven equivalent with before/after HTML comparison report.",convert-process,"{--convert: path or URL to source skill}|{-H: headless mode}",anytime,,,false,,converted skill + comparison report (next to source)
BMad Builder,bmad-module-builder,Ideate Module,IM,"Brainstorm and plan a BMad module — explore ideas, decide architecture, and produce a build plan.",ideate-module,"{description: initial module idea}",anytime,,bmad-module-builder:create-module,false,output_folder,module plan
BMad Builder,bmad-module-builder,Create Module,CM,"Scaffold module infrastructure into built skills, making them an installable BMad module.",create-module,"{-H: headless mode}|{path: skills folder or single SKILL.md}",anytime,bmad-module-builder:ideate-module,,false,builder_output_folder,setup skill
BMad Builder,bmad-module-builder,Validate Module,VM,"Check that a module's structure is complete, accurate, and all capabilities are properly registered.",validate-module,"{-H: headless mode}|{path: module or skill to validate}",anytime,bmad-module-builder:create-module,,false,,validation report (lands next to analyzed module)
13 changes: 3 additions & 10 deletions skills/bmad-bmb-setup/assets/module.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,9 @@ module_version: 1.0.0
default_selected: false
module_greeting: >
Enjoy making your dream creations with the BMad Builder Module!
Run this again at any time if you want to reconfigure a setting or have updated the module, (or optionally just update _bmad/config.yaml and config.user.yaml to change existing values)

For questions, suggestions and support - check us on Discord at https://discord.gg/gk8jAdXWmj

bmad_builder_output_folder:
prompt: "Where should your custom output (agent, workflow, module config) be saved?"
default: "{project-root}/skills"
result: "{project-root}/{value}"
Each builder skill carries its own `customize.toml` with sane defaults (built artifacts land in `{project-root}/skills`). Override per-skill in `_bmad/custom/{skill-name}.toml` if you want a different home; reports and analyses always land next to whatever's being analyzed.


bmad_builder_reports:
prompt: "Output for Evals, Test, Quality and Planning Reports?"
default: "{project-root}/skills/reports"
result: "{project-root}/{value}"
For questions, suggestions and support - check us on Discord at https://discord.gg/gk8jAdXWmj
Comment on lines +10 to +13

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use double-quoted YAML style for module_greeting.

The updated greeting remains in folded-scalar form, which conflicts with the repository YAML rule requiring double-quoted strings.

Suggested YAML-compliant form
-module_greeting: >
-  Enjoy making your dream creations with the BMad Builder Module!
-
-
-  Each builder skill carries its own `customize.toml` with sane defaults (built artifacts land in `{project-root}/skills`). Override per-skill in `_bmad/custom/{skill-name}.toml` if you want a different home; reports and analyses always land next to whatever's being analyzed.
-
-
-  For questions, suggestions and support - check us on Discord at https://discord.gg/gk8jAdXWmj
+module_greeting: "Enjoy making your dream creations with the BMad Builder Module!\n\nEach builder skill carries its own `customize.toml` with sane defaults (built artifacts land in `{project-root}/skills`). Override per-skill in `_bmad/custom/{skill-name}.toml` if you want a different home; reports and analyses always land next to whatever's being analyzed.\n\nFor questions, suggestions and support - check us on Discord at https://discord.gg/gk8jAdXWmj"
As per coding guidelines "`**/*.yaml`: All YAML files must use double quotes with `avoidEscape: true`."
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@skills/bmad-bmb-setup/assets/module.yaml` around lines 10 - 13, The YAML
value for module_greeting is currently using folded-scalar style; change it to a
double-quoted scalar to comply with the repo rule requiring double quotes
(avoidEscape: true). Locate module_greeting in module.yaml and replace the
folded block with a single double-quoted string (escaping any internal quotes as
needed or rephrasing to avoid escapes) so the value is a valid YAML
double-quoted scalar.

4 changes: 2 additions & 2 deletions skills/bmad-eval-runner/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ You are an experienced eval engineer. The user wants signal, not theatre. Cite s
- `--mode artifact|trigger|both` — which eval kind to run. Default: `both` if both files are found, else whichever exists.
- `--isolation docker|local|auto` — sandbox strategy. Default: `auto` (Docker when available, otherwise local).
- `--project-root <path>` — root of the project the skill belongs to. Default: walk up from skill path looking for `_bmad/` or `.git/`.
- `--output-dir <path>` — where run folders are written. Default: `{bmad_builder_reports}/eval-runs/` if configured, else `~/bmad-evals/`.
- `--output-dir <path>` — where run folders are written. Default: `{builder_output_folder}/eval-runs/` if `customize.toml` is resolvable, else `~/bmad-evals/`.
- `--workers <n>` — parallel evals. Default: 4.
- `--headless` / `-H` — non-interactive; emit final JSON only.

## On Activation

1. Resolve config the same way `bmad-workflow-builder` does (`{project-root}/_bmad/config.yaml` then `config.user.yaml`, falling back to `bmb/config.yaml`). Resolve `{user_name}`, `{communication_language}`, `{bmad_builder_reports}`. Apply throughout the session.
1. Resolve core config from `{project-root}/_bmad/config.toml` (and `config.user.toml`) for `{user_name}` and `{communication_language}`. Resolve this skill's `customize.toml` (merged with any `{project-root}/_bmad/custom/bmad-eval-runner.toml` and `.user.toml` overrides) for `{builder_output_folder}`. Apply throughout the session.

2. If `--headless` was passed, set `{headless_mode}=true` and skip every confirmation below; pick the safest defaults and proceed.

Expand Down
14 changes: 14 additions & 0 deletions skills/bmad-eval-runner/customize.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# DO NOT EDIT -- overwritten on every update.
#
# Workflow customization surface for bmad-eval-runner.
#
# Override files (not edited here):
# {project-root}/_bmad/custom/bmad-eval-runner.toml (team)
# {project-root}/_bmad/custom/bmad-eval-runner.user.toml (personal)

[workflow]

# Fallback for --output-dir when no flag is passed and ~/bmad-evals/ is not
# desired. Eval runs land under {builder_output_folder}/eval-runs/<run-id>/.
# Override in team/user TOML to redirect, or pass --output-dir per invocation.
builder_output_folder = "{project-root}/skills"
2 changes: 1 addition & 1 deletion skills/bmad-module-builder/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ This skill helps you bring BMad modules to life — from the first spark of an i

## On Activation

Load available config from `{project-root}/_bmad/config.yaml` and `{project-root}/_bmad/config.user.yaml` (root level and `bmb` section). If neither exists, fall back to `{project-root}/_bmad/bmb/config.yaml` (legacy per-module format). If still missing, let the user know `bmad-builder-setup` can configure the module at any time. Use sensible defaults for anything not configured.
Load core config from `{project-root}/_bmad/config.toml` (and `config.user.toml`) for shared identity values. Resolve this skill's `customize.toml` (merged with any `{project-root}/_bmad/custom/bmad-module-builder.toml` and `.user.toml` overrides) for skill-local knobs — most importantly `{builder_output_folder}` (default `{project-root}/skills`), where created modules land. Ideate plan documents land under `{output_folder}/module-plans/`. Validation reports land next to the module being validated. Use sensible defaults for anything not configured.

Detect user's intent:

Expand Down
14 changes: 14 additions & 0 deletions skills/bmad-module-builder/customize.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# DO NOT EDIT -- overwritten on every update.
#
# Workflow customization surface for bmad-module-builder.
#
# Override files (not edited here):
# {project-root}/_bmad/custom/bmad-module-builder.toml (team)
# {project-root}/_bmad/custom/bmad-module-builder.user.toml (personal)

[workflow]

# Where created modules and their scaffolded skills land. Override in
# team/user TOML to redirect. Ideate plan documents land under
# {output_folder}/module-plans/ (the core BMad planning area), not here.
builder_output_folder = "{project-root}/skills"
9 changes: 6 additions & 3 deletions skills/bmad-module-builder/references/create-module.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,15 +167,18 @@ Iterate until the user confirms everything is correct.

#### Multi-skill modules (setup skill approach)

Write the confirmed module.yaml and module-help.csv content to temporary files at `{bmad_builder_reports}/{module-code}-temp-module.yaml` and `{bmad_builder_reports}/{module-code}-temp-help.csv`. Run the scaffold script:
Write the confirmed module.yaml and module-help.csv content to a freshly-created temp directory (e.g. via `mktemp -d`) — these are ephemeral scaffolding inputs, not user-visible artifacts. Bind the path to `{tmp-dir}` and run the scaffold script:

```bash
TMP_DIR=$(mktemp -d)
# Write {tmp-dir}/{module-code}-temp-module.yaml and {tmp-dir}/{module-code}-temp-help.csv ...
python3 ./scripts/scaffold-setup-skill.py \
--target-dir "{skills-folder}" \
--module-code "{code}" \
--module-name "{name}" \
--module-yaml "{bmad_builder_reports}/{module-code}-temp-module.yaml" \
--module-csv "{bmad_builder_reports}/{module-code}-temp-help.csv"
--module-yaml "$TMP_DIR/{module-code}-temp-module.yaml" \

@augmentcode augmentcode Bot May 26, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this scaffold snippet, the temp file names use {module-code} while the args and surrounding text use {code}; if {module-code} isn’t a defined placeholder at runtime, this may produce literal {module-code} paths and break the scaffold invocation.

Severity: medium

Other Locations
  • skills/bmad-module-builder/references/create-module.md:174
  • skills/bmad-module-builder/references/create-module.md:180

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

--module-csv "$TMP_DIR/{module-code}-temp-help.csv"
rm -rf "$TMP_DIR"
```

This creates `{code}-setup/` in the user's skills folder containing:
Expand Down
Loading
Loading