D275 - a measured run-context axis, and the loaded-module link-map that feeds it

Status: assumed.

The report already carried two provenance signals - OBS_FROM_* on each check (where the claim came from) and OBS|build (how the binary was built). Neither says which environment a run measured in, and build cannot: the same payload binary runs in the ps4 compatibility host today and, once an injector exists, inside a native process - and reports different things in each, indistinguishably. So findings from two contexts could not be told apart, and a "libSceAgc absent" from the BC host read the same as a real absence.

Added a third axis, orthogonal to OBS_FROM_*: OBS|context|<delivery>/<generation>|<basis>, emitted next to build. Delivery (host/payload/title) comes from the build macro and the payload anchor; generation (ps4-bc/ps5-native/unknown-gpu) is measured, not assumed, from which GPU library is actually mapped. from is the provenance of the expectation; context is the environment of the measurement.

The generation is read by walking the runtime linker's own link-map (obs_linkmap_walk in runtime.c) - DT_DEBUG -> r_debug.r_map -> the link_map chain, offsets cited to FreeBSD <link.h>/<sys/link_elf.h>, the same basis as the dirent walk. Syscall-free, so it works where sceKernelGetModuleInfo is refused (measured: 0x80020016 for every size incl 0x160). The same walk backs section 111-modlink, which reports the full inventory. No new imports, so no surface/census change.

On hardware (the 36,361-record payload run) the walk returned nothing and context read payload/unknown-gpu. That is consistent with this build's unbound-imports payload mode (D-note in WORKLOG, same day): the walk and the ELF-scan resolver share the own-ELF-header find, and when that fails both do. obs_linkmap_walk now takes a reason out-param so the next run names the stage - "own ELF header not resident" (the resolver's cause too) versus "DT_DEBUG not populated" (a runtime-linker that never processed this object) - which decides whether the fix is the context or the method. make host/make module green; the section and the record both skip/mark unknown honestly off a context that cannot answer. The native-host injector is where this walk is expected to succeed, and context is what will prove it did.