# Contributing

Thanks for improving the Playbook templates and tooling. This repo is a template
source for downstream projects, so changes should stay small, predictable, and
backwards compatible when possible.

## What to change

- Templates: `templates/`, `rulesets/`, `docs/`
- Tooling: `scripts/`
- Tests: `test/`

## Commit messages

Follow `docs/common/commit_message.md` and use the required emoji/type mapping.

## Tests

Run the relevant checks before pushing:

```bash
npm run lint:md
python -m unittest discover -s test -p "test_*.py" -v
sh test/templates/validate_python_templates.sh
sh test/templates/validate_cpp_templates.sh
sh test/templates/validate_ci_templates.sh
sh test/templates/validate_project_templates.sh
sh test/integration/check_doc_links.sh
```

## Templates and docs

- Keep placeholder definitions documented in `templates/README.md`.
- Update template last-updated dates when changing template content.
