pr-pipeline: run Refine before review, triggered by events and file extensions
Maintainer thường phản hồi trong vòng 1 ngày
@kyle-sexton đang làm issue này rồi.
Từ ngày 6/11/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
Refs: #8485
Problem
Review sees code that has not been tidied yet. Review lanes start on opened, synchronize and ready_for_review (.github/workflows/pr-review-hosted.yml:48). fix-docs, the one tidy pass that runs after a PR opens, waits for a cron at minutes 9 and 39 (.github/workflows/pr-unblock-dispatch.yml:61). So the first review of every PR judges the head before tidying, and a fix-docs push restarts both reviews. The owner's direction (2026-11-06): tidying runs before code and security review, on every PR whose changed files qualify by extension, as passes in a Refine stage, event-driven, with clear signals that agents and people read the same way.
Decision
Owner, 2026-11-06, "go w/ recommended" on lane 3's Q6 (a):
- Ready starts this repository's pipeline: Refine first, then review. Draft and save point keep their meanings.
- Refine is one
pr-refineworkflow that always runs, dispatched by an event (no cron). Its first job matches the PR's changed files to each pass'sapplies-when.pathsextension globs indocs/conventions/pr-pipeline.yaml. Passes on disjoint extensions run in parallel; overlapping ones run in their configuredorder. A PR that matches no pass completes Refine in seconds. There is no workflow-level path filter, because a skipped workflow leaves its checks Pending (https://docs.github.com/actions/managing-workflow-runs/skipping-workflow-runs). - Review starts on
workflow_runofpr-refinecompleting (https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows). A Refine run that pushed a patch tells review to skip that head, and the push starts Refine again on the new head. - Signals are native: draft and ready state, workflow completion, and one check per pass (
refine / <pass>). No label gates anything. - Repository-specific wiring stays in
.github/anddocs/conventions/. Shipped plugins stay team-, user- and repo-agnostic: create.md §2.4.3 keeps its generic states. - Adding a pass is a config entry (an activity with
stage: refine, its globs, itsorder). - Each pass logs its name, files matched, patch yes or no, and duration, so passes can be measured and compared.
Later owner decisions, 2026-11-06 (each comment quotes the owner):
- Q8 (issuecomment-6687918323): review waits for Refine and takes the PR and head from the Refine run;
pr-review-cli.ymlgained the inputs for aworkflow_runcaller. - Q11 and Q13 (issuecomment-6692723687, issuecomment-6694392754): fix-docs is on for every PR whose tidy did not run inside its own run; a resolve-issue lane PR that tidied in its run is skipped. Shipped in #13818 (ADR 0089).
- Q12 (issuecomment-6694392754): a
pull_request_targetdispatcher starts Refine under four tested invariants: main's code only, no head-controlled text inrun:,actions: writeandcontents: readonly, no App token or secret beyondGITHUB_TOKEN. The cron stays as a backstop until one event-started Refine is seen reaching review. The azure-iac broker rule for it is melodic-software/azure-iac#116. - Q16 (issuecomment-6695832454): an explicit Actions event policy allows
pull_request_targetfor the named workflows only. This repository's policy 10299 already coverspr-merge.yml; the dispatcher's path joins it when its trigger ships. - Lane 3, on evidence: resolve-issue lane-branch PRs keep their
pull_requestreview start; every other PR is reviewed after Refine.
Done when
Phase A:
- Dependency: melodic-software/ci-workflows#999 merged (
pr-review-cli.ymlacceptspr-number,head-sha,base-shaandevent-actionfrom aworkflow_runcaller). - Dependency: melodic-software/standards#953 merged and its runner-policy sync landed here (#13742) (
.github/standards/runner-policy/policy.jsonallows the four inputs). - The trusted dispatcher
pr-unblock-dispatch.ymlgains apull_request_targettrigger that dispatches Refine, runs main's code, and never checks out head code, andcheck-trusted-triggeraccepts that event, with one test per Q12 invariant that fails when the invariant is weakened. Depends on melodic-software/azure-iac#116 deployed. - Policy 10299 includes the dispatcher's workflow path.
- A ready PR, and each push to one, starts
pr-refinethrough an event (the dispatch path is covered by a test). The cron dispatch of fix-docs is removed once one event-started Refine is seen reaching review. -
pr-refinealways runs, plans its passes frompr-pipeline.yamlapplies-when.paths, and runs fix-docs as its first pass. A PR with no qualifying files completes with no model turn (test). - The AI review workflows start on
workflow_runofpr-refinecompleting with any conclusion, passing the PR number and head from that Refine run topr-review-cli.yml's new inputs (success, failure, cancelled, timed out), and skip only a head that Refine moved, a draft, or a hold (tests, including a positive control). - Review is never stranded by Refine: every Refine job has a
timeout-minutes; a failed or refused dispatch of Refine still starts review; and a Refine failure logsrefine-failedand is counted the way other lane holds are, so a lasting failure reaches a person (tests for a failed, a timed-out and a never-dispatched Refine). -
workflow_runstays within GitHub's three-level chain limit (.githubchain listed in the PR body). - Each pass emits one record with its name, files matched, patch outcome and duration (test).
-
docs/conventions/pr-pipeline/README.mdstates the stage order and what each signal means. No shipped plugin file gains repo-specific wording (git diff --statshows noplugins/change, or only generic config points). - All
.githubnode tests pass.
Later phases (not this issue's done-when): a /simplify pass on code extensions as a config entry, and moving resolve-issue's in-run tidy steps into Refine, each with before-and-after numbers.
- Ngôn ngữ chính
- Shell
- Star
- 22
- Fork
- 2
- Merge trung bình
- 1 giờ 13 phút
- Pull request đã merge (30 ngày)
- 954
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của melodic-software/claude-code-plugins
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
melodic-software/claude-code-plugins#9179 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Worktree-isolated sessions refuse claude plugin eval (guard reads 'eval' as shell eval)Có thể đã có người làm @kyle-sexton đã nhận 6 ngày trước. Đang mởhost-run priority: low status: ready work-class: mechanical
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
melodic-software/claude-code-plugins#5696 · 16 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
priority: medium status: needs-decision
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 34/100
melodic-software/claude-code-plugins#13847 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
chore(source-control): finish the public-data credential sweep left from #8282Có thể đã có người làm @kyle-sexton đã nhận hôm nay. Đang mởhost-run priority: medium status: confirmed work-class: read-only
melodic-software/claude-code-plugins#13819 · 3 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
perf(pr-verify): set the capture key proxy's token-cap from a full measured captureCó thể đã có người làm @kyle-sexton đã nhận hôm nay. Đang mởhost-run priority: medium status: confirmed work-class: scoped
melodic-software/claude-code-plugins#13724 · 6 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của melodic-software/claude-code-plugins
Issue tương tự
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Frogging-Family/linux-tkg#1265 ·
-
False AMD GPU DetectionĐang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
community-scripts/core#217 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
known-red S3: friction & debt
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
MedakaLang/medaka#4969 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement needs:sonnet ready-for-agent
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày