Skip to main content
ClaudeWave
Skill3.5k repo starsupdated today

wiki-digest

Wiki Digest generates a human-readable summary of recent knowledge base activity by scanning Obsidian vault logs and page metadata to identify what was learned, updated, and emerging themes over a specified time period (daily, weekly, monthly, or custom range). Use this skill to create a weekly or periodic knowledge newsletter that highlights knowledge growth rather than merely reporting file changes.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/Ar9av/obsidian-wiki /tmp/wiki-digest && cp -r /tmp/wiki-digest/.skills/wiki-digest ~/.claude/skills/wiki-digest
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Wiki Digest — Knowledge Newsletter Generator

You are generating a human-readable digest of recent wiki activity: what was learned, what was updated, what themes are emerging, and what's worth reviewing. This skill summarizes *knowledge*, not sources — think of it as a weekly review session, not an ingestion status report.

## Before You Start

**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.

1. **Resolve config** — follow the Config Resolution Protocol in `llm-wiki/SKILL.md` (inline `@name` override → walk up CWD for `.env` → global config → prompt setup). This gives `OBSIDIAN_VAULT_PATH` and `OBSIDIAN_LINK_FORMAT`.
2. **Parse the period** from the user's request:
   - "daily" / "today" / "yesterday" → last 24 hours
   - "weekly" / "this week" / no argument (default) → last 7 days
   - "monthly" / "this month" → last 30 days
   - ISO date like "since 2026-05-01" → pages updated since that date
   - Explicit number like "last 14 days" → that many days
3. Read `$OBSIDIAN_VAULT_PATH/log.md` — last 200 lines — for entries within the period (timestamps are ISO-8601 prefixed lines).
4. Read `$OBSIDIAN_VAULT_PATH/hot.md` for current session context.
5. If `$OBSIDIAN_VAULT_PATH/_insights.md` exists, read its **Anchor Pages** table — you'll use it later to identify which new pages became hubs.

## Step 1: Collect Pages Active in the Period

Glob all `.md` files under `$OBSIDIAN_VAULT_PATH`. Skip special/system files:
- `index.md`, `log.md`, `hot.md`, `AGENTS.md`, `_insights.md`
- Anything under `_meta/`, `_archives/`, `_raw/`
- Journal digest pages themselves (`journal/digest-*.md`)

For each remaining page, read its frontmatter:
- `created` — when the page was first written
- `updated` — when it was last modified

Classify:
- **New pages**: `created` is within the period
- **Updated pages**: `updated` is within the period but `created` is before it
- **Unchanged**: neither date falls in the period → skip

If fewer than 5 pages were active, note it and offer to widen: *"Only 3 pages were active in the last 7 days — want a monthly digest instead?"* Stop here unless the user says to continue.

For each active page, collect: `title`, `category`, `tags`, `summary` (frontmatter field), `lifecycle`, any `^[ambiguous]` or `^[inferred]` markers in the body.

## Step 2: Identify Themes

From all active pages' tags, tally theme frequency:

```
For each tag across new + updated pages:
  count how many active pages carry it
Sort descending, take top 5
```

Also read `$OBSIDIAN_VAULT_PATH/_meta/taxonomy.md` (if it exists). Flag any tag from step 1 that **does not appear** in the taxonomy — these are new vocabulary words that emerged this period.

Note which categories grew most (concepts/, entities/, skills/, synthesis/, references/, etc.).

## Step 3: Find Notable New Connections

Scan new and updated pages for cross-category wikilinks — links that bridge different knowledge layers. These are the most intellectually interesting outputs of the period.

For each active page, extract all `[[wikilink]]` targets. Classify each link by the target's category prefix. Flag links that cross categories (e.g., a `concepts/` page linking to an `entities/` page, or a `synthesis/` page bridging two topics).

Rank candidates by interestingness:
- **+3** if the link is across two categories that rarely connect (use `_insights.md` bridge data if available)
- **+2** if the target page is a top-10 hub (per `_insights.md` anchors)
- **+2** if the link appears in a `synthesis/` page (deliberate cross-cutting)
- **+1** if the source page is marked `^[inferred]` (synthesized connection, not directly stated)

Take the top 3–5 connections. Write each as a plain-English sentence: not just "A → B" but *why* the connection is interesting.

## Step 4: Surface Open Threads

Scan active pages and `_raw/` for unresolved work:

- **Drafts**: pages with `lifecycle: draft` or `lifecycle: stub`
- **Ambiguous claims**: count `^[ambiguous]` markers across all active pages (don't list every one — just the count and which pages have the most)
- **Unstaged notes**: count files in `$OBSIDIAN_VAULT_PATH/_raw/` (anything here hasn't been promoted)
- **Taxonomy gaps**: tags from Step 2 that aren't in `_meta/taxonomy.md`

## Step 5: Choose Recommended Re-reads

From the *existing* (pre-period) pages, identify 2–3 worth revisiting given this week's new context.

Heuristic: find pre-period pages that share the most tags with the active pages from Step 1. These are foundational pages whose topic was extended this period — the new pages build on them but the user may not have revisited the foundation.

Also include any pre-period page that now has 2+ new incoming links from active pages (it just became more connected — a sign it's load-bearing).

Write each recommendation with a concrete reason: *"[[concepts/attention-mechanism]] — your foundational page; three new papers ingested this week all extend it"*, not just the page title.

## Step 6: Generate the Digest

Produce a structured, scannable markdown report. The Headlines section is the most important — it should feel like the opening of a good newsletter, synthesizing actual insight rather than listing page names.

Apply the link format from `llm-wiki/SKILL.md` (Link Format section) using `OBSIDIAN_LINK_FORMAT`. Default is `[[wikilink]]`.

```markdown
# Wiki Digest — [Period Label]
> [N new pages · M updated pages · period: YYYY-MM-DD to YYYY-MM-DD]

## Headlines

- [Concrete insight #1 — synthesize the actual knowledge, not just "learned about X"]
- [Concrete insight #2]
- [Concrete insight #3]

## New Knowledge

### New pages ([count])
| Page | Category | Summary