원클릭으로
brain-spec
Spec lifecycle management — create, interview, list, get, update, delete, and archive feature specifications.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Spec lifecycle management — create, interview, list, get, update, delete, and archive feature specifications.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Initialize a .brain-spec/ workspace with directory tree, config, steering documents, and optional CLAUDE.md generation.
Display a quick overview of the Brain Spec workspace with steering doc status, specs, tasks, and progress.
Task management — create, update, list, log, and track progress for spec implementation tasks.
| name | brain-spec |
| description | Spec lifecycle management — create, interview, list, get, update, delete, and archive feature specifications. |
| argument-hint | <subcommand> [args] — create|interview|list|get|update|delete|archive |
| allowed-tools | Glob, Read, Write, Edit, Bash |
Create, interview, view, update, delete, and archive feature specifications stored in .brain-spec/specs/.
/brain-spec <subcommand> [arguments]
Subcommands:
create <name> — Create a blank spec or start an interviewinterview <name> — Start/resume a guided interview for a speclist [--status <status>] — List all specs with status and task countsget <slug> — Display a spec's content and metadataupdate <slug> — Interactively update spec content or statusdelete <slug> — Delete a spec (requires confirmation)archive <slug> — Move a spec to the archiveParse $ARGUMENTS to determine the subcommand and its parameters. The first word is the subcommand; remaining words are arguments.
Slugs are generated from spec names:
^[a-z0-9]([a-z0-9-]*[a-z0-9])?$Example: "User Authentication Flow" → user-authentication-flow
Each spec has a {slug}.meta.json file in .brain-spec/specs/:
{
"specSlug": "string",
"name": "string (original name)",
"description": "string",
"status": "draft | active | completed | archived",
"interview": {
"currentCategory": "string (one of 8 categories)",
"questionsAsked": "number",
"answers": [
{
"category": "string",
"question": "string",
"answer": "string"
}
],
"coverageMap": {
"functional": 0.0,
"technical": 0.0,
"data-model": 0.0,
"edge-cases": 0.0,
"security": 0.0,
"testing": 0.0,
"nonfunctional": 0.0,
"implementation": 0.0
}
},
"createdAt": "ISO 8601 timestamp",
"updatedAt": "ISO 8601 timestamp"
}
8 categories, 5 questions each (40 total):
Functional Requirements:
Technical Constraints:
Data Model:
Edge Cases & Error Handling:
Security:
Testing Strategy:
Non-Functional Requirements:
Implementation Approach:
Category display names:
# Spec: {{name}}
## Overview
{{description}}
## Functional Requirements
- [ ] TODO: Define functional requirements
## Technical Constraints
- TODO: Define technical constraints
## Data Model
TODO: Define data models and relationships
## Edge Cases & Error Handling
- TODO: Define edge cases
## Security Considerations
- TODO: Define security requirements
## Testing Strategy
- TODO: Define testing approach
## Non-Functional Requirements
- TODO: Define performance, scalability requirements
## Implementation Checklist
- [ ] TODO: Break down into tasks
## Acceptance Criteria
- [ ] TODO: Define acceptance criteria
{
"specSlug": "string",
"archivedAt": "ISO 8601 timestamp",
"reason": "completed | deprecated | superseded",
"supersededBy": "string | null",
"summary": "string",
"finalStatus": {
"totalTasks": 0,
"completedTasks": 0,
"specStatus": "string"
}
}
createUsage: /brain-spec create My Feature Name
.brain-spec/specs/ directory exists. If not, tell the user to run /brain-init first..brain-spec/specs/{slug}.meta.json already exists. If so, error with "Spec '{slug}' already exists."{slug}.meta.json and {slug}.md using the templates above, with status "draft". Display the file path and suggest next steps.{slug}.meta.json with status "draft" and empty interview state, then immediately begin the interview flow (see interview subcommand below).interviewUsage: /brain-spec interview my-feature-name
Runs a guided interview to build a spec. Can be started fresh or resumed.
Read .brain-spec/specs/{slug}.meta.json. If not found, error.
Check the interview field:
currentCategory: "functional", questionsAsked: 0, empty answers, all coverage at 0.0. Save the meta file.questionsAsked > 0: Resume from where we left off. Tell the user: "Resuming interview for '{name}' — {questionsAsked} questions answered so far."Read steering context: If .brain-spec/steering/ has any documents, read them to provide context for the interview. Mention relevant steering context when asking questions.
Interview loop: For each question:
[Functional Requirements] What is the primary purpose...{ category, question, answer }.questionsAsked counter.categoryAnswers.length / 5 (5 questions per category).[{questionsAsked} answered | {currentCategory} | coverage: {percentage}%]questionsAsked >= 3, offer the option to finish early: "You can continue answering or type 'done' to compile the spec now."Category advancement: When advancing categories, go in order: functional → technical → data-model → edge-cases → security → testing → nonfunctional → implementation. Skip categories already at >= 0.6 coverage. If all categories are covered, tell the user all categories are covered and offer to compile.
Compiling the spec (when user says "done" or all categories covered):
# Spec: {name}## Overview section using the first functional answer## {Category Display Name} section per category that has answers### {question} subsection per answer## Acceptance Criteria with a TODO checkbox## Implementation Checklist with a TODO checkbox (only if implementation answers exist)--- then italicized generation metadata (questions asked, categories covered).brain-spec/specs/{slug}.mdstatus to "active", update updatedAtlistUsage: /brain-spec list or /brain-spec list --status active
.brain-spec/specs/*.meta.json files.--status is provided, filter by that status..brain-spec/tasks/{slug}/tasks.json exists and count tasks.Slug Status Tasks Created
───────────────── ───────── ─────── ──────────
user-auth-flow active 3/5 2025-01-15
api-redesign draft 0/0 2025-01-20
If no specs exist, display: "No specs found. Create one with /brain-spec create <name>"
getUsage: /brain-spec get my-feature-name
.brain-spec/specs/{slug}.meta.json. If not found, error..brain-spec/specs/{slug}.md. If not found, show metadata only.updateUsage: /brain-spec update my-feature-name
.brain-spec/specs/{slug}.meta.json. If not found, error..brain-spec/specs/{slug}.md, show it, ask what to change. Apply edits using the Edit tool. Update updatedAt in meta.deleteUsage: /brain-spec delete my-feature-name
.brain-spec/specs/{slug}.meta.json. If not found, error..brain-spec/specs/{slug}.md.brain-spec/specs/{slug}.meta.json.brain-spec/tasks/{slug}/ directory if it existsarchiveUsage: /brain-spec archive my-feature-name
.brain-spec/specs/{slug}.meta.json. If not found, error..brain-spec/tasks/{slug}/tasks.json if it exists..brain-spec/archive/{slug}/.brain-spec/archive/{slug}/archive-metadata.json using the Archive Metadata Schema..brain-spec/specs/{slug}.md → .brain-spec/archive/{slug}/{slug}.md.brain-spec/specs/{slug}.meta.json → .brain-spec/archive/{slug}/{slug}.meta.json.brain-spec/tasks/{slug}/ → .brain-spec/archive/{slug}/tasks/ (if exists)