to-spec

to-spec is a skill for Claude Code from SpaiR/task-pipeline. It costs 33 tokens per session (2,652 once invoked), scanned A, original, MIT.

A capture tool that records an important technical decision in a standalone Markdown specification. The specification contains the decision, its reasoning, and constraints, and other tasks can refer to it.

In plain words
What is it for?
Use it to document protocols, shared data formats, or choices between technical approaches. It is for preserving decisions, not for breaking work into implementation steps.
Why use it?
It prevents key choices from being forgotten or reconsidered inconsistently during implementation. One specification can serve as a shared reference for multiple tasks or roadmaps.

Skill for Claude Code

Written for Claude Code: disable-model-invocation in frontmatter. Also seen: mentions CLAUDE.md; names the AskUserQuestion tool.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the task plugin — 8 skills, 8 agents shipped together

Good fit Use it to document protocols, shared data formats, or choices between technical approaches. It is for preserving decisions, not for breaking work into implementation steps.

Compare 6 skills from other repositories ↓
Install

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.

Claude Code
/plugin marketplace add SpaiR/task-pipeline
Claude Code
/plugin install task

Made for: Claude Code.

Or install task, the plugin that ships this one along with the rest of its 8 skills, 8 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 to-spec

README.md
[![agentmods](https://agentmods.dev/badge/skills/spair/task-pipeline/to-spec.svg)](https://agentmods.dev/skills/spair/task-pipeline/to-spec)
Your own site
<a href="https://agentmods.dev/skills/spair/task-pipeline/to-spec"><img src="https://agentmods.dev/badge/skills/spair/task-pipeline/to-spec.svg" alt="Measured on agentmods" height="20"></a>
Per session 33 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,652 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.00033 $0.02652
Opus 5 $0.00016 $0.01326
Sonnet 5 $0.00007 $0.00530
Haiku 4.5 $0.00003 $0.00265

Measured 8d ago against content hash 00a2f6b01c9c, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

to-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 8d 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.

skills/to-spec/SKILL.md · 149 lines

How it starts

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

Fix load-bearing technical decisions — a protocol, a cross-cutting data shape, a "we picked X over Y because…" whose reasoning wouldn't survive re-derivation — into .task/spec/<slug>.md. Unlike to-task / to-plan / to-roadmap, a spec does not decompose work; it pins the decisions that work must honor. A task or roadmap references it via a Spec: [<slug>](../spec/<slug>.md) header, and the executing session reads it as a fixed anchor (per .task/CLAUDE.md## Executing a task, which its ## Execution pointer names). One spec may be cited by many tasks and roadmaps, and can be captured before any exist.

Input: $ARGUMENTS — a rough description of the decision area, or a reference back to a prior discussion in this conversation ("write a spec from what we settled").

Format contract: docs/contract.md § Spec file format is the single source of truth for the output structure. This file describes the authoring flow that produces it.

Instructions

Step 0: Setup gate

Resolve the pipeline root, then check whether its CLAUDE.md exists:

source "${CLAUDE_PLUGIN_ROOT}/skills/_lib/resolve-ws.sh"   # exports AI_DIR
echo "$AI_DIR"                                             # the resolved root — use this value verbatim in every artifact path below
[[ -f "$AI_DIR/CLAUDE.md" ]] || echo "CLAUDE.md not found"

Every artifact path in this skill is under that resolved $AI_DIR, never the cwd.task/spec/<slug>.md below is shorthand for $AI_DIR/spec/<slug>.md. A cwd-relative write from a subdirectory or a linked worktree would create a second .task/ that validate.sh (which resolves $AI_DIR itself) never sees.

  • CLAUDE.md not found/task:to-spec is intake-capable: read ${CLAUDE_PLUGIN_ROOT}/skills/_lib/setup.md and follow it (detect stack → write $AI_DIR/CLAUDE.md from its template → record git config --local task.root → exclude .task → report what was written), then continue. No confirmation chip — the file is written first and edited afterwards if a detected value was wrong. setup.md owns the sub-steps and the template; do not restate either here. If .task/CLAUDE.md already exists, leave it untouched: it is user-owned, and only task.root and the .git/info/exclude line are restored when missing.

Read the full file on GitHub · 149 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. 8d ago First seen · 149 lines · 33 tokens per session scan A 00a2f6b01c9c

Subscribe to this mod's changes

to-spec is a skill published in the GitHub repository SpaiR/task-pipeline (7 stars, last pushed 3d ago), licensed MIT. It adds 33 tokens to every session and 2,652 once invoked, about $0.0002 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.

Related

Other skills, from other repositories

work

Dispatch a tracker ticket into an isolated worktree and drive it autonomously to an open pull request, then stop for review. Pass interactive to brainstorm the ticket with a human before planning it, or a sentence of editorial direction as a rider. Use when asked to work a ticket end-to-end.

mikestankavich/claude-ship-workflow · 0 tokens

batch

Dispatch a night's batch of Todo tickets — one worktree and one pull request each — and leave a morning summary. Run explicitly; never inferred.

mikestankavich/claude-ship-workflow · 31 tokens

cleanup

Clean up after a merged pull request — return to the base branch, remove the worktree, delete the branch, sweep other stale branches and worktrees, and report tracker state. Use after a merge or whenever asked what is left over.

mikestankavich/claude-ship-workflow · 0 tokens

merge

Merge the reviewed pull request for the current branch, then hand straight off to cleanup. A sentence of editorial direction alongside the green light is read as a rider. Use when a human green-lights an open PR.

mikestankavich/claude-ship-workflow · 0 tokens

prep

Spec a ticket before it is dispatched. Brainstorms it, decides everything it can recommend an answer for, asks a present human about the little that survives, and leaves the spec, the decisions and anything still open as one ticket comment. No worktree, no branch, no pull request, and the ticket stays where it was.

mikestankavich/claude-ship-workflow · 0 tokens

c-find-bugs

Concrete defect hunting on a target. Operates on docs OR code. Different lens from /c-check ("is this good?"); this asks "what specific defects exist?" Targets: design folder, plan folder, branch, file, or --repo. Repo scope is token-heavy and requires explicit confirmation before starting. Output is a prioritized…

sentasity/cadence · 85 tokens