agentleFS
komlukkomluk/scaffolding/skills/spec-design/SKILL.md

spec-design

Skill16 starsChanged 5 days agoMITView on GitHub

Write OpenSpec design.md and tasks.md artifacts. TRIGGER when: producing a technical design or task checklist for a spec-driven feature. SKIP: writing proposal.md (use spec-research); executing tasks.md (use spec-develop).

6 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

3 rules. 0 are common, 2 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

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

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

    Read {specs_path}/proposal.md first.

    line 12
  2. Distinctive:

    Use SHALL/MUST for normative requirements (avoid should/may)

    line 51
  3. Distinctive:

    Every requirement MUST have at least one scenario

    line 52

“Common” is measured: kept by at least 6 in 10 of the 5 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

OpenSpec Design & Tasks Writing

Guide for creating design.md (WHAT + HOW) and tasks.md (implementation checklist).

Prerequisite

Read {specs_path}/proposal.md first. Reference its capabilities and impact sections.

Path Enforcement: The specs_path MUST be .scaffolding/conversations/{UUID}/specs/ where {UUID} is a valid UUID (format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). NEVER use descriptive folder names.

.scaffolding/conversations/ is a symlink to <share>/projects/<repo-name>/conversations (paths below are unchanged; always go through the symlink).

design.md

Output Path

Write to: {specs_path}/design.md

Required Sections

SectionPurposeFormat
ContextBackground, current state, constraintsProse
Goals / Non-GoalsScope boundariesBullet lists
SpecificationsRequirements + scenariosGIVEN/WHEN/THEN
DecisionsTechnical choices + rationaleDecision: Why X over Y
Risks / Trade-offsKnown limitations[Risk] -> Mitigation
Migration PlanDeploy + rollback stepsChecklist (if applicable)
Open QuestionsUnresolved itemsNumbered list

Specification Format

### Requirement: user-session-timeout

The system SHALL terminate idle sessions after 30 minutes.

#### Scenario: session expires after inactivity

- **GIVEN** a user has an active session
- **WHEN** no activity occurs for 30 minutes
- **THEN** the session is invalidated and user is redirected to login

Rules:

  • Use SHALL/MUST for normative requirements (avoid should/may)
  • Every requirement MUST have at least one scenario
  • Each scenario is a potential test case
  • Map capabilities from proposal.md to requirement groups

Decision Format

## Decisions

### Use Redis for session storage
**Alternatives**: PostgreSQL, in-memory
**Rationale**: Sub-millisecond lookups, built-in TTL, already in stack

Scaffolding Constraints

Include in all designs:

  • Max 200 lines per Edit operation
  • Files must stay under 500 lines
  • Backend validation: pytest; Frontend: npm run validate
  • Map steps to specific workflow chain agents

tasks.md

Output Path

Write to: {specs_path}/tasks.md

Format Rules

RuleDetail
Group by ## N. Group NameNumbered headings
Checkbox per task- [ ] N.M Task description
Dependency orderTasks ordered by what must come first
File pathsInclude target file path in task
Acceptance criteriaEach task independently verifiable
Validation stepInclude pytest / npm run validate per group
SizeEach task completable in one session

Template

## 1. Setup
- [ ] 1.1 Create `./backend` module structure
- [ ] 1.2 Add dependencies to `requirements.txt`

## 2. Core Implementation
- [ ] 2.1 Implement service in `./backend/service.py`
- [ ] 2.2 Add Pydantic schemas in `./backend/schemas.py`
- [ ] 2.3 Add router in `./backend/router.py`
- [ ] 2.4 Run validation: `pytest`

## 3. Frontend + Tests
- [ ] 3.1 Add types to `app/frontend/src/types/index.ts`
- [ ] 3.2 Create component, add unit + integration tests
- [ ] 3.3 Run validation: `npm run validate && pytest`

Quality Checklist

  • design.md references proposal.md capabilities
  • Every requirement has GIVEN/WHEN/THEN scenarios
  • Decisions include alternatives considered
  • Risks have specific mitigations
  • tasks.md uses checkbox format (- [ ])
  • Tasks ordered by dependency
  • Each group has a validation step
  • File paths included in task descriptions

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.