Skip to content

Config layers

Stock BMad already merges three files per skill. bglad uses that stack for Jira and git-host fields (GitLab or GitHub).

flowchart TD
  skill["Skill customize.toml<br/>generic empty hosts"] --> company["_bmad/custom/bglad-ticket-mr.toml<br/>org overlay, committed"]
  company --> user["_bmad/custom/bglad-ticket-mr.user.toml<br/>identity, gitignored"]
  user --> run["Resolved workflow for this run"]

Merge rules: scalars replace, arrays append, tables deep-merge. A list in *.user.toml appends.

Terminal window
uv run _bmad/scripts/resolve_customization.py \
--skill .agents/skills/bglad-ticket-mr \
--project-root . \
--key workflow
LayerFileContains
Skill default.agents/skills/bglad-ticket-mr/customize.tomlEmpty hosts, git_forge, squash, commit templates
Org overlay_bmad/custom/bglad-ticket-mr.tomlHosts, keys, spec_store, git_forge, [workflow.teams]
Person_bmad/custom/bglad-ticket-mr.user.tomljira_assignee_account, gitlab_username, github_username

npx bglad-method install writes the org overlay when missing and never overwrites one that exists.

If Jira or git-host fields the current intent needs are empty, the ticket skill asks (it does not invent field ids or assume GitLab vs GitHub). Knowledge folder default is knowledge/ (bglad-knowledge knowledge_dir); override in bglad-how-we-work.local.md.

spec_store is on the org overlay. Jira specs need a Jira MCP or jira CLI; Confluence specs need a Confluence MCP or CLI. Markdown specs need neither.

git_forge is gitlab or github. Install infers github.com and gitlab.com from origin when it can. Other remotes stay empty until you set them.

A squad that needs different reviewers or extra facts uses Override defaults — same BMad merge, plus bglad squad tables and bglad-how-we-work.local.md.