New to Claude Skills? Learn how to install them →

agricidaniel on GitHub

Extractive Log Fold

Free

Streamline your Obsidian wiki log entries efficiently.

Get this skill

Free · Opens the source repo

What Extractive Log Fold does

Extractive Log Fold is a specialized skill designed for users of the Obsidian note-taking application who need to manage and compress their wiki log entries without altering the existing structure of their notes. This skill allows users to create a bounded rollup of recent log entries, ensuring that child pages remain intact and unmodified. It operates in a dry-run mode by default, providing users with a preview of the proposed changes before any actual modifications are made. This feature is particularly useful for those who want to assess the impact of the rollup without committing to it immediately.

The skill employs a controlled approach to log entry management, allowing users to specify a batch size for the rollup. By default, this batch size is set to 16 entries (2^4), but users can adjust this as needed. The skill reads the selected log entries thoroughly and only references child pages when necessary, ensuring that the context is preserved. It also generates a unique structural ID for each rollup, preventing any accidental overwrites of existing folds unless explicitly requested.

One of the key benefits of Extractive Log Fold is its commitment to maintaining the integrity of the original log entries. It does not perform any automatic folds or modifications to child entries, which means users can trust that their existing notes will remain unchanged. The skill also includes a robust verification process, checking for consistency and traceability in the log entries before any proposal is made. This level of scrutiny helps users avoid errors and ensures that the rollup reflects the true state of their notes.

This skill is ideal for researchers, writers, and anyone who utilizes Obsidian for extensive note-taking and needs an efficient way to manage their logs. It empowers users to maintain a clean and organized wiki without the risk of losing important information or context.

When to use it

Use this skill when you want to create a concise rollup of your Obsidian wiki log entries while preserving the integrity of child pages.

When not to use it

This skill is not suitable for users who need to modify or delete existing log entries, as it strictly maintains the original structure.

What you can build with it

Compressing Weekly Logs

Use Extractive Log Fold to create a summary of your weekly log entries, ensuring all child pages remain untouched.

Preparing for a Review

Before a team review, generate a concise rollup of recent notes to present a clear overview without altering the original entries.

Maintaining Log Integrity

Utilize this skill to manage your logs while keeping the original structure intact, perfect for long-term note-taking.

How to install Extractive Log Fold

View source

1. Install with the skills CLI

npx skills add agricidaniel/claude-obsidian/wiki-fold --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by agricidaniel

Extractive log fold

Create an additive rollup of raw wiki/log.md entries. Never modify, move, or delete child entries or their pages. Do not perform fold-of-folds or trigger a fold automatically.

Resolve the portable core from this skill's installation. Resolve the user vault by explicit --vault, CLAUDE_OBSIDIAN_VAULT, workspace config, then current-directory discovery. Never treat the plugin/product root as a vault.

PRODUCT_ROOT=/absolute/path/to/installed/claude-obsidian
CORE="$PRODUCT_ROOT/scripts/claude-obsidian.py"
test -f "$CORE"

This skill needs no network egress. Do not call external services.

Select a bounded range

Use batch exponent k with size 2^k; default to k=4. An explicit entry range may override it. If fewer entries exist than requested, report the shortfall and stop rather than folding a partial batch.

Read the selected log entries completely. Read referenced child pages only when the log lacks enough context: target 0-10 reads, hard ceiling 15. Missing pages remain explicit page_missing records.

Derive the structural ID only from inputs:

fold-k{K}-from-{EARLIEST-DATE}-to-{LATEST-DATE}-n{COUNT}

If wiki/folds/{FOLD_ID}.md already exists, return a no-op. Replacing it requires an explicit force request and a separately reviewed replace proposal.

Draft extractively

Follow fold-template.md. Every child log entry must have one deterministic child_key in frontmatter and exactly one matching row in the Child Entries table. Do not deduplicate children by page, although the final Child Pages link list may be deduplicated.

Every outcome must name its source entry. Every number must be verifiable in the selected entry. A cross-entry theme must name at least two contributing entries. Prefer ambiguous in source or source missing to invention. When a child page and log entry disagree, preserve both and identify the mismatch; the log entry is the fold's primary source.

Run these checks before proposing any write:

  • deterministic ID and exact entry count;
  • frontmatter/table bijection;
  • numeric traceability;
  • source citation for every outcome and theme;
  • no change to a child, source, source ledger, or claim ledger.

A fold adds no new factual evidence, so it does not upgrade claim assessments or create source records. Report discovered contradictions for later review instead of editing canonical claims.

Preview by default

Return the complete fold draft, ID, child range, read budget, and proposed changed paths without modifying the vault. Parallel agents may check child entries and return extracts, but only the orchestrator assembles the fold; workers never write.

When the user explicitly says to apply or commit the fold, build one claude-obsidian.transaction.v1 bundle with operation_type: fold. Read the transaction contract. Couple:

  • wiki/folds/{FOLD_ID}.md in create mode by default;
  • the fold catalog entry in wiki/index.md;
  • one new top-of-file fold entry in wiki/log.md.

Do not update wiki/hot.md. Record SHA-256 preconditions for all three targets. Do not use host Write/Edit, Obsidian transport writes, deprecated locks, automatic commits, or one apply per file.

Inspect before the single apply:

python3 "$CORE" transaction inspect /path/to/fold-bundle.json --vault /path/to/vault
# Set APPROVAL_SHA256 to the inspect result's approval_sha256 after review.
python3 "$CORE" transaction apply /path/to/fold-bundle.json --vault /path/to/vault \
  --approved-plan-sha256 "$APPROVAL_SHA256"

Report the operation ID and exact changed paths. The identical bundle and ID are idempotent. On exit 75, re-read and rebuild; after interruption, use transaction recover.

Git history is a separate optional action:

python3 "$CORE" checkpoint OPERATION_ID --vault /path/to/vault

Observe all selected entries, verify traceability and counts, then grow the rollup only from what its children actually say.

Frequently asked questions about Extractive Log Fold

Similar skills