@sppg2001/atomize 2.0.0 → 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 +93 -551
- package/{templates/mixins/docs.yaml → catalog/mixins/documentation.atomize.yaml} +1 -1
- package/{templates/mixins/security.yaml → catalog/mixins/security-review.atomize.yaml} +1 -1
- package/{templates/mixins/testing.yaml → catalog/mixins/test-coverage.atomize.yaml} +1 -1
- package/{templates/templates/custom-saved-query.yaml → catalog/templates/agile-story-breakdown-saved-query.atomize.yaml} +2 -2
- package/{templates/templates/custom.yaml → catalog/templates/agile-story-breakdown.atomize.yaml} +2 -2
- package/{templates/templates/bug.yaml → catalog/templates/bug-fix.atomize.yaml} +1 -1
- package/{templates/templates/feature.yaml → catalog/templates/feature-development.atomize.yaml} +1 -1
- package/dist/cli/index.js +17866 -21738
- package/package.json +19 -16
- package/LICENSE +0 -21
- package/docs/Auth-Guide.md +0 -257
- package/docs/Cli-Reference.md +0 -959
- package/docs/Common-Validation-Errors.md +0 -556
- package/docs/Getting-Started.md +0 -540
- package/docs/Platform-Guide.md +0 -662
- package/docs/Story-Learner.md +0 -324
- package/docs/Template-Reference.md +0 -743
- package/docs/Validation-Modes.md +0 -252
- package/docs/template-wizard-guide.md +0 -738
- package/examples/README.md +0 -220
- package/examples/advanced-filtering.yaml +0 -113
- package/examples/backend.yaml +0 -124
- package/examples/conditional-dependencies-template.yaml +0 -145
- package/examples/conditional-percentage-template.yaml +0 -167
- package/examples/frontend.yaml +0 -123
- package/examples/fullstack.yaml +0 -167
- /package/{templates/templates/backend-api.yaml → catalog/templates/backend-api.atomize.yaml} +0 -0
package/README.md
CHANGED
|
@@ -1,614 +1,156 @@
|
|
|
1
|
-
# Atomize
|
|
1
|
+
# Atomize CLI
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
[](https://github.com/Simao-Pereira-Gomes/atomize/actions/workflows/codeql.yml)
|
|
5
|
-
[](https://www.npmjs.com/package/@sppg2001/atomize)
|
|
6
|
-
[](https://opensource.org/licenses/MIT)
|
|
7
|
-
[](https://nodejs.org)
|
|
8
|
-
[](https://www.typescriptlang.org/)
|
|
3
|
+
Atomize CLI turns stories into consistent child tasks using reusable YAML templates. It supports template validation, safe previews, confirmed task generation, connection profile management, template catalog operations, and CI/CD automation.
|
|
9
4
|
|
|
10
|
-
|
|
5
|
+
Atomize is designed around platform adapters. Today, connected generation supports Azure DevOps. Mock is available for offline testing.
|
|
11
6
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Features
|
|
17
|
-
|
|
18
|
-
- **Preset Templates** - Start with battle-tested templates for common workflows
|
|
19
|
-
- **Story Learning** - Generate templates by analyzing your existing work items (single or multiple stories)
|
|
20
|
-
- **Pattern Detection** - Identify common task patterns across multiple stories with confidence scoring
|
|
21
|
-
- **Smart Estimation** - Automatically distribute story points across tasks with conditional percentage support
|
|
22
|
-
- **Strict & Lenient Validation** - Flexible QA modes to enforce template quality
|
|
23
|
-
- **Azure DevOps Integration** - Native support with WIQL queries and full field mapping
|
|
24
|
-
- **Zero Config** - Works out of the box with sensible defaults
|
|
25
|
-
- **Interactive Wizards** - User-friendly prompts guide you through everything
|
|
26
|
-
- **Built-in Validation** - Catch template errors before they cause problems
|
|
27
|
-
- **CI/CD Ready** - Automation-friendly with JSON report output
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## Installation
|
|
32
|
-
|
|
33
|
-
### Global Installation (Recommended)
|
|
7
|
+
## Install
|
|
34
8
|
|
|
35
9
|
```bash
|
|
36
10
|
npm install -g @sppg2001/atomize
|
|
37
11
|
```
|
|
38
12
|
|
|
39
|
-
|
|
13
|
+
Verify the install:
|
|
40
14
|
|
|
41
15
|
```bash
|
|
42
|
-
|
|
16
|
+
atomize --version
|
|
17
|
+
atomize --help
|
|
43
18
|
```
|
|
44
19
|
|
|
45
|
-
|
|
20
|
+
You can also run without installing globally:
|
|
46
21
|
|
|
47
22
|
```bash
|
|
48
|
-
|
|
49
|
-
cd atomize
|
|
50
|
-
bun install
|
|
51
|
-
bun run dev
|
|
23
|
+
npx @sppg2001/atomize --help
|
|
52
24
|
```
|
|
53
25
|
|
|
54
|
-
---
|
|
55
|
-
|
|
56
26
|
## Quick Start
|
|
57
27
|
|
|
58
|
-
|
|
28
|
+
Try Atomize without credentials:
|
|
59
29
|
|
|
60
30
|
```bash
|
|
61
|
-
|
|
62
|
-
atomize
|
|
63
|
-
|
|
64
|
-
# Verify it works
|
|
65
|
-
atomize auth test work-ado
|
|
31
|
+
atomize validate template:backend-api
|
|
32
|
+
atomize generate template:backend-api --platform mock
|
|
66
33
|
```
|
|
67
34
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
### 2. Generate Tasks from a Template
|
|
35
|
+
Connect Azure DevOps:
|
|
71
36
|
|
|
72
37
|
```bash
|
|
73
|
-
|
|
74
|
-
atomize
|
|
75
|
-
|
|
76
|
-
# When ready to create tasks for real
|
|
77
|
-
atomize generate template:backend-api --execute
|
|
78
|
-
|
|
79
|
-
# Interactive mode (prompts for everything)
|
|
80
|
-
atomize generate
|
|
38
|
+
atomize auth add work-ado
|
|
39
|
+
atomize auth test work-ado
|
|
81
40
|
```
|
|
82
41
|
|
|
83
|
-
|
|
42
|
+
Preview and then create tasks:
|
|
84
43
|
|
|
85
44
|
```bash
|
|
86
|
-
#
|
|
87
|
-
atomize template
|
|
88
|
-
|
|
89
|
-
# Learn from multiple stories (better pattern detection)
|
|
90
|
-
atomize template create --from-stories STORY-1,STORY-2,STORY-3
|
|
45
|
+
# Dry run, no tasks created
|
|
46
|
+
atomize generate template:backend-api --profile work-ado
|
|
91
47
|
|
|
92
|
-
#
|
|
93
|
-
atomize template
|
|
48
|
+
# Create tasks after confirmation
|
|
49
|
+
atomize generate template:backend-api --profile work-ado --execute
|
|
94
50
|
```
|
|
95
51
|
|
|
96
|
-
|
|
52
|
+
## Safety Model
|
|
97
53
|
|
|
98
|
-
|
|
99
|
-
# Lenient mode (default) — only hard errors block use
|
|
100
|
-
atomize validate templates/my-template.yaml
|
|
101
|
-
|
|
102
|
-
# Strict mode — warnings also become errors
|
|
103
|
-
atomize validate templates/my-template.yaml --strict
|
|
104
|
-
```
|
|
54
|
+
`atomize generate` is a dry run by default. It calculates the task plan but does not create tasks.
|
|
105
55
|
|
|
106
|
-
|
|
56
|
+
| Command | Creates tasks |
|
|
57
|
+
|---|---:|
|
|
58
|
+
| `atomize validate ...` | No |
|
|
59
|
+
| `atomize preview ...` | No |
|
|
60
|
+
| `atomize generate ...` | No |
|
|
61
|
+
| `atomize generate ... --platform mock` | No |
|
|
62
|
+
| `atomize generate ... --execute` | Yes, after confirmation |
|
|
63
|
+
| `atomize generate ... --execute --auto-approve` | Yes |
|
|
107
64
|
|
|
108
|
-
|
|
65
|
+
Use `--auto-approve` only in non-interactive automation where task creation is intentional.
|
|
109
66
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
The `generate` command creates tasks in your work item management system based on a template.
|
|
67
|
+
## Common Commands
|
|
113
68
|
|
|
114
69
|
```bash
|
|
115
|
-
#
|
|
116
|
-
atomize
|
|
117
|
-
|
|
118
|
-
# With options
|
|
119
|
-
atomize generate template:backend-api \
|
|
120
|
-
--platform azure-devops \
|
|
121
|
-
--execute \
|
|
122
|
-
--verbose
|
|
70
|
+
# Validate templates
|
|
71
|
+
atomize validate template:backend-api
|
|
72
|
+
atomize validate ./templates/backend.atomize.yaml --strict
|
|
123
73
|
|
|
124
|
-
#
|
|
125
|
-
atomize
|
|
126
|
-
|
|
127
|
-
# CI/CD mode with JSON report
|
|
128
|
-
atomize generate template:backend-api \
|
|
129
|
-
--execute \
|
|
130
|
-
--auto-approve \
|
|
131
|
-
--output report.json
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
**Key Options:**
|
|
135
|
-
- `--platform <type>` - Platform: `azure-devops` or `mock`
|
|
136
|
-
- `--profile <name>` - Named connection profile to use (see `atomize auth add`)
|
|
137
|
-
- `--execute` - Actually create tasks (default is dry-run preview)
|
|
138
|
-
- `--auto-approve` - Required with `--execute` in non-interactive mode to acknowledge live task creation
|
|
139
|
-
- `--continue-on-error` - Keep processing if errors occur
|
|
140
|
-
- `--story-concurrency <n>` - Parallel story processing (default: 3, max: 10)
|
|
141
|
-
- `--task-concurrency <n>` - Parallel task creation per story (default: 5, max: 20)
|
|
142
|
-
- `--dependency-concurrency <n>` - Parallel dependency link creation (default: 5, max: 10)
|
|
143
|
-
- `--verbose` - Show detailed output
|
|
144
|
-
- `-o, --output <file>` - Write JSON report to file
|
|
145
|
-
- `--include-sensitive-report-data` - Include descriptions, custom fields, and platform-specific work item data in the JSON report
|
|
146
|
-
|
|
147
|
-
In non-interactive mode, `--execute` now requires `--auto-approve`. This prevents unattended task creation from wrapper scripts or CI jobs that did not explicitly acknowledge the mutation.
|
|
148
|
-
|
|
149
|
-
**Example Output:**
|
|
150
|
-
```
|
|
151
|
-
✓ Loaded template: Backend API Development
|
|
152
|
-
✓ Found 3 matching user stories
|
|
153
|
-
✓ Generated 18 tasks (6 per story)
|
|
154
|
-
✓ Created 18 tasks in Azure DevOps
|
|
155
|
-
|
|
156
|
-
Summary:
|
|
157
|
-
Stories processed: 3
|
|
158
|
-
Tasks created: 18
|
|
159
|
-
Execution time: 2.3s
|
|
160
|
-
```
|
|
74
|
+
# Inspect required story fields
|
|
75
|
+
atomize preview template:backend-api --inspect
|
|
161
76
|
|
|
162
|
-
|
|
77
|
+
# Preview with mock data
|
|
78
|
+
atomize preview template:backend-api \
|
|
79
|
+
--mock-story '{"id":"123","title":"Add password reset","estimation":8}'
|
|
163
80
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
# From an existing template (fastest)
|
|
168
|
-
atomize template create --from feature
|
|
169
|
-
|
|
170
|
-
# Learn from multiple stories (best pattern detection)
|
|
171
|
-
atomize template create \
|
|
172
|
-
--from-stories STORY-1,STORY-2,STORY-3 \
|
|
173
|
-
--save-as learned-api-template
|
|
81
|
+
# Generate from catalog or file templates
|
|
82
|
+
atomize generate template:backend-api
|
|
83
|
+
atomize generate ./templates/backend.atomize.yaml --profile work-ado
|
|
174
84
|
|
|
175
|
-
#
|
|
176
|
-
atomize template
|
|
177
|
-
```
|
|
85
|
+
# Target specific stories
|
|
86
|
+
atomize generate template:backend-api --profile work-ado --story 123 456
|
|
178
87
|
|
|
179
|
-
|
|
88
|
+
# Manage profiles
|
|
89
|
+
atomize auth list
|
|
90
|
+
atomize auth add work-ado
|
|
91
|
+
atomize auth test work-ado
|
|
92
|
+
atomize auth rotate work-ado
|
|
180
93
|
|
|
181
|
-
|
|
94
|
+
# Manage templates
|
|
182
95
|
atomize template list
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
- `feature` - General feature task workflow
|
|
188
|
-
- `bug` - Bug investigation and resolution workflow
|
|
189
|
-
- `custom` - Example template with custom fields
|
|
190
|
-
- `custom-saved-query` - Example template using an Azure DevOps saved query
|
|
191
|
-
|
|
192
|
-
#### Validate a Template
|
|
193
|
-
|
|
194
|
-
```bash
|
|
195
|
-
atomize validate templates/my-template.yaml
|
|
196
|
-
|
|
197
|
-
# Strict mode — warnings become errors (recommended for team/production templates)
|
|
198
|
-
atomize validate templates/my-template.yaml --strict
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
## Template Structure
|
|
204
|
-
|
|
205
|
-
Templates are YAML files that define how to break down user stories into tasks.
|
|
206
|
-
|
|
207
|
-
### Basic Template
|
|
208
|
-
|
|
209
|
-
```yaml
|
|
210
|
-
version: "1.0"
|
|
211
|
-
name: "Backend API Development"
|
|
212
|
-
description: "Standard backend API workflow"
|
|
213
|
-
|
|
214
|
-
# Which stories to process
|
|
215
|
-
filter:
|
|
216
|
-
workItemTypes: ["User Story"]
|
|
217
|
-
states: ["New", "Active"]
|
|
218
|
-
tags:
|
|
219
|
-
include: ["backend", "api"]
|
|
220
|
-
excludeIfHasTasks: true
|
|
221
|
-
|
|
222
|
-
# Task breakdown
|
|
223
|
-
tasks:
|
|
224
|
-
- title: "Design API Endpoints: ${story.title}"
|
|
225
|
-
description: "Design REST API endpoints and schemas"
|
|
226
|
-
estimationPercent: 15
|
|
227
|
-
activity: "Design"
|
|
228
|
-
tags: ["design", "api"]
|
|
229
|
-
|
|
230
|
-
- title: "Implement Core Logic: ${story.title}"
|
|
231
|
-
description: "Implement business logic and validation"
|
|
232
|
-
estimationPercent: 40
|
|
233
|
-
activity: "Development"
|
|
234
|
-
|
|
235
|
-
- title: "Write Tests"
|
|
236
|
-
description: "Unit and integration tests"
|
|
237
|
-
estimationPercent: 30
|
|
238
|
-
activity: "Testing"
|
|
239
|
-
|
|
240
|
-
- title: "Code Review & Documentation"
|
|
241
|
-
description: "Review and document the implementation"
|
|
242
|
-
estimationPercent: 15
|
|
243
|
-
activity: "Documentation"
|
|
244
|
-
|
|
245
|
-
# Estimation settings
|
|
246
|
-
estimation:
|
|
247
|
-
rounding: "nearest"
|
|
248
|
-
minimumTaskPoints: 0.5
|
|
249
|
-
|
|
250
|
-
# Validation rules
|
|
251
|
-
validation:
|
|
252
|
-
totalEstimationMustBe: 100
|
|
253
|
-
minTasks: 3
|
|
254
|
-
maxTasks: 10
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
### Template Features
|
|
258
|
-
|
|
259
|
-
#### Variable Interpolation
|
|
260
|
-
|
|
261
|
-
```yaml
|
|
262
|
-
- title: "Design: ${story.title}"
|
|
263
|
-
- description: "Story ${story.id}: ${story.description}"
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
Available variables: `${story.title}`, `${story.id}`, `${story.description}`, `${story.estimation}`, `${story.tags}`
|
|
267
|
-
|
|
268
|
-
#### Task Assignment
|
|
269
|
-
|
|
270
|
-
```yaml
|
|
271
|
-
assignTo: "@ParentAssignee" # Inherit from story
|
|
272
|
-
assignTo: "@Me" # Current user
|
|
273
|
-
assignTo: "user@email.com" # Specific user
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
#### Conditional Tasks
|
|
277
|
-
|
|
278
|
-
```yaml
|
|
279
|
-
- title: "Security Review"
|
|
280
|
-
estimationPercent: 10
|
|
281
|
-
condition:
|
|
282
|
-
field: "tags"
|
|
283
|
-
operator: "contains"
|
|
284
|
-
value: "security"
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
#### Conditional Estimation (v1.1)
|
|
288
|
-
|
|
289
|
-
Adapt task percentage based on story properties. First matching rule wins; `estimationPercent` is the fallback.
|
|
290
|
-
|
|
291
|
-
```yaml
|
|
292
|
-
- title: "Implementation"
|
|
293
|
-
estimationPercent: 50 # Default
|
|
294
|
-
estimationPercentCondition:
|
|
295
|
-
- condition:
|
|
296
|
-
field: "tags"
|
|
297
|
-
operator: "contains"
|
|
298
|
-
value: "critical"
|
|
299
|
-
percent: 60 # More weight for critical stories
|
|
300
|
-
- condition:
|
|
301
|
-
field: "estimation"
|
|
302
|
-
operator: "gte"
|
|
303
|
-
value: 13
|
|
304
|
-
percent: 55 # More work for large stories
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
#### Task Dependencies
|
|
308
|
-
|
|
309
|
-
```yaml
|
|
310
|
-
tasks:
|
|
311
|
-
- id: "design"
|
|
312
|
-
title: "Design Phase"
|
|
313
|
-
estimationPercent: 20
|
|
314
|
-
|
|
315
|
-
- id: "implement"
|
|
316
|
-
title: "Implementation"
|
|
317
|
-
estimationPercent: 60
|
|
318
|
-
dependsOn: ["design"] # Must complete design first
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
---
|
|
322
|
-
|
|
323
|
-
## Platform Setup
|
|
324
|
-
|
|
325
|
-
### Azure DevOps
|
|
326
|
-
|
|
327
|
-
1. **Get a Personal Access Token (PAT)**
|
|
328
|
-
- Go to: `https://dev.azure.com/[your-org]/_usersSettings/tokens`
|
|
329
|
-
- Create token with `Work Items (Read, Write)` scope
|
|
330
|
-
|
|
331
|
-
2. **Save a connection profile**
|
|
332
|
-
```bash
|
|
333
|
-
atomize auth add work-ado
|
|
334
|
-
# Prompts for org URL, project, team, and PAT
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
3. **Test the connection**
|
|
338
|
-
```bash
|
|
339
|
-
atomize auth test work-ado
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
4. **Generate tasks**
|
|
343
|
-
```bash
|
|
344
|
-
# Use the profile explicitly
|
|
345
|
-
atomize generate template:backend-api --profile work-ado
|
|
346
|
-
|
|
347
|
-
# Or set it as default once
|
|
348
|
-
atomize auth use work-ado
|
|
349
|
-
atomize generate template:backend-api
|
|
350
|
-
```
|
|
351
|
-
|
|
352
|
-
See `atomize auth --help` for all profile management commands (`list`, `remove`, `rotate`).
|
|
353
|
-
|
|
354
|
-
### Mock Platform (Testing)
|
|
355
|
-
|
|
356
|
-
```bash
|
|
357
|
-
atomize generate template:backend-api --platform mock
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
No configuration required. Includes 7 built-in sample stories.
|
|
361
|
-
|
|
362
|
-
---
|
|
363
|
-
|
|
364
|
-
## Strict vs Lenient Validation
|
|
365
|
-
|
|
366
|
-
Atomize has two validation modes:
|
|
367
|
-
|
|
368
|
-
| Mode | Warnings | Best For |
|
|
369
|
-
|------|----------|----------|
|
|
370
|
-
| **Lenient** (default) | Non-blocking | Development, personal templates |
|
|
371
|
-
| **Strict** | Treated as errors | Team templates, CI/CD pipelines |
|
|
372
|
-
|
|
373
|
-
```bash
|
|
374
|
-
# Default (lenient) — only hard errors block use
|
|
375
|
-
atomize validate my-template.yaml
|
|
376
|
-
|
|
377
|
-
# Strict — warnings also fail validation
|
|
378
|
-
atomize validate my-template.yaml --strict
|
|
379
|
-
```
|
|
380
|
-
|
|
381
|
-
You can also set the mode in the template itself:
|
|
382
|
-
```yaml
|
|
383
|
-
validation:
|
|
384
|
-
mode: "strict"
|
|
385
|
-
```
|
|
386
|
-
|
|
387
|
-
---
|
|
388
|
-
|
|
389
|
-
## Real-World Examples
|
|
390
|
-
|
|
391
|
-
### Example 1: Backend API Feature
|
|
392
|
-
|
|
393
|
-
**Story:** "As a user, I want to reset my password via email"
|
|
394
|
-
|
|
395
|
-
**Generated Tasks:**
|
|
396
|
-
1. Design password reset flow and email templates (1.5 pts)
|
|
397
|
-
2. Implement password reset endpoint (3.5 pts)
|
|
398
|
-
3. Create email service integration (1.5 pts)
|
|
399
|
-
4. Write unit and integration tests (2 pts)
|
|
400
|
-
5. Add API documentation (0.5 pts)
|
|
401
|
-
6. Security review and rate limiting (1 pt)
|
|
402
|
-
|
|
403
|
-
**Total:** 10 story points perfectly distributed
|
|
404
|
-
|
|
405
|
-
### Example 2: Multi-Story Learning
|
|
406
|
-
|
|
407
|
-
```bash
|
|
408
|
-
# Learn from your team's best stories
|
|
409
|
-
atomize template create \
|
|
410
|
-
--from-stories STORY-100,STORY-115,STORY-132,STORY-148 \
|
|
411
|
-
--platform azure-devops \
|
|
412
|
-
--save-as backend-standard
|
|
413
|
-
|
|
414
|
-
# Validate the learned template
|
|
415
|
-
atomize validate template:backend-standard --strict
|
|
96
|
+
atomize template create --from backend-api
|
|
97
|
+
atomize template create --scratch
|
|
98
|
+
atomize template install ./templates/team-template.atomize.yaml --scope project
|
|
99
|
+
atomize template resolve template:my-template --validate
|
|
416
100
|
|
|
417
|
-
#
|
|
418
|
-
atomize
|
|
101
|
+
# Browse Azure DevOps metadata
|
|
102
|
+
atomize fields list --type Task
|
|
103
|
+
atomize queries list
|
|
419
104
|
```
|
|
420
105
|
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
## Advanced Usage
|
|
106
|
+
## CI/CD
|
|
424
107
|
|
|
425
|
-
|
|
108
|
+
Validate first, then run live generation with explicit acknowledgement:
|
|
426
109
|
|
|
427
110
|
```yaml
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
workItemTypes: ["User Story", "Bug"]
|
|
431
|
-
states: ["New", "Approved"]
|
|
432
|
-
statesExclude: ["Done", "Removed"] # Exclude items in these states
|
|
433
|
-
statesWereEver: ["In Review"] # Items that were ever in these states
|
|
434
|
-
tags:
|
|
435
|
-
include: ["backend"]
|
|
436
|
-
exclude: ["deprecated"]
|
|
437
|
-
areaPaths: ["MyProject\\Backend\\API"] # Exact match
|
|
438
|
-
areaPathsUnder: ["MyProject\\Backend"] # Match and all sub-areas
|
|
439
|
-
iterations: ["@CurrentIteration"] # Current sprint
|
|
440
|
-
iterationsUnder: ["MyProject\\Release 2"] # All sprints under a release
|
|
441
|
-
assignedTo: ["@Me", "jane@company.com"]
|
|
442
|
-
changedAfter: "@Today-7" # Changed in the last 7 days
|
|
443
|
-
createdAfter: "@Today-30" # Created in the last 30 days
|
|
444
|
-
priority:
|
|
445
|
-
min: 1
|
|
446
|
-
max: 2
|
|
447
|
-
excludeIfHasTasks: true
|
|
448
|
-
customFields:
|
|
449
|
-
- field: "Custom.Team"
|
|
450
|
-
operator: "equals"
|
|
451
|
-
value: "Platform Engineering"
|
|
452
|
-
```
|
|
453
|
-
|
|
454
|
-
### Estimation Settings
|
|
455
|
-
|
|
456
|
-
```yaml
|
|
457
|
-
estimation:
|
|
458
|
-
strategy: "percentage" # Distribute story points by percentage
|
|
459
|
-
rounding: "nearest" # nearest, up, down, none
|
|
460
|
-
minimumTaskPoints: 0.5 # Minimum points per task
|
|
461
|
-
ifParentHasNoEstimation: "skip" # skip, warn, use-default
|
|
462
|
-
```
|
|
463
|
-
|
|
464
|
-
### Environment Variables
|
|
111
|
+
- name: Install Atomize
|
|
112
|
+
run: npm install -g @sppg2001/atomize
|
|
465
113
|
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
| `ATOMIZE_PROFILE` | Default connection profile when `--profile` is not specified | _(none)_ |
|
|
469
|
-
| `LOG_LEVEL` | Log verbosity: `error`, `warn`, `info`, `debug` | `warn` |
|
|
114
|
+
- name: Validate template
|
|
115
|
+
run: atomize validate template:backend-api --strict --quiet
|
|
470
116
|
|
|
471
|
-
|
|
117
|
+
- name: Configure profile
|
|
118
|
+
env:
|
|
119
|
+
AZURE_DEVOPS_PAT: ${{ secrets.AZURE_DEVOPS_PAT }}
|
|
120
|
+
run: |
|
|
121
|
+
echo "$AZURE_DEVOPS_PAT" | atomize auth add ci \
|
|
122
|
+
--org-url "${{ secrets.AZURE_DEVOPS_ORG_URL }}" \
|
|
123
|
+
--project "${{ secrets.AZURE_DEVOPS_PROJECT }}" \
|
|
124
|
+
--team "${{ secrets.AZURE_DEVOPS_TEAM }}" \
|
|
125
|
+
--default \
|
|
126
|
+
--pat-stdin \
|
|
127
|
+
--insecure-storage
|
|
472
128
|
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
#### Windows (PowerShell)
|
|
481
|
-
|
|
482
|
-
To persist across sessions, set them as user environment variables:
|
|
483
|
-
|
|
484
|
-
```powershell
|
|
485
|
-
[Environment]::SetEnvironmentVariable("ATOMIZE_PROFILE", "work-ado", "User")
|
|
486
|
-
[Environment]::SetEnvironmentVariable("LOG_LEVEL", "warn", "User")
|
|
129
|
+
- name: Generate tasks
|
|
130
|
+
run: |
|
|
131
|
+
atomize generate template:backend-api \
|
|
132
|
+
--execute \
|
|
133
|
+
--auto-approve \
|
|
134
|
+
--output report.json
|
|
487
135
|
```
|
|
488
136
|
|
|
489
|
-
|
|
137
|
+
## VS Code Extension
|
|
490
138
|
|
|
491
|
-
|
|
492
|
-
$env:ATOMIZE_PROFILE = "work-ado"
|
|
493
|
-
$env:LOG_LEVEL = "warn"
|
|
494
|
-
```
|
|
495
|
-
|
|
496
|
-
#### Windows (Command Prompt)
|
|
497
|
-
|
|
498
|
-
For the current session only:
|
|
499
|
-
|
|
500
|
-
```cmd
|
|
501
|
-
set ATOMIZE_PROFILE=work-ado
|
|
502
|
-
set LOG_LEVEL=warn
|
|
503
|
-
```
|
|
139
|
+
Prefer an editor workflow? Atomize also has a VS Code extension for YAML authoring, validation, mock/live preview, profile management, catalog browsing, and confirmed generation.
|
|
504
140
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
```cmd
|
|
508
|
-
setx ATOMIZE_PROFILE "work-ado"
|
|
509
|
-
```
|
|
510
|
-
|
|
511
|
-
> **Note:** `setx` changes take effect in new terminal windows, not the current one.
|
|
512
|
-
|
|
513
|
-
#### Using `--env-file` for explicit file-based config
|
|
514
|
-
|
|
515
|
-
If you prefer file-based configuration (e.g. in CI/CD), pass `--env-file` explicitly:
|
|
516
|
-
|
|
517
|
-
```bash
|
|
518
|
-
# macOS / Linux
|
|
519
|
-
atomize --env-file ~/.config/atomize.env generate template:backend-api
|
|
520
|
-
|
|
521
|
-
# Windows (PowerShell)
|
|
522
|
-
atomize --env-file $env:USERPROFILE\.config\atomize.env generate template:backend-api
|
|
523
|
-
```
|
|
524
|
-
|
|
525
|
-
Shell environment variables always take precedence over values in the file, so it is safe to use `--env-file` as a fallback without risk of overriding real environment config.
|
|
526
|
-
|
|
527
|
-
See `.env.example` in the repository for a documented template.
|
|
528
|
-
|
|
529
|
-
---
|
|
530
|
-
|
|
531
|
-
## Testing
|
|
532
|
-
|
|
533
|
-
```bash
|
|
534
|
-
# Run all tests
|
|
535
|
-
bun test
|
|
536
|
-
|
|
537
|
-
# Run specific test suite
|
|
538
|
-
bun test tests/unit/atomizer.test.ts
|
|
539
|
-
|
|
540
|
-
# Run with coverage
|
|
541
|
-
bun test --coverage
|
|
542
|
-
|
|
543
|
-
# Watch mode
|
|
544
|
-
bun test --watch
|
|
545
|
-
```
|
|
546
|
-
|
|
547
|
-
### Development Setup
|
|
548
|
-
|
|
549
|
-
```bash
|
|
550
|
-
git clone https://github.com/Simao-Pereira-Gomes/atomize.git
|
|
551
|
-
cd atomize
|
|
552
|
-
bun install
|
|
553
|
-
bun run dev
|
|
554
|
-
bun test
|
|
555
|
-
bun run build
|
|
556
|
-
```
|
|
557
|
-
|
|
558
|
-
---
|
|
559
|
-
|
|
560
|
-
## Troubleshooting
|
|
561
|
-
|
|
562
|
-
### "Not authenticated" error
|
|
563
|
-
|
|
564
|
-
```bash
|
|
565
|
-
# Check what profiles are saved
|
|
566
|
-
atomize auth list
|
|
567
|
-
|
|
568
|
-
# Add a profile if none exist
|
|
569
|
-
atomize auth add work-ado
|
|
570
|
-
|
|
571
|
-
# Test the profile
|
|
572
|
-
atomize auth test work-ado
|
|
573
|
-
|
|
574
|
-
# Use it explicitly
|
|
575
|
-
atomize generate template:backend-api --profile work-ado
|
|
576
|
-
```
|
|
577
|
-
|
|
578
|
-
### "Template validation failed"
|
|
579
|
-
|
|
580
|
-
```bash
|
|
581
|
-
# Get detailed output
|
|
582
|
-
atomize validate templates/my-template.yaml --strict
|
|
583
|
-
|
|
584
|
-
# Common issues:
|
|
585
|
-
# - Total estimation must equal 100%
|
|
586
|
-
# - Task dependencies reference non-existent IDs
|
|
587
|
-
# - Missing required fields
|
|
588
|
-
```
|
|
589
|
-
|
|
590
|
-
---
|
|
141
|
+
See the [VS Code Extension Guide](https://github.com/Simao-Pereira-Gomes/atomize/blob/main/docs/VS-Code-Extension.md).
|
|
591
142
|
|
|
592
143
|
## Documentation
|
|
593
144
|
|
|
594
|
-
- [
|
|
595
|
-
- [
|
|
596
|
-
- [
|
|
597
|
-
- [
|
|
598
|
-
- [
|
|
599
|
-
- [
|
|
600
|
-
- [
|
|
601
|
-
- [Platform Guide](
|
|
602
|
-
- [Template Wizard Guide](./docs/template-wizard-guide.md) - Interactive wizard walkthrough
|
|
603
|
-
|
|
604
|
-
---
|
|
145
|
+
- [Product README](https://github.com/Simao-Pereira-Gomes/atomize#readme) - VS Code-first onboarding and product overview
|
|
146
|
+
- [Documentation Index](https://github.com/Simao-Pereira-Gomes/atomize/blob/main/docs/README.md)
|
|
147
|
+
- [Workflows](https://github.com/Simao-Pereira-Gomes/atomize/blob/main/docs/Workflows.md)
|
|
148
|
+
- [CLI Reference](https://github.com/Simao-Pereira-Gomes/atomize/blob/main/docs/Cli-Reference.md)
|
|
149
|
+
- [Template Creation](https://github.com/Simao-Pereira-Gomes/atomize/blob/main/docs/Template-Creation.md)
|
|
150
|
+
- [Template Reference](https://github.com/Simao-Pereira-Gomes/atomize/blob/main/docs/Template-Reference.md)
|
|
151
|
+
- [Auth Guide](https://github.com/Simao-Pereira-Gomes/atomize/blob/main/docs/Auth-Guide.md)
|
|
152
|
+
- [Platform Guide](https://github.com/Simao-Pereira-Gomes/atomize/blob/main/docs/Platform-Guide.md)
|
|
605
153
|
|
|
606
154
|
## License
|
|
607
155
|
|
|
608
|
-
MIT
|
|
609
|
-
|
|
610
|
-
## Support
|
|
611
|
-
|
|
612
|
-
- [Report a Bug](https://github.com/Simao-Pereira-Gomes/atomize/issues)
|
|
613
|
-
- [Request a Feature](https://github.com/Simao-Pereira-Gomes/atomize/issues)
|
|
614
|
-
- [Discussions](https://github.com/Simao-Pereira-Gomes/atomize/discussions)
|
|
156
|
+
MIT
|