Assess DataOps maturity¶
Situation: You need a point-in-time maturity read on an Asset Bundle (or similar) ETL monorepo — practice adoption, CI/CD, test automation vs data quality, and prioritised next steps.
Run: data-ops-review
Procedure and section checklist live only in the skill. Below is a sample outcome (persona-redacted) so you can see shape and depth.
Sample outcome — Plumbing (March 2026)¶
Scope: Full repository · Branch: feature/dataops-review-docs-and-prompt ·
Programme epic: PLUM-75
At a glance¶
- ~36 Asset Bundles, ~491 Python source files
- Bundle config + PR validation at 100%; lint/tests at 6% (2 pilot bundles)
- Top opportunities: shared
conftest.py, coverage enforcement, finish pilot tests, pin dependencies, catalog anomaly detection
Practice adoption¶
| Practice | Bundles | % of 36 |
|---|---|---|
| Asset Bundle config | 36 | 100% |
| CI bundle validation (PR) | 36 | 100% |
| CI lint / unit tests (feature) | 2 | 6% |
| CI unit tests (main) | 0 | 0% |
Extracted testable functions / Tests/ |
2 | 6% |
| Dependency manifest / DQ / schema enforcement | 0 | 0% |
Pilots: report-builder (6 fns, 18 tests, many smoke) and pricing-engine (11 fns / 7 tested, 30 tests, stronger assertions). Remaining ~444 Python files across 34 bundles untested. Largest untested by notebook count: quota-keeper (74), policy-evaluator (45), lookup-cache (27), event-router (24).
Maturity¶
| Dimension | Maturity | Priority |
|---|---|---|
| Monorepo structure | Moderate | Medium |
| Dependency management | Low (worsening %pip sprawl) |
High |
| Deploy as code (CI/CD) | Moderate | Medium |
| Test automation | Low | High |
| Data quality testing | None | High |
Prioritised next steps (excerpt)¶
- Shared
conftest.py pytest-covfail-under on extracted modules (CI-only)- Complete pricing-engine coverage; deepen report-builder assertions
- Make lint blocking; pytest on main; staging target
- Per-bundle pinned manifests; catalog anomaly detection on key schemas