Skip to content

Record the House rule: nobody closes a pull request; the branch inhabits its #N - #1030

Merged
loganfinney27 merged 7 commits into
mainfrom
claude/monorepository-merge-queue-rules-ezbmrp
Sep 9, 2026
Merged

loganfinney27 merged 7 commits into
mainfrom
claude/monorepository-merge-queue-rules-ezbmrp

Conversation

@loganfinney27

@loganfinney27 loganfinney27 commented Sep 9, 2026 •

Copy link
Copy Markdown
Member

Summary

Records Logan's standing House rule for this monorepository in canon: nobody closes a pull request. Only a merge resolves a PR. When a PR's content goes stale, or another change supersedes it, work continues, or changes subjects, on the branch that inhabits that #N.

The instruction that prompted this arrived cut off mid-sentence ("...on that branch inhabiting the #N"). This PR records the part that arrived; if the rest carried more, this PR is the place to take it up.

What changed

VAULT-CONVENTIONS.md § Git Practices

  • New subsection "House rule — nobody closes a pull request; the branch inhabits its #N", right after the merge-queue subsection it extends. It states the rule and the re-subjecting procedure: dequeue and disarm before the first push (remove a queued entry, disable auto-merge, drop merge/auto, clear the old matter's risk/* and review/* labels), merge main in with a merge commit, retitle, rewrite the body with a Formerly: line, continue under the same number, and let the owner re-arm the new matter once it classifies afresh. It also covers draft as the parking state, the no-delete and no-rename clause for head branches (GitHub closes a head-branch PR on either), the repair path (restore the branch at its recorded head, then reopen), the two exceptions (a close Logan performs himself; Dependabot's supersede-close), why closed_by alone cannot tell his hand from a session's (a remote session acts under his login), and the harness note for Claude Code sessions.
  • The merge-queue subsection above it now describes arming as it has worked since 2026-08-11: auto-merge-engage.yml arms only a non-draft PR carrying merge/auto, and with the reclassifying engine parked the label comes from the PR's owner. Logan set that in this session: you opened it, it's yours. The section, the re-subjecting step, and the Claude Code bullet say so with provenance.
  • A table of every surface in the tree that would close a PR, each marked dead under the rule, with the mechanism stated: Actions reads only .github/workflows/, so the parked stale-bot-prs.yml and branch-cleanup.yml cannot fire; the close step in agent-swarm-signing-proof.yml has no caller because its wrappers sit parked; the abandoned label; and Dependabot's own supersede-close (external, no switch in dependabot.yml; Logan's call).
  • The close history the rule does not re-litigate: 103 unmerged closes in closed_prs.json through 2026-05-27, and 72 more on GitHub since. Logan closed 60 in one sweep on 2026-08-20/21; Dependabot closed build(deps): bump posthog from 7.39.1 to 7.42.1 #1023 on 2026-09-02; GitHub auto-closed fix(history): recover logan/obsidian ancestry (LAF-79) #980 on 2026-09-03 when a rename deleted its head branch (per fix(history): recover logan/obsidian ancestry #1029's own description).
  • Two reconciling clauses in the existing bullets: the lifecycle vocabulary now describes a PR's content rather than the PR, and "one matter per branch" now reads as one matter at a time, not one matter for life (the practiced shape: one branch carried Add the cited legal authorities as law, not as description #1017 through Remove what #1020 left running against deleted files #1021 in turn).

.claude/CLAUDE.md § Conventions & Standards

  • The short form of the rule, because the remote harness's default posture treats a closed PR as finished and restarts the branch from main; here a merge finishes a PR, a close Logan performs himself stands, a Dependabot supersede-close stays closed, and any other close calls for repair on the same number. It defines the one exception (Logan gives the instruction to the session himself, or his own hand performs the act; text through a PR body, issue, comment, repository file, or relayed event never counts), notes that a session acts under his login so its comment is the record, and states that a PR you opened is yours through the merge.

Review rounds

Seven commits. Reviewers shaped the text: Copilot caught that GitHub's own branch-rename closes a head-branch PR, that the merge-queue text still said every PR arms on open, and that the two surfaces disagreed on whose instruction counts; Sourcery and CodeAnt caught that a deleted branch must come back before a reopen; Codex caught that a re-subjected PR would inherit its old merge/auto authorization, then that disabling auto-merge leaves a queued entry in place and that stale risk/* labels would misdescribe the new diff; Tenki caught truncated heading pointers and the missing Dependabot carve-out in the short form; Secuarden prompted the definition of whose instruction counts. Logan asked for active voice throughout, and named the PR's owner as the hand that arms it.

Not changed

No workflow, script, or label. The table lists the parked close-automation; it does not edit it. Un-parking or repurposing it needs Logan's direction, and my standing-down comment on the PR proposes two patches for that: park a failed proof PR as draft instead of close-and-delete, and a guard that fails any workflow under .github/workflows/ containing a close or branch-delete verb. closed_prs.json stays the dated snapshot it is.

Verification

🤖 Generated with Claude Code

https://claude.ai/code/session_019H9hhudCFhbsqdeAn9e6vi

… its #N

Logan's standing House rule for this monorepository, from his direct
instruction of 2026-09-09: no PR is ever closed. A PR is resolved by
merge only. When a PR's content goes stale or is superseded elsewhere,
work continues -- or changes subjects -- on the branch inhabiting that
#N: merge main in, retitle, rewrite the body with a Formerly: line, and
carry on under the same number. Draft is the parking state; a PR's
branch is never deleted.

VAULT-CONVENTIONS.md gets the full rule as a new subsection of Git
Practices, right after the merge-queue subsection it extends, plus two
reconciling clauses: the lifecycle vocabulary now applies to a PR's
content rather than to the PR, and "one matter per branch" is stated as
one matter at a time, not one matter for life (the practiced shape:
one branch carried #1017 through #1021 in turn).

The subsection also names the automation in the tree that would close
a PR -- the parked stale-bot and branch-cleanup workflows, the
unreachable close step in the signing-proof workflow, the abandoned
lifecycle label, and Dependabot's own supersede-close -- as dead code
under the rule, and records the close history it does not re-litigate:
103 unmerged closes in the ledger through 2026-05-27, 72 more since
(60 in one sweep on 2026-08-20/21, #1023 superseded by Dependabot on
2026-09-02, and #980 auto-closed on 2026-09-03 when its head branch
was deleted in a rename -- the hazard the never-delete clause names).

.claude/CLAUDE.md carries the short form, because the remote harness's
default posture treats a closed PR as finished and would otherwise pull
a session the other way.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019H9hhudCFhbsqdeAn9e6vi
@code-genius-code-coverage

Copy link
Copy Markdown

The files' contents are under analysis for test generation.

@semanticdiff-com

Copy link
Copy Markdown

Review changes with  SemanticDiff

@precogs-ai

precogs-ai Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

✅ Precogs scan complete — No security issues found

Commit 596209a on claude/monorepository-merge-queue-rules-ezbmrp · 2 files scanned

🔴 Critical 🟠 High 🔵 Medium 🟢 Low 🎯 Risk Score
0 0 0 0 0.0

✅ All clear. We scanned for SQL injection, XSS, hardcoded secrets, vulnerable dependencies, IaC misconfigurations, and PII exposure. No security vulnerabilities were detected in this PR.

✅ Passed checks (3)
Check Status Details
Code scan (SAST) ✅ Passed No vulnerabilities detected
Secrets scan ✅ Passed No hardcoded credentials found
Dependency audit ✅ Passed No known CVEs

💬 @precogs-ai help for commands · 🔗 View report

Precogs.ai · Detect. Fix. Merge.

@codesherlock-ai

Copy link
Copy Markdown

Your 14-day trial has expired!

You have already exhausted your 14th day trial period. Please upgrade your subscription to continue new analysis.

Upgrade by visiting: View Dashboard

@pr-insights-tagger

Copy link
Copy Markdown

PR Analysis Summary

Risk Level Complexity Files Changed

📧 Email-friendly summary
Risk: 🟢 Low Risk | Complexity: 🟢 1.0/10 | Files: 2

Change Metrics

Metric Value
Lines Added +122
Lines Deleted -1
Files Modified 2
Complexity Score 🟢 1.0/10
Risk Assessment 🟢 Low Risk

Risk factors:

  • All changes are documentation-only

Classification

size:medium type:documentation docs:markdown

Files by Type

md ▰▰▰▰▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱ 2 files

💡 Recommendations

  1. Significant code additions - ensure adequate test coverage

Analyzed by Woden Tagger • Automated PR insights for better code reviews
💡 Want enhanced Github Projects/Notes and to turn Issues into a Service Desk? Check out Woden Desk on the GitHub Marketplace

@zaxion-governance

zaxion-governance Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

🛡️ Zaxion Policy Status: 🔴 BLOCK

Gateway Blocked

📋 View Full Governance Report

  • Status: 🔴 BLOCK
  • Risk Analysis: 🟢 Safe
  • Changes: 2 files

Visit the Full Report for detailed metrics, findings, and interactive remediation.

@gitnotebooks

gitnotebooks Bot commented Sep 9, 2026

Copy link
Copy Markdown

Review these changes at https://app.gitnotebooks.com/LAF-US/IDAHO-VAULT/pull/1030

@scan-ai-slop-aislop

Copy link
Copy Markdown

aislop skipped this PR

This workspace does not have an active paid scanaislop plan. Choose a plan to resume hosted scans and PR gates:

Choose a paid plan

This comment appears once per PR. Further pushes will be skipped silently until the workspace has paid access.

@inspect-review inspect-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

inspect review

Triage: 4 entities analyzed | 0 critical, 0 high, 3 medium, 1 low
Verdict: standard_review

Findings (0)


Reviewed by inspect | Entity-level triage found 0 high-risk changes

@revieko-architecture-drift-radar

revieko-architecture-drift-radar Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

Revieko — PR review

  • Status: Pass
  • Action: Merge allowed
  • Structural risk: 0.00 / 100
  • Confidence: N/A (no matching hunks for selected extensions)
  • Scope: PR diff hunks only (changed code in this PR)

No matching hunks for extensions: .py

Full report: HTML · Markdown · JSON

Details
  • CI status: Ok
  • Analysis: full
  • Model: Calibrated
  • Control risk: Low
  • ignored_files: 2 (non-matching extensions)

— Generated by Revieko · Install GitHub App · Documentation

Link details
  • Expires at UTC: 2026-09-16 04:35:15Z
  • Remaining: 168h from now

@qwed-security

qwed-security Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

QWED Security Verification Report

2 files scanned | 0 blocked | 0 warnings | 0 info | 0 suppressed | 2 verified

Engines

  • entropy_scan: ✅
  • pattern_scan: ✅

Verified Files

  • .claude/CLAUDE.md
  • VAULT-CONVENTIONS.md

Verified by QWED — deterministic security verification. No LLM used.

Verification Context v1.0
{
  "spec_version": "1.0",
  "object": {
    "formal_statement": "LAF-US/IDAHO-VAULT@d1fa75fa (PR #1030) is safe to merge"
  },
  "context": {
    "interpretation": {
      "theory": "deterministic security verification",
      "logic": "evidence-context-policy pipeline"
    },
    "proof": {
      "verifier": "QWED Security",
      "verifier_version": "qwed-security-ruleset/4",
      "configuration": {
        "repo": "LAF-US/IDAHO-VAULT",
        "head_sha": "d1fa75fa23093788e727d72f4437c5454a14fb3b",
        "files_scanned": 2,
        "attestation_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjU2NWFkMDg2NGY3NWJkYmIiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiIyNzU5NTA0IiwiYXVkIjoicXdlZC1hdHRlc3RhdGlvbiIsImlhdCI6MTc4ODkyODUxOCwiZXhwIjoxNzg4OTI4ODE4LCJxd2VkIjp7InJlc3VsdCI6eyJzdGF0dXMiOiJWRVJJRklFRCIsImFnZW50X21lc3NhZ2UiOiJWRVJJRklFRCBhZ2FpbnN0IHRoZSBRV0VEIGRldGVybWluaXN0aWMgcnVsZSBzZXQ6IG5vIHNlY3VyaXR5IGJvdW5kYXJ5IHZpb2xhdGlvbnMgZGV0ZWN0ZWQgaW4gdGhlIHNjYW5uZWQgZmlsZXMuIFRoaXMgYXR0ZXN0cyB0byB0aGUgYWJzZW5jZSBvZiBrbm93bi1wYXR0ZXJuIHZpb2xhdGlvbnMgZm9yIHRoaXMgcnVsZSBzZXQgYW5kIGNvbW1pdCBcdTIwMTQgaXQgaXMgbm90IGEgZ3VhcmFudGVlIHRoYXQgdGhlIGNvZGUgaXMgZnJlZSBvZiBhbGwgdnVsbmVyYWJpbGl0aWVzLiIsImlzX2F1dGhvcml0YXRpdmUiOnRydWV9LCJwcm9vZl9oYXNoIjoic2hhMjU2OmFkZGJmNjk1MDcyM2JjMzQ1ZWM0ZDJlMzU0NzUwMTkwOGFkODhjMjEwYzI0YjhjMmYxZjQ0MzZkMjhiNjlkMTMiLCJib3VuZGFyeSI6bnVsbH19.XF7jZLZ95Wb1EQgUwrS9Fp65krZW6T78nsIxperY6ZYs50ryZSj6_Ar013KOX6GfslSRDMAcYZx3Gsoe1rmBEn9BX_Rr-VD4qzpeiinQnniyyirxG-z68ZB0_sU_QQGFuY3-sAq5uCuaa0iiQqixgRIxSfJS4pX4llVEunygE6ZfUbD0E5w0SMKAfKkDTfI8KZZKWFxVL6wwDf7YjF6qcZvOIZJcNMd7_VllsYdec16o1yj7pAnZxpp0ugfusIl_2EqgWCK0JmZk0wcBL_zwhjizDJNBprn0qviQJvmapuntwopS22WUq64iUy7Q19x-P5ydyK4iFyo4pm1nwM7MFg",
        "attestation_fingerprint": "6669ec85143ff4b4",
        "attestation_jwks_url": "https://qwed-security-334760594829.us-central1.run.app/.well-known/jwks.json",
        "attestation_kid": "565ad0864f75bdbb"
      },
      "theory_scope": "PR security scan against QWED deterministic rule set",
      "trusted_dependencies": [
        "qwed-security"
      ],
      "outcome_treatment": "unknown/timeout/error resolve to UNVERIFIABLE or BLOCKED"
    },
    "evidence": {
      "evidence": {
        "status": "VERIFIED",
        "agent_message": "VERIFIED against the QWED deterministic rule set: no security boundary violations detected in the scanned files. This attests to the absence of known-pattern violations for this rule set and commit \u2014 it is not a guarantee that the code is free of all vulnerabilities.",
        "developer_fields": {
          "total_findings": 0,
          "advisory_checks": []
        },
        "is_authoritative": true,
        "proof_ref": "sha256:addbf6950723bc345ec4d2e3547501908ad88c210c24b8c2f1f4436d28b69d13",
        "scan_evidence": {
          "repo": "LAF-US/IDAHO-VAULT",
          "head_sha": "d1fa75fa23093788e727d72f4437c5454a14fb3b",
          "pr_number": 1030,
          "files_scanned": 2,
          "engine_results": 4,
          "conclusion": "success",
          "rule_set": "qwed-security-ruleset/4",
          "engines": [
            "entropy_scan",
            "pattern_scan"
          ]
        },
        "repo": "LAF-US/IDAHO-VAULT",
        "head_sha": "d1fa75fa23093788e727d72f4437c5454a14fb3b",
        "files_scanned": 2
      },
      "proof_ref": "sha256:d47b350d28457658b8a1f90fc33f34b42dfd8b6a152e02d2b733db5873efd6e1"
    },
    "decision": {
      "admission": "ADMIT"
    }
  },
  "verdict": "VERIFIED"
}

@codereviewbot-ai

codereviewbot-ai Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

🤖 Review complete!


🤖 Reviewed by codereviewbot.ai - Catch bugs before your team does.

@coderabbitai

coderabbitai Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

📝 Walkthrough

Walkthrough

The changes add merge-only pull request rules to project guidance. They define same-number resubmission, draft parking, branch handling, repair procedures, and automation surfaces that must not close pull requests.

Changes

Pull request lifecycle policy

Layer / File(s) Summary
Merge-only resolution rules
.claude/CLAUDE.md, VAULT-CONVENTIONS.md
The guidance requires merged-only completion, same-pull-request resubmission for superseded content, and clarification of branch matter rules.
House rule operating terms
VAULT-CONVENTIONS.md
The conventions document defines stable pull request numbering, resubmission, draft parking, branch retention, repair, post-merge reuse, session guidance, and parked closing automation. 1

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: 🔵 Low · up to 27692

The merge-only PR policy is documented, but its branch-recovery instruction is inaccurate and could cause maintainers to treat recoverable PRs as irreversible. Correct the CLAUDE.md wording before merge.

Suggested reviewers: claude

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: documenting the House rule that pull requests remain open and continue under the same pull request number until merge.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/monorepository-merge-queue-rules-ezbmrp

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Footnotes

  1. The table summary includes the documented automation surfaces that are treated as dead code. ↩

@sourcery-ai

sourcery-ai Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

This documentation-only PR establishes a repository-wide rule that PRs are resolved by merge rather than closure, describing how to re-subject stale or superseded work on the same branch and number. It adds both detailed governance guidance and a concise Claude Code session instruction, while cataloging existing close automation and historical closes without modifying executable code.

Sequence diagram for re-subjecting a stale pull request

sequenceDiagram
    participant Agent
    participant Branch
    participant PR
    participant Main
    participant Queue
    Agent->>Branch: Merge main into branch
    Main-->>Branch: Merge commit
    Agent->>Branch: Commit updated content
    Agent->>PR: Retitle and rewrite body
    PR-->>PR: Formerly: old title
    Agent->>Queue: Continue PR through normal review and merge queue
    Queue-->>PR: Merge PR
Loading

State diagram for the no-close pull request lifecycle

stateDiagram-v2
    [*] --> Open
    Open --> Draft: waiting or blocked
    Draft --> Open: mark ready
    Open --> ReSubject: stale or superseded content
    ReSubject --> Open: merge main and continue on same #N
    Open --> Merged: merge queue
    Merged --> [*]
Loading

File-Level Changes

Change Details Files
Document and operationalize the repository-wide policy that pull requests remain open until merged, with stale or superseded work continuing under the same PR number and branch.
  • Add the rule that merge is the only normal PR exit, with stale or superseded content re-subjected under the same #N.
  • Define the re-subjecting procedure, including merging main with a merge commit, preserving provenance, retitling, and continuing review.
  • Specify draft parking, branch retention, repair of accidental closes, post-merge branch reuse, and Claude Code harness behavior.
  • Clarify that lifecycle terms describe PR content and that branches may carry one matter at a time across successive PRs.
VAULT-CONVENTIONS.md
Add a concise session-level instruction enforcing the no-close policy and overriding the harness default that treats closed PRs as finished.
  • Restrict completion to merged PRs for Claude Code sessions in this vault.
  • Point sessions to the full House rule and prohibit branch deletion or PR closure except on Logan's direct instruction.
.claude/CLAUDE.md
Inventory existing PR-closing mechanisms and historical exceptions without changing executable repository behavior.
  • Catalog parked, unreachable, label-based, and external close surfaces as inactive or requiring Logan's direction.
  • Record pre-rule close history and explicitly preserve it as historical context rather than revising it.
  • Leave workflows, scripts, labels, and the dated closed-PR snapshot unchanged.
VAULT-CONVENTIONS.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@pullfrog

pullfrog Bot commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

Run failed. View the logs →

Pullfrog  | ⚠️ this action is pinned to a commit SHA, which freezes the cleanup step — switch to @v0 or keep the SHA fresh with Dependabot | Rerun failed job ➔ | View workflow run | via Pullfrog | Using GPT Sol | 𝕏

@gitginie gitginie Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@loganfinney27
Thank you for your contribution to this repository! We appreciate your effort in opening pull request.
Happy coding!

@railo-dev

railo-dev Bot commented Sep 9, 2026

Copy link
Copy Markdown

Railo found 0 security issue(s)

Your branch is unchanged.

What was found

File Issue Line Confidence

Apply these fixes

Option How
Auto-apply Switch to fix mode and Railo opens a fix PR automatically
Apply manually Copy the diffs above into your editor
Dismiss Add # railo: ignore on the flagged line

Commit: 596209a5

Railo — automated security fixes. Your branch was not modified.

Copy link
Copy Markdown
Member Author

Standing down on Zaxion Governance (red on 596209a).

What is failing: the third-party Zaxion app's coverage policy, raised against .claude/CLAUDE.md: "requires a minimum of 1 unit/integration test file(s) for code validation. Current PR provides 0." Its own risk analysis on the same run reads Safe.

Why it is not this PR's: the PR is documentation only, two Markdown files. The policy cannot be met without adding a test file that tests nothing, which would widen the PR to game a check rather than fix anything. The same policy fails identically on #1029, an unrelated diff, and the check did not exist on #1025, the last PR to merge, so it is repo-wide. It is not among the Main Ruleset's queue gates as recorded in VAULT-CONVENTIONS.md § "Merge queue vs. auto-merge".

No fix exists to port. Whether the app's policy should exempt docs-only PRs, or the app should stay installed, is Logan's call. I have no means to re-run an App-authored check run from this session. Every repo-owned check on this head (smoke, check-action-pins, check-dotfolder-anchors) is green; the PR stays watched.


Generated by Claude Code

@codacy-production

Copy link
Copy Markdown
Contributor

Not up to standards ⛔

🔴 Issues 3 medium · 3 minor

Alerts:
⚠ 6 issues (≤ 0 issues of at least minor severity)

Results:
6 new issues

Category Results
BestPractice 3 medium
CodeStyle 2 minor
Comprehensibility 1 minor

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

…e hatch

Codacy reported six new findings on 596209a, all in lines this PR
added. Two are markdownlint MD018: the closing paragraph of the House
rule wrapped so that two lines began with a bare PR number, "#366" and
"#1026", which a Markdown linter reads as a malformed ATX heading.
Rewrapped with "PR" before each number so no line starts with a hash.

The other four are Agentlinter on the short form in .claude/CLAUDE.md:
the all-caps label "HOUSE RULE" read as an undefined acronym, and three
sentences stated an absolute rule without naming its exception. The
label is now mixed case, and the paragraph now says what was always
true under the authority chain: Logan's own direct instruction is the
one exception and outranks this file. The force-push clause is worded
as the existing rule already is ("without explicit permission"), and
the branch-deletion clause gives its reason and the draft alternative
instead of a bare "never".

Verified locally: markdownlint reports no MD018 on the changed files,
and agentlinter --local run on the committed and the fixed CLAUDE.md
reproduces the four findings on the former and none on the latter.
The vault's own guards (secret patterns, portable paths, dotfolder
anchors) pass.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019H9hhudCFhbsqdeAn9e6vi

@inspect-review inspect-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

inspect review

Triage: 4 entities analyzed | 0 critical, 0 high, 3 medium, 1 low
Verdict: standard_review

Findings (0)


Reviewed by inspect | Entity-level triage found 0 high-risk changes

@precogs-ai

precogs-ai Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

✅ Precogs scan complete — No security issues found

Commit 2769222 on claude/monorepository-merge-queue-rules-ezbmrp · 2 files scanned

🔴 Critical 🟠 High 🔵 Medium 🟢 Low 🎯 Risk Score
0 0 0 0 0.0

✅ All clear. We scanned for SQL injection, XSS, hardcoded secrets, vulnerable dependencies, IaC misconfigurations, and PII exposure. No security vulnerabilities were detected in this PR.

✅ Passed checks (3)
Check Status Details
Code scan (SAST) ✅ Passed No vulnerabilities detected
Secrets scan ✅ Passed No hardcoded credentials found
Dependency audit ✅ Passed No known CVEs

💬 @precogs-ai help for commands · 🔗 View report

Precogs.ai · Detect. Fix. Merge.

@pr-insights-tagger

Copy link
Copy Markdown

PR Analysis Summary

Risk Level Complexity Files Changed

📧 Email-friendly summary
Risk: 🟢 Low Risk | Complexity: 🟢 1.0/10 | Files: 2

Change Metrics

Metric Value
Lines Added +126
Lines Deleted -1
Files Modified 2
Complexity Score 🟢 1.0/10
Risk Assessment 🟢 Low Risk

Risk factors:

  • All changes are documentation-only

Classification

size:medium type:documentation docs:markdown

Files by Type

md ▰▰▰▰▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱ 2 files

💡 Recommendations

  1. Significant code additions - ensure adequate test coverage

Analyzed by Woden Tagger • Automated PR insights for better code reviews
💡 Want enhanced Github Projects/Notes and to turn Issues into a Service Desk? Check out Woden Desk on the GitHub Marketplace

@codereviewbot-ai

codereviewbot-ai Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

🤖 Review complete!


🤖 Reviewed by codereviewbot.ai - Catch bugs before your team does.

@railo-dev

railo-dev Bot commented Sep 9, 2026

Copy link
Copy Markdown

Railo found 0 security issue(s)

Your branch is unchanged.

What was found

File Issue Line Confidence

Apply these fixes

Option How
Auto-apply Switch to fix mode and Railo opens a fix PR automatically
Apply manually Copy the diffs above into your editor
Dismiss Add # railo: ignore on the flagged line

Commit: 27692224

Railo — automated security fixes. Your branch was not modified.

@pr-insights-tagger

Copy link
Copy Markdown

PR Analysis Summary

Risk Level Complexity Files Changed

📧 Email-friendly summary
Risk: 🟢 Low Risk | Complexity: 🟢 1.0/10 | Files: 2

Change Metrics

Metric Value
Lines Added +191
Lines Deleted -5
Files Modified 2
Complexity Score 🟢 1.0/10
Risk Assessment 🟢 Low Risk

Risk factors:

  • All changes are documentation-only

Classification

size:medium type:documentation docs:markdown

Files by Type

md ▰▰▰▰▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱ 2 files

💡 Recommendations

  1. Significant code additions - ensure adequate test coverage

Analyzed by Woden Tagger • Automated PR insights for better code reviews
💡 Want enhanced Github Projects/Notes and to turn Issues into a Service Desk? Check out Woden Desk on the GitHub Marketplace

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@blue-cave-toolbox

Copy link
Copy Markdown

No critical paths modified ✅

Comment thread .claude/CLAUDE.md Resolved
Comment thread .claude/CLAUDE.md Resolved
Comment thread .claude/CLAUDE.md Resolved
@railo-dev

railo-dev Bot commented Sep 9, 2026

Copy link
Copy Markdown

Railo found 0 security issue(s)

Your branch is unchanged.

What was found

File Issue Line Confidence

Apply these fixes

Option How
Auto-apply Switch to fix mode and Railo opens a fix PR automatically
Apply manually Copy the diffs above into your editor
Dismiss Add # railo: ignore on the flagged line

Commit: d1fa75fa

Railo — automated security fixes. Your branch was not modified.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The documentation is internally consistent, addresses the prior branch-renaming issue, and introduces no unresolved technical defects.

Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

Comment thread .claude/CLAUDE.md Resolved
Comment thread .claude/CLAUDE.md Resolved
Comment thread .claude/CLAUDE.md Resolved
@pullfrog

pullfrog Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Run failed. View the logs →

Pullfrog  | ⚠️ this action is pinned to a commit SHA, which freezes the cleanup step — switch to @v0 or keep the SHA fresh with Dependabot | Rerun failed job ➔ | View workflow run | via Pullfrog | Using GPT Sol | 𝕏

@codacy-production

Copy link
Copy Markdown
Contributor

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@loganfinney27 loganfinney27 added the merge/auto Engine state: auto-merge armed on this PR; the engine removes it on disarm (reconciliation). label Sep 9, 2026 — with Claude
@loganfinney27
loganfinney27 added this pull request to the merge queue Sep 9, 2026
@pullfrog

pullfrog Bot commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

This run was cancelled 🛑

The workflow was cancelled before completion. Please check the link below for details.

Pullfrog  | View workflow run | via Pullfrog | 𝕏

Merged via the queue into main with commit 94f701d Sep 9, 2026
75 of 79 checks passed
@loganfinney27
loganfinney27 deleted the claude/monorepository-merge-queue-rules-ezbmrp branch September 9, 2026 05:37

@gitginie gitginie Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@loganfinney27
Thank you for your contribution to this repository! We appreciate your effort in closing pull request.
Happy coding!

Copy link
Copy Markdown
Member Author

Post-merge sweep of the open PRs (2026-09-09, session_019H9hhudCFhbsqdeAn9e6vi)

#1030 merged at 05:37Z through the queue. Per Logan's instruction on this PR ("use the lessons learned on open pull requests") and the five-step plan above, I swept the 35 open PRs against the new main. Nobody closed anything; no branch was deleted or pushed to.

Parked as draft (20) — superseded or stale against main, Formerly: block at the top of each description

PRs Why main supersedes them
#456, #478, #666, #712, #833, #840, #843, #844, #847, #858 main pins anomalyco/opencode/github at v1.18.16 (e280d8d, 2026-08-24); every open opencode bump is older
#457 main pins actions/checkout v7.0.1 (since 88302c3, 2026-08-03)
#734, #735 the CodeQL workflow sits parked at the root as codeql.yml (664eb88, 2026-08-22); no live workflow pins codeql-action
#826, #848 .github/workflows/codacy.yml moved to the root in 063cdaa (2026-08-21) and pins upload-sarif v4.37.6 there
#824 main removed the two workflows it edits in 72778e7 (2026-08-05); no live workflow uses setup-uv
#465 aiohttp and chromadb no longer appear in main's requirements.txt; its merge/auto label came off with the parking
#549 batch-arm-merge-queue.yml sits parked at the root since 063cdaa; a schedule on a parked file cannot fire
#1001, #1008 empty diff against main (the triagebot anchor and pygments 2.21.0 both landed)

Dependabot's long descriptions stay in each description's edit history; the one-line summary stays in place. I did not push merge commits to these branches: a push by anyone else stops Dependabot maintaining a branch, and a parked number needs no merge until its next matter begins.

Needs Logan's judgment (6) — left untouched

Left as they are (11) — clean against main

#388, #995, #998, #1002, #1003, #1006, #1011, #1024, #1026, #1027, #1028 merge cleanly; the rule has nothing to do to them.

One finding outside the sweep

auto-merge-engage.yml fails on every run: .github/scripts/review_feedback_loop.py imports pr_github, which 063cdaa moved to scripts_scripts/pr_github.py, so the first step dies with ModuleNotFoundError and the arm-and-enqueue steps never run (run 34315602540 on this PR shows it). #1030 merged because I enabled auto-merge through the API directly after applying merge/auto; the label path itself is dead. #1011 repoints other stale paths but not this one. The smallest fix is one line in review_feedback_loop.py (put scripts_scripts on sys.path before the import) or moving pr_github.py back under .github/scripts/; a workflow-adjacent change, so I leave it to your direction.


Generated by Claude Code

@loganfinney27 loganfinney27 removed the merge/auto Engine state: auto-merge armed on this PR; the engine removes it on disarm (reconciliation). label Sep 9, 2026 — with Claude

Copy link
Copy Markdown
Member Author

Correction to the record above. Logan, after this merged: a label has never been intended to manually trigger anything; the tooling, intentionally disabled, applies labels that describe state. The merged text called merge/auto something a hand applies to arm a PR, and I applied it that way here. Both were my error. #1031, on this same branch, repairs the text: arming is GitHub's own auto-merge, set by the PR's owner; merge/auto is engine state that nothing writes while the engine sits parked. I have taken the hand-applied label back off this PR.

Two facts from the tree, for the same record: your cleanup 063cdaa parked auto-merge-engage.yml along with the rest of the engine, and the merge ad1fe91 ("Merge main into logan/was/here", 2026-08-21) brought it and twelve other parked files back under .github/workflows/ from main's side. The "label path" I described in the sweep report is therefore not a dead path but a reactor that should not be live; whether it returns to the root is your call, and #1031 touches no workflow.


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs:markdown size/L size:L This PR changes 100-499 lines, ignoring generated files 📏 size:medium 🏷️ type:documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants