How to Identify Active Sources in the Claude-Obsidian Source Ledger: 6 Provenance Rules Explained
Active sources in the Claude-Obsidian source ledger must satisfy six strict provenance criteria—including immutability, verified authority, freshness, and live backlinks—before they can validate any claim.
Claude-Obsidian enforces rigorous evidence tracking through immutable ledgers located under wiki/meta/ledgers/. Understanding the rules for active sources in the claude-obsidian source ledger ensures that only verified, auditable evidence supports your knowledge base claims and maintains the integrity of the provenance chain.
Overview of the Source Ledger Architecture
The system maintains two immutable ledgers: the source ledger and the claim ledger. A source record captures evidence metadata—such as notes, captured web pages, or PDFs—including identity, authority, independence, freshness, review state, and the specific pages it supports. Only sources marked as active may back a claim according to the validation logic implemented in the repository.
The Six Rules Defining Active Sources
The skills/wiki/references/frontmatter.md file codifies six specific rules that determine whether a source record qualifies as active:
-
Immutability: Once written to
wiki/meta/ledgers/source-ledger.json, a source record must never be altered. Updates create new version entries rather than modifying existing records, ensuring a complete audit trail. -
Authority and Independence: The source must declare verifiable authority (publisher, author, or originating system) and maintain independence from the specific claim it supports. This prevents circular references and self-claims.
-
Freshness and Review State: Active sources require either a
reviewed: trueflag or a recent capture timestamp. The system filters out stale or unvetted evidence based on thresholds defined in the ledger configuration. -
Linked Pages: Each record must list its
linked_pages—the Obsidian pages citing this source. If all referencing pages are deleted or links break, the source automatically becomes inactive. -
No Metadata Overloading: Ledger entries must contain only provenance data as specified in
skills/wiki/references/provenance.md. Extraneous metadata unrelated to source verification is prohibited to maintain ledger performance and clarity. -
Active-Source Determination: When evaluating claims, the system explicitly checks that supporting sources satisfy all above criteria. Only sources passing this validation determine claim support status.
Programmatically Filtering Active Sources
The ledger files are JSON-encoded and accessible via standard Python libraries or the public API shipped with Claude-Obsidian (claude_obsidian.transaction). The canonical path is wiki/meta/ledgers/source-ledger.json.
import json
from pathlib import Path
# Load the source ledger (JSON)
LEDGER_PATH = Path("wiki/meta/ledgers/source-ledger.json")
with LEDGER_PATH.open() as f:
source_ledger = json.load(f)
def is_active(source):
"""Apply the active‑source rules."""
# 1. Must be reviewed (or freshly captured)
if not source.get("reviewed", False):
return False
# 2. Must have authority & independence fields
if not source.get("authority") or not source.get("independent", True):
return False
# 3. Must be recent enough (example: < 2 years old)
if source.get("timestamp") and (2026 - int(source["timestamp"][:4]) > 2):
return False
# 4. Must be linked to at least one live page
if not source.get("linked_pages"):
return False
return True
# Gather all active sources
active_sources = [s for s in source_ledger["entries"] if is_active(s)]
print(f"Found {len(active_sources)} active sources")
for src in active_sources[:5]:
print(f"- ID: {src['id']}, Authority: {src['authority']}")
Command-Line Validation
For automation and shell workflows, Claude-Obsidian provides a built-in validator in claude_obsidian/vault_ops.py.
# List active source IDs (uses the built‑in ledger validator)
python -m claude_obsidian.vault_ops list-active-sources
Key Configuration Files
Understanding the ledger structure requires familiarity with these specific files:
-
wiki/meta/ledgers/source-ledger.json: The immutable JSON store containing all source entries and their provenance metadata. -
skills/wiki/references/frontmatter.md: Defines front-matter conventions including thereviewedflag and authority fields required for active status. -
skills/wiki/references/provenance.md: Documents the dual-ledger architecture and metadata constraints preventing ledger overloading. -
claude_obsidian/vault_ops.py: Implements core ledger operations including reading, parsing, and active-source validation logic. -
WIKI.md: Contains the high-level "Provenance ledgers" section describing the immutable audit system architecture.
Summary
- Active sources must remain immutable; updates create new records rather than editing existing ones.
- Every active source requires verified authority, independence from its claim, and either a recent timestamp or explicit review flag.
- Sources must maintain valid
linked_pagesentries; orphaned sources automatically become inactive. - The source ledger lives at
wiki/meta/ledgers/source-ledger.jsonand follows strict metadata constraints outlined inskills/wiki/references/frontmatter.md. - Use
python -m claude_obsidian.vault_ops list-active-sourcesfor CLI validation or implement theis_active()filter pattern for custom Python workflows.
Frequently Asked Questions
What distinguishes an active source from an inactive one in Claude-Obsidian?
An active source satisfies all six ledger rules: it is immutable, has verified authority and independence, passes freshness or review checks, maintains valid page links, and contains only essential provenance metadata. Inactive sources fail one or more of these criteria, typically due to broken links, stale timestamps, or missing authority fields.
Where does Claude-Obsidian store the source ledger?
The source ledger is stored as a JSON file at wiki/meta/ledgers/source-ledger.json within the repository root. This location is hard-coded in the validation logic found in claude_obsidian/vault_ops.py and referenced in the provenance documentation.
How does the system handle corrections or updates to source records?
The ledger enforces immutability. Instead of editing existing entries, users must append new versions with corrected data. This creates a complete audit trail where historical evidence states remain accessible while the latest valid version becomes the active source.
Can a source become inactive after initially being marked active?
Yes. If the Obsidian pages listed in a source's linked_pages array are deleted or the links break, the source automatically transitions to inactive status during the next validation cycle. Similarly, sources exceeding freshness thresholds without review flags will deactivate until re-verified.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →