Skip to content

Drop Codex as a merge requirement: the org rules' Merging line #48

Closed

Description

@realRaghavGupta

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-plugins fd67fca): "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/generate builds 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:32 becomes "approval. R1: two non-author approvals. R2: two approvals and a visual diff."
    • The two markers for those phrases in tests/run.sh:91-92 follow the new wording.
    • managed/settings.json is regenerated with bin/generate. It holds the whole org rules as one JSON line (claudeMd), so the diff below leaves it out.
  • The diff, from git diff -U1 on agent-plugins fd67fca:
    • [R3 command] stands for the backticked text of Raghav's R3 command, which tests/run.sh:92 has 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 no allow-test-changes line 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 claudeMd too. Whichever PR merges second merges main in and reruns bin/generate. Both orders were tried on a scratch copy: only managed/settings.json conflicts, and after bin/generate the 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 regenerated managed/settings.json. git diff --stat shows three files, 4 insertions and 4 deletions.
  • grep -rIi codex --exclude-dir=.git . prints nothing.
  • bin/generate --check prints generated files are current. bash tests/run.sh passes every case. ShellCheck (-S warning, the file list in check.yml) and jq empty on check.yml's JSON list pass. wc -l < rules/org-rules.md is 60 or less. git diff --check is clean. The check workflow is green on the head.
  • The PR body says Closes setkernel/agent-plugins#<this issue> and Refs 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_merge true, the other two false). gh pr view shows MERGED afterwards.
  • 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:2 names 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.json into 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 --check printed generated files are current, and bash tests/run.sh printed 772/772 passed.
  • ShellCheck 0.11.0 and jq empty passed. The file is 60 lines, git diff --check is 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

  1. added
    agent-readyReady for an agent to pick up
    model:opusRun this task's main step at this setting (sk-agent, hq#174)
    effort:highRun this task's main step at this setting (sk-agent, hq#174)
    on Oct 27, 2026
  2. added and removed
    agent-readyReady for an agent to pick up
    on Oct 27, 2026
  3. lyra-setkernel commented on Oct 27, 2026

    @lyra-setkernel
    Contributor

    Picked up. Working on branch agent/48-drop-codex-as-a-merge-requirement-the-or. Automated: @lyra-setkernel's agent on lyra-dev.

  4. added
    agent-reviewWaiting for agent review
    and removed on Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

agent-reviewWaiting for agent revieweffort:highRun this task's main step at this setting (sk-agent, hq#174)model:opusRun this task's main step at this setting (sk-agent, hq#174)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions