Babysitter component-inventory
Audit and inventory existing UI components in a codebase
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/ux-ui-design/skills/component-inventory" ~/.claude/skills/a5c-ai-babysitter-component-inventory && rm -rf "$T"
manifest:
library/specializations/ux-ui-design/skills/component-inventory/SKILL.mdsource content
Component Inventory Skill
Purpose
Scan codebases to audit and inventory existing UI components, identifying variations, usage patterns, and opportunities for consolidation.
Capabilities
- Scan codebase for React/Vue/Angular components
- Identify component variations and duplicates
- Map component usage across the application
- Generate comprehensive inventory reports
- Detect inconsistencies in component implementations
- Track component dependencies
Target Processes
- component-library.js
- design-system.js
Integration Points
- React component analysis via AST parsing
- Vue SFC analysis
- TypeScript/JavaScript AST parsing
- CSS-in-JS detection
Input Schema
{ "type": "object", "properties": { "scanPath": { "type": "string", "description": "Root path to scan for components" }, "framework": { "type": "string", "enum": ["react", "vue", "angular", "svelte", "auto"], "default": "auto" }, "patterns": { "type": "array", "items": { "type": "string" }, "default": ["**/*.tsx", "**/*.jsx", "**/*.vue"] }, "excludePaths": { "type": "array", "items": { "type": "string" }, "default": ["node_modules", "dist", "build"] }, "analyzeProps": { "type": "boolean", "default": true }, "detectDuplicates": { "type": "boolean", "default": true } }, "required": ["scanPath"] }
Output Schema
{ "type": "object", "properties": { "components": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "path": { "type": "string" }, "props": { "type": "array" }, "usageCount": { "type": "number" } } } }, "duplicates": { "type": "array", "description": "Similar or duplicate components" }, "variations": { "type": "object", "description": "Component variations grouped by type" }, "usageMap": { "type": "object", "description": "Component usage locations" }, "statistics": { "type": "object", "properties": { "totalComponents": { "type": "number" }, "uniqueComponents": { "type": "number" }, "averagePropsCount": { "type": "number" } } }, "recommendations": { "type": "array", "description": "Consolidation recommendations" } } }
Usage Example
const result = await skill.execute({ scanPath: './src', framework: 'react', patterns: ['**/*.tsx', '**/*.jsx'], detectDuplicates: true });