Agent skill

Spec Driven Development

by abashev in abashev/vfs-s3

Creates specs before coding. An agent skill from abashev/vfs-s3.

Apache-2.0Auto-check passedDevelopment

Install Spec Driven Development

skills CLI
$ npx skills add abashev/vfs-s3 --skill spec-driven-development -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install abashev/vfs-s3 spec-driven-development --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/abashev/vfs-s3.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/spec-driven-development .claude/skills/spec-driven-development && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
spec-driven-development
GitHub stars
106
Used in
5 other repos
Token cost
~2.1k tokens
SKILL.md length
872 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

Creates specs before coding. An agent skill from abashev/vfs-s3.

  • Works in 4 steps: Specify → Plan → Tasks → …
  • Starting a new project
  • SKILL.md covers Overview, When to Use, The Gated Workflow and Keeping the Spec Alive, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Spec Driven Development is an agent skill from abashev/vfs-s3. Creates specs before coding. Use when starting a new project, feature, or significant change and no specification exists yet. Use when requirements are unclear, ambiguous, or only exist as a vague idea.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Spec-driven development. The repository describes itself as: Amazon S3 driver for Apache commons-vfs (Virtual File System) project. The licence is Apache-2.0.

When your agent uses it

  • Starting a new project
  • Significant change and no specification exists yet
  • Requirements are unclear
  • Only exist as a vague idea

Example prompts

  • “Use the spec-driven-development skill to create specs before coding. An agent skill from abashev/vfs-s3”
  • “/spec-driven-development”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Specify
  2. Plan
  3. Tasks
  4. Implement

What it can do on your machine

Read from SKILL.md and the folder at commit 635eadf. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Spec Driven Development loads about 2.1k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 872 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~57
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from abashev/vfs-s3 at commit 635eadf, republished under its Apache-2.0 licence (© abashev). 872 words, ~2,112 tokens.

Download SKILL.mdSave it as .claude/skills/spec-driven-development/SKILL.md (or your agent's skills folder).
name
spec-driven-development
description
Creates specs before coding. Use when starting a new project, feature, or significant change and no specification exists yet. Use when requirements are unclear, ambiguous, or only exist as a vague idea.

Spec-Driven Development

Overview

Write a structured specification before writing any code. The spec is the shared source of truth between you and the human engineer — it defines what we're building, why, and how we'll know it's done. Code without a spec is guessing.

When to Use

  • Starting a new project or feature
  • Requirements are ambiguous or incomplete
  • The change touches multiple files or modules
  • You're about to make an architectural decision
  • The task would take more than 30 minutes to implement

When NOT to use: Single-line fixes, typo corrections, or changes where requirements are unambiguous and self-contained.

The Gated Workflow

Spec-driven development has four phases. Do not advance to the next phase until the current one is validated.

SPECIFY ──→ PLAN ──→ TASKS ──→ IMPLEMENT
   │          │        │          │
   ▼          ▼        ▼          ▼
 Human      Human    Human      Human
 reviews    reviews  reviews    reviews
Phase 1: Specify

Start with a high-level vision. Ask the human clarifying questions until requirements are concrete.

Surface assumptions immediately. Before writing any spec content, list what you're assuming:

ASSUMPTIONS I'M MAKING:
1. This is a web application (not native mobile)
2. Authentication uses session-based cookies (not JWT)
3. The database is PostgreSQL (based on existing Prisma schema)
4. We're targeting modern browsers only (no IE11)
→ Correct me now or I'll proceed with these.

Don't silently fill in ambiguous requirements. The spec's entire purpose is to surface misunderstandings before code gets written — assumptions are the most dangerous form of misunderstanding.

Write a spec document covering these six core areas:

  1. Objective — What are we building and why? Who is the user? What does success look like?

  2. Commands — Full executable commands with flags, not just tool names.

    Build: npm run build
    Test: npm test -- --coverage
    Lint: npm run lint --fix
    Dev: npm run dev
  3. Project Structure — Where source code lives, where tests go, where docs belong.

    src/           → Application source code
    src/components → React components
    src/lib        → Shared utilities
    tests/         → Unit and integration tests
    e2e/           → End-to-end tests
    docs/          → Documentation
  4. Code Style — One real code snippet showing your style beats three paragraphs describing it. Include naming conventions, formatting rules, and examples of good output.

  5. Testing Strategy — What framework, where tests live, coverage expectations, which test levels for which concerns.

  6. Boundaries — Three-tier system:

    • Always do: Run tests before commits, follow naming conventions, validate inputs
    • Ask first: Database schema changes, adding dependencies, changing CI config
    • Never do: Commit secrets, edit vendor directories, remove failing tests without approval

Spec template:

markdown
# Spec: [Project/Feature Name]

## Objective
[What we're building and why. User stories or acceptance criteria.]

## Tech Stack
[Framework, language, key dependencies with versions]

## Commands
[Build, test, lint, dev — full commands]

## Project Structure
[Directory layout with descriptions]

## Code Style
[Example snippet + key conventions]

## Testing Strategy
[Framework, test locations, coverage requirements, test levels]

## Boundaries
- Always: [...]
- Ask first: [...]
- Never: [...]

## Success Criteria
[How we'll know this is done — specific, testable conditions]

## Open Questions
[Anything unresolved that needs human input]

Reframe instructions as success criteria. When receiving vague requirements, translate them into concrete conditions:

REQUIREMENT: "Make the dashboard faster"

REFRAMED SUCCESS CRITERIA:
- Dashboard LCP < 2.5s on 4G connection
- Initial data load completes in < 500ms
- No layout shift during load (CLS < 0.1)
→ Are these the right targets?

This lets you loop, retry, and problem-solve toward a clear goal rather than guessing what "faster" means.

Phase 2: Plan

With the validated spec, generate a technical implementation plan:

  1. Identify the major components and their dependencies
  2. Determine the implementation order (what must be built first)
  3. Note risks and mitigation strategies
  4. Identify what can be built in parallel vs. what must be sequential
  5. Define verification checkpoints between phases

Follow planning-and-task-breakdown for the dependency-graph mapping and vertical-slicing mechanics behind these steps; it is the canonical source. The bullets above are a lightweight summary; if they ever diverge, planning-and-task-breakdown takes precedence.

Output convention: Save the plan to tasks/plan.md and the task list to tasks/todo.md, per the /plan command convention. Create tasks/ if it does not exist. Downstream commands (/build, etc.) expect these paths.

The plan should be reviewable: the human should be able to read it and say "yes, that's the right approach" or "no, change X."

Show full SKILL.md (396 more words)Show less
Phase 3: Tasks

Break the plan into discrete, implementable tasks:

  • Each task should be completable in a single focused session
  • Each task has explicit acceptance criteria
  • Each task includes a verification step (test, build, manual check)
  • Tasks are ordered by dependency, not by perceived importance
  • No task should require changing more than ~5 files

Follow planning-and-task-breakdown for the full task-sizing and dependency-ordering mechanics; it is the canonical source. The template below is a lightweight inline form; if they ever diverge, planning-and-task-breakdown takes precedence.

Task template:

markdown
- [ ] Task: [Description]
  - Acceptance: [What must be true when done]
  - Verify: [How to confirm — test command, build, manual check]
  - Files: [Which files will be touched]
Phase 4: Implement

Execute tasks one at a time following skills/incremental-implementation/SKILL.md (incremental-implementation) and skills/test-driven-development/SKILL.md (test-driven-development). Use skills/context-engineering/SKILL.md (context-engineering) to load the right spec sections and source files at each step rather than flooding the agent with the entire spec.

Keeping the Spec Alive

The spec is a living document, not a one-time artifact:

  • Update when decisions change — If you discover the data model needs to change, update the spec first, then implement.
  • Update when scope changes — Features added or cut should be reflected in the spec.
  • Commit the spec — The spec belongs in version control alongside the code.
  • Reference the spec in PRs — Link back to the spec section that each PR implements.

Common Rationalizations

RationalizationReality
"This is simple, I don't need a spec"Simple tasks don't need long specs, but they still need acceptance criteria. A two-line spec is fine.
"I'll write the spec after I code it"That's documentation, not specification. The spec's value is in forcing clarity before code.
"The spec will slow us down"A 15-minute spec prevents hours of rework. Waterfall in 15 minutes beats debugging in 15 hours.
"Requirements will change anyway"That's why the spec is a living document. An outdated spec is still better than no spec.
"The user knows what they want"Even clear requests have implicit assumptions. The spec surfaces those assumptions.

Red Flags

  • Starting to write code without any written requirements
  • Asking "should I just start building?" before clarifying what "done" means
  • Implementing features not mentioned in any spec or task list
  • Making architectural decisions without documenting them
  • Skipping the spec because "it's obvious what to build"

Verification

Before proceeding to implementation, confirm:

  • The spec covers all six core areas
  • The human has reviewed and approved the spec
  • Success criteria are specific and testable
  • Boundaries (Always/Ask First/Never) are defined
  • The spec is saved to a file in the repository

© abashev, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/spec-driven-development of abashev/vfs-s3.

Open the folder on GitHubat commit 635eadf

Used in 5 other repositories

We found 9 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 5 other GitHub owners. This page covers the copy in abashev/vfs-s3, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Spec Driven Development next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Spec Driven Development compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Spec Driven Development this skillabashev/vfs-s31065 repos~2.1kAutomated safety check: PassApache-2.0
OpenSpec Bulk Change ArchiverFission-AI/OpenSpec71k2 repos~5.6kAutomated safety check: PassMIT
Speckit ConstitutionWeihanLi/WeihanLi.Common24211 repos~2.1kAutomated safety check: PassApache-2.0
Speckit Analyzekunstmusik/blue15418 repos~3kAutomated safety check: PassGPL-3.0
Speckit Plankunstmusik/blue15418 repos~2.1kAutomated safety check: PassGPL-3.0
Review Spdzhu1090093659/spec_driven_develop983—~1.5kAutomated safety check: PassMIT

Similar skills

  • Archives several completed OpenSpec changes in one operation, checking the codebase to resolve spec conflicts rather than archiving blindly.

    71k GitHub starsUsed in 2 repos~5.6k tokens
    DevelopmentAuto-check passed
  • Speckit Constitution

    WeihanLi/WeihanLi.Common

    Create or update the project constitution from interactive or provided principle inputs, ensuring all dependent templates stay in sync.

    242 GitHub starsUsed in 11 repos~2.1k tokens
    DevelopmentAuto-check passed
  • Speckit Analyze

    kunstmusik/blue

    Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.

    154 GitHub starsUsed in 18 repos~3k tokens
    DevelopmentAuto-check passed
  • Speckit Plan

    kunstmusik/blue

    Execute the implementation planning workflow using the plan template to generate design artifacts.

    154 GitHub starsUsed in 18 repos~2.1k tokens
    DevelopmentAuto-check passed
  • Review Spd

    zhu1090093659/spec_driven_develop

    Findings-first code review workflow for AI coding agents. An agent skill from zhu1090093659/spec_driven_develop.

    983 GitHub stars~1.5k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Speckit Specify

    kunstmusik/blue

    Create or update the feature specification from a natural language feature description.

    154 GitHub starsUsed in 18 repos~4.7k tokens
    DevelopmentAuto-check passed

More from abashev/vfs-s3

  • Context Engineering

    abashev/vfs-s3

    Optimizes agent context setup. An agent skill from abashev/vfs-s3.

    106 GitHub starsUsed in 9 repos~2.6k tokens
    Auto-check: notes
  • Breaks work into ordered tasks. An agent skill from abashev/vfs-s3.

    106 GitHub starsUsed in 8 repos~1.9k tokens
    Auto-check passed
  • Guides systematic root-cause debugging. An agent skill from abashev/vfs-s3.

    106 GitHub starsUsed in 6 repos~2.6k tokens
    Auto-check passed
  • Subjects every non-trivial decision to a fresh-context adversarial review before it stands.

    106 GitHub starsUsed in 6 repos~4.1k tokens
    Auto-check passed
  • Delivers changes incrementally. An agent skill from abashev/vfs-s3.

    106 GitHub starsUsed in 6 repos~2.2k tokens
    Auto-check passed
  • Drives development with tests. An agent skill from abashev/vfs-s3.

    106 GitHub starsUsed in 5 repos~3.7k tokens
    Auto-check passed

Categories

Questions about Spec Driven Development

What does Spec Driven Development do?

Creates specs before coding. An agent skill from abashev/vfs-s3. Spec Driven Development is an agent skill from abashev/vfs-s3. Creates specs before coding.

When should I use Spec Driven Development?

Spec Driven Development fits situations like: starting a new project; significant change and no specification exists yet; requirements are unclear; only exist as a vague idea.

How do I install Spec Driven Development in Claude Code?

Run `npx skills add abashev/vfs-s3 --skill spec-driven-development -a claude-code`. Or copy the skill folder (.claude/skills/spec-driven-development in abashev/vfs-s3) into .claude/skills/spec-driven-development in your project. Claude Code loads it when a task matches its description.

How do I install Spec Driven Development in Codex?

Run `npx skills add abashev/vfs-s3 --skill spec-driven-development -a codex`. Or copy the skill folder (.claude/skills/spec-driven-development in abashev/vfs-s3) into .agents/skills/spec-driven-development in your project. Codex loads it when a task matches its description.

Can I use Spec Driven Development in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add abashev/vfs-s3 --skill spec-driven-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/spec-driven-development, .gemini/skills/spec-driven-development, .github/skills/spec-driven-development and .opencode/skills/spec-driven-development in your project.

What does Spec Driven Development need to run?

SKILL.md names no scripts, command-line tools or credentials: Spec Driven Development is instructions for the agent only.

Does Spec Driven Development access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Spec Driven Development safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Spec Driven Development use?

Spec Driven Development is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Spec Driven Development use?

About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Spec Driven Development?

Skills that share tags, products or a category with Spec Driven Development: OpenSpec Bulk Change Archiver (Fission-AI/OpenSpec, 71k stars), Speckit Constitution (WeihanLi/WeihanLi.Common, 242 stars), Speckit Analyze (kunstmusik/blue, 154 stars) and Speckit Plan (kunstmusik/blue, 154 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Spec Driven Development?

abashev (a GitHub user) maintains it in abashev/vfs-s3, which has 106 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on September 30, 2026.

Source: abashev/vfs-s3 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.