Manage feature specifications - create, track, and implement specs with structured templates and auto-generated indexes.
A system for managing feature specifications as living documents. Specs track features from planning through implementation with structured templates and automatic indexing.
This skill supports five commands via arguments:
/specs init <feature-name> - Create a new spec/specs implement - Work on in-progress specs/specs ui - Generate docsify UI for browsing/specs setup - Configure project hooks for automated workflow/specs migrate - Convert flat-file specs to directory structureIf no argument is provided, show available commands.
/specs init <feature-name>Create a new feature specification.
Parse the feature name from arguments
user-authentication, api-caching)Get today's date in YYYY-MM-DD format
Create the spec directory at specs/<feature-name>/
Copy templates from this skill's assets:
assets/templates/directory-based/README.md.templateassets/templates/directory-based/research.md.templateassets/templates/directory-based/implementation-plan.md.templateReplace placeholders in each template:
[Feature Name] → Title Case version (e.g., "User Authentication")YYYY-MM-DD → today's dateWrite files to specs/<feature-name>/:
README.mdresearch.mdimplementation-plan.mdRegenerate the index:
python3 <skill-path>/scripts/index.py ./specs
Report success with the created path and next steps
If user explicitly requests a single-file spec:
assets/templates/single-file.md.templatespecs/<feature-name>.md/specs implementBegin implementation on an in-progress spec.
Read specs/README.md (the auto-generated index)
Determine which spec to work on:
Load the spec:
specs/<feature>/README.md for overviewspecs/<feature>/implementation-plan.md for tasksspecs/<feature>/research.md available for contextCreate a todo list from the implementation tasks
Implement systematically:
After each commit, update the spec:
- [x] Task name (commit: abc123)python3 <skill-path>/scripts/index.py ./specsgit commit -m "docs(specs): update progress"/specs uiGenerate a docsify UI for browsing specs in a browser.
Read specs/README.md to get the current spec organization
Write specs/index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Specs</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsify@4/themes/dark.css">
</head>
<body>
<div id="app"></div>
<script>
window.$docsify = {
name: 'Specs',
loadSidebar: true,
subMaxLevel: 3,
auto2top: true,
search: { placeholder: 'Search specs...', depth: 3 }
}
</script>
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/docsify.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/plugins/search.min.js"></script>
</body>
</html>
Write specs/_sidebar.md with navigation:
- [Feature Name](feature-name/README.md)
- [Research](feature-name/research.md)
- [Implementation Plan](feature-name/implementation-plan.md)
<name>.mdCreate specs/.nojekyll (empty file for GitHub Pages)
Start server and open browser:
cd specs && python3 -m http.server 9000 &
open http://localhost:9000
/specs setupConfigure project-level hooks for automated spec workflow. This installs a hook that reminds Claude to run /specs implement after context compaction.
This command is idempotent - run it multiple times to update the reminder message. Existing hooks are preserved.
Prompt for reminder content:
.claude/hooks/specs-reminder.txt already existsCreate .claude/hooks/ directory if it doesn't exist
Write the reminder files:
.claude/hooks/specs-reminder.txt.claude/hooks/specs-reminder.sh:#!/bin/bash
cat "$(dirname "$0")/specs-reminder.txt"
chmod +x .claude/hooks/specs-reminder.shMerge into .claude/settings.json:
{})hooks.SessionStart[]:command containing specs-reminder.shOur hook configuration:
{
"matcher": "compact",
"hooks": [{
"type": "command",
"command": ".claude/hooks/specs-reminder.sh"
}]
}
Report success:
/specs setup again anytime to change the reminder".claude/hooks/ to version controlSimple workflow hint:
Resuming after compaction - run /specs implement to continue feature work
Multi-skill workflow:
Resuming after compaction. Workflow:
- Check /specs implement for in-progress features
- Use /commit when ready to checkpoint
- Run tests before marking tasks complete
Project-specific context:
Context restored. This project uses:
- /specs for feature tracking
- pytest for tests (run before commits)
- Priority: complete auth-system spec first
After context compaction, Claude receives a system message with your configured reminder. This maintains continuity on long-running feature implementations and can guide Claude toward your preferred workflow.
/specs migrateConvert flat-file specs (specs/<name>.md) to the directory-based structure (specs/<name>/README.md, research.md, implementation-plan.md).
.md files in specs/Scan specs/ for flat files:
.md files directly in specs/README.md, _sidebar.md, index.htmlspecs/<name>.md is a candidate for migrationPreview and confirm:
For each flat-file spec:
a. Read and parse the file:
planned, priority: 50, date: todayb. Analyze content sections:
## Overview, ## Requirements, ## Implementation, ## Tasks, ## Research, ## Notesc. Create directory structure:
mkdir -p specs/<name>/
d. Write README.md:
e. Write research.md:
## Requirements, ## Research, ## Options sectionsf. Write implementation-plan.md:
## Tasks, ## Implementation sectionsg. Remove the original flat file:
rm specs/<name>.md
Regenerate the index:
python3 <skill-path>/scripts/index.py ./specs
Report results:
| Original Section | Target File | Target Section |
|---|---|---|
## Overview |
README.md | ## Overview |
## Goals |
README.md | ## Goals |
## Requirements |
research.md | ## Requirements |
## Research, ## Options |
research.md | ## Options Considered |
## Tasks, ## Implementation |
implementation-plan.md | Phase sections |
## Notes |
implementation-plan.md | Bottom of file |
| Everything else | README.md | Appended after template sections |
Before: specs/user-auth.md
---
title: "User Authentication"
status: in-progress
date: 2024-01-15
---
# User Authentication
## Overview
Add login/logout functionality.
## Requirements
- Support OAuth providers
- Session management
## Tasks
- [ ] Set up OAuth config
- [ ] Create login page
- [ ] Add session middleware
After: specs/user-auth/
specs/user-auth/
README.md # Frontmatter + Overview + Goals
research.md # Requirements + Options
implementation-plan.md # Tasks organized into phases
.md filesWhen writing or updating spec files, always use relative markdown links for references to other files within the spec folder. This ensures links are clickable in the docsify UI.
Correct:
See [research.md](research.md) for details.
Check the [implementation plan](implementation-plan.md) for tasks.
Incorrect:
See `research.md` for details.
Check the implementation-plan.md for tasks.
This applies to:
/specs implement when updating documentationIf the project has no specs/ directory:
specs/ directorypython3 <skill-path>/scripts/index.py ./specs
Specs use these statuses in frontmatter:
| Status | Meaning |
|---|---|
planned |
Spec is written but implementation hasn't started |
in-progress |
Currently being implemented |
completed |
Implementation finished |
archived |
No longer relevant |
---
title: "Feature Name"
status: planned
date: 2024-01-15
priority: 10
---
Lower priority numbers = higher priority (processed first).