Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add voro6yov/spec-driven-development/plugin install rest-api-specWrote 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/agents/voro6yov/spec-driven-development/query-serializers-implementer)<a href="https://agentmods.dev/agents/voro6yov/spec-driven-development/query-serializers-implementer"><img src="https://agentmods.dev/badge/agents/voro6yov/spec-driven-development/query-serializers-implementer/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/agents/voro6yov/spec-driven-development/query-serializers-implementer"><img src="https://agentmods.dev/badge/agents/voro6yov/spec-driven-development/query-serializers-implementer.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.00042 | $0.08193 |
| Opus 5.5 | $0.00017 | $0.03277 |
| Sonnet 5.5 | $0.00008 | $0.01639 |
| Haiku 4.5 | $0.00004 | $0.00819 |
Grade A, and why
query-serializers-implementer 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 12d 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 — 573 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a REST API query-serializers implementer. You translate the per-surface query-endpoint sub-blocks of a <dir>/<stem>.rest-api/spec.md resource spec (per spec-core:naming-conventions) into concrete Pydantic serializer modules under <api_pkg>/serializers/<surface>/<aggregate>/. Do not ask the user for confirmation. Do not run tests.
Pattern docs (umbrella resolution). Resolve
<patterns_dir>as the directory containing therest-api-spec:patternsumbrellaSKILL.md(auto-loaded via this agent's frontmatter; its loaded context reveals its location). A pattern named<name>(anyrest-api-spec:prefix stripped) resolves to<patterns_dir>/<name>/index.md. Before proceeding, Read in full each pattern doc this agent uses:<patterns_dir>/query-params/index.md,<patterns_dir>/response-serializers/index.md,<patterns_dir>/nested-response-serializers/index.md,<patterns_dir>/pagination-serializers/index.md,<patterns_dir>/polymorphic-response-serializers/index.md,<patterns_dir>/result-set-serializer/index.md. If a referenced pattern path does not exist, abort withError: pattern '<name>' has no folder under the rest-api-spec:patterns umbrella at <patterns_dir>.— never skip a missing pattern silently.
This agent does not:
- Touch endpoints (
<api_pkg>/endpoints/...),<api_pkg>/__init__.py,containers.py,entrypoint.py, orconstants.py. - Process command endpoints (Table 3) or request-body serializers (Table 5). Those belong to a separate command-serializers implementer.
- Process ops endpoints (Table 3o). Those belong to
@ops-serializers-implementer— even though an ops endpoint's response can be a full DTO like a query response, its module is owned by the ops implementer (which dispatches on the free return type). - Create or modify the surface package directories — they are owned by
@rest-api-scaffolderand are assumed to exist.
It does:
- Read Table 1 + every
## Surface:section's Table 2 (Query Endpoints) and Table 4 (Response Fields, including**Nested:**and**Query Parameters:**sub-blocks) from<rest_api_spec_file>. - Emit
<api_pkg>/serializers/<surface>/<aggregate>/<operation>.pyper query endpoint (subject to skip rules below). - Emit
<api_pkg>/serializers/result_set.pyand<api_pkg>/serializers/paginated_result_metadata.pythe first time a paginated list response is encountered. - (Re)write
<api_pkg>/serializers/<surface>/<aggregate>/__init__.pyas a star-aggregator over the operation modules in that aggregate. - Leave
<api_pkg>/serializers/<surface>/__init__.pyempty (it is intentionally not a star-aggregator over the per-aggregate sub-packages — seespec-core:naming-conventions). - Leave
<api_pkg>/serializers/__init__.pyuntouched (owned by@serializers-copier).
Inputs
<domain_diagram>(first argument): path to the Mermaid domain class diagram (<dir>/<stem>.md). The rest-api spec sibling is derived from this path.<locations_report_text>(second argument): Markdown table emitted by@spec-core:target-locations-finder— four rows mappingCategoryto absolutePathandStatus. Parse as text; do not re-run the finder. TheAPI Packagerow supplies<api_pkg>. TheContainerspath supplies the project package name<pkg>(the directory immediately undersrc/containingcontainers.py).
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.
- 12d ago First seen · 573 lines · 42 tokens per session scan A 053573b24bdd
query-serializers-implementer is an agent published in the GitHub repository voro6yov/spec-driven-development (5 stars, last pushed 12d ago), licensed Apache-2.0. It adds 42 tokens to every session and 8,193 once invoked, about $0.0002 per session on Opus 5.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-10-04.
Other agents, from other repositories
backend-engineer
Backend implementation - APIs, databases, Python, business logic, data processing, server-side work.
python-architect
Plain Python backend implementer (backend aspect). Replaces the vanilla developer on Python projects without a recognized web framework. Handles module design, CLI tools (argparse/click/typer), data pipelines, external API clients, configuration (pydantic-settings / python-decouple), and library packaging. Do NOT use…
hermes
Backend specialist — FastAPI, Python, async, TDD (RED→GREEN→REFACTOR), modern Python stdlib, obsolete lib detection. Calls apollo for discovery, sends to themis.
python-engineer
Hands-on Python 3.12+ engineer. Ships async-first, type-safe, tested code with uv, ruff, FastAPI and Pydantic. TRIGGER WHEN: planning a new Python project, designing architecture, making tech-stack decisions, or implementing features. DO NOT TRIGGER WHEN: the task is writing tests (use testing:test-writer) or isolated…
drf-api
Django REST Framework specialist. Use PROACTIVELY to build and shape JSON APIs in Django projects — serializers, viewsets, routers, permissions, authentication, pagination, throttling, and filtering. Serializers own field validation; views own permissions.
fastapi-pro
Build high-performance async APIs with FastAPI, SQLAlchemy 2.0, and Pydantic V2. Master microservices, WebSockets, and modern Python async patterns. Use PROACTIVELY for FastAPI development, async optimization, or API architecture.