D242 - A name enters the database only if this repository can re-derive it

decided · 2026-08-25 · ruled before there was a reason to want the other answer

obscene/docs/HARDWARE-PROBE.md draws a boundary that is right and is written down: what a correct system does travels freely - sizes, codes, layouts, behaviour - and how another implementation is written does not. It does not cover names, and names are where the pressure is: this project holds 737 and one executable still imports 565 it cannot name, while name lists mined from other emulator projects exist and are reachable.

An argument for importing them is available and not stupid: a symbol name is a fact about an ABI, so by the rule above it travels. The answer is no, and the reason is not legal.

symbols-audit reports a name as re-derivable from this repository alone, and that claim is the whole product. A name arriving from an external list cannot carry it, and a database mixing the two turns "unaccounted" from a signal that shrinks as the grammar learns into a permanent population that means two different things. The audit would still pass; it would have stopped measuring anything.

What it forbids, precisely

Where this leaves the plateau

Every harvesting mechanism is at zero marginal yield, and this decision keeps it there until a new source appears rather than a new list. The sources that qualify are named already: a cited C++ ABI list, call-position inference, and a probe that answers resolve by name - which reaches functions no title imports and which no collision search can ever match.

Deciding it now was the point. The choice costs nothing today and would have been made badly on day three of a campaign with the naming yield at zero.

A module's strings are one of its inputs, and whose module it is matters

The name search harvests identifier-shaped strings out of a module's own bytes. For a commercial title that is unimpeachable and is how sceKernelCreateSema was found: the string is the vendor's own spelling, sitting in the title's diagnostic text, and the hash confirms it (D193).

Pointed at obSCEne's module the same mechanism does something else entirely. Its census carries a name list mined from other emulator projects, so the strings in it are that list - and a hit would be recorded as Static, from a module, which is among the strongest provenance this project has. The front door refuses the list; this is the same list arriving through a file.

So the rule is about the material, not the mechanism: string harvesting is admissible from a module built by the vendor and not from one built by another emulator project. Word lists and the generated grammar stay admissible everywhere, because a name they produce was produced here - the hash confirming it is what makes it ours, whoever else happens to know it.

Each hit records how it was found at the moment of discovery (D073), so this is a filter rather than a matter of remembering.

The unresolved edge, stated rather than smoothed over

orbistoun-propose asks a model for candidate words, never for a name, and keeps only what the hash confirms (D214). A model has read the public internet, including the very lists this entry refuses - so a word it proposes may be recalled from one. CLAUDE.md already answers this in general: abstinence is unenforceable, accounting is, and a generated record says it is a pattern and an index so anyone can re-derive it.

That answer holds for words and would not hold for names, which is the line this entry draws. It is a real edge and it is recorded as one rather than declared clean.