finding(pm): a governed-surface PR can sit for days with no review request to either approver — 7 of 10 open governed PRs were missing os-zhuang, two had no request at all, and nothing reports it</title> <parameter name="labels">["finding"] #14967

Description

@hotlong

Filed by the director seat (summon #12, session session_01WXyGTWPbbreqXow7Z2pZCk) after the maintainer asked, verbatim, 「pr清单中哪些是需要我审核的,比如adr这些,为什么我没看到审核请求,是skills的问题吗?」. Named reader: the domain:skills seat (self-triaged findings; no domain:* set here). Ledger: objectstack #12708, comment 5527393443.

Measured on 2026-09-03 14:3xZ, all four repos

Every open PR's file list was matched against the governed register (docs/adr/** · .claude/** · skills/** · AGENTS.md · CLAUDE.md). Ten open PRs hit it. Their review-request state before the director sweep:

repo · PRrequestednote
objectstack #14498nobodyADR addendum; author is hotlong, so a request to hotlong is impossible (author-identity 422) and the documented fallback (assign hotlong, request os-zhuang) was not taken
objectstack #14277nobody39 governed files; the devx seat posted "ready for its human gate" on the card on 09-01 and requested no one
objectstack #14737nobodyspec-seat PR regenerating skills/*/references/_index.md; seat went off shift, no ACCEPT
objectstack #14860hotlong only
objectstack #14808hotlong only
objectui #7496hotlong only
objectui #7473hotlong only
cloud #1834bothcorrect
hotcrm #1527bothcorrect
hotcrm #1520bothcorrect

The skill text is not the defect: SKILL.md ACCEPT path ③ says to request bothos-zhuang and hotlong, and os-zhuang is an admin collaborator on objectstack and objectui (a request to it succeeded during the sweep). The objectstack/objectui seats requested one account; the cloud/hotcrm seats requested both.

Why one account is worse than it looks

hotlong is also the login the maintainer's own Claude sessions run as (this session's get_me = hotlong) and the author of some governed PRs. A request addressed only to hotlong therefore lands in the account that made it, or cannot be made at all, while the account the maintainer reads on the phone (os-zhuang, per the 2026-08-19 ruling quoted in the skill) is never asked. That is how seven governed PRs, including two ADR records, waited two days with no visible request.

What is missing

No mechanical reading covers the state "governed PR (by file list) that lacks a request or assignment to every GOVERNED_APPROVERS member". The queue guard checks approval at queue time; the half-state patrol has no row for it; the governed-merge audit is post-hoc. Suggested shape (skills seat's call, ⛔ not prescribed): one report-only H-row in scripts/pm/check-half-states.mjs that lists open PRs hitting GOVERNED_SURFACES whose requested_reviewers ∪ assignees does not cover GOVERNED_APPROVERS (both constants already exist in check-governed-queue-guard.mjs), so the seat post and the round report surface it before the maintainer has to ask. A CI-time variant on pull_request events is possible but the patrol row is enough to make the state visible.

Re-check

node scripts/pm/check-governed-merges.mjs --test <files of an open PR> # governed or not
git grep -n "GOVERNED_APPROVERS" origin/main -- scripts/pm/check-governed-queue-guard.mjs

Refs: SKILL.md ACCEPT path ③ (2026-08-27 ruling 「需要批准的主动推送到这两个账户」) · #12708 comment 5527393443 · #14498 · #14277 · #14737

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
       blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
      }
      } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
      })();
      (function(){
      try {
      var __m = "github.com";
      var __re = new RegExp('^' + "github\\.com" + '
      
      Skip to content

      finding(pm): a governed-surface PR can sit for days with no review request to either approver — 7 of 10 open governed PRs were missing os-zhuang, two had no request at all, and nothing reports it</title> <parameter name="labels">["finding"] #14967

      Description

      @hotlong

      Filed by the director seat (summon #12, session session_01WXyGTWPbbreqXow7Z2pZCk) after the maintainer asked, verbatim, 「pr清单中哪些是需要我审核的,比如adr这些,为什么我没看到审核请求,是skills的问题吗?」. Named reader: the domain:skills seat (self-triaged findings; no domain:* set here). Ledger: objectstack #12708, comment 5527393443.

      Measured on 2026-09-03 14:3xZ, all four repos

      Every open PR's file list was matched against the governed register (docs/adr/** · .claude/** · skills/** · AGENTS.md · CLAUDE.md). Ten open PRs hit it. Their review-request state before the director sweep:

      repo · PRrequestednote
      objectstack #14498nobodyADR addendum; author is hotlong, so a request to hotlong is impossible (author-identity 422) and the documented fallback (assign hotlong, request os-zhuang) was not taken
      objectstack #14277nobody39 governed files; the devx seat posted "ready for its human gate" on the card on 09-01 and requested no one
      objectstack #14737nobodyspec-seat PR regenerating skills/*/references/_index.md; seat went off shift, no ACCEPT
      objectstack #14860hotlong only
      objectstack #14808hotlong only
      objectui #7496hotlong only
      objectui #7473hotlong only
      cloud #1834bothcorrect
      hotcrm #1527bothcorrect
      hotcrm #1520bothcorrect

      The skill text is not the defect: SKILL.md ACCEPT path ③ says to request bothos-zhuang and hotlong, and os-zhuang is an admin collaborator on objectstack and objectui (a request to it succeeded during the sweep). The objectstack/objectui seats requested one account; the cloud/hotcrm seats requested both.

      Why one account is worse than it looks

      hotlong is also the login the maintainer's own Claude sessions run as (this session's get_me = hotlong) and the author of some governed PRs. A request addressed only to hotlong therefore lands in the account that made it, or cannot be made at all, while the account the maintainer reads on the phone (os-zhuang, per the 2026-08-19 ruling quoted in the skill) is never asked. That is how seven governed PRs, including two ADR records, waited two days with no visible request.

      What is missing

      No mechanical reading covers the state "governed PR (by file list) that lacks a request or assignment to every GOVERNED_APPROVERS member". The queue guard checks approval at queue time; the half-state patrol has no row for it; the governed-merge audit is post-hoc. Suggested shape (skills seat's call, ⛔ not prescribed): one report-only H-row in scripts/pm/check-half-states.mjs that lists open PRs hitting GOVERNED_SURFACES whose requested_reviewers ∪ assignees does not cover GOVERNED_APPROVERS (both constants already exist in check-governed-queue-guard.mjs), so the seat post and the round report surface it before the maintainer has to ask. A CI-time variant on pull_request events is possible but the patrol row is enough to make the state visible.

      Re-check

      node scripts/pm/check-governed-merges.mjs --test <files of an open PR> # governed or not
      git grep -n "GOVERNED_APPROVERS" origin/main -- scripts/pm/check-governed-queue-guard.mjs
      

      Refs: SKILL.md ACCEPT path ③ (2026-08-27 ruling 「需要批准的主动推送到这两个账户」) · #12708 comment 5527393443 · #14498 · #14277 · #14737

      Activity

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

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        No labels
        No labels

        Type

        No type

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
          Skip to content

          finding(pm): a governed-surface PR can sit for days with no review request to either approver — 7 of 10 open governed PRs were missing os-zhuang, two had no request at all, and nothing reports it</title> <parameter name="labels">["finding"] #14967

          Description

          @hotlong

          Filed by the director seat (summon #12, session session_01WXyGTWPbbreqXow7Z2pZCk) after the maintainer asked, verbatim, 「pr清单中哪些是需要我审核的,比如adr这些,为什么我没看到审核请求,是skills的问题吗?」. Named reader: the domain:skills seat (self-triaged findings; no domain:* set here). Ledger: objectstack #12708, comment 5527393443.

          Measured on 2026-09-03 14:3xZ, all four repos

          Every open PR's file list was matched against the governed register (docs/adr/** · .claude/** · skills/** · AGENTS.md · CLAUDE.md). Ten open PRs hit it. Their review-request state before the director sweep:

          repo · PRrequestednote
          objectstack #14498nobodyADR addendum; author is hotlong, so a request to hotlong is impossible (author-identity 422) and the documented fallback (assign hotlong, request os-zhuang) was not taken
          objectstack #14277nobody39 governed files; the devx seat posted "ready for its human gate" on the card on 09-01 and requested no one
          objectstack #14737nobodyspec-seat PR regenerating skills/*/references/_index.md; seat went off shift, no ACCEPT
          objectstack #14860hotlong only
          objectstack #14808hotlong only
          objectui #7496hotlong only
          objectui #7473hotlong only
          cloud #1834bothcorrect
          hotcrm #1527bothcorrect
          hotcrm #1520bothcorrect

          The skill text is not the defect: SKILL.md ACCEPT path ③ says to request bothos-zhuang and hotlong, and os-zhuang is an admin collaborator on objectstack and objectui (a request to it succeeded during the sweep). The objectstack/objectui seats requested one account; the cloud/hotcrm seats requested both.

          Why one account is worse than it looks

          hotlong is also the login the maintainer's own Claude sessions run as (this session's get_me = hotlong) and the author of some governed PRs. A request addressed only to hotlong therefore lands in the account that made it, or cannot be made at all, while the account the maintainer reads on the phone (os-zhuang, per the 2026-08-19 ruling quoted in the skill) is never asked. That is how seven governed PRs, including two ADR records, waited two days with no visible request.

          What is missing

          No mechanical reading covers the state "governed PR (by file list) that lacks a request or assignment to every GOVERNED_APPROVERS member". The queue guard checks approval at queue time; the half-state patrol has no row for it; the governed-merge audit is post-hoc. Suggested shape (skills seat's call, ⛔ not prescribed): one report-only H-row in scripts/pm/check-half-states.mjs that lists open PRs hitting GOVERNED_SURFACES whose requested_reviewers ∪ assignees does not cover GOVERNED_APPROVERS (both constants already exist in check-governed-queue-guard.mjs), so the seat post and the round report surface it before the maintainer has to ask. A CI-time variant on pull_request events is possible but the patrol row is enough to make the state visible.

          Re-check

          node scripts/pm/check-governed-merges.mjs --test <files of an open PR> # governed or not
          git grep -n "GOVERNED_APPROVERS" origin/main -- scripts/pm/check-governed-queue-guard.mjs
          

          Refs: SKILL.md ACCEPT path ③ (2026-08-27 ruling 「需要批准的主动推送到这两个账户」) · #12708 comment 5527393443 · #14498 · #14277 · #14737

          Activity

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

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            No labels
            No labels

            Type

            No type

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              finding(pm): a governed-surface PR can sit for days with no review request to either approver — 7 of 10 open governed PRs were missing os-zhuang, two had no request at all, and nothing reports it</title> <parameter name="labels">["finding"] #14967

              Description

              @hotlong

              Filed by the director seat (summon #12, session session_01WXyGTWPbbreqXow7Z2pZCk) after the maintainer asked, verbatim, 「pr清单中哪些是需要我审核的,比如adr这些,为什么我没看到审核请求,是skills的问题吗?」. Named reader: the domain:skills seat (self-triaged findings; no domain:* set here). Ledger: objectstack #12708, comment 5527393443.

              Measured on 2026-09-03 14:3xZ, all four repos

              Every open PR's file list was matched against the governed register (docs/adr/** · .claude/** · skills/** · AGENTS.md · CLAUDE.md). Ten open PRs hit it. Their review-request state before the director sweep:

              repo · PRrequestednote
              objectstack #14498nobodyADR addendum; author is hotlong, so a request to hotlong is impossible (author-identity 422) and the documented fallback (assign hotlong, request os-zhuang) was not taken
              objectstack #14277nobody39 governed files; the devx seat posted "ready for its human gate" on the card on 09-01 and requested no one
              objectstack #14737nobodyspec-seat PR regenerating skills/*/references/_index.md; seat went off shift, no ACCEPT
              objectstack #14860hotlong only
              objectstack #14808hotlong only
              objectui #7496hotlong only
              objectui #7473hotlong only
              cloud #1834bothcorrect
              hotcrm #1527bothcorrect
              hotcrm #1520bothcorrect

              The skill text is not the defect: SKILL.md ACCEPT path ③ says to request bothos-zhuang and hotlong, and os-zhuang is an admin collaborator on objectstack and objectui (a request to it succeeded during the sweep). The objectstack/objectui seats requested one account; the cloud/hotcrm seats requested both.

              Why one account is worse than it looks

              hotlong is also the login the maintainer's own Claude sessions run as (this session's get_me = hotlong) and the author of some governed PRs. A request addressed only to hotlong therefore lands in the account that made it, or cannot be made at all, while the account the maintainer reads on the phone (os-zhuang, per the 2026-08-19 ruling quoted in the skill) is never asked. That is how seven governed PRs, including two ADR records, waited two days with no visible request.

              What is missing

              No mechanical reading covers the state "governed PR (by file list) that lacks a request or assignment to every GOVERNED_APPROVERS member". The queue guard checks approval at queue time; the half-state patrol has no row for it; the governed-merge audit is post-hoc. Suggested shape (skills seat's call, ⛔ not prescribed): one report-only H-row in scripts/pm/check-half-states.mjs that lists open PRs hitting GOVERNED_SURFACES whose requested_reviewers ∪ assignees does not cover GOVERNED_APPROVERS (both constants already exist in check-governed-queue-guard.mjs), so the seat post and the round report surface it before the maintainer has to ask. A CI-time variant on pull_request events is possible but the patrol row is enough to make the state visible.

              Re-check

              node scripts/pm/check-governed-merges.mjs --test <files of an open PR> # governed or not
              git grep -n "GOVERNED_APPROVERS" origin/main -- scripts/pm/check-governed-queue-guard.mjs
              

              Refs: SKILL.md ACCEPT path ③ (2026-08-27 ruling 「需要批准的主动推送到这两个账户」) · #12708 comment 5527393443 · #14498 · #14277 · #14737

              Activity

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

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                No labels
                No labels

                Type

                No type

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

                  , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
                  Skip to content

                  finding(pm): a governed-surface PR can sit for days with no review request to either approver — 7 of 10 open governed PRs were missing os-zhuang, two had no request at all, and nothing reports it</title> <parameter name="labels">["finding"] #14967

                  Description

                  @hotlong

                  Filed by the director seat (summon #12, session session_01WXyGTWPbbreqXow7Z2pZCk) after the maintainer asked, verbatim, 「pr清单中哪些是需要我审核的,比如adr这些,为什么我没看到审核请求,是skills的问题吗?」. Named reader: the domain:skills seat (self-triaged findings; no domain:* set here). Ledger: objectstack #12708, comment 5527393443.

                  Measured on 2026-09-03 14:3xZ, all four repos

                  Every open PR's file list was matched against the governed register (docs/adr/** · .claude/** · skills/** · AGENTS.md · CLAUDE.md). Ten open PRs hit it. Their review-request state before the director sweep:

                  repo · PRrequestednote
                  objectstack #14498nobodyADR addendum; author is hotlong, so a request to hotlong is impossible (author-identity 422) and the documented fallback (assign hotlong, request os-zhuang) was not taken
                  objectstack #14277nobody39 governed files; the devx seat posted "ready for its human gate" on the card on 09-01 and requested no one
                  objectstack #14737nobodyspec-seat PR regenerating skills/*/references/_index.md; seat went off shift, no ACCEPT
                  objectstack #14860hotlong only
                  objectstack #14808hotlong only
                  objectui #7496hotlong only
                  objectui #7473hotlong only
                  cloud #1834bothcorrect
                  hotcrm #1527bothcorrect
                  hotcrm #1520bothcorrect

                  The skill text is not the defect: SKILL.md ACCEPT path ③ says to request bothos-zhuang and hotlong, and os-zhuang is an admin collaborator on objectstack and objectui (a request to it succeeded during the sweep). The objectstack/objectui seats requested one account; the cloud/hotcrm seats requested both.

                  Why one account is worse than it looks

                  hotlong is also the login the maintainer's own Claude sessions run as (this session's get_me = hotlong) and the author of some governed PRs. A request addressed only to hotlong therefore lands in the account that made it, or cannot be made at all, while the account the maintainer reads on the phone (os-zhuang, per the 2026-08-19 ruling quoted in the skill) is never asked. That is how seven governed PRs, including two ADR records, waited two days with no visible request.

                  What is missing

                  No mechanical reading covers the state "governed PR (by file list) that lacks a request or assignment to every GOVERNED_APPROVERS member". The queue guard checks approval at queue time; the half-state patrol has no row for it; the governed-merge audit is post-hoc. Suggested shape (skills seat's call, ⛔ not prescribed): one report-only H-row in scripts/pm/check-half-states.mjs that lists open PRs hitting GOVERNED_SURFACES whose requested_reviewers ∪ assignees does not cover GOVERNED_APPROVERS (both constants already exist in check-governed-queue-guard.mjs), so the seat post and the round report surface it before the maintainer has to ask. A CI-time variant on pull_request events is possible but the patrol row is enough to make the state visible.

                  Re-check

                  node scripts/pm/check-governed-merges.mjs --test <files of an open PR> # governed or not
                  git grep -n "GOVERNED_APPROVERS" origin/main -- scripts/pm/check-governed-queue-guard.mjs
                  

                  Refs: SKILL.md ACCEPT path ③ (2026-08-27 ruling 「需要批准的主动推送到这两个账户」) · #12708 comment 5527393443 · #14498 · #14277 · #14737

                  Activity

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

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Labels

                    No labels
                    No labels

                    Type

                    No type

                    Projects

                    No projects

                      Milestone

                      No milestone

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

                      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                      Skip to content

                      finding(pm): a governed-surface PR can sit for days with no review request to either approver — 7 of 10 open governed PRs were missing os-zhuang, two had no request at all, and nothing reports it</title> <parameter name="labels">["finding"] #14967

                      Description

                      @hotlong

                      Filed by the director seat (summon #12, session session_01WXyGTWPbbreqXow7Z2pZCk) after the maintainer asked, verbatim, 「pr清单中哪些是需要我审核的,比如adr这些,为什么我没看到审核请求,是skills的问题吗?」. Named reader: the domain:skills seat (self-triaged findings; no domain:* set here). Ledger: objectstack #12708, comment 5527393443.

                      Measured on 2026-09-03 14:3xZ, all four repos

                      Every open PR's file list was matched against the governed register (docs/adr/** · .claude/** · skills/** · AGENTS.md · CLAUDE.md). Ten open PRs hit it. Their review-request state before the director sweep:

                      repo · PRrequestednote
                      objectstack #14498nobodyADR addendum; author is hotlong, so a request to hotlong is impossible (author-identity 422) and the documented fallback (assign hotlong, request os-zhuang) was not taken
                      objectstack #14277nobody39 governed files; the devx seat posted "ready for its human gate" on the card on 09-01 and requested no one
                      objectstack #14737nobodyspec-seat PR regenerating skills/*/references/_index.md; seat went off shift, no ACCEPT
                      objectstack #14860hotlong only
                      objectstack #14808hotlong only
                      objectui #7496hotlong only
                      objectui #7473hotlong only
                      cloud #1834bothcorrect
                      hotcrm #1527bothcorrect
                      hotcrm #1520bothcorrect

                      The skill text is not the defect: SKILL.md ACCEPT path ③ says to request bothos-zhuang and hotlong, and os-zhuang is an admin collaborator on objectstack and objectui (a request to it succeeded during the sweep). The objectstack/objectui seats requested one account; the cloud/hotcrm seats requested both.

                      Why one account is worse than it looks

                      hotlong is also the login the maintainer's own Claude sessions run as (this session's get_me = hotlong) and the author of some governed PRs. A request addressed only to hotlong therefore lands in the account that made it, or cannot be made at all, while the account the maintainer reads on the phone (os-zhuang, per the 2026-08-19 ruling quoted in the skill) is never asked. That is how seven governed PRs, including two ADR records, waited two days with no visible request.

                      What is missing

                      No mechanical reading covers the state "governed PR (by file list) that lacks a request or assignment to every GOVERNED_APPROVERS member". The queue guard checks approval at queue time; the half-state patrol has no row for it; the governed-merge audit is post-hoc. Suggested shape (skills seat's call, ⛔ not prescribed): one report-only H-row in scripts/pm/check-half-states.mjs that lists open PRs hitting GOVERNED_SURFACES whose requested_reviewers ∪ assignees does not cover GOVERNED_APPROVERS (both constants already exist in check-governed-queue-guard.mjs), so the seat post and the round report surface it before the maintainer has to ask. A CI-time variant on pull_request events is possible but the patrol row is enough to make the state visible.

                      Re-check

                      node scripts/pm/check-governed-merges.mjs --test <files of an open PR> # governed or not
                      git grep -n "GOVERNED_APPROVERS" origin/main -- scripts/pm/check-governed-queue-guard.mjs
                      

                      Refs: SKILL.md ACCEPT path ③ (2026-08-27 ruling 「需要批准的主动推送到这两个账户」) · #12708 comment 5527393443 · #14498 · #14277 · #14737

                      Activity

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

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Labels

                        No labels
                        No labels

                        Type

                        No type

                        Projects

                        No projects

                          Milestone

                          No milestone

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

                          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                          Skip to content

                          finding(pm): a governed-surface PR can sit for days with no review request to either approver — 7 of 10 open governed PRs were missing os-zhuang, two had no request at all, and nothing reports it</title> <parameter name="labels">["finding"] #14967

                          Description

                          @hotlong

                          Filed by the director seat (summon #12, session session_01WXyGTWPbbreqXow7Z2pZCk) after the maintainer asked, verbatim, 「pr清单中哪些是需要我审核的,比如adr这些,为什么我没看到审核请求,是skills的问题吗?」. Named reader: the domain:skills seat (self-triaged findings; no domain:* set here). Ledger: objectstack #12708, comment 5527393443.

                          Measured on 2026-09-03 14:3xZ, all four repos

                          Every open PR's file list was matched against the governed register (docs/adr/** · .claude/** · skills/** · AGENTS.md · CLAUDE.md). Ten open PRs hit it. Their review-request state before the director sweep:

                          repo · PRrequestednote
                          objectstack #14498nobodyADR addendum; author is hotlong, so a request to hotlong is impossible (author-identity 422) and the documented fallback (assign hotlong, request os-zhuang) was not taken
                          objectstack #14277nobody39 governed files; the devx seat posted "ready for its human gate" on the card on 09-01 and requested no one
                          objectstack #14737nobodyspec-seat PR regenerating skills/*/references/_index.md; seat went off shift, no ACCEPT
                          objectstack #14860hotlong only
                          objectstack #14808hotlong only
                          objectui #7496hotlong only
                          objectui #7473hotlong only
                          cloud #1834bothcorrect
                          hotcrm #1527bothcorrect
                          hotcrm #1520bothcorrect

                          The skill text is not the defect: SKILL.md ACCEPT path ③ says to request bothos-zhuang and hotlong, and os-zhuang is an admin collaborator on objectstack and objectui (a request to it succeeded during the sweep). The objectstack/objectui seats requested one account; the cloud/hotcrm seats requested both.

                          Why one account is worse than it looks

                          hotlong is also the login the maintainer's own Claude sessions run as (this session's get_me = hotlong) and the author of some governed PRs. A request addressed only to hotlong therefore lands in the account that made it, or cannot be made at all, while the account the maintainer reads on the phone (os-zhuang, per the 2026-08-19 ruling quoted in the skill) is never asked. That is how seven governed PRs, including two ADR records, waited two days with no visible request.

                          What is missing

                          No mechanical reading covers the state "governed PR (by file list) that lacks a request or assignment to every GOVERNED_APPROVERS member". The queue guard checks approval at queue time; the half-state patrol has no row for it; the governed-merge audit is post-hoc. Suggested shape (skills seat's call, ⛔ not prescribed): one report-only H-row in scripts/pm/check-half-states.mjs that lists open PRs hitting GOVERNED_SURFACES whose requested_reviewers ∪ assignees does not cover GOVERNED_APPROVERS (both constants already exist in check-governed-queue-guard.mjs), so the seat post and the round report surface it before the maintainer has to ask. A CI-time variant on pull_request events is possible but the patrol row is enough to make the state visible.

                          Re-check

                          node scripts/pm/check-governed-merges.mjs --test <files of an open PR> # governed or not
                          git grep -n "GOVERNED_APPROVERS" origin/main -- scripts/pm/check-governed-queue-guard.mjs
                          

                          Refs: SKILL.md ACCEPT path ③ (2026-08-27 ruling 「需要批准的主动推送到这两个账户」) · #12708 comment 5527393443 · #14498 · #14277 · #14737

                          Activity

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

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Labels

                            No labels
                            No labels

                            Type

                            No type

                            Projects

                            No projects

                              Milestone

                              No milestone

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

                              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                              Skip to content

                              finding(pm): a governed-surface PR can sit for days with no review request to either approver — 7 of 10 open governed PRs were missing os-zhuang, two had no request at all, and nothing reports it</title> <parameter name="labels">["finding"] #14967

                              Description

                              @hotlong

                              Filed by the director seat (summon #12, session session_01WXyGTWPbbreqXow7Z2pZCk) after the maintainer asked, verbatim, 「pr清单中哪些是需要我审核的,比如adr这些,为什么我没看到审核请求,是skills的问题吗?」. Named reader: the domain:skills seat (self-triaged findings; no domain:* set here). Ledger: objectstack #12708, comment 5527393443.

                              Measured on 2026-09-03 14:3xZ, all four repos

                              Every open PR's file list was matched against the governed register (docs/adr/** · .claude/** · skills/** · AGENTS.md · CLAUDE.md). Ten open PRs hit it. Their review-request state before the director sweep:

                              repo · PRrequestednote
                              objectstack #14498nobodyADR addendum; author is hotlong, so a request to hotlong is impossible (author-identity 422) and the documented fallback (assign hotlong, request os-zhuang) was not taken
                              objectstack #14277nobody39 governed files; the devx seat posted "ready for its human gate" on the card on 09-01 and requested no one
                              objectstack #14737nobodyspec-seat PR regenerating skills/*/references/_index.md; seat went off shift, no ACCEPT
                              objectstack #14860hotlong only
                              objectstack #14808hotlong only
                              objectui #7496hotlong only
                              objectui #7473hotlong only
                              cloud #1834bothcorrect
                              hotcrm #1527bothcorrect
                              hotcrm #1520bothcorrect

                              The skill text is not the defect: SKILL.md ACCEPT path ③ says to request bothos-zhuang and hotlong, and os-zhuang is an admin collaborator on objectstack and objectui (a request to it succeeded during the sweep). The objectstack/objectui seats requested one account; the cloud/hotcrm seats requested both.

                              Why one account is worse than it looks

                              hotlong is also the login the maintainer's own Claude sessions run as (this session's get_me = hotlong) and the author of some governed PRs. A request addressed only to hotlong therefore lands in the account that made it, or cannot be made at all, while the account the maintainer reads on the phone (os-zhuang, per the 2026-08-19 ruling quoted in the skill) is never asked. That is how seven governed PRs, including two ADR records, waited two days with no visible request.

                              What is missing

                              No mechanical reading covers the state "governed PR (by file list) that lacks a request or assignment to every GOVERNED_APPROVERS member". The queue guard checks approval at queue time; the half-state patrol has no row for it; the governed-merge audit is post-hoc. Suggested shape (skills seat's call, ⛔ not prescribed): one report-only H-row in scripts/pm/check-half-states.mjs that lists open PRs hitting GOVERNED_SURFACES whose requested_reviewers ∪ assignees does not cover GOVERNED_APPROVERS (both constants already exist in check-governed-queue-guard.mjs), so the seat post and the round report surface it before the maintainer has to ask. A CI-time variant on pull_request events is possible but the patrol row is enough to make the state visible.

                              Re-check

                              node scripts/pm/check-governed-merges.mjs --test <files of an open PR> # governed or not
                              git grep -n "GOVERNED_APPROVERS" origin/main -- scripts/pm/check-governed-queue-guard.mjs
                              

                              Refs: SKILL.md ACCEPT path ③ (2026-08-27 ruling 「需要批准的主动推送到这两个账户」) · #12708 comment 5527393443 · #14498 · #14277 · #14737

                              Activity

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

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Labels

                                No labels
                                No labels

                                Type

                                No type

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions