Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions scripts/pm/bare-root-worklist.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -847,6 +847,95 @@ const TRIAGE = new Map([
spelling: 'examples manifests',
why: 'workspace manifests only — 4 of 241 (1.7%), re-measured 2026-08-26; 4 of 4 covered',
}],

// ── SECOND-KEY TWINS: one literal, two family keys (#14880) ──────────────
//
// Nine rows landed FRESH in one edit, and NOT because a gate changed. The
// dispatch-gates derivation key became (script, args) in #14880 — one entry
// per workflow INVOCATION rather than per script path — so CI's
// `--self-test` invocation of a gate it also runs plainly is now its own
// family. `sweep()` keys a row on `family constant word`, so the identical
// bare-root literal, in the identical file, under the identical constant, is
// reached a second time and produces a second row.
//
// ⛔ These are therefore NOT new populations, and each `why` below states
// that instead of a measurement. The docblock above forbids carrying a
// sibling's numbers into a new row, and the reason it gives is that two rows
// are two populations measured at two times; here the two rows are ONE
// population read through two keys, so restating a number would mint a
// reading this pass never took — the same defect the ban is written against,
// arriving by the one route the ban's wording does not cover. The verdict is
// the twin's verdict for the only honest reason there is: a different verdict
// on the same literal would have this map assert two decisions about one
// population.
//
// ⚠️ The class GROWS with the workflows, not with this file: any gate CI
// starts invoking a second way acquires a twin row here on the next run. The
// structural alternative — keying `sweep()`'s dedupe on the gate SOURCE FILE
// rather than on the family, since the verdict is about a literal in a file
// and never about an invocation — is real and is deliberately NOT taken here:
// it re-decides which family a surviving row is attributed to, which would
// strand the existing twin as STALE, and redesigning this file's keying is
// not what the FRESH remedy names. Recorded for whoever owns that call.
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS packages', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'packages manifests',
why: 'second-key twin of the row keyed on this same script without the flag — same file, '
+ 'same constant, same root, one population. It exists because CI invokes this gate both '
+ 'plainly and with the self-test flag and the derivation now keys on the invocation. The '
+ 'verdict and the spelling are that row decision, unchanged; ⛔ no count is restated here, '
+ 'because this pass measured none and the twin numbers belong to the pass that took them',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS apps', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'apps manifests',
why: 'second-key twin, apps half — same file, same constant, same root as the unflagged row. '
+ 'Verdict and spelling carried as one decision about one population, counts deliberately '
+ 'not restated',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS examples', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'examples manifests',
why: 'second-key twin, examples half — same file, same constant, same root as the unflagged '
+ 'row. Verdict and spelling carried as one decision about one population, counts '
+ 'deliberately not restated',
}],
['scripts/check-declaration-mirrors.mjs --self-test SCRIPTS_DIR scripts', {
verdict: 'REFUSE-UNSPELLABLE',
why: 'second-key twin of the unflagged row for this script. The refusal is about the walk the '
+ 'gate own source performs — an extension filter no subtree idiom describes — and a walk '
+ 'is a property of the file, not of which invocation CI happens to schedule, so the '
+ 'refusal transfers whole and its measurement stays where it was taken',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS packages', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin of the unflagged row for this script. The trade it refuses — a true '
+ 'declaration naming this gate on every card under the root — is the same trade whichever '
+ 'invocation CI schedules, so the verdict transfers and the numbers stay with the pass '
+ 'that measured them',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS examples', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, examples half — refused with its packages half for the reason the '
+ 'unflagged row states, and for the same one population',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS apps', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, apps half — same trade, same reason, same single population as the '
+ 'unflagged row',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS scripts', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, scripts half — the root where this gate own allowed readers live, '
+ 'walked wholesale for the reason the unflagged row records, and one population with it',
}],
['scripts/check-skills-token-ratchet.mjs --self-test SKILLS_DIR skills', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'published skill files',
why: 'second-key twin of the unflagged row for this script. The recorded spelling is that '
+ 'row spelling and is already pinned LIVE, PRECISE and COMPLETE below on its own terms, so '
+ 'this row adds a key and no new claim; the deferral reason is the one recorded there',
}],
]);

/**
Expand Down
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions scripts/pm/bare-root-worklist.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -847,6 +847,95 @@ const TRIAGE = new Map([
spelling: 'examples manifests',
why: 'workspace manifests only — 4 of 241 (1.7%), re-measured 2026-08-26; 4 of 4 covered',
}],

// ── SECOND-KEY TWINS: one literal, two family keys (#14880) ──────────────
//
// Nine rows landed FRESH in one edit, and NOT because a gate changed. The
// dispatch-gates derivation key became (script, args) in #14880 — one entry
// per workflow INVOCATION rather than per script path — so CI's
// `--self-test` invocation of a gate it also runs plainly is now its own
// family. `sweep()` keys a row on `family constant word`, so the identical
// bare-root literal, in the identical file, under the identical constant, is
// reached a second time and produces a second row.
//
// ⛔ These are therefore NOT new populations, and each `why` below states
// that instead of a measurement. The docblock above forbids carrying a
// sibling's numbers into a new row, and the reason it gives is that two rows
// are two populations measured at two times; here the two rows are ONE
// population read through two keys, so restating a number would mint a
// reading this pass never took — the same defect the ban is written against,
// arriving by the one route the ban's wording does not cover. The verdict is
// the twin's verdict for the only honest reason there is: a different verdict
// on the same literal would have this map assert two decisions about one
// population.
//
// ⚠️ The class GROWS with the workflows, not with this file: any gate CI
// starts invoking a second way acquires a twin row here on the next run. The
// structural alternative — keying `sweep()`'s dedupe on the gate SOURCE FILE
// rather than on the family, since the verdict is about a literal in a file
// and never about an invocation — is real and is deliberately NOT taken here:
// it re-decides which family a surviving row is attributed to, which would
// strand the existing twin as STALE, and redesigning this file's keying is
// not what the FRESH remedy names. Recorded for whoever owns that call.
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS packages', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'packages manifests',
why: 'second-key twin of the row keyed on this same script without the flag — same file, '
+ 'same constant, same root, one population. It exists because CI invokes this gate both '
+ 'plainly and with the self-test flag and the derivation now keys on the invocation. The '
+ 'verdict and the spelling are that row decision, unchanged; ⛔ no count is restated here, '
+ 'because this pass measured none and the twin numbers belong to the pass that took them',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS apps', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'apps manifests',
why: 'second-key twin, apps half — same file, same constant, same root as the unflagged row. '
+ 'Verdict and spelling carried as one decision about one population, counts deliberately '
+ 'not restated',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS examples', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'examples manifests',
why: 'second-key twin, examples half — same file, same constant, same root as the unflagged '
+ 'row. Verdict and spelling carried as one decision about one population, counts '
+ 'deliberately not restated',
}],
['scripts/check-declaration-mirrors.mjs --self-test SCRIPTS_DIR scripts', {
verdict: 'REFUSE-UNSPELLABLE',
why: 'second-key twin of the unflagged row for this script. The refusal is about the walk the '
+ 'gate own source performs — an extension filter no subtree idiom describes — and a walk '
+ 'is a property of the file, not of which invocation CI happens to schedule, so the '
+ 'refusal transfers whole and its measurement stays where it was taken',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS packages', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin of the unflagged row for this script. The trade it refuses — a true '
+ 'declaration naming this gate on every card under the root — is the same trade whichever '
+ 'invocation CI schedules, so the verdict transfers and the numbers stay with the pass '
+ 'that measured them',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS examples', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, examples half — refused with its packages half for the reason the '
+ 'unflagged row states, and for the same one population',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS apps', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, apps half — same trade, same reason, same single population as the '
+ 'unflagged row',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS scripts', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, scripts half — the root where this gate own allowed readers live, '
+ 'walked wholesale for the reason the unflagged row records, and one population with it',
}],
['scripts/check-skills-token-ratchet.mjs --self-test SKILLS_DIR skills', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'published skill files',
why: 'second-key twin of the unflagged row for this script. The recorded spelling is that '
+ 'row spelling and is already pinned LIVE, PRECISE and COMPLETE below on its own terms, so '
+ 'this row adds a key and no new claim; the deferral reason is the one recorded there',
}],
]);

/**
Expand Down
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions scripts/pm/bare-root-worklist.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -847,6 +847,95 @@ const TRIAGE = new Map([
spelling: 'examples manifests',
why: 'workspace manifests only — 4 of 241 (1.7%), re-measured 2026-08-26; 4 of 4 covered',
}],

// ── SECOND-KEY TWINS: one literal, two family keys (#14880) ──────────────
//
// Nine rows landed FRESH in one edit, and NOT because a gate changed. The
// dispatch-gates derivation key became (script, args) in #14880 — one entry
// per workflow INVOCATION rather than per script path — so CI's
// `--self-test` invocation of a gate it also runs plainly is now its own
// family. `sweep()` keys a row on `family constant word`, so the identical
// bare-root literal, in the identical file, under the identical constant, is
// reached a second time and produces a second row.
//
// ⛔ These are therefore NOT new populations, and each `why` below states
// that instead of a measurement. The docblock above forbids carrying a
// sibling's numbers into a new row, and the reason it gives is that two rows
// are two populations measured at two times; here the two rows are ONE
// population read through two keys, so restating a number would mint a
// reading this pass never took — the same defect the ban is written against,
// arriving by the one route the ban's wording does not cover. The verdict is
// the twin's verdict for the only honest reason there is: a different verdict
// on the same literal would have this map assert two decisions about one
// population.
//
// ⚠️ The class GROWS with the workflows, not with this file: any gate CI
// starts invoking a second way acquires a twin row here on the next run. The
// structural alternative — keying `sweep()`'s dedupe on the gate SOURCE FILE
// rather than on the family, since the verdict is about a literal in a file
// and never about an invocation — is real and is deliberately NOT taken here:
// it re-decides which family a surviving row is attributed to, which would
// strand the existing twin as STALE, and redesigning this file's keying is
// not what the FRESH remedy names. Recorded for whoever owns that call.
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS packages', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'packages manifests',
why: 'second-key twin of the row keyed on this same script without the flag — same file, '
+ 'same constant, same root, one population. It exists because CI invokes this gate both '
+ 'plainly and with the self-test flag and the derivation now keys on the invocation. The '
+ 'verdict and the spelling are that row decision, unchanged; ⛔ no count is restated here, '
+ 'because this pass measured none and the twin numbers belong to the pass that took them',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS apps', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'apps manifests',
why: 'second-key twin, apps half — same file, same constant, same root as the unflagged row. '
+ 'Verdict and spelling carried as one decision about one population, counts deliberately '
+ 'not restated',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS examples', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'examples manifests',
why: 'second-key twin, examples half — same file, same constant, same root as the unflagged '
+ 'row. Verdict and spelling carried as one decision about one population, counts '
+ 'deliberately not restated',
}],
['scripts/check-declaration-mirrors.mjs --self-test SCRIPTS_DIR scripts', {
verdict: 'REFUSE-UNSPELLABLE',
why: 'second-key twin of the unflagged row for this script. The refusal is about the walk the '
+ 'gate own source performs — an extension filter no subtree idiom describes — and a walk '
+ 'is a property of the file, not of which invocation CI happens to schedule, so the '
+ 'refusal transfers whole and its measurement stays where it was taken',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS packages', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin of the unflagged row for this script. The trade it refuses — a true '
+ 'declaration naming this gate on every card under the root — is the same trade whichever '
+ 'invocation CI schedules, so the verdict transfers and the numbers stay with the pass '
+ 'that measured them',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS examples', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, examples half — refused with its packages half for the reason the '
+ 'unflagged row states, and for the same one population',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS apps', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, apps half — same trade, same reason, same single population as the '
+ 'unflagged row',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS scripts', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, scripts half — the root where this gate own allowed readers live, '
+ 'walked wholesale for the reason the unflagged row records, and one population with it',
}],
['scripts/check-skills-token-ratchet.mjs --self-test SKILLS_DIR skills', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'published skill files',
why: 'second-key twin of the unflagged row for this script. The recorded spelling is that '
+ 'row spelling and is already pinned LIVE, PRECISE and COMPLETE below on its own terms, so '
+ 'this row adds a key and no new claim; the deferral reason is the one recorded there',
}],
]);

/**
Expand Down
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions scripts/pm/bare-root-worklist.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -847,6 +847,95 @@ const TRIAGE = new Map([
spelling: 'examples manifests',
why: 'workspace manifests only — 4 of 241 (1.7%), re-measured 2026-08-26; 4 of 4 covered',
}],

// ── SECOND-KEY TWINS: one literal, two family keys (#14880) ──────────────
//
// Nine rows landed FRESH in one edit, and NOT because a gate changed. The
// dispatch-gates derivation key became (script, args) in #14880 — one entry
// per workflow INVOCATION rather than per script path — so CI's
// `--self-test` invocation of a gate it also runs plainly is now its own
// family. `sweep()` keys a row on `family constant word`, so the identical
// bare-root literal, in the identical file, under the identical constant, is
// reached a second time and produces a second row.
//
// ⛔ These are therefore NOT new populations, and each `why` below states
// that instead of a measurement. The docblock above forbids carrying a
// sibling's numbers into a new row, and the reason it gives is that two rows
// are two populations measured at two times; here the two rows are ONE
// population read through two keys, so restating a number would mint a
// reading this pass never took — the same defect the ban is written against,
// arriving by the one route the ban's wording does not cover. The verdict is
// the twin's verdict for the only honest reason there is: a different verdict
// on the same literal would have this map assert two decisions about one
// population.
//
// ⚠️ The class GROWS with the workflows, not with this file: any gate CI
// starts invoking a second way acquires a twin row here on the next run. The
// structural alternative — keying `sweep()`'s dedupe on the gate SOURCE FILE
// rather than on the family, since the verdict is about a literal in a file
// and never about an invocation — is real and is deliberately NOT taken here:
// it re-decides which family a surviving row is attributed to, which would
// strand the existing twin as STALE, and redesigning this file's keying is
// not what the FRESH remedy names. Recorded for whoever owns that call.
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS packages', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'packages manifests',
why: 'second-key twin of the row keyed on this same script without the flag — same file, '
+ 'same constant, same root, one population. It exists because CI invokes this gate both '
+ 'plainly and with the self-test flag and the derivation now keys on the invocation. The '
+ 'verdict and the spelling are that row decision, unchanged; ⛔ no count is restated here, '
+ 'because this pass measured none and the twin numbers belong to the pass that took them',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS apps', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'apps manifests',
why: 'second-key twin, apps half — same file, same constant, same root as the unflagged row. '
+ 'Verdict and spelling carried as one decision about one population, counts deliberately '
+ 'not restated',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS examples', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'examples manifests',
why: 'second-key twin, examples half — same file, same constant, same root as the unflagged '
+ 'row. Verdict and spelling carried as one decision about one population, counts '
+ 'deliberately not restated',
}],
['scripts/check-declaration-mirrors.mjs --self-test SCRIPTS_DIR scripts', {
verdict: 'REFUSE-UNSPELLABLE',
why: 'second-key twin of the unflagged row for this script. The refusal is about the walk the '
+ 'gate own source performs — an extension filter no subtree idiom describes — and a walk '
+ 'is a property of the file, not of which invocation CI happens to schedule, so the '
+ 'refusal transfers whole and its measurement stays where it was taken',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS packages', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin of the unflagged row for this script. The trade it refuses — a true '
+ 'declaration naming this gate on every card under the root — is the same trade whichever '
+ 'invocation CI schedules, so the verdict transfers and the numbers stay with the pass '
+ 'that measured them',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS examples', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, examples half — refused with its packages half for the reason the '
+ 'unflagged row states, and for the same one population',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS apps', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, apps half — same trade, same reason, same single population as the '
+ 'unflagged row',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS scripts', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, scripts half — the root where this gate own allowed readers live, '
+ 'walked wholesale for the reason the unflagged row records, and one population with it',
}],
['scripts/check-skills-token-ratchet.mjs --self-test SKILLS_DIR skills', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'published skill files',
why: 'second-key twin of the unflagged row for this script. The recorded spelling is that '
+ 'row spelling and is already pinned LIVE, PRECISE and COMPLETE below on its own terms, so '
+ 'this row adds a key and no new claim; the deferral reason is the one recorded there',
}],
]);

/**
Expand Down
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions scripts/pm/bare-root-worklist.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -847,6 +847,95 @@ const TRIAGE = new Map([
spelling: 'examples manifests',
why: 'workspace manifests only — 4 of 241 (1.7%), re-measured 2026-08-26; 4 of 4 covered',
}],

// ── SECOND-KEY TWINS: one literal, two family keys (#14880) ──────────────
//
// Nine rows landed FRESH in one edit, and NOT because a gate changed. The
// dispatch-gates derivation key became (script, args) in #14880 — one entry
// per workflow INVOCATION rather than per script path — so CI's
// `--self-test` invocation of a gate it also runs plainly is now its own
// family. `sweep()` keys a row on `family constant word`, so the identical
// bare-root literal, in the identical file, under the identical constant, is
// reached a second time and produces a second row.
//
// ⛔ These are therefore NOT new populations, and each `why` below states
// that instead of a measurement. The docblock above forbids carrying a
// sibling's numbers into a new row, and the reason it gives is that two rows
// are two populations measured at two times; here the two rows are ONE
// population read through two keys, so restating a number would mint a
// reading this pass never took — the same defect the ban is written against,
// arriving by the one route the ban's wording does not cover. The verdict is
// the twin's verdict for the only honest reason there is: a different verdict
// on the same literal would have this map assert two decisions about one
// population.
//
// ⚠️ The class GROWS with the workflows, not with this file: any gate CI
// starts invoking a second way acquires a twin row here on the next run. The
// structural alternative — keying `sweep()`'s dedupe on the gate SOURCE FILE
// rather than on the family, since the verdict is about a literal in a file
// and never about an invocation — is real and is deliberately NOT taken here:
// it re-decides which family a surviving row is attributed to, which would
// strand the existing twin as STALE, and redesigning this file's keying is
// not what the FRESH remedy names. Recorded for whoever owns that call.
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS packages', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'packages manifests',
why: 'second-key twin of the row keyed on this same script without the flag — same file, '
+ 'same constant, same root, one population. It exists because CI invokes this gate both '
+ 'plainly and with the self-test flag and the derivation now keys on the invocation. The '
+ 'verdict and the spelling are that row decision, unchanged; ⛔ no count is restated here, '
+ 'because this pass measured none and the twin numbers belong to the pass that took them',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS apps', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'apps manifests',
why: 'second-key twin, apps half — same file, same constant, same root as the unflagged row. '
+ 'Verdict and spelling carried as one decision about one population, counts deliberately '
+ 'not restated',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS examples', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'examples manifests',
why: 'second-key twin, examples half — same file, same constant, same root as the unflagged '
+ 'row. Verdict and spelling carried as one decision about one population, counts '
+ 'deliberately not restated',
}],
['scripts/check-declaration-mirrors.mjs --self-test SCRIPTS_DIR scripts', {
verdict: 'REFUSE-UNSPELLABLE',
why: 'second-key twin of the unflagged row for this script. The refusal is about the walk the '
+ 'gate own source performs — an extension filter no subtree idiom describes — and a walk '
+ 'is a property of the file, not of which invocation CI happens to schedule, so the '
+ 'refusal transfers whole and its measurement stays where it was taken',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS packages', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin of the unflagged row for this script. The trade it refuses — a true '
+ 'declaration naming this gate on every card under the root — is the same trade whichever '
+ 'invocation CI schedules, so the verdict transfers and the numbers stay with the pass '
+ 'that measured them',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS examples', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, examples half — refused with its packages half for the reason the '
+ 'unflagged row states, and for the same one population',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS apps', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, apps half — same trade, same reason, same single population as the '
+ 'unflagged row',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS scripts', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, scripts half — the root where this gate own allowed readers live, '
+ 'walked wholesale for the reason the unflagged row records, and one population with it',
}],
['scripts/check-skills-token-ratchet.mjs --self-test SKILLS_DIR skills', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'published skill files',
why: 'second-key twin of the unflagged row for this script. The recorded spelling is that '
+ 'row spelling and is already pinned LIVE, PRECISE and COMPLETE below on its own terms, so '
+ 'this row adds a key and no new claim; the deferral reason is the one recorded there',
}],
]);

/**
Expand Down
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions scripts/pm/bare-root-worklist.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -847,6 +847,95 @@ const TRIAGE = new Map([
spelling: 'examples manifests',
why: 'workspace manifests only — 4 of 241 (1.7%), re-measured 2026-08-26; 4 of 4 covered',
}],

// ── SECOND-KEY TWINS: one literal, two family keys (#14880) ──────────────
//
// Nine rows landed FRESH in one edit, and NOT because a gate changed. The
// dispatch-gates derivation key became (script, args) in #14880 — one entry
// per workflow INVOCATION rather than per script path — so CI's
// `--self-test` invocation of a gate it also runs plainly is now its own
// family. `sweep()` keys a row on `family constant word`, so the identical
// bare-root literal, in the identical file, under the identical constant, is
// reached a second time and produces a second row.
//
// ⛔ These are therefore NOT new populations, and each `why` below states
// that instead of a measurement. The docblock above forbids carrying a
// sibling's numbers into a new row, and the reason it gives is that two rows
// are two populations measured at two times; here the two rows are ONE
// population read through two keys, so restating a number would mint a
// reading this pass never took — the same defect the ban is written against,
// arriving by the one route the ban's wording does not cover. The verdict is
// the twin's verdict for the only honest reason there is: a different verdict
// on the same literal would have this map assert two decisions about one
// population.
//
// ⚠️ The class GROWS with the workflows, not with this file: any gate CI
// starts invoking a second way acquires a twin row here on the next run. The
// structural alternative — keying `sweep()`'s dedupe on the gate SOURCE FILE
// rather than on the family, since the verdict is about a literal in a file
// and never about an invocation — is real and is deliberately NOT taken here:
// it re-decides which family a surviving row is attributed to, which would
// strand the existing twin as STALE, and redesigning this file's keying is
// not what the FRESH remedy names. Recorded for whoever owns that call.
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS packages', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'packages manifests',
why: 'second-key twin of the row keyed on this same script without the flag — same file, '
+ 'same constant, same root, one population. It exists because CI invokes this gate both '
+ 'plainly and with the self-test flag and the derivation now keys on the invocation. The '
+ 'verdict and the spelling are that row decision, unchanged; ⛔ no count is restated here, '
+ 'because this pass measured none and the twin numbers belong to the pass that took them',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS apps', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'apps manifests',
why: 'second-key twin, apps half — same file, same constant, same root as the unflagged row. '
+ 'Verdict and spelling carried as one decision about one population, counts deliberately '
+ 'not restated',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS examples', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'examples manifests',
why: 'second-key twin, examples half — same file, same constant, same root as the unflagged '
+ 'row. Verdict and spelling carried as one decision about one population, counts '
+ 'deliberately not restated',
}],
['scripts/check-declaration-mirrors.mjs --self-test SCRIPTS_DIR scripts', {
verdict: 'REFUSE-UNSPELLABLE',
why: 'second-key twin of the unflagged row for this script. The refusal is about the walk the '
+ 'gate own source performs — an extension filter no subtree idiom describes — and a walk '
+ 'is a property of the file, not of which invocation CI happens to schedule, so the '
+ 'refusal transfers whole and its measurement stays where it was taken',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS packages', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin of the unflagged row for this script. The trade it refuses — a true '
+ 'declaration naming this gate on every card under the root — is the same trade whichever '
+ 'invocation CI schedules, so the verdict transfers and the numbers stay with the pass '
+ 'that measured them',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS examples', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, examples half — refused with its packages half for the reason the '
+ 'unflagged row states, and for the same one population',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS apps', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, apps half — same trade, same reason, same single population as the '
+ 'unflagged row',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS scripts', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, scripts half — the root where this gate own allowed readers live, '
+ 'walked wholesale for the reason the unflagged row records, and one population with it',
}],
['scripts/check-skills-token-ratchet.mjs --self-test SKILLS_DIR skills', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'published skill files',
why: 'second-key twin of the unflagged row for this script. The recorded spelling is that '
+ 'row spelling and is already pinned LIVE, PRECISE and COMPLETE below on its own terms, so '
+ 'this row adds a key and no new claim; the deferral reason is the one recorded there',
}],
]);

/**
Expand Down
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions scripts/pm/bare-root-worklist.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -847,6 +847,95 @@ const TRIAGE = new Map([
spelling: 'examples manifests',
why: 'workspace manifests only — 4 of 241 (1.7%), re-measured 2026-08-26; 4 of 4 covered',
}],

// ── SECOND-KEY TWINS: one literal, two family keys (#14880) ──────────────
//
// Nine rows landed FRESH in one edit, and NOT because a gate changed. The
// dispatch-gates derivation key became (script, args) in #14880 — one entry
// per workflow INVOCATION rather than per script path — so CI's
// `--self-test` invocation of a gate it also runs plainly is now its own
// family. `sweep()` keys a row on `family constant word`, so the identical
// bare-root literal, in the identical file, under the identical constant, is
// reached a second time and produces a second row.
//
// ⛔ These are therefore NOT new populations, and each `why` below states
// that instead of a measurement. The docblock above forbids carrying a
// sibling's numbers into a new row, and the reason it gives is that two rows
// are two populations measured at two times; here the two rows are ONE
// population read through two keys, so restating a number would mint a
// reading this pass never took — the same defect the ban is written against,
// arriving by the one route the ban's wording does not cover. The verdict is
// the twin's verdict for the only honest reason there is: a different verdict
// on the same literal would have this map assert two decisions about one
// population.
//
// ⚠️ The class GROWS with the workflows, not with this file: any gate CI
// starts invoking a second way acquires a twin row here on the next run. The
// structural alternative — keying `sweep()`'s dedupe on the gate SOURCE FILE
// rather than on the family, since the verdict is about a literal in a file
// and never about an invocation — is real and is deliberately NOT taken here:
// it re-decides which family a surviving row is attributed to, which would
// strand the existing twin as STALE, and redesigning this file's keying is
// not what the FRESH remedy names. Recorded for whoever owns that call.
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS packages', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'packages manifests',
why: 'second-key twin of the row keyed on this same script without the flag — same file, '
+ 'same constant, same root, one population. It exists because CI invokes this gate both '
+ 'plainly and with the self-test flag and the derivation now keys on the invocation. The '
+ 'verdict and the spelling are that row decision, unchanged; ⛔ no count is restated here, '
+ 'because this pass measured none and the twin numbers belong to the pass that took them',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS apps', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'apps manifests',
why: 'second-key twin, apps half — same file, same constant, same root as the unflagged row. '
+ 'Verdict and spelling carried as one decision about one population, counts deliberately '
+ 'not restated',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS examples', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'examples manifests',
why: 'second-key twin, examples half — same file, same constant, same root as the unflagged '
+ 'row. Verdict and spelling carried as one decision about one population, counts '
+ 'deliberately not restated',
}],
['scripts/check-declaration-mirrors.mjs --self-test SCRIPTS_DIR scripts', {
verdict: 'REFUSE-UNSPELLABLE',
why: 'second-key twin of the unflagged row for this script. The refusal is about the walk the '
+ 'gate own source performs — an extension filter no subtree idiom describes — and a walk '
+ 'is a property of the file, not of which invocation CI happens to schedule, so the '
+ 'refusal transfers whole and its measurement stays where it was taken',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS packages', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin of the unflagged row for this script. The trade it refuses — a true '
+ 'declaration naming this gate on every card under the root — is the same trade whichever '
+ 'invocation CI schedules, so the verdict transfers and the numbers stay with the pass '
+ 'that measured them',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS examples', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, examples half — refused with its packages half for the reason the '
+ 'unflagged row states, and for the same one population',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS apps', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, apps half — same trade, same reason, same single population as the '
+ 'unflagged row',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS scripts', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, scripts half — the root where this gate own allowed readers live, '
+ 'walked wholesale for the reason the unflagged row records, and one population with it',
}],
['scripts/check-skills-token-ratchet.mjs --self-test SKILLS_DIR skills', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'published skill files',
why: 'second-key twin of the unflagged row for this script. The recorded spelling is that '
+ 'row spelling and is already pinned LIVE, PRECISE and COMPLETE below on its own terms, so '
+ 'this row adds a key and no new claim; the deferral reason is the one recorded there',
}],
]);

/**
Expand Down
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions scripts/pm/bare-root-worklist.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -847,6 +847,95 @@ const TRIAGE = new Map([
spelling: 'examples manifests',
why: 'workspace manifests only — 4 of 241 (1.7%), re-measured 2026-08-26; 4 of 4 covered',
}],

// ── SECOND-KEY TWINS: one literal, two family keys (#14880) ──────────────
//
// Nine rows landed FRESH in one edit, and NOT because a gate changed. The
// dispatch-gates derivation key became (script, args) in #14880 — one entry
// per workflow INVOCATION rather than per script path — so CI's
// `--self-test` invocation of a gate it also runs plainly is now its own
// family. `sweep()` keys a row on `family constant word`, so the identical
// bare-root literal, in the identical file, under the identical constant, is
// reached a second time and produces a second row.
//
// ⛔ These are therefore NOT new populations, and each `why` below states
// that instead of a measurement. The docblock above forbids carrying a
// sibling's numbers into a new row, and the reason it gives is that two rows
// are two populations measured at two times; here the two rows are ONE
// population read through two keys, so restating a number would mint a
// reading this pass never took — the same defect the ban is written against,
// arriving by the one route the ban's wording does not cover. The verdict is
// the twin's verdict for the only honest reason there is: a different verdict
// on the same literal would have this map assert two decisions about one
// population.
//
// ⚠️ The class GROWS with the workflows, not with this file: any gate CI
// starts invoking a second way acquires a twin row here on the next run. The
// structural alternative — keying `sweep()`'s dedupe on the gate SOURCE FILE
// rather than on the family, since the verdict is about a literal in a file
// and never about an invocation — is real and is deliberately NOT taken here:
// it re-decides which family a surviving row is attributed to, which would
// strand the existing twin as STALE, and redesigning this file's keying is
// not what the FRESH remedy names. Recorded for whoever owns that call.
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS packages', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'packages manifests',
why: 'second-key twin of the row keyed on this same script without the flag — same file, '
+ 'same constant, same root, one population. It exists because CI invokes this gate both '
+ 'plainly and with the self-test flag and the derivation now keys on the invocation. The '
+ 'verdict and the spelling are that row decision, unchanged; ⛔ no count is restated here, '
+ 'because this pass measured none and the twin numbers belong to the pass that took them',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS apps', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'apps manifests',
why: 'second-key twin, apps half — same file, same constant, same root as the unflagged row. '
+ 'Verdict and spelling carried as one decision about one population, counts deliberately '
+ 'not restated',
}],
['scripts/check-adr-0087-registration.mjs --self-test PACKAGE_ROOTS examples', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'examples manifests',
why: 'second-key twin, examples half — same file, same constant, same root as the unflagged '
+ 'row. Verdict and spelling carried as one decision about one population, counts '
+ 'deliberately not restated',
}],
['scripts/check-declaration-mirrors.mjs --self-test SCRIPTS_DIR scripts', {
verdict: 'REFUSE-UNSPELLABLE',
why: 'second-key twin of the unflagged row for this script. The refusal is about the walk the '
+ 'gate own source performs — an extension filter no subtree idiom describes — and a walk '
+ 'is a property of the file, not of which invocation CI happens to schedule, so the '
+ 'refusal transfers whole and its measurement stays where it was taken',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS packages', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin of the unflagged row for this script. The trade it refuses — a true '
+ 'declaration naming this gate on every card under the root — is the same trade whichever '
+ 'invocation CI schedules, so the verdict transfers and the numbers stay with the pass '
+ 'that measured them',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS examples', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, examples half — refused with its packages half for the reason the '
+ 'unflagged row states, and for the same one population',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS apps', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, apps half — same trade, same reason, same single population as the '
+ 'unflagged row',
}],
['scripts/check-position-name-fold-loaders.mjs --self-test SCAN_ROOTS scripts', {
verdict: 'REFUSE-WIDE',
why: 'second-key twin, scripts half — the root where this gate own allowed readers live, '
+ 'walked wholesale for the reason the unflagged row records, and one population with it',
}],
['scripts/check-skills-token-ratchet.mjs --self-test SKILLS_DIR skills', {
verdict: 'SPELLABLE-UNDECLARED',
spelling: 'published skill files',
why: 'second-key twin of the unflagged row for this script. The recorded spelling is that '
+ 'row spelling and is already pinned LIVE, PRECISE and COMPLETE below on its own terms, so '
+ 'this row adds a key and no new claim; the deferral reason is the one recorded there',
}],
]);

/**
Expand Down
Loading
Loading