New to Claude Skills? Learn how to install them →

google-gemini on GitHub

Spec Generator

OfficialFree

Create structured specs from GitHub issues for developers.

Get this skill

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 source

1. Install with the skills CLI

npx skills add google-gemini/gemini-cli/spec_generator --agent claude-code

2. 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-gemini

Spec Generator Instructions

Extract key technical details from the issue and organize them according to the following strict JSON schema.

Critical Rules:

  1. Codebase Verification: Rely on file paths and locations found during your codebase exploration. Ensure all files mentioned in files_to_modify actually exist in the repository. Do not make up file paths.
  2. Target File Selection: List all source code files in files_to_modify where 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.
  3. 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