dispatch-gates places check:ratchet-remedy-authority in "undetermined" — a scripts/** sweep that no derived family names, so a full local family run misses it #13813

Description

@claude

Measured while working #13489 (PR #13797). Filed unassigned.

What happened

A PR touching three scripts/** files ran its full derived gate family locally — every family green — and CI reddened on pnpm check:ratchet-remedy-authority, a gate that was not in the derived family. Both readings were true, and of the same tree: nothing landed between the push and the failing run.

The measurement

node scripts/pm/dispatch-gates.mjs --residue scripts/check-self-test-wired.mjs scripts/check-self-test-workflow-commands.mjs scripts/measure-self-test-floor.mjs places it in:

Undetermined (source names no path at all — NOT known irrelevant): 39 famil(ies).
...
- pnpm check:ratchet-remedy-authority [lint.yml]

Not matched, not silentundetermined, one of 39.

The cause is mechanical and visible in the gate's own source. It sweeps scripts/*.{mjs,mts} — a real, wide path population, 176 files on the day it was measured — but it builds that population at runtime from readdirSync(SCRIPTS_DIR). The string scripts/*.{mjs,mts} exists in the file only inside its output messages and one comment, never as a declared literal. So the derivation reads no path population, declares nothing, and makes no claim.

Compare the eight families that did match those same three paths: every one of them matched at gate source 'scripts/**', because their populations are spelled where the derivation can read them.

Why this is worth a card rather than a footnote

The derivation is honest about it in its own residue text — "NOT known irrelevant", and it even says the bucket is largely unexamined: "2 of those 39 undetermined famil(ies) DECLARE that they have no path population... Those have been examined; the rest of the bucket has not, and the two used to read alike." On the next line of the same output, check:release-body carries an explicit declared no path population marker with its reason; check:ratchet-remedy-authority carries nothing.

The gap is between that residue text and what a dispatch brief actually carries. The brief prints the matched list. A dev who runs exactly that list has run a set that does not contain this gate, and the honest caveat that would have warned them is in a section nobody pastes.

⭐ Note the class: a derivation that passes while not covering what its reader takes it to cover. That is the same shape as the card this was found on — a check believed to cover something on evidence other than its own assertion.

The remedy shape

Declare the subtree the gate really walks, beside the literal, using the ROOT_DIR_WATCH_HINTS idiom scripts/check-watch-hint-literal.mjs already gates. The gate then moves from undetermined to matched for every scripts/** card, and the derivation stops being silent about a sweep that reads every file in the directory.

⛔ Deliberately not done in PR #13797: that PR's scope was its own two files' new text, and this is a change to a third gate's declared population with its own gate to satisfy.

Worth checking at the same time

The other 37 undetermined families have not been examined. Any one of them that computes a wide population the same way is invisible in exactly the same manner, and the count says nothing about which.


Generated by Claude Code

Metadata

Metadata

Assignees

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)) { // Add copy buttons to all
     blocks
    (function() {
    function addCopyButtons() {
    document.querySelectorAll('pre code').forEach(function(codeBlock) {
    if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
    codeBlock.parentElement.setAttribute('data-copy-added', 'true');
    var btn = document.createElement('button');
    btn.textContent = 'Copy';
    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;';
    btn.onmouseover = function() { this.style.opacity = '1'; };
    btn.onmouseout = function() { this.style.opacity = '0.7'; };
    btn.onclick = function() {
    navigator.clipboard.writeText(codeBlock.textContent).then(function() {
    btn.textContent = 'Copied!';
    setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
    });
    };
    codeBlock.parentElement.style.position = 'relative';
    codeBlock.parentElement.appendChild(btn);
    });
    }
    addCopyButtons();
    // Re-run on dynamic content
    var observer = new MutationObserver(addCopyButtons);
    observer.observe(document.body, { childList: true, subtree: true });
    })();
    }
    } 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

    dispatch-gates places check:ratchet-remedy-authority in "undetermined" — a scripts/** sweep that no derived family names, so a full local family run misses it #13813

    Description

    @claude

    Measured while working #13489 (PR #13797). Filed unassigned.

    What happened

    A PR touching three scripts/** files ran its full derived gate family locally — every family green — and CI reddened on pnpm check:ratchet-remedy-authority, a gate that was not in the derived family. Both readings were true, and of the same tree: nothing landed between the push and the failing run.

    The measurement

    node scripts/pm/dispatch-gates.mjs --residue scripts/check-self-test-wired.mjs scripts/check-self-test-workflow-commands.mjs scripts/measure-self-test-floor.mjs places it in:

    Undetermined (source names no path at all — NOT known irrelevant): 39 famil(ies).
    ...
    - pnpm check:ratchet-remedy-authority [lint.yml]
    

    Not matched, not silentundetermined, one of 39.

    The cause is mechanical and visible in the gate's own source. It sweeps scripts/*.{mjs,mts} — a real, wide path population, 176 files on the day it was measured — but it builds that population at runtime from readdirSync(SCRIPTS_DIR). The string scripts/*.{mjs,mts} exists in the file only inside its output messages and one comment, never as a declared literal. So the derivation reads no path population, declares nothing, and makes no claim.

    Compare the eight families that did match those same three paths: every one of them matched at gate source 'scripts/**', because their populations are spelled where the derivation can read them.

    Why this is worth a card rather than a footnote

    The derivation is honest about it in its own residue text — "NOT known irrelevant", and it even says the bucket is largely unexamined: "2 of those 39 undetermined famil(ies) DECLARE that they have no path population... Those have been examined; the rest of the bucket has not, and the two used to read alike." On the next line of the same output, check:release-body carries an explicit declared no path population marker with its reason; check:ratchet-remedy-authority carries nothing.

    The gap is between that residue text and what a dispatch brief actually carries. The brief prints the matched list. A dev who runs exactly that list has run a set that does not contain this gate, and the honest caveat that would have warned them is in a section nobody pastes.

    ⭐ Note the class: a derivation that passes while not covering what its reader takes it to cover. That is the same shape as the card this was found on — a check believed to cover something on evidence other than its own assertion.

    The remedy shape

    Declare the subtree the gate really walks, beside the literal, using the ROOT_DIR_WATCH_HINTS idiom scripts/check-watch-hint-literal.mjs already gates. The gate then moves from undetermined to matched for every scripts/** card, and the derivation stops being silent about a sweep that reads every file in the directory.

    ⛔ Deliberately not done in PR #13797: that PR's scope was its own two files' new text, and this is a change to a third gate's declared population with its own gate to satisfy.

    Worth checking at the same time

    The other 37 undetermined families have not been examined. Any one of them that computes a wide population the same way is invisible in exactly the same manner, and the count says nothing about which.


    Generated by Claude Code

    Metadata

    Metadata

    Assignees

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

      dispatch-gates places check:ratchet-remedy-authority in "undetermined" — a scripts/** sweep that no derived family names, so a full local family run misses it #13813

      Description

      @claude

      Measured while working #13489 (PR #13797). Filed unassigned.

      What happened

      A PR touching three scripts/** files ran its full derived gate family locally — every family green — and CI reddened on pnpm check:ratchet-remedy-authority, a gate that was not in the derived family. Both readings were true, and of the same tree: nothing landed between the push and the failing run.

      The measurement

      node scripts/pm/dispatch-gates.mjs --residue scripts/check-self-test-wired.mjs scripts/check-self-test-workflow-commands.mjs scripts/measure-self-test-floor.mjs places it in:

      Undetermined (source names no path at all — NOT known irrelevant): 39 famil(ies).
      ...
      - pnpm check:ratchet-remedy-authority [lint.yml]
      

      Not matched, not silentundetermined, one of 39.

      The cause is mechanical and visible in the gate's own source. It sweeps scripts/*.{mjs,mts} — a real, wide path population, 176 files on the day it was measured — but it builds that population at runtime from readdirSync(SCRIPTS_DIR). The string scripts/*.{mjs,mts} exists in the file only inside its output messages and one comment, never as a declared literal. So the derivation reads no path population, declares nothing, and makes no claim.

      Compare the eight families that did match those same three paths: every one of them matched at gate source 'scripts/**', because their populations are spelled where the derivation can read them.

      Why this is worth a card rather than a footnote

      The derivation is honest about it in its own residue text — "NOT known irrelevant", and it even says the bucket is largely unexamined: "2 of those 39 undetermined famil(ies) DECLARE that they have no path population... Those have been examined; the rest of the bucket has not, and the two used to read alike." On the next line of the same output, check:release-body carries an explicit declared no path population marker with its reason; check:ratchet-remedy-authority carries nothing.

      The gap is between that residue text and what a dispatch brief actually carries. The brief prints the matched list. A dev who runs exactly that list has run a set that does not contain this gate, and the honest caveat that would have warned them is in a section nobody pastes.

      ⭐ Note the class: a derivation that passes while not covering what its reader takes it to cover. That is the same shape as the card this was found on — a check believed to cover something on evidence other than its own assertion.

      The remedy shape

      Declare the subtree the gate really walks, beside the literal, using the ROOT_DIR_WATCH_HINTS idiom scripts/check-watch-hint-literal.mjs already gates. The gate then moves from undetermined to matched for every scripts/** card, and the derivation stops being silent about a sweep that reads every file in the directory.

      ⛔ Deliberately not done in PR #13797: that PR's scope was its own two files' new text, and this is a change to a third gate's declared population with its own gate to satisfy.

      Worth checking at the same time

      The other 37 undetermined families have not been examined. Any one of them that computes a wide population the same way is invisible in exactly the same manner, and the count says nothing about which.


      Generated by Claude Code

      Metadata

      Metadata

      Assignees

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

        dispatch-gates places check:ratchet-remedy-authority in "undetermined" — a scripts/** sweep that no derived family names, so a full local family run misses it #13813

        Description

        @claude

        Measured while working #13489 (PR #13797). Filed unassigned.

        What happened

        A PR touching three scripts/** files ran its full derived gate family locally — every family green — and CI reddened on pnpm check:ratchet-remedy-authority, a gate that was not in the derived family. Both readings were true, and of the same tree: nothing landed between the push and the failing run.

        The measurement

        node scripts/pm/dispatch-gates.mjs --residue scripts/check-self-test-wired.mjs scripts/check-self-test-workflow-commands.mjs scripts/measure-self-test-floor.mjs places it in:

        Undetermined (source names no path at all — NOT known irrelevant): 39 famil(ies).
        ...
        - pnpm check:ratchet-remedy-authority [lint.yml]
        

        Not matched, not silentundetermined, one of 39.

        The cause is mechanical and visible in the gate's own source. It sweeps scripts/*.{mjs,mts} — a real, wide path population, 176 files on the day it was measured — but it builds that population at runtime from readdirSync(SCRIPTS_DIR). The string scripts/*.{mjs,mts} exists in the file only inside its output messages and one comment, never as a declared literal. So the derivation reads no path population, declares nothing, and makes no claim.

        Compare the eight families that did match those same three paths: every one of them matched at gate source 'scripts/**', because their populations are spelled where the derivation can read them.

        Why this is worth a card rather than a footnote

        The derivation is honest about it in its own residue text — "NOT known irrelevant", and it even says the bucket is largely unexamined: "2 of those 39 undetermined famil(ies) DECLARE that they have no path population... Those have been examined; the rest of the bucket has not, and the two used to read alike." On the next line of the same output, check:release-body carries an explicit declared no path population marker with its reason; check:ratchet-remedy-authority carries nothing.

        The gap is between that residue text and what a dispatch brief actually carries. The brief prints the matched list. A dev who runs exactly that list has run a set that does not contain this gate, and the honest caveat that would have warned them is in a section nobody pastes.

        ⭐ Note the class: a derivation that passes while not covering what its reader takes it to cover. That is the same shape as the card this was found on — a check believed to cover something on evidence other than its own assertion.

        The remedy shape

        Declare the subtree the gate really walks, beside the literal, using the ROOT_DIR_WATCH_HINTS idiom scripts/check-watch-hint-literal.mjs already gates. The gate then moves from undetermined to matched for every scripts/** card, and the derivation stops being silent about a sweep that reads every file in the directory.

        ⛔ Deliberately not done in PR #13797: that PR's scope was its own two files' new text, and this is a change to a third gate's declared population with its own gate to satisfy.

        Worth checking at the same time

        The other 37 undetermined families have not been examined. Any one of them that computes a wide population the same way is invisible in exactly the same manner, and the count says nothing about which.


        Generated by Claude Code

        Metadata

        Metadata

        Assignees

        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)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } 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

          dispatch-gates places check:ratchet-remedy-authority in "undetermined" — a scripts/** sweep that no derived family names, so a full local family run misses it #13813

          Description

          @claude

          Measured while working #13489 (PR #13797). Filed unassigned.

          What happened

          A PR touching three scripts/** files ran its full derived gate family locally — every family green — and CI reddened on pnpm check:ratchet-remedy-authority, a gate that was not in the derived family. Both readings were true, and of the same tree: nothing landed between the push and the failing run.

          The measurement

          node scripts/pm/dispatch-gates.mjs --residue scripts/check-self-test-wired.mjs scripts/check-self-test-workflow-commands.mjs scripts/measure-self-test-floor.mjs places it in:

          Undetermined (source names no path at all — NOT known irrelevant): 39 famil(ies).
          ...
          - pnpm check:ratchet-remedy-authority [lint.yml]
          

          Not matched, not silentundetermined, one of 39.

          The cause is mechanical and visible in the gate's own source. It sweeps scripts/*.{mjs,mts} — a real, wide path population, 176 files on the day it was measured — but it builds that population at runtime from readdirSync(SCRIPTS_DIR). The string scripts/*.{mjs,mts} exists in the file only inside its output messages and one comment, never as a declared literal. So the derivation reads no path population, declares nothing, and makes no claim.

          Compare the eight families that did match those same three paths: every one of them matched at gate source 'scripts/**', because their populations are spelled where the derivation can read them.

          Why this is worth a card rather than a footnote

          The derivation is honest about it in its own residue text — "NOT known irrelevant", and it even says the bucket is largely unexamined: "2 of those 39 undetermined famil(ies) DECLARE that they have no path population... Those have been examined; the rest of the bucket has not, and the two used to read alike." On the next line of the same output, check:release-body carries an explicit declared no path population marker with its reason; check:ratchet-remedy-authority carries nothing.

          The gap is between that residue text and what a dispatch brief actually carries. The brief prints the matched list. A dev who runs exactly that list has run a set that does not contain this gate, and the honest caveat that would have warned them is in a section nobody pastes.

          ⭐ Note the class: a derivation that passes while not covering what its reader takes it to cover. That is the same shape as the card this was found on — a check believed to cover something on evidence other than its own assertion.

          The remedy shape

          Declare the subtree the gate really walks, beside the literal, using the ROOT_DIR_WATCH_HINTS idiom scripts/check-watch-hint-literal.mjs already gates. The gate then moves from undetermined to matched for every scripts/** card, and the derivation stops being silent about a sweep that reads every file in the directory.

          ⛔ Deliberately not done in PR #13797: that PR's scope was its own two files' new text, and this is a change to a third gate's declared population with its own gate to satisfy.

          Worth checking at the same time

          The other 37 undetermined families have not been examined. Any one of them that computes a wide population the same way is invisible in exactly the same manner, and the count says nothing about which.


          Generated by Claude Code

          Metadata

          Metadata

          Assignees

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

            dispatch-gates places check:ratchet-remedy-authority in "undetermined" — a scripts/** sweep that no derived family names, so a full local family run misses it #13813

            Description

            @claude

            Measured while working #13489 (PR #13797). Filed unassigned.

            What happened

            A PR touching three scripts/** files ran its full derived gate family locally — every family green — and CI reddened on pnpm check:ratchet-remedy-authority, a gate that was not in the derived family. Both readings were true, and of the same tree: nothing landed between the push and the failing run.

            The measurement

            node scripts/pm/dispatch-gates.mjs --residue scripts/check-self-test-wired.mjs scripts/check-self-test-workflow-commands.mjs scripts/measure-self-test-floor.mjs places it in:

            Undetermined (source names no path at all — NOT known irrelevant): 39 famil(ies).
            ...
            - pnpm check:ratchet-remedy-authority [lint.yml]
            

            Not matched, not silentundetermined, one of 39.

            The cause is mechanical and visible in the gate's own source. It sweeps scripts/*.{mjs,mts} — a real, wide path population, 176 files on the day it was measured — but it builds that population at runtime from readdirSync(SCRIPTS_DIR). The string scripts/*.{mjs,mts} exists in the file only inside its output messages and one comment, never as a declared literal. So the derivation reads no path population, declares nothing, and makes no claim.

            Compare the eight families that did match those same three paths: every one of them matched at gate source 'scripts/**', because their populations are spelled where the derivation can read them.

            Why this is worth a card rather than a footnote

            The derivation is honest about it in its own residue text — "NOT known irrelevant", and it even says the bucket is largely unexamined: "2 of those 39 undetermined famil(ies) DECLARE that they have no path population... Those have been examined; the rest of the bucket has not, and the two used to read alike." On the next line of the same output, check:release-body carries an explicit declared no path population marker with its reason; check:ratchet-remedy-authority carries nothing.

            The gap is between that residue text and what a dispatch brief actually carries. The brief prints the matched list. A dev who runs exactly that list has run a set that does not contain this gate, and the honest caveat that would have warned them is in a section nobody pastes.

            ⭐ Note the class: a derivation that passes while not covering what its reader takes it to cover. That is the same shape as the card this was found on — a check believed to cover something on evidence other than its own assertion.

            The remedy shape

            Declare the subtree the gate really walks, beside the literal, using the ROOT_DIR_WATCH_HINTS idiom scripts/check-watch-hint-literal.mjs already gates. The gate then moves from undetermined to matched for every scripts/** card, and the derivation stops being silent about a sweep that reads every file in the directory.

            ⛔ Deliberately not done in PR #13797: that PR's scope was its own two files' new text, and this is a change to a third gate's declared population with its own gate to satisfy.

            Worth checking at the same time

            The other 37 undetermined families have not been examined. Any one of them that computes a wide population the same way is invisible in exactly the same manner, and the count says nothing about which.


            Generated by Claude Code

            Metadata

            Metadata

            Assignees

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

              dispatch-gates places check:ratchet-remedy-authority in "undetermined" — a scripts/** sweep that no derived family names, so a full local family run misses it #13813

              Description

              @claude

              Measured while working #13489 (PR #13797). Filed unassigned.

              What happened

              A PR touching three scripts/** files ran its full derived gate family locally — every family green — and CI reddened on pnpm check:ratchet-remedy-authority, a gate that was not in the derived family. Both readings were true, and of the same tree: nothing landed between the push and the failing run.

              The measurement

              node scripts/pm/dispatch-gates.mjs --residue scripts/check-self-test-wired.mjs scripts/check-self-test-workflow-commands.mjs scripts/measure-self-test-floor.mjs places it in:

              Undetermined (source names no path at all — NOT known irrelevant): 39 famil(ies).
              ...
              - pnpm check:ratchet-remedy-authority [lint.yml]
              

              Not matched, not silentundetermined, one of 39.

              The cause is mechanical and visible in the gate's own source. It sweeps scripts/*.{mjs,mts} — a real, wide path population, 176 files on the day it was measured — but it builds that population at runtime from readdirSync(SCRIPTS_DIR). The string scripts/*.{mjs,mts} exists in the file only inside its output messages and one comment, never as a declared literal. So the derivation reads no path population, declares nothing, and makes no claim.

              Compare the eight families that did match those same three paths: every one of them matched at gate source 'scripts/**', because their populations are spelled where the derivation can read them.

              Why this is worth a card rather than a footnote

              The derivation is honest about it in its own residue text — "NOT known irrelevant", and it even says the bucket is largely unexamined: "2 of those 39 undetermined famil(ies) DECLARE that they have no path population... Those have been examined; the rest of the bucket has not, and the two used to read alike." On the next line of the same output, check:release-body carries an explicit declared no path population marker with its reason; check:ratchet-remedy-authority carries nothing.

              The gap is between that residue text and what a dispatch brief actually carries. The brief prints the matched list. A dev who runs exactly that list has run a set that does not contain this gate, and the honest caveat that would have warned them is in a section nobody pastes.

              ⭐ Note the class: a derivation that passes while not covering what its reader takes it to cover. That is the same shape as the card this was found on — a check believed to cover something on evidence other than its own assertion.

              The remedy shape

              Declare the subtree the gate really walks, beside the literal, using the ROOT_DIR_WATCH_HINTS idiom scripts/check-watch-hint-literal.mjs already gates. The gate then moves from undetermined to matched for every scripts/** card, and the derivation stops being silent about a sweep that reads every file in the directory.

              ⛔ Deliberately not done in PR #13797: that PR's scope was its own two files' new text, and this is a change to a third gate's declared population with its own gate to satisfy.

              Worth checking at the same time

              The other 37 undetermined families have not been examined. Any one of them that computes a wide population the same way is invisible in exactly the same manner, and the count says nothing about which.


              Generated by Claude Code

              Metadata

              Metadata

              Assignees

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

                dispatch-gates places check:ratchet-remedy-authority in "undetermined" — a scripts/** sweep that no derived family names, so a full local family run misses it #13813

                Description

                @claude

                Measured while working #13489 (PR #13797). Filed unassigned.

                What happened

                A PR touching three scripts/** files ran its full derived gate family locally — every family green — and CI reddened on pnpm check:ratchet-remedy-authority, a gate that was not in the derived family. Both readings were true, and of the same tree: nothing landed between the push and the failing run.

                The measurement

                node scripts/pm/dispatch-gates.mjs --residue scripts/check-self-test-wired.mjs scripts/check-self-test-workflow-commands.mjs scripts/measure-self-test-floor.mjs places it in:

                Undetermined (source names no path at all — NOT known irrelevant): 39 famil(ies).
                ...
                - pnpm check:ratchet-remedy-authority [lint.yml]
                

                Not matched, not silentundetermined, one of 39.

                The cause is mechanical and visible in the gate's own source. It sweeps scripts/*.{mjs,mts} — a real, wide path population, 176 files on the day it was measured — but it builds that population at runtime from readdirSync(SCRIPTS_DIR). The string scripts/*.{mjs,mts} exists in the file only inside its output messages and one comment, never as a declared literal. So the derivation reads no path population, declares nothing, and makes no claim.

                Compare the eight families that did match those same three paths: every one of them matched at gate source 'scripts/**', because their populations are spelled where the derivation can read them.

                Why this is worth a card rather than a footnote

                The derivation is honest about it in its own residue text — "NOT known irrelevant", and it even says the bucket is largely unexamined: "2 of those 39 undetermined famil(ies) DECLARE that they have no path population... Those have been examined; the rest of the bucket has not, and the two used to read alike." On the next line of the same output, check:release-body carries an explicit declared no path population marker with its reason; check:ratchet-remedy-authority carries nothing.

                The gap is between that residue text and what a dispatch brief actually carries. The brief prints the matched list. A dev who runs exactly that list has run a set that does not contain this gate, and the honest caveat that would have warned them is in a section nobody pastes.

                ⭐ Note the class: a derivation that passes while not covering what its reader takes it to cover. That is the same shape as the card this was found on — a check believed to cover something on evidence other than its own assertion.

                The remedy shape

                Declare the subtree the gate really walks, beside the literal, using the ROOT_DIR_WATCH_HINTS idiom scripts/check-watch-hint-literal.mjs already gates. The gate then moves from undetermined to matched for every scripts/** card, and the derivation stops being silent about a sweep that reads every file in the directory.

                ⛔ Deliberately not done in PR #13797: that PR's scope was its own two files' new text, and this is a change to a third gate's declared population with its own gate to satisfy.

                Worth checking at the same time

                The other 37 undetermined families have not been examined. Any one of them that computes a wide population the same way is invisible in exactly the same manner, and the count says nothing about which.


                Generated by Claude Code

                Metadata

                Metadata

                Assignees

                Type

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions