Skip to content

[process] fork PRs get real CI feedback: workflow_run validate report + PR welcome + tightened family-pr-checks - #39

Merged
HaozheZhang6 merged 3 commits into
mainfrom
process/fork-feedback-pipeline
Jul 22, 2026
Merged

[process] fork PRs get real CI feedback: workflow_run validate report + PR welcome + tightened family-pr-checks#39
HaozheZhang6 merged 3 commits into
mainfrom
process/fork-feedback-pipeline

Conversation

@BenchCAD

@BenchCAD BenchCAD commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Latest: Adopted the vLLM/sglang patterns after comparing their .github setups: the welcome bot now greets first-time contributors only (vLLM new_pr_bot pattern) and is cut to three bullets + one 中文 line; every PR-template checklist item now links to the exact doc section (sglang pattern). Also verified locally: all five open external family PRs (#34#38) PASS bench2 validate — every red validate on them is the fork-comment crash this PR fixes, not the contributors' designs.

The audit behind this PR: all 5 open external family PRs (#34#38) are red with zero feedback comments — the validate-report comment step fails on fork PRs ("Resource not accessible by integration": the pull_request token is read-only on forks), so external contributors see only a bare red ✗. Two also shipped stray reference PDFs/photos inside designs/<family>/, one has a family-name/issue mismatch, one has an all-ticked checklist with red CI, and one got no CI at all (first-contributor approval pending, with no explanation anywhere).

This PR makes the machinery do the explaining, so maintainer communication is no longer the bottleneck:

  1. validate-report.yml (new, workflow_run) — posts the bench2 validate report onto the PR from base-repo context, which works for forks. validate.yml hands over report + PR number via an artifact and drops its now-unneeded pull-requests: write. On failure the comment leads with the local reproduce command + DEBUGGING link (EN/中文). Comment-only; never checks out PR code.
  2. pr-welcome.yml (new, pull_request_target) — one canned bilingual orientation comment when a family PR opens: how to read the gates, pinned-env reproduce, first-PR CI-approval note, package scope, Draft policy. Comment-only; never checks out PR code.
  3. family-pr-checks.yml tightened — new red conditions with exact fixes in the message: stray files in designs/<family>/ (refs belong in the issue), unchecked PR-checklist items, dir name ≠ linked issue's family name.
  4. Docs — CONTRIBUTING lifecycle rows 4/5 (Draft policy, first-PR CI approval), hard-gates table updated, PR-template header comment.

Not in this PR (repo settings, can't be a file change): consider Settings → Actions → Require approval for first-time contributors who are new to GitHub only, so returning contributors get CI without a manual click.

Not self-merging — for your review/merge (protected main).

🤖 Generated with Claude Code

BenchCAD added 2 commits July 21, 2026 22:24
…e report + PR welcome + tightened family-pr-checks

- validate.yml: hand the bench2 validate report to a new validate-report.yml
  (workflow_run) via artifact — on fork PRs the pull_request token is read-only,
  so the report comment silently failed ("Resource not accessible by
  integration") for every external contributor. All 5 open external family PRs
  have zero feedback comments today.
- pr-welcome.yml (pull_request_target, comment-only): one canned bilingual
  orientation comment on family-PR open — how to read red gates, pinned-env
  reproduce command, first-PR CI-approval note, package scope, Draft policy.
- family-pr-checks.yml: also reject stray files in designs/<family>/ (reference
  PDFs/photos go in the issue), require the PR checklist fully ticked, and
  require the dir name to match the linked issue's family name.
- CONTRIBUTING.md + PR template: Draft/WIP policy, first-PR CI approval note,
  updated hard-gates table.

Signed-off-by: BenchCAD <benchcad@users.noreply.github.com>
…), doc-anchor links in the PR checklist

- pr-welcome.yml: greet only first-time contributors (vLLM new_pr_bot
  pattern — returning contributors get no bot noise) and cut the comment to
  three bullets + one zh line.
- pull_request_template.md: each checklist item links to the exact doc
  section (sglang pattern) so the template itself routes people to the docs.

Local evidence for why the spurious-red fix matters: all five open external
family PRs (#34-#38) PASS bench2 validate locally — every red 'validate' on
them is the fork-PR comment crash, not the design.

Signed-off-by: BenchCAD <benchcad@users.noreply.github.com>

@HaozheZhang6 HaozheZhang6 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

lgtm

@HaozheZhang6
HaozheZhang6 merged commit fc86f93 into main Jul 22, 2026
4 checks passed
@HaozheZhang6
HaozheZhang6 deleted the process/fork-feedback-pipeline branch July 22, 2026 05:55
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.

2 participants