CtrlK
BlogDocsLog inGet started
Tessl Logo

wiki-ingest

Ingest any source into the Obsidian wiki by distilling its knowledge into interconnected wiki pages. Handles structured documents (PDFs, markdown, articles, papers, notes, folders), raw/unstructured text (chat exports, conversation logs, Slack/Discord threads, meeting transcripts, CSV/JSON data, journal entries, browser bookmarks, email archives, text dumps), AND web URLs. Use whenever the user wants to add new sources to their wiki: "add this to the wiki", "process these docs", "ingest this folder", "ingest this data", "process this export/logs", "import my chat history from X", "/ingest-url <url>", "add this URL", "save this page", or pastes a URL and says "add this" / "save this to my wiki". Also triggers when the user drops a file, or for raw mode: "process my drafts", "promote my raw pages", or any reference to the _raw/ staging directory. This is the general catch-all ingest skill for any document, text, or URL source not covered by a more specific ingest skill (claude-history-ingest, etc.).

68

Quality

83%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

81%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A thorough, well-sequenced ingest workflow with strong actionability and validation. The main weakness is conciseness: the long body includes rationale asides and large inline sections that could be trimmed or moved to references.

Suggestions

Trim explanatory rationale sentences (e.g. the 'This keeps faith with the immutable raw layer principle' and 'This avoids redundant work…' asides) to just the operative instruction, cutting the body length.

Move the dense academic-paper PyMuPDF extraction recipe and the multi-mode QMD transport tables into reference files, leaving the main body with the guard plus a one-line pointer — consistent with how url-sources.md and pageindex.md are already handled.

Consolidate the repeated 'fallback if obsidian-wiki is not installed' notes into a single upfront fallback section referenced by each step, to reduce repetition.

DimensionReasoningScore

Conciseness

The body is mostly efficient operational guidance (commands, schemas, guards), but at ~550 lines it carries several rationale asides — e.g. 'This keeps faith with the immutable raw layer principle', 'This avoids redundant work even when timestamps are unreliable' — that could be tightened without losing the instruction.

3 / 5

Actionability

Highly actionable throughout: concrete bash commands (obsidian-wiki cache-check/cache-update/batch-plan/ast-extract), YAML frontmatter schemas, exact MCP tool invocations, and executable PyMuPDF extraction code, each with explicit fallbacks when a tool is absent.

5 / 5

Workflow Clarity

Steps 0–8 are clearly sequenced with GUARD gates, explicit validation checkpoints (cache-check, batch-plan skipped_unchanged, 'verify at least one created page is visible'), feedback loops on failure (QMD 'do not roll back the wiki ingest'), and a closing Quality Checklist; the batch/destructive operations carry move-safety and locking rules, so the validation cap does not apply.

5 / 5

Progressive Disclosure

Three real, one-level-deep reference files (references/ingest-prompts.md, pageindex.md, url-sources.md) are present and well-signaled ('Read references/url-sources.md and follow it'), but the body is large with substantial inline sections (academic-paper extraction, QMD transports, AST handling) that could partly be externalized.

4 / 5

Total

17

/

20

Passed

Description

86%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, third-person description that clearly states what the skill does and when to use it, with extensive natural trigger phrases and an explicit sibling-skill boundary. Its main weakness is specificity: the action set is narrow (ingest/distill) even though the source-type coverage is broad.

DimensionReasoningScore

Specificity

The core action is essentially a single one — 'distilling its knowledge into interconnected wiki pages' (i.e. ingest + distill) — applied across a comprehensive list of source types, so it names the domain thoroughly but lists only 1–2 concrete actions rather than several.

3 / 5

Completeness

It explicitly answers both 'what' (ingest any source into the Obsidian wiki by distilling into interconnected pages; handles structured docs, raw text, and web URLs) and 'when' ('Use whenever the user wants to add new sources to their wiki' with concrete trigger phrases).

5 / 5

Trigger Term Quality

Comprehensive coverage of natural phrases users would say — 'add this to the wiki', 'process these docs', 'ingest this folder', 'import my chat history from X', 'save this page', plus the '/ingest-url <url>' slash command and raw-mode triggers — including synonyms and a command form.

5 / 5

Distinctiveness Conflict Risk

It has a clear wiki-ingest niche and explicitly disambiguates from sibling skills ('not covered by a more specific ingest skill (claude-history-ingest, etc.)'), but its self-described 'catch-all' nature leaves minor overlap risk with those closely related ingest skills.

4 / 5

Total

17

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (566 lines); consider splitting into references/ and linking

Warning

Total

15

/

16

Passed

Repository
Ar9av/obsidian-wiki
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.