What problem does it solve? New optional parameters and type members (foo?: T) in internal TypeScript code let callers silently omit values, hiding whether absence was intentional. This Skill enforces a convention where internal APIs use required nullable fields (name: T | null) so every call site makes an explicit choice, while keeping public APIs backwards-compatible. ## Core Features & Use Cases - Diff Scanning: Runs a Bun script that parses git diff output and flags newly added optional members, parameters, and optional methods in TypeScript files. - Public vs Internal Classification: Guides you to check package entrypoints and docs before changing a signature, preserving backwards compatibility for exported APIs. - Refactoring Workflow: Provides step-by-step instructions to convert ?: to T | null, update all call sites to pass null explicitly, and fix truthy checks that mishandle falsy values like 0 or ''. - Use Case: During code review of a Remotion monorepo PR, run the scanner to find a newly added frozenFrame?: number | null prop, convert it to frozenFrame: number | null, and update every caller to pass an explicit value. ## Quick Start Ask the AI to scan your current diff for newly added optional parameters and convert the internal ones to required nullable values with explicit null at every call site.