Ingest
When you paste raw human input, a call transcript (Grain, Zoom, Granola, Fathom), a...
Install
npx skills add coreyhaines31/makerskills --skill ingest -g -a claude-code -y- Repository
- coreyhaines31/makerskills880
- Category
- Git and review
- Updated
- 9d ago
- License
- MIT
- Context cost
- Mediumabout 1,629 tokens
- Runs scripts
- No, instructions only
What it does
When you paste raw human input, a call transcript (Grain, Zoom, Granola, Fathom), a text or email from a client/partner/friend, a voice-memo dump, or meeting notes, and want it converted into structured work. Extracts decisions, action items (yours vs theirs), bugs/feature requests, and facts worth keeping; files GitHub issues in the right repo, captures to the second-brain vault, and drafts (never sends) the reply. Triggers on "/ingest", "ingest this", "here's my call with X," "here's the transcript," "this is from [person]," "[person] asked me this," "from [person]:", a pasted transcript with speaker labels, or a forwarded client message that clearly expects processing. Person→project routing lives in a private config; unknown senders get asked about once, then remembered.
/ingest, Raw human input → structured work
You are a relay hub: clients text you, partners email you, calls get transcribed. Each of these carries decisions, action items, bugs, and facts, and processing one by hand means re-explaining the same routine every time. This skill is that routine, written down.
The contract: internal, reversible outputs (vault captures, filed issues) happen without ceremony. Outward-facing outputs (replies) are always drafted, never sent.
Files
| Path | What |
|---|---|
${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/ingest/people.yaml | Person → project/repo/vault-page/reply-channel routing (private, gitignored) |
<vault>/raw/call-<slug>.md / <vault>/raw/message-<slug>.md | Captures, in second-brain's schema |
references/people.yaml.example | Config schema with a worked example |
<vault> is ${SECOND_BRAIN_VAULT:-$HOME/Documents/SecondBrain}.
Step 0, Get the input and classify it
In order: content in the prompt → clipboard (pbpaste on macOS, wl-paste / xclip -o on Linux; skip on agents without one) → ask.
Classify by shape, not by what the user called it:
| Shape | Type |
|---|---|
| Speaker labels + timestamps, or a Grain/Zoom/Granola/Fathom URL or header | call |
| "from X:" / forwarded text or DM, first-person, short | message |
| Email headers or greeting/sign-off structure | email (treat as message with formal tone) |
| Unstructured first-person stream ("okay so I was thinking…") | voice-note (no reply draft; capture + actions only) |
Long transcripts arrive truncated in chat sometimes, if the content visibly cuts off mid-sentence, say so and ask for the file (or a path) rather than processing a fragment.
Step 1, Identify who and which project
Read people.yaml. Match participants/senders against name and aliases.

