__ _ ____ __
_____/ /__(_) / /___ __ __/ /_______
/ ___/ //_/ / / / __ \/ / / / / ___/ _ \
(__ ) ,< / / / / /_/ / /_/ / (__ ) __/
/____/_/|_/_/_/_/ .___/\__,_/_/____/\___/
/_/
Skill telemetry for Claude Code.
Track what your skills actually do.
You have skills installed. You see them fire. But you have no idea:
- Which skills the model actually follows vs just loads and ignores
- How often each skill activates across sessions
- Whether a skill change improved or degraded quality
Claude Code's built-in telemetry tracks tool calls, not skill adherence. No existing tool captures the followed signal -- whether the model executed a skill's instructions after loading it.
A PostToolUse hook that intercepts every Skill tool call and logs it to local JSONL:
{
"skill_id": "signum:signum",
"timestamp": "2026-03-11T08:48:18Z",
"session_id": "20260311_114818_93074",
"loaded": true,
"followed": null,
"plugin_name": "skillpulse"
}Key fields:
loaded-- did the skill body get retrieved?followed-- did the model execute the skill's instructions? (null until fingerprinting is implemented)session_id-- group activations by session
Design choices:
- 2-second watchdog timeout -- never blocks your workflow
- Filters for
Skilltool only -- ignores all other tool calls - JSONL append-only -- zero dependencies, zero cloud, survives crashes
claude mcp add-json skillpulse '{"source": {"source": "url", "url": "https://github.com/heurema/skillpulse.git"}}'Manual install (from source)
git clone https://github.com/heurema/skillpulse.git ~/.claude/plugins/skillpulseSkillpulse works automatically after install -- no commands needed. Every skill activation is logged to:
~/.local/share/emporium/activation.jsonl
View per-skill stats:
python3 scripts/aggregate.py # human-readable table
python3 scripts/aggregate.py --json # machine-readableSkill Acts Sess Load% Last seen Age
--------------------------------------------------------------------------------
herald:news-digest 2 2 100% 2026-03-04T08:36:04Z 7d
arbiter 1 1 100% 2026-03-04T08:07:52Z 7d
signum:signum 1 1 100% 2026-03-04T08:48:18Z 7d
Total: 4 activations, 3 skills
Skillpulse is the foundation for EvoSkill -- a pipeline where skills improve themselves based on usage data:
- skillpulse logs activations (you are here)
- aggregator computes per-skill frequency, recency, load rate
- bench runs skills against test tasks, measures pass rate
- evolver proposes skill improvements based on failures
Without activation data, skill improvement is guesswork.
Everything runs locally. No data leaves your machine. Logs are plain JSONL files you can inspect, edit, or delete at any time.
- skill7.dev -- plugin catalog and docs
- EvoSkill research -- self-improving skill systems