atris 2.0.21 → 2.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/AGENT.md +35 -0
- package/AGENTS.md +46 -0
- package/GETTING_STARTED.md +4 -4
- package/PERSONA.md +5 -1
- package/README.md +14 -6
- package/atris/AGENTS.md +25 -0
- package/atris/GEMINI.md +8 -0
- package/atris/GETTING_STARTED.md +4 -4
- package/atris/atris.md +3 -3
- package/atris/policies/LESSONS.md +1 -0
- package/atris/skills/README.md +19 -13
- package/atris/skills/autopilot/SKILL.md +97 -0
- package/atris/skills/autopilot/atris-autopilot.md +71 -0
- package/atris/skills/autopilot/hooks/stop-hook.sh +79 -0
- package/atris/skills/copy-editor/SKILL.md +471 -0
- package/atris/skills/email-agent/SKILL.md +288 -0
- package/atris/skills/memory/SKILL.md +5 -0
- package/atris/{agent_team → team}/executor.md +26 -0
- package/atris/{agent_team → team}/navigator.md +42 -5
- package/atris/{agent_team → team}/validator.md +29 -3
- package/atris.md +23 -4
- package/bin/atris.js +125 -32
- package/commands/auth.js +24 -4
- package/commands/brainstorm.js +8 -8
- package/commands/init.js +140 -30
- package/commands/integrations.js +330 -0
- package/commands/sync.js +69 -24
- package/commands/workflow.js +3 -3
- package/package.json +5 -3
- package/utils/auth.js +33 -0
- package/commands/stubs.txt +0 -10
- /package/atris/{agent_team → team}/brainstormer.md +0 -0
- /package/atris/{agent_team → team}/launcher.md +0 -0
package/AGENT.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# AGENT.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to any coding agent (Claude Code, Cursor, Windsurf, etc) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Using Atris (If atris/ folder exists)
|
|
6
|
+
|
|
7
|
+
**You are in an Atris-managed project.**
|
|
8
|
+
|
|
9
|
+
**FIRST:** Read `atris/PERSONA.md` and adopt that personality.
|
|
10
|
+
|
|
11
|
+
**Then follow this workflow:**
|
|
12
|
+
1. **Execute first, research only if needed** — Run commands/tools directly. Don't search docs first—see what happens, then investigate if it fails. Saves context.
|
|
13
|
+
2. **Before any change:** Read `atris/MAP.md` to find relevant files/components
|
|
14
|
+
3. **When starting a task:** Check `atris/TODO.md` for existing tasks or add new one
|
|
15
|
+
4. **After completing task:** Delete task from TODO.md
|
|
16
|
+
5. **If architecture changes:** Update `atris/MAP.md` with new structure
|
|
17
|
+
6. **Follow agent workflow:** navigator (find) → executor (build) → validator (verify)
|
|
18
|
+
|
|
19
|
+
**Key files:**
|
|
20
|
+
- `atris/PERSONA.md` - How to communicate and work (READ THIS FIRST)
|
|
21
|
+
- `atris/MAP.md` - Navigation guide (where is X?)
|
|
22
|
+
- `atris/TODO.md` - Active tasks (delete when done)
|
|
23
|
+
- `atris/team/*.md` - Agent specs for reference
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
**Quick Start:**
|
|
28
|
+
1. Read PERSONA.md
|
|
29
|
+
2. Run `atris activate` to load context (no login or agent selection required)
|
|
30
|
+
3. Check TODO.md for current work
|
|
31
|
+
4. Use `atris visualize` to see plans before building
|
|
32
|
+
5. Use `atris autopilot` when you want the CLI to shepherd plan → do → review loops (optional)
|
|
33
|
+
6. Use `atris brainstorm` to generate a concise conversation starter before handing ideas to coding agents (optional)
|
|
34
|
+
|
|
35
|
+
Need to chat with Atris cloud agents? Set them up later with `atris agent`, then authenticate once via `atris login`, and finally run `atris chat`.
|
package/AGENTS.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# AGENTS.md — Universal Agent Instructions
|
|
2
|
+
|
|
3
|
+
> Works with: Claude Code, Cursor, Codex, Windsurf, and any AI coding agent.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
atris
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Run this first. Follow the output.
|
|
12
|
+
|
|
13
|
+
## Core Files
|
|
14
|
+
|
|
15
|
+
| File | Purpose |
|
|
16
|
+
|------|---------|
|
|
17
|
+
| `atris/PERSONA.md` | Communication style (read first) |
|
|
18
|
+
| `atris/TODO.md` | Current tasks |
|
|
19
|
+
| `atris/MAP.md` | Navigation (where is X?) |
|
|
20
|
+
|
|
21
|
+
## Workflow
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
PLAN → atris plan (break ideas into tasks)
|
|
25
|
+
BUILD → atris do (execute tasks)
|
|
26
|
+
CHECK → atris review (verify + cleanup)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Rules
|
|
30
|
+
|
|
31
|
+
- [ ] 3-4 sentences max per response
|
|
32
|
+
- [ ] Use ASCII visuals for planning
|
|
33
|
+
- [ ] Check MAP.md before touching code
|
|
34
|
+
- [ ] Claim tasks in TODO.md before working
|
|
35
|
+
- [ ] Delete tasks when done
|
|
36
|
+
|
|
37
|
+
## Anti-patterns
|
|
38
|
+
|
|
39
|
+
- Don't explore codebase manually (use MAP.md)
|
|
40
|
+
- Don't skip visualization step
|
|
41
|
+
- Don't leave stale tasks
|
|
42
|
+
- Don't write verbose docs
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
**Protocol:** See `atris/atris.md` for full spec.
|
package/GETTING_STARTED.md
CHANGED
|
@@ -12,7 +12,7 @@ atris/
|
|
|
12
12
|
├── atris.md (atrisDev protocol + specs)
|
|
13
13
|
├── CLAUDE.md (tells agents to follow atrisDev)
|
|
14
14
|
├── MAP.md (navigation - AI will generate)
|
|
15
|
-
└──
|
|
15
|
+
└── team/ (agent specs)
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
## Quick Start (2 Steps)
|
|
@@ -91,7 +91,7 @@ Your system's navigation guide. Contains:
|
|
|
91
91
|
|
|
92
92
|
**Use it:** When you need to find something fast or onboard new people
|
|
93
93
|
|
|
94
|
-
###
|
|
94
|
+
### team/navigator.md
|
|
95
95
|
Your "where is X?" expert. Ask it questions like:
|
|
96
96
|
- "Where is the authentication logic?"
|
|
97
97
|
- "Show me all API endpoints"
|
|
@@ -99,7 +99,7 @@ Your "where is X?" expert. Ask it questions like:
|
|
|
99
99
|
|
|
100
100
|
Always cites MAP.md with exact file:line references.
|
|
101
101
|
|
|
102
|
-
###
|
|
102
|
+
### team/executor.md
|
|
103
103
|
Your task runner. Give it work like:
|
|
104
104
|
- "Add authentication to the upload endpoint"
|
|
105
105
|
- "Fix the bug in user registration"
|
|
@@ -107,7 +107,7 @@ Your task runner. Give it work like:
|
|
|
107
107
|
|
|
108
108
|
Reads MAP.md, plans execution with file:line references, executes step-by-step.
|
|
109
109
|
|
|
110
|
-
###
|
|
110
|
+
### team/validator.md
|
|
111
111
|
Your quality gatekeeper. Runs after changes to:
|
|
112
112
|
- Check for breaking changes
|
|
113
113
|
- Update MAP.md if structure changed
|
package/PERSONA.md
CHANGED
|
@@ -28,6 +28,8 @@ This defines how Atris agents communicate, decide, and work.
|
|
|
28
28
|
|
|
29
29
|
## Core Workflow
|
|
30
30
|
|
|
31
|
+
**Read before you act.** Before planning or building, read the relevant files. Understand the current state. Your first action in any new area is always reconnaissance — not execution.
|
|
32
|
+
|
|
31
33
|
**Always ask for intent.** Clarify before acting.
|
|
32
34
|
|
|
33
35
|
**Use ASCII visualization to confirm understanding:**
|
|
@@ -42,7 +44,9 @@ Then go 3-4 sentences one by one through each task.
|
|
|
42
44
|
|
|
43
45
|
Once every task is confirmed, create a plan.
|
|
44
46
|
|
|
45
|
-
**
|
|
47
|
+
**If a task is too big, break it down.** One job per task. If you can't describe "done" in one sentence, decompose it. Small precise tasks compound into big results.
|
|
48
|
+
|
|
49
|
+
**Process:** Complete tasks in order of high reward, low risk first. Explore first, execute after.
|
|
46
50
|
|
|
47
51
|
Always aim to be efficient and Pareto (80/20).
|
|
48
52
|
|
package/README.md
CHANGED
|
@@ -44,17 +44,25 @@ Works with: Claude Code, Cursor, Windsurf, GitHub Copilot, any agent.
|
|
|
44
44
|
## Update
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
|
-
|
|
48
|
-
atris update
|
|
47
|
+
atris upgrade # Install latest from npm
|
|
48
|
+
atris update # Sync local files to new version
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
## Skills
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
Atris includes agent-agnostic skills that work with Claude, Cursor, Codex, any LLM:
|
|
54
54
|
|
|
55
|
+
| Skill | Purpose |
|
|
56
|
+
|-------|---------|
|
|
57
|
+
| atris | Workflow enforcement + plan/do/review |
|
|
58
|
+
| autopilot | PRD-driven autonomous execution |
|
|
59
|
+
| backend | Backend architecture anti-patterns |
|
|
60
|
+
| design | Frontend aesthetics policy |
|
|
61
|
+
| meta | Metacognition for agents |
|
|
62
|
+
| writing | Essay process with approval gates |
|
|
55
63
|
|
|
56
|
-
|
|
64
|
+
Install to Codex: `cp -r atris/skills/[name] ~/.codex/skills/`
|
|
57
65
|
|
|
58
66
|
---
|
|
59
67
|
|
|
60
|
-
**License:** MIT | **Repo:** [github.com/atrislabs/atris
|
|
68
|
+
**License:** MIT | **Repo:** [github.com/atrislabs/atris](https://github.com/atrislabs/atris.git)
|
package/atris/AGENTS.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# AGENTS.md — atris_team
|
|
2
|
+
|
|
3
|
+
Instructions for coding agents working inside this repository.
|
|
4
|
+
|
|
5
|
+
## Workflow (Default)
|
|
6
|
+
|
|
7
|
+
1. Read `atris/PERSONA.md` and follow it (anti-slop, 3–4 sentences, ASCII for planning).
|
|
8
|
+
2. Run `atris activate` to load the current working context.
|
|
9
|
+
3. Use `atris/MAP.md` for navigation (file:line refs) when present.
|
|
10
|
+
4. Track work in `atris/TODO.md` (target state = 0).
|
|
11
|
+
5. Preferred loop: `atris plan` → `atris do` → `atris review`.
|
|
12
|
+
|
|
13
|
+
## Repo Layout
|
|
14
|
+
|
|
15
|
+
- `bin/atris.js` — CLI entrypoint + routing + natural-language entry.
|
|
16
|
+
- `commands/` — most command implementations.
|
|
17
|
+
- `lib/` — journal/task/file helpers (`journal`, `file-ops`, `state-detection`).
|
|
18
|
+
- `utils/` — auth/API/config/update-check and cloud execution helpers.
|
|
19
|
+
- `atris.md` — master spec template copied into user projects.
|
|
20
|
+
|
|
21
|
+
## Notes
|
|
22
|
+
|
|
23
|
+
- `TODO.md` is the current task file; `TASK_CONTEXTS.md` is legacy (fallback only).
|
|
24
|
+
- Feature templates live in `atris/features/_templates/`.
|
|
25
|
+
|
package/atris/GEMINI.md
CHANGED
|
@@ -12,6 +12,14 @@ atris atris.md
|
|
|
12
12
|
|
|
13
13
|
This is the Atris boot sequence. Show the output to the user, then respond naturally.
|
|
14
14
|
|
|
15
|
+
## MAPFIRST (Enforced)
|
|
16
|
+
|
|
17
|
+
**Before ANY file search/grep:**
|
|
18
|
+
1. READ `atris/MAP.md`
|
|
19
|
+
2. Search for your keyword in MAP
|
|
20
|
+
3. If found → go directly to file:line
|
|
21
|
+
4. If not found → grep ONCE, then UPDATE MAP.md
|
|
22
|
+
|
|
15
23
|
## Setup
|
|
16
24
|
|
|
17
25
|
- Read `atris/PERSONA.md` (tone + operating rules).
|
package/atris/GETTING_STARTED.md
CHANGED
|
@@ -12,7 +12,7 @@ atris/
|
|
|
12
12
|
├── atris.md (atrisDev protocol + specs)
|
|
13
13
|
├── CLAUDE.md (tells agents to follow atrisDev)
|
|
14
14
|
├── MAP.md (navigation - AI will generate)
|
|
15
|
-
└──
|
|
15
|
+
└── team/ (agent specs)
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
## Quick Start (2 Steps)
|
|
@@ -91,7 +91,7 @@ Your system's navigation guide. Contains:
|
|
|
91
91
|
|
|
92
92
|
**Use it:** When you need to find something fast or onboard new people
|
|
93
93
|
|
|
94
|
-
###
|
|
94
|
+
### team/navigator.md
|
|
95
95
|
Your "where is X?" expert. Ask it questions like:
|
|
96
96
|
- "Where is the authentication logic?"
|
|
97
97
|
- "Show me all API endpoints"
|
|
@@ -99,7 +99,7 @@ Your "where is X?" expert. Ask it questions like:
|
|
|
99
99
|
|
|
100
100
|
Always cites MAP.md with exact file:line references.
|
|
101
101
|
|
|
102
|
-
###
|
|
102
|
+
### team/executor.md
|
|
103
103
|
Your task runner. Give it work like:
|
|
104
104
|
- "Add authentication to the upload endpoint"
|
|
105
105
|
- "Fix the bug in user registration"
|
|
@@ -107,7 +107,7 @@ Your task runner. Give it work like:
|
|
|
107
107
|
|
|
108
108
|
Reads MAP.md, plans execution with file:line references, executes step-by-step.
|
|
109
109
|
|
|
110
|
-
###
|
|
110
|
+
### team/validator.md
|
|
111
111
|
Your quality gatekeeper. Runs after changes to:
|
|
112
112
|
- Check for breaking changes
|
|
113
113
|
- Update MAP.md if structure changed
|
package/atris/atris.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
1. Load context (ONE time, remember for session):
|
|
12
12
|
- `atris/logs/YYYY/YYYY-MM-DD.md` (today's journal)
|
|
13
13
|
- `atris/MAP.md` (navigation overview)
|
|
14
|
-
- `atris/
|
|
14
|
+
- `atris/team/*.md` (all agent specs)
|
|
15
15
|
|
|
16
16
|
2. Output this EXACT box:
|
|
17
17
|
|
|
@@ -108,7 +108,7 @@ plan → do → review
|
|
|
108
108
|
|
|
109
109
|
`atris next` = auto-selects agent based on journal state
|
|
110
110
|
|
|
111
|
-
Specs loaded at activate from `
|
|
111
|
+
Specs loaded at activate from `team/*.md`
|
|
112
112
|
|
|
113
113
|
---
|
|
114
114
|
|
|
@@ -143,7 +143,7 @@ Specs loaded at activate from `agent_team/*.md`
|
|
|
143
143
|
| `TODO.md` | Task queue (target: 0) |
|
|
144
144
|
| `logs/YYYY/MM-DD.md` | Journal (daily) |
|
|
145
145
|
| `PERSONA.md` | Communication style |
|
|
146
|
-
| `
|
|
146
|
+
| `team/` | Agent behaviors |
|
|
147
147
|
| `atrisDev.md` | Full spec (reference) |
|
|
148
148
|
|
|
149
149
|
---
|
|
@@ -10,3 +10,4 @@ Purpose: Capture short, actionable lessons after REVIEW misses.
|
|
|
10
10
|
|
|
11
11
|
## Entries
|
|
12
12
|
- 2026-01-04 | meta | JSON edits break easily on quote boundaries → use Read tool to verify after Edit on .json files
|
|
13
|
+
- 2026-01-28 | init | Meta-frameworks must be detected before base frameworks → Next.js check before React check (tests caught this)
|
package/atris/skills/README.md
CHANGED
|
@@ -9,28 +9,34 @@ Every process = **Skill + Policy**
|
|
|
9
9
|
- `skills/[name]/SKILL.md` — How to DO (process)
|
|
10
10
|
- `policies/[name].md` — How to REVIEW (validation)
|
|
11
11
|
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
Skills auto-detect via symlinks:
|
|
12
|
+
## Integration
|
|
15
13
|
|
|
14
|
+
### Claude Code
|
|
15
|
+
```bash
|
|
16
|
+
cd .claude/skills && ln -s ../../atris/skills/[name] [name]
|
|
16
17
|
```
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
|
|
19
|
+
### Codex
|
|
20
|
+
```bash
|
|
21
|
+
cp -r atris/skills/[name] ~/.codex/skills/
|
|
20
22
|
```
|
|
21
23
|
|
|
22
24
|
## Available Skills
|
|
23
25
|
|
|
24
26
|
| Skill | Description | Policy |
|
|
25
27
|
|-------|-------------|--------|
|
|
26
|
-
| atris |
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
28
|
+
| atris | Workflow enforcement + plan/do/review | `policies/ANTISLOP.md` |
|
|
29
|
+
| autopilot | PRD-driven autonomous execution | — |
|
|
30
|
+
| backend | Backend architecture anti-patterns | `policies/atris-backend.md` |
|
|
31
|
+
| design | Frontend aesthetics policy | `policies/atris-design.md` |
|
|
32
|
+
| email-agent | Gmail integration via AtrisOS | — |
|
|
33
|
+
| memory | Context and memory management | — |
|
|
34
|
+
| meta | Metacognition for agents | `policies/LESSONS.md` |
|
|
35
|
+
| writing | Essay process with gates | `policies/writing.md` |
|
|
36
|
+
| copy-editor | Detects and fixes AI writing patterns | - |
|
|
31
37
|
|
|
32
38
|
## Creating Skills
|
|
33
39
|
|
|
34
40
|
1. Create `atris/skills/[name]/SKILL.md`
|
|
35
|
-
2. Create `atris/policies/[name].md`
|
|
36
|
-
3.
|
|
41
|
+
2. Create `atris/policies/[name].md` (optional)
|
|
42
|
+
3. Install to your agent (see Integration above)
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: autopilot
|
|
3
|
+
description: PRD-driven autonomous execution - give it a task, it loops until done
|
|
4
|
+
triggers: [autopilot, autonomous, "get it done", "finish this", "ship it"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Autopilot Skill
|
|
8
|
+
|
|
9
|
+
Autonomous task execution. Plan → Do → Review loop until acceptance criteria pass.
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
|
|
13
|
+
- User says "get this done" or "ship it"
|
|
14
|
+
- User describes a feature/bug and wants hands-off execution
|
|
15
|
+
- Any task that can be validated with acceptance criteria
|
|
16
|
+
|
|
17
|
+
## Process
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
┌───────────────────────────────────────────────────────┐
|
|
21
|
+
│ INPUT: "Add dark mode toggle" │
|
|
22
|
+
│ │
|
|
23
|
+
│ 1. GENERATE PRD │
|
|
24
|
+
│ - Type: feature or bug (auto-detect) │
|
|
25
|
+
│ - Acceptance criteria (testable conditions) │
|
|
26
|
+
│ - Priority: 1 (single story) │
|
|
27
|
+
│ │
|
|
28
|
+
│ 2. LOOP (max 5 iterations) │
|
|
29
|
+
│ ┌──────────────────────────────────────┐ │
|
|
30
|
+
│ │ PLAN: Navigator creates tasks │ │
|
|
31
|
+
│ │ - Read MAP.md for file locations │ │
|
|
32
|
+
│ │ - ASCII diagram of approach │ │
|
|
33
|
+
│ │ - Add tasks to TODO.md │ │
|
|
34
|
+
│ │ - Signal: [PLAN_COMPLETE] │ │
|
|
35
|
+
│ ├──────────────────────────────────────┤ │
|
|
36
|
+
│ │ DO: Executor builds │ │
|
|
37
|
+
│ │ - Implement each task │ │
|
|
38
|
+
│ │ - Verify changes work │ │
|
|
39
|
+
│ │ - Commit changes │ │
|
|
40
|
+
│ │ - Signal: [DO_COMPLETE] │ │
|
|
41
|
+
│ ├──────────────────────────────────────┤ │
|
|
42
|
+
│ │ REVIEW: Validator checks │ │
|
|
43
|
+
│ │ - Check acceptance criteria │ │
|
|
44
|
+
│ │ - If fail: [REVIEW_FAILED] reason │ │
|
|
45
|
+
│ │ - If pass: <promise>COMPLETE</promise> │
|
|
46
|
+
│ └──────────────────────────────────────┘ │
|
|
47
|
+
│ │
|
|
48
|
+
│ 3. OUTPUT │
|
|
49
|
+
│ - prd.json: PRD with passes: true │
|
|
50
|
+
│ - progress.txt: Execution log │
|
|
51
|
+
│ - Journal: Completion logged │
|
|
52
|
+
└───────────────────────────────────────────────────────┘
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Acceptance Criteria Templates
|
|
56
|
+
|
|
57
|
+
**Feature:**
|
|
58
|
+
- Feature implemented and working as described
|
|
59
|
+
- Tests pass (if test suite exists)
|
|
60
|
+
- Build passes
|
|
61
|
+
- Code follows project patterns (check MAP.md)
|
|
62
|
+
|
|
63
|
+
**Bug:**
|
|
64
|
+
- Bug is fixed and no longer reproducible
|
|
65
|
+
- Regression test added (if applicable)
|
|
66
|
+
- Build passes
|
|
67
|
+
- No new bugs introduced
|
|
68
|
+
|
|
69
|
+
## Commands
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# With description
|
|
73
|
+
atris autopilot "Add dark mode toggle"
|
|
74
|
+
|
|
75
|
+
# Bug fix
|
|
76
|
+
atris autopilot --bug "Login fails on Safari"
|
|
77
|
+
|
|
78
|
+
# From TODO.md backlog
|
|
79
|
+
atris autopilot --from-todo
|
|
80
|
+
|
|
81
|
+
# With options
|
|
82
|
+
atris autopilot "Add feature" --iterations=3 --verbose
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Stop Conditions
|
|
86
|
+
|
|
87
|
+
1. `<promise>COMPLETE</promise>` — All acceptance criteria met
|
|
88
|
+
2. Max iterations reached (default: 5)
|
|
89
|
+
3. Error that can't be recovered
|
|
90
|
+
|
|
91
|
+
## Rules
|
|
92
|
+
|
|
93
|
+
- ONE task at a time
|
|
94
|
+
- Verify before marking passes: true
|
|
95
|
+
- Minimal changes only
|
|
96
|
+
- Check MAP.md before touching code
|
|
97
|
+
- Log to journal when complete
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Start autonomous loop - plan/do/review until done
|
|
3
|
+
arguments:
|
|
4
|
+
- name: task
|
|
5
|
+
description: What to build (e.g., "Add dark mode toggle")
|
|
6
|
+
required: true
|
|
7
|
+
- name: max-iterations
|
|
8
|
+
description: Max loops before stopping (default 10)
|
|
9
|
+
required: false
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Atris Autopilot
|
|
13
|
+
|
|
14
|
+
You are entering **autonomous mode**. You will loop until the task is complete or max iterations reached.
|
|
15
|
+
|
|
16
|
+
## Setup
|
|
17
|
+
|
|
18
|
+
First, create the state file:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
mkdir -p .claude
|
|
22
|
+
cat > .claude/atris-autopilot.state.md << 'EOF'
|
|
23
|
+
---
|
|
24
|
+
iteration: 1
|
|
25
|
+
max_iterations: $ARGUMENTS.max-iterations|default:10
|
|
26
|
+
completion_promise: <promise>COMPLETE</promise>
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
$ARGUMENTS.task
|
|
30
|
+
EOF
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Your Task
|
|
34
|
+
|
|
35
|
+
**$ARGUMENTS.task**
|
|
36
|
+
|
|
37
|
+
## Process
|
|
38
|
+
|
|
39
|
+
Each iteration:
|
|
40
|
+
1. **PLAN** — Read MAP.md, identify files, create approach
|
|
41
|
+
2. **DO** — Implement ONE thing, commit changes
|
|
42
|
+
3. **REVIEW** — Check acceptance criteria
|
|
43
|
+
|
|
44
|
+
## Acceptance Criteria
|
|
45
|
+
|
|
46
|
+
- Task implemented and working
|
|
47
|
+
- Tests pass (if they exist)
|
|
48
|
+
- Build passes
|
|
49
|
+
- Code follows patterns in MAP.md
|
|
50
|
+
|
|
51
|
+
## Rules
|
|
52
|
+
|
|
53
|
+
- ONE thing per iteration (trust the loop)
|
|
54
|
+
- Search MAP.md before grepping
|
|
55
|
+
- Search codebase before assuming not implemented
|
|
56
|
+
- Update TODO.md with progress
|
|
57
|
+
- Log learnings to atris/logs/
|
|
58
|
+
|
|
59
|
+
## Completion
|
|
60
|
+
|
|
61
|
+
When ALL acceptance criteria pass, output exactly:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
<promise>COMPLETE</promise>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
This signals the stop hook to end the loop.
|
|
68
|
+
|
|
69
|
+
## Start
|
|
70
|
+
|
|
71
|
+
Read atris/MAP.md now. Then begin iteration 1.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Atris Autopilot Stop Hook
|
|
3
|
+
# Catches exit, re-injects with MAP/TODO context
|
|
4
|
+
|
|
5
|
+
STATE_FILE=".claude/atris-autopilot.state.md"
|
|
6
|
+
|
|
7
|
+
# Read stdin JSON for transcript path
|
|
8
|
+
INPUT=$(cat)
|
|
9
|
+
TRANSCRIPT_PATH=$(echo "$INPUT" | jq -r '.transcript_path // empty')
|
|
10
|
+
STOP_HOOK_ACTIVE=$(echo "$INPUT" | jq -r '.stop_hook_active // false')
|
|
11
|
+
|
|
12
|
+
# Prevent infinite loops
|
|
13
|
+
if [ "$STOP_HOOK_ACTIVE" = "true" ]; then
|
|
14
|
+
exit 0
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
# No state file = not in autopilot mode
|
|
18
|
+
if [ ! -f "$STATE_FILE" ]; then
|
|
19
|
+
exit 0
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
# Parse state from YAML frontmatter
|
|
23
|
+
iteration=$(grep "^iteration:" "$STATE_FILE" | cut -d' ' -f2)
|
|
24
|
+
max_iterations=$(grep "^max_iterations:" "$STATE_FILE" | cut -d' ' -f2)
|
|
25
|
+
|
|
26
|
+
# Validate numbers
|
|
27
|
+
if ! [[ "$iteration" =~ ^[0-9]+$ ]] || ! [[ "$max_iterations" =~ ^[0-9]+$ ]]; then
|
|
28
|
+
echo '{"decision": "block", "reason": "Error: Invalid state file. Run /cancel-autopilot and restart."}'
|
|
29
|
+
exit 0
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
# Max iterations reached - allow exit
|
|
33
|
+
if [ "$iteration" -ge "$max_iterations" ]; then
|
|
34
|
+
rm -f "$STATE_FILE"
|
|
35
|
+
exit 0
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
# Check transcript for completion promise
|
|
39
|
+
if [ -n "$TRANSCRIPT_PATH" ] && [ -f "$TRANSCRIPT_PATH" ]; then
|
|
40
|
+
if grep -q "<promise>COMPLETE</promise>" "$TRANSCRIPT_PATH"; then
|
|
41
|
+
rm -f "$STATE_FILE"
|
|
42
|
+
exit 0
|
|
43
|
+
fi
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
# Increment iteration
|
|
47
|
+
new_iteration=$((iteration + 1))
|
|
48
|
+
sed -i.bak "s/^iteration:.*/iteration: $new_iteration/" "$STATE_FILE"
|
|
49
|
+
rm -f "${STATE_FILE}.bak"
|
|
50
|
+
|
|
51
|
+
# Extract original prompt
|
|
52
|
+
prompt=$(sed -n '/^---$/,/^---$/!p' "$STATE_FILE" | tail -n +2)
|
|
53
|
+
|
|
54
|
+
# Load context
|
|
55
|
+
map_context=""
|
|
56
|
+
[ -f "atris/MAP.md" ] && map_context=$(head -200 atris/MAP.md)
|
|
57
|
+
|
|
58
|
+
todo_context=""
|
|
59
|
+
[ -f "atris/TODO.md" ] && todo_context=$(cat atris/TODO.md)
|
|
60
|
+
|
|
61
|
+
# Build reason (this is what Claude sees)
|
|
62
|
+
reason="[AUTOPILOT ITERATION $new_iteration/$max_iterations]
|
|
63
|
+
|
|
64
|
+
TASK: $prompt
|
|
65
|
+
|
|
66
|
+
CONTEXT:
|
|
67
|
+
- MAP.md loaded (use for navigation)
|
|
68
|
+
- TODO.md loaded (track progress)
|
|
69
|
+
|
|
70
|
+
RULES:
|
|
71
|
+
- ONE thing this iteration
|
|
72
|
+
- Search before assuming not implemented
|
|
73
|
+
- When ALL done: output <promise>COMPLETE</promise>
|
|
74
|
+
|
|
75
|
+
Continue working."
|
|
76
|
+
|
|
77
|
+
# Block exit, provide reason
|
|
78
|
+
echo "{\"decision\": \"block\", \"reason\": $(echo "$reason" | jq -Rs .)}"
|
|
79
|
+
exit 0
|