Library Evaluation
Purpose
Produce a structured, weighted comparison of candidate libraries to make dependency decisions based on evidence rather than familiarity or hype.
Scope Constraints
- Evaluates individual libraries and packages, not full frameworks or platforms.
- Focuses on technical fitness for the project, not market positioning or competitive landscape.
- Does not perform security audits; flag security concerns for handoff to the appropriate skill.
Inputs
- The need or problem the library should solve
- Any known candidates (or let the process discover them)
- Project constraints (bundle size budget, license requirements, framework compatibility)
- Current tech stack and existing dependencies
Input Sanitization
No user-provided values are used in commands or file paths. All inputs are treated as read-only analysis targets.
Procedure
Step 1: Identify Candidate Libraries
- Search npm, GitHub, and community recommendations for the problem space
- Include the most popular option, the most recently trending option, and at least one lightweight alternative
- Note any candidates already in use in the codebase's dependency tree
Step 2: Evaluate Popularity Metrics
For each candidate:
- npm weekly downloads (absolute number and trend direction)
- GitHub stars and recent star velocity
- Community size (Discord, Stack Overflow tags, GitHub Discussions activity)
- Notable adopters (large companies or well-known projects using it)
Step 3: Assess Maintenance Health
For each candidate:
- Commit frequency: Active development or maintenance-only?
- Issue response time: Median time to first response on new issues
- Release cadence: Regular releases or long gaps?
- Bus factor: Single maintainer or team? Corporate backing?
- Breaking change history: How are major versions handled?
Step 4: Measure Bundle Impact
For each candidate:
- Gzipped bundle size (via bundlephobia or similar)
- Tree-shaking support (ESM exports, side-effect-free)
- Dependency count (transitive dependencies and their health)
- Runtime performance characteristics if applicable
Step 5: Review API Quality and Developer Experience
For each candidate:
- TypeScript support (built-in types, DefinitelyTyped, quality of types)
- Documentation quality (getting started guide, API reference, examples)
- API ergonomics (intuitive naming, sensible defaults, composability)
- Migration path from current solution if applicable
Step 6: Check License Compatibility
For each candidate:
- License type (MIT, Apache 2.0, ISC, GPL, etc.)
- Compatibility with project's license
- Transitive dependency license concerns
- Any commercial use restrictions
Step 7: Produce Weighted Comparison Score
- Assign weights based on project priorities (e.g., bundle size matters more for client-side)
- Score each criterion 1-5
- Calculate weighted total
- Flag any deal-breakers that override the score
Progress Checklist
Compaction resilience: If context was compacted, re-read this SKILL.md and check the Progress Checklist for completed steps before continuing.
Handoff
- If license or security concerns emerge, recommend loading skeptic/threat-model for threat analysis.
- If the evaluation reveals broader framework or platform adoption questions, recommend loading scout/technology-radar.
Output Format
Library Comparison Matrix
| Criterion |
Weight |
Candidate A |
Candidate B |
Candidate C |
| Weekly downloads |
... |
.../5 |
.../5 |
.../5 |
| Maintenance health |
... |
.../5 |
.../5 |
.../5 |
| Bundle size |
... |
.../5 |
.../5 |
.../5 |
| TypeScript support |
... |
.../5 |
.../5 |
.../5 |
| API quality |
... |
.../5 |
.../5 |
.../5 |
| License |
... |
.../5 |
.../5 |
.../5 |
| Weighted Total |
|
... |
... |
... |
Recommendation
Recommended: [Library Name]
Rationale: [2-3 sentence justification referencing the top differentiating factors]
Risks: [Known risks or caveats with the recommendation]
Migration notes: [If replacing an existing dependency, key migration steps]
Quality Checks
Evolution Notes
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: library-evaluation3description: Use when adding new packages, choosing between dependency alternatives, or auditing existing libraries. Covers popularity metrics, maintenance health, bundle impact, API quality, and license compatibility with weighted scoring. Do not use for evaluating frameworks or platforms (use technology-radar) or comparing competing products (use competitive-analysis).4---56# Library Evaluation78## Purpose910Produce a structured, weighted comparison of candidate libraries to make dependency decisions based on evidence rather than familiarity or hype.1112## Scope Constraints1314- Evaluates individual libraries and packages, not full frameworks or platforms.15- Focuses on technical fitness for the project, not market positioning or competitive landscape.16- Does not perform security audits; flag security concerns for handoff to the appropriate skill.1718## Inputs1920- The need or problem the library should solve21- Any known candidates (or let the process discover them)22- Project constraints (bundle size budget, license requirements, framework compatibility)23- Current tech stack and existing dependencies2425## Input Sanitization2627No user-provided values are used in commands or file paths. All inputs are treated as read-only analysis targets.2829## Procedure3031### Step 1: Identify Candidate Libraries3233- Search npm, GitHub, and community recommendations for the problem space34- Include the most popular option, the most recently trending option, and at least one lightweight alternative35- Note any candidates already in use in the codebase's dependency tree3637### Step 2: Evaluate Popularity Metrics3839For each candidate:40- npm weekly downloads (absolute number and trend direction)41- GitHub stars and recent star velocity42- Community size (Discord, Stack Overflow tags, GitHub Discussions activity)43- Notable adopters (large companies or well-known projects using it)4445### Step 3: Assess Maintenance Health4647For each candidate:48- **Commit frequency:** Active development or maintenance-only?49- **Issue response time:** Median time to first response on new issues50- **Release cadence:** Regular releases or long gaps?51- **Bus factor:** Single maintainer or team? Corporate backing?52- **Breaking change history:** How are major versions handled?5354### Step 4: Measure Bundle Impact5556For each candidate:57- Gzipped bundle size (via bundlephobia or similar)58- Tree-shaking support (ESM exports, side-effect-free)59- Dependency count (transitive dependencies and their health)60- Runtime performance characteristics if applicable6162### Step 5: Review API Quality and Developer Experience6364For each candidate:65- TypeScript support (built-in types, DefinitelyTyped, quality of types)66- Documentation quality (getting started guide, API reference, examples)67- API ergonomics (intuitive naming, sensible defaults, composability)68- Migration path from current solution if applicable6970### Step 6: Check License Compatibility7172For each candidate:73- License type (MIT, Apache 2.0, ISC, GPL, etc.)74- Compatibility with project's license75- Transitive dependency license concerns76- Any commercial use restrictions7778### Step 7: Produce Weighted Comparison Score7980- Assign weights based on project priorities (e.g., bundle size matters more for client-side)81- Score each criterion 1-582- Calculate weighted total83- Flag any deal-breakers that override the score8485### Progress Checklist8687- [ ] Step 1: Candidates identified88- [ ] Step 2: Popularity metrics evaluated89- [ ] Step 3: Maintenance health assessed90- [ ] Step 4: Bundle impact measured91- [ ] Step 5: API quality reviewed92- [ ] Step 6: License compatibility checked93- [ ] Step 7: Weighted comparison scored9495> **Compaction resilience:** If context was compacted, re-read this SKILL.md and check the Progress Checklist for completed steps before continuing.9697## Handoff9899- If license or security concerns emerge, recommend loading skeptic/threat-model for threat analysis.100- If the evaluation reveals broader framework or platform adoption questions, recommend loading scout/technology-radar.101102## Output Format103104### Library Comparison Matrix105106| Criterion | Weight | Candidate A | Candidate B | Candidate C |107|-----------|--------|-------------|-------------|-------------|108| Weekly downloads | ... | .../5 | .../5 | .../5 |109| Maintenance health | ... | .../5 | .../5 | .../5 |110| Bundle size | ... | .../5 | .../5 | .../5 |111| TypeScript support | ... | .../5 | .../5 | .../5 |112| API quality | ... | .../5 | .../5 | .../5 |113| License | ... | .../5 | .../5 | .../5 |114| **Weighted Total** | | **...** | **...** | **...** |115116### Recommendation117118**Recommended:** [Library Name]119**Rationale:** [2-3 sentence justification referencing the top differentiating factors]120**Risks:** [Known risks or caveats with the recommendation]121**Migration notes:** [If replacing an existing dependency, key migration steps]122123## Quality Checks124125- [ ] At least 3 candidate libraries evaluated126- [ ] npm download trends checked (not just absolute numbers)127- [ ] Maintenance health assessed (commit frequency, issue response, bus factor)128- [ ] Bundle size measured with gzipped numbers129- [ ] TypeScript support quality verified130- [ ] License compatibility confirmed131- [ ] Weighted scores reflect project-specific priorities132- [ ] Deal-breakers explicitly called out133134## Evolution Notes135<!-- Observations appended after each use -->136137---138> Converted and distributed by [TomeVault](https://tomevault.io/claim/dtsong) — claim your Tome and manage your conversions.139<!-- tomevault:4.0:skill_md:2026-04-13 -->