---
name: owl-tooling-gotchas
description: "spt-core owl/live CLI pitfalls — stdin pipe, $LIVE quoting, bash vs PowerShell in commits"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: b8f9dd1d-464c-46a5-9356-d1de090ab979
---

Four gotchas confirmed broken in production:

**NEW (2026-06-14):** `$OWL send --reply-to <sender>` takes NO positional target after the flag. Adding a positional target (e.g. `doyle`) makes doyle the recipient — self-message. `--reply-to` already encodes the destination; omit positional target entirely.

Original three (confirmed 2026-06-10):

1. `$OWL send` reads message from STDIN — `cat msg | $OWL send doyle todlando` or heredoc `$OWL send <target> <<'EOF'...`. Passing body as positional arg → HANGS (todlando confirmed 2026-06-13). Use `PIPESTATUS` not `$?` after pipe.

2. `$LIVE` expands to `owl.exe live` (subcommand included in var) — run UNQUOTED so bash word-splits it: `$LIVE psyche-download todlando`. Quoting → `"owl.exe live psyche-download todlando"` = "No such file".

3. Bash tool is bash, not PowerShell. Use `git commit -F <file>` for multi-line commits. PowerShell heredoc `@'...'@` syntax shatters in bash.

**NEW (2026-06-23):** Long EVENT relay messages truncate at ~seq 8/9 in owl. Keep gate verdicts tight (one tight block, not a long narrated sequence) or expect to resend the tail.

**Why:** Confirmed live during D6 execution 2026-06-10. Truncation observed 2026-06-23 during v0.14.0 wave gating.
**How to apply:** Any time using owl send, $LIVE, or git commit in bash context within spt-core work. For gate verdicts: tight + conclusive beats long + narrated.
