
Spec Generator
OfficialFreeCreate structured specs from GitHub issues for developers.
Free · Opens the source repo
What Spec Generator does
The Spec Generator is a tool designed to assist developers in creating structured Workable Spec JSON from GitHub issues. By extracting key technical details from an issue, it organizes this information according to a strict JSON schema, ensuring that the output is both valid and useful for further automated processes. This skill is particularly beneficial for teams that rely on clear, actionable specifications to guide their development work.
The generator operates under a set of critical rules that enforce accuracy and adherence to the codebase. It verifies the existence of file paths before including them in the output, which helps prevent errors that could arise from referencing non-existent files. Additionally, it emphasizes the importance of selecting the right files to modify, ensuring that only those requiring changes are listed, while excluding test files or those inspected without the need for modifications.
By following the specified JSON schema, developers can ensure that their generated specs meet the requirements of downstream automated code generation pipelines. This skill is ideal for development teams looking to streamline their issue resolution process and maintain high standards of code quality. It helps in creating a clear implementation plan, testing strategy, and verification steps, all of which are crucial for effective software development.
Overall, the Spec Generator enhances productivity by automating the specification process, allowing developers to focus on coding rather than documentation. It is a valuable addition for any team that seeks to improve its workflow and ensure that all team members are aligned on the technical details of issues being addressed.
When to use it
Use this tool when you need to generate structured specifications from GitHub issues to guide development work.
When not to use it
This skill may not be suitable for projects that do not follow a strict JSON schema or do not require detailed technical specifications.
What you can build with it
Generating Specs for Bug Fixes
When a bug is reported in a GitHub issue, use the Spec Generator to create a structured spec that outlines the problem and the necessary code changes.
Documenting Feature Requests
Transform feature requests from GitHub issues into actionable specifications that guide development and testing efforts.
Streamlining Code Reviews
Use the generated specs to provide clear context and implementation plans during code reviews, improving team communication.
How to install Spec Generator
View source1. Install with the skills CLI
npx skills add google-gemini/gemini-cli/spec_generator --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by google-geminiSpec Generator Instructions
Extract key technical details from the issue and organize them according to the following strict JSON schema.
Critical Rules:
- Codebase Verification: Rely on file paths and locations found during your codebase exploration. Ensure all files mentioned in
files_to_modifyactually exist in the repository. Do not make up file paths. - Target File Selection: List all source code files in
files_to_modifywhere code changes belong.- Fix config or state issues early at their setup/hook entrypoint rather than refactoring low-level utilities.
- Strictly do NOT list test files or files that were only inspected without requiring code changes.
- Strict JSON Escaping: Ensure the generated output is standard, valid JSON. In JSON string values (such as summary fields or verification steps), do NOT escape single quotes with backslashes. Write them directly as
'(not\\').
[!IMPORTANT] The output MUST strictly adhere to this schema. Deviations (like putting objects inside arrays instead of strings) will break the downstream automated code generation pipeline.
The final workable_spec object must conform strictly to this JSON Schema specification. Every field listed below is strictly required and must be populated:
{
"type": "object",
"properties": {
"issue_id": {
"type": "string",
"description": "The specific GitHub issue identifier in the canonical format: {owner}/{repo}#{number} (e.g., google/gemini-cli#245)."
},
"summary": {
"type": "object",
"description": "A deep technical summary of the issue.",
"properties": {
"problem": {
"type": "string",
"description": "Concise statement of the problem."
},
"root_cause": {
"type": "string",
"description": "Analysis of the underlying cause of the bug."
},
"context": {
"type": "string",
"description": "Any additional technical context or background."
}
}
},
"implementation_plan": {
"type": "object",
"description": "Details required for code implementation of the fix.",
"properties": {
"files_to_modify": {
"type": "array",
"description": "List of source code files requiring changes relative to the repository root (e.g. ['src/cli.ts']). Strictly do NOT include test files (*.test.ts, *.spec.ts) here; test files must go into testing_strategy.test_file.",
"items": {
"type": "string"
}
},
"steps": {
"type": "array",
"description": "Ordered step-by-step instructions to implement the fix. Each step must be a simple, flat string description. Do not nest objects inside this array.",
"items": {
"type": "string"
}
}
}
},
"testing_strategy": {
"type": "object",
"description": "Instructions for validating the fix.",
"properties": {
"test_file": {
"type": "string",
"description": "Path to the relevant test file relative to the repository root (e.g., 'tests/cli.test.ts')."
},
"expected_behavior": {
"type": "string",
"description": "Description of how the system should behave after the fix."
},
"verification_steps": {
"type": "array",
"description": "Specific steps to add or modify in the test file.",
"items": {
"type": "string"
}
},
"framework": {
"type": "string",
"description": "Testing framework used.",
"enum": ["Vitest", "N/A"]
}
}
}
}
}
Do not include any metadata like spam assessment or effort tags in this spec. Keep it focused entirely on instructions for code generation and testing.
Frequently asked questions about Spec Generator
Similar skills
Rhino 3D Scripting
Streamline your Rhinoceros 3D scripting tasks.
MVVM Toolkit
Streamline ViewModel development with source generators.
FreeCAD Scripts
Generate Python scripts for FreeCAD automation and modeling.
Azure Architecture Builder
Design and deploy Azure infrastructure using natural language.
Command Development
Streamline your command creation for Claude Code.
Create Cowork Plugin
Easily build and package plugins through guided sessions.
