Agent Skills
Seven Agent Skills that let a coding agent answer
operational questions about Kafka through fh. Each skill collects with a
bundled script that emits one fixed JSON document, reasons with stated rules,
and reports in a fixed shape, so two runs on the same cluster produce the same
kind of answer.
Install
Install and configure fh first. The skills run fh -o json and jq
against the current context, so both must be on PATH.
With fh
The skills ship inside the fh binary, matched to that build's commands.
| Agent | Command | Installs to |
|---|---|---|
| Claude Code | fh skills install --agent claude | ~/.claude/skills |
| Codex CLI | fh skills install | ~/.agents/skills |
| GitHub Copilot (VS Code, CLI, cloud agent) | fh skills install | ~/.agents/skills |
| Cursor, Gemini CLI, OpenCode, Goose, Amp, Windsurf | fh skills install | ~/.agents/skills |
| Kiro | fh skills install --dir ~/.kiro/skills | ~/.kiro/skills |
| One repository, any agent | fh skills install --agent project | ./.agents/skills |
--force replaces skills already installed; re-run it after upgrading fh.
fh skills list shows what the build bundles.
With the agent's own installer
Export the skills to a directory, then point the agent's installer at it.
The skills are not on a public repository, so installers that only fetch from
GitHub (Codex $skill-installer, the Cursor marketplace) do not apply.
fh skills install --dir ./fh-skills
The GitHub CLI installs for any agent it supports:
gh skill install ./fh-skills --from-local --all --agent claude-code --scope user
gh skill install ./fh-skills --from-local --all --agent github-copilot --scope user
gh skill install ./fh-skills --from-local --all --agent codex --scope project
gh skill install ./fh-skills --from-local --all --agent cursor --scope user
--scope project writes into the current repository. gh skill is in
preview; gh skill install --help lists the agents.
Agents with their own installer:
for d in ./fh-skills/*/; do gemini skills install "$d" --scope user; done # Gemini CLI
for d in ./fh-skills/*/; do amp skill add "$d"; done # Amp
Kiro imports a local folder from its skills panel. Copying works for every agent, since each one scans its skills directory at startup:
cp -R ./fh-skills/* ~/.claude/skills/ # Claude Code
cp -R ./fh-skills/* ~/.agents/skills/ # Codex, Copilot, Cursor, Gemini CLI, OpenCode, Goose, Amp
Start a new session, or reload skills, after installing.
| Agent | Invoke |
|---|---|
| Claude Code | Ask, or /kpow-lag-triage |
| Codex CLI | Ask, or $kpow-lag-triage; /skills lists them |
| GitHub Copilot | Ask, or /kpow-lag-triage |
| Others | Ask; the agent matches the question to a skill description |
kpow-replay-topic changes committed offsets and runs only when named.
Models
A skill's answer is only as good as the model and the context it gets. These skills supply most of the context: a script does the collection and returns one JSON document, the rules say how to read it, and the output skeleton fixes the shape of the answer. The model's job is to apply stated rules to a small document, so a mid-tier, lower-cost model is usually enough.
| Use | Pick |
|---|---|
| Day-to-day questions: overview, health, lag, connectors | A mid-tier model, such as Claude Sonnet or the equivalent from your agent's vendor |
| Lineage across many clusters, or diagnosing an unclear failure | A frontier model, such as Claude Opus |
| Replaying a topic | Any model: the plan is built by a script and shown before anything changes |
Small and local models may skip steps or drift from the output skeleton. Check their first few answers against the Kpow UI before relying on them.
Skills
| Skill | Ask it |
|---|---|
kpow-topic-overview | "Five biggest topics?" "Tell me about topic X." "Which topics are idle?" |
kpow-consumer-health | "Is group X healthy?" "Is X keeping up?" |
kpow-lag-triage | "Which consumers are behind or imbalanced?" |
kpow-why-no-data | "Why isn't service S getting data from topic T?" |
kpow-connect-status | "Are my connectors healthy?" "Why did X fail?" |
kpow-lineage | "Where does topic X come from, who uses it?" "Map my replication." |
kpow-replay-topic | "Replay topic T for group G from the beginning." |
kpow-replay-topic plans before it acts and shows the plan first.
What a run looks like
The agent runs the skill's collect.sh, which makes a handful of fh calls
and returns one JSON document. It applies the skill's rules to that document
and writes the report in the skill's fixed skeleton, ending with a single
verdict (healthy, slow, stalled, not running, hot partition) and
the evidence for it. Nothing is changed unless you asked for a change.