v0.5: DIKW-T framework, wisdom synthesis, FTS5 search - #1
Conversation
Reframe the project around the DIKW-T pyramid (Data → Information →
Knowledge → Wisdom + Time) so every file has a well-defined stage and
the per-project Git repo is recognised as a first-class time axis.
Backend
- New backend/app/dikw.py classifier (folder + structure heuristic)
- New GET /api/projects/{slug}/dikw stage-count endpoint
- Tree response carries `stage` per markdown file
- Watcher commit reason + fs-event payload include the stage
- Project model gains wisdom_dir, mkdir'd on project create
Frontend
- New DIKW dashboard view with per-stage cards + time-axis line
- File tree renders a stage pill on every note
- Stage colours: data=blue, information=green, knowledge=amber, wisdom=violet
Docs
- New docs/dikw-t.md — authoritative framework spec
- README, CLAUDE.md, architecture, approach, guidelines, knowledge,
known-issues, hermes-contract, and all three quickstarts rewritten to
speak DIKW-T
- business/project-overview.md and reference/obsidian-sync-comparison.md
updated to reflect stage model + time-series advantage
Tests
- test_smoke.py: new test_dikw_summary and test_tree_reports_dikw_stage
- Full suite 12/12 passing, confirmed stable across consecutive runs
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The reference folder now holds reconstruction-grade blueprints for Honcho and Obsidian (local, gitignored). The project-side docs now cite those blueprints where relevant so the lineage of design decisions is visible. - README: new "Reverse-engineering references" section + folder tour link - CLAUDE.md: reference/ described as reconstruction material, not comparisons - docs/knowledge.md: new "External references" section, calling out the Honcho→DIKW-T mapping, the generalised Obsidian failure modes, and the LiveSync decision rationale - docs/approach.md: new "Method: learning from external systems" step — grep reference/ before designing echoes of prior art - docs/guidelines.md: rules for when to edit reference/ vs docs/ - docs/known-issues.md: cross-link to the generalised failure-modes table - business/project-overview.md: cite reference/ as design input Local improvements to reference/*.md (auth surface, DIKW-T mapping, failure modes, vault folder overlay, Thai language note) stay on disk but are not committed — reference/ is gitignored. Delete the old comparison file that was moved into reference/obsidian/. Tests: 12/12 still green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Added reconstruction-grade blueprints for the real Hermes Agent (Nous
Research) under reference/hermes/ (local, gitignored):
platform_blueprint.md 520 lines — data model, architecture, learning
loop, subagents, cron, tools,
DIKW-T mapping (§8), tech stack,
build order, 7 design patterns
architecture.md 188 lines — component map + data flows
integration_notes.md 208 lines — current contract vs. real CLI,
three migration paths, wisdom-mode
design, auth considerations
Project-side documentation updated to reflect the key finding that the
upstream Hermes CLI has no `process` subcommand — our
`CKP_HERMES_BIN process …` contract only works against the stub in
docs/hermes-contract.md or a wrapper script:
- README: reference/hermes/ added to the tour
- reference/README.md: folder map + reading guide extended
- docs/hermes-contract.md: new "Important: upstream CLI has no process"
section with three migration options
- docs/known-issues.md: issue #19 for the stub-only contract
- docs/knowledge.md: Hermes↔DIKW-T mapping + integration-reality callout
- docs/approach.md: Hermes added to "learn from external systems" list
Tests 12/12 still green.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Closes three of the items surfaced in the recent improvement review and ships the LiveSync blueprint into the local (gitignored) reference folder. Backend - New backend/app/wisdom.py — deterministic Git-log-based wisdom stub. For every knowledge/ file with ≥ 2 commits, write a wisdom/ note summarising the revision chain and the triggering inbox/notes file. Body of _synthesise() is the one call to swap for a real LLM later. - New backend/app/routes/stages_routes.py — POST /promote (inbox → notes with frontmatter) and POST /wisdom/synthesise (trigger wisdom.py over the whole project). - backend/app/search.py rewritten to SQLite FTS5 at <vault>/.ckp/search.db. WAL mode, bm25 with 5× title weight, unicode61 tokenizer with diacritic stripping. Survives restart. Connections explicitly closed; no leaks. - watcher ignores .ckp/ so the search DB never feeds back into commits. Frontend - New **Promote ↑** button in the editor toolbar, visible only when the open file lives under inbox/. Prompts for optional tags, moves the file, prepends YAML frontmatter, reopens the new path. - New **Synthesise Wisdom ↻** button on the DIKW dashboard; shows produced/skipped counts inline and refreshes the cards. Reference (local only — reference/ remains gitignored) - reference/livesync/platform_blueprint.md (660 lines) + architecture.md + integration_notes.md — reverse-engineered via Sonnet subagent against the obsidian-livesync GitHub repo. Covers doc model, chunking (Rabin-Karp + MurmurHash), E2E encryption (AES-GCM + HKDF + SALT_OF_* constants), CouchDB setup, conflict resolution, DIKW-T mapping (honest: LiveSync is transport, not a stage producer). - reference/honcho/architecture.md slimmed to an orientation pointer (was flagged as redundant with platform_blueprint). Docs - README: reference/livesync/ added to the tour. - docs/knowledge.md: new "Stage promotion + Wisdom synthesis" and "Search — persistent FTS5" sections. - docs/known-issues.md: #13 (in-memory search) and #17 (empty wisdom/) marked resolved in v0.5. - docs/guidelines.md: note that frontend smoke tests now exist; keep them lightweight until UI stabilises. - docs/approach.md: LiveSync added to "learn from external systems". - CLAUDE.md: common-tasks table now points at the new modules. - business/project-overview.md: success-criteria bullet lists the new flows and the 17-test baseline. Tests - New backend/tests/test_frontend.py — 3 tests: index.html scaffolding, app.js parses (node --check), styles.css carries stage classes. - test_smoke.py: 2 new tests (test_promote_inbox_to_notes, test_wisdom_synthesise). - Full suite 17/17 passing, confirmed stable across three consecutive runs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (29)
📝 WalkthroughWalkthroughThis PR implements a complete DIKW-T (Data-Information-Knowledge-Wisdom-Time) framework for organizing vault files into four stages, adds persistent SQLite FTS5 search, implements Git-history-based wisdom synthesis, and exposes stage analysis, promotion, and synthesis via new API endpoints and frontend dashboard UI. ChangesDIKW-T Framework & Implementation
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
/api/projects/{slug}/dikw)reference/blueprints (Honcho, Obsidian, Hermes Agent) into project narrativeTest plan
./.venv/bin/pytest backend/tests -q./scripts/server.sh startand verify frontend at:8787//api/projects/{slug}/dikwand stage promotion endpoints🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Documentation
Tests