Migrate rpt's Claude workflows to the Morrison-Lab/gha reusable workflows
rpt's .github/workflows/claude-code-review.yml and claude.yml are bespoke, standalone anthropics/claude-code-action@v1 workflows. Other lab repos (ai-config, serodynamics, ...) instead consume the reusable workflows in Morrison-Lab/gha, which inherit all the hardening (stub-review retry, verdict guard, dedup of prior-review context, older-comment collapse, cost comment, and fixes like gha#400) automatically as @v2 slides.
Migrating rpt is a DRW win: one less bespoke workflow to maintain, and rpt stops missing fixes that land upstream. But per gha's own "diff feature-by-feature, don't infer parity" rule, it is not a drop-in -- two gaps need decisions first:
Gap 1: tag mode vs agent mode
rpt's review workflow sets track_progress: true on pull_request (tag mode), which posts a live tracking comment and enables the inline-comment tool. The gha reusable workflow defaults to agent mode (track-progress: false, summary-only reviews) and deliberately discourages tag mode, because tag mode hard-grants git-write tools regardless of --disallowedTools (caused unauthorized commits on serodynamics#175). Options:
- Accept agent-mode summary-only reviews for rpt, or
- Wait for / drive
anthropics/claude-code-action#1415 (a read_only input) so tag mode is safe, then set track-progress: true.
Gap 2: reviewer toggling
rpt's workflow removes the d-morrison review request while Claude runs and re-adds it afterward (the "restore reviewers after work" pattern). The gha reusable review workflow has no equivalent. Options:
- Add reviewer-toggling as a feature of the reusable workflow (an input), or
- Keep it as separate caller-side jobs around the
uses: call.
Scope
claude-code-review.yml -> Morrison-Lab/gha/.github/workflows/claude-code-review.yml@v2 (passing rpt's R-package prompt as prompt-addendum, allowed-bots: "github-actions[bot],claude").
claude.yml -> the gha claude.yml reusable agent workflow (separate migration; same reviewer-toggling gap applies).
Filed as a deliberate follow-up; surfaced while using rpt as the live test bed for gha#400 (the duplicate-review-comment fix).
Migrate rpt's Claude workflows to the
Morrison-Lab/ghareusable workflowsrpt's
.github/workflows/claude-code-review.ymlandclaude.ymlare bespoke, standaloneanthropics/claude-code-action@v1workflows. Other lab repos (ai-config, serodynamics, ...) instead consume the reusable workflows inMorrison-Lab/gha, which inherit all the hardening (stub-review retry, verdict guard, dedup of prior-review context, older-comment collapse, cost comment, and fixes like gha#400) automatically as@v2slides.Migrating rpt is a DRW win: one less bespoke workflow to maintain, and rpt stops missing fixes that land upstream. But per gha's own "diff feature-by-feature, don't infer parity" rule, it is not a drop-in -- two gaps need decisions first:
Gap 1: tag mode vs agent mode
rpt's review workflow sets
track_progress: trueonpull_request(tag mode), which posts a live tracking comment and enables the inline-comment tool. The gha reusable workflow defaults to agent mode (track-progress: false, summary-only reviews) and deliberately discourages tag mode, because tag mode hard-grants git-write tools regardless of--disallowedTools(caused unauthorized commits on serodynamics#175). Options:anthropics/claude-code-action#1415(aread_onlyinput) so tag mode is safe, then settrack-progress: true.Gap 2: reviewer toggling
rpt's workflow removes the
d-morrisonreview request while Claude runs and re-adds it afterward (the "restore reviewers after work" pattern). The gha reusable review workflow has no equivalent. Options:uses:call.Scope
claude-code-review.yml->Morrison-Lab/gha/.github/workflows/claude-code-review.yml@v2(passing rpt's R-package prompt asprompt-addendum,allowed-bots: "github-actions[bot],claude").claude.yml-> the ghaclaude.ymlreusable agent workflow (separate migration; same reviewer-toggling gap applies).Filed as a deliberate follow-up; surfaced while using rpt as the live test bed for gha#400 (the duplicate-review-comment fix).