From second-brain
Ingests external sources (articles, gists, docs, URLs) into knowledge bank via interactive discussion: READ source, DISCUSS takeaways, CREATE wiki pages, INTEGRATE with existing KB. Triggers on 'ingest this' or 'add to KB'.
npx claudepluginhub sxhmilyoyo/sundayhao-plugins --plugin second-brainThis skill uses the workspace's default tool permissions.
Ingest external knowledge sources into the knowledge bank through an interactive workflow. Unlike session-recap (which extracts from Claude Code sessions), this skill handles standalone sources — articles, gists, design docs, PDFs, URLs, or any knowledge-bearing document.
Harvests knowledge from external sources like sibling repos, local directories, files, or web URLs into the project's KB system with provenance tracking.
Ingests source files from raw/ into wiki: reads content, discusses takeaways, creates summary pages for sources/entities/concepts, updates index/log.
Ingests new sources (papers, articles, URLs, files, transcripts) into a wiki: reads content, surfaces takeaways, writes summary pages, updates entities/concepts/index/log.
Share bugs, ideas, or general feedback.
Ingest external knowledge sources into the knowledge bank through an interactive workflow. Unlike session-recap (which extracts from Claude Code sessions), this skill handles standalone sources — articles, gists, design docs, PDFs, URLs, or any knowledge-bearing document.
Knowledge Bank Location: Read from ~/.claude/plugins/config/second-brain/config.json. Configure via skills/common/setup_kb_path.sh --configure.
Philosophy: A single source can touch multiple KB pages. The discussion between you and the user shapes what gets preserved — this is not a summarizer, it's a collaborative knowledge integration tool.
/second-brain:kb-ingestSkill({ skill: "second-brain:kb-ingest" })Provide a source path, URL, or indicate inline content:
/second-brain:kb-ingest /path/to/article.md
/second-brain:kb-ingest https://example.com/interesting-post
Read the source document:
For large sources (>100KB), apply the distillation guide — extract essentials, target 95% size reduction.
Identify:
Present key takeaways to the user and engage in interactive discussion:
projects/{project}/)The discussion itself generates insights beyond the raw source. Capture these.
Example:
Source: Article on event sourcing patterns
Summarize: "3 key takeaways: (1) events as source of truth, (2) projection
rebuilds from event stream, (3) snapshot optimization for large streams"
Propose: "This maps to a concept doc — fits under projects/cc/concepts/
since it's an architectural pattern we could apply to session management"
Ask: "Does this connect to any patterns you've seen in your codebase?
Should we emphasize the snapshot optimization angle?"
Generate KB document(s) incorporating both the source content AND discussion insights.
Templates: Use existing templates from session-recap/references/:
Cross-references: Run cross-reference discovery:
./skills/session-recap/scripts/search_cross_references.sh "keyword" [project]
Target 5-8 WikiLinks (lower than session-recap's 10-15 since standalone ingests have less cross-referencing context).
Frontmatter (MUST include):
---
title: Document Title
aliases: [Alt 1, Alt 2]
tags: [category, topic]
type: concept|component|best-practice
created: YYYY-MM-DD
modified: YYYY-MM-DD
project: {project}
source-type: article|document|url|gist
ingested-from: /path/to/source.md or https://url
---
Obsidian Syntax: When obsidian skills are available, MUST invoke /obsidian:obsidian-markdown before creating documents.
Updating existing docs: If the new knowledge connects to or supersedes existing KB pages, update them too — add cross-references, revise outdated claims, note where new data strengthens or challenges existing content. This follows the LLM Wiki principle that a single ingest can touch multiple pages.
After creating/updating documents:
source skills/common/generate_index.sh
generate_index "$KB_PATH"
source skills/common/obsidian_helpers.sh
append_kb_log "$KB_PATH" "ingest" "kb-ingest" "Ingested [source name]. Created: [docs]. Updated: [docs]"
./skills/session-recap/scripts/count_wikilinks.sh document.md 5
./skills/session-recap/scripts/validate_obsidian_syntax.sh document.md
For multiple sources: "Ingest all .md files in /path/to/folder/"
| Decision | Rationale |
|---|---|
| Interactive DISCUSS step | User's context and emphasis shape what gets preserved — not a blind summarizer |
| 5-8 WikiLinks (not 10-15) | Standalone ingests have less cross-referencing context than full session recaps |
| Reuse session-recap templates | No duplication — one set of templates for all KB documents |
| No daily log | Daily logs are session-recap's responsibility |
| No reflection gate | Reflections come from doing work, not reading about it |
| Can update existing pages | LLM Wiki principle — a single source can touch multiple wiki pages |
Ingest is complete when:
_meta/index.md regenerated_meta/log.md entry appended