[eslint-refiner] ESLint Refiner — 2026-09-04 #58401
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by ESLint Refiner. A newer discussion is available at Discussion #58740. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Overview
Backlog check:
eslint-factory/src/index.tsnow registers 60 rules, up from the 12 tracked as of the last run (2026-07-08) — a 2-month gap widened the backlog to ~45 never-reviewed rules. This run reviewed 5 rules and filed 1 refinement issue.Key results
no-string-fallback-for-non-string-messageis diagnostic-only (no autofix suggestion), despite the fix being a mechanical 1:1 rewrite the rule already computes internally. Grounded with 3 live, unfixed corpus instances of the exact bug it targets (all copy-pastederr = dispatchError/err = erroraliasing):dispatch_workflow.cjs:338,route_slash_command.cjs:374,safeoutputs_cli.cjs:48.prefer-actions-exec-over-child-process,require-getexecoutput-exitcode-check,no-math-minmax-array-spread,require-page-counter-increment-in-while-true-loop). No rule-correctness bugs found; a few theoretical edge cases were identified via code reading but couldn't be grounded against the live corpus (see detail below), so — per this project's quality-over-cap precedent — they were recorded in memory rather than filed.Detail: rules reviewed and findings
prefer-actions-exec-over-child-process— Grounded againstchild_processusage acrossgit_helpers.cjs,send_otlp_span.cjs,validate_secrets.cjs,trace_graders.cjs,merge_remote_agent_github_folder.cjs,build_checkout_manifest.cjs,get_current_branch.cjs. All true positives/negatives — no gap found.require-getexecoutput-exitcode-check— Extremely thorough option-resolution and usage-site logic (spreads, ternaries, destructuring-assignment, cross-function return). Live true positive atcheck_workflow_recompile_needed.cjs:66-76(getChangedLockFiles()destructures onlystdoutdespiteignoreReturnCode: true) — the rule should already flag this correctly. No rule bug found.no-string-fallback-for-non-string-message— Issue filed (see above). Two additional theoretical gaps identified by reading the matcher functions (getTypeofMessageCheckChainKeyonly matches===, not!==;getStringCallArgChainKeyonly matchesString(...), not template-literal fallbacks like`${err}`) — grepped the corpus for both and found no live example matching the exact triggering shape, so these stay as ungrounded notes for a future run rather than filed issues.no-math-minmax-array-spread— Well-designed (identity-value seed,Mathshadow detection, fixed-argument folding). Grep forMath.min(.../Math.max(...acrossactions/setup/jsreturned zero matches — the rule has never fired in this corpus, so there's nothing to ground a finding against yet.require-page-counter-increment-in-while-true-loop— Checked all 8 livewhile (true)loops in the corpus; all true negatives (e.g.check_cooldown.cjscorrectly tracks two independent counters,pageandagentJobLookups, both properly incremented). One ungrounded design gap noted: unlike its sibling rulerequire-getexecoutput-exitcode-check, this rule doesn't recognize a destructuring-assignment counter advance (e.g.({ page } = await next())), which could false-positive if that pattern ever appears.Next actions
eslint-factory/src/index.tshave never been reviewed by this workflow. Future runs should broaden beyond "newest at the end of the file" and sweep rules that were skipped mid-list during the pre-gap ad-hoc rotation (e.g.no-github-request-interpolated-route,no-throw-plain-object,require-spawn-error-listener,require-http-response-error-listener).eslint-factory/README.mdrule-documentation coverage was already behind at 2/12 rules as of 2026-07-08; with 60 rules now registered, doc debt is likely much worse — worth a dedicated look.no-string-fallback-for-non-string-messagegaps and the destructuring-assignment gap inrequire-page-counter-increment-in-while-true-loopnext time a new.cjsfile lands with a matching shape.References: eslint-factory/src/index.ts, eslint-factory/src/rules/no-string-fallback-for-non-string-message.ts
Warning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
api.anthropic.comTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See Network Configuration for more information.
All reactions