CNA-BUG-228: xnb.md still says 'Status: planning document only. Nothing described here is implemented yet.' directly beneath a banner that records the XNB reader phases complete

CNA snapshot 009d40f5  ·  Known Issues › Current bugs  ·  source links pinned to 009d40f5

✓

Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.

The root design document for CNA's .xnb reader records the reader MVP, LZX and the SpriteFont/effect/audio readers as done, then states that nothing it describes is implemented; its banner also calls the Model phase unstarted although a Model reader ships.

Identifier
CNA-BUG-228
Category
Bug
Subsystem
Documentation & release tooling
Status
Open
Verified against
CNA 009d40f5 (009d40f5dd085c4e674d3479675fac84b12b3e0a)
Severity
Low (a triage suggestion, not a project priority)
Evidence basis
Source-verified: read at TARGET, not executed
Tests touching this area
Yes: see Current tests
Affected contract
xnb.md (repository root), the design and status document of the ContentManager / ContentTypeReaderManager .xnb reader

Expected behaviour

xnb.md is the document CNA keeps as "the authority on how a .xnb file is consumed" (its own 2026-09-02 note). Its status should be stated once and agree with the code.

Actual behaviour at TARGET

The banner at the top records the container, primitive, first-reader and manifest phases, LZX decompression and the SpriteFont, stock-effect, SoundEffect/Song and ReadExternalReference<T>() phase as complete. Directly below it a bold line still reads "Status: planning document only. Nothing described here is implemented yet." and calls the file "a plan to be executed later". The banner is itself behind in one place: it says the Model and hardening phases (D3/F) are frozen and "nothing there is started", while XnbBuiltInReaders.cpp registers the Model reader (RegisterModelXnbReaders, ModelContentTypeReaders.cpp) and XnbBuiltInReaderRegistrationTest.FreshContentManagerLoadsAModelFixtureWithNoOtherSetup loads a Model .xnb.

Source locations

Evidence

Checked by reading at 009d40f5; not executed. The other CNA documents that used to say CNA cannot read .xnb (the migration guide, the API coverage document, the docs index, AUDIT.md) have been corrected. The coverage snapshot (docs/coverage.md) opens with a banner that calls it a historical snapshot and points to the current XNB status, but its EasyGL and Vulkan tables still list “.xnb content loading” as “Out of scope”, and the known-limitations list of the released changelog (CHANGELOG.md, section 0.1.0-alpha.1) still says that Content has no general .xnb reader. This line and those two are what remain.

Focused reproduction

No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.

Current tests

The reader is well tested (XnbBuiltInReaderRegistrationTests.cpp and the ContentManager*XnbTests under modules/content/tests); no check reads plan documents.

Regression test

None applies; the fix is editorial: delete or date the "planning document only" line and update the Model-phase sentence of the banner.

Blast radius

Readers of CNA's root plan documents, including contributors and coding agents that CNA's instructions send to the plans before they work, may conclude that .xnb loading is unimplemented. No code is affected.

Workaround

Use docs/xnb-content-pipeline-support.md and docs/xna-content-pipeline-final-audit.md for current reader coverage.

The same subject is explained at several altitudes. These are the neighbouring pages at each one.

Known issues
Bug index