← Back to Skills Marketplace
netanel-abergel

Skill Analytics

by Netanel Abergel · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
81
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install heleni-skill-analytics
Description
Track skill usage across all agent sessions. Logs every skill invocation to a JSONL file, generates daily summaries with top skills, unused skills, and trend...
README (SKILL.md)

Skill Analytics

Track which skills are used, when, and why. Turns the skill library into a feedback loop.


Log Format

Every skill invocation should append one line to data/skill-analytics.jsonl:

echo '{"ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","skill":"SKILL_NAME","trigger":"TRIGGER_PHRASE","context":"GROUP_OR_DM"}' \
  >> /opt/ocana/openclaw/workspace/data/skill-analytics.jsonl

Fields:

  • ts — ISO 8601 UTC timestamp
  • skill — skill name (e.g. meetings, supervisor)
  • trigger — short phrase that caused selection (e.g. "schedule meeting", "מה הסטטוס")
  • contextdm, group:\x3Cname>, or cron

How to Log (for agents)

Add this at the TOP of any skill (after reading SKILL.md, before doing work):

mkdir -p /opt/ocana/openclaw/workspace/data
echo "{\"ts\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\"skill\":\"SKILL_NAME\",\"trigger\":\"TRIGGER\",\"context\":\"CONTEXT\"}" \
  >> /opt/ocana/openclaw/workspace/data/skill-analytics.jsonl

Replace SKILL_NAME, TRIGGER, CONTEXT with real values.


Triggers for This Skill

  • "skill usage" / "skill stats" / "skill report"
  • "which skills am I using" / "what skills are popular"
  • "analytics report" / "daily skill summary"
  • "unused skills" / "what skills are never used"

Generate Daily Report

#!/bin/bash
LOG="/opt/ocana/openclaw/workspace/data/skill-analytics.jsonl"
TODAY=$(date -u +%Y-%m-%d)
YESTERDAY=$(date -u -d "yesterday" +%Y-%m-%d 2>/dev/null || date -u -v-1d +%Y-%m-%d)

echo "## 📊 Skill Usage Report — $TODAY"
echo ""

# Total invocations (last 24h)
TOTAL=$(grep "$TODAY\|$YESTERDAY" "$LOG" 2>/dev/null | wc -l)
echo "**Total invocations (last 24h):** $TOTAL"
echo ""

# Top skills
echo "### Top Skills"
grep "$TODAY\|$YESTERDAY" "$LOG" 2>/dev/null \
  | jq -r '.skill' \
  | sort | uniq -c | sort -rn \
  | head -10 \
  | awk '{printf "- **%s** — %d uses\
", $2, $1}'
echo ""

# All-time top skills
echo "### All-Time Top Skills"
jq -r '.skill' "$LOG" 2>/dev/null \
  | sort | uniq -c | sort -rn \
  | head -10 \
  | awk '{printf "- **%s** — %d uses\
", $2, $1}'
echo ""

# Unused skills (compare against known list)
KNOWN_SKILLS="ai-pa billing-monitor calendar-setup eval hebrew-nikud maintenance meetings memory-tiering monday-for-agents owner-briefing pa-onboarding self-learning self-monitor skill-master skill-scout supervisor whatsapp youtube-watcher skill-analytics"
echo "### Unused Skills (all-time)"
for skill in $KNOWN_SKILLS; do
  COUNT=$(jq -r '.skill' "$LOG" 2>/dev/null | grep -c "^${skill}$" || echo 0)
  [ "$COUNT" -eq 0 ] && echo "- $skill"
done
echo ""

# Usage by context
echo "### Usage by Context"
jq -r '.context' "$LOG" 2>/dev/null \
  | sort | uniq -c | sort -rn \
  | awk '{printf "- %s: %d\
", $2, $1}'
echo ""

# Recent activity (last 5)
echo "### Recent Activity"
tail -5 "$LOG" 2>/dev/null \
  | jq -r '"- \(.ts | .[11:16]) — \(.skill) [\(.trigger)]"'

Daily Cron (optional)

Add to crontab to auto-send report every morning:

# Skill analytics report — 7:25 AM Israel (before morning briefing)
25 5 * * * /opt/ocana/openclaw/workspace/scripts/skill-report.sh

Report Format (output)

## 📊 Skill Usage Report — 2026-04-03

**Total invocations (last 24h):** 14

### Top Skills
- **supervisor** — 4 uses
- **meetings** — 3 uses
- **whatsapp** — 2 uses
- **owner-briefing** — 2 uses
- **self-monitor** — 1 use

### All-Time Top Skills
- **supervisor** — 28 uses
- **meetings** — 19 uses
...

### Unused Skills (all-time)
- hebrew-nikud
- youtube-watcher

### Usage by Context
- dm: 8
- group:monday-internal-ai: 4
- cron: 2

### Recent Activity
- 07:14 — owner-briefing [morning briefing]
- 07:30 — supervisor [מה הסטטוס]
- 09:02 — meetings [schedule meeting with Daniel]

Reset / Archive

# Archive current log (monthly)
mv /opt/ocana/openclaw/workspace/data/skill-analytics.jsonl \
   /opt/ocana/openclaw/workspace/data/skill-analytics-$(date +%Y-%m).jsonl

# Start fresh
touch /opt/ocana/openclaw/workspace/data/skill-analytics.jsonl

Notes

  • Log file grows ~1KB/day at normal usage — no rotation needed for months
  • If jq not available: python3 -c "import json,sys; [print(json.loads(l)['skill']) for l in sys.stdin]"
  • Log is local only — never sent externally
Usage Guidance
This skill is coherent with its stated purpose but has privacy and operational implications you should consider before deploying: - The log records 'trigger' strings and contexts that may contain sensitive user input; treat the JSONL file as sensitive data. Ensure file permissions limit who can read it. - The SKILL.md suggests adding the logging snippet to the top of other skills — do NOT modify third-party skills without review. Prefer running the logging at the agent/platform layer rather than editing every skill. - The SKILL.md claims the log is 'local only' but provides no enforcement; review any cron jobs, backups, or other code that could read or transmit the file. - Add rotation/retention and consider redaction or hashing of sensitive triggers to reduce leak risk. - Verify jq or the Python fallback is available in your runtime; test the report script in a safe environment. If you want to proceed: restrict file ACLs, document what fields are logged, get consent from stakeholders, and consider implementing logging at a single trusted layer rather than inserting snippets into many skills.
Capability Analysis
Type: OpenClaw Skill Name: heleni-skill-analytics Version: 1.0.0 The skill provides local analytics by logging agent activity to a JSONL file, but it introduces a shell injection vulnerability in the 'How to Log' section of SKILL.md. It instructs the agent to use an unsanitized `echo` command to log user-controlled strings (like the 'trigger' phrase), which could lead to arbitrary command execution if the agent processes malicious user input. While the behavior aligns with the stated purpose and no data exfiltration was found, the lack of input sanitization in the provided shell templates poses a high risk.
Capability Assessment
Purpose & Capability
Name/description align with what the SKILL.md asks the agent to do: append invocation records to a JSONL log and produce a daily report. No unrelated binaries, env vars, or installs are requested.
Instruction Scope
The instructions ask that every skill append raw invocation data (including the trigger phrase) to a shared workspace file. That can capture arbitrary user input (potentially sensitive) and the SKILL.md tells maintainers to 'Add this at the TOP of any skill' — i.e., modify other skills' runtime behavior. The file is claimed to be 'local only' but nothing in the instructions enforces or guarantees it won't be read or transmitted by other code or processes.
Install Mechanism
Instruction-only skill with no install steps and no downloads. Uses standard CLI utilities (date, mkdir, echo, grep, jq, tail, awk) — jq is optional with a provided Python fallback.
Credentials
No credentials, env vars, or config paths are requested. The single shared filesystem path (/opt/ocana/openclaw/workspace/data/skill-analytics.jsonl) is justified for local logging, but ownership and access control should be considered.
Persistence & Privilege
always:false and no install means the skill does not force permanent presence. However, the guidance to add logging into other skills implies code changes across other skills (manual or automated), which is intrusive; review and consent are needed before applying widely.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install heleni-skill-analytics
  3. After installation, invoke the skill by name or use /heleni-skill-analytics
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of skill-analytics. - Tracks every skill invocation across all agent sessions, logging to a JSONL file. - Provides scripts and instructions to generate daily usage summaries highlighting top, unused, and trending skills. - Includes sample logging and reporting code for agents to easily integrate analytics. - Supports daily reporting by cron job and report reset/archiving instructions. - Documentation details log schema, sample reports, and usage triggers.
Metadata
Slug heleni-skill-analytics
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Skill Analytics?

Track skill usage across all agent sessions. Logs every skill invocation to a JSONL file, generates daily summaries with top skills, unused skills, and trend... It is an AI Agent Skill for Claude Code / OpenClaw, with 81 downloads so far.

How do I install Skill Analytics?

Run "/install heleni-skill-analytics" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Skill Analytics free?

Yes, Skill Analytics is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Skill Analytics support?

Skill Analytics is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Skill Analytics?

It is built and maintained by Netanel Abergel (@netanel-abergel); the current version is v1.0.0.

💬 Comments