specification

Generate implementation-agnostic technical specifications using RFC 2119 keywords.

5|Updated Feb 5, 2026
One-click install
npx skills add https://github.com/roby2358/skills --skill specification-roby2358
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: specification
Source: https://github.com/roby2358/skills/tree/main/specification
Command: npx skills add https://github.com/roby2358/skills --skill specification-roby2358

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Writing clear, implementation-agnostic technical specifications is often inconsistent, incomplete, and difficult to validate; this Skill provides a structured, standards-driven template and guidance to produce requirements that stakeholders and engineers can rely on. It reduces ambiguity by enforcing RFC 2119 terminology and by separating requirements from implementation details, improving communication, testing, and planning.

Core Features & Use Cases

  • Structured Spec Template: Defines required sections such as Purpose, UI Layout, Functional Requirements, Non-Functional Requirements, Dependencies, Implementation Notes, and Error Handling.
  • Requirement Language Guidance: Enforces use of RFC 2119 keywords (MUST/SHOULD/MAY) and instructs authors to write testable, present-tense, implementation-agnostic requirements.
  • Formatting & Review Checklist: Recommends plain Markdown lists, nested details, ASCII UI layouts, and a review checklist to ensure completeness.
  • Use Case: Prepare a SPEC.md for a new feature request, update an existing SPEC.md to reflect changed dependencies and error states, or review a peer's specification for testability and clarity.

Quick Start

Write a SPEC.md that outlines purpose, UI layout, functional and non-functional requirements, dependencies, implementation notes, and error handling for the feature you want specified.

Frequently Asked Questions about specification

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a technical specification that engineers can actually implement without ambiguity?

To write a clear technical specification, use RFC 2119 keywords like MUST, SHOULD, and MAY to define testable, implementation-agnostic requirements. Structure your SPEC.md with required sections covering purpose, functional requirements, UI layout, and error handling to remove ambiguity for stakeholders and engineers.

What should be included in a SPEC.md file for a new software feature?

A SPEC.md file should include sections for Purpose, UI Layout, Functional Requirements, Non-Functional Requirements, Dependencies, Implementation Notes, and Error Handling. Use plain Markdown lists, nested details, and ASCII UI layouts to present testable requirements clearly.

How do I format functional requirements in a spec document to ensure they are testable?

Format functional requirements using RFC 2119 keywords such as MUST and SHOULD, writing them in present tense. Keep requirements implementation-agnostic by avoiding specific code examples, which ensures the resulting technical specification remains directly testable and verifiable.

When do I need to use RFC 2119 keywords in technical spec writing?

Use RFC 2119 keywords in technical spec writing when you need to enforce precise requirement levels and reduce ambiguity. Applying MUST, SHOULD, and MAY distinguishes absolute requirements from optional behaviors, making the specification clearer for design reviews and acceptance criteria.

Can I include code examples in a technical specification document?

No, you should avoid implementation-specific code examples in a technical specification document. Specs must remain implementation-agnostic to focus on system behavior and requirements, ensuring the document stays flexible for engineering teams to choose their own technical solutions.

What is the best way to review a peer's technical specification for completeness?

The best way to review a peer's technical specification is to check for required sections like Purpose, Dependencies, and Error Handling, and verify that all requirements use RFC 2119 keywords. Ensure every MUST requirement is written in present tense and is directly testable.