← ClaudeAtlas

prop-analyzerlisted

Analyse a component's prop contract against how it is actually used — dead props, undeclared props, boolean traps, required-vs-optional balance, spread leakage, and breaking-change cost. Load before designing, reviewing, or changing any component's public API.
soumit-kaz/lazysitter · ★ 1 · Code & Development · score 69
Install: claude install-skill soumit-kaz/lazysitter
# Prop analysis A component's props are its public API. Once twenty files call it, changing them is a migration. This skill turns "does this API make sense" from a taste question into a measurement. ## Get the data first ```bash lazysitter fe-index props <ComponentName> lazysitter fe-index who <ComponentName> # call sites + props passed at each lazysitter fe-index dead-props # repo-wide drift lazysitter fe-index impact <path> # cost of a breaking change ``` `props` reconciles three sources — the TypeScript interface/type (following `extends` and `&` intersections), the destructured parameter pattern with its defaults, and `defaultProps` — and joins them against **every JSX call site's actual attributes**. ## The seven findings, in order of value ### 1. Dead prop surface — declared, passed at zero call sites The most reliable "this API has drifted" signal in a mature codebase. Each one is untested code, extra branches, and a promise the component is still keeping to nobody. Ask, per dead prop: was it *never* adopted, or was it *abandoned*? A prop added last week with no call sites is pending; a prop from two years ago with none is dead. The index gives you the file's newest-blame date to tell them apart. Removing it is a breaking change on paper and a no-op in practice — say exactly that, with the zero, rather than proposing a cautious deprecation for something nothing calls. ### 2. Undeclared props — passed but not declared Something c