Add support for XML-style <cmt>comment</cmt> <comment>comment</comment> formats in refine-plan#78
Conversation
Extends comment parsing to support three formats: - Classic: CMT:/ENDCMT (existing) - Short tag: <cmt></cmt> (new) - Long tag: <comment></comment> (new) All formats support inline and multi-line usage and can be mixed within the same file. Updated documentation and error messages to be format-agnostic. Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 79714b73d5
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
scripts/validate-refine-plan-io.sh
Outdated
| if (closest_marker == "") { | ||
| return "" | ||
| } else { | ||
| return closest_marker ":" closest_pos |
There was a problem hiding this comment.
Return marker metadata in an unambiguous format
find_comment_markers concatenates the marker and position as marker:pos, but callers parse it with split(..., ":"); this breaks for the legacy CMT: marker because the split result becomes "CMT", "", "<pos>". In scan_cmt_blocks, that leaves found_marker mismatched and marker_pos empty (0), so pos never advances and the validator loops indefinitely on inputs containing classic CMT: ... ENDCMT comments (reproducible with timeout 5s ./scripts/validate-refine-plan-io.sh --input <file>). This is a regression that hangs existing refine-plan workflows.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
To use Codex here, create a Codex account and connect to github.
There was a problem hiding this comment.
To use Codex here, create a Codex account and connect to github.
…T: marker
The find_comment_markers awk function used ":" as the delimiter to return
"marker:position" pairs. Since the CMT: marker itself contains a colon,
split("CMT::1", parts, ":") would parse incorrectly, producing
found_marker="CMT" instead of "CMT:" and an empty marker_pos. This caused
pos to never advance, resulting in an infinite loop that hung the CI for
nearly 5 hours.
Switch the internal delimiter from ":" to "|" which does not appear in any
comment marker string.
The PR renamed CMT-specific terminology to generic "comment" terminology in both refine-plan.md and validate-refine-plan-io.sh, but the test assertions in test-refine-plan.sh still referenced the old text. Update all 9 affected assertions to match the current documentation and error messages.
Summary
Extends the
refine-plancommand to support three comment annotation formats instead of justCMT:/ENDCMT, making plan reviews more intuitive and flexiblefor different user preferences.
New Comment Formats
CMT: comment ENDCMT<cmt>comment</cmt><comment>comment</comment>Key Features
Examples
Inline annotations: