hmem-mcp 7.2.3 → 7.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/cli-checkpoint.js +33 -1
- package/dist/cli-checkpoint.js.map +1 -1
- package/dist/cli-hook-startup.js +29 -15
- package/dist/cli-hook-startup.js.map +1 -1
- package/package.json +1 -1
- package/scripts/autoresearch-nightly.sh +1 -1
- package/skills/hmem-activate/SKILL.md +17 -3
- package/skills/hmem-activate-workspace/iteration-1/eval-1-simple-switch/with_skill/outputs/response.md +1 -1
- package/skills/hmem-activate-workspace/iteration-1/eval-1-simple-switch/without_skill/outputs/response.md +1 -1
- package/skills/hmem-release/SKILL.md +2 -1
- package/skills/hmem-session-start/SKILL.md +3 -1
- package/skills/hmem-setup/SKILL.md +4 -4
- package/skills/hmem-sync-setup/SKILL.md +1 -1
- package/skills/hmem-update/SKILL.md +30 -0
- package/skills/hmem-using-hmem/SKILL.md +14 -1
package/README.md
CHANGED
|
@@ -16,13 +16,13 @@ You've tried workarounds — CLAUDE.md files, custom prompts, manually pasting c
|
|
|
16
16
|
|
|
17
17
|
```
|
|
18
18
|
You: "Load project hmem"
|
|
19
|
-
Agent: [calls load_project("P0048") —
|
|
19
|
+
Agent: [calls load_project("P0048") — 3000 tokens]
|
|
20
20
|
Agent: "Got it. v5.0.0, TypeScript/SQLite/npm, 10 source files,
|
|
21
21
|
3 open tasks, 9 ideas. Last session you implemented
|
|
22
22
|
auto-checkpoints via Haiku. What's next?"
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
That's it.
|
|
25
|
+
That's it. 3000 tokens for a complete project briefing. The agent knows the stack, the architecture, the open bugs, the recent decisions, and exactly where you left off — even if "you" was a different AI on a different machine yesterday.
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
@@ -103,7 +103,7 @@ Sessions are meaningless. Projects are everything.
|
|
|
103
103
|
| **H** | Human | `User Skill: TypeScript 9, Architecture 9, React 3` |
|
|
104
104
|
| **R** | Rule | `Max one npm publish per day — batch changes` |
|
|
105
105
|
| **O** | Original | Auto-recorded conversation history (every exchange, every device) |
|
|
106
|
-
| **I** | Infra | `Strato Server \| Active \| Linux \|
|
|
106
|
+
| **I** | Infra | `Strato Server \| Active \| Linux \| Ubuntu 22.04` |
|
|
107
107
|
|
|
108
108
|
---
|
|
109
109
|
|
package/dist/cli-checkpoint.js
CHANGED
|
@@ -90,6 +90,29 @@ export async function checkpoint() {
|
|
|
90
90
|
const batchExchanges = allExchanges.filter(ex => ex.nodeId.startsWith(batchId + "."));
|
|
91
91
|
if (batchExchanges.length < 2)
|
|
92
92
|
return;
|
|
93
|
+
// 3b. Find sessions that never got summarized (too short for a full batch)
|
|
94
|
+
const allSessions = store.getChildNodes(oId)
|
|
95
|
+
.filter(n => n.depth === 2)
|
|
96
|
+
.sort((a, b) => a.seq - b.seq);
|
|
97
|
+
const catchupSessions = allSessions
|
|
98
|
+
.filter(s => s.id !== sessionId && (!s.content || s.content === s.title))
|
|
99
|
+
.slice(-3)
|
|
100
|
+
.map(session => {
|
|
101
|
+
const exs = store.getOEntryExchangesV2(oId, 5, { sessionScope: [session.id] });
|
|
102
|
+
const lines = exs
|
|
103
|
+
.filter(ex => ex.userText || ex.agentText)
|
|
104
|
+
.map((ex, i) => {
|
|
105
|
+
let u = ex.userText.replace(/<channel[^>]*>\s*/g, "").replace(/<\/channel>\s*/g, "").trim();
|
|
106
|
+
let a = (ex.agentText ?? "").replace(/<[^>]+>/g, "").trim();
|
|
107
|
+
u = u.length > 300 ? u.substring(0, 300) + "…" : u;
|
|
108
|
+
a = a.length > 500 ? a.substring(0, 500) + "…" : a;
|
|
109
|
+
return ` [${i + 1}] USER: ${u}\n AGENT: ${a}`;
|
|
110
|
+
});
|
|
111
|
+
return lines.length > 0
|
|
112
|
+
? { id: session.id, date: session.created_at.substring(0, 10), title: session.title, body: lines.join("\n") }
|
|
113
|
+
: null;
|
|
114
|
+
})
|
|
115
|
+
.filter((s) => s !== null);
|
|
93
116
|
// 4. Tag skill-dialog exchanges
|
|
94
117
|
const skillMarker = "Base directory for this skill:";
|
|
95
118
|
for (const ex of batchExchanges) {
|
|
@@ -137,6 +160,15 @@ export async function checkpoint() {
|
|
|
137
160
|
.filter(s => s.checkpointPolicy === "readonly")
|
|
138
161
|
.map(s => `${projectId}.${s.idx} (${s.name})`)
|
|
139
162
|
.join(", ");
|
|
163
|
+
const catchupSection = catchupSessions.length > 0
|
|
164
|
+
? `### 0. Catch up on unsummarized sessions
|
|
165
|
+
${catchupSessions.length} prior session(s) completed without a summary. Write a brief summary for each.
|
|
166
|
+
Call: update_memory(id="<id>", content="Short title\\n> 2-5 sentences. Skip if no meaningful content.")
|
|
167
|
+
|
|
168
|
+
${catchupSessions.map(d => `Session ${d.id} (${d.date}) — "${d.title}":\n${d.body}`).join("\n\n")}
|
|
169
|
+
|
|
170
|
+
`
|
|
171
|
+
: "";
|
|
140
172
|
const prompt = `You are a checkpoint agent for "${projectName}" (${projectId}).
|
|
141
173
|
Process batch ${batchId} with ${batchExchanges.length} exchanges.
|
|
142
174
|
|
|
@@ -149,7 +181,7 @@ ${prevSummaryText}
|
|
|
149
181
|
== Batch Exchanges ==
|
|
150
182
|
${formattedExchanges}
|
|
151
183
|
|
|
152
|
-
## Tasks (execute ALL in order):
|
|
184
|
+
${catchupSection}## Tasks (execute ALL in order):
|
|
153
185
|
|
|
154
186
|
### 1. Title each exchange (REQUIRED)
|
|
155
187
|
Current titles (auto-extracted):
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-checkpoint.js","sourceRoot":"","sources":["../src/cli-checkpoint.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-checkpoint.js","sourceRoot":"","sources":["../src/cli-checkpoint.ts"],"names":[],"mappings":"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"}
|
package/dist/cli-hook-startup.js
CHANGED
|
@@ -94,7 +94,7 @@ export async function hookStartup() {
|
|
|
94
94
|
if (count === 1) {
|
|
95
95
|
const deviceId = getActiveDevice();
|
|
96
96
|
const deviceNote = deviceId
|
|
97
|
-
?
|
|
97
|
+
? ""
|
|
98
98
|
: "\n\nIMPORTANT: No active device is set for this machine. After loading memory, identify which device you are on (check hostname, hardware specs, or location), find the matching I-entry via read_memory() or search_memory(), then call set_active_device(id='I00XX'). Do this silently alongside the memory load.";
|
|
99
99
|
let humanContext = "";
|
|
100
100
|
let recentProjects = "";
|
|
@@ -111,22 +111,23 @@ export async function hookStartup() {
|
|
|
111
111
|
return `${r.id} ${raw.split("\n")[0]}`;
|
|
112
112
|
}).join("\n");
|
|
113
113
|
}
|
|
114
|
-
// Active I-entry: body + L2 titles + L3 for Apps
|
|
115
114
|
if (deviceId) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
const l3Rows = db.prepare("SELECT title FROM memory_nodes WHERE parent_id=? AND depth=3 AND (irrelevant IS NULL OR irrelevant!=1) ORDER BY seq").all(l2.id);
|
|
124
|
-
for (const l3 of l3Rows) {
|
|
125
|
-
iContext += `\n - ${l3.title || ""}`;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
115
|
+
// Device is known: inject Apps list for this machine only
|
|
116
|
+
const appsNode = db.prepare("SELECT id FROM memory_nodes WHERE root_id=? AND depth=2 AND title='Apps' AND (irrelevant IS NULL OR irrelevant!=1) LIMIT 1").get(deviceId);
|
|
117
|
+
if (appsNode) {
|
|
118
|
+
const l3Rows = db.prepare("SELECT title FROM memory_nodes WHERE parent_id=? AND depth=3 AND (irrelevant IS NULL OR irrelevant!=1) ORDER BY seq").all(appsNode.id);
|
|
119
|
+
if (l3Rows.length > 0) {
|
|
120
|
+
humanContext += `\n\n--- Active device (${deviceId}) Apps ---\n` +
|
|
121
|
+
l3Rows.map(r => ` - ${r.title ?? ""}`).join("\n");
|
|
128
122
|
}
|
|
129
|
-
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// Device unknown: list known I-entries so agent can identify this machine
|
|
127
|
+
const iRows = db.prepare("SELECT id, title FROM memories WHERE prefix='I' AND obsolete!=1 ORDER BY id").all();
|
|
128
|
+
if (iRows.length > 0) {
|
|
129
|
+
humanContext += "\n\n--- Known devices (identify this machine) ---\n" +
|
|
130
|
+
iRows.map(r => `${r.id} ${r.title ?? ""}`).join("\n");
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
const pRows = db.prepare("SELECT id, title FROM memories WHERE prefix='P' AND obsolete!=1 ORDER BY updated_at DESC LIMIT 5").all();
|
|
@@ -134,6 +135,19 @@ export async function hookStartup() {
|
|
|
134
135
|
recentProjects = "\n\n--- Recent projects ---\n" +
|
|
135
136
|
pRows.map((r) => `${r.id} ${r.title ?? ""}`).join("\n");
|
|
136
137
|
}
|
|
138
|
+
// Checkpoint status: count unsummarized sessions in active project's O-entry
|
|
139
|
+
const activeP = db.prepare("SELECT id FROM memories WHERE prefix='P' AND active=1 AND obsolete!=1 LIMIT 1").get();
|
|
140
|
+
if (activeP) {
|
|
141
|
+
const seq = parseInt(activeP.id.replace(/\D/g, ""), 10);
|
|
142
|
+
const oId = `O${String(seq).padStart(4, "0")}`;
|
|
143
|
+
const unsummarized = db.prepare(`SELECT COUNT(*) as cnt FROM memory_nodes
|
|
144
|
+
WHERE root_id=? AND depth=2
|
|
145
|
+
AND (content IS NULL OR content = title)
|
|
146
|
+
AND (irrelevant IS NULL OR irrelevant != 1)`).get(oId);
|
|
147
|
+
if (unsummarized && unsummarized.cnt > 0) {
|
|
148
|
+
recentProjects += `\n\n--- Checkpoint status ---\n${unsummarized.cnt} session(s) in ${oId} without summary. Run \`hmem checkpoint\` or wait for auto-checkpoint.`;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
137
151
|
}
|
|
138
152
|
finally {
|
|
139
153
|
db.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-hook-startup.js","sourceRoot":"","sources":["../src/cli-hook-startup.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-hook-startup.js","sourceRoot":"","sources":["../src/cli-hook-startup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# Autoresearch Nightly — optimizes hmem checkpoint prompts
|
|
3
|
-
# Run via cron: 0 2 * * 0 /home/
|
|
3
|
+
# Run via cron: 0 2 * * 0 /home/username/projects/hmem/scripts/autoresearch-nightly.sh
|
|
4
4
|
#
|
|
5
5
|
# What it does:
|
|
6
6
|
# 1. Creates a fresh branch from main
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: hmem-activate
|
|
3
|
-
description: Activate a project mid-session via load_project, then check for and fix misrouted O-entry exchanges. Use whenever the user says "aktiviere Projekt X", "lade Projekt X", "load project X", "wechsel zu Projekt X", or switches project context during a session.
|
|
3
|
+
description: Activate a project mid-session via load_project, then check for and fix misrouted O-entry exchanges. Use whenever the user says "aktiviere Projekt X", "lade Projekt X", "load project X", "wechsel zu Projekt X", or switches project context during a session. ALSO use when you are about to call load_project mid-session for any reason — even if the user didn't explicitly ask to switch projects.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# hmem-activate
|
|
@@ -13,8 +13,8 @@ Use when the user switches to a different project mid-session.
|
|
|
13
13
|
Before calling load_project, check which project is currently active. The active project is shown in every tool response as `Active project: PXXXX <name>`.
|
|
14
14
|
|
|
15
15
|
Note:
|
|
16
|
-
- **OLD_PROJECT**: currently active project ID (e.g. P0043)
|
|
17
|
-
- **OLD_O**: corresponding O-entry (same seq: P0043 → O0043)
|
|
16
|
+
- **OLD_PROJECT**: currently active project ID (e.g. P0043) — or `none` if no project was active
|
|
17
|
+
- **OLD_O**: corresponding O-entry (same seq: P0043 → O0043) — if OLD_PROJECT = `none`, use **O0000** (catch-all for unattributed sessions)
|
|
18
18
|
- **TARGET_PROJECT**: the project the user wants to switch to
|
|
19
19
|
- **TARGET_O**: corresponding O-entry (e.g. P0048 → O0048)
|
|
20
20
|
|
|
@@ -54,6 +54,20 @@ Scan the load_project output:
|
|
|
54
54
|
|
|
55
55
|
Fix immediately, do not defer.
|
|
56
56
|
|
|
57
|
+
## STEP 3.6: Schema Check
|
|
58
|
+
|
|
59
|
+
Scan the load_project output for schema mismatches and fix them immediately.
|
|
60
|
+
|
|
61
|
+
**`[-]` prefix sections** — orphaned nodes outside the current schema (e.g. `P0048.10 [-] Bugs (duplicate)`, `P0048.21 [-] Protocol (stale artifact)`):
|
|
62
|
+
```
|
|
63
|
+
update_memory(id="P00XX.YY", { irrelevant: true })
|
|
64
|
+
```
|
|
65
|
+
Mark every `[-]` section irrelevant. Do not skip, do not defer.
|
|
66
|
+
|
|
67
|
+
**Duplicate L2 sections** — two entries with the same section name (e.g. two `.6 Bugs` nodes) → mark the higher-numbered one irrelevant, keep the canonical one.
|
|
68
|
+
|
|
69
|
+
**Missing required sections** — auto-reconcile on the next `load_project` will add them automatically. No manual action needed unless you are actively working on that section right now.
|
|
70
|
+
|
|
57
71
|
## STEP 4: Confirm
|
|
58
72
|
|
|
59
73
|
Output:
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
- User request: "aktiviere projekt hmem"
|
|
5
5
|
- Current active project: P0043 (EasySAP)
|
|
6
6
|
- Target project: P0048 (hmem)
|
|
7
|
-
- Skill file read: `/home/
|
|
7
|
+
- Skill file read: `/home/username/projects/hmem/skills/hmem-activate/SKILL.md`
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -8,7 +8,7 @@ Aktuell aktives Projekt: P0043 (EasySAP)
|
|
|
8
8
|
|
|
9
9
|
### Schritt 1: Projekt identifizieren
|
|
10
10
|
- Benutzer sagt "aktiviere projekt hmem"
|
|
11
|
-
- Ich weiß aus dem Kontext, dass ich in `/home/
|
|
11
|
+
- Ich weiß aus dem Kontext, dass ich in `/home/username/projects/hmem` bin
|
|
12
12
|
- Das Projekt "hmem" ist wahrscheinlich eine der P-Einträge in meinem hmem-Speicher
|
|
13
13
|
- Normalerweise würde ich `list_projects()` aufrufen, aber ich kann hier keine MCP-Tools aufrufen
|
|
14
14
|
- Im Standard-Workflow: Ich würde das hmem-Projekt in der P-Liste suchen (vermutlich P00XX für "hmem")
|
|
@@ -138,6 +138,7 @@ git push
|
|
|
138
138
|
| cli.ts (new commands) | **hmem-update** (new CLI commands for users), hmem-setup |
|
|
139
139
|
| cli-checkpoint.ts | hmem-config (checkpoint docs), hmem-read (summary docs) |
|
|
140
140
|
| cli-log-exchange.ts | hmem-setup (hook docs) |
|
|
141
|
-
| cli-context-inject.ts | hmem-wipe, hmem-setup |
|
|
141
|
+
| cli-context-inject.ts | hmem-wipe, **hmem-setup**, **hmem-update** |
|
|
142
|
+
| cli-hook-startup.ts | **hmem-setup** (first-message context docs), **hmem-update** (user-visible behavior) |
|
|
142
143
|
| Any new skill added | **hmem-update** (list of skills to sync) |
|
|
143
144
|
| Any new user-visible behavior | **hmem-update** — always |
|
|
@@ -28,8 +28,10 @@ Scan the output for:
|
|
|
28
28
|
- **✓ DONE items in Roadmap** → `update_memory(id, { irrelevant: true })`
|
|
29
29
|
- **Decommissioned / concept entries in Infrastructure** → `update_memory(id, { irrelevant: true })`
|
|
30
30
|
- **Old status snapshots in Overview** (superseded by newer) → mark obsolete
|
|
31
|
+
- **`[-]` prefix sections** (e.g. `P00XX.10 [-] Bugs`) — orphaned schema artifacts → `update_memory(id, { irrelevant: true })` for each
|
|
32
|
+
- **Duplicate L2 sections** (two nodes with same name) → mark the higher-numbered one irrelevant
|
|
31
33
|
|
|
32
|
-
Fix
|
|
34
|
+
Fix all of the above immediately. Do not note and defer.
|
|
33
35
|
|
|
34
36
|
## STEP 3: Calibrate explanation depth
|
|
35
37
|
|
|
@@ -78,10 +78,10 @@ Script: `~/.claude/hooks/hmem-log-exchange.sh`
|
|
|
78
78
|
Fires only after `/clear` (matcher: `"clear"`). Two hooks run in sequence:
|
|
79
79
|
|
|
80
80
|
**a) `hmem context-inject`** — outputs `additionalContext` containing:
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
81
|
+
- 5 most recently edited P-entries (one line each, active marked with `[*]`)
|
|
82
|
+
- Hint to call `read_memory({prefix:"P", titles_only:true})` for the full list
|
|
83
|
+
- All R-entries (rules, one line each)
|
|
84
|
+
- Footer with `load_project` call for the active project (if any)
|
|
85
85
|
- Keeps the agent oriented after a context reset without a full `read_memory()` call.
|
|
86
86
|
|
|
87
87
|
**b) `hmem deactivate`** — resets the active project for the new session:
|
|
@@ -129,7 +129,7 @@ npm install -g hmem-sync
|
|
|
129
129
|
### Step 2: Gather credentials from the original device
|
|
130
130
|
|
|
131
131
|
The user needs:
|
|
132
|
-
- **Server URL** (e.g. `https://
|
|
132
|
+
- **Server URL** (e.g. `https://your-server.example.com/hmem-sync`)
|
|
133
133
|
- **User ID** (e.g. `bbbee`)
|
|
134
134
|
- **Token** (64-char hex string from `.hmem-sync-token`)
|
|
135
135
|
- **Passphrase** (same as original device)
|
|
@@ -370,6 +370,36 @@ Agents update L4 after every code change (enforced via `hmem-subagent` POST-TASK
|
|
|
370
370
|
|
|
371
371
|
---
|
|
372
372
|
|
|
373
|
+
## Step 2k: v7.2.2 — Richer Session-Start Context + I-Entry Active Device Block
|
|
374
|
+
|
|
375
|
+
**Only needed when upgrading from < v7.2.2**
|
|
376
|
+
|
|
377
|
+
### context-inject: 5 most recent projects instead of full list
|
|
378
|
+
|
|
379
|
+
`hmem context-inject` (SessionStart[clear] hook) now shows only the **5 most recently edited P-entries** instead of all projects. A hint is appended:
|
|
380
|
+
```
|
|
381
|
+
(full list: read_memory({prefix:"P", titles_only:true}))
|
|
382
|
+
```
|
|
383
|
+
No config change needed — automatic.
|
|
384
|
+
|
|
385
|
+
### hook-startup: H-entry title fix
|
|
386
|
+
|
|
387
|
+
H-entries without a `title` field (entries whose content lives entirely in `level_1`) now display correctly. Previously they appeared as blank lines in the `--- Human context (H-entries) ---` block.
|
|
388
|
+
|
|
389
|
+
### hook-startup: Active device block
|
|
390
|
+
|
|
391
|
+
The first-message context injection now includes a **`--- Active device (I00XX) ---`** block showing:
|
|
392
|
+
- I-entry body (L1) — device name, specs, IP
|
|
393
|
+
- All L2 section titles (Specs, OS, IP Address, Access, Services, Apps, Storage, Notes, Rules)
|
|
394
|
+
- For the **Apps** section: full L3 title list (installed software)
|
|
395
|
+
- Irrelevant L2/L3 nodes are filtered out
|
|
396
|
+
|
|
397
|
+
### hook-startup: recent projects limit raised 3 → 5
|
|
398
|
+
|
|
399
|
+
The `--- Recent projects ---` block in the first-message injection now shows 5 most recently updated P-entries (was 3).
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
373
403
|
## Step 3: Entry Migration
|
|
374
404
|
|
|
375
405
|
Some versions introduce new data formats. Check if migration is needed:
|
|
@@ -36,7 +36,7 @@ Not all Bash calls need dispatching. The key distinction:
|
|
|
36
36
|
| **Targeted** | Known path/pattern, single command, result ≤3 lines | Run directly |
|
|
37
37
|
| **Exploratory** | Open-ended, multiple locations, result unknown | Dispatch |
|
|
38
38
|
|
|
39
|
-
**Targeted (OK to run directly):** `find /home/
|
|
39
|
+
**Targeted (OK to run directly):** `find /home/username -name "settings.json" -path "*claude*"` — one known location, one expected result.
|
|
40
40
|
|
|
41
41
|
**Exploratory (must dispatch):** `grep -r "functionName" ~/projects/` across repos, or "where is X defined?" without knowing which file.
|
|
42
42
|
|
|
@@ -58,6 +58,19 @@ These thoughts mean STOP — dispatch instead:
|
|
|
58
58
|
| "I remember how this works" | Skills evolve. Invoke the skill. |
|
|
59
59
|
| "I'll write the P-entry manually with write_memory" | Use `hmem-new-project`. It handles schema, O-entry linking, and section setup. |
|
|
60
60
|
|
|
61
|
+
## MANDATORY — DO NOT
|
|
62
|
+
|
|
63
|
+
Hard stops, not guidelines:
|
|
64
|
+
|
|
65
|
+
| DO NOT | Instead |
|
|
66
|
+
|--------|---------|
|
|
67
|
+
| Read `~/.hmem/*.hmem` directly | Use `read_memory()`, `search_memory()`, or `/hmem-read` |
|
|
68
|
+
| Create O-entries manually | O-entries are auto-managed by Haiku — use `/hmem-session-start` (R0022) |
|
|
69
|
+
| Write to memory during an active task | Finish the task first, then write |
|
|
70
|
+
| Call `search_memory` twice in one turn | Batch into one call, or use `hmem-recall` |
|
|
71
|
+
| Create P-entries with `write_memory` | Use `hmem-new-project` — schema + O-entry linking auto-handled |
|
|
72
|
+
| Call `load_project` mid-session without routing | Always use `/hmem-activate` — it handles exchange misrouting |
|
|
73
|
+
|
|
61
74
|
## Mandatory Habits
|
|
62
75
|
|
|
63
76
|
1. **Search = Dispatch — unless targeted.** Exploratory searches ("find", "where is X", "what does file Y contain") → `hmem-dispatch`. Single targeted command with a predictable result (≤3 lines) → run directly.
|