Skip to content

Commit c1bc425

Browse files
khaliqgantclaude
andauthored
fix: escape pipes inside inline code in markdown tables (#31)
Three table cells in writing-agent-relay-workflows/SKILL.md had unescaped `|` characters inside backticked inline code (`bash | bash | bash`, `cmd1 | cmd2`). GitHub-flavored Markdown still parses pipes as column delimiters even inside backticks, which broke the column counts on those rows. Escape them as `\|`. Flagged by CodeRabbit and Devin Review on AgentWorkforce/relay#829. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 5b53ada commit c1bc425

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

  • skills/writing-agent-relay-workflows

skills/writing-agent-relay-workflows/SKILL.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Before writing the workflow, decide *how the agents will coordinate*. The relay
2828
| Shape | What it is | Use when |
2929
|---|---|---|
3030
| **Conversation** (chat-native) | Interactive agents share a channel; messages, `@-mentions`, and ambient awareness drive coordination. Lead and workers spawn in parallel and self-organize. The relay is the coordination layer, not just transport. | Multi-file work, peer review loops, cross-agent feedback, dynamic re-planning, multi-PR coordination, anything with a human-in-the-loop escape, swarms where workers pick up each other's output. |
31-
| **Pipeline** (one-shot DAG) | Each step runs as a one-shot subprocess (`claude -p`, `codex exec`); steps hand off via `{{steps.X.output}}` text injection. No agents are alive at the same time; no chat happens. | Linear, well-specified transformations; deterministic data passing; no review loop expected; the work could be expressed as a `bash | bash | bash` pipe. |
31+
| **Pipeline** (one-shot DAG) | Each step runs as a one-shot subprocess (`claude -p`, `codex exec`); steps hand off via `{{steps.X.output}}` text injection. No agents are alive at the same time; no chat happens. | Linear, well-specified transformations; deterministic data passing; no review loop expected; the work could be expressed as a `bash \| bash \| bash` pipe. |
3232

3333
**Default to Conversation for any non-trivial work.** Pipeline DAGs are simpler to reason about but they do not exercise the relay primitive — they are a Unix pipe with extra steps. If you would happily write the same task as a single shell pipeline, pipeline-shape is fine. Otherwise, you almost certainly want a Conversation shape.
3434

@@ -979,7 +979,7 @@ Edit files as assigned. Report completion. Fix issues from feedback.`,
979979
| Simple edits, well-specified | One-shot DAG with `preset: 'worker'` |
980980
| Cross-agent review feedback loop | Interactive team |
981981
| Independent tasks, no coordination | Fan-out with non-interactive workers |
982-
| Anything where the answer to "could this be `cmd1 | cmd2`?" is *no* | Interactive team |
982+
| Anything where the answer to "could this be `cmd1 \| cmd2`?" is *no* | Interactive team |
983983

984984
### Chat-Native Coordination Recipes
985985

@@ -1276,7 +1276,7 @@ When you set `.pattern('supervisor')` (or `hub-spoke`, `fan-out`), the runner au
12761276

12771277
| Mistake | Fix |
12781278
|---------|-----|
1279-
| Treating relay as transport, not as a coordination layer (every step is `preset: 'worker'`, every handoff is `{{steps.X.output}}`) | Default to **Conversation shape** for non-trivial work — interactive agents on a shared channel. Pipeline-shape is only correct when the work could be expressed as a `bash | bash | bash` pipe. |
1279+
| Treating relay as transport, not as a coordination layer (every step is `preset: 'worker'`, every handoff is `{{steps.X.output}}`) | Default to **Conversation shape** for non-trivial work — interactive agents on a shared channel. Pipeline-shape is only correct when the work could be expressed as a `bash \| bash \| bash` pipe. |
12801280
| Interactive agents on a channel whose task strings don't tell them to talk to each other | Pick a [Chat-Native Coordination Recipe](#chat-native-coordination-recipes) (Q/A, Broadcast/Ack, Peer Review, Standup, Hand-Off) and bake it into the task prompt — otherwise you're paying for a chat substrate you're not using |
12811281
| All workflows run sequentially | Group independent workflows into parallel waves (4-7x speedup) |
12821282
| Every step depends on the previous one | Only add `dependsOn` when there's a real data dependency |

0 commit comments

Comments
 (0)