Install any skill in seconds. Free to start, no credit card required.
Get Started Free →ar9av/claude-history-ingest
Ingest Claude Code conversation history into the Obsidian wiki.
Passed 13 of 17 test cases with the skill, and 7 of 17 without it.
and 11 more in the full report
10 fixed7 passed either way3 still failing2 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.8-flash on 10/18/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
When writing a newly extracted concept note into 'concepts/auth-tokens.md', what default values must be assigned to the frontmatter fields 'base_confidence' and 'lifecycle'?
| Checked | Without skill | With skill |
|---|---|---|
| Sets base_confidence to 0.42 in newly generated page frontmatter. | Missed | Passed |
| Sets lifecycle to draft in newly generated page frontmatter. | Missed | Passed |
The instructions your model reads when the skill loads.
You are extracting knowledge from the user's past Claude Code conversations and distilling it into the Obsidian wiki. Conversations are rich but messy — your job is to find the signal and compile it.
This skill can be invoked directly or via the wiki-history-ingest router (/wiki-history-ingest claude).
Writing profile: Before drafting or rewriting natural-language Markdown, read and apply the Writing Profile Resolution section in llm-wiki/SKILL.md. Framework schema, provenance, safety, and operation-specific requirements take precedence.
WRITING.md preferences apply only to newly drafted or rewritten natural-language Markdown; preserve source content and structured records.
llm-wiki/SKILL.md (inline @name override → walk up CWD for .env → global config → prompt setup). This gives OBSIDIAN_VAULT_PATH and CLAUDE_HISTORY_PATH (defaults to ~/.claude).manifest.json at the vault root to check what's already been ingestedindex.md at the vault root to know what the wiki already containsWIKI_SKIP_PROJECTS from config (comma-separated substrings). Exclude any project directory whose name contains one of them from every step below (scan, delta, sampling, manifest writes). If the user names extra projects to skip this run, add them. Apply the exclusion once, uniformly — don't hand-write grep -v filters into individual commands, which drifts between the scan and manifest steps.Check .manifest.json for each source file (conversation JSONL, memory file). Only process:
ingested_at in the manifestThis is usually what you want — the user ran a few new sessions and wants to capture the delta.
Portable keys when comparing. Manifest keys follow the source key contract (v2) in
llm-wiki/SKILL.md→.manifest.json. A session under$HOMEis keyed~-relative (~/.claude/projects/.../abc.jsonl), never by the expanded machine path; vault-relative and pseudo-keys are the other two forms. Before deciding a file is "new", resolve the stored key the same way the tool does (expand~/env vars, resolve vault-relative against the vault root) — otherwise an already-tracked file looks new and gets re-ingested. Thescripts/manifest.pyhelper does this for you:# New/modified sources, honoring WIKI_SKIP_PROJECTS + --skip: python3 "$OBSIDIAN_WIKI_REPO/scripts/manifest.py" delta "$OBSIDIAN_VAULT_PATH" \ --scan "$CLAUDE_HISTORY_PATH/projects/*/memory/*.md" # One-time repair if the manifest still holds legacy absolute keys: python3 "$OBSIDIAN_WIKI_REPO/scripts/manifest.py" migrate "$OBSIDIAN_VAULT_PATH" --dry-runThe helper is optional — if it's unavailable, apply the same resolution inline before every manifest lookup and write.
test cases passed, vs 7 / 17 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.