refactor: name capability runners and evidence by what they prove#110
Merged
Conversation
Drop the implementation-unit prefix from capability smoke runners and retained evidence. Artifact names now describe the target, version, and context mode they prove, never the work unit that commissioned them β the enclosing Change directory already supplies that provenance. Runners take an explicit client executable, exact expected version, and receipt path, and publish a receipt atomically only after both the proof and cleanup succeed. Marker prefixes become target-scoped, so the strict validators reject every superseded marker and all three receipts were re-recorded against the current native binary with genuinely observed model-visible markers: Claude Code 2.1.218, Codex 0.145.0, and OpenCode 1.18.4.
levifig
force-pushed
the
feat/parameterized-capability-smokes
branch
from
July 24, 2026 22:41
8509ffa to
91f30e1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Artifact names describe what they prove, never the work unit that commissioned them. The enclosing Change directory already supplies that provenance, so the prefix was redundant and pointed the wrong way.
preflight-cursor-agent-context.mjs, because it is a preflight that refuses rather than a smoke.<target>-<version>-<mode>form. Version stays in the filename: it is the identity of what was proven, not a work reference.--client,--expected-versionand--receipt, validate each input, and publish a receipt atomically only after both the proof and cleanup succeed.LOAF_CLAUDE_STARTUP_SMOKE_,LOAF_CODEX_STARTUP_SMOKE_,LOAF_OPENCODE_REQUEST_SMOKE_.npm run test:capability-runners.Rebase note
Reduced from five commits to one, and the base is retargeted from
feat/target-adapter-doctortomain.The four lower commits belonged to #109's stack. The manifest and content-addressed install portions of that stack have since landed in
mainby another route, so only the unique capability-runner commit is carried here. #109 stays open: its target-adapter ownership doctor check has not landed βmain's doctor registers six checks and none of them ischeckTargetAdapterOwnershipβ so it needs its own reconciliation pass.Evidence
Renaming the marker prefixes invalidated all three retained receipts. The strict validators failed closed on them before re-recording, with
installed-smoke evidence does not prove a successful model-visible marker result. Receipts were re-recorded by genuinely re-running each runner against the current native binary, never by editing a marker into a file.claude-code-2.1.218-plugin-startup-smoke.jsonLOAF_CLAUDE_STARTUP_SMOKE_82C9A319C829codex-0.145.0-isolated-startup-smoke.jsonLOAF_CODEX_STARTUP_SMOKE_A5533AEA314Copencode-1.18.4-isolated-request-smoke.jsonLOAF_OPENCODE_REQUEST_SMOKE_BB01462EC885The OpenCode receipt additionally proves
plugin_loaded,root_session_lookup_proven,no_auth_suppliedandcleanup_succeeded.Verification
LOAF_VALIDATE_TYPESCRIPT=1 npm run buildnpm run typechecknpm run testβ all four packages passnpm run test:capability-runnersβ 21 passedloaf check --hookforcheck-secrets,security-audit,render-drift,ephemeral-provenancegit diff --checkOut of scope
Two historical records still name the superseded runner and receipt filenames:
docs/changes/20260718-installed-distribution-authority/plan.mdanddocs/changes/20260724-version-agnostic-managed-block/evidence.md. Both are factual accounts of commands that ran under those names, so they are left intact rather than rewritten.