Posts
All the articles I've posted.
-
Full risk vs non-risk contracts: not the same axis as risk adjustment
Full risk and non-risk describe who bears financial risk in a healthcare contract. Risk adjustment describes how much gets paid. They share a word, not a mechanism.
-
What's new in cms_hcc v1.0.0: the payer grain fix nobody's docs warned you about
cms_hcc v1.0.0 fixes a silent grain mismatch between int_members and int_disease_factors that dropped every disease factor for members who switched payers mid-year.
-
caveman: cutting Claude's output tokens by 75%
The caveman skill strips filler from Claude responses while preserving technical accuracy — reducing output tokens by ~75% and keeping long sessions inside context limits.
-
diagnose: enforcing the debug loop Claude skips
The diagnose skill enforces a structured debug loop — reproduce, minimise, hypothesise, instrument, fix, regression test — preventing Claude from jumping straight to a proposed solution.
-
grill-me: stress-testing a plan before touching the codebase
The grill-me skill interrogates a proposed plan against the existing domain model before any code is written — surfacing assumptions, naming drift, and design conflicts early.
-
improve-codebase-architecture: review that knows your domain
The improve-codebase-architecture skill runs structured architecture review informed by domain language and ADRs — not generic refactor suggestions.
-
Building a data quality dashboard on top of Tuva's DQI mart
Tuva's DQI mart produces fill rates and anomaly flags for every input field in a claims dataset. Here's how to surface that in a Streamlit dashboard with meaningful visualizations.
-
Building a multipage Streamlit app with st.navigation() — the modern way
Streamlit 1.31 added st.navigation() as the modern replacement for the pages/ directory convention. Here's how the new API works and why it's better for anything beyond a simple demo.