Repository navigation
fix(server): command keys match what a shell command runs, not what it mentions - #243
Conversation
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
|
What: Independent review FAIL at ab97c49. VERDICT: FAIL Blocking findings:
Proof:
These findings do not request command-position-only matching or removal of the accepted bare argument key. Reviewed the complete diff, linked Issue and prior PR/Issue review comments, and affected selection, harness, state and transport consumers. All eight heads matched the brief. Tests used exact-head git archives in temporary directories and existing dependencies. Baseline runs held the head tests constant and restored changed production files from the stated merge base. Chromeria command: vp test run --config review.config.ts, with include=['src/contextmd/*.test.ts'], node environment and serial files. Passing state/route tests retain the cap of 3, failed/pending reads, session/epoch isolation, dropped/concurrent deliveries, fail-open guards and after-action suppression, including Grok carries. No checkout, reset, pull or source edits in any checkout. No private data or credentials found in the diff. Proof is synthetic hook/production-code execution, not a fresh live model session or deployment. Reviewer: Codex gpt-6.1-sol, independent review, requested high effort. |
|
What: FAIL at Head matches the brief. Base is Confirmed separately: Blocking:
Not blocking:
No credentials or database contents in the diff. |
…ords and escapes
An unquoted-marker heredoc expands $(...) and backticks, so they run; a quoted
word in command position ('gh' pr create) is the command; an escaped \$( or
backtick is literal. visibleCommand is private again (Knip). From Sol's review
of #243, each checked against /bin/bash.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Author response to Sol's review of |
…ords and escapes
An unquoted-marker heredoc expands $(...) and backticks, so they run; a quoted
word in command position ('gh' pr create) is the command; an escaped \$( or
backtick is literal. visibleCommand is private again (Knip). From Sol's review
of #243, each checked against /bin/bash.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7463b9d to
561b0d8
Compare
Python parity with toolboxmd/chromeria#243: quoted strings and heredoc bodies no longer match command keys; sh -c strings, unescaped substitutions in double quotes or expanding heredocs, and quoted command words still do. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Rebased onto main ( |
…ords and escapes
An unquoted-marker heredoc expands $(...) and backticks, so they run; a quoted
word in command position ('gh' pr create) is the command; an escaped \$( or
backtick is literal. visibleCommand is private again (Knip). From Sol's review
of #243, each checked against /bin/bash.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
561b0d8 to
cd7768b
Compare
Python parity with toolboxmd/chromeria#243: quoted strings and heredoc bodies no longer match command keys; sh -c strings, unescaped substitutions in double quotes or expanding heredocs, and quoted command words still do. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Re-checked every review comment against |
Python parity with toolboxmd/chromeria#243: quoted strings and heredoc bodies no longer match command keys; sh -c strings, unescaped substitutions in double quotes or expanding heredocs, and quoted command words still do. A command after an empty heredoc still matches. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
What: Independent review FAIL at Blocking findings
These are verified execution differences, not a request to restore command-position-only matching or remove the accepted bare argument key. The same defects exist in both pinned matchers: parity alone does not establish shell correctness. I checked every example with Proof and limits
No private data or credentials found in the complete diff. Supplied positive/negative regression tests are meaningful, but do not cover these boundaries. The change otherwise uses the surrounding module's style. All writes and test processes stayed under Reviewer: independent Sol, medium effort. |
|
What: PASS at Base This is the revised rule on #232 (quoted text and heredoc bodies), not the earlier command-position-only proposal. Unquoted Proof, temp worktree:
Non-blocking limit, same in contextmd: bash runs No private data in the diff. Not a live model session. No checkout in |
|
What: Sol's round-4 findings are repaired on both pushed round-5 heads under the refined quoted-token rule. Chromeria head:
Five new groups fail on both reviewed starting heads, along with the changed quoted-path assertion: six TypeScript tests and 28 Python assertions. Both old production extractors make 27 wrong decisions across the new fixture lists. Every new fixture passes after the fix. The accepted single-token rule deliberately restores the quoted SQLite path match, and the 1672/26379 prose bodies remain excluded. Requirements and who asked: planner's refined rule, Sol's three findings and twin proof/delivery brief. BehaviorCommand keys keep unquoted words and any quoted word whose dequoted value contains no whitespace, in every position. Single, double, ANSI-C and partly quoted tokens count, including file arguments. Quoted text containing whitespace and literal heredoc bodies are excluded. Executed The shell-word scanner records whether a word contains quoting. Retention no longer depends on executable position, so quoted words survive assignments, wrappers, numbered redirects and control syntax. The remaining position state only identifies a shell script: redirects including Prior repairs remain covered: nested substitution boundaries, even/odd escape parity, exact heredoc terminators, tab stripping only for Bake fixtures (ContextMD #39)
The old quoted-path exclusion assertion is deliberately changed: a single quoted path is a real file argument. Both query-bearing URI forms still miss the bare command key because the basename includes Proof
Heavy checks ran sequentially. Contract servers used temporary bases and their captured process groups; no server used live userdata. Tested staged and committed implementation trees are identical. Scripts/logs remain outside the worktrees at Current heads and deliveryChromeria: ContextMD: Both task branches were pushed through new commits, with no history rewrite. Both exclusive worktrees are clean and retained for the planner's review. Current state is recorded in the #232 handoff. No review was requested, no commit status was set, and neither PR was merged. Remaining limitsThis is a bounded scanner. Escaped/partly quoted heredoc delimiters ( The 380-file recovery gap and native Zsh gap above are proof limits. Full server Knip retains #270. Proof covers the matcher and isolated contracts; fresh independent review and merge remain with the planner. Website/SEO impact is none; the original upstream-first search found no ContextMD matcher or related fix in pingdotgg/t3code. Elon record
Work by Codex gpt-6.1-sol with max reasoning effort in T3 Code's Codex harness. Full 484-command production parity outputColumns: command, command words, raw path shapes, gh-key hit, database-key hit. Both matchers agree on every row. ["! 'gh' pr create",["!","gh","pr","create"],[],true,false]
["! printf '%s' 'gh pr create'",["!","printf","%s"],[],false,false]
["\"gh\" pr create --fill",["gh","pr","create","--fill"],[],true,false]
["'gh' pr create",["gh","pr","create"],[],true,false]
["/bin/bash -c \"cd x && gh pr create\"",["/bin/bash","-c","cd","x","gh","pr","create"],["/bin/bash"],true,false]
["/bin/cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md 2>/dev/null",["/bin/cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","2","/dev/null"],["/bin/cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","/dev/null"],false,false]
["/bin/cat /tmp/232-parity-r5/repo/RULE.md 2>/dev/null",["/bin/cat","/tmp/232-parity-r5/repo/RULE.md","2","/dev/null"],["/bin/cat","/tmp/232-parity-r5/repo/RULE.md","/dev/null"],false,false]
["/bin/cat /tmp/232-parity.lMKzlv/repo/RULE.md 2>/dev/null",["/bin/cat","/tmp/232-parity.lMKzlv/repo/RULE.md","2","/dev/null"],["/bin/cat","/tmp/232-parity.lMKzlv/repo/RULE.md","/dev/null"],false,false]
["/bin/sh /old/bin/contextmd-hook codex /tmp/232-parity-r5/base",["/bin/sh","/old/bin/contextmd-hook","codex","/tmp/232-parity-r5/base"],["/bin/sh","/old/bin/contextmd-hook","/tmp/232-parity-r5/base"],false,false]
["/opt/bin/git push",["/opt/bin/git","push"],["/opt/bin/git"],false,false]
["/usr/local/bin/audit-hook --label contextmd-hook",["/usr/local/bin/audit-hook","--label","contextmd-hook"],["/usr/local/bin/audit-hook"],false,false]
["/usr/local/bin/foreign",["/usr/local/bin/foreign"],["/usr/local/bin/foreign"],false,false]
["/usr/local/bin/foreign-/tmp/232-parity-r3.Jt3dHh/repo/n.md",["/usr/local/bin/foreign-/tmp/232-parity-r3.Jt3dHh/repo/n.md"],["/usr/local/bin/foreign-/tmp/232-parity-r3.Jt3dHh/repo/n.md"],false,false]
["/usr/local/bin/foreign-/tmp/232-parity.lMKzlv/repo/n.md",["/usr/local/bin/foreign-/tmp/232-parity.lMKzlv/repo/n.md"],["/usr/local/bin/foreign-/tmp/232-parity.lMKzlv/repo/n.md"],false,false]
["/usr/local/bin/foreign-1",["/usr/local/bin/foreign-1"],["/usr/local/bin/foreign-1"],false,false]
["/usr/local/bin/other-hook",["/usr/local/bin/other-hook"],["/usr/local/bin/other-hook"],false,false]
["2>&1 bash -ce 'gh pr create'",["2","1","bash","-ce","gh","pr","create"],[],true,false]
["2>&1 env 'gh' pr create",["2","1","env","gh","pr","create"],[],true,false]
["2>&1 env printf '%s' 'gh pr create'",["2","1","env","printf","%s"],[],false,false]
["2>/dev/null 'gh' pr create",["2","/dev/null","gh","pr","create"],["/dev/null"],true,false]
["2>/dev/null bash -c 'echo \"gh pr create\"'",["2","/dev/null","bash","-c","echo"],["/dev/null"],false,false]
["2>/dev/null bash -c 'gh pr create'",["2","/dev/null","bash","-c","gh","pr","create"],["/dev/null"],true,false]
["2>/dev/null printf '%s' 'gh pr create'",["2","/dev/null","printf","%s"],["/dev/null"],false,false]
["2>>/dev/null g'h' pr create",["2","/dev/null","gh","pr","create"],["/dev/null"],true,false]
["3<<'EOF' bash -c 'gh pr create'\nliteral gh pr create\nEOF",["bash","-c","gh","pr","create"],[],true,false]
["3<<'EOF' cat\nliteral gh pr create\nEOF",["cat"],[],false,false]
[">/dev/null 'gh' pr create",["/dev/null","gh","pr","create"],["/dev/null"],true,false]
["DB=/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite; sqlite3 -readonly \"$DB\" .tables",["DB=/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite","sqlite3","-readonly","DB",".tables"],["/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],false,true]
["DB=/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite; sqlite3 -readonly \"$DB\" .tables",["DB=/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite","sqlite3","-readonly","DB",".tables"],["/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],false,true]
["DB=/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite; sqlite3 -readonly \"$DB\" .tables",["DB=/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite","sqlite3","-readonly","DB",".tables"],["/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],false,true]
["DB=~/.t3/userdata/chromeria-v2.sqlite; sqlite3 \"$DB\"",["DB=~/.t3/userdata/chromeria-v2.sqlite","sqlite3","DB"],["~/.t3/userdata/chromeria-v2.sqlite"],false,true]
["FLAG='one two' OTHER=2 \"gh\" pr create",["OTHER=2","gh","pr","create"],[],true,false]
["FLAG=1 'gh' pr create",["FLAG=1","gh","pr","create"],[],true,false]
["FLAG=1 g'h' pr create",["FLAG=1","gh","pr","create"],[],true,false]
["FLAG=1 printf '%s' 'gh pr create'",["FLAG=1","printf","%s"],[],false,false]
["awk 'NR<10' /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["awk","NR","10","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["awk 'NR<10' /tmp/232-parity-r5/repo/RULE.md",["awk","NR","10","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["awk 'NR<10' /tmp/232-parity.lMKzlv/repo/RULE.md",["awk","NR","10","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["bash",["bash"],[],false,false]
["bash -- -c 'gh pr create'",["bash","--","-c","gh","pr","create"],[],true,false]
["bash --noprofile -o pipefail -ce '\"g\"h pr create'",["bash","--noprofile","-o","pipefail","-ce","gh","pr","create"],[],true,false]
["bash --posix -c 'gh pr create'",["bash","--posix","-c","gh","pr","create"],[],true,false]
["bash -c \"'gh' pr create\"",["bash","-c","gh","pr","create"],[],true,false]
["bash -c \"\\\"g\\\"h pr create\"",["bash","-c","gh","pr","create"],[],true,false]
["bash -c \"\\\"g\\\"h\"' pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c \"echo \\\"$(gh pr create)\\\"\"",["bash","-c","echo","gh","pr","create","gh","pr","create"],[],true,false]
["bash -c \"echo \\\"gh pr create\\\"\"",["bash","-c","echo"],[],false,false]
["bash -c \"echo \\\"gh pr create\\\"\"suffix",["bash","-c","echo"],[],false,false]
["bash -c \"echo \\$(gh pr create)\"",["bash","-c","echo","gh","pr","create"],[],true,false]
["bash -c \"echo \\`gh pr create\\`\"",["bash","-c","echo","gh","pr","create"],[],true,false]
["bash -c \"g\"'h pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c \"gh pr create --title \\\"hello\\\"\"",["bash","-c","gh","pr","create","--title","hello"],[],true,false]
["bash -c \"gh pr create\"",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'\\147h pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'\\u0067h pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'\\x27gh\\x27 pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'\\x67h pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'echo \"$(printf \\'%s\\' \\'gh pr create\\')\"'",["bash","-c","echo","printf","%s"],[],false,false]
["bash -c $'echo \\\"gh pr create\\\"'",["bash","-c","echo"],[],false,false]
["bash -c $'echo \\047gh pr create\\047'",["bash","-c","echo"],[],false,false]
["bash -c $'echo \\0; gh pr create'",["bash","-c","echo"],[],false,false]
["bash -c $'echo \\x22gh pr create\\x22'",["bash","-c","echo"],[],false,false]
["bash -c $'echo done' _ -c $'gh pr create'",["bash","-c","echo","done","_","-c"],[],false,false]
["bash -c $'g'\"h pr create\"",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'gh pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'gh pr create\\0; echo mention'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'gh\\x20pr\\tcreate'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'printf \\'%s\\' \\'gh pr create\\''",["bash","-c","printf","%s"],[],false,false]
["bash -c 'echo \"$@\"' _ -c 'gh pr create'",["bash","-c","echo","@","_","-c"],[],false,false]
["bash -c 'echo \"gh pr create\"'",["bash","-c","echo"],[],false,false]
["bash -c 'echo '\"\\\"gh pr create\\\"\"",["bash","-c","echo"],[],false,false]
["bash -c 'echo \\$(gh pr create)'",["bash","-c","echo","gh","pr","create"],[],true,false]
["bash -c 'echo done' -- -c 'gh pr create'",["bash","-c","echo","done","--","-c"],[],false,false]
["bash -c 'echo done' -c 'gh pr create'",["bash","-c","echo","done","-c"],[],false,false]
["bash -c 'echo done' _ -c \"$(gh pr create)\"",["bash","-c","echo","done","_","-c","gh","pr","create"],[],true,false]
["bash -c 'gh pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c 'gh pr create' _ -c 'echo \"gh pr create\"'",["bash","-c","gh","pr","create","_","-c"],[],true,false]
["bash -c'gh pr create'",["bash"],[],false,false]
["bash -cE 'gh pr create'",["bash","-cE","gh","pr","create"],[],true,false]
["bash -ce 'echo \"gh pr create\"'",["bash","-ce","echo"],[],false,false]
["bash -ce 'echo done' _ -ce 'gh pr create'",["bash","-ce","echo","done","_","-ce"],[],false,false]
["bash -ce 'gh pr create'",["bash","-ce","gh","pr","create"],[],true,false]
["bash -cl 'gh pr create'",["bash","-cl","gh","pr","create"],[],true,false]
["bash -ec 'gh pr create'",["bash","-ec","gh","pr","create"],[],true,false]
["bash -lc 'gh pr create'",["bash","-lc","gh","pr","create"],[],true,false]
["bash -o pipefail -c 'echo \"gh pr create\"'",["bash","-o","pipefail","-c","echo"],[],false,false]
["bash -o pipefail -c 'gh pr create'",["bash","-o","pipefail","-c","gh","pr","create"],[],true,false]
["bash -o pipefail -ce 'echo \"gh pr create\"'",["bash","-o","pipefail","-ce","echo"],[],false,false]
["bat --plain /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["bat","--plain","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["bat --plain /tmp/232-parity-r5/repo/RULE.md",["bat","--plain","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["bat --plain /tmp/232-parity.lMKzlv/repo/RULE.md",["bat","--plain","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["bat -r 1:5 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["bat","-r","1:5","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["bat -r 1:5 /tmp/232-parity-r5/repo/RULE.md",["bat","-r","1:5","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["bat -r 1:5 /tmp/232-parity.lMKzlv/repo/RULE.md",["bat","-r","1:5","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["bat -r1:5 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["bat","-r1:5","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["bat -r1:5 /tmp/232-parity-r5/repo/RULE.md",["bat","-r1:5","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["bat -r1:5 /tmp/232-parity.lMKzlv/repo/RULE.md",["bat","-r1:5","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["bat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["bat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["bat /tmp/232-parity-r5/repo/RULE.md",["bat","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["bat /tmp/232-parity.lMKzlv/repo/RULE.md",["bat","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["batcat --line-range 1:5 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["batcat","--line-range","1:5","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["batcat --line-range 1:5 /tmp/232-parity-r5/repo/RULE.md",["batcat","--line-range","1:5","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["batcat --line-range 1:5 /tmp/232-parity.lMKzlv/repo/RULE.md",["batcat","--line-range","1:5","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["batcat -pr1:5 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["batcat","-pr1:5","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["batcat -pr1:5 /tmp/232-parity-r5/repo/RULE.md",["batcat","-pr1:5","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["batcat -pr1:5 /tmp/232-parity.lMKzlv/repo/RULE.md",["batcat","-pr1:5","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat \"/tmp/232-parity-r3.Jt3dHh/repo/RULE.md\"-n",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md-n"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat \"/tmp/232-parity-r5/repo/RULE.md\"-n",["cat","/tmp/232-parity-r5/repo/RULE.md-n"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat \"/tmp/232-parity.lMKzlv/repo/RULE.md\"-n",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md-n"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat '/tmp/232-parity-r3.Jt3dHh/repo/RULE.md'",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat '/tmp/232-parity-r5/repo/RULE.md'",["cat","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat '/tmp/232-parity.lMKzlv/repo/RULE.md'",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat -n /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["cat","-n","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat -n /tmp/232-parity-r5/repo/RULE.md",["cat","-n","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat -n /tmp/232-parity.lMKzlv/repo/RULE.md",["cat","-n","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /dev/null 2< /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/dev/null","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat /dev/null 2< /tmp/232-parity-r5/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity-r5/repo/RULE.md"],["/dev/null","/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat /dev/null 2< /tmp/232-parity.lMKzlv/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/dev/null","/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /dev/null 2> /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/dev/null","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat /dev/null 2> /tmp/232-parity-r5/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity-r5/repo/RULE.md"],["/dev/null","/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat /dev/null 2> /tmp/232-parity.lMKzlv/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/dev/null","/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md &",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md > /dev/null",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","/dev/null"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","/dev/null"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md >&2",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","2"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md missing.md",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","missing.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","missing.md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md | head -n 5",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","head","-n","5"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/a[.]md",["cat","/tmp/232-parity-r3.Jt3dHh/repo/a[.]md"],["/tmp/232-parity-r3.Jt3dHh/repo/a[.]md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/x/../a.md",["cat","/tmp/232-parity-r3.Jt3dHh/repo/x/../a.md"],["/tmp/232-parity-r3.Jt3dHh/repo/x/../a.md"],false,false]
["cat /tmp/232-parity-r5/repo/PUSH.md",["cat","/tmp/232-parity-r5/repo/PUSH.md"],["/tmp/232-parity-r5/repo/PUSH.md"],false,false]
["cat /tmp/232-parity-r5/repo/RULE.md",["cat","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r5/repo/RULE.md &",["cat","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r5/repo/RULE.md > /dev/null",["cat","/tmp/232-parity-r5/repo/RULE.md","/dev/null"],["/tmp/232-parity-r5/repo/RULE.md","/dev/null"],false,false]
["cat /tmp/232-parity-r5/repo/RULE.md >&2",["cat","/tmp/232-parity-r5/repo/RULE.md","2"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r5/repo/RULE.md missing.md",["cat","/tmp/232-parity-r5/repo/RULE.md","missing.md"],["/tmp/232-parity-r5/repo/RULE.md","missing.md"],false,false]
["cat /tmp/232-parity-r5/repo/RULE.md | head -n 5",["cat","/tmp/232-parity-r5/repo/RULE.md","head","-n","5"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r5/repo/a[.]md",["cat","/tmp/232-parity-r5/repo/a[.]md"],["/tmp/232-parity-r5/repo/a[.]md"],false,false]
["cat /tmp/232-parity-r5/repo/x/../a.md",["cat","/tmp/232-parity-r5/repo/x/../a.md"],["/tmp/232-parity-r5/repo/x/../a.md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/RULE.md",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/RULE.md &",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/RULE.md > /dev/null",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md","/dev/null"],["/tmp/232-parity.lMKzlv/repo/RULE.md","/dev/null"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/RULE.md >&2",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md","2"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/RULE.md missing.md",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md","missing.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md","missing.md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/RULE.md | head -n 5",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md","head","-n","5"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/a[.]md",["cat","/tmp/232-parity.lMKzlv/repo/a[.]md"],["/tmp/232-parity.lMKzlv/repo/a[.]md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/x/../a.md",["cat","/tmp/232-parity.lMKzlv/repo/x/../a.md"],["/tmp/232-parity.lMKzlv/repo/x/../a.md"],false,false]
["cat <<\"EOF\"\n$(gh pr create)\nEOF",["cat"],[],false,false]
["cat <<\"EÖF\"\n$(gh pr create)\nEÖF",["cat"],[],false,false]
["cat <<'A'\nA\ncat <<'B'\nB\ngh pr create",["cat","cat","gh","pr","create"],[],true,false]
["cat <<'A'\nA\ncat <<'B'\ngh pr create\nB",["cat","cat"],[],false,false]
["cat <<'E\"OF\"'\ngh pr create\nE\"OF\"",["cat","E","OF","gh","pr","create","EOF"],[],true,false]
["cat <<'E;OF'\ngh pr create\nE;OF",["cat","E","OF","gh","pr","create","E","OF"],[],true,false]
["cat <<'END-MARK'\nEND-MARK\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<'END-MARK'\ngh pr create\nEND-MARK",["cat"],[],false,false]
["cat <<'END.MARK'\nENDXMARK\ngh pr create\nEND.MARK",["cat"],["END.MARK"],false,false]
["cat <<'EOF'\n\tEOF\ngh pr create\nEOF",["cat"],[],false,false]
["cat <<'EOF'\n EOF\ngh pr create\nEOF",["cat"],[],false,false]
["cat <<'EOF'\n$(gh pr create --title \"hello\" $(printf x))\nEOF",["cat"],[],false,false]
["cat <<'EOF'\n$(gh pr create)\nEOF",["cat"],[],false,false]
["cat <<'EOF'\nEOF\t\ngh pr create\nEOF",["cat"],[],false,false]
["cat <<'EOF'\nEOF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<'EOF'\nEOF \ngh pr create\nEOF",["cat"],[],false,false]
["cat <<'EOF'\nEOFX\ngh pr create\nEOF",["cat"],[],false,false]
["cat <<'EOF'\ngh pr create\nEOF",["cat"],[],false,false]
["cat <<'EOF'\nthen run gh pr create\nEOF",["cat"],[],false,false]
["cat <<'EÖF'\nEÖF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<'EÖF'\ngh pr create\nEÖF",["cat"],[],false,false]
["cat <<'\\EOF'\ngh pr create\n\\EOF",["cat","EOF","gh","pr","create","EOF"],[],true,false]
["cat <<'ÉOF'\ngh pr create\nÉOF",["cat"],[],false,false]
["cat <<'ÉOF'\nÉOF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<'𝔈OF'\ngh pr create\n𝔈OF",["cat"],[],false,false]
["cat <<'𝔈OF'\n𝔈OF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<-'EOF'\n\tEOF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<-'EOF'\n\tEOF \ngh pr create\nEOF",["cat"],[],false,false]
["cat <<-'EOF'\n EOF\ngh pr create\nEOF",["cat"],[],false,false]
["cat <<-EOF\n\tEOF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<< /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat <<< /tmp/232-parity-r5/repo/RULE.md",["cat","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat <<< /tmp/232-parity.lMKzlv/repo/RULE.md",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat <<<\"gh pr create\"",["cat"],[],false,false]
["cat <<<EOF\ngh pr create",["cat","EOF","gh","pr","create"],[],true,false]
["cat <<A <<'B'\nA\nB\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<A <<'B'\nx\nA\nB\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<A <<B\nA\nB\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<E'OF'\n$(gh pr create)\nEOF",["cat","EOF","gh","pr","create","EOF"],[],true,false]
["cat <<E'OF'\ngh pr create\nEOF",["cat","EOF","gh","pr","create","EOF"],[],true,false]
["cat <<EO'F'\ngh pr create\nEOF",["cat","EOF","gh","pr","create","EOF"],[],true,false]
["cat <<EOF\n$((1 + $(gh pr create)0))\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n$(gh pr create $(printf %s x))\nEOF",["cat","gh","pr","create","printf","%s","x"],[],true,false]
["cat <<EOF\n$(gh pr create ${v:-\")\"})\nEOF",["cat","gh","pr","create","v:-"],[],true,false]
["cat <<EOF\n$(gh pr create --title \"a (b)\")\nEOF",["cat","gh","pr","create","--title"],[],true,false]
["cat <<EOF\n$(gh pr create --title \"hello\" $(printf x))\nEOF",["cat","gh","pr","create","--title","hello","printf","x"],[],true,false]
["cat <<EOF\n$(gh pr create)\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n$(printf %s \"$(gh pr create)\")\nEOF",["cat","printf","%s","gh","pr","create"],[],true,false]
["cat <<EOF\n$(printf %s \"gh pr create\")\nEOF",["cat","printf","%s"],[],false,false]
["cat <<EOF\n${v:-$(gh pr create)}\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\nEOF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\$(gh pr create)\nEOF",["cat"],[],false,false]
["cat <<EOF\n\\\\$(gh pr create)\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\\\\\$(gh pr create)\nEOF",["cat"],[],false,false]
["cat <<EOF\n\\\\\\\\$(gh pr create)\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\\\\\\\\\$(gh pr create)\nEOF",["cat"],[],false,false]
["cat <<EOF\n\\\\\\\\\\\\$(gh pr create)\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\\\\\\\\\\\`gh pr create`\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\\\\\\\\\`gh pr create`\nEOF",["cat"],[],false,false]
["cat <<EOF\n\\\\\\\\`gh pr create`\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\\\\\`gh pr create`\nEOF",["cat"],[],false,false]
["cat <<EOF\n\\\\`gh pr create`\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\`gh pr create\\`\nEOF",["cat"],[],false,false]
["cat <<EOF\n\\`gh pr create`\nEOF",["cat"],[],false,false]
["cat <<EOF\n`gh pr create`\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\nrun gh pr create later\nEOF",["cat"],[],false,false]
["cat <<EÖF\n$(gh pr create)\nEÖF",["cat","gh","pr","create"],[],true,false]
["cat <<EÖF\ngh pr create\nEÖF",["cat"],[],false,false]
["cat <<\\EOF\ngh pr create\nEOF",["cat","EOF","gh","pr","create","EOF"],[],true,false]
["cat <<ÉOF\n$(gh pr create)\nÉOF",["cat","gh","pr","create"],[],true,false]
["cat <<ÉOF\ngh pr create\nÉOF",["cat"],[],false,false]
["cat <<𝔈OF\n$(gh pr create)\n𝔈OF",["cat","gh","pr","create"],[],true,false]
["cat <<𝔈OF\ngh pr create\n𝔈OF",["cat"],[],false,false]
["cat > notes.md <<'EOF'\nhello\nEOF\ngh pr create",["cat","notes.md","gh","pr","create"],["notes.md"],true,false]
["cat RULE.md",["cat","RULE.md"],["RULE.md"],false,false]
["cat missing.md",["cat","missing.md"],["missing.md"],false,false]
["cat: Permission denied",["cat:","Permission","denied"],[],false,false]
["cd - && cat a.md",["cd","-","cat","a.md"],["a.md"],false,false]
["cd /tmp/232-parity-r3.Jt3dHh/repo && cat a.md",["cd","/tmp/232-parity-r3.Jt3dHh/repo","cat","a.md"],["/tmp/232-parity-r3.Jt3dHh/repo","a.md"],false,false]
["cd /tmp/232-parity-r3.Jt3dHh/repo/sub && cat a.md",["cd","/tmp/232-parity-r3.Jt3dHh/repo/sub","cat","a.md"],["/tmp/232-parity-r3.Jt3dHh/repo/sub","a.md"],false,false]
["cd /tmp/232-parity-r5/repo && cat a.md",["cd","/tmp/232-parity-r5/repo","cat","a.md"],["/tmp/232-parity-r5/repo","a.md"],false,false]
["cd /tmp/232-parity-r5/repo/sub && cat a.md",["cd","/tmp/232-parity-r5/repo/sub","cat","a.md"],["/tmp/232-parity-r5/repo/sub","a.md"],false,false]
["cd /tmp/232-parity.lMKzlv/repo && cat a.md",["cd","/tmp/232-parity.lMKzlv/repo","cat","a.md"],["/tmp/232-parity.lMKzlv/repo","a.md"],false,false]
["cd /tmp/232-parity.lMKzlv/repo/sub && cat a.md",["cd","/tmp/232-parity.lMKzlv/repo/sub","cat","a.md"],["/tmp/232-parity.lMKzlv/repo/sub","a.md"],false,false]
["cd x && env A=1 /usr/local/bin/gh pr create --fill",["cd","x","env","A=1","/usr/local/bin/gh","pr","create","--fill"],["/usr/local/bin/gh"],true,false]
["cd x && gh pr create --fill",["cd","x","gh","pr","create","--fill"],[],true,false]
["chromeria-v2.sqlite",["chromeria-v2.sqlite"],["chromeria-v2.sqlite"],false,true]
["command -- 'gh' pr create",["command","--","gh","pr","create"],[],true,false]
["command printf '%s' 'gh pr create'",["command","printf","%s"],[],false,false]
["curl -s https://example.com/chromeria-v2.sqlite.gz",["curl","-s","https://example.com/chromeria-v2.sqlite.gz"],[],false,false]
["curl https://example.com/chromeria-v2.sqlite.gz",["curl","https://example.com/chromeria-v2.sqlite.gz"],[],false,false]
["dash -c 'gh pr create'",["dash","-c","gh","pr","create"],[],true,false]
["echo \"$( # )\ngh pr create\n)\"",["echo","#"],[],false,false]
["echo \"$((1 + $(gh pr create)0))\"",["echo","gh","pr","create"],[],true,false]
["echo \"$((1 + (2))) gh pr create\"",["echo"],[],false,false]
["echo \"$(case x in x) gh pr create ;; esac)\"",["echo","case","x","in","x"],[],false,false]
["echo \"$(case x in x) gh pr create;; esac)\"",["echo","case","x","in","x"],[],false,false]
["echo \"$(cat <<'EOF'\n)\nEOF\ngh pr create\n)\"",["echo","cat"],[],false,false]
["echo \"$(cat <<'EOF'\n)\nEOF\ngh pr create)\"",["echo","cat"],[],false,false]
["echo \"$(gh pr create \"$(printf x)\")\"",["echo","gh","pr","create","printf","x"],[],true,false]
["echo \"$(gh pr create $((1 + (2))))\"",["echo","gh","pr","create","1","+","2"],[],true,false]
["echo \"$(gh pr create $(printf %s x))\"",["echo","gh","pr","create","printf","%s","x"],[],true,false]
["echo \"$(gh pr create $(printf x))\"",["echo","gh","pr","create","printf","x"],[],true,false]
["echo \"$(gh pr create ${v:-\")\"})\"",["echo","gh","pr","create","v:-"],[],true,false]
["echo \"$(gh pr create --title \"a (b)\")\"",["echo","gh","pr","create","--title"],[],true,false]
["echo \"$(gh pr create --title \"hello\")\"",["echo","gh","pr","create","--title","hello"],[],true,false]
["echo \"$(gh pr create)\"",["echo","gh","pr","create"],[],true,false]
["echo \"$(printf \"%s\" \"$(printf \"%s\" \"gh pr create\")\")\"",["echo","printf","%s","printf","%s"],[],false,false]
["echo \"$(printf \"%s\" \"${v:-gh pr create}\")\"",["echo","printf","%s"],[],false,false]
["echo \"$(printf \"%s\" \"gh pr create\")\"",["echo","printf","%s"],[],false,false]
["echo \"$(printf %s \"$(gh pr create)\")\"",["echo","printf","%s","gh","pr","create"],[],true,false]
["echo \"$(printf %s \"gh pr create\")\"",["echo","printf","%s"],[],false,false]
["echo \"$(printf x # )\ngh pr create)\"",["echo","printf","x","#"],[],false,false]
["echo \"$(true; cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md ; true)\" > /dev/null",["echo","true","cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","true","/dev/null"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","/dev/null"],false,false]
["echo \"$(true; cat /tmp/232-parity-r5/repo/RULE.md ; true)\" > /dev/null",["echo","true","cat","/tmp/232-parity-r5/repo/RULE.md","true","/dev/null"],["/tmp/232-parity-r5/repo/RULE.md","/dev/null"],false,false]
["echo \"$(true; cat /tmp/232-parity.lMKzlv/repo/RULE.md ; true)\" > /dev/null",["echo","true","cat","/tmp/232-parity.lMKzlv/repo/RULE.md","true","/dev/null"],["/tmp/232-parity.lMKzlv/repo/RULE.md","/dev/null"],false,false]
["echo \"${v:-$(gh pr create --title \"hello\")}\"",["echo","gh","pr","create","--title","hello"],[],true,false]
["echo \"${v:-$(gh pr create)}\"",["echo","gh","pr","create"],[],true,false]
["echo \"${v:-gh pr create}\"",["echo"],[],false,false]
["echo \"\\$(gh pr create)\"",["echo"],[],false,false]
["echo \"\\\\$(gh pr create)\"",["echo","gh","pr","create"],[],true,false]
["echo \"\\\\\\$(gh pr create)\"",["echo"],[],false,false]
["echo \"\\\\\\\\$(gh pr create)\"",["echo","gh","pr","create"],[],true,false]
["echo \"\\\\\\\\\\$(gh pr create)\"",["echo"],[],false,false]
["echo \"\\\\\\\\\\\\$(gh pr create)\"",["echo","gh","pr","create"],[],true,false]
["echo \"\\\\\\\\\\\\`gh pr create`\"",["echo","gh","pr","create"],[],true,false]
["echo \"\\\\\\\\\\`gh pr create`\"",["echo"],[],false,false]
["echo \"\\\\\\\\`gh pr create`\"",["echo","gh","pr","create"],[],true,false]
["echo \"\\\\\\`gh pr create`\"",["echo"],[],false,false]
["echo \"\\\\`gh pr create`\"",["echo","gh","pr","create"],[],true,false]
["echo \"\\`gh pr create\\`\"",["echo"],[],false,false]
["echo \"\\`gh pr create`\"",["echo"],[],false,false]
["echo \"`gh pr create --title \"hello\"`\"",["echo","gh","pr","create","--title","hello"],[],true,false]
["echo \"`gh pr create`\"",["echo","gh","pr","create"],[],true,false]
["echo \"`printf \"%s\" \"gh pr create\"`\"",["echo","printf","%s"],[],false,false]
["echo \"`printf \"%s\" \\`gh pr create\\``\"",["echo","printf","%s","gh","pr","create"],[],true,false]
["echo \"gh\" pr create",["echo","gh","pr","create"],[],true,false]
["echo \"live check: gh pr create\"",["echo"],[],false,false]
["echo \"open /Users/u/.t3/userdata/chromeria-v2.sqlite later\"",["echo"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,false]
["echo $'\\x67h' pr create",["echo","gh","pr","create"],[],true,false]
["echo $'gh pr create'",["echo"],[],false,false]
["echo $'the file chromeria-v2.sqlite'",["echo"],["chromeria-v2.sqlite"],false,false]
["echo $((1 + $(gh pr create)0))",["echo","1","+","gh","pr","create","0","gh","pr","create"],[],true,false]
["echo $(gh pr create $(printf %s x))",["echo","gh","pr","create","printf","%s","x"],[],true,false]
["echo $(gh pr create ${v:-\")\"})",["echo","gh","pr","create","v:-"],[],true,false]
["echo $(gh pr create --title \"a (b)\")",["echo","gh","pr","create","--title"],[],true,false]
["echo $(gh pr create --title \"hello\")",["echo","gh","pr","create","--title","hello"],[],true,false]
["echo $(printf %s \"$(gh pr create)\")",["echo","printf","%s","gh","pr","create"],[],true,false]
["echo $(printf %s \"gh pr create\")",["echo","printf","%s"],[],false,false]
["echo ${v:-$(gh pr create)}",["echo","v:-","gh","pr","create","gh","pr","create"],[],true,false]
["echo '$(gh pr create)'",["echo"],[],false,false]
["echo 'gh pr create'",["echo"],[],false,false]
["echo 'ignore; cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md ; ignore'",["echo"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["echo 'ignore; cat /tmp/232-parity-r5/repo/RULE.md ; ignore'",["echo"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["echo 'ignore; cat /tmp/232-parity.lMKzlv/repo/RULE.md ; ignore'",["echo"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["echo 'the file chromeria-v2.sqlite'",["echo"],["chromeria-v2.sqlite"],false,false]
["echo /tmp/232-parity-r3.Jt3dHh/repo/RULE.md && cat missing.md",["echo","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","cat","missing.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","missing.md"],false,false]
["echo /tmp/232-parity-r5/repo/RULE.md && cat missing.md",["echo","/tmp/232-parity-r5/repo/RULE.md","cat","missing.md"],["/tmp/232-parity-r5/repo/RULE.md","missing.md"],false,false]
["echo /tmp/232-parity.lMKzlv/repo/RULE.md && cat missing.md",["echo","/tmp/232-parity.lMKzlv/repo/RULE.md","cat","missing.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md","missing.md"],false,false]
["echo a",["echo","a"],[],false,false]
["echo after",["echo","after"],[],false,false]
["echo g\"h\" pr create",["echo","gh","pr","create"],[],true,false]
["echo g'h pr create'",["echo"],[],false,false]
["echo g'h' pr create",["echo","gh","pr","create"],[],true,false]
["echo gh pr",["echo","gh","pr"],[],false,false]
["echo hello",["echo","hello"],[],false,false]
["echo ok &&\ngh pr create",["echo","ok","gh","pr","create"],[],true,false]
["echo prefix' the file chromeria-v2.sqlite'",["echo"],["chromeria-v2.sqlite"],false,false]
["echo sh -c 'gh pr create'",["echo","sh","-c"],[],false,false]
["env 'gh' pr create",["env","gh","pr","create"],[],true,false]
["env -u UNUSED 'gh' pr create",["env","-u","UNUSED","gh","pr","create"],[],true,false]
["env -u UNUSED printf '%s' 'gh pr create'",["env","-u","UNUSED","printf","%s"],[],false,false]
["env FLAG=1 'gh' pr create",["env","FLAG=1","gh","pr","create"],[],true,false]
["env FLAG=1 bash -c \"\\\"g\\\"h pr create\"",["env","FLAG=1","bash","-c","gh","pr","create"],[],true,false]
["env FLAG=1 bash -o pipefail -ce 'gh pr create'",["env","FLAG=1","bash","-o","pipefail","-ce","gh","pr","create"],[],true,false]
["env FOO=1 gh pr create",["env","FOO=1","gh","pr","create"],[],true,false]
["env bash -c 'gh pr create'",["env","bash","-c","gh","pr","create"],[],true,false]
["env g'h' pr create",["env","gh","pr","create"],[],true,false]
["env printf '%s' 'gh pr create'",["env","printf","%s"],[],false,false]
["exec -a gh-alias 'gh' pr create",["exec","-a","gh-alias","gh","pr","create"],[],true,false]
["exec g'h' pr create",["exec","gh","pr","create"],[],true,false]
["exec printf '%s' 'gh pr create'",["exec","printf","%s"],[],false,false]
["false",["false"],[],false,false]
["false && cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md; true",["false","cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","true"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["false && cat /tmp/232-parity-r5/repo/RULE.md; true",["false","cat","/tmp/232-parity-r5/repo/RULE.md","true"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["false && cat /tmp/232-parity.lMKzlv/repo/RULE.md; true",["false","cat","/tmp/232-parity.lMKzlv/repo/RULE.md","true"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["for n in 1; do \"gh\" pr create; done",["for","n","in","1","do","gh","pr","create","done"],[],true,false]
["for n in 1; do printf '%s' 'gh pr create'; done",["for","n","in","1","do","printf","%s","done"],[],false,false]
["g'h' pr create",["gh","pr","create"],[],true,false]
["g\\h pr create",["gh","pr","create"],[],true,false]
["gh",["gh"],[],false,false]
["gh issue create",["gh","issue","create"],[],false,false]
["gh issue create --title \"Record the bake\" --body \"The entry names chromeria-v2.sqlite in a test fixture.\"",["gh","issue","create","--title","--body"],["chromeria-v2.sqlite"],false,false]
["gh issue create --title \"Record the bake\" --body-file - <<'EOF'\nThe entry names chromeria-v2.sqlite in a test fixture.\nEOF",["gh","issue","create","--title","--body-file","-"],["chromeria-v2.sqlite"],false,false]
["gh issue create --title t --body \"open it with gh pr create\"",["gh","issue","create","--title","t","--body"],[],false,false]
["gh issue create --title x --body-file -",["gh","issue","create","--title","x","--body-file","-"],[],false,false]
["gh issue view 5 --json body -q .body; gh pr create",["gh","issue","view","5","--json","body","-q",".body","gh","pr","create"],[],true,false]
["gh pr",["gh","pr"],[],false,false]
["gh pr create",["gh","pr","create"],[],true,false]
["gh pr create --body SECRET-BODY",["gh","pr","create","--body","SECRET-BODY"],[],true,false]
["gh pr create --fill",["gh","pr","create","--fill"],[],true,false]
["gh pr create --title \"x\" --body-file - <<'EOF'\nbody\nEOF",["gh","pr","create","--title","x","--body-file","-"],[],true,false]
["gh pr create | cat",["gh","pr","create","cat"],[],true,false]
["gh pr createx",["gh","pr","createx"],[],false,false]
["gh pr list",["gh","pr","list"],[],false,false]
["gh-calls.jsonl",["gh-calls.jsonl"],["gh-calls.jsonl"],false,false]
["gh.json",["gh.json"],["gh.json"],false,false]
["ghx pr create",["ghx","pr","create"],[],false,false]
["git",["git"],[],false,false]
["git commit",["git","commit"],[],false,false]
["git commit -m x",["git","commit","-m","x"],[],false,false]
["git push",["git","push"],[],false,false]
["git push; echo \"exit=$?\"",["git","push","echo","exit=","?"],[],false,false]
["git status",["git","status"],[],false,false]
["git status push",["git","status","push"],[],false,false]
["git@github.com: Permission denied (publickey).",["git@github.com:","Permission","denied","publickey","."],[],false,false]
["grep -n x /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["grep","-n","x","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["grep -n x /tmp/232-parity-r3.Jt3dHh/repo/RULE.md; cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["grep","-n","x","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["grep -n x /tmp/232-parity-r5/repo/RULE.md",["grep","-n","x","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["grep -n x /tmp/232-parity-r5/repo/RULE.md; cat /tmp/232-parity-r5/repo/RULE.md",["grep","-n","x","/tmp/232-parity-r5/repo/RULE.md","cat","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["grep -n x /tmp/232-parity.lMKzlv/repo/RULE.md",["grep","-n","x","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["grep -n x /tmp/232-parity.lMKzlv/repo/RULE.md; cat /tmp/232-parity.lMKzlv/repo/RULE.md",["grep","-n","x","/tmp/232-parity.lMKzlv/repo/RULE.md","cat","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["head -n 40 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["head","-n","40","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["head -n 40 /tmp/232-parity-r5/repo/RULE.md",["head","-n","40","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["head -n 40 /tmp/232-parity.lMKzlv/repo/RULE.md",["head","-n","40","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["if false; then :; else g'h' pr create; fi",["if","false","then",":","else","gh","pr","create","fi"],[],true,false]
["if true; then 'gh' pr create; fi",["if","true","then","gh","pr","create","fi"],[],true,false]
["if true; then printf '%s' 'gh pr create'; fi",["if","true","then","printf","%s","fi"],[],false,false]
["less +40 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["less","+40","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["less +40 /tmp/232-parity-r5/repo/RULE.md",["less","+40","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["less +40 /tmp/232-parity.lMKzlv/repo/RULE.md",["less","+40","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["less /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["less","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["less /tmp/232-parity-r5/repo/RULE.md",["less","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["less /tmp/232-parity.lMKzlv/repo/RULE.md",["less","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["ls",["ls"],[],false,false]
["ls /nope",["ls","/nope"],["/nope"],false,false]
["ls /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["ls","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["ls /tmp/232-parity-r5/repo/RULE.md",["ls","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["ls /tmp/232-parity.lMKzlv/repo/RULE.md",["ls","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["make",["make"],[],false,false]
["nl -ba /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["nl","-ba","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["nl -ba /tmp/232-parity-r5/repo/PUSH.md",["nl","-ba","/tmp/232-parity-r5/repo/PUSH.md"],["/tmp/232-parity-r5/repo/PUSH.md"],false,false]
["nl -ba /tmp/232-parity-r5/repo/RULE.md",["nl","-ba","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["nl -ba /tmp/232-parity.lMKzlv/repo/RULE.md",["nl","-ba","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["nohup 'gh' pr create",["nohup","gh","pr","create"],[],true,false]
["printf '%s ' 'gh pr create'",["printf"],[],false,false]
["printf '%s ' 'gh' 'pr' 'create'",["printf","gh","pr","create"],[],true,false]
["printf '%s' ';' gh pr create",["printf","%s","gh","pr","create"],[],true,false]
["printf '%s' '>'&gh pr create",["printf","%s","gh","pr","create"],[],true,false]
["printf '%s' \\>&gh pr create",["printf","%s","gh","pr","create"],[],true,false]
["printf '%s\\n' '<<EOF'\ngh pr create\nEOF",["printf","%s","n","EOF","gh","pr","create","EOF"],[],true,false]
["printf gh pr create",["printf","gh","pr","create"],[],true,false]
["printf x | gh pr create --fill",["printf","x","gh","pr","create","--fill"],[],true,false]
["python3 - <<'EOF'\nfrom pathlib import Path\np = Path('tests/test_serve.py')\np.write_text(p.read_text().replace('state.sqlite', 'chromeria-v2.sqlite'))\nEOF",["python3","-"],["tests/test_serve.py","state.sqlite","chromeria-v2.sqlite"],false,false]
["python3 - <<'PY'\nkeys = ['gh pr create']\nPY",["python3","-"],[],false,false]
["python3 -c \"import sqlite3; sqlite3.connect('file:///tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite?mode=ro', uri=True)\"",["python3","-c"],["sqlite3.connect","/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],false,false]
["python3 -c \"import sqlite3; sqlite3.connect('file:///tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite?mode=ro', uri=True)\"",["python3","-c"],["sqlite3.connect","/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],false,false]
["python3 -c \"import sqlite3; sqlite3.connect('file:///tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite?mode=ro', uri=True)\"",["python3","-c"],["sqlite3.connect","/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],false,false]
["python3 -c \"print('gh pr create')\"",["python3","-c"],[],false,false]
["rg gh pr create tests/",["rg","gh","pr","create","tests/"],["tests/"],true,false]
["rg x /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["rg","x","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["rg x /tmp/232-parity-r5/repo/RULE.md",["rg","x","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["rg x /tmp/232-parity.lMKzlv/repo/RULE.md",["rg","x","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["sed -n '1,200p' /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["sed","-n","1,200p","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["sed -n '1,200p' /tmp/232-parity-r5/repo/RULE.md",["sed","-n","1,200p","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["sed -n '1,200p' /tmp/232-parity.lMKzlv/repo/RULE.md",["sed","-n","1,200p","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["sh -c \"\\\"g\\\"h pr create\"",["sh","-c","gh","pr","create"],[],true,false]
["sh -c \"printf '%s' \\\"gh pr create\\\"\"",["sh","-c","printf","%s"],[],false,false]
["sh -c $'\\x67h pr create'",["sh","-c","gh","pr","create"],[],true,false]
["sh -c 'echo done' _ -c 'gh pr create'",["sh","-c","echo","done","_","-c"],[],false,false]
["sh -c 'gh pr create'",["sh","-c","gh","pr","create"],[],true,false]
["sh -c 'gh pr create' -c 'echo \"gh pr create\"'",["sh","-c","gh","pr","create","-c"],[],true,false]
["sqlite3 ",["sqlite3"],[],false,false]
["sqlite3 \"/Users/u/.t3/userdata/chromeria-v2.sqlite\" .tables",["sqlite3","/Users/u/.t3/userdata/chromeria-v2.sqlite",".tables"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 $'chromeria-v2.sqlite' .tables",["sqlite3","chromeria-v2.sqlite",".tables"],["chromeria-v2.sqlite"],false,true]
["sqlite3 'chromeria-v2.sqlite' .tables",["sqlite3","chromeria-v2.sqlite",".tables"],["chromeria-v2.sqlite"],false,true]
["sqlite3 'file:",["sqlite3","file:"],[],false,false]
["sqlite3 'file:/Users/u/.t3/userdata/chromeria-v2.sqlite?mode=ro'",["sqlite3","file:/Users/u/.t3/userdata/chromeria-v2.sqlite?mode=ro"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite?mode=ro' 'select 1'",["sqlite3","file:/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite?mode=ro"],["/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite?mode=ro' .tables",["sqlite3","file:/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite?mode=ro",".tables"],["/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite?mode=ro' 'select 1'",["sqlite3","file:/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite?mode=ro"],["/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite?mode=ro' .tables",["sqlite3","file:/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite?mode=ro",".tables"],["/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite?mode=ro' 'select 1'",["sqlite3","file:/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite?mode=ro"],["/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite?mode=ro' .tables",["sqlite3","file:/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite?mode=ro",".tables"],["/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/x/userdata/chromeria-v2.sqlite?mode=ro' .tables",["sqlite3","file:/x/userdata/chromeria-v2.sqlite?mode=ro",".tables"],["/x/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 -readonly /Users/u/.t3/userdata/chromeria-v2.sqlite .tables",["sqlite3","-readonly","/Users/u/.t3/userdata/chromeria-v2.sqlite",".tables"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 -readonly ~/.t3/userdata/chromeria-v2.sqlite .tables",["sqlite3","-readonly","~/.t3/userdata/chromeria-v2.sqlite",".tables"],["~/.t3/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /Users/u/.t3/userdata/chromeria-v2.sqlite",["sqlite3","/Users/u/.t3/userdata/chromeria-v2.sqlite"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /Users/u/.t3/userdata/chromeria-v2.sqlite 'select 1'",["sqlite3","/Users/u/.t3/userdata/chromeria-v2.sqlite"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite 'select 1'",["sqlite3","/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],["/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite .tables",["sqlite3","/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite",".tables"],["/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite 'select 1'",["sqlite3","/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],["/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite .tables",["sqlite3","/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite",".tables"],["/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite 'select 1'",["sqlite3","/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],["/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite .tables",["sqlite3","/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite",".tables"],["/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /x/userdata/chromeria-v2.sqlite .tables",["sqlite3","/x/userdata/chromeria-v2.sqlite",".tables"],["/x/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 chromeria-v2'.sqlite' .tables",["sqlite3","chromeria-v2.sqlite",".tables"],[],false,true]
["sqlite3 chromeria-v2.sqlite",["sqlite3","chromeria-v2.sqlite"],["chromeria-v2.sqlite"],false,true]
["sqlite3 chromeria-v2.sqlite .tables",["sqlite3","chromeria-v2.sqlite",".tables"],["chromeria-v2.sqlite"],false,true]
["sqlite3 file:/Users/u/.t3/userdata/chromeria-v2.sqlite?mode=ro",["sqlite3","file:/Users/u/.t3/userdata/chromeria-v2.sqlite?mode=ro"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 ~/.t3/userdata/chromeria-v2.sqlite",["sqlite3","~/.t3/userdata/chromeria-v2.sqlite"],["~/.t3/userdata/chromeria-v2.sqlite"],false,true]
["ssh host",["ssh","host"],[],false,false]
["step /tmp/232-parity-r3.Jt3dHh/repo/i.md",["step","/tmp/232-parity-r3.Jt3dHh/repo/i.md"],["/tmp/232-parity-r3.Jt3dHh/repo/i.md"],false,false]
["step /tmp/232-parity.lMKzlv/repo/i.md",["step","/tmp/232-parity.lMKzlv/repo/i.md"],["/tmp/232-parity.lMKzlv/repo/i.md"],false,false]
["step 0",["step","0"],[],false,false]
["step 1",["step","1"],[],false,false]
["step 2",["step","2"],[],false,false]
["step 3",["step","3"],[],false,false]
["step 4",["step","4"],[],false,false]
["step 5",["step","5"],[],false,false]
["step 6",["step","6"],[],false,false]
["step 7",["step","7"],[],false,false]
["sudo -n 'gh' pr create",["sudo","-n","gh","pr","create"],[],true,false]
["sudo -n printf '%s' 'gh pr create'",["sudo","-n","printf","%s"],[],false,false]
["sudo -u nobody g'h' pr create",["sudo","-u","nobody","gh","pr","create"],[],true,false]
["tail -n 20 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["tail","-n","20","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["tail -n 20 /tmp/232-parity-r5/repo/RULE.md",["tail","-n","20","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["tail -n 20 /tmp/232-parity.lMKzlv/repo/RULE.md",["tail","-n","20","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["time 'gh' pr create",["time","gh","pr","create"],[],true,false]
["time -p 'gh' pr create",["time","-p","gh","pr","create"],[],true,false]
["tool/tmp/232-parity-r3.Jt3dHh/repo/i.md",["tool/tmp/232-parity-r3.Jt3dHh/repo/i.md"],["tool/tmp/232-parity-r3.Jt3dHh/repo/i.md"],false,false]
["tool/tmp/232-parity.lMKzlv/repo/i.md",["tool/tmp/232-parity.lMKzlv/repo/i.md"],["tool/tmp/232-parity.lMKzlv/repo/i.md"],false,false]
["tool0",["tool0"],[],false,false]
["tool1",["tool1"],[],false,false]
["tool2",["tool2"],[],false,false]
["tool3",["tool3"],[],false,false]
["tool4",["tool4"],[],false,false]
["tool5",["tool5"],[],false,false]
["tool6",["tool6"],[],false,false]
["tool7",["tool7"],[],false,false]
["x=`gh pr create`",["x=","gh","pr","create"],[],true,false]
["zsh -lc \"\\\"g\\\"h pr create\"",["zsh","-lc","gh","pr","create"],[],true,false]
["zsh -lc \"echo \\\"gh pr create\\\"\"",["zsh","-lc","echo"],[],false,false]
["zsh -lc 'echo done' _ -c 'gh pr create'",["zsh","-lc","echo","done","_","-c"],[],false,false]
["zsh -lc 'gh pr create --fill'",["zsh","-lc","gh","pr","create","--fill"],[],true,false]
["{ 'gh' pr create; }",["gh","pr","create"],[],true,false]
["{ gh pr create; }",["gh","pr","create"],[],true,false]
["{ printf '%s' 'gh pr create'; }",["printf","%s"],[],false,false] |
|
What: Round 5 review stopped without a verdict on this head; a blocking regression was confirmed before it stopped. The Sol round-5 reviewer ( |
|
What: The final fix recognizes shell scripts in every word position in both matchers. Chromeria: Any eligible sh/bash/zsh/dash/ksh word starts shell option recognition; a c flag selects one dequoted script, then recognition ends. All eight reported cases match, including then/!/braces/do and xargs/find/timeout/ssh. Their prose negatives and all prior positional -c negatives pass. Command-position, assignments, wrappers and redirect-target state are deleted. Printed invocations now match by the accepted rule, including the former echo-sh negative. Header, docstring and README say so. All nine bake fixtures retain their expected results, including the quoted single-path match and excluded 1672/26379 prose. Before: two TS tests and 15 Python assertions fail; both old extractors make 15 wrong decisions. After: 130 TS tests; 21 focused Python and 156 full-suite tests, including 18 isolated contracts, pass. The full suite ran at implementation 5d0e4e6; final 3d0051a only links #284 in the feature map, with identical matcher/tests. 173 Bash controls, 25 policy fixtures and 559 parity inputs pass, zero word/path-shape/key-hit differences. Stubs prevent real gh/SSH; native zsh/ksh remain unverified. Lint/typecheck and Knip exports pass; full Knip retains #270. ContextMD stays 0.6.3 with release-check passing. No rebase/history rewrite, reviews requested, statuses posted or merges. All 15 verified shared limit examples are in #284, linked from both PRs' Known limits sections. Logs/scripts: /tmp/232-parity-r6. Requirements and who asked: planner's final fix/proof and follow-up Issue brief. Codex gpt-6.1-sol, max effort, T3 Code Codex harness. Full 559-command parity resultColumns: command, words, raw path shapes, gh hit, database hit. Both production matchers agree on every row. ["! 'gh' pr create",["!","gh","pr","create"],[],true,false]
["! bash -c 'echo \"gh pr create\"'",["!","bash","-c","echo"],[],false,false]
["! bash -c 'gh pr create'",["!","bash","-c","gh","pr","create"],[],true,false]
["! printf '%s' 'gh pr create'",["!","printf","%s"],[],false,false]
["\"gh\" pr create --fill",["gh","pr","create","--fill"],[],true,false]
["'gh' pr create",["gh","pr","create"],[],true,false]
["/bin/bash -c \"cd x && gh pr create\"",["/bin/bash","-c","cd","x","gh","pr","create"],["/bin/bash"],true,false]
["/bin/cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md 2>/dev/null",["/bin/cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","2","/dev/null"],["/bin/cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","/dev/null"],false,false]
["/bin/cat /tmp/232-parity-r5/repo/RULE.md 2>/dev/null",["/bin/cat","/tmp/232-parity-r5/repo/RULE.md","2","/dev/null"],["/bin/cat","/tmp/232-parity-r5/repo/RULE.md","/dev/null"],false,false]
["/bin/cat /tmp/232-parity-r6/repo/RULE.md 2>/dev/null",["/bin/cat","/tmp/232-parity-r6/repo/RULE.md","2","/dev/null"],["/bin/cat","/tmp/232-parity-r6/repo/RULE.md","/dev/null"],false,false]
["/bin/cat /tmp/232-parity.lMKzlv/repo/RULE.md 2>/dev/null",["/bin/cat","/tmp/232-parity.lMKzlv/repo/RULE.md","2","/dev/null"],["/bin/cat","/tmp/232-parity.lMKzlv/repo/RULE.md","/dev/null"],false,false]
["/bin/sh /old/bin/contextmd-hook codex /tmp/232-parity-r5/base",["/bin/sh","/old/bin/contextmd-hook","codex","/tmp/232-parity-r5/base"],["/bin/sh","/old/bin/contextmd-hook","/tmp/232-parity-r5/base"],false,false]
["/bin/sh /old/bin/contextmd-hook codex /tmp/232-parity-r6/base",["/bin/sh","/old/bin/contextmd-hook","codex","/tmp/232-parity-r6/base"],["/bin/sh","/old/bin/contextmd-hook","/tmp/232-parity-r6/base"],false,false]
["/opt/bin/git push",["/opt/bin/git","push"],["/opt/bin/git"],false,false]
["/usr/local/bin/audit-hook --label contextmd-hook",["/usr/local/bin/audit-hook","--label","contextmd-hook"],["/usr/local/bin/audit-hook"],false,false]
["/usr/local/bin/foreign",["/usr/local/bin/foreign"],["/usr/local/bin/foreign"],false,false]
["/usr/local/bin/foreign-/tmp/232-parity-r3.Jt3dHh/repo/n.md",["/usr/local/bin/foreign-/tmp/232-parity-r3.Jt3dHh/repo/n.md"],["/usr/local/bin/foreign-/tmp/232-parity-r3.Jt3dHh/repo/n.md"],false,false]
["/usr/local/bin/foreign-/tmp/232-parity.lMKzlv/repo/n.md",["/usr/local/bin/foreign-/tmp/232-parity.lMKzlv/repo/n.md"],["/usr/local/bin/foreign-/tmp/232-parity.lMKzlv/repo/n.md"],false,false]
["/usr/local/bin/foreign-1",["/usr/local/bin/foreign-1"],["/usr/local/bin/foreign-1"],false,false]
["/usr/local/bin/other-hook",["/usr/local/bin/other-hook"],["/usr/local/bin/other-hook"],false,false]
["2>&1 bash -ce 'gh pr create'",["2","1","bash","-ce","gh","pr","create"],[],true,false]
["2>&1 env 'gh' pr create",["2","1","env","gh","pr","create"],[],true,false]
["2>&1 env printf '%s' 'gh pr create'",["2","1","env","printf","%s"],[],false,false]
["2>/dev/null 'gh' pr create",["2","/dev/null","gh","pr","create"],["/dev/null"],true,false]
["2>/dev/null bash -c 'echo \"gh pr create\"'",["2","/dev/null","bash","-c","echo"],["/dev/null"],false,false]
["2>/dev/null bash -c 'gh pr create'",["2","/dev/null","bash","-c","gh","pr","create"],["/dev/null"],true,false]
["2>/dev/null printf '%s' 'gh pr create'",["2","/dev/null","printf","%s"],["/dev/null"],false,false]
["2>>/dev/null g'h' pr create",["2","/dev/null","gh","pr","create"],["/dev/null"],true,false]
["3<<'EOF' bash -c 'gh pr create'\nliteral gh pr create\nEOF",["bash","-c","gh","pr","create"],[],true,false]
["3<<'EOF' cat\nliteral gh pr create\nEOF",["cat"],[],false,false]
[">/dev/null 'gh' pr create",["/dev/null","gh","pr","create"],["/dev/null"],true,false]
["DB=/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite; sqlite3 -readonly \"$DB\" .tables",["DB=/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite","sqlite3","-readonly","DB",".tables"],["/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],false,true]
["DB=/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite; sqlite3 -readonly \"$DB\" .tables",["DB=/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite","sqlite3","-readonly","DB",".tables"],["/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],false,true]
["DB=/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite; sqlite3 -readonly \"$DB\" .tables",["DB=/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite","sqlite3","-readonly","DB",".tables"],["/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite"],false,true]
["DB=/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite; sqlite3 -readonly \"$DB\" .tables",["DB=/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite","sqlite3","-readonly","DB",".tables"],["/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],false,true]
["DB=~/.t3/userdata/chromeria-v2.sqlite; sqlite3 \"$DB\"",["DB=~/.t3/userdata/chromeria-v2.sqlite","sqlite3","DB"],["~/.t3/userdata/chromeria-v2.sqlite"],false,true]
["FLAG='one two' OTHER=2 \"gh\" pr create",["OTHER=2","gh","pr","create"],[],true,false]
["FLAG=1 'gh' pr create",["FLAG=1","gh","pr","create"],[],true,false]
["FLAG=1 g'h' pr create",["FLAG=1","gh","pr","create"],[],true,false]
["FLAG=1 printf '%s' 'gh pr create'",["FLAG=1","printf","%s"],[],false,false]
["awk 'NR<10' /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["awk","NR","10","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["awk 'NR<10' /tmp/232-parity-r5/repo/RULE.md",["awk","NR","10","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["awk 'NR<10' /tmp/232-parity-r6/repo/RULE.md",["awk","NR","10","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["awk 'NR<10' /tmp/232-parity.lMKzlv/repo/RULE.md",["awk","NR","10","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["bash",["bash"],[],false,false]
["bash -- -c 'gh pr create'",["bash","--","-c","gh","pr","create"],[],true,false]
["bash --noprofile -o pipefail -ce '\"g\"h pr create'",["bash","--noprofile","-o","pipefail","-ce","gh","pr","create"],[],true,false]
["bash --posix -c 'gh pr create'",["bash","--posix","-c","gh","pr","create"],[],true,false]
["bash -c \"'gh' pr create\"",["bash","-c","gh","pr","create"],[],true,false]
["bash -c \"\\\"g\\\"h pr create\"",["bash","-c","gh","pr","create"],[],true,false]
["bash -c \"\\\"g\\\"h\"' pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c \"echo \\\"$(gh pr create)\\\"\"",["bash","-c","echo","gh","pr","create","gh","pr","create"],[],true,false]
["bash -c \"echo \\\"gh pr create\\\"\"",["bash","-c","echo"],[],false,false]
["bash -c \"echo \\\"gh pr create\\\"\"suffix",["bash","-c","echo"],[],false,false]
["bash -c \"echo \\$(gh pr create)\"",["bash","-c","echo","gh","pr","create"],[],true,false]
["bash -c \"echo \\`gh pr create\\`\"",["bash","-c","echo","gh","pr","create"],[],true,false]
["bash -c \"g\"'h pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c \"gh pr create --title \\\"hello\\\"\"",["bash","-c","gh","pr","create","--title","hello"],[],true,false]
["bash -c \"gh pr create\"",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'\\147h pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'\\u0067h pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'\\x27gh\\x27 pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'\\x67h pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'echo \"$(printf \\'%s\\' \\'gh pr create\\')\"'",["bash","-c","echo","printf","%s"],[],false,false]
["bash -c $'echo \\\"gh pr create\\\"'",["bash","-c","echo"],[],false,false]
["bash -c $'echo \\047gh pr create\\047'",["bash","-c","echo"],[],false,false]
["bash -c $'echo \\0; gh pr create'",["bash","-c","echo"],[],false,false]
["bash -c $'echo \\x22gh pr create\\x22'",["bash","-c","echo"],[],false,false]
["bash -c $'echo done' _ -c $'gh pr create'",["bash","-c","echo","done","_","-c"],[],false,false]
["bash -c $'g'\"h pr create\"",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'gh pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'gh pr create\\0; echo mention'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'gh\\x20pr\\tcreate'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c $'printf \\'%s\\' \\'gh pr create\\''",["bash","-c","printf","%s"],[],false,false]
["bash -c 'echo \"$@\"' _ -c 'gh pr create'",["bash","-c","echo","@","_","-c"],[],false,false]
["bash -c 'echo \"gh pr create\"'",["bash","-c","echo"],[],false,false]
["bash -c 'echo '\"\\\"gh pr create\\\"\"",["bash","-c","echo"],[],false,false]
["bash -c 'echo \\$(gh pr create)'",["bash","-c","echo","gh","pr","create"],[],true,false]
["bash -c 'echo done' -- -c 'gh pr create'",["bash","-c","echo","done","--","-c"],[],false,false]
["bash -c 'echo done' -c 'gh pr create'",["bash","-c","echo","done","-c"],[],false,false]
["bash -c 'echo done' _ -c \"$(gh pr create)\"",["bash","-c","echo","done","_","-c","gh","pr","create"],[],true,false]
["bash -c 'gh pr create'",["bash","-c","gh","pr","create"],[],true,false]
["bash -c 'gh pr create' _ -c 'echo \"gh pr create\"'",["bash","-c","gh","pr","create","_","-c"],[],true,false]
["bash -c'gh pr create'",["bash"],[],false,false]
["bash -cE 'gh pr create'",["bash","-cE","gh","pr","create"],[],true,false]
["bash -ce 'echo \"gh pr create\"'",["bash","-ce","echo"],[],false,false]
["bash -ce 'echo done' _ -ce 'gh pr create'",["bash","-ce","echo","done","_","-ce"],[],false,false]
["bash -ce 'gh pr create'",["bash","-ce","gh","pr","create"],[],true,false]
["bash -cl 'gh pr create'",["bash","-cl","gh","pr","create"],[],true,false]
["bash -ec 'gh pr create'",["bash","-ec","gh","pr","create"],[],true,false]
["bash -lc 'gh pr create'",["bash","-lc","gh","pr","create"],[],true,false]
["bash -o pipefail -c 'echo \"gh pr create\"'",["bash","-o","pipefail","-c","echo"],[],false,false]
["bash -o pipefail -c 'gh pr create'",["bash","-o","pipefail","-c","gh","pr","create"],[],true,false]
["bash -o pipefail -ce 'echo \"gh pr create\"'",["bash","-o","pipefail","-ce","echo"],[],false,false]
["bash missing-script -c 'gh pr create'",["bash","missing-script","-c","gh","pr","create"],[],true,false]
["bat --plain /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["bat","--plain","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["bat --plain /tmp/232-parity-r5/repo/RULE.md",["bat","--plain","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["bat --plain /tmp/232-parity-r6/repo/RULE.md",["bat","--plain","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["bat --plain /tmp/232-parity.lMKzlv/repo/RULE.md",["bat","--plain","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["bat -r 1:5 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["bat","-r","1:5","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["bat -r 1:5 /tmp/232-parity-r5/repo/RULE.md",["bat","-r","1:5","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["bat -r 1:5 /tmp/232-parity-r6/repo/RULE.md",["bat","-r","1:5","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["bat -r 1:5 /tmp/232-parity.lMKzlv/repo/RULE.md",["bat","-r","1:5","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["bat -r1:5 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["bat","-r1:5","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["bat -r1:5 /tmp/232-parity-r5/repo/RULE.md",["bat","-r1:5","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["bat -r1:5 /tmp/232-parity-r6/repo/RULE.md",["bat","-r1:5","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["bat -r1:5 /tmp/232-parity.lMKzlv/repo/RULE.md",["bat","-r1:5","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["bat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["bat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["bat /tmp/232-parity-r5/repo/RULE.md",["bat","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["bat /tmp/232-parity-r6/repo/RULE.md",["bat","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["bat /tmp/232-parity.lMKzlv/repo/RULE.md",["bat","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["batcat --line-range 1:5 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["batcat","--line-range","1:5","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["batcat --line-range 1:5 /tmp/232-parity-r5/repo/RULE.md",["batcat","--line-range","1:5","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["batcat --line-range 1:5 /tmp/232-parity-r6/repo/RULE.md",["batcat","--line-range","1:5","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["batcat --line-range 1:5 /tmp/232-parity.lMKzlv/repo/RULE.md",["batcat","--line-range","1:5","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["batcat -pr1:5 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["batcat","-pr1:5","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["batcat -pr1:5 /tmp/232-parity-r5/repo/RULE.md",["batcat","-pr1:5","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["batcat -pr1:5 /tmp/232-parity-r6/repo/RULE.md",["batcat","-pr1:5","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["batcat -pr1:5 /tmp/232-parity.lMKzlv/repo/RULE.md",["batcat","-pr1:5","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat \"/tmp/232-parity-r3.Jt3dHh/repo/RULE.md\"-n",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md-n"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat \"/tmp/232-parity-r5/repo/RULE.md\"-n",["cat","/tmp/232-parity-r5/repo/RULE.md-n"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat \"/tmp/232-parity-r6/repo/RULE.md\"-n",["cat","/tmp/232-parity-r6/repo/RULE.md-n"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["cat \"/tmp/232-parity.lMKzlv/repo/RULE.md\"-n",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md-n"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat '/tmp/232-parity-r3.Jt3dHh/repo/RULE.md'",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat '/tmp/232-parity-r5/repo/RULE.md'",["cat","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat '/tmp/232-parity-r6/repo/RULE.md'",["cat","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["cat '/tmp/232-parity.lMKzlv/repo/RULE.md'",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat -n /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["cat","-n","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat -n /tmp/232-parity-r5/repo/RULE.md",["cat","-n","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat -n /tmp/232-parity-r6/repo/RULE.md",["cat","-n","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["cat -n /tmp/232-parity.lMKzlv/repo/RULE.md",["cat","-n","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /dev/null 2< /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/dev/null","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat /dev/null 2< /tmp/232-parity-r5/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity-r5/repo/RULE.md"],["/dev/null","/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat /dev/null 2< /tmp/232-parity-r6/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity-r6/repo/RULE.md"],["/dev/null","/tmp/232-parity-r6/repo/RULE.md"],false,false]
["cat /dev/null 2< /tmp/232-parity.lMKzlv/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/dev/null","/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /dev/null 2> /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/dev/null","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat /dev/null 2> /tmp/232-parity-r5/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity-r5/repo/RULE.md"],["/dev/null","/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat /dev/null 2> /tmp/232-parity-r6/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity-r6/repo/RULE.md"],["/dev/null","/tmp/232-parity-r6/repo/RULE.md"],false,false]
["cat /dev/null 2> /tmp/232-parity.lMKzlv/repo/RULE.md",["cat","/dev/null","2","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/dev/null","/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md &",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md > /dev/null",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","/dev/null"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","/dev/null"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md >&2",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","2"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md missing.md",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","missing.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","missing.md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md | head -n 5",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","head","-n","5"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/a[.]md",["cat","/tmp/232-parity-r3.Jt3dHh/repo/a[.]md"],["/tmp/232-parity-r3.Jt3dHh/repo/a[.]md"],false,false]
["cat /tmp/232-parity-r3.Jt3dHh/repo/x/../a.md",["cat","/tmp/232-parity-r3.Jt3dHh/repo/x/../a.md"],["/tmp/232-parity-r3.Jt3dHh/repo/x/../a.md"],false,false]
["cat /tmp/232-parity-r5/repo/PUSH.md",["cat","/tmp/232-parity-r5/repo/PUSH.md"],["/tmp/232-parity-r5/repo/PUSH.md"],false,false]
["cat /tmp/232-parity-r5/repo/RULE.md",["cat","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r5/repo/RULE.md &",["cat","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r5/repo/RULE.md > /dev/null",["cat","/tmp/232-parity-r5/repo/RULE.md","/dev/null"],["/tmp/232-parity-r5/repo/RULE.md","/dev/null"],false,false]
["cat /tmp/232-parity-r5/repo/RULE.md >&2",["cat","/tmp/232-parity-r5/repo/RULE.md","2"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r5/repo/RULE.md missing.md",["cat","/tmp/232-parity-r5/repo/RULE.md","missing.md"],["/tmp/232-parity-r5/repo/RULE.md","missing.md"],false,false]
["cat /tmp/232-parity-r5/repo/RULE.md | head -n 5",["cat","/tmp/232-parity-r5/repo/RULE.md","head","-n","5"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r5/repo/a[.]md",["cat","/tmp/232-parity-r5/repo/a[.]md"],["/tmp/232-parity-r5/repo/a[.]md"],false,false]
["cat /tmp/232-parity-r5/repo/x/../a.md",["cat","/tmp/232-parity-r5/repo/x/../a.md"],["/tmp/232-parity-r5/repo/x/../a.md"],false,false]
["cat /tmp/232-parity-r6/repo/PUSH.md",["cat","/tmp/232-parity-r6/repo/PUSH.md"],["/tmp/232-parity-r6/repo/PUSH.md"],false,false]
["cat /tmp/232-parity-r6/repo/RULE.md",["cat","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r6/repo/RULE.md &",["cat","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r6/repo/RULE.md > /dev/null",["cat","/tmp/232-parity-r6/repo/RULE.md","/dev/null"],["/tmp/232-parity-r6/repo/RULE.md","/dev/null"],false,false]
["cat /tmp/232-parity-r6/repo/RULE.md >&2",["cat","/tmp/232-parity-r6/repo/RULE.md","2"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r6/repo/RULE.md missing.md",["cat","/tmp/232-parity-r6/repo/RULE.md","missing.md"],["/tmp/232-parity-r6/repo/RULE.md","missing.md"],false,false]
["cat /tmp/232-parity-r6/repo/RULE.md | head -n 5",["cat","/tmp/232-parity-r6/repo/RULE.md","head","-n","5"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["cat /tmp/232-parity-r6/repo/a[.]md",["cat","/tmp/232-parity-r6/repo/a[.]md"],["/tmp/232-parity-r6/repo/a[.]md"],false,false]
["cat /tmp/232-parity-r6/repo/x/../a.md",["cat","/tmp/232-parity-r6/repo/x/../a.md"],["/tmp/232-parity-r6/repo/x/../a.md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/RULE.md",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/RULE.md &",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/RULE.md > /dev/null",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md","/dev/null"],["/tmp/232-parity.lMKzlv/repo/RULE.md","/dev/null"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/RULE.md >&2",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md","2"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/RULE.md missing.md",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md","missing.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md","missing.md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/RULE.md | head -n 5",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md","head","-n","5"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/a[.]md",["cat","/tmp/232-parity.lMKzlv/repo/a[.]md"],["/tmp/232-parity.lMKzlv/repo/a[.]md"],false,false]
["cat /tmp/232-parity.lMKzlv/repo/x/../a.md",["cat","/tmp/232-parity.lMKzlv/repo/x/../a.md"],["/tmp/232-parity.lMKzlv/repo/x/../a.md"],false,false]
["cat <<\"EOF\"\n$(gh pr create)\nEOF",["cat"],[],false,false]
["cat <<\"EÖF\"\n$(gh pr create)\nEÖF",["cat"],[],false,false]
["cat <<'A'\nA\ncat <<'B'\nB\ngh pr create",["cat","cat","gh","pr","create"],[],true,false]
["cat <<'A'\nA\ncat <<'B'\ngh pr create\nB",["cat","cat"],[],false,false]
["cat <<'E\"OF\"'\ngh pr create\nE\"OF\"",["cat","E","OF","gh","pr","create","EOF"],[],true,false]
["cat <<'E;OF'\ngh pr create\nE;OF",["cat","E","OF","gh","pr","create","E","OF"],[],true,false]
["cat <<'END-MARK'\nEND-MARK\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<'END-MARK'\ngh pr create\nEND-MARK",["cat"],[],false,false]
["cat <<'END.MARK'\nENDXMARK\ngh pr create\nEND.MARK",["cat"],["END.MARK"],false,false]
["cat <<'EOF'\n\tEOF\ngh pr create\nEOF",["cat"],[],false,false]
["cat <<'EOF'\n EOF\ngh pr create\nEOF",["cat"],[],false,false]
["cat <<'EOF'\n$(gh pr create --title \"hello\" $(printf x))\nEOF",["cat"],[],false,false]
["cat <<'EOF'\n$(gh pr create)\nEOF",["cat"],[],false,false]
["cat <<'EOF'\nEOF\t\ngh pr create\nEOF",["cat"],[],false,false]
["cat <<'EOF'\nEOF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<'EOF'\nEOF \ngh pr create\nEOF",["cat"],[],false,false]
["cat <<'EOF'\nEOFX\ngh pr create\nEOF",["cat"],[],false,false]
["cat <<'EOF'\ngh pr create\nEOF",["cat"],[],false,false]
["cat <<'EOF'\nthen run gh pr create\nEOF",["cat"],[],false,false]
["cat <<'EÖF'\nEÖF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<'EÖF'\ngh pr create\nEÖF",["cat"],[],false,false]
["cat <<'\\EOF'\ngh pr create\n\\EOF",["cat","EOF","gh","pr","create","EOF"],[],true,false]
["cat <<'ÉOF'\ngh pr create\nÉOF",["cat"],[],false,false]
["cat <<'ÉOF'\nÉOF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<'𝔈OF'\ngh pr create\n𝔈OF",["cat"],[],false,false]
["cat <<'𝔈OF'\n𝔈OF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<-'EOF'\n\tEOF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<-'EOF'\n\tEOF \ngh pr create\nEOF",["cat"],[],false,false]
["cat <<-'EOF'\n EOF\ngh pr create\nEOF",["cat"],[],false,false]
["cat <<-EOF\n\tEOF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<< /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["cat <<< /tmp/232-parity-r5/repo/RULE.md",["cat","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["cat <<< /tmp/232-parity-r6/repo/RULE.md",["cat","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["cat <<< /tmp/232-parity.lMKzlv/repo/RULE.md",["cat","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["cat <<<\"gh pr create\"",["cat"],[],false,false]
["cat <<<EOF\ngh pr create",["cat","EOF","gh","pr","create"],[],true,false]
["cat <<A <<'B'\nA\nB\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<A <<'B'\nx\nA\nB\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<A <<B\nA\nB\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<E'OF'\n$(gh pr create)\nEOF",["cat","EOF","gh","pr","create","EOF"],[],true,false]
["cat <<E'OF'\ngh pr create\nEOF",["cat","EOF","gh","pr","create","EOF"],[],true,false]
["cat <<EO'F'\ngh pr create\nEOF",["cat","EOF","gh","pr","create","EOF"],[],true,false]
["cat <<EOF\n$((1 + $(gh pr create)0))\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n$(gh pr create $(printf %s x))\nEOF",["cat","gh","pr","create","printf","%s","x"],[],true,false]
["cat <<EOF\n$(gh pr create ${v:-\")\"})\nEOF",["cat","gh","pr","create","v:-"],[],true,false]
["cat <<EOF\n$(gh pr create --title \"a (b)\")\nEOF",["cat","gh","pr","create","--title"],[],true,false]
["cat <<EOF\n$(gh pr create --title \"hello\" $(printf x))\nEOF",["cat","gh","pr","create","--title","hello","printf","x"],[],true,false]
["cat <<EOF\n$(gh pr create)\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n$(printf %s \"$(gh pr create)\")\nEOF",["cat","printf","%s","gh","pr","create"],[],true,false]
["cat <<EOF\n$(printf %s \"gh pr create\")\nEOF",["cat","printf","%s"],[],false,false]
["cat <<EOF\n${v:-$(gh pr create)}\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\nEOF\ngh pr create",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\$(gh pr create)\nEOF",["cat"],[],false,false]
["cat <<EOF\n\\\\$(gh pr create)\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\\\\\$(gh pr create)\nEOF",["cat"],[],false,false]
["cat <<EOF\n\\\\\\\\$(gh pr create)\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\\\\\\\\\$(gh pr create)\nEOF",["cat"],[],false,false]
["cat <<EOF\n\\\\\\\\\\\\$(gh pr create)\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\\\\\\\\\\\`gh pr create`\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\\\\\\\\\`gh pr create`\nEOF",["cat"],[],false,false]
["cat <<EOF\n\\\\\\\\`gh pr create`\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\\\\\`gh pr create`\nEOF",["cat"],[],false,false]
["cat <<EOF\n\\\\`gh pr create`\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\n\\`gh pr create\\`\nEOF",["cat"],[],false,false]
["cat <<EOF\n\\`gh pr create`\nEOF",["cat"],[],false,false]
["cat <<EOF\n`gh pr create`\nEOF",["cat","gh","pr","create"],[],true,false]
["cat <<EOF\nrun gh pr create later\nEOF",["cat"],[],false,false]
["cat <<EÖF\n$(gh pr create)\nEÖF",["cat","gh","pr","create"],[],true,false]
["cat <<EÖF\ngh pr create\nEÖF",["cat"],[],false,false]
["cat <<\\EOF\ngh pr create\nEOF",["cat","EOF","gh","pr","create","EOF"],[],true,false]
["cat <<ÉOF\n$(gh pr create)\nÉOF",["cat","gh","pr","create"],[],true,false]
["cat <<ÉOF\ngh pr create\nÉOF",["cat"],[],false,false]
["cat <<𝔈OF\n$(gh pr create)\n𝔈OF",["cat","gh","pr","create"],[],true,false]
["cat <<𝔈OF\ngh pr create\n𝔈OF",["cat"],[],false,false]
["cat > notes.md <<'EOF'\nhello\nEOF\ngh pr create",["cat","notes.md","gh","pr","create"],["notes.md"],true,false]
["cat RULE.md",["cat","RULE.md"],["RULE.md"],false,false]
["cat missing.md",["cat","missing.md"],["missing.md"],false,false]
["cat: Permission denied",["cat:","Permission","denied"],[],false,false]
["cd - && cat a.md",["cd","-","cat","a.md"],["a.md"],false,false]
["cd /tmp/232-parity-r3.Jt3dHh/repo && cat a.md",["cd","/tmp/232-parity-r3.Jt3dHh/repo","cat","a.md"],["/tmp/232-parity-r3.Jt3dHh/repo","a.md"],false,false]
["cd /tmp/232-parity-r3.Jt3dHh/repo/sub && cat a.md",["cd","/tmp/232-parity-r3.Jt3dHh/repo/sub","cat","a.md"],["/tmp/232-parity-r3.Jt3dHh/repo/sub","a.md"],false,false]
["cd /tmp/232-parity-r5/repo && cat a.md",["cd","/tmp/232-parity-r5/repo","cat","a.md"],["/tmp/232-parity-r5/repo","a.md"],false,false]
["cd /tmp/232-parity-r5/repo/sub && cat a.md",["cd","/tmp/232-parity-r5/repo/sub","cat","a.md"],["/tmp/232-parity-r5/repo/sub","a.md"],false,false]
["cd /tmp/232-parity-r6/repo && cat a.md",["cd","/tmp/232-parity-r6/repo","cat","a.md"],["/tmp/232-parity-r6/repo","a.md"],false,false]
["cd /tmp/232-parity-r6/repo/sub && cat a.md",["cd","/tmp/232-parity-r6/repo/sub","cat","a.md"],["/tmp/232-parity-r6/repo/sub","a.md"],false,false]
["cd /tmp/232-parity.lMKzlv/repo && cat a.md",["cd","/tmp/232-parity.lMKzlv/repo","cat","a.md"],["/tmp/232-parity.lMKzlv/repo","a.md"],false,false]
["cd /tmp/232-parity.lMKzlv/repo/sub && cat a.md",["cd","/tmp/232-parity.lMKzlv/repo/sub","cat","a.md"],["/tmp/232-parity.lMKzlv/repo/sub","a.md"],false,false]
["cd x && env A=1 /usr/local/bin/gh pr create --fill",["cd","x","env","A=1","/usr/local/bin/gh","pr","create","--fill"],["/usr/local/bin/gh"],true,false]
["cd x && gh pr create --fill",["cd","x","gh","pr","create","--fill"],[],true,false]
["chromeria-v2.sqlite",["chromeria-v2.sqlite"],["chromeria-v2.sqlite"],false,true]
["command -- 'gh' pr create",["command","--","gh","pr","create"],[],true,false]
["command printf '%s' 'gh pr create'",["command","printf","%s"],[],false,false]
["curl -s https://example.com/chromeria-v2.sqlite.gz",["curl","-s","https://example.com/chromeria-v2.sqlite.gz"],[],false,false]
["curl https://example.com/chromeria-v2.sqlite.gz",["curl","https://example.com/chromeria-v2.sqlite.gz"],[],false,false]
["dash -c 'gh pr create'",["dash","-c","gh","pr","create"],[],true,false]
["echo \"$( # )\ngh pr create\n)\"",["echo","#"],[],false,false]
["echo \"$((1 + $(gh pr create)0))\"",["echo","gh","pr","create"],[],true,false]
["echo \"$((1 + (2))) gh pr create\"",["echo"],[],false,false]
["echo \"$(case x in x) gh pr create ;; esac)\"",["echo","case","x","in","x"],[],false,false]
["echo \"$(case x in x) gh pr create;; esac)\"",["echo","case","x","in","x"],[],false,false]
["echo \"$(cat <<'EOF'\n)\nEOF\ngh pr create\n)\"",["echo","cat"],[],false,false]
["echo \"$(cat <<'EOF'\n)\nEOF\ngh pr create)\"",["echo","cat"],[],false,false]
["echo \"$(gh pr create \"$(printf x)\")\"",["echo","gh","pr","create","printf","x"],[],true,false]
["echo \"$(gh pr create $((1 + (2))))\"",["echo","gh","pr","create","1","+","2"],[],true,false]
["echo \"$(gh pr create $(printf %s x))\"",["echo","gh","pr","create","printf","%s","x"],[],true,false]
["echo \"$(gh pr create $(printf x))\"",["echo","gh","pr","create","printf","x"],[],true,false]
["echo \"$(gh pr create ${v:-\")\"})\"",["echo","gh","pr","create","v:-"],[],true,false]
["echo \"$(gh pr create --title \"a (b)\")\"",["echo","gh","pr","create","--title"],[],true,false]
["echo \"$(gh pr create --title \"hello\")\"",["echo","gh","pr","create","--title","hello"],[],true,false]
["echo \"$(gh pr create)\"",["echo","gh","pr","create"],[],true,false]
["echo \"$(printf \"%s\" \"$(printf \"%s\" \"gh pr create\")\")\"",["echo","printf","%s","printf","%s"],[],false,false]
["echo \"$(printf \"%s\" \"${v:-gh pr create}\")\"",["echo","printf","%s"],[],false,false]
["echo \"$(printf \"%s\" \"gh pr create\")\"",["echo","printf","%s"],[],false,false]
["echo \"$(printf %s \"$(gh pr create)\")\"",["echo","printf","%s","gh","pr","create"],[],true,false]
["echo \"$(printf %s \"gh pr create\")\"",["echo","printf","%s"],[],false,false]
["echo \"$(printf x # )\ngh pr create)\"",["echo","printf","x","#"],[],false,false]
["echo \"$(true; cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md ; true)\" > /dev/null",["echo","true","cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","true","/dev/null"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","/dev/null"],false,false]
["echo \"$(true; cat /tmp/232-parity-r5/repo/RULE.md ; true)\" > /dev/null",["echo","true","cat","/tmp/232-parity-r5/repo/RULE.md","true","/dev/null"],["/tmp/232-parity-r5/repo/RULE.md","/dev/null"],false,false]
["echo \"$(true; cat /tmp/232-parity-r6/repo/RULE.md ; true)\" > /dev/null",["echo","true","cat","/tmp/232-parity-r6/repo/RULE.md","true","/dev/null"],["/tmp/232-parity-r6/repo/RULE.md","/dev/null"],false,false]
["echo \"$(true; cat /tmp/232-parity.lMKzlv/repo/RULE.md ; true)\" > /dev/null",["echo","true","cat","/tmp/232-parity.lMKzlv/repo/RULE.md","true","/dev/null"],["/tmp/232-parity.lMKzlv/repo/RULE.md","/dev/null"],false,false]
["echo \"${v:-$(gh pr create --title \"hello\")}\"",["echo","gh","pr","create","--title","hello"],[],true,false]
["echo \"${v:-$(gh pr create)}\"",["echo","gh","pr","create"],[],true,false]
["echo \"${v:-gh pr create}\"",["echo"],[],false,false]
["echo \"\\$(gh pr create)\"",["echo"],[],false,false]
["echo \"\\\\$(gh pr create)\"",["echo","gh","pr","create"],[],true,false]
["echo \"\\\\\\$(gh pr create)\"",["echo"],[],false,false]
["echo \"\\\\\\\\$(gh pr create)\"",["echo","gh","pr","create"],[],true,false]
["echo \"\\\\\\\\\\$(gh pr create)\"",["echo"],[],false,false]
["echo \"\\\\\\\\\\\\$(gh pr create)\"",["echo","gh","pr","create"],[],true,false]
["echo \"\\\\\\\\\\\\`gh pr create`\"",["echo","gh","pr","create"],[],true,false]
["echo \"\\\\\\\\\\`gh pr create`\"",["echo"],[],false,false]
["echo \"\\\\\\\\`gh pr create`\"",["echo","gh","pr","create"],[],true,false]
["echo \"\\\\\\`gh pr create`\"",["echo"],[],false,false]
["echo \"\\\\`gh pr create`\"",["echo","gh","pr","create"],[],true,false]
["echo \"\\`gh pr create\\`\"",["echo"],[],false,false]
["echo \"\\`gh pr create`\"",["echo"],[],false,false]
["echo \"`gh pr create --title \"hello\"`\"",["echo","gh","pr","create","--title","hello"],[],true,false]
["echo \"`gh pr create`\"",["echo","gh","pr","create"],[],true,false]
["echo \"`printf \"%s\" \"gh pr create\"`\"",["echo","printf","%s"],[],false,false]
["echo \"`printf \"%s\" \\`gh pr create\\``\"",["echo","printf","%s","gh","pr","create"],[],true,false]
["echo \"bash\" -ce 'gh pr create'",["echo","bash","-ce","gh","pr","create"],[],true,false]
["echo \"gh\" pr create",["echo","gh","pr","create"],[],true,false]
["echo \"live check: gh pr create\"",["echo"],[],false,false]
["echo \"open /Users/u/.t3/userdata/chromeria-v2.sqlite later\"",["echo"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,false]
["echo $'\\x67h' pr create",["echo","gh","pr","create"],[],true,false]
["echo $'gh pr create'",["echo"],[],false,false]
["echo $'the file chromeria-v2.sqlite'",["echo"],["chromeria-v2.sqlite"],false,false]
["echo $((1 + $(gh pr create)0))",["echo","1","+","gh","pr","create","0","gh","pr","create"],[],true,false]
["echo $(gh pr create $(printf %s x))",["echo","gh","pr","create","printf","%s","x"],[],true,false]
["echo $(gh pr create ${v:-\")\"})",["echo","gh","pr","create","v:-"],[],true,false]
["echo $(gh pr create --title \"a (b)\")",["echo","gh","pr","create","--title"],[],true,false]
["echo $(gh pr create --title \"hello\")",["echo","gh","pr","create","--title","hello"],[],true,false]
["echo $(printf %s \"$(gh pr create)\")",["echo","printf","%s","gh","pr","create"],[],true,false]
["echo $(printf %s \"gh pr create\")",["echo","printf","%s"],[],false,false]
["echo ${v:-$(gh pr create)}",["echo","v:-","gh","pr","create","gh","pr","create"],[],true,false]
["echo '$(gh pr create)'",["echo"],[],false,false]
["echo 'bash -c gh pr create'",["echo"],[],false,false]
["echo 'gh pr create'",["echo"],[],false,false]
["echo 'ignore; cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md ; ignore'",["echo"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["echo 'ignore; cat /tmp/232-parity-r5/repo/RULE.md ; ignore'",["echo"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["echo 'ignore; cat /tmp/232-parity-r6/repo/RULE.md ; ignore'",["echo"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["echo 'ignore; cat /tmp/232-parity.lMKzlv/repo/RULE.md ; ignore'",["echo"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["echo 'the file chromeria-v2.sqlite'",["echo"],["chromeria-v2.sqlite"],false,false]
["echo /tmp/232-parity-r3.Jt3dHh/repo/RULE.md && cat missing.md",["echo","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","cat","missing.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","missing.md"],false,false]
["echo /tmp/232-parity-r5/repo/RULE.md && cat missing.md",["echo","/tmp/232-parity-r5/repo/RULE.md","cat","missing.md"],["/tmp/232-parity-r5/repo/RULE.md","missing.md"],false,false]
["echo /tmp/232-parity-r6/repo/RULE.md && cat missing.md",["echo","/tmp/232-parity-r6/repo/RULE.md","cat","missing.md"],["/tmp/232-parity-r6/repo/RULE.md","missing.md"],false,false]
["echo /tmp/232-parity.lMKzlv/repo/RULE.md && cat missing.md",["echo","/tmp/232-parity.lMKzlv/repo/RULE.md","cat","missing.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md","missing.md"],false,false]
["echo a",["echo","a"],[],false,false]
["echo after",["echo","after"],[],false,false]
["echo b'a'sh -o pipefail -c 'gh pr create'",["echo","bash","-o","pipefail","-c","gh","pr","create"],[],true,false]
["echo bash -c 'echo \"gh pr create\"'",["echo","bash","-c","echo"],[],false,false]
["echo bash -c 'echo done' _ -c 'gh pr create'",["echo","bash","-c","echo","done","_","-c"],[],false,false]
["echo bash -c 'gh pr create'",["echo","bash","-c","gh","pr","create"],[],true,false]
["echo g\"h\" pr create",["echo","gh","pr","create"],[],true,false]
["echo g'h pr create'",["echo"],[],false,false]
["echo g'h' pr create",["echo","gh","pr","create"],[],true,false]
["echo gh pr",["echo","gh","pr"],[],false,false]
["echo gh pr create",["echo","gh","pr","create"],[],true,false]
["echo hello",["echo","hello"],[],false,false]
["echo ksh -c 'gh pr create'",["echo","ksh","-c","gh","pr","create"],[],true,false]
["echo ok &&\ngh pr create",["echo","ok","gh","pr","create"],[],true,false]
["echo prefix' the file chromeria-v2.sqlite'",["echo"],["chromeria-v2.sqlite"],false,false]
["echo sh -c 'gh pr create'",["echo","sh","-c","gh","pr","create"],[],true,false]
["env 'gh' pr create",["env","gh","pr","create"],[],true,false]
["env -u UNUSED 'gh' pr create",["env","-u","UNUSED","gh","pr","create"],[],true,false]
["env -u UNUSED printf '%s' 'gh pr create'",["env","-u","UNUSED","printf","%s"],[],false,false]
["env FLAG=1 'gh' pr create",["env","FLAG=1","gh","pr","create"],[],true,false]
["env FLAG=1 bash -c \"\\\"g\\\"h pr create\"",["env","FLAG=1","bash","-c","gh","pr","create"],[],true,false]
["env FLAG=1 bash -o pipefail -ce 'gh pr create'",["env","FLAG=1","bash","-o","pipefail","-ce","gh","pr","create"],[],true,false]
["env FOO=1 gh pr create",["env","FOO=1","gh","pr","create"],[],true,false]
["env bash -c 'gh pr create'",["env","bash","-c","gh","pr","create"],[],true,false]
["env g'h' pr create",["env","gh","pr","create"],[],true,false]
["env ksh -c 'echo \"gh pr create\"'",["env","ksh","-c","echo"],[],false,false]
["env ksh -c 'gh pr create'",["env","ksh","-c","gh","pr","create"],[],true,false]
["env printf '%s' 'gh pr create'",["env","printf","%s"],[],false,false]
["exec -a gh-alias 'gh' pr create",["exec","-a","gh-alias","gh","pr","create"],[],true,false]
["exec g'h' pr create",["exec","gh","pr","create"],[],true,false]
["exec printf '%s' 'gh pr create'",["exec","printf","%s"],[],false,false]
["false",["false"],[],false,false]
["false && cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md; true",["false","cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","true"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["false && cat /tmp/232-parity-r5/repo/RULE.md; true",["false","cat","/tmp/232-parity-r5/repo/RULE.md","true"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["false && cat /tmp/232-parity-r6/repo/RULE.md; true",["false","cat","/tmp/232-parity-r6/repo/RULE.md","true"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["false && cat /tmp/232-parity.lMKzlv/repo/RULE.md; true",["false","cat","/tmp/232-parity.lMKzlv/repo/RULE.md","true"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["find . -exec bash -c 'echo \"gh pr create\"' \\;",["find",".","-exec","bash","-c","echo"],[],false,false]
["find . -exec bash -c 'gh pr create' \\;",["find",".","-exec","bash","-c","gh","pr","create"],[],true,false]
["for i in 1; do bash -c 'echo \"gh pr create\"'; done",["for","i","in","1","do","bash","-c","echo","done"],[],false,false]
["for i in 1; do bash -c 'gh pr create'; done",["for","i","in","1","do","bash","-c","gh","pr","create","done"],[],true,false]
["for n in 1; do \"gh\" pr create; done",["for","n","in","1","do","gh","pr","create","done"],[],true,false]
["for n in 1; do printf '%s' 'gh pr create'; done",["for","n","in","1","do","printf","%s","done"],[],false,false]
["g'h' pr create",["gh","pr","create"],[],true,false]
["g\\h pr create",["gh","pr","create"],[],true,false]
["gh",["gh"],[],false,false]
["gh issue create",["gh","issue","create"],[],false,false]
["gh issue create --title \"Record the bake\" --body \"The entry names chromeria-v2.sqlite in a test fixture.\"",["gh","issue","create","--title","--body"],["chromeria-v2.sqlite"],false,false]
["gh issue create --title \"Record the bake\" --body-file - <<'EOF'\nThe entry names chromeria-v2.sqlite in a test fixture.\nEOF",["gh","issue","create","--title","--body-file","-"],["chromeria-v2.sqlite"],false,false]
["gh issue create --title t --body \"open it with gh pr create\"",["gh","issue","create","--title","t","--body"],[],false,false]
["gh issue create --title x --body-file -",["gh","issue","create","--title","x","--body-file","-"],[],false,false]
["gh issue view 5 --json body -q .body; gh pr create",["gh","issue","view","5","--json","body","-q",".body","gh","pr","create"],[],true,false]
["gh pr",["gh","pr"],[],false,false]
["gh pr create",["gh","pr","create"],[],true,false]
["gh pr create --body SECRET-BODY",["gh","pr","create","--body","SECRET-BODY"],[],true,false]
["gh pr create --fill",["gh","pr","create","--fill"],[],true,false]
["gh pr create --title \"x\" --body-file - <<'EOF'\nbody\nEOF",["gh","pr","create","--title","x","--body-file","-"],[],true,false]
["gh pr create | cat",["gh","pr","create","cat"],[],true,false]
["gh pr createx",["gh","pr","createx"],[],false,false]
["gh pr list",["gh","pr","list"],[],false,false]
["gh-calls.jsonl",["gh-calls.jsonl"],["gh-calls.jsonl"],false,false]
["gh.json",["gh.json"],["gh.json"],false,false]
["ghx pr create",["ghx","pr","create"],[],false,false]
["git",["git"],[],false,false]
["git commit",["git","commit"],[],false,false]
["git commit -m x",["git","commit","-m","x"],[],false,false]
["git push",["git","push"],[],false,false]
["git push; echo \"exit=$?\"",["git","push","echo","exit=","?"],[],false,false]
["git status",["git","status"],[],false,false]
["git status push",["git","status","push"],[],false,false]
["git@github.com: Permission denied (publickey).",["git@github.com:","Permission","denied","publickey","."],[],false,false]
["grep -n x /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["grep","-n","x","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["grep -n x /tmp/232-parity-r3.Jt3dHh/repo/RULE.md; cat /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["grep","-n","x","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md","cat","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["grep -n x /tmp/232-parity-r5/repo/RULE.md",["grep","-n","x","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["grep -n x /tmp/232-parity-r5/repo/RULE.md; cat /tmp/232-parity-r5/repo/RULE.md",["grep","-n","x","/tmp/232-parity-r5/repo/RULE.md","cat","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["grep -n x /tmp/232-parity-r6/repo/RULE.md",["grep","-n","x","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["grep -n x /tmp/232-parity-r6/repo/RULE.md; cat /tmp/232-parity-r6/repo/RULE.md",["grep","-n","x","/tmp/232-parity-r6/repo/RULE.md","cat","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["grep -n x /tmp/232-parity.lMKzlv/repo/RULE.md",["grep","-n","x","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["grep -n x /tmp/232-parity.lMKzlv/repo/RULE.md; cat /tmp/232-parity.lMKzlv/repo/RULE.md",["grep","-n","x","/tmp/232-parity.lMKzlv/repo/RULE.md","cat","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["head -n 40 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["head","-n","40","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["head -n 40 /tmp/232-parity-r5/repo/RULE.md",["head","-n","40","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["head -n 40 /tmp/232-parity-r6/repo/RULE.md",["head","-n","40","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["head -n 40 /tmp/232-parity.lMKzlv/repo/RULE.md",["head","-n","40","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["if false; then :; else g'h' pr create; fi",["if","false","then",":","else","gh","pr","create","fi"],[],true,false]
["if true; then 'gh' pr create; fi",["if","true","then","gh","pr","create","fi"],[],true,false]
["if true; then bash -c 'echo \"gh pr create\"'; fi",["if","true","then","bash","-c","echo","fi"],[],false,false]
["if true; then bash -c 'gh pr create'; fi",["if","true","then","bash","-c","gh","pr","create","fi"],[],true,false]
["if true; then printf '%s' 'gh pr create'; fi",["if","true","then","printf","%s","fi"],[],false,false]
["less +40 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["less","+40","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["less +40 /tmp/232-parity-r5/repo/RULE.md",["less","+40","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["less +40 /tmp/232-parity-r6/repo/RULE.md",["less","+40","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["less +40 /tmp/232-parity.lMKzlv/repo/RULE.md",["less","+40","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["less /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["less","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["less /tmp/232-parity-r5/repo/RULE.md",["less","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["less /tmp/232-parity-r6/repo/RULE.md",["less","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["less /tmp/232-parity.lMKzlv/repo/RULE.md",["less","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["ls",["ls"],[],false,false]
["ls /nope",["ls","/nope"],["/nope"],false,false]
["ls /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["ls","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["ls /tmp/232-parity-r5/repo/RULE.md",["ls","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["ls /tmp/232-parity-r6/repo/RULE.md",["ls","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["ls /tmp/232-parity.lMKzlv/repo/RULE.md",["ls","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["make",["make"],[],false,false]
["nl -ba /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["nl","-ba","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["nl -ba /tmp/232-parity-r5/repo/PUSH.md",["nl","-ba","/tmp/232-parity-r5/repo/PUSH.md"],["/tmp/232-parity-r5/repo/PUSH.md"],false,false]
["nl -ba /tmp/232-parity-r5/repo/RULE.md",["nl","-ba","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["nl -ba /tmp/232-parity-r6/repo/PUSH.md",["nl","-ba","/tmp/232-parity-r6/repo/PUSH.md"],["/tmp/232-parity-r6/repo/PUSH.md"],false,false]
["nl -ba /tmp/232-parity-r6/repo/RULE.md",["nl","-ba","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["nl -ba /tmp/232-parity.lMKzlv/repo/RULE.md",["nl","-ba","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["nohup 'gh' pr create",["nohup","gh","pr","create"],[],true,false]
["printf '%s ' 'gh pr create'",["printf"],[],false,false]
["printf '%s ' 'gh' 'pr' 'create'",["printf","gh","pr","create"],[],true,false]
["printf '%s' ';' gh pr create",["printf","%s","gh","pr","create"],[],true,false]
["printf '%s' '>'&gh pr create",["printf","%s","gh","pr","create"],[],true,false]
["printf '%s' \\>&gh pr create",["printf","%s","gh","pr","create"],[],true,false]
["printf '%s\\n' '<<EOF'\ngh pr create\nEOF",["printf","%s","n","EOF","gh","pr","create","EOF"],[],true,false]
["printf gh pr create",["printf","gh","pr","create"],[],true,false]
["printf x | gh pr create --fill",["printf","x","gh","pr","create","--fill"],[],true,false]
["python3 - <<'EOF'\nfrom pathlib import Path\np = Path('tests/test_serve.py')\np.write_text(p.read_text().replace('state.sqlite', 'chromeria-v2.sqlite'))\nEOF",["python3","-"],["tests/test_serve.py","state.sqlite","chromeria-v2.sqlite"],false,false]
["python3 - <<'PY'\nkeys = ['gh pr create']\nPY",["python3","-"],[],false,false]
["python3 -c \"import sqlite3; sqlite3.connect('file:///tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite?mode=ro', uri=True)\"",["python3","-c"],["sqlite3.connect","/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],false,false]
["python3 -c \"import sqlite3; sqlite3.connect('file:///tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite?mode=ro', uri=True)\"",["python3","-c"],["sqlite3.connect","/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],false,false]
["python3 -c \"import sqlite3; sqlite3.connect('file:///tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite?mode=ro', uri=True)\"",["python3","-c"],["sqlite3.connect","/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite"],false,false]
["python3 -c \"import sqlite3; sqlite3.connect('file:///tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite?mode=ro', uri=True)\"",["python3","-c"],["sqlite3.connect","/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],false,false]
["python3 -c \"print('gh pr create')\"",["python3","-c"],[],false,false]
["rg gh pr create tests/",["rg","gh","pr","create","tests/"],["tests/"],true,false]
["rg x /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["rg","x","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["rg x /tmp/232-parity-r5/repo/RULE.md",["rg","x","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["rg x /tmp/232-parity-r6/repo/RULE.md",["rg","x","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["rg x /tmp/232-parity.lMKzlv/repo/RULE.md",["rg","x","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["sed -n '1,200p' /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["sed","-n","1,200p","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["sed -n '1,200p' /tmp/232-parity-r5/repo/RULE.md",["sed","-n","1,200p","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["sed -n '1,200p' /tmp/232-parity-r6/repo/RULE.md",["sed","-n","1,200p","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["sed -n '1,200p' /tmp/232-parity.lMKzlv/repo/RULE.md",["sed","-n","1,200p","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["sh -c \"\\\"g\\\"h pr create\"",["sh","-c","gh","pr","create"],[],true,false]
["sh -c \"printf '%s' \\\"gh pr create\\\"\"",["sh","-c","printf","%s"],[],false,false]
["sh -c $'\\x67h pr create'",["sh","-c","gh","pr","create"],[],true,false]
["sh -c 'echo done' _ -c 'gh pr create'",["sh","-c","echo","done","_","-c"],[],false,false]
["sh -c 'gh pr create'",["sh","-c","gh","pr","create"],[],true,false]
["sh -c 'gh pr create' -c 'echo \"gh pr create\"'",["sh","-c","gh","pr","create","-c"],[],true,false]
["sqlite3 ",["sqlite3"],[],false,false]
["sqlite3 \"/Users/u/.t3/userdata/chromeria-v2.sqlite\" .tables",["sqlite3","/Users/u/.t3/userdata/chromeria-v2.sqlite",".tables"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 $'chromeria-v2.sqlite' .tables",["sqlite3","chromeria-v2.sqlite",".tables"],["chromeria-v2.sqlite"],false,true]
["sqlite3 'chromeria-v2.sqlite' .tables",["sqlite3","chromeria-v2.sqlite",".tables"],["chromeria-v2.sqlite"],false,true]
["sqlite3 'file:",["sqlite3","file:"],[],false,false]
["sqlite3 'file:/Users/u/.t3/userdata/chromeria-v2.sqlite?mode=ro'",["sqlite3","file:/Users/u/.t3/userdata/chromeria-v2.sqlite?mode=ro"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite?mode=ro' 'select 1'",["sqlite3","file:/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite?mode=ro"],["/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite?mode=ro' .tables",["sqlite3","file:/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite?mode=ro",".tables"],["/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite?mode=ro' 'select 1'",["sqlite3","file:/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite?mode=ro"],["/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite?mode=ro' .tables",["sqlite3","file:/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite?mode=ro",".tables"],["/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite?mode=ro' 'select 1'",["sqlite3","file:/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite?mode=ro"],["/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite?mode=ro' .tables",["sqlite3","file:/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite?mode=ro",".tables"],["/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite?mode=ro' 'select 1'",["sqlite3","file:/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite?mode=ro"],["/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite?mode=ro' .tables",["sqlite3","file:/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite?mode=ro",".tables"],["/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 'file:/x/userdata/chromeria-v2.sqlite?mode=ro' .tables",["sqlite3","file:/x/userdata/chromeria-v2.sqlite?mode=ro",".tables"],["/x/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 -readonly /Users/u/.t3/userdata/chromeria-v2.sqlite .tables",["sqlite3","-readonly","/Users/u/.t3/userdata/chromeria-v2.sqlite",".tables"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 -readonly ~/.t3/userdata/chromeria-v2.sqlite .tables",["sqlite3","-readonly","~/.t3/userdata/chromeria-v2.sqlite",".tables"],["~/.t3/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /Users/u/.t3/userdata/chromeria-v2.sqlite",["sqlite3","/Users/u/.t3/userdata/chromeria-v2.sqlite"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /Users/u/.t3/userdata/chromeria-v2.sqlite 'select 1'",["sqlite3","/Users/u/.t3/userdata/chromeria-v2.sqlite"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite 'select 1'",["sqlite3","/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],["/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite .tables",["sqlite3","/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite",".tables"],["/tmp/232-parity-r3.Jt3dHh/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite 'select 1'",["sqlite3","/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],["/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite .tables",["sqlite3","/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite",".tables"],["/tmp/232-parity-r5/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite 'select 1'",["sqlite3","/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite"],["/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite .tables",["sqlite3","/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite",".tables"],["/tmp/232-parity-r6/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite 'select 1'",["sqlite3","/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],["/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite .tables",["sqlite3","/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite",".tables"],["/tmp/232-parity.lMKzlv/repo/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 /x/userdata/chromeria-v2.sqlite .tables",["sqlite3","/x/userdata/chromeria-v2.sqlite",".tables"],["/x/userdata/chromeria-v2.sqlite"],false,true]
["sqlite3 chromeria-v2'.sqlite' .tables",["sqlite3","chromeria-v2.sqlite",".tables"],[],false,true]
["sqlite3 chromeria-v2.sqlite",["sqlite3","chromeria-v2.sqlite"],["chromeria-v2.sqlite"],false,true]
["sqlite3 chromeria-v2.sqlite .tables",["sqlite3","chromeria-v2.sqlite",".tables"],["chromeria-v2.sqlite"],false,true]
["sqlite3 file:/Users/u/.t3/userdata/chromeria-v2.sqlite?mode=ro",["sqlite3","file:/Users/u/.t3/userdata/chromeria-v2.sqlite?mode=ro"],["/Users/u/.t3/userdata/chromeria-v2.sqlite"],false,false]
["sqlite3 ~/.t3/userdata/chromeria-v2.sqlite",["sqlite3","~/.t3/userdata/chromeria-v2.sqlite"],["~/.t3/userdata/chromeria-v2.sqlite"],false,true]
["ssh host",["ssh","host"],[],false,false]
["ssh host bash -c 'echo \"gh pr create\"'",["ssh","host","bash","-c","echo"],[],false,false]
["ssh host bash -c 'gh pr create'",["ssh","host","bash","-c","gh","pr","create"],[],true,false]
["step /tmp/232-parity-r3.Jt3dHh/repo/i.md",["step","/tmp/232-parity-r3.Jt3dHh/repo/i.md"],["/tmp/232-parity-r3.Jt3dHh/repo/i.md"],false,false]
["step /tmp/232-parity.lMKzlv/repo/i.md",["step","/tmp/232-parity.lMKzlv/repo/i.md"],["/tmp/232-parity.lMKzlv/repo/i.md"],false,false]
["step 0",["step","0"],[],false,false]
["step 1",["step","1"],[],false,false]
["step 2",["step","2"],[],false,false]
["step 3",["step","3"],[],false,false]
["step 4",["step","4"],[],false,false]
["step 5",["step","5"],[],false,false]
["step 6",["step","6"],[],false,false]
["step 7",["step","7"],[],false,false]
["sudo -n 'gh' pr create",["sudo","-n","gh","pr","create"],[],true,false]
["sudo -n printf '%s' 'gh pr create'",["sudo","-n","printf","%s"],[],false,false]
["sudo -u nobody g'h' pr create",["sudo","-u","nobody","gh","pr","create"],[],true,false]
["tail -n 20 /tmp/232-parity-r3.Jt3dHh/repo/RULE.md",["tail","-n","20","/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],["/tmp/232-parity-r3.Jt3dHh/repo/RULE.md"],false,false]
["tail -n 20 /tmp/232-parity-r5/repo/RULE.md",["tail","-n","20","/tmp/232-parity-r5/repo/RULE.md"],["/tmp/232-parity-r5/repo/RULE.md"],false,false]
["tail -n 20 /tmp/232-parity-r6/repo/RULE.md",["tail","-n","20","/tmp/232-parity-r6/repo/RULE.md"],["/tmp/232-parity-r6/repo/RULE.md"],false,false]
["tail -n 20 /tmp/232-parity.lMKzlv/repo/RULE.md",["tail","-n","20","/tmp/232-parity.lMKzlv/repo/RULE.md"],["/tmp/232-parity.lMKzlv/repo/RULE.md"],false,false]
["time 'gh' pr create",["time","gh","pr","create"],[],true,false]
["time -p 'gh' pr create",["time","-p","gh","pr","create"],[],true,false]
["timeout 5 bash -c 'echo \"gh pr create\"'",["timeout","5","bash","-c","echo"],[],false,false]
["timeout 5 bash -c 'gh pr create'",["timeout","5","bash","-c","gh","pr","create"],[],true,false]
["tool/tmp/232-parity-r3.Jt3dHh/repo/i.md",["tool/tmp/232-parity-r3.Jt3dHh/repo/i.md"],["tool/tmp/232-parity-r3.Jt3dHh/repo/i.md"],false,false]
["tool/tmp/232-parity.lMKzlv/repo/i.md",["tool/tmp/232-parity.lMKzlv/repo/i.md"],["tool/tmp/232-parity.lMKzlv/repo/i.md"],false,false]
["tool0",["tool0"],[],false,false]
["tool1",["tool1"],[],false,false]
["tool2",["tool2"],[],false,false]
["tool3",["tool3"],[],false,false]
["tool4",["tool4"],[],false,false]
["tool5",["tool5"],[],false,false]
["tool6",["tool6"],[],false,false]
["tool7",["tool7"],[],false,false]
["x=`gh pr create`",["x=","gh","pr","create"],[],true,false]
["xargs bash -c 'echo \"gh pr create\"'",["xargs","bash","-c","echo"],[],false,false]
["xargs bash -c 'gh pr create'",["xargs","bash","-c","gh","pr","create"],[],true,false]
["xargs bash -o pipefail -ce 'gh pr create'",["xargs","bash","-o","pipefail","-ce","gh","pr","create"],[],true,false]
["zsh -lc \"\\\"g\\\"h pr create\"",["zsh","-lc","gh","pr","create"],[],true,false]
["zsh -lc \"echo \\\"gh pr create\\\"\"",["zsh","-lc","echo"],[],false,false]
["zsh -lc 'echo done' _ -c 'gh pr create'",["zsh","-lc","echo","done","_","-c"],[],false,false]
["zsh -lc 'gh pr create --fill'",["zsh","-lc","gh","pr","create","--fill"],[],true,false]
["{ 'gh' pr create; }",["gh","pr","create"],[],true,false]
["{ bash -c 'echo \"gh pr create\"'; }",["bash","-c","echo"],[],false,false]
["{ bash -c 'gh pr create'; }",["bash","-c","gh","pr","create"],[],true,false]
["{ gh pr create; }",["gh","pr","create"],[],true,false]
["{ printf '%s' 'gh pr create'; }",["printf","%s"],[],false,false] |
|
What: Independent round-6 review FAIL on both exact heads, with one blocking parity finding. Blocking findingP2: whitespace semantics differ between the twin matchers. JavaScript Minimal input, constructed without invisible characters in this comment: sep = chr(0x85)
command = f"echo gh{sep}pr{sep}create"Feed that same string through the production shell An ASCII-only parser input reproduces the U+0085 key divergence through the new ANSI-C script decoding. Construct it as follows and feed the resulting string to both extractors: sep_escape = chr(92) + "u0085"
command = f"bash -c $'echo gh{sep_escape}pr{sep_escape}create'"Chromeria returns The new retention predicate itself also diverges. For The unquoted splitting difference already exists on both main bases. This finding blocks specifically under the planner's (c), divergence on any input, and does not claim those inherited differences are new real-run regressions. The quoted-token retention difference is on the newly added path. Use the same explicit whitespace definition for retention and splitting in both twins, with matching fixtures. A retention-only change leaves the unquoted/key/path divergence in place. Reachability: Chromeria Cleared required casesAll prior supplied findings pass on both candidates: substitution boundaries and inner quotes, even/odd escaping, exact/tab-stripped/empty/multiple heredocs, quoted words after assignments/env/redirections/control syntax, outer script dequoting, Unicode markers, clustered c flags/options before c, ANSI-C scripts and NUL boundaries, and the later positional The round-5 scripts after then/!/braces/do/xargs/find/timeout/ssh and their quoted-prose controls pass. Printed shell invocations match under the explicit final rule, including All nine bake fixtures pass: bare name, tilde/absolute and quoted single-path arguments match the database key; query-bearing quoted/unquoted SQLite URIs do not. Candidate 1672's literal Python test-edit heredoc, candidate 26379's Issue-body heredoc and its quoted Known limits, non-blockingReconfirmed the shared limits tracked by #284: escaped/partly quoted heredoc markers and separator punctuation can expose literal bodies; a case-pattern, heredoc-body or comment A shell-name token in positional data can also start another recognized invocation: Native zsh/ksh are unavailable here. Their simple controls use Bash stand-ins; SSH/sudo/SQLite use harmless local stubs. No native-shell, remote-SSH, live database, browser, deployment or live-model-session proof is claimed. Both PR bodies have Known limits sections and link #284. Independent proofAll test runs and scratch writes stayed under
Reviewed exact identities, checked live before review and again before publication:
Requirements and who asked: planner's round-6 brief requires exact-head twin review with the regression/required-case/parity blocking bar. Reviewer: independent Codex gpt-6.1-sol, medium reasoning effort, T3 Code Codex harness, context |
|
What: FAIL on both exact heads. A redirection or here-string between Blocking findings1. A redirection or here-string between After a shell Reproduction, in a private temp directory, with a PATH-local /bin/bash --noprofile --norc -c "bash -c 2>/dev/null 'gh pr create'"The stub logs A redirect before the shell name still matches ( 2. The twins do not agree on whitespace. JavaScript
Known limitsThese are not the failure. #284 already tracks them, and both PR bodies link it:
ProofReviewed trees were
Diffs are SHAs, checked live before the review and again before this comment:
Reviewer: independent Grok, grok-4.7, context |
|
What: Independent round-7 review PASS on both exact heads, with no blocking findings in the planner's narrow scope. Scope and exact candidates
This verdict applies only to whitespace parity, no regression on the required round-6 cases, incremental diff hygiene, passing specified suites, and no new CI failure. Both live PR heads were checked before review and again before publication. FindingsNo blocking findings. I read both incremental diffs in full and both production matchers. The diffs contain only the named ASCII whitespace constants, their uses in splitting/quoted-token retention/scanning/error normalization, and equivalent six-code-point tests. Every general whitespace predicate/split derives from the common The expanded corpus has 750 distinct inputs with zero twin differences, comparing production visible words, raw path shapes, gh-pr-create hits, and database-name hits. It includes all 559 published prior inputs, command fixtures/path templates collected from both current suites, and independent probes. All six disputed code points, U+0085, U+001C through U+001F and U+FEFF, were exercised through quoted/unquoted words, printf, ANSI-C shell scripts, and database-path shapes. The round-6 twins disagree on 78 of these expanded inputs; the current twins agree on all of them. All observed output changes versus round 6 contain the affected whitespace characters or their ANSI-C encodings. Other corpus inputs remain unchanged. Required cases pass in both twins and were checked with Suites and CIAll scratch writes and test execution stayed under
Known limits for #284The deferred redirection/here-string defect is explicitly recorded in #284's round-7 comment, including Requirements and who asked: The planner's round-7 brief requires only whitespace parity, required-case regression checks, clean incremental diffs, passing specified suites, and no new CI failure. Reviewer: independent Codex gpt-6.1-sol, medium reasoning effort, T3 Code Codex harness; status context |
|
What: Round 7 passes at Blocking findingsNone. Known limits for #284
ProofReviewed by grok-4.7. Chromeria head Incremental diff is Character-class hits for that set, the word break, and the shell break are identical on every BMP code point except surrogates. The whitespace hits are exactly U+0009, U+000A, U+000B, U+000C, U+000D, and U+0020. Word splits are identical for all 63488 of those code points. Sol's six code points (U+0085, U+001C through U+001F, U+FEFF) stay inside the token for unquoted, quoted, Required cases against
|
#52) * fix(serve): command keys follow what bash runs, as Chromeria's matcher Python parity with toolboxmd/chromeria#243: quoted strings and heredoc bodies no longer match command keys; sh -c strings, unescaped substitutions in double quotes or expanding heredocs, and quoted command words still do. A command after an empty heredoc still matches. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(serve): preserve shell substitution boundaries for command keys * fix(serve): recognize shell options and ANSI-C scripts * chore(release): prepare 0.6.3 for command key fixes * fix(serve): keep quoted tokens in every command position * docs(serve): explain quoted command tokens * fix(serve): recognize shell scripts in every word position * docs(map): link the shared command matcher limits * fix(serve): use explicit ASCII whitespace in command keys --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…t mentions (#243) * fix(server): command keys match what a shell command runs, not what it mentions Words in quoted strings and heredoc bodies no longer match command keys; strings run by 'sh -c' (bash, zsh -lc) and $(...) or backticks inside double quotes still do, and unquoted arguments still match a bare key. On rocky's log this drops 39 of 45 mention matches and keeps every confirmed run. Closes #232 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): command keys follow what bash runs in heredocs, quoted words and escapes An unquoted-marker heredoc expands $(...) and backticks, so they run; a quoted word in command position ('gh' pr create) is the command; an escaped \$( or backtick is literal. visibleCommand is private again (Knip). From Sol's review of #243, each checked against /bin/bash. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs(server): the matcher header describes what command keys match now Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): preserve shell substitution boundaries for command keys * fix(server): dequote shell words before matching command keys * fix(server): recognize shell options and ANSI-C scripts * fix(contextmd): keep quoted tokens in every command position * fix(contextmd): recognize shell scripts in every word position * fix(contextmd): use explicit ASCII whitespace in command keys --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 8f939c2)
What: Both matchers recognize shell -c scripts in every word position while excluding ordinary quoted prose and literal heredoc bodies.
Why: Executable-position tracking dropped real shell scripts after control syntax and command-running tools.
So what: The planner reviews and merges these final candidates; shared remaining limits are tracked in #284.
Closes #232. Twin PR: toolboxmd/contextmd#52.
Behavior
Unquoted words and quoted words whose dequoted value has no whitespace count in every position. Quoted prose with whitespace and literal heredoc bodies drop. Executed substitutions/backticks, expanding-heredoc substitutions and dequoted shell scripts stay visible. Path extraction still sees all raw words.
Any eligible word whose basename is sh/bash/zsh/dash/ksh starts shell option recognition, regardless of command position. Options containing c, including clusters and options before c, select one following word as a dequoted script. Consuming that script ends recognition for that invocation, so later positional -c/-ce words cannot reopen it. All command-position, assignment, wrapper-option and redirect-target tracking is removed.
All eight supplied cases now match: shells after then, !, braces, do, xargs, find -exec, timeout and ssh. Their quoted-prose negative companions do not. The prior post-script positional negatives remain excluded. A printed shell invocation such as
echo bash -c 'gh pr create'now matches in the accepted safe direction; the formerecho sh -c 'gh pr create'negative deliberately becomes a policy-positive fixture.Prior substitution boundaries, backslash parity, exact/tab-stripped/empty heredocs, Unicode marker parity, here-strings, arithmetic/parameter expansions, script dequoting and ANSI-C scripts remain covered.
Bake fixtures
The bare chromeria-v2.sqlite command key matches bare filename, tilde/absolute arguments, readonly variants and quoted single filenames/paths. Both query-bearing SQLite URI forms miss the bare key because their basename includes ?mode=ro. The literal Python test-edit heredoc (1672), Issue-body heredoc (26379) and its quoted --body prose companion remain excluded. Raw path shapes are retained.
Proof
ed1af37e72fd7dc970914dbd20dd4c9a2f933cda: from apps/server,pnpm exec vp test run src/contextmd/, 130 passed in four files.5d0e4e6b9230af71d8ea3784ab4a30e4bd0ab4d3: focused SegmentsTest 21 passed;CONTEXTMD_CHROMERIA=/home/luke/dev/toolboxmd/chromeria-worktrees/232-command-keys python3 -m unittest discover -s tests -t ., 156 passed, including 18 isolated real-server/hook contracts, no skips. Final3d0051a44d18f375bf901b340681a55d94bedd3fonly adds Track shared shell matcher limits and native shell proof #284 to the feature map, as repository instructions require; matcher and entire tests tree have identical Git objects.600c9281a5/1cdf9ff268. Both old production extractors make 15 wrong decisions across these new fixtures; the same fixtures pass now.pnpm exec vp lint apps/server,pnpm exec vp run --filter t3 typecheck. Server Knip exports pass; full server Knip retains solely the existing unlisted cc binary in Server Knip reports the OS cc compiler as an unlisted binary #270. No new matcher diagnostic. Typecheck and full Knip briefly overlapped due to a sequencing mistake; subsequent launches waited until both finished. Test and contract runs were sequential.3d0051a44d; CI-relative version doctor passes on the implementation. No version bump in Chromeria; older CHANGELOG content is unchanged.Implementation commit trees equal the tested staged trees. Contracts used temporary state and captured process groups. Probes/logs remain outside both worktrees at /tmp/232-parity-r6. The original Sol 380-input file was lost in the earlier freeze; the recovered public corpus is retained and expanded, but inclusion of any unpublished extra members remains unverified.
Known limits
Follow-up #284 owns the shared limits, with 15 one-line Bash-verified examples and identical observations from both matchers. It explicitly requires ContextMD's keys.py to change in step with Matcher.ts.
These include escaped/partly quoted heredoc markers, separator punctuation in markers, ) from case/heredoc/comments inside substitutions, -- or a script filename before -c, native zsh/ksh proof gaps, and the accepted printed-shell invocation match. Unquoted argument/comment/escaped-syntax matches remain accepted approximations. This is the final fix round for #232; future disposition belongs to #284 and does not authorize changing the accepted rule.
Delivery
Chromeria final head
ed1af37e72fd7dc970914dbd20dd4c9a2f933cda, implementation base54fb0fc1886d7ee1ef030a6e5dae419d2b263a1f; main advanced to14d2e7e67cae9416a58247059ca48cd5199aa31a. ContextMD final head3d0051a44d18f375bf901b340681a55d94bedd3f, integrated main42d312460cf3672ab7454ebfcb905d9db392b3e6. Both branches were pushed through new commits without rebase or history rewrite; clean worktrees are retained for the planner's reviews. No reviews requested, statuses posted or merges performed. Website/SEO impact is none. The original upstream search found no corresponding ContextMD matcher/fix in pingdotgg/t3code.Elon record
Work by Codex gpt-6.1-sol, max reasoning effort, T3 Code Codex harness.