本文へ移動
cccskills
無料GitHub で公開

pr-review-sweep

Sweep a PR's automated + human review comments and act on them — especially for material (large / logic-bearing) PRs. Handles "sweep the PR comments", "check PR review feedback", "address review comments", "did the bots flag anything", and the pre-/post-merge review pass on any non-trivial PR.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md5.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

PR Review Sweep

Automated reviewers (cubic-dev-ai, chatgpt-codex-connector / Codex) and humans leave findings on PRs asynchronously — often seconds to minutes after the PR opens, and sometimes only after it merges. A PR that built green is not a reviewed PR. This skill makes the sweep a deliberate step so real P1s (races, state-clobbers, unguarded destructive paths) don't slip through on the exact kind of change where they hurt most.

The rule that motivated this skill: a self-identified P1 on a destructive path was shipped as a "follow-up" and the reviewers confirmed it (plus three more) after merge. Cheap to catch at sweep time; a roundtrip to catch later.

When to sweep (and when not to)

Always sweep — material PRs:

  • Touches shipped source / logic: core/**, examples/**, ship/**, tools/cli/**, src/** (Shipyard), CMake/build wiring.
  • Concurrency, lock ordering, state machines, serialization, RT-audio, or any destructive / mutating path (delete, abandon, overwrite, force). Treat these as high-risk regardless of diff size.
  • Large diffs, or a stack of commits — more surface, more asynchronous review.

Skip is fine — non-material PRs:

  • Docs-only / comment-only / pure rename / formatting.
  • Trivial config or version-bump-only changes.

If unsure, sweep. It costs one API read and a few minutes of triage.

The sweep

Use ghapp for GitHub API reads (its own rate-limit bucket; plain gh burns the shared personal token). Use gh for creating/merging PRs.

Pull all three comment surfaces — findings land in different places:

REPO=danielraffel/<repo>; N=<pr>
# Inline review comments (code-anchored — where the bots put P1/P2 findings)
ghapp api repos/$REPO/pulls/$N/comments \
  --jq '.[] | "--- \(.path):\(.line // .original_line) by \(.user.login)\n\(.body)\n"'
# PR-level reviews (approve/request-changes summaries)
ghapp api repos/$REPO/pulls/$N/reviews \
  --jq '.[] | "\(.user.login) [\(.state)]: \(.body)"'
# Issue comments (human notes, "potential issues flagged here")
ghapp api repos/$REPO/issues/$N/comments \
  --jq '.[] | "--- by \(.user.login)\n\(.body)\n"'

Bot findings are usually tagged P1/P2 with a confidence and an "AI agents" prompt block. They are signal, not gospel.

Triage each finding

  1. Verify against the actual code, not the bot's summary. Read the file at the anchored line. Confirm the failure scenario is reachable (concrete inputs → wrong output). Don't dismiss a P1 because it's "narrow" — a narrow race on a destructive path is still a must-fix.
  2. Bucket: must-fix (correctness / data-loss / a live thing broken), should-fix (real but bounded), nit (style / naming). Default-off opt-ins still get their P1s fixed before anyone can enable them.
  3. Don't blindly apply the bot's suggested patch — reproduce the reasoning, then write the fix that fits the code. Bots are right about what, often wrong about how.

Act

  • PR still open: push the fixes to the branch; re-run the local gates; let the same reviewers re-review before merge.
  • Already merged (common on Shipyard — see below): ship a follow-up PR that fixes every confirmed finding, with a test per fix (tests ship with fixes), then post a closeout comment on the original PR mapping each finding → fix.
  • Ship the test. Every correctness fix lands with the Catch2 / cargo test case that would have caught it. "It compiles" is not the acceptance criterion.

Reporting the PR's state after a sweep

  • Quote the required-check state from shipyard landing --pr <n> (its verdict line where it prints one) or the head's statusCheckRollup, read at the time of the claim, with the head SHA. Do not summarize from memory.
  • Never call a failure a flake, infra, "not a code failure", or "still in progress" while a required check is red on the current head, or when the same test failed on an earlier head of the PR. A repeat is a code signal.
  • If the PR is armed or queued, push only real fixes; do not rebase it or merge main into it (the queue does that, and moving the head cancels the running gate). The ci skill has the full rules.

Timing traps

  • Reviews are asynchronous. Opening the PR does not mean the review has run. For a material PR, either wait for the review run before merging, or commit to a post-merge sweep and be ready to follow up.
  • Shipyard has no required status checks → gh pr merge --auto fires the moment the PR is mergeable, which is typically before the reviewers finish. So on Shipyard, the post-merge sweep is not optional — always re-read pulls/$N/comments after the merge lands and follow up if anything is P1/P2.
  • Pulp PRs route through shipyard pr and merge on green; Codex review comments can also arrive post-merge. Same discipline: sweep after, follow up.

Cross-repo

This applies to any repo the workspace ships to — Pulp and Shipyard both get automated bot review. This skill lives in Pulp's .agents/skills/ (the shared source of truth); the practice is identical when working in the Shipyard tree.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

aax

無料

Optional AAX support for Pulp, including developer-supplied Avid SDK setup, CMake enablement, DigiShell/AAX Validator workflows, and local AAX builds on macOS or Windows.

日本語の概要は準備中です。原文の説明を表示しています。

Generous-Corp/pulp222026年10月13日 更新

Configure, implement, and test Pulp's optional desktop Ableton Link tempo-sync adapter while preserving the developer-supplied SDK, licensing, realtime, latency-compensation, and no-install boundaries.

日本語の概要は準備中です。原文の説明を表示しています。

Generous-Corp/pulp222026年10月13日 更新

Maintain Pulp's installed design-time agent capability manifest and public-surface ledger. Use when adding, removing, renaming, or materially changing public audio, MIDI, signal, timebase, or sequence APIs; registering a new algorithm for generators; changing capability support or deprecation state; or repairing agent-capabilities freshness, schema, fingerprint, tombstone, or installed-SDK tests.

日本語の概要は準備中です。原文の説明を表示しています。

Generous-Corp/pulp222026年10月13日 更新

android

無料

Android platform development for Pulp — NDK cross-compilation, Oboe audio, Dawn/Skia GPU rendering, JNI bridge, touch interaction, emulator workflows, and end-to-end smoke validation. Covers build, deploy, debug, and the gotchas discovered during bringup.

日本語の概要は準備中です。原文の説明を表示しています。

Generous-Corp/pulp222026年10月13日 更新

ara

無料

Optional ARA support for Pulp, including developer-supplied ARA SDK setup, CMake enablement, adapter companion APIs, validation, and ARA-aware plugin implementation guidance.

日本語の概要は準備中です。原文の説明を表示しています。

Generous-Corp/pulp222026年10月13日 更新

The measurement surface for ALL Pulp DSP and audio-pipeline work — read it BEFORE writing or gating DSP, not only when something already sounds wrong. Covers the C++ harness (signal generators, metrics, assertions, RenderScenario, contracts), the offline Audio Doctor (magnitude/frequency response, THD/THD+N, phase/group delay), and their Python sibling the Audio Quality Lab (tools/audio/quality-lab — null residual + alignment, LTAS log-spectral distance, spectral flux/centroid, HNR, Theil-Sen drift slope, Kaiser-sinc resampling, license-guarded corpus, regression-net ratchet). TRIGGER on AUTHORING work — "build/design an oscillator/filter/synth/effect", "add a DSP module", "what should the acceptance gate be", "how do I measure aliasing / anti-aliasing / alias floor", "null against a reference", "is this DSP correct", "choose a tolerance", "golden/regression corpus for audio", "measure drift or jitter", "A/B two renders" — AND on DEBUGGING work — "is there sound / no audio / I hear nothing", "does this filter/compressor/synth/delay produce the right signal", "prove the DSP / prove the contract", "measure the frequency response", "what's the THD / is it distorting", "what's the group delay / phase response / measured latency", "magnitude response curve", "render a test tone and assert", "audio regression", "64-frame works but 128 is silent", "sample-rate change pitch-shifted it", "describe what's in this buffer", "audio doctor", "compare before/after a DSP refactor". Reach for this BEFORE hand-rolling any FFT, null test, alias measurement, pitch tracker, or golden-render script — most of it already exists in one of the two lanes. Test/tool layer over HeadlessHost — deterministic, no audio device, no speakers. Off the realtime thread entirely.

日本語の概要は準備中です。原文の説明を表示しています。

Generous-Corp/pulp222026年10月13日 更新

Generous-Corp のスキルをすべて見る

このスキルの問題を報告する