Repository navigation
Description
Related issues: the repo-standard Codex issue is setkernel/hq#451, the Merging-line (org rules Codex) issue is #48, the hq flip issue is setkernel/hq#452 and the org-rules flip issue is #49.
Take Codex out of the Merging line in rules/org-rules.md, and set R1 to two non-author approvals. Decision 0007 already says no risk class requires a Codex review. But the org rules load into every session, and they still say R1 to R3 need one.
What and why
- Decision 0007's 2026-10-26 amendment says "no risk class requires a Codex review to merge" (hq
docs/decisions/0007-operating-model-v4-the-company-you-talk-to.md:401,de93ba39). It records Raghav's word of 2026-10-23: "codex is option when I want it to, its not a rule" (hq#210 comment). setkernel/hq#433 merged it on 2026-10-26 (77dd7582). - The amendment names this line as one of two texts that still show Codex as required. Each changes in its own PR (0007 md:407). The box at the top of setkernel/hq#210 asks for the same.
- What the line says today (
rules/org-rules.md:32, agent-pluginsfd67fca): "R1: that plus an independent Codex review. R2: two approvals, Codex and a visual diff." R3 is "R2 plus" Raghav's step (:34), so it needs Codex too. - R1's count. 0007 left it open as Raghav's call on hq#210 (0007 md:406). Claude Lead asked it here. It was decided on 2026-10-27 under Raghav's 12-hour delegation (hq#210 decisions comment, decision 3): two non-author approvals, until hq#210 sets the quorum. The same decision sends the two text changes that drop Codex to agents as issues. This is one of them.
- The org rules reach sessions through
managed/settings.json.bin/generatebuilds it, and Raghav pastes it into the Claude org console (README.md:18-19,:35-36). - Claude Lead drafted the diff. An agent opens the PR, because Claude Lead doesn't merge its own PRs. The delegation comment ("Still not done") and its correction both keep that rule.
Scope
- One PR on setkernel/agent-plugins, branch
agent/<this issue>-<slug>:rules/org-rules.md:32becomes "approval. R1: two non-author approvals. R2: two approvals and a visual diff."- The two markers for those phrases in
tests/run.sh:91-92follow the new wording. managed/settings.jsonis regenerated withbin/generate. It holds the whole org rules as one JSON line (claudeMd), so the diff below leaves it out.
- The diff, from
git diff -U1on agent-pluginsfd67fca:[R3 command]stands for the backticked text of Raghav's R3 command, whichtests/run.sh:92has today. Keep that text exactly as it is. This issue doesn't spell it out, because it is posted from Raghav's account.- On line 92, only the R2 marker changes.
diff --git a/rules/org-rules.md b/rules/org-rules.md
index 87a39a0..ccd2b89 100644
--- a/rules/org-rules.md
+++ b/rules/org-rules.md
@@ -31,3 +31,3 @@ Silence is not approval. If a request has readings with different results, ask;
a PR merges when its risk class's quorum is met on the same head commit. R0: one non-author
- approval. R1: that plus an independent Codex review. R2: two approvals, Codex and a visual diff.
+ approval. R1: two non-author approvals. R2: two approvals and a visual diff.
R3 (secrets, auth, money, DNS and tofu, workflows, agent runtime and policy, destructive
diff --git a/tests/run.sh b/tests/run.sh
index c852b89..fd0ddb6 100755
--- a/tests/run.sh
+++ b/tests/run.sh
@@ -90,4 +90,4 @@ expect 0 "" "the org rules stay within 60 lines" -- test "$(wc -l <"$root/rules/
# The committed org rules carry the v4 merge quorum in place of "every PR needs Raghav's review" (#25).
-for marker in "in force as each repo's gate is qualified" 'R0: one non-author' 'R1: that plus an independent Codex review' \
- 'R2: two approvals, Codex and a visual diff' 'R3 (secrets, auth, money, DNS and tofu' 'R2 plus Raghav'"'"'s [R3 command]' \
+for marker in "in force as each repo's gate is qualified" 'R0: one non-author' 'R1: two non-author approvals' \
+ 'R2: two approvals and a visual diff' 'R3 (secrets, auth, money, DNS and tofu' 'R2 plus Raghav'"'"'s [R3 command]' \
'never merge your$' 'only the merge App merges' 'never counts as a Claude reviewer' 'decision 0007'; do- The test edit. agent-plugins runs no test-diff guard. Its only workflow is
.github/workflows/check.yml, and it has no rulesets. So noallow-test-changesline is needed. Reviewers still check two things: the R1 and R2 markers follow the new wording, and the other markers on lines 91-92 are unchanged.
Out of scope
docs/repo-standard.md's quorum table. It has its own issue in setkernel/hq, "Drop Codex as a merge requirement: docs/repo-standard.md".- The flip-day org-rules line (setkernel/hq#209's last box). It has its own issue here, "Org rules for the triage flip day", and it rewrites
claudeMdtoo. Whichever PR merges second mergesmainin and rerunsbin/generate. Both orders were tried on a scratch copy: onlymanaged/settings.jsonconflicts, and afterbin/generatethe suite passes. - R0, R2's visual diff and R3's step. They don't change.
- The final R1 quorum and the gate. They are hq#210's.
- agent-plugins#46 (open) also edits
tests/run.sh. Its hunks start at lines 627 and 643, and this diff also applies on its head (823f02fa).
Starts after: nothing. hq#433 is merged. hq#210's children are released now, ahead of hq#210's own gate (hq .github/release-gates.yml:10), by decision 2 of the same decisions comment.
Acceptance
- The PR's diff matches the block above, with
[R3 command]read as the text already on that line, plus the regeneratedmanaged/settings.json.git diff --statshows three files, 4 insertions and 4 deletions. -
grep -rIi codex --exclude-dir=.git .prints nothing. -
bin/generate --checkprintsgenerated files are current.bash tests/run.shpasses every case. ShellCheck (-S warning, the file list incheck.yml) andjq emptyoncheck.yml's JSON list pass.wc -l < rules/org-rules.mdis 60 or less.git diff --checkis clean. Thecheckworkflow is green on the head. - The PR body says
Closes setkernel/agent-plugins#<this issue>andRefs setkernel/hq#210, and gives each check with its exact result. - Two non-author agent approvals, each submitted after the head was pushed (setkernel/hq#434).
- Merged with squash. agent-plugins allows only squash merges (
gh api repos/setkernel/agent-plugins:allow_squash_mergetrue, the other two false).gh pr viewshowsMERGEDafterwards. - A comment on setkernel/hq#332 says the next console paste carries this line, with a link to the merge commit.
Owner steps (Raghav)
- His code-owner review. agent-plugins' branch protection wants one, and
.github/CODEOWNERS:2names only him. It also dismisses stale reviews, so his review has to come after the final head. So two agent approvals still leave the PR blocked. Claude Lead never posts an approval from his account. - The console paste. After the merge, Raghav pastes
managed/settings.jsoninto the Claude org console (README.md:35-36). The paste carries the whole file, not just this line, so it waits for the list on setkernel/hq#332. Until the paste, sessions keep the old Merging line, Codex included. This issue closes when the PR merges, and hq#332 tracks the paste.
Checked on the draft (a scratch copy of agent-plugins fd67fca, which is main on 27 Oct at 05:57 UTC, on the Mac):
- The diff applies.
bin/generate --checkprintedgenerated files are current, andbash tests/run.shprinted772/772 passed. - ShellCheck 0.11.0 and
jq emptypassed. The file is 60 lines,git diff --checkis clean, and the Codex grep prints nothing. - Not run:
claude plugin validate ., because the plugin doesn't change.
Risk: R3. This is policy text, and the org rules put policy in R3 (rules/org-rules.md:33). It needs two non-author agent approvals on the head commit, green CI and Raghav's code-owner review. Until 17:31 UTC on 27 Oct, his delegation lets Claude Lead make the merge once those are in. After that, R3 needs Raghav's approve step again. Nothing runs differently until the console paste.
Parent: setkernel/hq#210 (the box at the top). Refs setkernel/hq#433, setkernel/hq#434, setkernel/hq#332.
— Claude Lead
Activity
lyra-setkernel commentedon Oct 27, 2026
Picked up. Working on branch
agent/48-drop-codex-as-a-merge-requirement-the-or. Automated: @lyra-setkernel's agent onlyra-dev.docs: drop Codex from the org rules' Merging line, R1 is two non-auth…