{"id":"b81bf919-cafe-4ca5-ad57-b275dfe18c20","shortId":"vhEVan","kind":"skill","title":"second-brain-ingest","tagline":"Process raw source documents into wiki pages. Use when the user adds files to raw/ and wants them ingested, says \"process this source\", \"ingest this article\", \"I added something to raw/\", or wants to incorporate new material into their knowledge base.","description":"# Second Brain — Ingest\n\nProcess raw source documents into structured, interlinked wiki pages.\n\n## Identify Sources to Process\n\nDetermine which files need ingestion:\n\n1. If the user specifies a file or files, use those\n2. If the user says \"process new sources\" or similar, detect unprocessed files:\n   - List all files in `raw/` (excluding `raw/assets/`)\n   - Read `wiki/log.md` and extract all previously ingested source filenames from `ingest` entries\n   - Any file in `raw/` not listed in the log is unprocessed\n3. If no unprocessed files are found, tell the user\n\n## Process Each Source\n\nFor each source file, follow this workflow:\n\n### 1. Read the source completely\n\nRead the entire file. If the file contains image references, note them — read the images separately if they contain important information.\n\n### 2. Discuss key takeaways with the user\n\nBefore writing anything, share the 3-5 most important takeaways from the source. Ask the user if they want to emphasize any particular aspects or skip any topics. Wait for confirmation before proceeding.\n\n### 3. Create source summary page\n\nCreate a new file in `wiki/sources/` named after the source (slugified). Include:\n\n    ---\n    tags: [relevant, tags]\n    sources: [original-filename.md]\n    created: YYYY-MM-DD\n    updated: YYYY-MM-DD\n    ---\n\n    # Source Title\n\n    **Source:** original-filename.md\n    **Date ingested:** YYYY-MM-DD\n    **Type:** article | paper | transcript | notes | etc.\n\n    ## Summary\n\n    Structured summary of the source content.\n\n    ## Key Claims\n\n    - Claim 1\n    - Claim 2\n    - ...\n\n    ## Entities Mentioned\n\n    - [[Entity Name]] — brief context\n    - ...\n\n    ## Concepts Covered\n\n    - [[Concept Name]] — brief context\n    - ...\n\n### 4. Update entity and concept pages\n\nFor each entity (person, organization, product, tool) and concept (idea, framework, theory, pattern) mentioned in the source:\n\n**If a wiki page already exists:**\n- Read the existing page\n- Add new information from this source\n- Add the source to the `sources:` frontmatter list\n- Update the `updated:` date\n- Note any contradictions with existing content, citing both sources\n\n**If no wiki page exists:**\n- Create a new page in the appropriate subdirectory:\n  - `wiki/entities/` for people, organizations, products, tools\n  - `wiki/concepts/` for ideas, frameworks, theories, patterns\n- Include YAML frontmatter with tags, sources, created, and updated fields\n- Write a focused summary based on what this source says about the topic\n\n### 5. Add wikilinks\n\nEnsure all related pages link to each other using `[[wikilink]]` syntax. Every mention of an entity or concept that has its own page should be linked.\n\n### 6. Update wiki/index.md\n\nFor each new page created, add an entry under the appropriate category header:\n\n    - [[Page Name]] — one-line summary (under 120 characters)\n\n### 7. Update wiki/log.md\n\nAppend:\n\n    ## [YYYY-MM-DD] ingest | Source Title\n    Processed source-filename.md. Created N new pages, updated M existing pages.\n    New entities: [[Entity1]], [[Entity2]]. New concepts: [[Concept1]].\n\n### 8. Report results\n\nTell the user what was done:\n- Pages created (with links)\n- Pages updated (with what changed)\n- New entities and concepts identified\n- Any contradictions found with existing content\n\n## Conventions\n\n- Source summary pages are **factual only**. Save interpretation and synthesis for concept and synthesis pages.\n- A single source typically touches **10-15 wiki pages**. This is normal and expected.\n- When new information contradicts existing wiki content, **update the wiki page and note the contradiction** with both sources cited.\n- **Prefer updating existing pages** over creating new ones. Only create a new page when the topic is distinct enough to warrant its own page.\n- Use `[[wikilinks]]` for all internal references. Never use raw file paths.\n\n## What's Next\n\nAfter ingesting sources, the user can:\n- **Ask questions** with `/second-brain-query` to explore what was ingested\n- **Ingest more sources** — clip another article and run `/second-brain-ingest` again\n- **Health-check** with `/second-brain-lint` after every 10 ingests to catch gaps","tags":["second","brain","ingest","nicholasspisak","agent-skills","knowledge-base","llm","markdown","obsidian","personal-wiki","second-brain"],"capabilities":["skill","source-nicholasspisak","skill-second-brain-ingest","topic-agent-skills","topic-knowledge-base","topic-llm","topic-markdown","topic-obsidian","topic-personal-wiki","topic-second-brain"],"categories":["second-brain"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/NicholasSpisak/second-brain/second-brain-ingest","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add NicholasSpisak/second-brain","source_repo":"https://github.com/NicholasSpisak/second-brain","install_from":"skills.sh"}},"qualityScore":"0.581","qualityRationale":"deterministic score 0.58 from registry signals: · indexed on github topic:agent-skills · 261 github stars · SKILL.md body (4,156 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T18:54:08.712Z","embedding":null,"createdAt":"2026-04-18T22:05:28.607Z","updatedAt":"2026-05-02T18:54:08.712Z","lastSeenAt":"2026-05-02T18:54:08.712Z","tsv":"'-15':521 '-5':180 '/second-brain-ingest':609 '/second-brain-lint':615 '/second-brain-query':595 '1':67,141,265 '10':520,618 '120':440 '2':78,167,267 '3':121,179,207 '4':280 '5':388 '6':417 '7':442 '8':470 'ad':32 'add':16,313,319,389,425 'alreadi':307 'anoth':605 'anyth':176 'append':445 'appropri':351,430 'articl':30,250,606 'ask':187,592 'aspect':197 'base':45,379 'brain':3,47 'brief':272,278 'catch':621 'categori':431 'chang':487 'charact':441 'check':613 'cite':337,547 'claim':263,264,266 'clip':604 'complet':145 'concept':274,276,284,294,408,468,491,511 'concept1':469 'confirm':204 'contain':153,164 'content':261,336,498,535 'context':273,279 'contradict':333,494,532,543 'convent':499 'cover':275 'creat':208,212,229,345,371,424,455,480,553,557 'date':243,330 'dd':233,238,248,449 'detect':88 'determin':62 'discuss':168 'distinct':565 'document':8,52 'done':478 'emphas':194 'enough':566 'ensur':391 'entir':148 'entiti':268,270,282,288,406,464,489 'entity1':465 'entity2':466 'entri':109,427 'etc':254 'everi':402,617 'exclud':96 'exist':308,311,335,344,461,497,533,550 'expect':528 'explor':597 'extract':101 'factual':504 'field':374 'file':17,64,73,75,90,93,111,125,137,149,152,215,581 'filenam':106 'focus':377 'follow':138 'found':127,495 'framework':296,362 'frontmatt':325,367 'gap':622 'header':432 'health':612 'health-check':611 'idea':295,361 'identifi':58,492 'imag':154,160 'import':165,182 'includ':223,365 'incorpor':39 'inform':166,315,531 'ingest':4,23,28,48,66,104,108,244,450,587,600,601,619 'interlink':55 'intern':576 'interpret':507 'key':169,262 'knowledg':44 'line':437 'link':395,416,482 'list':91,115,326 'log':118 'm':460 'materi':41 'mention':269,299,403 'mm':232,237,247,448 'n':456 'name':218,271,277,434 'need':65 'never':578 'new':40,84,214,314,347,422,457,463,467,488,530,554,559 'next':585 'normal':526 'note':156,253,331,541 'one':436,555 'one-lin':435 'organ':290,356 'original-filename.md':228,242 'page':11,57,211,285,306,312,343,348,394,413,423,433,458,462,479,483,502,514,523,539,551,560,571 'paper':251 'particular':196 'path':582 'pattern':298,364 'peopl':355 'person':289 'prefer':548 'previous':103 'proceed':206 'process':5,25,49,61,83,131,453 'product':291,357 'question':593 'raw':6,19,35,50,95,113,580 'raw/assets':97 'read':98,142,146,158,309 'refer':155,577 'relat':393 'relev':225 'report':471 'result':472 'run':608 'save':506 'say':24,82,384 'second':2,46 'second-brain-ingest':1 'separ':161 'share':177 'similar':87 'singl':516 'skill' 'skill-second-brain-ingest' 'skip':199 'slugifi':222 'someth':33 'sourc':7,27,51,59,85,105,133,136,144,186,209,221,227,239,241,260,302,318,321,324,339,370,383,451,500,517,546,588,603 'source-filename.md':454 'source-nicholasspisak' 'specifi':71 'structur':54,256 'subdirectori':352 'summari':210,255,257,378,438,501 'syntax':401 'synthesi':509,513 'tag':224,226,369 'takeaway':170,183 'tell':128,473 'theori':297,363 'titl':240,452 'tool':292,358 'topic':201,387,563 'topic-agent-skills' 'topic-knowledge-base' 'topic-llm' 'topic-markdown' 'topic-obsidian' 'topic-personal-wiki' 'topic-second-brain' 'touch':519 'transcript':252 'type':249 'typic':518 'unprocess':89,120,124 'updat':234,281,327,329,373,418,443,459,484,536,549 'use':12,76,399,572,579 'user':15,70,81,130,173,189,475,590 'wait':202 'want':21,37,192 'warrant':568 'wiki':10,56,305,342,522,534,538 'wiki/concepts':359 'wiki/entities':353 'wiki/index.md':419 'wiki/log.md':99,444 'wiki/sources':217 'wikilink':390,400,573 'workflow':140 'write':175,375 'yaml':366 'yyyi':231,236,246,447 'yyyy-mm-dd':230,235,245,446","prices":[{"id":"a71e8aac-9b20-4160-8882-532eaa89b6ae","listingId":"b81bf919-cafe-4ca5-ad57-b275dfe18c20","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"NicholasSpisak","category":"second-brain","install_from":"skills.sh"},"createdAt":"2026-04-18T22:05:28.607Z"}],"sources":[{"listingId":"b81bf919-cafe-4ca5-ad57-b275dfe18c20","source":"github","sourceId":"NicholasSpisak/second-brain/second-brain-ingest","sourceUrl":"https://github.com/NicholasSpisak/second-brain/tree/main/skills/second-brain-ingest","isPrimary":false,"firstSeenAt":"2026-04-18T22:05:28.607Z","lastSeenAt":"2026-05-02T18:54:08.712Z"}],"details":{"listingId":"b81bf919-cafe-4ca5-ad57-b275dfe18c20","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"NicholasSpisak","slug":"second-brain-ingest","github":{"repo":"NicholasSpisak/second-brain","stars":261,"topics":["agent-skills","ai","knowledge-base","llm","markdown","obsidian","personal-wiki","second-brain"],"license":null,"html_url":"https://github.com/NicholasSpisak/second-brain","pushed_at":"2026-04-07T03:16:20Z","description":"LLM-maintained personal knowledge base for Obsidian. Based on Andrej Karpathy's LLM Wiki pattern.","skill_md_sha":"f90f49bb4d5f71b71bd9dd3f49853e097b08eeae","skill_md_path":"skills/second-brain-ingest/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/NicholasSpisak/second-brain/tree/main/skills/second-brain-ingest"},"layout":"multi","source":"github","category":"second-brain","frontmatter":{"name":"second-brain-ingest","description":"Process raw source documents into wiki pages. Use when the user adds files to raw/ and wants them ingested, says \"process this source\", \"ingest this article\", \"I added something to raw/\", or wants to incorporate new material into their knowledge base."},"skills_sh_url":"https://skills.sh/NicholasSpisak/second-brain/second-brain-ingest"},"updatedAt":"2026-05-02T18:54:08.712Z"}}