.claude/skills/review-static-lintignore/SKILL.md
Audit all lint-ignore suppressions for appropriateness and overuse
npx skillsauth add cwilliams5/Alt-Tabby review-static-lintignoreInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Enter planning mode. Audit every lint-ignore suppression in the codebase — both the check definitions and the usage sites. Use parallelism where possible.
Static analysis checks in tests/check_batch_*.ps1 support inline suppression via ; lint-ignore: <tag> comments in .ahk source files. When a check encounters a suppressed line, it skips it. This is the escape hatch for legitimate exceptions — but escape hatches can also become workarounds that silently disable the checks they're supposed to enforce.
Scan tests/check_batch_*.ps1 files for suppression tag definitions. For each one, document:
lint-ignore: critical-leak).ahk filesFor each lint-ignore tag, write both sides:
Argument for keeping it:
Argument for removing it:
Every lint-ignore is required to have a parenthetical reason: ; lint-ignore: tag (reason). This is enforced by the lint_ignore_reason sub-check in check_batch_patterns.ps1.
For each ; lint-ignore: comment in .ahk source files:
For each finding:
file.ahk lines X–Y" with the actual suppressed code quoted, and "check defined at check_batch_X.ps1 line Z" showing what the check enforces.Section 1 — Suppression tag inventory:
| Tag | Check File | Enforces | Usage Count |
|-----|-----------|----------|-------------|
| critical-leak | check_batch_guards.ps1 | Critical "Off" before return | 14 |
Section 2 — Tag-level evaluation:
| Tag | Keep Argument | Remove Argument | Verdict |
|-----|--------------|----------------|---------|
| critical-leak | State machine returns inside outer Critical scope — checker can't see caller context | 14 uses may indicate the check needs scope awareness | Keep — but enhance check |
Section 3 — Per-usage audit:
| File | Line | Tag | Code | Classification | Action |
|------|------|-----|------|---------------|--------|
| gui_state.ahk | 130 | critical-leak | return ; lint-ignore: critical-leak | Appropriate — outer function holds Critical | None |
| foo.ahk | 55 | dead-param | MyFunc(a, b) { ; lint-ignore: dead-param | Workaround — param b could be removed | Remove suppression, remove param |
Order by action needed: workarounds and stale suppressions first, appropriate ones last.
Ignore any existing plans — create a fresh one.
tools
Create a new git worktree and switch the session into it
tools
Spawn agent to trace code flow via query tools — answer only, no context cost
tools
Commit, push, and create a PR for the current branch
tools
Retire a shader by moving its files to legacy/shaders_retired