hoop: Skill for Claude Code

.claude/skills/support-agent/SKILL.md

support-agent is a skill for Claude Code from hoophq/hoop. It costs 62 tokens per session (1,918 once invoked), scanned A, original, MIT.

An automated support worker that handles one Linear ticket at a time, using Linear for work tracking and Slack for communication. It can answer, shape, or build a response and continue when someone replies.

In plain words
What is it for?
Use it to pick support tickets, ask questions in Slack or Linear when blocked, make requested changes, and prepare end-of-day summaries.
Why use it?
It lets support work continue on a schedule without someone watching each run, while recording which messages were written by an AI.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is hoophq/hoop's own configuration. It tells Claude Code how to work on hoop itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything hoop configures →

Reuse

Borrowing it

Nothing to install: this file belongs to hoophq/hoop. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/hoophq/hoop/main/.claude/skills/support-agent/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/hoophq/hoop

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for support-agent

README.md
[![agentmods](https://agentmods.dev/badge/skills/hoophq/hoop/support-agent/github.svg)](https://agentmods.dev/skills/hoophq/hoop/support-agent)
Your own site
<a href="https://agentmods.dev/skills/hoophq/hoop/support-agent"><img src="https://agentmods.dev/badge/skills/hoophq/hoop/support-agent/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for support-agent

Your own site · 80×15
<a href="https://agentmods.dev/skills/hoophq/hoop/support-agent"><img src="https://agentmods.dev/badge/skills/hoophq/hoop/support-agent.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 62 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,918 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00062 $0.01918
Opus 5.5 $0.00025 $0.00767
Sonnet 5.5 $0.00012 $0.00384
Haiku 4.5 $0.00006 $0.00192

Measured 3d ago against content hash 7c6b529bff57, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

support-agent scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/support-agent/SKILL.md · 170 lines

How it starts

The opening of the file, as written. The whole thing — 170 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Support agent

A scheduled task starts this skill in a cloud session, hourly; .claude/README.md has the setup. No person reads the session while it runs. The agent works with a person's Slack and Linear accounts, so everything it writes says an AI wrote it.

Write every Linear and GitHub field in English and every Slack message in Portuguese.

0. Preconditions

Stop at once, with the reason as your final message, when one is false:

  • HOOP_AGENT, HOOP_AGENT_OWNER, HOOP_AGENT_SLACK_CHANNEL and HOOP_AGENT_MODE (spec or build) are set.
  • The Linear and Slack tools answer.

Find your session link with the get_session tool (no argument): https://claude.ai/code/<id>. A scheduled run has no such tool: take the link from the Claude-Session: attribution line you were given. Every text you write carries it.

With the argument digest, go to step 7.

1. Pick one ticket

Read these in order and take the first ticket you find. One ticket per run.

First, every run and outside that limit: Released. For each ticket labeled agent:pr-open whose PR is merged, find the version that ships it. List the hoop-release releases created after the merge (list_releases). The one whose issues hold the ticket (list_issues with release and label agent:pr-open) is that version. Linear creates it once the artifacts are out, about 80 minutes after the merge, and versions can land out of order. Comment the version, its GitHub release (https://github.com/hoophq/hoop/releases/tag/<version>) and the PR, and mention the ticket creator. Replace agent:pr-open with agent:released. None holds it yet: look again next run.

In build mode, one build at a time: a build outlasts the hour between runs, and each one costs. When a ticket holds agent:working and is not a stale claim (below), end the run with "busy: ". Post nothing.

  1. Answered: a ticket labeled agent:needs-info or agent:needs-customer with a human reply newer than your last question. Look at its Linear comments and at its Slack thread (the link attached to the ticket).
  2. Reviewed: a ticket labeled agent:pr-open whose PR has a review thread or a red check left without your answer for an hour, or is still a draft with CI green. The session that built it did not wake. Address it as build-ticket autonomous mode says, then label it agent:pr-open again.
  3. Asked for: a ticket labeled agent:go, or a message in HOOP_AGENT_SLACK_CHANNEL that names a ticket ID and does not start with 🤖. Add agent:go to that ticket.
  4. New: label Support, status Todo, no assignee, no agent:* label. Oldest first.

Read the full file on GitHub · 170 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 170 lines · 62 tokens per session scan A 7c6b529bff57

Subscribe to this mod's changes

support-agent is a skill published in the GitHub repository hoophq/hoop (837 stars, last pushed today), licensed MIT. It adds 62 tokens to every session and 1,918 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-24.

Related

Other skills, from other repositories

stale-sweep

Sweep the googleapis/mcp-toolbox repo for issues and PRs with no real activity in N days (default 60), sort each by whose silence it is (the author's, ours, or nobody's), and draft the nudge or close comment. Use whenever a maintainer asks for a stale sweep, backlog cleanup, or an SLO check, e.g. "stale sweep", "find…

googleapis/mcp-toolbox · 159 tokens

linear-tickets

Create or update high-quality Linear tickets while preserving the originating report, diagnostic links, attachments, and reporter/requester attribution. Read this whenever someone asks to create, recreate, or update a Linear issue.

langchain-ai/open-swe · 44 tokens

imaging-data-commons

Query and download public cancer imaging data from NCI Imaging Data Commons using idc-index. Use for accessing large-scale radiology (CT, MR, PET) and pathology datasets for AI training or research. No authentication required. Query by metadata, visualize in browser, check licenses.

synthetic-sciences/openscience · 62 tokens

geo-database

Access NCBI GEO for gene expression/genomics data. Search/download microarray and RNA-seq datasets (GSE, GSM, GPL), retrieve SOFT/Matrix files, for transcriptomics and expression analysis.

synthetic-sciences/openscience · 47 tokens

brenda-database

Access BRENDA enzyme database via SOAP API. Retrieve kinetic parameters (Km, kcat), reaction equations, organism data, and substrate-specific enzyme information for biochemical research and metabolic pathway analysis.

synthetic-sciences/openscience · 43 tokens

clinpgx-database

Access ClinPGx pharmacogenomics data (successor to PharmGKB). Query gene-drug interactions, CPIC guidelines, allele functions, for precision medicine and genotype-guided dosing decisions.

synthetic-sciences/openscience · 45 tokens