with one click
new-spec
// Create a new spec through Socratic interview, filling each template section to zero ambiguity
// Create a new spec through Socratic interview, filling each template section to zero ambiguity
Deep code review of a pull request using parallel analysis agents (semantic consistency, bugs, tech debt, security). USE FOR: - Reviewing PRs for bugs, security issues, and code quality - Analyzing new abstractions for consistency and correctness - Identifying tech debt and architectural concerns - Posting review comments to specific lines on GitHub TRIGGERS: - "review PR", "code review", "review changes" - "diff review", "PR feedback", "check PR" - "analyze diff", "critique code", "review code" - "pull request review", "GitHub PR review"
Spec analysis with ambiguity scoring — interactive locally, single-pass remotely via label
Autonomous one-shot implementation from an approved spec (local/cloud only)
Implement a new invariant for jolt-eval
Implement a new objective for jolt-eval
Wrap a Rust function in a Jolt zero-knowledge proof
| name | new-spec |
| description | Create a new spec through Socratic interview, filling each template section to zero ambiguity |
| arguments | <feature-name> |
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.
streaming-prover). Reject otherwise.gh api user --jq .login.YYYY-MM-DD format.specs/TEMPLATE.md to understand the required sections.jolt-eval/README.md to understand the eval framework — you'll reference it when prompting the user about mechanical verifiability.explore agent to gather context. This informs your questions.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.
Ask: "In one paragraph, what problem does this solve and why does it matter?"
Ask: "What are we building? Can you state the primary objective in one sentence?" Follow up on abstractions, types, boundaries if unclear.
Before asking the user anything, form a hypothesis from the Summary and Goal:
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).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?
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.
Ask: "What is explicitly out of scope?" Push back if non-goals are vague — "you said 'not performance-critical', but the hot path in poly/ multiplies across thousands of rounds. Is there a concrete budget?"
Ask: "What test would prove this works? Give me concrete, checkable criteria." Each criterion must be a checkbox item. Push for specificity — "existing tests pass" is not enough; ask what NEW tests are needed.
Ask: "Which existing tests must keep passing? What new tests are needed? Does this need both --features host and --features host,zk coverage?"
Before asking the user anything, form a hypothesis from the information collected so far:
jolt-eval/src/objective/ (listed in jolt-eval/README.md). For each existing performance objective, judge whether this feature is likely to move it, and in which direction./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.
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.
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?"
Ask: "Does this need Jolt book (book/) changes? New pages, updated sections, diagrams?"
Ask: "Any implementation direction you want to capture? Algorithmic approach, optimizations, modules to touch? Or should the implementer derive this from intent and evaluation?"
Ask: "Any papers, issues, PRs, or prior art to link?"
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)Show the complete spec to the user. Ask: "Does this capture everything? Anything to add or change?" Make edits until the user is satisfied.
Print:
Spec created: specs/<feature-name>.md
Next steps:
1. Review the spec above
2. Open a PR — a GitHub Action will add the `spec` label
3. Add the `claude-spec-review-request` label for external analysis, or run `/analyze-spec` locally
Do NOT modify TEMPLATE.md itself.