sdd-serve

sdd-serve is a skill for Claude Code, Codex from juanklagos/spec-driven-development-template. It costs 80 tokens per session (1,271 once invoked), scanned A, original, MIT.

A service that attends the SDD Builder's AI request queue, where users ask for additions to specification fields. It drafts a proposal for each request and sends it back for the user to accept.

In plain words
What is it for?
Use it to listen for queued requests, expand specifications, tasks, notes, or logbook entries, and return proposals in the requested language and format.
Why use it?
It lets the builder receive AI-generated text without allowing the service to change specification files directly. It also uses the surrounding specification context to keep proposals aligned.

Skill for Claude CodeCodex

Part of the sdd plugin — 2 skills, 8 commands, 2 MCP servers shipped together

Install

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.

agentmods
npx agentmods add skills/juanklagos/spec-driven-development-template/sdd-serve
Any agent
npx skills add juanklagos/spec-driven-development-template --skill sdd-serve
Clone the repo
git clone --depth 1 https://github.com/juanklagos/spec-driven-development-template

Made for: Claude Code, Codex.

Or install sdd, the plugin that ships this one along with the rest of its 2 skills, 8 commands, 2 MCP servers.

Wrote 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.

agentmods badge for sdd-serve

README.md
[![agentmods](https://agentmods.dev/badge/skills/juanklagos/spec-driven-development-template/sdd-serve.svg)](https://agentmods.dev/skills/juanklagos/spec-driven-development-template/sdd-serve)
Your own site
<a href="https://agentmods.dev/skills/juanklagos/spec-driven-development-template/sdd-serve"><img src="https://agentmods.dev/badge/skills/juanklagos/spec-driven-development-template/sdd-serve.svg" alt="Measured on agentmods" height="20"></a>
Per session 80 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,271 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00080 $0.01271
Opus 5 $0.00040 $0.00635
Sonnet 5 $0.00016 $0.00254
Haiku 4.5 $0.00008 $0.00127

Measured 5d ago against content hash 2696f0a0d5bb, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

sdd-serve 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 5d 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.

.agents/skills/sdd-serve/SKILL.md · 43 lines

How it starts

The opening of the file, as written. The whole thing — 43 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Serve the SDD queue / Atiende la cola SDD

Serve the SDD Builder's AI request queue.

Loop:

  1. Call sdd_next_request (projectRoot: the current workspace, agent: your name).
  2. If it returns request: null there is no work: say so in one line and poll again when the user asks (or on the next cycle if you are looping).
  3. If it returns a request, read all of it: target says which field it is (spec.md section, task, note or logbook entry), currentText is what exists today and instruction is what the person asked for. 3b. If it carries context (spec 039), that is the rest of the spec the field belongs to: READ-ONLY background. Use it to match the spec's vocabulary, respect its scope and avoid contradicting what is already written. Do not rewrite it or return it. If you still lack something to draft well — the plan, the tasks, another spec, a logbook decision — READ it from the workspace with the read tools before proposing: you have access, and a misaligned proposal costs more than a lookup.
  4. Draft ONLY the proposed text for that field, in the language of the current text and in its format (a list returns one line per item; criteria keep the EARS pattern "WHEN … THE SYSTEM SHALL …"). For structure-idea requests, return exactly the JSON the instruction asks for, with no markdown around it. 4b. For review-spec requests (spec 036) do not draft: REVIEW. Read the spec carried in the instruction and return ONLY this JSON, no markdown: {"summary": "...", "findings": [{"section": "story|scenarios|criteria|requirements|properties|successCriteria|outOfScope", "severity": "blocker|warning|note", "finding": "what is wrong", "why": "why it matters"}]}. Findings, never a rewritten spec: the person fixes it, field by field.
  5. Answer with sdd_respond_request (the request id, proposal: your text).
  6. Repeat from step 1.

Hard rules:

  • Do NOT write any file under specs/ and do not use the spec-writing tools. Your proposal is not applied: the person reviews it as a diff in the builder and only their acceptance writes.
  • Do not invent context that is not in the request or the workspace; read it when you lack it, and if something is still ambiguous, propose the best version and say so in one sentence at the end.
  • Do not ask for permission between requests: the permission IS the builder's Accept button.

Atiende la cola de peticiones de IA del SDD Builder.

Bucle:

  1. Llama a sdd_next_request (projectRoot: el workspace actual, agent: tu nombre).
  2. Si devuelve request: null, no hay trabajo: dilo en una línea y vuelve a consultar cuando el usuario te lo pida (o en el siguiente ciclo si estás en bucle).
  3. Si devuelve una petición, léela entera: target dice qué campo es (sección de spec.md, tarea, nota o entrada de bitácora), currentText es lo que hay hoy e instruction es lo que pide la persona. 3b. Si trae context (spec 039), es el resto de la spec a la que pertenece el campo: material de SOLO LECTURA. Úsalo para escribir con su vocabulario, respetar su alcance y no contradecir lo ya escrito. No lo reescribas ni lo devuelvas. Si aun así te falta algo para redactar bien —el plan, las tareas, otra spec, una decisión de la bitácora—, LÉELO del workspace con las tools de lectura antes de proponer: tienes acceso, y una propuesta desalineada cuesta más que una lectura.
  4. Redacta SOLO el texto propuesto para ese campo, en el idioma del texto actual y con su mismo formato (si es una lista, devuelve una línea por elemento; si son criterios, respeta el patrón EARS «CUANDO … EL SISTEMA DEBERÁ …»). Para peticiones structure-idea, devuelve exactamente el JSON que pide la indicación, sin markdown alrededor. 4b. Para peticiones review-spec (spec 036) no redactes: REVISA. Lee la spec que viene en la indicación y devuelve SOLO este JSON, sin markdown: {"summary": "...", "findings": [{"section": "story|scenarios|criteria|requirements|properties|successCriteria|outOfScope", "severity": "blocker|warning|note", "finding": "qué está mal", "why": "por qué importa"}]}. Hallazgos, nunca la spec reescrita: quien corrige es la persona, campo a campo.
  5. Responde con sdd_respond_request (id de la petición, proposal: tu texto).
  6. Repite desde el paso 1.

Read the full file on GitHub · 43 lines

Changes

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.

  1. 5d ago First seen · 43 lines · 0 tokens per session scan A 2696f0a0d5bb

Subscribe to this mod's changes

sdd-serve is a skill published in the GitHub repository juanklagos/spec-driven-development-template (15 stars, last pushed 5d ago), licensed MIT. It adds 80 tokens to every session and 1,271 once invoked, about $0.0004 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-08-30.