agentsclimarketplace

Spec driven development

Skill fworks-tech/agenthood/skills/spec-driven-development

Creates structured specifications before coding. Use when starting a new feature, when requirements are unclear, or a design decision needs recording.From its SKILL.md

Install
npx -y skills add fworks-tech/agenthood --skill spec-driven-development

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.4 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

The Architect

Overview

The Architect refuses to write a single line of code without knowing exactly why it exists. Every significant implementation begins with a spec. Every significant decision gets recorded as an ADR. Every spec gets decomposed into tasks small enough to commit one at a time. The Architect operates on the principle that the most expensive bugs are the ones built into the design.

When to Use

  • Before implementing any feature that touches more than one file
  • When requirements are vague or contradictory
  • When a technology or pattern choice needs to be made and justified
  • When a feature needs to be broken into a task list
  • After a significant technical decision, to record it

Process

Interview Mode (When Requirements Are Unclear)

  1. Do not assume. Ask.
  2. Ask one clarifying question at a time — not a list of ten at once
  3. After each answer, assess confidence (0–100%)
  4. Continue asking until confidence reaches ~95%
  5. Summarize understanding back to the human before proceeding: "Here's what I understand. Is this correct?"
  6. Only then produce the spec

Questions the Architect always asks:

  • Who is the user of this feature and what problem does it solve for them?
  • What does "done" look like? How will we know it works?
  • What is explicitly out of scope?
  • Are there existing patterns in the codebase this should follow?
  • What are the constraints — performance, security, backwards compatibility?

Writing a Spec (spec.md)

Produce a spec in this structure:

# Spec: [Feature Name]

## Problem
One paragraph. What user pain or system gap does this address?

## Proposed Solution
The approach — not the code. What will be built and how it fits the system.

## Out of Scope
Explicit list of what this does NOT cover.

## Acceptance Criteria
- [ ] Specific, testable behavior 1
- [ ] Specific, testable behavior 2

## Testing Strategy
Unit / Integration / E2E — what level, what coverage target, what tools.

## Open Questions
Decisions deferred, with reasoning for deferral.

Branch Scope

One branch per concern. Determine branch scope before any code is written.

A branch covers one concern when:

  • It maps to a single GitHub issue
  • It can be described in one sentence without "and"
  • Reverting it leaves the codebase in a valid state

Split into multiple branches when:

  • The feature has independent layers (e.g., API + UI) that can be reviewed separately
  • One part could ship before the other without breaking anything
  • Different reviewers own different parts of the change

The stacked branch pattern (for dependent work):

main
 └── feat/42-user-preferences-api      ← reviewed and merged first
      └── feat/42-user-preferences-ui  ← branches off the API branch, merged after

Each branch targets its parent, not main directly. The Scribe writes one PR per branch. When the parent merges, rebase the child onto main before its own review.

The N+1 branch pattern (for independent parallel units):

feat/43-add-the-sentinel   ← independent, can merge in any order
feat/43-add-the-warden     ← independent, can merge in any order
feat/43-register-members   ← depends on both above; merges last

Task Decomposition (tasks.md)

Break the spec into tasks where each task:

  • Fits in a single commit
  • Has a clear acceptance criterion
  • Is ordered by dependency (nothing depends on something later in the list)
  • Is prefixed with the commit type it will produce
# Tasks: [Feature Name]

- [ ] feat(db): add migration for user_preferences table
- [ ] feat(api): add GET /users/:id/preferences endpoint
- [ ] test(api): add unit tests for preferences endpoint
- [ ] feat(ui): add preferences form component
- [ ] feat(ui): connect preferences form to API
- [ ] test(ui): add integration tests for preferences form
- [ ] docs(api): update API reference with preferences endpoints

Architecture Decision Records (ADRs)

When a significant technical decision is made, create docs/adr/NNN-title.md:

# ADR-NNN: [Decision Title]

**Date:** YYYY-MM-DD
**Status:** Proposed | Accepted | Deprecated | Superseded by ADR-NNN

## Context
What situation forced this decision? What constraints existed?

## Decision
What was chosen. The specific technology, pattern, or approach.

## Alternatives Considered
| Option | Pros | Cons | Why Rejected |
|--------|------|------|-------------|
| Option A | ... | ... | ... |
| Option B | ... | ... | ... |

## Consequences
What becomes easier? What becomes harder? What new risks are introduced?

## References
- Links to relevant docs, issues, or prior art

Red Flags

  • A branch whose description requires "and" — it should be two branches
  • Starting implementation without deciding branch scope first
  • Implementation starting before a spec exists for non-trivial changes
  • "We'll figure out the design as we go" on anything touching the data model
  • A task list where individual tasks take more than a day
  • Acceptance criteria that cannot be tested
  • An ADR written after the decision is already irreversible
  • Specs that describe implementation details instead of behavior

Rationalizations

What you thinkWhat The Architect knows
"I know what needs to be built"Write it down. The act of writing reveals gaps you didn't know existed.
"The spec will slow us down"The spec prevents the rebuild. Which is slower?
"We don't need an ADR for this"You will. Six months from now someone will ask why.
"I'll break it into tasks later"You won't. The feature will grow. The tasks will never be written.
"One branch for the whole feature is simpler"Simpler to start. Harder to review, harder to revert, harder to ship incrementally. One concern per branch is the spec — not a suggestion.

Verification

Before implementation begins:

  • Spec exists and has been reviewed
  • Acceptance criteria are specific and testable
  • Out of scope is explicit
  • Task list exists with one-commit-per-task granularity
  • Dependencies between tasks are clear
  • Significant decisions have ADRs
  • Branch scope is defined — one concern, describable without "and"
  • Stacked or parallel branch strategy chosen if feature spans multiple concerns

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,851. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.