Table Pipe Escaping - #288
Merged
Merged
Conversation
A `|` in a gap title or consequence cell silently split the row into an extra column. Every `|` inside the table is now written `\|` — inline code spans included, since GitHub splits columns before rendering code — while gap titles stay free to contain `|` and the escaped title cell still counts as verbatim. The pre-post self-check gains a clause for it. RED: GitHub's own renderer (gh api markdown, mode=gfm) split the rows `| 3 | Bitwise a | b | … |` and `` | 1 | `A | B` | … | `` into shifted columns, dropping the consequence cell; the prompt had no escaping rule. GREEN: the escaped forms `a \| b` and `` `A \| B` `` render as correct three-column rows showing a literal `|`. No CI gate: the rule governs comment composition, which no tool in the repo exercises. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016g3xHRn9ChW4mcjvduzB2U
Keep the column dividers out of the pipe-escaping rule, and limit a refine run's pipe check to the row it changed, so it never asks to rewrite rows that step 6 requires to pass through byte-for-byte. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016g3xHRn9ChW4mcjvduzB2U
Owner
Author
|
@claude Review this pull request. Analyse the code changes and provide feedback covering:
End the review with a recommendation whether to merge the PR, and if not, what you suggest needs addressing first. |
Contributor
|
Claude finished @FrankRay78's task in 2m 29s —— View job Review: Table Pipe Escaping (#288)
Scope: this changes only Bugs / correctness
Security
CLAUDE.md / constitution adherence
Test coverage
Spec/test-plan mismatches
Recommendation: MergeSmall, well-scoped, behaviourally verified against the real renderer, and consistent with the surrounding prompt's conventions. Nothing here needs to be addressed before merging. |
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016g3xHRn9ChW4mcjvduzB2U
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.
Why
The at-a-glance table that #281 added to
/speckit.reviewissueis a Markdown table. A literal|in a gap title or consequence cell silently splits the row into the wrong columns. It shows as a misaligned table, not an error. The@claudereview on #284 caught this after merge.What changes
|in a table cell's content is written\|, including inside inline code. Gap titles may still contain|, and a title cell that differs only by the escape still counts as verbatim. Nothing outside the table is escaped.Non-obvious things a reviewer should know
gh api markdown(gfm):`A | B`in a cell lost the third column, while`A \| B`renders asA | B./verifyreview.Related
Closes #286
🤖 Generated with Claude Code
https://claude.ai/code/session_016g3xHRn9ChW4mcjvduzB2U