atris 2.1.0 → 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/PERSONA.md +5 -1
- package/README.md +14 -6
- package/atris/AGENTS.md +25 -0
- package/atris/GEMINI.md +8 -0
- package/atris/policies/LESSONS.md +1 -0
- package/atris/skills/README.md +19 -14
- package/atris/skills/autopilot/SKILL.md +1 -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/team/executor.md +26 -0
- package/atris/team/navigator.md +42 -5
- package/atris/team/validator.md +29 -3
- package/atris.md +20 -1
- package/bin/atris.js +45 -4
- package/commands/auth.js +24 -4
- package/commands/init.js +127 -17
- package/commands/integrations.js +330 -0
- package/commands/sync.js +64 -19
- package/package.json +4 -2
- package/utils/auth.js +33 -0
- package/commands/stubs.txt +0 -10
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/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).
|
|
@@ -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,29 +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
|
-
| autopilot | PRD-driven autonomous execution
|
|
28
|
-
|
|
|
29
|
-
| design | Frontend aesthetics
|
|
30
|
-
|
|
|
31
|
-
|
|
|
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 | - |
|
|
32
37
|
|
|
33
38
|
## Creating Skills
|
|
34
39
|
|
|
35
40
|
1. Create `atris/skills/[name]/SKILL.md`
|
|
36
|
-
2. Create `atris/policies/[name].md`
|
|
37
|
-
3.
|
|
41
|
+
2. Create `atris/policies/[name].md` (optional)
|
|
42
|
+
3. Install to your agent (see Integration above)
|
|
@@ -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
|