Part of #199.
Goal
Land the config foundation: a default YAML, a loader, and merge logic. No persistence or UI yet.
Work
Acceptance
pytest tests/test_maturity_config.py passes (~19 tests)
- No public-facing surface yet; this is purely the backend foundation
Files
backend/maturity_config_default.yaml (new)
backend/services/maturity_config.py (new)
tests/test_maturity_config.py (new)
pyproject.toml, requirements.txt
Part of #199.
Goal
Land the config foundation: a default YAML, a loader, and merge logic. No persistence or UI yet.
Work
backend/maturity_config_default.yamlwith 5 stages and 16 criteria (PR RFC: Configurable maturity scoring system #18 has the full draft)backend/services/maturity_config.pywith:_load_default()(cached YAML load)get_default_config()(returns deep copy)merge_config(base, overrides)— stages replaced wholesale, criteria merged byid, new ids appendedpyyamltopyproject.toml/requirements.txttests/test_maturity_config.py:Acceptance
pytest tests/test_maturity_config.pypasses (~19 tests)Files
backend/maturity_config_default.yaml(new)backend/services/maturity_config.py(new)tests/test_maturity_config.py(new)pyproject.toml,requirements.txt