fix(codex): verify staged skill access - #315
Merged
Merged
Conversation
Persist each task's staged SKILL.md path and require a successful transcript read command against that exact path. Preserve native skill-tool checks and label no-signal judging as behavioral influence rather than invocation proof.\n\nCloses #309
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
Closes #309.
Codex JSONL has no dedicated skill-invocation event, but a bounded Codex CLI 0.152.1 probe showed that completed
command_executionitems preserve the command text and numeric exit code. This change uses that stable event shape as deterministic skill-access evidence.SKILL.mdpath in dispatch and run artifacts.transcript.skill_accesssignature with the shell tool, command field, exit-code field, and permitted reader basenames.__skill_invokedlocally withconfidence: 1.0when a successful reader command contains the exact staged path as a literal argument.Evidence boundary
The deterministic check is deliberately narrow:
cat,head,sed, ortailfor Codex).Multi-skill grading keeps
conditions.jsonas the authoritative member roster and uses matchingrun.jsonentries only for task-specific staged paths, so an incomplete copied roster cannot suppress a member's check.Compatibility and artifacts
__skill_invoked.json; multi-skill treatments retain indexed__skill_invoked__skill-N.jsonfiles.staged_skill_pathis additive and optional in run-record schemas, preserving historical artifact compatibility.Before this change, Codex always asked an LLM to infer invocation from behavioral fingerprints. After this change, staged Codex runs produce local transcript-check results from exact-path access, and persuasive response text wording cannot turn missing access into a pass.
Documentation and fixture
Verification
cargo fmt --checkcargo clippy --all-targets -- -D warningscargo test --quiet— 972 library, 220 CLI, and 211 run tests passed (1,403 total)cargo build