Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add johnqtcg/awesome-skills --skill thirdparty-api-integration-testgit clone --depth 1 https://github.com/johnqtcg/awesome-skillsWrote 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.
[](https://agentmods.dev/skills/johnqtcg/awesome-skills/thirdparty-api-integration-test)<a href="https://agentmods.dev/skills/johnqtcg/awesome-skills/thirdparty-api-integration-test"><img src="https://agentmods.dev/badge/skills/johnqtcg/awesome-skills/thirdparty-api-integration-test/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.
<a href="https://agentmods.dev/skills/johnqtcg/awesome-skills/thirdparty-api-integration-test"><img src="https://agentmods.dev/badge/skills/johnqtcg/awesome-skills/thirdparty-api-integration-test.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00047 | $0.03384 |
| Opus 5 | $0.00023 | $0.01692 |
| Sonnet 5 | $0.00009 | $0.00677 |
| Haiku 4.5 | $0.00005 | $0.00338 |
Grade A, and why
thirdparty-api-integration-test 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 6d 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.
How it starts
The opening of the file, as written. The whole thing — 194 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Third Party API Integration Test
Write Go integration tests for real third-party API calls using explicit run gates, predictable safeguards, and strong contract assertions.
Scope
- Validate external API integration end-to-end with real config and real client.
- Keep tests opt-in by default so normal CI/unit workflows are not blocked.
- Follow the host repository's existing style — its assertion library (
testify/require,testify/assert, or stdlibt.Fatalf), its config loader, and its test-package convention. The examples below usetestify/requireandconfig.MustLoad()as one common shape; mirror what the repo already does rather than importing a new dependency. Clear skip conditions and a bounded timeout are required regardless. - Apply to any third-party API integration.
- Treat vendor examples (MCS/USS/etc.) as templates, not scope limits.
- The NON-NEGOTIABLE parts are the safety gates (run gate, prod/host/account fail-closed checks, destructive gating, bounded budget, ID/URL redaction) — not the choice of assertion or config library.
Scope Validation Gate
Confirm the task targets a third-party vendor API:
- Third-party HTTP or gRPC API client → proceed
- Internal service/handler (own HTTP server) → redirect to
$api-integration-test, STOP - Pure unit test → redirect to
$unit-test, STOP - Full end-to-end browser journey → out of scope, inform user, STOP
Hard stop: If the target is not a third-party vendor API, the entire remaining workflow is skipped. Output only: (1) scope verdict, (2) recommended skill or approach, (3) reason. Do NOT generate test code, do NOT proceed to subsequent gates.
Required Pattern
- Keep file name as
<client>_integration_test.go, in the package the repo uses for tests (same package, or its_testexternal package — match the surrounding convention). Name each integration test function with anIntegrationmarker (e.g.TestStripe_CreateCharge_Integration): the runner refuses to report success unless at least one…Integrationtest actually PASSED, which keeps a plain unit test from masquerading as a passed integration run (override the marker viaVENDOR_TEST_NAME_MATCH). - Add both build constraints at file top (for backward compatibility):
//go:build integration(Go 1.17+)// +build integration(Go <1.17 compat)
- Add explicit run gate env var (example:
THIRDPARTY_INTEGRATION=1or vendor-specific gate), otherwiset.Skip(...). - Validate required runtime env vars up front (
ENV,CONFIG_DIR, the API base URL, the vendor test account, target IDs). When the run gate is set but a required var is missing/empty,t.Fatalf— do NOTt.Skip(see §Skip vs Fail (CI Integrity)). - Block production/live vendor targets by ENV and by resolved host and account (never ENV alone):
- refuse if
ENVisprod/production, OR the base-URL host is not on the explicit sandbox allowlist (VENDOR_SANDBOX_HOSTS), OR the vendor account is not a designated test account (VENDOR_TEST_ACCOUNTS) — unlessINTEGRATION_ALLOW_PROD=1. When the gate is set, this refusal ist.Fatalf, nott.Skip. UserequireVendorIntegration(§Go Implementation Baseline).
- refuse if
- Parse and validate env var payloads:
- Always
strings.TrimSpacebefore comparison or use - Use
strconv.ParseIntfor numeric IDs - Split comma-separated lists and validate each element
- Log only non-sensitive parsed values at
t.Logf; mask identifiers withmaskIDand never log secrets/tokens (raw account/customer/tenant/target IDs are sensitive)
- Always
- Load runtime config via the project's existing config loader (e.g.
config.MustLoad()— use whatever the repo already uses; do not introduce a new config mechanism for the test). - Build real third-party client with production code path.
- Use
context.WithTimeout(...)to prevent hanging requests. - Use bounded retry policy only when justified:
- default: no retry
- if enabled: max 2 retries (3 total attempts), bounded backoff, no infinite loop. Rate-limit (
429/Retry-After) retries count toward this same budget —getHonoringRateLimitis called withmaxRetries=2.
- Execute real API call and assert both:
- protocol-level contract (status/code/required response fields)
- business-level invariant (identifier consistency, semantic constraints)
- For expected failure paths, assert explicit error type/code (not only
require.Error). - Define test data lifecycle explicitly:
- setup source, idempotency key strategy, cleanup or safe reuse policy.
What ships with it
10 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/checklists.md 2.1 KB
- references/common-integration-gate.md 3.8 KB
- references/common-output-contract.md 1.3 KB
- references/go-baseline.md 13 KB
- references/vendor-examples.md 10.0 KB
- scripts/run_regression.sh 575 B runs code
- scripts/run_vendor_integration.sh 8.4 KB runs code
- scripts/tests/COVERAGE.md 7.6 KB
- scripts/tests/test_behavioral_integration.py 44 KB runs code
- scripts/tests/test_skill_contract.py 19 KB runs code
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.
- 6d ago First seen · 194 lines · 47 tokens per session scan A bd00b47d711f
thirdparty-api-integration-test is a skill published in the GitHub repository johnqtcg/awesome-skills (30 stars, last pushed 2d ago), licensed MIT. It adds 47 tokens to every session and 3,384 once invoked, about $0.0002 per session on Opus 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-09-03.
Other skills, from other repositories
verify-implementation
A workflow that runs a project’s verification skills to produce a report on coding patterns, architecture rules, and project conventions. It is intended for work after implementation, before a pull request, or during code review.
verification-engine
Use when verifying build/test/lint before commit, PR, or completion claims. Runs verification pipeline in fresh subagent context with auto-repair. Triggers on /handoff-verify, pre-commit check, build verification, test validation.
eval-harness
Formal evaluation framework for Claude Code sessions implementing eval-driven development (EDD) principles.
dependency-upgrade
Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing breaking changes in libraries.
typescript-sdk
Implement or modify TypeScript SDK behavior in @composio/core or shared TypeScript packages, including tools, toolkits, sessions, auth configs, connected accounts, modifiers, and generated SDK surfaces. Use for TS runtime/API work; pair with typescript-testing for verification and cross-sdk-parity when Python must…
python-sdk
Implement or modify Python SDK behavior under python/composio, including tools, toolkits, sessions, auth configs, connected accounts, client integration, and shared Python models. Use for Python core runtime/API work; pair with python-testing and cross-sdk-parity when TypeScript must match.