@jxtools/atlas 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/CHANGELOG.md ADDED
@@ -0,0 +1,527 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [3.0.0] - 2026-02-13
9
+
10
+ ### Changed
11
+ - **NPM distribution**: Atlas is now published as `@jxtools/atlas` on NPM. Install with `npm install -g @jxtools/atlas`
12
+ - **Dynamic ATLAS_HOME**: Script resolves its own location via symlink traversal instead of hardcoded `~/.atlas`
13
+ - **`atlas update` command**: Now shows NPM update instructions instead of downloading from GitHub
14
+ - **GitHub Action**: Now publishes to NPM registry on new versions (requires `NPM_TOKEN` secret)
15
+ - **Error messages**: Updated references from `atlas update` to `npm update -g @jxtools/atlas`
16
+
17
+ ### Removed
18
+ - **`install.sh`**: Replaced by `npm install -g @jxtools/atlas`
19
+ - **curl-based update**: No longer downloads files from GitHub raw URLs
20
+ - **`~/.atlas` directory**: Package files now live inside npm's global `node_modules`
21
+
22
+ ### Added
23
+ - **`package.json`**: NPM package configuration with `@jxtools/atlas` scope
24
+ - **`scripts/postinstall.js`**: Automatically installs Atlas skills to detected AI providers on `npm install`
25
+
26
+ ## [2.6.0] - 2026-02-12
27
+
28
+ ### Changed
29
+ - **`atlas init` output simplified**: Now shows only `✓ Initialized .atlas/ in <path>` instead of listing every created file and installed skill
30
+
31
+ ## [2.5.0] - 2026-02-10
32
+
33
+ ### Added
34
+ - **`atlas status` command**: Shows task counts (TODO/IN_PROGRESS/DONE), active session info, and current git branch
35
+ - **`atlas doctor` command**: Diagnostic check for AI CLI, prompt files, envsubst, git, and gh CLI availability
36
+ - **Warning for `atlas plan` with non-interactive providers**: Shows confirmation prompt when using opencode or codex (which lack interactive interview support)
37
+
38
+ ### Fixed
39
+ - **JSON parsing for integers**: New `json_get()` helper handles both string and integer JSON values (fixes `pr_number` extraction)
40
+ - **`atlas resume` now respects iteration count**: `atlas resume 5` correctly limits to 5 iterations instead of ignoring the argument
41
+ - **Removed broken symlink**: Cleaned up `atlas` symlink pointing to non-existent Ubuntu path
42
+ - **`prompt.md` validation**: Fails early with clear message if prompt.md is missing instead of cryptic envsubst error
43
+ - **`jq` removed from skills**: `atlas-integration-flow` skill now uses grep/sed instead of requiring jq
44
+ - **Telegram pending count**: Fixed `head -1` → `tail -1` to read bash-verified count instead of first line
45
+
46
+ ### Changed
47
+ - **Simplified Step 0 in prompt.md**: Removed duplicated logic already handled by atlas.sh (~10 lines saved)
48
+ - **DRY skills installation**: New `install_skills()` function auto-detects available providers (~39 lines saved)
49
+ - **Centralized provider invocation**: New `run_provider()` function for plan/review commands (~20 lines saved)
50
+ - **Robust stale task reset**: Block-based awk state machine handles `IN_PROGRESS` and `IN PROGRESS` variants
51
+ - **Housekeeping**: Fixed CLI comment, cleaned .gitignore, removed dead sed, added CLAUDE.md/AGENTS.md sync note
52
+
53
+ ## [2.4.1] - 2026-02-04
54
+
55
+ ### Fixed
56
+ - **Codex review output is now fully non-interactive in Atlas Review**:
57
+ - `atlas review --cli codex` no longer streams Codex session chatter to console
58
+ - Codex output is captured in `.atlas/runs/review-*.log`
59
+ - Console now shows a clean status message and log location
60
+
61
+ ### Documentation
62
+ - Clarified README command syntax for provider flag usage (`command or iterations`)
63
+ - Clarified that `.atlas/specs/` is created by `atlas plan` (not by `atlas init`)
64
+
65
+ ## [2.4.0] - 2026-02-04
66
+
67
+ ### Added
68
+ - New `atlas clean` command:
69
+ - `atlas clean`: Removes runtime logs (`.atlas/runs/*.log`) and temp files (`.atlas/*.tmp`)
70
+ - `atlas clean --all`: Also resets `.atlas/activity.log`, `.atlas/errors.log`, and stale integration session metadata
71
+
72
+ ### Fixed
73
+ - **Global flag parsing is now position-independent**:
74
+ - `--cli` now works before or after command tokens (e.g. `atlas review --cli opencode`)
75
+ - Commands now reject invalid mixed arguments consistently (`plan`, `resume`, `review`, `run`)
76
+ - **`atlas review --dry-run` now works**:
77
+ - Enables report-only review mode with strict no-mutation instructions in the review prompt
78
+ - Works consistently with any provider and argument order
79
+ - **Installer/update consistency fixes**:
80
+ - `install.sh` now downloads `review_prompt.md` (required by `atlas review`)
81
+ - Critical file checks now include `review_prompt.md` (install + update)
82
+ - Skills are now downloaded once and copied to all available CLIs (Claude/OpenCode/Codex) even if Claude is not installed
83
+ - Fixed default branch detection in resume mode when `ATLAS_DEFAULT_BRANCH` is set
84
+
85
+ ## [2.3.0] - 2026-02-04
86
+
87
+ ### Changed
88
+ - **BREAKING: `atlas review` now uses AI** for intelligent auditing and repair
89
+ - Replaces bash-only checks with AI-powered analysis
90
+ - Loads full context (backlog, guardrails, progress, CLAUDE.md, git state)
91
+ - Enforces ALL Atlas directives (from prompt.md, guardrails.md, CLAUDE.md)
92
+ - Fixes inconsistencies automatically where possible
93
+ - Reports what cannot be auto-fixed with clear reasoning
94
+ - Respects `ATLAS_CLI` setting (codex/claude/opencode)
95
+ - New `review_prompt.md` with comprehensive audit checklist
96
+
97
+ ### Fixed
98
+ - Review now properly audits directive compliance (quality gates, state transitions, etc.)
99
+ - Review can intelligently assess if tasks are truly complete
100
+ - Review understands context and makes smart decisions (not just mechanical checks)
101
+
102
+ ## [2.2.1] - 2026-02-04
103
+
104
+ ### Fixed
105
+ - **Codex flag syntax**: Changed from incorrect `--full-auto` to `--yolo` (official bypass flag)
106
+ - Codex now runs with full permission bypass in both plan and execution modes
107
+
108
+ ## [2.2.0] - 2026-02-04
109
+
110
+ ### Added
111
+ - **Codex (OpenAI) support**: New AI provider option
112
+ - Use `--cli codex` or `ATLAS_CLI=codex`
113
+ - Works in all commands: plan, execution, resume
114
+ - Runs with `codex exec --full-auto` for non-interactive mode
115
+ - Skills installed to `~/.codex/skills/` when codex CLI available
116
+
117
+ ## [2.1.1] - 2026-02-04
118
+
119
+ ### Changed
120
+ - **Removed jq dependency**: `atlas resume` now uses bash-native `awk` for JSON parsing
121
+ - No external dependencies required beyond core Unix tools (awk is POSIX standard)
122
+ - Integration session cleanup also uses awk instead of jq
123
+
124
+ ## [2.1.0] - 2026-02-04
125
+
126
+ ### Added
127
+ - **`atlas resume` command**: Resume interrupted integration sessions
128
+ - Detects active session from `.atlas/integration-session.json`
129
+ - Verifies PR not merged/closed before resuming
130
+ - Switches to integration branch and continues iteration loop
131
+ - Clear error messages for each failure scenario
132
+
133
+ ## [2.0.2] - 2026-02-03
134
+
135
+ ### Fixed
136
+ - **CRITICAL: Backlog update enforcement** - Tasks were being completed (PRs merged) but not moved to DONE in backlog.md, causing state drift
137
+ - Step 7 (Finalize) now marked as CRITICAL with explicit verification requirement
138
+ - Added "CRITICAL: Update Backlog After Merge" section to `atlas-integration-flow` skill
139
+ - Added verification rules to `atlas-state` skill: must confirm task in DONE before starting next task
140
+ - Root cause: Model was merging PRs but skipping the backlog update step, leaving completed tasks in TODO
141
+
142
+ ## [2.0.1] - 2026-02-02
143
+
144
+ ### Fixed
145
+ - **OpenCode invocation syntax** - Fixed "You must provide a message or a command" error by passing prompt content as argument instead of using `--file` flag
146
+
147
+ ## [2.0.0] - 2026-02-02
148
+
149
+ ### Added
150
+ - **Multi-provider AI support** - Atlas now supports both Claude Code and OpenCode
151
+ - **`--cli <provider>` flag** - Switch AI provider per command (claudecode | opencode)
152
+ - **`ATLAS_CLI` environment variable** - Set default provider for all sessions
153
+ - **Skills installation to OpenCode** - Atlas skills now installed to both `~/.claude/skills/` and `~/.config/opencode/skills/` (via `atlas init`, `atlas update`, and `install.sh`)
154
+ - **Provider validation** - Clear error messages if selected CLI is not installed, with installation instructions
155
+ - **Version flag** - `atlas --version` now displays current version (2.0.0)
156
+ - **Provider display** - Header now shows which AI provider is being used
157
+
158
+ ### Changed
159
+ - Default provider remains Claude Code for backward compatibility
160
+ - `atlas plan` works with both providers (Claude Code recommended for best interactive experience)
161
+ - Improved error handling for missing AI CLIs
162
+ - Enhanced help documentation with examples for both providers
163
+
164
+ ## [1.17.1] - 2026-02-02
165
+
166
+ ### Fixed
167
+ - **macOS compatibility** - Fixed `timeout: command not found` error on macOS by using cross-platform timeout detection
168
+
169
+ ## [1.17.0] - 2026-02-02
170
+
171
+ ### Added
172
+ - **`atlas plan` now accepts args without quotes** - Both `atlas plan foo bar` and `atlas plan "foo bar"` work
173
+
174
+ ### Fixed
175
+ - **plan_prompt.md deletion on case-insensitive filesystems** - macOS users can now run `atlas update` without breaking `atlas plan`
176
+ - Download validation in `atlas update` and `install.sh` - clearer error messages when downloads fail
177
+
178
+ ### Changed
179
+ - Removed unnecessary comments from `atlas.sh` and `install.sh` for cleaner code
180
+
181
+ ## [1.16.3] - 2026-01-23
182
+
183
+ ### Fixed
184
+ - **Integration PR now Ready for Review** instead of Draft - allows immediate review when ready
185
+ - **Task movement rules enforced**: Only ONE task can be in IN_PROGRESS at a time
186
+ - Tasks must stay in TODO until work begins, then move to IN_PROGRESS one at a time
187
+ - Corrected atlas-guardrails skill: errors move to TODO (retry), not DELAYED
188
+
189
+ ### Changed
190
+ - All Atlas skills updated to v1.1.0 with clearer invocation guidance
191
+ - Skills now explicitly document they should be invoked by Atlas specialized agents
192
+
193
+ ## [1.16.2] - 2026-01-21
194
+
195
+ ### Added
196
+ - `atlas init` now creates `.atlas/.gitignore` to exclude session logs from git tracking
197
+ - Logs (`activity.log`, `errors.log`, `runs/`) stay local for debugging, won't appear as uncommitted changes
198
+
199
+ ## [1.16.1] - 2026-01-21
200
+
201
+ ### Fixed
202
+ - Git checkout now shows actual error message instead of generic "Failed to checkout"
203
+ - Handle uncommitted changes gracefully with clear message and status output
204
+ - Handle repos without local default branch (creates from remote if available)
205
+ - Handle new repos with no commits yet (skips branch check entirely)
206
+
207
+ ## [1.16.0] - 2026-01-21
208
+
209
+ ### Added
210
+ - New skill `write-backlog-tasks` for structured task creation in backlog
211
+ - Interview-driven process: gathers requirements, explores codebase, defines scope
212
+ - Includes task template, priority guidelines, and anti-patterns to avoid
213
+
214
+ ## [1.15.8] - 2026-01-20
215
+
216
+ ### Fixed
217
+ - Error handling: failed tasks now return to TODO (retry), not DELAYED
218
+ - DELAYED section is only for tasks explicitly postponed by decision
219
+
220
+ ## [1.15.7] - 2026-01-20
221
+
222
+ ### Added
223
+ - Document `ATLAS_DEFAULT_BRANCH` env var in README and CLAUDE.md
224
+
225
+ ## [1.15.6] - 2026-01-20
226
+
227
+ ### Fixed
228
+ - **install.sh**: Now installs to `~/.atlas` (was `~/.local/bin`) - fixes "templates not found" on fresh install
229
+ - **atlas.sh**: Auto-detect default branch (main/master) instead of hardcoding `main` - supports repos with `master` or custom default
230
+ - **atlas.sh**: Check for `jq` before using it to avoid crash when not installed
231
+ - **atlas.sh**: Proper whitespace trim for spec paths (was removing all spaces, breaking paths with spaces)
232
+ - **notify-telegram.sh**: Guard against division by zero in progress bar
233
+
234
+ ### Added
235
+ - New env var `ATLAS_DEFAULT_BRANCH` to override auto-detection
236
+
237
+ ## [1.15.5] - 2026-01-20
238
+
239
+ ### Fixed
240
+ - **CRITICAL**: prompt.md had `.claude/integration-session.json` paths instead of `.atlas/` (agent would look in wrong location)
241
+ - Removed dead code: `CLAUDE_PID` was never assigned but cleanup tried to use it
242
+ - Cleanup now returns to main branch on Ctrl+C interrupt
243
+ - Simplified AWK command for better portability across awk implementations
244
+ - Made `notify-telegram.sh` executable in repo (was missing +x)
245
+
246
+ ### Changed
247
+ - Unified `progress.txt` template format to match prompt.md documentation
248
+ - Updated README to reflect integration branch workflow (PRs go to integration, not main)
249
+
250
+ ## [1.15.4] - 2026-01-20
251
+
252
+ ### Fixed
253
+ - Standardize section name to `## IN_PROGRESS` (with underscore) across all files
254
+ - `reset_stale_tasks()` was searching for `## IN PROGRESS` (with space) but template used underscore - stale detection never worked
255
+ - install.sh now downloads `plan_prompt.md` (was missing, `atlas plan` would fail on fresh install)
256
+
257
+ ### Changed
258
+ - Updated templates, skills, README, CLAUDE.md, and references for consistency
259
+
260
+ ## [1.15.3] - 2026-01-20
261
+
262
+ ### Fixed
263
+ - Spec extraction now reads only from current task (IN_PROGRESS or first TODO), not first spec in entire backlog
264
+ - Tasks without `**Spec:**` field no longer load any spec file
265
+
266
+ ## [1.15.2] - 2026-01-20
267
+
268
+ ### Fixed
269
+ - **CLI retry logic**: Now performs real retries (3 silent attempts per iteration) instead of consuming iterations
270
+ - Telegram notifications only sent after all retries exhausted, not on each attempt
271
+ - CLI error notifications now show proper format with task, status, and pending count
272
+
273
+ ## [1.15.1] - 2026-01-20
274
+
275
+ ### Changed
276
+ - Move `integration-session.json` from `.claude/` to `.atlas/` for consistency
277
+ - All Atlas state files now live in `.atlas/` directory
278
+
279
+ ## [1.15.0] - 2026-01-20
280
+
281
+ ### Added
282
+ - Bash-verified pending task counter after each iteration (don't trust model's count)
283
+ - Shows pending count in terminal and Telegram notifications
284
+ - Logs pending count to activity.log
285
+
286
+ ### Fixed
287
+ - **CRITICAL**: Atlas now returns to main branch on exit (COMPLETE or MAX_ITERATIONS)
288
+ - Prevents leaving user on integration/feature branch after run completes
289
+
290
+ ### Changed
291
+ - CLAUDE.md: Added mandatory development workflow (branch → PR → merge)
292
+
293
+ ## [1.14.0] - 2026-01-20
294
+
295
+ ### Added
296
+ - **CRITICAL**: atlas.sh now forces checkout to main before starting iterations
297
+ - Automatic cleanup of merged integration sessions in bash (not dependent on model)
298
+ - Validates git state before invoking Claude to prevent stale branch issues
299
+
300
+ ### Fixed
301
+ - Model no longer needs to follow "checkout main first" instruction - bash enforces it
302
+ - Prevents working on already-merged integration branches
303
+
304
+ ## [1.13.0] - 2026-01-20
305
+
306
+ ### Added
307
+ - CLI error detection and retry logic in atlas.sh
308
+ - Detects "No messages returned", API errors, network errors
309
+ - Automatic retry with 10s delay on CLI errors
310
+ - Stops after 3 consecutive errors to prevent infinite loops
311
+ - Telegram notifications for error states
312
+
313
+ ## [1.12.3] - 2026-01-20
314
+
315
+ ### Fixed
316
+ - Emphasized CRITICAL draft PR creation in integration flow algorithm
317
+ - PR to main must be created IMMEDIATELY after creating integration branch
318
+
319
+ ## [1.12.2] - 2026-01-19
320
+
321
+ ### Fixed
322
+ - Integration session cleanup: now ALWAYS starts from main at each iteration
323
+ - Detects merged integration PRs and auto-cleans stale session files
324
+ - Removed attempt to commit cleanup to main (which would fail on protected branches)
325
+ - Updated `atlas-integration-flow` skill with correct cleanup flow
326
+
327
+ ## [1.12.1] - 2026-01-19
328
+
329
+ ### Fixed
330
+ - Plan mode: variables now properly substituted instead of duplicated
331
+ - Replaced hardcoded `.atlas/backlog.md` with `$BACKLOG_FILE` variable
332
+ - Added Context section with all injected variables for better visibility
333
+
334
+ ## [1.12.0] - 2026-01-19
335
+
336
+ ### Added
337
+ - **Integration branch workflow**: All Atlas work now goes to an integration branch, not main
338
+ - Step 0 in algorithm: auto-creates `integration/atlas-YYYYMMDD-HHMMSS` branch
339
+ - Creates draft PR to main automatically (for human review)
340
+ - `.claude/integration-session.json` tracks active session state
341
+ - All feature PRs target integration branch
342
+ - **Atlas Skills**: Modular knowledge installed to `~/.claude/skills/`
343
+ - `atlas-integration-flow`: Integration branch workflow details
344
+ - `atlas-branching`: Branch naming, conventional commits, squash merge
345
+ - `atlas-guardrails`: Signs format, error handling, learning from failures
346
+ - `atlas-state`: backlog.md structure, progress.txt format, state transitions
347
+ - Skills auto-installed on `atlas init` and `atlas update`
348
+
349
+ ### Changed
350
+ - Feature branches now created from integration branch (not main)
351
+ - PRs merged with squash to integration branch
352
+ - `atlas.sh` passes `integration-session.json` as context file
353
+ - `atlas.sh` downloads and installs skills from GitHub on update
354
+
355
+ ## [1.11.0] - 2026-01-19
356
+
357
+ ### Added
358
+ - Local mode: Atlas now works without git repositories
359
+ - Automatic detection of .git/ directory
360
+ - GIT_MODE variable passed to prompt (true/false)
361
+
362
+ ### Changed
363
+ - Algorithm conditionally skips git operations when GIT_MODE=false
364
+ - No branches, commits, or PRs created in local mode
365
+ - Progress.txt PR field optional in local mode
366
+
367
+ ## [1.10.0] - 2026-01-18
368
+
369
+ ### Added
370
+ - Security scanning as quality gate before PR creation
371
+ - Secret detection: gitleaks, trufflehog, git-secrets (tries available tools)
372
+ - Vulnerability scanning: semgrep (30+ languages), plus language-specific fallbacks
373
+ - Language-agnostic approach: adapts to Node.js, Python, Go, Ruby, Java, etc.
374
+ - New guardrail Sign: "Security Scan Before PR"
375
+
376
+ ### Changed
377
+ - Quality gates now split into: a) project gates, b) security scan
378
+ - Behavior is "best effort": warns if tools not installed, never blocks on missing tools
379
+
380
+ ## [1.9.1] - 2026-01-18
381
+
382
+ ### Changed
383
+ - Variables in prompt.md and plan_prompt.md now use explicit `envsubst` substitution
384
+ - Previously Claude had to mentally connect `ITERATION=2` with `$ITERATION` in text
385
+ - Now Claude receives fully processed text: "Iteration 2 of run..." directly
386
+ - More robust and less dependent on Claude's inference
387
+
388
+ ## [1.9.0] - 2026-01-18
389
+
390
+ ### Fixed
391
+ - Output capture reliability: Changed from pipe+tee to variable capture to avoid TTY buffering issues
392
+ - ~38% of iteration logs were previously empty due to stdout buffering when not connected to TTY
393
+ - Telegram notifications now show "Output not captured" instead of "No task" when logs are empty
394
+
395
+ ### Added
396
+ - Boundaries section in prompt.md with explicit NEVER/ALWAYS rules
397
+ - Prevents Claude from creating unexpected files (like ARCHITECTURE_REVIEW.md)
398
+ - Warning message when no output is captured from Claude
399
+ - UNKNOWN status emoji (❓) in Telegram notifications for capture failures
400
+
401
+ ### Changed
402
+ - Output capture now uses variable assignment instead of tee pipe (more reliable)
403
+ - Telegram notification handles empty summaries gracefully
404
+
405
+ ## [1.8.2] - 2026-01-18
406
+
407
+ ### Fixed
408
+ - Ctrl+C now exits the iteration loop gracefully
409
+
410
+ ## [1.8.1] - 2026-01-18
411
+
412
+ ### Fixed
413
+ - Unknown commands now show error instead of starting iteration loop
414
+ - Update removes old PLAN_PROMPT.md file to prevent 404 errors
415
+
416
+ ## [1.8.0] - 2026-01-17
417
+
418
+ ### Added
419
+ - Boundaries section in guardrails template with Always/Never rules
420
+ - Clear guidelines for safe autonomous operation across any language/stack
421
+
422
+ ## [1.7.0] - 2026-01-16
423
+
424
+ ### Changed
425
+ - Minimal initial prompt: only variables and file references (~10 lines vs ~100)
426
+ - prompt.md now referenced via PROMPT_FILE instead of injected
427
+ - Agent reads instructions from file like any other context file
428
+ - More scalable: prompt size no longer grows with instruction changes
429
+
430
+ ## [1.6.1] - 2026-01-16
431
+
432
+ ### Fixed
433
+ - `atlas update` shows "already up to date" when on latest version
434
+
435
+ ## [1.6.0] - 2026-01-16
436
+
437
+ ### Changed
438
+ - Prompt architecture: reference files instead of injecting content
439
+ - Context files listed in CONTEXT_FILES_TO_READ variable for selective reading
440
+ - Smaller initial prompt size, more scalable as files grow
441
+ - Agent reads files on-demand using Read tool (parallel reads for efficiency)
442
+
443
+ ### Technical
444
+ - atlas.sh builds dynamic file list based on which files exist
445
+ - prompt.md updated with mandatory file reading instructions
446
+ - Variables exposed: BACKLOG_FILE, GUARDRAILS_FILE, PROGRESS_FILE, ERRORS_LOG, SPEC_FILE
447
+
448
+ ## [1.5.1] - 2026-01-16
449
+
450
+ ### Fixed
451
+ - Telegram notification emoji now uses pattern matching for statuses with extra info (e.g., "SKIPPED (already fixed)" now correctly shows ⏭️ instead of ⏳)
452
+
453
+ ## [1.5.0] - 2026-01-16
454
+
455
+ ### Fixed
456
+ - ATLAS_HOME now always points to ~/.atlas (binary can be anywhere)
457
+ - Plan mode runs interactively (no -p flag) so AskUserQuestionTool works
458
+ - Plan mode includes --dangerously-skip-permissions
459
+ - Version grep skips Unreleased section, shows actual version number
460
+
461
+ ### Changed
462
+ - Plan prompt simplified: references files instead of embedding content
463
+ - Update output simplified: just shows "v1.4.0 → v1.5.0"
464
+ - CLAUDE.md: must ask user about versioning before merging PRs
465
+
466
+ ## [1.4.0] - 2026-01-16
467
+
468
+ ### Added
469
+ - `atlas plan "..."` command for interactive feature planning
470
+ - Planning mode uses `AskUserQuestionTool` to interview user about requirements
471
+ - Feature specs generated in `.atlas/specs/` directory
472
+ - Tasks from planning include `**Spec:**` field for integral view
473
+ - Main loop auto-loads spec file when task has `**Spec:**` field
474
+ - `PLAN_PROMPT.md` with interview, spec generation, and task decomposition phases
475
+
476
+ ### Changed
477
+ - Documentation updated: README, CLAUDE.md, CONTEXT_ENGINEERING.md
478
+ - `atlas update` now includes PLAN_PROMPT.md
479
+
480
+ ## [1.3.0] - 2026-01-16
481
+
482
+ ### Added
483
+ - Iteration timeout (20 min default, configurable via `ATLAS_TIMEOUT`)
484
+ - Stale task recovery (auto-reset stuck IN_PROGRESS tasks after 2 hours)
485
+ - Pre-load all context files into prompt (no tool calls needed)
486
+ - `atlas update` now downloads latest version from GitHub
487
+ - Clear file formats for progress.txt, errors.log, guardrails.md
488
+ - Setup section in prompt: read context files BEFORE starting
489
+ - Error handling flow: move failed tasks to DELAYED
490
+
491
+ ### Changed
492
+ - Prompt rewritten for clarity and consistency
493
+ - All output in English (summary, status, telegram notifications)
494
+ - Branch naming: `[type]/[TASK_ID]-[description]` instead of `atlas/`
495
+ - GitFlow: prefer /commit skill, fallback to gh CLI, then git
496
+ - PR body: full description instead of arbitrary text
497
+ - progress.txt logging is now mandatory (was optional)
498
+ - README simplified and updated
499
+
500
+ ### Fixed
501
+ - Telegram parser mismatch for "Pendientes" field
502
+ - Spanish comments translated to English
503
+
504
+ ## [1.2.0] - 2026-01-15
505
+
506
+ ### Added
507
+ - Silent retry for transient CLI errors
508
+ - GitHub Action for automatic releases
509
+ - Release workflow instructions in CLAUDE.md
510
+
511
+ ### Changed
512
+ - Simplified architecture to backlog.md only (removed prd.json)
513
+
514
+ ## [1.1.0] - 2026-01-14
515
+
516
+ ### Added
517
+ - Telegram notifications with progress bar
518
+ - Guardrails system (Signs methodology)
519
+ - Progress tracking across iterations
520
+
521
+ ## [1.0.0] - 2026-01-14
522
+
523
+ ### Added
524
+ - Initial release
525
+ - Ralph Wiggum loop implementation
526
+ - Basic backlog processing
527
+ - GitFlow integration (branch, PR, merge)