nodebench-mcp 2.14.1 → 2.15.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 (36) hide show
  1. package/NODEBENCH_AGENTS.md +19 -9
  2. package/README.md +42 -19
  3. package/dist/__tests__/critterCalibrationEval.d.ts +8 -0
  4. package/dist/__tests__/critterCalibrationEval.js +370 -0
  5. package/dist/__tests__/critterCalibrationEval.js.map +1 -0
  6. package/dist/__tests__/embeddingProvider.test.d.ts +1 -0
  7. package/dist/__tests__/embeddingProvider.test.js +86 -0
  8. package/dist/__tests__/embeddingProvider.test.js.map +1 -0
  9. package/dist/__tests__/gaiaCapabilityAudioEval.test.js +1 -1
  10. package/dist/__tests__/gaiaCapabilityAudioEval.test.js.map +1 -1
  11. package/dist/__tests__/gaiaCapabilityEval.test.js +541 -27
  12. package/dist/__tests__/gaiaCapabilityEval.test.js.map +1 -1
  13. package/dist/__tests__/gaiaCapabilityFilesEval.test.js +1 -1
  14. package/dist/__tests__/gaiaCapabilityFilesEval.test.js.map +1 -1
  15. package/dist/__tests__/gaiaCapabilityMediaEval.test.js +473 -4
  16. package/dist/__tests__/gaiaCapabilityMediaEval.test.js.map +1 -1
  17. package/dist/__tests__/tools.test.js +1010 -8
  18. package/dist/__tests__/tools.test.js.map +1 -1
  19. package/dist/db.js +64 -0
  20. package/dist/db.js.map +1 -1
  21. package/dist/index.js +70 -9
  22. package/dist/index.js.map +1 -1
  23. package/dist/tools/critterTools.d.ts +21 -0
  24. package/dist/tools/critterTools.js +230 -0
  25. package/dist/tools/critterTools.js.map +1 -0
  26. package/dist/tools/embeddingProvider.d.ts +67 -0
  27. package/dist/tools/embeddingProvider.js +299 -0
  28. package/dist/tools/embeddingProvider.js.map +1 -0
  29. package/dist/tools/progressiveDiscoveryTools.js +24 -7
  30. package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
  31. package/dist/tools/reconTools.js +83 -33
  32. package/dist/tools/reconTools.js.map +1 -1
  33. package/dist/tools/toolRegistry.d.ts +30 -2
  34. package/dist/tools/toolRegistry.js +253 -25
  35. package/dist/tools/toolRegistry.js.map +1 -1
  36. package/package.json +13 -3
package/dist/db.js CHANGED
@@ -47,6 +47,31 @@ CREATE TABLE IF NOT EXISTS gaps (
47
47
  created_at TEXT NOT NULL DEFAULT (datetime('now'))
48
48
  );
49
49
 
50
+ CREATE VIRTUAL TABLE IF NOT EXISTS gaps_fts USING fts5(
51
+ title,
52
+ description,
53
+ fix_strategy,
54
+ content='gaps',
55
+ content_rowid='rowid'
56
+ );
57
+
58
+ CREATE TRIGGER IF NOT EXISTS gaps_fts_insert AFTER INSERT ON gaps BEGIN
59
+ INSERT INTO gaps_fts(rowid, title, description, fix_strategy)
60
+ VALUES (new.rowid, new.title, COALESCE(new.description, ''), COALESCE(new.fix_strategy, ''));
61
+ END;
62
+
63
+ CREATE TRIGGER IF NOT EXISTS gaps_fts_delete AFTER DELETE ON gaps BEGIN
64
+ INSERT INTO gaps_fts(gaps_fts, rowid, title, description, fix_strategy)
65
+ VALUES ('delete', old.rowid, old.title, COALESCE(old.description, ''), COALESCE(old.fix_strategy, ''));
66
+ END;
67
+
68
+ CREATE TRIGGER IF NOT EXISTS gaps_fts_update AFTER UPDATE ON gaps BEGIN
69
+ INSERT INTO gaps_fts(gaps_fts, rowid, title, description, fix_strategy)
70
+ VALUES ('delete', old.rowid, old.title, COALESCE(old.description, ''), COALESCE(old.fix_strategy, ''));
71
+ INSERT INTO gaps_fts(rowid, title, description, fix_strategy)
72
+ VALUES (new.rowid, new.title, COALESCE(new.description, ''), COALESCE(new.fix_strategy, ''));
73
+ END;
74
+
50
75
  CREATE TABLE IF NOT EXISTS test_results (
51
76
  id TEXT PRIMARY KEY,
52
77
  cycle_id TEXT NOT NULL REFERENCES verification_cycles(id) ON DELETE CASCADE,
@@ -168,6 +193,31 @@ CREATE TABLE IF NOT EXISTS recon_findings (
168
193
  CREATE INDEX IF NOT EXISTS idx_recon_findings_session ON recon_findings(session_id);
169
194
  CREATE INDEX IF NOT EXISTS idx_recon_findings_category ON recon_findings(category);
170
195
 
196
+ CREATE VIRTUAL TABLE IF NOT EXISTS recon_findings_fts USING fts5(
197
+ summary,
198
+ relevance,
199
+ action_items,
200
+ content='recon_findings',
201
+ content_rowid='rowid'
202
+ );
203
+
204
+ CREATE TRIGGER IF NOT EXISTS recon_findings_fts_insert AFTER INSERT ON recon_findings BEGIN
205
+ INSERT INTO recon_findings_fts(rowid, summary, relevance, action_items)
206
+ VALUES (new.rowid, new.summary, COALESCE(new.relevance, ''), COALESCE(new.action_items, ''));
207
+ END;
208
+
209
+ CREATE TRIGGER IF NOT EXISTS recon_findings_fts_delete AFTER DELETE ON recon_findings BEGIN
210
+ INSERT INTO recon_findings_fts(recon_findings_fts, rowid, summary, relevance, action_items)
211
+ VALUES ('delete', old.rowid, old.summary, COALESCE(old.relevance, ''), COALESCE(old.action_items, ''));
212
+ END;
213
+
214
+ CREATE TRIGGER IF NOT EXISTS recon_findings_fts_update AFTER UPDATE ON recon_findings BEGIN
215
+ INSERT INTO recon_findings_fts(recon_findings_fts, rowid, summary, relevance, action_items)
216
+ VALUES ('delete', old.rowid, old.summary, COALESCE(old.relevance, ''), COALESCE(old.action_items, ''));
217
+ INSERT INTO recon_findings_fts(rowid, summary, relevance, action_items)
218
+ VALUES (new.rowid, new.summary, COALESCE(new.relevance, ''), COALESCE(new.action_items, ''));
219
+ END;
220
+
171
221
  -- ═══════════════════════════════════════════
172
222
  -- PROJECT CONTEXT (Persistent project metadata)
173
223
  -- ═══════════════════════════════════════════
@@ -282,6 +332,20 @@ export function getDb() {
282
332
  mkdirSync(dir, { recursive: true });
283
333
  _db = new Database(join(dir, "nodebench.db"));
284
334
  _db.exec(SCHEMA_SQL);
335
+ // One-time FTS5 rebuild for existing data (idempotent, skips if already synced)
336
+ try {
337
+ const rf = _db.prepare("SELECT COUNT(*) as c FROM recon_findings").get();
338
+ const rfFts = _db.prepare("SELECT COUNT(*) as c FROM recon_findings_fts").get();
339
+ if (rf.c > 0 && rfFts.c === 0) {
340
+ _db.exec("INSERT INTO recon_findings_fts(recon_findings_fts) VALUES('rebuild')");
341
+ }
342
+ const g = _db.prepare("SELECT COUNT(*) as c FROM gaps").get();
343
+ const gFts = _db.prepare("SELECT COUNT(*) as c FROM gaps_fts").get();
344
+ if (g.c > 0 && gFts.c === 0) {
345
+ _db.exec("INSERT INTO gaps_fts(gaps_fts) VALUES('rebuild')");
346
+ }
347
+ }
348
+ catch { /* FTS tables not yet available — fresh DB, triggers will handle it */ }
285
349
  return _db;
286
350
  }
287
351
  export function isFirstRun() {
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,IAAI,GAAG,GAA6B,IAAI,CAAC;AAEzC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+QlB,CAAC;AAEF,MAAM,UAAU,KAAK;IACnB,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;IAC1C,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IAC9C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,EAAS,CAAC;IACjF,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,MAAc;IAClC,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,IAAI,GAAG,GAA6B,IAAI,CAAC;AAEzC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiUlB,CAAC;AAEF,MAAM,UAAU,KAAK;IACnB,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;IAC1C,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IAC9C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAErB,gFAAgF;IAChF,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAAS,CAAC;QAChF,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,EAAS,CAAC;QACvF,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,GAAG,EAAS,CAAC;QACrE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,EAAS,CAAC;QAC5E,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,sEAAsE,CAAC,CAAC;IAElF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,EAAS,CAAC;IACjF,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,MAAc;IAClC,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC"}
package/dist/index.js CHANGED
@@ -50,13 +50,17 @@ import { patternTools } from "./tools/patternTools.js";
50
50
  import { gitWorkflowTools } from "./tools/gitWorkflowTools.js";
51
51
  import { seoTools } from "./tools/seoTools.js";
52
52
  import { voiceBridgeTools } from "./tools/voiceBridgeTools.js";
53
- import { getQuickRef } from "./tools/toolRegistry.js";
53
+ import { critterTools } from "./tools/critterTools.js";
54
+ import { getQuickRef, ALL_REGISTRY_ENTRIES, TOOL_REGISTRY, getToolComplexity, _setDbAccessor } from "./tools/toolRegistry.js";
54
55
  import { toonTools } from "./tools/toonTools.js";
55
56
  // TOON format — ~40% token savings on tool responses
56
57
  import { encode as toonEncode } from "@toon-format/toon";
58
+ // Embedding provider — neural semantic search
59
+ import { initEmbeddingIndex } from "./tools/embeddingProvider.js";
57
60
  // ── CLI argument parsing ──────────────────────────────────────────────
58
61
  const cliArgs = process.argv.slice(2);
59
62
  const useToon = !cliArgs.includes("--no-toon");
63
+ const useEmbedding = !cliArgs.includes("--no-embedding");
60
64
  const TOOLSET_MAP = {
61
65
  verification: verificationTools,
62
66
  eval: evalTools,
@@ -88,17 +92,18 @@ const TOOLSET_MAP = {
88
92
  git_workflow: gitWorkflowTools,
89
93
  seo: seoTools,
90
94
  voice_bridge: voiceBridgeTools,
95
+ critter: critterTools,
91
96
  };
92
97
  const PRESETS = {
93
98
  meta: [],
94
99
  lite: ["verification", "eval", "quality_gate", "learning", "flywheel", "recon", "security", "boilerplate"],
95
- core: ["verification", "eval", "quality_gate", "learning", "flywheel", "recon", "bootstrap", "self_eval", "llm", "security", "platform", "research_writing", "flicker_detection", "figma_flow", "boilerplate", "benchmark", "session_memory", "toon", "pattern", "git_workflow", "seo", "voice_bridge"],
100
+ core: ["verification", "eval", "quality_gate", "learning", "flywheel", "recon", "bootstrap", "self_eval", "llm", "security", "platform", "research_writing", "flicker_detection", "figma_flow", "boilerplate", "benchmark", "session_memory", "toon", "pattern", "git_workflow", "seo", "voice_bridge", "critter"],
96
101
  full: Object.keys(TOOLSET_MAP),
97
102
  };
98
103
  function parseToolsets() {
99
104
  if (cliArgs.includes("--help")) {
100
105
  const lines = [
101
- "nodebench-mcp v2.14.1 — Development Methodology MCP Server",
106
+ "nodebench-mcp v2.15.0 — Development Methodology MCP Server",
102
107
  "",
103
108
  "Usage: nodebench-mcp [options]",
104
109
  "",
@@ -107,6 +112,7 @@ function parseToolsets() {
107
112
  " --exclude <list> Comma-separated toolsets to exclude",
108
113
  " --preset <name> Use a preset: meta, lite, core, or full",
109
114
  " --no-toon Disable TOON encoding (TOON is on by default for ~40% token savings)",
115
+ " --no-embedding Disable neural embedding search (uses local HuggingFace model or API keys)",
110
116
  " --help Show this help and exit",
111
117
  "",
112
118
  "Available toolsets:",
@@ -162,6 +168,8 @@ function parseToolsets() {
162
168
  }
163
169
  // Initialize DB (creates ~/.nodebench/ and schema on first run)
164
170
  getDb();
171
+ // Wire up DB accessor for execution trace edges (avoids circular import)
172
+ _setDbAccessor(getDb);
165
173
  // Assemble tools (filtered by --toolsets / --exclude / --preset if provided)
166
174
  const domainTools = parseToolsets();
167
175
  const metaTools = createMetaTools(domainTools);
@@ -169,6 +177,47 @@ const allToolsWithoutDiscovery = [...domainTools, ...metaTools];
169
177
  // Progressive discovery tools need the full tool list for hybrid search
170
178
  const discoveryTools = createProgressiveDiscoveryTools(allToolsWithoutDiscovery.map((t) => ({ name: t.name, description: t.description })));
171
179
  const allTools = [...allToolsWithoutDiscovery, ...discoveryTools];
180
+ // Background: initialize embedding index for semantic search (non-blocking)
181
+ // Uses Agent-as-a-Graph bipartite corpus: tool nodes + domain nodes for graph-aware retrieval
182
+ if (useEmbedding) {
183
+ const descMap = new Map(allTools.map((t) => [t.name, t.description]));
184
+ // Tool nodes: individual tools with full metadata text
185
+ const toolCorpus = ALL_REGISTRY_ENTRIES.map((entry) => ({
186
+ name: entry.name,
187
+ text: `${entry.name} ${entry.tags.join(" ")} ${entry.category} ${entry.phase} ${descMap.get(entry.name) ?? ""}`,
188
+ nodeType: "tool",
189
+ }));
190
+ // Domain nodes: aggregate category descriptions for upward traversal
191
+ // When a domain matches, all tools in that domain get a sibling boost
192
+ const categoryTools = new Map();
193
+ for (const entry of ALL_REGISTRY_ENTRIES) {
194
+ const list = categoryTools.get(entry.category) ?? [];
195
+ list.push(entry.name);
196
+ categoryTools.set(entry.category, list);
197
+ }
198
+ const domainCorpus = [...categoryTools.entries()].map(([category, toolNames]) => {
199
+ const allTags = new Set();
200
+ const descs = [];
201
+ for (const tn of toolNames) {
202
+ const e = ALL_REGISTRY_ENTRIES.find((r) => r.name === tn);
203
+ if (e)
204
+ e.tags.forEach((t) => allTags.add(t));
205
+ const d = descMap.get(tn);
206
+ if (d)
207
+ descs.push(d);
208
+ }
209
+ // Domain text includes tool descriptions for richer semantic signal
210
+ return {
211
+ name: `domain:${category}`,
212
+ text: `${category} domain: ${toolNames.join(" ")} ${[...allTags].join(" ")} ${descs.map(d => d.slice(0, 80)).join(" ")}`,
213
+ nodeType: "domain",
214
+ };
215
+ });
216
+ const embeddingCorpus = [...toolCorpus, ...domainCorpus];
217
+ initEmbeddingIndex(embeddingCorpus).catch(() => {
218
+ /* Embedding init failed — semantic search stays disabled, no impact on other features */
219
+ });
220
+ }
172
221
  // Build a lookup map for fast tool dispatch
173
222
  const toolMap = new Map();
174
223
  for (const tool of allTools) {
@@ -734,15 +783,27 @@ artifacts (findings, risks, gaps, tests, evals, gates, learnings) that compound
734
783
  ],
735
784
  },
736
785
  ];
737
- const server = new Server({ name: "nodebench-mcp-methodology", version: "2.14.1" }, { capabilities: { tools: {}, prompts: {} } });
786
+ const server = new Server({ name: "nodebench-mcp-methodology", version: "2.15.0" }, { capabilities: { tools: {}, prompts: {} } });
738
787
  // Handle tools/list — return all tools with their JSON Schema inputSchemas
788
+ // Includes MCP 2025-11-25 spec annotations: category, phase, complexity (model tier hint)
739
789
  server.setRequestHandler(ListToolsRequestSchema, async () => {
740
790
  return {
741
- tools: allTools.map((t) => ({
742
- name: t.name,
743
- description: t.description,
744
- inputSchema: t.inputSchema,
745
- })),
791
+ tools: allTools.map((t) => {
792
+ const entry = TOOL_REGISTRY.get(t.name);
793
+ return {
794
+ name: t.name,
795
+ description: t.description,
796
+ inputSchema: t.inputSchema,
797
+ ...(entry ? {
798
+ annotations: {
799
+ title: t.name.replace(/_/g, " "),
800
+ category: entry.category,
801
+ phase: entry.phase,
802
+ complexity: getToolComplexity(t.name),
803
+ },
804
+ } : {}),
805
+ };
806
+ }),
746
807
  };
747
808
  });
748
809
  // Handle tools/call — dispatch to the matching tool handler (auto-instrumented)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Critter Tools — The accountability partner that wants to know everything.
3
+ *
4
+ * Like a girlfriend who asks "so why are you doing this? who is it for?" —
5
+ * annoying in the moment, but actually a great productivity enhancer.
6
+ * The friction is the feature: making agents slow down to articulate purpose
7
+ * and audience prevents scope creep, cargo-cult coding, and aimless exploration.
8
+ *
9
+ * What critter catches:
10
+ * - Circular reasoning ("I'm adding auth because we need auth")
11
+ * - Vague audiences ("it's for users" — which users? doing what?)
12
+ * - Deference over understanding ("because the ticket says so")
13
+ * - Missing success criteria (how will you know it worked?)
14
+ *
15
+ * Inspired by daily intentionality questions that surface clarity from chaos.
16
+ *
17
+ * 1 tool:
18
+ * - critter_check: Submit a task + why + who for intentionality scoring
19
+ */
20
+ import type { McpTool } from "../types.js";
21
+ export declare const critterTools: McpTool[];
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Critter Tools — The accountability partner that wants to know everything.
3
+ *
4
+ * Like a girlfriend who asks "so why are you doing this? who is it for?" —
5
+ * annoying in the moment, but actually a great productivity enhancer.
6
+ * The friction is the feature: making agents slow down to articulate purpose
7
+ * and audience prevents scope creep, cargo-cult coding, and aimless exploration.
8
+ *
9
+ * What critter catches:
10
+ * - Circular reasoning ("I'm adding auth because we need auth")
11
+ * - Vague audiences ("it's for users" — which users? doing what?)
12
+ * - Deference over understanding ("because the ticket says so")
13
+ * - Missing success criteria (how will you know it worked?)
14
+ *
15
+ * Inspired by daily intentionality questions that surface clarity from chaos.
16
+ *
17
+ * 1 tool:
18
+ * - critter_check: Submit a task + why + who for intentionality scoring
19
+ */
20
+ import { getDb, genId } from "../db.js";
21
+ // ── DB setup ────────────────────────────────────────────────────────────────
22
+ function ensureCritterTable() {
23
+ const db = getDb();
24
+ db.exec(`
25
+ CREATE TABLE IF NOT EXISTS critter_checks (
26
+ id TEXT PRIMARY KEY,
27
+ task TEXT NOT NULL,
28
+ why TEXT NOT NULL,
29
+ who TEXT NOT NULL,
30
+ success_looks_like TEXT,
31
+ simplest_version TEXT,
32
+ score INTEGER NOT NULL,
33
+ verdict TEXT NOT NULL,
34
+ feedback TEXT NOT NULL,
35
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
36
+ )
37
+ `);
38
+ }
39
+ function scoreCritterCheck(input) {
40
+ const feedback = [];
41
+ let score = 100;
42
+ const taskLower = input.task.toLowerCase().trim();
43
+ const whyLower = input.why.toLowerCase().trim();
44
+ const whoLower = input.who.toLowerCase().trim();
45
+ // ── Check 1: Circular reasoning — "why" just restates the task ────────
46
+ const taskWords = new Set(taskLower.split(/\s+/).filter((w) => w.length > 3));
47
+ const whyWords = whyLower.split(/\s+/).filter((w) => w.length > 3);
48
+ const overlap = whyWords.filter((w) => taskWords.has(w));
49
+ if (whyWords.length > 0 && overlap.length / whyWords.length > 0.5) {
50
+ score -= 30;
51
+ feedback.push("Circular: your 'why' mostly restates the task. Dig deeper — what outcome does this enable?");
52
+ }
53
+ // ── Check 2: Vague audience ───────────────────────────────────────────
54
+ const vagueAudiences = ["users", "everyone", "people", "the team", "stakeholders", "clients", "customers", "developers"];
55
+ if (vagueAudiences.includes(whoLower)) {
56
+ score -= 20;
57
+ feedback.push(`Vague audience: "${input.who}" is too broad. Who specifically benefits? Name a role, persona, or individual.`);
58
+ }
59
+ // ── Check 3: Empty or trivially short responses ───────────────────────
60
+ if (whyLower.length === 0) {
61
+ score -= 40;
62
+ feedback.push("Empty 'why': you haven't stated any purpose at all. Why does this work matter?");
63
+ }
64
+ else if (whyLower.length < 10) {
65
+ score -= 25;
66
+ feedback.push("The 'why' is too short. A clear purpose needs at least a full sentence.");
67
+ }
68
+ if (whoLower.length < 3) {
69
+ score -= 25;
70
+ feedback.push("The 'who' is too short. Specify who benefits from this work.");
71
+ }
72
+ // ── Check 4: "Because I was told to" or "it's in the ticket" ─────────
73
+ const deferPatterns = [
74
+ "was told", "asked to", "ticket says", "was asked", "requirement says",
75
+ "spec says", "jira", "because I was", "they said", "assigned to me",
76
+ ];
77
+ if (deferPatterns.some((p) => whyLower.includes(p))) {
78
+ score -= 15;
79
+ feedback.push("Deference detected: you're citing authority rather than understanding purpose. Why does this matter beyond the ticket?");
80
+ }
81
+ // ── Check 5: Non-answer patterns — explicit "I don't know" ───────────
82
+ const nonAnswerPatterns = [
83
+ "just because", "don't know", "not sure", "why not", "might need it",
84
+ "no reason", "no idea", "whatever", "idk", "tbd",
85
+ ];
86
+ const nonAnswerHits = nonAnswerPatterns.filter((p) => whyLower.includes(p)).length;
87
+ if (nonAnswerHits > 0) {
88
+ const nonAnswerPenalty = Math.min(nonAnswerHits * 20, 40); // -20 per match, cap -40
89
+ score -= nonAnswerPenalty;
90
+ feedback.push("Non-answer: your 'why' signals you haven't figured out the purpose yet. What specific problem does this solve?");
91
+ }
92
+ // ── Check 6: Repetitive padding — same words repeated to fake length ──
93
+ const whyAllWords = whyLower.split(/\s+/).filter((w) => w.length > 2);
94
+ if (whyAllWords.length >= 5) {
95
+ const whyUniqueWords = new Set(whyAllWords);
96
+ if (whyUniqueWords.size / whyAllWords.length < 0.4) {
97
+ score -= 25;
98
+ feedback.push("Repetitive: your 'why' repeats the same words. Articulate distinct reasoning.");
99
+ }
100
+ }
101
+ const whoAllWords = whoLower.split(/\s+/).filter((w) => w.length > 2);
102
+ if (whoAllWords.length >= 5) {
103
+ const whoUniqueWords = new Set(whoAllWords);
104
+ if (whoUniqueWords.size / whoAllWords.length < 0.4) {
105
+ score -= 25;
106
+ feedback.push("Repetitive: your 'who' repeats the same words. Name a real audience.");
107
+ }
108
+ }
109
+ // ── Check 7: Buzzword-heavy corporate-speak ──────────────────────────
110
+ const buzzwords = [
111
+ "leverage", "synergies", "synergy", "paradigm", "holistic", "alignment",
112
+ "transformation", "innovative", "disruptive", "best practices",
113
+ "streamline", "ecosystem", "actionable", "circle back",
114
+ ];
115
+ const allText = `${whyLower} ${whoLower}`;
116
+ const buzzCount = buzzwords.filter((b) => allText.includes(b)).length;
117
+ if (buzzCount >= 4) {
118
+ score -= 35;
119
+ feedback.push("Buzzword-heavy: corporate-speak without concrete meaning. What specific problem does this solve?");
120
+ }
121
+ else if (buzzCount >= 3) {
122
+ score -= 30;
123
+ feedback.push("Buzzword-heavy: corporate-speak without concrete meaning. What specific problem does this solve?");
124
+ }
125
+ else if (buzzCount >= 2) {
126
+ score -= 20;
127
+ feedback.push("Buzzword-heavy: corporate-speak without concrete meaning. What specific problem does this solve?");
128
+ }
129
+ // ── Check 8: Hedging language — signals unclear value ─────────────────
130
+ const hedgeWords = ["could", "potentially", "maybe", "possibly", "might", "perhaps", "hopefully"];
131
+ const hedgeCount = hedgeWords.filter((h) => {
132
+ const regex = new RegExp(`\\b${h}\\b`, "i");
133
+ return regex.test(whyLower);
134
+ }).length;
135
+ if (hedgeCount >= 2) {
136
+ score -= 15;
137
+ feedback.push("Hedging: too many 'could/maybe/potentially' signals uncertain value. What WILL this achieve?");
138
+ }
139
+ // ── Check 9: Task-word echo — same word from task repeated 3+ times in why
140
+ for (const tw of taskWords) {
141
+ const twCount = whyWords.filter((w) => w === tw).length;
142
+ if (twCount >= 3) {
143
+ score -= 20;
144
+ feedback.push(`Echo: "${tw}" appears ${twCount} times in your 'why' — this is filler, not reasoning.`);
145
+ break; // one echo penalty max
146
+ }
147
+ }
148
+ // ── Check 10: Bonus for specificity ───────────────────────────────────
149
+ if (input.success_looks_like && input.success_looks_like.length > 20) {
150
+ score += 10;
151
+ feedback.push("Good: you defined what success looks like — this makes verification concrete.");
152
+ }
153
+ if (input.simplest_version && input.simplest_version.length > 20) {
154
+ score += 10;
155
+ feedback.push("Good: you identified the simplest version — this guards against over-engineering.");
156
+ }
157
+ // Clamp
158
+ score = Math.max(0, Math.min(100, score));
159
+ // Verdict
160
+ let verdict;
161
+ if (score >= 70) {
162
+ verdict = "proceed";
163
+ if (feedback.length === 0) {
164
+ feedback.push("Strong intentionality. Purpose and audience are clear — proceed with confidence.");
165
+ }
166
+ }
167
+ else if (score >= 40) {
168
+ verdict = "reconsider";
169
+ feedback.push("Pause and sharpen your thinking before writing code. Re-run critter_check once you have clearer answers.");
170
+ }
171
+ else {
172
+ verdict = "stop";
173
+ feedback.push("Stop: the purpose is unclear. Do not proceed until you can articulate WHY and WHO clearly.");
174
+ }
175
+ return { score, verdict, feedback, id: genId("crit") };
176
+ }
177
+ // ── Tool definition ─────────────────────────────────────────────────────────
178
+ export const critterTools = [
179
+ {
180
+ name: "critter_check",
181
+ description: "The accountability partner that wants to know everything — answer 'Why are you doing this? Who is it for?' before starting work. " +
182
+ "Scores your answers for circular reasoning, vague audiences, and deference-over-understanding. " +
183
+ "Returns a go/no-go verdict. The friction is the feature: slowing down to think prevents scope creep and aimless work. " +
184
+ "Call this at the start of any non-trivial task.",
185
+ inputSchema: {
186
+ type: "object",
187
+ properties: {
188
+ task: {
189
+ type: "string",
190
+ description: "What you are about to do (the action, not the goal)",
191
+ },
192
+ why: {
193
+ type: "string",
194
+ description: "Why are you doing this? Explain the purpose, not just the instruction. Avoid restating the task.",
195
+ },
196
+ who: {
197
+ type: "string",
198
+ description: "Who is this for? Name a specific role, persona, or person — not 'users' or 'everyone'.",
199
+ },
200
+ success_looks_like: {
201
+ type: "string",
202
+ description: "Optional: What does success look like? How will you know this worked?",
203
+ },
204
+ simplest_version: {
205
+ type: "string",
206
+ description: "Optional: What is the simplest version that still delivers value?",
207
+ },
208
+ },
209
+ required: ["task", "why", "who"],
210
+ },
211
+ handler: async (args) => {
212
+ ensureCritterTable();
213
+ const result = scoreCritterCheck(args);
214
+ // Persist for accountability
215
+ const db = getDb();
216
+ db.prepare(`INSERT INTO critter_checks (id, task, why, who, success_looks_like, simplest_version, score, verdict, feedback)
217
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(result.id, args.task, args.why, args.who, args.success_looks_like ?? null, args.simplest_version ?? null, result.score, result.verdict, JSON.stringify(result.feedback));
218
+ return {
219
+ id: result.id,
220
+ score: result.score,
221
+ verdict: result.verdict,
222
+ feedback: result.feedback,
223
+ tip: result.verdict === "proceed"
224
+ ? "You've passed the critter check. Proceed with clear intent."
225
+ : "Sharpen your answers and re-run critter_check before proceeding.",
226
+ };
227
+ },
228
+ },
229
+ ];
230
+ //# sourceMappingURL=critterTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"critterTools.js","sourceRoot":"","sources":["../../src/tools/critterTools.ts"],"names":[],"mappings":"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"}