Skip to content

GenDoc: wire the documentation-contract version check or retract the claim #246

Description

@Reefact

Problem

DocumentationContractVersionAttribute's XML docs state: "The generator reads this value from the target assembly to detect a contract it was not built to extract; an assembly published without the attribute is treated as contract version 1." No code in GenDoc, the Worker, or the reader reads the attribute — its only consumers are its own two unit tests. The cross-version safety it describes is covered only indirectly by the coarse GENDOC_WORKER_OUTPUT_UNREADABLE error.

Impact

A maintainer would reasonably rely on a guard that does not exist — in the subsystem whose whole point is that documented claims are enforced.

Direction

  • Preferred: make the worker (or reader) read the attribute from the target assembly and record a structured extraction failure (or a new GENDOC_ code, extending the ADR-0009/0010 catalog) when the target declares a newer contract than the tool understands.
  • Alternative (if not wanted for v1): rewrite the attribute's XML doc to describe the check as reserved/forward-looking.

Acceptance criteria

  • Either a target assembly declaring contract version N+1 produces a named, documented failure surfaced through the normal pipeline — or the XML documentation no longer claims that it does.

Context

Surfaced by the 2026-07-20 architecture, design & ecosystem audit (doc/handwritten/for-maintainers/audit/2026-07-20-firstclasserrors-architecture-and-design-audit.md, §8.2-GenDoc/§14-HV14; branch claude/firstclasserrors-audit-83gap7).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions