You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rule inventory in eslint-factory/src/index.ts has grown from 12 (last recorded run, 2026-07-08) to 52 rules - a large gap where new rules shipped without daily review. Today's run deep-reviewed 11 rules, confirmed 2 previously-filed defects have already been fixed, filed 2 new grounded/soundness-gap issues, and confirmed 6 rules are robust with no fresh finding.
Key metrics
Rules reviewed today: 11 (of 52 total; ~28 never deep-reviewed)
Issues filed: 2 (quality-over-cap; no 3rd candidate cleared the grounding bar)
prefer-get-error-message lacks getErrorMessage resolvability check - its sibling rule prefer-get-error-message-over-string already guards against suggesting a call to an unimported helper; this rule doesn't. Latent today (all 5 live call sites already import the helper) but a real regression risk for new files.
no-json-stringify-set-or-map tracks variables by bare name, not scope - the trackedVars map is keyed purely by variable name across the whole file, so two same-named Set/Map-vs-other variables in different scopes would collide. No live collision found in the corpus today, but the fix (scope-aware resolution) is cheap and the gap is real.
Confirmed fixed since last review (2026-07-08)
isInsideTryBlock now correctly requires ancestor.handler != null - the previously-filed catch-less try/finally soundness gap is closed.
createFsSyncMethodResolver now handles ObjectPattern destructuring - the previously-filed destructured-fs-binding false negative is closed.
Full per-rule review detail
Deep-reviewed, no fresh finding (confirmed robust):
no-throw-plain-object - JSON-RPC error-shape exemption correctly matches all ~28 live throw { code, message } sites in mcp_server_core.cjs/safe_outputs_handlers.cjs.
require-new-url-try-catch - ~10 live dynamic-arg new URL() call sites checked (validate_secrets.cjs, copilot_harness.cjs, mount_mcp_as_cli.cjs, sanitize_content_core.cjs, generate_history_link.cjs, artifact_client.cjs, etc.) - all correctly try/catch-wrapped.
no-math-minmax-array-spread - 3 live single-spread-arg sites (daily_aic_workflow_helpers.cjs:208-209, patch_path_helpers.cjs:28) all correctly flagged/fixable; zero live mixed-arg (Math.max(0, ...arr)) false-negative pattern.
require-sync-exec-timeout - all checked live exec call sites (artifact_client.cjs, git_helpers.cjs, get_current_branch.cjs, build_checkout_manifest.cjs) have an explicit or conservatively-assumed timeout.
require-mkdirsync-try-catch, require-fs-io-try-catch - both reuse the shared createFsSyncMethodResolver infra correctly, no fresh bug.
require-fs-close-sync - has a documented, intentional nested-function blind spot; traced but zero live occurrences in the corpus, so not filed.
no-empty-catch-block - grounded two live true-negative cases (action_setup_otlp.cjs:198, action_conclusion_otlp.cjs:98) with intentional-ignore comments at a 1-line ancestor-statement gap; rule correctly recognizes both.
Filed:
prefer-get-error-message (see issue above) - grounding sites: complete_pre_created_check_run.cjs:57, upload_artifact.cjs:286/301/343/391.
no-json-stringify-set-or-map (see issue above) - soundness gap, ungrounded against a live collision.
Next actions
~28 of the 52 registered rules have never had a deep review pass (full list retained in repo-memory state.json.nextPriorities) - prioritize those over re-reviewing already-covered rules.
README documentation debt has likely grown (was 2/12 rules documented as of 2026-07-08, now 2/52) - worth a dedicated doc-debt issue in a future run rather than displacing a refinement issue slot.
Re-verify the 5 live prefer-get-error-message call sites still fire/autofix correctly once the resolvability check lands (no regression).
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Overview
Rule inventory in
eslint-factory/src/index.tshas grown from 12 (last recorded run, 2026-07-08) to 52 rules - a large gap where new rules shipped without daily review. Today's run deep-reviewed 11 rules, confirmed 2 previously-filed defects have already been fixed, filed 2 new grounded/soundness-gap issues, and confirmed 6 rules are robust with no fresh finding.Key metrics
Issues filed today
prefer-get-error-messagelacks getErrorMessage resolvability check - its sibling ruleprefer-get-error-message-over-stringalready guards against suggesting a call to an unimported helper; this rule doesn't. Latent today (all 5 live call sites already import the helper) but a real regression risk for new files.no-json-stringify-set-or-maptracks variables by bare name, not scope - thetrackedVarsmap is keyed purely by variable name across the whole file, so two same-named Set/Map-vs-other variables in different scopes would collide. No live collision found in the corpus today, but the fix (scope-aware resolution) is cheap and the gap is real.Confirmed fixed since last review (2026-07-08)
isInsideTryBlocknow correctly requiresancestor.handler != null- the previously-filed catch-less try/finally soundness gap is closed.createFsSyncMethodResolvernow handlesObjectPatterndestructuring - the previously-filed destructured-fs-binding false negative is closed.Full per-rule review detail
Deep-reviewed, no fresh finding (confirmed robust):
no-throw-plain-object- JSON-RPC error-shape exemption correctly matches all ~28 livethrow { code, message }sites inmcp_server_core.cjs/safe_outputs_handlers.cjs.require-new-url-try-catch- ~10 live dynamic-argnew URL()call sites checked (validate_secrets.cjs, copilot_harness.cjs, mount_mcp_as_cli.cjs, sanitize_content_core.cjs, generate_history_link.cjs, artifact_client.cjs, etc.) - all correctly try/catch-wrapped.no-math-minmax-array-spread- 3 live single-spread-arg sites (daily_aic_workflow_helpers.cjs:208-209,patch_path_helpers.cjs:28) all correctly flagged/fixable; zero live mixed-arg (Math.max(0, ...arr)) false-negative pattern.require-sync-exec-timeout- all checked live exec call sites (artifact_client.cjs,git_helpers.cjs,get_current_branch.cjs,build_checkout_manifest.cjs) have an explicit or conservatively-assumed timeout.require-mkdirsync-try-catch,require-fs-io-try-catch- both reuse the sharedcreateFsSyncMethodResolverinfra correctly, no fresh bug.require-fs-close-sync- has a documented, intentional nested-function blind spot; traced but zero live occurrences in the corpus, so not filed.no-empty-catch-block- grounded two live true-negative cases (action_setup_otlp.cjs:198,action_conclusion_otlp.cjs:98) with intentional-ignore comments at a 1-line ancestor-statement gap; rule correctly recognizes both.Filed:
prefer-get-error-message(see issue above) - grounding sites:complete_pre_created_check_run.cjs:57,upload_artifact.cjs:286/301/343/391.no-json-stringify-set-or-map(see issue above) - soundness gap, ungrounded against a live collision.Next actions
state.json.nextPriorities) - prioritize those over re-reviewing already-covered rules.prefer-get-error-messagecall sites still fire/autofix correctly once the resolvability check lands (no regression).All reactions