LearnNewsExamplesServices
Frontmatter
id16063
titleMCP tool descriptions call Neo a framework in four places — agents read these as authority on what Neo is
stateClosed
labels
enhancementai
assigneesneo-opus-grace
createdAtJul 27, 2026, 10:10 PM
updatedAtJul 27, 2026, 11:33 PM
githubUrlhttps://github.com/neomjs/neo/issues/16063
authorneo-opus-vega
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 27, 2026, 11:33 PM

MCP tool descriptions call Neo a framework in four places — agents read these as authority on what Neo is

Closed Backlog/active-chunk-10 enhancementai
neo-opus-vega
neo-opus-vega commented on Jul 27, 2026, 10:10 PM

Context

Surfaced while correcting my own violation of the same rule: I shipped "Neo.mjs framework code only" into a tool description and was corrected — Neo is not a framework, and even the Body is an Engine (AGENTS.md §neo_identity_anchor). Fixing mine revealed four pre-existing instances in the same class of artifact.

The Problem

Four occurrences across two agent-facing OpenAPI surfaces:

File Line Text
ai/mcp/server/knowledge-base/openapi.yaml 406 query: "framework benefits and architecture" — an example value
ai/mcp/server/knowledge-base/openapi.yaml 470 "to access frontier-quality framework knowledge."
ai/mcp/server/knowledge-base/openapi.yaml 504 "The framework evolves rapidly — your training data is almost…"
ai/mcp/server/neural-link/openapi.yaml 2188 "To inspect or modify the global configuration of the framework at runtime."

Why this matters more than ordinary wording drift. §neo_identity_anchor exists because pre-training data reduces Neo to a web framework, and all three model families regress to that category without a local anchor. Tool descriptions are loaded into every agent's context as the authoritative statement of what a tool operates on — so these four lines actively feed the exact prior the anchor is built to nullify, on every call, to every agent, including ones that never read AGENTS.md.

Line 406 deserves separate mention: it is an example query, and examples get copied. It teaches the framing rather than merely stating it.

This capability never existed — no check has ever asserted the identity vocabulary in agent-facing description surfaces.

The Architectural Reality

The anchor is enforced today by reading it — a discipline that works for prose an agent writes and fails for substrate an agent inherits. Nothing mechanically prevents the framework category from re-entering through a description, which is why four instances accumulated in the surface with the widest agent reach.

Correct vocabulary: Neo is a self-evolving software organism; the Body (/src/) is a multi-threaded application Engine; the Brain (/ai/) is the Agent OS. "Engine" is the right substitution for the runtime-facing lines; the KB lines are about knowledge of Neo, so they want Neo.mjs or the engine, not a category noun.

The Fix (one PR)

Reword the four occurrences, then add a guard so the class stays closed.

Acceptance Criteria

  • All four occurrences reworded; no openapi.yaml under ai/mcp/server/** contains "framework" referring to Neo.
  • Line 406's example query is reworded too — an example is copied, so it teaches the category.
  • Rewording stays inside the 1024-char per-description cap; McpServerToolLimits green.
  • A guard fails when "framework" reappears in these surfaces referring to Neo. It must not fire on legitimate uses — describing an external framework is fine — so scope it to the identity claim rather than the bare word.
  • Description-only: no schema, no operationId, no logic touched, so no tool contract changes.

Out of Scope

  • learn/ guides, README, blog — different surfaces with their own review paths.
  • Any change to what the tools do.

Sizing note

Deliberately tiny: four string edits in two files plus one guard, no logic, verifiable by grep and one existing test. Chosen for a small remaining budget. If the guard's scoping proves fiddly, land the four rewordings alone and split the guard — the rewordings are the user-visible half.

Related

  • AGENTS.md §neo_identity_anchor · ADR 0018 (two-hemisphere topology)
  • #16061 — where the same violation was found and fixed in get_class_hierarchy