docs: record v1 detective epic and remaining gaps.
Read path and MCP are in; write, hops, corpus, and CI eval are still open. Board is Gitea epic #16.
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
---
|
||||
type: explanation
|
||||
status: current
|
||||
related:
|
||||
- PLAN.md
|
||||
- docs/design.md
|
||||
- docs/runbook.md
|
||||
---
|
||||
|
||||
# Gap to v1 — detective brain
|
||||
|
||||
Goal: a brain that does not assert without proof. Search is deduction
|
||||
(`facts` ≥2 sources → `info` → `web`). `confirmed` only from the facts root.
|
||||
|
||||
**v1 is a living graph the agent can write and walk**, not “more RAG”.
|
||||
|
||||
Epic: [Gitea #16](https://git.produktor.io/eSlider/2dph/issues/16).
|
||||
Milestone: [v1 detective brain](https://git.produktor.io/eSlider/2dph/milestone/12).
|
||||
Decisions: [PLAN.md](../PLAN.md).
|
||||
|
||||
## In (do not reopen)
|
||||
|
||||
Read path Go + Zig CGO (D21). HTTP + OpenAPI + MCP (D20). PicoClaw compose
|
||||
profile + CPU reasoner (D18). Mail sync → import → rebuild. D14 shebangs.
|
||||
Compose `api` (no CPython) / `index` (Python write). Issues #1–#5, #7–#13.
|
||||
|
||||
`POST /ingest` is a rebuild **hint**. `add` is not implemented.
|
||||
|
||||
## Blockers
|
||||
|
||||
```
|
||||
question
|
||||
│
|
||||
├─ FTS + HNSW ← in
|
||||
├─ facts / info roots ← in
|
||||
├─ web (D17) ← in
|
||||
├─ Cypher hop ← #17 schema yes, search no
|
||||
├─ brain/add ACID ← #14 rebuild only
|
||||
└─ facts+chats corpus ← #18
|
||||
```
|
||||
|
||||
1. **[#14](https://git.produktor.io/eSlider/2dph/issues/14) write** —
|
||||
`bin/brain/index.go --rebuild` (Python `kblib`). No incremental
|
||||
`brain/add`. Watch/mail/git cannot become facts “now”.
|
||||
2. **[#17](https://git.produktor.io/eSlider/2dph/issues/17) hops** —
|
||||
`Leaf-[:FROM_FILE]->File-[:HAS_VERSION]->Commit-[:AUTHORED]->Person`
|
||||
exists; `--hop` still errors. Without a walk, D9/D10 are paper.
|
||||
3. **[#18](https://git.produktor.io/eSlider/2dph/issues/18) corpus** —
|
||||
rebuild loads repo markdown + mail as `info`. `facts/extract` pairing
|
||||
and `bin/chats` are not indexed. WhatsApp is a stub. PII stays in `var/`.
|
||||
4. **[#15](https://git.produktor.io/eSlider/2dph/issues/15) lever/loop** —
|
||||
2dph is the lever (`search` → `get` → `audit`). PicoClaw is the loop.
|
||||
Document the contour in-repo; CPU turns need a large context window.
|
||||
5. **[#19](https://git.produktor.io/eSlider/2dph/issues/19) CI eval** —
|
||||
recall SoT should be `bin/brain/eval.go` via Zig, not Python `bin/kb/eval`.
|
||||
|
||||
## Not v1
|
||||
|
||||
[#6](https://git.produktor.io/eSlider/2dph/issues/6) OCR (OQ2), OQ1
|
||||
contradiction resolution, OQ3 duckdb-md export, OQ4 YAML-first leafs.
|
||||
|
||||
## Close epic #16 when
|
||||
|
||||
- facts+info can be written without a full rebuild for every leaf
|
||||
- `--hop` stops erroring and runs a Cypher path from search hits
|
||||
- ops pairing + chat import land as leafs on rebuild
|
||||
- MCP tool order is documented and still gated by tests
|
||||
Reference in New Issue
Block a user