Skip to content

ci: install reusable PR review workflows#2

Merged
topcoder1 merged 1 commit into
mainfrom
ci/install-pr-review-1777570999
Apr 30, 2026
Merged

ci: install reusable PR review workflows#2
topcoder1 merged 1 commit into
mainfrom
ci/install-pr-review-1777570999

Conversation

@topcoder1
Copy link
Copy Markdown
Owner

Wires topcoder1/ci-workflows reusable workflows. Review the caller files, then merge.

The 'Claude Review' check on this PR may fail with a 'workflow validation' error (claude-code-action's OIDC check on PRs that modify the workflow file itself). In practice it often passes; if it fails, merge with admin bypass — subsequent PRs work normally.

@topcoder1 topcoder1 enabled auto-merge (squash) April 30, 2026 17:43
@topcoder1 topcoder1 merged commit e97a260 into main Apr 30, 2026
1 check passed
topcoder1 added a commit that referenced this pull request May 13, 2026
## Problem

The seed-mode design self-committed the seeded value back to the install
PR's branch via `GITHUB_TOKEN`. This hits a documented GitHub
limitation: **`GITHUB_TOKEN` pushes do NOT re-trigger pull_request
workflows**. The self-commit creates a new HEAD SHA with no check runs
reported on it — the PR is permanently \"blocked\" without manual `gh pr
close + reopen` and an empty user-attributed push.

Caught on the first real-world install (whois-api-llc/wxa-jake-ai#389) —
required close+reopen + an empty user push to unblock. Doesn't scale to
6+ remaining repos.

## New design

**Two-PR flow:**

1. **Install PR** ships `.coverage-floor` with `current=0` (seed marker)
+ caller workflow.
2. On `pull_request` with `current=0`: PASS. Post comment naming
proposed floor. **No self-commit.**
3. Install PR auto-merges naturally (one HEAD SHA, one check set).
4. After merge, `push:main` with `current=0` measures coverage and
**opens a follow-up PR** `chore(coverage): seed floor at X.X%` with the
seeded `.coverage-floor`.
5. Follow-up PR is 1-file-change, labeled `coverage-floor-seed`,
safe-paths-automerge eligible — auto-merges.
6. After follow-up merges, future PRs run in enforce mode.

## Properties

- No GITHUB_TOKEN re-trigger problem — each push gets its own workflow
run; seed PR is a normal PR with its own checks
- Two-PR flow keeps each PR minimal (workflow file + .coverage-floor in
#1; just .coverage-floor in #2)
- Loop-prevention guard preserved (refuse to seed below `seed_minimum`)
- Idempotent: skip if a `coverage-floor-seed` PR is already open
- Auto-creates the `coverage-floor-seed` label on first run

## Self-test (this repo)

ci-workflows itself stays in enforce mode — `.coverage-floor` here has
`current=99.0` against ~100% selftest coverage. The new seed path only
fires when `current==0`, so no behavior change on this PR's self-test.

## Companion changes (next PRs)

- dotclaude installer (`install-coverage-floor.sh`): docs update —
install PR is now passive, expect a follow-up seed PR.

## Auto-merge rationale

Workflow file change in ci-workflows — risk:blocked, manual click
required (same as #50#54).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

1 participant