[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6R2ZVR3H25SD8C24HBEWFCC":3,"skill-same:01M6R2ZVR3H25SD8C24HBEWFCC":79},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":60,"commitSha":61,"skillDirectory":62,"forksCount":13,"repositoryHtmlUrl":63,"repositoryHomepageUrl":6,"ownerHtmlUrl":64,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":65,"install":66,"resources":78},"01M6R2ZVR3H25SD8C24HBEWFCC","ingest",null,"Route content to specialized ingestion skills. Detects input type and delegates.","sixtycat2000-ctrl\u002Fgbrain-qmd","sixtycat2000-ctrl","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F263121306?v=4","01M6R2SPVP79P6Y6CC3HW4Y6GD","01M6R2SQ2MJXN4VVXWT7NQW9DD",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsixtycat2000-ctrl\u002Fgbrain-qmd\u002Fblob\u002Fmaster\u002Fskills\u002Fingest\u002FSKILL.md",[],[5,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"get","delegates","true","concepts","people","add","sources","input","type","brain","sync","route","ingestion","process","meetings","specialized","page","save","search","2026-11-10 10:12:30",false,"---\nname: ingest\nversion: 1.0.0\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 local file storage (QMD: files stored alongside brain data, not cloud upload).\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? (QMD: uses local search index)\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 (local file storage in QMD data directory)\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, stored locally)\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 (local file storage)\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 (local file storage)\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**QMD adaptation:** In gbrain-qmd, raw files are stored locally alongside brain data\nrather than uploaded to cloud storage. Use local file paths for provenance. Large\nmedia files remain in their original location with a reference path stored in the\nbrain page metadata.\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> **Convention:** See `skills\u002Fconventions\u002Ftest-before-bulk.md` for the full protocol.\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> **Filing rule:** See `skills\u002F_brain-filing-rules.md` for the complete filing rules reference.\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 local path]\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 local file storage (QMD: files stored alongside brain data, not cloud upload).\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? (QMD: uses local search index)\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 (local file storage in QMD data directory)\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, stored locally)\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 (local file storage)\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 (local file storage)\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**QMD adaptation:** In gbrain-qmd, raw files are stored locally alongside brain data\nrather than uploaded to cloud storage. Use local file paths for provenance. Large\nmedia files remain in their original location with a reference path stored in the\nbrain page metadata.\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> **Convention:** See `skills\u002Fconventions\u002Ftest-before-bulk.md` for the full protocol.\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> **Filing rule:** See `skills\u002F_brain-filing-rules.md` for the complete filing rules reference.\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 local path]\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":42,"version":48,"mutating":49,"triggers":50,"writes_to":54,"description":7,"writes_pages":49},[36,43,44,45,46,47],"get_page","put_page","add_link","add_timeline_entry","sync_brain","1.0.0",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","master","48f3da67113808a35b3721091cc58290a8c49ab4","skills\u002Fingest","https:\u002F\u002Fgithub.com\u002Fsixtycat2000-ctrl\u002Fgbrain-qmd","https:\u002F\u002Fgithub.com\u002Fsixtycat2000-ctrl","2026-04-26 19:27:01",{"source":8,"skillName":5,"commands":67,"prompt":77,"zipAvailable":49},[68,71,74],{"tool":69,"command":70},"npx","npx skills add sixtycat2000-ctrl\u002Fgbrain-qmd --skill ingest",{"tool":72,"command":73},"bunx","bunx skills add sixtycat2000-ctrl\u002Fgbrain-qmd --skill ingest",{"tool":75,"command":76},"pnpm","pnpm dlx skills add sixtycat2000-ctrl\u002Fgbrain-qmd --skill ingest","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsixtycat2000-ctrl\u002Fgbrain-qmd\u002Fblob\u002Fmaster\u002Fskills\u002Fingest\u002FSKILL.md",[],[80,102,139,163,186,209],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":37},"01M6R33ZFP10GVGJ7FX4GQWVK1","webhook-transforms","Generic framework for converting external events (SMS, meetings, social mentions)\ninto brain-ingestible signals. Define a transform function, register a webhook URL,\nand incoming events get processed through the brain pipeline.","https:\u002F\u002Fgithub.com\u002Fsixtycat2000-ctrl\u002Fgbrain-qmd\u002Fblob\u002Fmaster\u002Fskills\u002Fwebhook-transforms\u002FSKILL.md",[],[87,88,89,36,90,91,34,32,92,93,94,18,95,96,97,98,99,20,100,101],"webhook","transforms","webhook transforms","pipeline","SET","up","social","signals","define","register","sms","event","URL","for","generic",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":121,"publishedAt":37},"01M6R33SCJAHZHG7HRN0JF29AB","testing","Skill validation framework. Validates every skill has SKILL.md with frontmatter,\nevery reference exists, every env var is declared. The testing contract for the\nskill system itself.","https:\u002F\u002Fgithub.com\u002Fsixtycat2000-ctrl\u002Fgbrain-qmd\u002Fblob\u002Fmaster\u002Fskills\u002Ftesting\u002FSKILL.md",[108,113,116],{"categoryNo":109,"categoryName":110,"taxonomyType":111,"taxonomyTypeDesc":112},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":114,"categoryName":115,"taxonomyType":111,"taxonomyTypeDesc":112},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":117,"categoryName":118,"taxonomyType":119,"taxonomyTypeDesc":120},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[104,122,123,124,36,125,126,127,128,129,130,131,132,133,134,135,136,137,138,100],"test","run","validation","health","system","check","health check","skill validation","validate skills","contract","tests","skill health","pages","env","false","test skills","with",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":146,"publishedAt":37},"01M6R33DCE6RSA4YRCJ5H787E3","soul-audit","6-phase interactive interview that generates the agent's identity (SOUL.md),\nuser profile (USER.md), access control (ACCESS_POLICY.md), and operational\ncadence (HEARTBEAT.md). Re-runnable anytime to update any section.","https:\u002F\u002Fgithub.com\u002Fsixtycat2000-ctrl\u002Fgbrain-qmd\u002Fblob\u002Fmaster\u002Fskills\u002Fsoul-audit\u002FSKILL.md",[145],{"categoryNo":114,"categoryName":115,"taxonomyType":111,"taxonomyTypeDesc":112},[147,148,149,150,151,91,152,34,153,154,92,155,156,157,158,159,160,20,161,162],"audit","soul","soul audit","policy","customize","access","interactive","interview","personality","Access Control","cadence","SOUL.md","re","my agent","section","phase",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":170,"publishedAt":37},"01M6R338GVZ1B8RCTWCEBG3SFS","smoke-test","Post-restart smoke tests + auto-fix for gbrain and OpenClaw environments.\nTests critical services, auto-fixes known issues, extensible via user-defined\ntest scripts in ~\u002F.gbrain\u002Fsmoke-tests.d\u002F*.sh.","https:\u002F\u002Fgithub.com\u002Fsixtycat2000-ctrl\u002Fgbrain-qmd\u002Fblob\u002Fmaster\u002Fskills\u002Fsmoke-test\u002FSKILL.md",[169],{"categoryNo":109,"categoryName":110,"taxonomyType":111,"taxonomyTypeDesc":112},[122,171,172,173,174,123,175,176,177,178,179,132,180,181,182,20,100,183,184,185],"smoke","smoke test","openclaw","run smoke tests","issues","read","fix","auto","restart","critical","scripts","environments","fixes","break","auto-fix",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":192,"publishedAt":37},"01M6R32XF94PR8S1G75S1FRZ94","skillpack-check","Run `gbrain skillpack-check` to produce an agent-readable JSON health report\nfor the gbrain install. Wraps `gbrain doctor` + `gbrain apply-migrations\n--list` so a host agent (your OpenClaw's morning-briefing, any OpenClaw cron)\ncan see at a glance whether the skillpack needs attention.\n\nUse when the user asks \"is gbrain healthy?\", when a cron fires a morning\ncheck, or proactively when something seems off (jobs not running, brain\nnot updating, autopilot silent).","https:\u002F\u002Fgithub.com\u002Fsixtycat2000-ctrl\u002Fgbrain-qmd\u002Fblob\u002Fmaster\u002Fskills\u002Fskillpack-check\u002FSKILL.md",[],[127,193,194,195,125,196,197,198,199,136,200,201,202,203,204,100,205,206,207,208],"skillpack check","doctor","produce","use","migrations","glance","attention","gbrain","host","healthy","briefing","can","apply","morning check","when","running",{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":213,"categories":214,"keywords":216,"publishedAt":37},"01M6R32RBQXAG40PM35VSA2Y8T","skillify","The meta skill. Turn any raw feature or script into a properly-skilled,\ntested, resolvable, evaled unit of agent-visible capability. Use when\nthe user says \"skillify this\", \"is this a skill?\", \"make this proper\",\nor after a new feature is built without the full skill infrastructure.\n\nPaired with `gbrain check-resolvable`, skillify gives a user-controllable\nequivalent of Hermes' auto-skill-creation: you build, skillify checks the\nchecklist, check-resolvable verifies nothing is orphaned. The human keeps\njudgment; the tooling keeps the checklist honest.","https:\u002F\u002Fgithub.com\u002Fsixtycat2000-ctrl\u002Fgbrain-qmd\u002Fblob\u002Fmaster\u002Fskills\u002Fskillify\u002FSKILL.md",[215],{"categoryNo":114,"categoryName":115,"taxonomyType":111,"taxonomyTypeDesc":112},[211,217,36,218,219,178,220,221,222,223,224,225,136,23,226,227,228,100,229,207],"infrastructure","Meta","list","evals","human","judgment","full","creation","feature","unit","make","you","capability"]