Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/gszhangwei/open-spddnpx agentmods add commands/gszhangwei/open-spdd/spdd-api-testWrote 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/commands/gszhangwei/open-spdd/spdd-api-test)<a href="https://agentmods.dev/commands/gszhangwei/open-spdd/spdd-api-test"><img src="https://agentmods.dev/badge/commands/gszhangwei/open-spdd/spdd-api-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/commands/gszhangwei/open-spdd/spdd-api-test"><img src="https://agentmods.dev/badge/commands/gszhangwei/open-spdd/spdd-api-test.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00026 | $0.06698 |
| Opus 5.5 | $0.00010 | $0.02679 |
| Sonnet 5.5 | $0.00005 | $0.01340 |
| Haiku 4.5 | $0.00003 | $0.00670 |
Grade A, and why
/spdd-api-test scanned grade A with 1 finding 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 1mo 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
# - No external dependencies (no jq, only curl and bash) How it starts
The opening of the file, as written. The whole thing — 657 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Generate a comprehensive, self-contained shell script (scripts/test-api.sh) with cURL commands to test all API scenarios defined in the codebase or acceptance criteria.
Key Feature: Structured Test Case Tables
The generated script includes human-reviewable test case tables:
- At script top: A structured table showing all test scenarios, inputs, and expected outputs
- After execution: A results table showing expected vs actual results with pass/fail status
This makes it easy for humans to:
- Review test coverage at a glance
- Verify expected values are correct
- Quickly identify which tests failed and why
Input: The argument after /spdd-api-test is a reference to generated code, acceptance criteria document, or API specification.
Input can be provided in several ways:
- File/folder reference: Using
@to reference files containing API implementations or ACs - Text description: Direct text describing the API endpoints to test
- Combined: Both file references and additional context
Examples:
# Reference to generated code
/spdd-api-test @src/main/java/com/example/controller/BillingController.java
# Reference to acceptance criteria
/spdd-api-test @spdd/prompt/GGQPA-XXX-202603131530-[Feat]-token-usage-billing.md
# Reference to multiple files
/spdd-api-test @src/controllers/ @requirements/api-spec.md
# With additional context
/spdd-api-test @src/api/ test the billing endpoints with edge cases for zero tokens
Steps
-
Validate and consolidate input context
a. If no input provided, use the AskUserQuestion tool (open-ended, no preset options) to ask:
"Please provide the API implementation files, acceptance criteria, or API specification to generate tests for (you can use @file references or text description)."
IMPORTANT: Do NOT proceed without input context.
b. If input contains
@file/folder references:- Read ALL referenced files completely using the Read tool
- For folder references, read all relevant API-related files (controllers, routes, handlers)
- Consolidate all file contents into a unified API context
c. Extract API information:
- Identify all API endpoints (HTTP method, path, request body schema)
- Extract acceptance criteria and expected behaviors
- Identify validation rules and error scenarios
- Note any seed data or test data requirements
-
Identify seed data and test fixtures
a. Search for existing seed data:
- Look for seed SQL files, fixtures, or test data in common locations:
src/main/resources/db/migration/src/test/resources/fixtures/seed/scripts/seed*.sql
- Read relevant seed files to understand available test data
b. Document available test entities:
- Customer IDs, names, and states
- Plan IDs, pricing configurations
- Quota configurations and limits
- Any other domain-specific test data
c. If no seed data found, derive test data from:
- Entity definitions in the codebase
- Example values in acceptance criteria
- Common test data patterns
- Look for seed SQL files, fixtures, or test data in common locations:
-
Design structured test case tables
Before generating the script, organize test cases into logical tables by test pattern.
Group tests by their input/output structure:
a. Validation Error Tests (expect HTTP 400/404):
| Test ID | Description | Customer | Model | Prompt | Completion | HTTP | Expected Error | |---------|--------------------------|--------------|------------|--------|------------|------|--------------------------| | AC1.1 | Missing modelId | CUST-001 | (missing) | 1000 | 500 | 400 | Model ID is required | | AC1.2 | Missing customerId | (missing) | fast-model | 1000 | 500 | 400 | Customer ID is required | | AC1.6 | Non-existent customer | NON-EXISTENT | fast-model | 1000 | 500 | 404 | Customer not found |
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.
- 1mo ago First seen · 657 lines · 26 tokens per session scan A 1bd87f056a6d
/spdd-api-test is a command published in the GitHub repository gszhangwei/open-spdd (812 stars, last pushed 20d ago), licensed MIT. It adds 26 tokens to every session and 6,698 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
prototype
You are building a proof-of-concept for the current Grainulator sprint. Read CLAUDE.md for sprint context and claims.json for existing research claims.
qa-changes
This skill should be used when the user asks to "QA a pull request", "test PR changes", "verify a PR works", "functionally test changes", or when an automated workflow triggers QA validation of code changes. Provides a structured methodology for setting up the environment, exercising changed behavior, and reporting…
verify
Run repository verification using the verification-loop skill.
constraints
A command for defining a project's quality standards through a short interview and a written CONSTRAINTS.md file. It records checks, thresholds, exceptions, and commands for enforcing them.
modernize-transform
Transform one legacy module to the target stack — idiomatic rewrite with behavior-equivalence tests.
test-coverage
Analyze test coverage and identify the highest-value gaps to fill.