How it was built
The content pipeline lives in this repository, with its gates and their tests. Every number on this page is read from the repository at build time, so it cannot drift into describing a better pipeline than the one that exists.
The gates came before the generation
All three gates were written, wired into CI, and proven by tests to refuse things — before the pipeline generated any lesson. That ordering is the whole argument. A generator built first and gated afterwards is gated to whatever it already produces; gates built first define what is acceptable independently of what any model happens to emit.
That claim is checkable in the commit history rather than merely asserted.
What each gate refuses
| Gate | Refuses | Negative tests |
|---|---|---|
validate.py | invalid structure, an undeclared objective, a block at a level it is not allowed at, a duplicate id, prose past the word budget, real licensed code sets | 20 |
concept_log.py | re-defining a concept an earlier lesson taught, or using one before it is introduced | 6 |
qa_gate.py | any criterion below 3, a mean below 4.0, or a verdict missing criteria | 20 |
46 negative tests. Each set includes a case asserting that valid content passes, because otherwise a gate could satisfy its own tests by refusing everything.
The concept log
It remembers which lesson first taught each concept. A later lesson may recall or apply it, but may not define it again, and may not lean on a concept nothing has introduced yet. A reviewer catches that across five lessons. Nobody catches it reliably across a hundred and twenty, which is the scale the pipeline exists to serve.
| Concept | First taught in |
|---|---|
appeal | 07-denials-cause-category-cure.json |
clean_claim | 04-anatomy-of-a-claim.json |
clearinghouse | 04-anatomy-of-a-claim.json |
coverage_active | 03-eligibility-and-pre-authorisation.json |
denial | 07-denials-cause-category-cure.json |
eligibility | 03-eligibility-and-pre-authorisation.json |
The rubric gate
Eight criteria, scored 1–5. A lesson fails if any criterion falls below 3, or the mean falls below 4.0 — two thresholds because they catch different problems. The mean catches a lesson that is mediocre everywhere; the floor catches one that is excellent in seven places and unacceptable in the eighth.
LLM rubric score, fresh-context judge, self-assessed — not human QA. The judge never sees the generation prompt, but it is still the same family of model marking its own work. The check on that check is a blind inter-rater sample: three lessons scored independently by a human, with the mean absolute difference reported.
Status, honestly
The five published lessons were hand-authored. 7 lessons have since been generated through the pipeline from a source note, and passed both deterministic gates: structural validation and the concept log. They are not published, because pipeline output is a draft and a human decides whether it ships.
The rubric gate has been run on that draft. The judge was a fresh session that had not seen the generation prompt and did not author the lesson, and it recorded its own caveat about how independent that makes it — published below, as written.
The run log holds 344 runs (278 passed), failures included. Most recent: writing-a-shift-handover — mean 4.25 over 8 scored criteria. With n = 344, that is a result and not a first-pass rate; a percentage from one run would be a number pretending to be a trend.
Judge independence: This judge is a different model family and a fresh context: it saw only the judge prompt, the rubric and the lesson. It did not direct the project and did not author anything in it. It is still a language model scoring a language model's output, so the label applies: not human QA.
The log is published here in full — including the runs the gate refuses. A history containing only successes is not evidence of anything.
Who reviewed this
No claims or revenue-cycle practitioner reviewed this content. It was authored from public sources by an instructional designer. All code sets are fictional training codes, and a real deployment would use a deploying organisation’s own payer rules and licensed code sets, reviewed by someone who works in the field.
What was done is an instructional-design review: objective alignment, coverage, the assessment blueprint, feedback quality, and the Arabic. That is genuine expertise, but it is not a subject-matter accuracy review, and the two are not the same thing.