CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

claude-history-ingest

Ingest Claude Code conversation/session history into Obsidian as distilled knowledge. Use for importing or mining past Claude sessions, .claude data, project/session history, or audit logs.

Quality

82%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

75%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 strong, highly actionable multi-step workflow: concrete executable commands for scanning, delta computation, extraction, distillation, manifest updates, and QMD refresh, with real error paths (QMD failure handling, dry-run migration, helper fallbacks) and good bundle structure. The main weakness is redundancy — the pre-extraction preference is repeated three times, desktop find commands twice, and JSONL format details are duplicated between the body and references/claude-data-format.md — which costs tokens without adding guidance.

Suggestions

De-duplicate the raw-JSONL format material: keep only the parsing essentials in Step 3 (filter to user/assistant, extract text blocks, use cwd) and move the full line/message schemas and event-type detail to references/claude-data-format.md, which already covers them.

State the pre-extracted-file preference once (in the Pre-extraction section) and have the Sampling Heuristic and Step 3 refer back to it, instead of restating the preference and the 50–200× reduction rationale in three places.

Consolidate the desktop-session find commands (currently given in full in both the Source 2 section and Step 1) into a single location and reference it from the survey step.

DimensionReasoningScore

Conciseness

The body is mostly purposeful procedural detail, but the pre-extracted-file preference is stated three times ("always prefer the extracted file" in Pre-extraction, "Prefer pre-extracted files" in the sampling heuristic, and the resolution-order block opening Step 3), the desktop-session find commands are duplicated between Source 2 and Step 1, and full JSONL message schemas are inlined that largely duplicate references/claude-data-format.md. That redundancy is more than the minor trimming of level 4, but nowhere near the pervasive padding of level 2 — most sections earn their tokens.

3 / 5

Actionability

Nearly every section gives copy-paste-ready commands: "python3 …/scripts/manifest.py delta … --scan …", "python3 …/scripts/extract-jsonl.py --since …", "obsidian-wiki memory sync CLAUDE_HISTORY_INGEST projects=<…> … --takeaways …", "${QMD_CLI:-qmd} update", plus a concrete topic-routing table, frontmatter templates, and explicit fallbacks when a helper is unavailable ("if it's unavailable, apply the same resolution inline"). Common cases (first run, incremental, missing helper, QMD unset) are all covered.

5 / 5

Workflow Clarity

Steps 1–6 are clearly sequenced with meaningful checkpoints for a batch operation: manifest delta classification (new/modified/unchanged), the desktop-session pre-check ("If that prints nothing, skip this entire section"), "migrate … --dry-run" before repair, sampled-vs-skipped reporting, and "If QMD refresh fails, do not roll back the vault changes; report the QMD status separately". Not level 5 because there is no validate→fix→retry loop over the written wiki pages themselves; not capped at 3 because verification steps are present rather than missing, exceeding level 4's single "verify output" checkpoint in breadth.

4 / 5

Progressive Disclosure

Good structure with one clearly signaled, one-level-deep reference ("See references/claude-data-format.md for more details on the data structures" — verified to exist and to be flat, no nested references), and the SKILL.md reads as an overview-plus-procedure. Not level 5: roughly 100 lines of data-layout/format detail (directory trees, JSONL line schemas, audit-log field lists) are inlined even though the reference file covers much of the same ground, and the referenced scripts/manifest.py and scripts/extract-jsonl.py live in the parent repo rather than this bundle (acknowledged with inline fallbacks, but still an organization gap).

4 / 5

Total

16

/

20

Passed

Description

82%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 concise, third-person description that explicitly answers both what it does and when to use it, with concrete trigger terms ("past Claude sessions", ".claude data", "audit logs") and a clear niche. Its only limitation is that the capability is expressed as one broad ingest/distill action with import/mining variants rather than an enumeration of the specific sub-actions the skill actually performs (memory ingestion, audit-log parsing, topic clustering).

DimensionReasoningScore

Specificity

"Ingest Claude Code conversation/session history into Obsidian as distilled knowledge" names the domain and the core action, and "importing or mining" adds variants, but these are near-synonyms for one operation rather than the several distinct concrete actions of the level-4 anchor (e.g. "Extracts text…, fills forms, converts pages"). It is well above level 2 ("Processes PDF files") because the target system and output form are explicit.

3 / 5

Completeness

It explicitly answers both questions with concrete trigger phrases: what — "Ingest Claude Code conversation/session history into Obsidian as distilled knowledge"; when — "Use for importing or mining past Claude sessions, .claude data, project/session history, or audit logs". This matches the level-5 anchor (clear what + explicit 'Use when' triggers) exactly, and no 'when' element is only weakly implied as at level 4.

5 / 5

Trigger Term Quality

"Use for importing or mining past Claude sessions, .claude data, project/session history, or audit logs" gives good natural-phrase coverage users would actually say. Not level 5 because common variations like "conversation transcripts", ".jsonl", or "memory files" are absent; clearly above level 3's thin keyword set.

4 / 5

Distinctiveness Conflict Risk

"Claude Code conversation/session history into Obsidian", ".claude data", and "audit logs" define a clear niche with distinct triggers and minimal overlap with other skills; only the parent router skill (wiki-history-ingest) is adjacent, and the description's Claude-specific vocabulary keeps them distinguishable.

5 / 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.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 2 missing

Warning

Total

15

/

16

Passed

Repository

Ar9av/obsidian-wiki

Path

.skills/claude-history-ingest/SKILL.md

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.