post ///jab/dog has no code pathtrees rules "all worktrees may get/post (push/pull) from/to each other directly" (lines 109-112) and example 5 (line 189/194, post-2026-07-12 rewrite; the former example 6) fast-forwards the main tree's jab/dog from the ticket worktree. The pull half exists (GET-038 resolveLocalSource, get.js:141-165). The push half does not: post.js knows exactly three targets — Host slot = wire push, ssh/https only, scheme-less //X explicitly excluded (post.js:127-136, 301-376, BE-033); Query slot = branch FF (post.js:259-292); Path slot = narrow commit scope (post.js:150-155, 216-220). post ///jab gets its authority eaten by authorityRepo (loop.js:189-217), rescopes the run to the main tree's jab and degrades to a bare post there → POSTNONE; post ../../jab parses as an out-of-tree NARROW → NAVESCAPE/garbage.
if (u.host) wire-only gate; pushRemote post.js:301-376; BE-033 excludes scheme-less authorities from push.//X on arg0 is consumed as nav context by authorityRepo (loop.js:189-217) — correct per the verbs-resolve-args law, but it leaves post no way to say "target that tree".//other operand from the injected context is "a SEPARATE follow-up"; shared prerequisite with DIS-063./// from a ticket worktree currently names the LAUNCH tree, not the main tree, in the flat layout (rootTop discover.js:279-287, BE-045 fallback) — that mapping rides BRO-024:52, do not fix here.post ///jab/dog works from the ticket wt (trees example 5); the fs-path spelling (jab post ../../jab, the deleted example 6) is optional sugar, not spec.