You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/agent/dev.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -201,6 +201,7 @@ Testing rules:
201
201
202
202
## Commit & branch rules
203
203
204
+
-**Check branch state before major work.**`git fetch origin` and see how the working branch relates to `origin/main` (`git log --oneline origin/main..HEAD` and `HEAD..origin/main`) before starting anything substantial, new branch or existing one alike. The branch may be older than you think: `main` advances, and a local `main` can itself be stale. Branch off (or rebase/merge onto) the latest `origin/main`; a branch left behind silently diverges and lands the PR in merge conflicts.
204
205
-**Feature branches only.** Never commit to `main`.
├── Topic-key upserts (evolving knowledge updates in place)
49
49
├── Deduplication via normalized hash
50
50
├── Conflict detection + judgment flow
@@ -68,9 +68,9 @@ How Family Brain concepts land on engram's data model.
68
68
69
69
| Family Brain | engram | How it works |
70
70
|---|---|---|
71
-
| Knowledge domain (`shared`, `arthur`, `calendar`) |**Project**| Each domain is a project. `mem_search` filters by project. `mem_context` returns per-project. |
71
+
| Knowledge domain (`shared`, `homer`, `calendar`) |**Project**| Each domain is a project. `mem_search` filters by project. `mem_context` returns per-project. |
72
72
| Knowledge type (`rule`, `fact`, `habit`, `goal`, `preference`, `context`, `event`) |**Type field**| The `type` field is a string, not an enforced enum. We use our own values. |
73
-
| Wiki entry that evolves over time |**Observation + topic_key**|`topic_key="fact/insurance-adac"` -- saving with the same key upserts the existing observation, increments `revision_count`. |
73
+
| Wiki entry that evolves over time |**Observation + topic_key**|`topic_key="fact/insurance-duff-insurance"` -- saving with the same key upserts the existing observation, increments `revision_count`. |
74
74
| Pointer brain / compact index |**`mem_context` per project**| Returns recent sessions + observations. The agent's map of what's known. |
75
75
| Cross-domain search |**`mem_search`**| FTS5 across all projects or filtered to one. Supports type/scope filters. |
76
76
| Short-term memory |**Session-scoped observations**| Tied to a Kit Bot conversation session. Temporal context via `mem_timeline`. |
@@ -91,11 +91,11 @@ How Family Brain concepts land on engram's data model.
91
91
id INTEGER auto-increment
92
92
session_id TEXT which session created this
93
93
type TEXT "rule" | "fact" | "habit" | "goal" | "preference" | "context" | "event"
94
-
title TEXT short, searchable -- "Car insurance ADAC"
94
+
title TEXT short, searchable -- "Car insurance Duff Insurance"
95
95
content TEXT freeform -- structured however we want
96
-
project TEXT "shared" | "arthur" | "sabrina" | "calendar"
96
+
project TEXT "shared" | "homer" | "marge" | "calendar"
97
97
scope TEXT "project" (shared within domain) | "personal"
98
-
topic_key TEXT canonical ID for upserts -- "fact/adac/car-insurance"
98
+
topic_key TEXT canonical ID for upserts -- "fact/duff-insurance/car-insurance"
99
99
normalized_hash TEXT deduplication fingerprint
100
100
revision_count INTEGER incremented on topic-key upsert
Copy file name to clipboardExpand all lines: docs/design/brain/interaction-patterns.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
> Status: Design note — future direction, no implementation yet
4
4
> Created: 2026-06-09
5
-
> Author: Arthur + Claude
5
+
> Author: Homer + Claude
6
6
> Depends on: [topic-rooms.md](topic-rooms.md) (room-state-as-intent, the seed of this design), [knowledge-architecture.md](knowledge-architecture.md), [wiki-engine.md](wiki-engine.md)
7
7
8
8
## Why this exists
@@ -50,7 +50,7 @@ Reactions run in **both directions** — the user reacts to signal intent to the
50
50
| 👎 | "Bot, your classification was wrong" — opens a reply-thread correction prompt |
51
51
| 📅 | Surface this for the calendar / reminder bot (once it lands) |
52
52
53
-
A 🔖 on Homer's message means "save this." A 👎 on the bot's `Filed: ADAC camping addendum` means "you got the topic wrong." A 🗑 on the bot's own capture confirmation means "undo." Each binding maps to an existing handler the archivist already implements; the reaction is just a different trigger.
53
+
A 🔖 on Homer's message means "save this." A 👎 on the bot's `Filed: Duff Insurance camping addendum` means "you got the topic wrong." A 🗑 on the bot's own capture confirmation means "undo." Each binding maps to an existing handler the archivist already implements; the reaction is just a different trigger.
54
54
55
55
#### Bot reacts to the user's message to signal processing state
56
56
@@ -86,10 +86,10 @@ Bounded intent set (so the prompt stays tight and dispatch stays deterministic):
86
86
| Intent | Example | Dispatch |
87
87
|---|---|---|
88
88
| save |`@archivist save this https://...`|`_handle_capture`|
| search |`@archivist what did we note about camping?`|`_handle_search` (existing) |
91
91
| reclassify |`@archivist this is actually Marge's, not Homer's`|`_handle_reply_reprocess` (existing) |
92
-
| remind |`@archivist remind me about the ADAC renewal in November`| reminder bot when it lands |
92
+
| remind |`@archivist remind me about the Duff Insurance renewal in November`| reminder bot when it lands |
93
93
| status |`@archivist what have you filed today?`| digest |
94
94
95
95
A thin LLM pass classifies the mention's intent into one of those slots, then dispatches to the existing handler. The user does not learn a command syntax — they ask naturally; the LLM bridges to the existing surface.
@@ -151,7 +151,7 @@ That alone gives the family a real-feeling per-message knob without ripping out
151
151
152
152
## Status of this document
153
153
154
-
A design note, not a prescriptive plan. Captures the direction agreed in the 2026-06-09 session as a marker so future-Arthur and future-Claude do not have to rederive the conclusion. When the first layer ships, this document graduates into a proper design doc — until then, it sits here as the canonical reference for "we know the routing is fragile; here's the direction we are taking when we get to it."
154
+
A design note, not a prescriptive plan. Captures the direction agreed in the 2026-06-09 session as a marker so future-Homer and future-Claude do not have to rederive the conclusion. When the first layer ships, this document graduates into a proper design doc — until then, it sits here as the canonical reference for "we know the routing is fragile; here's the direction we are taking when we get to it."
0 commit comments