{
  "skill": {
    "id": "api-debugging",
    "name": "api-debugging",
    "description": "Use when APIs fail, models do not route correctly, credentials are missing, or you need a systematic path to isolate provider and transport problems.",
    "path": "skills/dev/api-debugging/SKILL.md",
    "tags": [
      "debugging",
      "api",
      "auth",
      "providers",
      "reliability"
    ]
  },
  "document": {
    "path": "skills/dev/api-debugging/SKILL.md",
    "frontmatter": {
      "name": "api-debugging",
      "description": "Use when APIs fail, models do not route correctly, credentials are missing, or you need a systematic path to isolate provider and transport problems.",
      "version": "0.1.0",
      "author": "Hermes Agent",
      "license": "private",
      "metadata": {
        "hermes": {
          "tags": [
            "debugging",
            "api",
            "auth",
            "providers",
            "reliability"
          ],
          "related_skills": [
            "internal-deep-research"
          ]
        }
      }
    },
    "content": "---\nname: api-debugging\ndescription: Use when APIs fail, models do not route correctly, credentials are missing, or you need a systematic path to isolate provider and transport problems.\nversion: 0.1.0\nauthor: Hermes Agent\nlicense: private\nmetadata:\n  hermes:\n    tags: [debugging, api, auth, providers, reliability]\n    related_skills: [internal-deep-research]\n---\n\n# API Debugging\n\n## Overview\n\nUse this skill for provider failures, authentication problems, routing mistakes, or flaky integrations. The aim is to isolate the failure layer quickly: credentials, endpoint, transport, model name, network, or downstream API behavior.\n\n## When to Use\n\n- A model call fails unexpectedly\n- A provider is authenticated but requests still fail\n- A fallback chain is not behaving as expected\n- An API returns 401, 403, 429, 5xx, or malformed responses\n- You need a reproducible debug trail\n\n## Workflow\n\n1. Reproduce the failure with the smallest possible request.\n2. Check credentials and environment variables.\n3. Verify provider name, model name, base URL, and transport.\n4. Compare primary and fallback behavior.\n5. Inspect logs for the exact failure layer.\n6. Narrow the issue to auth, rate limit, schema, network, or application logic.\n7. Retest after each change.\n\n## Debug Notes\n\nCapture:\n\n- provider name\n- model name\n- request shape\n- endpoint/base URL\n- auth source\n- exact error text\n- timestamp and environment\n\n## Common Pitfalls\n\n1. **Changing multiple variables at once.** Only change one thing per test.\n2. **Assuming credentials exist.** Check the actual environment.\n3. **Confusing provider failure with model failure.** Many issues are routing or auth related.\n4. **Skipping logs.** The exact error text is often the fastest clue.\n\n## Verification Checklist\n\n- [ ] Failure reproduced minimally\n- [ ] Auth and env checked\n- [ ] Provider/model/base URL verified\n- [ ] Logs inspected for exact error\n- [ ] Fix validated with a repeat request\n"
  }
}