Skip to content
Skill Authoring
Skill

/speckit-baseline

Generate feature specifications by analyzing existing source code.

BOOST
From plugin
speckit-agent-skills
15112 skills
Install
$ npx -y skills add dceoy/speckit-agent-skills --skill speckit-baseline --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/speckit-baseline

Context preview

The summary Claude sees to decide when to auto-load this skill.

Generate feature specifications by analyzing existing source code.

SKILL.md

speckit-baseline.SKILL.md
name: speckit-baseline
description: Generate feature specifications by analyzing existing source code.

Spec Kit Baseline Skill

When to Use

  • You need a spec for existing or legacy code.
  • You want to document a feature before refactoring.
  • You inherited a codebase without written requirements.

Inputs

  • A target path, file list, or glob pattern describing the code to analyze.
  • Repo context with `.specify/` scripts and templates.

If the target is missing or ambiguous, ask a focused question before continuing.

Goal

Generate a technology-agnostic spec for existing code, then create the feature branch/spec file using the standard Spec Kit templates.

Workflow

1. **Parse target input**: Identify files, directories, or patterns to analyze.

  • Accept file paths, glob patterns, or directory paths.
  • If empty: stop and ask for a concrete target.

2. **Discover and read source files**:

  • Expand globs to a file list.
  • Read file contents for analysis.
  • Identify primary language(s) and frameworks.
  • Map key file relationships and dependencies.

3. **Analyze code structure**:

  • Identify entry points and public interfaces.
  • Extract function/method signatures and behaviors.
  • Find data models and entities.
  • Detect API endpoints and routes.
  • Identify user-facing functionality.

4. **Generate a short name** (2-4 words) from the analyzed code:

  • Use action-noun format (e.g., "user-auth", "payment-processing").
  • Base on primary functionality discovered.
  • Preserve technical terms where meaningful.

5. **Create the feature branch and spec file**:

  • Find the highest existing feature number for this short name (branches/specs).
  • Run `.specify/scripts/bash/create-new-feature.sh --json` with the calculated number and short name.
  • Read BRANCH_NAME, FEATURE_DIR, and SPEC_FILE paths from the script JSON output.
  • For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot").

6. **Load the spec template** from `.specify/templates/spec-template.md`.

7. **Draft the specification** using the template structure:

  • **User Stories**: Infer from user-facing code paths and interactions.
  • **Acceptance Scenarios**: Derive from validation logic, error handling, and tests.
  • **Functional Requirements**: Extract from business rules and constraints.
  • **Key Entities**: Identify from data models and schemas.
  • **Success Criteria**: Infer from metrics, logging, or performance-related code.
  • **Assumptions**: Document inferences made during analysis.

8. **Abstract implementation details**:

  • Convert technical patterns to user-focused requirements.
  • Remove framework-specific terminology.
  • Focus on WHAT the code does, not HOW it does it.

9. **Create spec quality checklist** at `FEATURE_DIR/checklists/requirements.md`.

10. **Report completion** with:

  • Branch name and spec file path.
  • Summary of analyzed files.
  • Key features discovered.
  • Areas needing clarification or review.

Outputs

  • `specs/<feature>/spec.md`
  • `specs/<feature>/checklists/requirements.md`

Key rules

  • Focus on extracting WHAT and WHY from HOW.
  • Abstract away implementation details in the generated spec.
  • Document assumptions made during code analysis.
  • Flag areas where code behavior is unclear.
  • Preserve discovered business rules and constraints.
  • Use `[NEEDS CLARIFICATION]` for ambiguous code sections (max 3).
  • Generated specs should be validated by someone who knows the feature.

Examples

**Code Pattern → Spec Requirement**:

  • `if (user.role === 'admin')` → "System MUST restrict action to administrator users"
  • `password.length >= 8` → "Passwords MUST be at least 8 characters"
  • `cache.set(key, value, 3600)` → "System MUST cache results for improved performance"
  • `try { ... } catch (e) { notify(e) }` → "System MUST notify users when errors occur"

**Code Pattern → User Story**:

  • Login endpoint with OAuth → "As a user, I can sign in using my social account"
  • Shopping cart logic → "As a customer, I can add items to my cart for later purchase"
  • Report generation → "As an analyst, I can generate reports on system activity"

Next Steps

After generating spec.md:

  • **Clarify** with domain experts using speckit-clarify.
  • **Plan** modernization/refactoring with speckit-plan.
  • **Compare** the generated spec with actual requirements to identify gaps.
Read more
Ships withspeckit-agent-skills

Agent skills and generated runtime entry points for Spec Kit.

Get the whole plugin

Other skills on speckit-agent-skills.