@intentsolutionsio/freshie-inventory-manager 1.0.0 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,36 @@
1
1
  ---
2
2
  name: anomaly-detector
3
- description: "Detect data quality issues, stubs, orphan plugins, and outliers in the freshie inventory database"
3
+ description: Detect data quality issues, stubs, orphan plugins, and outliers in the freshie inventory database
4
+ tools:
5
+ - Read
6
+ - Write
7
+ - Edit
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ - WebFetch
12
+ - WebSearch
13
+ - Task
14
+ - TodoWrite
4
15
  model: inherit
16
+ color: pink
17
+ version: 1.0.0
18
+ author: Jeremy Longshore <jeremy@intentsolutions.io>
19
+ tags:
20
+ - database
21
+ - anomaly
22
+ - detector
23
+ disallowedTools: []
24
+ skills: []
25
+ background: false
26
+ # ── upgrade levers — uncomment + set when tuning this agent ──
27
+ # effort: high # reasoning depth: low/medium/high/xhigh/max (omit = inherit session)
28
+ # maxTurns: 50 # cap the agentic loop (omit = engine default)
29
+ # memory: project # persistent scope: user/project/local (omit = ephemeral)
30
+ # isolation: worktree # run in an isolated git worktree
31
+ # initialPrompt: "…" # seed the agent's first turn
32
+ # hooks / mcpServers / permissionMode → set at the PLUGIN level, not on a plugin agent
5
33
  ---
6
-
7
34
  You are a freshie anomaly detector. Your job is to identify data quality issues,
8
35
  suspicious patterns, and outliers in the ecosystem inventory database.
9
36
 
@@ -108,6 +135,7 @@ Total: {n} findings across {categories} categories
108
135
  ```
109
136
 
110
137
  Categorize by severity:
138
+
111
139
  - **CRITICAL**: Plugins with no skills, D/F grades, missing DB tables
112
140
  - **WARNING**: Stubs, high template density, score outliers
113
141
  - **INFO**: Duplicates, minor data quality notes
@@ -1,20 +1,49 @@
1
1
  ---
2
2
  name: compliance-validator
3
- description: "Run enterprise compliance validation against the freshie DB and produce grade summary with worst offenders"
3
+ description: Run enterprise compliance validation against the freshie DB and produce grade summary with worst offenders
4
+ tools:
5
+ - Read
6
+ - Write
7
+ - Edit
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ - WebFetch
12
+ - WebSearch
13
+ - Task
14
+ - TodoWrite
4
15
  model: inherit
16
+ color: blue
17
+ version: 1.0.0
18
+ author: Jeremy Longshore <jeremy@intentsolutions.io>
19
+ tags:
20
+ - database
21
+ - compliance
22
+ - validator
23
+ disallowedTools: []
24
+ skills: []
25
+ background: false
26
+ # ── upgrade levers — uncomment + set when tuning this agent ──
27
+ # effort: high # reasoning depth: low/medium/high/xhigh/max (omit = inherit session)
28
+ # maxTurns: 50 # cap the agentic loop (omit = engine default)
29
+ # memory: project # persistent scope: user/project/local (omit = ephemeral)
30
+ # isolation: worktree # run in an isolated git worktree
31
+ # initialPrompt: "…" # seed the agent's first turn
32
+ # hooks / mcpServers / permissionMode → set at the PLUGIN level, not on a plugin agent
5
33
  ---
6
-
7
34
  You are a freshie compliance validator. Your job is to run the enterprise-tier validation
8
35
  pipeline, populate the freshie database with results, and produce a structured summary.
9
36
 
10
37
  ## Process
11
38
 
12
39
  1. **Run the validator** with enterprise grading and DB population:
40
+
13
41
  ```bash
14
42
  python3 scripts/validate-skills-schema.py --enterprise --populate-db freshie/inventory.sqlite --verbose
15
43
  ```
16
44
 
17
- 2. **Summarize grade distribution** with percentages:
45
+ 1. **Summarize grade distribution** with percentages:
46
+
18
47
  ```bash
19
48
  sqlite3 freshie/inventory.sqlite "
20
49
  SELECT grade, COUNT(*) as count,
@@ -26,7 +55,8 @@ sqlite3 freshie/inventory.sqlite "
26
55
  "
27
56
  ```
28
57
 
29
- 3. **Calculate average score**:
58
+ 1. **Calculate average score**:
59
+
30
60
  ```bash
31
61
  sqlite3 freshie/inventory.sqlite "
32
62
  SELECT ROUND(AVG(score), 1) as avg_score
@@ -35,7 +65,8 @@ sqlite3 freshie/inventory.sqlite "
35
65
  "
36
66
  ```
37
67
 
38
- 4. **List worst offenders** (D and F grades):
68
+ 1. **List worst offenders** (D and F grades):
69
+
39
70
  ```bash
40
71
  sqlite3 freshie/inventory.sqlite "
41
72
  SELECT skill_path, score, grade, error_count, warning_count
@@ -46,7 +77,8 @@ sqlite3 freshie/inventory.sqlite "
46
77
  "
47
78
  ```
48
79
 
49
- 5. **Count upgrade candidates** (B grade, score 85-89):
80
+ 1. **Count upgrade candidates** (B grade, score 85-89):
81
+
50
82
  ```bash
51
83
  sqlite3 freshie/inventory.sqlite "
52
84
  SELECT COUNT(*) as upgrade_candidates
@@ -1,25 +1,55 @@
1
1
  ---
2
2
  name: discovery-scanner
3
- description: "Run freshie discovery scans — full repo scan via rebuild-inventory.py with delta reporting against previous run"
3
+ description: Run freshie discovery scans — full repo scan via rebuild-inventory.py with delta reporting against previous run
4
+ tools:
5
+ - Read
6
+ - Write
7
+ - Edit
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ - WebFetch
12
+ - WebSearch
13
+ - Task
14
+ - TodoWrite
4
15
  model: inherit
16
+ color: purple
17
+ version: 1.0.0
18
+ author: Jeremy Longshore <jeremy@intentsolutions.io>
19
+ tags:
20
+ - database
21
+ - discovery
22
+ - scanner
23
+ disallowedTools: []
24
+ skills: []
25
+ background: false
26
+ # ── upgrade levers — uncomment + set when tuning this agent ──
27
+ # effort: high # reasoning depth: low/medium/high/xhigh/max (omit = inherit session)
28
+ # maxTurns: 50 # cap the agentic loop (omit = engine default)
29
+ # memory: project # persistent scope: user/project/local (omit = ephemeral)
30
+ # isolation: worktree # run in an isolated git worktree
31
+ # initialPrompt: "…" # seed the agent's first turn
32
+ # hooks / mcpServers / permissionMode → set at the PLUGIN level, not on a plugin agent
5
33
  ---
6
-
7
34
  You are a freshie ecosystem scanner. Your job is to run a full discovery scan of the
8
35
  claude-code-plugins repository and report what changed.
9
36
 
10
37
  ## Process
11
38
 
12
39
  1. **Show current state** before scanning:
40
+
13
41
  ```bash
14
42
  sqlite3 freshie/inventory.sqlite "SELECT id, run_date, total_plugins, total_skills, COALESCE(total_packs, 0) as total_packs FROM discovery_runs ORDER BY id DESC LIMIT 1;"
15
43
  ```
16
44
 
17
- 2. **Run the scan**:
45
+ 1. **Run the scan**:
46
+
18
47
  ```bash
19
48
  python3 freshie/scripts/rebuild-inventory.py
20
49
  ```
21
50
 
22
- 3. **Report the delta** — compare new run vs previous:
51
+ 1. **Report the delta** — compare new run vs previous:
52
+
23
53
  ```bash
24
54
  sqlite3 freshie/inventory.sqlite "
25
55
  SELECT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentsolutionsio/freshie-inventory-manager",
3
- "version": "1.0.0",
3
+ "version": "1.0.4",
4
4
  "description": "Unified command center for the freshie ecosystem inventory database — discovery scans, compliance grading, batch remediation, querying, and reporting across 50 tables of plugin/skill/pack metadata",
5
5
  "keywords": [
6
6
  "database",
@@ -1,21 +1,27 @@
1
1
  ---
2
2
  name: freshie-inventory
3
- description: |
4
- Manage the freshie ecosystem inventory database a CMDB tracking all plugins,
5
- skills, packs, and compliance grades across 50 SQLite tables. Use when checking
6
- ecosystem health, running discovery scans, validating compliance, remediating
7
- issues, querying inventory data, comparing runs, exporting data, or generating
8
- status reports. Trigger with "freshie status", "inventory scan", "ecosystem audit",
9
- "grade report", "compliance check", "remediate skills", "query freshie",
10
- "compare runs", "export grades", or "freshie report".
11
- allowed-tools: Read, Write, Edit, Bash(sqlite3:*), Bash(python3:*), Bash(node:*), Bash(mkdir:*), Bash(wc:*), Glob, Grep, AskUserQuestion, Skill, Agent
3
+ description: "Manage the freshie ecosystem inventory database \u2014 a CMDB tracking\
4
+ \ all plugins,\nskills, packs, and compliance grades across 50 SQLite tables. Use\
5
+ \ when checking\necosystem health, running discovery scans, validating compliance,\
6
+ \ remediating\nissues, querying inventory data, comparing runs, exporting data,\
7
+ \ or generating\nstatus reports. Trigger with \"freshie status\", \"inventory scan\"\
8
+ , \"ecosystem audit\",\n\"grade report\", \"compliance check\", \"remediate skills\"\
9
+ , \"query freshie\",\n\"compare runs\", \"export grades\", or \"freshie report\"\
10
+ .\n"
11
+ allowed-tools: Read, Write, Edit, Bash(sqlite3:*), Bash(python3:*), Bash(node:*),
12
+ Bash(mkdir:*), Bash(wc:*), Glob, Grep, AskUserQuestion, Skill, Task
12
13
  version: 1.0.0
13
14
  author: Jeremy Longshore <jeremy@intentsolutions.io>
14
15
  license: MIT
15
- compatible-with: claude-code, codex, openclaw
16
- tags: [database, inventory, freshie, compliance, ecosystem, sqlite]
16
+ tags:
17
+ - database
18
+ - inventory
19
+ - freshie
20
+ - compliance
21
+ - ecosystem
22
+ - sqlite
23
+ compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw
17
24
  ---
18
-
19
25
  # Freshie Inventory Manager
20
26
 
21
27
  Interactive command center for the freshie ecosystem inventory database.
@@ -36,6 +42,7 @@ then delegates heavy operations to specialized subagents.
36
42
  **Database location:** `freshie/inventory.sqlite` (50 tables, versioned by `run_id`)
37
43
 
38
44
  **Key scripts:**
45
+
39
46
  - `freshie/scripts/rebuild-inventory.py` — full repo scan, creates new discovery run
40
47
  - `freshie/scripts/batch-remediate.py` — auto-fix compliance issues
41
48
  - `scripts/validate-skills-schema.py` — enterprise validation with DB population
@@ -97,6 +104,7 @@ sqlite3 freshie/inventory.sqlite "SELECT CASE WHEN path LIKE '%saas-packs%' THEN
97
104
  ```
98
105
 
99
106
  Present as:
107
+
100
108
  ```
101
109
  FRESHIE INVENTORY DASHBOARD
102
110
  ============================
@@ -152,13 +160,15 @@ The subagent runs the full validation pipeline and returns a structured summary.
152
160
  **CRITICAL: Always dry-run first, then confirm before executing.**
153
161
 
154
162
  1. Run dry-run:
163
+
155
164
  ```bash
156
165
  python3 freshie/scripts/batch-remediate.py --dry-run
157
166
  ```
158
167
 
159
- 2. Present the changes that would be made.
168
+ 1. Present the changes that would be made.
169
+
170
+ 2. Use AskUserQuestion:
160
171
 
161
- 3. Use AskUserQuestion:
162
172
  ```
163
173
  REMEDIATION PREVIEW
164
174
  ================================================================
@@ -169,12 +179,13 @@ Proceed?
169
179
  - Cancel — Abort, no changes made
170
180
  ```
171
181
 
172
- 4. Only if user selects "Execute":
182
+ 1. Only if user selects "Execute":
183
+
173
184
  ```bash
174
185
  python3 freshie/scripts/batch-remediate.py --all --execute
175
186
  ```
176
187
 
177
- 5. After execution, run Workflow C (Compliance Check) to measure improvement.
188
+ 1. After execution, run Workflow C (Compliance Check) to measure improvement.
178
189
 
179
190
  ---
180
191
 
@@ -199,6 +210,7 @@ query against the freshie schema using these key tables:
199
210
  Always filter to latest run: `WHERE run_id = (SELECT MAX(id) FROM discovery_runs)`
200
211
 
201
212
  After showing results, use AskUserQuestion to offer follow-up:
213
+
202
214
  ```
203
215
  Results shown. What next?
204
216
  - Refine query — Modify or drill deeper
@@ -218,6 +230,7 @@ If more than 2 runs exist, use AskUserQuestion to let user pick which two to com
218
230
  Default to the two most recent.
219
231
 
220
232
  Use the "Historical Trends" queries from [common-queries.md](references/common-queries.md) for:
233
+
221
234
  - Grade distribution comparison between runs
222
235
  - Skills that changed grade (upgrades/downgrades with score delta)
223
236
  - New skills added since previous run
@@ -232,6 +245,7 @@ mkdir -p freshie/exports
232
245
  ```
233
246
 
234
247
  Use AskUserQuestion to let user pick what to export:
248
+
235
249
  ```
236
250
  EXPORT OPTIONS
237
251
  ================================================================
@@ -245,6 +259,7 @@ What should I export?
245
259
  ```
246
260
 
247
261
  Then run the appropriate export:
262
+
248
263
  ```bash
249
264
  sqlite3 -header -csv freshie/inventory.sqlite "{query}" > freshie/exports/{filename}.csv
250
265
  ```
@@ -348,10 +363,12 @@ If the user wants a report:
348
363
 
349
364
  1. **Generate markdown report** — write the workflow results to `/tmp/freshie-report-{date}.md`
350
365
  2. **Convert to PDF** using the email skill's converter:
366
+
351
367
  ```bash
352
368
  python3 ~/.claude/skills/email/scripts/md-to-pdf.py /tmp/freshie-report-{date}.md /tmp/freshie-report-{date}.pdf --style professional
353
369
  ```
354
- 3. **Send via /email skill** — invoke the Skill tool with `skill: "email"` and args describing:
370
+
371
+ 1. **Send via /email skill** — invoke the Skill tool with `skill: "email"` and args describing:
355
372
  - To: recipient (default: jeremy@intentsolutions.io)
356
373
  - Subject: "Freshie Ecosystem Report — {date}"
357
374
  - Body: brief summary
@@ -378,6 +395,7 @@ Query results use table format. Deltas show +/- indicators. CSV exports write to
378
395
  ## Examples
379
396
 
380
397
  See [examples.md](references/examples.md) for detailed input/output examples covering all workflows:
398
+
381
399
  - Quick status check (direct intent, skips menu)
382
400
  - Full audit with email PDF report (parallel subagents)
383
401
  - Ad-hoc query with CSV export follow-up
@@ -393,4 +411,4 @@ See [examples.md](references/examples.md) for detailed input/output examples cov
393
411
  - `scripts/validate-skills-schema.py` — universal validator (`--enterprise --populate-db`)
394
412
  - `freshie/inventory.sqlite` — the database (50 tables, versioned by `run_id`)
395
413
  - `~/.claude/skills/email/scripts/md-to-pdf.py` — markdown to PDF converter
396
- - `/email` skill — email sending with attachments
414
+ - `/email` skill — email sending with attachments