I added a single optional field to my blog's frontmatter. By the end of the afternoon, I had a meta page that classified my own posts into four groups, and the distribution was unflattering in a way I hadn't predicted. Here's the field: kt_mode : knowledge-transforming # or knowledge-telling, or mixed Enter fullscreen mode Exit fullscreen mode And the schema change, in Zod for an Astro content collection: kt_mode : z . enum ([ " knowledge-telling " , " knowledge-transforming " , " mixed " ]) . optional (), Enter fullscreen mode Exit fullscreen mode That's the whole new contract. Optional, so existing posts don't break. Omission means "I haven't classified this yet." A new page at /lenses/ reads the field and groups every post under one of four headings: knowledge-transforming , mixed , knowledge-telling , unclassified . The Astro is unremarkable — getCollection , group by a property, render a <Card> per post.…