memgineering 0.4.2 → 0.6.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 +667 -0
- package/NOTICE +22 -0
- package/README.md +32 -8
- package/assets/MEMGINEERING.md +44 -140
- package/assets/memgineering-memory/SKILL.md +44 -303
- package/assets/memgineering-recall/SKILL.md +142 -0
- package/assets/memgineering-rules/SKILL.md +111 -0
- package/assets/memgineering-setup/SKILL.md +184 -105
- package/assets/memgineering-writing/SKILL.md +183 -0
- package/bin/memgineering.js +0 -0
- package/dist/index.js +4981 -1222
- package/package.json +2 -2
- package/scripts/postinstall.mjs +59 -10
package/NOTICE
CHANGED
|
@@ -9,6 +9,28 @@ terms. This NOTICE file must be included in redistributions and derivative
|
|
|
9
9
|
works, per section 4(d) of that license.
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
BUNDLED FONT
|
|
13
|
+
------------
|
|
14
|
+
|
|
15
|
+
The install screen (`memgineering setup --web`) carries a typeface inside the
|
|
16
|
+
program rather than fetching one. It is served over loopback under a policy
|
|
17
|
+
that allows no outbound request, so a webfont either arrives in the document or
|
|
18
|
+
does not arrive at all.
|
|
19
|
+
|
|
20
|
+
Jua
|
|
21
|
+
Copyright 2018 The BM JUA Project Authors
|
|
22
|
+
(https://github.com/googlefonts/jua)
|
|
23
|
+
Licensed under the SIL Open Font License, Version 1.1
|
|
24
|
+
(http://scripts.sil.org/OFL)
|
|
25
|
+
|
|
26
|
+
What ships is a SUBSET — 431 of the face's 2,520 glyphs, being the characters
|
|
27
|
+
the install screen's headings contain in Korean and English. It is embedded as
|
|
28
|
+
a WOFF2 in the program's own code and is not offered for download, sold, or
|
|
29
|
+
distributed on its own. The OFL permits both the subsetting and the embedding;
|
|
30
|
+
this notice is the attribution it asks for in return. The font is not renamed,
|
|
31
|
+
and no Reserved Font Name is claimed.
|
|
32
|
+
|
|
33
|
+
|
|
12
34
|
UPDATES AND SUPPORT
|
|
13
35
|
-------------------
|
|
14
36
|
|
package/README.md
CHANGED
|
@@ -3,16 +3,25 @@
|
|
|
3
3
|
One memory for the AI you connect.
|
|
4
4
|
|
|
5
5
|
Your notes stay in a folder you own. Every agent you use — Claude Code, Codex,
|
|
6
|
-
|
|
6
|
+
Antigravity — reads and writes the same brain through one CLI, so what you told one
|
|
7
7
|
of them is there for the next one, tomorrow, and in whatever tool you move to
|
|
8
8
|
after that.
|
|
9
9
|
|
|
10
|
+
**You do not have to run any of this yourself.** Ask whichever agent you are
|
|
11
|
+
already talking to — "install memgineering and set it up" — and it does the
|
|
12
|
+
whole thing, asking you only what it genuinely cannot decide.
|
|
13
|
+
|
|
14
|
+
<details>
|
|
15
|
+
<summary>The commands, for the agent (or for you, if you prefer a terminal)</summary>
|
|
16
|
+
|
|
10
17
|
```bash
|
|
11
18
|
npm i -g memgineering
|
|
12
|
-
memgineering setup
|
|
19
|
+
memgineering setup --agent # or --web to choose the settings on a screen
|
|
13
20
|
memgineering link ~/Documents/Notes # or: memgineering init ~/brain
|
|
14
21
|
```
|
|
15
22
|
|
|
23
|
+
</details>
|
|
24
|
+
|
|
16
25
|
## What it does
|
|
17
26
|
|
|
18
27
|
```bash
|
|
@@ -131,6 +140,7 @@ can register it to run automatically when a Claude Code session starts.
|
|
|
131
140
|
| `init <path>` | create a brain, laid out and ready |
|
|
132
141
|
| `link <path>` | read notes you already keep |
|
|
133
142
|
| `use [brain]` | bind this folder to one brain |
|
|
143
|
+
| `push` · `pull` | carry a brain to your account, and back down again |
|
|
134
144
|
| `unlink` · `reindex` · `sync-rules` | brain housekeeping |
|
|
135
145
|
| `log` | what changed, and what can still be undone |
|
|
136
146
|
| `retire` · `unretire` | mark a memory no longer current, or current again |
|
|
@@ -148,13 +158,27 @@ Every command takes `--json`.
|
|
|
148
158
|
| `MEMGINEERING_JSON=1` | force JSON output without the flag |
|
|
149
159
|
| `MEMGINEERING_NO_UPDATE=1` | skip the version check for one run |
|
|
150
160
|
|
|
151
|
-
##
|
|
161
|
+
## A brain that is not on this machine
|
|
162
|
+
|
|
163
|
+
A brain can also live in a memgineering account, so the same memory reaches
|
|
164
|
+
every tool and device you sign in from. Nothing about the local path went away —
|
|
165
|
+
`--local` reads the folder on this disk whether or not you are signed in.
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
memgineering push # carry this folder up, note by note
|
|
169
|
+
memgineering pull ~/my-brain # bring it back down, as markdown
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
The pair is deliberately asymmetric in the same direction: **`push` never
|
|
173
|
+
deletes anything here, and `pull` never overwrites anything here.** A file
|
|
174
|
+
already at that path is left alone and reported, so an interrupted transfer is
|
|
175
|
+
finished by running the command again and a mistyped folder costs you nothing.
|
|
152
176
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
177
|
+
What `pull` writes is your notes, at the paths they had, including the ones your
|
|
178
|
+
rules exclude — excluded means "stop reading this", not "this is no longer
|
|
179
|
+
yours" — with `.memgignore` alongside them so the scoping survives the trip.
|
|
180
|
+
It is a folder of markdown, not yet a brain: `memgineering link` is what makes
|
|
181
|
+
it one, and it shows you what it would read first.
|
|
158
182
|
|
|
159
183
|
## Licence
|
|
160
184
|
|
package/assets/MEMGINEERING.md
CHANGED
|
@@ -1,150 +1,54 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: memgineering
|
|
3
|
-
description: Use whenever the user refers to something they told you before, asks what was decided,
|
|
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.
|
|
5
|
+
version: 0.5.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# memgineering
|
|
9
9
|
|
|
10
|
-
The user has a **brain** — a folder of their own notes
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
The user has a **brain** — a folder of their own notes, read and written through
|
|
11
|
+
the `memgineering` CLI by any AI tool that can run it. It outlives this session
|
|
12
|
+
and this tool, so treat it as where what they know actually lives. Never edit
|
|
13
|
+
those files by hand: only the CLI records the change and keeps `undo` working.
|
|
14
14
|
|
|
15
15
|
## When to reach for it
|
|
16
16
|
|
|
17
|
-
**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
**
|
|
30
|
-
|
|
31
|
-
`
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
that matters rather than all of them.
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
memgineering open <handle> # claims behind the card
|
|
59
|
-
memgineering open <handle> --detail full # the whole note
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
`open` also takes a note's exact title or its path, so you do not need to
|
|
63
|
-
recall first when you already know what you want.
|
|
64
|
-
|
|
65
|
-
**Check the evidence before trusting an old memory,** or when two of them
|
|
66
|
-
disagree:
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
memgineering evidence <handle>
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
How often it has been surfaced, how often anyone read it, when it last changed
|
|
73
|
-
and why. **Newer does not win**: a rule that has stood for eleven months has
|
|
74
|
-
eleven months of nobody contradicting it behind it. Use whether it was actually
|
|
75
|
-
reached for, not its date.
|
|
76
|
-
|
|
77
|
-
**Remember when you learn something durable** — a decision, a constraint, a
|
|
78
|
-
correction the user made, how something actually works:
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
memgineering remember "deploys are manual — launchctl by hand, no CD" --reason "watched it twice"
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
No approval step, by design. It is recorded and reversible (`memgineering
|
|
85
|
-
undo`), so the cost of a wrong entry is one command, not a permanent mistake.
|
|
86
|
-
Do not ask permission for ordinary observations — write them.
|
|
87
|
-
|
|
88
|
-
**Always pass `--reason`.** Every write verb takes it and it goes in the ledger.
|
|
89
|
-
It is the only part of a record that still means anything to whoever reads it
|
|
90
|
-
six months from now, and it is refused if it looks like it carries a credential.
|
|
91
|
-
|
|
92
|
-
**Revise when a conclusion changes:**
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
memgineering revise <handle> --claim "Deploying is manual now." --summary "manual only"
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## What to raise with the user rather than just doing
|
|
99
|
-
|
|
100
|
-
The tool does not gate writes; your judgement does. Tell them — plainly, once
|
|
101
|
-
— when:
|
|
102
|
-
|
|
103
|
-
- the change touches `01_BASE/` (their identity, preferences, boundaries,
|
|
104
|
-
tooling). The output marks these `⚠ critical target`.
|
|
105
|
-
- you are recording something they said in passing that they may not want kept
|
|
106
|
-
- what you learned contradicts a memory that is currently marked current
|
|
107
|
-
|
|
108
|
-
Everything else: write it and mention it in a sentence.
|
|
109
|
-
|
|
110
|
-
## Depth costs context — ask for what you need
|
|
111
|
-
|
|
112
|
-
`recall` returns cards, not notes, so calling it often is cheap. Reach for more
|
|
113
|
-
only when a summary is not enough:
|
|
114
|
-
|
|
115
|
-
| depth | what you get |
|
|
116
|
-
| ------------------ | ----------------------------------------------- |
|
|
117
|
-
| `--detail card` | title + summary (default) |
|
|
118
|
-
| `--detail summary` | + the note's headings |
|
|
119
|
-
| `--detail chunks` | + every section, or one with `--section <name>` |
|
|
120
|
-
| `--detail full` | the whole note |
|
|
121
|
-
|
|
122
|
-
`recall "<q>" --limit 1 --detail full` is "find the best match and read it" in
|
|
123
|
-
one call.
|
|
124
|
-
|
|
125
|
-
## At the start of a session
|
|
126
|
-
|
|
127
|
-
```
|
|
128
|
-
memgineering resurface
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
Ranks by what has been recalled in this folder before, how recently, and which
|
|
132
|
-
of their base notes have gone unread. No query needed — this is the one that
|
|
133
|
-
tells you what you should already know here.
|
|
134
|
-
|
|
135
|
-
## Rules
|
|
136
|
-
|
|
137
|
-
- **Never edit brain files directly.** Use the CLI: it records what changed and
|
|
138
|
-
keeps `undo` working. A hand edit is invisible to that.
|
|
139
|
-
- **Never invent a handle.** They come from `recall`, `resurface` or `open`.
|
|
140
|
-
- **Full ids in durable places.** The short handle is for this conversation;
|
|
141
|
-
when you save a reference in your own memory or a document, use the full `id:`
|
|
142
|
-
that `open` prints.
|
|
143
|
-
- **Nothing matched is a real answer.** Say the brain has nothing on it rather
|
|
144
|
-
than filling the gap with a guess.
|
|
145
|
-
- **Their notes are theirs.** `revise` only touches the memory block in
|
|
146
|
-
frontmatter; prose is never rewritten by this tool, and should not be
|
|
147
|
-
rewritten by you without being asked.
|
|
148
|
-
|
|
149
|
-
If `memgineering: command not found`, install with `npm i -g memgineering`,
|
|
150
|
-
then `memgineering setup`.
|
|
17
|
+
- **Anything that sounds already settled** — a past decision, their setup, their
|
|
18
|
+
preferences, or before repeating advice you have no evidence they wanted:
|
|
19
|
+
`memgineering recall "<their words>"`
|
|
20
|
+
- **Write it down when any of these happens** — something turned out to work a
|
|
21
|
+
particular way; a choice got made, by them or by you; an attempt failed, and
|
|
22
|
+
what finally worked instead; they said "let's do it this way"; they looked at
|
|
23
|
+
what you did and said it was right: `memgineering remember "<it>" --reason
|
|
24
|
+
"<why>"`. Reversible by design, so do not ask permission for ordinary
|
|
25
|
+
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
|
+
- **A new folder, or "where were we"** — `memgineering resurface`, no query.
|
|
30
|
+
|
|
31
|
+
`--reason` on every write: it is the only part of the record that still means
|
|
32
|
+
anything six months later, and it is refused if it looks like a credential.
|
|
33
|
+
|
|
34
|
+
Write what you checked, not what you worked out. A decision is whatever they
|
|
35
|
+
say it is; a fact that a command or a file could confirm — an address, an
|
|
36
|
+
identifier, a version, a number — goes in verified or not at all. Recalled
|
|
37
|
+
later, a guess is indistinguishable from a fact.
|
|
38
|
+
|
|
39
|
+
## Where the detail is
|
|
40
|
+
|
|
41
|
+
`memgineering-memory` is the map — which verb answers which question. It points
|
|
42
|
+
at four skills, each of which also loads on its own when its topic comes up:
|
|
43
|
+
|
|
44
|
+
- `memgineering-recall` — recall, open, evidence, resurface, how much to ask for
|
|
45
|
+
- `memgineering-writing` — remember, revise, undo, retire, exclude, `01_BASE/`
|
|
46
|
+
- `memgineering-rules` — decisions that bind, and the before-edit hook
|
|
47
|
+
- `memgineering-setup` — installing, which tools this reaches, accounts, moving a brain
|
|
48
|
+
|
|
49
|
+
Tools with a SKILL.md description-matcher (Claude Code, Codex, Grok) auto-load these.
|
|
50
|
+
Tools without one (e.g. Antigravity): READ `<tool-home>/skills/memgineering-<name>/SKILL.md`
|
|
51
|
+
when its topic comes up.
|
|
52
|
+
|
|
53
|
+
If `memgineering: command not found`, install with `npm i -g memgineering`, then
|
|
54
|
+
`memgineering setup`.
|