@tech-leads-club/agent-skills 0.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +112 -0
- package/index.js +22 -0
- package/index.js.map +7 -0
- package/package.json +40 -0
- package/skills/cursor-skill-creator/SKILL.md +379 -0
- package/skills/cursor-subagent-creator/SKILL.md +683 -0
- package/skills/skill-creator/SKILL.md +173 -0
- package/skills/spec-driven-dev/SKILL.md +43 -0
- package/skills/spec-driven-dev/references/design.md +140 -0
- package/skills/spec-driven-dev/references/implement.md +66 -0
- package/skills/spec-driven-dev/references/specify.md +116 -0
- package/skills/spec-driven-dev/references/tasks.md +221 -0
- package/skills/spec-driven-dev/references/validate.md +126 -0
- package/skills/subagent-creator/SKILL.md +283 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-creator
|
|
3
|
+
description: Guide for creating effective AI agent skills. Use when users want to create a new skill (or update an existing skill) that extends an AI agent's capabilities with specialized knowledge, workflows, or tool integrations. Works with any agent that supports the SKILL.md format (Claude Code, Cursor, Roo, Cline, Windsurf, etc.). Triggers on "create skill", "new skill", "package knowledge", "skill for".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill Creator
|
|
7
|
+
|
|
8
|
+
This skill provides guidance for creating effective, agent-agnostic skills.
|
|
9
|
+
|
|
10
|
+
## About Skills
|
|
11
|
+
|
|
12
|
+
Skills are modular, self-contained packages that extend AI agent capabilities by providing specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific domains or tasks—they transform a general-purpose agent into a specialized agent equipped with procedural knowledge.
|
|
13
|
+
|
|
14
|
+
### What Skills Provide
|
|
15
|
+
|
|
16
|
+
1. **Specialized workflows** - Multi-step procedures for specific domains
|
|
17
|
+
2. **Tool integrations** - Instructions for working with specific file formats or APIs
|
|
18
|
+
3. **Domain expertise** - Company-specific knowledge, schemas, business logic
|
|
19
|
+
4. **Bundled resources** - Scripts, references, and assets for complex and repetitive tasks
|
|
20
|
+
|
|
21
|
+
## Core Principles
|
|
22
|
+
|
|
23
|
+
### Concise is Key
|
|
24
|
+
|
|
25
|
+
The context window is a public good. Skills share context with everything else the agent needs.
|
|
26
|
+
|
|
27
|
+
**Default assumption: The agent is already very smart.** Only add context it doesn't already have. Challenge each piece of information: "Does the agent really need this?" and "Does this paragraph justify its token cost?"
|
|
28
|
+
|
|
29
|
+
Prefer concise examples over verbose explanations.
|
|
30
|
+
|
|
31
|
+
### Anatomy of a Skill
|
|
32
|
+
|
|
33
|
+
Every skill consists of a required SKILL.md file and optional bundled resources:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
skill-name/
|
|
37
|
+
├── SKILL.md (required)
|
|
38
|
+
│ ├── YAML frontmatter metadata (required)
|
|
39
|
+
│ │ ├── name: (required)
|
|
40
|
+
│ │ └── description: (required)
|
|
41
|
+
│ └── Markdown instructions (required)
|
|
42
|
+
└── Bundled Resources (optional)
|
|
43
|
+
├── scripts/ - Executable code (Python/Bash/etc.)
|
|
44
|
+
├── references/ - Documentation loaded into context as needed
|
|
45
|
+
└── assets/ - Files used in output (templates, icons, fonts, etc.)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
#### SKILL.md (required)
|
|
49
|
+
|
|
50
|
+
Every SKILL.md consists of:
|
|
51
|
+
|
|
52
|
+
- **Frontmatter** (YAML): Contains `name` and `description` fields. These are the only fields read to determine when the skill gets used—be clear and comprehensive.
|
|
53
|
+
- **Body** (Markdown): Instructions and guidance for using the skill. Only loaded AFTER the skill triggers.
|
|
54
|
+
|
|
55
|
+
#### Bundled Resources (optional)
|
|
56
|
+
|
|
57
|
+
##### Scripts (`scripts/`)
|
|
58
|
+
|
|
59
|
+
Executable code for tasks that require deterministic reliability or are repeatedly rewritten.
|
|
60
|
+
|
|
61
|
+
- **When to include**: When the same code is being rewritten repeatedly
|
|
62
|
+
- **Example**: `scripts/rotate_pdf.py` for PDF rotation tasks
|
|
63
|
+
- **Benefits**: Token efficient, deterministic
|
|
64
|
+
|
|
65
|
+
##### References (`references/`)
|
|
66
|
+
|
|
67
|
+
Documentation and reference material loaded as needed into context.
|
|
68
|
+
|
|
69
|
+
- **When to include**: For documentation the agent should reference while working
|
|
70
|
+
- **Examples**: `references/schema.md` for database schemas, `references/api_docs.md` for API specifications
|
|
71
|
+
- **Benefits**: Keeps SKILL.md lean, loaded only when needed
|
|
72
|
+
|
|
73
|
+
##### Assets (`assets/`)
|
|
74
|
+
|
|
75
|
+
Files not intended to be loaded into context, but used within output.
|
|
76
|
+
|
|
77
|
+
- **When to include**: When the skill needs files for final output
|
|
78
|
+
- **Examples**: `assets/logo.png` for brand assets, `assets/template.html` for HTML boilerplate
|
|
79
|
+
|
|
80
|
+
### Progressive Disclosure
|
|
81
|
+
|
|
82
|
+
Skills use a three-level loading system:
|
|
83
|
+
|
|
84
|
+
1. **Metadata (name + description)** - Always in context (~100 words)
|
|
85
|
+
2. **SKILL.md body** - When skill triggers (<5k words)
|
|
86
|
+
3. **Bundled resources** - As needed (unlimited)
|
|
87
|
+
|
|
88
|
+
Keep SKILL.md body under 500 lines. Split content into separate files when approaching this limit.
|
|
89
|
+
|
|
90
|
+
## Skill Creation Process
|
|
91
|
+
|
|
92
|
+
### Step 1: Understand the Skill
|
|
93
|
+
|
|
94
|
+
Clarify with concrete examples:
|
|
95
|
+
|
|
96
|
+
- "What functionality should this skill support?"
|
|
97
|
+
- "Can you give examples of how this skill would be used?"
|
|
98
|
+
- "What would trigger this skill?"
|
|
99
|
+
|
|
100
|
+
### Step 2: Plan Reusable Contents
|
|
101
|
+
|
|
102
|
+
Analyze each example:
|
|
103
|
+
|
|
104
|
+
1. Consider how to execute from scratch
|
|
105
|
+
2. Identify helpful scripts, references, and assets
|
|
106
|
+
|
|
107
|
+
### Step 3: Create the Skill
|
|
108
|
+
|
|
109
|
+
Create the skill directory:
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
skill-name/
|
|
113
|
+
├── SKILL.md
|
|
114
|
+
├── scripts/ (if needed)
|
|
115
|
+
├── references/ (if needed)
|
|
116
|
+
└── assets/ (if needed)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Step 4: Write SKILL.md
|
|
120
|
+
|
|
121
|
+
#### Frontmatter
|
|
122
|
+
|
|
123
|
+
```yaml
|
|
124
|
+
---
|
|
125
|
+
name: skill-name
|
|
126
|
+
description: What the skill does and when to use it. Include specific triggers and contexts. Max 1024 characters.
|
|
127
|
+
---
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Description guidelines:**
|
|
131
|
+
- Include both what the skill does AND when to use it
|
|
132
|
+
- Include trigger phrases
|
|
133
|
+
- Max 1024 characters, no XML tags
|
|
134
|
+
- Write in third person
|
|
135
|
+
|
|
136
|
+
#### Body
|
|
137
|
+
|
|
138
|
+
Write instructions for using the skill. Include:
|
|
139
|
+
- Quick start guide
|
|
140
|
+
- Step-by-step workflow
|
|
141
|
+
- Links to reference files when needed
|
|
142
|
+
|
|
143
|
+
### Step 5: Test and Iterate
|
|
144
|
+
|
|
145
|
+
1. Use the skill on real tasks
|
|
146
|
+
2. Notice struggles or inefficiencies
|
|
147
|
+
3. Update SKILL.md or resources accordingly
|
|
148
|
+
4. Test again
|
|
149
|
+
|
|
150
|
+
## Quality Checklist
|
|
151
|
+
|
|
152
|
+
Before finalizing:
|
|
153
|
+
|
|
154
|
+
- [ ] Description is specific about when to use (max 1024 chars)
|
|
155
|
+
- [ ] Folder name uses kebab-case
|
|
156
|
+
- [ ] Instructions are actionable and unambiguous
|
|
157
|
+
- [ ] Scope is focused (one responsibility)
|
|
158
|
+
- [ ] SKILL.md body < 500 lines
|
|
159
|
+
- [ ] References are one level deep from SKILL.md
|
|
160
|
+
|
|
161
|
+
## Output Messages
|
|
162
|
+
|
|
163
|
+
When creating a skill, inform the user:
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
✅ Skill created successfully!
|
|
167
|
+
|
|
168
|
+
📁 Location: .agent/skills/[name]/SKILL.md
|
|
169
|
+
🎯 Purpose: [brief description]
|
|
170
|
+
🔧 How to test: [example prompt that should trigger the skill]
|
|
171
|
+
|
|
172
|
+
💡 Tip: The agent will use this skill automatically when it detects [context].
|
|
173
|
+
```
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-driven-dev
|
|
3
|
+
description: Feature planning with 4 phases - Specify requirements, Design architecture, break into granular Tasks, Implement and Validate. Creates atomic tasks that agents can implement without errors. Triggers on "plan feature", "design", "new feature", "implement feature", "create spec".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Spec-Driven Development
|
|
7
|
+
|
|
8
|
+
Plan and implement features with precision. Granular tasks. Clear dependencies. Right tools.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌──────────┐ ┌──────────┐ ┌─────────┐ ┌───────────────────┐
|
|
12
|
+
│ SPECIFY │ → │ DESIGN │ → │ TASKS │ → │ IMPLEMENT+VALIDATE│
|
|
13
|
+
└──────────┘ └──────────┘ └─────────┘ └───────────────────┘
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Phase Selection
|
|
17
|
+
|
|
18
|
+
| User wants to... | Load reference |
|
|
19
|
+
|------------------|----------------|
|
|
20
|
+
| Define what to build | [specify.md](references/specify.md) |
|
|
21
|
+
| Design architecture | [design.md](references/design.md) |
|
|
22
|
+
| Break into tasks | [tasks.md](references/tasks.md) |
|
|
23
|
+
| Implement a task | [implement.md](references/implement.md) |
|
|
24
|
+
| Verify it works | [validate.md](references/validate.md) |
|
|
25
|
+
|
|
26
|
+
## Commands
|
|
27
|
+
|
|
28
|
+
| Command | Action |
|
|
29
|
+
|---------|--------|
|
|
30
|
+
| `specify [feature]` | Define requirements |
|
|
31
|
+
| `design [feature]` | Design architecture |
|
|
32
|
+
| `tasks [feature]` | Create task breakdown |
|
|
33
|
+
| `implement T1` | Implement task |
|
|
34
|
+
| `validate` | Verify implementation |
|
|
35
|
+
|
|
36
|
+
## Output
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
.specs/[feature-slug]/
|
|
40
|
+
├── spec.md
|
|
41
|
+
├── design.md
|
|
42
|
+
└── tasks.md
|
|
43
|
+
```
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Phase 2: Design
|
|
2
|
+
|
|
3
|
+
**Goal**: Define HOW to build it. Architecture, components, what to reuse.
|
|
4
|
+
|
|
5
|
+
## Process
|
|
6
|
+
|
|
7
|
+
### 1. Review Specification
|
|
8
|
+
Read `.specs/[feature]/spec.md` before designing.
|
|
9
|
+
|
|
10
|
+
### 2. Define Architecture
|
|
11
|
+
Overview of how components interact. Use mermaid diagrams when helpful.
|
|
12
|
+
|
|
13
|
+
### 3. Identify Code Reuse
|
|
14
|
+
**CRITICAL**: What existing code can we leverage? This saves tokens and reduces errors.
|
|
15
|
+
|
|
16
|
+
### 4. Define Components and Interfaces
|
|
17
|
+
Each component: Purpose, Location, Interfaces, Dependencies, What it reuses.
|
|
18
|
+
|
|
19
|
+
### 5. Define Data Models
|
|
20
|
+
If the feature involves data, define models before implementation.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Template: `.specs/[feature]/design.md`
|
|
25
|
+
|
|
26
|
+
```markdown
|
|
27
|
+
# [Feature] Design
|
|
28
|
+
|
|
29
|
+
**Spec**: `.specs/[feature]/spec.md`
|
|
30
|
+
**Status**: Draft | Approved
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Architecture Overview
|
|
35
|
+
|
|
36
|
+
[Brief description of the architecture approach]
|
|
37
|
+
|
|
38
|
+
```mermaid
|
|
39
|
+
graph TD
|
|
40
|
+
A[User Action] --> B[Component A]
|
|
41
|
+
B --> C[Service Layer]
|
|
42
|
+
C --> D[Data Store]
|
|
43
|
+
B --> E[Component B]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Code Reuse Analysis
|
|
49
|
+
|
|
50
|
+
### Existing Components to Leverage
|
|
51
|
+
|
|
52
|
+
| Component | Location | How to Use |
|
|
53
|
+
|-----------|----------|------------|
|
|
54
|
+
| [Existing Component] | `src/path/to/file` | [Extend/Import/Reference] |
|
|
55
|
+
| [Existing Utility] | `src/utils/file` | [How it helps] |
|
|
56
|
+
| [Existing Pattern] | `src/patterns/file` | [Apply same pattern] |
|
|
57
|
+
|
|
58
|
+
### Integration Points
|
|
59
|
+
|
|
60
|
+
| System | Integration Method |
|
|
61
|
+
|--------|-------------------|
|
|
62
|
+
| [Existing API] | [How new feature connects] |
|
|
63
|
+
| [Database] | [How data connects to existing schemas] |
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Components
|
|
68
|
+
|
|
69
|
+
### [Component Name]
|
|
70
|
+
|
|
71
|
+
- **Purpose**: [What this component does - one sentence]
|
|
72
|
+
- **Location**: `src/path/to/component/`
|
|
73
|
+
- **Interfaces**:
|
|
74
|
+
- `methodName(param: Type): ReturnType` - [description]
|
|
75
|
+
- `methodName(param: Type): ReturnType` - [description]
|
|
76
|
+
- **Dependencies**: [What it needs to function]
|
|
77
|
+
- **Reuses**: [Existing code this builds upon]
|
|
78
|
+
|
|
79
|
+
### [Component Name]
|
|
80
|
+
|
|
81
|
+
- **Purpose**: [What this component does]
|
|
82
|
+
- **Location**: `src/path/to/component/`
|
|
83
|
+
- **Interfaces**:
|
|
84
|
+
- `methodName(param: Type): ReturnType`
|
|
85
|
+
- **Dependencies**: [Dependencies]
|
|
86
|
+
- **Reuses**: [Existing code]
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Data Models (if applicable)
|
|
91
|
+
|
|
92
|
+
### [Model Name]
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
interface ModelName {
|
|
96
|
+
id: string;
|
|
97
|
+
field1: string;
|
|
98
|
+
field2: number;
|
|
99
|
+
createdAt: Date;
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Relationships**: [How this relates to other models]
|
|
104
|
+
|
|
105
|
+
### [Model Name]
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
interface AnotherModel {
|
|
109
|
+
id: string;
|
|
110
|
+
// ...
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Error Handling Strategy
|
|
117
|
+
|
|
118
|
+
| Error Scenario | Handling | User Impact |
|
|
119
|
+
|---------------|----------|-------------|
|
|
120
|
+
| [Scenario 1] | [How handled] | [What user sees] |
|
|
121
|
+
| [Scenario 2] | [How handled] | [What user sees] |
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Tech Decisions (only non-obvious ones)
|
|
126
|
+
|
|
127
|
+
| Decision | Choice | Rationale |
|
|
128
|
+
|----------|--------|-----------|
|
|
129
|
+
| [What we decided] | [What we chose] | [Why - brief] |
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Tips
|
|
135
|
+
|
|
136
|
+
- **Reuse is king** - Every component should reference existing patterns
|
|
137
|
+
- **Interfaces first** - Define contracts before implementation
|
|
138
|
+
- **Keep it visual** - Diagrams save 1000 words
|
|
139
|
+
- **Small components** - If component does 3+ things, split it
|
|
140
|
+
- **Confirm before Tasks** - User approves design before breaking into tasks
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Phase 4a: Implement
|
|
2
|
+
|
|
3
|
+
**Goal**: Execute ONE task at a time. Use the right tools. Mark done.
|
|
4
|
+
|
|
5
|
+
## Process
|
|
6
|
+
|
|
7
|
+
### 1. Pick Task
|
|
8
|
+
|
|
9
|
+
Either user specifies ("implement T3") or you suggest next available.
|
|
10
|
+
|
|
11
|
+
### 2. Verify Dependencies
|
|
12
|
+
|
|
13
|
+
Check tasks.md - are all dependencies marked done?
|
|
14
|
+
|
|
15
|
+
❌ If not: "T3 depends on T2 which isn't done. Should I do T2 first?"
|
|
16
|
+
|
|
17
|
+
### 3. Use Specified Tools
|
|
18
|
+
|
|
19
|
+
**MUST** use the MCPs and Skills listed in the task.
|
|
20
|
+
|
|
21
|
+
### 4. Implement
|
|
22
|
+
|
|
23
|
+
Follow the "What" and "Where" exactly. Reference "Reuses" for patterns.
|
|
24
|
+
|
|
25
|
+
### 5. Verify "Done When"
|
|
26
|
+
|
|
27
|
+
Check all criteria are met before marking done.
|
|
28
|
+
|
|
29
|
+
### 6. Update Status
|
|
30
|
+
|
|
31
|
+
Mark task complete in tasks.md.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Execution Template
|
|
36
|
+
|
|
37
|
+
```markdown
|
|
38
|
+
## Implementing T[X]: [Task Title]
|
|
39
|
+
|
|
40
|
+
**Reading**: task definition from tasks.md
|
|
41
|
+
**Dependencies**: [All done? ✅ | Blocked by: TY]
|
|
42
|
+
**Using**:
|
|
43
|
+
- MCP: [from task]
|
|
44
|
+
- Skill: [from task]
|
|
45
|
+
- Reusing: [from task]
|
|
46
|
+
|
|
47
|
+
### Implementation
|
|
48
|
+
|
|
49
|
+
[Do the work]
|
|
50
|
+
|
|
51
|
+
### Verification
|
|
52
|
+
|
|
53
|
+
- [x] Done when criterion 1
|
|
54
|
+
- [x] Done when criterion 2
|
|
55
|
+
|
|
56
|
+
**Status**: ✅ Complete | ❌ Blocked | ⚠️ Partial
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Tips
|
|
62
|
+
|
|
63
|
+
- **One task at a time** - Focus prevents errors
|
|
64
|
+
- **Tools matter** - Wrong MCP = wrong approach
|
|
65
|
+
- **Reuses save tokens** - Copy patterns, don't reinvent
|
|
66
|
+
- **Check before mark done** - Verify all criteria
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Phase 1: Specify
|
|
2
|
+
|
|
3
|
+
**Goal**: Capture WHAT to build with testable requirements.
|
|
4
|
+
|
|
5
|
+
## Process
|
|
6
|
+
|
|
7
|
+
### 1. Clarify Requirements
|
|
8
|
+
|
|
9
|
+
Ask the user (2-3 questions to start):
|
|
10
|
+
- "What problem are you solving?"
|
|
11
|
+
- "Who is the user and what's their pain?"
|
|
12
|
+
- "What does success look like?"
|
|
13
|
+
|
|
14
|
+
If needed:
|
|
15
|
+
- "What are the constraints (time, tech, resources)?"
|
|
16
|
+
- "What is explicitly out of scope?"
|
|
17
|
+
|
|
18
|
+
### 2. Capture User Stories with Priorities
|
|
19
|
+
|
|
20
|
+
**P1 = MVP** (must ship), **P2** (should have), **P3** (nice to have)
|
|
21
|
+
|
|
22
|
+
Each story MUST be **independently testable** - you can implement and demo just that story.
|
|
23
|
+
|
|
24
|
+
### 3. Write Acceptance Criteria
|
|
25
|
+
|
|
26
|
+
Use **WHEN/THEN/SHALL** format - it's precise and testable:
|
|
27
|
+
- WHEN [event/action] THEN [system] SHALL [response/behavior]
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Template: `.specs/[feature]/spec.md`
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
# [Feature Name] Specification
|
|
35
|
+
|
|
36
|
+
## Problem Statement
|
|
37
|
+
|
|
38
|
+
[Describe the problem in 2-3 sentences. What pain point are we solving? Why now?]
|
|
39
|
+
|
|
40
|
+
## Goals
|
|
41
|
+
|
|
42
|
+
- [ ] [Primary goal with measurable outcome]
|
|
43
|
+
- [ ] [Secondary goal with measurable outcome]
|
|
44
|
+
|
|
45
|
+
## Out of Scope
|
|
46
|
+
|
|
47
|
+
- [Explicitly NOT building: X]
|
|
48
|
+
- [Explicitly NOT building: Y]
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## User Stories
|
|
53
|
+
|
|
54
|
+
### P1: [Story Title] ⭐ MVP
|
|
55
|
+
|
|
56
|
+
**User Story**: As a [role], I want [capability] so that [benefit].
|
|
57
|
+
|
|
58
|
+
**Why P1**: [Why this is critical for MVP]
|
|
59
|
+
|
|
60
|
+
**Acceptance Criteria**:
|
|
61
|
+
1. WHEN [user action/event] THEN system SHALL [expected behavior]
|
|
62
|
+
2. WHEN [user action/event] THEN system SHALL [expected behavior]
|
|
63
|
+
3. WHEN [edge case] THEN system SHALL [graceful handling]
|
|
64
|
+
|
|
65
|
+
**Independent Test**: [How to verify this story works alone - e.g., "Can demo by doing X and seeing Y"]
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### P2: [Story Title]
|
|
70
|
+
|
|
71
|
+
**User Story**: As a [role], I want [capability] so that [benefit].
|
|
72
|
+
|
|
73
|
+
**Why P2**: [Why this isn't MVP but important]
|
|
74
|
+
|
|
75
|
+
**Acceptance Criteria**:
|
|
76
|
+
1. WHEN [event] THEN system SHALL [behavior]
|
|
77
|
+
2. WHEN [event] THEN system SHALL [behavior]
|
|
78
|
+
|
|
79
|
+
**Independent Test**: [How to verify]
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### P3: [Story Title]
|
|
84
|
+
|
|
85
|
+
**User Story**: As a [role], I want [capability] so that [benefit].
|
|
86
|
+
|
|
87
|
+
**Why P3**: [Why this is nice-to-have]
|
|
88
|
+
|
|
89
|
+
**Acceptance Criteria**:
|
|
90
|
+
1. WHEN [event] THEN system SHALL [behavior]
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Edge Cases
|
|
95
|
+
|
|
96
|
+
- WHEN [boundary condition] THEN system SHALL [behavior]
|
|
97
|
+
- WHEN [error scenario] THEN system SHALL [graceful handling]
|
|
98
|
+
- WHEN [unexpected input] THEN system SHALL [validation response]
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Success Criteria
|
|
103
|
+
|
|
104
|
+
How we know the feature is successful:
|
|
105
|
+
- [ ] [Measurable outcome - e.g., "User can complete X in < 2 minutes"]
|
|
106
|
+
- [ ] [Measurable outcome - e.g., "Zero errors in Y scenario"]
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Tips
|
|
112
|
+
|
|
113
|
+
- **P1 = Vertical Slice** - A complete, demo-able feature, not just backend or frontend
|
|
114
|
+
- **WHEN/THEN is code** - If you can't write it as a test, rewrite it
|
|
115
|
+
- **Edge cases matter** - What breaks? What's empty? What's huge?
|
|
116
|
+
- **Confirm before Design** - User must approve spec before moving on
|