Local-first MCP server and CLI that audits test suites for false-green tests: tautological assertions, mock-contract drift, and mock hygiene. Read-only and deterministic, across TypeScript, PHP, Python and Rust.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http counts 11 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
apply_issue_fix
-
audit_test_fidelity
-
audit_workspace
-
detect_tautological_assertions
-
doctor_status
-
explain_issue
-
get_ir
-
list_rules
-
preview_issue_fix
-
synthesize_mock_contract
-
verify_mock_drift
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 188
filesystem 46
- fs AraneaDev-Momus-MCP-74f7573/experiments/spikes/e1-ts-symbols.ts :4
import { readFileSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/experiments/spikes/e2-ts-mock-detection.ts :4
import { readFileSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/experiments/spikes/e3-taut002-dataflow.ts :5
import { readFileSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/experiments/spikes/e4-type-aware.ts :4
import { readFileSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/experiments/spikes/e5-import-resolution.ts :6
import { existsSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/experiments/spikes/e6-php-parsing.ts :4
import { readFileSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/experiments/spikes/e7-mcp-server.ts :10
import { readFileSync, existsSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/experiments/spikes/lib/engine.ts :10
import { existsSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/packages/cli/src/index.ts :6
import { writeFileSync, existsSync, realpathSync, readFileSync, chmodSync, rmSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/cli/test/fix.test.ts :2
import { mkdtempSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/cli/test/index.test.ts :3
import { mkdirSync, mkdtempSync, rmSync, writeFileSync, existsSync, readFileSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/cli/test/synthesize.test.ts :2
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
show 28 more
- fs AraneaDev-Momus-MCP-74f7573/packages/core/src/audit.ts :2
import { readFileSync, existsSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/packages/core/src/config.ts :2
import { readFileSync, existsSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/packages/core/src/discovery.ts :2
import { readdirSync, readFileSync, statSync, existsSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/packages/core/src/fix.ts :9
import { readFileSync, writeFileSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/packages/core/src/projectSignals.ts :9
import { existsSync, readdirSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/core/test/audit.test.ts :2
import { mkdtempSync, mkdirSync, writeFileSync, rmSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/core/test/cache.test.ts :2
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/core/test/config.test.ts :2
import { mkdtempSync, writeFileSync, rmSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/core/test/diff.test.ts :3
import { mkdtempSync, rmSync, writeFileSync, mkdirSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/core/test/discovery.test.ts :2
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/core/test/perf.test.ts :2
import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/packages/parser-php/src/index.ts :3
import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/parser-php/test/parser.test.ts :2
import { readFileSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/packages/parser-python/src/pyright.ts :11
import { existsSync, mkdtempSync, readdirSync, readFileSync, rmSync, statSync, writeFileSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/packages/parser-python/src/resolve.ts :2
import { statSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/parser-python/test/pyright.test.ts :2
import { readFileSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/parser-python/test/resolve.test.ts :2
import { mkdtempSync, writeFileSync, mkdirSync, rmSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/packages/parser-rust/src/resolve.ts :1
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/packages/parser-rust/src/wasm.ts :1
import { readFileSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/parser-rust/test/resolve.test.ts :2
import { mkdtempSync, writeFileSync, mkdirSync, rmSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/packages/parser-typescript/src/program.ts :8
import { existsSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/parser-typescript/test/dataflow.test.ts :3
import { readFileSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/parser-typescript/test/mocks.test.ts :3
import { readFileSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/parser-typescript/test/syntax-only.test.ts :2
import { readFileSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/packages/server/src/cache.ts :8
import { mkdirSync } from 'node:fs'; - fs AraneaDev-Momus-MCP-74f7573/packages/server/src/index.ts :5
import { existsSync, readFileSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/packages/server/test/cache.test.ts :2
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs'; - fs (weak) AraneaDev-Momus-MCP-74f7573/scripts/coverage-badge.mjs :14
import { readFileSync } from 'node:fs';
6 more not shown — this panel samples each group; the count above is the real total.
shell / exec 11
- shell AraneaDev-Momus-MCP-74f7573/packages/cli/src/index.ts :7
import { execFileSync } from 'node:child_process'; - shell (weak) AraneaDev-Momus-MCP-74f7573/packages/cli/test/index.test.ts :2
import { execFileSync, spawnSync } from 'node:child_process'; - shell AraneaDev-Momus-MCP-74f7573/packages/core/src/git.ts :2
import { execFileSync } from 'node:child_process'; - shell (weak) AraneaDev-Momus-MCP-74f7573/packages/core/test/diff.test.ts :2
import { execFileSync } from 'node:child_process'; - shell AraneaDev-Momus-MCP-74f7573/packages/parser-python/src/pyright.ts :10
import { execFileSync } from 'node:child_process'; - shell (weak) AraneaDev-Momus-MCP-74f7573/scripts/mutate.mjs :25
import { spawnSync } from 'node:child_process'; - shell (weak) AraneaDev-Momus-MCP-74f7573/scripts/publish.mjs :5
import { execFileSync } from 'node:child_process'; - shell (weak) AraneaDev-Momus-MCP-74f7573/scripts/simulate-release.mjs :15
import { execFileSync } from 'node:child_process'; - shell (weak) AraneaDev-Momus-MCP-74f7573/scripts/verify-no-codebuff-footer.mjs :7
import { execFileSync } from 'node:child_process'; - shell (weak) AraneaDev-Momus-MCP-74f7573/test/integration/mcp.test.ts :2
import { execFileSync } from 'node:child_process'; - shell (weak) AraneaDev-Momus-MCP-74f7573/test/release-config.test.ts :7
import { execFileSync } from 'node:child_process';
network 6
- net AraneaDev-Momus-MCP-74f7573/packages/cli/src/index.ts :398
const res = await fetch(`https://api.github.com/repos/${repo}/check-runs`, { - net (weak) AraneaDev-Momus-MCP-74f7573/packages/parser-python/test/parser.test.ts :76
def fetch(self) -> str: - net (weak) AraneaDev-Momus-MCP-74f7573/packages/parser-rust/test/mocks.test.ts :234
`#[test]\nfn t() {\n let mock = MockRepo::new();\n mock.expect_fetch().returning(|| 1);\n let boxed: Box<dyn Repo> = Box::new(mock);\n assert_eq!(1, boxed.fetch());\n}\n`, - net (weak) AraneaDev-Momus-MCP-74f7573/packages/parser-typescript/test/fixtures/src/services/invoice.ts :10
fetch(): Promise<string> { - net (weak) AraneaDev-Momus-MCP-74f7573/packages/parser-typescript/test/fixtures/tests/assignability.test.ts :24
expect(svc.fetch()).toBeDefined(); - net AraneaDev-Momus-MCP-74f7573/packages/server/src/index.ts :7
import { createServer, type IncomingMessage, type ServerResponse } from 'node:http';
secrets 1
- secrets AraneaDev-Momus-MCP-74f7573/packages/cli/src/index.ts :359
const token = process.env.GITHUB_TOKEN;
database 1
- db AraneaDev-Momus-MCP-74f7573/packages/server/src/cache.ts :7
import Database from 'better-sqlite3';
tool registrations 16
- audit_test_fidelity AraneaDev-Momus-MCP-74f7573/experiments/spikes/e7-mcp-server.ts :66
- detect_tautological_assertions AraneaDev-Momus-MCP-74f7573/experiments/spikes/e7-mcp-server.ts :74
- verify_mock_drift AraneaDev-Momus-MCP-74f7573/experiments/spikes/e7-mcp-server.ts :84
- synthesize_mock_contract AraneaDev-Momus-MCP-74f7573/experiments/spikes/e7-mcp-server.ts :97
- list_rules AraneaDev-Momus-MCP-74f7573/experiments/spikes/e7-mcp-server.ts :106
- audit_test_fidelity AraneaDev-Momus-MCP-74f7573/packages/server/src/index.ts :420
- detect_tautological_assertions AraneaDev-Momus-MCP-74f7573/packages/server/src/index.ts :436
- verify_mock_drift AraneaDev-Momus-MCP-74f7573/packages/server/src/index.ts :451
- synthesize_mock_contract AraneaDev-Momus-MCP-74f7573/packages/server/src/index.ts :491
- apply_issue_fix AraneaDev-Momus-MCP-74f7573/packages/server/src/index.ts :727
- preview_issue_fix AraneaDev-Momus-MCP-74f7573/packages/server/src/index.ts :811
- audit_workspace AraneaDev-Momus-MCP-74f7573/packages/server/src/index.ts :866
show 4 more
- doctor_status AraneaDev-Momus-MCP-74f7573/packages/server/src/index.ts :918
- explain_issue AraneaDev-Momus-MCP-74f7573/packages/server/src/index.ts :951
- get_ir AraneaDev-Momus-MCP-74f7573/packages/server/src/index.ts :1003
- list_rules AraneaDev-Momus-MCP-74f7573/packages/server/src/index.ts :1056
install hooks 1
- prepare AraneaDev-Momus-MCP-74f7573/package.json :26
git config core.hooksPath .githooks 2>/dev/null || true
declared dependencies 19
- @eslint/js@^10.0.1
- @stryker-mutator/core@^9.6.1
- @types/better-sqlite3@^9.6.0
- @types/node@^24.0.0
- @vitest/coverage-v8@^3.2.7
- eslint@^10.8.1
- eslint-config-prettier@^10.1.8
- globals@^14.0.0
- prettier@^3.9.6
- tsx@^4.19.0
- typescript@^5.9.0
- typescript-eslint@^8.67.0
show 7 more
- vitepress@^1.6.4
- vitest@^3.0.0
- syn@2
- proc-macro2@1
- quote@1
- serde_json@1
- wee_alloc@0.4