Use this skill when ingesting raw source files into a wikillm knowledge base. Covers the full ingest pipeline: detecting unprocessed files, reading and extracting knowledge, writing wiki articles, cross-linking, updating indices, and committing. Use whenever processing files from raw/ into wiki/, whether triggered by a scheduled task or a manual request.
Full procedure for ingesting raw source files into the knowledge base.
/wikillm:obsidian-cli for search and graph operations when Obsidian is running. Fall back to Grep/Glob when it's not.Find unprocessed files:
wiki/_index/SOURCES.md to get the list of already-processed filenamesraw/ (excluding the raw/assets/ directory)raw/ not listed in SOURCES.md is newDecided during pre-scan (Phase 1d). Process yourself when the workload is light; dispatch ingest-worker subagents when parallelism pays off.
For each new file:
references/file-types.md for type-specific handlingpages parameter)/wikillm:obsidian-cli search or Grep)The orchestrator reads and analyzes all new sources before dispatching. This is where the intelligence lives.
1a. Inventory each source:
For each new file, determine:
references/file-types.md for handling notes)1b. Read current wiki state:
wiki/_index/SOURCES.md and wiki/_index/INDEX.md to know what already exists1c. Build concept assignment table:
1d. Decide dispatch strategy:
Use your judgement based on the inventory. The goal is: don't spawn subagents when the orchestrator can handle it faster itself.
This prevents duplicate articles and gives each worker clear boundaries.
Dispatch one ingest-worker subagent per source file, all in parallel, each with:
After ALL workers complete:
wiki/ for files with that source in frontmatter sources: field. Either re-run that single source sequentially, or accept partial results and log the gap.wiki/ for any articles created by multiple workers (same filename or near-identical titles). Merge if found.[partial]---