pr-pipeline: ticket-to-merge lane decisions (pr-unblock, assess-risk) and SDLC gaps
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 8/100
Piste de recherche
This is a planning issue, not a code change: the decisions and gaps are listed for a later /planning:design pass. Start by reading the pr-pipeline README and its Concurrency table, pr-pipeline.yaml, and ADR 0051, which the issue amends. Done means a design for the pr-unblock lane that the owner approves, not a patch.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Refs: #6202
Summary
The owner interview after the first live lane (#6704, pilot #6731) settled the PR-side build order and lane shape. This issue holds those decisions and the gaps an SDLC mapping pass found, so they outlive the local planning notes. Related: #6140 (autonomy alignment), #6720 (kill-switch precedence), #6085 (pstack lanes).
Decisions
- One
pr-unblocklane in stageunblock(replacespr-update,pr-fix-ci,pr-address-feedbackand stagerespond). Activities per round, in order:update-branch,fix-ci,address-feedback; a scripted PR-state check picks which apply; one push per round.pr-mergestays separate. "Babysit" is the prose nickname. update-branchacts only on a conflict. A PR that is only behind main is left to the merge queue (main:strict_required_status_checks_policy: false, merge queueALLGREEN).- Regrouping is config. A lane is a thin caller workflow; never-rules move from lanes to activities; splitting an activity out needs only a caller file and a lane-rules row.
- Concurrency. pr-unblock's run group lets a newer trigger replace a waiting run; pushes go through the shared per-PR write queue that never cancels. The pr-pipeline README gains a Concurrency table, and every new block declares its row.
- ADR 0051 amendment:
workflow_runstarts pr-unblock with onlyfix-ciapplying (human merge). - Kill switch (#6720): org-only
CLAUDE_LANES_DISABLEDplus per-repoCLAUDE_LANES_REPO_DISABLED; every lane and the broker stop if either is true. A short design checks GitHub variable precedence and visibility first. assess-riskactivity in verify at ready: read-only, outputs a work class and a risk check thatpr-mergereads; the stricter of the issue's work-class label and the assessment wins.- No cross-PR model-run cap yet; add one only on usage telemetry.
- Testing before merge: lane-power PRs run a sandbox case first; skill-text changes rely on evals plus one pilot run.
- Naming: every stage, lane, activity and group name is checked for meaning, size and grouping before it is built.
Build order
- Map every lane setting and its home; move what can move into
pr-pipeline.yaml - Naming review of the stage, lane and activity names
-
pr-unblockwithupdate-branchonly (own/planning:design, approved plan) - Phase 3 findings store, Phase 4 verify lanes (incl.
assess-risk), Phase 5 label protocol -
fix-ciandaddress-feedbackslots; thenpr-merge - In parallel: #6720 design and fix; review-lane allowlist for the lanes App bot; triage fixes (ci-workflows#662, a reason in the escalation note, no thanks line on owner issues); then backlog re-triage in batches of 25 and an attend-queue pass
Gaps found
Ticket-to-merge path today (repo map):
- Nothing unattended flips a draft to ready
- The unattended path skips define, design, plan and local review (
workopens the PR withcreate --pushed); the attended path runs review and verify three times - No owner for post-merge bookkeeping (
track done, container close-out) - Triage runs in two places (CI intake lane and local
/work-items:triage) with no rule for which decides - Merge authority moves from the local babysit loop to
pr-mergein one switch - Adding a lane touches a workflow file, a lane-rules row, test fixtures and the standards vocabulary, all human-merged
Stages and gates outside sources include that the plan lacks (research with sources, verified 2026-10-11):
- Build/package; monitor after deploy with rollback; incident response; postmortem; migrations before and after deploy
- "Release" means either a version cut or exposing deployed code; define it (version cut) and add
rolloutif feature flags come into scope - Gates: plan approval before work, CI-run approval on agent PRs, PR publish as an explicit step, agent approval separate from review
Prior art already tracked elsewhere that the plan should absorb or decline (pstack, Pocock, 2,000-PRs effort):
- Swarm verifiers: one owner agent per PR, several independent verifiers give one verdict on the exact SHA with live proof (#6085)
- Per-app verification skill generated and kept current (
verify-<app>), beyondtesting:run-e2e(#6085) - Learn stage mines session corrections into skills or lint rules (#6085)
- Post-merge smoke check against the deployed environment and a silent-revert canary (#6202)
- A single
merge.authorityfield and rung lowering after a bad merge (#6202) - Whether a CI lane may fix review threads, which
address-feedbackdepends on (#6810) - Route new work by size and fog, and slice it into agent-ready versus human-in-the-loop (#6729, #6917)
Open, deferred to the pr-unblock design
Activity choice from PR state; how fix-ci runs head code and pushes (owner's call); stage-level effect limits (owner's call); interim attempt cap; merge-queue dequeue and UNKNOWN mergeability; push batching; write-queue scope; ship prerequisites. Post-merge failure response (revert or fix forward) stays open from an earlier round.
🤖 Generated with Claude Code
- Langage dominant
- Shell
- Étoiles
- 22
- Forks
- 2
- Merge moyen
- 1 h 13 min
- PR mergées (30 j)
- 954
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de melodic-software/claude-code-plugins
-
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
melodic-software/claude-code-plugins#9179 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Worktree-isolated sessions refuse claude plugin eval (guard reads 'eval' as shell eval)Peut-être pris @kyle-sexton l’a pris il y a 7 jours. Ouvertehost-run priority: low status: ready work-class: mechanical
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
melodic-software/claude-code-plugins#5696 · 16 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
fix(session-flow): stop handoffs from dropping in-force rules to fit the hot-file size capPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertepriority: medium status: needs-decision
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 34/100
melodic-software/claude-code-plugins#13847 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
chore(source-control): finish the public-data credential sweep left from #8282Peut-être pris @kyle-sexton l’a pris il y a 1 jour. Ouvertehost-run priority: medium status: confirmed work-class: read-only
melodic-software/claude-code-plugins#13819 · 3 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
perf(pr-verify): set the capture key proxy's token-cap from a full measured capturePeut-être pris @kyle-sexton l’a pris il y a 1 jour. Ouvertehost-run priority: medium status: confirmed work-class: scoped
melodic-software/claude-code-plugins#13724 · 6 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de melodic-software/claude-code-plugins
Issues similaires
-
Isha NarulaOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
dataplat/DataSpeakers#178 ·
-
command: start distro: Debian engine: null game: Teamspeak 3 reproducible: always severity: low type: bug
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
GameServerManagers/LinuxGSM#5193 ·
Les mainteneurs répondent en général sous 1 jour
-
[BUG] mo clean deletes Cypress test runner binaries in ~/Library/Caches/CypressPeut-être pris @viniciusdsandrade l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Min. CMake job: CMAKE_POLICY_VERSION_MINIMUM is not passed for CMake 3.16 (follow-up to #358)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
-
enhancement security severity:low
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
Battle-Cattle/BCUK-Bot-4#959 ·
Les mainteneurs répondent en général sous 1 jour