Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .cursor/skills/SKILL-GRAPH.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

**Audience:** model. Wire SSOT: [memnet-format](memnet-format/SKILL.md) and `docs/grammar/gql-wire-profile.md`. Do **not** treat this file as the session graph.

This folder **vendors** the MemNet stack. Hatch **0.19.6**; published PyPI remains **`memnet-llm==0.19.5`** until upload. Cue then `pin_map`; `find` if ego unknown. **GQL only.** Package SemVer `a.b.c` (claim / usage-method revision / same-method cut): `docs/ROADMAP.md`. Do not invent 0.20.
This folder **vendors** the MemNet stack. Hatch **0.19.6**; published PyPI is **`memnet-llm==0.19.6`**. Cue then `pin_map`; `find` if ego unknown. **GQL only.** Package SemVer `a.b.c` (claim / usage-method revision / same-method cut): `docs/ROADMAP.md`. Do not invent 0.20.

## Routing

Expand Down
2 changes: 1 addition & 1 deletion .cursor/skills/memnet-reference/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Repo skill for **building** MemNet in **this** repository. Doctrine SSOT is `doc

This checkout **vendors** agent skills under `.cursor/skills/` (core: `memnet-use` + MCP/format/nested/multitask). Load those when **using** MemNet; load **this** skill only when changing the engine, generic MCP, grammar, product SysML, or packaging.

**Product:** Hatch **0.19.6** (CLI `memnet`). Published PyPI wheel remains **`memnet-llm==0.19.5`** until upload. Version map: `docs/ROADMAP.md`. Shape: `docs/SHAPE.md`. **1.0** = 0.5–0.8 claimed (do not tag from this skill).
**Product:** Hatch **0.19.6** (CLI `memnet`). Published PyPI wheel is **`memnet-llm==0.19.6`**. Version map: `docs/ROADMAP.md`. Shape: `docs/SHAPE.md`. **1.0** = 0.5–0.8 claimed (do not tag from this skill).

**`a.b.c` (ROADMAP law).** `a` = claim / generation (`0` = 1.0 unclaimed; `1` = claim of 0.5–0.8). `a` moves only if the contract breaks (Recall=`pin_map` / Commit=`mutate`, GraphElement identity, GQL-only wire). `b` = usage-method revision (new required loop step, new product tool, cue/outline/identity law, new goldfish verb). Historical extras **0.10–0.19** were `b`. N-server (#47) is not a `b`. `c` = same-method cut (honesty, leftover naming, docs/skills, wheel/tag, caps, façade, faster same `cue → pin_map → mutate`). Efficiency on the current loop is **`0.19.c`**, not `0.20`. Do not invent a 0.20 extra. Do not claim 1.0.

Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ LLM hub for this system repo. Prefer in-repo skills and docs over ad-hoc inventi

## Mission

**MemNet** (Net of Memory) is **mission working memory** — a session graph (GQL **node**/vertex, **edge**/relationship, **property**) **between** LLM call pipelines and data search, not the corpus and not GraphRAG. Agents read a bounded **live pin map** each turn and write in the same **GQL (openCypher-shaped)** family — redefined **Write = display** via shaped subgraph emit ([`docs/grammar/gql-wire-profile.md`](docs/grammar/gql-wire-profile.md)). In-session recall is **serial**: kind/keyword cue, then `pin_map` neighbourhood. Primary read: MCP `pin_map` / CLI `query pin-map`; leftover `query_warm` / `query warm` are leftover aliases. Aims (MN-REQ-00): save wall-clock time and tokens while keeping factual accuracy. Aids **system**, **programme**, **software**, **firmware**, **hardware**, and **documentation**. Transport: **in-process first** (single-agent; TCP fallback). **Multitask** requires TCP serve or streamable-http MCP — see Multitask policy below. This repo is **engine + generic memnet-mcp** only — novel-writer dropped. Repo product **0.19.6** (Hatch SSOT; published PyPI remains **`memnet-llm==0.19.5`** until upload; 0.19.6 honesty `c`: Truncation on clipped `pin_map`). **1.0** = 0.5–0.8 claimed (unclaimed). See `README.md`, [`docs/SHAPE.md`](docs/SHAPE.md), and `docs/grammar/`.
**MemNet** (Net of Memory) is **mission working memory** — a session graph (GQL **node**/vertex, **edge**/relationship, **property**) **between** LLM call pipelines and data search, not the corpus and not GraphRAG. Agents read a bounded **live pin map** each turn and write in the same **GQL (openCypher-shaped)** family — redefined **Write = display** via shaped subgraph emit ([`docs/grammar/gql-wire-profile.md`](docs/grammar/gql-wire-profile.md)). In-session recall is **serial**: kind/keyword cue, then `pin_map` neighbourhood. Primary read: MCP `pin_map` / CLI `query pin-map`; leftover `query_warm` / `query warm` are leftover aliases. Aims (MN-REQ-00): save wall-clock time and tokens while keeping factual accuracy. Aids **system**, **programme**, **software**, **firmware**, **hardware**, and **documentation**. Transport: **in-process first** (single-agent; TCP fallback). **Multitask** requires TCP serve or streamable-http MCP — see Multitask policy below. This repo is **engine + generic memnet-mcp** only — novel-writer dropped. Repo product **0.19.6** (Hatch SSOT; published PyPI **`memnet-llm==0.19.6`**; 0.19.6 honesty `c`: Truncation on clipped `pin_map`). **1.0** = 0.5–0.8 claimed (unclaimed). See `README.md`, [`docs/SHAPE.md`](docs/SHAPE.md), and `docs/grammar/`.

## Where to look

Expand Down
4 changes: 2 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ This project uses Semantic Versioning as **interpreted for MemNet**: package `a.
## [0.19.6] - 2026-09-07

### Changed
- **Honesty `c` — Truncation on clipped `pin_map`** — When a hard cap clips ShapeWalk (`max_rows` \(M\), hop \(k\) vs `max_depth`, fan-out, or `view=shell` grain), the shaped emit **MUST** carry `## Truncation truncated=true M=… omitted=… reason=…` (CueConflict / Reserves family). Caps stay hard; SHALL NOT silent-clip. When the offer fits, the mark is absent. `SHAPE_DROP_KEYS` / hid honesty unchanged. Export header MAY add `truncated=1`. Package **0.19.6** patch on **0.19**. Numbered extras **0.10–0.19** unchanged. No 0.20 extra. `operatorCount` stays 2. Hatch **0.19.6**; published PyPI remains **`memnet-llm==0.19.5`** until upload. Surfaces: [`docs/operations/honesty-c-wire-audit.md`](docs/operations/honesty-c-wire-audit.md).
- **Package identity 0.19.6** — Hatch / `project.toml` / `memnet.__version__` honesty cut on **0.19**.
- **Honesty `c` — Truncation on clipped `pin_map`** — When a hard cap clips ShapeWalk (`max_rows` \(M\), hop \(k\) vs `max_depth`, fan-out, or `view=shell` grain), the shaped emit **MUST** carry `## Truncation truncated=true M=… omitted=… reason=…` (CueConflict / Reserves family). Caps stay hard; SHALL NOT silent-clip. When the offer fits, the mark is absent. `SHAPE_DROP_KEYS` / hid honesty unchanged. Export header MAY add `truncated=1`. Package **0.19.6** patch on **0.19**. Numbered extras **0.10–0.19** unchanged. No 0.20 extra. `operatorCount` stays 2. Hatch **0.19.6**; published as **`memnet-llm==0.19.6`**. Surfaces: [`docs/operations/honesty-c-wire-audit.md`](docs/operations/honesty-c-wire-audit.md).
- **Package identity 0.19.6** — Hatch / `project.toml` / `memnet.__version__` honesty cut on **0.19**. Hatch and PyPI are both **0.19.6**.

## [0.19.5] - 2026-09-06

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ MemNet sits **between** LLM call pipelines and data search (MN-REQ-00). Corpus l

This repo ships the engine + generic MCP only. **Product shape:** [`docs/SHAPE.md`](docs/SHAPE.md). **Pinned role:** working set of **a few technical documents** (atoms and locators, not PDF bytes) plus live `TSK`/`USR`/`MOD`, re-read fast. Tens of MiB typical; **hundreds of MiB still in role**; gigabytes = RAG/cabinet.

Package **`memnet-llm`** (CLI **`memnet`**). Python ≥ 3.11. Hatch **0.19.6**; published PyPI wheel remains **`memnet-llm==0.19.5`** until upload (0.19.6 honesty `c`: Truncation on clipped `pin_map`; 0.19.5 `SHAPE_DROP_KEYS` is published). **1.0** stays unclaimed. SemVer meaning (`a.b.c`): [`docs/ROADMAP.md`](docs/ROADMAP.md).
Package **`memnet-llm`** (CLI **`memnet`**). Python ≥ 3.11. Hatch **0.19.6**; published PyPI wheel is **`memnet-llm==0.19.6`** (0.19.6 honesty `c`: Truncation on clipped `pin_map`). **1.0** stays unclaimed. SemVer meaning (`a.b.c`): [`docs/ROADMAP.md`](docs/ROADMAP.md).

## Install + quick CLI

```bash
pip install memnet-llm
# or pin published: pip install memnet-llm==0.19.5
# or pin published: pip install memnet-llm==0.19.6
# optional extras (drivers only — not AgensGraph/Neo4j servers):
# pip install 'memnet-llm[mcp]'
# pip install 'memnet-llm[agensgraph]'
Expand Down
4 changes: 2 additions & 2 deletions docs/LLM-GUIDE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# MemNet — Agent Playbook (for LLMs)

**Class:** developers — MemNet engine / MCP / GQL wire / agent operating doctrine. Index: [`docs/README.md`](README.md). Product shape: [`SHAPE.md`](SHAPE.md). **Product 0.19.6.** Hatch **0.19.6**; published PyPI remains **`memnet-llm==0.19.5`** until upload. **1.0** = 0.5–0.8 claimed (unclaimed). SemVer `a.b.c`: [`ROADMAP.md`](ROADMAP.md).
**Class:** developers — MemNet engine / MCP / GQL wire / agent operating doctrine. Index: [`docs/README.md`](README.md). Product shape: [`SHAPE.md`](SHAPE.md). **Product 0.19.6.** Hatch **0.19.6**; published PyPI is **`memnet-llm==0.19.6`**. **1.0** = 0.5–0.8 claimed (unclaimed). SemVer `a.b.c`: [`ROADMAP.md`](ROADMAP.md).

**Dialect teach = GQL only** — [`grammar/gql-wire-profile.md`](grammar/gql-wire-profile.md). ADR: [`adr/ADR-001-gql-agent-wire.md`](adr/ADR-001-gql-agent-wire.md).
**M2 shipped:** engine/MCP accept openCypher-shaped GQL and emit shaped `pin_map`. Do **not** teach Layer / Tier A / `@TAG` pipe as agent wire.
Expand Down Expand Up @@ -66,7 +66,7 @@ Formal wire: [`grammar/gql-wire-profile.md`](grammar/gql-wire-profile.md).

| Mode | When | Setup |
|------|------|-------|
| **MCP in-process** | Cursor / local agents (**primary**) | Register `memnet-mcp` in `.cursor/mcp.json`; extra `[mcp]`. `pip install 'memnet-llm[mcp]'` (Hatch **0.19.5**; PyPI **0.19.5**). **No** `memnet serve` |
| **MCP in-process** | Cursor / local agents (**primary**) | Register `memnet-mcp` in `.cursor/mcp.json`; extra `[mcp]`. `pip install 'memnet-llm[mcp]'` (Hatch **0.19.6**; PyPI **0.19.6**). **No** `memnet serve` |
| **CLI + serve** | Scripts, TCP shared process | Terminal 1: `memnet serve`; Terminal 2: CLI with `MEMNET_SESSION` |
| **MCP streamable-http** | Remote shared graph | `memnet-mcp --transport streamable-http` on `:18766/mcp` |

Expand Down
6 changes: 3 additions & 3 deletions docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

**Audience:** product developers. Dialect teach = **GQL** ([`grammar/gql-wire-profile.md`](grammar/gql-wire-profile.md)). Product shape: [`SHAPE.md`](SHAPE.md). British English.

**Package now:** Hatch **0.19.6** (`memnet.__version__`). Published PyPI wheel remains **`memnet-llm==0.19.5`** until upload. Numbered extras **0.10–0.19** are in this package (unchanged). **0.19.6** honesty `c` highlights Truncation when `pin_map` clips. GraphGlot parse front is on master (#109 @ 73a63c9b). Extra **0.14** claims `liveNeo4jClaimed=true`. **1.0** is still unclaimed (0.5–0.8).
**Package now:** Hatch **0.19.6** (`memnet.__version__`). Published PyPI wheel is **`memnet-llm==0.19.6`**. Numbered extras **0.10–0.19** are in this package (unchanged). **0.19.6** honesty `c` highlights Truncation when `pin_map` clips. GraphGlot parse front is on master (#109 @ 73a63c9b). Extra **0.14** claims `liveNeo4jClaimed=true`. **1.0** is still unclaimed (0.5–0.8).

**Last updated:** 2026-09-07 (`a.b.c` law locked; package **0.19.6** honesty `c` — Truncation on clipped `pin_map`; extras **0.10–0.19** unchanged; Hatch **0.19.6**; PyPI **`memnet-llm==0.19.5`** until upload; do not claim **1.0**; do not invent a **0.20** extra).
**Last updated:** 2026-09-07 (`a.b.c` law locked; package **0.19.6** honesty `c` — Truncation on clipped `pin_map`; extras **0.10–0.19** unchanged; Hatch **0.19.6**; PyPI **`memnet-llm==0.19.6`**; do not claim **1.0**; do not invent a **0.20** extra).

Patch notes: [`../CHANGELOG.md`](../CHANGELOG.md). CHANGELOG still follows Keep a Changelog. This file is how MemNet **interprets** SemVer — not a silent switch to npm-strict major=breaking for 0.x extras.

Expand Down Expand Up @@ -99,7 +99,7 @@ Handoff = **session id** (+ cue / write scope). Peers **re-`pin_map`** from labe
| **0.7.0** | Live AgensGraph hydrate/flush; `liveCabinetClaimed=true`. Server not vendored. Fake + skip unless `MEMNET_AGENSGRAPH_URL` | **Shipped** (`v0.7.0`) |
| **0.8.0** | GQL-only **teach** + product **shape for people** (`SHAPE.md`, playbook, application-note contract, Multitask honesty). Docs only. **No** engine cut. Cabinet stays claimed | **Shipped** (`v0.8.0`) |
| **0.9.0** | Neo4j `DurableStoreAdapter` client (`memnet-llm[neo4j]`); factory both-URL rule; [`cabinet/neo4j-buffer.md`](cabinet/neo4j-buffer.md). Live round-trip claimed later as extra **0.14**. Cabinet extra, **not** a 1.0 gate | **Shipped** (`v0.9.0` era; extras later packaged as 0.19.0) |
| **0.10–0.19** | Numbered extras (table below). Each row is one `b` (usage-method revision). Same pattern as 0.9: **not** 1.0 gates | **Packaged** (Hatch **0.19.6**; PyPI **0.19.5** until upload; extras first shipped as 0.19.0) |
| **0.10–0.19** | Numbered extras (table below). Each row is one `b` (usage-method revision). Same pattern as 0.9: **not** 1.0 gates | **Packaged** (Hatch **0.19.6**; PyPI **0.19.6**; extras first shipped as 0.19.0) |
| **1.0.0** | **Claim** of **0.5 + 0.6 + 0.7 + 0.8**. Shape mature for people. Not GraphRAG. Not cabinet-only. Not a new engine. This is `a=1` | **Claim when coordinator tags** — package **0.19.6** does not claim 1.0 |
| **Later** | Grammar Open / hosted product / leftover ACL; N-server research (#47). GraphGlot parse-front is **shipped**. If **1.0 tags first**, remaining extras become **1.1, 1.2, …** with the same owns (`b` after the claim) | **Out** of 1.0 |

Expand Down
2 changes: 1 addition & 1 deletion docs/SHAPE.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Do not call MemNet a “shaped RAG” or a “shaped Cypher proxy”.

**0.8.0** is this shape **taught for people** in-repo: this file, GQL-only playbook, application-note contract, Multitask honesty (RSV + Path-B ingest shipped; full ACL modes still to-be).

**1.0.0** is **0.5 + 0.6 + 0.7 + 0.8** claimed — the shape is mature for people: one GQL dialect, goldfish `pin_map`, gated mutate, cue-then-shape (including find when there is no ego), optional **proven** cabinet so \(S\) can outlive a process. Not GraphRAG. Not cabinet-only. Map and **`a.b.c` law:** [`ROADMAP.md`](ROADMAP.md). **Honest install:** Hatch **0.19.6**; published PyPI wheel remains **`memnet-llm==0.19.5`** until upload (extras 0.10–0.19; Neo4j client from 0.9; live claimed as extra **0.14**; 0.19.6 honesty `c`: Truncation on clipped `pin_map`). Optional extras `[mcp]`, `[agensgraph]`, `[neo4j]` (drivers only). **1.0** stays unclaimed.
**1.0.0** is **0.5 + 0.6 + 0.7 + 0.8** claimed — the shape is mature for people: one GQL dialect, goldfish `pin_map`, gated mutate, cue-then-shape (including find when there is no ego), optional **proven** cabinet so \(S\) can outlive a process. Not GraphRAG. Not cabinet-only. Map and **`a.b.c` law:** [`ROADMAP.md`](ROADMAP.md). **Honest install:** Hatch **0.19.6**; published PyPI wheel is **`memnet-llm==0.19.6`** (extras 0.10–0.19; Neo4j client from 0.9; live claimed as extra **0.14**; 0.19.6 honesty `c`: Truncation on clipped `pin_map`). Optional extras `[mcp]`, `[agensgraph]`, `[neo4j]` (drivers only). **1.0** stays unclaimed.

---

Expand Down
2 changes: 1 addition & 1 deletion docs/application-notes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
How to **use** MemNet (not engine internals). Folders: **system** (repos / SysML / builder), **domains** (worked domains), **examples** (InvAmp). Index: [`../README.md`](../README.md).

**Product shape:** [`../SHAPE.md`](../SHAPE.md).
**Dialect teach:** openCypher-shaped **GQL** + shaped `pin_map` + gated mutate — [`../grammar/gql-wire-profile.md`](../grammar/gql-wire-profile.md). Product **0.19.6.** Hatch **0.19.6**; published PyPI remains **`memnet-llm==0.19.5`** until upload. **1.0** = 0.5–0.8 claimed (unclaimed; no extra engine). Playbook: [`../LLM-GUIDE.md`](../LLM-GUIDE.md). Honesty `c` (Truncation + `SHAPE_DROP_KEYS`): [`../operations/honesty-c-wire-audit.md`](../operations/honesty-c-wire-audit.md). Changelog: [`../../CHANGELOG.md`](../../CHANGELOG.md) **0.19.6**.
**Dialect teach:** openCypher-shaped **GQL** + shaped `pin_map` + gated mutate — [`../grammar/gql-wire-profile.md`](../grammar/gql-wire-profile.md). Product **0.19.6.** Hatch **0.19.6**; published PyPI is **`memnet-llm==0.19.6`**. **1.0** = 0.5–0.8 claimed (unclaimed; no extra engine). Playbook: [`../LLM-GUIDE.md`](../LLM-GUIDE.md). Honesty `c` (Truncation + `SHAPE_DROP_KEYS`): [`../operations/honesty-c-wire-audit.md`](../operations/honesty-c-wire-audit.md). Changelog: [`../../CHANGELOG.md`](../../CHANGELOG.md) **0.19.6**.
**Worked GQL example:** [`examples/inverting-amplifier-gql-case-study.md`](examples/inverting-amplifier-gql-case-study.md).
**Decision:** [`../adr/ADR-001-gql-agent-wire.md`](../adr/ADR-001-gql-agent-wire.md). Versions: [`../ROADMAP.md`](../ROADMAP.md).

Expand Down
2 changes: 1 addition & 1 deletion docs/application-notes/system/llm-build-on-memnet.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ memnet-mcp = "memnet_mcp.server:main"
mcp = ["mcp>=1.2,<2"]
```

Optional-deps keep `pip install memnet-llm` lightweight; only `[mcp]` users pull the `mcp` package. Hatch **0.19.5**; published PyPI is **`memnet-llm==0.19.5`**: `pip install 'memnet-llm[mcp]'` (contributors: `pip install -e ".[mcp]"`).
Optional-deps keep `pip install memnet-llm` lightweight; only `[mcp]` users pull the `mcp` package. Hatch **0.19.6**; published PyPI is **`memnet-llm==0.19.6`**: `pip install 'memnet-llm[mcp]'` (contributors: `pip install -e ".[mcp]"`).

---

Expand Down
2 changes: 1 addition & 1 deletion docs/operations/honesty-c-wire-audit.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Honesty `c` wire audit (0.19.6)

**Date:** 2026-09-07. **Package:** Hatch **0.19.6** (same-method cut on **0.19**). Published PyPI wheel remains **`memnet-llm==0.19.5`** until upload. Numbered extras **0.10–0.19** unchanged. No usage-method `b`. No claim `a`. No 0.20. No 1.0. No `rag_query`.
**Date:** 2026-09-07. **Package:** Hatch **0.19.6** (same-method cut on **0.19**). Published PyPI wheel is **`memnet-llm==0.19.6`**. Numbered extras **0.10–0.19** unchanged. No usage-method `b`. No claim `a`. No 0.20. No 1.0. No `rag_query`.

This note records Truncation honesty after silent `max_rows` clip, plus the 0.19.5 hid / nickname audit. Chat is not SSOT.

Expand Down
Loading