Repository navigation
feat(app-control): let a hub hand off its Mask and a values source resolve to none - #13765
Conversation
… none: values result Refs: #13757 - control-skill contract: a hub's `## Mask` may be the single hand-off line; the target is the .md path on the `Driving tool:` line, resolved inside the project root (and the trusted root), with its values resolved against the target's own config/ and cli/. A `values:` cli/ source may print exactly one `none: <reason>` line and exit 0. - drive evidence.md: the post-check follows the hand-off, accepts `none:` per source, and records `values_none` in report.json. - map check-map.sh: follows the hand-off and runs mask-missing against the resolved target; tests cover the target cases. - drive evals for the hand-off, an unreadable target, a lone none:, none: beside a resolved source, and none: with an extra line. - The repo hub's `## Mask` hands off to control-claude-code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t was read Refs: #13757 The index `sources` root is the checkout under test when the hub comes from --trusted-root, so anchoring the hand-off target there would let a pull request head supply its own masks. Resolve it in the directory the hub copy was read from instead, and pin that with a trusted-root eval that holds a decoy target in the checkout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review Summary: ❌ FailedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
claude-security-review reviewed Security review: PR #13765, head e91c56eI read all 7 changed files in full and found no security issues. Since this lane already reviewed an earlier head (5831350), this review reports blocking findings only (CRITICAL and IMPORTANT). Nothing from the earlier review carries over: it posted 0 findings. critical-findings: 0 What I checked1. The hub's new
2. Can a pull request under test supply its own masks or values? I checked whether code under test could weaken the check this way. It can't.
3. The new
4.
Other notes
|
|
claude-review reviewed Code review: PR #13765, mask hand-off and the
|
|
Held on |
…eckout decoy Eval 38 drives under --trusted-root with the hand-off target missing there and a `none: nothing to hide` decoy in the checkout, and expects not-checked, so a trusted-root-then-checkout fallback fails an eval. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Eval pair: VALID, no loss.
Per-case scores (48 cases)
|
|
The |
Closes #13758
Refs: #13757
session: App Driven PR Verify
Summary
Drive's mask post-check can now publish captures from this repository's CI capture. On main it cannot, for two reasons:
## Maskin this repository's hub control skill. Without one, every capture isnot-checked. Run 42235412941 recorded 12 captures and uploaded only the summary.values:source has no account to name, and a source that yields nothing also leaves capturesnot-checked.This PR adds two things to the control-skill contract and gives the hub its
## Mask:## Maskmay be the single lineThe driving tool's `## Mask`.values:line from the control skill named on the hub'sDriving tool:line.--trusted-root, never from the checkout under test.## Mask, or handing off again is unreadable, and every capture staysnot-checked.none:values result. Acli/source may print exactly onenone: <reason>line and exit 0. That source then resolves to no values, andreport.jsonrecords it undervalues_none. Any other output, empty output included, still fails closed.Fix
plugins/app-control/reference/control-skill.md"The Mask section": the hand-off, its resolution and trusted-root rule, and thenone:result.plugins/app-control/skills/drive/reference/evidence.md"Mask post-check": follows the hand-off, acceptsnone:per source, and recordsvalues_none.plugins/app-control/skills/map/scripts/check-map.shand its test: resolve the hand-off target and runmask-missingagainst it.applied;not-checked;--trusted-root, a target missing there staysnot-checkedand a decoy target in the checkout is not used;none:source is publishable;none:beside a resolved source still scans the values;none:plus an extra line staysnot-checked..claude/skills/control-claude-code-plugins/SKILL.md:## Maskhands off toplugins/harness-ops/skills/control-claude-code/SKILL.md, whose 12 mask lines stay in one place.bump: minor).Verification
bash plugins/app-control/skills/map/scripts/check-map.test.sh: 74 passed, 0 failed (9 new cases).check-skill.shpasses on drive and map (0 errors), andcheck-evals-quality.shpasses on the drive evals.check-map.shon the repository hub: clean.mask-missing ... does not exist.Remaining
do-not-mergeuntil a valid before/after eval lands (hub rule R379/R381).none:(testing plugin, next PR);account.mjsprintsnone:: PR 13762.PR_VERIFY_CLAUDE_API_KEYcredit.Related
🤖 Generated with Claude Code