@comfanion/workflow 3.0.0
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/README.md +185 -0
- package/bin/cli.js +406 -0
- package/package.json +50 -0
- package/src/build-info.json +16 -0
- package/src/opencode/ARCHITECTURE.md +255 -0
- package/src/opencode/FLOW.yaml +900 -0
- package/src/opencode/agents/analyst.md +141 -0
- package/src/opencode/agents/architect.md +177 -0
- package/src/opencode/agents/change-manager.md +263 -0
- package/src/opencode/agents/dev.md +171 -0
- package/src/opencode/agents/module-docs.md +628 -0
- package/src/opencode/agents/pm.md +157 -0
- package/src/opencode/agents/researcher.md +254 -0
- package/src/opencode/agents/sm.md +184 -0
- package/src/opencode/agents/workflow-orchestrator.md +249 -0
- package/src/opencode/checklists/architecture-checklist.md +166 -0
- package/src/opencode/checklists/code-review-checklist.md +151 -0
- package/src/opencode/checklists/prd-checklist.md +140 -0
- package/src/opencode/checklists/requirements-checklist.md +86 -0
- package/src/opencode/checklists/story-checklist.md +137 -0
- package/src/opencode/commands/architecture.md +68 -0
- package/src/opencode/commands/archive.md +146 -0
- package/src/opencode/commands/change.md +169 -0
- package/src/opencode/commands/clarify.md +132 -0
- package/src/opencode/commands/code-review.md +96 -0
- package/src/opencode/commands/coding-standards.md +102 -0
- package/src/opencode/commands/dev-story.md +80 -0
- package/src/opencode/commands/diagram.md +152 -0
- package/src/opencode/commands/epics.md +52 -0
- package/src/opencode/commands/help.md +139 -0
- package/src/opencode/commands/jira-sync.md +58 -0
- package/src/opencode/commands/module-docs.md +158 -0
- package/src/opencode/commands/prd.md +63 -0
- package/src/opencode/commands/quick.md +166 -0
- package/src/opencode/commands/requirements.md +49 -0
- package/src/opencode/commands/research.md +113 -0
- package/src/opencode/commands/sprint-plan.md +59 -0
- package/src/opencode/commands/stories.md +61 -0
- package/src/opencode/commands/validate.md +84 -0
- package/src/opencode/commands/workflow-status.md +150 -0
- package/src/opencode/config.yaml +223 -0
- package/src/opencode/opencode.json +36 -0
- package/src/opencode/skills/acceptance-criteria/SKILL.md +212 -0
- package/src/opencode/skills/adr-writing/SKILL.md +241 -0
- package/src/opencode/skills/architecture-design/SKILL.md +183 -0
- package/src/opencode/skills/architecture-validation/SKILL.md +199 -0
- package/src/opencode/skills/archiving/SKILL.md +191 -0
- package/src/opencode/skills/changelog/SKILL.md +280 -0
- package/src/opencode/skills/code-review/SKILL.md +193 -0
- package/src/opencode/skills/coding-standards/SKILL.md +430 -0
- package/src/opencode/skills/diagram-creation/SKILL.md +273 -0
- package/src/opencode/skills/doc-todo/SKILL.md +325 -0
- package/src/opencode/skills/epic-writing/SKILL.md +291 -0
- package/src/opencode/skills/jira-integration/SKILL.md +560 -0
- package/src/opencode/skills/methodologies/SKILL.md +376 -0
- package/src/opencode/skills/module-documentation/SKILL.md +214 -0
- package/src/opencode/skills/prd-validation/SKILL.md +164 -0
- package/src/opencode/skills/prd-writing/SKILL.md +104 -0
- package/src/opencode/skills/requirements-gathering/SKILL.md +132 -0
- package/src/opencode/skills/requirements-validation/SKILL.md +141 -0
- package/src/opencode/skills/research-methodology/SKILL.md +140 -0
- package/src/opencode/skills/sprint-planning/SKILL.md +217 -0
- package/src/opencode/skills/story-writing/SKILL.md +574 -0
- package/src/opencode/skills/test-design/SKILL.md +313 -0
- package/src/opencode/skills/translation/SKILL.md +411 -0
- package/src/opencode/templates/CHANGELOG.md +82 -0
- package/src/opencode/templates/adr-template.md +115 -0
- package/src/opencode/templates/architecture-template.md +362 -0
- package/src/opencode/templates/change-proposal-template.md +186 -0
- package/src/opencode/templates/epic-template.md +151 -0
- package/src/opencode/templates/git-workflow-template.md +384 -0
- package/src/opencode/templates/integration-tests-template.md +265 -0
- package/src/opencode/templates/jira-cache-template.yaml +103 -0
- package/src/opencode/templates/module-index-template.md +139 -0
- package/src/opencode/templates/module-test-cases-template.md +230 -0
- package/src/opencode/templates/prd-acceptance-criteria-template.md +124 -0
- package/src/opencode/templates/prd-template.md +479 -0
- package/src/opencode/templates/requirements-template.md +132 -0
- package/src/opencode/templates/sprint-status-template.yaml +84 -0
- package/src/opencode/templates/story-template.md +437 -0
- package/src/opencode/templates/testing-standards-template.md +359 -0
- package/src/opencode/workflows/dev-story/instructions.md +529 -0
- package/src/repo-structure/.gitattributes +64 -0
- package/src/repo-structure/CONTRIBUTING.md +182 -0
- package/src/repo-structure/README.md +77 -0
- package/src/repo-structure/docs/README.md +62 -0
- package/src/repo-structure/docs/api/README.md +43 -0
- package/src/repo-structure/docs/architecture/README.md +36 -0
- package/src/repo-structure/docs/architecture/adr/README.md +53 -0
- package/src/repo-structure/docs/architecture/diagrams/README.md +59 -0
- package/src/repo-structure/docs/coding-standards/README.md +52 -0
- package/src/repo-structure/docs/confluence/README.md +43 -0
- package/src/repo-structure/docs/requirements/README.md +28 -0
- package/src/repo-structure/docs/sprint-artifacts/README.md +76 -0
- package/src/repo-structure/docs/sprint-artifacts/backlog/README.md +24 -0
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: epic-writing
|
|
3
|
+
description: How to write epics with proper structure, acceptance criteria, and PRD traceability
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: opencode
|
|
6
|
+
metadata:
|
|
7
|
+
domain: agile
|
|
8
|
+
artifacts: docs/sprint-artifacts/*/epic-*.md
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Epic Writing Skill
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
Use this skill when you need to:
|
|
16
|
+
- Create epics from PRD requirements
|
|
17
|
+
- Structure implementation work into manageable chunks
|
|
18
|
+
- Define epic-level acceptance criteria
|
|
19
|
+
- Track PRD coverage
|
|
20
|
+
|
|
21
|
+
## Template
|
|
22
|
+
|
|
23
|
+
Use template at: `@.opencode/templates/epic-template.md`
|
|
24
|
+
|
|
25
|
+
## Epic Structure
|
|
26
|
+
|
|
27
|
+
### Header (YAML-like)
|
|
28
|
+
|
|
29
|
+
```markdown
|
|
30
|
+
# Epic N: [Title]
|
|
31
|
+
|
|
32
|
+
**Epic ID:** [MODULE]-E[NN]
|
|
33
|
+
**Status:** TODO | IN_PROGRESS | DONE
|
|
34
|
+
**Priority:** P0 | P1 | P2
|
|
35
|
+
**Sprint:** sprint-[N]
|
|
36
|
+
**Branch:** feature/epic-[NN]-[short-name]
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Sections
|
|
40
|
+
|
|
41
|
+
1. **Overview** - 2-3 sentences on goal and value
|
|
42
|
+
2. **Business Value** - Why this epic matters
|
|
43
|
+
3. **Dependencies** - What must come before/after
|
|
44
|
+
4. **Architecture References** - Links to architecture sections
|
|
45
|
+
5. **PRD Coverage** - Which FRs this epic implements
|
|
46
|
+
6. **Acceptance Criteria** - MANDATORY, high-level
|
|
47
|
+
7. **Stories** - Table of stories in this epic
|
|
48
|
+
8. **Technical Notes** - Implementation hints
|
|
49
|
+
9. **Risks & Mitigations**
|
|
50
|
+
|
|
51
|
+
## Naming Conventions
|
|
52
|
+
|
|
53
|
+
### File Naming
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
epic-[NN]-[module]-[description].md
|
|
57
|
+
|
|
58
|
+
Examples:
|
|
59
|
+
- epic-01-catalog-data-layer.md
|
|
60
|
+
- epic-05-catalog-products-service.md
|
|
61
|
+
- epic-10-inventory-reservations.md
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Epic ID Format
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
[MODULE]-E[NN]
|
|
68
|
+
|
|
69
|
+
Examples:
|
|
70
|
+
- CATALOG-E01
|
|
71
|
+
- CATALOG-E05
|
|
72
|
+
- INVENTORY-E10
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Branch Naming
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
feature/epic-[NN]-[short-name]
|
|
79
|
+
|
|
80
|
+
Examples:
|
|
81
|
+
- feature/epic-01-data-layer
|
|
82
|
+
- feature/epic-05-products-service
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Acceptance Criteria (MANDATORY)
|
|
86
|
+
|
|
87
|
+
Every epic MUST have acceptance criteria. Use skill: `acceptance-criteria`
|
|
88
|
+
|
|
89
|
+
### Epic-level AC Format
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
## Acceptance Criteria
|
|
93
|
+
|
|
94
|
+
- [ ] All CRUD operations for [entity] implemented
|
|
95
|
+
- [ ] API endpoints follow REST conventions
|
|
96
|
+
- [ ] Events published for all state changes
|
|
97
|
+
- [ ] Unit test coverage > 80%
|
|
98
|
+
- [ ] Integration tests passing
|
|
99
|
+
- [ ] Documentation updated
|
|
100
|
+
- [ ] Code review passed
|
|
101
|
+
- [ ] All stories completed
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### AC Quality Rules
|
|
105
|
+
|
|
106
|
+
- **Testable** - Each criterion can be verified
|
|
107
|
+
- **Feature-complete** - Covers the entire epic scope
|
|
108
|
+
- **Not story-level** - Higher level than individual stories
|
|
109
|
+
|
|
110
|
+
## PRD Coverage Matrix
|
|
111
|
+
|
|
112
|
+
Track which FRs are covered:
|
|
113
|
+
|
|
114
|
+
```markdown
|
|
115
|
+
### PRD Coverage
|
|
116
|
+
|
|
117
|
+
| FR ID | Requirement | Covered | Story |
|
|
118
|
+
|-------|-------------|---------|-------|
|
|
119
|
+
| FR-001 | Product creation | ✅ | S05-01 |
|
|
120
|
+
| FR-002 | Product validation | ✅ | S05-02 |
|
|
121
|
+
| FR-003 | Product search | ⏳ | S05-05 |
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Epic → Story → Task Hierarchy
|
|
125
|
+
|
|
126
|
+
### Decomposition Rules (MANDATORY)
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
EPIC (1-2 weeks)
|
|
130
|
+
└── STORY (1-3 days)
|
|
131
|
+
└── TASK (1-2 hours)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
| Level | Duration | Count | Deliverable |
|
|
135
|
+
|-------|----------|-------|-------------|
|
|
136
|
+
| **Epic** | 1-2 weeks | 1 | Complete feature |
|
|
137
|
+
| **Story** | 1-3 days | 3-8 per epic | User-facing capability |
|
|
138
|
+
| **Task** | 1-2 hours | 4-10 per story | Atomic code change |
|
|
139
|
+
|
|
140
|
+
### Story Decomposition Pattern
|
|
141
|
+
|
|
142
|
+
Break epic into stories by **architectural layer**:
|
|
143
|
+
|
|
144
|
+
```markdown
|
|
145
|
+
## Stories
|
|
146
|
+
|
|
147
|
+
| # | Layer | Story | Est | Tasks |
|
|
148
|
+
|---|-------|-------|-----|-------|
|
|
149
|
+
| S01 | Domain | Aggregates & Value Objects | M | 6 |
|
|
150
|
+
| S02 | Domain | Repository Interfaces | S | 3 |
|
|
151
|
+
| S03 | Application | Use Cases | M | 8 |
|
|
152
|
+
| S04 | Infrastructure | Repository Implementations | M | 6 |
|
|
153
|
+
| S05 | Infrastructure | HTTP Handlers | S | 5 |
|
|
154
|
+
| S06 | Infrastructure | Event Publishers | S | 4 |
|
|
155
|
+
| S07 | Testing | Integration Tests | S | 4 |
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Story Dependency Graph
|
|
159
|
+
|
|
160
|
+
Visualize story dependencies:
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
S01 (Domain) ──┬──► S02 (Repo Interface) ──► S04 (Repo Impl)
|
|
164
|
+
│ │
|
|
165
|
+
└──► S03 (Use Cases) ──► S05 (HTTP) ─┴──► S06 (Events) ──► S07 (Tests)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Total Effort Calculation
|
|
169
|
+
|
|
170
|
+
```markdown
|
|
171
|
+
### Effort Summary
|
|
172
|
+
|
|
173
|
+
| Story | Tasks | Hours | Days |
|
|
174
|
+
|-------|-------|-------|------|
|
|
175
|
+
| S01 | 6 | 8h | 1d |
|
|
176
|
+
| S02 | 3 | 4h | 0.5d |
|
|
177
|
+
| S03 | 8 | 12h | 1.5d |
|
|
178
|
+
| S04 | 6 | 9h | 1d |
|
|
179
|
+
| S05 | 5 | 7h | 1d |
|
|
180
|
+
| S06 | 4 | 5h | 0.5d |
|
|
181
|
+
| S07 | 4 | 6h | 1d |
|
|
182
|
+
| **Total** | **36** | **51h** | **6.5d** |
|
|
183
|
+
|
|
184
|
+
**Parallel Opportunities:** S02+S03, S04+S05
|
|
185
|
+
**With Parallelism:** ~5 days
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Epic Sizing
|
|
189
|
+
|
|
190
|
+
### Guidelines
|
|
191
|
+
|
|
192
|
+
- **Duration:** 1-2 weeks of work
|
|
193
|
+
- **Stories:** 3-8 stories per epic
|
|
194
|
+
- **Tasks:** 25-60 tasks per epic (total across stories)
|
|
195
|
+
- **Scope:** One logical feature/capability
|
|
196
|
+
|
|
197
|
+
### Too Big? Split it!
|
|
198
|
+
|
|
199
|
+
Signs an epic is too big:
|
|
200
|
+
- More than 10 stories
|
|
201
|
+
- More than 80 tasks total
|
|
202
|
+
- Spans multiple sprints
|
|
203
|
+
- Multiple unrelated features
|
|
204
|
+
- Different team members for different parts
|
|
205
|
+
|
|
206
|
+
### Too Small? Merge it!
|
|
207
|
+
|
|
208
|
+
Signs an epic is too small:
|
|
209
|
+
- Only 1-2 stories
|
|
210
|
+
- Less than 15 tasks
|
|
211
|
+
- Can be done in 2-3 days
|
|
212
|
+
- Part of a larger feature
|
|
213
|
+
|
|
214
|
+
### Parallel Execution Opportunities
|
|
215
|
+
|
|
216
|
+
Identify which stories can run in parallel:
|
|
217
|
+
|
|
218
|
+
```markdown
|
|
219
|
+
### Execution Phases
|
|
220
|
+
|
|
221
|
+
| Phase | Stories (Parallel) | Duration |
|
|
222
|
+
|-------|-------------------|----------|
|
|
223
|
+
| 1 | S01 | 1d |
|
|
224
|
+
| 2 | S02, S03 | 1.5d |
|
|
225
|
+
| 3 | S04, S05 | 1d |
|
|
226
|
+
| 4 | S06 | 0.5d |
|
|
227
|
+
| 5 | S07 | 1d |
|
|
228
|
+
| **Total** | | **5d** |
|
|
229
|
+
|
|
230
|
+
**Sequential would be:** 6.5d
|
|
231
|
+
**Savings from parallelism:** 1.5d (23%)
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## Dependencies
|
|
235
|
+
|
|
236
|
+
### Documenting Dependencies
|
|
237
|
+
|
|
238
|
+
```markdown
|
|
239
|
+
### Dependencies
|
|
240
|
+
|
|
241
|
+
**Requires (must complete first):**
|
|
242
|
+
- CATALOG-E01: Data layer must exist before domain
|
|
243
|
+
- CATALOG-E02: Domain types needed for repository
|
|
244
|
+
|
|
245
|
+
**Enables (unlocks these):**
|
|
246
|
+
- CATALOG-E10: Search requires products to exist
|
|
247
|
+
- INVENTORY-E01: Inventory needs product IDs
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Dependency Rules
|
|
251
|
+
|
|
252
|
+
1. Dependencies form a DAG (no cycles!)
|
|
253
|
+
2. Sprint planning respects dependencies
|
|
254
|
+
3. Blocked epics cannot start
|
|
255
|
+
|
|
256
|
+
## Directory Structure
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
docs/sprint-artifacts/
|
|
260
|
+
├── backlog/
|
|
261
|
+
│ └── epic-10-search-integration.md # Not yet scheduled
|
|
262
|
+
├── sprint-0/
|
|
263
|
+
│ ├── epic-01-data-layer.md # Completed
|
|
264
|
+
│ └── stories/
|
|
265
|
+
├── sprint-1/
|
|
266
|
+
│ ├── epic-05-products-service.md # Current
|
|
267
|
+
│ └── stories/
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## Validation Checklist
|
|
271
|
+
|
|
272
|
+
Before completing epic:
|
|
273
|
+
- [ ] Epic ID is unique
|
|
274
|
+
- [ ] Branch name follows convention
|
|
275
|
+
- [ ] PRD coverage is documented
|
|
276
|
+
- [ ] Dependencies are identified
|
|
277
|
+
- [ ] Architecture references included
|
|
278
|
+
- [ ] **Acceptance criteria present** (MANDATORY!)
|
|
279
|
+
- [ ] Stories table is complete
|
|
280
|
+
- [ ] Estimate is reasonable (1-2 weeks)
|
|
281
|
+
|
|
282
|
+
## Output
|
|
283
|
+
|
|
284
|
+
Save to: `docs/sprint-artifacts/sprint-[N]/epic-[NN]-[module]-[description].md`
|
|
285
|
+
|
|
286
|
+
## Related Skills
|
|
287
|
+
|
|
288
|
+
- `story-writing` - For creating stories within epic
|
|
289
|
+
- `acceptance-criteria` - For writing AC
|
|
290
|
+
- `sprint-planning` - For organizing epics into sprints
|
|
291
|
+
- `jira-integration` - For syncing to Jira
|