@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.
- package/README.md +182 -112
- package/dist/cli/index.js +95413 -112655
- package/examples/README.md +184 -0
- package/examples/conditional-percentage-template.yaml +139 -0
- package/examples/fullstack.yaml +1 -6
- package/package.json +7 -6
- package/templates/presets/custom-testOnly.yaml +65 -0
- package/templates/presets/custom.yaml +27 -27
|
@@ -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])"
|
package/examples/fullstack.yaml
CHANGED
|
@@ -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:
|
|
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
|
+
"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/
|
|
67
|
-
"
|
|
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
|
-
|
|
12
|
-
- "
|
|
13
|
-
|
|
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
|
|
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: "
|
|
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"
|