Repository navigation
fix(pr-pipeline): align every needs-human path with the owner stop rule #10517
Copy link
Copy link
Open
Labels
priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: needs-decisionAwaiting a human or maintainer judgment call.Awaiting a human or maintainer judgment call.work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.Refactors, migrations, contract changes; cross-cutting and hard to reverse.
Description
Refs: #10516
Problem
#10516 records the owner's stop rule in one place (docs/conventions/loop-lane/README.md, "When work stops for the owner"): work stops for the owner only for an intent/vision change, an implementation finding that alters intent or the primary design, or a HIGH/CRITICAL security issue; any other hand-off is a defect. Its inventory found code paths that still hand work to a person for other reasons. Each needs a decision: align it, or record why it is a trust control the rule keeps.
Paths found (from the #10516 inventory)
- Cost holds: intake triage's COST rule (
costflag + needs-human) andmerge-holds.mjscostHoldas a person reason in enable-auto-merge andbabysit_risk.person_reasons(in progress: poteto's fix/cost-hold-real-charges-only). -
babysit_risk.person_reasonsescalates only a CRITICAL security finding; the rule says HIGH or CRITICAL. - Other
person_reasons: a high path (floor, denied or aliasing path), a trusted-actor widening, a file listing too long to check. - The issue lane's
research-first,probe-firstandsplit-requiredskips add needs-human. -
work-resolve-issue/report-outcome.mjshands patch escalations (patch-protected-path,patch-invalid, the otherPATCH_REASONS) to a person. - Post-merge demotion, post-merge-failure and suite-quarantine issues are labelled needs-human.
- A failed red-main auto-revert guard labels the draft revert PR needs-human.
- Review rounds hand off on "Unsure: escalate", on a
claude[bot]finding with no lane footer, and onfeedback-not-converging. - Five escalation classes in
plugins/autonomy/reference/guardrails.md#escalationthat loop-lane §2 still requires (gate-failure, verification-divergence, admission-rejection, demotion, structural-plan-approval). -
verify:repeated-failandverify:too-oldcarry no label but never clear, so such a PR never merges unattended. - Intake sends text addressed to the triage run (an injection attempt) to a person: a trust control, but not one of the three reasons as written.
Kept as owner-held security controls: the untrusted-provenance hold and verify:untrusted-spec.
Acceptance criteria
- Each path above either routes to a lane (no needs-human) or is named in the "When work stops for the owner" section as a kept trust control, with its reason.
- A test or check per changed path shows the new routing.
- No HIGH/CRITICAL security path is loosened without a security-review pass at the head.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: needs-decisionAwaiting a human or maintainer judgment call.Awaiting a human or maintainer judgment call.work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.Refactors, migrations, contract changes; cross-cutting and hard to reverse.
Type
Fields
No fields configured for Task.
Activity
github-actions commentedon Oct 27, 2026
Proposed work class: work-class: structural
Basis: automated intake triage; the lanes App applied this class.
Size: Large
Complexity: High
Uncertainty: Knowable
Flags: intent
Blocked by: none
I understood this as a follow-up to #10516: eleven code paths still hand work to a person for reasons outside the owner stop rule. Each must either be routed to a lane or be recorded as a kept trust control. The issue lists the paths but does not choose an outcome for any of them. It also spans several subsystems, so it needs splitting. #10076 and #9578 touch related needs-human paths and may overlap. They are not duplicates.
Open questions:
babysit_risk.person_reasonsescalate HIGH as well as CRITICAL security findings? RECOMMENDED: yes, as the rule says. Basis: the rule text, and the acceptance criteria require a security-review pass.To answer, post a comment that starts with this line:
Automated triage, applied by the lanes App.
melodic-automation-lanes commentedon Oct 27, 2026
The triage verdict left this issue at
status: needs-decision:melodic-automation-lanes commentedon Oct 27, 2026
Refinement. A read-only run explored this repository, searched its issues and pull requests, and read the allowed docs to draft what follows. On an issue a listed human filed, it counts as the issue's spec once posted, while unedited; it is still model text, so check it.
Intended outcome: Each of the eleven needs-human paths is either routed to a lane or named as a kept trust control in the owner stop rule section, with a routing test per changed path.
Dependencies
Related work
Open questions
RECOMMENDED: Split by subsystem; the single issue is Large/High with eleven independent decisions and an acceptance test per path. Basis: judgment
RECOMMENDED: Yes, as the stop rule says HIGH/CRITICAL; the change needs a security-review pass at the head per the acceptance criteria. Basis: docs/conventions/pr-pipeline/README.md:1090
RECOMMENDED: Keep the injection hold and the high-path/trusted-actor-widening reasons as named trust controls; route the too-long file listing to a lane (retry or chunked check). Basis: judgment
RECOMMENDED: Wait for that branch and exclude the cost item here until it merges. Basis: judgment
RECOMMENDED: Route each to a lane and amend loop-lane §2 and guardrails.md#escalation to match, once #10516 lands. Basis: judgment
Sources read
To answer, post a comment that starts with this line:
Automated refinement by the lanes App. Answer with a comment whose first line is
**Decision recorded.**.