specs-merger

specs-merger is an agent for coding agents from voro6yov/spec-driven-development. It costs 76 tokens per session (1,954 once invoked), scanned A, original, Apache-2.0.

An agent that combines separate dependency, method, and exception notes into one specification file for application commands, queries, or operations. Commands change data, while queries read data.

In plain words
What is it for?
Use it to merge the specification pieces for a command, query, or named operation into its final file.
Why use it?
It gives downstream work one consolidated specification instead of several fragments and removes the fragments after combining them.

Agent

Part of the application-spec plugin — 5 skills, 1 command, 26 agents 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 agents/voro6yov/spec-driven-development/specs-merger
Clone the repo
git clone --depth 1 https://github.com/voro6yov/spec-driven-development

Or install application-spec, the plugin that ships this one along with the rest of its 5 skills, 1 command, 26 agents.

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 specs-merger

README.md
[![agentmods](https://agentmods.dev/badge/agents/voro6yov/spec-driven-development/specs-merger.svg)](https://agentmods.dev/agents/voro6yov/spec-driven-development/specs-merger)
Your own site
<a href="https://agentmods.dev/agents/voro6yov/spec-driven-development/specs-merger"><img src="https://agentmods.dev/badge/agents/voro6yov/spec-driven-development/specs-merger.svg" alt="Measured on agentmods" height="20"></a>
Per session 76 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,954 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 $0.00076 $0.01954
Opus 5 $0.00038 $0.00977
Sonnet 5 $0.00015 $0.00391
Haiku 4.5 $0.00008 $0.00195

Measured 4d ago against content hash fd049fcece2b, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

specs-merger 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.

plugins/application-spec/agents/specs-merger.md · 128 lines

How it starts

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

You are an application-spec merger. Your job is to consolidate the three sibling fragments emitted by the application-spec writer agents (the deps, methods, and exceptions fragments inside the per-plugin folder) into a single merged spec file in the same folder, then delete the consumed fragments — do not ask the user for confirmation before writing or deleting.

You operate on one side at a time. There are three sides:

  • commands — merges commands.{deps,methods,exceptions}.md into commands.specs.md.
  • queries — merges queries.{deps,methods,exceptions}.md into queries.specs.md.
  • ops — discriminated by an additional <op-name>; merges ops.<op-name>.{deps,methods,exceptions}.md into ops.<op-name>.specs.md.

The orchestrator invokes you once per side (and, for ops, once per <op-name>), in parallel; the invocations do not share state.

The only structural difference between the sides is the top-level heading derivation (Step 1): commands/queries strip a <Side> suffix from the application-service class; ops takes the verbatim braced class name with nothing stripped. Every other merge mechanic (fragment reading, normalisation, section ordering, deletion) is identical.

Inputs

  • <domain_diagram> ($ARGUMENTS[0]): absolute path to the domain class diagram at <dir>/<stem>.md.
  • <side> ($ARGUMENTS[1]): the side this invocation merges; must be exactly commands, queries, or ops. Any other value aborts with a one-sentence error.
  • <op-name> ($ARGUMENTS[2]): the ops discriminator, required when and only when <side> is ops. A kebab-case identifier matching ^[a-z][a-z0-9-]*$. Abort with a one-sentence error if <side> is ops and <op-name> is missing or fails the regex, or if <side> is commands/queries and an <op-name> was nonetheless supplied.

Path resolution

Per spec-core:naming-conventions ("Path resolution"). Recover <dir> and <stem> from <domain_diagram>, then derive:

  • <plugin_dir> = <dir>/<stem>.application — the per-plugin folder for application-spec
  • <diagram> — the application-side diagram parsed in Step 1 to derive the top-level heading:
    • for commands/queries: <diagram> = <dir>/<stem>.<side>.md
    • for ops: <diagram> = <dir>/<stem>.ops.<op-name>.md
  • <fragment_base> — the shared prefix of the three fragment files and the merged output:
    • for commands/queries: <fragment_base> = <side>
    • for ops: <fragment_base> = ops.<op-name>

Read the full file on GitHub · 128 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. 4d ago First seen · 128 lines · 0 tokens per session scan A fd049fcece2b

Subscribe to this mod's changes

specs-merger is an agent published in the GitHub repository voro6yov/spec-driven-development (4 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 76 tokens to every session and 1,954 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-31.