Read path and MCP are in; write, hops, corpus, and CI eval are still open. Board is Gitea epic #16.
68 lines
2.5 KiB
Markdown
68 lines
2.5 KiB
Markdown
---
|
||
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
|