Zettle — Vault Rulebook
This file is the source of truth for how the vault is structured. Every AI session reads this first. Every rule here is enforceable; deviations are bugs.
For why each rule was chosen, see _meta/adr/.
Mission
A Zettelkasten-style knowledge vault for solidifying belief in Unification Church teachings through atomic-note distillation, thread-based wrestling with counter-arguments, and shareable publication. AI manages structure and hygiene; user owns ideas and judgment.
Note typology
Seven types. AI may not invent new types without an ADR.
| Type | Folder | Purpose |
|---|---|---|
| Resource | /resources/{class}/ | Raw cited text (book chapter, transcript, speech) |
| Atomic — reference | /reference/ | One idea, grounded in a resource citation |
| Atomic — experience | /experience/ | One idea, from observation/conversation/intuition (no findable source) |
| Thread | /threads/ | Compound argument: claim + reasoning + counter + response |
| Sermon | /sermons/{pastoral,worship-redirect}/ | Output artifact derived from threads |
| Question | /questions/ | Open inquiry, gains status: answered when a thread resolves it |
| Person | /persons/ | Thin index of who said what |
| Glossary term | /glossary/ | Defined vocabulary (e.g. indemnity, Sungsang) |
Atomic note schema (reference & experience)
Hard cap: 400 words body (UT and CSG raised to 500 — dense theological exposition with chained domain terms like Sungsang/Hyungsang and four-position-foundation analysis needs the room). If you exceed your class’s cap, it’s a thread, not an atomic. One claim per note — atomic means atomic.
---
title: Fall of Man as Misuse of Love
type: atomic
provenance: reference # reference | experience
tags: [fall, love, free-will] # closed registry — see _meta/tags.md
sources: # required for provenance: reference
- "[[resources/DP/2-1-Fall-of-Man#32|3.2]]"
- "[[resources/Bible/Genesis/3#6|6]]"
attribution: "" # required for provenance: experience (free text)
related:
- "[[indemnity-definition]]"
created: 2026-05-19
---
**Claim.** One sentence stating the idea.
**Elaboration.** One to two short paragraphs unpacking it, with inline [[citations]].
**See also.** Optional.Rules:
- Filename = slug (e.g.
fall-as-misuse-of-love.md). No timestamps in name. - No
status:field. Atomic notes are factual extractions, not personal positions. Wrestling lives in threads. - Citations appear in BOTH
sources:frontmatter AND inline body. AI keeps them in sync. provenance: referencerequiressources:.provenance: experiencerequiresattribution:.
Thread schema
Cap: 1500 words. Beyond that, split.
---
title: Why the Fall Required Restoration through Indemnity
type: thread
tags: [fall, indemnity, restoration]
atomics:
- "[[fall-as-misuse-of-love]]"
- "[[indemnity-definition]]"
created: 2026-05-19
---
## Claim
One sentence.
## Reasoning
Prose weaving the linked atomics. Every `[[atomic]]` is load-bearing.
## Counter-argument
The strongest opposing view, steel-manned. **Must cite a real critic** with source. If no source found but argument is valid, include with disclaimer: *"Note: source not located — provisional."* Outlandish/strawman counters: delete.
Prefer one counter; multiple allowed only if all are independently strong.
## Response
How you answer — or honestly: **"Still wrestling — [specific unresolved point]."** Empty response = bug.Sermon schema
---
title: Easter 2026 — Resurrection as Restoration
type: sermon
sermon-kind: pastoral # pastoral | worship-redirect
occasion: "Easter Sunday 2026-04-05"
duration-target: 15min
threads:
- "[[why-the-fall-required-restoration]]"
created: 2026-05-19
---
## Hook
## Beats
## Call / PrayerNo word cap. Sermons are storytelling, linked back into threads.
Question schema
---
title: Does indemnity contradict grace?
type: question
tags: [indemnity, grace]
status: open # open | answered
answered-by: "" # link to thread when resolved
priority: interesting # critical | interesting | minor
created: 2026-05-19
---
**Question.** ...
**Why it matters.** ...
**Current best guesses.** ...Person schema
Thin index. Real content lives in atomics/threads that link here.
---
title: Sun Myung Moon
type: person
aliases: [SMM, True Father]
role: "Founder of Unification Church"
created: 2026-05-19
---
**Summary.** One paragraph.
## Referenced by
<!-- AUTO-GENERATED — do not edit. Regenerated on every batch finalize. -->Glossary schema
---
title: Indemnity
type: term
aliases: [indemnity-condition, tangam]
korean: "탕감"
related:
- "[[restoration]]"
created: 2026-05-19
---
**Definition.** One sentence.
**Expanded.** One to two paragraphs, citing canonical sources.
## Referenced by
<!-- AUTO-GENERATED — do not edit. Regenerated on every batch finalize. -->Citation grammar
Per resource class. If a class isn’t listed, do not ingest until grammar is added here (with an ADR).
Wikilink form (universal). Resource citations are [[resources/<Class>/.../file#heading-text|Heading Text]] — the path mirrors the on-disk location (/resources/...) and the #fragment is the exact, verbatim H2/H3 heading text, NOT a slugified anchor. Heading-text fragments work in Obsidian (literal heading match) and Quartz (auto-slugified to the heading’s ID). See ADR-0024.
| Class | Source folder | Resource file granularity | Citation form |
|---|---|---|---|
| Divine Principle | /resources/DP/ | one file per sub-section, nested in Part/Chapter folders (e.g. Part1/Chapter02-the-human-fall/dp-1-the-root-of-sin.md) — hierarchy: Part (folder) → Chapter (folder) → Section (file) → Subsection (H2, numbered 1.1.) | [[resources/DP/Part1/Chapter02-the-human-fall/dp-1-the-root-of-sin]] (section) or [[resources/DP/Part1/Chapter02-the-human-fall/dp-1-the-root-of-sin\#1.3. The Fall of the Angel and the Fall of Human Beings]] (subsection anchor) — see ADR-0021 |
| Cheon Seong Gyeong | /resources/CSG/ | one file per chapter, nested in book subfolder (e.g. Book01/csg-01-01-the-original-being-of-god.md) — hierarchy: Book (folder) → Chapter (file) → Section (H1) → Subsection (H2, numbered 1.1.) | [[resources/CSG/Book01/csg-01-01-the-original-being-of-god\#1.1. The incorporeal God]] |
| Bible | /resources/Bible/ | one file per chapter, nested in book folder (e.g. John/3.md) — verses as ### 16 (slug = verse number, unique within file) — see ADR-0025 | [[resources/Bible/John/3\#16]] (single verse), [[resources/Bible/John/3\#16|John 3:16-19]] (verse range — anchor at first verse, display alias preserves the range text), [[resources/Bible/John/3]] (whole chapter) |
| Sun Myung Moon speeches | /resources/SMM/ | one file per speech (date-location slug) | [[resources/SMM/1973-12-31-belvedere\#§4]] — official English (tparents.org) only for now |
| Transcripts | /resources/Transcripts/ | one file per talk | [[resources/Transcripts/2024-03-15-pastor-kim-on-indemnity\#§3]] or [[...\#[12:34]]] for timestamps |
| Video transcripts | /resources/Video/ | one file per video transcript, nested by platform and channel (e.g. youtube/Worship Ministry Training/2026-06-01-major-misconceptions-about-worship-music.md) | [[resources/Video/youtube/Worship Ministry Training/2026-06-01-major-misconceptions-about-worship-music\#Transcript]] — cite the transcript heading; preserve quoted timestamp ranges in prose |
| BR — Believer’s Responsibility (Hendricks, 2010) | /resources/Believers-Responsibility/ | one file per chapter (e.g. 01-church-growth-begins-with-god.md) | [[resources/Believers-Responsibility/01-church-growth-begins-with-god\#Reverend Moon's Personal Calling]] |
| WorldScripture — World Scripture II (Kwak ed., UPF, 2014) | /resources/WorldScripture/ | sub-themes: one file per sub-theme, nested in Part/Chapter folders (e.g. Part2/Chapter06-evil-sin-and-the-fall/ws-04-human-pride.md) — 2-digit ordinal prefix on filename preserves print sub-theme order; front/back-matter: at root (e.g. ws-preface.md) — hierarchy: Part (folder) → Chapter (folder) → Sub-theme (file) → Sub-sub-theme (H2) | [[resources/WorldScripture/Part2/Chapter06-evil-sin-and-the-fall/ws-04-human-pride]] (sub-themes) or [[resources/WorldScripture/Part1/Chapter01-god/ws-01-knowledge-of-god\#2. Evidence for God within the Self]] (sub-sub-theme anchor) or [[resources/WorldScripture/ws-preface\#section]] (front/back-matter) — anthology source; for quotes whose original tradition is ingested as its own class, cite the original instead (see ADR-0020 hybrid policy) |
UC secondary literature (BR and WorldScripture; future books like Purpose-Driven Church, 365 Tao and original-tradition scriptures get their own short codes via their own ADRs).
Adding a new class requires: ADR + entry in this table + sample resource ingested for validation. If the class has nested folder hierarchy (Book → Chapter → …), also add an entry to the hierarchical config in quartz.config.ts — see ADR-0018.
Per-class atomization-style profiles
Each class has a style profile that tunes the atomization prompt — separate from citation grammar. The script in process_batch.py atomize (ADR-0023) parameterizes prompts by class:
- DP — methodically written doctrine; tight extraction; expect clean atomic boundaries.
- CSG — anthology of SMM teachings, structured by editors; attribution to underlying speech where indicated.
- WS — anthology of multiple traditions; atomics may cite the underlying original tradition per ADR-0020 hybrid policy.
- SMM — oral, repetitive, teaching evolves over decades (early teaching emphasizes foundation-laying / indemnity; later teaching emphasizes sustainability / long-term). Dedup within-speech repetition; era-context recoverable from the speech date already in the citation.
- BR — secondary literature, prose argument; atomize claims plus the author’s evidential structure.
- Video — conversational transcript; dedup conversational repetition, preserve speaker claims only when the exchange clarifies them, and include timestamp ranges in prose because citation anchors are transcript-level.
- tparents books (Purpose-Driven Church, 365 Tao, etc.) — varied per book; default to BR-style, profile-tune per book as added.
Style profiles only affect the atomization prompt. They do not change citation grammar, review workflow, or any vault-structural rule.
Tag registry
Tags are a closed registry. AI may not invent new tags. See _meta/tags.md for the current list. Adding a tag requires:
- AI flags request in batch
REVIEW.mdwith justification - User approves
- Tag added to
_meta/tags.mdin same commit
Provenance rule
Every atomic is either reference (cites a resource) or experience (cannot be cited; based on observation, heard, intuition). They live in separate folders for visual separation. Migration between folders is rare but supported (link auto-update via Obsidian on rename/move).
Index notes (Person, Glossary)
Person and Glossary notes contain a ## Referenced by section that is auto-generated from wikilinks. AI maintains it during batch finalization. Pre-commit hook validates that ## Referenced by matches actual reverse links in the vault. Mismatch = commit fails.
No manual mentions: frontmatter field — wikilinks ARE the mention.
Workflow
Batch staging (review gate)
All AI-generated content lands in /staging/{batch-id}/ first, never directly in final folders. Each batch produces:
- The proposed notes (atomics, threads, etc.)
REVIEW.mdsummarizing what changed, plus a Proposed work section (see below)
Batch ID naming. Use descriptive slugs: primary pattern is {resource-class}-{chapter-slug} (e.g., csg-01-03, br-07-methods-for-transitioning). For non-resource batches use a short topic slug (e.g., worship-leader-grilling). Sequential batch-0## IDs are deprecated.
User reviews in Obsidian/VS Code, edits or rejects in place. On approval, AI copies REVIEW.md to _meta/batch-reviews/{batch-id}.md, moves accepted notes to final locations, updates index notes, deletes the now-empty staging folder, and commits. Durable record = the REVIEW copy in _meta/batch-reviews/ plus git history of the staging commit. Skipping the archival step = process gap; must be noted in the commit message.
Workflow variants
Two variants of the batch-staging workflow:
- Thorough (default for one-off / load-bearing work). ADR-0009 governs. Full REVIEW.md shape with the “Proposed work” section below. Used for: secondary-pass rigor upgrades, content-cleanup batches, user-designated load-bearing chapters.
- Foundation-pass (atomics-only, lean REVIEW, parking lot). ADR-0021 governs. Used during the DP → CSG Books 2–16 → WS foundation-pass project. Threads / counter-arg verification / secondary rigor deferred. Deferred judgements append to
_meta/parking/{threads,questions,web-search}.mdon finalize. Question-promotion default flips: proposed questions default-park (not default-promote per ADR-0014). Marked in REVIEW.md via a**Variant:** foundation-passheader field. Productionized viascripts/process_batch.py atomizeper ADR-0023 — parallel Batch API atomization + linking step, with one extra## Linking appliedsub-section in the lean REVIEW shape.
REVIEW.md — Proposed work section
Applies to the Thorough variant. Every thorough-variant REVIEW.md ends with three lists:
- Open questions raised — max 3, prioritized
[critical | interesting | minor]. Each cites the specific note/source that triggered it. - Proposed threads — when a tag cluster has 5+ atomics with no thread, suggest one (with seed atomics listed).
- Stale wrestling — threads with “Still wrestling” Response that haven’t been touched in 3+ batches.
Rejected proposals are logged in _meta/rejected-proposals.md so AI doesn’t re-suggest.
Foundation-pass batches use a leaner “Parked items” section instead (one-line entries echoed to _meta/parking/*.md); see ADR-0021.
Ingestion review gate
When ingesting a new resource, AI shows: file count, heading structure, citation sample. User confirms before AI produces atomics from it. Prevents broken-citation cascades.
When running process_batch.py atomize (ADR-0023) over an already-validated resource directory, this gate manifests as a pre-flight summary: discovered units, proposed batch carving by semantic boundary (chapter/section/subsection), sample heading shapes from 3 random files, citation grammar to be used, estimated batch cost. One-shot user go/no-go before the Batch API submission.
AI hard rules
Enforced by pre-commit hook (scripts/pre-commit-hook.py, installed as .git/hooks/pre-commit). AI cannot bypass — failed hook = failed commit = AI must fix and retry. See ADR-0017 for what is enforced vs deferred.
- No new tag without REVIEW.md flagging + user approval committed in same batch
- No atomic body >400 words (UT and CSG: 500; class derived from first
[[resources/{Folder}/…]]wikilink insources:) - No thread without
## Counter-argumentAND## Responsesections (Response may say “Still wrestling — [reason]”) - No counter-argument that lacks a cited critic OR a “source not located” disclaimer
- No citation that doesn’t match its class’s grammar rule above
- No commit that touches files outside the active staging batch (during a batch run)
- Person/Glossary
## Referenced bysections must match the vault’s actual wikilink graph
Model routing (script-only; chat mode just uses Opus)
When running scripts/process_batch.py (subcommands: atomize per ADR-0023; future weave, sermon):
- Opus 4.7 — “Generate” tasks: atomization, thread synthesis, counter research, sermon drafting, judgment-on-meaning calls (incl.
related:link reasoning and duplicate semantic equivalence). - Haiku 4.5 — “Check” tasks: schema validation, word count, tag lookup, index regeneration, citation grep, REVIEW.md cost report, registered-glossary-term grep + inline-wikilink syntax application.
Mnemonic: Generate = Opus. Check = Haiku.
Cost reporting
Every batch’s REVIEW.md ends with a cost table (input/output/cached tokens per phase + $ total). In pure-chat pilot mode, this is omitted; cost visibility is via Anthropic dashboard until the script lands.
Publishing
Quartz v4 → Cloudflare Pages. Auto-build on push to main via GitHub Actions. URL structure mirrors folder structure exactly.
Most folders publish (atomics, threads, sermons, questions, persons, glossary, resources, _meta/adr/, CONTEXT.md). Excluded via Quartz ignorePatterns: _meta/quartz/, _meta/rejected-proposals.md, _meta/embeddings/ (atomic-similarity cache, ADR-0023), staging/, resources-raw/, scripts/, README.md, .obsidian/. See ADR-0010 for the full list and rationale.
What this file is NOT
- Not a tutorial. See
_meta/adr/for reasoning. - Not exhaustive. New patterns get added here as they’re decided (via ADRs).
- Not optional. If AI ignores any rule above, that’s a bug to report and fix.