Skip to content

docs(matrix): goose spawns every plugin hook with sh -c, on Windows too (GOOSE-NOTE) - #213

Merged
jothimani-rajendran merged 1 commit into
mainfrom
goose-note-sh-spawn
Oct 18, 2026
Merged

jothimani-rajendran merged 1 commit into
mainfrom
goose-note-sh-spawn

Conversation

@jothimani-rajendran

Copy link
Copy Markdown
Collaborator

What this changes

goose's matrix notes now record how goose spawns plugin hooks, from vendor source: hook_command() runs Command::new("sh") with -c <command> on every platform. There is no Windows branch, and the hooks module never reads GOOSE_SHELL. A spawn error becomes "the hook command failed to run" (aaif-goose/goose v1.55.0 = 2bcb858, crates/goose/src/hooks/mod.rs:1093-1098, :725-738, :45, and :127-133 for the action fields; re-read 2026-10-18).

So on Windows sh must be on PATH. Without it, the on_failure: block that agentseam writes denies every tool call. goose has no per-platform hook field, so the codex_cli commandWindows route does not apply.

The note also records the owner run of 2026-10-18 (goose 1.55.0, Windows 11, chock's own goose plugin):

  • Without sh on PATH, guard, gate and benign calls were all denied.
  • With Git for Windows' sh on PATH, the guard and the gate were refused and the benign call ran.

Source: org-plan witness/results/witness-goose-2026-10-18.md at 6316fd3.

examples/generated/goose.md was regenerated with examples/generate.py.

Claim check

  • No capability claim is widened without a mechanism behind it. This PR adds notes only and changes no capability, event or adapter.
  • The changed MATRIX row keeps its verified record. It is untouched (vendor-docs, v1.54.0); the new facts carry their own source and date inline.
  • Primary source: aaif-goose/goose v1.55.0 source, plus the org-plan witness result above.

Nothing is marked witnessed. The vendor schema's witnessed field (under loads_claude_plugins) is for a Claude Code plugin running in the agent, and this run used goose's own plugin format. agentseam has no field for a witness of a vendor's own plugin hook.

Checks

  • pytest -q passes: 2626 passed, 6 skipped
  • ruff check . and ruff format --check . pass
  • Runtime path is still stdlib-only (data change only)
  • Commits are signed off (git commit -s)
  • python examples/generate.py --check: examples up to date (18 files)

Notes for the reviewer

Should a field for a vendor's own plugin-hook witness exist? That is a schema decision and is left out of this PR.


Generated by Claude Code

goose's matrix notes now record the spawn mechanism from vendor source:
hook_command() runs Command::new("sh") -c <command> on every platform, the
hooks module never reads GOOSE_SHELL, and a spawn error becomes "the hook
command failed to run" (aaif-goose/goose v1.55.0 = 2bcb858,
crates/goose/src/hooks/mod.rs:1093-1098, :725-738, :45, :127-133). So on
Windows sh must be on PATH or, under the on_failure: block agentseam writes,
every tool call is denied; no per-platform hook field exists to work around
it the way codex_cli's commandWindows does.

The note also records the 2026-10-18 owner run (goose 1.55.0, Windows 11,
chock's own goose plugin): every call denied without sh on PATH; with Git for
Windows' sh on PATH, guard and gate refused and a benign call ran (org-plan
witness/results/witness-goose-2026-10-18.md at 6316fd3). Notes only: the
vendor schema's `witnessed` field is for Claude Code plugins, so nothing is
marked witnessed. No adapter or capability change; examples regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
@jothimani-rajendran
jothimani-rajendran marked this pull request as ready for review October 18, 2026 00:31
@jothimani-rajendran
jothimani-rajendran merged commit 0938229 into main Oct 18, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant