Nishi · measured, not asserted

Media Manager + Companion AI — capability ruler

Where the sovereign media plane and the companion plane actually stand against twelve real products people use. Every verdict below is computed from an evidence probe that runs at measurement time. Nothing here is an author’s opinion of their own work.

547Usable coverage ‰
613Built ‰ (code that exists)
554Media plane ‰
531Companion plane ‰

Built is not the same as usable

The first version of this ruler scored capabilities on whether the code exists. That flattered us. This tree contains roughly five thousand organs that are compiled, correct, and reachable by nobody — and the ruler had no way to say so.

It now scores two dimensions. Built asks whether the implementation exists and survives its evidence probe. Usable additionally requires the implementation to be deployed on the live host. A capability the product cannot reach scores GAP no matter how good its code is, so the headline is the usable number.

The gap between the two bars — 613 built vs 547 usable — is the migration backlog: capability already designed, written, and paid for, that no user can currently touch. Closing it costs a deploy, not a rewrite. 2 capabilities remain in that state today.

Declared floor, stated rather than implied: this probes deployed, not called. A deployed binary that no running daemon invokes still scores usable, so the real number can only be lower than 547 — never higher.

Why you can believe the number

A capability may only be scored HAVE if it names an evidence artifact that exists on disk at the moment of measurement. The ruler opens every one of those paths when it runs.

  • Name a file that isn’t there → the claim is destroyed, not footnoted. It drops to GAP and the headline falls with it.
  • Claim a win with no artifact at all → capped at PARTIAL. You cannot assert an unproven win.
  • Evidence can only ever demote. A present file never promotes a GAP into a HAVE, so no gap can be laundered into a win.
  • Axes no reference product ships are excluded from the denominator — coverage cannot be inflated by inventing categories we happen to be good at. Three such capabilities were found and excluded (listed below).

This run reported liar_killed=0. A broken audit would report the same zero, so the mechanism is separately proven by nx_mmbench_gate, which passes 24/24 GREEN including a negative control: a HAVE pointed at a deliberately absent artifact must come back GAP, and the headline must fall (1000‰ → 666‰ on a planted three-cell set). The zero is a measured zero, not an untested one.

Fourteen further teeth guard the second dimension, including the ones that matter most: a fully-built HAVE with no deployment must collapse to GAP; a deployment must never promote something we never built; and a deployed artifact the serving binary never references is still DARK — so the wiring axis can lower the score but can never invent capability.

How “wired” is proven. Checking that a file exists is weak — a binary can sit on disk that nothing ever calls. The stronger test, borrowed from an organ this ecosystem already had rather than invented here, is to read the live serving binary and confirm it actually references the organ. That organ (nx_reader_liveness) exists because mobi/azw decoders once shipped built, gated, and green while the serving path never routed to them, and roughly 390 books dead-ended. Where a serving binary is named, nx_mmbench now applies that test. Verified on our own stack: nx_gallery_serve.elf genuinely contains /volume1/ai/galx/nx_galx_thumb.elf 384, …/nx_galx_upscale.elf one 2 and …/nx_ts_index.elf — six capabilities re-checked under the stricter rule and all six held. An unreadable or oversized binary returns unknown and falls back, never a false dark.

The build order

Gaps ranked by demand — how many of the twelve reference products ship that capability. A gap six products consider table stakes outranks one that a single product has. This ordering is arithmetic, so the roadmap is not a matter of taste.

Closed this round: metadata-scrape (was #1, demand 6). It turned out not to need writing at all. nx_media_extract — a layered, self-healing extractor that learns URL patterns from its own past failures — already existed, gate-proven 6/6, imported by eight callers, and deployed nowhere. Building a new scraper would have duplicated it. It is now deployed and registered as the MCP tool nx_media_probe, and proven against a live page: archive.org fetched over our own TLS (200, 192,734 B) returning a media URL at confidence 90 and the title “Big Buck Bunny : Free Download, Borrow, and Streaming : Internet Archive”.

  1. library-fulltext-search — demand 5, now GAP.
  2. collections-series — demand 5, now GAP. Grouping loose files into series/collections.
  3. multi-user-profiles — demand 5, now GAP.
  4. responsive-mobile-ui — demand 5, now GAP.
  5. faceted-browse — demand 5, now PARTIAL.
  6. watch-history — demand 4, now GAP.
  7. subtitle-tracks, audio-track-select, hevc-h265-index, resume-watch-state, adaptive-bitrate-ladder, memory-consolidation-dream, download-queue-manager — demand 3 each.

Thirteen further gaps at demand 2 and below complete the queue of 27. Two of them (rss-auto-acquire, site-scraper-adapters) are dark rather than missingnx_feed_extract and nx_archive_capture already exist in the tree. Like metadata-scrape, they are deploy work, not build work.

Standing in for each reference product

Of the capability vector each product actually ships, how much of it we could serve today. A low score against a broad product is not a failure — it is the honest distance.

Reference productReadiness ‰Caps it shipsPlane
ChatGPT (with memory)8005companion
Immich70812media
qBittorrent6878media
SillyTavern65010companion
Sonarr / Radarr6258media
Replika56615companion
Character.AI55010companion
Emby54124media
Jellyfin53826media
Plex53826media
Kavita / Komga50013media
yt-dlp5004media

The pattern is legible: we are strongest where the product is narrow and infrastructural (torrent, dedup, storage), and weakest where it is broad and library-shaped (Jellyfin and Plex both at 538‰ across 26 capabilities). The companion plane scores well on the substrate — persona, memory, emotional state — and loses points on voice and multi-character.

Ownership

Who is responsible, accountable, consulted and informed for each function of this lane. Roles, not individuals — a lane owned by a session is a lane that dies with the session.

FunctionRACI
Measure the media + companion planes (this ruler)engineer-mediapmcritic / adversaryall
Keep the ruler honest (gate, negative controls, floors)refereepmadversaryoperator
Rank the gap queue (demand arithmetic)pmpmarchitectoperator
Close media gaps (library, seek, acquisition)engineer-mediapmarchitectreferee
Close companion gaps (memory, voice, arcs)engineer-companionpmarchitectreferee
Deploy dark capability (wiring, not writing)engineer-mediapmsupervisorall
Publish evidence + keep this page truelibrarian + sitespmall
Adult-content boundaries on the private planeswardenoperatorpm

These rows are published here and filed as lane rows; folding them into the ecosystem-wide RACI seg-store is deliberately left to the organ that owns that plane rather than hand-written into a shared store from this lane.

Every capability, with the artifact that proves it

Metrics beside the evidence, never instead of it. The evidence column is the exact path the ruler opened at measurement time. If a path in this column ever stops existing, the next run downgrades that row automatically and the headline drops — the page cannot quietly go stale into a lie.

Media plane

CapabilityVerdictDemandEvidence artifact probed
library-scan-catalogHAVE6/volume1/ai/galx/nx_media_ingest_pipeline.elf
metadata-scrapePARTIAL6none named — un-migrated Python surface
cover-art-posterHAVE6/volume1/logging/uwunikaa
client-apiHAVE8/volume1/ai/galx/nx_gallery_gateway.elf
auth-gated-accessHAVE7/volume1/ai/galx/nx_gallery_gateway.elf
thumbnail-generateHAVE5/volume1/ai/galx/nx_galx_thumb.elf
faceted-browsePARTIAL5/volume1/ai/galx/nx_gallery_gateway.elf
library-fulltext-searchPARTIAL5none named
collections-seriesGAP5
multi-user-profilesGAP5
responsive-mobile-uiPARTIAL5none named
watch-historyGAP4
trickplay-scrub-spritesHAVE3/volume1/logging/uwunikaa
keyframe-seek-indexPARTIAL3/volume1/ai/galx/nx_ts_index.elf
duration-indexHAVE3/volume1/ai/galx/galx_durindex.log
remux-fmp4-cmafHAVE3/volume1/ai/galx/nx_ts2fmp4.elf
matroska-remuxHAVE3/volume1/ai/galx/nx_mkv2fmp4.elf
range-request-serveHAVE3/volume1/ai/galx/nx_gallery_serve.elf
live-dvr-recordHAVE3/volume1/logging/uwunikaa
hevc-h265-indexGAP3
adaptive-bitrate-ladderGAP3
resume-watch-stateGAP3
subtitle-tracksGAP3
audio-track-selectGAP3
download-queue-managerPARTIAL3none named
thumbnail-prewarm-at-scalePARTIAL2/volume1/ai/galx/galx_pipeline.log
seek-index-backfill-at-scalePARTIAL2/volume1/ai/galx/nx_galx_idx_backfill.elf
rss-auto-acquireGAP2
content-dedup-cidHAVE1knowledge/store/mvault-manifest.txt
incremental-rescan-resumeHAVE1knowledge/store/mvaultpath-manifest.txt
dup-reclaim-reportHAVE1knowledge/store/mvault-manifest.txt
torrent-seedHAVE1nx_torrent_seed.elf
dht-magnetHAVE1nx_torrent_mkinfo.elf
tracker-multiHAVE1buildroot/runtime/torrent_trackers.txt
torrent-leechPARTIAL1nx_torrent_leech_probe.elf
site-scraper-adaptersGAP1
manga-multipage-readerGAP1

Companion plane

CapabilityVerdictDemandEvidence artifact probed
persistent-memoryHAVE4/volume1/ai/gen/elara_mem.log
in-chat-photo-genHAVE4/volume1/ai/gen/nx_gen_live_probe.elf
cross-device-continuityHAVE4/volume1/ai/gen/elara_mem.log
companion-ui-surfaceHAVE4/volume1/ai/gen/elara_ui.html
persona-data-drivenHAVE3/volume1/ai/gen/elara_appearance.txt
identity-locked-genPARTIAL3/volume1/ai/gen/elara_loras.txt
memory-consolidation-dreamGAP3
state-drives-visualsHAVE2/volume1/ai/gen/elara_shots.txt
day-arc-life-simPARTIAL2none named
relationship-progressionPARTIAL2none named
proactive-initiationGAP2
voice-ttsGAP2
multi-characterGAP2
emotion-state-modelHAVE1/volume1/ai/gen/elara_state.txt
state-drives-voiceHAVE1/volume1/ai/gen/elara_state.txt
voice-input-sttGAP1

Excluded from the denominator

Three capabilities we ship that no reference product does. They are reported but deliberately kept out of the score, because counting them would let us raise our own grade by being unusual rather than by being good.

image-upscale HAVE   self-heal-keeper HAVE   async-batch-gen PARTIAL

The corpus this is measured over

QuantityValueProvenance
Vault records (content-addressed, deduped)20,674live read of the seg-store at measurement time
Recordings catalog lines76,004stored census, generated 2026-07-17 — 8 days stale
Recordings on disk53,567same stored census, same staleness
Movies / titles2,391 / 205same stored census
Books2,822same stored census

Stated plainly: the vault migration is in flight, not finished. 20,674 content-addressed records is a real and growing number — it was 114 three days ago — but it is not yet the whole corpus. The two figures also come from different clocks: the vault count is live, the catalog census is eight days old and is labelled as such rather than presented as current. Ratios between a live number and a stale one are not published here, because they would be arithmetic on mismatched clocks.

Reproduce this

The ruler is a live sovereign tool, not a document. Anyone holding a capability for it can re-run the measurement and get today’s numbers rather than this snapshot’s:

nx_mmbench  →  full report

nx_mmbench json  →  machine-readable, all 28 gaps

nx_mmbench gapq  →  the build order only

nx_mmbench_gate  →  the 10 teeth, including the negative control

Both organs are sovereign NishiLang, compiled and served on our own hardware, reachable over our own TLS and our own capability tokens. No third-party runtime is in the path of the measurement.

What this page is not

It is a snapshot, hand-published. The ruler is live; this rendering of it is not yet self-emitting, so it can drift from the tool. Making it regenerate itself from the organ on a schedule is filed as the next rung on this lane rather than quietly assumed. Until then, the tool is the truth and this page is a dated report of it.