@sppg2001/atomize 1.0.3 → 1.1.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.
@@ -0,0 +1,184 @@
1
+ # Examples
2
+
3
+ Real-world Atomize template examples. Each file is a working template you can validate and run immediately.
4
+
5
+ ## Files
6
+
7
+ | File | What it demonstrates |
8
+ |------|----------------------|
9
+ | [`backend.yaml`](#backendyaml) | Standard backend API workflow with task dependencies |
10
+ | [`frontend.yaml`](#frontendyaml) | React component development workflow |
11
+ | [`fullstack.yaml`](#fullstackyaml) | Combined backend + frontend with a branching task graph |
12
+ | [`conditional-dependencies-template.yaml`](#conditional-dependencies-templateyaml) | Conditional tasks — tasks that only appear when a story meets specific criteria |
13
+ | [`conditional-percentage-template.yaml`](#conditional-percentage-templateyaml) | Conditional estimation — task weights that adapt to story size and tags |
14
+
15
+ ---
16
+
17
+ ## backend.yaml
18
+
19
+ A production-ready backend API template. Covers the full development cycle from API design through code review, with dependencies enforcing a logical order.
20
+
21
+ **Matches:** User Stories and Product Backlog Items tagged `backend` or `api`, in states `New`, `Approved`, or `Active`, that don't already have tasks.
22
+
23
+ **Tasks (6):**
24
+ 1. Design API Specification — 10%
25
+ 2. Database Schema Changes — 20%
26
+ 3. Implement Business Logic — 35% *(depends on design + schema)*
27
+ 4. Unit & Integration Tests — 20% *(depends on implementation)*
28
+ 5. API Documentation — 5%
29
+ 6. Code Review & Refinement — 10%
30
+
31
+ **Try it:**
32
+ ```bash
33
+ atomize validate examples/backend.yaml
34
+ atomize generate examples/backend.yaml --platform mock --dry-run
35
+ ```
36
+
37
+ ---
38
+
39
+ ## frontend.yaml
40
+
41
+ A React component development template covering the full UI lifecycle including accessibility testing.
42
+
43
+ **Matches:** User Stories tagged `frontend` or `react`, in states `New` or `Approved`, without existing tasks.
44
+
45
+ **Tasks (6):**
46
+ 1. UI/UX Design Review — 10%
47
+ 2. Component Structure & Setup — 15%
48
+ 3. Component Logic Implementation — 30% *(depends on structure)*
49
+ 4. Styling & Responsive Design — 20%
50
+ 5. Accessibility Testing — 10%
51
+ 6. Component Testing — 15% *(depends on logic)*
52
+
53
+ **Try it:**
54
+ ```bash
55
+ atomize validate examples/frontend.yaml
56
+ atomize generate examples/frontend.yaml --platform mock --dry-run
57
+ ```
58
+
59
+ ---
60
+
61
+ ## fullstack.yaml
62
+
63
+ A combined backend + frontend template for end-to-end features. Uses a branching dependency graph where the backend and frontend tracks run in parallel after the design phase, then converge at integration.
64
+
65
+ **Matches:** User Stories tagged `fullstack`, in states `New` or `Active`, without existing tasks.
66
+
67
+ **Tasks (9):**
68
+ 1. Technical Design — 10%
69
+ 2. Backend API Implementation — 20% *(depends on design)*
70
+ 3. Database Implementation — 15% *(conditional: only if story has `database` tag)*
71
+ 4. Backend Tests — 10% *(depends on backend API)*
72
+ 5. Frontend Components — 20% *(depends on design)*
73
+ 6. Styling & Responsive Design — 10%
74
+ 7. Frontend Tests — 8% *(depends on frontend components)*
75
+ 8. Frontend-Backend Integration — 12% *(depends on both tracks)*
76
+ 9. Documentation — 5%
77
+
78
+ **Try it:**
79
+ ```bash
80
+ atomize validate examples/fullstack.yaml
81
+ atomize generate examples/fullstack.yaml --platform mock --dry-run
82
+ ```
83
+
84
+ ---
85
+
86
+ ## conditional-dependencies-template.yaml
87
+
88
+ Demonstrates **conditional tasks** — tasks that are only created when a story meets specific criteria. When a conditional task is skipped, its estimation is redistributed to the remaining tasks.
89
+
90
+ **Matches:** User Stories tagged `development`.
91
+
92
+ **Key features shown:**
93
+ - `condition` field with tag-based rules (`CONTAINS "backend"`, `CONTAINS "frontend"`, `CONTAINS "security"`)
94
+ - `condition` with compound logic (`AND`, `OR`, `NOT CONTAINS`)
95
+ - `condition` based on numeric fields (`${story.estimation} >= 13`)
96
+ - Dependencies that span conditional tasks (e.g., `unit-tests` depends on `backend-api` and `frontend-ui` — whichever were created)
97
+
98
+ **Tasks (9, most conditional):**
99
+
100
+ | Task | Created when |
101
+ |------|-------------|
102
+ | UI/UX Design | Always |
103
+ | Backend API | Story has `backend` tag |
104
+ | Frontend UI | Story has `frontend` tag |
105
+ | Accessibility Testing | Story has `frontend` tag OR doesn't have `legacy` tag |
106
+ | Security Review | Story has `security` tag AND priority ≤ 2 |
107
+ | Unit Tests | Always *(depends on whichever of backend/frontend exist)* |
108
+ | Integration Tests | Always *(depends on unit tests)* |
109
+ | Performance Testing | Story estimation ≥ 13 points |
110
+ | Documentation | Always *(depends on unit tests)* |
111
+ | Deployment | Always *(depends on integration tests + docs)* |
112
+
113
+ **Try it:**
114
+ ```bash
115
+ atomize validate examples/conditional-dependencies-template.yaml
116
+ atomize generate examples/conditional-dependencies-template.yaml --platform mock --dry-run
117
+ ```
118
+
119
+ ---
120
+
121
+ ## conditional-percentage-template.yaml
122
+
123
+ Demonstrates **`estimationPercentCondition`** — each task's percentage of the story adapts based on the story's size and tags. This is useful when the same task represents different amounts of work depending on story complexity.
124
+
125
+ **Matches:** All User Stories without existing tasks.
126
+
127
+ **Key features shown:**
128
+ - `estimationPercentCondition` on multiple tasks
129
+ - First-match-wins rule evaluation order
130
+ - Conditional task combined with conditional estimation (the `frontend-impl` task is both conditional *and* has an adaptive percentage)
131
+ - Normalization using resolved conditional percentages as the baseline (not static fallbacks)
132
+
133
+ **Tasks (5):**
134
+
135
+ | Task | Default % | Conditional rules |
136
+ |------|-----------|-------------------|
137
+ | Technical Design | 10% | ≥ 13 pts → 20%, ≥ 5 pts → 15% |
138
+ | Backend Implementation | 60% | `fullstack` tag → 40%, ≥ 5 pts → 50% |
139
+ | Frontend Implementation | 30% | `complex-ui` tag → 40% — *only created for `fullstack` stories* |
140
+ | Testing & QA | 20% | `critical` + ≥ 8 pts → 30%, `critical` alone → 25% |
141
+ | Code Review | 5% | Always 5% |
142
+
143
+ **Scenarios and their resolved splits (before normalization):**
144
+
145
+ | Scenario | Design | Backend | Frontend | Testing | Review | Total |
146
+ |----------|--------|---------|----------|---------|--------|-------|
147
+ | Small backend (< 5 pts) | 10% | 60% | — | 20% | 5% | 95% |
148
+ | Medium backend (5–12 pts) | 15% | 50% | — | 20% | 5% | 90% |
149
+ | Medium fullstack (5–12 pts) | 15% | 40% | 30% | 20% | 5% | 110% |
150
+ | Large critical fullstack (≥ 13 pts, `critical`) | 20% | 40% | 30% | 30% | 5% | 125% |
151
+
152
+ All totals are normalized to exactly 100% at generation time.
153
+
154
+ **Try it:**
155
+ ```bash
156
+ atomize validate examples/conditional-percentage-template.yaml
157
+ atomize generate examples/conditional-percentage-template.yaml --platform mock --dry-run
158
+ ```
159
+
160
+ ---
161
+
162
+ ## Running All Examples
163
+
164
+ ```bash
165
+ # Validate all examples
166
+ for f in examples/*.yaml; do
167
+ echo "Validating $f..."
168
+ atomize validate "$f"
169
+ done
170
+
171
+ # Test all examples against mock data
172
+ for f in examples/*.yaml; do
173
+ echo "Testing $f..."
174
+ atomize generate "$f" --platform mock --dry-run
175
+ done
176
+ ```
177
+
178
+ ---
179
+
180
+ ## See Also
181
+
182
+ - [Template Reference](../docs/Template-Reference.md) — full template schema
183
+ - [Validation Modes](../docs/Validation-Modes.md) — strict vs lenient validation
184
+ - [CLI Reference](../docs/Cli-Reference.md) — all commands and flags
@@ -0,0 +1,139 @@
1
+ version: "1.0"
2
+ name: "Story-Aware Task Allocation"
3
+ description: >
4
+ Demonstrates estimationPercentCondition — each task's weight adapts to
5
+ the story's size and tags. When the conditional frontend-impl task is
6
+ skipped, the remaining tasks carry their already-resolved conditional
7
+ percents into normalization, so the final split is always accurate.
8
+ author: "Atomize"
9
+ tags: ["demo", "conditional-percent", "adaptive"]
10
+
11
+ filter:
12
+ workItemTypes:
13
+ - "User Story"
14
+ excludeIfHasTasks: true
15
+
16
+ estimation:
17
+ strategy: "percentage"
18
+ rounding: "nearest"
19
+ minimumTaskPoints: 0.5
20
+
21
+ tasks:
22
+ # ── Design ────────────────────────────────────────────────────────────────
23
+ # Allocation scales with story size.
24
+ # Small stories (< 5 pts): 10 % — quick design, no surprises expected
25
+ # Medium stories (5–12 pts): 15 % — moderate up-front work
26
+ # Large stories (≥ 13 pts): 20 % — epic-scale requires thorough design
27
+ - id: "design"
28
+ title: "Technical Design & Architecture"
29
+ description: "Define architecture, API contracts, and data models for ${story.title}"
30
+ activity: "Design"
31
+ assignTo: "@ParentAssignee"
32
+ estimationPercent: 10
33
+ estimationPercentCondition:
34
+ - condition: "${story.estimation} >= 13"
35
+ percent: 20
36
+ - condition: "${story.estimation} >= 5"
37
+ percent: 15
38
+ tags: ["design"]
39
+
40
+ # ── Backend implementation ─────────────────────────────────────────────────
41
+ # Rules evaluated in order — first match wins.
42
+ #
43
+ # • fullstack tag present → 40 % (budget shared with the frontend task)
44
+ # • medium/large story → 50 % (more surface area to cover carefully)
45
+ # • fallback → 60 % (small, pure-backend story)
46
+ - id: "backend-impl"
47
+ title: "Backend Implementation"
48
+ description: "Implement API endpoints and business logic for ${story.title}"
49
+ activity: "Development"
50
+ assignTo: "@ParentAssignee"
51
+ dependsOn: ["design"]
52
+ estimationPercent: 60
53
+ estimationPercentCondition:
54
+ - condition: '${story.tags} CONTAINS "fullstack"'
55
+ percent: 40
56
+ - condition: "${story.estimation} >= 5"
57
+ percent: 50
58
+ tags: ["backend"]
59
+
60
+ # ── Frontend implementation (conditional task) ─────────────────────────────
61
+ # Only created when the story is tagged "fullstack".
62
+ # When this task is SKIPPED, the remaining tasks' resolved conditional
63
+ # percents are used as the baseline for normalization — so Design and
64
+ # Backend get accurate relative weights rather than stale static values.
65
+ #
66
+ # complex-ui tag → extra allocation for non-trivial UIs
67
+ - id: "frontend-impl"
68
+ title: "Frontend Implementation"
69
+ description: "Build UI components and integrate with the API for ${story.title}"
70
+ activity: "Development"
71
+ assignTo: "@ParentAssignee"
72
+ dependsOn: ["design"]
73
+ condition: '${story.tags} CONTAINS "fullstack"'
74
+ estimationPercent: 30
75
+ estimationPercentCondition:
76
+ - condition: '${story.tags} CONTAINS "complex-ui"'
77
+ percent: 40
78
+ tags: ["frontend"]
79
+
80
+ # ── Testing & QA ──────────────────────────────────────────────────────────
81
+ # Critical stories need more thorough test coverage.
82
+ # AND-condition is checked first: critical + large ≥ 8 pts → 30 %
83
+ # If only critical (smaller story) → 25 %
84
+ # Otherwise → 20 %
85
+ - id: "testing"
86
+ title: "Testing & QA"
87
+ description: "Write automated tests and perform QA for ${story.title}"
88
+ activity: "Testing"
89
+ assignTo: "@ParentAssignee"
90
+ dependsOn: ["backend-impl"]
91
+ estimationPercent: 20
92
+ estimationPercentCondition:
93
+ - condition: '${story.tags} CONTAINS "critical" AND ${story.estimation} >= 8'
94
+ percent: 30
95
+ - condition: '${story.tags} CONTAINS "critical"'
96
+ percent: 25
97
+ tags: ["testing"]
98
+
99
+ # ── Code review ────────────────────────────────────────────────────────────
100
+ # Always 5 % — lightweight overhead regardless of story size or tags.
101
+ # No estimationPercentCondition needed here.
102
+ - id: "code-review"
103
+ title: "Code Review & Documentation"
104
+ description: "Peer review and document all changes for ${story.title}"
105
+ activity: "Documentation"
106
+ assignTo: "@ParentAssignee"
107
+ dependsOn: ["testing"]
108
+ estimationPercent: 5
109
+ tags: ["review", "documentation"]
110
+
111
+ # ── Metadata ─────────────────────────────────────────────────────────────────
112
+ metadata:
113
+ category: "Demo"
114
+ difficulty: "intermediate"
115
+ recommendedFor:
116
+ - "Demonstrating estimationPercentCondition"
117
+ - "Adaptive task weighting by story size or tags"
118
+ estimationGuidelines: |
119
+ Effective resolved percentages by scenario (before normalization):
120
+
121
+ Scenario A — small backend-only story (< 5 pts, no "fullstack" tag):
122
+ design=10 backend=60 testing=20 review=5 → total=95 → normalised to 100
123
+ Scenario B — medium backend-only story (5–12 pts):
124
+ design=15 backend=50 testing=20 review=5 → total=90 → normalised to 100
125
+ Scenario C — medium fullstack story (5–12 pts, "fullstack" tag):
126
+ design=15 backend=40 frontend=30 testing=20 review=5 → total=110 → normalised
127
+ Scenario D — large critical fullstack story (≥ 13 pts, "critical" + "fullstack" tags):
128
+ design=20 backend=40 frontend=30 testing=30 review=5 → total=125 → normalised
129
+ Scenario E — medium critical backend-only story (5–12 pts, "critical", no "fullstack"):
130
+ design=15 backend=50 testing=25 review=5 → total=95 → normalised to 100
131
+
132
+ Key behaviour: when frontend-impl is skipped (no "fullstack" tag) the
133
+ remaining tasks already hold their *resolved* conditional percents before
134
+ normalization runs, so the final ratio reflects the per-story adjustments
135
+ rather than the static fallback values.
136
+ examples:
137
+ - "Small pure-backend story (2 pts, tags: [backend])"
138
+ - "Medium fullstack story (8 pts, tags: [fullstack])"
139
+ - "Large critical fullstack story (13 pts, tags: [fullstack, critical, complex-ui])"
@@ -15,11 +15,6 @@ filter:
15
15
  - "fullstack"
16
16
  excludeIfHasTasks: true
17
17
 
18
- # Variables for conditionals
19
- variables:
20
- hasDatabase: true
21
- hasAuth: false
22
-
23
18
  tasks:
24
19
  # Design Phase
25
20
  - id: "design-overview"
@@ -59,7 +54,7 @@ tasks:
59
54
  estimationPercent: 15
60
55
  tags: ["database", "backend"]
61
56
  activity: "Development"
62
- condition: "${variables.hasDatabase}"
57
+ condition: '${story.tags} CONTAINS "database"'
63
58
 
64
59
  - id: "backend-tests"
65
60
  title: "Backend Tests"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sppg2001/atomize",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "description": "Automatically generate tasks from user stories with smart templates",
5
5
  "type": "module",
6
6
  "main": "./dist/cli/index.js",
@@ -21,7 +21,7 @@
21
21
  "examples"
22
22
  ],
23
23
  "scripts": {
24
- "dev": "bun run src/cli/index.ts",
24
+ "dev": "ATOMIZE_DEV=true bun run src/cli/index.ts",
25
25
  "build": "bun run typecheck && bun run build:bun",
26
26
  "postbuild": "node make-executable.js",
27
27
  "build:bun": "bun build ./src/cli/index.ts --outdir ./dist/cli --target node --format esm",
@@ -37,7 +37,8 @@
37
37
  "validate:package": "test -d dist && test -f dist/cli/index.js && test -d templates/presets",
38
38
  "check": "bun typecheck && bun test",
39
39
  "lint": "bunx biome check --max-diagnostics 100",
40
- "lint:fix": "bunx biome check --fix --max-diagnostics 100"
40
+ "lint:fix": "bunx biome check --fix --max-diagnostics 100",
41
+ "benchmark": "bun run benchmarks/index.ts"
41
42
  },
42
43
  "keywords": [
43
44
  "devops",
@@ -63,19 +64,19 @@
63
64
  "devDependencies": {
64
65
  "@biomejs/biome": "2.3.11",
65
66
  "@types/bun": "1.3.5",
66
- "@types/inquirer": "^9.0.9",
67
- "@types/node": "^25.0.3"
67
+ "@types/node": "^25.0.3",
68
+ "mitata": "^1.0.34"
68
69
  },
69
70
  "peerDependencies": {
70
71
  "typescript": "^5.9.3"
71
72
  },
72
73
  "dependencies": {
74
+ "@clack/prompts": "^1.1.0",
73
75
  "@google/generative-ai": "^0.24.1",
74
76
  "azure-devops-node-api": "^15.1.2",
75
77
  "chalk": "^5.6.2",
76
78
  "commander": "^14.0.2",
77
79
  "dotenv": "^17.2.3",
78
- "inquirer": "^13.1.0",
79
80
  "ts-pattern": "^5.9.0",
80
81
  "winston": "^3.19.0",
81
82
  "yaml": "^2.8.2",
@@ -0,0 +1,65 @@
1
+ version: "1.0"
2
+ name: "Custom Example - Test Only"
3
+ description: "Example template containing only test tasks (percentages normalized to 100)"
4
+ author: "Atomize"
5
+ tags: []
6
+
7
+ filter:
8
+ workItemTypes: ["User Story"]
9
+ states: ["Ready for Sprint"]
10
+ tags:
11
+ include:
12
+ - "Test Only"
13
+ exclude:
14
+ - "TestGen"
15
+ excludeIfHasTasks: false
16
+ areaPaths:
17
+ - EA-RSP-Platform\Release 2 Team
18
+ iterations:
19
+ - EA-RSP-Platform\SOW-7-2026-JAN-MARCH\Sprint 116
20
+
21
+ tasks:
22
+ - title: "Test Preparation"
23
+ estimationPercent: 59.7014925373
24
+ activity: "Testing"
25
+ tags: []
26
+ condition: '${story.tags} NOT CONTAINS "Dev Only"'
27
+ assignTo: "@Unassigned"
28
+
29
+ - title: "Test Execution"
30
+ estimationPercent: 40.2985074627
31
+ activity: "Testing"
32
+ tags: []
33
+ condition: '${story.tags} NOT CONTAINS "Dev Only"'
34
+ assignTo: "@Unassigned"
35
+
36
+ - title: "Automation Testing"
37
+ estimationPercent: 0
38
+ activity: "Test Automation"
39
+ tags: []
40
+ condition: '${story.tags} NOT CONTAINS "Dev Only"'
41
+ assignTo: "@Unassigned"
42
+
43
+ - title: "Test Review"
44
+ estimationPercent: 0
45
+ activity: "Testing"
46
+ tags: []
47
+ condition: '${story.tags} NOT CONTAINS "Dev Only"'
48
+ assignTo: "@Unassigned"
49
+
50
+ - title: "Release Notes"
51
+ estimationPercent: 0
52
+ activity: "Testing"
53
+ tags: []
54
+ condition: '${story.tags} NOT CONTAINS "Dev Only"'
55
+ assignTo: "@Unassigned"
56
+
57
+ estimation:
58
+ strategy: "percentage"
59
+ rounding: "none"
60
+ minimumTaskPoints: 0
61
+
62
+ metadata:
63
+ category: "Agile Project"
64
+ recommendedFor: []
65
+ estimationGuidelines: "Test-only workflow; percentages normalized from original template"
@@ -7,18 +7,14 @@ tags: []
7
7
  filter:
8
8
  workItemTypes: ["User Story"]
9
9
  states: ["Ready for Sprint"]
10
- tags:
11
- exclude:
12
- - "Test Only"
13
- - "TestGen"
14
-
15
-
16
- excludeIfHasTasks: false
10
+ tags:
11
+ include:
12
+ - "Candidate S117"
13
+ excludeIfHasTasks: true
17
14
  areaPaths:
18
15
  - EA-RSP-Platform\Release 2 Team
19
16
  iterations:
20
- - EA-RSP-Platform\SOW-7-2026-JAN-MARCH\Sprint 115
21
-
17
+ - EA-RSP-Platform\SOW-7-2026-JAN-MARCH\Sprint 117
22
18
 
23
19
  tasks:
24
20
  - title: "Analysis & Playback"
@@ -26,43 +22,50 @@ tasks:
26
22
  activity: "Development"
27
23
  tags: []
28
24
  assignTo: "@ParentAssignee"
29
-
30
-
25
+ condition: '${story.tags} NOT CONTAINS "Testing Only"'
31
26
 
32
27
  - title: "Build"
33
28
  estimationPercent: 50
34
29
  activity: "Development"
35
30
  tags: []
36
31
  assignTo: "@ParentAssignee"
37
-
32
+ condition: '${story.tags} NOT CONTAINS "Testing Only"'
38
33
 
39
34
  - title: "Developer Test"
40
35
  estimationPercent: 25
41
36
  activity: "Development"
42
37
  tags: []
43
38
  assignTo: "@ParentAssignee"
44
-
39
+ condition: '${story.tags} NOT CONTAINS "Testing Only"'
45
40
 
46
41
  - title: "QA Smoke Test"
47
42
  estimationPercent: 0
48
43
  activity: "Development"
49
44
  tags: []
50
45
  assignTo: "@ParentAssignee"
51
-
46
+ condition: '${story.tags} NOT CONTAINS "Testing Only"'
52
47
 
53
48
  - title: "Wiki"
54
49
  estimationPercent: 5
55
50
  activity: "Development"
56
51
  tags: []
57
52
  assignTo: "@ParentAssignee"
58
-
53
+ condition: '${story.tags} NOT CONTAINS "Testing Only"'
59
54
 
60
55
  - title: "Code Review "
61
56
  estimationPercent: 0
62
57
  activity: "Development"
63
58
  tags: []
64
59
  assignTo: "@Unassigned"
65
-
60
+ condition: '${story.tags} NOT CONTAINS "Testing Only"'
61
+
62
+ - title: "Physical Data Model Updated"
63
+ estimationPercent: 0
64
+ activity: "Development"
65
+ tags: []
66
+ assignTo: "@ParentAssignee"
67
+ condition: '${story.tags} NOT CONTAINS "Testing Only"'
68
+
66
69
  - title: "Test Preparation"
67
70
  estimationPercent: 40
68
71
  activity: "Testing"
@@ -70,8 +73,6 @@ tasks:
70
73
  condition: '${story.tags} NOT CONTAINS "Dev Only"'
71
74
  assignTo: "@Unassigned"
72
75
 
73
-
74
-
75
76
  - title: "Test Execution"
76
77
  estimationPercent: 27
77
78
  activity: "Testing"
@@ -79,17 +80,13 @@ tasks:
79
80
  condition: '${story.tags} NOT CONTAINS "Dev Only"'
80
81
  assignTo: "@Unassigned"
81
82
 
82
-
83
-
84
83
  - title: "Automation Testing"
85
84
  estimationPercent: 0
86
- activity: "Testing"
85
+ activity: "Test Automation"
87
86
  tags: []
88
87
  condition: '${story.tags} NOT CONTAINS "Dev Only"'
89
88
  assignTo: "@Unassigned"
90
89
 
91
-
92
-
93
90
  - title: "Test Review"
94
91
  estimationPercent: 0
95
92
  activity: "Testing"
@@ -97,8 +94,6 @@ tasks:
97
94
  condition: '${story.tags} NOT CONTAINS "Dev Only"'
98
95
  assignTo: "@Unassigned"
99
96
 
100
-
101
-
102
97
  - title: "Release Notes"
103
98
  estimationPercent: 0
104
99
  activity: "Testing"
@@ -106,7 +101,12 @@ tasks:
106
101
  condition: '${story.tags} NOT CONTAINS "Dev Only"'
107
102
  assignTo: "@Unassigned"
108
103
 
109
-
104
+ - title: "Merge to Stable"
105
+ estimationPercent: 10
106
+ activity: "Development"
107
+ tags: []
108
+ assignTo: "@ParentAssignee"
109
+ condition: '${story.tags} NOT CONTAINS "Testing Only"'
110
110
 
111
111
  estimation:
112
112
  strategy: "percentage"
@@ -116,4 +116,4 @@ estimation:
116
116
  metadata:
117
117
  category: "Agile Project"
118
118
  recommendedFor: []
119
- estimationGuidelines: "Based on possible Agile project workflow"
119
+ estimationGuidelines: "Based on possible Agile project workflow"