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.
git clone --depth 1 https://github.com/ariel-frischer/autospecWrote 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/ariel-frischer/autospec/autospec.specify)<a href="https://agentmods.dev/commands/ariel-frischer/autospec/autospec.specify"><img src="https://agentmods.dev/badge/commands/ariel-frischer/autospec/autospec.specify/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/ariel-frischer/autospec/autospec.specify"><img src="https://agentmods.dev/badge/commands/ariel-frischer/autospec/autospec.specify.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.00009 | $0.02143 |
| Opus 5 | $0.00005 | $0.01071 |
| Sonnet 5 | $0.00002 | $0.00429 |
| Haiku 4.5 | $0.00001 | $0.00214 |
Grade A, and why
autospec.specify 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 9d 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 — 219 lines — stays where its author put it; the contents beside it link to each section on GitHub.
User Input
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Outline
The text the user typed after /autospec.specify in the triggering message is the feature description. Assume you always have it available in this conversation even if $ARGUMENTS appears literally below. Do not ask the user to repeat it unless they provided an empty command.
Given that feature description, do this:
-
Generate a concise short name (2-4 words) for the branch:
- Analyze the feature description and extract the most meaningful keywords
- Create a 2-4 word short name that captures the essence of the feature
- Use action-noun format when possible (e.g., "add-user-auth", "fix-payment-bug")
- Preserve technical terms and acronyms (OAuth2, API, JWT, etc.)
- Keep it concise but descriptive enough to understand the feature at a glance
- Examples:
- "I want to add user authentication" → "user-auth"
- "Implement OAuth2 integration for the API" → "oauth2-api-integration"
- "Create a dashboard for analytics" → "analytics-dashboard"
- "Fix payment processing timeout bug" → "fix-payment-timeout"
-
Create feature branch and directory: Run the Go command with your generated short-name:
autospec new-feature --json --short-name "<short-name>" "$ARGUMENTS"Parse the JSON output for:
BRANCH_NAME: The full branch name (e.g., "008-user-auth")SPEC_FILE: Path to the spec file (ignore - we'll create spec.yaml instead)FEATURE_NUM: The feature numberAUTOSPEC_VERSION: The autospec version (for _meta section)CREATED_DATE: ISO 8601 timestamp (for _meta section)
Set
FEATURE_DIRtospecs/<BRANCH_NAME>/ -
Generate spec.yaml: Create the YAML specification file with this exact structure.
Schema reference: Run
autospec artifact spec --schemato see the full schema if unsure.# ============ REQUIRED SECTIONS ============ feature: # REQUIRED section branch: "<branch name from step 2>" # REQUIRED created: "<today's date YYYY-MM-DD>" # REQUIRED status: "Draft" # REQUIRED enum: Draft|Review|Approved|Completed input: "<original user description verbatim>" # optional user_stories: # REQUIRED section (array, at least one item) - id: "US-001" # REQUIRED title: "<story title>" # REQUIRED priority: "P1" # REQUIRED enum: P0|P1|P2|P3 (P0=critical, P1=must-have, P2=should-have, P3=nice-to-have) as_a: "<role/actor>" # REQUIRED i_want: "<action/capability>" # REQUIRED so_that: "<benefit/value>" # REQUIRED why_this_priority: "<justification for priority level>" # optional independent_test: "<how this story can be tested in isolation>" # optional acceptance_scenarios: # optional (but recommended) - given: "<precondition/context>" when: "<action taken>" then: "<expected outcome>" requirements: # REQUIRED section functional: # REQUIRED (array) - id: "FR-001" description: "<MUST/SHOULD/MAY + requirement>" acceptance_criteria: "<how to verify this>" non_functional: # optional (array) - id: "NFR-001" category: "<performance|security|usability|reliability|code_quality>" description: "<requirement>" measurable_target: "<specific metric>" # ============ OPTIONAL SECTIONS ============ success_criteria: # optional measurable_outcomes: - id: "SC-001" description: "<user-focused, measurable outcome>" metric: "<how to measure>" target: "<specific value or threshold>" key_entities: # optional - name: "<entity name>" description: "<what this entity represents>" attributes: - "<key attribute 1>" - "<key attribute 2>" edge_cases: # optional - scenario: "<edge case description>" expected_behavior: "<what should happen>" assumptions: # optional - "<assumption 1>" - "<assumption 2>" constraints: # optional - "<constraint 1>" - "<constraint 2>" out_of_scope: # optional - "<explicitly excluded item 1>" - "<explicitly excluded item 2>" _meta: # optional (but recommended) version: "1.0.0" generator: "autospec" generator_version: "<AUTOSPEC_VERSION from step 2>" created: "<CREATED_DATE from step 2>" artifact_type: "spec"
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.
- 9d ago First seen · 219 lines · 9 tokens per session scan A d5a79be501a6
autospec.specify is a command published in the GitHub repository ariel-frischer/autospec (141 stars, last pushed 1mo ago), licensed MIT. It adds 9 tokens to every session and 2,143 once invoked, about $0.0000 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.
Other commands, from other repositories
speckit.companion.implement
Companion implement — execute tasks.md in dependency order, then mark complete.
speckit.companion.plan
Companion plan — implementation plan with research & design artifacts.
speckit.companion.doctor
Report on a spec's run health — unfinished steps, unjournaled tasks, step bleed, drift you can judge, a step that closed having verified nothing, a step that closed without the file it promised, and why completion did not land (read-only, retroactive, never halts).
speckit.companion.living-move
Move a living spec between central and colocated storage — file, tiers, and registry together (opt-in, reversible).
speckit.companion.living-validate
Check the shape of living specs and a feature spec's deltas — a requirement with no scenario, a scenario missing WHEN or THEN, a duplicate heading, a delta pointing at nothing (opt-in, read-only, never halts).
speckit.companion.after-specify
Capture the current spec-kit step into .spec-context.json for the Companion GUI.