Repository navigation
v2.41.0 — the response has to reach a channel this plugin reads
A preToolUse guard that refuses a Stride API call whose response reaches
neither tier of this plugin's resolver, a Stop-gate condition for a held
uncompleted claim, and a cross-port reconciliation against the two sibling ports.
The guard, and why this port's rule differs
The failure it closes is silent by construction: nothing records the loop state,
the Stop gate cannot tell the task was completed, changed_files lands empty,
and after_goal detection falls back to a fresh API call — with no error
anywhere, so the first sign of trouble is work that quietly never left the board.
This port resolves a response file-first, so
--output "$CLAUDE_PROJECT_DIR/.stride/.last-api-response.json" hides nothing
from it — that is the second of the two delivery shapes this repository
documents, and both the claiming and completing skills recommend it. The
exemption is narrow: the target must be the canonical file, spelled the way this
repository documents it.
Refused: -o/-oX/-sSo/--output/--output= to any other target including
/dev/null; -O/--remote-name/--remote-name-all, which name their file after
the URL and so can never be the canonical one; any pipe whose next stage is
not tee; >/1>/>|/&>/>&2 to any other target; and >>/&>/&>>
onto the canonical file, because appending makes the one JSON value we parse
unparsable.
Both halves — bash and the PowerShell twin — carry the same rule, byte-identical
refusal messages included.
Cross-port reconciliation
Driving the three hardened guards over ONE corpus found 18 shapes where the ports
disagreed. Three involved this port: --remote-name-all was permitted, 2>&2
was refused though a stderr-to-stderr redirect leaves the body on stdout, and an
endpoint appearing only inside a redirect target was refused.
Six divergences remain and are deliberate, sharing one cause recorded in all
three guard headers: this port is file-first and may deliver to its canonical
response file; the siblings read stdout alone and refuse that same shape
correctly.
821 assertions pass, both halves.