segment-topicslisted
Install: claude install-skill jperrello/C0BALT_CUT
# segment-topics
Claude-driven topical chunking. No keyword heuristics — Claude judges where the subject changes.
## Inputs
- `transcript`: path to `transcribe` output JSON (must have segments or words with timestamps)
- `out` (optional): output JSON path. Default: `<dir>/topics.json` next to the transcript.
## Output
```json
{
"source": "/path/to/source.mp4",
"topics": [
{
"t0": 0.0,
"t1": 87.4,
"title": "Intro and channel pitch",
"summary": "Greets viewers, teases the compilation."
},
{
"t0": 87.4,
"t1": 213.1,
"title": "Soccer challenge fail",
"summary": "Tries to juggle a ball, eats the field, screams."
}
]
}
```
Boundaries are contiguous (`topics[i].t1 == topics[i+1].t0`). Together they cover `[0, duration]`.
## How
1. Build a compact transcript view (timestamped lines).
2. Send to Claude with the instruction "partition this transcript into contiguous topical regions; emit ~5–20 segments depending on length; favor longer regions over choppy ones; each region must be self-contained (one subject, one bit, one anecdote)".
3. Validate: monotonic non-overlapping spans, full coverage, snap edges to the nearest transcript segment boundary so spans align with sentence breaks.
## Why not just include this in pick-segments
Topic boundaries are reusable. Other consumers (chapter markers, retrieval, future skills) want the same partition. Keeping it separate also lets `pick-segments` cache-hit even when N or