agentleFS
metaspartanmetaspartan/cybara/skills/api-debug/SKILL.md

api-debug

Skill38 starsChanged 5 months agoMITView on GitHub

Debug REST, GraphQL, webhook, and OAuth/API-key integrations with layered request, auth, schema, and response checks.

  • Sends data out

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use this when an API returns the wrong status/body, auth fails, a webhook does not arrive, pagination is suspicious, GraphQL returns …

    line 9
  2. Very specific:

    Use curl for the smallest repro.

    line 25
  3. Very specific:

    If errors exists, debug query shape and permissions even when the HTTP status is 200.

    line 53
  4. Distinctive:

    Verify signature over the exact raw bytes, not a reserialized JSON object.

    line 76
  5. Distinctive:

    Check timestamp skew and replay windows.

    line 77

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

API Debug

Use this when an API returns the wrong status/body, auth fails, a webhook does not arrive, pagination is suspicious, GraphQL returns errors, or code works in one client but not another.

Principle

Isolate the failing layer before changing code:

  1. Connectivity
  2. TLS and proxy behavior
  3. Authentication
  4. Request shape
  5. Response parsing
  6. Semantic correctness
  7. Retry, timeout, and rate-limit behavior

REST Checks

Use curl for the smallest repro. Keep tokens in environment variables and never paste full secrets into chat or logs.

curl -v --connect-timeout 5 https://api.example.com/health
curl -sS -D /tmp/headers.txt -o /tmp/body.json https://api.example.com/resource
python3 -m json.tool /tmp/body.json

For JSON POSTs:

curl -sS -v -X POST "$URL" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  --data '{"key":"value"}'

GraphQL Checks

GraphQL failures often return HTTP 200. Always inspect errors.

curl -sS -X POST "$GRAPHQL_URL" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  --data '{"query":"{ viewer { id } }"}' | python3 -m json.tool

If errors exists, debug query shape and permissions even when the HTTP status is 200.

Auth Checks

  • Confirm scheme: Bearer, Basic, Token, X-Api-Key, signed request, OAuth cookie.
  • Confirm environment: staging token against staging host.
  • Confirm expiry for JWTs without printing the full token:
python3 - <<'PY'
import base64, json, os, time
tok = os.environ["TOKEN"]
payload = tok.split(".")[1]
payload += "=" * (-len(payload) % 4)
data = json.loads(base64.urlsafe_b64decode(payload))
print({k: data.get(k) for k in ("iss", "aud", "sub", "exp")})
print("expired:", data.get("exp", 0) < time.time())
PY

Webhooks

  • Capture raw request body and headers before parsing.
  • Verify signature over the exact raw bytes, not a reserialized JSON object.
  • Check timestamp skew and replay windows.
  • Store a failing fixture and make a regression test for signature parsing.

Fix Criteria

A fix is done only when:

  • A minimal repro fails before and passes after.
  • The code has bounded timeouts and safe retry behavior.
  • Pagination and rate limits are handled explicitly.
  • Error messages include status/request IDs without leaking secrets.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.