@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 +527 -0
- package/README.md +280 -0
- package/atlas.sh +997 -0
- package/notify-telegram.sh +99 -0
- package/package.json +50 -0
- package/plan_prompt.md +175 -0
- package/prompt.md +198 -0
- package/references/CONTEXT_ENGINEERING.md +81 -0
- package/references/GUARDRAILS.md +53 -0
- package/review_prompt.md +180 -0
- package/scripts/postinstall.js +51 -0
- package/skills/atlas-branching/SKILL.md +160 -0
- package/skills/atlas-guardrails/SKILL.md +189 -0
- package/skills/atlas-integration-flow/SKILL.md +208 -0
- package/skills/atlas-state/SKILL.md +225 -0
- package/templates/backlog.md +27 -0
- package/templates/guardrails.md +69 -0
- package/templates/progress.txt +14 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: atlas-integration-flow
|
|
3
|
+
description: |
|
|
4
|
+
Integration branch workflow for Atlas autonomous sessions. ONLY use when
|
|
5
|
+
running as Atlas agent (detected by GIT_MODE=true in prompt context).
|
|
6
|
+
Handles: creating integration branch, PR workflow to integration,
|
|
7
|
+
PR to main (Ready for Review). Use when: (1) starting Atlas session with git,
|
|
8
|
+
(2) creating PRs during Atlas run, (3) completing Atlas session.
|
|
9
|
+
|
|
10
|
+
IMPORTANT: When using Atlas specialized agents, invoke this skill for git operations.
|
|
11
|
+
author: Atlas
|
|
12
|
+
version: 1.1.0
|
|
13
|
+
date: 2026-01-23
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Atlas Integration Branch Flow
|
|
17
|
+
|
|
18
|
+
**CRITICAL**: Only apply this workflow when running as Atlas agent with GIT_MODE=true.
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
All Atlas work goes to an integration branch, NOT directly to main. This allows human review of all changes before merging to main.
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
main (protected)
|
|
26
|
+
│
|
|
27
|
+
└── integration/atlas-YYYYMMDD-HHMMSS ← PR to main (Ready for Review, NO merge until review)
|
|
28
|
+
│
|
|
29
|
+
├── feature/TASK-001 → PR to integration ✓ merged
|
|
30
|
+
├── feature/TASK-002 → PR to integration ✓ merged
|
|
31
|
+
└── fix/TASK-003 → PR to integration ✓ merged
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Step 0: Start Every Iteration
|
|
35
|
+
|
|
36
|
+
**CRITICAL**: ALWAYS start from main, then check for existing session.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# 1. ALWAYS start from main
|
|
40
|
+
git checkout main && git pull origin main
|
|
41
|
+
|
|
42
|
+
# 2. Check for existing session
|
|
43
|
+
if [[ -f .atlas/integration-session.json ]]; then
|
|
44
|
+
PR_NUMBER=$(grep '"pr_number"' .atlas/integration-session.json | sed 's/[^0-9]//g')
|
|
45
|
+
PR_STATE=$(gh pr view "$PR_NUMBER" --json state -q '.state')
|
|
46
|
+
|
|
47
|
+
if [[ "$PR_STATE" == "MERGED" ]]; then
|
|
48
|
+
# Session was merged - cleanup locally and create new
|
|
49
|
+
BRANCH=$(grep '"branch"' .atlas/integration-session.json | sed 's/.*"branch"[[:space:]]*:[[:space:]]*"//;s/".*//')
|
|
50
|
+
git branch -D "$BRANCH" 2>/dev/null || true # Delete local branch
|
|
51
|
+
rm .atlas/integration-session.json # Delete locally (no commit to main - it's protected)
|
|
52
|
+
# Continue to create new session below
|
|
53
|
+
else
|
|
54
|
+
# Session still active - use it
|
|
55
|
+
BASE_BRANCH=$(grep '"branch"' .atlas/integration-session.json | sed 's/.*"branch"[[:space:]]*:[[:space:]]*"//;s/".*//')
|
|
56
|
+
git checkout "$BASE_BRANCH" && git pull origin "$BASE_BRANCH"
|
|
57
|
+
# Skip to step 1
|
|
58
|
+
fi
|
|
59
|
+
fi
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Creating New Integration Session
|
|
63
|
+
|
|
64
|
+
**When no session exists** (first iteration or after cleanup):
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# 1. Generate session name
|
|
68
|
+
SESSION_NAME="atlas-$(date +%Y%m%d-%H%M%S)"
|
|
69
|
+
BASE_BRANCH="integration/$SESSION_NAME"
|
|
70
|
+
|
|
71
|
+
# 2. Create integration branch (already on main from step 0)
|
|
72
|
+
git checkout -b "$BASE_BRANCH"
|
|
73
|
+
git push -u origin "$BASE_BRANCH"
|
|
74
|
+
|
|
75
|
+
# 3. Create PR to main - Ready for Review, NOT draft (REQUIRED)
|
|
76
|
+
PR_URL=$(gh pr create --base main \
|
|
77
|
+
--title "🔄 Integration: $SESSION_NAME" \
|
|
78
|
+
--body "## Integration Branch
|
|
79
|
+
|
|
80
|
+
⚠️ **NO MERGEAR** hasta revisión completa.
|
|
81
|
+
|
|
82
|
+
### PRs incluidos
|
|
83
|
+
_Se actualizará con cada feature mergeada_
|
|
84
|
+
|
|
85
|
+
### Checklist
|
|
86
|
+
- [ ] Code review completo
|
|
87
|
+
- [ ] Tests passing
|
|
88
|
+
- [ ] Sin conflictos con main
|
|
89
|
+
")
|
|
90
|
+
PR_NUMBER=$(echo "$PR_URL" | grep -oE '[0-9]+$')
|
|
91
|
+
|
|
92
|
+
# 4. Create session file (.atlas/ already exists from atlas init)
|
|
93
|
+
cat > .atlas/integration-session.json << EOF
|
|
94
|
+
{
|
|
95
|
+
"session_name": "$SESSION_NAME",
|
|
96
|
+
"branch": "$BASE_BRANCH",
|
|
97
|
+
"pr_number": $PR_NUMBER,
|
|
98
|
+
"status": "active",
|
|
99
|
+
"created_at": "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
100
|
+
}
|
|
101
|
+
EOF
|
|
102
|
+
|
|
103
|
+
# 5. Commit session file
|
|
104
|
+
git add .atlas/integration-session.json
|
|
105
|
+
git commit -m "chore: init integration session $SESSION_NAME"
|
|
106
|
+
git push
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Why Start from Main?
|
|
110
|
+
|
|
111
|
+
If you start directly on an old integration branch:
|
|
112
|
+
1. The user may have already merged the PR on GitHub
|
|
113
|
+
2. You'd be working on a stale branch
|
|
114
|
+
3. New Atlas runs would start from the wrong base
|
|
115
|
+
|
|
116
|
+
By ALWAYS starting from main and checking PR state, we ensure:
|
|
117
|
+
- Fresh state on every iteration start
|
|
118
|
+
- Automatic cleanup of merged sessions
|
|
119
|
+
- New sessions created from latest main
|
|
120
|
+
|
|
121
|
+
## Creating Feature Branches
|
|
122
|
+
|
|
123
|
+
Always create from integration branch:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# CORRECT
|
|
127
|
+
git checkout "$BASE_BRANCH"
|
|
128
|
+
git pull origin "$BASE_BRANCH"
|
|
129
|
+
git checkout -b feature/TASK-001-description
|
|
130
|
+
|
|
131
|
+
# WRONG - never branch from main during Atlas session
|
|
132
|
+
git checkout main # NO!
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Creating PRs
|
|
136
|
+
|
|
137
|
+
**Target integration branch, NOT main**:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# CORRECT
|
|
141
|
+
gh pr create --base "$BASE_BRANCH" --title "feat: description"
|
|
142
|
+
|
|
143
|
+
# WRONG
|
|
144
|
+
gh pr create --base main # NO! Never during Atlas session
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Merging PRs
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Squash merge to integration
|
|
151
|
+
gh pr merge --squash --delete-branch
|
|
152
|
+
|
|
153
|
+
# Return to integration branch
|
|
154
|
+
git checkout "$BASE_BRANCH"
|
|
155
|
+
git pull origin "$BASE_BRANCH"
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## CRITICAL: Update Backlog After Merge
|
|
159
|
+
|
|
160
|
+
**IMMEDIATELY after merging a PR, you MUST update the backlog:**
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# 1. Move task from IN_PROGRESS to DONE in backlog.md
|
|
164
|
+
# Add completion date and PR number
|
|
165
|
+
|
|
166
|
+
# 2. Append to progress.txt with summary
|
|
167
|
+
|
|
168
|
+
# 3. Commit and push state changes
|
|
169
|
+
git add .atlas/
|
|
170
|
+
git commit -m "chore: complete [TASK_ID]"
|
|
171
|
+
git push
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**NEVER proceed to the next task without updating the backlog.**
|
|
175
|
+
This is the most common source of state drift - tasks get completed but backlog shows them as pending.
|
|
176
|
+
|
|
177
|
+
**Verification**: Before starting a new task, confirm the previous task appears in the DONE section of backlog.md.
|
|
178
|
+
|
|
179
|
+
## End of Session
|
|
180
|
+
|
|
181
|
+
The integration branch stays with PR open to main (Ready for Review). Human reviews and merges when ready.
|
|
182
|
+
|
|
183
|
+
**DO NOT**:
|
|
184
|
+
- Merge integration PR to main automatically
|
|
185
|
+
- Delete integration branch before human review
|
|
186
|
+
|
|
187
|
+
## Session File Format
|
|
188
|
+
|
|
189
|
+
```json
|
|
190
|
+
{
|
|
191
|
+
"session_name": "atlas-20260119-155537",
|
|
192
|
+
"branch": "integration/atlas-20260119-155537",
|
|
193
|
+
"pr_number": 28,
|
|
194
|
+
"status": "active",
|
|
195
|
+
"created_at": "2026-01-19T15:55:37Z"
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Error Recovery
|
|
200
|
+
|
|
201
|
+
If integration branch gets out of sync:
|
|
202
|
+
```bash
|
|
203
|
+
git checkout "$BASE_BRANCH"
|
|
204
|
+
git pull origin "$BASE_BRANCH"
|
|
205
|
+
# If conflicts, resolve them on integration branch
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
If session file is corrupted, check GitHub for the integration branch and PR number, then recreate the file.
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: atlas-state
|
|
3
|
+
description: |
|
|
4
|
+
State file management for Atlas autonomous agent. ONLY use when running
|
|
5
|
+
as Atlas agent. Covers: backlog.md structure, progress.txt format,
|
|
6
|
+
errors.log format, activity.log. Use when: (1) moving tasks between states,
|
|
7
|
+
(2) logging progress, (3) recording errors.
|
|
8
|
+
|
|
9
|
+
CRITICAL: Only ONE task can be in IN_PROGRESS at a time. Tasks start in TODO,
|
|
10
|
+
move to IN_PROGRESS when work begins, then to DONE when complete.
|
|
11
|
+
|
|
12
|
+
IMPORTANT: When using Atlas specialized agents, invoke this skill for state management.
|
|
13
|
+
author: Atlas
|
|
14
|
+
version: 1.1.0
|
|
15
|
+
date: 2026-01-23
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Atlas State Management
|
|
19
|
+
|
|
20
|
+
**CRITICAL**: Only apply when running as Atlas agent.
|
|
21
|
+
|
|
22
|
+
## File Locations
|
|
23
|
+
|
|
24
|
+
All state files live in `.atlas/` directory:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
.atlas/
|
|
28
|
+
├── backlog.md # Task queue
|
|
29
|
+
├── progress.txt # Completed task history
|
|
30
|
+
├── guardrails.md # Learned rules
|
|
31
|
+
├── errors.log # Error history
|
|
32
|
+
├── activity.log # Run history (managed by atlas.sh)
|
|
33
|
+
├── runs/ # Per-iteration logs
|
|
34
|
+
└── specs/ # Feature specifications
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## backlog.md Structure
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
# [Project] Backlog
|
|
41
|
+
|
|
42
|
+
## TODO
|
|
43
|
+
|
|
44
|
+
### TASK-001: Task title
|
|
45
|
+
- **Category:** feature|fix|refactor|test|docs|chore
|
|
46
|
+
- **Spec:** .atlas/specs/spec-YYYYMMDD-HHMMSS.md (optional)
|
|
47
|
+
- **Description:** Brief description (optional)
|
|
48
|
+
|
|
49
|
+
### TASK-002: Another task
|
|
50
|
+
- **Category:** fix
|
|
51
|
+
|
|
52
|
+
## IN_PROGRESS
|
|
53
|
+
|
|
54
|
+
### TASK-003: Current task (STARTED: 2026-01-19)
|
|
55
|
+
- **Category:** feature
|
|
56
|
+
|
|
57
|
+
## DONE
|
|
58
|
+
|
|
59
|
+
### TASK-004: Completed task (2026-01-19) - PR #123
|
|
60
|
+
- **Category:** feature
|
|
61
|
+
|
|
62
|
+
## DELAYED
|
|
63
|
+
|
|
64
|
+
### TASK-005: Blocked task (DELAYED: 2026-01-19)
|
|
65
|
+
- **Category:** feature
|
|
66
|
+
- **Delay reason:** Missing API credentials
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Moving Tasks
|
|
70
|
+
|
|
71
|
+
**TODO → IN_PROGRESS**:
|
|
72
|
+
```markdown
|
|
73
|
+
# Before (in TODO)
|
|
74
|
+
### TASK-001: Add feature
|
|
75
|
+
|
|
76
|
+
# After (in IN_PROGRESS)
|
|
77
|
+
### TASK-001: Add feature (STARTED: 2026-01-19)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**IN_PROGRESS → DONE**:
|
|
81
|
+
```markdown
|
|
82
|
+
# Before (in IN_PROGRESS)
|
|
83
|
+
### TASK-001: Add feature (STARTED: 2026-01-19)
|
|
84
|
+
|
|
85
|
+
# After (in DONE)
|
|
86
|
+
### TASK-001: Add feature (2026-01-19) - PR #45
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**IN_PROGRESS → DELAYED**:
|
|
90
|
+
```markdown
|
|
91
|
+
# Before (in IN_PROGRESS)
|
|
92
|
+
### TASK-001: Add feature (STARTED: 2026-01-19)
|
|
93
|
+
|
|
94
|
+
# After (in DELAYED)
|
|
95
|
+
### TASK-001: Add feature (DELAYED: 2026-01-19)
|
|
96
|
+
- **Delay reason:** Build fails due to missing dependency
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Task Selection
|
|
100
|
+
|
|
101
|
+
1. If task in IN_PROGRESS → continue that task
|
|
102
|
+
2. If no task in IN_PROGRESS → pick FIRST task from TODO
|
|
103
|
+
3. If TODO and IN_PROGRESS empty → session complete
|
|
104
|
+
|
|
105
|
+
**CRITICAL RULES:**
|
|
106
|
+
- **ONLY ONE** task can be in IN_PROGRESS at any time
|
|
107
|
+
- **NEVER** move multiple tasks to IN_PROGRESS
|
|
108
|
+
- **NEVER** skip tasks - ALWAYS pick the first one from TODO
|
|
109
|
+
- Tasks flow: TODO → IN_PROGRESS → DONE (one at a time)
|
|
110
|
+
- **NEVER** proceed to next task without moving current task to DONE
|
|
111
|
+
- **ALWAYS** update backlog.md IMMEDIATELY after merging PR
|
|
112
|
+
- **VERIFY** task is in DONE section before starting new task
|
|
113
|
+
|
|
114
|
+
## progress.txt Format
|
|
115
|
+
|
|
116
|
+
Append after each completed task:
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
## [DATE] - [TASK_ID]: [Title]
|
|
120
|
+
Summary: [1-2 sentences of what was done]
|
|
121
|
+
PR: #[number]
|
|
122
|
+
Notes: [any gotchas for future iterations]
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Example**:
|
|
126
|
+
```markdown
|
|
127
|
+
## 2026-01-19 - HIGH-001: Create user authentication
|
|
128
|
+
Summary: Implemented JWT auth with refresh tokens. Added login/logout endpoints.
|
|
129
|
+
PR: #45
|
|
130
|
+
Notes: Refresh token rotation requires Redis, see .env.example for config.
|
|
131
|
+
|
|
132
|
+
## 2026-01-19 - HIGH-002: Add password reset
|
|
133
|
+
Summary: Added forgot password flow with email verification.
|
|
134
|
+
PR: #46
|
|
135
|
+
Notes: Email templates in templates/email/. Requires SMTP config.
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### What to Include
|
|
139
|
+
|
|
140
|
+
- **Summary**: What was implemented, high-level
|
|
141
|
+
- **PR**: The PR number for reference
|
|
142
|
+
- **Notes**: Things future iterations should know
|
|
143
|
+
|
|
144
|
+
### What NOT to Include
|
|
145
|
+
|
|
146
|
+
- Code snippets (too verbose)
|
|
147
|
+
- Full file paths (summarize instead)
|
|
148
|
+
- Debug information
|
|
149
|
+
- Time spent
|
|
150
|
+
|
|
151
|
+
## errors.log Format
|
|
152
|
+
|
|
153
|
+
One line per error:
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
[DATE] TASK_ID: Brief error description
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Examples**:
|
|
160
|
+
```
|
|
161
|
+
[2026-01-19] HIGH-003: Build failed - TypeScript error in UserService
|
|
162
|
+
[2026-01-19] MED-007: Tests failed - Mock not configured for external API
|
|
163
|
+
[2026-01-19] LOW-012: Blocked - Missing API credentials in .env
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Keep it brief. Details go in progress.txt or guardrails.md.
|
|
167
|
+
|
|
168
|
+
## State Commits
|
|
169
|
+
|
|
170
|
+
After modifying state files, commit immediately:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
# Starting task
|
|
174
|
+
git add .atlas/backlog.md
|
|
175
|
+
git commit -m "chore: start TASK-001"
|
|
176
|
+
|
|
177
|
+
# Completing task
|
|
178
|
+
git add .atlas/
|
|
179
|
+
git commit -m "chore: complete TASK-001"
|
|
180
|
+
|
|
181
|
+
# Delaying task
|
|
182
|
+
git add .atlas/
|
|
183
|
+
git commit -m "chore: delay TASK-001"
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**IMPORTANT**: Push after commit when GIT_MODE=true:
|
|
187
|
+
```bash
|
|
188
|
+
git push
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Integration with Specs
|
|
192
|
+
|
|
193
|
+
If task has a `**Spec:**` field, read that spec for full context:
|
|
194
|
+
|
|
195
|
+
```markdown
|
|
196
|
+
### HIGH-005: Implement payment flow
|
|
197
|
+
- **Category:** feature
|
|
198
|
+
- **Spec:** .atlas/specs/spec-20260119-143022.md
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
The spec contains:
|
|
202
|
+
- Full requirements
|
|
203
|
+
- Acceptance criteria
|
|
204
|
+
- Technical decisions
|
|
205
|
+
- Edge cases
|
|
206
|
+
|
|
207
|
+
**ALWAYS read the spec before starting a task that has one.**
|
|
208
|
+
|
|
209
|
+
## Session Complete
|
|
210
|
+
|
|
211
|
+
When TODO and IN_PROGRESS are both empty:
|
|
212
|
+
|
|
213
|
+
1. Print summary
|
|
214
|
+
2. Output `<promise>COMPLETE</promise>`
|
|
215
|
+
3. Atlas loop will exit
|
|
216
|
+
|
|
217
|
+
```markdown
|
|
218
|
+
=== SUMMARY ===
|
|
219
|
+
Task: [last task completed]
|
|
220
|
+
Status: DONE
|
|
221
|
+
Pending: 0
|
|
222
|
+
Loop: COMPLETE
|
|
223
|
+
|
|
224
|
+
<promise>COMPLETE</promise>
|
|
225
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# [PROJECT_NAME] Backlog
|
|
2
|
+
|
|
3
|
+
## TODO
|
|
4
|
+
|
|
5
|
+
### HIGH-001: Example task - DELETE THIS
|
|
6
|
+
- **Category:** feature
|
|
7
|
+
- **Description:** Replace this with your first real task
|
|
8
|
+
- **Steps:**
|
|
9
|
+
1. Step 1
|
|
10
|
+
2. Step 2
|
|
11
|
+
|
|
12
|
+
<!-- Tasks from `atlas plan` include **Spec:** field for integral view:
|
|
13
|
+
### MED-002: Example planned task
|
|
14
|
+
- **Category:** feature
|
|
15
|
+
- **Spec:** .atlas/specs/spec-20260116-120000.md
|
|
16
|
+
- **Description:** Task generated from feature spec
|
|
17
|
+
- **Steps:**
|
|
18
|
+
1. Step 1
|
|
19
|
+
2. Step 2
|
|
20
|
+
- **Acceptance:** How to verify done
|
|
21
|
+
-->
|
|
22
|
+
|
|
23
|
+
## IN_PROGRESS
|
|
24
|
+
|
|
25
|
+
## DONE
|
|
26
|
+
|
|
27
|
+
## DELAYED
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Guardrails
|
|
2
|
+
|
|
3
|
+
> Rules learned from errors and gotchas. Atlas reads this at the start of every iteration.
|
|
4
|
+
|
|
5
|
+
## How to Add Signs
|
|
6
|
+
|
|
7
|
+
When you encounter an error or learn something the hard way, add a Sign:
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
### Sign: [Descriptive Name]
|
|
11
|
+
- **Trigger**: When does this apply?
|
|
12
|
+
- **Instruction**: What to do (or NOT do)
|
|
13
|
+
- **Type**: Preventive | Corrective | Process | Architecture
|
|
14
|
+
- **Learned from**: Task ID or iteration
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Core Signs
|
|
18
|
+
|
|
19
|
+
### Sign: Always Read Before Edit
|
|
20
|
+
- **Trigger**: Before modifying any file
|
|
21
|
+
- **Instruction**: Always read the current file content before making changes
|
|
22
|
+
- **Type**: Preventive
|
|
23
|
+
- **Learned from**: Best practice
|
|
24
|
+
|
|
25
|
+
### Sign: One Task Per Iteration
|
|
26
|
+
- **Trigger**: When tempted to do multiple tasks
|
|
27
|
+
- **Instruction**: Complete ONE task fully before moving to the next
|
|
28
|
+
- **Type**: Process
|
|
29
|
+
- **Learned from**: Atlas design principle
|
|
30
|
+
|
|
31
|
+
### Sign: Verify Build After Changes
|
|
32
|
+
- **Trigger**: After any code modification
|
|
33
|
+
- **Instruction**: Run build/lint/test commands before marking task complete
|
|
34
|
+
- **Type**: Corrective
|
|
35
|
+
- **Learned from**: Best practice
|
|
36
|
+
|
|
37
|
+
### Sign: Security Scan Before PR
|
|
38
|
+
- **Trigger**: Before creating a pull request
|
|
39
|
+
- **Instruction**: Run available security tools (gitleaks, semgrep, npm audit, etc.) and fix HIGH/CRITICAL issues. Skip with warning if tools not installed.
|
|
40
|
+
- **Type**: Preventive
|
|
41
|
+
- **Learned from**: Best practice
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Boundaries
|
|
46
|
+
|
|
47
|
+
### ✅ Always
|
|
48
|
+
- Run existing tests before committing changes
|
|
49
|
+
- Read file contents before making edits
|
|
50
|
+
- Use available agents and skills when they fit the task
|
|
51
|
+
- Follow project naming conventions and code style
|
|
52
|
+
- Verify CI/PR checks pass before requesting merge
|
|
53
|
+
- Write clear, conventional commit messages
|
|
54
|
+
- Validate changes work before marking task complete
|
|
55
|
+
|
|
56
|
+
### 🚫 Never
|
|
57
|
+
- Commit secrets, credentials, or API keys
|
|
58
|
+
- Force push to protected branches without explicit approval
|
|
59
|
+
- Delete or skip failing tests without explicit approval
|
|
60
|
+
- Bypass quality gates (linter, formatter, type checker, tests)
|
|
61
|
+
- Leave temporary debug code in production
|
|
62
|
+
- Edit auto-generated files directly (modify the source instead)
|
|
63
|
+
- Ignore compiler/linter warnings without justification
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Project-Specific Signs
|
|
68
|
+
|
|
69
|
+
<!-- Add signs learned during this project below -->
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Progress Log
|
|
2
|
+
|
|
3
|
+
Atlas automatically appends entries here after completing each task.
|
|
4
|
+
|
|
5
|
+
Format:
|
|
6
|
+
```
|
|
7
|
+
## [DATE] - [TASK_ID]: [Title]
|
|
8
|
+
Summary: [1-2 sentences of what was done]
|
|
9
|
+
PR: #[number] (omit if local mode)
|
|
10
|
+
Notes: [any gotchas for future iterations]
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
================================================================================
|
|
14
|
+
|