3.1 KiB
Executable File
3.1 KiB
Executable File
source, content_hash, namespace, last_synced, confidence, tags
| source | content_hash | namespace | last_synced | confidence | tags | ||||
|---|---|---|---|---|---|---|---|---|---|
| raw/wiki-ingest-prompt.md | 29f6a0914d428cf62eeb2a832d6b3048edf3e1d16aa7714c09f686377394d128 | work | 2026-04-27 | 0.9 |
|
Wiki Ingest Process
The agent prompt that maintains ~/obsidian/wiki/ as a synthesised
knowledge base over external project files exposed via symlinks in
~/obsidian/raw/. Run locally by claude -p (the launchd job
run-wiki-ingest.sh at 22:00) — not via API, because file-system
writes require a local Claude Code session. See
personal-os-architecture for where this fits in the broader system.
Discovery loop
For every file in ~/obsidian/raw/:
- Read the file (skip if the symlink target is missing).
- Compute SHA256 with
shasum -a 256. - Look for a wiki page whose frontmatter has
source: raw/<filename>. - If a page exists and its
content_hashalready matches, skip. - Otherwise enqueue for synthesis.
If nothing changed, the agent prints "Wiki is up to date. Nothing to ingest." and exits.
Synthesis rules
- Wiki pages are named by topic, not source filename
(e.g.
personal-os-schema.md, notschema.md). - Output is a synthesis, never a verbatim copy. Extract facts, decisions, and structure. Hard cap of 800 words per page; split into linked pages if the topic is larger.
- Use
[[double brackets]]for cross-references between wiki pages.
Page format
Frontmatter is the source of truth for incremental ingestion:
source: raw/<filename>
content_hash: <sha256>
namespace: work
last_synced: <YYYY-MM-DD>
confidence: 0.8
tags: [tag1, tag2]
Body has a title, synthesis prose, a ## Key Points list, and a
## Related line of [[wiki-links]].
Confidence ladder
- 1.0 — reserved for human-written notes in
work/,personal/,family/. The agent must never edit these files. - 0.9 — highly structured / authoritative source (e.g. a schema).
- 0.8 — clear single source. Default.
- 0.6 — inferred or partial content.
Hard rules
- Never copy source files verbatim — always synthesise.
- Never edit any file with
confidence: 1.0. - Never process files in
namespace: familyunless explicitly told. - Always update
content_hashandlast_syncedafter writing a page. - Skip broken symlinks; do not create a wiki page for them.
Reporting
After the run, the agent emits a summary:
Wiki Ingest — <date>
Processed: N files
Created: N new pages
Updated: N pages
Skipped: N (unchanged)
Pages updated:
- wiki/<filename> (source: raw/<source>)
Key Points
- Hash-based incremental: re-runs are cheap when nothing changed.
- Topic-named pages decouple the wiki from source-file naming.
- Frontmatter
source+content_hashis the ingestion contract; the personal-os-schema mirrors the same idea inwiki_pages. - Human-edited (confidence 1.0) pages are immutable to the agent — the trust boundary between synthesis and curated knowledge.
- Local-only execution: writes to
~/obsidian/need a real FS, so the job runs under launchd viaclaude -p, not the API.