feat(run): auto-arm the write guard; scope preflight warnings#149
Merged
Conversation
Closes the #126 gaps: supported enhancements are now provided automatically, and the remaining silent degradations warn. - The write guard arms automatically on guard-capable built-in harnesses whenever staging is active; new --no-guard opts out. --guard stays as the explicit form (warns where auto-arm quietly stays off; still rejected on user-descriptor-only harnesses). RunOptions.guard is now tri-state (None = auto), resolved by the preflight, and the run plan prints the armed guard status. - The no-transcript-parser warning is scoped to eval configs that actually use transcript_check (resolve now runs before preflight). - A harness without a dispatch exec recipe now warns naming the generic-handoff fallback (new has_dispatch_recipes probe). - Docs updated across --help, README, progressive-enhancements, byoh, per-harness notes, and the descriptor template. Verification: cargo test (637 green), cargo fmt --check, cargo clippy --all-targets -- -D warnings, plus end-to-end drives (bare run auto-arms; opencode warns guard/transcript/dispatch; --guard --no-guard conflicts at parse). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Closes #126.
What changed
Issue #126 asked that every harness enhancement be detected and provided automatically, with warnings naming the limitation wherever a harness lacks one. The preflight already implemented the warn-and-degrade model; this PR closes the remaining gaps:
--no-guardflag opts out;--guardremains as the explicit form (it warns where auto-arm quietly stays off — guardless harness,--no-stage— and is still rejected on user-descriptor-only harnesses, since the guard fails open). This replaces the README's "arm--guardunless the user opts out" agent-etiquette with actual default behavior.RunOptions.guardis tri-state (None= auto) and the preflight resolves it; the run plan printsguard: armed … (--no-guard to opt out).transcript_check-unverifiable clause only appears when the loadedevals.jsonactually declares atranscript_checkassertion (resolve now runs before preflight — it is read-only, so nothing is built before preflight can still reject).[dispatch] exec_template(OpenCode, exec-less BYOH descriptors) gets a preflight warning naming the generic-handoff fallback, via a newhas_dispatch_recipes()trait probe.--guard --no-stagepreviously keptguard=truethrough artifact rendering (manifest/runbook carried guard args for an unguarded run); the guard is now resolved before rendering.Before/after (bare
eval-magic run, claude-code)Before: run is unguarded unless the operator remembered
--guard.After:
Bare
eval-magic run --harness opencodenow messages every limitation:Docs
run --help(--guard/--no-guard/--no-stage/--harness), top-level--helpexamples, README (quick-start examples, Cost & confirmation, Harnesses fallback paragraph),docs/progressive-enhancements.md,docs/byoh.md, per-harness notes,harnesses/template.toml.Verification
cargo test— 637 tests green (9 new unit tests incl. the full guard decision table; 9 new/renamed integration tests acrosslifecycle/codex/opencode/byoh/basics)cargo fmt --check,cargo clippy --all-targets -- -D warnings--no-guardinstalls nothing and silences the warning;--guard --no-guardis a parse error; opencode/BYOH degrade with the warnings above🤖 Generated with Claude Code