fix(copilot-review,file-issue,file-pullreq,gh-body-audit,gh-body-conventions,review-pipeline): reduce gh-post to its call form - #228
Merged
Conversation
…entions,review-pipeline): stop describing what gh-post does Skill bodies now state only the instruction to post through gh-post and the form of the call: the subcommand, the arguments, and how the body is passed. What the wrapper validates or rewrites, why it exists, and what enforces its use are no longer described. The removed descriptions also said the wrapper rejects hard-wrapped bodies, while its default auto-format reflows them instead.
…entions,review-pipeline): state each gh-post rule once The routing rule now lives only in gh-body-conventions, which the drafting skills already apply; the per-skill restatements are gone. review-pipeline replies through copilot-review's reply procedure instead of carrying its own copy, and only when the review left inline comments. copilot-review no longer allows posting replies with gh api directly. The math triage in gh-body-conventions points at the Math rules instead of restating them, and the one defect it named that had no rule now has one. The README no longer describes the wrapper and no longer lists implement, which posts nothing.
There was a problem hiding this comment.
🟡 Changes recommended
Two moderate findings remain unresolved.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR simplifies gh-post documentation, centralizes reply guidance, adds a plain-math convention, and bumps the plugin version to 2026.9.7.
Changes:
- Removes wrapper implementation details from skills and README.
- Delegates Copilot replies through
copilot-review. - Updates audit guidance, script comments, and installation documentation.
File summaries
| File | Reviewed changes and findings |
|---|---|
skills/review-pipeline/SKILL.md |
Delegates Copilot replies; moderate finding (1 vote) on latest-review filtering. |
skills/gh-body-conventions/SKILL.md |
Centralizes posting and math rules; moderate finding (3 votes) because the audit does not enforce the new math rule. |
skills/gh-body-audit/SKILL.md |
Simplifies audit scope; nit (1 vote) regarding the verification-search claim. |
skills/file-pullreq/SKILL.md |
Removes wrapper implementation details. |
skills/file-issue/SKILL.md |
Removes wrapper implementation details. |
skills/copilot-review/SKILL.md |
Simplifies body and reply guidance. |
skills/copilot-review/scripts/pr-with-copilot-review.sh |
Clarifies body-file forwarding. |
README.md |
Updates gh-post installation guidance. |
.claude-plugin/marketplace.json |
Bumps the plugin version. |
Review details
Suppressed comments (2)
skills/gh-body-audit/SKILL.md:96
- The PR description says this verification search has only
mdformathits remaining, but this changed line itself matches thehard-wrapalternative (andgh-body-conventions/SKILL.md:12does too). Please correct the verification claim or show the filtered command so the stated evidence is reproducible.
Does not draft or file the body (caller's job). Does not maintain the rule set (`gh-body-conventions` is SSOT — update it first, then add the corresponding check here if a new mechanical rule is needed). Does not discharge `gh-body-conventions` § Evidence claims: that rule compares the body against the drafting session's record of what ran, which is exactly the context this check's subagent is denied — the caller discharges it in main context before invoking this check. Does not check hard-wrap, sub-clause line endings, or reference anchoring (whether a citation is pinned to a fixed revision as `gh-body-conventions` § References requires — the drafter's to check).
skills/review-pipeline/SKILL.md:58
- The shared response procedure collects every unresolved, unreplied Copilot thread, but
list-pr-threads.shhas no review-id filter. On a re-review with an older unresolved/unreplied thread, this delegation will include that old finding even though this step says to triage and reply only to the new comments; the generated batch can therefore answer an untriaged finding or omit a required reply. Preserve the latest review's comment IDs when selecting reply targets, or add an equivalent latest-review filter to the shared procedure.
5. If actionable findings exist, apply the **fix-loop substeps** (see Rules), replacing the re-review step with `${CLAUDE_SKILL_DIR}/../copilot-review/scripts/pr-with-copilot-review.sh --re-review <PR_URL>`. Triage only new comments, and reply to them as step 4 does. Repeat until no actionable findings remain.
- Files reviewed: 9/9 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This was referenced Sep 11, 2026
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.
Summary
Skills in this repository post GitHub bodies through
gh-post, a wrapper kept in its own repository. Several skill bodies described what the wrapper does — a hard-wrap validator, rejection of inline bodies, halting before a send, an mdformat auto-format — each in its own words, whilegh-body-conventions§ Authoring via file, which holds the rule to post throughgh-post, described none of it. None of those descriptions changes what an executor does: the wrapper exists to constrain how bodies get posted, and what a skill needs from it is how to call it. Skill bodies now state only that: whichgh-postsubcommand to run and how to pass the body.Closes #222
Changes
gh-postchecks, rewrites, or why it exists. The skills that post keep theirgh-postcommands and the extraghflags a call accepts.ghis stated only ingh-body-conventions§ Authoring via file.review-pipelinePhase 2 replies to Copilot's inline comments throughcopilot-review§ Respond to review, when the review left any, and replies the same way to the new comments of each re-review. Its Rules section carries no separate reply rule.copilot-reviewreplies to review threads only throughgh-post reply-inline.gh-body-conventions§ Math forbids backslash macros inside plain$...$. Its subsection on broken math after posting tells the author to check the source against the Math rules and names no wrapper internals.gh-body-auditstates once, in its list of what it does not do, that it does not check hard-wrap or sub-clause line endings.pr-with-copilot-review.sh, the comments aboutgh-poststate that the body must come through--body-fileor--body-stdin, and thatgh-postforwards unknown flags togh, which the script's"$@"pass-through relies on.gh-postsection lists the skills that post through the wrapper —file-issue,file-pullreq,copilot-review,review-pipeline,research, and the skills that wrap them — and says to install it, without describing it.implementis not listed, since it posts nothing.2026.9.7.Impact
review-pipelineexecutors now reply throughcopilot-review's procedure. They list unreplied threads withlist-pr-threads.sh, stop and ask the user when none remain, and name each reply'sfinding-triagedisposition, ascopilot-reviewexecutors already did.copilot-reviewexecutors can no longer reply withgh apidirectly.gh-postcommand as before.Verification
bash skills/gh-body-audit/test-body-math-scan.shprintedAll checks passed., andpytestonskills/docreaper/test_referent.pyreported97 passed.bash -npasses onskills/copilot-review/scripts/pr-with-copilot-review.sh, and pre-commit (mdformat) passes on the changed files.rg -n -i 'validator stack|halt-before-send|detect_hardwrap|hardwrap|hard-wrap validator|un-sent|body-validation|auto-format|mdformat' skills README.md CLAUDE.mdfinds no statement about the wrapper. Its remaining hits aremdformatas an example formatter inCLAUDE.md, andmdformat.textas an example library indriftreaperand inquality-list'sdocstring-driftitem.gh-body-auditsaid the wrapper rejects hard-wrap at submission; by default it does not. Callinggh-post's own functions ate9841b6showed this. With format on, the default,apply_formatjoined a four-line column-wrapped paragraph into one line andvalidate_bodywithformat_mode=Truereturned no errors on the result; with format off,validate_bodyreturned ahard-wrapped paragraph(s)error.apply_formatcall turned$\alpha_1 * \beta_2$into$\\alpha_1 * \\beta_2$, doubling each backslash, and left$`\alpha_1 * \beta_2`$unchanged. That result is what the new Math rule rests on.Notes
copilot-revieworreview-pipelinesays what to do when agh-post reply-inlinebatch stops before sending or fails partway.gh-body-audit's math scan does not check the new rule against backslash macros inside plain$...$.