[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70M7MR6D3FDPXMRE83RSXM3":3,"skill-same:01M70M7MR6D3FDPXMRE83RSXM3":83},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":60,"commitSha":61,"skillDirectory":62,"forksCount":63,"repositoryHtmlUrl":64,"repositoryHomepageUrl":65,"ownerHtmlUrl":66,"ownerBlogUrl":67,"ownerDescription":68,"updatedAt":69,"install":70,"resources":82},"01M70M7MR6D3FDPXMRE83RSXM3","ingest",null,"Route content to specialized ingestion skills. Detects input type and delegates.","shengdabai\u002FTony-Claude-Code-Skills","shengdabai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F116417419?v=4","01M70F6D2WY5PQV5A92BKYJQEW","Tony Sheng","01M70F6D3GAAAYZ5H4CC1G8VXM",3,"MIT","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fgbrain-ingest\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"input","process","delegates","meetings","type","true","page","save","add","concepts","sync","brain","route","specialized","people","search","get","ingestion","sources","2026-11-10 10:12:30",false,"---\nname: ingest\ndescription: Route content to specialized ingestion skills. Detects input type and delegates.\ntriggers:\n  - \"ingest this\"\n  - \"save this to brain\"\n  - \"process this meeting\"\ntools:\n  - search\n  - get_page\n  - put_page\n  - add_link\n  - add_timeline_entry\n  - sync_brain\nmutating: true\nwrites_pages: true\nwrites_to:\n  - people\u002F\n  - companies\u002F\n  - concepts\u002F\n  - meetings\u002F\n  - sources\u002F\n---\n\n# Ingest Skill\n\nIngest meetings, articles, media, documents, and conversations into the brain.\n\n> **Filing rule:** Read `skills\u002F_brain-filing-rules.md` before creating any new page.\n\n## Contract\n\n- Every fact written to a brain page carries an inline `[Source: ...]` citation with date and provenance.\n- Every entity mention creates a back-link from the entity's page to the page mentioning them (Iron Law).\n- Raw sources are preserved for provenance via `gbrain files upload-raw` with automatic size routing.\n- State sections are rewritten with current best understanding, never appended to.\n- Entity detection fires on every inbound message; notable entities get pages or updates.\n\n> **Convention:** See `skills\u002Fconventions\u002Fquality.md` for Iron Law back-linking.\n\nEvery mention of a person or company with a brain page MUST create a back-link\nFROM that entity's page TO the page mentioning them. An unlinked mention is a\nbroken brain. See `skills\u002F_brain-filing-rules.md` for format.\n\n## Citation Requirements (MANDATORY)\n\nEvery fact written to a brain page must carry an inline `[Source: ...]` citation.\n\n- **User's statements:** `[Source: User, {context}, YYYY-MM-DD]`\n- **Meeting data:** `[Source: Meeting \"{title}\", YYYY-MM-DD]`\n- **Email\u002Fmessage:** `[Source: email from {name} re: {subject}, YYYY-MM-DD]`\n- **Web content:** `[Source: {publication}, {URL}, YYYY-MM-DD]`\n- **Social media:** `[Source: X\u002F@handle, YYYY-MM-DD](URL)` (include link)\n- **Synthesis:** `[Source: compiled from {sources}]`\n\n## Phases\n\n> **Router note:** This skill is a router. For specialized ingestion, see: idea-ingest, media-ingest, meeting-ingestion.\n\n1. **Parse the source.** Extract people, companies, dates, and events from the input.\n2. **For each entity mentioned:**\n   - Read the entity's page from gbrain to check if it exists\n   - If exists: update compiled_truth (rewrite State section with new info, don't append)\n   - If new: check notability gate, then store the page in gbrain with the appropriate type and slug\n3. **Append to timeline.** Add a timeline entry in gbrain for each event, with date, summary, and source citation.\n4. **Create cross-reference links.** Link entities in gbrain for every entity pair mentioned together, using the appropriate relationship type.\n5. **Back-link all entities.** Update EVERY mentioned entity's page with a back-link to this page (Iron Law).\n6. **Timeline merge.** The same event appears on ALL mentioned entities' timelines. If Alice met Bob at Acme Corp, the event goes on Alice's page, Bob's page, and Acme Corp's page.\n\n## Entity Detection on Every Message\n\nProduction agents should detect entity mentions on EVERY inbound message. This is\nthe signal detection loop that makes the brain compound over time.\n\n### Protocol\n\n1. **Scan the message** for entity mentions: people, companies, concepts, original\n   thinking. Fire on every message (no exceptions unless purely operational).\n2. **For each entity detected:**\n   - `gbrain search \"name\"` -- does a page already exist?\n   - **If yes:** load context with `gbrain get \u003Cslug>`. Use the compiled truth to\n     inform your response. Update the page if the message contains new information.\n   - **If no:** assess notability (see `skills\u002F_brain-filing-rules.md`). If the entity\n     is worth tracking, create a new page with `gbrain put \u003Ctype\u002Fslug>` and populate\n     with what you know.\n3. **After creating or updating pages:** sync to gbrain:\n   ```bash\n   gbrain sync --no-pull --no-embed\n   ```\n4. **Don't block the conversation.** Entity detection and enrichment should happen\n   alongside the response, not before it. The user shouldn't wait for brain writes\n   to get an answer.\n\n### What counts as notable\n\n- People the user interacts with or discusses (not random mentions)\n- Companies relevant to the user's work or interests\n- Concepts or frameworks the user references or creates\n- The user's own original thinking (ideas, theses, observations) -- highest value\n- See `skills\u002F_brain-filing-rules.md` for the full notability gate\n\n### What to capture from the user's own thinking\n\nOriginal thinking is the most valuable signal. Capture exact phrasing -- the user's\nlanguage IS the insight. Don't paraphrase.\n\n- Novel observations or theses\n- Frameworks, mental models, heuristics\n- Connections between ideas that others miss\n- Contrarian positions with reasoning\n- Strong reactions to external stimuli (what triggered it and why)\n\n## Media Workflows\n\nContent the user encounters should be captured in the brain. File by PRIMARY\nSUBJECT, not by format (see `skills\u002F_brain-filing-rules.md`).\n\n### Articles & Web Content\n\n**Input:** URL shared by user, or article mentioned in conversation.\n\n**Process:**\n1. Fetch content (`web_fetch` or equivalent)\n2. Extract: title, author, publication, date, full text\n3. Summarize: executive summary + key arguments (not a rehash)\n4. Extract entities: people, companies, concepts mentioned\n5. **Save raw source** for provenance (see Raw Source Preservation below)\n6. Analyze for the user: don't just summarize. What's interesting given what you\n   know about them? Flag connections, contradictions, content opportunities.\n\n**Write to:** appropriate directory per filing rules (about a person -> `people\u002F`,\nabout a company -> `companies\u002F`, reusable framework -> `concepts\u002F`, raw data -> `sources\u002F`)\n\n### Videos & Podcasts\n\n**Input:** URL (YouTube, podcast, etc.) or local audio\u002Fvideo file.\n\n**Process:**\n1. Get transcript -- speaker-diarized if possible (services like Diarize.io provide\n   speaker-labeled, word-level timing)\n2. **Save raw transcript** (both JSON and human-readable TXT)\n3. Analyze: executive summary, key ideas, key quotes with speaker attribution,\n   notable stories\u002Fanecdotes, people and companies mentioned\n4. Extract and cross-reference all entities mentioned\n5. **HARD RULE:** every video\u002Fpodcast brain page MUST link to the raw diarized\n   transcript. A page without transcript links is incomplete.\n\n**Write to:** `media\u002Fvideos\u002F` or `media\u002Fpodcasts\u002F` with back-links to all entities.\n\n**Quality bar:**\n- Compelling headline (not \"This video discusses...\")\n- Executive summary that makes you want to watch\u002Flisten\n- Key Ideas as actual insights, not topic labels\n- Verbatim quotes with real speaker names (not \"speaker_0\")\n- All entities extracted with context and back-linked\n\n### PDFs & Documents\n\n**Input:** File path or URL.\n\n**Process:**\n1. Extract text (OCR if scanned\u002Fimage PDF)\n2. **Save raw source** for provenance\n3. Summarize: executive summary + key sections + notable data\n4. Extract entities\n5. Cross-reference from entity pages\n\n**Write to:** per filing rules (file by primary subject, not format).\n\n### Screenshots & Images\n\n**Input:** Image file.\n\n**Process:**\n1. Analyze content (OCR for text-heavy images, description for photos)\n2. If tweet screenshot: extract text, author, date, route to social media workflow\n3. If article screenshot: extract text, route to article workflow\n4. If data\u002Fchart: extract data points, describe findings\n\n**Write to:** depends on content -- route to the appropriate workflow above.\n\n### Meeting Transcripts\n\n**Input:** Transcript from meeting recording service, or manual notes.\n\n**Process:**\n1. Pull full transcript (source of truth -- AI summaries are medium-low trust)\n2. **Save raw transcript** for provenance\n3. Write meeting page with YOUR analysis above the line, raw transcript below\n4. **Entity propagation (MANDATORY):** for each attendee and company discussed:\n   - Update their brain page State section if new info surfaced\n   - Append to their Timeline with link to the meeting page\n   - Create page if person\u002Fcompany is notable and has no page yet\n5. A meeting is NOT fully ingested until all entity pages are updated\n\n**Write to:** `meetings\u002FYYYY-MM-DD-short-description.md`\n\n**What makes a good meeting page:**\n- Reveals the real crux, not a bullet dump\n- Connects to existing brain pages (people, companies, deals)\n- Flags what changed (status, decisions, new info)\n- Names tension or what was left unsaid\n- Captures actual dynamic, not performative summary\n\n### Social Media Content\n\n**Input:** Tweet, thread, or social media post.\n\n**Process:**\n1. Fetch full content (thread, quote tweets, context)\n2. If images present: OCR via vision model for full text extraction\n3. Summarize: what's being said, why it matters, who's involved\n4. Extract entities and update brain pages\n5. Include direct link to the original post (MANDATORY for citations)\n\n**Write to:** `media\u002Fx\u002F` for daily aggregation, or entity-specific directories\nif the post is primarily about a person\u002Fcompany.\n\n## Raw Source Preservation\n\nEvery ingested item must have its raw source preserved for provenance.\n\n**Use `gbrain files upload-raw` for automatic size routing:**\n```bash\ngbrain files upload-raw \u003Cfile> --page \u003Cpage-slug> --type \u003Ctype>\n```\n\n- **\u003C 100 MB text\u002FPDF**: stays in git (brain repo `.raw\u002F` sidecar directories)\n- **>= 100 MB OR media** (video, audio, images): uploaded to cloud storage\n  via TUS resumable upload, `.redirect.yaml` pointer left in the brain repo\n\nThe `.redirect.yaml` pointer format:\n```yaml\ntarget: supabase:\u002F\u002Fbrain-files\u002Fpage-slug\u002Ffilename.mp4\nbucket: brain-files\nstorage_path: page-slug\u002Ffilename.mp4\nsize: 524288000\nsize_human: 500 MB\nhash: sha256:abc123...\nmime: video\u002Fmp4\nuploaded: 2026-04-11T...\ntype: transcript\n```\n\n**Accessing stored files:**\n- `gbrain files signed-url \u003Cstorage-path>` -- generate 1-hour signed URL for viewing\u002Fsharing\n- `gbrain files restore \u003Cdir>` -- download back to local from cloud storage\n\nUse `put_raw_data` in gbrain to store raw API responses and metadata (JSON, not binary).\n\n## Test Before Bulk\n\nWhen processing multiple items (batch video ingestion, bulk meeting processing, etc.):\n\n1. **Test on 3-5 items first.** Run in test mode if available.\n2. **Read the actual output.** Is the quality good? Are titles compelling (not\n   \"This video discusses...\")? Are entities extracted and back-linked? Is the\n   format clean?\n3. **Fix what's wrong** in the approach\u002Fskill, not via one-off patches.\n4. **Only then: bulk execute** with throttling, commits every 5-10 items.\n\nThe marginal cost of testing 3 items first is near zero. The cost of cleaning\nup 100 bad pages is enormous.\n\n## Quality Rules\n\n- Executive summary in compiled_truth must be updated, not just timeline appended\n- State section is REWRITTEN, not appended to. Current best understanding only.\n- Timeline entries are reverse-chronological (newest first)\n- Every person\u002Fcompany mentioned gets a page if notable (see filing rules)\n- Link types: knows, works_at, invested_in, founded, met_at, discussed\n- Source attribution: every timeline entry includes [Source: ...] citation\n- Back-links: every entity mention creates a back-link (Iron Law)\n- Filing: file by primary subject, not format or source (see filing rules)\n\n## Anti-Patterns\n\n- **Appending to State sections.** State is rewritten with the current best understanding on every update. Append-only State sections grow stale and contradictory.\n- **Ingesting without back-links.** An unlinked mention is a broken brain. Every entity mentioned must have a back-link from their page to the page mentioning them.\n- **Skipping raw source preservation.** Every ingested item must have its raw source preserved. A brain page without provenance is unverifiable.\n- **Bulk processing without sample test.** Test on 3-5 items first. Fix quality issues in the approach, not via one-off patches.\n- **Paraphrasing the user's original thinking.** The user's exact language IS the insight. Capture verbatim phrasing for ideas, theses, and frameworks.\n\n## Output Format\n\n```\nINGESTED: [title]\n==================\n\nPage: [slug]\nType: [person \u002F company \u002F meeting \u002F media \u002F concept]\nSource: [source description]\n\nEntities detected: N\n- [entity] -> [created \u002F updated] ([slug])\n\nBack-links created: N\nTimeline entries: N\nRaw source: [preserved at path \u002F uploaded to cloud]\n```\n\n## Tools Used\n\n- Read a page from gbrain (get_page)\n- Store\u002Fupdate a page in gbrain (put_page)\n- Add a timeline entry in gbrain (add_timeline_entry)\n- Link entities in gbrain (add_link)\n- List tags for a page (get_tags)\n- Tag a page in gbrain (add_tag)\n- Store raw data in gbrain (put_raw_data)\n- Check backlinks in gbrain (get_backlinks)\n","# Ingest Skill\n\nIngest meetings, articles, media, documents, and conversations into the brain.\n\n> **Filing rule:** Read `skills\u002F_brain-filing-rules.md` before creating any new page.\n\n## Contract\n\n- Every fact written to a brain page carries an inline `[Source: ...]` citation with date and provenance.\n- Every entity mention creates a back-link from the entity's page to the page mentioning them (Iron Law).\n- Raw sources are preserved for provenance via `gbrain files upload-raw` with automatic size routing.\n- State sections are rewritten with current best understanding, never appended to.\n- Entity detection fires on every inbound message; notable entities get pages or updates.\n\n> **Convention:** See `skills\u002Fconventions\u002Fquality.md` for Iron Law back-linking.\n\nEvery mention of a person or company with a brain page MUST create a back-link\nFROM that entity's page TO the page mentioning them. An unlinked mention is a\nbroken brain. See `skills\u002F_brain-filing-rules.md` for format.\n\n## Citation Requirements (MANDATORY)\n\nEvery fact written to a brain page must carry an inline `[Source: ...]` citation.\n\n- **User's statements:** `[Source: User, {context}, YYYY-MM-DD]`\n- **Meeting data:** `[Source: Meeting \"{title}\", YYYY-MM-DD]`\n- **Email\u002Fmessage:** `[Source: email from {name} re: {subject}, YYYY-MM-DD]`\n- **Web content:** `[Source: {publication}, {URL}, YYYY-MM-DD]`\n- **Social media:** `[Source: X\u002F@handle, YYYY-MM-DD](URL)` (include link)\n- **Synthesis:** `[Source: compiled from {sources}]`\n\n## Phases\n\n> **Router note:** This skill is a router. For specialized ingestion, see: idea-ingest, media-ingest, meeting-ingestion.\n\n1. **Parse the source.** Extract people, companies, dates, and events from the input.\n2. **For each entity mentioned:**\n   - Read the entity's page from gbrain to check if it exists\n   - If exists: update compiled_truth (rewrite State section with new info, don't append)\n   - If new: check notability gate, then store the page in gbrain with the appropriate type and slug\n3. **Append to timeline.** Add a timeline entry in gbrain for each event, with date, summary, and source citation.\n4. **Create cross-reference links.** Link entities in gbrain for every entity pair mentioned together, using the appropriate relationship type.\n5. **Back-link all entities.** Update EVERY mentioned entity's page with a back-link to this page (Iron Law).\n6. **Timeline merge.** The same event appears on ALL mentioned entities' timelines. If Alice met Bob at Acme Corp, the event goes on Alice's page, Bob's page, and Acme Corp's page.\n\n## Entity Detection on Every Message\n\nProduction agents should detect entity mentions on EVERY inbound message. This is\nthe signal detection loop that makes the brain compound over time.\n\n### Protocol\n\n1. **Scan the message** for entity mentions: people, companies, concepts, original\n   thinking. Fire on every message (no exceptions unless purely operational).\n2. **For each entity detected:**\n   - `gbrain search \"name\"` -- does a page already exist?\n   - **If yes:** load context with `gbrain get \u003Cslug>`. Use the compiled truth to\n     inform your response. Update the page if the message contains new information.\n   - **If no:** assess notability (see `skills\u002F_brain-filing-rules.md`). If the entity\n     is worth tracking, create a new page with `gbrain put \u003Ctype\u002Fslug>` and populate\n     with what you know.\n3. **After creating or updating pages:** sync to gbrain:\n   ```bash\n   gbrain sync --no-pull --no-embed\n   ```\n4. **Don't block the conversation.** Entity detection and enrichment should happen\n   alongside the response, not before it. The user shouldn't wait for brain writes\n   to get an answer.\n\n### What counts as notable\n\n- People the user interacts with or discusses (not random mentions)\n- Companies relevant to the user's work or interests\n- Concepts or frameworks the user references or creates\n- The user's own original thinking (ideas, theses, observations) -- highest value\n- See `skills\u002F_brain-filing-rules.md` for the full notability gate\n\n### What to capture from the user's own thinking\n\nOriginal thinking is the most valuable signal. Capture exact phrasing -- the user's\nlanguage IS the insight. Don't paraphrase.\n\n- Novel observations or theses\n- Frameworks, mental models, heuristics\n- Connections between ideas that others miss\n- Contrarian positions with reasoning\n- Strong reactions to external stimuli (what triggered it and why)\n\n## Media Workflows\n\nContent the user encounters should be captured in the brain. File by PRIMARY\nSUBJECT, not by format (see `skills\u002F_brain-filing-rules.md`).\n\n### Articles & Web Content\n\n**Input:** URL shared by user, or article mentioned in conversation.\n\n**Process:**\n1. Fetch content (`web_fetch` or equivalent)\n2. Extract: title, author, publication, date, full text\n3. Summarize: executive summary + key arguments (not a rehash)\n4. Extract entities: people, companies, concepts mentioned\n5. **Save raw source** for provenance (see Raw Source Preservation below)\n6. Analyze for the user: don't just summarize. What's interesting given what you\n   know about them? Flag connections, contradictions, content opportunities.\n\n**Write to:** appropriate directory per filing rules (about a person -> `people\u002F`,\nabout a company -> `companies\u002F`, reusable framework -> `concepts\u002F`, raw data -> `sources\u002F`)\n\n### Videos & Podcasts\n\n**Input:** URL (YouTube, podcast, etc.) or local audio\u002Fvideo file.\n\n**Process:**\n1. Get transcript -- speaker-diarized if possible (services like Diarize.io provide\n   speaker-labeled, word-level timing)\n2. **Save raw transcript** (both JSON and human-readable TXT)\n3. Analyze: executive summary, key ideas, key quotes with speaker attribution,\n   notable stories\u002Fanecdotes, people and companies mentioned\n4. Extract and cross-reference all entities mentioned\n5. **HARD RULE:** every video\u002Fpodcast brain page MUST link to the raw diarized\n   transcript. A page without transcript links is incomplete.\n\n**Write to:** `media\u002Fvideos\u002F` or `media\u002Fpodcasts\u002F` with back-links to all entities.\n\n**Quality bar:**\n- Compelling headline (not \"This video discusses...\")\n- Executive summary that makes you want to watch\u002Flisten\n- Key Ideas as actual insights, not topic labels\n- Verbatim quotes with real speaker names (not \"speaker_0\")\n- All entities extracted with context and back-linked\n\n### PDFs & Documents\n\n**Input:** File path or URL.\n\n**Process:**\n1. Extract text (OCR if scanned\u002Fimage PDF)\n2. **Save raw source** for provenance\n3. Summarize: executive summary + key sections + notable data\n4. Extract entities\n5. Cross-reference from entity pages\n\n**Write to:** per filing rules (file by primary subject, not format).\n\n### Screenshots & Images\n\n**Input:** Image file.\n\n**Process:**\n1. Analyze content (OCR for text-heavy images, description for photos)\n2. If tweet screenshot: extract text, author, date, route to social media workflow\n3. If article screenshot: extract text, route to article workflow\n4. If data\u002Fchart: extract data points, describe findings\n\n**Write to:** depends on content -- route to the appropriate workflow above.\n\n### Meeting Transcripts\n\n**Input:** Transcript from meeting recording service, or manual notes.\n\n**Process:**\n1. Pull full transcript (source of truth -- AI summaries are medium-low trust)\n2. **Save raw transcript** for provenance\n3. Write meeting page with YOUR analysis above the line, raw transcript below\n4. **Entity propagation (MANDATORY):** for each attendee and company discussed:\n   - Update their brain page State section if new info surfaced\n   - Append to their Timeline with link to the meeting page\n   - Create page if person\u002Fcompany is notable and has no page yet\n5. A meeting is NOT fully ingested until all entity pages are updated\n\n**Write to:** `meetings\u002FYYYY-MM-DD-short-description.md`\n\n**What makes a good meeting page:**\n- Reveals the real crux, not a bullet dump\n- Connects to existing brain pages (people, companies, deals)\n- Flags what changed (status, decisions, new info)\n- Names tension or what was left unsaid\n- Captures actual dynamic, not performative summary\n\n### Social Media Content\n\n**Input:** Tweet, thread, or social media post.\n\n**Process:**\n1. Fetch full content (thread, quote tweets, context)\n2. If images present: OCR via vision model for full text extraction\n3. Summarize: what's being said, why it matters, who's involved\n4. Extract entities and update brain pages\n5. Include direct link to the original post (MANDATORY for citations)\n\n**Write to:** `media\u002Fx\u002F` for daily aggregation, or entity-specific directories\nif the post is primarily about a person\u002Fcompany.\n\n## Raw Source Preservation\n\nEvery ingested item must have its raw source preserved for provenance.\n\n**Use `gbrain files upload-raw` for automatic size routing:**\n```bash\ngbrain files upload-raw \u003Cfile> --page \u003Cpage-slug> --type \u003Ctype>\n```\n\n- **\u003C 100 MB text\u002FPDF**: stays in git (brain repo `.raw\u002F` sidecar directories)\n- **>= 100 MB OR media** (video, audio, images): uploaded to cloud storage\n  via TUS resumable upload, `.redirect.yaml` pointer left in the brain repo\n\nThe `.redirect.yaml` pointer format:\n```yaml\ntarget: supabase:\u002F\u002Fbrain-files\u002Fpage-slug\u002Ffilename.mp4\nbucket: brain-files\nstorage_path: page-slug\u002Ffilename.mp4\nsize: 524288000\nsize_human: 500 MB\nhash: sha256:abc123...\nmime: video\u002Fmp4\nuploaded: 2026-04-11T...\ntype: transcript\n```\n\n**Accessing stored files:**\n- `gbrain files signed-url \u003Cstorage-path>` -- generate 1-hour signed URL for viewing\u002Fsharing\n- `gbrain files restore \u003Cdir>` -- download back to local from cloud storage\n\nUse `put_raw_data` in gbrain to store raw API responses and metadata (JSON, not binary).\n\n## Test Before Bulk\n\nWhen processing multiple items (batch video ingestion, bulk meeting processing, etc.):\n\n1. **Test on 3-5 items first.** Run in test mode if available.\n2. **Read the actual output.** Is the quality good? Are titles compelling (not\n   \"This video discusses...\")? Are entities extracted and back-linked? Is the\n   format clean?\n3. **Fix what's wrong** in the approach\u002Fskill, not via one-off patches.\n4. **Only then: bulk execute** with throttling, commits every 5-10 items.\n\nThe marginal cost of testing 3 items first is near zero. The cost of cleaning\nup 100 bad pages is enormous.\n\n## Quality Rules\n\n- Executive summary in compiled_truth must be updated, not just timeline appended\n- State section is REWRITTEN, not appended to. Current best understanding only.\n- Timeline entries are reverse-chronological (newest first)\n- Every person\u002Fcompany mentioned gets a page if notable (see filing rules)\n- Link types: knows, works_at, invested_in, founded, met_at, discussed\n- Source attribution: every timeline entry includes [Source: ...] citation\n- Back-links: every entity mention creates a back-link (Iron Law)\n- Filing: file by primary subject, not format or source (see filing rules)\n\n## Anti-Patterns\n\n- **Appending to State sections.** State is rewritten with the current best understanding on every update. Append-only State sections grow stale and contradictory.\n- **Ingesting without back-links.** An unlinked mention is a broken brain. Every entity mentioned must have a back-link from their page to the page mentioning them.\n- **Skipping raw source preservation.** Every ingested item must have its raw source preserved. A brain page without provenance is unverifiable.\n- **Bulk processing without sample test.** Test on 3-5 items first. Fix quality issues in the approach, not via one-off patches.\n- **Paraphrasing the user's original thinking.** The user's exact language IS the insight. Capture verbatim phrasing for ideas, theses, and frameworks.\n\n## Output Format\n\n```\nINGESTED: [title]\n==================\n\nPage: [slug]\nType: [person \u002F company \u002F meeting \u002F media \u002F concept]\nSource: [source description]\n\nEntities detected: N\n- [entity] -> [created \u002F updated] ([slug])\n\nBack-links created: N\nTimeline entries: N\nRaw source: [preserved at path \u002F uploaded to cloud]\n```\n\n## Tools Used\n\n- Read a page from gbrain (get_page)\n- Store\u002Fupdate a page in gbrain (put_page)\n- Add a timeline entry in gbrain (add_timeline_entry)\n- Link entities in gbrain (add_link)\n- List tags for a page (get_tags)\n- Tag a page in gbrain (add_tag)\n- Store raw data in gbrain (put_raw_data)\n- Check backlinks in gbrain (get_backlinks)\n",{"name":5,"tools":43,"mutating":49,"triggers":50,"writes_to":54,"description":7,"writes_pages":49},[34,44,45,46,47,48],"get_page","put_page","add_link","add_timeline_entry","sync_brain",true,[51,52,53],"ingest this","save this to brain","process this meeting",[55,56,57,58,59],"people\u002F","companies\u002F","concepts\u002F","meetings\u002F","sources\u002F","main","7850740bd837adb32f0a109ab2af82482196c6f2","skills\u002Fgbrain-ingest",1,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills","https:\u002F\u002Fzturnsgo.com","https:\u002F\u002Fgithub.com\u002Fshengdabai","https:\u002F\u002Fzturnsgo.com\u002F","AI × education creator — producer, not consumer. Taught 6,000+ learners; shipping learning tools & daily essays with Claude Code, practicing @xiaolai's way 🥋","2026-11-01 21:28:23",{"source":8,"skillName":5,"commands":71,"prompt":81,"zipAvailable":49},[72,75,78],{"tool":73,"command":74},"npx","npx skills add shengdabai\u002FTony-Claude-Code-Skills --skill ingest",{"tool":76,"command":77},"bunx","bunx skills add shengdabai\u002FTony-Claude-Code-Skills --skill ingest",{"tool":79,"command":80},"pnpm","pnpm dlx skills add shengdabai\u002FTony-Claude-Code-Skills --skill ingest","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fgbrain-ingest\u002FSKILL.md",[],[84,103,136,163,184,204],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":95,"publishedAt":38},"01M70P17DAD4C1C47NPH6A96EM","xiaolai-methodology","以李笑来(Li Xiaolai)的思考方式、方法论与表达风格,为用户做全方位 1-on-1 教练指导,覆盖创业、赚钱、投资、学习、自学、读书写作、用 AI、以及人生心态与自我管理。当用户提到 \"李笑来\"、\"笑来\"、\"笑来老师\"、\"扮演李笑来\"、\"找笑来聊聊\"、\"笑来怎么看\"、\"xiaolai\"、\"把时间当作朋友\"、\"通往财富自由之路\"、\"定投改变命运\"、\"韭菜的自我修养\"、\"自学是门手艺\"、\"让时间陪你慢慢变富\"、\"七年就是一辈子\"、\"元认知\"、\"活在未来\"、\"复利\u002F长期主义\"、\"践行\"、\"痴迷改进\"、\"个人商业模式\u002F出售时间\"、\"睡后收入\"、\"定投\"、\"财富自由\"、\"操作系统升级\"、\"最少必要知识\"、\"北极星提示词\"、\"用 AI 该怎么学\u002F思考\" 等任一触发词,或当用户带着关于创业\u002F赚钱\u002F投资\u002F学习\u002F职业\u002F重大人生决策的困惑、希望被人用笑来式的「逻辑 + 大白话 + 类比 + 重新定义 + 践行导向」来点醒和指导时,自动进入李笑来教练模式。","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fxiaolai-methodology\u002FSKILL.md",[90],{"categoryNo":91,"categoryName":92,"taxonomyType":93,"taxonomyTypeDesc":94},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",[96,97,98,99,100,101,102],"methodology","xiaolai","xiaolai methodology","朋友","投资","writing","收入",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":117,"publishedAt":38},"01M70P13NB9YP7ACJR1S861CDS","zread","Produce and consume a wiki-style knowledge base for a code repository via the `zread` CLI and its on-disk output under `.\u002F.zread\u002Fwiki\u002F`. Use this skill whenever the user wants to understand, onboard onto, explore, summarize, map, or get an overview of an unfamiliar codebase; asks for architecture docs, a project wiki, a repo walkthrough, module\u002Fpackage explanations, or \"what does this repo do\"; wants to generate, regenerate, resume, browse, or serve code documentation locally; or mentions zread \u002F zread.ai directly. Also use it proactively before diving into a large unknown repo — if `.\u002F.zread\u002Fwiki\u002Fcurrent` exists, read the generated pages instead of crawling source file-by-file; if it doesn't, consider offering to run `zread generate`. The trigger is the intent (understand a codebase through generated docs), not the literal word \"zread\".","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fzread\u002FSKILL.md",[109,112],{"categoryNo":110,"categoryName":111,"taxonomyType":93,"taxonomyTypeDesc":94},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":113,"categoryName":114,"taxonomyType":115,"taxonomyTypeDesc":116},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[105,118,119,120,121,122,35,123,124,125,126,127,128,129,130,131,132,133,134,135],"knowledge","wiki","explore","walkthrough","project","knowledge base","run","generate","intent","cli","map","documentation","project wiki","disk","architecture","code","unknown","generated",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":146,"publishedAt":38},"01M70P10S4SWMZQ8BJAFBFDRW3","youtube","Launch the YouTube Creator Agent to auto-generate videos.\nUse when: user types \u002Fyoutube, wants to create YouTube videos,\ngenerate video content, or upload to YouTube.\nKeywords: youtube, video, 视频, 创作视频, 发布视频","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube\u002FSKILL.md",[142,143],{"categoryNo":110,"categoryName":111,"taxonomyType":93,"taxonomyTypeDesc":94},{"categoryNo":144,"categoryName":145,"taxonomyType":115,"taxonomyTypeDesc":116},"01JBSEEDCAT000000000000036","内容创作者",[138,147,148,149,150,151,152,153,125,154,155,156,157,158,159,160,161,162],"user","content","视频","creator","generate video","videos","launch","video content","create","upload","when","use","auto","types","Video","创作",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":170,"publishedAt":38},"01M70P0YE95D8BACZCGV8BK90K","youtube-script-sync","Sync, update, or optimize Tony's GetNote knowledge base `Youtube视频逐字稿` by turning each parent recording or first-person idea note into an idempotent child note containing a directly recordable YouTube long-video or Shorts script. Use when the user says “更新\u002F同步\u002F优化 Youtube视频逐字稿知识库”, or says “更新\u002F同步\u002F优化该知识库” while this knowledge base is the active context.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube-script-sync\u002FSKILL.md",[169],{"categoryNo":110,"categoryName":111,"taxonomyType":93,"taxonomyTypeDesc":94},[29,171,138,172,173,161,174,175,176,177,178,179,180,181,123,182,157,158,118,183],"script","youtube script sync","recording","shorts","first","base","person","update","active","child","optimize","idempotent","long",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":194,"publishedAt":38},"01M70P0WMV5XT0EEC0N445PW07","writing-skills","How to write SKILL.md files that trigger reliably and teach effectively. Use when creating, improving, or reviewing Claude Code skills.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-skills\u002FSKILL.md",[190,191,192,193],{"categoryNo":91,"categoryName":92,"taxonomyType":93,"taxonomyTypeDesc":94},{"categoryNo":110,"categoryName":111,"taxonomyType":93,"taxonomyTypeDesc":94},{"categoryNo":113,"categoryName":114,"taxonomyType":115,"taxonomyTypeDesc":116},{"categoryNo":144,"categoryName":145,"taxonomyType":115,"taxonomyTypeDesc":116},[195,101,196,197,198,199,133,157,158,200,201,202,203],"writing skills","how","teach","write skill","write","claude code skills","files","how to","trigger",{"skillNo":205,"name":206,"nameZh":6,"description":207,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":208,"categories":209,"keywords":212,"publishedAt":38},"01M70P0SJFR4YVJQBGMHKGSKXT","writing-rules","How to write .claude\u002Frules\u002F files that Claude actually follows. Use when creating, improving, or reviewing project rules.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-rules\u002FSKILL.md",[210,211],{"categoryNo":91,"categoryName":92,"taxonomyType":93,"taxonomyTypeDesc":94},{"categoryNo":144,"categoryName":145,"taxonomyType":115,"taxonomyTypeDesc":116},[213,101,214,122,215,201,157,196,199,158,202],"Rules","writing rules","project rules"]