memgineering 0.9.1 → 0.10.0

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/CHANGELOG.md CHANGED
@@ -11,6 +11,66 @@ language the reader wants. The bilingual rule the monorepo applies to
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ## [0.10.0] — 2026-08-26
15
+
16
+ ### Added
17
+
18
+ - **`memgineering create <name> [--user] [--language] [--about]` — a hosted
19
+ brain without a folder first.** Creates the brain on the account (claiming a
20
+ just-approved sign-in on its own), writes the six starter notes, records the
21
+ answers as real content, asks the index to catch up without dying when it
22
+ cannot, and points this machine at the result. A taken name is refused with
23
+ nothing written — unless the brain holds only its own untouched scaffolding,
24
+ which is an interrupted create, finished by running the same command again.
25
+ - **`onboard` reaches a hosted brain.** Same questions and JSON shape as a
26
+ folder brain, judged with the server's own emptiness rule; a base note the
27
+ brain does not hold at all is reported as `missing` with a hint that can
28
+ succeed, never a revise instruction that would answer `ref_not_found`. The
29
+ command gained `--brain <name>` and `--local`, resolving the same way every
30
+ other verb does.
31
+ - **Setup now says how to connect a brain, cloud first.** The report gained a
32
+ `brain` section telling the agent exactly what to run next in every state —
33
+ pick one of the account's brains, create one, or carry a folder up — instead
34
+ of ending at sign-in and leaving the machine brainless.
35
+
36
+ ### Changed
37
+
38
+ - **An agent writing durable user facts into its own harness memory now gets
39
+ redirected, once per session, at that exact moment.** The guard watches
40
+ write-shaped tool calls aimed at an agent's own memory store (Claude Code's
41
+ `projects/<dir>/memory` today) and says where the shared copy belongs —
42
+ only on machines that actually have a brain. It never blocks anything.
43
+ - `use --brain` and `brains` refusals no longer name `push --brain` as the
44
+ only way to make a hosted brain: `create` is the no-upload creator,
45
+ `push --brain` the carry-a-folder-up one.
46
+
47
+ ### Agent guidance
48
+
49
+ - The hub now opens with a reflex table: a standing rule runs `remember
50
+ --rule` NOW, a correction runs `remember`, anything settled runs `recall`
51
+ first; plus two measured traps spelled out (loading a skill page saves
52
+ nothing, and a correction that should hold next time takes `--rule`).
53
+ Measured on the weakest tier: corrections reached the brain as binding
54
+ rules in 1 of 10 baseline sessions and 4 of 5 with the table. The table
55
+ then moved to judging INTENT over marker words — the one test is whether
56
+ the words are meant to bind future sessions, in any language, with the
57
+ English phrases demoted to examples and a counter-example added, trading
58
+ weakest-tier literalism for generality on the owner's direction. Restart
59
+ your agent session after upgrading.
60
+ - **An ambiguous correction no longer becomes a guessed rule.** When the
61
+ user's words could mean just-this-task or from-now-on, the hub now says:
62
+ do not guess — record without `--rule`, do the task, and ask in one line
63
+ whether it should hold. Measured: bare corrections produced guessed binding
64
+ rules in 2 of 3 baseline sessions and 0 of 5 with the path, with no new
65
+ questions on clear-cut cases.
66
+ - The `memgineering-setup` skill reorders "Connect a brain" cloud-first —
67
+ the account's brains, then `create`, then migrating a folder up with
68
+ `push --brain` + `reindex`, with `link`/`init` as the machine-only path —
69
+ and adds a section on turning migrated prose into memory (revise reinforce,
70
+ never inventing a claim the note does not contain). Restart your agent
71
+ session after upgrading.
72
+
73
+
14
74
  ## [0.9.1] — 2026-08-25
15
75
 
16
76
  ### Changed
@@ -2,7 +2,7 @@
2
2
  name: memgineering
3
3
  description: Use whenever the user refers to something they told you before, asks what was decided, tells you something worth keeping, or settles something that should hold next time. The memory lives in their own folder and outlives this session; check it before answering from guesswork, and write to it when you learn something durable.
4
4
  type: skill
5
- version: 0.9.1
5
+ version: 0.10.0
6
6
  ---
7
7
 
8
8
  # memgineering
@@ -12,6 +12,35 @@ the `memgineering` CLI by any AI tool that can run it. It outlives this session
12
12
  and this tool, so treat it as where what they know actually lives. Never edit
13
13
  those files by hand: only the CLI records the change and keeps `undo` working.
14
14
 
15
+ ## The reflexes — run these the moment the meaning appears
16
+
17
+ One judgement decides everything in this table, and it is about intent, not
18
+ wording: **is this meant to bind future sessions, or only the thing in front
19
+ of you right now?** Any language, any phrasing — a standing decision often
20
+ arrives with no marker words at all, and marker-looking words are often not
21
+ one ("from now on" said about the next five minutes is a schedule, not a
22
+ rule; an instruction scoped to "this file" or "here" usually ends with the
23
+ task). Judge the meaning, then move:
24
+
25
+ | what the user meant | run NOW |
26
+ | --- | --- |
27
+ | they settled something that should hold beyond this session (however phrased — e.g. "from now on…", "always…", "never…") | `memgineering remember "<their words>" --rule --reason "<why>"` |
28
+ | they corrected what you made, for this task (e.g. "again", "no, like this", showed the right way) | `memgineering remember "<what turned out right>" --reason "<their correction>"` — and if the correction is meant to hold beyond this session, that is the row above: add `--rule` |
29
+ | they asked about something that sounds already settled (e.g. "what did we decide", "how do we do this again") | `memgineering recall "<their words>"` FIRST, answer second |
30
+
31
+ When the words could mean just-this-task or from-now-on, do not guess a
32
+ binding rule: record it WITHOUT `--rule`, do the task, and ask in one line
33
+ whether it should hold from now on. A wrong rule silently binds every future
34
+ session; the question costs a second.
35
+
36
+ These are SHELL commands — run them with your shell tool. Opening or loading a
37
+ memgineering skill page saves nothing; measured: a model passed the command as
38
+ a skill argument, told the user it was saved, and nothing was stored. Done
39
+ means the CLI printed `Remembered.` and an undo id.
40
+
41
+ Durable facts about the user never go into this tool's own memory files or
42
+ directories — the brain is the one store every tool they use shares.
43
+
15
44
  ## When to reach for it
16
45
 
17
46
  - **Anything that sounds already settled** — a past decision, their setup, their
@@ -23,9 +52,6 @@ those files by hand: only the CLI records the change and keeps `undo` working.
23
52
  what you did and said it was right: `memgineering remember "<it>" --reason
24
53
  "<why>"`. Reversible by design, so do not ask permission for ordinary
25
54
  observations.
26
- - **They settled something that should hold next time** — "from now on",
27
- "never", "we always do it this way" — the same verb with `--rule`, which puts
28
- it in front of an agent before it edits a file rather than after someone asks.
29
55
  - **A new folder, or "where were we"** — `memgineering resurface`, no query.
30
56
  - **Their notes have piled up** — duplicates, notes that disagree:
31
57
  `memgineering consolidate` finds candidates and changes nothing; a change is
@@ -130,6 +130,60 @@ set nothing up, so wait for it rather than reporting done.
130
130
 
131
131
  ## 2. Connect a brain
132
132
 
133
+ Signed in — the default — a brain belongs on the account, where every machine
134
+ and every tool they use reads the same one. Three openings; run
135
+ `memgineering brains` first to learn which one you are in:
136
+
137
+ **The account already holds brains** — list, ask which, point:
138
+
139
+ ```
140
+ memgineering brains # what it holds, with note counts
141
+ memgineering use --brain work # nothing is uploaded by switching
142
+ ```
143
+
144
+ **The account holds nothing and there are no notes here** — make one:
145
+
146
+ ```
147
+ memgineering create work --user "Rayul" --language Korean --about "one line"
148
+ ```
149
+
150
+ Agree the NAME with the user first, and ask the three base questions in their
151
+ language — what to call them, which language to answer in, one line about who
152
+ they are. Every flag except the name is optional: leave out what they do not
153
+ want to say. `create` makes the brain on the account, writes the six starter
154
+ notes, records those answers as real content, points this machine at it, and
155
+ its output says how many base files are still empty templates —
156
+ `memgineering onboard` prints what to ask for the rest, and it now reaches a
157
+ hosted brain too. Its `--json` may also report `missing`: base notes the brain
158
+ does not hold at all, with a `missing_hint` naming the way to put them there —
159
+ never a revise instruction that cannot succeed.
160
+
161
+ A name the account already holds is refused with nothing written — `use
162
+ --brain <name>` points at it instead, or agree a different name. The one
163
+ exception is a brain holding nothing but its own untouched scaffolding: that
164
+ is an interrupted `create`, and running the same command again finishes it.
165
+
166
+ **They already keep notes in a folder on this machine** — carry them up
167
+ instead of starting empty:
168
+
169
+ ```
170
+ memgineering push --brain work # folder → account; deletes nothing local
171
+ memgineering reindex # makes the moved notes searchable by meaning
172
+ ```
173
+
174
+ ### Migrating notes that were never memgineering notes
175
+
176
+ `push` carries files; it does not turn prose into memory. After a migration,
177
+ offer — do not sweep — a pass over the notes they actually care about: ask
178
+ WHICH matter, `memgineering open` each, then
179
+ `memgineering revise <path> --action reinforce --claim "<one factual line the
180
+ note itself contains>" --summary "<what recall should show>"`. Never write a
181
+ claim the note does not contain: a guessed fact recalled later is
182
+ indistinguishable from something they said. One `reindex` at the end covers
183
+ the whole batch.
184
+
185
+ ### Machine-only (they chose `--no-login`)
186
+
133
187
  **They already keep notes somewhere:**
134
188
 
135
189
  ```
@@ -201,8 +255,9 @@ It moves the one hosted brain this machine reads and touches no notes — `push`
201
255
  and `pull` are what move those. It does not create: an unknown name is refused
202
256
  with the account's list, because pointing at a brain that does not exist would
203
257
  have every recall answer from an empty one, and from the outside that looks like
204
- the notes are gone. Before this, `push --brain <name>` was the only thing that
205
- could move the pointer, so switching meant uploading a folder first.
258
+ the notes are gone. Making a NEW brain is `create <name>` (empty, scaffolded)
259
+ or `push --brain <name>` (filled from a folder) — both point this machine at
260
+ the result on their own.
206
261
 
207
262
  It refuses a folder path, `--default` or `--here` in the same call. Those bind a
208
263
  folder; this is one setting for the whole machine.