agentleFS
rundopsrundops/dops/.claude/skills/spec-workflow/SKILL.md

spec-workflow

Skill3 starsChanged 8 months agoMITView on GitHub

Spec-driven development workflow. Use when creating new features, writing specs, planning implementation from specs, mapping specs to tests, or when the user references a spec file. Triggers on spec creation, implementation planning, or any mention of specs, requirements, or acceptance criteria.

10 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

8 rules. 0 are common, 5 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 8 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Create the plan in plans/ as an active plan

    line 58
  2. Distinctive:

    Only after explicit approval, begin implementation

    line 60
  3. Very specific:

    When implementation is complete and verified, move the plan to plans/completed/

    line 61
  4. Very specific:

    Only approved plans are moved to plans/completed/ — rejected or abandoned plans are deleted

    line 64
  5. Distinctive:

    Never implement an unapproved plan

    line 66
  6. Distinctive:

    If it's not in the spec, don't build it

    line 87
  7. Distinctive:

    If the spec is ambiguous, clarify it before coding — don't guess

    line 88
  8. Distinctive:

    If implementation reveals a gap in the spec, update the spec first

    line 89

“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Spec-Driven Workflow

This project follows a spec-driven development process. Specs are the source of truth for what gets built.

Spec Format

Specs are plain markdown files stored in specs/. Each spec describes one feature or capability.

Structure:

# Feature Name

## Overview
One paragraph describing what this feature does and why it exists.

## Requirements
- Concrete, testable requirements
- Each requirement maps to one or more tests
- Use precise language — "must", "should", "may" per RFC 2119

## Acceptance Criteria
- [ ] Criterion 1 — specific, verifiable condition
- [ ] Criterion 2
- [ ] Criterion 3

## Error Cases
- What happens when X fails
- What the user sees when Y is invalid

## Out of Scope
- What this feature explicitly does NOT do (prevents scope creep)

Plans

Plans are implementation proposals that must be approved before work begins.

Directory structure:

plans/
├── 2026-03-22-deploy-command.md       # Active (in progress or awaiting approval)
├── 2026-03-22-config-loading.md       # Active
└── completed/
    ├── 2026-03-20-project-setup.md    # Approved and done
    └── 2026-03-21-cli-skeleton.md     # Approved and done

Naming: YYYY-MM-DD-<short-description>.md — datetime prefix followed by a kebab-case description.

Lifecycle:

  1. Create the plan in plans/ as an active plan
  2. Present to user for review and approval
  3. Only after explicit approval, begin implementation
  4. When implementation is complete and verified, move the plan to plans/completed/

Rules:

  • Only approved plans are moved to plans/completed/ — rejected or abandoned plans are deleted
  • A plan that needs revision stays in plans/ until re-approved
  • Never implement an unapproved plan

Workflow

  1. Write the spec first — before any code
  2. Create a plan — write an implementation plan in plans/YYYY-MM-DD-<description>.md
  3. Get approval — present the plan to the user; do not proceed without explicit approval
  4. Write tests from acceptance criteria — each criterion becomes one or more test cases
  5. Implement to pass the tests — the spec and approved plan define the boundary of work
  6. Verify — all acceptance criteria checked off
  7. Complete the plan — move the approved plan to plans/completed/

Spec-to-Code Traceability

  • Names mirror spec language — if the spec says "deployment target", the type is DeploymentTarget
  • Tests reference the spec — test names reflect acceptance criteria
  • Functions map to requirements — if you can't trace a function to a spec, question it (YAGNI)
  • Error handling matches spec error cases — every documented error scenario has a test

Rules

  • If it's not in the spec, don't build it
  • If the spec is ambiguous, clarify it before coding — don't guess
  • If implementation reveals a gap in the spec, update the spec first
  • Specs are living documents — update them when requirements change
  • Acceptance criteria are the definition of done

Spec Review Checklist

Before implementing:

  • Every requirement is testable (no vague language like "should be fast")
  • Error cases are documented
  • Out of scope is defined
  • No implicit requirements — everything is explicit
  • Naming is consistent with existing specs and codebase

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.