Files
claudetools/.claude/specs/wiki-layer/plan.md
Mike Swanson cd80f5e447 feat: add wiki knowledge layer (Phase 0 + Phase 1 seed)
Implements LLM-compiled wiki layer between raw session logs and live
CONTEXT.md, inspired by Karpathy's knowledge base workflow. Adds wiki/
directory structure, article templates, spec docs, and seeds first two
articles (Cascades of Tucson, GuruRMM) from 60+ session logs.

Updates CLAUDE.md to check wiki first on all context-loading triggers.
Captures verified ACG IP/hostname map and Neptune physical-location
clarification (Dataforth D2, subnet overlap TODO) in memory.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 15:42:38 -07:00

198 lines
7.4 KiB
Markdown

# Wiki Layer — Implementation Plan
**Status:** Phase 1 in progress (Cascades + GuruRMM seeded 2026-05-24)
---
## Phase 0 — Structure (no code, low effort, high foundation value)
**Goal:** Create the directory skeleton and article templates. Nothing else runs yet.
### Tasks
- [ ] Create `wiki/` root with `index.md` stub
- [ ] Create `wiki/clients/`, `wiki/projects/`, `wiki/systems/`, `wiki/patterns/` directories
- [ ] Write article templates (see `standards.md`)
- [ ] Add `.gitkeep` files so empty dirs commit
- [ ] Verify GrepAI watcher picks up `wiki/` automatically (it should — it watches the repo root)
- [ ] Add `wiki/` mention to `CLAUDE.md` context-loading section (read `wiki/<topic>.md` when topic is known)
**Done when:** Directory exists, templates written, GrepAI indexes it.
---
## Phase 1 — Seed Pass (high effort, immediate ROI)
**Goal:** Compile first-pass wiki articles for the two highest-value targets: GuruRMM and Cascades.
### Approach
Run `/wiki-compile` manually, read and correct output, commit. This is a supervised pass — we're validating the compilation quality before automating.
### Tasks
- [ ] Compile `wiki/projects/gururmm.md` from `projects/msp-tools/guru-rmm/session-logs/` + root session logs mentioning GuruRMM
- [ ] Compile `wiki/clients/cascades.md` from `clients/cascades/session-logs/` + root logs mentioning Cascades
- [ ] Compile `wiki/systems/` entries for Neptune, Jupiter, Pluto, Saturn (from session logs + credentials.md)
- [ ] Mike reviews each article, corrects factual errors, commits
- [ ] Run second seed pass for remaining active clients and projects
**Done when:** All active clients and systems have wiki articles. Mike has reviewed at least Cascades + GuruRMM.
---
## Phase 2 — `/wiki-compile` Command
**Goal:** Implement the compile command as a repeatable skill.
### Command behavior
```
/wiki-compile [scope]
Scopes:
client:<name> Compile from clients/<name>/session-logs/ + matching root logs
project:<name> Compile from projects/<name>/session-logs/ + matching root logs
system:<name> Compile from all logs mentioning the system name or hostname
all Full pass — all articles, oldest-first by last_compiled date
Without scope: prompt user to select
```
### Steps Claude takes when `/wiki-compile` is invoked
1. Identify scope from argument
2. Find relevant session logs (by directory + GrepAI keyword search)
3. Read existing wiki article if it exists (note `last_compiled` date)
4. Read session logs newer than `last_compiled` (or all if new article)
5. Read relevant CONTEXT.md and memory entries for cross-reference
6. Call Ollama (qwen3:8b) to generate/update the article
- Summarize new information, merge with existing
- Update backlinks section
- Update `last_compiled` frontmatter
7. Present diff to user for review before writing
8. On approval: write article, update `wiki/index.md`
### Tasks
- [ ] Write `.claude/commands/wiki-compile.md` (the skill file)
- [ ] Write Ollama prompt template for article compilation
- [ ] Implement index.md update logic
- [ ] Test with GuruRMM and Cascades
**Done when:** `/wiki-compile client:cascades` runs end-to-end, produces correct article, updates index.
---
## Phase 3 — `/context` Integration
**Goal:** `/context` checks wiki before raw logs.
### Updated `/context` flow
```
1. Search wiki/index.md for topic mentions
2. Read matching wiki/<type>/<name>.md articles (synthesized knowledge)
3. THEN search session logs for recent/specific detail not yet compiled
4. Check credentials.md for access details
5. Return synthesized answer: wiki content + relevant log excerpts
```
### Tasks
- [ ] Update `.claude/commands/context.md` with wiki-first search step
- [ ] Add "Check wiki/index.md" as Step 1 in context command
- [ ] Add note: if topic has a wiki article, read it first; use logs only for recency
**Done when:** Running `/context cascades` returns the wiki article summary + any recent-session additions.
---
## Phase 4 — `/wiki-lint` Command
**Goal:** Health-check the wiki for staleness and integrity issues.
### Lint rules
| Rule | What It Checks | Action |
|---|---|---|
| Stale IPs | IPs in wiki vs CONTEXT.md + credentials.md | Flag discrepancies |
| Rate conflicts | Billing rates in wiki vs memory entries | Flag conflicts |
| Orphaned articles | Wiki articles with no session log activity in 90+ days | Flag for review/archive |
| Missing articles | Clients/projects mentioned in recent logs with no wiki article | Suggest compile |
| Broken backlinks | `[[links]]` pointing to non-existent articles | Flag |
| Memory conflicts | Memory entries contradicting wiki facts | Flag with both versions |
### Tasks
- [ ] Write `.claude/commands/wiki-lint.md`
- [ ] Implement lint checks
- [ ] Decide: run as scheduled cron or manual-only? (recommend: manual initially, cron after 30 days)
**Done when:** `/wiki-lint` runs, produces a report with actionable issues.
---
## Phase 5 — `/save` Integration (optional, lower priority)
After writing session log, detect which clients/projects/systems were mentioned, prompt:
```
Session log saved. Detected topics: GuruRMM, Cascades.
Update wiki for these topics? [y/n]
```
If y: run `/wiki-compile` for each detected topic before sync.
### Tasks
- [ ] Add topic detection to `/save` (regex on session log content)
- [ ] Add post-save wiki update prompt
- [ ] Wire through to `/wiki-compile`
---
## Migration Strategy
| What | Risk | How |
|---|---|---|
| Session logs | None | Not touched, wiki reads from them |
| CONTEXT.md | None | Not touched, wiki reads from it |
| Memory entries | Low | Wiki links to memory; memory links to wiki |
| `/context` command | Low | Additive — wiki step added before log search |
| GrepAI index | None | Automatic — picks up `wiki/` files on next index cycle |
| Cross-machine sync | None | Wiki is tracked in Git, syncs via normal `sync.sh` |
**No existing functionality is removed or broken.** All changes are additive.
---
## Recommended Start Order
1. ~~Phase 0 (structure)~~ — DONE 2026-05-24
2. Phase 1 seed:
- [x] Cascades of Tucson — `wiki/clients/cascades-tucson.md` — DONE 2026-05-24
- [x] GuruRMM — `wiki/projects/gururmm.md` — DONE 2026-05-24
- [ ] Systems: neptune, jupiter, pluto, saturn
- [ ] `wiki/overview.md` — compile AFTER systems are seeded (reads other wiki articles)
3. Phase 2 command — implement and test — 2-3 hours
4. Phase 3 context integration — 30 minutes
5. Phase 4 lint — schedule for after 30 days of real wiki use
6. Phase 5 save integration — nice-to-have, do if Phase 1-4 prove value
## Overview Article (added 2026-05-24)
`wiki/overview.md` — scope `/wiki-compile overview`
The "cold-start" doc. Compiles from other wiki articles (not raw logs directly), so it is cheap to maintain.
Sections:
- **Team** — Mike (admin/owner), Howard (tech/employee), machines, roles
- **Active Clients** — one-liner per client with billing type, hours, primary open project, link to wiki article
- **Active Projects** — one-liner per project with version/status, link to wiki article
- **Key Infrastructure** — what runs where (Neptune, Jupiter, Pluto, Saturn, plus client-side infra)
- **Tooling Stack** — coord API, GrepAI, Ollama, SOPS vault, Gitea, Syncro PSA, GuruRMM
- **State of the Business** — current snapshot: active projects, open billing, near-term priorities
This article is the one Howard reads on a new machine before touching anything else.