Skip to content
All Skills

Spec

Manage protocol/standard specifications that define what a system must do. Use to create, import, or update the contract that TASKs implement against.

Software Engineering|v1|Updated 7/14/2026|GitHub source
MCP get_skill({ skillId: "spec-01093441" })

Use this skill with your agent

Create a free account and connect via MCP

Get Started Free
# /spec

Manage protocol-level specifications - the contract defining *what* a system must do.

## What is a Spec?

A **spec** (specification) defines requirements at the protocol/standard level:
- **External specs**: Standards you implement (LEAF spec, OAuth, OpenAPI)
- **Self-authored specs**: Your own protocol defining what your system does

Specs are NOT feature breakdowns or epics. They are the **source of truth** for requirements.

## Usage

```bash
/spec                           # Show current project's spec status
/spec --import <url>            # Import external spec (GitHub, raw URL)
/spec --init                    # Create new protocol spec for project
/spec --sync                    # Sync imported spec with upstream
/spec --section <name>          # Show specific section of spec
```

## File Structure

```
spaces/[project]/
├── docs/
│   ├── specs/                  # The protocol spec (source of truth)
│   │   ├── README.md           # Spec overview and compliance status
│   │   ├── api-specification.md # API contract
│   │   ├── data-models.md      # Data structures
│   │   ├── required-features.md # Feature requirements
│   │   └── ...
│   └── adrs/                   # Architecture decisions
└── src/                        # Implementation

ideas/[project]/
├── project-brief.md            # Strategy (private)
└── issues/
    └── 001-auth/
        └── TASK.md             # implements: docs/specs/required-features.md#authentication
```

**Why specs live with code:**
- Specs are the contract the code fulfills
- Developers need them alongside implementation
- Changes to spec and code can be atomic commits
- All documentation (specs, ADRs) lives together in docs/

## Execution Flow

### 1. Determine Context

```bash
Read: ideas/[project]/project-brief.md    # Strategy context
Glob: spaces/[project]/docs/specs/*.md    # Existing specs
```

Questions:
- Does this project implement an external spec?
- Or does it need its own protocol spec?

### 2a. Import External Spec

For projects implementing a standard (like leaf-nextjs-convex → LEAF spec):

```bash
/spec --import https://github.com/leafspec/spec
```

**Process:**
1. Clone/fetch spec files
2. Copy to `spaces/[project]/docs/specs/`
3. Create `docs/specs/README.md` with:
   - Source URL and version
   - Last synced date
   - Compliance checklist
4. Suggest initial TASKs based on spec sections

**Sync upstream changes:**
```bash
/spec --sync
```

### 2b. Create Protocol Spec

For projects that need their own spec (like coordinatr):

```bash
/spec --init
```

**Conversational creation:**
1. What does this system do? (elevator pitch)
2. Who are the actors/users?
3. What are the core operations?
4. What are the API boundaries?
5. What are the data models?

**Output structure:**
```markdown
# [Project] Specification

## Overview
[What this system does and why]

## Actors
[Who/what interacts with the system]

## Core Operations
[The fundamental things the system must do]

## API Specification
[Endpoints, inputs, outputs, errors]

## Data Models
[Entity definitions, relationships, constraints]

## Required Features
[Feature requirements organized by domain]

## Test Criteria
[How to verify compliance]
```

### 3. Spec Status Dashboard

```bash
/spec  # No arguments
```

Shows:
- Spec source (external URL or self-authored)
- Last updated/synced
- Sections and their implementation status
- Linked TASKs per section

## Spec vs Old "Feature Specs"

| Old Model (Wrong) | New Model (Correct) |
|-------------------|---------------------|
| SPEC-001, SPEC-002... | Single protocol spec |
| Feature breakdown | Requirements contract |
| Internal planning docs | Source of truth |
| Created per feature | Created once, evolved |
| TASKs link to SPEC-### | TASKs implement spec sections |

## Integration with /issue

When creating a TASK, link to the spec section it implements:

```yaml
---
implements: docs/specs/required-features.md#authentication
---
```

The `/issue` command will prompt:
> "Which spec section does this implement? (or 'none' for standalone)"

## Compliance Tracking

Status is tracked **inline** within spec documents at the requirement level:

```markdown
### §1 Authentication

**Requirements:**
- ✅ User registration with email/password
- ✅ User login with JWT token
- ⏳ Password reset flow
- ⏳ Email verification

**API Endpoints:**
- ✅ `POST /api/auth/register`
- ✅ `POST /api/auth/login`
- ⏳ `POST /api/auth/reset-password`
```

**Status markers:**
- ✅ Implemented and working
- 🚧 In progress
- ⏳ Not started

This allows granular visibility into what's done without referencing private TASKs.

The `/complete` command updates these markers when work is finished.

## Self-Authored Spec Guidelines

When creating your own protocol spec:

1. **Be specific** - Vague specs lead to vague implementations
2. **Define boundaries** - What's in scope vs out of scope
3. **Include test criteria** - How do you verify compliance?
4. **Version it** - Specs evolve; track changes
5. **Keep it stable** - Changes should be deliberate

## Spec Versioning (differs from ADRs)

**ADRs are immutable** - changes create a new superseding document.

**Specs are edited in place** - they're living contracts that evolve:

1. **Frontmatter version** - Use semantic versioning (`version: 1.0.0`)
2. **Git history** - Preserves full evolution
3. **Git tags** - Mark release points (`git tag spec-v1.0.0`)
4. **CHANGELOG** - Note significant spec changes

**Version bumps:**
- **Patch** (1.0.1): Typos, clarifications, no behavior change
- **Minor** (1.1.0): New optional features, backwards compatible
- **Major** (2.0.0): Breaking changes, removed requirements

This keeps specs simple while git provides the audit trail.

## Workflow

```
/spec --init or --import    # Define what to build
        ↓
/issue                      # Create work items that implement spec sections
        ↓
/plan                       # Break down implementation
        ↓
/implement                  # Build against the spec
        ↓
/complete                   # Verify spec compliance
```

## Related Commands

- `/issue` - Create TASKs that implement spec sections
- `/plan` - Break down implementation of a TASK
- `/validate-spec` - Check implementation against spec
- `/project-status` - See spec compliance overview
#personal-productivity#daily-routine#weekly-review#life-planning#personal-knowledge#planning

Related Skills

More skills in Software Engineering

Accessibility Standards

Comprehensive web accessibility standards based on WCAG 2.2 AA, with 38+ anti-patterns, legal enforcement context (EAA, ADA Title II), WAI-ARIA patterns, and framework-specific fixes for modern web frameworks and libraries.

#github-copilot#accessibilityMIT

Accord

Authoring unified specification packages across Business/Development/Design teams via staged elaboration (L0 Vision → L1 Requirements → L2 Team Detail → L3 Acceptance Criteria). No code. Use when authoring cross-team specs, building L0-L3 packages, or aligning Biz/Dev/Design on a single source of truth.

#broad-capability#developmentMIT

Acquire Codebase Knowledge

Use this skill when the user explicitly asks to map, document, or onboard into an existing codebase. Trigger for prompts like "map this codebase", "document this architecture", "onboard me to this repo", or "create codebase docs". Do not trigger for routine feature implementation, bug fixes, or narrow code edits unless the user asks for repository-level discovery.

#github-copilot#documentationMIT

Acreadiness Assess

Run the AgentRC readiness assessment on the current repository and produce a static HTML dashboard at reports/index.html. Wraps `npx github:microsoft/agentrc readiness` and hands off rendering to the @ai-readiness-reporter custom agent. Supports policies (--policy) for org-specific scoring. Use when asked to assess, audit, or score the AI readiness of a repo.

#github-copilot#planningMIT

Acreadiness Generate Instructions

Generate tailored AI agent instruction files via AgentRC instructions command. Produces .github/copilot-instructions.md (default, recommended for Copilot in VS Code) plus optional per-area .instructions.md files with applyTo globs for monorepos. Use after running /acreadiness-assess to close gaps in the AI Tooling pillar.

#github-copilot#skillMIT

Acreadiness Policy

Help the user pick, write, or apply an AgentRC policy. Policies customise readiness scoring by disabling irrelevant checks, overriding impact/level, setting pass-rate thresholds, or chaining org baselines with team overrides. Use when the user asks about strict mode, AI-only scoring, custom weights, CI gating, or wants org-wide standardisation.

#github-copilot#planningMIT