From wikillm
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.
How this skill is triggered — by the user, by Claude, or both
Slash command
/wikillm:ingestThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Full procedure for ingesting raw source files into the knowledge base.
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]---
created: YYYY-MM-DD
updated: YYYY-MM-DD
tags: [tag1, tag2]
sources: [raw/filename.ext]
---
# Article Title
Brief summary (2-3 sentences).
## Content
Main content organized with headers.
## Related
- [[Related Article 1]]
- [[Related Article 2]]
## Sources
- `raw/source-file.md` — what was drawn from this source
Required fields: created, updated, tags, sources. All wiki articles must have these.
When a source contains a counter-intuitive fact, a field named differently from convention, or a claim contradicted elsewhere, emit an explicit warning callout block in the compiled article. Don't bury these in prose — a future query session needs to hit them on a skim, not infer them from careful reading.
Good pattern (lifted from a real Tavily Map article):
## Response Shape
**IMPORTANT — `results`, not `urls`:** The response uses `results` for the URL array, not `urls`. This has caused bugs in multiple implementations. Do not assume the field is named `urls`.
```json
{ "results": ["https://..."] }
```
Then optionally pair it with a code contrast showing right vs wrong:
```typescript
// Correct
const urls: string[] = response.results;
// Wrong — this field does not exist
const urls = response.urls; // undefined
```
When to emit one:
results instead of the expected urls; failed_results returned alongside results without throwing).[unverified], and link both.CLAUDE.md explicitly lists a gotcha for this topic — lift it into the article and cite CLAUDE.md in the Sources section.A warning callout is worth 10× a buried sentence. Err toward emitting them. They're the single highest-ROI thing ingest can produce, because they turn implicit traps into explicit ones that survive the next time a query session skims the article.
## Related section with 2-5 links to related articlesUpdate all four index files after processing each source:
- [[article-name]] — one-line summary grouped by category## tag-name with list of [[articles]] using that tag- raw/filename.ext → [[summary-page]], [[article-1]], [[article-2]]- [[article]] — YYYY-MM-DD — what changedingest: source-name — added N new articles, updated M existinggit add .For file-type-specific handling instructions (markdown, PDFs, YouTube, plain text, code), read references/file-types.md.
npx claudepluginhub berkay2002/wikillm --plugin wikillmFetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.