# Reported issues for ai-architect-mcp-codebase

Pod holds 20 of 45 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [ai-architect-mcp-codebase](/mcp/ai-architect-mcp-codebase).

## Most discussed

### META: 180 languages by December — the shallow tier is built but test-gated, and breadth≠depth on the current gate

Owner directive 2026-08-08: **180 languages by December, every language reaching the bench gate.** Today: 11 languages, 10 of them deep. That is ~169 additions in ~17 weeks (≈10/week). This issue records the arithmetic and the architectural fork, because the artisanal path that just fixed TypeScript (#212) cannot produce that rate.

## What the code already says

The scale-up mechanism **exists and is written**: `src/parser/spec/shallow.rs` (ADR-0056) defines a tier where "adding a language on t

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/220) · 2026-08-08 · closed · 15 comments

### arch: table-driven language specs — scale extraction beyond 7 languages (strategic)

CBM supports 158 languages with almost no per-language code: a single `CBMLangSpec` table (node-type lists for functions/calls/imports + grammar factory pointer + embedded-language re-parse rules; verified: `internal/cbm/lang_specs.h:22-52`, 170KB data table, generic walkers in extract_defs/calls/imports). Adding a language is data entry, not engineering.

AP's per-language extraction caps us at 7. Strategic refactor: extract the language-specific knowledge into a spec table consumed by generic 

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/60) · 2026-07-24 · closed · 10 comments

### feat: team-shared graph artifact — committed zstd snapshot with bootstrap import

From the codebase-memory-mcp source analysis (DeusData/codebase-memory-mcp, ★34.8k; session 2026-07-25). Their highest-leverage onboarding feature: a compressed graph snapshot committed to the indexed repo so teammates never cold-index.

Reference implementation (verified): `src/pipeline/artifact.c` — export = strip indexes → VACUUM INTO → zstd (two tiers: best zstd-9 on explicit index, fast zstd-3 from the watcher); import reads the frame content-size header, then incremental indexing fills the

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/55) · 2026-07-24 · closed · 6 comments

### ARCH: replace per-language hand-written extraction with the tree-sitter tags-query engine (the only path to 180 languages)

Owner directive 2026-08-08, and a correction of course. The per-language migration path (#220 phases 1–3: Go, Java, Kotlin/Swift…) makes each language a *nicer* data row but keeps the cost **O(n) in hand-written Rust and hand-authored node-kind lists**. Ten languages took ten efforts; 180 by December cannot be reached that way, and phase 3 has been stopped mid-flight rather than adding another artisanal brick.

## The generic mechanism already exists and is a standard

Every tree-sitter grammar 

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/224) · 2026-08-08 · closed · 4 comments

### arch: incremental (changed-files-only) indexing — prerequisite for artifact incremental fill (#55 follow-up)

## Gap

`index_codebase` is **all-or-nothing**: `do_index_codebase` removes any existing graph (`remove_stale_graph_artifact`) and rebuilds the whole graph from scratch on every call. There is no path that indexes only the files that changed since a prior graph state.

This blocks the second half of the issue #55 spec. #55 (team-shared graph artifact, PR #61) delivers **export + bootstrap-import**: a fresh clone decompresses the committed snapshot instead of cold-indexing. But the reference desi

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/62) · 2026-07-24 · closed · 3 comments

### MISSION: parse any repository — code AND documents — with a unified query system (6-month horizon)

Owner directive, 2026-08-09. Two decisions and one scope expansion.

## Decision 1 — the Orbit shape is the editorial line

The zero-per-language-artifact thesis was tested to destruction and is settled: it reaches **40% of prevalence-ranked languages** (#224, PR #231), not the 82% a convenience sample suggested. SQL and PowerShell — mainstream and fully applicable — are entirely unreached.

So the architecture is: **a shared engine plus a small, bounded per-language configuration**, the shape G

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/232) · 2026-08-09 · closed · 2 comments

### C++: a function-pointer data member is modeled as a method prototype

Noticed while closing #124 item 4 (data members -> Field/HasField). Not one of #124's enumerated items, so the classification was left **unchanged by intent** and pinned by a test rather than altered.

### Symptom
A data member of function-pointer type is emitted as a prototype `Method`, not a `Field`:

```cpp
class Cb {
    void (*cb)(int z);   // -> Method|cb (is_prototype=true), not Field|cb
};
```

### Why
The prototype-vs-data-member discriminator is `has_function_declarator`, a DFS for a `

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/135) · 2026-07-26 · closed · 2 comments

### chore(bench-harness): runner.rs still 701 lines after test-extraction, over the 500-line cap

## Context

While closing #214 (bench_end_result scorer bugs), I touched `benches/harness/src/runner.rs` and found it was already 852 lines — well over the `coding-standards.md` §4.1 500-line file cap — before any of that PR's changes. Per the boy-scout rule (§14), I fixed what I safely could in the same PR: extracted the `#[cfg(test)] mod tests { ... }` block (152 lines) into `benches/harness/src/runner_tests.rs` via `#[path = "runner_tests.rs"] mod tests;`, a purely mechanical move (no logic c

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/218) · 2026-08-08 · closed · 1 comment

## Most recent

### feat(index_codebase): user-configurable folder exclusion — an unreadable secrets directory aborts the entire walk

## Problem

A user cannot complete `index_codebase` on their repository: the tree contains a directory that is locked down because it holds secrets (permission-denied at the filesystem level), and the indexer has no way to route around it.

Two distinct gaps compound into a hard failure:

1. **No user-facing exclusion parameter.** The `index_codebase` input schema (`src/tool_schemas.rs`, `index_codebase_schema`) exposes `language`, `dependency_scope`, `bootstrap`, `full`, `cochange`, … but nothi

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/249) · 2026-08-13 · closed · 0 comments

### bench: rust-self ground truth references three pre-split file paths (graph_store.rs, resolver.rs, indexer/persist.rs)

## Observed (2026-08-08, release 0.9.1 prep, ~/Developments/anthropic-partnership/automatised-pipeline-wt-release091)

`cargo run --release -p bench-end-result --bin bench_end_result -- --all` on `main` @ f2d3897 (plus the version-bump-only diff in the 0.9.1 release PR) fails both the stale-ground-truth guard and the score gate:

```
[bench][STALE GROUND TRUTH] corpus=rust-self: references deleted source path "graph_store.rs" (this expectation silently scores 0 — fix or remove the label)
[bench]

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/210) · 2026-08-08 · closed · 0 comments

### bug(distribution): live-mount dev symlink is structurally incompatible with the marketplace digest pin — server dies with 'cached binary digest mismatch'

## Symptom

The plugin MCP server fails to connect in Claude Code (`✘ Failed to connect — -32000: Connection closed`). Manual launch with `CLAUDE_PLUGIN_ROOT` set reproduces:

```
ai-architect-mcp-codebase: FATAL: cached binary digest mismatch; reinstall the plugin
```

Observed 2026-08-07 on the 0.9.0 marketplace install. This is also the root cause of BOTH tool-availability caveats in the A/B bench rev.2 report (`harness-comparison/results/COMPARISON-rev2.md`): the cortex-viz probe session ran

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/206) · 2026-08-07 · closed · 1 comment

### feat(index): fan-in is blind to markdown/shell references — real hubs undershot by ~17× on doc/script-heavy repos

## Observed (A/B bench rev.2, 2026-08-07)

Probe P2 ("which file has the highest fan-in?") on zetetic-team-subagents:

- Ground truth (exact grep by an independent scoring agent): `rules/coding-standards.md` — **173 references**; `tools/memory-tool.sh` — **171 references**. These are the repo's real hubs.
- The code graph returned `counts.ap=0` for both — markdown and shell cross-references are not indexed, so fan-in over a doc/script-heavy repo undershoots the real hubs by ~17× (top code-graph 

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/205) · 2026-08-07 · closed · 0 comments

### query_graph read-only guard: forbidden-keyword scan matches inside string literals — `load.rs`/`::load` paths reject legitimate read queries

## Observed (A/B bench rev.2, 2026-08-06 → 07)

During Cortex's own `ingest_codebase` enrichment, `query_graph` rejected legitimate read-only process-symbols queries:

- 6× on the automatised-pipeline repo, 4× on cortex-viz:
  `read_only_query_required: query_graph is read-only; found forbidden keyword: LOAD`

Evidence: harness-comparison bench, `results/harness-b/INCIDENTS.md` §4 and `results/harness-b/{automatised-pipeline,cortex-viz}.json#diagnostics`.

## Root cause

`forbidden_cypher_keywor

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/204) · 2026-08-07 · closed · 1 comment

### query_graph read-only gate: false positives on "LOAD" during Cortex ingestion process-symbols queries

## Observed (A/B ingestion bench, 2026-08-06)

During Cortex-driven ingestion (`ingest_codebase` → `analyze_codebase` → process-symbols queries), the read-only gate emitted:

> `query_graph is read-only; found forbidden keyword: LOAD`

6× on the automatised-pipeline run, 4× on the cortex-viz run.

## Evidence

- `results/harness-b/automatised-pipeline.json#anomalies[1]` and `results/harness-b/cortex-viz.json#anomalies[1]` (harness-comparison bench).
- Incident log: `results/harness-b/INCIDENTS.m

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/200) · 2026-08-07 · closed · 0 comments

### distribution: ship a SessionStart/SubagentStart code-discovery nudge — codebase-memory-mcp captures tool preference globally and ai-architect ships nothing

Measured on this machine 2026-08-06. codebase-memory-mcp (the competitor tracked in the CBM parity arc) has installed itself into the **user's global `~/.claude/settings.json`**, not just its own plugin manifest:

```
PreToolUse:     matcher "Grep|Glob"  -> ~/.claude/hooks/cbm-code-discovery-gate
SessionStart:   matchers startup / resume / clear / compact -> ~/.claude/hooks/cbm-session-reminder
SubagentStart:  matcher "*"          -> ~/.claude/hooks/cbm-subagent-reminder
```

The SessionStart ho

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/198) · 2026-08-06 · open · 1 comment

### eval: extend the head-to-head harness with a wiki-artifact dimension and a corpus large enough for clustering

## Context

`benchmarks/eval_headtohead/` (issue #64, PR #86) is pre-registered, executed, reproducible, and publishes the questions we lose. That apparatus is reusable. It has three limits for the wiki-generation question, the third discovered on 2026-08-06.

1. **Corpus size.** 29 synthetic files across four languages. Community detection over seven files per language is not a meaningful test of a wiki generator; whatever it reports is an artifact of the fixture.
2. **Dimensions.** The measure

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/197) · 2026-08-06 · open · 0 comments

### feat(wiki): deterministic wiki skeleton export — communities, processes, provenance, coverage gaps

## Context

AP already computes everything a codebase wiki needs structurally, and publishes none of it as a consumable document skeleton:

- communities — `src/clustering/community.rs`, exposed as `cluster_graph`
- processes — `src/clustering/process.rs`, exposed as `get_processes`
- coverage honesty — the missed graph (`query_graph(graph="missed")`) and `parse_incomplete`
- co-change edges — `index_history`

A narrative layer downstream can only fill prose if it is handed a structured first dr

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/196) · 2026-08-06 · open · 0 comments

### test: four MCP handler modules have 0% coverage — 1,242 uncovered lines (23% of the workspace gap)

Four MCP tool-handler modules in the binary crate have **exactly zero** test coverage. Together they are 1,242 uncovered lines — about 23% of every uncovered line in the workspace.

Found while wiring the coverage gate for #160; filed per the standing rule that debt discovered en route becomes a planned work item rather than a note.

## Measurement (2026-07-28, `cargo llvm-cov --workspace`, cargo-llvm-cov 0.8.7, rustc 1.95.0, macOS aarch64)

| File | Lines | Missed | Line coverage |
|---|---|---

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/169) · 2026-07-28 · closed · 0 comments

### docs: README layout tree and lbug version have drifted, and no machine check guards the numeric claims

Filed per §14.3 while answering the OpenSSF Best Practices criteria (`documentation_current`). Two numeric/structural claims in the README had drifted; both are fixed in the same PR that files this issue. What remains is out of that PR's blast radius, because the repository layout is being restructured concurrently by the #151 split epic.

## Fixed in the badge-answers PR

- The README advertised **434 tests** in three places (badge, intro line, Testing section) against a suite that runs **947**

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/161) · 2026-07-27 · closed · 0 comments

### SECURITY.md points at a private advisory channel that is disabled — no working private disclosure path

SECURITY.md tells reporters to open a private GitHub security advisory, but that channel is **switched off**, so a non-collaborator who follows the instructions has nowhere to go.

## Evidence (measured 2026-07-27)

```
$ gh api repos/cdeust/automatised-pipeline/private-vulnerability-reporting
{"enabled":false}
```

SECURITY.md's only disclosure channel is `https://github.com/cdeust/automatised-pipeline/security/advisories/new`. With private vulnerability reporting disabled, that form is unavail

[Read the thread](https://github.com/cdeust/ai-architect-mcp-codebase/issues/159) · 2026-07-27 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/cdeust/ai-architect-mcp-codebase/issues).
