new-spec

new-spec is a skill for Claude Code, Codex from a16z/jolt. It costs 20 tokens per session (1,525 once invoked), scanned A, original, Apache-2.0.

A guided interview for creating a detailed software specification, a document that states what should be built and how its requirements can be checked.

In plain words
What is it for?
Use it to create a new specification, explore the relevant codebase, define requirements, and prepare mechanically verifiable acceptance criteria.
Why use it?
It turns an early idea into precise decisions, reducing ambiguity before implementation begins.

Skill for Claude CodeCodex

About the project

Jolt is a zero-knowledge virtual machine for RISC-V that enables programs to be executed and cryptographically proven. It is for developers and contributors working with zero-knowledge proofs and virtual machines, while the catalogue entries provide instructions and skills for using or developing Jolt.

a16z/jolt · 1,022 stars · on GitHub

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 skills/a16z/jolt/new-spec
Any agent
npx skills add a16z/jolt --skill new-spec
Clone the repo
git clone --depth 1 https://github.com/a16z/jolt

Made for: Claude Code, Codex.

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 new-spec

README.md
[![agentmods](https://agentmods.dev/badge/skills/a16z/jolt/new-spec.svg)](https://agentmods.dev/skills/a16z/jolt/new-spec)
Your own site
<a href="https://agentmods.dev/skills/a16z/jolt/new-spec"><img src="https://agentmods.dev/badge/skills/a16z/jolt/new-spec.svg" alt="Measured on agentmods" height="20"></a>
Per session 20 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,525 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.00020 $0.01525
Opus 5 $0.00010 $0.00763
Sonnet 5 $0.00004 $0.00305
Haiku 4.5 $0.00002 $0.00153

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

Security

Grade A, and why

new-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 5d 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.

.claude/skills/new-spec/SKILL.md · 125 lines

How it starts

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

Create a new spec file in specs/ by interviewing the user to fill each section of the template. The goal: produce a spec that would pass /analyze-spec with zero ambiguity on the first try.

Steps

1. Initialize

  1. Validate the argument: must be lowercase alphanumeric with dashes (e.g. streaming-prover). Reject otherwise.
  2. Get the GitHub username: run gh api user --jq .login.
  3. Get today's date in YYYY-MM-DD format.
  4. Read specs/TEMPLATE.md to understand the required sections.
  5. Read jolt-eval/README.md to understand the eval framework — you'll reference it when prompting the user about mechanical verifiability.
  6. Explore the codebase to understand what areas the feature name suggests — run an explore agent to gather context. This informs your questions.

2. Interview — Section by Section

Walk through each template section with the user. For each section, ask targeted questions until you have enough to write it with zero ambiguity. Do NOT move to the next section until the current one is clear.

One question at a time. Never batch.

Summary

Ask: "In one paragraph, what problem does this solve and why does it matter?"

Intent — Goal

Ask: "What are we building? Can you state the primary objective in one sentence?" Follow up on abstractions, types, boundaries if unclear.

Intent — Invariants

Before asking the user anything, form a hypothesis from the Summary and Goal:

  1. Read jolt-eval/src/invariant/ (listed in jolt-eval/README.md). For each existing invariant, judge whether this feature is likely to touch it. If yes, note whether the feature looks like it should preserve the invariant as-is or modify it (e.g., extend input type, change the reference implementation).
  2. Independently, imagine the binary properties that would have to hold for the Goal to be "correct." Which of those are not yet covered by an existing jolt-eval invariant? Each is a candidate for /new-invariant.

Present the hypothesis to the user in one pass:

Based on the Summary and Goal, I think this feature likely:
- May need to modify: {existing invariant Z — because ...}
- Warrants new invariants: {A — "...", B — "..."}

Does this match your intent? What would you add, remove, or change?

Read the full file on GitHub · 125 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. 5d ago First seen · 125 lines · 20 tokens per session scan A e91586f2c052

Subscribe to this mod's changes

new-spec is a skill published in the GitHub repository a16z/jolt (1,022 stars, last pushed today), licensed Apache-2.0. It adds 20 tokens to every session and 1,525 once invoked, about $0.0001 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.

Related

Other skills, from other repositories

implementing-zero-knowledge-proof-for-authentication

Zero-Knowledge Proofs (ZKPs) allow a prover to demonstrate knowledge of a secret (such as a password or private key) without revealing the secret itself. This skill implements the Schnorr identificati.

xalgorix/xalgorix · 53 tokens

zkp-toolkit

Zero-Knowledge Proof utilities - proof generation, verification, selective disclosure, ZK-Rollup batching, and benchmarking across ZK systems.

chainlesschain/chainlesschain · 33 tokens

implementing-aes-encryption-for-data-at-rest

AES (Advanced Encryption Standard) is a symmetric block cipher standardized by NIST (FIPS 197) used to protect classified and sensitive data. This skill covers implementing AES-256 encryption in GCM m.

xalgorix/xalgorix · 52 tokens

configuring-certificate-authority-with-openssl

A Certificate Authority (CA) is the trust anchor in a PKI hierarchy, responsible for issuing, signing, and revoking digital certificates. This skill covers building a two-tier CA hierarchy (Root CA +.

xalgorix/xalgorix · 52 tokens

configuring-hsm-for-key-storage

Hardware Security Modules (HSMs) are tamper-resistant physical devices that safeguard cryptographic keys and perform cryptographic operations in a hardened environment. Keys stored in an HSM never lea.

xalgorix/xalgorix · 45 tokens

starknet-js

Use when writing or debugging JavaScript/TypeScript that interacts with Starknet through the starknet.js SDK — building Call objects or calldata, encoding/decoding Cairo types (felt252, u256, structs, arrays, spans, ByteArray, Option/Result/custom enums), or working with contracts, accounts, providers, transactions…

starknet-io/starknet.js · 79 tokens