chore: raise the bar for CI-runner-time-only changes - #6213

Closed
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236
Closed

chore: raise the bar for CI-runner-time-only changes#6213
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236

Conversation

@prql-bot

Copy link
Copy Markdown
Collaborator

Adds a Bar for CI-only changes section to the running-tend skill, so future sweeps hold self-initiated CI work to a higher bar than they did on #6211. Requested by @max-sixty in this comment — "we should have a much higher bar for changes that only affect CI runner time".

The rule requires all three of: recurrence across distinct incident windows (not runs), a cost beyond runner minutes, and a fix proportionate to that — a line or two, not a new script. When it doesn't clear the bar, the sweep notes the run IDs on the thread and stops rather than opening an issue or PR. Maintainer-requested CI work and a genuinely red main are carved out.

Worth flagging that tend's bundled running-in-ci skill already carries this rule, in its Weighing a Fix section — "fix waste only when the fix is a simple knob (a cadence value, a deleted step, a one-line condition); otherwise note the cost where the maintainer will see it and move on." #6211 is a straight violation of it. The reason it didn't bind is framing: every example there is about tend's own session compute ("a no-op session, a duplicated survey, a run lost to a blip that a later tick retries"), so a sweep looking at the repo's CI runner time doesn't read itself as the addressee. So this section is written to point back at that rule and widen its scope rather than restate it, which keeps the overlay short. I've also filed the framing gap upstream in tend, since it would fire the same way in any consumer.

The proportionality clause is the one #6211 most needed: that PR started as a timeout addition and reached 88 added lines across 6 files, because each review round found a real gap and each fix was individually justified. So the bar has to be re-checked as the diff grows, not just at the point the work is proposed.

On "looks like this only happened once?"

Close, but not exactly — the shape recurred, which is why I want the bar written in terms of cost and proportionality rather than a recurrence count alone.

Scanning tests runs on main for jobs that ran past 60 minutes, the 360-minute cancelled shape on the musl build-prqlc* legs appears in four runs across ~3.5 months, in three distinct incident windows:

runstartedcancelled jobs at 360m
268188210872026-06-021
277780153782026-06-182
321600301612026-08-183
322236762482026-08-191

The last two are ~14 hours apart and are one mirror incident, not two. I confirmed the apt-stall cause only for the August window — the June runs match on job shape and duration, but their logs weren't checked, so the common cause there is inferred rather than verified.

Either way the conclusion is the same as the one in the comment: roughly monthly, self-correcting on a re-run, and costing runner minutes only. That doesn't earn a retry script across six workflow files.

Method: repos/PRQL/prql/actions/runs/<id>/jobs over the 60 most recent completed tests runs on main, filtered to jobs with a completed-minus-started duration over 60 minutes; widened to 400 runs (2026-04-30 → present) using run-level duration over 300 minutes, since a 6h job forces a 6h run.

@prql-bot

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded — max-sixty/tend#1015 makes this change in the bundled running-in-ci skill instead, which is the right home for it. We reached the same diagnosis independently (the Weighing a Fix examples are all tend's own compute, so a repo's CI runner time read as a category with no bar on it), and that PR covers both bars this one did — evidence counted in incident windows rather than runs, and a remedy capped at a one-line knob — plus binding the reviewer, which this overlay didn't. A per-repo overlay restating bundled guidance is exactly what the skill-PR workflow says not to open.

Not deleting the branch, in case any of the wording is worth salvaging.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@prql-bot
, '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

chore: raise the bar for CI-runner-time-only changes - #6213

Closed
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236
Closed

chore: raise the bar for CI-runner-time-only changes#6213
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236

Conversation

@prql-bot

Copy link
Copy Markdown
Collaborator

Adds a Bar for CI-only changes section to the running-tend skill, so future sweeps hold self-initiated CI work to a higher bar than they did on #6211. Requested by @max-sixty in this comment — "we should have a much higher bar for changes that only affect CI runner time".

The rule requires all three of: recurrence across distinct incident windows (not runs), a cost beyond runner minutes, and a fix proportionate to that — a line or two, not a new script. When it doesn't clear the bar, the sweep notes the run IDs on the thread and stops rather than opening an issue or PR. Maintainer-requested CI work and a genuinely red main are carved out.

Worth flagging that tend's bundled running-in-ci skill already carries this rule, in its Weighing a Fix section — "fix waste only when the fix is a simple knob (a cadence value, a deleted step, a one-line condition); otherwise note the cost where the maintainer will see it and move on." #6211 is a straight violation of it. The reason it didn't bind is framing: every example there is about tend's own session compute ("a no-op session, a duplicated survey, a run lost to a blip that a later tick retries"), so a sweep looking at the repo's CI runner time doesn't read itself as the addressee. So this section is written to point back at that rule and widen its scope rather than restate it, which keeps the overlay short. I've also filed the framing gap upstream in tend, since it would fire the same way in any consumer.

The proportionality clause is the one #6211 most needed: that PR started as a timeout addition and reached 88 added lines across 6 files, because each review round found a real gap and each fix was individually justified. So the bar has to be re-checked as the diff grows, not just at the point the work is proposed.

On "looks like this only happened once?"

Close, but not exactly — the shape recurred, which is why I want the bar written in terms of cost and proportionality rather than a recurrence count alone.

Scanning tests runs on main for jobs that ran past 60 minutes, the 360-minute cancelled shape on the musl build-prqlc* legs appears in four runs across ~3.5 months, in three distinct incident windows:

runstartedcancelled jobs at 360m
268188210872026-06-021
277780153782026-06-182
321600301612026-08-183
322236762482026-08-191

The last two are ~14 hours apart and are one mirror incident, not two. I confirmed the apt-stall cause only for the August window — the June runs match on job shape and duration, but their logs weren't checked, so the common cause there is inferred rather than verified.

Either way the conclusion is the same as the one in the comment: roughly monthly, self-correcting on a re-run, and costing runner minutes only. That doesn't earn a retry script across six workflow files.

Method: repos/PRQL/prql/actions/runs/<id>/jobs over the 60 most recent completed tests runs on main, filtered to jobs with a completed-minus-started duration over 60 minutes; widened to 400 runs (2026-04-30 → present) using run-level duration over 300 minutes, since a 6h job forces a 6h run.

@prql-bot

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded — max-sixty/tend#1015 makes this change in the bundled running-in-ci skill instead, which is the right home for it. We reached the same diagnosis independently (the Weighing a Fix examples are all tend's own compute, so a repo's CI runner time read as a category with no bar on it), and that PR covers both bars this one did — evidence counted in incident windows rather than runs, and a remedy capped at a one-line knob — plus binding the reviewer, which this overlay didn't. A per-repo overlay restating bundled guidance is exactly what the skill-PR workflow says not to open.

Not deleting the branch, in case any of the wording is worth salvaging.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@prql-bot
, '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

chore: raise the bar for CI-runner-time-only changes - #6213

Closed
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236
Closed

chore: raise the bar for CI-runner-time-only changes#6213
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236

Conversation

@prql-bot

Copy link
Copy Markdown
Collaborator

Adds a Bar for CI-only changes section to the running-tend skill, so future sweeps hold self-initiated CI work to a higher bar than they did on #6211. Requested by @max-sixty in this comment — "we should have a much higher bar for changes that only affect CI runner time".

The rule requires all three of: recurrence across distinct incident windows (not runs), a cost beyond runner minutes, and a fix proportionate to that — a line or two, not a new script. When it doesn't clear the bar, the sweep notes the run IDs on the thread and stops rather than opening an issue or PR. Maintainer-requested CI work and a genuinely red main are carved out.

Worth flagging that tend's bundled running-in-ci skill already carries this rule, in its Weighing a Fix section — "fix waste only when the fix is a simple knob (a cadence value, a deleted step, a one-line condition); otherwise note the cost where the maintainer will see it and move on." #6211 is a straight violation of it. The reason it didn't bind is framing: every example there is about tend's own session compute ("a no-op session, a duplicated survey, a run lost to a blip that a later tick retries"), so a sweep looking at the repo's CI runner time doesn't read itself as the addressee. So this section is written to point back at that rule and widen its scope rather than restate it, which keeps the overlay short. I've also filed the framing gap upstream in tend, since it would fire the same way in any consumer.

The proportionality clause is the one #6211 most needed: that PR started as a timeout addition and reached 88 added lines across 6 files, because each review round found a real gap and each fix was individually justified. So the bar has to be re-checked as the diff grows, not just at the point the work is proposed.

On "looks like this only happened once?"

Close, but not exactly — the shape recurred, which is why I want the bar written in terms of cost and proportionality rather than a recurrence count alone.

Scanning tests runs on main for jobs that ran past 60 minutes, the 360-minute cancelled shape on the musl build-prqlc* legs appears in four runs across ~3.5 months, in three distinct incident windows:

runstartedcancelled jobs at 360m
268188210872026-06-021
277780153782026-06-182
321600301612026-08-183
322236762482026-08-191

The last two are ~14 hours apart and are one mirror incident, not two. I confirmed the apt-stall cause only for the August window — the June runs match on job shape and duration, but their logs weren't checked, so the common cause there is inferred rather than verified.

Either way the conclusion is the same as the one in the comment: roughly monthly, self-correcting on a re-run, and costing runner minutes only. That doesn't earn a retry script across six workflow files.

Method: repos/PRQL/prql/actions/runs/<id>/jobs over the 60 most recent completed tests runs on main, filtered to jobs with a completed-minus-started duration over 60 minutes; widened to 400 runs (2026-04-30 → present) using run-level duration over 300 minutes, since a 6h job forces a 6h run.

@prql-bot

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded — max-sixty/tend#1015 makes this change in the bundled running-in-ci skill instead, which is the right home for it. We reached the same diagnosis independently (the Weighing a Fix examples are all tend's own compute, so a repo's CI runner time read as a category with no bar on it), and that PR covers both bars this one did — evidence counted in incident windows rather than runs, and a remedy capped at a one-line knob — plus binding the reviewer, which this overlay didn't. A per-repo overlay restating bundled guidance is exactly what the skill-PR workflow says not to open.

Not deleting the branch, in case any of the wording is worth salvaging.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@prql-bot
, '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

chore: raise the bar for CI-runner-time-only changes - #6213

Closed
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236
Closed

chore: raise the bar for CI-runner-time-only changes#6213
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236

Conversation

@prql-bot

Copy link
Copy Markdown
Collaborator

Adds a Bar for CI-only changes section to the running-tend skill, so future sweeps hold self-initiated CI work to a higher bar than they did on #6211. Requested by @max-sixty in this comment — "we should have a much higher bar for changes that only affect CI runner time".

The rule requires all three of: recurrence across distinct incident windows (not runs), a cost beyond runner minutes, and a fix proportionate to that — a line or two, not a new script. When it doesn't clear the bar, the sweep notes the run IDs on the thread and stops rather than opening an issue or PR. Maintainer-requested CI work and a genuinely red main are carved out.

Worth flagging that tend's bundled running-in-ci skill already carries this rule, in its Weighing a Fix section — "fix waste only when the fix is a simple knob (a cadence value, a deleted step, a one-line condition); otherwise note the cost where the maintainer will see it and move on." #6211 is a straight violation of it. The reason it didn't bind is framing: every example there is about tend's own session compute ("a no-op session, a duplicated survey, a run lost to a blip that a later tick retries"), so a sweep looking at the repo's CI runner time doesn't read itself as the addressee. So this section is written to point back at that rule and widen its scope rather than restate it, which keeps the overlay short. I've also filed the framing gap upstream in tend, since it would fire the same way in any consumer.

The proportionality clause is the one #6211 most needed: that PR started as a timeout addition and reached 88 added lines across 6 files, because each review round found a real gap and each fix was individually justified. So the bar has to be re-checked as the diff grows, not just at the point the work is proposed.

On "looks like this only happened once?"

Close, but not exactly — the shape recurred, which is why I want the bar written in terms of cost and proportionality rather than a recurrence count alone.

Scanning tests runs on main for jobs that ran past 60 minutes, the 360-minute cancelled shape on the musl build-prqlc* legs appears in four runs across ~3.5 months, in three distinct incident windows:

runstartedcancelled jobs at 360m
268188210872026-06-021
277780153782026-06-182
321600301612026-08-183
322236762482026-08-191

The last two are ~14 hours apart and are one mirror incident, not two. I confirmed the apt-stall cause only for the August window — the June runs match on job shape and duration, but their logs weren't checked, so the common cause there is inferred rather than verified.

Either way the conclusion is the same as the one in the comment: roughly monthly, self-correcting on a re-run, and costing runner minutes only. That doesn't earn a retry script across six workflow files.

Method: repos/PRQL/prql/actions/runs/<id>/jobs over the 60 most recent completed tests runs on main, filtered to jobs with a completed-minus-started duration over 60 minutes; widened to 400 runs (2026-04-30 → present) using run-level duration over 300 minutes, since a 6h job forces a 6h run.

@prql-bot

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded — max-sixty/tend#1015 makes this change in the bundled running-in-ci skill instead, which is the right home for it. We reached the same diagnosis independently (the Weighing a Fix examples are all tend's own compute, so a repo's CI runner time read as a category with no bar on it), and that PR covers both bars this one did — evidence counted in incident windows rather than runs, and a remedy capped at a one-line knob — plus binding the reviewer, which this overlay didn't. A per-repo overlay restating bundled guidance is exactly what the skill-PR workflow says not to open.

Not deleting the branch, in case any of the wording is worth salvaging.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@prql-bot
, '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

chore: raise the bar for CI-runner-time-only changes - #6213

Closed
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236
Closed

chore: raise the bar for CI-runner-time-only changes#6213
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236

Conversation

@prql-bot

Copy link
Copy Markdown
Collaborator

Adds a Bar for CI-only changes section to the running-tend skill, so future sweeps hold self-initiated CI work to a higher bar than they did on #6211. Requested by @max-sixty in this comment — "we should have a much higher bar for changes that only affect CI runner time".

The rule requires all three of: recurrence across distinct incident windows (not runs), a cost beyond runner minutes, and a fix proportionate to that — a line or two, not a new script. When it doesn't clear the bar, the sweep notes the run IDs on the thread and stops rather than opening an issue or PR. Maintainer-requested CI work and a genuinely red main are carved out.

Worth flagging that tend's bundled running-in-ci skill already carries this rule, in its Weighing a Fix section — "fix waste only when the fix is a simple knob (a cadence value, a deleted step, a one-line condition); otherwise note the cost where the maintainer will see it and move on." #6211 is a straight violation of it. The reason it didn't bind is framing: every example there is about tend's own session compute ("a no-op session, a duplicated survey, a run lost to a blip that a later tick retries"), so a sweep looking at the repo's CI runner time doesn't read itself as the addressee. So this section is written to point back at that rule and widen its scope rather than restate it, which keeps the overlay short. I've also filed the framing gap upstream in tend, since it would fire the same way in any consumer.

The proportionality clause is the one #6211 most needed: that PR started as a timeout addition and reached 88 added lines across 6 files, because each review round found a real gap and each fix was individually justified. So the bar has to be re-checked as the diff grows, not just at the point the work is proposed.

On "looks like this only happened once?"

Close, but not exactly — the shape recurred, which is why I want the bar written in terms of cost and proportionality rather than a recurrence count alone.

Scanning tests runs on main for jobs that ran past 60 minutes, the 360-minute cancelled shape on the musl build-prqlc* legs appears in four runs across ~3.5 months, in three distinct incident windows:

runstartedcancelled jobs at 360m
268188210872026-06-021
277780153782026-06-182
321600301612026-08-183
322236762482026-08-191

The last two are ~14 hours apart and are one mirror incident, not two. I confirmed the apt-stall cause only for the August window — the June runs match on job shape and duration, but their logs weren't checked, so the common cause there is inferred rather than verified.

Either way the conclusion is the same as the one in the comment: roughly monthly, self-correcting on a re-run, and costing runner minutes only. That doesn't earn a retry script across six workflow files.

Method: repos/PRQL/prql/actions/runs/<id>/jobs over the 60 most recent completed tests runs on main, filtered to jobs with a completed-minus-started duration over 60 minutes; widened to 400 runs (2026-04-30 → present) using run-level duration over 300 minutes, since a 6h job forces a 6h run.

@prql-bot

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded — max-sixty/tend#1015 makes this change in the bundled running-in-ci skill instead, which is the right home for it. We reached the same diagnosis independently (the Weighing a Fix examples are all tend's own compute, so a repo's CI runner time read as a category with no bar on it), and that PR covers both bars this one did — evidence counted in incident windows rather than runs, and a remedy capped at a one-line knob — plus binding the reviewer, which this overlay didn't. A per-repo overlay restating bundled guidance is exactly what the skill-PR workflow says not to open.

Not deleting the branch, in case any of the wording is worth salvaging.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@prql-bot
, '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

chore: raise the bar for CI-runner-time-only changes - #6213

Closed
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236
Closed

chore: raise the bar for CI-runner-time-only changes#6213
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236

Conversation

@prql-bot

Copy link
Copy Markdown
Collaborator

Adds a Bar for CI-only changes section to the running-tend skill, so future sweeps hold self-initiated CI work to a higher bar than they did on #6211. Requested by @max-sixty in this comment — "we should have a much higher bar for changes that only affect CI runner time".

The rule requires all three of: recurrence across distinct incident windows (not runs), a cost beyond runner minutes, and a fix proportionate to that — a line or two, not a new script. When it doesn't clear the bar, the sweep notes the run IDs on the thread and stops rather than opening an issue or PR. Maintainer-requested CI work and a genuinely red main are carved out.

Worth flagging that tend's bundled running-in-ci skill already carries this rule, in its Weighing a Fix section — "fix waste only when the fix is a simple knob (a cadence value, a deleted step, a one-line condition); otherwise note the cost where the maintainer will see it and move on." #6211 is a straight violation of it. The reason it didn't bind is framing: every example there is about tend's own session compute ("a no-op session, a duplicated survey, a run lost to a blip that a later tick retries"), so a sweep looking at the repo's CI runner time doesn't read itself as the addressee. So this section is written to point back at that rule and widen its scope rather than restate it, which keeps the overlay short. I've also filed the framing gap upstream in tend, since it would fire the same way in any consumer.

The proportionality clause is the one #6211 most needed: that PR started as a timeout addition and reached 88 added lines across 6 files, because each review round found a real gap and each fix was individually justified. So the bar has to be re-checked as the diff grows, not just at the point the work is proposed.

On "looks like this only happened once?"

Close, but not exactly — the shape recurred, which is why I want the bar written in terms of cost and proportionality rather than a recurrence count alone.

Scanning tests runs on main for jobs that ran past 60 minutes, the 360-minute cancelled shape on the musl build-prqlc* legs appears in four runs across ~3.5 months, in three distinct incident windows:

runstartedcancelled jobs at 360m
268188210872026-06-021
277780153782026-06-182
321600301612026-08-183
322236762482026-08-191

The last two are ~14 hours apart and are one mirror incident, not two. I confirmed the apt-stall cause only for the August window — the June runs match on job shape and duration, but their logs weren't checked, so the common cause there is inferred rather than verified.

Either way the conclusion is the same as the one in the comment: roughly monthly, self-correcting on a re-run, and costing runner minutes only. That doesn't earn a retry script across six workflow files.

Method: repos/PRQL/prql/actions/runs/<id>/jobs over the 60 most recent completed tests runs on main, filtered to jobs with a completed-minus-started duration over 60 minutes; widened to 400 runs (2026-04-30 → present) using run-level duration over 300 minutes, since a 6h job forces a 6h run.

@prql-bot

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded — max-sixty/tend#1015 makes this change in the bundled running-in-ci skill instead, which is the right home for it. We reached the same diagnosis independently (the Weighing a Fix examples are all tend's own compute, so a repo's CI runner time read as a category with no bar on it), and that PR covers both bars this one did — evidence counted in incident windows rather than runs, and a remedy capped at a one-line knob — plus binding the reviewer, which this overlay didn't. A per-repo overlay restating bundled guidance is exactly what the skill-PR workflow says not to open.

Not deleting the branch, in case any of the wording is worth salvaging.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@prql-bot
, '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

chore: raise the bar for CI-runner-time-only changes - #6213

Closed
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236
Closed

chore: raise the bar for CI-runner-time-only changes#6213
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236

Conversation

@prql-bot

Copy link
Copy Markdown
Collaborator

Adds a Bar for CI-only changes section to the running-tend skill, so future sweeps hold self-initiated CI work to a higher bar than they did on #6211. Requested by @max-sixty in this comment — "we should have a much higher bar for changes that only affect CI runner time".

The rule requires all three of: recurrence across distinct incident windows (not runs), a cost beyond runner minutes, and a fix proportionate to that — a line or two, not a new script. When it doesn't clear the bar, the sweep notes the run IDs on the thread and stops rather than opening an issue or PR. Maintainer-requested CI work and a genuinely red main are carved out.

Worth flagging that tend's bundled running-in-ci skill already carries this rule, in its Weighing a Fix section — "fix waste only when the fix is a simple knob (a cadence value, a deleted step, a one-line condition); otherwise note the cost where the maintainer will see it and move on." #6211 is a straight violation of it. The reason it didn't bind is framing: every example there is about tend's own session compute ("a no-op session, a duplicated survey, a run lost to a blip that a later tick retries"), so a sweep looking at the repo's CI runner time doesn't read itself as the addressee. So this section is written to point back at that rule and widen its scope rather than restate it, which keeps the overlay short. I've also filed the framing gap upstream in tend, since it would fire the same way in any consumer.

The proportionality clause is the one #6211 most needed: that PR started as a timeout addition and reached 88 added lines across 6 files, because each review round found a real gap and each fix was individually justified. So the bar has to be re-checked as the diff grows, not just at the point the work is proposed.

On "looks like this only happened once?"

Close, but not exactly — the shape recurred, which is why I want the bar written in terms of cost and proportionality rather than a recurrence count alone.

Scanning tests runs on main for jobs that ran past 60 minutes, the 360-minute cancelled shape on the musl build-prqlc* legs appears in four runs across ~3.5 months, in three distinct incident windows:

runstartedcancelled jobs at 360m
268188210872026-06-021
277780153782026-06-182
321600301612026-08-183
322236762482026-08-191

The last two are ~14 hours apart and are one mirror incident, not two. I confirmed the apt-stall cause only for the August window — the June runs match on job shape and duration, but their logs weren't checked, so the common cause there is inferred rather than verified.

Either way the conclusion is the same as the one in the comment: roughly monthly, self-correcting on a re-run, and costing runner minutes only. That doesn't earn a retry script across six workflow files.

Method: repos/PRQL/prql/actions/runs/<id>/jobs over the 60 most recent completed tests runs on main, filtered to jobs with a completed-minus-started duration over 60 minutes; widened to 400 runs (2026-04-30 → present) using run-level duration over 300 minutes, since a 6h job forces a 6h run.

@prql-bot

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded — max-sixty/tend#1015 makes this change in the bundled running-in-ci skill instead, which is the right home for it. We reached the same diagnosis independently (the Weighing a Fix examples are all tend's own compute, so a repo's CI runner time read as a category with no bar on it), and that PR covers both bars this one did — evidence counted in incident windows rather than runs, and a remedy capped at a one-line knob — plus binding the reviewer, which this overlay didn't. A per-repo overlay restating bundled guidance is exactly what the skill-PR workflow says not to open.

Not deleting the branch, in case any of the wording is worth salvaging.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@prql-bot
, '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

chore: raise the bar for CI-runner-time-only changes - #6213

Closed
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236
Closed

chore: raise the bar for CI-runner-time-only changes#6213
prql-bot wants to merge 1 commit into
mainfrom
skills/ci-only-bar-32259566236

Conversation

@prql-bot

Copy link
Copy Markdown
Collaborator

Adds a Bar for CI-only changes section to the running-tend skill, so future sweeps hold self-initiated CI work to a higher bar than they did on #6211. Requested by @max-sixty in this comment — "we should have a much higher bar for changes that only affect CI runner time".

The rule requires all three of: recurrence across distinct incident windows (not runs), a cost beyond runner minutes, and a fix proportionate to that — a line or two, not a new script. When it doesn't clear the bar, the sweep notes the run IDs on the thread and stops rather than opening an issue or PR. Maintainer-requested CI work and a genuinely red main are carved out.

Worth flagging that tend's bundled running-in-ci skill already carries this rule, in its Weighing a Fix section — "fix waste only when the fix is a simple knob (a cadence value, a deleted step, a one-line condition); otherwise note the cost where the maintainer will see it and move on." #6211 is a straight violation of it. The reason it didn't bind is framing: every example there is about tend's own session compute ("a no-op session, a duplicated survey, a run lost to a blip that a later tick retries"), so a sweep looking at the repo's CI runner time doesn't read itself as the addressee. So this section is written to point back at that rule and widen its scope rather than restate it, which keeps the overlay short. I've also filed the framing gap upstream in tend, since it would fire the same way in any consumer.

The proportionality clause is the one #6211 most needed: that PR started as a timeout addition and reached 88 added lines across 6 files, because each review round found a real gap and each fix was individually justified. So the bar has to be re-checked as the diff grows, not just at the point the work is proposed.

On "looks like this only happened once?"

Close, but not exactly — the shape recurred, which is why I want the bar written in terms of cost and proportionality rather than a recurrence count alone.

Scanning tests runs on main for jobs that ran past 60 minutes, the 360-minute cancelled shape on the musl build-prqlc* legs appears in four runs across ~3.5 months, in three distinct incident windows:

runstartedcancelled jobs at 360m
268188210872026-06-021
277780153782026-06-182
321600301612026-08-183
322236762482026-08-191

The last two are ~14 hours apart and are one mirror incident, not two. I confirmed the apt-stall cause only for the August window — the June runs match on job shape and duration, but their logs weren't checked, so the common cause there is inferred rather than verified.

Either way the conclusion is the same as the one in the comment: roughly monthly, self-correcting on a re-run, and costing runner minutes only. That doesn't earn a retry script across six workflow files.

Method: repos/PRQL/prql/actions/runs/<id>/jobs over the 60 most recent completed tests runs on main, filtered to jobs with a completed-minus-started duration over 60 minutes; widened to 400 runs (2026-04-30 → present) using run-level duration over 300 minutes, since a 6h job forces a 6h run.

@prql-bot

Copy link
Copy Markdown
CollaboratorAuthor

Closing as superseded — max-sixty/tend#1015 makes this change in the bundled running-in-ci skill instead, which is the right home for it. We reached the same diagnosis independently (the Weighing a Fix examples are all tend's own compute, so a repo's CI runner time read as a category with no bar on it), and that PR covers both bars this one did — evidence counted in incident windows rather than runs, and a remedy capped at a one-line knob — plus binding the reviewer, which this overlay didn't. A per-repo overlay restating bundled guidance is exactly what the skill-PR workflow says not to open.

Not deleting the branch, in case any of the wording is worth salvaging.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@prql-bot