derive-thesislisted
Install: claude install-skill jperrello/C0BALT_CUT
# derive-thesis
A 2-hour talk wanders through one core throughline plus dozens of entertaining
tangents. Nothing in the pipeline named the throughline, so `pick-segments`
maximized standalone virality per span and shipped clip-shaped asides (a beetle
anecdote, a DoorDash story) that misrepresent the source. `derive-thesis`
computes that missing source-level subject once, as a durable JSON artifact both
`pick-segments` (theme prior + `theme_fit` score + backfill gate) and
`selection-report` read.
## Invoke
```
.claude/skills/derive-thesis/derive-thesis.sh <transcript.json> [topics.json] [out.json]
```
- `transcript`: full-source transcript (for duration; the digest is the topic list)
- `topics`: `segment-topics` output (auto-discovered next to the transcript)
- `out`: `thesis.json` (auto-discovered next to the transcript)
## Output
`thesis.json`:
```json
{
"subject": "Donald Hoffman on consciousness and reality",
"thesis_sentence": "Perception is a species-specific interface, not a window onto objective reality.",
"key_threads": ["conscious agents", "fitness beats truth", "spacetime is not fundamental", "the hard problem"]
}
```
On any Claude/parse failure it writes a deterministic fallback (`subject` from
the longest topic's title, `key_threads` from the leading topic titles,
`"fallback": true`) so downstream always has a subject.
## How
`build_prompt.py` renders the whole chapter list and asks Claude to name the
SPINE (not summarize every chapter) — the guest