@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,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Conduct technical, market, or domain research with structured documentation
|
|
3
|
+
agent: researcher
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Research Command
|
|
7
|
+
|
|
8
|
+
## Arguments
|
|
9
|
+
$ARGUMENTS
|
|
10
|
+
|
|
11
|
+
Format: `[type] [topic]`
|
|
12
|
+
|
|
13
|
+
**Types:**
|
|
14
|
+
- "technical" - Technology evaluation
|
|
15
|
+
- "market" - Market/competitor analysis
|
|
16
|
+
- "domain" - Business domain research
|
|
17
|
+
- "integration" - External system/API research
|
|
18
|
+
- "pattern" - Architecture/design patterns
|
|
19
|
+
|
|
20
|
+
**Examples:**
|
|
21
|
+
- `/research technical message-queues`
|
|
22
|
+
- `/research market competitor-analysis`
|
|
23
|
+
- `/research domain e-commerce-regulations`
|
|
24
|
+
- `/research integration stripe-api`
|
|
25
|
+
- `/research pattern cqrs-event-sourcing`
|
|
26
|
+
|
|
27
|
+
**Other commands:**
|
|
28
|
+
- `/research list` - Show all research
|
|
29
|
+
- `/research update [path]` - Update existing research
|
|
30
|
+
|
|
31
|
+
## Check Existing Research
|
|
32
|
+
|
|
33
|
+
!`tree docs/research/ 2>/dev/null || echo "No research yet"`
|
|
34
|
+
|
|
35
|
+
## Input Context
|
|
36
|
+
|
|
37
|
+
Load relevant docs:
|
|
38
|
+
- @docs/prd.md (for context)
|
|
39
|
+
- @docs/architecture.md (for technical context)
|
|
40
|
+
- @docs/research/README.md (for index)
|
|
41
|
+
|
|
42
|
+
## Your Task
|
|
43
|
+
|
|
44
|
+
### Create New Research
|
|
45
|
+
|
|
46
|
+
1. **Determine research type and topic** from arguments
|
|
47
|
+
|
|
48
|
+
2. **Create directory** if needed:
|
|
49
|
+
```
|
|
50
|
+
docs/research/[type]/
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
3. **Conduct research**:
|
|
54
|
+
- Define research questions
|
|
55
|
+
- Gather information (web, docs, code)
|
|
56
|
+
- Analyze findings
|
|
57
|
+
- Form recommendations
|
|
58
|
+
|
|
59
|
+
4. **Create research document**:
|
|
60
|
+
```
|
|
61
|
+
docs/research/[type]/[topic]-research.md
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
5. **Update index**:
|
|
65
|
+
```
|
|
66
|
+
docs/research/README.md
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### List Research
|
|
70
|
+
|
|
71
|
+
Show all research organized by type with status.
|
|
72
|
+
|
|
73
|
+
### Update Research
|
|
74
|
+
|
|
75
|
+
1. Load existing research
|
|
76
|
+
2. Ask what needs updating
|
|
77
|
+
3. Add new findings
|
|
78
|
+
4. Update date and status
|
|
79
|
+
|
|
80
|
+
## Output Location
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
docs/research/
|
|
84
|
+
├── README.md # Index (always update)
|
|
85
|
+
├── technical/
|
|
86
|
+
│ └── [topic]-research.md
|
|
87
|
+
├── market/
|
|
88
|
+
│ └── [topic]-research.md
|
|
89
|
+
├── domain/
|
|
90
|
+
│ └── [topic]-research.md
|
|
91
|
+
├── integrations/
|
|
92
|
+
│ └── [topic]-research.md
|
|
93
|
+
└── patterns/
|
|
94
|
+
└── [topic]-research.md
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Research Document Must Include
|
|
98
|
+
|
|
99
|
+
- [ ] Executive summary
|
|
100
|
+
- [ ] Clear research questions
|
|
101
|
+
- [ ] Methodology
|
|
102
|
+
- [ ] Evidence-based findings
|
|
103
|
+
- [ ] Comparison table (if evaluating options)
|
|
104
|
+
- [ ] Recommendations
|
|
105
|
+
- [ ] Impact on PRD/Architecture
|
|
106
|
+
- [ ] Sources cited
|
|
107
|
+
|
|
108
|
+
## After Completion
|
|
109
|
+
|
|
110
|
+
Suggest:
|
|
111
|
+
- Link research from relevant PRD/Architecture sections
|
|
112
|
+
- If research changes requirements: `/prd edit`
|
|
113
|
+
- If research changes architecture: `/architecture edit`
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Plan and manage sprints
|
|
3
|
+
agent: sm
|
|
4
|
+
model: anthropic/claude-sonnet-4-20250514
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Sprint Planning
|
|
8
|
+
|
|
9
|
+
## Arguments
|
|
10
|
+
$ARGUMENTS
|
|
11
|
+
|
|
12
|
+
- `status` or empty: Show current sprint status
|
|
13
|
+
- `new`: Create new sprint
|
|
14
|
+
- `assign`: Assign epics to sprint
|
|
15
|
+
|
|
16
|
+
## Task
|
|
17
|
+
|
|
18
|
+
### Status Mode
|
|
19
|
+
|
|
20
|
+
1. Load: @docs/sprint-artifacts/sprint-status.yaml
|
|
21
|
+
2. Show current sprint progress
|
|
22
|
+
3. List blockers if any
|
|
23
|
+
4. Suggest next actions
|
|
24
|
+
|
|
25
|
+
### New Sprint Mode
|
|
26
|
+
|
|
27
|
+
1. Load skill: `sprint-planning`
|
|
28
|
+
2. Analyze backlog: `docs/sprint-artifacts/backlog/`
|
|
29
|
+
3. Check dependencies
|
|
30
|
+
4. Select epics for sprint
|
|
31
|
+
5. Update sprint-status.yaml
|
|
32
|
+
6. Create sprint folder structure
|
|
33
|
+
|
|
34
|
+
### Assign Mode
|
|
35
|
+
|
|
36
|
+
1. Load skill: `sprint-planning`
|
|
37
|
+
2. Show available epics in backlog
|
|
38
|
+
3. Ask which epics to assign
|
|
39
|
+
4. Check dependencies (blocked epics can't be assigned)
|
|
40
|
+
5. Move epic files to sprint folder
|
|
41
|
+
6. Update sprint-status.yaml
|
|
42
|
+
|
|
43
|
+
## Sprint Folder Structure
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
docs/sprint-artifacts/sprint-N/
|
|
47
|
+
├── README.md # Sprint goal, dates, team
|
|
48
|
+
├── epic-NN-xxx.md # Epics in this sprint
|
|
49
|
+
└── stories/
|
|
50
|
+
└── story-NN-NN-xxx.md
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Output
|
|
54
|
+
|
|
55
|
+
Update: `docs/sprint-artifacts/sprint-status.yaml`
|
|
56
|
+
|
|
57
|
+
## Next Step
|
|
58
|
+
|
|
59
|
+
After sprint planned: `/jira-sync` to sync to Jira
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create stories for a specific epic
|
|
3
|
+
agent: sm
|
|
4
|
+
model: anthropic/claude-sonnet-4-20250514
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Story Creation
|
|
8
|
+
|
|
9
|
+
## Arguments
|
|
10
|
+
$ARGUMENTS
|
|
11
|
+
|
|
12
|
+
**Required:** Epic ID (e.g., `CATALOG-E05`)
|
|
13
|
+
|
|
14
|
+
## Prerequisites
|
|
15
|
+
|
|
16
|
+
Epic must exist. Check:
|
|
17
|
+
!`find docs/sprint-artifacts -name "epic-*.md" 2>/dev/null | head -10`
|
|
18
|
+
|
|
19
|
+
## Task
|
|
20
|
+
|
|
21
|
+
1. Load the specified epic file
|
|
22
|
+
2. Load skill: `story-writing`
|
|
23
|
+
3. Load skill: `acceptance-criteria`
|
|
24
|
+
4. Break epic into stories:
|
|
25
|
+
- Each story is 1-3 days of work
|
|
26
|
+
- User story format: As a... I want... So that...
|
|
27
|
+
- **Given/When/Then AC (MANDATORY)**
|
|
28
|
+
- Technical tasks checklist
|
|
29
|
+
- Definition of Done
|
|
30
|
+
5. Save stories to epic's stories/ folder
|
|
31
|
+
|
|
32
|
+
## Story Creation Checklist
|
|
33
|
+
|
|
34
|
+
For each story:
|
|
35
|
+
- [ ] Unique ID: `[MODULE]-S[EPIC]-[NN]`
|
|
36
|
+
- [ ] User story format
|
|
37
|
+
- [ ] **Acceptance criteria in Given/When/Then**
|
|
38
|
+
- [ ] At least 3 AC (happy path, error, edge case)
|
|
39
|
+
- [ ] Technical tasks defined
|
|
40
|
+
- [ ] Estimate: XS/S/M/L/XL
|
|
41
|
+
- [ ] Definition of Done
|
|
42
|
+
|
|
43
|
+
## Recommended Story Order
|
|
44
|
+
|
|
45
|
+
1. Domain layer (aggregates, value objects)
|
|
46
|
+
2. Repository interfaces
|
|
47
|
+
3. Use cases
|
|
48
|
+
4. Repository implementations
|
|
49
|
+
5. HTTP handlers
|
|
50
|
+
6. Event publishers
|
|
51
|
+
7. Integration tests
|
|
52
|
+
|
|
53
|
+
## Output
|
|
54
|
+
|
|
55
|
+
Save to: `docs/sprint-artifacts/sprint-N/stories/story-EPIC-NN-description.md`
|
|
56
|
+
|
|
57
|
+
## Next Step
|
|
58
|
+
|
|
59
|
+
After stories created:
|
|
60
|
+
- For more epics: `/stories [next-epic-id]`
|
|
61
|
+
- When done: `/sprint-plan`
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Validate project artifacts (requirements, prd, architecture, epics)
|
|
3
|
+
agent: architect
|
|
4
|
+
model: anthropic/claude-sonnet-4-20250514
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Artifact Validation
|
|
8
|
+
|
|
9
|
+
## Arguments
|
|
10
|
+
$ARGUMENTS
|
|
11
|
+
|
|
12
|
+
- `requirements` - Validate requirements.md
|
|
13
|
+
- `prd` - Validate PRD + QA artifact
|
|
14
|
+
- `architecture` - Validate architecture + QA artifact
|
|
15
|
+
- `epics` - Validate epics (AC presence)
|
|
16
|
+
- `stories` - Validate stories (AC presence)
|
|
17
|
+
- `all` - Validate entire pipeline
|
|
18
|
+
- (empty) - Interactive selection
|
|
19
|
+
|
|
20
|
+
## Task
|
|
21
|
+
|
|
22
|
+
Based on argument, load appropriate validation skill:
|
|
23
|
+
|
|
24
|
+
### Requirements
|
|
25
|
+
Load skill: `requirements-validation`
|
|
26
|
+
- Check IDs, priorities, AC, language quality
|
|
27
|
+
|
|
28
|
+
### PRD
|
|
29
|
+
Load skill: `prd-validation`
|
|
30
|
+
- Prerequisites: requirements PASS
|
|
31
|
+
- Check structure, coverage, QA artifact
|
|
32
|
+
|
|
33
|
+
### Architecture
|
|
34
|
+
Load skill: `architecture-validation`
|
|
35
|
+
- Prerequisites: PRD PASS
|
|
36
|
+
- Check NFR compliance, modules, QA artifact
|
|
37
|
+
|
|
38
|
+
### Epics
|
|
39
|
+
- Check all epics have unique IDs
|
|
40
|
+
- **Check all epics have AC (MANDATORY)**
|
|
41
|
+
- Check dependencies form DAG
|
|
42
|
+
- Check PRD coverage
|
|
43
|
+
|
|
44
|
+
### Stories
|
|
45
|
+
- Check all stories have unique IDs
|
|
46
|
+
- Check user story format
|
|
47
|
+
- **Check all stories have Given/When/Then AC (MANDATORY)**
|
|
48
|
+
- Check DoD present
|
|
49
|
+
|
|
50
|
+
### All
|
|
51
|
+
Run in order: requirements → prd → architecture → epics
|
|
52
|
+
Stop on first FAIL.
|
|
53
|
+
|
|
54
|
+
## Output Format
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
# Validation Report - [Type]
|
|
58
|
+
|
|
59
|
+
**Date:** YYYY-MM-DD
|
|
60
|
+
**Status:** PASS | WARN | FAIL
|
|
61
|
+
|
|
62
|
+
## Summary
|
|
63
|
+
- Passed: NN
|
|
64
|
+
- Warnings: NN
|
|
65
|
+
- Failed: NN
|
|
66
|
+
|
|
67
|
+
## QA Artifact
|
|
68
|
+
[Status of mandatory QA artifact if applicable]
|
|
69
|
+
|
|
70
|
+
## Details
|
|
71
|
+
[Specific checks and results]
|
|
72
|
+
|
|
73
|
+
## Next Steps
|
|
74
|
+
[What to do after fixing issues]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Output Location
|
|
78
|
+
|
|
79
|
+
Save to: `docs/validation/[type]-validation-YYYY-MM-DD.md`
|
|
80
|
+
|
|
81
|
+
## After Validation
|
|
82
|
+
|
|
83
|
+
- If PASS: Suggest next pipeline step
|
|
84
|
+
- If FAIL: List issues and how to fix
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show project workflow status and suggest next steps
|
|
3
|
+
agent: sprint-manager
|
|
4
|
+
model: anthropic/claude-sonnet-4-20250514
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Workflow Status
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
This command shows the current state of your project documentation workflow and suggests what to do next.
|
|
12
|
+
|
|
13
|
+
## Workflow Definition
|
|
14
|
+
|
|
15
|
+
Reference: @.opencode/FLOW.yaml
|
|
16
|
+
|
|
17
|
+
## Check All Artifacts
|
|
18
|
+
|
|
19
|
+
### Stage 1: Requirements
|
|
20
|
+
!`ls -la docs/requirements/requirements.md 2>/dev/null && echo "EXISTS" || echo "MISSING"`
|
|
21
|
+
|
|
22
|
+
### Stage 2: PRD
|
|
23
|
+
!`ls -la docs/prd.md 2>/dev/null && echo "EXISTS" || echo "MISSING"`
|
|
24
|
+
|
|
25
|
+
### Stage 2.1: PRD QA (Mandatory)
|
|
26
|
+
!`ls -la docs/prd-acceptance-criteria.md 2>/dev/null && echo "EXISTS" || echo "MISSING"`
|
|
27
|
+
|
|
28
|
+
### Stage 3: Architecture
|
|
29
|
+
!`ls -la docs/architecture.md 2>/dev/null && echo "EXISTS" || echo "MISSING"`
|
|
30
|
+
|
|
31
|
+
### Stage 3.1: Architecture QA (Mandatory)
|
|
32
|
+
!`ls -la docs/architecture-integration-tests.md 2>/dev/null && echo "EXISTS" || echo "MISSING"`
|
|
33
|
+
|
|
34
|
+
### Stage 4: Epics
|
|
35
|
+
!`ls docs/sprint-artifacts/*/epic-*.md 2>/dev/null | wc -l | xargs echo "Epics:"`
|
|
36
|
+
|
|
37
|
+
### Stage 5: Stories
|
|
38
|
+
!`ls docs/sprint-artifacts/*/stories/*.md 2>/dev/null | wc -l | xargs echo "Stories:"`
|
|
39
|
+
|
|
40
|
+
### Stage 6: Sprint Status
|
|
41
|
+
!`ls -la docs/sprint-artifacts/sprint-status.yaml 2>/dev/null && echo "EXISTS" || echo "MISSING"`
|
|
42
|
+
|
|
43
|
+
### Stage 7: Jira Sync
|
|
44
|
+
!`ls -la docs/sprint-artifacts/jira-sync-report.md 2>/dev/null && echo "EXISTS" || echo "NEVER RUN"`
|
|
45
|
+
|
|
46
|
+
### Validation Reports
|
|
47
|
+
!`ls -la docs/validation/*.md 2>/dev/null | tail -5 || echo "No validation reports"`
|
|
48
|
+
|
|
49
|
+
## Generate Status Report
|
|
50
|
+
|
|
51
|
+
Based on the checks above, generate a status report in this format:
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
# Project Workflow Status
|
|
55
|
+
|
|
56
|
+
**Project:** marketplace
|
|
57
|
+
**Date:** YYYY-MM-DD
|
|
58
|
+
**Workflow:** @.opencode/FLOW.yaml
|
|
59
|
+
|
|
60
|
+
## Pipeline Status
|
|
61
|
+
|
|
62
|
+
| # | Stage | Artifact | Status | QA Status |
|
|
63
|
+
|---|-------|----------|--------|-----------|
|
|
64
|
+
| 1 | Requirements | requirements.md | ✅/❌ | N/A |
|
|
65
|
+
| 2 | PRD | prd.md | ✅/❌ | prd-acceptance-criteria.md: ✅/❌ |
|
|
66
|
+
| 3 | Architecture | architecture.md | ✅/❌ | architecture-integration-tests.md: ✅/❌ |
|
|
67
|
+
| 4 | Epics | N epics | ✅/⏳/❌ | N/A |
|
|
68
|
+
| 5 | Stories | N stories | ✅/⏳/❌ | N/A |
|
|
69
|
+
| 6 | Sprint Plan | sprint-status.yaml | ✅/❌ | N/A |
|
|
70
|
+
| 7 | Jira Sync | Last sync | ✅/❌ | N/A |
|
|
71
|
+
|
|
72
|
+
## Current Stage
|
|
73
|
+
|
|
74
|
+
**You are at:** Stage N - [Stage Name]
|
|
75
|
+
**Next action:** [What to do next]
|
|
76
|
+
|
|
77
|
+
## Validation Status
|
|
78
|
+
|
|
79
|
+
| Artifact | Last Validated | Result |
|
|
80
|
+
|----------|---------------|--------|
|
|
81
|
+
| Requirements | date | PASS/WARN/FAIL |
|
|
82
|
+
| PRD | date | PASS/WARN/FAIL |
|
|
83
|
+
| Architecture | date | PASS/WARN/FAIL |
|
|
84
|
+
| Epics | date | PASS/WARN/FAIL |
|
|
85
|
+
|
|
86
|
+
## Recommended Next Steps
|
|
87
|
+
|
|
88
|
+
1. [First action with command]
|
|
89
|
+
2. [Second action with command]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Decision Logic
|
|
93
|
+
|
|
94
|
+
Follow FLOW.yaml pipeline order:
|
|
95
|
+
|
|
96
|
+
### If requirements.md missing:
|
|
97
|
+
→ "Run `/requirements` to start gathering requirements"
|
|
98
|
+
|
|
99
|
+
### If requirements exists but not validated:
|
|
100
|
+
→ "Run `/validate requirements` to validate before PRD"
|
|
101
|
+
|
|
102
|
+
### If requirements validated but PRD missing:
|
|
103
|
+
→ "Run `/prd` to create PRD"
|
|
104
|
+
|
|
105
|
+
### If PRD exists but prd-acceptance-criteria.md missing:
|
|
106
|
+
→ "PRD QA artifact missing! Create `docs/prd-acceptance-criteria.md` with AC for all FRs"
|
|
107
|
+
|
|
108
|
+
### If PRD exists but not validated:
|
|
109
|
+
→ "Run `/validate prd` to validate before architecture"
|
|
110
|
+
|
|
111
|
+
### If PRD validated but architecture missing:
|
|
112
|
+
→ "Run `/architecture` to create architecture"
|
|
113
|
+
|
|
114
|
+
### If architecture exists but architecture-integration-tests.md missing:
|
|
115
|
+
→ "Architecture QA artifact missing! Create `docs/architecture-integration-tests.md`"
|
|
116
|
+
|
|
117
|
+
### If architecture exists but not validated:
|
|
118
|
+
→ "Run `/validate architecture` to validate before epics"
|
|
119
|
+
|
|
120
|
+
### If architecture validated but no epics:
|
|
121
|
+
→ "Run `/epics` to create epics"
|
|
122
|
+
|
|
123
|
+
### If epics exist but no stories:
|
|
124
|
+
→ "Run `/stories [epic-id]` to create stories for each epic"
|
|
125
|
+
|
|
126
|
+
### If stories exist but no sprint plan:
|
|
127
|
+
→ "Run `/sprint-plan` to organize into sprints"
|
|
128
|
+
|
|
129
|
+
### If sprint plan exists but not in Jira:
|
|
130
|
+
→ "Run `/jira-sync` to synchronize with Jira"
|
|
131
|
+
|
|
132
|
+
### If all complete:
|
|
133
|
+
→ "Ready for implementation! Run `/sprint-plan status` to see current sprint"
|
|
134
|
+
|
|
135
|
+
## Quick Commands Reference
|
|
136
|
+
|
|
137
|
+
| Command | Description | Stage |
|
|
138
|
+
|---------|-------------|-------|
|
|
139
|
+
| `/requirements` | Gather FR/NFR requirements | 1 |
|
|
140
|
+
| `/validate requirements` | Validate requirements | 1→2 |
|
|
141
|
+
| `/prd` | Create/edit PRD | 2 |
|
|
142
|
+
| `/validate prd` | Validate PRD | 2→3 |
|
|
143
|
+
| `/architecture` | Create/edit architecture | 3 |
|
|
144
|
+
| `/validate architecture` | Validate architecture | 3→4 |
|
|
145
|
+
| `/epics` | Create epics from PRD | 4 |
|
|
146
|
+
| `/validate epics` | Validate epics | 4→5 |
|
|
147
|
+
| `/stories [epic]` | Create stories for epic | 5 |
|
|
148
|
+
| `/sprint-plan` | Plan sprints | 6 |
|
|
149
|
+
| `/jira-sync` | Sync to Jira | 7 |
|
|
150
|
+
| `/workflow-status` | This command | - |
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# OpenCode Workflow Configuration
|
|
2
|
+
# This file provides centralized configuration for all agents and workflows
|
|
3
|
+
# Version: 3.0.0
|
|
4
|
+
|
|
5
|
+
# =============================================================================
|
|
6
|
+
# PROJECT CONFIGURATION
|
|
7
|
+
# =============================================================================
|
|
8
|
+
project_name: "ai-wf"
|
|
9
|
+
version: "3.0.0"
|
|
10
|
+
|
|
11
|
+
# =============================================================================
|
|
12
|
+
# USER CONFIGURATION
|
|
13
|
+
# =============================================================================
|
|
14
|
+
user_name: "Evgeniy"
|
|
15
|
+
user_skill_level: expert # beginner | intermediate | expert
|
|
16
|
+
|
|
17
|
+
# Communication language (agent talks to user)
|
|
18
|
+
communication_language: "Ukrainian" # or English
|
|
19
|
+
|
|
20
|
+
# =============================================================================
|
|
21
|
+
# DOCUMENTATION LANGUAGES
|
|
22
|
+
# =============================================================================
|
|
23
|
+
documentation:
|
|
24
|
+
# Technical docs ALWAYS in English (agents understand better)
|
|
25
|
+
technical:
|
|
26
|
+
language: "English"
|
|
27
|
+
enforced: true # Cannot be changed
|
|
28
|
+
paths:
|
|
29
|
+
- "docs/"
|
|
30
|
+
- "CLAUDE.md"
|
|
31
|
+
- "README.md"
|
|
32
|
+
- ".opencode/"
|
|
33
|
+
|
|
34
|
+
# User-facing docs (translations, Confluence export)
|
|
35
|
+
user_facing:
|
|
36
|
+
enabled: true
|
|
37
|
+
output_folder: "docs/confluence/"
|
|
38
|
+
default_language: "Ukrainian" # or English
|
|
39
|
+
formats:
|
|
40
|
+
- confluence # Confluence wiki format
|
|
41
|
+
- markdown # Translated markdown
|
|
42
|
+
- html # Standalone HTML
|
|
43
|
+
|
|
44
|
+
# What to translate
|
|
45
|
+
translate:
|
|
46
|
+
prd: true
|
|
47
|
+
architecture: true
|
|
48
|
+
epics: true
|
|
49
|
+
stories: false # Usually not needed
|
|
50
|
+
coding_standards: false # Keep technical
|
|
51
|
+
|
|
52
|
+
# =============================================================================
|
|
53
|
+
# OUTPUT PATHS
|
|
54
|
+
# =============================================================================
|
|
55
|
+
output_folder: "{project-root}/docs"
|
|
56
|
+
planning_artifacts: "{project-root}/docs/planning-artifacts"
|
|
57
|
+
implementation_artifacts: "{project-root}/docs/implementation-artifacts"
|
|
58
|
+
sprint_artifacts: "{project-root}/docs/sprint-artifacts"
|
|
59
|
+
project_knowledge: "{project-root}/docs"
|
|
60
|
+
|
|
61
|
+
# =============================================================================
|
|
62
|
+
# ARTIFACT PATHS
|
|
63
|
+
# =============================================================================
|
|
64
|
+
artifacts:
|
|
65
|
+
requirements: "{output_folder}/requirements"
|
|
66
|
+
prd: "{output_folder}/prd.md"
|
|
67
|
+
architecture: "{output_folder}/architecture.md"
|
|
68
|
+
adr: "{output_folder}/architecture/adr"
|
|
69
|
+
epics: "{sprint_artifacts}/backlog"
|
|
70
|
+
stories: "{sprint_artifacts}/stories"
|
|
71
|
+
sprint_status: "{sprint_artifacts}/sprint-status.yaml"
|
|
72
|
+
|
|
73
|
+
# =============================================================================
|
|
74
|
+
# WORKFLOW SETTINGS
|
|
75
|
+
# =============================================================================
|
|
76
|
+
workflow:
|
|
77
|
+
# Auto-save after each template section
|
|
78
|
+
auto_save: true
|
|
79
|
+
|
|
80
|
+
# Show confirmation after each step (false = YOLO mode)
|
|
81
|
+
interactive: true
|
|
82
|
+
|
|
83
|
+
# Default validation level: strict | normal | minimal
|
|
84
|
+
validation_level: normal
|
|
85
|
+
|
|
86
|
+
# =============================================================================
|
|
87
|
+
# AGENT DEFAULTS
|
|
88
|
+
# =============================================================================
|
|
89
|
+
agents:
|
|
90
|
+
default_model: "anthropic/claude-sonnet-4-20250514"
|
|
91
|
+
default_temperature: 0.3
|
|
92
|
+
|
|
93
|
+
# =============================================================================
|
|
94
|
+
# JIRA INTEGRATION
|
|
95
|
+
# =============================================================================
|
|
96
|
+
jira:
|
|
97
|
+
enabled: true
|
|
98
|
+
|
|
99
|
+
# Connection
|
|
100
|
+
base_url: "https://your-domain.atlassian.net"
|
|
101
|
+
project_key: "PROJ" # Default project
|
|
102
|
+
# Auth: use environment variables JIRA_EMAIL, JIRA_API_TOKEN
|
|
103
|
+
|
|
104
|
+
# Cache for faster operations
|
|
105
|
+
cache:
|
|
106
|
+
enabled: true
|
|
107
|
+
file: "{project-root}/.opencode/jira-cache.yaml"
|
|
108
|
+
ttl_minutes: 30 # Refresh cache after 30 min
|
|
109
|
+
|
|
110
|
+
# Hierarchy mapping
|
|
111
|
+
hierarchy:
|
|
112
|
+
epic_type: "Epic"
|
|
113
|
+
story_type: "Story"
|
|
114
|
+
task_type: "Task" # Sub-task under Story
|
|
115
|
+
bug_type: "Bug"
|
|
116
|
+
|
|
117
|
+
# Development control mode
|
|
118
|
+
# If true: agent controls task statuses, creates branches, links PRs
|
|
119
|
+
control_development: true
|
|
120
|
+
|
|
121
|
+
# Required statuses for workflow (agent will validate)
|
|
122
|
+
required_statuses:
|
|
123
|
+
backlog: ["Backlog", "To Do", "Open"] # Any of these
|
|
124
|
+
planned: ["Planned", "Selected for Development", "Ready"]
|
|
125
|
+
in_progress: ["In Progress", "In Development"]
|
|
126
|
+
review: ["In Review", "Code Review", "Review"]
|
|
127
|
+
qa: ["QA", "Testing", "In QA"]
|
|
128
|
+
done: ["Done", "Closed", "Resolved"]
|
|
129
|
+
|
|
130
|
+
# Status transitions for dev workflow
|
|
131
|
+
workflow:
|
|
132
|
+
start_work: "backlog → in_progress"
|
|
133
|
+
submit_review: "in_progress → review"
|
|
134
|
+
review_passed: "review → qa"
|
|
135
|
+
qa_passed: "qa → done"
|
|
136
|
+
review_failed: "review → in_progress"
|
|
137
|
+
qa_failed: "qa → in_progress"
|
|
138
|
+
|
|
139
|
+
# Branch naming
|
|
140
|
+
branch:
|
|
141
|
+
epic: "feature/epic-{epic_key}-{slug}"
|
|
142
|
+
story: "feature/{story_key}-{slug}"
|
|
143
|
+
task: "feature/{story_key}/{task_key}-{slug}"
|
|
144
|
+
|
|
145
|
+
# Auto-create settings
|
|
146
|
+
auto_create:
|
|
147
|
+
stories_from_epics: true # Auto-create stories under epic
|
|
148
|
+
tasks_from_stories: true # Auto-create tasks under story
|
|
149
|
+
link_to_docs: true # Add link to local doc in Jira description
|
|
150
|
+
|
|
151
|
+
# =============================================================================
|
|
152
|
+
# DEVELOPMENT METHODOLOGY
|
|
153
|
+
# =============================================================================
|
|
154
|
+
development:
|
|
155
|
+
# Methodology: tdd | stub
|
|
156
|
+
# TDD: Interface → Test (RED) → Implementation (GREEN) → Refactor
|
|
157
|
+
# STUB: Interface → Stub Implementation → Test → Full Implementation
|
|
158
|
+
methodology: tdd
|
|
159
|
+
|
|
160
|
+
# Task structure
|
|
161
|
+
task:
|
|
162
|
+
max_hours: 2 # Maximum hours per atomic task
|
|
163
|
+
include_tests: true # Each task includes test as validation
|
|
164
|
+
require_interface: true # Interface defined before implementation
|
|
165
|
+
|
|
166
|
+
# TODO comments for future work
|
|
167
|
+
todo:
|
|
168
|
+
enabled: true
|
|
169
|
+
require_id: true # Must reference task/story/epic ID (except BACKLOG, HACK)
|
|
170
|
+
|
|
171
|
+
# Code TODOs (IDE-compatible)
|
|
172
|
+
code:
|
|
173
|
+
format: "// TODO({type}:{id}): {description}"
|
|
174
|
+
types: [TASK, STORY, EPIC, SPRINT, BACKLOG, TECH_DEBT, FIXME, HACK]
|
|
175
|
+
|
|
176
|
+
# Documentation TODOs (Markdown)
|
|
177
|
+
docs:
|
|
178
|
+
format: "<!-- TODO({type}): {description} -->"
|
|
179
|
+
block_format: |
|
|
180
|
+
<!-- TODO({type}): {description}
|
|
181
|
+
{context}
|
|
182
|
+
-->
|
|
183
|
+
types:
|
|
184
|
+
- DRAFT # Section is draft, needs review
|
|
185
|
+
- EXPAND # Section needs more detail
|
|
186
|
+
- RESEARCH # Needs research/investigation
|
|
187
|
+
- REVIEW # Needs stakeholder review
|
|
188
|
+
- DECISION # Decision needed
|
|
189
|
+
- DEPENDENCY # Waiting on other document
|
|
190
|
+
- EXAMPLE # Add examples
|
|
191
|
+
- DIAGRAM # Add diagram
|
|
192
|
+
- NUMBERS # Add metrics/numbers
|
|
193
|
+
- LINK # Add links/references
|
|
194
|
+
|
|
195
|
+
# =============================================================================
|
|
196
|
+
# CHANGELOG
|
|
197
|
+
# =============================================================================
|
|
198
|
+
changelog:
|
|
199
|
+
# Repository changelog
|
|
200
|
+
repo:
|
|
201
|
+
enabled: true
|
|
202
|
+
file: "CHANGELOG.md"
|
|
203
|
+
format: "keepachangelog" # https://keepachangelog.com/
|
|
204
|
+
versioning: "semver" # https://semver.org/
|
|
205
|
+
|
|
206
|
+
# Document changelogs (in each doc)
|
|
207
|
+
docs:
|
|
208
|
+
enabled: true
|
|
209
|
+
mandatory: true # Fail validation if missing
|
|
210
|
+
format: |
|
|
211
|
+
| Version | Date | Author | Changes |
|
|
212
|
+
|---------|------|--------|---------|
|
|
213
|
+
|
|
214
|
+
# Update timing
|
|
215
|
+
update_when: "session_end" # Update at end of session, not on every change
|
|
216
|
+
# Summarize all session changes in one entry
|
|
217
|
+
|
|
218
|
+
# =============================================================================
|
|
219
|
+
# TEST ARCHITECTURE
|
|
220
|
+
# =============================================================================
|
|
221
|
+
testarch:
|
|
222
|
+
use_playwright: false
|
|
223
|
+
use_mcp_enhancements: true
|