Where: faircode/SPEC.md:392 (the get_explainer MCP tool table row) vs. faircode/mcp_server.py:60 (EXPLAINERS_DIR) and its actual read path for a given slug.
The gap: the table says get_explainer wraps explainers/<slug>.md (a repo-root path). The code actually reads from faircode/_explainers/<slug>.md - the same package-internal mirror the companion list_explainers issue describes, built by scripts/build_explainers.py specifically because explainers/ isn't shipped by pyproject.toml (issue #388).
Repro:
$ grep -n "EXPLAINERS_DIR" faircode/mcp_server.py
60:EXPLAINERS_DIR = Path(__file__).resolve().parent / "_explainers"
$ grep -n "get_explainer" faircode/SPEC.md
392:| `get_explainer` | `explainers/<slug>.md` | ...
EXPLAINERS_DIR resolves to faircode/_explainers/, not the repo-root explainers/ the table names.
Why it matters: same category as the list_explainers row and the already-fixed get_benchmark_results row (#434) - a reader trusting this table gets the wrong idea of what a real installed package reads from, contradicting SPEC.md's own surrounding explanation of why the package-internal mirrors exist.
Suggested fix: update the table cell to faircode/_explainers/<slug>.md (mirrored from explainers/<slug>.md).
Where:
faircode/SPEC.md:392(theget_explainerMCP tool table row) vs.faircode/mcp_server.py:60(EXPLAINERS_DIR) and its actual read path for a givenslug.The gap: the table says
get_explainerwrapsexplainers/<slug>.md(a repo-root path). The code actually reads fromfaircode/_explainers/<slug>.md- the same package-internal mirror the companionlist_explainersissue describes, built byscripts/build_explainers.pyspecifically becauseexplainers/isn't shipped bypyproject.toml(issue #388).Repro:
EXPLAINERS_DIRresolves tofaircode/_explainers/, not the repo-rootexplainers/the table names.Why it matters: same category as the
list_explainersrow and the already-fixedget_benchmark_resultsrow (#434) - a reader trusting this table gets the wrong idea of what a real installed package reads from, contradicting SPEC.md's own surrounding explanation of why the package-internal mirrors exist.Suggested fix: update the table cell to
faircode/_explainers/<slug>.md(mirrored fromexplainers/<slug>.md).