# E-034 — The preflight remedy named an unavailable runtime

## Context and hierarchy

- Date: 2026-08-04.
- Main objective: make Objective Guard adoptable by newcomers and coding agents through English-first documentation.
- Round objective: provide usable Claude and Codex harness guidance.
- Affected workflow: recovery from a `PreToolUse` denial caused by missing or expired preflight authorization.

## Observed trajectory and evidence

The sanitized inventory imported from a Mac mini contained four `missing-or-expired-preflight` denials among 155 new events. The injected recovery message constructed its command with `.runtime/bin/node`, but that executable was absent in this checkout. The prompt therefore named the correct CLI action with a command that could not run.

## Expected and actual guard behavior

Expected: a denied edit receives an exact, runnable remedy. Actual: contract and documentation checks passed while the harness feedback referenced an unavailable runtime; no detector covered this message-path failure.

## Classification, correction, and limit

This is a missed usability signal in harness feedback, not evidence of a semantic detector failure. Claude and Codex prompts now use the bundled runtime only when executable, otherwise `node` from `PATH`, and explicitly tell the agent not to retry the blocked edit before `task-flow` returns `ready`.

This does not prove that an agent follows the instruction or that the gate prevented drift.

## Impact and follow-up

Operational feedback must be executable, not merely precise. Keep a smoke check that parses each prompt response and asserts its recovery guidance; telemetry can measure repeated denials but cannot establish causal benefit alone.
