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