Borrowing it
Nothing to install: this file belongs to davidbuenov/dbv-md-reader. 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/davidbuenov/dbv-md-reader/master/.claude/commands/spec.mdgit clone --depth 1 https://github.com/davidbuenov/dbv-md-readerWrote 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/davidbuenov/dbv-md-reader/spec)<a href="https://agentmods.dev/commands/davidbuenov/dbv-md-reader/spec"><img src="https://agentmods.dev/badge/commands/davidbuenov/dbv-md-reader/spec/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/davidbuenov/dbv-md-reader/spec"><img src="https://agentmods.dev/badge/commands/davidbuenov/dbv-md-reader/spec.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.00027 | $0.01097 |
| Opus 5.5 | $0.00011 | $0.00439 |
| Sonnet 5.5 | $0.00005 | $0.00219 |
| Haiku 4.5 | $0.00003 | $0.00110 |
Grade A, and why
spec 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 4d 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.
Copies of this mod
1 near-identical copy found in the catalogue:
- spec — 97% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 41 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Ejecuta ahora la fase Spec (/spec) del ciclo Spec→Plan→Build→Test→Simplify→Ship definido en
dbv-specs-ops/docs/MASTER_PROMPT.md (<workflow>, paso 1). Lee primero
dbv-specs-ops/project.config.md, dbv-specs-ops/docs/SPECIFICATIONS.md, dbv-specs-ops/memory.md y
dbv-specs-ops/task.md. Revisa si el requisito ya está definido en SPECIFICATIONS.md; si no, pregunta
antes de asumir nada. Todo requisito nuevo lleva un ID único (REQ-NN).
🕸️ Grafo de fases — nodo activo: Spec
Fase 1: el qué y el por qué en SPECIFICATIONS.md, con IDs REQ-NN (y DESIGN.md si hay UI).
Al entrar — la transición por la que llegas fija la condición, cómo ejecutar esta fase y qué evitar:
- desde Start (LEADS_TO) — si: project.config.md ya está configurado y el usuario pide una funcionalidad o un cambio de requisitos.
- Cómo: Lee project.config.md, SPECIFICATIONS.md, memory.md (incluida la Rejection Memory) y task.md. Da a cada requisito nuevo o modificado el siguiente ID libre (máximo + 1).
- Evita: No escribas código en esta fase. No inventes requisitos ambiguos: pregunta. No renumeres ni reutilices IDs.
- desde Bootstrap (PROVIDES_INPUT_FOR) — si: El usuario ha confirmado la configuración y project.config.md está guardado.
- Cómo: Si SPECIFICATIONS.md solo tiene placeholders y ya hay código, sigue ADOPTION_PROMPT.md; si no, define los requisitos con IDs y DESIGN.md si hay UI.
- Evita: No pases a /plan con placeholders sin resolver en SPECIFICATIONS.md.
- desde Plan (LEADS_TO) — si: El Architect Review revela que la especificación es ambigua o contradictoria, o el usuario rechaza el plan.
- Cómo: Corrige solo la parte de SPECIFICATIONS.md afectada y vuelve a /plan. Registra el enfoque descartado y su motivo en la Rejection Memory de memory.md (REJECTED-NN).
- Evita: No reescribas requisitos que no estaban en cuestión. No borres un enfoque rechazado: se registra para no volver a proponerlo.
Salidas (salto 1) — a dónde puedes ir y con qué condición:
- Spec → Plan (PROVIDES_INPUT_FOR) — si: Los requisitos de la tarea tienen ID y criterios de aceptación verificables, sin preguntas abiertas críticas.
- Cómo: Clasifica el modo (Conductor <= 2 archivos y < 50 líneas; Orquestador si no). Imprime <architect_review> con y <confidence_score>; el cita un sustantivo concreto de SPECIFICATIONS.md. Desglosa en pasos de <= 50 líneas que citen su ID.
- Evita: No propongas un enfoque que figure como vigente en la Rejection Memory sin decir por qué ya no aplica. No avances a /build con un eje de confianza en low sin validación humana. Si el plan es complejo, no omitas el Frontmatter YAML (dependencies, risks, rollback_strategy).
Horizonte (salto 2) — lo que vendrá después y revisará tu trabajo:
- Plan ↩ Spec (LEADS_TO) — si: El Architect Review revela que la especificación es ambigua o contradictoria, o el usuario rechaza el plan.
- Plan → Build (PROVIDES_INPUT_FOR) — si: El plan ha superado el Architect Review y el usuario lo ha aprobado explícitamente.
- Cómo: Implementa una porción cada vez. Cabecera de project.config.md en cada fichero nuevo, @spec REQ-NN en las funciones que implementan un requisito y entrada en CHANGELOG.md [Sin publicar]. Si contradices ARCHITECTURE.md, regístralo ya en memory.md.
- Evita: Varios return fuera de las Guard Clauses iniciales (un solo return final); excepciones o None donde toca el patrón Result; any en TypeScript; .unwrap()/.expect() en comandos IPC de Rust; todo el React en App.tsx; en Tauri sin bundler, ES modules o una constante isTauri (usa IIFE y runningInTauri).
Rutas relativas a dbv-specs-ops/. Lee la 🚫 Rejection Memory de memory.md antes de proponer un enfoque: lo que ya se descartó no se vuelve a proponer sin explicar qué ha cambiado.
$ARGUMENTS
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.
- 4d ago Changed · +31 lines 4a8f7fdba757
- 1mo ago First seen · 10 lines · 27 tokens per session scan A e763f62f73f8
spec is a command published in the GitHub repository davidbuenov/dbv-md-reader (50 stars, last pushed 3d ago), licensed MIT. It adds 27 tokens to every session and 1,097 once invoked, about $0.0001 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-09-04.
Other commands, from other repositories
docs-add
Fetch a web source and make its Markdown searchable in this session. Accepts a built-in alias (e.g. "react"), an HTTPS URL, or "name url" to register a custom alias.
web-add
Fetch a web source and make its Markdown searchable in this session. Accepts a built-in alias (e.g. "react"), an HTTPS URL, or "name url" to register a custom alias.
docs-search
Search fetched Markdown by regex and pull surrounding context for the best hits. Optionally restrict to one source alias.
web-search
Search fetched web-source Markdown by regex and pull surrounding context for the best hits. Optionally restrict to one source alias.
docs-refresh
Re-fetch a cached source, ignoring the 7-day cache. Use when upstream content has changed.
web-refresh
Re-fetch a cached web source, ignoring the 7-day cache. Use when upstream content has changed.