new-spec
Skill1.1k starsChanged 13 days agoApache-2.0View on GitHub
Create a new spec through Socratic interview, filling each template section to zero ambiguity
We split this skill into the rules it gives an agent
19 rules. 0 are common, 10 are distinctive, and 9 are very specific to this project.
0
Common
Most of the 11 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 7
Create a new spec file in specs/ by interviewing the user to fill each section of the template.
- Very specific: line 16
Read specs/TEMPLATE.md to understand the required sections.
- Very specific: line 17
Read jolt-eval/README.md to understand the eval framework — you'll reference it when prompting the user about mechanical verifiability.
- Distinctive: line 27
Ask: "In one paragraph, what problem does this solve and why does it matter?"
- Distinctive: line 30
Ask: "What are we building?
- Distinctive: line 34
Before asking the user anything, form a hypothesis from the Summary and Goal:
- Very specific: line 35
Read jolt-eval/src/invariant/ (listed in jolt-eval/README.md).
- Very specific: line 54
Ask: "What is explicitly out of scope?" Push back if non-goals are vague — "you said 'not performance-critical', but the hot path in …
- Distinctive: line 57
Ask: "What check would prove this works?
- Very specific: line 60
Ask: "Which existing tests must keep passing?
- Distinctive: line 64
Before asking the user anything, form a hypothesis from the information collected so far:
- Very specific: line 65
Read jolt-eval/src/objective/ (listed in jolt-eval/README.md).
- Distinctive: line 84
Ask: "How does this fit into the existing system?" Use codebase exploration to suggest which modules are affected.
- Distinctive: line 87
Ask: "What other approaches did you consider?
- Very specific: line 90
Ask: "Does this need Jolt book (book/) changes?
- Distinctive: line 93
Ask: "Any implementation direction you want to capture?
- Distinctive: line 96
Ask: "Any papers, issues, PRs, or prior art to link?"
- Distinctive: line 106
All sections filled from interview answers
- Very specific: line 124
Do NOT modify TEMPLATE.md itself.
“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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
- Validate the argument: must be lowercase alphanumeric with dashes (e.g.
streaming-prover). Reject otherwise. - Get the GitHub username: run
gh api user --jq .login. - Get today's date in
YYYY-MM-DDformat. - Read
specs/TEMPLATE.mdto understand the required sections. - Read
jolt-eval/README.mdto understand the eval framework — you'll reference it when prompting the user about mechanical verifiability. - Explore the codebase to understand what areas the feature name suggests — run an
exploreagent 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:
- Read
jolt-eval/src/invariant/(listed injolt-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). - 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-evalinvariant? 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?Then follow up with the open-ended prompt: "What other properties must always hold? What would break if the implementation is wrong?"
For any new properties the user adds that don't map to an existing jolt-eval invariant but look amenable to mechanical verification, ask: "your invariant 'X must equal Y' looks like a candidate for /new-invariant — want to capture it so it's mechanically checked during /implement-spec?"
Record changes to existing jolt-eval invariants and any new ones to add in the "Invariants" section of the template.
Intent — Non-Goals
Ask: "What is explicitly out of scope?" Push back if non-goals are vague — "you said 'not performance-critical', but the hot path in crates/jolt-poly/ multiplies across thousands of rounds. Is there a concrete budget?"
Evaluation — Acceptance Criteria
Ask: "What check would prove this works? Give me concrete, checkable criteria." Each criterion must be a checkbox item. Name the behavior and evidence required; reuse existing coverage when sufficient and add tests only for distinct gaps.
Evaluation — Testing Strategy
Ask: "Which existing tests must keep passing? What new tests are needed? Does this need both --features host and --features host,zk coverage?"
Evaluation — Performance
Before asking the user anything, form a hypothesis from the information collected so far:
- Read
jolt-eval/src/objective/(listed injolt-eval/README.md). For each existing performance objective, judge whether this feature is likely to move it, and in which direction. - Independently, imagine what "success" looks like as a measurable quantity. If it is not captured by an existing performance objective, this may be a candidate for
/new-objective.
Present the hypothesis to the user in one pass:
Based on the Summary, Goal, and Invariants, I think this feature likely:
- Moves existing objectives: {X — direction, rough magnitude}, {Y — ...}
- Warrants new objectives: {A — "...", B — "..."}
Does this match your expectations? What would you add, remove, or change?Then follow up with the open-ended prompt: "Beyond these, are there other performance expectations? Benchmarks, memory budgets, throughput targets? Or is 'no regression' sufficient — and if so, which benchmark verifies that?"
For any new expectations the user adds that don't map to an existing jolt-eval objective but look measurable, ask: "should we add a new objective via /new-objective so the optimizer can track it?"
Record both changes to existing jolt-eval objectives and any new ones to add directly in the "Performance" section.
Design — Architecture
Ask: "How does this fit into the existing system?" Use codebase exploration to suggest which modules are affected. Ask about type parameters, trait implementations, module boundaries.
Design — Alternatives Considered
Ask: "What other approaches did you consider? Why this one?" If the user says "none", probe: "What's the simplest approach that could work? Why isn't that sufficient?"
Documentation
Ask: "Does this need Jolt book (book/) changes? New pages, updated sections, diagrams?"
Execution (optional)
Ask: "Any implementation direction you want to capture? Algorithmic approach, optimizations, modules to touch? Or should the implementer derive this from intent and evaluation?"
References
Ask: "Any papers, issues, PRs, or prior art to link?"
3. Write the Spec
Once all sections are filled, create specs/<feature-name>.md with the template fully populated:
[Feature Name]→ feature name from the interviewAuthor(s)→@<github-username>Created→ today's dateStatus→proposedPR→ empty (filled by GitHub Action)- All sections filled from interview answers
4. Review with User
Show the complete spec to the user. Ask: "Does this capture everything? Anything to add or change?" Make edits until the user is satisfied.
5. Next Steps
Print:
Spec created: specs/<feature-name>.md
Next steps:
1. Review the spec above
2. Open a PR
3. Add the `claude-spec-review-request` label for external analysis, or run `/analyze-spec` locallyDo NOT modify TEMPLATE.md itself.
Trending
More talk lately.about the whole repository
Who's talking about a16z/jolt
- coset-io/zkp-academy“[2024.4.23-2024.5.21] Lasso & Jolt 学习小组”GitHub · Apr 27, 2024 · 2 reactions
- LayerZero-Labs/akita“perf(verifier): batch verifier dot products through jolt-field row kernels”GitHub · Oct 6, 2026
- sudosubin/agents.nix“agent-skills.github.a16z.jolt: 1.1.1-unstable-2026-09-02 → 1.1.1-unstable-2026-09-25”GitHub · Oct 3, 2026
- LayerZero-Labs/jolt“chore(akita): bump dependency to e2c49ed”GitHub · Oct 2, 2026
- jruizaranguren/best-of-digital-identity“Add privacy-preserving identity category”GitHub · Sep 30, 2026
The biggest 5 of 33 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 33
Talked about on GitHub (33 times).
On GitHub · 33
- Apr 27, 2024[2024.4.23-2024.5.21] Lasso & Jolt 学习小组 — coset-io/zkp-academy2 reactions · 1 comment
- Oct 6, 2026perf(verifier): batch verifier dot products through jolt-field row kernels — LayerZero-Labs/akita0 reactions · 15 comments
- Oct 3, 2026agent-skills.github.a16z.jolt: 1.1.1-unstable-2026-09-02 → 1.1.1-unstable-2026-09-25 — sudosubin/agents.nix0 reactions
- Oct 2, 2026chore(akita): bump dependency to e2c49ed — LayerZero-Labs/jolt0 reactions · 3 comments
- Sep 30, 2026Add privacy-preserving identity category — jruizaranguren/best-of-digital-identity0 reactions
28 more on GitHub
- Sep 30, 2026build: jolt as public git deps at a16z/jolt feat/inline-extension-external — 0xAndoroid/jeth0 reactions
- Sep 24, 2026agent-skills.github.a16z.jolt: init at 1.1.1-unstable-2026-09-02 — sudosubin/agents.nix0 reactions
- Aug 10, 2026Feat/jolt prover akita — LayerZero-Labs/jolt0 reactions · 1 comment
- Jul 31, 2026feat: port the demo to the modular prover on Akita (non-zk) — 0xAndoroid/jolt-wasm-prover0 reactions · 1 comment
- Jul 23, 2026Feat/jolt legacy prover akita integration — LayerZero-Labs/jolt0 reactions
- Jul 22, 2026[arXiv] zkML ONNX inference-proof harness — Jolt Atlas: Verifiable Inference via Lookup Arguments in Zero Knowledge — mnemonik-dev/nightly-research0 reactions
- May 21, 2026docs: document precommitted polynomial reductions — LayerZero-Labs/jolt0 reactions · 2 comments
- May 21, 2026feat: integrate bytecode and program image reductions — LayerZero-Labs/jolt0 reactions · 2 comments
- May 21, 2026feat: add committed bytecode foundation — LayerZero-Labs/jolt0 reactions · 2 comments
- May 21, 2026refactor: add precommitted polynomial reductions — LayerZero-Labs/jolt0 reactions · 2 comments
- May 21, 2026refactor: split stage 6 sumchecks — LayerZero-Labs/jolt0 reactions · 2 comments
- Apr 15, 2026build(deps): bump jolt-sdk from `b10e80a` to `3d5e431` — gg-archive/ruma-zk0 reactions
- Feb 3, 2026Implement Jolt Keccak-256 benchmark — ethereum/csp-benchmarkssays it tested it0 reactions
- Feb 3, 2026Implement Jolt ECDSA benchmark — ethereum/csp-benchmarkssays it tested it0 reactions
- Nov 11, 2025fix: correct calculation of max_log_n in VerifierSetup — markosg04/dory0 reactions
- Aug 15, 2025Update Jolt to v0.3.0-alpha — eth-act/ere0 reactions
- Aug 4, 2025Wire up PCS to jolt-prover — ICME-Lab/jolt-atlas0 reactions · 1 comment
- Aug 2, 2025Implement output proof — ICME-Lab/zkml-jolt0 reactions
- Mar 22, 2025no rust-toolchain-aarch64-unknown-linux-gnu.tar.gz release version — a16z/rust0 reactions · 1 comment
- Mar 21, 2025Implement `CanonicalSerialize` and `CanonicalDeserialize` for signed integers — a16z/arkworks-algebra0 reactions
- Mar 5, 2025Trait solver taking >10s to finish in auto complete — rust-lang/rust-analyzer0 reactions · 2 comments
- Feb 28, 2025Add Jolt zkVM Support to ProofLab — ProofLabDev/prooflab-rs0 reactions
- Feb 25, 2025chore: fix typos — a16z/helios0 reactions
- Jan 15, 2025Benchmark ICICLE and `arkmsm` — piotr-roslaniec/wasm-multiexp-benchsays it tested it0 reactions
- Nov 22, 2024chore: Update toolchain to nightly-2024-09-30 — a16z/rust0 reactions
- Jun 26, 2024Optimize polynomial batching computation — microsoft/Nova0 reactions · 1 comment
- May 27, 2024Summary from our mail threads — mab-xyz/verifiable-client-diversity0 reactions
- May 15, 2024List of Existing ZkVMs — vacp2p/zk-explorations0 reactions
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- RocketChat/Rocket.Chat.Electron★ 1.7ksame name
- gofixpoint/amika★ 295same name
- eugenelim/agent-ready-repo★ 27same name
- brayandiazc/project-starter-template-es-ai★ 15same name
- eugenelim/llm-wiki-kit★ 12same name
- brayandiazc/project-starter-template-en-ai★ 2same name
- jhlee0409/omni-harness-kit★ 2same name
- dabodamjan/app-idea-to-spec★ 0same name
- gabo963/claude-skills★ 0same name
- kitloomlk-stack/spec-driven-planning-kit★ 0same name
2 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use release.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkillrelease
Use ONLY when the user explicitly asks to cut/publish a Huabu desktop release or tag a version. Performs an outward action — bumps the version in apps/desktop/package.json, commits + annotated-tags vX.Y.Z, and pushes the branch + tag. That tag push auto-builds the macOS/Windows installers and publishes a GitHub Release. Provides `status`, `bump`, `tag-push`, and a one-command `run` (bump → tag-push).
Also in 3 projects that use this
In this repository9 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- analyze-specSkill
- ci-code-reviewSkill
- comment-policySkill
- implement-specSkill
- new-invariantSkill
- new-objectiveSkill
- test-policySkill
- update-docsSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

