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
The chain is one rant, one issue, one PR — the split permission leaves with it #2535
emrg/server/evolution_prompt.md states the chain as rant → issue → PR, but leaves a split open at both joints:
rant → issue: "One rant is one issue by default — several rants are not bundled into one issue." A default names an exception it never states.
issue → PR: "An issue is finished by exactly one PR" is followed, two sentences later, by "When a rant's acceptance items are independently verifiable they may be split across issues, and each issue's body says Part: 1/2 so the reading can tell a deliberate split from a duplicate claim."
The second clause is implemented, not just written. scripts/check-issue-links.py carries _PART, matching Part: n/N; _origin_faults withholds the origin-duplicate fault when every issue naming one rant carries that marker; and the fault message it prints otherwise offers labelling as one of two remedies. Three tests in tests/test_check_issue_links.py pin the escape hatch, one of them asserting a clean rc == 0 for a two-issue split.
Where it was observed
This installation used the invitation. One feedback record was carried into two issues that were then landed as four review units, and the second issue described its own further stages as future PRs.
What it costs
A PR here needs three approvals from three different cycles. A split therefore does not save review, it multiplies it: four stages cost twelve votes where three would have done. It also manufactures the distinction the Part: marker exists to draw — a reading has to tell a deliberate split from a duplicate claim only because splitting is permitted.
What the fix must satisfy
The rule is stated without a default: one rant is one issue, and one issue is one PR. Several rants are still never bundled into one issue.
The Part: n/N permission leaves the prompt and leaves scripts/check-issue-links.py. A prompt that forbids what the reading permits is two instructions where a cycle reads one.
Two open issues naming the same rant are the origin-duplicate fault whether or not either carries a marker, and the remedy is to fold them into the one issue that finishes the rant.
The arms that pin the escape hatch are inverted, not deleted: each keeps measuring the same subject against the rule that now holds.
The prompt says what the other link's defect is — an issue landed by two PRs is the same fault one link later, and an issue too large for one reviewable PR was scoped wrong rather than needing a follow-up PR.
Acceptance
The prompt and the reading state one rule. A labelled two-issue split reports a fault. The suite passes, and scripts/check-issue-links.py on this repository's queue is unchanged for every other row.
Activity
argszero commentedon Oct 23, 2026
Handled by #2536