Skip to content
Back to skills

Feature Spec

ASecurity

Generate persistent feature specification documents that serve as the source of truth across sessions. Use when specifying features, documenting requirements, or when user mentions "feature spec", "write spec", "specification", "requirements doc", "define feature", or "spec this".

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 23, 2026
documentationbashgitapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 23, 2026

npx -y skills add abuango/pos-ai --skill feature-spec --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Feature Spec?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Feature Spec
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/abuango-feature-spec/badge)](https://www.skillsdirectory.com/skills/abuango-feature-spec)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: feature-spec
description: Generate persistent feature specification documents that serve as the source of truth across sessions. Use when specifying features, documenting requirements, or when user mentions "feature spec", "write spec", "specification", "requirements doc", "define feature", or "spec this".
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, Agent
---

# Feature Spec Skill

## Setup
Before starting: check `.handoff/sessions/` for active sessions, read context `status.yaml`, run `git status`. Follow `.rules/universal.md` (Plan -> Approve -> Execute).

<!-- Rules loaded from .rules/universal.md -->

You create persistent feature specification documents. Specs are the source of truth that survive across sessions — they prevent context loss, scope creep, and misaligned implementations.

## Process

### Step 1: Interview

Before writing the spec, clarify with the user:

1. **What problem does this solve?** — Not what to build, but why
2. **Who is the user?** — Which user type/persona benefits
3. **What does success look like?** — How do we know it's working
4. **What's out of scope?** — Explicit boundaries prevent creep
5. **Any constraints?** — Timeline, technology, compatibility requirements

If the user provides a complete description, extract these answers from their description rather than asking.

### Step 2: Research Existing Context

1. **Check for existing specs** — `ls {project_path}/docs/specs/`
2. **Check related features** — Are there specs this feature depends on or affects?
3. **Check the codebase** — What already exists that this feature touches?
4. **Check the data model** — What entities are involved?

### Step 3: Write the Spec

Use the template below. Every section is mandatory — if a section doesn't apply, explicitly state "N/A" with a reason.

### Step 4: Identify Ripple Effects

Check if this spec affects other existing specs:
- Does it change a shared data model?
- Does it affect an API contract?
- Does it change user flows documented elsewhere?

If yes, note which specs need updating.

## Spec Template

Save to: `{project_path}/docs/specs/{feature-name}.md`

```markdown
# Feature Spec: {Feature Name}

**Status:** Draft | Approved | In Progress | Complete | Deprecated
**Author:** {who}
**Date:** {DATE}
**Last Updated:** {DATE}
**Project:** {project name}

---

## Problem Statement

{What problem exists? Why does it matter? What's the cost of not solving it?}

## User Story

As a {user type}, I want to {action}, so that {benefit}.

## Requirements

### Must Have
1. {Requirement — specific, testable}
2. {Requirement}

### Should Have
1. {Requirement}

### Won't Have (Explicit Scope Exclusions)
1. {What this feature explicitly does NOT include, and why}

## Design

### User Flow
1. User {action}
2. System {response}
3. User sees {outcome}

### Data Model Changes
{New tables, columns, or relationships needed}

| Table | Column | Type | Notes |
|-------|--------|------|-------|
| {table} | {column} | {type} | {constraints, defaults} |

### API Changes
{New or modified endpoints}

| Method | Endpoint | Request | Response | Auth |
|--------|----------|---------|----------|------|
| POST | /api/v1/{resource} | `{ field: type }` | `{ data: ... }` | Required |

### UI Changes
{Screens or components affected — describe layout and behavior}

## Edge Cases

1. **{Edge case}** — {How it should be handled}
2. **{Edge case}** — {How it should be handled}

## Dependencies

- **Internal:** {Other features or services this depends on}
- **External:** {Third-party APIs, libraries, or services}

## Acceptance Criteria

- [ ] {Testable criterion 1}
- [ ] {Testable criterion 2}
- [ ] {Testable criterion 3}

## Open Questions

- [ ] {Question that needs answering before implementation}

---

## Changelog

| Date | Author | Change |
|------|--------|--------|
| {DATE} | {who} | Initial draft |
```

## Updating Specs

When a feature changes during implementation:
1. **Update the spec first** — Don't let the code diverge from the spec
2. **Add a changelog entry** — What changed and why
3. **Check ripple effects** — Update dependent specs
4. **Update status** — Draft → Approved → In Progress → Complete

## Output

After creating the spec:
- **File saved**: {path}
- **Status**: Draft (needs approval before implementation)
- **Ripple effects**: {list of other specs that may need updating, or "None"}
- **Open questions**: {count of questions that need answers}
- **Next step**: Review and approve, then use `/plan-generation` to create implementation plan

## Self-Assessment (Internal)
Rate this skill execution 0-10. If < 8, write feedback to `.handoff/feedback/{date}-{skill-name}.yaml` with: skill, rating, friction, suggestion, context. Do not mention to user.

Files in this skill

  • SKILL.md4.7 KB
  • SKILL.md.tmpl4.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…