Borrowing it
Nothing to install: this file belongs to micheltlutz/dev-challenge. 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/micheltlutz/dev-challenge/main/.claude/skills/spec-authoring/SKILL.mdgit clone --depth 1 https://github.com/micheltlutz/dev-challengeWrote 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/skills/micheltlutz/dev-challenge/spec-authoring)<a href="https://agentmods.dev/skills/micheltlutz/dev-challenge/spec-authoring"><img src="https://agentmods.dev/badge/skills/micheltlutz/dev-challenge/spec-authoring/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/skills/micheltlutz/dev-challenge/spec-authoring"><img src="https://agentmods.dev/badge/skills/micheltlutz/dev-challenge/spec-authoring.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00083 | $0.01491 |
| Opus 5.5 | $0.00033 | $0.00596 |
| Sonnet 5.5 | $0.00017 | $0.00298 |
| Haiku 4.5 | $0.00008 | $0.00149 |
Grade A, and why
spec-authoring 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 2mo 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 — 165 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Authoring a spec
For contributors extending the lab. The rule that governs everything here: a spec change and its harness test land in the same pull request, or CI rejects it.
Anatomy
specs/challenges/<track>-<nn>-<slug>/
spec.md frontmatter + objective + contract + requirements
acceptance.md criteria, each with a stable ID
The directory name, the id: in the frontmatter, and the criterion prefix all
have to agree.
Frontmatter
Validated against
specs/schema/challenge.schema.json.
---
id: backend-05-balance # must equal the directory name
title: "Balance (amount)"
track: backend # backend | web | mobile | fullstack
order: 5 # unique within the track
difficulty: intermediate # starter | intermediate | advanced
estimated_hours: 3
depends_on: ["backend-04-statements"] # must exist, must stay acyclic
endpoints: ["GET /balance/"] # must exist in specs/openapi.json
acceptance: acceptance.md
verify: "harness/suites/test_balance.py"
tags: ["auth", "business-rules"]
---
Web and mobile additionally require:
figma_node: "13-5855" # or null
mockups: ["readme_files/images/statement-web.png"]
testids: ["balance-amount", "balance-toggle"] # non-empty
testids is the contract that makes a UI verifiable without dictating a
framework. Choose names that describe the role, not the implementation:
balance-toggle, not eye-icon-button.
Set verifiable: false and verify: null when no automated runner can check
the challenge — the whole mobile track is in that position, and saying so
plainly is better than implying coverage that does not exist.
Writing criteria
### BE05-AC3 — Seeded balance is exact
Given John Doe's token
When GET /balance/
Then `amount` equals 15491.00 within 0.01
- IDs are stable and globally unique.
<PREFIX><nn>-AC<n>:BEback-end,WEBweb,MOBmobile,FSfullstack. Never renumber an existing criterion — append. - One observable behaviour per criterion. If you need "and" in the Then, you probably have two.
- Testable from outside. The harness is black-box. "The code is well structured" is not a criterion; "the response contains no password field" is.
- Say the number.
15491.00, not "the correct balance".
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.
- 2mo ago First seen · 165 lines · 83 tokens per session scan A f709d926013b
spec-authoring is a skill published in the GitHub repository micheltlutz/dev-challenge (33 stars, last pushed 5d ago), licensed MIT. It adds 83 tokens to every session and 1,491 once invoked, about $0.0003 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-08-30.
spec-authoring compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| spec-authoringmicheltlutz/dev-challenge | Skill | 33 | 5d ago | MIT | A | 83 | Claude Code |
| api-contract-testingsickn33/agentic-awesome-skills | Skill | 49k | yesterday | MIT | A | 28 | Claude Code |
| servicenow-api-developmentKnuckles-Team/servicenow-api | Skill | 20 | yesterday | MIT | A | 40 | Claude Code, Codex |
| php-developmentPracticalSwan/agent-skills | Skill | 24 | 18d ago | MIT | A | 51 | Codex |
| mongodb-mongoosePracticalSwan/agent-skills | Skill | 24 | 18d ago | MIT | A | 43 | Codex |
| sql-developmentPracticalSwan/agent-skills | Skill | 24 | 18d ago | MIT | A | 47 | Codex |
| go-servicesalivirgo/Major-AI-Skills | Skill | 2 | yesterday | MIT | A | 38 | Claude Code |