Repository navigation
fix: unescape pipes in Router commands - #2
Open
JayOfTheKeyboard wants to merge 1 commit into
Open
JayOfTheKeyboard wants to merge 1 commit into
JayOfTheKeyboard wants to merge 1 commit into
Conversation
The Router was a Markdown table, so pipes inside its commands were written as \| to keep the cells apart. Agents read SKILL.md as raw text and copy the backslash: a shell pipe becomes a literal argument (strings -a T \| rg ... fails), a regex alternation becomes a literal | that never matches, and jq rejects the filter. The Electron row had the opposite problem: its unescaped pipes split the cell when GitHub renders the table. The Router is now a list with the same text and plain pipes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1
The Router table escapes the pipes in its commands as
\|. Agents read SKILL.md raw, copy the backslash, and nine commands in six rows fail: shell pipes turn into arguments, regex alternations match nothing, and jq rejects its filter. Details and transcripts are in the issue.The Router table is now a list, one
- **Target**: pathline per row, with plain|. A Markdown table can't hold a raw pipe inside a code span, so the commands can only be paste-and-run outside a table. The list also fixes the Electron row, whose unescaped pipes break the rendered table on GitHub.Nothing else changes. With the table syntax and the escapes taken out, the old and new text are identical, apart from "route each extracted binary through this table" now saying "list". The file shrinks from 8,374 to 8,331 bytes.
Checked by running the fixed commands on real binaries: the Rust
strings | rg | sort -uline prints the rustc commit hash,rg 'bl|call|literal|cmp'finds 79 lines where the escaped form found 0,LC_(RPATH|BUILD_VERSION)matches both load commands, and the HARjqfilter printsGET https://example.com/a.