The Drift Log · Software inventory you can trust
Executable Verification Turns Registry Stubs into Real Assets
15 September 2026 · 3 min read · 683 words · established

Package manifests assert intent rather than execution. An automated certification harness weeds out registry stubs and isolates real software assets.
An internal package index or shared module directory often reports hundreds of reusable components. On paper, the organisation owns a vast library of capabilities. In practice, a developer imports one of these modules, calls the entry point, and watches it crash on an unresolved path, a missing native binding, or an empty function body with a TODO comment.
A package manifest is an assertion, not proof. Counting names in a registry tells you what someone intended to build, not what runs. When half of those entries are registry stubs—abandoned boilerplate or metadata-only placeholders—the catalog becomes a liability. Engineers lose time inspecting dead code, and automated tools make incorrect assumptions about available building blocks.
To convert these claims into a dependable software inventory, you must replace passive indexing with executable verification.
The Gap Between Metadata and Function
A component manifest records metadata: package name, version, author, dependencies, and exported type signatures. None of these fields guarantee that the underlying module can be loaded into memory or executed without errors.
Over time, drift occurs:
- Environment assumptions rot (Node versions shift, system packages vanish).
- Transitive dependencies break or introduce breaking changes under permissive version ranges.
- Stub implementations are committed to reserve namespace or establish interfaces, then abandoned.
As discussed in A Component Count Is Not an Inventory, counting rows in a database or folders in a repository only measures file system volume. It says nothing about runtime viability. If an entry cannot be invoked cleanly in isolation, it is not a reusable asset; it is technical debt disguised as one.
A Minimal Harness for Catalog Grading
To establish a verified software inventory, you do not need an exhaustive end-to-end test suite for every utility function on day one. You need an automated harness that attempts to load every exported artifact, exercise its primary interface, and assign an explicit verdict.
This process—catalog grading—evaluates each entry on a standard scale:
- CERTIFIED: The artifact executes, accepts input, and produces output matching its contract.
- PROVISIONAL: The artifact runs and is reproducible, but its broader correctness assertions are incomplete.
- INCONCLUSIVE: The harness cannot construct the necessary runtime context or input shape (a limit of the harness, not necessarily a failure of the code).
- FAILED: The module fails to load, throws an unhandled exception on import, or violates its base contract.
A minimal grading runner operates directly on the registry rows:
type GradeVerdict = 'CERTIFIED' | 'PROVISIONAL' | 'INCONCLUSIVE' | 'FAILED';
interface VerificationResult {
moduleName: string;
verdict: GradeVerdict;
error?: string;
}
async function verifyCatalogEntry(modulePath: string): Promise<VerificationResult> {
try {
const mod = await import(modulePath);
// Catch registry stubs masquerading as complete packages
if (!mod || Object.keys(mod).length === 0) {
return { moduleName: modulePath, verdict: 'FAILED', error: 'Empty export surface' };
}
if (typeof mod.smokeTest === 'function') {
const passed = await mod.smokeTest();
return {
moduleName: modulePath,
verdict: passed ? 'CERTIFIED' : 'FAILED',
};
}
// Module imports cleanly but lacks an explicit test entry point
return { moduleName: modulePath, verdict: 'PROVISIONAL' };
} catch (err) {
return {
moduleName: modulePath,
verdict: 'FAILED',
error: err instanceof Error ? err.message : String(err),
};
}
}
Running this check continuously catches broken dependencies and empty files before they propagate into downstream services. You can inspect an example of continuous validation workflows in Automating CI Verification of SHPBL Registry Entries.
Conceding Harness Boundaries
Executable verification has strict limits. Not every piece of software can be exercised with a simple runtime import.
A function that writes to a specific cloud queue, relies on kernel-level primitives, or requires hardware acceleration cannot be graded simply by invoking it in an unprivileged CI container.
When a harness cannot satisfy an environment requirement, it must return INCONCLUSIVE. It must not guess, and it must not mask the limitation by returning CERTIFIED based solely on the existence of a configuration file. Treating INCONCLUSIVE as a distinct state prevents test suites from becoming flaky while ensuring that unverified modules are never promoted to trusted status automatically.
A software inventory that distinguishes between proven code and untested code prevents teams from relying on phantom capabilities. You can see this distinction in practice across active execution matrices in the live harness.
What to Do on Monday
Do not attempt to write comprehensive unit test suites for three hundred neglected internal libraries at once.
Instead, write a simple script that walks every package or module registered in your repository, attempts to import or require its entry point in a clean sub-process, and asserts that it exports non-null symbols.
Run this script in CI. Tag every package that throws an immediate exception or exports an empty object as a stub. Separate your registry into working utilities and metadata-only placeholders. Once you isolate the broken rows, you stop treating speculative code as functional inventory.
This post supports the longer argument in A Component Count Is Not an Inventory.
Keep reading
Next in the log
- A Component Count Is Not an Inventory
Why internal component registries decay into unverified technical debt and how to calculate the true yield of reusable code.
- Automating CI Verification of SHPBL Registry Entries
A minimal CI harness can certify each registry entry by loading and executing its main function, turning stubs into verified artifacts.
- Detecting Orphaned Functions in a Monorepo
Barrel files and isolated unit tests hide dead code in monorepos. Find orphaned functions by tracing reachability from declared production roots.
The Strategic Master Library · written and reviewed under the house's own epistemic rules: nothing claimed that we cannot show.