← ClaudeAtlas

pattern-reviewer-typescriptlisted

TypeScript audit: `tsconfig.json` strictness (`strict`, `noUncheckedIndexedAccess`, `exactOptionalPropertyTypes`); `any` / `as any` laundering; `!` non-null without documented invariant; `interface` vs `type`; together-optional fields that should be discriminated unions; `eval` / `child_process` on user input (CRITICAL); prototype pollution; unguarded `JSON.parse`; `==` vs `===`; `forEach(async)`; return types on exports. Activate when the diff includes `.ts` / `.tsx` / `tsconfig.json`.
MartinKChen/harness-claude-code · ★ 0 · Code & Development · score 72
Install: claude install-skill MartinKChen/harness-claude-code
# pattern-reviewer-typescript ## When to activate - Reviewing a diff that includes `.ts` / `.tsx` / `tsconfig.json` files. - A user says "review the TypeScript usage / strictness / types". ## Project memory overlay After loading this skill, also check `$MAIN_ROOT/.claude/memory/patterns/pattern-reviewer-typescript.md` in the consuming project (resolve `MAIN_ROOT="$(dirname "$(git rev-parse --path-format=absolute --git-common-dir)")"`). If present, load it as an **additive overlay** to the rules below; if absent, skip silently. See `memory-convention` for the full contract (additivity, severity floor, conflict surfacing). ## Iron rules - **>80% confidence filter.** Report only when you are >80% confident. Consolidate similar findings. - **Cite `path/to/file.ext:line`.** Quote the offending snippet in a BAD block; show the fix in a GOOD block. - **Severity is load-bearing.** CRITICAL / HIGH block the gate; MEDIUM / LOW are informational. Use the per-pattern severity assigned below. - **Never refer to a finding as `#N`** — GitHub auto-links those to issues. Use a non-numeric handle (quoted title, `F1` / `F2`, `Finding 1`). ## Patterns to review ### `tsconfig.json` strictness (HIGH) Compare against `templates/tsconfig.json`. Required `compilerOptions`: - `"strict": true` - `"noUncheckedIndexedAccess": true` - `"exactOptionalPropertyTypes": true` - `"noImplicitReturns": true` - `"noFallthroughCasesInSwitch": true` - `"noImplicitOverride": true` Missing any of these → HI