@sppg2001/atomize 5.0.0 → 5.1.1

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.
@@ -1,5 +1,7 @@
1
+ formatVersion: "1.0"
1
2
  name: "Documentation Tasks"
2
- description: "Standard documentation tasks. Mix into any template to ensure docs are part of the definition of done."
3
+ description: "Example documentation tasks. Add the tasks relevant to your change and adapt their estimates."
4
+ # Illustrative percentages add to the consuming Template; rebalance its total.
3
5
  tasks:
4
6
  - id: "update-docs"
5
7
  title: "Update Documentation: ${story.title}"
@@ -13,4 +15,4 @@ tasks:
13
15
  description: "Add a clear, user-focused entry to the project changelog describing what changed and why."
14
16
  estimationPercent: 5
15
17
  activity: "Documentation"
16
- assignTo: "@ParentAssignee"
18
+ assignTo: "@Unassigned"
@@ -1,16 +1,18 @@
1
+ formatVersion: "1.0"
1
2
  name: "Security Review Tasks"
2
- description: "Common security review tasks. Mix into any feature template to enforce a security gate."
3
+ description: "Example security tasks. Adapt the scope and estimates to the risks relevant to your change."
4
+ # Illustrative percentages add to the consuming Template; rebalance its total.
3
5
  tasks:
4
6
  - id: "security-review"
5
7
  title: "Security Review: ${story.title}"
6
- description: "Review the implementation for security vulnerabilities (OWASP Top 10, input validation, auth/authz, secrets handling)."
8
+ description: "Review security concerns relevant to the change, such as access control or handling sensitive data."
7
9
  estimationPercent: 10
8
- activity: "Design"
10
+ activity: "Development"
9
11
  assignTo: "@Unassigned"
10
12
 
11
13
  - id: "dependency-audit"
12
14
  title: "Dependency Audit: ${story.title}"
13
- description: "Audit third-party dependencies for known vulnerabilities (e.g. npm audit, OWASP Dependency-Check)."
15
+ description: "Check changed dependencies for known vulnerabilities using tools appropriate to the project."
14
16
  estimationPercent: 5
15
17
  activity: "Development"
16
18
  assignTo: "@Unassigned"
@@ -1,19 +1,21 @@
1
+ formatVersion: "1.0"
1
2
  name: "Test Coverage Tasks"
2
- description: "Expanded testing tasks. Mix into any template to enforce unit, integration, and E2E test coverage."
3
+ description: "Example testing tasks, including a conditional task. Choose the test types and estimates relevant to your change."
4
+ # Illustrative percentages add to the consuming Template; rebalance its total.
3
5
  tasks:
4
6
  - id: "unit-tests"
5
7
  title: "Unit Tests: ${story.title}"
6
- description: "Write unit tests covering the core logic and edge cases. Aim for ≥80% coverage on changed code."
8
+ description: "Write unit tests covering the core logic and edge cases."
7
9
  estimationPercent: 15
8
10
  activity: "Testing"
9
- assignTo: "@ParentAssignee"
11
+ assignTo: "@Unassigned"
10
12
 
11
13
  - id: "integration-tests"
12
14
  title: "Integration Tests: ${story.title}"
13
15
  description: "Write integration tests covering interactions between components, APIs, and external dependencies."
14
16
  estimationPercent: 10
15
17
  activity: "Testing"
16
- dependsOn: ["unit-tests"]
18
+ assignTo: "@Unassigned"
17
19
 
18
20
  - id: "e2e-tests"
19
21
  title: "End-to-End Tests: ${story.title}"
@@ -21,6 +23,7 @@ tasks:
21
23
  estimationPercent: 10
22
24
  activity: "Testing"
23
25
  assignTo: "@Unassigned"
26
+ # Example opt-in tag; replace it with your own condition if needed.
24
27
  condition:
25
28
  field: "tags"
26
29
  operator: "contains"
@@ -1,215 +1,63 @@
1
- version: "1.0"
1
+ formatVersion: "1.0"
2
2
  name: "Agile Story Breakdown"
3
- description: "Agile story breakdown template. Handles dev stories, mixed dev+test stories, and test-only stories in a single template using conditional tasks and conditional estimation."
3
+ description: "Example of conditional tasks and estimates. Adapt the tasks and illustrative tag to your team's workflow."
4
4
  author: "Atomize"
5
- tags: []
6
5
 
7
6
  filter:
7
+ # Change this to the Work Item type used by your project.
8
8
  workItemTypes: ["User Story"]
9
- states: ["Ready for Sprint"]
10
- tags:
11
- exclude:
12
- - "TestGen"
13
9
  excludeIfHasTasks: true
14
- areaPaths:
15
- - EA-RSP-Platform\Release 2 Team
16
- iterations:
17
- - "@CurrentIteration"
10
+ # Alternative: let an existing Azure DevOps query select the Stories.
11
+ # Uncomment savedQuery and replace its path with a query in your project.
12
+ # workItemTypes then declares the types returned; it does not filter the query.
13
+ # savedQuery:
14
+ # path: "Shared Queries/Example"
18
15
 
19
16
  tasks:
20
- - title: "Analysis & Playback"
21
- estimationPercent: 20
17
+ - id: "implement"
18
+ title: "Implement: ${story.title}"
19
+ description: "Make the changes needed to meet the acceptance criteria."
20
+ estimationPercent: 60
22
21
  activity: "Development"
23
- tags: []
24
22
  assignTo: "@ParentAssignee"
23
+ # Example convention: this tag selects verification work only.
25
24
  condition:
26
- all:
27
- - field: tags
28
- operator: not-contains
29
- value: Testing Only
30
- - field: tags
31
- operator: not-contains
32
- value: Test Only
33
-
34
- - title: "Build"
35
- estimationPercent: 50
36
- activity: "Development"
37
- tags: []
38
- assignTo: "@ParentAssignee"
39
- condition:
40
- all:
41
- - field: tags
42
- operator: not-contains
43
- value: Testing Only
44
- - field: tags
45
- operator: not-contains
46
- value: Test Only
47
-
48
- - title: "Developer Test"
49
- estimationPercent: 25
50
- activity: "Development"
51
- tags: []
52
- assignTo: "@ParentAssignee"
53
- condition:
54
- all:
55
- - field: tags
56
- operator: not-contains
57
- value: Testing Only
58
- - field: tags
59
- operator: not-contains
60
- value: Test Only
61
-
62
- - title: "QA Smoke Test"
63
- estimationPercent: 0
64
- activity: "Development"
65
- tags: []
66
- assignTo: "@ParentAssignee"
67
- condition:
68
- all:
69
- - field: tags
70
- operator: not-contains
71
- value: Testing Only
72
- - field: tags
73
- operator: not-contains
74
- value: Test Only
75
-
76
- - title: "Wiki"
77
- estimationPercent: 5
78
- activity: "Development"
79
- tags: []
80
- assignTo: "@ParentAssignee"
81
- condition:
82
- all:
83
- - field: tags
84
- operator: not-contains
85
- value: Testing Only
86
- - field: tags
87
- operator: not-contains
88
- value: Test Only
89
-
90
- - title: "Code Review "
91
- estimationPercent: 0
92
- activity: "Development"
93
- tags: []
94
- assignTo: "@Unassigned"
95
- condition:
96
- all:
97
- - field: tags
98
- operator: not-contains
99
- value: Testing Only
100
- - field: tags
101
- operator: not-contains
102
- value: Test Only
103
-
104
- - title: "Physical Data Model Updated"
105
- estimationPercent: 0
106
- activity: "Development"
107
- tags: []
108
- assignTo: "@ParentAssignee"
109
- condition:
110
- all:
111
- - field: tags
112
- operator: not-contains
113
- value: Testing Only
114
- - field: tags
115
- operator: not-contains
116
- value: Test Only
25
+ field: tags
26
+ operator: not-contains
27
+ value: verification-only
117
28
 
118
- - title: "Test Preparation"
29
+ - id: "verify"
30
+ title: "Verify: ${story.title}"
31
+ description: "Check the outcome against the acceptance criteria."
119
32
  estimationPercent: 40
120
- estimationPercentCondition:
121
- - condition:
122
- any:
123
- - field: tags
124
- operator: contains
125
- value: Testing Only
126
- - field: tags
127
- operator: contains
128
- value: Test Only
129
- percent: 59.70
130
33
  activity: "Testing"
131
- tags: []
132
- condition:
133
- field: tags
134
- operator: not-contains
135
- value: Dev Only
136
34
  assignTo: "@Unassigned"
137
-
138
- - title: "Test Execution"
139
- estimationPercent: 27
140
35
  estimationPercentCondition:
141
36
  - condition:
142
- any:
143
- - field: tags
144
- operator: contains
145
- value: Testing Only
146
- - field: tags
147
- operator: contains
148
- value: Test Only
149
- percent: 40.30
150
- activity: "Testing"
151
- tags: []
152
- condition:
153
- field: tags
154
- operator: not-contains
155
- value: Dev Only
156
- assignTo: "@Unassigned"
157
-
158
- - title: "Automation Testing"
159
- estimationPercent: 0
160
- activity: "Test Automation"
161
- tags: []
162
- condition:
163
- field: tags
164
- operator: not-contains
165
- value: Dev Only
166
- assignTo: "@Unassigned"
167
-
168
- - title: "Test Review"
169
- estimationPercent: 0
170
- activity: "Testing"
171
- tags: []
172
- condition:
173
- field: tags
174
- operator: not-contains
175
- value: Dev Only
176
- assignTo: "@Unassigned"
177
-
178
- - title: "Release Notes"
179
- estimationPercent: 0
180
- activity: "Testing"
181
- tags: []
182
- condition:
183
- field: tags
184
- operator: not-contains
185
- value: Dev Only
186
- assignTo: "@Unassigned"
187
-
188
- - title: "Merge to Stable"
189
- estimationPercent: 10
190
- activity: "Development"
191
- tags: []
192
- assignTo: "@ParentAssignee"
193
- condition:
194
- all:
195
- - field: tags
196
- operator: not-contains
197
- value: Testing Only
198
- - field: tags
199
- operator: not-contains
200
- value: Test Only
37
+ field: tags
38
+ operator: contains
39
+ value: verification-only
40
+ percent: 100
201
41
 
202
42
  estimation:
203
43
  strategy: "percentage"
204
44
  rounding: "none"
205
- minimumTaskEstimate: 0
45
+ ifParentHasNoEstimation: "warn"
46
+
47
+ # These are authoring checks, not a count of tasks after conditions run.
48
+ validation:
49
+ totalEstimationMustBe: 100
50
+ minTasks: 1
51
+ maxTasks: 5
206
52
 
207
53
  metadata:
208
- category: "Agile Project"
209
- recommendedFor: []
54
+ category: "Examples"
210
55
  estimationGuidelines: |
211
- Handles three story archetypes in one template:
212
- - Dev and Test story (no special tag): dev tasks + test tasks, base percentages apply.
213
- - Testing Only / Test Only story: dev tasks skipped; Test Preparation gets 59.70%
214
- and Test Execution gets 40.30%.
215
- - Dev Only story: test tasks skipped
56
+ The 60/40 split is illustrative. A Story tagged verification-only generates
57
+ just the verification Task with 100% of the converted Story Estimate.
58
+ Replace the tag and percentages to suit your own work.
59
+ notes: |
60
+ This example demonstrates conditions, not a required delivery process.
61
+ Copy it into your Catalog and adapt the Work Item type, tasks, and estimates.
62
+ Activities and assignment tokens are illustrative; adapt them to your
63
+ project. The commented saved-query alternative demonstrates query selection.
@@ -1,60 +1,57 @@
1
- version: "1.0"
1
+ formatVersion: "1.0"
2
2
  name: "Backend API Development"
3
- description: "Standard backend API development with database integration"
3
+ description: "Example API task breakdown with Story Estimate conversion. Adapt it to your interface, implementation, and verification needs."
4
4
  author: "Atomize"
5
- tags: ["backend", "api", "database"]
5
+ tags: ["example", "api"]
6
6
 
7
7
  filter:
8
+ # Change this to the Work Item type used by your project.
8
9
  workItemTypes: ["User Story"]
9
- states: ["New", "Active", "Approved"]
10
- tags:
11
- include: ["backend", "api"]
12
10
  excludeIfHasTasks: true
13
11
 
14
12
  tasks:
15
- - title: "Design API Endpoints: ${story.title}"
16
- description: "Design REST API endpoints, request/response schemas, and error handling"
17
- estimationPercent: 15
13
+ - id: "design"
14
+ title: "Define API Behavior: ${story.title}"
15
+ description: "Describe the inputs, outputs, and expected behavior relevant to this change."
16
+ estimationPercent: 20
18
17
  activity: "Design"
19
- tags: ["design", "api"]
18
+ assignTo: "@ParentAssignee"
20
19
 
21
- - title: "Database Schema: ${story.title}"
22
- description: "Design and create database tables, migrations, and relationships"
23
- estimationPercent: 15
24
- activity: "Design"
25
- tags: ["database", "migration"]
26
-
27
- - title: "Implement Core Logic: ${story.title}"
28
- description: "Implement business logic, data validation, and error handling"
29
- estimationPercent: 35
20
+ - id: "implement"
21
+ title: "Implement API Change: ${story.title}"
22
+ description: "Make the changes needed for the agreed behavior."
23
+ estimationPercent: 50
30
24
  activity: "Development"
31
- tags: ["implementation"]
32
-
33
- - title: "Write Unit Tests"
34
- description: "Unit tests for services, repositories, and utilities"
35
- estimationPercent: 15
36
- activity: "Testing"
37
- tags: ["testing", "unit-tests"]
25
+ assignTo: "@ParentAssignee"
26
+ dependsOn: ["design"]
38
27
 
39
- - title: "Integration Tests & Documentation"
40
- description: "API integration tests and OpenAPI/Swagger documentation"
41
- estimationPercent: 10
28
+ - id: "verify"
29
+ title: "Verify API Behavior: ${story.title}"
30
+ description: "Check expected results, error cases, and compatibility where relevant."
31
+ estimationPercent: 30
42
32
  activity: "Testing"
43
- tags: ["testing", "documentation"]
44
-
45
- - title: "Code Review & Refinement"
46
- description: "Address code review feedback and refactor as needed"
47
- estimationPercent: 10
48
- activity: "Documentation"
49
- tags: ["review"]
33
+ assignTo: "@Unassigned"
34
+ dependsOn: ["implement"]
50
35
 
51
36
  estimation:
52
37
  strategy: "percentage"
38
+ # Example: one Story Estimate unit becomes four Task Estimate units.
39
+ conversion:
40
+ factor: 4
41
+ # Alternative for a discrete or non-linear scale: replace factor with a table.
42
+ # conversion:
43
+ # table: { "1": 2, "2": 5, "3": 8, "5": 16 }
53
44
  rounding: "nearest"
54
- minimumTaskEstimate: 0
45
+ ifParentHasNoEstimation: "warn"
46
+
47
+ validation:
48
+ totalEstimationMustBe: 100
55
49
 
56
50
  metadata:
57
- category: "Backend"
58
- difficulty: "intermediate"
59
- recommendedFor: ["API development", "Microservices", "REST APIs"]
60
- estimationGuidelines: "Based on typical backend development workflows"
51
+ category: "Examples"
52
+ estimationGuidelines: "The factor of 4 and 20/50/30 split are illustrative. Convert the Story Estimate first, distribute it, then round to the nearest half Task unit. Use the commented table alternative for a non-linear scale."
53
+ notes: |
54
+ Copy and adapt this example. It assumes no particular API style, database,
55
+ test framework, documentation tool, or workflow state. Activity names and
56
+ assignment choices are illustrative; adapt them to your project.
57
+ Change the Work Item type and add or remove tasks to fit your project.
@@ -1,32 +1,25 @@
1
- version: "1.0"
1
+ formatVersion: "1.0"
2
2
  name: "Bug Fix"
3
- description: "Foundation for bug-fix templates. Extend this to inherit a standard investigation and fix task set."
3
+ description: "Example fixed Task Estimates for investigation, fix, and verification. Copy or extend it to fit how your team handles bugs."
4
4
  author: "Atomize"
5
- tags: ["template", "bug"]
5
+ tags: ["example", "bug"]
6
6
 
7
7
  filter:
8
8
  workItemTypes: ["Bug"]
9
- states: ["New", "Active", "Committed"]
10
9
  excludeIfHasTasks: true
11
10
 
12
11
  tasks:
13
12
  - id: "investigate"
14
13
  title: "Investigate: ${story.title}"
15
14
  description: "Reproduce the bug, identify the root cause, and document findings."
16
- estimationPercent: 30
15
+ estimationFixed: 1
17
16
  activity: "Requirements"
18
17
  assignTo: "@ParentAssignee"
19
- estimationPercentCondition:
20
- - condition:
21
- field: "Priority"
22
- operator: "lte"
23
- value: 2
24
- percent: 40
25
18
 
26
19
  - id: "fix"
27
20
  title: "Fix: ${story.title}"
28
21
  description: "Implement the fix for the identified root cause."
29
- estimationPercent: 40
22
+ estimationFixed: 2
30
23
  activity: "Development"
31
24
  assignTo: "@ParentAssignee"
32
25
  dependsOn: ["investigate"]
@@ -34,21 +27,32 @@ tasks:
34
27
  - id: "verify"
35
28
  title: "Verify Fix: ${story.title}"
36
29
  description: "Verify the fix resolves the issue and does not introduce regressions."
37
- estimationPercent: 20
30
+ estimationFixed: 1
38
31
  activity: "Testing"
32
+ assignTo: "@Unassigned"
39
33
  dependsOn: ["fix"]
40
34
 
41
35
  - id: "close"
42
- title: "Close & Document: ${story.title}"
43
- description: "Update documentation, close the bug, and notify stakeholders."
44
- estimationPercent: 10
36
+ title: "Record Outcome: ${story.title}"
37
+ description: "Record the outcome and any follow-up information useful to your team."
38
+ estimationFixed: 0.5
45
39
  activity: "Documentation"
40
+ assignTo: "@ParentAssignee"
46
41
  dependsOn: ["verify"]
47
42
 
48
- estimation:
49
- strategy: "percentage"
50
- rounding: "none"
51
- ifParentHasNoEstimation: "warn"
52
-
43
+ # Fixed estimates use the Task's unit and do not depend on a Story Estimate.
44
+ # These example limits check the fixed estimates, rather than a percentage total.
53
45
  validation:
54
- totalEstimationMustBe: 100
46
+ minTasks: 1
47
+ maxTasks: 10
48
+ taskEstimationRange:
49
+ min: 0.5
50
+ max: 8
51
+
52
+ metadata:
53
+ category: "Examples"
54
+ estimationGuidelines: "Fixed values are illustrative, in the Task unit (typically hours). They are independent of the Story Estimate and bypass percentage rounding."
55
+ notes: |
56
+ Copy and adapt the Work Item type, tasks, dependencies, and estimates.
57
+ Adapt the activity names to your project. Assignment tokens illustrate
58
+ inheriting the Story assignee and leaving verification unassigned.
@@ -1,18 +1,17 @@
1
- version: "1.0"
1
+ formatVersion: "1.0"
2
2
  name: "Feature Development"
3
- description: "Foundation for feature development templates. Extend this to inherit a standard task set and filter."
3
+ description: "Example feature task breakdown with dependencies. Copy or extend it and adapt the steps to your work."
4
4
  author: "Atomize"
5
- tags: ["template", "feature"]
5
+ tags: ["example", "feature"]
6
6
 
7
7
  filter:
8
8
  workItemTypes: ["User Story"]
9
- states: ["New", "Active", "Approved"]
10
9
  excludeIfHasTasks: true
11
10
 
12
11
  tasks:
13
12
  - id: "design"
14
13
  title: "Design: ${story.title}"
15
- description: "Define the solution design, including API contracts, data models, and UI wireframes."
14
+ description: "Describe the intended outcome and an approach suited to this change."
16
15
  estimationPercent: 15
17
16
  activity: "Design"
18
17
  assignTo: "@ParentAssignee"
@@ -26,10 +25,11 @@ tasks:
26
25
  dependsOn: ["design"]
27
26
 
28
27
  - id: "review"
29
- title: "Code Review: ${story.title}"
30
- description: "Review the implementation for quality, maintainability, and adherence to standards."
28
+ title: "Review: ${story.title}"
29
+ description: "Review the change and address feedback relevant to your project."
31
30
  estimationPercent: 10
32
31
  activity: "Development"
32
+ assignTo: "@Unassigned"
33
33
  dependsOn: ["implement"]
34
34
 
35
35
  - id: "test"
@@ -37,13 +37,15 @@ tasks:
37
37
  description: "Write and execute tests to validate the feature against acceptance criteria."
38
38
  estimationPercent: 20
39
39
  activity: "Testing"
40
+ assignTo: "@Unassigned"
40
41
  dependsOn: ["implement"]
41
42
 
42
43
  - id: "deploy"
43
- title: "Deploy: ${story.title}"
44
- description: "Deploy to the target environment and verify the feature is live."
44
+ title: "Deliver: ${story.title}"
45
+ description: "Complete the handoff or release steps relevant to this change."
45
46
  estimationPercent: 5
46
47
  activity: "Development"
48
+ assignTo: "@ParentAssignee"
47
49
  dependsOn: ["test", "review"]
48
50
 
49
51
  estimation:
@@ -51,5 +53,17 @@ estimation:
51
53
  rounding: "none"
52
54
  ifParentHasNoEstimation: "warn"
53
55
 
56
+ # Example authoring checks; adjust when adding or removing tasks or Mixins.
54
57
  validation:
55
58
  totalEstimationMustBe: 100
59
+ minTasks: 1
60
+ maxTasks: 10
61
+
62
+ metadata:
63
+ category: "Examples"
64
+ estimationGuidelines: "The percentages are illustrative; adjust them to reflect your work."
65
+ notes: |
66
+ These steps demonstrate task dependencies, not a required delivery process.
67
+ Copy and adapt the Work Item type, tasks, dependencies, and estimates.
68
+ Activities and assignment tokens are examples. Match activities to your
69
+ project and choose which tasks inherit the Story assignee or stay unassigned.