Contributing¶
Ways to contribute¶
- Add a template — build a new stack using the boilerworks conventions and open a PR to add it to the catalogue
- Improve docs — fix errors, improve clarity, add examples
- Report bugs — open an issue with steps to reproduce
- Request a template — open an issue describing the stack
Template conventions¶
All templates must:
- Boot with
docker compose up -dfrom scratch (no local installs required) - Use standard ports (app: 3000/8000, postgres: 5432, redis: 6379)
- Use
boilerworksas the placeholder name throughout (the renderer replaces it) - Include: Items, Categories, FormDefinitions, FormSubmissions, WorkflowDefinitions (Full only)
- Have health check at
/upor/health/ - Include a
CLAUDE.mdpointing tobootstrap.md - Pass
make testandmake lint
CLI development¶
git clone https://github.com/ConflictHQ/boilerworks.git
cd boilerworks
uv sync
uv run boilerworks --help
make lint # ruff check + format --check
make test # pytest with coverage
make format # ruff fix + format
Coverage must stay at ≥ 80%.
Adding a template to the catalogue¶
- Build and test the template repo (must live at
ConflictHQ/boilerworks-{name}) - Edit
data/templates.yaml— add an entry withname,repo,size,language,status,description,topologies - Run
make test—test_registry.pywill catch count or schema mismatches - Open a PR
Code standards¶
- Python 3.12+, fully typed
- Line length: 120 (ruff config in
pyproject.toml) ruff check . && ruff format .before every commit- No TODOs, no stubs
- No co-authorship messages in commits