reconcile
The weekly operation of the three-op protocol. Scoped to the diff, not the corpus. A full-vault health check doesn’t work at this vault’s size (~6k files); a bounded check of what actually changed does.
When to use
- User runs
/reconcile. - Weekly scheduled routine fires (Sunday default).
- User says “reconcile the week”, “check the recent changes”, “what should I do with this week’s work”.
What this is NOT
- Not an orphan scan. Orphans are a whole-corpus check that doesn’t scale here.
- Not a whole-vault broken-link sweep. Only links inside touched pages are checked.
- Not a mechanical-fix pass. That’s rare enough to handle case-by-case; not worth a weekly pipeline.
The scope discipline is the whole point. If you catch yourself reaching outside the touched-set, stop.
Workflow
1. Frame the week
- Run
vault-tree(depth 2) for structural orientation. - Run
recent-changes(default 7 days). This is the ground truth for scope.
The touched-set is: files marked A, M, or R in recent-changes. Deletions are noted but don’t drive further checks (the page is gone).
2. Per-page integration check — touched-set only
For each new or substantially-edited page:
- Does it link out? A page with zero outbound wikilinks is usually under-integrated. Propose 1–3 concrete wikilinks to existing pages where the connection is clear.
- Does it fit its folder? Quick PARA sanity check. A project note that landed in
3_Resources/is a mis-route; surface it. - Does it collide with another touched page? Two pages created the same week covering the same topic are a consolidation candidate.
- Does it mention terms that exist as notes but aren’t wikilinked? Only check within the touched page — do not scan the corpus for incoming references to it.
- Is it correctly classified for privacy? Check if the note contains personal/introspective content, professional/work-confidential material, or confidential information. If it does and it’s not in
6_Private/and doesn’t havedraft: true, flag it as a privacy mis-route. See Privacy Classification.
3. Move / rename impact
For each R entry:
- Verify inbound wikilinks still resolve. Obsidian resolves by title, so renames within the same title usually work; path-qualified links (
[[2_Areas/Old Path|Old Path]]) break and need rewriting. - Surface any broken inbound refs as a concrete fix list in the report.
4. Promotion & merge candidates
- Promotion: did this week’s edits push an existing page over the canon bar (≥10 inbound, substantial, synthesized, stable-ish)? If yes, propose
/crystallize. - Merge: are two touched pages near-duplicates or heavy overlap? If yes, propose
/consolidate.
Do not act. reconcile only proposes; the skills it routes to have their own approval flow.
5. Synthesis — the generative part
This is the piece that makes reconcile more than a weekly diff viewer:
- Topic clustering. Group the week’s new pages by topic. If ≥3 pages circle one concept, propose a concept / index page that threads them together.
- Answered questions. Read the tail of
7_Agent/questions.md(entries since last reconcile). Cross-check each against the week’s new content. If a question has been answered, note it so the user can prune. - Spawned questions. New pages often raise questions they don’t answer. Capture those — either as
log-questionentries or as report bullets.
Keep this section concrete: a proposal is “create Concept X threading A B C”, not “think about X more”.
6. Write report
Write to 7_Agent/reconcile/<YYYY-Www>-reconcile.md:
---
created: YYYY-MM-DD
tags: [agent, reconcile, report]
draft: true
---
# Reconcile report — Week YYYY-Www
Scope: last 7 days (YYYY-MM-DD → YYYY-MM-DD). N touched pages across <folders>.
## Overview
<2–3 sentences: what did the week touch? Any refactors? Any noticeable concentration in one PARA area?>
## Integration
- [[Page A]] — new in 2_Areas/X/. Links: [[Y]]. Suggested cross-refs: [[Z]], [[W]].
- [[Page B]] — edits this week but no outbound links. Under-integrated; candidates: [[Y]].
## Consolidation candidates
- [[Page A]] + [[Page B]] — both new this week, cover <topic>. Run `/consolidate` if agreed.
## Promotion candidates
- [[Page C]] — edits this week pushed it over the bar (N inbound, substantial, synthesized). Run `/crystallize` if agreed.
## Privacy mis-routes
- [[Page E]] — contains work-confidential content but is in `2_Areas/`. Move to `6_Private/` or add `draft: true`.
## Moves / renames
- `2_Areas/Old.md` → `2_Areas/New.md`. Inbound wikilinks: M (all resolve by title / K need rewriting).
## Synthesis
- Three pages this week orbit <topic>: [[A]], [[B]], [[C]]. Consider creating [[Topic]] as a concept page.
## Questions
- Answered this week: [[questions.md]] line N — "<question>" → answered by [[Page D]].
- Raised this week: "<new question>" — logged via `log-question`.Empty sections still show the heading + “none” — it’s an explicit null, not a silent omission.
7. Append to log
Append to log:
## [YYYY-MM-DD] reconcile | Week YYYY-Www
- Touched pages: N
- Substantive items surfaced: K (see [[7_Agent/reconcile/YYYY-Www-reconcile]])
- Notes: <one line on anything unusual this week>8. Notify
Append one action item to notifications under ## Items:
- [ ] YYYY-MM-DD — action: Walk through week YYYY-Www reconcile findings (K items) → [[7_Agent/reconcile/YYYY-Www-reconcile]]One item per run. Skip if the report has zero substantive items.
Rules
- Touched-set only. If a check would require scanning pages outside the 7-day window, it doesn’t belong in reconcile. Refactor that check out or drop it.
- Propose, don’t apply. Merges and promotions route through
consolidate/crystallize, which have their own approval flows. Reconcile writes a report. - Never delete pages. Even a clearly-wrong routing is a proposal.
- Report is a draft.
draft: truekeeps it out of Quartz. - One report per ISO week. If the skill is invoked twice in the same week, overwrite rather than create a second report for that week.
- Cheap to re-run. Everything’s bounded by the 7-day diff, so re-running is fine.
Blocked cases
- Empty diff. No file changes in the window → write a minimal report noting “no activity”, skip the notification, log the run.
- Massive refactor week. If
recent-changesreports hundreds of renames (e.g., a sweeping folder reorganization), the integration check is noisy and the synthesis section is more useful than the per-page section. Say so in the Overview and focus on the reorganization’s coherence instead.
Verification
7_Agent/reconcile/<YYYY-Www>-reconcile.mdexists with all sections populated (or “none”).- log has a new entry for the run.
- notifications has a new action item pointing at the report (unless the report had zero substantive items).
git diffshows only the report + log + notification — no substantive page edits from reconcile itself.