Wiki Ingest for Obsidian
Turn files, URLs, and images into connected Obsidian knowledge pages.
The skill documents user confirmation, immutable raw sources, manifest-based idempotency, per-file locking, contradiction flags, and transport fallback. However, it can write broadly across the vault, fetch URLs, copy images, and use MCP/CLI transports, while sensitive-data handling, complete rollback, and end-to-end data-flow boundaries are not fully specified, so points are deducted.
Single-source, batch, URL, image, mode-routing, lock-retry, and skip-on-conflict procedures are detailed. Reliability is reduced because several scripts, tools, and referenced skills are not verified within the target file, ingest key paths lack dedicated tests, and failure reporting is not standardized or demonstrably diagnosable.
Triggers, file/URL/image/batch inputs, and expected outputs are reasonably clear, with explicit force, mode, and PARA boundaries. Points are deducted because Chinese-language behavior, output language, mainland-China reachability, and non-fit scenarios are not defined; URL and MCP workflows also depend on local or network environment.
The skill is well organized and includes version markers, methodology modes, concurrency, idempotency, limitations, and reference paths. Repository context supplies an MIT license, CI, and security policy, but the target skill lacks self-contained installation/dependency notes, FAQs, a changelog, and clearly assigned maintenance and update responsibility.
The documented flow covers reading, summaries, entity and concept pages, indexes, caches, logs, and contradiction handling, so the core filing task is plausible. The claimed 8–15 page output and direct usability are not verified by target-skill examples or execution evidence; quality depends on model judgment and may require substantial review, so points are deducted.
The repository includes real CI, frontmatter validation, and several script tests, providing limited auditability. The target ingest path has no dedicated test suite, fixed input/output fixtures, or independent corroboration, and this review performed no execution; the score is therefore capped by static calibration and remains limited.
- The skill performs persistent writes across multiple vault files; confirm the target vault, write scope, and backup/recovery plan before use.
- URL ingestion fetches remote content and image ingestion copies attachments; sensitive inputs should not be assumed safe, and network or MCP data flows should be made explicit.
- Core behavior depends on wiki-mode.py, wiki-lock.sh, detect-transport.sh, WebFetch, and several referenced files; missing or mismatched components may prevent reliable operation.
- Human review is advisable for generated entities, concepts, links, contradiction decisions, and source attribution, especially in batch mode.
What does this skill do, and when should you use it?
Wiki Ingest is the source-ingestion skill in claude-obsidian. It reads files, URLs, images, or batches, extracts entities and concepts, and creates or updates connected Obsidian Markdown pages. It also maintains cross-references, indexes, a recent-context cache, operation logs, and an ingestion manifest. It fits users who want Claude Code to continuously organize a local knowledge base while keeping the underlying data as plain Markdown.
Reads sources completely; fetches URLs with WebFetch and can optionally clean them with defuddle; processes image text, entities, concepts, diagrams, and visible data; routes source, entity, and concept pages according to the vault methodology mode; writes through the selected CLI, MCP, or filesystem transport; creates or updates source, entity, concept, domain, and index pages; updates wiki/overview.md, wiki/index.md, wiki/hot.md, and wiki/log.md; uses .raw/.manifest.json hashes to avoid unchanged reprocessing; acquires per-file locks with wiki-lock.sh before writes; and adds contradiction callouts when new information conflicts with existing pages.
- A researcher drops papers, articles, or course material into .raw/ and wants separate source, person, organization, and concept pages.
- A knowledge worker submits a web URL to Claude Code and wants it saved as Markdown and linked to an existing knowledge graph.
- A team batch-ingests multiple files and needs protection against concurrent writers overwriting the same page.
- An Obsidian user working in LYT, PARA, Zettelkasten, or Generic mode wants new pages routed according to the active filing method.
What are this skill's strengths and limitations?
- Supports files, URLs, images, and batch ingestion.
- Creates or updates source, entity, concept, and index pages in one workflow.
- Uses plain Obsidian Markdown, wikilinks, YAML frontmatter, and callouts.
- Includes manifest-based deduplication, methodology routing, per-file locks, logging, and contradiction markers.
- The body uses platform-specific conventions such as WebFetch, Read, Write/Edit, Bash, Claude Code sub-agents, and PostToolUse, so other clients require adaptation.
- Batch ingestion requires listing and confirming the files first, and 30+ sources may take significant time.
- The source provides no separate test evidence for wiki-ingest; the README only reports tests for the repository as a whole.
- URL, MCP, and some transport paths require external configuration; image ingestion requires access to the original image file.
How do you install this skill?
Install the repository containing the skill. Clone and initialize it with: git clone https://github.com/AgriciDaniel/claude-obsidian && cd claude-obsidian && bash bin/setup-vault.sh. Open the folder as an Obsidian vault, open Claude Code in the same folder, and enter /wiki. Alternatively, add the marketplace with claude plugin marketplace add AgriciDaniel/claude-obsidian, then install with claude plugin install claude-obsidian@agricidaniel-claude-obsidian.
How do you use this skill?
Place a file in .raw/ or use a Claude Code trigger such as “ingest [file]”, “add this to the wiki”, or “ingest this url”. For batches, use “ingest all of these”. File ingestion checks .raw/.manifest.json first; unchanged hashes are skipped unless the user requests force ingest or re-ingest. URL ingestion saves the fetched material under .raw/articles/ before continuing through the normal ingest flow.