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 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.
@@ -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
- └── agent_team/ (agent specs)
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
- ### agent_team/navigator.md
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
- ### agent_team/executor.md
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
- ### agent_team/validator.md
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
- **Process:** Complete tasks in order of high reward, low risk first.
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
- npm update -g atris
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
- ## Latest Updates
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
- See [releases](https://github.com/atrislabs/atris.md/releases) for full changelog.
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.md](https://github.com/atrislabs/atris.git)
68
+ **License:** MIT | **Repo:** [github.com/atrislabs/atris](https://github.com/atrislabs/atris.git)
@@ -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).
@@ -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
- └── agent_team/ (agent specs)
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
- ### agent_team/navigator.md
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
- ### agent_team/executor.md
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
- ### agent_team/validator.md
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/agent_team/*.md` (all agent specs)
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 `agent_team/*.md`
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
- | `agent_team/` | Agent behaviors |
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)
@@ -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
- ## Claude Integration
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
- atris/skills/writing/SKILL.md ← source of truth
18
-
19
- .claude/skills/writing/ ← symlink
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 | Atris workflow enforcement + plan/do/review | `policies/ANTISLOP.md` |
27
- | meta | Metacognition for agents - how to think about thinking | `policies/LESSONS.md` |
28
- | design | Frontend aesthetics - avoid generic AI look | `policies/atris-design.md` |
29
- | backend | Backend architecture - prevent over-engineering | `policies/atris-backend.md` |
30
- | writing | Essay process with approval gates | `policies/writing.md` |
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. Symlink: `cd .claude/skills && ln -s ../../atris/skills/[name] [name]`
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