Agent-Native Skill Feedback
I use skills daily now. They’re the primary way I extend what Claude Code can do. Custom CLIs for calendar, email, DNS, deployment, you name it.
But skills aren’t perfect out of the box. They need iteration. And who better to tell me what’s wrong than the agent using them?
The Self-Improvement Loop
I wrote a simple hook that runs after every skill invocation. It injects a message into Claude’s context:
REQUIRED ACTION: After completing the task, append a brief entry to the skill’s FEEDBACK.md with date, what worked/didn’t work, and any improvement ideas.
That’s it. Claude now documents friction as it happens.
Why This Works
It’s agent-native. The agent is the user of the skill, so it has direct experience of what’s clunky, what errors are confusing, what’s missing. Instead of me noticing problems days later, the feedback accumulates in real-time.
A few examples of feedback Claude has written:
- “The
--formatflag accepts ‘json’ but the help text says ‘JSON’ (case mismatch causes errors)” - “Would benefit from a
--dry-runoption when creating records” - “Error message on auth failure is too generic. Had to check logs to understand the issue”
These are the kinds of papercuts you’d never remember to file as issues, but they add up.
The Hook
It’s a PostToolUse hook that triggers on the Skill tool. About 30 lines of JavaScript. It parses the skill name from stdin, logs usage, and outputs JSON with additionalContext for Claude.
The key insight: phrasing matters. “If you noticed friction…” doesn’t work. Claude treats it as optional. “REQUIRED ACTION…” does.
What’s Next
I want to extend this to periodically review accumulated feedback and batch improvements. For now, the feedback files are a useful artifact. I can grep through them before working on a skill to see what’s been bugging Claude.
Pattern that keeps emerging: agents are users too. Let them tell you what’s broken.
Want help building AI automations? Let's talk
