You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Kernel: a request for changes from a person with write access #34
Part of the epic "Epic: nine gaps in the Kernel, found in review".
Why. A review that requests changes on the current content, with no thread, converges and is approved. The Kernel reads threads only, and the facts do not say who wrote a review.
Done when
The Maintainer rules: does it gate, sending the item back to its author, or Hold, stopping it for that person. Decision 0007 says it gates.
The facts carry the reviewer's kind and whether they can write, as threads do, in the schema, the example, the test builders and the simulator, with a counter-example.
test_a_writers_request_for_changes_does_not_converge passes with @pending removed, with its mutant.
#34 Kernel: a request for changes from a person with write access
Working ruling (Solution Architect, delegated). The Maintainer may overturn it in review.
Question. Does a request for changes from a person with write access gate, sending the Work item back to its author, or Hold it until that person acts?
Options.
It gates, as that person's thread does: the author's Run answers it, then the item waits for that person.
It Holds: no Run is admitted. The author never sees the request, so UJ-4's "the next run includes that input" fails.
Keep today's behaviour and read threads only. An ordinary review then blocks nothing, which is L-14 again.
Ruling: 1. UJ-4's climax is that the Maintainer "can block an agent's pull request with an ordinary review". FR-25 puts that review into the next Run's Task. FR-33, §4.2 item 3 and decision 0007 already make it a human Finding.
The request stands until that person approves or dismisses it. New content does not clear it, because GitHub keeps it standing across pushes and L-17 forbids a Role from closing a person's objection.
A later review that only comments does not clear it.
A request for changes from a stranger or a Lens gates nothing (§4.6).
Acceptance criteria.
Each review carries by {kind, name, can_write}, as a thread's opened_by does, plus submitted_at, and the state dismissed. These go into schemas/facts.schema.json, examples/facts.json, tests/support.py and sim/world.py, with the counter-example examples/invalid/facts.review-without-reviewer.json.
test_a_writers_request_for_changes_does_not_converge is reshaped and has @pending removed. It gives addressing and human_finding, and admits a fix Run. After the author's Run it gives awaiting_human and needs_you. The one function whose_turn serves both threads and reviews.
test_a_request_for_changes_stands_until_that_person_reviews_again and test_a_strangers_request_for_changes_does_not_gate.
One mutant for "a writer gates" and one for "new content clears it".
Documents: design §3.3 reviews; decision 0007 and L-14.
Confidence. High. I would rule otherwise if the reader App's credential cannot see a reviewer's write access (L-57).
Needs the Maintainer? No. Decision 0007 already rules that it gates.
Amendment (Solution Architect working ruling on #20, 2026-10-14): reviews also carry dismissed_by. Only that person's approval, or a dismissal by a person with write access, clears a request for changes. A dismissal by an App does not, because the reviewer's App holds pull_requests: write and GitHub cannot grant less.
Activity
don-petry commentedon Oct 14, 2026
#34 Kernel: a request for changes from a person with write access
Working ruling (Solution Architect, delegated). The Maintainer may overturn it in review.
Question. Does a request for changes from a person with write access gate, sending the Work item back to its author, or Hold it until that person acts?
Options.
Ruling: 1. UJ-4's climax is that the Maintainer "can block an agent's pull request with an ordinary review". FR-25 puts that review into the next Run's Task. FR-33, §4.2 item 3 and decision 0007 already make it a
humanFinding.Acceptance criteria.
by {kind, name, can_write}, as a thread'sopened_bydoes, plussubmitted_at, and the statedismissed. These go intoschemas/facts.schema.json,examples/facts.json,tests/support.pyandsim/world.py, with the counter-exampleexamples/invalid/facts.review-without-reviewer.json.test_a_writers_request_for_changes_does_not_convergeis reshaped and has@pendingremoved. It givesaddressingandhuman_finding, and admits a fix Run. After the author's Run it givesawaiting_humanandneeds_you. The one functionwhose_turnserves both threads and reviews.test_a_request_for_changes_stands_until_that_person_reviews_againandtest_a_strangers_request_for_changes_does_not_gate.Documents: design §3.3
reviews; decision 0007 and L-14.Confidence. High. I would rule otherwise if the reader App's credential cannot see a reviewer's write access (L-57).
Needs the Maintainer? No. Decision 0007 already rules that it gates.
don-petry commentedon Oct 14, 2026
Amendment (Solution Architect working ruling on #20, 2026-10-14): reviews also carry
dismissed_by. Only that person's approval, or a dismissal by a person with write access, clears a request for changes. A dismissal by an App does not, because the reviewer's App holdspull_requests: writeand GitHub cannot grant less.