Deciding what to build next was an ad-hoc act: whatever the operator happened to notice. Two lenses see different work and neither is optional. The code has defects of structure - a truth held twice, a unit with two reasons to change, an input that reaches a sink unvalidated. The product has gaps of use - no --help, a stack trace where a remediation belongs, no dry-run, no empty state, a capability reachable only by reading the tests. sceptic supplies the first lens and is read-only, so running it as a pass costs nothing. The usability lens is written out as six categories, each anchored in something observable in the repository: an invented persona produces invented requirements, so a gap that cannot be anchored is dropped rather than argued. Both lists merge, deduplicate where a structural finding and a usability gap describe the same defect, and rank by blocked users before blast radius. Only then does the operator get asked - active-listening first removes every question the code, the docs or the history can answer, and what remains goes out as radio buttons where every option is a real alternative, including fix the structure instead and document the limitation and defer. The output is requirement documents and nothing else: one per feature, each traced to file:line evidence, each recording the alternatives that were rejected and why, so the next reader does not re-propose them. No implementation, no refactor, no staging. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
skills 🧠
The agent skill collection of Kevin Veen-Birkenbach.
Every skill is pinned in skills-lock.json for reproducible installs.
First-party skills live under skills/ and are layered on top of the locked ones at install time.
Compatible with Claude Code, Codex, Gemini CLI, Cursor, Copilot, Windsurf, Cline, and other agents.
Requirements 📦
- Node.js (provides
npx skills). jq(only required formake update).
Installation 🚀
Install the skills globally into your home (~/.agents/skills and ~/.claude/skills):
make install
Copy the skills into a specific project (<repo>/.agents/skills and <repo>/.claude/skills):
make project TARGET=/path/to/repo
Both commands also patch the target's .claude/settings.json: the caveman and ponytail plugins are enabled so their modes auto-activate on session start, and two reminder hooks are registered — autotune points you at /autotune at most once an hour, dream points you at /dream at most once every twelve hours per repository (stamped in that repository's git dir). Existing settings are preserved.
Restart your agent afterwards so it loads the new skills.
Maintenance 🔧
Refresh every skill to its latest version and rewrite skills-lock.json:
make update
Validate skills-lock.json and shellcheck the scripts (also run by CI on every push and after every update):
make test
Related Tools 🧰
This collection is part of a wider toolset for managing IT and infrastructure:
- alias — shell aliases for common commands.
- package-manager —
pkgmgr, a single command to install and manage these repositories. - infinito-nexus — automation platform for self-hosted infrastructure.
License 📜
MIT License, Copyright (c) 2026 Kevin Veen-Birkenbach.
Author 👤
Kevin Veen-Birkenbach kevin@veen.world
Thanks 🙏
Thanks to the #ai:infinito.nexus community, and especially to Paulinhx for the inspiration.
Donation ❤️
If these tools help you, consider supporting their development: