Skip to content

fix(copilot-review,file-issue,file-pullreq,gh-body-audit,gh-body-conventions,review-pipeline): reduce gh-post to its call form - #228

Merged
ultimatile merged 2 commits into
mainfrom
fix/222-gh-post-description-home
Sep 11, 2026
Merged

ultimatile merged 2 commits into
mainfrom
fix/222-gh-post-description-home

Conversation

@ultimatile

Copy link
Copy Markdown
Owner

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, while gh-body-conventions § Authoring via file, which holds the rule to post through gh-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: which gh-post subcommand to run and how to pass the body.

Closes #222

Changes

  • No skill body describes what gh-post checks, rewrites, or why it exists. The skills that post keep their gh-post commands and the extra gh flags a call accepts.
  • The rule never to pass a body inline to gh is stated only in gh-body-conventions § Authoring via file.
  • review-pipeline Phase 2 replies to Copilot's inline comments through copilot-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-review replies to review threads only through gh-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-audit states once, in its list of what it does not do, that it does not check hard-wrap or sub-clause line endings.
  • In pr-with-copilot-review.sh, the comments about gh-post state that the body must come through --body-file or --body-stdin, and that gh-post forwards unknown flags to gh, which the script's "$@" pass-through relies on.
  • The README's gh-post section 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. implement is not listed, since it posts nothing.
  • The plugin version is 2026.9.7.

Impact

  • review-pipeline executors now reply through copilot-review's procedure. They list unreplied threads with list-pr-threads.sh, stop and ask the user when none remain, and name each reply's finding-triage disposition, as copilot-review executors already did.
  • copilot-review executors can no longer reply with gh api directly.
  • Every other step issues the same gh-post command as before.

Verification

  • bash skills/gh-body-audit/test-body-math-scan.sh printed All checks passed., and pytest on skills/docreaper/test_referent.py reported 97 passed.
  • bash -n passes on skills/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.md finds no statement about the wrapper. Its remaining hits are mdformat as an example formatter in CLAUDE.md, and mdformat.text as an example library in driftreaper and in quality-list's docstring-drift item.
  • gh-body-audit said the wrapper rejects hard-wrap at submission; by default it does not. Calling gh-post's own functions at e9841b6 showed this. With format on, the default, apply_format joined a four-line column-wrapped paragraph into one line and validate_body with format_mode=True returned no errors on the result; with format off, validate_body returned a hard-wrapped paragraph(s) error.
  • The same apply_format call 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

  • No step in copilot-review or review-pipeline says what to do when a gh-post reply-inline batch stops before sending or fails partway.
  • gh-body-audit's math scan does not check the new rule against backslash macros inside plain $...$.

…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.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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 mdformat hits remaining, but this changed line itself matches the hard-wrap alternative (and gh-body-conventions/SKILL.md:12 does 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.sh has 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.

Comment thread skills/gh-body-conventions/SKILL.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

gh-post's behavior is described in six files and owned by none

2 participants