# Parse Package JSON

> Extract version, dependencies, and metadata from package.json files. Use when needing project version, dependency list, or package metadata for releases, audits, or reports.

- Skill: `majiayu000/parse-package-json` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/parse-package-json`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/parse-package-json/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/parse-package-json

---


# Parse Package JSON

Extract structured data from package.json files for version management, dependency auditing, and metadata retrieval.

## When to Use

- Get current project version for release workflows
- Extract dependency list for auditing
- Read package metadata for reports
- Validate package.json structure

## Instructions

### Step 1: Read package.json

Use Read tool to load package.json file.

**Expected Input**:
- `file_path`: Path to package.json (default: `./package.json`)

**Tools Used**: Read

### Step 2: Parse JSON

Parse the JSON content and validate structure.

**Validation**:
- File must be valid JSON
- Must contain `name` and `version` fields at minimum
- Dependencies should be objects (if present)

### Step 3: Extract Fields

Extract relevant fields into structured output.

**Fields to Extract**:
- `version`: Semantic version string
- `name`: Package name
- `description`: Package description (optional)
- `dependencies`: Production dependencies object (optional)
- `devDependencies`: Development dependencies object (optional)
- `scripts`: Available npm scripts (optional)
- `main`: Entry point file (optional)
- `private`: Private flag (optional)

### Step 4: Return Structured Data

Return extracted data as JSON object.

**Expected Output**:
```json
{
  "version": "0.7.0",
  "name": "megacampus2",
  "description": "Project description",
  "dependencies": {
    "react": "^18.2.0"
  },
  "devDependencies": {
    "typescript": "^5.0.0"
  },
  "scripts": {
    "build": "tsc",
    "test": "jest"
  },
  "main": "dist/index.js",
  "private": true
}
```

## Error Handling

- **File Not Found**: Return error with message "package.json not found at {path}"
- **Invalid JSON**: Return error with parsing details
- **Missing Required Fields**: Return error listing missing fields (name, version)
- **Invalid Structure**: Return error describing structure issue

## Examples

### Example 1: Extract Version

**Input**:
```
file_path: ./package.json
```

**Output**:
```json
{
  "version": "0.7.0",
  "name": "megacampus2"
}
```

### Example 2: Full Package Info

**Input**:
```
file_path: ./packages/client/package.json
```

**Output**:
```json
{
  "version": "1.2.3",
  "name": "@megacampus/client",
  "dependencies": {
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  },
  "scripts": {
    "dev": "vite",
    "build": "vite build"
  }
}
```

### Example 3: Error - File Not Found

**Input**:
```
file_path: ./nonexistent.json
```

**Output**:
```json
{
  "error": "package.json not found at ./nonexistent.json",
  "success": false
}
```

## Validation

- [ ] Can read package.json from default path
- [ ] Can read package.json from custom path
- [ ] Extracts all specified fields correctly
- [ ] Handles missing optional fields gracefully
- [ ] Returns error for missing file
- [ ] Returns error for invalid JSON
- [ ] Returns error for missing required fields

## Supporting Files

- `schema.json`: JSON schema defining expected package.json structure

