mirror of
https://github.com/doum1004/llmwiki-cli.git
synced 2026-04-28 23:16:09 +02:00
Add wiki health checks and link graph navigation: - wiki lint with broken links, orphans, frontmatter, index consistency - wiki links/backlinks for navigating the wikilink graph - wiki orphans to find unlinked pages - wiki status with page counts, link stats, recent activity, git info - Frontmatter parser and wikilink resolution engine - 19 new tests (87 total)
2.2 KiB
2.2 KiB
Phase 2: Read + Write + List + Search
Status: COMPLETE
Goal: LLM can read, write, and search wiki pages.
Files
| File | Status | Description |
|---|---|---|
src/lib/wiki.ts |
Done | WikiManager class: readPage, writePage, appendPage, listPages, pageExists |
src/lib/search.ts |
Done | Text search: term-frequency scoring, snippet extraction |
src/commands/read.ts |
Done | wiki read <path> — print page to stdout |
src/commands/write.ts |
Done | wiki write <path> — read stdin, write page |
src/commands/append.ts |
Done | wiki append <path> — read stdin, append to page |
src/commands/list.ts |
Done | wiki list [dir] [--tree] [--json] |
src/commands/search.ts |
Done | wiki search <query> [--limit N] [--all] [--json] |
test/read-write.test.ts |
Done | 15 tests passing |
test/search.test.ts |
Done | 8 tests passing |
Commands Added
wiki read <path>
wiki write <path>
wiki append <path>
wiki list [dir] [--tree] [--json]
wiki search <query> [--limit N] [--all] [--json]
Tests
- 23 new tests (15 read-write + 8 search), all passing
- 46 total tests across 3 files
Notes
writeandappendread from stdin viaprocess.stdinwriteauto-creates parent directoriesappendreturns exit 1 if page doesn't existlistsupports--tree(visual tree) and--jsonoutput- Search uses term-frequency scoring with word-boundary matching
- Search
--alliterates all registered wikis - WikiManager normalizes paths to forward slashes on Windows
Possible Enhancements
Search is currently keyword-based (term-frequency). These enhancements stay within the "no LLM API" constraint:
- Fuzzy matching — handle typos and stemming
- BM25 scoring — better ranking than raw term frequency
- Frontmatter/tag search — filter by tags, date ranges (
wiki search --tag transformers) - Regex search —
wiki search --regex "transform(er|s)" - Semantic search — not possible in the CLI (requires embeddings), but the LLM agent can orchestrate it by generating search terms from natural language and calling
wiki searchwith those terms. The CLI stays dumb, the LLM stays smart.