You are reviewing the developer experience (DX) of the library to ensure it feels good to use. As a library consumed by other developers, ergonomics matter as much as functionality.
Your Task
Identify scope - Based on the conversation context, determine what module or feature to review. If no specific scope is mentioned, review the main public API.
Analyze the API surface - How do developers interact with this code?
Evaluate ergonomics - Is it intuitive, consistent, and pleasant to use?
Report findings - Document issues and recommendations
DX Evaluation Criteria
1. Discoverability
Can developers find what they need?
Are method names intuitive and searchable?
Is the API surface appropriately sized (not too sprawling)?
2. Consistency
Do similar operations work the same way?
Are naming conventions consistent across the API?
Do return types follow predictable patterns?
3. Ergonomics
Is the common case easy? (pit of success)
Are required parameters actually required?
Do defaults make sense for typical usage?
Is there unnecessary boilerplate?
4. Error Experience
Are errors actionable? (tells you what went wrong AND how to fix it)
Do errors surface at the right time? (fail fast)
Are error types specific enough to catch programmatically?
5. Type Experience
Does autocomplete guide developers?
Are types precise (not too wide like any or string)?
Do generics add value or just complexity?
6. Documentation in Code
Are public methods documented with JSDoc?
Do examples in comments actually work?
Are parameter constraints documented?
7. Comparison to Standards
How does this compare to similar libraries developers know?
Does it follow platform conventions (Node.js, Web APIs)?
Would a developer's intuition from other libraries apply here?
Review Process
Step 1: Use the API
Put yourself in a consumer's shoes:
What would a developer try first?
What questions would they have?
Where would they get stuck?
Step 2: Read the Types
Examine the TypeScript definitions:
What does autocomplete show?
Are overloads clear or confusing?
Do type errors make sense?
Step 3: Trace Common Workflows
Walk through typical tasks:
Opening a PDF and reading metadata
Modifying form fields
Saving changes
Handling errors
Step 4: Look for Friction
Identify pain points:
Unnecessary ceremony or boilerplate
Confusing parameter orders
Inconsistent patterns
Missing conveniences
Output Format
Write your review to .agents/scratch/dx-review-<scope>.md:
# DX Review: <Scope>
## Summary
Overall assessment and top priorities.
## What's Working Well
- Positive patterns to preserve
## Issues Found
### Issue 1: <Title>
**Severity:** High/Medium/Low
**Category:** Discoverability/Consistency/Ergonomics/Errors/Types/Docs
**Problem:**
Description of the issue from a developer's perspective.
**Example:**
```typescript
// Current awkward usage
```
**Recommendation:**
```typescript
// Proposed improvement
```
### Issue 2: ...
## Recommendations Summary
Prioritized list of changes to improve DX.
## Comparison Notes
How we compare to pdf-lib, pdfjs, or other libraries developers might know.
```
## Guidelines
- **Be specific** - Vague feedback isn't actionable
- **Show, don't tell** - Include code examples
- **Prioritize** - Not all issues are equal
- **Be constructive** - Propose solutions, not just problems
- **Consider tradeoffs** - Note when fixing one thing might hurt another
- **Think like a user** - You're advocating for developers who will use this
## Begin
Review the scope determined from the conversation context (or the main API if unspecified) and document your DX findings.
```
1---2name: dx-review3description: Review developer experience and API ergonomics4---56You are reviewing the developer experience (DX) of the library to ensure it feels good to use. As a library consumed by other developers, ergonomics matter as much as functionality.78## Your Task9101. **Identify scope** - Based on the conversation context, determine what module or feature to review. If no specific scope is mentioned, review the main public API.112. **Analyze the API surface** - How do developers interact with this code?123. **Evaluate ergonomics** - Is it intuitive, consistent, and pleasant to use?134. **Report findings** - Document issues and recommendations1415## DX Evaluation Criteria1617### 1. Discoverability1819- Can developers find what they need?20- Are method names intuitive and searchable?21- Is the API surface appropriately sized (not too sprawling)?2223### 2. Consistency2425- Do similar operations work the same way?26- Are naming conventions consistent across the API?27- Do return types follow predictable patterns?2829### 3. Ergonomics3031- Is the common case easy? (pit of success)32- Are required parameters actually required?33- Do defaults make sense for typical usage?34- Is there unnecessary boilerplate?3536### 4. Error Experience3738- Are errors actionable? (tells you what went wrong AND how to fix it)39- Do errors surface at the right time? (fail fast)40- Are error types specific enough to catch programmatically?4142### 5. Type Experience4344- Does autocomplete guide developers?45- Are types precise (not too wide like `any` or `string`)?46- Do generics add value or just complexity?4748### 6. Documentation in Code4950- Are public methods documented with JSDoc?51- Do examples in comments actually work?52- Are parameter constraints documented?5354### 7. Comparison to Standards5556- How does this compare to similar libraries developers know?57- Does it follow platform conventions (Node.js, Web APIs)?58- Would a developer's intuition from other libraries apply here?5960## Review Process6162### Step 1: Use the API6364Put yourself in a consumer's shoes:6566- What would a developer try first?67- What questions would they have?68- Where would they get stuck?6970### Step 2: Read the Types7172Examine the TypeScript definitions:7374- What does autocomplete show?75- Are overloads clear or confusing?76- Do type errors make sense?7778### Step 3: Trace Common Workflows7980Walk through typical tasks:8182- Opening a PDF and reading metadata83- Modifying form fields84- Saving changes85- Handling errors8687### Step 4: Look for Friction8889Identify pain points:9091- Unnecessary ceremony or boilerplate92- Confusing parameter orders93- Inconsistent patterns94- Missing conveniences9596## Output Format9798Write your review to `.agents/scratch/dx-review-<scope>.md`:99100````markdown101# DX Review: <Scope>102103## Summary104105Overall assessment and top priorities.106107## What's Working Well108109- Positive patterns to preserve110111## Issues Found112113### Issue 1: <Title>114115**Severity:** High/Medium/Low116**Category:** Discoverability/Consistency/Ergonomics/Errors/Types/Docs117118**Problem:**119Description of the issue from a developer's perspective.120121**Example:**122123```typescript124// Current awkward usage125```126127**Recommendation:**128129```typescript130// Proposed improvement131```132133### Issue 2: ...134135## Recommendations Summary136137Prioritized list of changes to improve DX.138139## Comparison Notes140141How we compare to pdf-lib, pdfjs, or other libraries developers might know.142143```144145## Guidelines146147- **Be specific** - Vague feedback isn't actionable148- **Show, don't tell** - Include code examples149- **Prioritize** - Not all issues are equal150- **Be constructive** - Propose solutions, not just problems151- **Consider tradeoffs** - Note when fixing one thing might hurt another152- **Think like a user** - You're advocating for developers who will use this153154## Begin155156Review the scope determined from the conversation context (or the main API if unspecified) and document your DX findings.157```158````
Run npx skillmds@latest add libpdf-js/dx-review in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Review developer experience and API ergonomics It is listed under Integrations & APIs on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
libpdf-js (@libpdf-js) published this skill. Their other Agent Skills are listed on their SkillMD profile.