perf(skills): cap every description at 40 words and test the listing budget

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kevin Veen-BirkenbachandClaude Opus 5.5 committed 2026-10-30 16:54:37 +01:00
1 parent 1ac809f884
commit 5fa798223f
37 files changed
+135 -198

No files matched your search

+4 -5
View File
@@ -1,11 +1,10 @@
---
name: active-listening
description: >
Gather every requirement before acting. Trigger at the start of any task
whose scope, constraints, or success criteria are not fully pinned down, and
whenever another skill needs an operator-only fact — ask focused questions
until nothing needed is still open, then reflect the understanding back.
Portable across projects.
Ask focused questions until every requirement is pinned down, then reflect
the task back. Trigger at the start of any task with unclear scope,
constraints or success criteria, and when another skill needs an
operator-only fact.
---
Do not act on a half-understood request. Listen actively until you could state
+4 -8
View File
@@ -1,14 +1,10 @@
---
name: advocate
description: >
Check a commit for legal soundness before it lands: is the project licence
compatible with the code and dependencies the change brings in, are the
attribution duties met, is copied code traceable, does the change touch
personal data (GDPR) or third-party trademarks. Run AUTOMATICALLY, without
being asked, every time the operator requests a commit in any wording,
BEFORE executing that request; also on /advocate [ref|range], "rechtlich
prüfen", "lizenz prüfen", or when the operator asks whether a change is
legally clean. Portable across projects.
Check a commit for legal soundness: licence compatibility of added code and
dependencies, attribution, copied snippets, GDPR, trademarks. Run
AUTOMATICALLY before every commit the operator requests; also on /advocate
[ref|range], "rechtlich prüfen", "lizenz prüfen".
---
The stance is the project's counsel: find what would make the change unlawful
+4 -7
View File
@@ -1,13 +1,10 @@
---
name: auto-feature
description: >
Derive the missing work of a codebase and turn it into requirement
documents: a sceptic pass for what the code gets structurally wrong, a
usability pass for what the product does not do yet, then active-listening
to confirm every proposal through single-select (radio button) questions
before anything is written. Trigger on /auto-feature, "was fehlt noch",
"welche features brauchen wir", or when the operator asks what to build
next. Portable across projects.
Derive missing work (sceptic pass for structural flaws, usability pass for
missing features) and write requirement documents after single-select
confirmation. Trigger on /auto-feature, "was fehlt noch", "welche features
brauchen wir", or when the operator asks what to build next.
---
Two blind spots produce different work: the code has defects of structure,
+4 -4
View File
@@ -1,10 +1,10 @@
---
name: autoskill
description: >
Detect operator repetition and turn it into a skill. Trigger when the
operator gives an instruction, correction, or prompt pattern for roughly
the third time in a conversation (or says they keep repeating themselves),
and the pattern is general enough to reuse. Portable across projects.
Turn operator repetition into a skill. Trigger when the operator gives the
same instruction, correction or prompt pattern about the third time in a
conversation, or says they keep repeating themselves, and the pattern is
reusable.
---
Its objective is the `autotune` skill's **Objective** section: a skill is worth
+4 -6
View File
@@ -1,12 +1,10 @@
---
name: autotune
description: >
Generate new agent skills and optimize existing ones so the agent works more
efficiently: fewer input and output tokens, fewer errors, more focus, and
learnings that persist across sessions. Every proposal is confirmed with the
operator through single-select (radio button) questions. Trigger ONLY on an
explicit operator request (/autotune, "autotune", "tune the skills"); never
run it on your own initiative. Portable across projects.
Generate new skills or optimize existing ones (fewer tokens, fewer errors,
persistent learnings), each proposal confirmed by single-select question.
Trigger ONLY on an explicit request: /autotune, "autotune", "tune the
skills"; never on your own initiative.
---
Autotune turns observed friction into durable skills. It runs on demand only,
+3 -4
View File
@@ -1,10 +1,9 @@
---
name: break-risk
description: >
Derive the break-risk percentage from measurement instead of feel. Called by
the `confidence` skill every time it reports, and usable alone whenever the
operator asks "what could this break?" or names a break-risk threshold.
Portable across projects.
Derive the break-risk percentage from measurement, not feel. Called by
`confidence` on every report; also when the operator asks "what could this
break?" or names a break-risk threshold.
---
Break risk is the probability the change breaks something it did not intend to
+4 -6
View File
@@ -1,12 +1,10 @@
---
name: changelog
description: >
Write the release message for everything since the last release, ready to
paste into `pkgmgr release` (its editor or `--message`). Trigger on
/changelog, "release message", "changelog entry", or when the operator is
about to cut a release or pastes pkgmgr's markdown-lint rejection of an
entry. Prints the message only: never edits CHANGELOG.md, never tags, never
releases. Portable across projects.
Write the release message since the last release for `pkgmgr release`;
prints it only, never edits CHANGELOG.md, tags or releases. Trigger on
/changelog, "release message", "changelog entry", before cutting a release,
or on pkgmgr's markdown-lint rejection.
---
The message is one text that pkgmgr writes to four places: the CHANGELOG.md
+3 -4
View File
@@ -1,10 +1,9 @@
---
name: ci-artifacts
description: >
Get the real evidence out of a CI run: per-job logs even while the run is
still in progress, and the artifacts that hold the cause rather than the
symptom. Trigger whenever a CI failure has to be explained, and from the
triage skill's artifact step. Portable across projects.
Get the evidence out of a CI run: failed job logs (also mid-run) clustered
by error line, and the artifacts that hold the cause. Trigger whenever a CI
failure must be explained, and from triage.
---
A job log tells you what broke. An artifact tells you why. Investigating a CI
+4 -7
View File
@@ -1,13 +1,10 @@
---
name: cleanup
description: >
Free the disk space agents filled: ask every other agent session on this
machine which data it still needs, inventory /tmp, Docker and the other
directories agents write to, then propose a cleanup with its risks and let
the operator choose through single-select (radio button) and multi-select
(checklist) questions before anything is deleted. Trigger on /cleanup,
"aufräumen", "bereinigen", "platte voll", "no space left on device", or when
the operator asks to clean up after agents. Portable across projects.
Free disk space agents filled: ask peer sessions what they still need,
inventory /tmp, Docker and agent dirs, and delete only what the operator
picks. Trigger on /cleanup, "aufräumen", "bereinigen", "platte voll", "no
space left on device".
---
Nothing is deleted before the operator has picked it. Every candidate carries
+3 -6
View File
@@ -2,12 +2,9 @@
name: comments-clean
description: >
Purge explanatory comments from staged and unstaged changes. Run
AUTOMATICALLY, without being asked, every time the operator requests a
commit or stage in any wording (commit, commit no-verify, stage next,
socon, sobu, socobu, "commite ..."), BEFORE executing that request; also
on /comments-clean or when the operator complains about comments.
Explanatory comments are bad practice: they narrate code instead of
letting it speak. Portable across projects.
AUTOMATICALLY before every commit or stage request (commit, commit
no-verify, stage next, socon, sobu, socobu, "commite ..."); also on
/comments-clean or comment complaints.
---
When the operator asks to commit or stage, run this audit first and only
+3 -5
View File
@@ -1,11 +1,9 @@
---
name: commit-next
description: >
Fetch every branch and check whether the staged fix already exists
elsewhere, then commit the staged bundle with --no-verify, stage the next
logical bundle and brief the operator on it. Trigger on /commit-next or
when the operator asks to commit and stage the next bundle in one step.
Portable across projects.
Check every branch for the staged fix, commit the staged bundle with
--no-verify, then stage and brief the next bundle. Trigger on /commit-next
or when the operator asks to commit and stage the next bundle in one step.
---
1. `git fetch --all --prune --tags`, then hunt the staged fix across every
+3 -5
View File
@@ -1,11 +1,9 @@
---
name: commit-no-verify
description: >
Commit the currently staged changes with --no-verify (skip the pre-commit
hooks). Trigger on /commit-no-verify or when the operator asks for a
no-verify commit in any wording. Invoking this skill IS the explicit
per-commit authorization that --no-verify requires; it never carries over
to later commits. Portable across projects.
Commit the staged changes with --no-verify. Trigger on /commit-no-verify or
any request for a no-verify commit; invoking it IS the per-commit
authorization --no-verify requires, never carried over to later commits.
---
1. Run the comments-clean audit over the staged and unstaged changes first,
+3 -4
View File
@@ -1,10 +1,9 @@
---
name: confidence
description: >
Report calibrated confidence unprompted. Trigger whenever you stage
changes, declare a fix or bundle ready, or summarize completed work the
operator may commit or deploy — the operator must never have to ask "how
sure are you?". Portable across projects.
Report calibrated fix confidence and break risk unprompted whenever you
stage changes, declare a fix or bundle ready, or summarize work the operator
may commit or deploy.
---
Every stage summary, fix report, or ready-to-commit bundle ends with a
+3 -4
View File
@@ -1,10 +1,9 @@
---
name: coordinate
description: >
Coordinate a failing run or a fix with the agents on related branches
(upstream and downstream through merges): claim it, ask whether it is
already fixed, report the result. Trigger on /coordinate and whenever a fix
touches code other branches share through merges. Portable across projects.
Coordinate a failure or fix with the agents on related branches through
merges: claim, ask, report. Trigger on /coordinate and when a fix touches
code other branches share.
---
Run the `democracy` skill's **Lineage** and **Peer protocol** sections for the
+4 -7
View File
@@ -1,13 +1,10 @@
---
name: criticize
description: >
Look at a problem, a plan, a design, a decision, a text, or a piece of code
critically from diverse aspects and give constructive criticism: what holds,
what does not, why it matters, and what to do instead. Every critique point is
hardened with the dialectic skill before it is reported. Trigger on
/criticize, "kritisiere", "kritisch betrachten", "konstruktive Kritik",
"was haeltst du davon", or when the operator asks for honest feedback on
something rather than for a fix. Portable across projects.
Give constructive criticism of a problem, plan, design, decision, text or
code from diverse aspects, each point hardened by dialectic. Trigger on
/criticize, "kritisiere", "kritisch betrachten", "konstruktive Kritik", "was
haeltst du davon", or requests for honest feedback.
---
The stance is critical but constructive: the goal is a better result, not a
+4 -10
View File
@@ -1,16 +1,10 @@
---
name: democracy
description: >
Organise parallel agents so no two do the same work: the first agent to
start a piece of work is elected its president and does all of it, the first
agent in each organisational line represents that line, the first to start a
cross-cutting work cluster organises its strand, and the earliest-elected
live president chairs the council and allocates the resources of the whole
system (machines, servers, cloud, CI runners, gate, deploy and iteration
slots, disk). Run AUTOMATICALLY before starting work another agent on the
same system might also be doing (a failure, a cost cluster, a feature, a
gate, a deploy, a cleanup), whenever several agents share a system, and on
/democracy. Portable across projects.
Keep parallel agents from duplicating work: the first to claim it owns it;
line representatives and a resource chair coordinate. Run AUTOMATICALLY
before work another agent might also do (failure, cluster, feature, gate,
deploy, cleanup), and on /democracy.
---
Two agents doing the same work waste the second run and then collide in the
+4 -5
View File
@@ -1,11 +1,10 @@
---
name: dialectic
description: >
Reach a defensible conclusion through a dialectical process — thesis,
adversarial antithesis, synthesis — iterated until one thesis survives every
attack at ~99% confidence. Trigger for any consequential root-cause, design,
or decision where being wrong is expensive and the answer is not yet certain.
Deep-inspects every accessible source. Portable across projects.
Reach a defensible conclusion by thesis, independent skeptic antithesis and
synthesis, iterated to ~99% confidence. Trigger for any consequential root
cause, design or decision where being wrong is expensive and the answer is
uncertain.
---
Reach the truth by dialectic, not by first guess. Do not stop at a plausible
+4 -10
View File
@@ -1,16 +1,10 @@
---
name: dream
description: >
Consolidate the last 24 hours of work in the current repository: what the
agent did, where it was right, where it was wrong, and which hypotheses
follow. Every hypothesis is hardened with the dialectic skill, the survivors
are written to memory, the derived improvements to the repository's code and
to its agent instructions (CLAUDE.md, AGENTS.md) are offered as single-select
questions, and the run ends in autotune and autoskill. The objective is to
raise the confidence of future runs until those mistakes stop recurring.
Trigger on /dream, or
when the operator asks to reflect on, consolidate, or learn from recent work.
Portable across projects.
Consolidate the last 24 hours of work in this repository: what held, what
broke, which hypotheses follow, into memory and improvement proposals.
Trigger on /dream or when the operator asks to reflect on or learn from
recent work.
---
Sleep on the work: replay what happened in this repository, separate what held
+3 -4
View File
@@ -1,10 +1,9 @@
---
name: essence
description: >
Compact skills and memory down to their essence so every session loads less
context, after a health pass that finds the dead weight first. Trigger on
/essence, or when the operator says the skills or MEMORY.md have grown too
long, carry duplicates, or eat too much context. Portable across projects.
Compact skills and memory to their essence after a health pass that finds
dead weight. Trigger on /essence or when skills or MEMORY.md grow too long,
duplicate, or eat too much context.
---
Shorter, not thinner. Every fact that still earns its place survives; what goes
+3 -4
View File
@@ -1,10 +1,9 @@
---
name: explain
description: >
Explain code and its interactions. Trigger when the operator asks what a
piece of code does, how a mechanism works, why components interact the way
they do, or invokes /explain on a file, function, role, or module.
Portable across projects.
Explain code and its interactions. Trigger when the operator asks what code
does, how a mechanism works, why components interact, or invokes /explain on
a file, function, role or module.
---
Explain the named code so an engineer who has never seen it can follow it:
+3 -7
View File
@@ -1,13 +1,9 @@
---
name: funnel
description: >
Funnel agent work through sidetrees: every agent works in its own git
worktree until its change reaches at least 90 % fix confidence and under 5 %
break risk, and only then does the change enter the main line. When that bar
is realistically out of reach, the agent submits a proposal instead of a
change. Trigger when delegating implementation, fix or optimization work to
agents, when several agents work in parallel, or on /funnel. Portable across
projects.
Keep agent work in its own git worktree until it reaches 90% fix confidence
and under 5% break risk; below that bar it becomes a proposal. Trigger when
delegating work to agents, when agents work in parallel, or on /funnel.
---
# Funnel
+3 -4
View File
@@ -1,10 +1,9 @@
---
name: help-skills
description: >
List and explain every skill available in the current session. Trigger on
/help-skills, "welche skills gibt es", "skill übersicht", or when the
operator asks what skills exist or what a skill does. Portable across
projects.
List and explain every skill in the session. Trigger on /help-skills,
"welche skills gibt es", "skill übersicht", or when the operator asks what
skills exist or what one does.
---
Produce a one-shot overview of every skill the session can invoke:
+4 -5
View File
@@ -1,11 +1,10 @@
---
name: medusa
description: >
Run the MEDUSA AI security scanner (medusa-security on PyPI) against a
repository, working tree, or secret stores. Use when the user asks for a
security scan, supply-chain vetting of a repo before cloning, leaked-secret
detection in AI chat or shell history, or invokes /medusa. Defensive scanning
only.
Run the MEDUSA security scanner (medusa-security, PyPI) on a repository,
working tree or secret stores. Use for security scans, vetting a repo before
cloning, leaked-secret detection in chat or shell history, or /medusa.
Defensive only.
---
MEDUSA is a defensive AI-first security scanner (40,000+ patterns: CVEs, prompt injection, MCP tool poisoning, leaked secrets).
+3 -4
View File
@@ -1,10 +1,9 @@
---
name: merge-fix
description: >
Fetch every branch of the repository, hunt down the commits that carry a
described fix, and merge that fix into the current branch. Trigger on
/merge-fix <description of the fix> or when the operator asks to find a fix
that lives on another branch and bring it over. Portable across projects.
Hunt down the commits on any branch that carry a described fix and merge it
into the current branch. Trigger on /merge-fix <description> or when the
operator asks to bring over a fix from another branch.
---
The free text after `/merge-fix` is the fix description, exactly like `/loop`
+4 -9
View File
@@ -1,15 +1,10 @@
---
name: no-defaults
description: >
Forbid default values for parameters, settings, and environment lookups in
every language. Load and apply AUTOMATICALLY on every task that writes,
edits, generates, refactors, or reviews code, config, templates, schemas,
or infrastructure — never wait to be asked. A default silently substitutes
a guess for a value the caller failed to supply, so a misconfiguration
becomes wrong behaviour instead of a loud failure. Demand strict, explicit
values and fail loudly when one is missing. `false`, `null` and `""` are the
only free defaults; every other default needs a written justification.
Portable across projects.
Forbid default values for parameters, settings and environment lookups;
demand explicit values and fail loudly. Apply AUTOMATICALLY on every task
that writes, edits, generates, refactors or reviews code, config, templates,
schemas or infrastructure.
---
A default value is a guess, written at the point where the caller's intent is
+3 -4
View File
@@ -1,10 +1,9 @@
---
name: observe
description: >
Watch a named target (a CI run, a pipeline, a build, a log) on a fixed
cadence and apply the triage skill whenever new failures appear. Trigger on
/observe <target> or when the operator asks to keep monitoring something and
fix regressions as they surface. Portable across projects.
Watch a named target (CI run, pipeline, build, log) on a cadence and triage
new failures as they appear. Trigger on /observe <target> or when the
operator asks to keep monitoring and fix regressions.
---
Keep a target under continuous watch and act only when it degrades. The loop is
+3 -4
View File
@@ -1,10 +1,9 @@
---
name: plan
description: >
Turn a request into an objective-oriented plan and hand it to the robot skill
for autonomous execution. Trigger on /plan or when the operator asks for a
plan, a breakdown, or a strategy for a task before any work starts. Portable
across projects.
Turn a request into an objective-oriented plan and hand it to the robot
skill. Trigger on /plan or when the operator asks for a plan, breakdown or
strategy before work starts.
---
Produce a plan whose every item is an outcome with a check, then execute it
+3 -5
View File
@@ -1,11 +1,9 @@
---
name: refactor
description: >
Refactor every file that is currently uncommitted in the git working tree -
staged, unstaged and untracked - up to the project's coding standards,
without changing behaviour. Trigger on /refactor or when the operator asks to
clean up, tidy, or polish the current changes before committing. Portable
across projects.
Refactor every uncommitted file (staged, unstaged, untracked) up to the
project's standards without changing behaviour. Trigger on /refactor or when
the operator asks to clean up, tidy or polish the current changes.
---
The unit of work is the uncommitted change set, not the repository. Behaviour
+3 -4
View File
@@ -1,10 +1,9 @@
---
name: robot
description: >
Work fully autonomously to a goal. Trigger when the operator wants hands-off,
uninterrupted execution — the agent drives the task to completion without
check-ins, never stops before the goal is reached, and uses only commands it
is already cleared to run. Portable across projects.
Work fully autonomously to a goal: no check-ins, no stopping before the goal,
only commands already cleared. Trigger when the operator wants hands-off,
uninterrupted execution.
---
Operate as an autonomous robot: given a goal, reach it without hand-holding.
+4 -5
View File
@@ -1,11 +1,10 @@
---
name: sceptic
description: >
Analyse a repository, a path, or a diff with a hostile eye for violated
engineering principles — SPOT, DRY, KISS, SRP, and security at the trust
boundaries. Trigger on /sceptic, "sei skeptisch", "kritische analyse",
"review the architecture", or when the operator asks what is wrong with the
code rather than whether it works. Portable across projects.
Analyse a repository, path or diff with a hostile eye for violated
principles: SPOT, DRY, KISS, SRP, security at trust boundaries. Trigger on
/sceptic, "sei skeptisch", "kritische analyse", "review the architecture",
or "what is wrong with the code".
---
The stance is adversarial: the code is guilty until its structure proves
+3 -4
View File
@@ -2,10 +2,9 @@
name: scope-guard
description: >
Deliver exactly what was asked and nothing more. Trigger on every task that
creates files, commands, or commits, and on autonomous runs where no one is
reviewing each step. Also when the operator asks to be given something, and
when they ask why something exists that they never requested. Portable across
projects.
creates files, commands or commits, on unreviewed autonomous runs, on
hand-over requests, and when the operator asks why something unrequested
exists.
---
The requested scope is the deliverable. A problem you noticed behind the
+3 -4
View File
@@ -1,10 +1,9 @@
---
name: shortcuts
description: >
Portable operator conversation shortcuts, reusable across every project.
Trigger when the user's message is exactly one of these tokens (optionally
followed by arguments): sobu, soco, socobu, socon, sona, sote. Expand the
shortcut to the listed meaning and act on the expanded instruction.
Operator conversation shortcuts. Trigger when the message is exactly one of
these tokens, optionally with arguments: sobu, soco, socobu, socon, sona,
sote. Expand it and act on the expanded instruction.
---
When an operator message is one of the shortcuts below, expand it to the meaning and act on it.
+3 -5
View File
@@ -1,11 +1,9 @@
---
name: status-matrix
description: >
Print one matrix of everything currently in flight: open and closed tasks,
running workflows and background jobs, plus confidence and break risk per
item. Trigger on /status-matrix, "status", "übersicht", "wo stehen wir", or
whenever the operator asks what is done, what is left, or what is still
running. Portable across projects.
Print one matrix of everything in flight: tasks, workflows, background jobs,
with confidence and break risk per item. Trigger on /status-matrix,
"status", "übersicht", "wo stehen wir", or what is done, left or running.
---
One-shot overview, no side effects: this skill reads state and reports it. It
+3 -5
View File
@@ -1,11 +1,9 @@
---
name: test
description: >
Discover the test targets of the project's Makefile, let the operator pick
which ones to run, then run them and report; in fix mode, loop run, diagnose,
fix, re-run until green. Trigger on /test, /test --fix, or when the operator
asks to run the tests, make them pass, or get the suite green. Portable
across projects.
Discover the Makefile's test targets, let the operator pick, run and report;
fix mode loops until green. Trigger on /test, /test --fix, or when the
operator asks to run the tests, make them pass, or get the suite green.
---
The Makefile is the source of truth for how this project runs tests. Never
+3 -5
View File
@@ -1,11 +1,9 @@
---
name: triage
description: >
Triage a failing CI run, pipeline, or job set to a verified root cause and a
real fix. Trigger when a build, test, or deploy pipeline has one or more failed
jobs. Applies the dialectic skill, the democracy peer protocol and the funnel
skill to every failure cluster, so each cluster is fixed in its own worktree,
and hands a timed-out job's log to the tune skill. Portable across projects.
Triage a failing CI run, pipeline or job set to a verified root cause and a
real fix, one cluster per worktree. Trigger when a build, test or deploy
pipeline has failed jobs.
---
Drive a red pipeline to green by root cause, not by guesswork. Treat every
+4 -9
View File
@@ -1,15 +1,10 @@
---
name: tune
description: >
Find and apply performance optimizations (CI wall-clock, deploy duration,
build and gate runtime, hot code paths) without reducing logic, coverage or
correctness, including a change of language where measurement justifies it.
Asks once per session what to examine and which limits apply, measures from
logs, coordinates every cost cluster with the other agents so the one who
identified it first works it, hardens every candidate with the dialectic skill
and funnels each optimization through a sidetree. Trigger on /tune, when a job dies on its time
budget, when a pipeline or deploy grows slower, or when the operator asks
where the time goes. Portable across projects.
Find and apply performance optimizations (CI, deploy, build, gate, hot
paths) without reducing logic, coverage or correctness. Trigger on /tune,
when a job dies on its time budget, when a pipeline or deploy grows slower,
or asked where time goes.
---
# Tune
+12
View File
@@ -12,6 +12,8 @@ LOCK_FILE = REPO_ROOT / "skills-lock.json"
HASH_RE = re.compile(r"^[0-9a-f]{64}$")
REQUIRED_FIELDS = ("source", "sourceType", "skillPath", "computedHash")
DESCRIPTION_WORDS = 40
LISTING_WORDS = 1300
class TestSkillsLock(unittest.TestCase):
@@ -61,6 +63,16 @@ class TestSkillsLock(unittest.TestCase):
"description:", frontmatter, "frontmatter missing description"
)
def test_descriptions_fit_the_listing_budget(self):
total = 0
for skill_md in sorted((REPO_ROOT / "skills").glob("*/SKILL.md")):
frontmatter = skill_md.read_text(encoding="utf-8").split("---", 2)[1]
words = len(frontmatter.split("description:", 1)[1].split()) - 1
total += words
with self.subTest(skill=skill_md.parent.name):
self.assertLessEqual(words, DESCRIPTION_WORDS)
self.assertLessEqual(total, LISTING_WORDS)
def test_first_party_skills_do_not_shadow_locked_skills(self):
locked = set(self.lock["skills"].keys())
for skill_dir in sorted((REPO_ROOT / "skills").glob("*/")):