Scofti
← Board
SC-6DonePhase One · Launch

Decide whether kind stays

A required frontmatter field that nothing on the site renders.

kind stopped rendering when the label was removed from the entry header and both indexes.

It is being kept because the Articles / Projects / Podcasts menu would filter on it. If that menu is not happening, the field should go rather than sit there being filled in for nothing.

What kind actually is

A required field on every entry, set in the frontmatter, one of five values defined by KIND_LABELS in src/lib/entries.ts:

reference · dispatch · memorial · episode · note

It does nothing. Not a route, not a filter, not a label on any page. Nothing outside the type definition reads it — no component, no index, no sitemap entry. Removing every use of it from rendering would change nothing, because there are none.

It is also barely used as a vocabulary. Across the five entries that exist:

| kind | entries | | --- | --- | | reference | 4 | | note | 1 | | dispatch | 0 | | memorial | 0 | | episode | 0 |

So three of the five values have never been chosen, and reference is doing duty for a GitHub index, a research piece, a contact form and a privacy page — four things with nothing in common. A vocabulary that lumps those together is not describing anything.

Why it is still here

One reason only: SC-3 planned an Articles / Projects / Podcasts menu that would filter on it. That menu shipped as something else — sections, routes and standing pages, none of which touch kind. SC-3 is closed. The justification is gone with it.

The decision

Either give it a job or delete it. What it must not do is stay required, stay unread, and go on being filled in on every new file — that is how a field becomes load-bearing by accident, because someone eventually writes logic against it and then it cannot be removed.

Deleting it is a small change: drop kind and EntryKind from EntryMeta, drop KIND_LABELS, and remove the line from five content files.

The one argument for keeping it: episode is the shape audio would take, and SC-5 has not settled what an episode is yet. If that is the reason to keep it, it should be written down as the reason — not left as a field nobody can explain.

Closed — kind is gone

Deleted. KIND_LABELS and EntryKind are out of src/lib/entries.ts, the field is off all five content files, and it is out of the frontmatter example in CLAUDE.md. Nothing broke, because nothing read it.

The last argument for keeping it was episode, and audio living in a blob store does not rescue it — the two are unrelated. An entry with an audio file in its frontmatter is an episode. A separate label claiming so is strictly worse: it can disagree with reality in both directions, an episode with no audio or audio filed as a reference, and nothing would catch either.

That is the same failure already guarded against elsewhere — a nested article whose frontmatter section contradicts the directory it sits in throws rather than publishing under two names. Deriving a fact from what a page actually has beats trusting a field that says what it is.