Agent skill

Diagnose Integration Failure

by adamayoung in adamayoung/TMDb

Diagnose a failing TMDb integration-test run — summarise the failure, rank the likely cause, and suggest a concrete fix

Apache-2.0Auto-check passedTesting & QA

Install Diagnose Integration Failure

skills CLI
$ npx skills add adamayoung/TMDb --skill diagnose-integration-failure -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install adamayoung/TMDb diagnose-integration-failure --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/adamayoung/TMDb.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/diagnose-integration-failure .claude/skills/diagnose-integration-failure && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
diagnose-integration-failure
GitHub stars
178
Token cost
~2.1k tokens
SKILL.md length
1,221 words
Files
1
Skills in repo
18
Repo updated
First seen
Licence
Apache-2.0

At a glance

Diagnose a failing TMDb integration-test run — summarise the failure, rank the likely cause, and suggest a concrete fix

  • Works in 5 steps: Observe before you theorise. The log… → Every such cause carries an observed:… → Only causes 1 and 2 can be observed. A… → …
  • Tasks that involve Integration testing
  • SKILL.md covers Agent Behaviour Contract and Steps
  • Calls gh, jq and git; reaches developer.themoviedb.org; needs TMDB_API_KEY

What it does

Diagnose Integration Failure is an agent skill from adamayoung/TMDb. Diagnose a failing TMDb integration-test run — summarise the failure, rank the likely cause, and suggest a concrete fix

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Integration testing. The repository describes itself as: The Movie Database Swift Package. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Integration testing

Example prompts

  • “/diagnose-integration-failure”

Requirements

  • A credential in TMDB_API_KEY

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Observe before you theorise. The log tells you what broke; only a live
  2. Every such cause carries an observed: line naming the tool called and
  3. Only causes 1 and 2 can be observed. A transient/rate-limit (cause 3) and
  4. Never publish a secret. An observed: line records the **tool and the
  5. Headless runs cannot probe. The scheduled integration-failure.yml job

What it can do on your machine

Read from SKILL.md and the folder at commit a3f1311. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • jq
    • git
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • developer.themoviedb.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • TMDB_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Diagnose Integration Failure loads about 2.1k tokens when it runs. Until then it costs about 37 tokens; SKILL.md has 1,221 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~37
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from adamayoung/TMDb at commit a3f1311, republished under its Apache-2.0 licence (© adamayoung). 1,221 words, ~2,145 tokens.

Download SKILL.mdSave it as .claude/skills/diagnose-integration-failure/SKILL.md (or your agent's skills folder).
name
diagnose-integration-failure
description
Diagnose a failing TMDb integration-test run — summarise the failure, rank the likely cause, and suggest a concrete fix

Diagnose an integration-test failure

The TMDb integration tests hit the live TMDb API. The suite runs on three triggers — pull_request / push (where it gates the change) and schedule (the weekly live-API canary). Which run failed flips the most likely cause, so determine the trigger first (step 0):

  • PR / push-triggered → this run is the gate for a code change, so a regression in the diff is a real candidate — weigh it alongside backend/data drift. This is the common case when invoked from /watch-pr or /fix-pr-checks.
  • Scheduled → no code changed, so a regression is unlikely; the cause is almost certainly a backend change, drifted test data, or a transient error.

Wrong suite? If a CI check failed instead (lint, markdown, build, or unit tests from ci.yml), use /diagnose-ci-failure. That one leads with the opposite assumption: a CI failure is almost always caused by the change under review.

Agent Behaviour Contract

Do these by default, without being reminded.

  1. Observe before you theorise. The log tells you what broke; only a live call tells you what the API returns today. So a cause that claims the API changed shape, or that a test's baseline drifted, must be backed by a live observation — mcp__tmdb__* (CLAUDE.md's standing instruction).
  2. Every such cause carries an observed: line naming the tool called and the shape that came back. A cause with no observed: line is not reportable as ranked — demote it and mark it unverified. This is what makes the rule checkable by the consumer instead of trusting the diagnostician.
  3. Only causes 1 and 2 can be observed. A transient/rate-limit (cause 3) and an in-diff regression (cause 0) cannot be confirmed by a live call — the endpoint being healthy now says nothing about either. Do not manufacture an observed: line for them; the requirement does not apply.
  4. Never publish a secret. An observed: line records the tool and the shape, never a URL, command, or header carrying TMDB_API_KEY. TMDb takes api_key as a query item, so a pasted curl leaks it — and this analysis is published verbatim into an issue on a public repo. Say mcp__tmdb__movie_details(550) → runtime: Int, present, not the command.
  5. Headless runs cannot probe. The scheduled integration-failure.yml job mounts no MCP. There, write observed: unavailable (headless) and mark the cause unverified — do not fall back to curl, which would put the key in the text (rule 4). Attended runs have the MCP; use it.

Produce a concise markdown analysis with exactly these three sections:

Summary: one or two sentences on what failed — name the failing suite/test where visible.

Likely cause: the most probable root cause, ranked most-likely first — ranked by the trigger (step 0). Each cause 1 or 2 carries its observed: line, or is marked unverified:

  • If PR / push-triggered, add as a top candidate:
    1. A regression in the changed code — read the diff (git diff main...HEAD). A new/renamed request path or query item, a changed model/CodingKeys, or a decoder tweak can break a live call. This run is the gate, so the diff is a prime suspect — but still weigh causes 1–3 below, since the live API can drift independently of your change.
  • If scheduled, do NOT lead with "a code bug" (nothing changed); go straight to 1–3.
  1. A TMDb backend change — a response field was added, removed, renamed, or became nullable, breaking a model's Decodable. Call the endpoint via mcp__tmdb__* and record what came back (observed:); confirm against the OpenAPI spec (see step 3) for the documented shape.
  2. Stale assumed data in an integration test — the test asserts a specific live value (a title, count, id, date, or ordering) that the API now returns differently. The code is fine; the test's baseline has drifted. Fetch the value the test asserts and record it (observed:) — drift is only a fact once you have seen today's value.
  3. A transient API error, rate limiting (HTTP 429), or a timeout — the Integration Test job has a 30-minute timeout-minutes, and a cancelled (timed-out) run still surfaces as a workflow failure. A truncated log with no assertion failure, or a run that ran the full 30 minutes, points here.

Cite the specific HTTP status codes, error messages, or failing assertions from the log that point to your conclusion.

Suggested fix: the concrete next step — which Swift model or JSON fixture to update for an API change, which integration-test assertion to relax or refresh for drifted data, or (only for case 3) re-run the job / wait out rate limiting / investigate the slow run if it timed out.

Keep it under ~150 words.

Show full SKILL.md (462 more words)Show less

Steps

  1. Determine the trigger (it sets the cause ranking above). If the caller told you (e.g. /watch-pr / /fix-pr-checks diagnose a PR run), use that. Otherwise read it from the run with mcp__github__actions_get method get_workflow_run (owner/repo from the origin remote, resource_id: <id>) → event is pull_request, push, or schedule (headless / no MCP: gh run view <id> --json event,displayTitle). If you can't tell, assume PR/push when a local diff vs main exists, else scheduled.

  2. Locate the failure log, in this order — use the first that exists:

    • A path the caller handed you (e.g. failure-log.txt in the working directory, used by the CI alert workflow).
    • .build/last-integration-test.log — written by the /integration-test skill. If you (or the user) haven't run the tests yet locally, run /integration-test first, then read this log.
    • Otherwise, find the failing run with the GitHub MCP (owner/repo from origin): mcp__github__actions_list method list_workflow_runs (resource_id: integration.yml, workflow_runs_filter: { status: completed }, then filter to conclusion == "failure"), and read its log with mcp__github__get_job_logs (run_id: <id>, failed_only: true, return_content: true). Headless / no MCP: gh run list --workflow Integration --status failure --limit 1 then gh run view <id> --log-failed.
  3. Read the failing portion — focus on the assertion failures and error messages, which surface near the end. Read the specific test, model, and fixture files the log points to so your suggested fix names real symbols.

  4. Check the OpenAPI spec when the failure looks like a decode/shape error. The live spec is the source of truth for the current response shape, but it is ~3 MB of minified JSON on a single line — NEVER grep, cat, or Read it whole; that dumps the entire file into context. Extract only the one endpoint you need with jq (requires jq, which is present in CI and installable via Homebrew locally; if jq is unavailable, skip this step and say so):

    • Use tmdb-openapi.json in the working directory if present; otherwise fetch it (best-effort): curl -fsSL --max-time 30 https://developer.themoviedb.org/openapi/tmdb-api.json -o tmdb-openapi.json
    • The spec is OpenAPI 3.1 with response schemas inlined per endpoint (there is no reusable components.schemas). Find the endpoint, then pull just its 200-response schema:
      • List endpoints (cheap, ~5 KB): jq -r '.paths | keys[]' tmdb-openapi.json
      • Pull one schema (~5 KB): jq '.paths."/3/movie/{movie_id}".get.responses."200".content."application/json".schema' tmdb-openapi.json (swap in the path + HTTP method for the failing request)
      • Even cheaper, just the field names: … .schema.properties | keys[]
    • Compare the live schema against the failing model/fixture to confirm whether a field changed, became nullable, or was removed — then point at the specific Swift model or JSON fixture that needs updating.
    • If the spec can't be fetched or jq is unavailable, say so and proceed without it.
  5. Output the analysis. If the caller asked you to write it to a file (e.g. claude-analysis.md), write the three-section markdown there and nothing else. Otherwise present it directly in your reply.

© adamayoung, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/diagnose-integration-failure of adamayoung/TMDb.

Open the folder on GitHubat commit a3f1311

Compare with similar skills

Diagnose Integration Failure next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Diagnose Integration Failure compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Diagnose Integration Failure this skilladamayoung/TMDb178—~2.1kAutomated safety check: PassApache-2.0
Plugin Testingpolyipseity/obsidian-terminal951—~828Automated safety check: PassAGPL-3.0
Create Modulecartography-cncf/cartography4.1k—~2.5kAutomated safety check: PassApache-2.0
Td Integration Testmarcus/td251—~1.2kAutomated safety check: PassMIT
Integration E2E Testingshinpr/claude-code-workflows694—~3.5kAutomated safety check: PassMIT
JS-in-HTML Testingliaohch3/claude-tap3.3k—~924Automated safety check: PassMIT

Similar skills

  • Plugin Testing

    polyipseity/obsidian-terminal

    Skill for testing Obsidian plugin features in this repository.

    951 GitHub stars~828 tokensUpdated 7 days ago
    Testing & QAAuto-check passed
  • Create Module

    cartography-cncf/cartography

    Author a new Cartography intel module end-to-end (entry point, sync GET/TRANSFORM/LOAD/CLEANUP, declarative data model, integration test, schema docs).

    4.1k GitHub stars~2.5k tokensUpdated today
    Testing & QAAuto-check passed
  • Write integration tests for the td-sync admin API using the TestHarness in internal/api/testharnesstest.go.

    251 GitHub stars~1.2k tokensUpdated 10 days ago
    Testing & QAAuto-check passed
  • Integration E2E Testing

    shinpr/claude-code-workflows

    Integration and E2E test design principles, ROI calculation, test skeleton specification, and review criteria.

    694 GitHub stars~3.5k tokensUpdated 9 days ago
    Testing & QAAuto-check passed
  • JS-in-HTML Testing

    liaohch3/claude-tap

    Tests JavaScript embedded in an HTML file in two layers: pytest checks of the logic ported to Python, and Playwright runs in a real browser for the DOM.

    3.3k GitHub stars~924 tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Add Acceptance Test

    talkincode/toughradius

    Write CI-executable acceptance/integration tests for protocol or end-to-end changes (TR-F022).

    691 GitHub stars~827 tokensUpdated 2 days ago
    Testing & QAAuto-check passed

More from adamayoung/TMDb

All 18 skills in this repo
  • Writes and maintains DocC /// comments for the public API of the TMDb Swift package, following the project's summary patterns and comment structure.

    178 GitHub stars~2.6k tokensUpdated 7 days ago
    Auto-check passed
  • Diagnoses a failing scheduled TMDb Integration run, re-runs transient failures, and fixes real API drift on its own branch with a PR, merging it only when told to.

    178 GitHub stars~2.7k tokensUpdated 7 days ago
    Auto-check passed
  • Drives an approved plan to completion test-first, deriving a Canon TDD test list, showing it before any code and stopping only when every item is written, passing and green.

    178 GitHub stars~4.5k tokensUpdated 7 days ago
    Auto-check passed
  • TMDb Backlog Triager

    adamayoung/TMDb

    Grooms the Backlog column of a GitHub project board by re-verifying each issue against current main, closing dead ones, promoting actionable ones to Ready and naming the decision the rest need.

    178 GitHub stars~5k tokensUpdated 7 days ago
    Auto-check passed
  • Canon TDD Workflow

    adamayoung/TMDb

    Has your agent build features and fix bugs in Canon TDD order: write a test list, then one failing test, make it pass, refactor, and repeat until the list is empty.

    178 GitHub stars~1.3k tokensUpdated 7 days ago
    Auto-check passed
  • Capture Knowledge

    adamayoung/TMDb

    Records non-obvious lessons from a finished task, such as gotchas, API quirks and design decisions, into a project's knowledge folder before a pull request opens.

    178 GitHub stars~2.3k tokensUpdated 7 days ago
    Auto-check passed

Categories

Questions about Diagnose Integration Failure

What does Diagnose Integration Failure do?

Diagnose a failing TMDb integration-test run — summarise the failure, rank the likely cause, and suggest a concrete fix. Diagnose Integration Failure is an agent skill from adamayoung/TMDb.

When should I use Diagnose Integration Failure?

Diagnose Integration Failure fits situations like: tasks that involve Integration testing.

How do I install Diagnose Integration Failure in Claude Code?

Run `npx skills add adamayoung/TMDb --skill diagnose-integration-failure -a claude-code`. Or copy the skill folder (.claude/skills/diagnose-integration-failure in adamayoung/TMDb) into .claude/skills/diagnose-integration-failure in your project. Claude Code loads it when a task matches its description.

How do I install Diagnose Integration Failure in Codex?

Run `npx skills add adamayoung/TMDb --skill diagnose-integration-failure -a codex`. Or copy the skill folder (.claude/skills/diagnose-integration-failure in adamayoung/TMDb) into .agents/skills/diagnose-integration-failure in your project. Codex loads it when a task matches its description.

Can I use Diagnose Integration Failure in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add adamayoung/TMDb --skill diagnose-integration-failure -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/diagnose-integration-failure, .gemini/skills/diagnose-integration-failure, .github/skills/diagnose-integration-failure and .opencode/skills/diagnose-integration-failure in your project.

What does Diagnose Integration Failure need to run?

Going by SKILL.md and its folder, Diagnose Integration Failure needs the command-line tools its instructions call (gh, jq, git and curl) and credentials named TMDB_API_KEY. Our summary lists: A credential in TMDB_API_KEY.

Does Diagnose Integration Failure access the network?

SKILL.md names 1 domain. In commands or code: developer.themoviedb.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Diagnose Integration Failure safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Diagnose Integration Failure use?

Diagnose Integration Failure is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Diagnose Integration Failure use?

About 2.1k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Diagnose Integration Failure?

Skills that share tags, products or a category with Diagnose Integration Failure: Plugin Testing (polyipseity/obsidian-terminal, 951 stars), Create Module (cartography-cncf/cartography, 4.1k stars), Td Integration Test (marcus/td, 251 stars) and Integration E2E Testing (shinpr/claude-code-workflows, 694 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Diagnose Integration Failure?

adamayoung (a GitHub user) maintains it in adamayoung/TMDb, which has 178 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 3, 2026.

Source: adamayoung/TMDb on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.