Skill Tracer
Skills › BMAD Method › bmad-toolsmith › lens-customization.md

lens-customization.md

17 lines · skills/bmad-toolsmith/lenses/lens-customization.md at bd70c64

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1# Lens: customization
2
3Lane: the `customize.toml` surface and its wiring, per `lenses/standards.md`. The bar: every declared value reaches the place it changes; every value a team would override is declared.
4
5- Persona keys (`identity`, `communication_style`, `principles`) in `[workflow]`, or a skill's scalars in `[agent]`: high; the skill wants to be an agent, or the reverse.
6- Not resolved: in a skill that is not rendered, no `resolve_customization.py` call in activation, or `{workflow.*}` and `{agent.*}` tokens naming no key. High; overrides never reach the model.
7- Declared and hardcoded: the table declares a scalar the body hardcodes. High; every override is a silent no-op.
8- In a rendered skill or rendered agent, a `[workflow]` key no rendered source inserts with `{{ workflow.<key> }}` is declared and hardcoded.
9- Hardcoded values a team would override (`<purpose>_output_path`, a template path, a completion hook): low each, medium at two or more.
10- Arrays of tables without `code` or `id`, or mixing the two: medium; the resolver can only append.
11- Boolean toggles: one medium, three or more high; a switch means the author never decided.
12- Old-format config (`module.yaml`, `module-help.csv`, `_bmad/config.yaml`), installer questions, a settings concept in the skill, or config read other than via `resolve_config.py`: high.
13- The skill writing under `_bmad/custom/`, merging `customize.toml` with override files itself, or carrying its own reader for when `_bmad/` is absent: high. The resolver reads, `bmad-customize` writes, setup installs; `script_findings` carries `custom-io` for the script side. Users who will change a value and no line telling them to invoke `bmad-customize`: low.
14- Jinja where `SKILL.md` does not call `render_skill.py`: high; it reaches the model verbatim. In a rendered skill or rendered agent, `config.*`, `workflow.*` or `agent.*` in a file named "template": high.
15- Agent (`shape_hint` is `agent` or `memory-agent`): `[agent]` missing `name`, `title` or `icon`, or a menu item with both or neither of `skill` and `prompt`: high. A memory agent's `[agent]` duplicating its sanctum: medium; two selves drift.
17Not flagged: a line telling the user to invoke `bmad-customize`; an empty `persistent_facts` (shipped skills carry none); `name` and `title` being fixed; reading project config at activation; a skill with no `customize.toml` and nothing a team would change.

Lens: customization

Lane: the customize.toml surface and its wiring, per lenses/standards.md. The bar: every declared value reaches the place it changes; every value a team would override is declared.

  • Persona keys (identity, communication_style, principles) in [workflow], or a skill's scalars in [agent]: high; the skill wants to be an agent, or the reverse.
  • Not resolved: in a skill that is not rendered, no resolve_customization.py call in activation, or {workflow.*} and {agent.*} tokens naming no key. High; overrides never reach the model.
  • Declared and hardcoded: the table declares a scalar the body hardcodes. High; every override is a silent no-op.
  • In a rendered skill or rendered agent, a [workflow] key no rendered source inserts with {{ workflow.<key> }} is declared and hardcoded.
  • Hardcoded values a team would override (<purpose>_output_path, a template path, a completion hook): low each, medium at two or more.
  • Arrays of tables without code or id, or mixing the two: medium; the resolver can only append.
  • Boolean toggles: one medium, three or more high; a switch means the author never decided.
  • Old-format config (module.yaml, module-help.csv, _bmad/config.yaml), installer questions, a settings concept in the skill, or config read other than via resolve_config.py: high.
  • The skill writing under _bmad/custom/, merging customize.toml with override files itself, or carrying its own reader for when _bmad/ is absent: high. The resolver reads, bmad-customize writes, setup installs; script_findings carries custom-io for the script side. Users who will change a value and no line telling them to invoke bmad-customize: low.
  • Jinja where SKILL.md does not call render_skill.py: high; it reaches the model verbatim. In a rendered skill or rendered agent, config.*, workflow.* or agent.* in a file named "template": high.
  • Agent (shape_hint is agent or memory-agent): [agent] missing name, title or icon, or a menu item with both or neither of skill and prompt: high. A memory agent's [agent] duplicating its sanctum: medium; two selves drift.

Not flagged: a line telling the user to invoke bmad-customize; an empty persistent_facts (shipped skills carry none); name and title being fixed; reading project config at activation; a skill with no customize.toml and nothing a team would change.

Raw lines 1 to 17
Names a skill bmad-customize :13