Skip to main content

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.

AgentCommandInstalls to
Claude Codefh skills install --agent claude~/.claude/skills
Codex CLIfh skills install~/.agents/skills
GitHub Copilot (VS Code, CLI, cloud agent)fh skills install~/.agents/skills
Cursor, Gemini CLI, OpenCode, Goose, Amp, Windsurffh skills install~/.agents/skills
Kirofh skills install --dir ~/.kiro/skills~/.kiro/skills
One repository, any agentfh 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.

AgentInvoke
Claude CodeAsk, or /kpow-lag-triage
Codex CLIAsk, or $kpow-lag-triage; /skills lists them
GitHub CopilotAsk, or /kpow-lag-triage
OthersAsk; 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.

UsePick
Day-to-day questions: overview, health, lag, connectorsA mid-tier model, such as Claude Sonnet or the equivalent from your agent's vendor
Lineage across many clusters, or diagnosing an unclear failureA frontier model, such as Claude Opus
Replaying a topicAny 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​

SkillAsk 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.