D074 - Symbol databases accumulate, and are generated by a task

decided · 2026-08-19 · prompted by the user

Two faults, both mine, both the kind that only show up when somebody asks how a file got there.

They were made by hand. I ran the tool once, against one module, and committed the output. Nothing regenerated them, nothing referenced them, and the reproducible-provenance argument sat next to two artefacts produced by a person typing a command. Now ./orbistoun.sh names sweeps every module under titles/, and both files carry a header saying they are generated and how to refresh them.

They overwrote. Each run sees only the imports of the module it was given, so writing that run's findings would silently discard every name learned from anything else. Now both accumulate: the database unions names, the work list unions hashes and drops whatever has since been explained. Sweeping ten modules took the database from 161 names to 264, which the overwriting version would have reported as 89.

An existing derivation always wins. The record should say when a name was first worked out; rewriting it on every sweep would turn a history into a timestamp of the last time somebody ran the tool.

CI cannot run this - titles/ is gitignored - and does not need to. What CI checks is the audit, which needs no module at all.