Files
Alex Verkhovsky 94b6727b00 refactor(renderer): render skill sources as Jinja2 templates (#2857)
Replace the regex token substitution and the line-parsed bmad-if
directives in render_skill.py with Jinja2. Templates see config,
workflow, and snapshot(); undefined names, empty entry files, and
links to omitted sources halt; every value a render reaches and the
Jinja2 version key the generation. Migrate the five rendered skills'
sources to the new forms, keep their shipped output byte-identical,
and update the validator rule and the authoring docs.
2026-09-11 16:45:10 -06:00

65 lines
1.8 KiB
TOML

# Development tooling for the BMAD-METHOD repository.
#
# This is not a distributable package: the repository tree itself is what
# `npx skills add bmad-code-org/BMAD-METHOD` and the plugin marketplaces
# install, and each shipped script under skills/*/scripts declares its own
# dependencies inline (PEP 723) so `uv run` works without this file.
# The release version lives in skills/*/module-manifest.toml, not here.
[project]
name = "bmad-method"
version = "0"
description = "Repository tooling for BMAD-METHOD (not published)"
requires-python = ">=3.11"
dependencies = []
[dependency-groups]
dev = [
"jinja2>=3.1",
"pre-commit>=4.6.2",
"pytest>=8",
"pytest-xdist>=3",
"pyyaml>=6.0.2,<7",
"ruamel.yaml>=0.18",
"ruff>=0.14",
]
[tool.uv]
package = false
[tool.pytest.ini_options]
addopts = "-q -ra --tb=short -n auto -p no:cacheprovider"
testpaths = ["tools/tests", "skills"]
[tool.ruff]
# Every shipped script declares the same floor inline (PEP 723) as
# requires-python above; tools/tests/test_python_floor.py enforces that,
# since ruff reads only this setting.
target-version = "py311"
line-length = 120
extend-exclude = ["tools/tests/fixtures"]
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]
ignore = [
"E501", # long lines: the formatter handles code; strings and comments may exceed
]
[tool.rumdl]
# The five rules markdownlint enforced before; the rest stay off.
enable = ["MD001", "MD024", "MD026", "MD034", "MD037"]
exclude = ["node_modules", "tools/tests/fixtures", "CODE_OF_CONDUCT.md", "docs-site/dist", "docs-site/.astro"]
[tool.rumdl.MD024]
siblings-only = true
[tool.rumdl.MD026]
punctuation = ","
[tool.yamlfix]
# yamlfix's default of 0 also strips blank lines inside block scalars,
# which rewrites the shell scripts in workflows. 1 keeps them.
whitelines = 1
section_whitelines = 1
explicit_start = false