Editorial accountability as a platform layer
Start with the thesis essay: editorial accountability is a platform-layer concern, not a model-layer concern. The essay connects the lesson sequence to the platform contracts, editorial controls, evaluation artefacts, and JP/Politikens positioning context.
Then read how this was built: the AI-native workflow behind the lab, Sandcastle issue slicing, Matt Pocock skills, ADR-driven grilling, and AFK execution that produced the tutorial.
The tutorial is a working platform, not a detached write-up. It builds the data platform, app contract, analytical contract, editor interface, and evaluation surfaces that make the thesis inspectable.
The generated references make those contracts falsifiable: browse the data reference for dbt model docs and lineage, or the API reference for the OpenAPI endpoints consumed by the editor surfaces.
Architecture at a glance
Section titled “Architecture at a glance”flowchart LR
platform["Data platform<br/>(DuckDB + Parquet + dbt + Dagster)"]
appContract["App contract<br/>(FastAPI / OpenAPI)"]
analyticalContract["Analytical contract<br/>(DuckDB table schema)"]
editor["TypeScript editor<br/>(Express + HTMX)"]
swapDemo["Streamlit swap-demo"]
notebooks["Analyst notebooks<br/>(SQL)"]
platform --> appContract
platform --> analyticalContract
appContract --> editor
appContract --> swapDemo
analyticalContract --> notebooks
The recommender model is deliberately simple; the platform around it — two contracts, one for apps and one for analysts — is where editorial leverage lives.