255 lines
9.2 KiB
Markdown
255 lines
9.2 KiB
Markdown
Subject: [n8n] -t Tech/Projects -p wiki-construct
|
|
|
|
---
|
|
project: wiki-construct
|
|
type: project-plan
|
|
status: active
|
|
path: Tech/Projects
|
|
tags:
|
|
- homelab
|
|
- obsidian
|
|
- knowledge-management
|
|
- claude-code
|
|
- skill
|
|
- llm-wiki
|
|
created: 2026-05-04
|
|
updated: 2026-05-04
|
|
---
|
|
|
|
# Wiki Construct — Project Plan
|
|
|
|
## Concept
|
|
|
|
Build the personal LLM-maintained wiki construct on the homelab,
|
|
based on the Karpathy LLM Wiki pattern. Scoped to be the visible
|
|
face of personal knowledge — organized synthesis I can browse and
|
|
reference in Obsidian, not a memory layer for agents. Lovebug and
|
|
other agents may reference the wiki when explicitly pointed at it,
|
|
but the wiki is not designed for autonomous agent consumption.
|
|
|
|
The wiki is one of two complementary memory systems being built:
|
|
|
|
- **Wiki** — my curated knowledge journey, slow, deliberate,
|
|
organized for human browsing.
|
|
- **OB1** — Lovebug's working memory, fast, voluminous, organized
|
|
for semantic recall via MCP.
|
|
|
|
The two systems are parallel, not unified. They share no
|
|
infrastructure beyond eventually feeding the same context-assembler
|
|
in some Phase 2 future.
|
|
|
|
## Architecture
|
|
|
|
Three layers, per the Karpathy pattern:
|
|
|
|
1. **Raw sources** — existing markdown files captured via the
|
|
email-to-vault pipeline. Immutable.
|
|
2. **Wiki** — LLM-maintained markdown files in the Obsidian vault.
|
|
Five page types, flat structure under four ownership domains.
|
|
3. **Spec + procedures** — `CLAUDE.md` at the vault root holds the
|
|
spec; a `wiki-maintenance` skill on herbydev holds the procedures
|
|
(compile, lint, migration). The skill is invoked through Dispatch.
|
|
|
|
## Decisions locked
|
|
|
|
### Scope
|
|
|
|
- [x] Phase 1 deliverable: working wiki with all five page types,
|
|
migrated from existing vault content
|
|
- [x] Phase 2 deferred: OB1 integration, wiki-aware extraction,
|
|
Jenny's interface, public template repo
|
|
- [x] Wiki is for me. Agents reference it when I point at them at
|
|
it, not autonomously.
|
|
|
|
### Structure
|
|
|
|
- [x] Four ownership domains: `Dev`, `Content`, `Homelab`, plus one
|
|
reserved slot (likely `Personal`, decided later)
|
|
- [x] Flat structure below the ownership domain — no `Projects/`,
|
|
`Sessions/`, `Reference/` subfolders. All files live directly
|
|
under the domain folder.
|
|
- [x] Top-level `Reference/` for cross-domain entities that don't
|
|
fit cleanly in one domain (Lovebug, OB1, herbydev, Jenny, Sunnie)
|
|
- [x] Categorization handled by frontmatter (`type:`, `tags:`),
|
|
not by folder hierarchy
|
|
- [x] Indexes and topic landings are auto-maintained, generated
|
|
from frontmatter queries
|
|
|
|
### Page types (five)
|
|
|
|
- [x] **Project page** — what I'm working on, current state,
|
|
decisions, open questions, sessions, related
|
|
- [x] **Session note** — what I did or thought through. Sessions
|
|
are top-level artifacts, not children of projects. They may
|
|
link to projects via wikilinks.
|
|
- [x] **Entity page** — recurring characters in my world (Lovebug,
|
|
OB1, herbydev, Sunnie, Jenny, Tailscale, KeePassXC, etc.)
|
|
- [x] **Topic landing / index** — domain-level catalog and prose
|
|
overview, mostly machine-maintained
|
|
- [x] **Synthesis page** — cross-cutting analysis with required
|
|
source provenance. Agent generates during compile when it
|
|
identifies a worth-synthesizing pattern. Subject to lint
|
|
scrutiny.
|
|
|
|
### Operations
|
|
|
|
- [x] **Capture** — existing email-to-vault pipeline, no changes
|
|
- [x] **Compile** — agent-driven, on demand, invoked through
|
|
Dispatch via the wiki-maintenance skill
|
|
- [x] **Lint** — agent-driven, on demand, invoked through Dispatch
|
|
- [x] **Reference** — I navigate Obsidian indexes and pages; agents
|
|
read files when pointed at them
|
|
- [x] No autonomous agent behavior. Every wiki maintenance
|
|
operation is human-initiated.
|
|
|
|
### Skill pattern
|
|
|
|
- [x] Skill lives at `~/.claude/skills/wiki-maintenance/` on
|
|
herbydev
|
|
- [x] Trigger phrases: "update the wiki", "compile the wiki",
|
|
"lint the wiki", "migrate the wiki"
|
|
- [x] Skill bundle: `SKILL.md`, `compile.md`, `lint.md`,
|
|
`migration.md`
|
|
- [x] Procedures live in the skill (vault-agnostic). Spec lives
|
|
at `<vault-root>/CLAUDE.md` (vault-specific). They reference
|
|
each other.
|
|
- [x] Session plans through Dispatch are thin — just the trigger
|
|
phrase; the skill handles routing
|
|
|
|
### Git protocol
|
|
|
|
- [x] Two commits per compile run: `pre-compile: <reason>` and
|
|
`compile: <summary>`
|
|
- [x] Compile commit body includes reasoning: pages touched,
|
|
pages created, entities promoted, contradictions flagged,
|
|
synthesis pages written
|
|
- [x] Git log is the audit trail; `git reset` is the rollback
|
|
- [x] Lint pass after suspicious compile runs; review diffs
|
|
before pushing
|
|
|
|
### Tags
|
|
|
|
- [x] Curated starter list, not a free-for-all
|
|
- [x] New tags require a real reason
|
|
- [x] Anything that looks like a tag but feels like an entity
|
|
should be a wikilink to an entity page instead
|
|
|
|
## Out of scope
|
|
|
|
- Wiki-aware extraction (extractor doesn't read the wiki)
|
|
- OB1 integration (separate project; deferred until OB1 baseline
|
|
is operational)
|
|
- Jenny's interface (separate project; PBS-public web surface,
|
|
served from PBS site eventually)
|
|
- Pre-compact hook for Dispatch transcript capture (OB1 territory)
|
|
- Public GitHub template repo
|
|
- Automated synthesis page generation outside compile runs
|
|
- Concept pages and comparison pages (Karpathy spec extras —
|
|
skip until felt as a gap)
|
|
|
|
## Open items
|
|
|
|
- [ ] Fourth ownership folder name (deferred until needed; likely
|
|
`Personal`)
|
|
- [ ] Dataview vs. agent-maintained indexes — Dataview is native
|
|
to Obsidian and lighter; agent-maintained gives more control.
|
|
Decide during deployment.
|
|
- [ ] Exact tag list (will emerge during migration; start small)
|
|
- [ ] Whether to keep top-level `Reference/` or fold cross-domain
|
|
entities into `Homelab/` (lean toward keeping it separate)
|
|
|
|
## Build phases
|
|
|
|
### Phase A — Draft artifacts
|
|
|
|
Produce the three deliverables: the project plan (this file),
|
|
`CLAUDE.md` for the vault root, and the `wiki-maintenance` skill
|
|
bundle (`SKILL.md`, `compile.md`, `lint.md`, `migration.md`). All
|
|
drafted in the Claude.ai project session preceding the build.
|
|
|
|
### Phase B — Deploy artifacts
|
|
|
|
Hand-off session through Dispatch. Lovebug:
|
|
|
|
- Creates the new four-folder structure in the vault
|
|
- Drops `CLAUDE.md`, `index.md`, `log.md` at the vault root
|
|
- Installs the `wiki-maintenance` skill at `~/.claude/skills/`
|
|
- Initializes the vault git repo (if not already)
|
|
- Verifies the skill loads correctly with a smoke-test invocation
|
|
("test the wiki skill" or similar)
|
|
|
|
### Phase C — Migration
|
|
|
|
Three-step, agent-driven, user-confirmed at each step:
|
|
|
|
1. **Survey** — agent walks current vault, produces report:
|
|
what's there, current folder, proposed new home in
|
|
four-folder structure. User reviews and corrects.
|
|
2. **Move** — agent moves files according to confirmed plan,
|
|
fixes wikilinks as it goes, commits.
|
|
3. **Compile** — first compile run on migrated vault. Generates
|
|
project pages from existing project plans, entity pages for
|
|
obvious characters, topic landings. User reviews, corrects,
|
|
agent updates.
|
|
|
|
## Tasks
|
|
|
|
### Phase A — Draft
|
|
|
|
- [ ] Draft `wiki-construct.md` project plan (this file)
|
|
- [ ] Draft `CLAUDE.md` for vault root
|
|
- [ ] Draft `SKILL.md` for wiki-maintenance skill
|
|
- [ ] Draft `compile.md` procedure
|
|
- [ ] Draft `lint.md` procedure
|
|
- [ ] Draft `migration.md` runbook
|
|
- [ ] Project knowledge file for the Claude.ai project context
|
|
|
|
### Phase B — Deploy
|
|
|
|
- [ ] Hand off draft artifacts to Lovebug via Dispatch session
|
|
- [ ] Lovebug creates four-folder structure in vault
|
|
- [ ] Lovebug deploys `CLAUDE.md`, `index.md`, `log.md` to vault
|
|
root
|
|
- [ ] Lovebug installs skill at `~/.claude/skills/wiki-maintenance/`
|
|
- [ ] Initialize vault git repo (or confirm existing one)
|
|
- [ ] Smoke-test the skill: invoke "test the wiki skill" through
|
|
Dispatch and verify it loads, reads CLAUDE.md, and reports back
|
|
|
|
### Phase C — Migration
|
|
|
|
- [ ] Trigger migration: "migrate the wiki to the new structure"
|
|
- [ ] Review survey report from agent
|
|
- [ ] Confirm move plan
|
|
- [ ] Review post-move state
|
|
- [ ] Trigger first compile run
|
|
- [ ] Review compile output (project pages, entity pages, topic
|
|
landings, synthesis pages if any)
|
|
- [ ] Iterate on prompts if any page type is consistently wrong
|
|
|
|
### Phase 1 done when
|
|
|
|
- [ ] Vault is reorganized into four ownership domains, flat
|
|
- [ ] All five page types exist in the vault with real content
|
|
- [ ] At least one synthesis page exists with proper source
|
|
provenance
|
|
- [ ] Topic landing pages list active projects, recent sessions,
|
|
key entities
|
|
- [ ] Top-level `index.md` orients across all four domains
|
|
- [ ] Git history shows clean compile commits with usable
|
|
reasoning
|
|
- [ ] **Success metric:** I can answer "what's going on with X"
|
|
for any active project in under 30 seconds, without grepping
|
|
|
|
## Notes
|
|
|
|
- The skill pattern means session plans through Dispatch can be
|
|
one-line trigger phrases. The skill description does the
|
|
routing.
|
|
- CLAUDE.md is portable across vaults (each vault gets its own).
|
|
The skill is vault-agnostic and works against any vault that
|
|
has a CLAUDE.md following the spec.
|
|
- Synthesis pages are the one place where lossy compression risk
|
|
is real. Sources-required + lint pass + git diff review are
|
|
the three controls.
|
|
- Migration is one-shot. After migration, the wiki is
|
|
operational and compile runs are the steady-state operation. |