Phân tích sâu repo lumina-wiki@0.8.1 (gốc @0.3.0 2026-05-02, snapshot trung gian @0.5.0), đối chiếu với tầm nhìn LLM-Wiki của Karpathy, landscape 7 đối thủ, literature/industry standards (GraphEval · OpenLineage · TempValid · LLM jury), và so sánh trực tiếp với thieung/personal-wiki-hub. Kết quả: 3 báo cáo, 1 lộ trình 5-phase, 3 đề xuất port ROADMAP-aligned — đến v0.8.x đã đóng được gap provenance + mở migration path.
Một câu: Lumina có engineering hygiene xuất sắc nhưng chưa đóng được gap chất lượng tri thức — và roadmap hiện tại đang ưu tiên sai (mở rộng nguồn trước quality gate).
Lumina implement đúng structural vision của Karpathy, thiếu dynamic vision — compounding qua thời gian, self-improvement, contradiction surfacing. — Báo cáo phân tích, mục 4
abc901e chore: bump version to 0.4.0 and refine skill system. Đẩy lên thềm 0.5 + tinh chỉnh skill system, không thêm skill mới. Skill count vẫn 14.
8189efe feat(wiki): foundation aliases and resolve-alias for cross-skill dedup. Cross-skill dedup mechanism mới — giảm friction với 28 edge types khi nhiều skill cùng đụng concept. wiki.mjs case thứ 19.
6e6692c handle prefill collisions + Wikipedia disambiguation. ec8fbbe surface purpose, dedupe ingested papers, log phases. Research pack giờ chống được edge case thực tế của khoa học data.
4dc349e docs(policy): reframe cross-model review rule around bundled infra, not bias. Rule mới: v0.1 không bundle llm-review MCP. User wire-in được nếu muốn — không cấm, chỉ không ship. Ảnh hưởng Phase 4 jury.
28c350a fix(wiki): unwrap resolve-alias no-match stderr format. Skill polish, không phá schema.
ROADMAP.md dòng 3 vẫn ghi "Current shipped version: v0.2.0". Lệch 3 minor version với package.json. Cần đồng bộ.
Tác động lên 4 gap chất lượng (mục 5): v0.5.0 chưa đụng gap nào. Foundation aliases là cross-skill dedup chứ không phải truth check / provenance / decay. Phase 1–3 must-have của lộ trình (mục 8) vẫn đầy đủ — không có item nào "đã âm thầm xong".
4 release liên tiếp (v0.6 · v0.7 · v0.8.0 · v0.8.1) trong 1 ngày — tập trung trực tiếp vào quality gate stack: provenance schema, confidence enum, raw-anchor semantic, migration path. Lần đầu Lumina chạm vào gap chất lượng (mục 5) thay vì chỉ siết hygiene.
880280c feat(v0.6): quality gate upgrades. provenance required enum (replayable|partial|missing) trên sources, confidence optional float 0–1 trên sources/concepts. Lint L11 warn confidence missing. Lint --summary JSON shape ổn định cho machine consumption.
wiki.mjs log entry mang session:<8hex>, env override LUMINA_SESSION_ID cho multi-write correlation. Installer thêm migrateManifest helper — sẵn sàng cho schema bump. ROADMAP add v1.0 /lumi-verify 3-stage plan (A wiki↔raw · B raw↔URL · C wiki↔web).
a779003 feat(v0.7): legacy migration path for upgrades. /lumi-migrate-legacy core skill — LLM-driven backfill provenance/confidence. CHANGELOG.md ship vào _lumina/CHANGELOG.md để skill đọc. Post-upgrade installer banner show lint summary khi version bump. Manifest schemaVersion 1 → 2 + flag legacyMigrationNeeded.
ce51791 feat(v0.8): raw-centric provenance and PDF fetch landing zone. Field raw_paths: array trên sources — pointer rõ ràng đến raw artifact. raw/download/<resource>/ permanent zone (arxiv/doi/s2/web). _lumina/tools/fetch_pdf.py idempotent download, atomic write. Lint L12 cảnh báo raw_paths broken/transient.
url:<str> → urls:<array> để đối xứng với raw_paths. Provenance reframe raw-centric: replayable giờ cần raw_paths resolve được trên disk (URL không còn precondition — file-only sources qualify). /lumi-ingest Mode B: input URL/arxiv-id/DOI/title → resolve + fetch + ingest. Manifest schemaVersion 2 → 3.
41d49ba release: v0.8.1 — legacy url: warning to surface migration on upgrade. Lint L02 cảnh báo khi source page còn mang field url: string sau khi đổi sang urls: array. Trước fix này, upgrade v0.7 → v0.8 lint vẫn xanh và banner installer im lặng — user không biết phải chạy /lumi-migrate-legacy. Field cũ runtime ignore, không invalid; warning thuần migration nudge.
Tác động lên 4 gap chất lượng (mục 5): ✓ Gap ③ provenance đã đóng (schema enum + raw_paths + L12) · ◐ Gap ② confidence đã có schema + L11 warn (chưa enforce) · ◐ Gap ① truth verification roadmap'd (v1.0 /lumi-verify 3-stage) · ✗ Gap ④ feedback loop / decay chưa chạm. Tổng: Phase 1 must-have (mục 8) gần như xong, Phase 2 đang đi vào (verify pass), Phase 3 (decay) vẫn để ngỏ. Migration path là bonus deliverable không có trong lộ trình ban đầu — phản ứng đúng với fact rằng có user upgrade từ pre-v0.6.
Doc hygiene update: ROADMAP.md dòng 3 vẫn ghi "Current shipped version: v0.2.0" — lệch 6 minor version với package.json@0.8.1. Card 1.1 cảnh báo từ v0.5.0 vẫn còn nguyên giá trị. Đây là chỗ cuối cùng chưa đồng bộ sau 4 release liên tiếp.
Phiên đi qua 3 vòng đào sâu: phân tích repo → đối chiếu Karpathy + docx → research thêm nguồn ngoài để cụ thể hoá hành động.
Nắm 3 layer (raw/wiki/schema), 14 skills 3 packs, schema as-code (schemas.mjs), 9 lint checks structural. Khẳng định docx phân tích chính xác về gap.
Engineering hygiene trên trung bình ngành. Gap chính: format ≠ truth, self-rated confidence, no provenance, no review queue, reset hạt nhân, no feedback loop.
Phát hiện: 7 implementation LLM-Wiki khác đã tồn tại. nvk/llm-wiki đã ship adversarial multi-agent + deep lint web-verify.
5 phase, 7–8 PW must-have. Mọi gap có pattern chuẩn hóa. Re-positioning sang "production-grade".
3 layer Karpathy + 4 layer engine của Lumina. Mỗi node link về source GitHub.
| Lớp | Số lượng | Ví dụ | Source |
|---|---|---|---|
| Entity types | 10 | concept · person · source · output · foundation · … | schemas.mjs |
| Edge types (directed) | 28 | cites · contradicts · extends · authored-by · uses-method · … | schemas.mjs |
| Lint checks | 9 (L01–L09) | kebab slug · required frontmatter · reverse edge · dedupe · index refresh | lint.mjs |
| Skills (3 packs) | 14 | core 6 · research 4 · reading 4 | src/skills/ |
| Python tools | 6 | extract_pdf · fetch_arxiv · fetch_s2 · fetch_wikipedia · … | src/tools/ |
Đây là moat — không nên đánh mất khi shift sang production-grade.
Mọi ghi qua temp + fdatasync + rename. safePath() reject .., abs path, drive letter, backslash. Không có lệnh ghi trực tiếp.
git diff --exit-code qua watched paths sau install lần 2. Symlink ladder (symlink → junction → copy) lưu strategy vào manifest.
Test bằng node --test + pytest. ci-package.mjs chặn publish nếu có postinstall. Outbound duy nhất: npm view update check, suppressible.
Markdown + YAML là read/write surface tự nhiên cho LLM agent. Khớp gist Karpathy. Bidirectional link enforcement (28 edge types có inverse).
schemas.mjs pure data, no I/O. Cả wiki.mjs + lint.mjs import. Schema đổi → propagate tự động.
CLAUDE.md / AGENTS.md / GEMINI.md / .cursor là stub ~5 dòng → README.md. Markers <!-- lumina:schema --> cho upgrade idempotent.
Đây là khoảng cách giữa lời hứa "LLM-maintained knowledge artifact" và thực tế "format-validated ETL pipeline". Sau 4 release v0.6 → v0.8.1: 1 đóng hoàn toàn, 1 đóng một phần (schema có, enforce chưa), 1 đã roadmap'd, 1 chưa chạm.
9 check L01–L09 (giờ là L01–L12) vẫn structural-only. Đã roadmap: v1.0 /lumi-verify 3-stage (A wiki↔raw grounding · B raw↔URL drift · C wiki↔web external). Schema raw_paths v0.8 là precondition cho stage A. Chưa ship.
Schema confidence: float 0–1 đã có trên sources/concepts. Lint L11 warn khi missing. Còn thiếu: signal độc lập (LLM jury / agreement score) — vẫn self-rated, chỉ chuyển từ enum sang continuous. Anti-inflation chưa có.
v0.6: provenance required enum (replayable|partial|missing) + session_id 8-hex trên log entries. v0.8: raw_paths array + raw/download/<resource>/ + lint L12. Tạo entity X từ doc Y giờ truy ngược được tới file trên disk. "Git blame" cho wiki — done.
/lumi-ask sai → lỗi không quay ngược về graph. /lumi-reset vẫn hạt nhân. Confidence decay theo thời gian, query log, citation graph — chưa có item nào trong v0.6 → v0.8.1. Đây là gap duy nhất chưa chạm trong stack chất lượng.
Đến 2026 đã có ≥7 implementation Karpathy LLM-Wiki public. nvk/llm-wiki đã ship những thứ Lumina mới chỉ "nên thêm".
| Repo | Tiếp cận | Mạnh nhất | Yếu |
|---|---|---|---|
| karpathy gist | Spec/manifesto | 5k+ stars trong vài ngày | Không phải implementation |
| SamurAIGPT/llm-wiki-agent | Multi-IDE skill set | Claude/Codex/Gemini, no API key | Lint format-only |
| NicholasSpisak/second-brain | Obsidian-native | Vault tích hợp graph view | Single-IDE |
| nashsu/llm_wiki | Cross-platform desktop | UI cho non-CLI user | GUI heavy |
| nvk/llm-wiki 🔥 | Thesis-driven research | 5/8/10 adversarial agents · deep lint web-verify · session-event provenance · anti-confirmation-bias | Phức tạp |
| Pratiyush/llm-wiki | CLI sessions wiki | Tổng hợp từ session log | Phụ thuộc session capture |
| Robs87/llm-wiki | Hermes Agent skill | Health checks + KG | Nhỏ, mới |
| VectifyAI/OpenKB | Open framework | Library-style | Không opinionated |
| Lumina-Wiki (chúng ta) | npm scaffolder + payload | Engineering hygiene · idempotency CI · multi-IDE · schema-as-code | Quality gate yếu |
Lumina dẫn đầu engineering, theo sau quality features. Không ai trong landscape có: provenance theo chuẩn OpenLineage, schema migration framework, atomic write + idempotency CI, multi-IDE rendered stub. Đây là moat nếu giữ và build trên top.
Mọi gap đều có lời giải sẵn trong literature/industry. Lumina không cần phát minh lại — chỉ cần wire-up.
| Gap | Pattern | Source | Effort |
|---|---|---|---|
| Format ≠ truth | GraphEval: extract claim triples từ source → verify từng edge | arXiv 2407.10793 | 2 PW |
| No provenance | OpenLineage facet model + W3C PROV — RunEvent JSON với input/output facets | openlineage.io | 5 ngày |
| Self-rated confidence | TempValid: numeric [0,1] + score(t) = s₀·exp(-λ·Δt) | ACL 2024 | 3 ngày |
| Self-rated (jury) | LLM Jury: 2–3 model độc lập → diff → agreed = verified | Evidently AI · ACL 2024 | 2 PW |
| No feedback loop | Query log (jsonl) + citation tracking + decay engine | internal design | 2 PW |
| Reset hạt nhân | revoke --run / --source sau khi có provenance | derived | 2 ngày |
Block roadmap v1.0.0 hiện tại cho đến khi Phase 1–3 xong. Source expansion (v2 — OpenAlex/Unpaywall/CORE…) ride trên top quality gate.
Modular split wiki.mjs/lint.mjs · Provenance schema + lineage emitter · Targeted revoke · Migration framework · Numeric confidence migration
extract_claims.py (Python) · Lint L10 (GraphEval truth check) · Lint L11 (contradiction surface) · Skill /lumi-verify
Query log + citation tracking · Confidence decay engine · Lint L12/L13 · Skill /lumi-stale batch re-verify
Provider abstraction · Skill /lumi-cross-verify · Jury aggregation. Cần phân định ranh giới với user-rule "no cross-model review" (đây là content verification, không phải code review).
Daily-fetch · OpenAlex · Unpaywall · CORE · OpenReview · HF papers · PwC · Crossref · DOAJ. Không thay đổi kế hoạch, chỉ dời sau Phase 1–3.
"Domain-agnostic, multi-IDE wiki scaffolder — Karpathy's LLM-Wiki vision, cross-platform and pack-based."
Generic. Không nói được tại sao chọn Lumina thay vì 7 implementation khác. Đối thủ nvk mạnh hơn về features.
"Production-grade LLM-Wiki: provenance-tracked, truth-verified, schema-versioned. The only LLM-Wiki implementation with real ETL discipline."
Differentiator rõ ràng: OpenLineage-compatible event log · GraphEval truth check · schema migration framework · idempotency CI. Target shift sang team/enterprise cần audit.
Tất cả source code, báo cáo, và external references nhắc đến trong phiên.
Sau khi bump v0.5.0, so sánh head-to-head với thieung/personal-wiki-hub — một implementation Karpathy LLM-Wiki khác, Python-only, Obsidian-first, phân phối qua git-clone. Lọc 12 feature qua lăng kính ROADMAP research-vertical.
Repo CHÍNH LÀ knowledge base của user. Python (54 KB) + Shell (5 KB). Obsidian-first (TaskNotes HTTP plugin, Periodic Notes, vault-colors CSS). 12+2 skills: /wiki:capture · ingest · query · browse · audit · synthesize · refresh · autoresearch · index · link · setup · status.
npx lumina-wiki install tạo workspace rỗng vào project bất kỳ. Multi-IDE (Claude/Codex/Gemini/Cursor/generic). Atomic write, idempotency CI, schema-as-code, symlink ladder. 14 skills · 3 packs.
Khác biệt định nghĩa: personal-wiki-hub là content repository; lumina-wiki là tooling. Hai project ở khác layer của cùng pattern, không cạnh tranh trực tiếp.
| Feature | Đánh giá | ROADMAP slot | Lý do |
|---|---|---|---|
| /wiki:status dashboard | REJECT | — | Off-vertical: generic diagnostic, không research-specific. Đã được consider làm /lumi-status rồi reject. |
| /wiki:capture URL/PDF/clipboard | REJECT | — | Generic PKM direction. v1.0.0 ROADMAP đã claim input flow qua /lumi-daily (paper-only). Lệch hướng research vertical. |
| /wiki:browse by type/tag | REJECT | — | Generic navigation. Obsidian/IDE đã cover. |
| /wiki:synthesize | REJECT | — | Contract mơ hồ; có thể làm ad-hoc qua /lumi-ask. |
| Staleness (queried >60 days) | REJECT | — | Generic, không research-specific. Cần access log mới — chi phí cao. |
| notes/ user thinking area | REJECT | — | PKM scope expansion; lệch trục research wiki. |
| /session-sync Claude transcript | REJECT | — | Claude-Code-only — vi phạm cam kết multi-IDE. |
| /tasknotes Obsidian HTTP | REJECT | — | Khoá vào Obsidian + 1 plugin cụ thể. |
| content/, projects/ | REJECT | — | Out of scope: lumina là wiki cho 1 project, không phải multi-project hub. |
| Source hash drift check | PORT | v1.0.0 (stability) | Paper arxiv v1→v2 update âm thầm. /lumi-daily mang bản mới về raw/discovered/ nhưng không flag wiki page cũ. Research-quality signal đúng nghĩa. |
| Supersession edges | PORT | v2.0.0 (schema bump) | Papers literally supersede prior work. Edge type list hiện thiếu supersedes/superseded_by. Piggyback vào v1→v2 schema migration đã planned. |
| /wiki:refresh stale page update | PORT | v1.0.0 (companion of /lumi-daily) | Khi paper update upstream, re-summarize wiki page tương ứng. Pair với drift detection. Reuse wiki.mjs API + /lumi-ingest --refresh. |
Slot: Stability lock (v1.0.0).
Effort: ½ ngày.
Risk: Thấp.
Lưu source_hash khi ingest. checkL10 trong lint.mjs ~50 LOC: với mỗi sources/*.md, so hash với raw file → warn nếu lệch. Không có --fix (drift cần re-ingest).
Slot: Schema migration (v2).
Effort: 1 ngày.
Risk: Trung (schema).
Thêm 2 edge type supersedes / superseded_by trong schemas.mjs (4 LOC). Existing L06 tự động cover bidirectional. /lumi-rank consume superseded_by để downrank.
Slot: Companion of /lumi-daily.
Effort: 1.5 ngày.
Risk: Trung (skill mới).
Skill src/skills/packs/research/refresh/SKILL.md. Input: slug → so source_hash → prompt user re-ingest preserve <!-- user-edited -->. Cần thêm flag /lumi-ingest --refresh.
Synergy: A phát hiện → C refresh → B record supersession. Cả 3 cùng họ "research freshness" — gộp thành 1 theme nhỏ trong v1.0.0–v2.0.0 cycle, cộng vào ROADMAP mà không phá theme chính.
Verify source_hash field đã có trong frontmatter paper; nếu chưa, thêm vào /lumi-ingest phase "source-page". Update ROADMAP version pointer 0.2.0 → 0.5.0.
Ship #A drift L10 + #C /lumi-refresh cùng /lumi-daily. Theme hợp nhất: "input flow + freshness".
Ship #B supersession edges trong cùng schema bump 1→2 đã planned cho per-source IDs (OpenAlex/CORE/DOI). /lumi-rank consume tự nhiên.
Foundation aliases, Wikipedia disambiguation, paper dedup, phase logging. Trong khi personal-wiki-hub thiên general PKM (notes, sessions, tasknotes). Khoảng cách triết lý đang rộng ra, không hẹp lại.
ROADMAP.md dòng 3 ghi "Current shipped version: v0.2.0" — package.json đã 0.5.0. Cần update version pointer kèm release tiếp theo.
Thêm rule trong docs/project-context.md: "Lumina là research wiki, không phải general PKM. Đề xuất port từ general-purpose tool phải tự chứng minh research-specific value." Tránh future contributor lặp đề xuất scope creep.
3 đề xuất port chỉ thêm 2 edge type (vào schema bump đã planned), 1 lint check warning (không error → CI green), và 1 skill mới (pack research, opt-in). Không đụng surface lock của v0.1.