Production Readiness Score (PRS)
PRS is Quell's measure of edge-case test quality. It's not coverage — it's a measure of whether your tests actually catch bugs.
The formula
PRS = (WRITTEN × 1.0 + SCAFFOLDED × 0.5) / total_requirements × 100
Weighted by how well each bucket catches bugs:
- WRITTEN counts fully — gate 5 proved the test catches violations
- SCAFFOLDED counts half — structure is correct, but not fully proven
- FLAGGED counts zero — documented but not testable
Score tiers
| Score | Tier | Meaning |
|---|---|---|
| 80–100 | Production Ready | Edge cases are well-covered |
| 60–79 | Review Needed | Significant gaps remain |
| 0–59 | Needs Work | Many untested edge cases |
Why PRS vs coverage
A codebase with 91% line coverage might have a PRS of 52.
Both numbers are correct. They measure different things.
Coverage tells you which lines ran during your test suite. PRS tells you whether tests would catch a real bug in those lines.
You can have 100% coverage with zero PRS if all your tests just assert the function returns something without checking correctness.
Improving your PRS
quell find src/ --fix # write tests for verified gaps
quell score src/ # see current PRS by file
The fastest wins are usually:
- Functions with explicit
Raisesin their docstrings - Pydantic models with field validators
- Functions with guard clauses at the top
PRS in CI
Enforce a minimum score on every PR:
quell ci src/ --threshold 75
See CI/CD Integration for setup details.