@comfanion/workflow 4.1.2 → 4.3.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.
Files changed (46) hide show
  1. package/README.md +1 -2
  2. package/bin/cli.js +2 -4
  3. package/package.json +1 -1
  4. package/src/build-info.json +1 -1
  5. package/src/opencode/ARCHITECTURE.md +7 -6
  6. package/src/opencode/FLOW.yaml +10 -10
  7. package/src/opencode/agents/coder.md +82 -0
  8. package/src/opencode/agents/dev.md +10 -0
  9. package/src/opencode/commands/architecture.md +1 -1
  10. package/src/opencode/commands/prd.md +1 -1
  11. package/src/opencode/config.yaml +1 -1
  12. package/src/opencode/skills/adr-writing/SKILL.md +122 -159
  13. package/src/opencode/skills/adr-writing/template.md +130 -0
  14. package/src/opencode/skills/architecture-design/SKILL.md +113 -107
  15. package/src/opencode/skills/architecture-design/template.md +212 -0
  16. package/src/opencode/skills/architecture-validation/SKILL.md +1 -1
  17. package/src/opencode/skills/changelog/template.md +23 -0
  18. package/src/opencode/skills/epic-writing/SKILL.md +116 -264
  19. package/src/opencode/skills/epic-writing/template.md +119 -0
  20. package/src/opencode/skills/prd-validation/SKILL.md +1 -1
  21. package/src/opencode/skills/prd-writing/SKILL.md +79 -43
  22. package/src/opencode/skills/prd-writing/template.md +147 -0
  23. package/src/opencode/skills/requirements-gathering/SKILL.md +128 -78
  24. package/src/opencode/skills/requirements-gathering/template.md +156 -0
  25. package/src/opencode/skills/story-writing/SKILL.md +106 -464
  26. package/src/opencode/skills/story-writing/template.md +214 -0
  27. package/src/opencode/skills/unit-writing/SKILL.md +185 -0
  28. package/src/opencode/skills/unit-writing/template.md +136 -0
  29. package/src/repo-structure/docs/README.md +5 -5
  30. package/src/repo-structure/docs/requirements/README.md +1 -1
  31. package/src/opencode/templates/CHANGELOG.md +0 -82
  32. package/src/opencode/templates/adr-template.md +0 -115
  33. package/src/opencode/templates/architecture-template.md +0 -362
  34. package/src/opencode/templates/epic-template.md +0 -166
  35. package/src/opencode/templates/prd-template.md +0 -479
  36. package/src/opencode/templates/requirements-template.md +0 -132
  37. package/src/opencode/templates/story-template.md +0 -182
  38. /package/src/opencode/{templates/prd-acceptance-criteria-template.md → skills/acceptance-criteria/template.md} +0 -0
  39. /package/src/opencode/{templates/change-proposal-template.md → skills/archiving/template-change-proposal.md} +0 -0
  40. /package/src/opencode/{templates/git-workflow-template.md → skills/coding-standards/template-git.md} +0 -0
  41. /package/src/opencode/{templates/testing-standards-template.md → skills/coding-standards/template-testing.md} +0 -0
  42. /package/src/opencode/{templates/jira-cache-template.yaml → skills/jira-integration/template-cache.yaml} +0 -0
  43. /package/src/opencode/{templates/module-index-template.md → skills/module-documentation/template.md} +0 -0
  44. /package/src/opencode/{templates/sprint-status-template.yaml → skills/sprint-planning/template.yaml} +0 -0
  45. /package/src/opencode/{templates/integration-tests-template.md → skills/test-design/template-integration.md} +0 -0
  46. /package/src/opencode/{templates/module-test-cases-template.md → skills/test-design/template-module.md} +0 -0
@@ -19,49 +19,80 @@ Use this skill when you need to:
19
19
 
20
20
  ## Template
21
21
 
22
- Use the template at: `@.opencode/templates/prd-template.md`
22
+ Use the template at: `@.opencode/skills/prd-writing/template.md`
23
23
 
24
- ## PRD Structure
24
+ ## PRD Structure (v2)
25
25
 
26
- ### Required Sections
26
+ ### 1. Executive Summary
27
27
 
28
- 1. **Executive Summary** (2-3 paragraphs)
29
- - What is being built
30
- - Why it's being built (business value)
31
- - Unique value proposition
28
+ Brief prose section with:
29
+ - What the system is and does
30
+ - Architecture pattern
31
+ - Key domains (numbered list)
32
+ - What makes this special (unique value)
33
+ - Scale (MVP and Growth targets)
32
34
 
33
- 2. **Project Classification**
34
- - Technical Type
35
- - Domain
36
- - Complexity
37
- - Architecture style
35
+ ### 2. Success Criteria
38
36
 
39
- 3. **Success Criteria** (measurable!)
40
- - MVP Success metrics
41
- - Growth Success metrics
37
+ | Section | Content |
38
+ |---------|---------|
39
+ | MVP Success | Measurable criteria for launch |
40
+ | Growth Success | Measurable criteria for scale |
42
41
 
43
- 4. **Product Scope**
44
- - MVP features (P0)
45
- - Growth features (P1)
46
- - Vision features (P2)
42
+ ### 3. Product Scope
47
43
 
48
- 5. **Functional Requirements**
49
- - Organized by domain
50
- - Each FR has: ID, Priority, Scope, Description, AC
44
+ | Section | Content |
45
+ |---------|---------|
46
+ | MVP | Features by domain |
47
+ | Growth Features | Post-MVP enhancements |
48
+ | Out of Scope | Explicit exclusions |
51
49
 
52
- 6. **Non-Functional Requirements**
53
- - Performance (with metrics)
54
- - Security
55
- - Scalability
56
- - Reliability
50
+ ### 4. Functional Requirements
57
51
 
58
- 7. **Dependencies & Integrations**
59
- 8. **Risks & Mitigations**
60
- 9. **Constraints**
61
- 10. **Open Questions**
52
+ **Grouped by domain in tables:**
53
+
54
+ | ID | Requirement | Priority |
55
+ |----|-------------|----------|
56
+ | FR-001 | {{requirement}} | P0 |
57
+
58
+ With **Notes:** for business rules after each domain table.
59
+
60
+ ### 5. Non-Functional Requirements
61
+
62
+ Tables for:
63
+ - Performance (with metrics)
64
+ - Security
65
+ - Scalability
66
+
67
+ ### 6. Critical Business Rules
68
+
69
+ Numbered list with **bold rule name** — description format.
70
+
71
+ ### 7. Glossary
72
+
73
+ | Term | Definition |
74
+ |------|------------|
75
+
76
+ ### 8. References
77
+
78
+ Using `→` format:
79
+ ```
80
+ → Architecture: `docs/architecture.md`
81
+ → Requirements: `docs/requirements.md`
82
+ ```
62
83
 
63
84
  ## Writing Guidelines
64
85
 
86
+ ### Reference Format
87
+
88
+ Always use `→` prefix for links:
89
+ ```
90
+ → Unit: `Task`
91
+ → FR: `FR-001`
92
+ → ADR: `ADR-001`
93
+ → `path/to/file.md`
94
+ ```
95
+
65
96
  ### Requirement IDs
66
97
  - Functional: `FR-001`, `FR-002`, ...
67
98
  - Non-Functional: `NFR-001`, `NFR-002`, ...
@@ -71,27 +102,31 @@ Use the template at: `@.opencode/templates/prd-template.md`
71
102
  - **P1**: Should have for growth
72
103
  - **P2**: Nice to have for vision
73
104
 
74
- ### Scope Classification
75
- - **MVP**: Minimum viable product (v1.0)
76
- - **Growth**: Post-MVP enhancements (v1.x)
77
- - **Vision**: Future roadmap (v2.0+)
105
+ ### Tables over Prose
106
+
107
+ Prefer structured tables over paragraphs:
108
+ ```markdown
109
+ | ID | Requirement | Priority |
110
+ |----|-------------|----------|
111
+ | FR-001 | User can create task | P0 |
112
+ ```
78
113
 
79
- ### Language Rules
80
- - Use "must", "shall", "will" for mandatory items
81
- - Use "should", "may" for optional items
82
- - Avoid ambiguous terms without metrics
114
+ NOT:
115
+ ```markdown
116
+ FR-001: The user shall be able to create a task. This is a P0 requirement...
117
+ ```
83
118
 
84
119
  ## Validation Checklist
85
120
 
86
121
  Before completing PRD:
87
122
  - [ ] Executive summary explains the "why"
88
123
  - [ ] All FRs from requirements.md are addressed
89
- - [ ] All NFRs from requirements.md are addressed
124
+ - [ ] All NFRs have measurable metrics
90
125
  - [ ] Success criteria are measurable
91
126
  - [ ] Scope boundaries are clear
92
- - [ ] No conflicting requirements
93
- - [ ] Risks are documented with mitigations
94
- - [ ] Each FR has acceptance criteria
127
+ - [ ] Critical business rules documented
128
+ - [ ] Uses `→` reference format
129
+ - [ ] Tables used for structured data
95
130
 
96
131
  ## Output
97
132
 
@@ -102,3 +137,4 @@ Save to: `docs/prd.md`
102
137
  - `acceptance-criteria` - For writing testable AC
103
138
  - `requirements-gathering` - For source requirements
104
139
  - `prd-validation` - For validating the PRD
140
+ - `unit-writing` - For documenting units referenced in PRD
@@ -0,0 +1,147 @@
1
+ # {{project}} — PRD
2
+
3
+ ```yaml
4
+ id: PRD-001
5
+ version: 1.0
6
+ status: draft | approved
7
+ date: {{date}}
8
+ author: {{author}}
9
+ ```
10
+
11
+ ---
12
+
13
+ ## Executive Summary
14
+
15
+ {{project}} is a {{type}} platform for {{target_users}}. The system handles {{core_capabilities}}.
16
+
17
+ **Architecture:** {{architecture_pattern}}
18
+
19
+ **Key Domains:**
20
+ 1. **{{domain_1}}** — {{description}}
21
+ 2. **{{domain_2}}** — {{description}}
22
+
23
+ **What Makes This Special:**
24
+ - {{unique_value_1}}
25
+ - {{unique_value_2}}
26
+
27
+ **Scale:**
28
+ - **MVP:** {{mvp_scale}}
29
+ - **Growth:** {{growth_scale}}
30
+
31
+ <!-- e.g.
32
+ TaskFlow is a B2B platform for managing distributed teams. The system handles task management, real-time collaboration, and team analytics.
33
+
34
+ **Architecture:** Modular Monolith with Hexagonal Architecture
35
+
36
+ **Key Domains:**
37
+ 1. **Task Management** — CRUD, assignments, status workflow
38
+ 2. **Team** — Users, roles, permissions
39
+
40
+ **What Makes This Special:**
41
+ - Real-time sync without WebSockets (smart polling)
42
+ - Formula-based task prioritization
43
+
44
+ **Scale:**
45
+ - **MVP:** 100 teams, 10K tasks
46
+ - **Growth:** 1000 teams, 100K tasks
47
+ -->
48
+
49
+ ---
50
+
51
+ ## Success Criteria
52
+
53
+ ### MVP Success
54
+ - {{criterion_1}}
55
+ - {{criterion_2}}
56
+
57
+ ### Growth Success
58
+ - {{criterion_1}}
59
+ - {{criterion_2}}
60
+
61
+ ---
62
+
63
+ ## Product Scope
64
+
65
+ ### MVP — Minimum Viable Product
66
+
67
+ **{{Domain_1}}:**
68
+ - {{capability}}
69
+ - {{capability}}
70
+
71
+ **{{Domain_2}}:**
72
+ - {{capability}}
73
+
74
+ ### Growth Features (Post-MVP)
75
+ - {{feature}}
76
+
77
+ ### Out of Scope
78
+ - {{item}}
79
+
80
+ ---
81
+
82
+ ## Functional Requirements
83
+
84
+ ### {{Domain_1}}
85
+
86
+ | ID | Requirement | Priority |
87
+ |----|-------------|----------|
88
+ | FR-001 | {{requirement}} | P0 |
89
+ | FR-002 | {{requirement}} | P0 |
90
+ | FR-003 | {{requirement}} | P1 |
91
+
92
+ <!-- e.g.
93
+ | FR-001 | User can create task with title, description, due date | P0 |
94
+ | FR-002 | User can assign task to team member | P0 |
95
+ | FR-003 | System sends notification on assignment | P1 |
96
+ -->
97
+
98
+ **Notes:**
99
+ - {{important_business_rule}}
100
+
101
+ ### {{Domain_2}}
102
+
103
+ | ID | Requirement | Priority |
104
+ |----|-------------|----------|
105
+ | FR-010 | {{requirement}} | P0 |
106
+
107
+ ---
108
+
109
+ ## Non-Functional Requirements
110
+
111
+ ### Performance
112
+ | Metric | Target |
113
+ |--------|--------|
114
+ | {{metric}} | {{value}} |
115
+
116
+ ### Security
117
+ - {{requirement}}
118
+
119
+ ### Scalability
120
+ - {{requirement}}
121
+
122
+ ---
123
+
124
+ ## Critical Business Rules
125
+
126
+ 1. **{{rule_name}}** — {{description}}
127
+ 2. **{{rule_name}}** — {{description}}
128
+
129
+ <!-- e.g.
130
+ 1. **One User = One Task Owner** — Task can have only one assignee at a time
131
+ 2. **Status Flow** — Tasks follow: todo → in_progress → done (no skip)
132
+ -->
133
+
134
+ ---
135
+
136
+ ## Glossary
137
+
138
+ | Term | Definition |
139
+ |------|------------|
140
+ | {{term}} | {{definition}} |
141
+
142
+ ---
143
+
144
+ ## References
145
+
146
+ → Architecture: `{{path}}`
147
+ → Requirements: `{{path}}`
@@ -13,114 +13,163 @@ metadata:
13
13
  ## When to Use
14
14
 
15
15
  Use this skill when you need to:
16
- - Conduct stakeholder interviews
17
- - Extract functional requirements (FR)
18
- - Extract non-functional requirements (NFR)
19
- - Discover hidden requirements through questions
16
+ - Gather requirements from stakeholders
17
+ - Document functional and non-functional requirements
18
+ - Create the foundation for PRD
20
19
 
21
- ## Interview Technique
20
+ ## Template
22
21
 
23
- ### Phase 1: Context Discovery
22
+ Use template at: `@.opencode/skills/requirements-gathering/template.md`
24
23
 
25
- Ask these questions first:
26
- 1. What problem are we solving?
27
- 2. Who are the users/stakeholders?
28
- 3. What existing systems does this integrate with?
29
- 4. What's the timeline and budget?
30
- 5. What happens if we don't build this?
24
+ ## Requirements Document Structure (v2)
31
25
 
32
- ### Phase 2: Functional Discovery
26
+ ### 1. Header
33
27
 
34
- For each user type:
35
- 1. What actions should they be able to perform?
36
- 2. What are the main workflows?
37
- 3. What data do they need to see/edit?
38
- 4. What are the edge cases?
39
- 5. What errors might occur?
28
+ ```yaml
29
+ id: REQ-001
30
+ version: 1.0
31
+ status: draft | approved
32
+ date: {{date}}
33
+ author: {{author}}
34
+ ```
40
35
 
41
- ### Phase 3: Quality Attributes (NFR)
36
+ ### 2. Summary
42
37
 
43
- Ask about:
44
- - **Performance**: Expected response times? Concurrent users?
45
- - **Security**: Authentication? Data sensitivity? Compliance?
46
- - **Scalability**: Data volume growth? User growth?
47
- - **Reliability**: Uptime requirements? Recovery time?
48
- - **Usability**: User expertise level? Accessibility?
38
+ Brief prose explaining:
39
+ - What problem is being solved
40
+ - Who the primary users are
41
+ - Key outcomes expected
49
42
 
50
- ### Phase 4: Constraints & Assumptions
43
+ ### 3. Stakeholders
51
44
 
52
- Document:
53
- - Technical constraints (existing systems, languages, platforms)
54
- - Business constraints (budget, timeline, regulations)
55
- - Assumptions being made
45
+ | Role | Representative | Interest | Influence |
46
+ |------|---------------|----------|-----------|
47
+ | Product Owner | Name | Feature delivery | High |
48
+ | End Users | Segment | Daily usage | High |
56
49
 
57
- ## Output Format
50
+ ### 4. Functional Requirements
58
51
 
59
- ### Functional Requirements
52
+ **Grouped by domain:**
60
53
 
61
54
  ```markdown
62
- ### FR-001: [Requirement Title]
55
+ ### Task Management
63
56
 
64
- **Priority:** P0 | P1 | P2
65
- **Source:** [Stakeholder / Document / Interview]
66
- **Category:** [Domain area]
57
+ Core task lifecycle operations.
67
58
 
68
- **Description:**
69
- [Clear, unambiguous description of what the system must do]
59
+ | ID | Requirement | Priority | Source |
60
+ |----|-------------|----------|--------|
61
+ | FR-001 | User can create task | P0 | Team Lead |
70
62
 
71
- **Acceptance Criteria:**
72
- - [ ] [Testable criterion 1]
73
- - [ ] [Testable criterion 2]
63
+ **Business Rules:**
64
+ - One task = one assignee
74
65
 
75
- **Dependencies:** [FR-XXX, NFR-XXX]
76
- **Notes:** [Additional context]
66
+ **Notes:**
67
+ - Notifications in separate domain
77
68
  ```
78
69
 
79
- ### Non-Functional Requirements
70
+ ### 5. Non-Functional Requirements
80
71
 
81
- ```markdown
82
- ### NFR-001: [Requirement Title]
72
+ Separate tables by category:
73
+ - Performance (with metrics)
74
+ - Security
75
+ - Scalability
76
+
77
+ ### 6. Constraints
78
+
79
+ | Type | Constraint | Impact |
80
+ |------|------------|--------|
81
+ | Technical | Must use existing auth | Limits options |
82
+ | Timeline | MVP in 3 months | Scope pressure |
83
+
84
+ ### 7. Assumptions
85
+
86
+ | # | Assumption | Risk if Wrong | Validation |
87
+ |---|------------|---------------|------------|
88
+ | 1 | Users have modern browsers | IE support needed | Analytics |
89
+
90
+ ### 8. Dependencies
91
+
92
+ | Dependency | Type | Owner | Status | Risk |
93
+ |------------|------|-------|--------|------|
94
+ | Auth service | Technical | Platform team | Available | Low |
95
+
96
+ ### 9. Open Questions
97
+
98
+ | # | Question | Owner | Due | Status |
99
+ |---|----------|-------|-----|--------|
100
+ | 1 | Max file size? | PM | Jan 30 | Open |
101
+
102
+ ### 10. Glossary
83
103
 
84
- **Priority:** P0 | P1 | P2
85
- **Category:** Performance | Security | Scalability | Reliability | Usability
104
+ | Term | Definition |
105
+ |------|------------|
106
+ | Task | Unit of work assigned to user |
86
107
 
87
- **Requirement:**
88
- [Specific, measurable requirement]
108
+ ### 11. References
89
109
 
90
- **Metric:** [How to measure]
91
- **Target:** [Specific target value]
110
+ ```markdown
111
+ PRD: `docs/prd.md`
112
+ → Stakeholder Interviews: `docs/interviews/`
113
+ ```
114
+
115
+ ## Reference Format
92
116
 
93
- **Verification Method:** [How to verify compliance]
117
+ Use `→` for all references:
118
+ ```markdown
119
+ → PRD: `docs/prd.md`
120
+ → FR: `FR-001`
94
121
  ```
95
122
 
96
- ## Requirement Quality Checklist
123
+ ## Requirement Writing Rules
124
+
125
+ ### Good Requirements
126
+
127
+ | Rule | Good | Bad |
128
+ |------|------|-----|
129
+ | Atomic | User can create task | User can create and edit task |
130
+ | Measurable | Load in < 2s | Load quickly |
131
+ | Testable | Title max 200 chars | Title reasonable length |
132
+ | Unambiguous | Required field | Important field |
133
+
134
+ ### Requirement IDs
135
+
136
+ - Functional: `FR-001`, `FR-002`, ...
137
+ - Non-Functional: `NFR-001`, `NFR-002`, ...
138
+
139
+ ### Priority
140
+
141
+ | Level | Meaning | Scope |
142
+ |-------|---------|-------|
143
+ | P0 | Must have | MVP |
144
+ | P1 | Should have | Growth |
145
+ | P2 | Nice to have | Vision |
146
+
147
+ ## Interview Questions
97
148
 
98
- Each requirement must be:
99
- - [ ] **Specific** - Clear, unambiguous
100
- - [ ] **Measurable** - Has acceptance criteria or metrics
101
- - [ ] **Achievable** - Technically feasible
102
- - [ ] **Relevant** - Tied to business value
103
- - [ ] **Traceable** - Has unique ID and source
149
+ ### Functional Discovery
104
150
 
105
- ## Common Anti-patterns to Avoid
151
+ 1. What do you need to accomplish?
152
+ 2. What information do you need to see?
153
+ 3. What actions do you need to take?
154
+ 4. What happens when X fails?
106
155
 
107
- 1. **Vague language**: "The system should be fast" → "API response < 200ms p95"
108
- 2. **Missing metrics**: "High availability" → "99.9% uptime"
109
- 3. **Solution masquerading as requirement**: "Use Redis" → "Cache frequently accessed data"
110
- 4. **Missing acceptance criteria**: Always include testable criteria
156
+ ### NFR Discovery
111
157
 
112
- ## Discovery Questions Bank
158
+ 1. How many users concurrently?
159
+ 2. What response time is acceptable?
160
+ 3. What's the data retention policy?
161
+ 4. What security standards apply?
113
162
 
114
- ### For Hidden Requirements
115
- - "What would make this a failure even if it works correctly?"
116
- - "Who else needs to be involved that we haven't talked to?"
117
- - "What reports or dashboards do you need?"
118
- - "How do you handle this process today?"
163
+ ## Validation Checklist
119
164
 
120
- ### For Prioritization
121
- - "If you could only have 3 features, which would they be?"
122
- - "What's the minimum needed to go live?"
123
- - "What's the cost of NOT having this feature?"
165
+ - [ ] All stakeholders identified
166
+ - [ ] Requirements grouped by domain
167
+ - [ ] Each requirement is atomic and testable
168
+ - [ ] NFRs have measurable metrics
169
+ - [ ] Constraints documented
170
+ - [ ] Assumptions validated
171
+ - [ ] Dependencies identified with owners
172
+ - [ ] Uses `→` reference format
124
173
 
125
174
  ## Output
126
175
 
@@ -128,5 +177,6 @@ Save to: `docs/requirements/requirements.md`
128
177
 
129
178
  ## Related Skills
130
179
 
131
- - `prd-writing` - For turning requirements into PRD
132
- - `requirements-validation` - For validating requirements
180
+ - `prd-writing` - Uses requirements as input
181
+ - `requirements-validation` - Validates requirements
182
+ - `acceptance-criteria` - For testable AC