Borrowing it
Nothing to install: this file belongs to bredmond1019/claude-sdk-rs. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/bredmond1019/claude-sdk-rs/main/.claude/commands/test_crud_api.mdgit clone --depth 1 https://github.com/bredmond1019/claude-sdk-rsWrote 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/bredmond1019/claude-sdk-rs/test_crud_api)<a href="https://agentmods.dev/commands/bredmond1019/claude-sdk-rs/test_crud_api"><img src="https://agentmods.dev/badge/commands/bredmond1019/claude-sdk-rs/test_crud_api/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/bredmond1019/claude-sdk-rs/test_crud_api"><img src="https://agentmods.dev/badge/commands/bredmond1019/claude-sdk-rs/test_crud_api.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.00000 | $0.00776 |
| Opus 5.5 | $0.00000 | $0.00310 |
| Sonnet 5.5 | $0.00000 | $0.00155 |
| Haiku 4.5 | $0.00000 | $0.00078 |
Grade A, and why
test_crud_api 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 11d 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 — 133 lines — stays where its author put it; the contents beside it link to each section on GitHub.
E2E Template — CRUD API
Test create / read / update / delete against a REST API endpoint. Adapt for FastAPI, Express,
Rails, or any HTTP backend. Replace all {{PLACEHOLDER}} tokens before running.
Setup
- Base URL:
{{BASE_URL}}(e.g.http://localhost:8000) - Resource:
{{RESOURCE}}(e.g.users,posts,items) - Auth: Bearer token
{{AUTH_TOKEN}}(or remove theAuthorizationheader if the endpoint is public)
Test Cases
1. Create (POST) — happy path
POST {{BASE_URL}}/{{RESOURCE}}
Authorization: Bearer {{AUTH_TOKEN}}
Content-Type: application/json
{
"{{FIELD_NAME}}": "{{TEST_VALUE}}"
}
Assert:
- Status:
201 Created - Response body contains a generated
idfield. - Response body echoes back the submitted
{{FIELD_NAME}}.
Store the returned id as CREATED_ID for subsequent steps.
2. Read (GET) — fetch the created resource
GET {{BASE_URL}}/{{RESOURCE}}/{{CREATED_ID}}
Authorization: Bearer {{AUTH_TOKEN}}
Assert:
- Status:
200 OK - Body
id==CREATED_ID. - Body
{{FIELD_NAME}}matches what was submitted in step 1.
3. Update (PUT/PATCH) — mutate a field
PATCH {{BASE_URL}}/{{RESOURCE}}/{{CREATED_ID}}
Authorization: Bearer {{AUTH_TOKEN}}
Content-Type: application/json
{
"{{FIELD_NAME}}": "{{UPDATED_VALUE}}"
}
Assert:
- Status:
200 OK - Body
{{FIELD_NAME}}=={{UPDATED_VALUE}}.
4. Delete (DELETE)
DELETE {{BASE_URL}}/{{RESOURCE}}/{{CREATED_ID}}
Authorization: Bearer {{AUTH_TOKEN}}
Assert:
- Status:
204 No Content(or200 OK).
Confirm deletion:
GET {{BASE_URL}}/{{RESOURCE}}/{{CREATED_ID}}
Authorization: Bearer {{AUTH_TOKEN}}
Assert:
- Status:
404 Not Found.
5. Validation error — missing required field
POST {{BASE_URL}}/{{RESOURCE}}
Authorization: Bearer {{AUTH_TOKEN}}
Content-Type: application/json
{}
Assert:
- Status:
422 Unprocessable Entity(or400 Bad Request). - Response body includes a human-readable error referencing
{{FIELD_NAME}}. - No resource is created (follow-up GET to list endpoint returns same count).
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.
- 11d ago First seen · 133 lines · 0 tokens per session scan A 8d57ef6e1c3c
test_crud_api is a command published in the GitHub repository bredmond1019/claude-sdk-rs (23 stars, last pushed 1mo ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 776 tokens. 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-10-26.
test_crud_api compared with commands from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| test_crud_apibredmond1019/claude-sdk-rs | Command | 23 | 1mo ago | Apache-2.0 | A | 0 | Claude Code |
| cloudflare-durable-objects:setupsecondsky/claude-skills | Command | 245 | 6d ago | MIT | A | 32 | Claude Code |
| api-runtime-verifyMozurok/fhorja.dev | Command | 10 | 28d ago | MIT | A | 0 | Claude Code |
| testiwritec0de/app-dev | Command | 3 | 6mo ago | MIT | A | 6 | Claude Code |
| runtime-validateaself101/agents-and-pipelines | Command | 54 | 3mo ago | none | A | 29 | Claude Code |
| state-validateaself101/agents-and-pipelines | Command | 54 | 3mo ago | none | A | 33 | Claude Code |
| run-load-testjeremylongshore/plugins-nixtla | Command | 11 | 23d ago | none | B | 19 | Claude Code |