@systemdox/mcp-server 0.1.46 → 0.1.48

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 CHANGED
@@ -160,6 +160,75 @@ reaches every member's computer as one plugin, `<workspace>-setup`.
160
160
  by identifier (`` `con_…` (reseller, sales) ``): their label, name, phone
161
161
  number and email address. The details are for that session only; the memory
162
162
  keeps the identifier. It writes nothing.
163
+ - **`sync_memory`** (your own computer only) syncs a project's team memory, as
164
+ `sync-memory` below does with no one at the terminal: it never answers a
165
+ question about a person and never rewrites a file for one. A file that still
166
+ holds a phone number, an email address or a home-folder path is skipped and
167
+ listed with the command to run yourself. Inputs: `project`, `dryRun`.
168
+
169
+ One command sets up your computer, and the same command updates it:
170
+
171
+ ```bash
172
+ npx -y @systemdox/mcp-server setup [--project <name>] [--dir <checkout>] [--yes] [--overwrite]
173
+ ```
174
+
175
+ - It first writes the SystemDox MCP server into your AI tool's config, as it
176
+ always has. Then, when your workspace has anything published, it checks that
177
+ Claude Code is 2.1.316 or later (`claude update` otherwise) and shows you
178
+ everything it will add: the marketplace entry for `~/.claude/settings.json`,
179
+ the plugin with every hook command and every MCP server's command or URL
180
+ verbatim, the import block for `~/.claude/CLAUDE.md`, each team memory with
181
+ its file count and folder, and the `autoMemoryDirectory` it will set. On an
182
+ update it shows only what changed, with a line diff for hooks and
183
+ instructions. Nothing changes until you answer `y`.
184
+ - Then, in this order: your key goes into
185
+ `~/.claude/systemdox/credentials.json` (readable by you alone, and nowhere
186
+ else); the team instructions into `~/.claude/systemdox/<workspace>/CLAUDE.md`
187
+ (if you edited that file, it stops unless `--overwrite`); one marked import
188
+ block into `~/.claude/CLAUDE.md`; one `extraKnownMarketplaces` entry,
189
+ `systemdox-<workspace>`, into `~/.claude/settings.json` (nothing else in
190
+ either file is touched); and, for the project (`--project`, or the only
191
+ one), `autoMemoryDirectory` in `<checkout>/.claude/settings.local.json`
192
+ (`--dir`, or the current folder), followed by its first sync.
193
+ - Two steps are left for you, because Claude Code registers a marketplace only
194
+ once a session has started: open Claude Code once in any folder and close
195
+ it, then run `claude plugin install <workspace>-setup@systemdox-<workspace>`
196
+ in your own terminal and accept the command it shows. `setup` never adds the
197
+ marketplace through `claude` and never enables the plugin for you.
198
+ - `--yes` answers for you only without a terminal, and only for what you have
199
+ accepted before; anything new or changed is listed and stops the run.
200
+ - Exit codes: `0` done, `1` usage / no key / API error, `2` your edited team
201
+ `CLAUDE.md` would be replaced (named), `3` Claude Code missing or too old,
202
+ `4` not confirmed (you answered N, or `--yes` met something new).
203
+
204
+ Each project's team memory is synced file by file with one command, which you
205
+ run in your own terminal:
206
+
207
+ ```bash
208
+ npx -y @systemdox/mcp-server sync-memory [--project <name>] [--dir <folder>] [--import <folder>] [--dry-run]
209
+ ```
210
+
211
+ - The folder is `--dir`, or `~/.claude/systemdox/<workspace>/memory/<project>/`.
212
+ Only `feedback`, `project` and `reference` memories and `MEMORY.md` are
213
+ shared; a `user` memory, a file with `share: false` and a
214
+ `<name>.local-<date>.md` conflict copy never leave your computer, and the
215
+ sync never touches them.
216
+ - A file changed only here goes up, one changed only by the team comes down,
217
+ and one changed on both sides keeps the team's text under its name and yours
218
+ beside it as `<name>.local-<date>.md`. `MEMORY.md` is merged line by line.
219
+ - Each phone number or email address is asked about once for the whole
220
+ workspace: `m` a member's contact, `p` someone else (with a role label, never
221
+ a name), `o` ours, not a person, `x` leave these files out (`share: false`),
222
+ `s` skip for now. After one `y/N` over the whole diff, each person becomes
223
+ their identifier (`` `con_…` (reseller, sales) ``) and a home folder `~`.
224
+ - `--import <folder>` merges a second copy of the same memory in (your first
225
+ sync), keeping every difference as a pair; that folder is not changed.
226
+ `--dry-run` shows what would be pulled, pushed, deleted, conflicted and
227
+ skipped, and how many values are still to answer; it asks, writes and sends
228
+ nothing.
229
+ - Exit codes: `0` synced (conflict copies and skipped files are listed, not
230
+ errors), `1` usage / no key / API error, `2` the team memory moved on twice
231
+ while syncing (your folder holds the merge; run it again).
163
232
 
164
233
  Claude Code runs two commands itself; you never type them:
165
234