@sppg2001/atomize 1.0.3 โ 1.2.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/.env.example +17 -3
- package/README.md +264 -166
- package/dist/cli/index.js +103470 -113334
- package/dist/cli/keytar-4z5sa3wk.node +0 -0
- package/examples/README.md +215 -0
- package/examples/advanced-filtering.yaml +113 -0
- package/examples/conditional-percentage-template.yaml +139 -0
- package/examples/fullstack.yaml +1 -6
- package/package.json +11 -8
- package/templates/presets/custom.yaml +38 -27
package/.env.example
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
# Atomize environment variables
|
|
2
|
+
#
|
|
3
|
+
# These can be set in your shell profile (~/.zshrc, ~/.bashrc) or passed
|
|
4
|
+
# explicitly via: atomize --env-file /path/to/.env <command>
|
|
5
|
+
#
|
|
6
|
+
# Shell environment always takes precedence over --env-file values.
|
|
7
|
+
|
|
8
|
+
# Personal Access Token used by `atomize auth add` when running non-interactively.
|
|
9
|
+
# Prefer setting this in your CI/CD platform's secrets store rather than a .env file.
|
|
10
|
+
# ATOMIZE_PAT=your-personal-access-token
|
|
11
|
+
|
|
12
|
+
# Default connection profile to use when --profile is not specified.
|
|
13
|
+
# Run `atomize auth list` to see available profiles.
|
|
14
|
+
# ATOMIZE_PROFILE=work-ado
|
|
15
|
+
|
|
16
|
+
# Winston log level: error, warn, info, debug (default: warn).
|
|
17
|
+
# LOG_LEVEL=warn
|
package/README.md
CHANGED
|
@@ -7,27 +7,28 @@
|
|
|
7
7
|
[](https://nodejs.org)
|
|
8
8
|
[](https://www.typescriptlang.org/)
|
|
9
9
|
|
|
10
|
-
|
|
11
10
|
**Break down stories, build up velocity.**
|
|
12
11
|
|
|
13
|
-
Atomize is a CLI tool that automatically generates granular tasks from user stories using
|
|
12
|
+
Atomize is a CLI tool that automatically generates granular tasks from user stories using YAML templates. Streamline your agile workflow with preset templates, story learning, and smart estimation distribution.
|
|
14
13
|
|
|
15
14
|
---
|
|
16
15
|
|
|
17
|
-
##
|
|
16
|
+
## Features
|
|
18
17
|
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
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
|
|
27
28
|
|
|
28
29
|
---
|
|
29
30
|
|
|
30
|
-
##
|
|
31
|
+
## Installation
|
|
31
32
|
|
|
32
33
|
### Global Installation (Recommended)
|
|
33
34
|
|
|
@@ -52,43 +53,59 @@ bun run dev
|
|
|
52
53
|
|
|
53
54
|
---
|
|
54
55
|
|
|
55
|
-
##
|
|
56
|
+
## Quick Start
|
|
57
|
+
|
|
58
|
+
### 1. Connect to Azure DevOps
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Add your first connection profile (interactive wizard)
|
|
62
|
+
atomize auth add work-ado
|
|
63
|
+
|
|
64
|
+
# Verify it works
|
|
65
|
+
atomize auth test work-ado
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
You'll be prompted for your Organization URL, project, team, and a [Personal Access Token](https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate).
|
|
56
69
|
|
|
57
|
-
###
|
|
70
|
+
### 2. Generate Tasks from a Template
|
|
58
71
|
|
|
59
72
|
```bash
|
|
60
|
-
# Use a preset template
|
|
73
|
+
# Use a preset template (dry-run by default โ safe to try)
|
|
61
74
|
atomize generate templates/backend-api.yaml
|
|
62
75
|
|
|
63
|
-
#
|
|
76
|
+
# When ready to create tasks for real
|
|
77
|
+
atomize generate templates/backend-api.yaml --execute
|
|
78
|
+
|
|
79
|
+
# Interactive mode (prompts for everything)
|
|
64
80
|
atomize generate
|
|
65
81
|
```
|
|
66
82
|
|
|
67
|
-
###
|
|
83
|
+
### 3. Create Your First Template
|
|
68
84
|
|
|
69
85
|
```bash
|
|
70
|
-
# AI-powered creation (free!)
|
|
71
|
-
atomize template create --ai "Backend API with authentication"
|
|
72
|
-
|
|
73
86
|
# From a preset
|
|
74
87
|
atomize template create --preset backend-api
|
|
75
88
|
|
|
76
|
-
# Learn from
|
|
77
|
-
atomize template create --from-
|
|
89
|
+
# Learn from multiple stories (better pattern detection)
|
|
90
|
+
atomize template create --from-stories STORY-1,STORY-2,STORY-3
|
|
78
91
|
|
|
79
92
|
# Step-by-step wizard
|
|
80
93
|
atomize template create --scratch
|
|
81
94
|
```
|
|
82
95
|
|
|
83
|
-
###
|
|
96
|
+
### 4. Validate a Template
|
|
84
97
|
|
|
85
98
|
```bash
|
|
99
|
+
# Lenient mode (default) โ only hard errors block use
|
|
86
100
|
atomize validate templates/my-template.yaml
|
|
101
|
+
|
|
102
|
+
# Strict mode โ warnings also become errors
|
|
103
|
+
atomize validate templates/my-template.yaml --strict
|
|
87
104
|
```
|
|
88
105
|
|
|
89
106
|
---
|
|
90
107
|
|
|
91
|
-
##
|
|
108
|
+
## Usage Guide
|
|
92
109
|
|
|
93
110
|
### Generate Command
|
|
94
111
|
|
|
@@ -104,16 +121,29 @@ atomize generate templates/backend-api.yaml \
|
|
|
104
121
|
--execute \
|
|
105
122
|
--verbose
|
|
106
123
|
|
|
107
|
-
# Dry run (
|
|
108
|
-
atomize generate templates/backend-api.yaml
|
|
124
|
+
# Dry run (default โ no --execute needed)
|
|
125
|
+
atomize generate templates/backend-api.yaml
|
|
126
|
+
|
|
127
|
+
# CI/CD mode with JSON report
|
|
128
|
+
atomize generate templates/backend-api.yaml \
|
|
129
|
+
--execute \
|
|
130
|
+
--yes \
|
|
131
|
+
--output report.json
|
|
109
132
|
```
|
|
110
133
|
|
|
111
|
-
**Options:**
|
|
112
|
-
- `--platform <type>` - Platform
|
|
113
|
-
- `--
|
|
114
|
-
- `--
|
|
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
|
+
- `-y, --yes` - Required with `--execute` in non-interactive mode to acknowledge live task creation
|
|
115
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)
|
|
116
143
|
- `--verbose` - Show detailed output
|
|
144
|
+
- `-o, --output <file>` - Write JSON report to file
|
|
145
|
+
|
|
146
|
+
In non-interactive mode, `--execute` now requires `--yes`. This prevents unattended task creation from wrapper scripts or CI jobs that did not explicitly acknowledge the mutation.
|
|
117
147
|
|
|
118
148
|
**Example Output:**
|
|
119
149
|
```
|
|
@@ -133,14 +163,13 @@ Summary:
|
|
|
133
163
|
#### Create a Template
|
|
134
164
|
|
|
135
165
|
```bash
|
|
136
|
-
# AI-powered (best for quick starts)
|
|
137
|
-
atomize template create --ai "Create template for React component development"
|
|
138
|
-
|
|
139
166
|
# From preset (fastest)
|
|
140
167
|
atomize template create --preset frontend-feature
|
|
141
168
|
|
|
142
|
-
# Learn from
|
|
143
|
-
atomize template create
|
|
169
|
+
# Learn from multiple stories (best pattern detection)
|
|
170
|
+
atomize template create \
|
|
171
|
+
--from-stories STORY-1,STORY-2,STORY-3 \
|
|
172
|
+
--output my-templates/learned.yaml
|
|
144
173
|
|
|
145
174
|
# Interactive wizard (most control)
|
|
146
175
|
atomize template create --scratch
|
|
@@ -149,7 +178,7 @@ atomize template create --scratch
|
|
|
149
178
|
#### List Available Presets
|
|
150
179
|
|
|
151
180
|
```bash
|
|
152
|
-
atomize template
|
|
181
|
+
atomize template presets
|
|
153
182
|
```
|
|
154
183
|
|
|
155
184
|
**Available Presets:**
|
|
@@ -163,13 +192,13 @@ atomize template list
|
|
|
163
192
|
```bash
|
|
164
193
|
atomize validate templates/my-template.yaml
|
|
165
194
|
|
|
166
|
-
#
|
|
167
|
-
atomize validate templates/my-template.yaml --verbose
|
|
195
|
+
# Strict mode โ warnings become errors (recommended for team/production templates)
|
|
196
|
+
atomize validate templates/my-template.yaml --strict --verbose
|
|
168
197
|
```
|
|
169
198
|
|
|
170
199
|
---
|
|
171
200
|
|
|
172
|
-
##
|
|
201
|
+
## Template Structure
|
|
173
202
|
|
|
174
203
|
Templates are YAML files that define how to break down user stories into tasks.
|
|
175
204
|
|
|
@@ -200,19 +229,16 @@ tasks:
|
|
|
200
229
|
description: "Implement business logic and validation"
|
|
201
230
|
estimationPercent: 40
|
|
202
231
|
activity: "Development"
|
|
203
|
-
tags: ["implementation"]
|
|
204
232
|
|
|
205
233
|
- title: "Write Tests"
|
|
206
234
|
description: "Unit and integration tests"
|
|
207
235
|
estimationPercent: 30
|
|
208
236
|
activity: "Testing"
|
|
209
|
-
tags: ["testing"]
|
|
210
237
|
|
|
211
238
|
- title: "Code Review & Documentation"
|
|
212
239
|
description: "Review and document the implementation"
|
|
213
240
|
estimationPercent: 15
|
|
214
241
|
activity: "Documentation"
|
|
215
|
-
tags: ["review", "docs"]
|
|
216
242
|
|
|
217
243
|
# Estimation settings
|
|
218
244
|
estimation:
|
|
@@ -229,12 +255,16 @@ validation:
|
|
|
229
255
|
### Template Features
|
|
230
256
|
|
|
231
257
|
#### Variable Interpolation
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
-
|
|
235
|
-
-
|
|
258
|
+
|
|
259
|
+
```yaml
|
|
260
|
+
- title: "Design: ${story.title}"
|
|
261
|
+
- description: "Story ${story.id}: ${story.description}"
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Available variables: `${story.title}`, `${story.id}`, `${story.description}`, `${story.estimation}`, `${story.tags}`
|
|
236
265
|
|
|
237
266
|
#### Task Assignment
|
|
267
|
+
|
|
238
268
|
```yaml
|
|
239
269
|
assignTo: "@ParentAssignee" # Inherit from story
|
|
240
270
|
assignTo: "@Me" # Current user
|
|
@@ -242,13 +272,29 @@ assignTo: "user@email.com" # Specific user
|
|
|
242
272
|
```
|
|
243
273
|
|
|
244
274
|
#### Conditional Tasks
|
|
275
|
+
|
|
245
276
|
```yaml
|
|
246
277
|
- title: "Security Review"
|
|
247
278
|
estimationPercent: 10
|
|
248
279
|
condition: '${story.tags} CONTAINS "security"'
|
|
249
280
|
```
|
|
250
281
|
|
|
282
|
+
#### Conditional Estimation (v1.1)
|
|
283
|
+
|
|
284
|
+
Adapt task percentage based on story properties. First matching rule wins; `estimationPercent` is the fallback.
|
|
285
|
+
|
|
286
|
+
```yaml
|
|
287
|
+
- title: "Implementation"
|
|
288
|
+
estimationPercent: 50 # Default
|
|
289
|
+
estimationPercentCondition:
|
|
290
|
+
- condition: '${story.tags} CONTAINS "critical"'
|
|
291
|
+
percent: 60 # More weight for critical stories
|
|
292
|
+
- condition: "${story.estimation} >= 13"
|
|
293
|
+
percent: 55 # More work for large stories
|
|
294
|
+
```
|
|
295
|
+
|
|
251
296
|
#### Task Dependencies
|
|
297
|
+
|
|
252
298
|
```yaml
|
|
253
299
|
tasks:
|
|
254
300
|
- id: "design"
|
|
@@ -258,82 +304,78 @@ tasks:
|
|
|
258
304
|
- id: "implement"
|
|
259
305
|
title: "Implementation"
|
|
260
306
|
estimationPercent: 60
|
|
261
|
-
dependsOn: ["design"]
|
|
307
|
+
dependsOn: ["design"] # Must complete design first
|
|
262
308
|
```
|
|
263
309
|
|
|
264
310
|
---
|
|
265
311
|
|
|
266
|
-
##
|
|
312
|
+
## Platform Setup
|
|
267
313
|
|
|
268
|
-
|
|
314
|
+
### Azure DevOps
|
|
269
315
|
|
|
270
|
-
|
|
316
|
+
1. **Get a Personal Access Token (PAT)**
|
|
317
|
+
- Go to: `https://dev.azure.com/[your-org]/_usersSettings/tokens`
|
|
318
|
+
- Create token with `Work Items (Read, Write)` scope
|
|
271
319
|
|
|
272
|
-
|
|
273
|
-
2. Set environment variable:
|
|
320
|
+
2. **Save a connection profile**
|
|
274
321
|
```bash
|
|
275
|
-
|
|
322
|
+
atomize auth add work-ado
|
|
323
|
+
# Prompts for org URL, project, team, and PAT
|
|
276
324
|
```
|
|
277
|
-
3. Create templates:
|
|
278
|
-
```bash
|
|
279
|
-
atomize template create --ai "Backend API with OAuth authentication"
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
### Ollama (Local - Complete Privacy)
|
|
283
325
|
|
|
284
|
-
|
|
285
|
-
2. Download a model:
|
|
326
|
+
3. **Test the connection**
|
|
286
327
|
```bash
|
|
287
|
-
|
|
328
|
+
atomize auth test work-ado
|
|
288
329
|
```
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
ollama serve
|
|
292
|
-
```
|
|
293
|
-
4. Create templates:
|
|
330
|
+
|
|
331
|
+
4. **Generate tasks**
|
|
294
332
|
```bash
|
|
295
|
-
|
|
333
|
+
# Use the profile explicitly
|
|
334
|
+
atomize generate templates/backend-api.yaml --profile work-ado
|
|
335
|
+
|
|
336
|
+
# Or set it as default once
|
|
337
|
+
atomize auth use work-ado
|
|
338
|
+
atomize generate templates/backend-api.yaml
|
|
296
339
|
```
|
|
297
340
|
|
|
298
|
-
|
|
341
|
+
See `atomize auth --help` for all profile management commands (`list`, `remove`, `rotate`).
|
|
299
342
|
|
|
300
|
-
|
|
301
|
-
- Mention your tech stack: "React component with TypeScript and Tailwind CSS"
|
|
302
|
-
- Specify testing requirements: "Include unit tests and E2E tests"
|
|
303
|
-
- Refine iteratively: Use the refine option to adjust the generated template
|
|
343
|
+
### Mock Platform (Testing)
|
|
304
344
|
|
|
305
|
-
|
|
345
|
+
```bash
|
|
346
|
+
atomize generate templates/backend-api.yaml --platform mock
|
|
347
|
+
```
|
|
306
348
|
|
|
307
|
-
|
|
349
|
+
No configuration required. Includes 7 built-in sample stories.
|
|
308
350
|
|
|
309
|
-
|
|
351
|
+
---
|
|
310
352
|
|
|
311
|
-
|
|
312
|
-
- Go to: `https://dev.azure.com/[your-org]/_usersSettings/tokens`
|
|
313
|
-
- Create token with `Work Items (Read, Write)` scope
|
|
353
|
+
## Strict vs Lenient Validation
|
|
314
354
|
|
|
315
|
-
|
|
316
|
-
```bash
|
|
317
|
-
export AZURE_DEVOPS_ORG_URL="https://dev.azure.com/your-org"
|
|
318
|
-
export AZURE_DEVOPS_PROJECT="YourProject"
|
|
319
|
-
export AZURE_DEVOPS_PAT="your-personal-access-token"
|
|
320
|
-
```
|
|
355
|
+
Atomize has two validation modes:
|
|
321
356
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
### Mock Platform (Testing)
|
|
357
|
+
| Mode | Warnings | Best For |
|
|
358
|
+
|------|----------|----------|
|
|
359
|
+
| **Lenient** (default) | Non-blocking | Development, personal templates |
|
|
360
|
+
| **Strict** | Treated as errors | Team templates, CI/CD pipelines |
|
|
329
361
|
|
|
330
362
|
```bash
|
|
331
|
-
|
|
363
|
+
# Default (lenient) โ only hard errors block use
|
|
364
|
+
atomize validate my-template.yaml
|
|
365
|
+
|
|
366
|
+
# Strict โ warnings also fail validation
|
|
367
|
+
atomize validate my-template.yaml --strict
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
You can also set the mode in the template itself:
|
|
371
|
+
```yaml
|
|
372
|
+
validation:
|
|
373
|
+
mode: "strict"
|
|
332
374
|
```
|
|
333
375
|
|
|
334
376
|
---
|
|
335
377
|
|
|
336
|
-
##
|
|
378
|
+
## Real-World Examples
|
|
337
379
|
|
|
338
380
|
### Example 1: Backend API Feature
|
|
339
381
|
|
|
@@ -349,53 +391,133 @@ atomize generate templates/backend-api.yaml --platform mock
|
|
|
349
391
|
|
|
350
392
|
**Total:** 10 story points perfectly distributed
|
|
351
393
|
|
|
352
|
-
|
|
394
|
+
### Example 2: Multi-Story Learning
|
|
353
395
|
|
|
354
|
-
|
|
396
|
+
```bash
|
|
397
|
+
# Learn from your team's best stories
|
|
398
|
+
atomize template create \
|
|
399
|
+
--from-stories STORY-100,STORY-115,STORY-132,STORY-148 \
|
|
400
|
+
--platform azure-devops \
|
|
401
|
+
--output team-templates/backend-standard.yaml
|
|
402
|
+
|
|
403
|
+
# Validate the learned template
|
|
404
|
+
atomize validate team-templates/backend-standard.yaml --strict
|
|
405
|
+
|
|
406
|
+
# Apply it
|
|
407
|
+
atomize generate team-templates/backend-standard.yaml --execute
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
## Advanced Usage
|
|
355
413
|
|
|
356
|
-
|
|
414
|
+
### Custom Filters
|
|
357
415
|
|
|
358
416
|
```yaml
|
|
359
417
|
filter:
|
|
418
|
+
team: "Backend Team" # Override team (replaces AZURE_DEVOPS_TEAM env var)
|
|
360
419
|
workItemTypes: ["User Story", "Bug"]
|
|
361
420
|
states: ["New", "Approved"]
|
|
421
|
+
statesExclude: ["Done", "Removed"] # Exclude items in these states
|
|
422
|
+
statesWereEver: ["In Review"] # Items that were ever in these states
|
|
362
423
|
tags:
|
|
363
424
|
include: ["backend"]
|
|
364
425
|
exclude: ["deprecated"]
|
|
365
|
-
areaPaths: ["MyProject\\Backend\\API"]
|
|
366
|
-
|
|
367
|
-
|
|
426
|
+
areaPaths: ["MyProject\\Backend\\API"] # Exact match
|
|
427
|
+
areaPathsUnder: ["MyProject\\Backend"] # Match and all sub-areas
|
|
428
|
+
iterations: ["@CurrentIteration"] # Current sprint
|
|
429
|
+
iterationsUnder: ["MyProject\\Release 2"] # All sprints under a release
|
|
430
|
+
assignedTo: ["@Me", "jane@company.com"]
|
|
431
|
+
changedAfter: "@Today-7" # Changed in the last 7 days
|
|
432
|
+
createdAfter: "@Today-30" # Created in the last 30 days
|
|
368
433
|
priority:
|
|
369
434
|
min: 1
|
|
370
435
|
max: 2
|
|
371
436
|
excludeIfHasTasks: true
|
|
437
|
+
customFields:
|
|
438
|
+
- field: "Custom.Team"
|
|
439
|
+
operator: "equals"
|
|
440
|
+
value: "Platform Engineering"
|
|
372
441
|
```
|
|
373
442
|
|
|
374
|
-
### Estimation
|
|
443
|
+
### Estimation Settings
|
|
375
444
|
|
|
376
445
|
```yaml
|
|
377
446
|
estimation:
|
|
378
|
-
strategy: "percentage"
|
|
379
|
-
rounding: "nearest"
|
|
380
|
-
minimumTaskPoints: 0.5
|
|
447
|
+
strategy: "percentage" # Distribute story points by percentage
|
|
448
|
+
rounding: "nearest" # nearest, up, down, none
|
|
449
|
+
minimumTaskPoints: 0.5 # Minimum points per task
|
|
450
|
+
ifParentHasNoEstimation: "skip" # skip, warn, use-default
|
|
381
451
|
```
|
|
382
452
|
|
|
383
|
-
###
|
|
453
|
+
### Environment Variables
|
|
454
|
+
|
|
455
|
+
| Variable | Description | Default |
|
|
456
|
+
|---|---|---|
|
|
457
|
+
| `ATOMIZE_PROFILE` | Default connection profile when `--profile` is not specified | _(none)_ |
|
|
458
|
+
| `LOG_LEVEL` | Log verbosity: `error`, `warn`, `info`, `debug` | `warn` |
|
|
459
|
+
|
|
460
|
+
#### macOS / Linux
|
|
461
|
+
|
|
462
|
+
Add to your shell profile (`~/.zshrc`, `~/.bashrc`, etc.) and restart your terminal:
|
|
384
463
|
|
|
385
464
|
```bash
|
|
386
|
-
#
|
|
387
|
-
|
|
465
|
+
export ATOMIZE_PROFILE=work-ado # Default connection profile
|
|
466
|
+
export LOG_LEVEL=warn # Log verbosity (optional)
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
#### Windows (PowerShell)
|
|
470
|
+
|
|
471
|
+
To persist across sessions, set them as user environment variables:
|
|
472
|
+
|
|
473
|
+
```powershell
|
|
474
|
+
[Environment]::SetEnvironmentVariable("ATOMIZE_PROFILE", "work-ado", "User")
|
|
475
|
+
[Environment]::SetEnvironmentVariable("LOG_LEVEL", "warn", "User")
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
Or for the current session only:
|
|
479
|
+
|
|
480
|
+
```powershell
|
|
481
|
+
$env:ATOMIZE_PROFILE = "work-ado"
|
|
482
|
+
$env:LOG_LEVEL = "warn"
|
|
483
|
+
```
|
|
388
484
|
|
|
389
|
-
|
|
390
|
-
atomize template create --from-story STORY-123 --normalize
|
|
485
|
+
#### Windows (Command Prompt)
|
|
391
486
|
|
|
392
|
-
|
|
393
|
-
|
|
487
|
+
For the current session only:
|
|
488
|
+
|
|
489
|
+
```cmd
|
|
490
|
+
set ATOMIZE_PROFILE=work-ado
|
|
491
|
+
set LOG_LEVEL=warn
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
To persist, use **System Properties โ Environment Variables** or `setx`:
|
|
495
|
+
|
|
496
|
+
```cmd
|
|
497
|
+
setx ATOMIZE_PROFILE "work-ado"
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
> **Note:** `setx` changes take effect in new terminal windows, not the current one.
|
|
501
|
+
|
|
502
|
+
#### Using `--env-file` for explicit file-based config
|
|
503
|
+
|
|
504
|
+
If you prefer file-based configuration (e.g. in CI/CD), pass `--env-file` explicitly:
|
|
505
|
+
|
|
506
|
+
```bash
|
|
507
|
+
# macOS / Linux
|
|
508
|
+
atomize --env-file ~/.config/atomize.env generate templates/backend-api.yaml
|
|
509
|
+
|
|
510
|
+
# Windows (PowerShell)
|
|
511
|
+
atomize --env-file $env:USERPROFILE\.config\atomize.env generate templates/backend-api.yaml
|
|
394
512
|
```
|
|
395
513
|
|
|
514
|
+
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.
|
|
515
|
+
|
|
516
|
+
See `.env.example` in the repository for a documented template.
|
|
517
|
+
|
|
396
518
|
---
|
|
397
519
|
|
|
398
|
-
##
|
|
520
|
+
## Testing
|
|
399
521
|
|
|
400
522
|
```bash
|
|
401
523
|
# Run all tests
|
|
@@ -414,65 +536,38 @@ bun test --watch
|
|
|
414
536
|
### Development Setup
|
|
415
537
|
|
|
416
538
|
```bash
|
|
417
|
-
# Clone the repository
|
|
418
539
|
git clone https://github.com/Simao-Pereira-Gomes/atomize.git
|
|
419
540
|
cd atomize
|
|
420
|
-
|
|
421
|
-
# Install dependencies
|
|
422
541
|
bun install
|
|
423
|
-
|
|
424
|
-
# Run in development mode
|
|
425
542
|
bun run dev
|
|
426
|
-
|
|
427
|
-
# Run tests
|
|
428
543
|
bun test
|
|
429
|
-
|
|
430
|
-
# Build
|
|
431
544
|
bun run build
|
|
432
545
|
```
|
|
433
546
|
|
|
434
547
|
---
|
|
435
548
|
|
|
436
|
-
##
|
|
437
|
-
|
|
438
|
-
### v0.1.0 - Initial Release โ
|
|
439
|
-
- [x] Core task generation engine
|
|
440
|
-
- [x] Azure DevOps integration
|
|
441
|
-
- [x] AI-powered template creation
|
|
442
|
-
- [x] Preset templates
|
|
443
|
-
- [x] Story learning
|
|
444
|
-
- [x] Interactive wizards
|
|
549
|
+
## Troubleshooting
|
|
445
550
|
|
|
446
|
-
###
|
|
447
|
-
- [ ] GitHub Issues integration
|
|
448
|
-
- [ ] Jira integration
|
|
449
|
-
- [ ] VS Code extension
|
|
450
|
-
|
|
451
|
-
### v0.3.0 - Advanced Capabilities
|
|
452
|
-
- [ ] Multi-story batch processing
|
|
453
|
-
- [ ] Custom estimation formulas
|
|
454
|
-
- [ ] Template inheritance
|
|
455
|
-
- [ ] Workflow automation
|
|
456
|
-
- [ ] Analytics dashboard
|
|
457
|
-
|
|
458
|
-
---
|
|
551
|
+
### "Not authenticated" error
|
|
459
552
|
|
|
460
|
-
|
|
553
|
+
```bash
|
|
554
|
+
# Check what profiles are saved
|
|
555
|
+
atomize auth list
|
|
461
556
|
|
|
462
|
-
|
|
557
|
+
# Add a profile if none exist
|
|
558
|
+
atomize auth add work-ado
|
|
463
559
|
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
# Make sure environment variables are set
|
|
467
|
-
echo $AZURE_DEVOPS_PAT
|
|
560
|
+
# Test the profile
|
|
561
|
+
atomize auth test work-ado
|
|
468
562
|
|
|
469
|
-
#
|
|
470
|
-
atomize generate --
|
|
563
|
+
# Use it explicitly
|
|
564
|
+
atomize generate templates/backend-api.yaml --profile work-ado
|
|
471
565
|
```
|
|
472
566
|
|
|
473
|
-
|
|
567
|
+
### "Template validation failed"
|
|
568
|
+
|
|
474
569
|
```bash
|
|
475
|
-
#
|
|
570
|
+
# Get detailed output
|
|
476
571
|
atomize validate templates/my-template.yaml --verbose
|
|
477
572
|
|
|
478
573
|
# Common issues:
|
|
@@ -481,24 +576,27 @@ atomize validate templates/my-template.yaml --verbose
|
|
|
481
576
|
# - Missing required fields
|
|
482
577
|
```
|
|
483
578
|
|
|
484
|
-
|
|
485
|
-
```bash
|
|
486
|
-
# For Gemini
|
|
487
|
-
export GOOGLE_AI_API_KEY="your-key"
|
|
579
|
+
---
|
|
488
580
|
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
581
|
+
## Documentation
|
|
582
|
+
|
|
583
|
+
- [Getting Started](./docs/Getting-Started.md) - First steps and core concepts
|
|
584
|
+
- [CLI Reference](./docs/Cli-Reference.md) - Complete command and flag reference
|
|
585
|
+
- [Template Reference](./docs/Template-Reference.md) - Full template schema
|
|
586
|
+
- [Validation Modes](./docs/Validation-Modes.md) - Strict vs lenient explained
|
|
587
|
+
- [Story Learner](./docs/Story-Learner.md) - Generate templates from existing stories
|
|
588
|
+
- [Common Validation Errors](./docs/Common-Validation-Errors.md) - Fix validation failures
|
|
589
|
+
- [Platform Guide](./docs/Platform-Guide.md) - Azure DevOps setup
|
|
590
|
+
- [Template Wizard Guide](./docs/template-wizard-guide.md) - Interactive wizard walkthrough
|
|
493
591
|
|
|
494
592
|
---
|
|
495
593
|
|
|
496
|
-
##
|
|
594
|
+
## License
|
|
497
595
|
|
|
498
596
|
MIT License - see [LICENSE](LICENSE) file for details
|
|
499
597
|
|
|
500
|
-
##
|
|
598
|
+
## Support
|
|
501
599
|
|
|
502
|
-
-
|
|
503
|
-
-
|
|
504
|
-
-
|
|
600
|
+
- [Report a Bug](https://github.com/Simao-Pereira-Gomes/atomize/issues)
|
|
601
|
+
- [Request a Feature](https://github.com/Simao-Pereira-Gomes/atomize/issues)
|
|
602
|
+
- [Discussions](https://github.com/Simao-Pereira-Gomes/atomize/discussions)
|