| name | skill-activity |
| description | Report usage and activity metrics for the daily vault skill suite — last run, staleness, streak, and per-skill totals. Reads run-history JSON blocks from zz_config/skill_history/. Use when the user says "skill usage", "skill activity", "how often do I run", "which skills are stale", "usage report", "skill stats", or asks about recent/historical skill runs.
|
Skill Activity Report
Read the run-history files for the daily-suite skills, compute staleness and totals, and present a scannable report.
Tracked skills
obsidian-capture → zz_config/skill_history/obsidian-capture.md
process-youtube-transcript → zz_config/skill_history/process-youtube-transcript.md
obsidian-enrich-daily → zz_config/skill_history/enrich-daily.md
icloud-calls → zz_config/skill_history/icloud-calls.md
inbox-processor → zz_config/skill_history/inbox-processor.md
How to read
Each history file is a markdown note with one or more JSON blocks. The authoritative "run log" in each file is a JSON array of {date, host, ...metrics} entries (schema differs per skill — that's fine, only date is universal). Use obsidian eval to batch-read all five files in one call.
If a file is missing, treat the skill as "never run" (the skill will create its file on first execution). Don't create the file from the report.
Report format
# Skill Activity — as of YYYY-MM-DD
| Skill | Last run | Staleness | 7d runs | 30d runs | Last result |
|----------------------|------------|-----------|---------|----------|----------------------------------|
| obsidian-capture | 2026-04-12 | today | 3 | 12 | 4 entries, 1 edited |
| youtube | 2026-04-07 | 5d | 1 | 3 | 2 transcripts, 38k words |
| enrich-daily | 2026-04-05 | 7d ⚠ | 1 | 10 | 4 dates backfilled |
| icloud-calls | 2026-04-07 | 5d | 1 | 2 | 1 transcript |
| inbox-processor | never | — | — | — | — |
## Totals (last 30 days)
- Captures: 38 entries across 18 days
- YouTube: 7 transcripts, ~180k words
- Days enriched: 24 / 30
- Calls: 3 transcripts
- Inbox: no data yet
## Flags
- ⚠ enrich-daily stale — last run 7 days ago (target: daily)
- inbox-processor never logged — either new tracking or you skip it
Staleness thresholds (use ⚠ on the staleness column):
- daily-target skills (capture, enrich, calls, inbox): ⚠ if > 2 days
- on-demand skills (youtube): ⚠ if > 14 days
Also check
- Daily streak: longest consecutive-day run of
obsidian-enrich-daily ending today
- Host distribution: if multiple hosts appear, note the split (multi-machine user)
Output rules
- Keep the table tight. Don't include host column unless multiple hosts appear.
- If all skills are fresh, say so in one line — don't pad.
- The user reads CLI output; put the most actionable item (staleness flags) at the bottom.
Scope
Reports only. Never modifies history files. If a skill's log format is malformed, note it at the bottom and skip that row — don't try to repair it.