# LLM Wiki Schema (Operational Contract) You are the dedicated maintainer of this vault as a persistent, compounding wiki. ## Mission Maintain a high-signal personal knowledge base where: - `raw/` contains immutable source materials. - `wiki/` contains LLM-authored, continuously maintained markdown pages. - `index.md` is the content catalog. - `log.md` is an append-only chronological operation log. The user curates sources and asks questions. You perform all wiki maintenance. ## Non-Negotiable Rules 1. Never modify files inside `raw/`. 2. Always update `index.md` and `log.md` after any ingest/query/lint operation that changes the wiki. 3. Prefer editing existing pages over creating duplicates. 4. Use Obsidian-style wiki links (`[[page-name]]`) for internal references. 5. Record contradictions and superseded claims explicitly (do not silently overwrite history). 6. Keep claims attributable: include source links to `wiki/sources/*` pages. 7. Do not leave orphan pages intentionally; add at least one inbound and one outbound link when possible. 8. Keep writing concise, structured, and diff-friendly. 9. Every wiki page carries exactly one page-type hashtag (see Tagging Rules) matching its folder. ## Folder Convention ```text raw/ sources/ # immutable source markdown/text/pdf exports assets/ # immutable local images/files referenced by raw sources wiki/ overview.md # top-level synthesis and navigation script-coverage.md # machine-maintained: concept coverage vs the webinar script sources/ # one summary page per ingested raw source entities/ # people, orgs, projects, places, tools concepts/ # themes, ideas, methods, frameworks timelines/ # optional chronological reconstructions comparisons/ # side-by-side analyses queries/ # durable outputs created from Q&A sessions lint-reports/ # periodic health-check reports ``` ## File Naming Rules - Use kebab-case for file names. - Prefix source summary pages with date: `YYYY-MM-DD-title.md`. - Prefer stable canonical pages: - `wiki/entities/.md` - `wiki/concepts/.md` - If a page name collides, merge instead of creating suffixes unless truly distinct. ## Tagging Rules Every page in `wiki/` starts with its page-type hashtag on its own line, directly after the `# ` heading (Obsidian inline tag format): ```text # <Title> #<type-tag> ## <first section> ``` Folder → required tag: | Folder / file | Tag | | ---------------------- | -------------- | | `wiki/overview.md` | `#overview` | | `wiki/script-coverage.md` | `#coverage` | | `wiki/sources/*` | `#source` | | `wiki/entities/*` | `#entity` | | `wiki/concepts/*` | `#concept` | | `wiki/timelines/*` | `#timeline` | | `wiki/comparisons/*` | `#comparison` | | `wiki/queries/*` | `#query` | | `wiki/lint-reports/*` | `#lint-report` | - Exactly one page-type tag per page; it must match the page's folder. - Additional topical tags are allowed on the same line after the type tag (e.g. `#concept #ai-tooling`), but the type tag comes first. - When creating any new page, add the tag immediately; when moving a page between folders, update the tag in the same operation. ## Required Page Templates ### 1) Source Summary (`wiki/sources/*.md`) Must include sections: - `# <title>` - `#source` tag line (per Tagging Rules) - `## Source Metadata` (date, raw path, source type, ingestion date) - `## Core Claims` - `## Key Evidence / Details` - `## Connections` (links to entities/concepts/comparisons) - `## Open Questions` - `## Change Impact on Wiki` (what pages were updated and why) ### 2) Entity / Concept Page Must include: - `# <name>` - `#entity` or `#concept` tag line (per Tagging Rules) - `## Summary` - `## Current Understanding` - `## Evidence` (bullets with links to `wiki/sources/*`) - `## Related Pages` - `## Contradictions / Uncertainty` - `## Next Questions` ### 3) Query Output (`wiki/queries/*.md`) Must include: - `#query` tag line (per Tagging Rules) - Question asked - Answer - Evidence trail (links) - Follow-up questions - Whether this output changed existing pages ### 4) Coverage File (`wiki/script-coverage.md`) Machine-read by the dashboard plugin, which parses the table positionally. The shape below is required exactly — a deviation renders as parse errors, not as a best-effort read. - `# Script coverage` - `#coverage` tag line - `## Metadata`, containing these two lines verbatim in this form: - `- **Script:** ` followed by the raw script path in backticks - `- **Last synced:** ` followed by a `YYYY-MM-DD` date - `## Coverage`, containing one markdown table with exactly these four columns in this order: `Concept`, `Status`, `Station`, `Pinned` - **Concept** — an Obsidian wikilink to a page in `wiki/concepts/` - **Status** — exactly one of `covered`, `partial`, `absent`, lowercase - **Station** — one of the seven station names spelled exactly as listed in Workflow D, a comma-separated list of them, the lowercase word `all`, or an em dash `—` when the status is `absent` - **Pinned** — the lowercase word `yes`, or empty - `## Notes` and `## Related Pages` are free prose and are not parsed. The parser reads every markdown table in the file, so do not add a second table. ## Standard Workflows ### Workflow A: Ingest One Source When user says "ingest <source>": 1. Read the raw source from `raw/sources/` (and `raw/assets/` references if needed). 2. Extract key claims, facts, entities, concepts, uncertainty. 3. Create/update one source summary in `wiki/sources/`. 4. Update relevant `wiki/entities/*` and `wiki/concepts/*` pages. 5. Update `wiki/overview.md` synthesis if this source materially changes understanding. 6. Update `index.md`. 7. Append ingest entry to `log.md`. 8. Report what changed, what is uncertain, and suggested next source/questions. 9. If this ingest created or modified any page in `wiki/concepts/`, run Workflow D (Sync Script Coverage) before reporting. ### Workflow B: Answer Query 1. Read `index.md` first. 2. Select relevant pages and synthesize answer with page citations. 3. If answer has durable value, save to `wiki/queries/YYYY-MM-DD-<slug>.md`. 4. If answer reveals new synthesis, update affected concept/entity pages. 5. Update `index.md` and append query entry in `log.md` when files changed. ### Workflow C: Lint Wiki Run periodic health checks for: - contradiction detection across pages - stale claims superseded by newer sources - orphan pages / weak linking - high-mention concepts lacking dedicated pages - missing evidence links - missing or folder-mismatched page-type tags (per Tagging Rules) Write report to `wiki/lint-reports/YYYY-MM-DD-lint.md`, then update `index.md` and `log.md`. ### Workflow D: Sync Script Coverage Maintains `wiki/script-coverage.md` — one row per page in `wiki/concepts/`, judged against the script named in that file's `**Script:**` metadata field. 1. Read `wiki/script-coverage.md` and note every row where `Pinned` is `yes`. 2. Read the script and every page in `wiki/concepts/`. 3. For each concept, decide `Status` and `Station`: - `covered` — the script delivers the idea, whether or not it uses the page's name. - `partial` — the script gestures at it but never lands it. - `absent` — the script never reaches it. - `Station` is one of the seven — `Chat box`, `ReAct`, `Tools`, `Memory`, `Skills`, `Process`, `OS` — spelled exactly as written here, or a comma-separated list of them, or the lowercase word `all`, or `—` when absent. 4. **Never modify a row whose `Pinned` is `yes`** — not its status, not its station. A pinned row is the user's judgment and outranks yours. 5. Add rows for concept pages with no row. Remove rows whose concept page no longer exists. A pinned row whose concept page no longer exists is still removed — step 4 protects the user's judgement about a live concept, not a dangling row. 6. Update `**Last synced:**` to today. 7. Update `index.md` and append a `sync` entry to `log.md`. Run this workflow: - at the end of any ingest that creates or modifies a page in `wiki/concepts/` - whenever the script file itself changes - on the explicit `sync script coverage` intent The coverage baseline is always the raw script. Ingesting the script into `wiki/sources/` does not change the baseline. ## Citation & Evidence Policy - Prefer citing wiki source summaries (`wiki/sources/*.md`) rather than raw files in normal answers. - If citing raw material directly, also reflect it into a source summary page. - Mark uncertain or contested claims with `Status: tentative` in relevant section. ## Update Policy - Never perform silent large rewrites. - Preserve meaningful prior interpretations; move outdated material under a "Superseded" note when needed. - Keep sections ordered consistently for predictable diffs. ## Operational Commands (Natural Language) Supported intents: - "ingest path-or-title" - "query: question" - "lint wiki" - "show recent changes" - "suggest next sources" - "sync script coverage" Always execute intents according to workflows above. ## Session Start Checklist At start of every session: 1. Read `index.md` and the latest section of `log.md`. 2. Identify last completed operation and current open questions. 3. Continue from prior state without resetting conventions.