@danielmarbach/mnemonic-mcp 0.28.0 → 0.30.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.
Files changed (92) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/README.md +7 -0
  3. package/build/cache.d.ts.map +1 -1
  4. package/build/cache.js +9 -9
  5. package/build/cache.js.map +1 -1
  6. package/build/cli/import-claude-memory.d.ts.map +1 -1
  7. package/build/cli/import-claude-memory.js +3 -1
  8. package/build/cli/import-claude-memory.js.map +1 -1
  9. package/build/config.d.ts.map +1 -1
  10. package/build/config.js +20 -18
  11. package/build/config.js.map +1 -1
  12. package/build/context.d.ts.map +1 -1
  13. package/build/context.js +8 -2
  14. package/build/context.js.map +1 -1
  15. package/build/domain-errors.d.ts +49 -0
  16. package/build/domain-errors.d.ts.map +1 -0
  17. package/build/domain-errors.js +99 -0
  18. package/build/domain-errors.js.map +1 -0
  19. package/build/embeddings.d.ts.map +1 -1
  20. package/build/embeddings.js +18 -10
  21. package/build/embeddings.js.map +1 -1
  22. package/build/error-utils.d.ts +30 -0
  23. package/build/error-utils.d.ts.map +1 -1
  24. package/build/error-utils.js +56 -0
  25. package/build/error-utils.js.map +1 -1
  26. package/build/git.d.ts.map +1 -1
  27. package/build/git.js +6 -2
  28. package/build/git.js.map +1 -1
  29. package/build/helpers/embed.d.ts.map +1 -1
  30. package/build/helpers/embed.js +10 -12
  31. package/build/helpers/embed.js.map +1 -1
  32. package/build/helpers/persistence.d.ts.map +1 -1
  33. package/build/helpers/persistence.js +3 -2
  34. package/build/helpers/persistence.js.map +1 -1
  35. package/build/migration.d.ts.map +1 -1
  36. package/build/migration.js +7 -4
  37. package/build/migration.js.map +1 -1
  38. package/build/project-introspection.d.ts.map +1 -1
  39. package/build/project-introspection.js +3 -1
  40. package/build/project-introspection.js.map +1 -1
  41. package/build/project.d.ts.map +1 -1
  42. package/build/project.js +24 -37
  43. package/build/project.js.map +1 -1
  44. package/build/projections.js +1 -1
  45. package/build/projections.js.map +1 -1
  46. package/build/provenance.d.ts +8 -2
  47. package/build/provenance.d.ts.map +1 -1
  48. package/build/provenance.js +40 -6
  49. package/build/provenance.js.map +1 -1
  50. package/build/recall.d.ts.map +1 -1
  51. package/build/recall.js +2 -1
  52. package/build/recall.js.map +1 -1
  53. package/build/relationships.d.ts.map +1 -1
  54. package/build/relationships.js +6 -6
  55. package/build/relationships.js.map +1 -1
  56. package/build/semantic-patch.d.ts.map +1 -1
  57. package/build/semantic-patch.js +6 -5
  58. package/build/semantic-patch.js.map +1 -1
  59. package/build/storage.d.ts.map +1 -1
  60. package/build/storage.js +38 -56
  61. package/build/storage.js.map +1 -1
  62. package/build/structured-content.d.ts +34 -0
  63. package/build/structured-content.d.ts.map +1 -1
  64. package/build/structured-content.js +16 -0
  65. package/build/structured-content.js.map +1 -1
  66. package/build/temporal-interpretation.d.ts.map +1 -1
  67. package/build/temporal-interpretation.js +3 -2
  68. package/build/temporal-interpretation.js.map +1 -1
  69. package/build/tools/consolidate-helpers.d.ts.map +1 -1
  70. package/build/tools/consolidate-helpers.js +11 -11
  71. package/build/tools/consolidate-helpers.js.map +1 -1
  72. package/build/tools/migration.d.ts.map +1 -1
  73. package/build/tools/migration.js +6 -5
  74. package/build/tools/migration.js.map +1 -1
  75. package/build/tools/recall-helpers.d.ts +12 -0
  76. package/build/tools/recall-helpers.d.ts.map +1 -1
  77. package/build/tools/recall-helpers.js +81 -1
  78. package/build/tools/recall-helpers.js.map +1 -1
  79. package/build/tools/recall.d.ts.map +1 -1
  80. package/build/tools/recall.js +81 -11
  81. package/build/tools/recall.js.map +1 -1
  82. package/build/tools/remember.d.ts.map +1 -1
  83. package/build/tools/remember.js +10 -10
  84. package/build/tools/remember.js.map +1 -1
  85. package/build/tools/update.d.ts.map +1 -1
  86. package/build/tools/update.js +28 -29
  87. package/build/tools/update.js.map +1 -1
  88. package/build/vault.d.ts.map +1 -1
  89. package/build/vault.js +35 -50
  90. package/build/vault.js.map +1 -1
  91. package/package.json +4 -2
  92. package/skills/mnemonic-rpi-workflow/SKILL.md +48 -17
package/build/vault.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import fs from "fs/promises";
2
2
  import path from "path";
3
3
  import { simpleGit } from "simple-git";
4
- import { debugLog, getErrorMessage } from "./error-utils.js";
4
+ import { attempt, debugLog, getErrorMessage } from "./error-utils.js";
5
5
  import { Storage } from "./storage.js";
6
6
  import { memoryId } from "./brands.js";
7
7
  import { GitOps } from "./git.js";
@@ -200,58 +200,48 @@ function makeVault(vaultPath, gitRoot, notesRelDir, isProject, vaultFolderName,
200
200
  * namespaces for submodule-specific context while sharing the same git history.
201
201
  */
202
202
  async function discoverSubmoduleVaultFolders(gitRoot) {
203
- try {
204
- const entries = await fs.readdir(gitRoot, { withFileTypes: true });
205
- return entries
206
- .filter(e => e.isDirectory() && e.name.startsWith(".mnemonic-"))
207
- .map(e => e.name)
208
- .sort();
209
- }
210
- catch (err) {
211
- debugLog("vault:discover-submodules", `failed: ${getErrorMessage(err)}`);
203
+ const result = await attempt("vault:discover-submodules", () => fs.readdir(gitRoot, { withFileTypes: true }));
204
+ if (!result.ok) {
205
+ debugLog("vault:discover-submodules", `failed: ${getErrorMessage(result.error)}`);
212
206
  return [];
213
207
  }
208
+ return result.value
209
+ .filter(e => e.isDirectory() && e.name.startsWith(".mnemonic-"))
210
+ .map(e => e.name)
211
+ .sort();
214
212
  }
215
213
  async function findGitRoot(cwd, visited = new Set()) {
216
- try {
217
- const git = simpleGit(cwd);
218
- const root = await git.revparse(["--show-toplevel"]);
219
- const trimmedRoot = root.trim();
220
- if (!trimmedRoot)
221
- return null;
222
- // Guard against infinite recursion in pathological submodule configurations.
223
- if (visited.has(trimmedRoot))
224
- return trimmedRoot;
225
- visited.add(trimmedRoot);
226
- // When inside a git submodule, walk up to the top-level superproject root
227
- // so that project vaults are always anchored at the main repository.
228
- try {
229
- const superproject = await git.revparse(["--show-superproject-working-tree"]);
230
- const trimmedSuperproject = superproject.trim();
231
- if (trimmedSuperproject) {
232
- return findGitRoot(trimmedSuperproject, visited);
233
- }
234
- }
235
- catch {
236
- debugLog("vault:find-git-root", "not inside a submodule or flag unsupported, using current root");
237
- }
238
- return trimmedRoot;
214
+ const git = simpleGit(cwd);
215
+ const rootResult = await attempt("vault:find-git-root", () => git.revparse(["--show-toplevel"]));
216
+ if (!rootResult.ok) {
217
+ debugLog("vault:find-git-root", `failed: ${getErrorMessage(rootResult.error)}`);
218
+ return null;
239
219
  }
240
- catch (err) {
241
- debugLog("vault:find-git-root", `failed: ${getErrorMessage(err)}`);
220
+ const trimmedRoot = rootResult.value.trim();
221
+ if (!trimmedRoot)
242
222
  return null;
223
+ if (visited.has(trimmedRoot))
224
+ return trimmedRoot;
225
+ visited.add(trimmedRoot);
226
+ const superResult = await attempt("vault:find-git-root:superproject", () => git.revparse(["--show-superproject-working-tree"]));
227
+ if (superResult.ok) {
228
+ const trimmedSuperproject = superResult.value.trim();
229
+ if (trimmedSuperproject) {
230
+ return findGitRoot(trimmedSuperproject, visited);
231
+ }
243
232
  }
233
+ else {
234
+ debugLog("vault:find-git-root", "not inside a submodule or flag unsupported, using current root");
235
+ }
236
+ return trimmedRoot;
244
237
  }
245
238
  export async function ensureGitignore(ignorePath) {
246
239
  const requiredLines = ["embeddings/", "projections/"];
247
- let existing;
248
- try {
249
- existing = await fs.readFile(ignorePath, "utf-8");
250
- }
251
- catch (err) {
252
- debugLog("vault:ensure-gitignore", `no existing gitignore: ${getErrorMessage(err)}`);
253
- existing = "";
254
- }
240
+ const existingResult = await attempt("vault:ensure-gitignore", () => fs.readFile(ignorePath, "utf-8"));
241
+ const existing = existingResult.ok ? existingResult.value : (() => {
242
+ debugLog("vault:ensure-gitignore", `no existing gitignore: ${getErrorMessage(existingResult.error)}`);
243
+ return "";
244
+ })();
255
245
  const missing = requiredLines.filter(line => !existing.includes(line));
256
246
  if (missing.length === 0)
257
247
  return;
@@ -259,12 +249,7 @@ export async function ensureGitignore(ignorePath) {
259
249
  await fs.writeFile(ignorePath, updated);
260
250
  }
261
251
  async function pathExists(p) {
262
- try {
263
- await fs.access(p);
264
- return true;
265
- }
266
- catch {
267
- return false;
268
- }
252
+ const result = await attempt("vault:pathExists", () => fs.access(p));
253
+ return result.ok;
269
254
  }
270
255
  //# sourceMappingURL=vault.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vault.js","sourceRoot":"","sources":["../src/vault.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault.js","sourceRoot":"","sources":["../src/vault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAuBlC,gFAAgF;AAEhF,MAAM,OAAO,YAAY;IACd,IAAI,CAAQ;IACrB;;;OAGG;IACK,oBAAoB,GAAG,IAAI,GAAG,EAAiB,CAAC;IACxD;;;OAGG;IACK,sBAAsB,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC5D,yDAAyD;IACjD,WAAW,GAAG,EAAE,CAAC;IAEzB,YAAY,aAAqB;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IACrG,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CAAC,GAAW;QACvC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,uBAAuB,CAAC,GAAW;QACvC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,GAAW,EAAE,UAAkB;QACpD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvC,0EAA0E;QAC1E,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC;IACxG,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,GAAY;QACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACvD,IAAI,IAAI;gBAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mGAAmG;IACnG,cAAc;QACZ,MAAM,GAAG,GAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,GAAY;QAC5B,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC3D,IAAI,EAAE,EAAE,CAAC;oBACP,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBACnE,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACN,qEAAqE;wBACrE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uEAAuE;IACvE,WAAW,CAAC,KAAY,EAAE,MAAc;QACtC,OAAO,GAAG,KAAK,CAAC,WAAW,IAAI,MAAM,KAAK,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAC,KAAY,EAAE,OAAiB;QACvD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3E,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,+EAA+E;IAEvE,UAAU,CAAC,OAAe;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,oBAAoB,CAAC,OAAe,EAAE,MAAe;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QAClD,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAE9D,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC7F,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAE9B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAC5D,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YACjD,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC;YAErC,IAAI,KAAK,EAAE,CAAC;gBACV,iEAAiE;gBACjE,MAAM,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,mCAAmC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEtD,gFAAgF;QAChF,oFAAoF;QACpF,uDAAuD;QACvD,MAAM,SAAS,GAAY,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,oBAAoB,GAAG,MAAM,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAC3E,KAAK,MAAM,UAAU,IAAI,oBAAoB,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACrD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;gBAAE,SAAS;YAChD,MAAM,WAAW,GAAG,GAAG,UAAU,QAAQ,CAAC;YAC1C,MAAM,QAAQ,GAAG,SAAS,CACxB,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,UAAU,EACV,YAAY,CAAC,OAAO,CAAC,aAAa,CACnC,CAAC;YACF,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACrD,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAED,iFAAiF;AAEjF,SAAS,SAAS,CAChB,SAAiB,EACjB,OAAe,EACf,WAAmB,EACnB,SAAkB,EAClB,eAAuB,EACvB,qBAA8B;IAE9B,OAAO;QACL,OAAO,EAAE,IAAI,OAAO,CAAC,SAAS,EAAE,qBAAqB,CAAC;QACtD,GAAG,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC;QACrC,WAAW;QACX,SAAS;QACT,eAAe;KAChB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,6BAA6B,CAAC,OAAe;IAC1D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAC7D,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC7C,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,QAAQ,CAAC,2BAA2B,EAAE,WAAW,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClF,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAC,KAAK;SAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;SAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAChB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,UAAuB,IAAI,GAAG,EAAE;IACtE,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAC3D,GAAG,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAClC,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,QAAQ,CAAC,qBAAqB,EAAE,WAAW,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEzB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,kCAAkC,EAAE,GAAG,EAAE,CACzE,GAAG,CAAC,QAAQ,CAAC,CAAC,kCAAkC,CAAC,CAAC,CACnD,CAAC;IACF,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;QACnB,MAAM,mBAAmB,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,WAAW,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,qBAAqB,EAAE,gEAAgE,CAAC,CAAC;IACpG,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB;IACtD,MAAM,aAAa,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAClE,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CACjC,CAAC;IACF,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;QAChE,QAAQ,CAAC,wBAAwB,EAAE,0BAA0B,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtE,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,CAAS;IACjC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielmarbach/mnemonic-mcp",
3
- "version": "0.28.0",
3
+ "version": "0.30.0",
4
4
  "description": "A local MCP memory server backed by markdown + JSON files, synced via git",
5
5
  "type": "module",
6
6
  "repository": {
@@ -37,7 +37,8 @@
37
37
  "skills:update": "node scripts/install-skills.mjs --target all --mode copy --update",
38
38
  "test": "vitest run",
39
39
  "test:watch": "vitest",
40
- "typecheck": "tsc --noEmit"
40
+ "typecheck": "tsc --noEmit",
41
+ "lint:ast": "ast-grep scan"
41
42
  },
42
43
  "dependencies": {
43
44
  "@modelcontextprotocol/sdk": "^1.10.1",
@@ -50,6 +51,7 @@
50
51
  "zod": "^4.3.6"
51
52
  },
52
53
  "devDependencies": {
54
+ "@ast-grep/cli": "^0.42.1",
53
55
  "@types/node": "^24.0.0",
54
56
  "typescript": "^6.0.0",
55
57
  "vitest": "^4.0.18"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: mnemonic-rpi-workflow
3
- description: Executes multi-step research-plan-implement-review workflows using mnemonic for workflow artifacts. Triggers on multi-step feature or bugfix work, subagent handoffs, plan-heavy tasks, or any work needing structured RPIR artifacts with explicit handoffs and consistent role/relationship conventions.
3
+ description: Executes multi-step research-plan-implement-review workflows using mnemonic for workflow artifacts. Triggers on multi-step feature or bugfix work, subagent handoffs, plan-heavy tasks, or any work needing structured RPIR artifacts with explicit handoffs and consistent role/relationship conventions. Review phase always dispatches a fresh-context subagent with adversarial posture and constraint violation hunting.
4
4
  ---
5
5
 
6
6
  # RPIR Workflow: Research → Plan → Implement → Review
@@ -58,32 +58,42 @@ Only after confirmation: proceed to Implement checklist.
58
58
  - Link to plan note (`follows` for ordered steps).
59
59
  - For non-trivial work, dispatch a subagent with narrow scope (see [handoff template](#subagent-handoff-template)).
60
60
 
61
- ### 4. Review
61
+ ### 4. Review (Fresh-Context Subagent Required)
62
62
 
63
- Before reviewing, retrieve the context that informed implementation:
64
- 1. `get` the research note(s) and plan note linked to this work
63
+ The implementer's own context is contaminated — they designed the code, so they see intent rather than behavior. Review must be performed by a fresh-context subagent that has no prior exposure to the implementation decisions.
64
+
65
+ **Before writing the review, the orchestrator must:**
66
+ 1. `get` the research note(s), plan note, and apply/task note(s) linked to this work
65
67
  2. Read the apply/task note(s) to confirm what actually shipped
68
+ 3. Extract all explicit constraints from the plan (performance constraints, I/O constraints, fail-soft requirements, schema requirements, etc.) into a constraint checklist
66
69
 
67
- Create review notes: `role: review`, `lifecycle: temporary`.
68
- Link to apply/task notes or plan (`derives-from` when conclusions derive from specific artifacts).
70
+ **The review subagent receives the full artifact chain and must:**
71
+
72
+ **A. Constraint violation hunting (adversarial — prove violations don't exist)**
73
+ - Enumerate every explicit constraint from the plan (e.g., "no new I/O on cold paths", "fail-soft to undefined", "always populate contextual metrics", "every Zod field gets `.describe()`")
74
+ - For each constraint: cite the exact code path(s) that satisfy it, or flag it as a violation
75
+ - If any constraint is unmentioned in the apply note, flag it — silent omission is a violation
69
76
 
70
- Review against research and plan:
71
- - Does the implementation satisfy the requirements identified in research?
72
- - Were all planned deliverables completed? If not, why?
77
+ **B. Deliverable completeness**
78
+ - Does the implementation satisfy every requirement from research?
79
+ - Were all planned deliverables completed? If not, why, and is the deferral explicit?
73
80
  - Are there gaps between what was planned and what was delivered?
74
81
  - Were any assumptions from research invalidated during implementation?
75
82
 
76
- Before recording outcome, run a self-review checklist:
77
- - Re-read research requirements is each addressed in implementation or explicitly deferred?
78
- - Re-read plan deliverables do all checkboxes have matching verification evidence?
79
- - Is any unchecked item silently ignored rather than called out?
83
+ **C. Fresh verification**
84
+ - Every verification command must be run fresh during this review do not reuse results from implementation
85
+ - Record each command, result, and evidence
80
86
 
81
- For non-trivial work, dispatch a subagent with the full artifact chain (research, plan, apply notes) using the [review handoff variant](#review-handoff-variant) below.
87
+ The review subagent must adopt an adversarial posture: assume violations exist and prove they don't. A review that only confirms what the apply note claims is not sufficient.
88
+
89
+ Create review notes: `role: review`, `lifecycle: temporary`.
90
+ Link to apply/task notes or plan (`derives-from` when conclusions derive from specific artifacts).
82
91
 
83
92
  Record outcome: continue, block, or update plan.
84
93
  Reconcile checklist state with verification evidence; call out any unchecked items explicitly.
85
94
  If review causes a material plan change, update plan note first.
86
- Every verification command must be run fresh during this review — do not reuse results from implementation. Every review note must include verification evidence:
95
+
96
+ Every review note must include verification evidence:
87
97
 
88
98
  ```text
89
99
  - Command: <run command>
@@ -91,6 +101,14 @@ Every verification command must be run fresh during this review — do not reuse
91
101
  - Details: <counts, errors>
92
102
  ```
93
103
 
104
+ And a constraint checklist:
105
+
106
+ ```text
107
+ | Constraint | Status | Evidence |
108
+ |---|---|---|
109
+ | <constraint from plan> | pass/fail | <code path or violation detail> |
110
+ ```
111
+
94
112
  ### 5. Consolidate
95
113
 
96
114
  - Create permanent decision note(s) and summary note(s).
@@ -117,7 +135,7 @@ Must return: apply note content, optional review note, recommendation (continue
117
135
 
118
136
  ### Review Handoff Variant
119
137
 
120
- For subagent-driven review, include the full artifact chain so the reviewer has the same context as the implementer:
138
+ Dispatch a fresh-context subagent with the full artifact chain. The reviewer has no prior exposure to implementation decisions and must adopt an adversarial posture.
121
139
 
122
140
  ```text
123
141
  Request note: <note-id/title>
@@ -126,12 +144,25 @@ Plan note: <note-id/title>
126
144
  Apply/task notes: <note-id/title>, ...
127
145
  Durable context: <note-id/title>, ...
128
146
 
147
+ Constraint checklist (extracted from plan):
148
+ | Constraint | Status | Evidence |
149
+ |---|---|---|
150
+ | <explicit constraint from plan> | ? | <to be verified> |
151
+
129
152
  Review scope:
130
153
  - What was planned: <summary from plan note>
131
154
  - What was implemented: <summary from apply note>
132
155
  - Validation: <tests/checks>
133
156
 
134
- Instructions: Compare implementation against research requirements and plan deliverables. Identify gaps, regressions, or deviations. Return: review note content, recommendation (continue | block | update plan), and any unchecked items.
157
+ Adversarial review mandate:
158
+ 1. Assume violations exist — prove they don't
159
+ 2. For each explicit plan constraint: cite the code path that satisfies it, or flag it as a violation
160
+ 3. For each research requirement: confirm it is addressed or explicitly deferred
161
+ 4. For each plan deliverable: verify matching evidence exists
162
+ 5. Run all verification commands fresh — do not reuse implementation results
163
+ 6. If a constraint is not mentioned in the apply note, flag it as a potential violation
164
+
165
+ Return: review note content with constraint checklist, recommendation (continue | block | update plan), and any unchecked items.
135
166
  ```
136
167
 
137
168
  ## Canonical Graph