Skip to content

[finding] stack.zod.ts describe says the kernel ships "exactly two" platform agents (ask/build) — the lint gate's own PLATFORM_AGENT_NAMES holds four #7088

Description

@os-project-manager

Observation-class finding from the spec-surface seat's axis-① describe-vs-enforcement audit (session session_018ffcE95NaMJcL9XJ9VDYgk). Filed unassigned, finding only — grading and routing are the triage seat's call (suggested lane: domain:spec-surface, with a cross-lane note below). Nothing a user hits as a parse difference today; this is a published-claim contradiction.

Fact (both read on origin/main, re-verified independently after the audit agent flagged it)

Two machine-readable surfaces in this repo state different platform-agent rosters:

  1. packages/spec/src/stack.zod.ts:413 (.describe() — a RENDER INPUT, reaches the generated reference page):

    AI Agents — platform-internal (ADR-0063 §2): the kernel ships exactly two (ask/build); third parties extend via skills, not agents

    The module docblock at :388 carries the same "ships exactly two" claim.

  2. packages/lint/src/validate-ai-agent-authoring.ts:69 (the gate that decides which agent names are treated as platform names):

    const PLATFORM_AGENT_NAMES = new Set(['ask', 'build', 'data_chat', 'metadata_assistant']);

    Four ids — under a nearby comment that itself still says "The two platform agent ids" (per the audit's read), and packages/mcp/src/mcp-server-runtime.ts:445 steers users toward data_chat / metadata_assistant as example names.

Why this is worth a card despite being prose

Suggested dispositions (for triage to grade)

  • A: align the describe (and :388 docblock) with PLATFORM_AGENT_NAMES, phrased without a fixed count ("the kernel's platform agents are those in PLATFORM_AGENT_NAMES; third parties extend via skills").
  • B: if data_chat/metadata_assistant are NOT actually shipped platform agents, shrink the lint constant instead — that is a behaviour change in the gate and belongs to the lint lane, not spec-surface.
  • Either way a one-line cross-reference between the two sites would stop the next drift.

Dedup

Searched open issues (exactly two ask build, PLATFORM_AGENT_NAMES, platform agents roster): zero hits. #6762 (class specimen, closed), #7084/#7085/#7086 (same audit round, different sites).

Refs: ADR-0063 §2, #6762, E17 (no fresh fixed counts), audit round of 2026-08-09.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions