
Freshie Inventory Manager
FreeManage and audit your freshie ecosystem inventory database.
Free · Opens the source repo
What Freshie Inventory Manager does
The Freshie Inventory Manager is an interactive command center designed to manage and maintain the freshie ecosystem inventory database. This skill provides a comprehensive view of all plugins, skills, packs, and compliance grades, organized across 51 SQLite tables. Users can leverage this tool to check the health of their ecosystem, run discovery scans, validate compliance, and generate detailed reports on inventory data. The skill acts as a wizard, guiding users through various tasks while delegating complex operations to specialized subagents.
At its core, the Freshie Inventory Manager serves as a single source of truth for ecosystem-wide metrics such as plugin counts, skill compliance grades, and historical trends from versioned discovery runs. It allows users to execute a variety of workflows, from performing compliance checks to running anomaly scans, all while ensuring that the database remains up-to-date and accurate. The skill's command center interface presents a clear menu of options, making it easy for users to navigate through tasks such as querying data, comparing runs, or exporting grades.
The tool is particularly beneficial for developers and teams responsible for maintaining the integrity of their plugin ecosystem, as it provides vital insights into compliance and operational efficiency. With features like batch remediation for compliance issues and delta reporting for version changes, the Freshie Inventory Manager enhances the ability to manage and audit the ecosystem effectively. This skill is ideal for those who require a structured approach to inventory management and compliance validation, ensuring that all components of the freshie ecosystem are functioning optimally.
In summary, the Freshie Inventory Manager is a powerful tool for anyone involved in managing the freshie ecosystem, providing essential capabilities for tracking, auditing, and maintaining the health of the inventory database.
When to use it
Use this skill when you need to check ecosystem health, validate compliance, or generate reports on your inventory.
When not to use it
This skill may not be suitable for users who require a simple inventory solution without the need for compliance checks or detailed reporting.
What you can build with it
Running a Compliance Audit
Use the Freshie Inventory Manager to execute a compliance check, validating all skills and generating a report on their compliance grades.
Performing a Discovery Scan
Initiate a full discovery scan to update the inventory database, ensuring all plugins and skills are accounted for and current.
Generating Status Reports
Create detailed status reports on your ecosystem's health, including plugin counts and compliance grades, for team reviews.
How to install Freshie Inventory Manager
View source1. Install with the skills CLI
npx skills add jeremylongshore/claude-code-plugins-plus-skills/freshie-inventory --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by jeremylongshoreFreshie Inventory Manager
Interactive command center for the freshie ecosystem inventory database.
Current DB Status
!sqlite3 freshie/inventory.sqlite "SELECT 'Run #' || id || ' — ' || run_date || ' | Plugins: ' || total_plugins || ' | Skills: ' || total_skills || ' | Packs: ' || COALESCE(total_packs, 0) FROM discovery_runs ORDER BY id DESC LIMIT 3;" 2>/dev/null || echo "DB not found at freshie/inventory.sqlite"
!sqlite3 freshie/inventory.sqlite "SELECT grade || ': ' || COUNT(*) FROM skill_compliance GROUP BY grade ORDER BY grade;" 2>/dev/null
Overview
The freshie database is the single source of truth for ecosystem-wide metrics — plugin counts, skill compliance grades, pack coverage, anomaly detection, and historical trends across versioned discovery runs. This skill is an interactive wizard — it always asks what you want to do, then delegates heavy operations to specialized subagents.
Database location: freshie/inventory.sqlite (51 tables, versioned by run_id)
Key scripts:
freshie/scripts/rebuild-inventory.py— full repo scan, creates new discovery runfreshie/scripts/batch-remediate.py— auto-fix compliance issuesscripts/validate-skills-schema.py— enterprise validation with DB populationfreshie/scripts/run-delta.py [--run-id N] [--alert-on-regression]— (re)generate a run's delta report (schema-vs-data changes + grade regressions; exit 4 signal on regressions)freshie/scripts/dolt-sync.py [--alert-on-regression]— Dolt sync; emits the delta report post-commit and can exit 4 when grades regressed
Prerequisites
sqlite3CLI available on PATHpython3withpyyamlinstalled- Working directory is the repo root (
claude-code-plugins/) - Database exists at
freshie/inventory.sqlite /emailskill installed (for PDF report emailing)
Instructions
Step 1: Present Main Menu
When invoked, ALWAYS start by presenting this menu using AskUserQuestion:
FRESHIE INVENTORY COMMAND CENTER
================================================================
What would you like to do?
1. Dashboard — Current status, grades, staleness
2. Discovery Scan — Full repo scan, create new run
3. Compliance Check — Enterprise validation + DB population
4. Remediation — Batch fix compliance issues
5. Query — Ad-hoc SQLite queries
6. Compare Runs — Delta analysis between runs
7. Export Data — CSV exports to freshie/exports/
8. Anomaly Scan — Data quality + outlier detection
9. Pack Coverage — SaaS pack completeness metrics
10. Full Audit — Scan + validate + report (end-to-end)
11. Report Only — Generate summary from existing data
Use AskUserQuestion with these options. If the user's initial prompt already contains a clear intent (e.g., "freshie status"), skip the menu and route directly.
Step 2: Execute Chosen Workflow
Based on selection, follow the matching workflow below. Every workflow ends with Step 3 (Email Report).
Workflow A: Dashboard
Run these queries and present as a formatted dashboard:
sqlite3 freshie/inventory.sqlite "SELECT id, run_date, total_plugins, total_skills, COALESCE(total_packs,0) FROM discovery_runs ORDER BY id DESC LIMIT 1;"
sqlite3 freshie/inventory.sqlite "SELECT grade, COUNT(*) FROM skill_compliance WHERE run_id=(SELECT MAX(id) FROM discovery_runs) GROUP BY grade ORDER BY grade;"
sqlite3 freshie/inventory.sqlite "SELECT CAST(julianday('now') - julianday(run_date) AS INTEGER) FROM discovery_runs ORDER BY id DESC LIMIT 1;"
sqlite3 freshie/inventory.sqlite "SELECT 'plugins', COUNT(*) FROM plugins WHERE run_id=(SELECT MAX(id) FROM discovery_runs) UNION ALL SELECT 'skills', COUNT(*) FROM skills WHERE run_id=(SELECT MAX(id) FROM discovery_runs) UNION ALL SELECT 'packs', COUNT(*) FROM packs WHERE run_id=(SELECT MAX(id) FROM discovery_runs) UNION ALL SELECT 'anomalies', COUNT(*) FROM anomalies WHERE run_id=(SELECT MAX(id) FROM discovery_runs);"
# Core vs SaaS pack breakdown
sqlite3 freshie/inventory.sqlite "SELECT CASE WHEN path LIKE '%saas-packs%' THEN 'saas-pack-skills' ELSE 'core-skills' END as type, COUNT(*) FROM skills WHERE run_id=(SELECT MAX(id) FROM discovery_runs) GROUP BY type;"
Present as:
FRESHIE INVENTORY DASHBOARD
============================
Last Scan: Run #{id} — {date} ({days} days ago)
Plugins: {n}
Skills: {n} total
Core: {n} (hand-crafted plugin skills)
SaaS Packs: {n} (auto-generated pack skills)
Packs: {n}
Grade Distribution:
A: {n} B: {n} C: {n} D: {n} F: {n}
Staleness: {Fresh (<3d) | Stale (3-7d) | CRITICAL (>7d)}
If Critical (>7 days), recommend a discovery scan.
Workflow B: Discovery Scan
Delegate to the discovery-scanner subagent via the Agent tool:
Launch Agent: discovery-scanner
Prompt: "Run a full freshie discovery scan. Show current state first, execute
rebuild-inventory.py, then report the delta (plugin/skill count changes)
compared to the previous run."
The subagent handles the long-running scan in isolation and returns the delta report.
Workflow C: Compliance Check
Delegate to the compliance-validator subagent via the Agent tool:
Launch Agent: compliance-validator
Prompt: "Run enterprise compliance validation against the freshie DB.
Execute: python3 scripts/validate-skills-schema.py --enterprise --populate-db freshie/inventory.sqlite --verbose
Then summarize: grade distribution with percentages, and list all D/F grade skills."
The subagent runs the full validation pipeline and returns a structured summary.
Workflow D: Remediation
CRITICAL: Always dry-run first, then confirm before executing.
- Run dry-run:
python3 freshie/scripts/batch-remediate.py --dry-run
-
Present the changes that would be made.
-
Use AskUserQuestion:
REMEDIATION PREVIEW
================================================================
{summary of proposed changes}
Proceed?
- Execute — Apply all fixes
- Cancel — Abort, no changes made
- Only if user selects "Execute":
python3 freshie/scripts/batch-remediate.py --all --execute
- After execution, run Workflow C (Compliance Check) to measure improvement.
Workflow E: Query
For ad-hoc queries, load the pre-built query library from common-queries.md.
Match the user's question to the closest pre-built query. If no match, construct a custom query against the freshie schema using these key tables:
| Table | Contents |
|---|---|
plugins | name, category, version, path |
skills | name, plugin_path, has_references, has_scripts |
packs | name, skill_count, category |
skill_compliance | score, grade, error_count, warning_count, is_stub |
plugin_compliance | plugin-level roll-up scores |
content_signals | word_count, code_block_count |
anomalies | detected data quality issues |
discovery_runs | run history with timestamps |
Always filter to latest run: WHERE run_id = (SELECT MAX(id) FROM discovery_runs)
After showing results, use AskUserQuestion to offer follow-up:
Results shown. What next?
- Refine query — Modify or drill deeper
- Export to CSV — Save results to file
- Back to menu — Return to main menu
Workflow F: Compare Runs
sqlite3 freshie/inventory.sqlite "SELECT id, run_date, total_plugins, total_skills, COALESCE(total_packs,0) FROM discovery_runs ORDER BY id;"
If more than 2 runs exist, use AskUserQuestion to let user pick which two to compare. Default to the two most recent.
Use the "Historical Trends" queries from common-queries.md for:
- Grade distribution comparison between runs
- Skills that changed grade (upgrades/downgrades with score delta)
- New skills added since previous run
- Skills removed since previous run
Workflow G: Export Data
mkdir -p freshie/exports
Use AskUserQuestion to let user pick what to export:
EXPORT OPTIONS
================================================================
What should I export?
- Skill Grades — All skill compliance scores + grades
- Plugin Inventory — All plugins with category and version
- Pack Coverage — Pack names, skill counts, categories
- Full Dump — All three exports
- Custom Query — Export any query result to CSV
Then run the appropriate export:
sqlite3 -header -csv freshie/inventory.sqlite "{query}" > freshie/exports/{filename}.csv
Report file paths and row counts.
Workflow H: Anomaly Scan
Delegate to the anomaly-detector subagent via the Agent tool:
Launch Agent: anomaly-detector
Prompt: "Run anomaly detection on the freshie inventory DB. Check:
1. Stored anomalies from the latest discovery run
2. Skills with word count < 50 (likely stubs)
3. Plugins with no skills
4. Skills with high template-text density (>10%)
5. Duplicate files
Report all findings grouped by severity."
Workflow I: Pack Coverage
sqlite3 freshie/inventory.sqlite "SELECT name, skill_count, category FROM packs WHERE run_id=(SELECT MAX(id) FROM discovery_runs) ORDER BY skill_count DESC;"
Also flag packs below minimum viable (< 3 skills) and show grade distribution within packs. Use pack coverage queries from common-queries.md.
Workflow J: Full Audit
This is the power workflow — runs everything end-to-end:
- Discovery Scan (Workflow B) — via subagent
- Compliance Check (Workflow C) — via subagent
- Anomaly Scan (Workflow H) — via subagent
- Report Generation (Workflow K) — compile all results
Launch steps 1-3 as parallel subagents, then compile the report when all complete.
Workflow K: Report Only
Generate a summary report from existing data (no new scans). Gather dashboard data (Workflow A queries) and compile:
FRESHIE ECOSYSTEM REPORT — {date}
================================================================
Discovery: Run #{id} ({date})
Plugins: {n} | Skills: {n} | Packs: {n}
Compliance (enterprise tier):
A: {n} ({pct}%) | B: {n} ({pct}%) | C: {n} ({pct}%) | D: {n} ({pct}%)
Average score: {avg}/100
Since last run:
Plugins: {+/-delta} | Skills: {+/-delta}
Grade upgrades: {n} | Downgrades: {n}
Top Issues:
1. {issue}
2. {issue}
3. {issue}
Recommendations:
- {action}
- {action}
================================================================
Step 3: Email PDF Report
After ANY workflow completes, use AskUserQuestion to offer the report:
WORKFLOW COMPLETE
================================================================
{Brief summary of what was done}
Would you like a PDF report emailed?
- Yes, email me — Generate PDF + send to jeremy@intentsolutions.io
- Yes, email someone — Specify recipient
- Save PDF only — Generate PDF, no email
- No thanks — Done
If the user wants a report:
- Generate markdown report — write the workflow results to
/tmp/freshie-report-{date}.md - Convert to PDF using the email skill's converter:
python3 ~/.claude/skills/email/scripts/md-to-pdf.py /tmp/freshie-report-{date}.md /tmp/freshie-report-{date}.pdf --style professional
- Send via /email skill — invoke the Skill tool with
skill: "email"and args describing:- To: recipient (default: jeremy@intentsolutions.io)
- Subject: "Freshie Ecosystem Report — {date}"
- Body: brief summary
- Attachment: the generated PDF
Output
All operations produce structured text output. Dashboards use fixed-width formatting.
Query results use table format. Deltas show +/- indicators. CSV exports write to
freshie/exports/. PDF reports write to /tmp/ and optionally email.
Error Handling
| Error | Cause | Solution |
|---|---|---|
| "DB not found" | Missing freshie/inventory.sqlite | Run python3 freshie/scripts/rebuild-inventory.py to create |
| "no such table" | DB schema outdated or empty | Run a fresh discovery scan (Workflow B) |
| Empty grades | Compliance not yet populated | Run compliance validation (Workflow C) |
rebuild-inventory.py fails | Missing pyyaml | pip install pyyaml |
| Stale data (>7 days) | No recent scans | Run discovery scan, then compliance |
| PDF generation fails | Missing weasyprint | pip install weasyprint |
| Email send fails | Missing env vars | Check ~/.env for GMAIL_APP_PASSWORD |
Examples
See examples.md for detailed input/output examples covering all workflows:
- Quick status check (direct intent, skips menu)
- Full audit with email PDF report (parallel subagents)
- Ad-hoc query with CSV export follow-up
- Remediation cycle (dry-run, confirm, re-validate)
- Compare discovery runs (delta analysis)
- Pack coverage analysis
Resources
- Common Queries — pre-built SQLite query library: grades, stubs, plugins, packs, content quality, trends, anomalies, field analysis, cross-references
freshie/scripts/rebuild-inventory.py— full repo scanner, versioned discovery runsfreshie/scripts/batch-remediate.py— compliance fix engine (--dry-run,--all --execute)scripts/validate-skills-schema.py— universal validator (--enterprise --populate-db)freshie/inventory.sqlite— the database (51 tables, versioned byrun_id)~/.claude/skills/email/scripts/md-to-pdf.py— markdown to PDF converter/emailskill — email sending with attachments
Frequently asked questions about Freshie Inventory Manager
Similar skills
ClickHouse Logs Queries
Efficiently manage Supabase logs with ClickHouse SQL.
EF Core D2 Database Diagram Generator
Visualize your EF Core models as D2 diagrams effortlessly.
Safe SQL Execution
Ensure secure SQL execution in Supabase applications.
Oracle to PostgreSQL Migration
Identify migration risks between Oracle and PostgreSQL.
SSMA Console
Streamline Oracle to SQL Server migrations with ease.
SQL Performance Optimization
Enhance SQL query efficiency across all databases.
