agentleFS
jpantsjohajpantsjoha/ai-native-developer-experience/skills/spec-first-delivery/SKILL.md

spec-first-delivery

Skill13 starsChanged 27 days agoApache-2.0View on GitHub

Force plan, HLD, ADRs, and constraints to exist BEFORE any code is generated. Trigger when starting a new feature, epic, or significant change.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use adoption and evidence guidance when requirements come from conversations or when operational ownership is unclear.

    line 32
  2. Distinctive:

    No code without a spec: If an agent begins generating code before a spec exists, stop it and invoke this skill.

    line 45

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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-First Delivery

Review the spec harder than the code. The cheapest place to be wrong is the spec.

The harness runs in this order: spec → plan → tasks → code. Skipping the spec is not faster — it is a deferred rewrite.

When to use

  • Any new feature or epic with more than ~1 day of effort
  • Infrastructure or architectural changes
  • Anything involving a new external dependency, data boundary, or API contract
  • Any time an agent offers to "just start coding"

Procedure

  1. Establish the vision artifact — confirm the project's vision document exists and is current (e.g. docs/VISION.md or equivalent per project structure). If not, create or update it before proceeding.
  2. Write the feature spec — document: what, why, who (user/actor), constraints, acceptance criteria, and out-of-scope. Reject vague specs ("improve performance") in favour of measurable ones ("p99 latency < 200 ms under 1k rps").
  3. Author or reference the HLD — a high-level design covering: components affected, data flows, integration points, and failure modes. Diagrams preferred (C4 or sequence).
  4. Create or update ADRs — one ADR per significant technical decision. Format: Context → Decision → Consequences (trade-offs). Number sequentially (ADR-NNN).
  5. Document constraints up front — security requirements, data residency, budget ceiling, compliance scope, team skill set. Constraints missed here surface as blockers late.
  6. Plan applicable service transition — identify receiving owner, support, monitoring, runbooks, recovery, knowledge transfer and user acceptance. Schedule their dependencies before the releases they enable; document proportionate non-applicability.
  7. Validate spec completeness — the spec is done when: acceptance criteria are testable, the failure mode is named, rollback is considered, and cost impact is estimated.
  8. Only then: generate the implementation plan and tasks. Hand the spec (not a prompt) to the agent.

Use adoption and evidence guidance when requirements come from conversations or when operational ownership is unclear. A discussion remains a proposal until its accountable owner accepts it within scope.

Outputs

  • requirements/FEATURE_SPEC.md (or equivalent per project structure)
  • architecture/decisions/ADR-NNN-<short-title>.md (one per decision)
  • architecture/HLD-<feature>.md (if not already covered)
  • Updated project roadmap (e.g. docs/ROADMAP.md or equivalent per project structure) with new tasks or milestones

Guardrails

  • No code without a spec. If an agent begins generating code before a spec exists, stop it and invoke this skill.
  • Loose spec = confident but wrong output. A vague spec produces plausible-looking, wrong code. Tighten the spec first.
  • Spec is not a prompt. The spec is a structured document with testable criteria; a prompt is a hint. Do not substitute one for the other.
  • Context efficiency: Evaluate whether full spec documents are needed, or whether ADRs + plan mode provide sufficient context. Overhead should be proportional to risk.

Anti-rationalization table

Excuse the agent makesCounter
"I have enough context to start coding"No spec = no acceptance criteria = no way to know if the output is correct. Write the spec.
"The spec will slow us down"A missing spec causes rewrites. Rewrites cost more than specs.
"The requirements are obvious"Obvious requirements are the ones most often wrong. Write them down and verify.
"We can spec it after the prototype"Prototypes become production. Spec it now.

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.