2026-07-10 11:23:51 +02:00
# skills 🧠
2026-07-10 10:32:19 +02:00
2026-07-10 12:54:47 +02:00
[](https://github.com/sponsors/kevinveenbirkenbach) [](https://www.patreon.com/c/kevinveenbirkenbach) [](https://buymeacoffee.com/kevinveenbirkenbach) [](https://s.veen.world/paypaldonate)
2026-07-10 10:32:19 +02:00
2026-07-10 12:54:47 +02:00
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.
2026-07-10 11:23:51 +02:00
2026-10-31 23:46:28 +01:00
## Naming 🏷️
2026-11-03 15:40:50 +01:00
Every first-party skill is named `kvb-<category>-<name>` with one of these categories: `think` , `create` , `code` , `ci` , `git` , `check` , `org` , `skill` , `coach` . Only `kvb-cleanup` , `kvb-coach` , `kvb-help` and the collectors `kvb-dream` , `kvb-optimize` and `kvb-transcend` stand without a category. Names use `a-z` , `0-9` and single hyphens, at most 64 characters, and equal their directory name. `tests/test_naming.py` enforces all of it, including that the organigram below lists every skill under its category.
2026-10-31 23:46:28 +01:00
## Organigram 🏛️
Every first-party skill under its category.
```mermaid
flowchart LR
kvb((kvb))
kvb --> think[think]
kvb --> create[create]
kvb --> code[code]
kvb --> ci[ci]
kvb --> git[git]
kvb --> check[check]
kvb --> org[org]
2026-11-03 13:08:31 +01:00
kvb --> skill[skill]
2026-11-03 15:40:50 +01:00
kvb --> coach[coach]
2026-10-31 23:46:28 +01:00
kvb --> none[no category]
think --> think_listen[kvb-think-listen]
think --> think_explain[kvb-think-explain]
think --> think_dialectic[kvb-think-dialectic]
think --> think_criticize[kvb-think-criticize]
2026-11-03 12:35:37 +01:00
think --> think_brainstorm[kvb-think-brainstorm]
think --> think_gaps[kvb-think-gaps]
2026-10-31 23:46:28 +01:00
create --> create_plan[kvb-create-plan]
2026-11-03 12:35:37 +01:00
create --> create_requirement[kvb-create-requirement]
2026-10-31 23:46:28 +01:00
code --> code_scope_guard[kvb-code-scope-guard]
code --> code_no_defaults[kvb-code-no-defaults]
code --> code_no_comments[kvb-code-no-comments]
code --> code_refactor[kvb-code-refactor]
code --> code_test[kvb-code-test]
code --> code_tune[kvb-code-tune]
2026-11-03 12:33:13 +01:00
code --> code_transcend[kvb-code-transcend]
2026-10-31 23:46:28 +01:00
ci --> ci_triage[kvb-ci-triage]
ci --> ci_artifacts[kvb-ci-artifacts]
ci --> ci_observe[kvb-ci-observe]
git --> git_commit_next[kvb-git-commit-next]
git --> git_commit_no_verify[kvb-git-commit-no-verify]
git --> git_merge_fix[kvb-git-merge-fix]
2026-11-03 16:48:19 +01:00
git --> git_close_issues[kvb-git-close-issues]
2026-11-03 16:50:32 +01:00
git --> git_update_branches[kvb-git-update-branches]
2026-10-31 23:46:28 +01:00
git --> git_branch_gc[kvb-git-branch-gc]
git --> git_changelog[kvb-git-changelog]
check --> check_legal[kvb-check-legal]
check --> check_security[kvb-check-security]
check --> check_principles[kvb-check-principles]
check --> check_confidence[kvb-check-confidence]
check --> check_break_risk[kvb-check-break-risk]
org --> org_organize[kvb-org-organize]
org --> org_split[kvb-org-split]
org --> org_coordinate[kvb-org-coordinate]
org --> org_perform[kvb-org-perform]
org --> org_matrix[kvb-org-matrix]
2026-11-01 00:47:00 +01:00
org --> org_rasci[kvb-org-rasci]
org --> org_artefacts[kvb-org-artefacts]
2026-11-01 01:48:06 +01:00
org --> org_wsjf[kvb-org-wsjf]
2026-10-31 23:46:28 +01:00
org --> org_robot[kvb-org-robot]
2026-11-03 13:21:46 +01:00
org --> org_operator[kvb-org-operator]
2026-11-03 13:08:31 +01:00
skill --> skill_tune[kvb-skill-tune]
skill --> skill_auto[kvb-skill-auto]
skill --> skill_essence[kvb-skill-essence]
skill --> skill_transcend[kvb-skill-transcend]
2026-11-03 13:17:05 +01:00
skill --> skill_compile[kvb-skill-compile]
2026-11-03 13:24:56 +01:00
skill --> skill_cleanup[kvb-skill-cleanup]
2026-10-31 23:46:28 +01:00
none --> cleanup[kvb-cleanup]
none --> help[kvb-help]
2026-11-03 12:33:13 +01:00
none --> transcend_all[kvb-transcend]
2026-11-03 13:43:15 +01:00
none --> dream_all[kvb-dream]
none --> optimize_all[kvb-optimize]
2026-11-03 13:56:12 +01:00
none --> coach_all[kvb-coach]
2026-11-03 15:40:50 +01:00
coach --> coach_meditation[kvb-coach-meditation]
2026-10-31 23:46:28 +01:00
```
2026-10-30 17:35:27 +01:00
## Skill map 🗺️
2026-10-31 23:46:28 +01:00
How the first-party skills work together. A solid arrow means the skill invokes or relies on the other one; a dotted arrow means it fires automatically. Every skill that reports a result closes with the `kvb-check-confidence` block; those arrows are left out. The locked third-party skills (caveman, ponytail, archify) are not drawn.
2026-10-30 17:35:27 +01:00
```mermaid
flowchart LR
subgraph triggers [Triggers]
commit_req([commit request])
stage_req([staging or fix ready])
edit_hook([edit in a git worktree])
2026-11-03 13:43:15 +01:00
reminders([12 h agent hint, 17:00 GNOME popup])
2026-11-03 15:45:57 +01:00
full_hour([full hour])
2026-10-30 17:35:27 +01:00
code_task([code task])
2026-10-31 17:27:26 +01:00
spawn([subagent spawn])
2026-10-30 17:35:27 +01:00
end
2026-10-31 23:46:28 +01:00
subgraph cat_think [think]
active_listening[kvb-think-listen]
explain[kvb-think-explain]
dialectic[kvb-think-dialectic]
criticize[kvb-think-criticize]
2026-11-03 12:35:37 +01:00
brainstorm[kvb-think-brainstorm]
gaps[kvb-think-gaps]
2026-10-30 17:35:27 +01:00
end
2026-10-31 23:46:28 +01:00
subgraph cat_create [create]
plan[kvb-create-plan]
2026-11-03 12:35:37 +01:00
requirement[kvb-create-requirement]
2026-10-30 17:35:27 +01:00
end
2026-10-31 23:46:28 +01:00
subgraph cat_code [code]
scope_guard[kvb-code-scope-guard]
no_defaults[kvb-code-no-defaults]
refactor[kvb-code-refactor]
test[kvb-code-test]
tune[kvb-code-tune]
comments_clean[kvb-code-no-comments]
2026-11-03 12:33:13 +01:00
code_transcend[kvb-code-transcend]
2026-10-30 17:35:27 +01:00
end
2026-10-31 23:46:28 +01:00
subgraph cat_ci [ci]
triage[kvb-ci-triage]
ci_artifacts[kvb-ci-artifacts]
observe[kvb-ci-observe]
2026-10-30 17:35:27 +01:00
end
2026-10-31 23:46:28 +01:00
subgraph cat_git [git]
commit_next[kvb-git-commit-next]
commit_no_verify[kvb-git-commit-no-verify]
merge_fix[kvb-git-merge-fix]
2026-11-03 16:48:19 +01:00
close_issues[kvb-git-close-issues]
2026-11-03 16:50:32 +01:00
update_branches[kvb-git-update-branches]
2026-10-31 23:46:28 +01:00
branch_gc[kvb-git-branch-gc]
changelog[kvb-git-changelog]
2026-10-30 17:35:27 +01:00
end
2026-10-31 23:46:28 +01:00
subgraph cat_check [check]
advocate[kvb-check-legal]
medusa[kvb-check-security]
sceptic[kvb-check-principles]
confidence[kvb-check-confidence]
break_risk[kvb-check-break-risk]
2026-10-30 17:35:27 +01:00
end
2026-10-31 23:46:28 +01:00
subgraph cat_org [org]
democracy[kvb-org-organize]
funnel[kvb-org-split]
coordinate[kvb-org-coordinate]
subagent_model[kvb-org-perform]
status_matrix[kvb-org-matrix]
2026-11-01 00:47:00 +01:00
rasci[kvb-org-rasci]
artefacts[kvb-org-artefacts]
2026-11-01 01:48:06 +01:00
wsjf[kvb-org-wsjf]
2026-10-31 23:46:28 +01:00
robot[kvb-org-robot]
2026-11-03 13:21:46 +01:00
operator[kvb-org-operator]
2026-10-30 17:35:27 +01:00
end
2026-11-03 13:08:31 +01:00
subgraph cat_skill [skill]
autotune[kvb-skill-tune]
autoskill[kvb-skill-auto]
essence[kvb-skill-essence]
skill_transcend[kvb-skill-transcend]
2026-11-03 13:17:05 +01:00
compile[kvb-skill-compile]
2026-11-03 13:24:56 +01:00
skill_cleanup[kvb-skill-cleanup]
2026-10-31 23:46:28 +01:00
end
subgraph cat_none [no category]
cleanup[kvb-cleanup]
help_skills[kvb-help]
2026-11-03 12:33:13 +01:00
transcend[kvb-transcend]
2026-11-03 13:43:15 +01:00
dream[kvb-dream]
optimize[kvb-optimize]
2026-11-03 13:56:12 +01:00
coach[kvb-coach]
2026-10-30 17:35:27 +01:00
end
2026-11-03 15:40:50 +01:00
subgraph cat_coach [coach]
meditation[kvb-coach-meditation]
end
2026-10-30 17:35:27 +01:00
commit_req -.-> commit_next
commit_req -.-> commit_no_verify
stage_req -.-> confidence
edit_hook -. council gate .-> democracy
reminders -.-> dream
2026-11-03 15:45:57 +01:00
full_hour -.-> coach
2026-10-30 17:35:27 +01:00
code_task -.-> no_defaults
code_task -.-> scope_guard
2026-10-31 17:27:26 +01:00
spawn -.-> subagent_model
2026-10-30 17:35:27 +01:00
commit_next --> merge_fix
commit_next --> commit_no_verify
commit_next --> explain
commit_next --> dialectic
2026-11-03 16:48:19 +01:00
close_issues --> confidence
2026-11-03 16:50:32 +01:00
update_branches --> active_listening
update_branches -. conflicts .-> merge_fix
update_branches -. pushes .-> operator
2026-10-30 17:35:27 +01:00
commit_no_verify --> comments_clean
commit_no_verify --> advocate
advocate --> dialectic
confidence --> break_risk
confidence -. objective .-> autotune
coordinate --> democracy
cleanup --> democracy
2026-10-31 17:30:24 +01:00
cleanup --> branch_gc
branch_gc --> democracy
2026-10-30 17:35:27 +01:00
funnel --> democracy
funnel --> dialectic
2026-10-31 17:27:26 +01:00
funnel --> subagent_model
dialectic --> subagent_model
2026-10-30 17:35:27 +01:00
democracy --> merge_fix
2026-11-01 00:47:00 +01:00
democracy -. claim and release .-> rasci
funnel --> rasci
status_matrix --> rasci
cleanup --> artefacts
artefacts --> rasci
2026-11-01 01:48:06 +01:00
democracy --> wsjf
wsjf --> rasci
2026-11-03 13:21:46 +01:00
operator --> rasci
2026-11-01 00:47:00 +01:00
dream --> rasci
2026-10-30 17:35:27 +01:00
observe --> triage
observe --> ci_artifacts
triage --> ci_artifacts
triage --> democracy
triage --> dialectic
triage --> funnel
triage --> tune
tune --> democracy
tune --> funnel
tune --> merge_fix
tune --> dialectic
dialectic --> active_listening
criticize --> dialectic
criticize --> active_listening
sceptic --> dialectic
sceptic --> no_defaults
2026-11-03 12:35:37 +01:00
gaps --> sceptic
gaps --> active_listening
gaps --> requirement
requirement --> active_listening
requirement --> brainstorm
requirement -. offer .-> plan
brainstorm --> dialectic
2026-10-30 17:35:27 +01:00
plan --> robot
plan --> active_listening
robot --> dialectic
dream --> dialectic
2026-11-03 13:43:15 +01:00
dream --> optimize
dream --> cleanup
dream --> branch_gc
optimize --> skill_cleanup
optimize --> transcend
optimize --> autoskill
optimize --> autotune
optimize --> compile
optimize --> essence
optimize --> refactor
optimize --> tune
optimize --> gaps
2026-11-03 13:56:12 +01:00
coach --> active_listening
coach --> operator
coach --> rasci
2026-11-03 15:40:50 +01:00
coach --> meditation
meditation --> active_listening
2026-10-30 17:35:27 +01:00
autoskill --> autotune
autotune --> essence
2026-11-03 13:08:31 +01:00
transcend --> skill_transcend
2026-11-03 12:33:13 +01:00
transcend --> code_transcend
2026-11-03 13:08:31 +01:00
skill_transcend --> active_listening
skill_transcend --> autotune
2026-11-03 12:33:13 +01:00
code_transcend --> active_listening
2026-11-03 13:08:31 +01:00
autotune -. own scripts .-> skill_transcend
2026-11-03 13:17:05 +01:00
autotune -. deterministic prose .-> compile
autoskill -. deterministic steps .-> compile
skill_transcend -. deterministic moves .-> compile
essence -. procedures .-> compile
compile --> active_listening
2026-11-03 13:24:56 +01:00
skill_cleanup --> operator
skill_cleanup -. unknown skills .-> transcend
2026-11-03 12:33:13 +01:00
tune -. measurements .-> code_transcend
2026-10-30 17:35:27 +01:00
test --> triage
test --> dialectic
test --> no_defaults
test --> comments_clean
refactor --> comments_clean
```
2026-07-10 12:54:47 +02:00
## Requirements 📦
2026-07-10 11:23:51 +02:00
2026-07-10 12:54:47 +02:00
- Node.js (provides `npx skills` ).
- `jq` (only required for `make update` ).
2026-07-10 11:23:51 +02:00
2026-07-10 12:54:47 +02:00
## Installation 🚀
Install the skills globally into your home (`~/.agents/skills` and `~/.claude/skills` ):
```bash
make install
```
Copy the skills into a specific project (`<repo>/.agents/skills` and `<repo>/.claude/skills` ):
```bash
make project TARGET = /path/to/repo
```
2026-11-03 15:45:57 +01:00
Both commands also patch the target's `.claude/settings.local.json` — the machine-local, untracked file, so a project's reviewed `.claude/settings.json` is never rewritten by an install: the caveman and ponytail plugins are enabled so their modes auto-activate on session start, and two reminder hooks are registered — `kvb-dream` points each agent at `/kvb-dream` at most once every twelve hours (stamped per session in `~/.claude/.dream-stamps/` ), and `kvb-coach` runs its short form at the first prompt of every full hour, once across all agents (stamped in `~/.claude/.coach-hours/` ); the global install also enables the `kvb-dream-notify.timer` systemd user timer, which recommends `/kvb-dream` in a GNOME notification daily at 17:00 local time and catches up once after a missed run. A PreToolUse gate from the `kvb-org-organize` skill blocks edits to files in a git worktree until the session holds a claim (`skills/kvb-org-organize/scripts/council.py` ), and its resource watch (`skills/kvb-org-organize/scripts/watch.py` ) measures disk, Docker and caches, cleans up low-risk data and blocks new heavy jobs before the disk runs out; it stays inactive until `~/.config/agents-council/config.json` exists. Two hooks of the `kvb-org-perform` skill (`skills/kvb-org-perform/scripts/log.py` ) log every Agent spawn with its task class, model and effort, and store the quality feedback a sandboxed session prints, in `~/.local/state/agents-council/subagent-model.jsonl` . Existing settings are preserved.
2026-07-10 14:59:17 +02:00
2026-07-10 12:54:47 +02:00
Restart your agent afterwards so it loads the new skills.
## Maintenance 🔧
Refresh every skill to its latest version and rewrite `skills-lock.json` :
```bash
make update
```
Validate `skills-lock.json` and shellcheck the scripts (also run by CI on every push and after every update):
```bash
make test
```
## Related Tools 🧰
This collection is part of a wider toolset for managing IT and infrastructure:
- [alias ](https://github.com/kevinveenbirkenbach/alias ) — shell aliases for common commands.
- [package-manager ](https://github.com/kevinveenbirkenbach/package-manager ) — `pkgmgr` , a single command to install and manage these repositories.
- [infinito-nexus ](https://github.com/kevinveenbirkenbach/infinito-nexus ) — automation platform for self-hosted infrastructure.
## License 📜
MIT License, Copyright (c) 2026 Kevin Veen-Birkenbach.
2026-07-10 11:23:51 +02:00
## Author 👤
Kevin Veen-Birkenbach [kevin@veen.world ](mailto:kevin@veen.world )
2026-07-10 12:54:47 +02:00
## Thanks 🙏
Thanks to the [#ai:infinito.nexus ](https://matrix.to/#/%23ai:infinito.nexus ) community, and especially to [Paulinhx ](https://github.com/Paulinhx ) for the inspiration.
## Donation ❤️
If these tools help you, consider supporting their development:
- [GitHub Sponsors ](https://github.com/sponsors/kevinveenbirkenbach )
- [Patreon ](https://www.patreon.com/c/kevinveenbirkenbach )
- [Buy Me a Coffee ](https://buymeacoffee.com/kevinveenbirkenbach )
- [PayPal ](https://s.veen.world/paypaldonate )
- Bitcoin: [bc1qle7j8m9kvny2h2q3jzsnc64s4f5zme5re23pzc2lc2d7hhasc4dqachflp ](bitcoin:bc1qle7j8m9kvny2h2q3jzsnc64s4f5zme5re23pzc2lc2d7hhasc4dqachflp?message=%E2%9D%A4%EF%B8%8F%20Help%20Build%20the%20Future%20-%20Donation%20to%20Kevin%20Veen-Birkenbach. )