Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 17:55:04 +08:00
commit 51ebc9cf32
8 changed files with 605 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
{
"name": "content-library-auditor",
"description": "Analyze WordPress XML, CMS JSON, or CSV exports for content insights. Publishing trends, author breakdowns, topic analysis, and interactive HTML reports with charts.",
"version": "1.0.0",
"author": {
"name": "Tim Metz @ Animalz",
"email": "contact@animalz.co",
"url": "https://animalz.co"
},
"agents": [
"./agents"
],
"commands": [
"./commands"
]
}

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# content-library-auditor
Analyze WordPress XML, CMS JSON, or CSV exports for content insights. Publishing trends, author breakdowns, topic analysis, and interactive HTML reports with charts.

47
agents/data-parser.md Normal file
View File

@@ -0,0 +1,47 @@
---
name: data-parser
description: Parses WordPress XML, JSON, and CSV content exports into structured data
model: sonnet
---
# Data Parser Agent
Extract structured content data from CMS exports (WordPress XML, JSON, CSV).
## Supported Formats
### WordPress XML
Extract from `<item>` elements:
- title, pubDate, dc:creator, category, content:encoded
- Parse dates to standard format
- Calculate word counts from content
### JSON
Parse flexible schemas, looking for:
- Common field names (title/name, date/published/created_at, author/creator)
- Nested structures (data.posts, items, articles)
- Array or object formats
### CSV
Parse with headers:
- Required: title, date, author
- Optional: category, tags, word_count, url, status
## Output Format
Return array of content objects:
```json
[
{
"title": "Post Title",
"date": "2024-01-15",
"author": "Author Name",
"categories": ["Category 1"],
"word_count": 1500,
"url": "/post-slug",
"status": "published"
}
]
```
Sort by date (newest first). Report parsing stats to user.

View File

@@ -0,0 +1,40 @@
---
name: publishing-analyzer
description: Analyzes publishing trends, cadence, and author contributions
model: sonnet
---
# Publishing Analyzer Agent
Analyze publishing patterns and author contributions from parsed content data.
## Publishing Trends Analysis
Calculate:
- Posts per month (group by year-month)
- Publishing frequency (posts/week, posts/month averages)
- Trend direction (increasing/decreasing %)
- Seasonal patterns
- Peak and low periods
Present as time series with month-by-month breakdown.
## Author Contribution Analysis
For each author calculate:
- Total posts
- Percentage of total content
- Average post length
- Publishing frequency (posts/month)
- Active date range
- Recent activity (last 3 months)
Rank authors by post count. Identify top contributors vs long-tail.
## Output Format
Markdown report with:
- Summary stats
- Month-by-month publishing table
- Author contribution rankings
- Key insights and trends

View File

@@ -0,0 +1,41 @@
---
name: topic-classifier
description: Analyzes content topics, categories, and identifies content gaps
model: sonnet
---
# Topic Classifier Agent
Analyze topic distribution and identify content opportunities.
## Category Analysis
From provided content data:
- Count posts per category/tag
- Calculate percentages
- Identify most/least covered topics
- Find orphaned content (no category)
## Topic Patterns
Look for:
- Common category combinations
- Topic evolution over time (early vs recent)
- Emerging topics (growth in last 6 months)
- Declining topics (decreased coverage)
## Content Gap Identification
Identify opportunities:
- Underserved topics (<5 posts) that could be expanded
- Related topics covered but specific angles missing
- Competitor topics not covered (if competitive data provided)
- Seasonal gaps (topics not covered in certain periods)
## Output Format
Markdown with:
- Topic distribution table
- Top 10 categories
- Content gap analysis
- Recommendations for content opportunities

View File

@@ -0,0 +1,48 @@
---
name: visualization-generator
description: Creates interactive HTML reports with Chart.js visualizations
model: sonnet
---
# Visualization Generator Agent
Generate interactive HTML reports with charts for content audit data.
## Charts to Generate
### 1. Publishing Trends (Line Chart)
- X-axis: Months
- Y-axis: Post count
- Show 12-24 month trend
### 2. Author Contributions (Bar Chart)
- X-axis: Author names (top 10)
- Y-axis: Post count
- Sorted by count descending
### 3. Topic Distribution (Pie Chart)
- Categories/topics
- Show percentages
- Top 8 categories + "Other"
### 4. Content Length Distribution (Histogram)
- Word count ranges (0-500, 500-1000, 1000-1500, etc.)
- Post count per range
## HTML Structure
Create self-contained HTML file with:
- Embedded CSS (clean, professional styling)
- Chart.js from CDN
- Navigation sections
- Print-friendly styles
- Responsive design
## Data Tables
Include interactive sortable tables for:
- All posts (title, date, author, category, word count)
- Author stats (name, posts, avg length, period)
- Category stats (name, count, percentage)
Save to `reports/[name]-audit.html`

349
commands/audit-content.md Normal file
View File

@@ -0,0 +1,349 @@
---
description: Comprehensive content library analysis from CMS export files
argument-hint: [export-file] [--format] [--output-html]
---
# Audit Content Library
Analyze WordPress XML, CMS JSON, or CSV exports to reveal publishing trends, author contributions, topic distribution, and content opportunities.
## Step 1: Detect and Parse Export File
**Read export file ($1):**
- Auto-detect format (XML/JSON/CSV) unless --format specified
- Validate file structure
- Count total items (posts, pages, etc.)
**Report to user:**
```markdown
## 📁 Content Export Detected
**File:** $1
**Format:** [WordPress XML / JSON / CSV]
**Items found:** [number] posts/pages
**Date range:** [earliest] to [latest]
**File size:** [size]
Would you like to proceed with analysis?
```
**Wait for user confirmation.**
---
## Step 2: Parse Content Data
Use **data-parser** agent to extract:
**For all formats:**
- Post titles
- Publication dates
- Authors
- Categories/tags
- Post length (word count)
- Status (published/draft)
- URLs/slugs
**Format-specific:**
**WordPress XML:**
```xml
<item>
<title>Post Title</title>
<pubDate>Date</pubDate>
<dc:creator>Author</dc:creator>
<category>Category</category>
<content:encoded>Body content</content:encoded>
</item>
```
**JSON:**
```json
{
"title": "Post Title",
"date": "2024-01-15",
"author": "Name",
"categories": ["cat1", "cat2"],
"content": "Body..."
}
```
**CSV:**
```csv
title,date,author,category,word_count
"Post Title","2024-01-15","Author","Category",1500
```
**Progress report:**
```
🔄 Parsing content...
- ✅ Posts extracted: [number]
- ✅ Authors identified: [number]
- ✅ Date range: [range]
- ✅ Categories: [number]
```
---
## Step 3: Analyze Publishing Trends
Use **publishing-analyzer** agent to calculate:
**Publishing Cadence:**
- Posts per month (last 6, 12, 24 months)
- Publishing frequency trends (increasing/decreasing)
- Seasonal patterns
- Content velocity
**Present to user:**
```markdown
## 📊 Publishing Trends
### Overall Stats
- Total posts: [number]
- Active period: [months/years]
- Average: [X] posts/month
- Trend: [Increasing 15% / Stable / Decreasing 10%]
### Recent Performance (Last 6 months)
- [Month]: [count] posts
- [Month]: [count] posts
[etc...]
### Publishing Patterns
- Peak month: [month] ([count] posts)
- Lowest month: [month] ([count] posts)
- Most active day: [day of week]
Would you like to continue with author and topic analysis?
```
**Wait for user approval.**
---
## Step 4: Author Contribution Breakdown
Use **publishing-analyzer** agent to:
**Calculate per author:**
- Total posts
- Percentage of total content
- Publishing frequency
- Average post length
- Active period (first to last post)
**Present breakdown:**
```markdown
## ✍️ Author Contributions
**Total authors:** [number]
### Top Contributors
#### 1. [Author Name]
- **Posts:** [number] ([percentage]% of total)
- **Avg length:** [words] words
- **Active:** [date range]
- **Cadence:** [X] posts/month
#### 2. [Author Name]
[Same format...]
---
### Long-tail Contributors
- [number] authors with 1-5 posts ([percentage]% of total)
Continue to topic analysis?
```
---
## Step 5: Topic & Category Analysis
Use **topic-classifier** agent to:
**Analyze categories/tags:**
- Distribution by category
- Most/least covered topics
- Topic combinations
- Content gaps
**Present analysis:**
```markdown
## 🏷️ Topic Distribution
### By Category
1. [Category 1]: [count] posts ([percentage]%)
2. [Category 2]: [count] posts ([percentage]%)
[etc...]
### Topic Insights
- **Most covered:** [topic] ([count] posts)
- **Underserved:** [topics with <5 posts]
- **Emerging:** [topics showing growth]
### Content Opportunities
- [Gap 1]: Only [X] posts, could expand
- [Gap 2]: [Related topics] covered, but [specific angle] missing
Proceed to generate report?
```
---
## Step 6: Generate Reports
**Ask user for output preference:**
```
📊 Report Format
Choose output format:
1. Terminal view (ASCII charts) - Quick review
2. Markdown file - For documentation
3. HTML report - Interactive charts (recommended)
4. All formats
Which would you like?
```
### Terminal View (ASCII Charts)
```
Publishing Trends (Last 12 Months)
═══════════════════════════════════
Jan 2024 ████████░░ 12 posts
Feb 2024 ██████░░░░ 9 posts
Mar 2024 ███████████ 15 posts
[etc...]
Top Authors
═══════════════════════════════════
Alice Smith ████████████████ 45 posts (35%)
Bob Johnson ██████████░░░░░░ 28 posts (22%)
[etc...]
```
### Markdown Report
Save to `reports/[filename]-audit.md`:
```markdown
# Content Audit Report
**Analyzed:** [date]
**Source:** [filename]
**Period:** [date range]
## Executive Summary
[Key findings]
## Metrics
[Full breakdowns]
```
### HTML Report (with Charts)
Use **visualization-generator** agent to create:
- Line chart: Publishing trends
- Bar chart: Author contributions
- Pie chart: Topic distribution
- Interactive data tables
Save to `reports/[filename]-audit.html`
---
## Step 7: Deliver Results
**Report completion:**
```markdown
## ✅ Content Audit Complete!
**Analysis period:** [date range]
**Total content:** [number] posts
**Authors:** [number]
**Categories:** [number]
### Key Findings
- [Finding 1]
- [Finding 2]
- [Finding 3]
### Reports Generated
- Terminal summary: [displayed above]
- Markdown: reports/[name]-audit.md
- HTML: reports/[name]-audit.html (open in browser)
### Recommended Actions
1. [Action based on findings]
2. [Action based on findings]
3. [Action based on findings]
**Next steps:**
- Use `/publishing-trends` for deeper time-series analysis
- Use `/topic-analysis` to explore specific categories
```
---
## Usage Examples
```bash
# WordPress export
/audit-content wordpress-export.xml --output-html
# JSON export from headless CMS
/audit-content content-export.json
# CSV from analytics
/audit-content content-metrics.csv --format csv
# With specific output format
/audit-content export.xml --format wordpress --output markdown
```
---
## Supported Formats
| Format | Auto-detect | Notes |
|--------|-------------|-------|
| **WordPress XML** | ✅ | Standard WP export |
| **JSON** | ✅ | Any CMS JSON with title/date/author fields |
| **CSV** | ✅ | Must have title,date,author columns minimum |
| **Custom** | Specify with --format | Provide field mapping |
---
## Tips for Best Results
### Export Best Practices
**WordPress:**
1. Tools → Export → All content
2. Download XML file
3. Run audit
**Headless CMS:**
- Export with all metadata (author, dates, categories)
- Include content body for word count analysis
- JSON or CSV format preferred
**Analytics Export:**
- Include title, publish date, author, URL
- CSV works well for this
### Data Quality
**Ensure export includes:**
- Publication dates (for trend analysis)
- Author names (for contribution breakdown)
- Categories/tags (for topic analysis)
- Content/word count (for depth analysis)
**Watch out for:**
- Drafts mixed with published (can filter)
- Inconsistent date formats
- Missing author attribution
- Incomplete exports (verify date range)

61
plugin.lock.json Normal file
View File

@@ -0,0 +1,61 @@
{
"$schema": "internal://schemas/plugin.lock.v1.json",
"pluginId": "gh:animalzinc/claude-plugins:plugins/content-library-auditor",
"normalized": {
"repo": null,
"ref": "refs/tags/v20251128.0",
"commit": "1639f6ff1104f62ad5806e0b41e37389b9436bbc",
"treeHash": "a643e040db0ad7a59e0313da3833a23d2a0088bc293cc5411fcef7420c352e22",
"generatedAt": "2025-11-28T10:13:44.713884Z",
"toolVersion": "publish_plugins.py@0.2.0"
},
"origin": {
"remote": "git@github.com:zhongweili/42plugin-data.git",
"branch": "master",
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
},
"manifest": {
"name": "content-library-auditor",
"description": "Analyze WordPress XML, CMS JSON, or CSV exports for content insights. Publishing trends, author breakdowns, topic analysis, and interactive HTML reports with charts.",
"version": "1.0.0"
},
"content": {
"files": [
{
"path": "README.md",
"sha256": "ab40de72915f51fb86c1abf8fab3edd5b7ffb8df4346e28ca5fcfecbada87293"
},
{
"path": "agents/topic-classifier.md",
"sha256": "e764a2981b138b75557bbcb05cee694da147a7c49c0fb285a55a572faa813e44"
},
{
"path": "agents/publishing-analyzer.md",
"sha256": "e91af534d5de343cfde4a51508d412e6e86fcfeecb4aee7daaf9eca65c60e0ff"
},
{
"path": "agents/visualization-generator.md",
"sha256": "b34165e2be69c9973dd3c55434b1810d90f868d0ef6ea397d66b2ab85cc8bc0c"
},
{
"path": "agents/data-parser.md",
"sha256": "30d2dc02e91159694c1793f9b2f8d96a9fb940f5a31661c5d0bb7c4c3fbb99f8"
},
{
"path": ".claude-plugin/plugin.json",
"sha256": "c08af0761f354fc45ff3829977b73381ab5bd1e400b75c3c1eded235a7bd4a66"
},
{
"path": "commands/audit-content.md",
"sha256": "b28a273a26dd62a6286df37356b00f97f450dee70bcff78b7b5512ed1f68cf9b"
}
],
"dirSha256": "a643e040db0ad7a59e0313da3833a23d2a0088bc293cc5411fcef7420c352e22"
},
"security": {
"scannedAt": null,
"scannerVersion": null,
"flags": []
}
}