atris 3.15.13 → 3.15.22
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/AGENTS.md +84 -8
- package/README.md +5 -1
- package/atris/AGENTS.md +46 -1
- package/atris/CLAUDE.md +36 -1
- package/atris/GEMINI.md +14 -1
- package/atris/atris.md +12 -1
- package/atris/atrisDev.md +3 -2
- package/atris/context/README.md +11 -0
- package/atris/features/company-brain-sync/validate.md +5 -5
- package/atris/learnings.jsonl +1 -0
- package/atris/policies/atris-design.md +2 -0
- package/atris/skills/aeo/SKILL.md +2 -2
- package/atris/skills/atris/SKILL.md +15 -62
- package/atris/skills/design/SKILL.md +2 -0
- package/atris/skills/imessage/SKILL.md +19 -2
- package/atris/skills/loop/SKILL.md +6 -5
- package/atris/skills/magic-inbox/SKILL.md +1 -1
- package/atris/team/_template/MEMBER.md +23 -1
- package/atris/team/brainstormer/START_HERE.md +6 -0
- package/atris/team/executor/MEMBER.md +13 -0
- package/atris/team/executor/START_HERE.md +6 -0
- package/atris/team/launcher/START_HERE.md +6 -0
- package/atris/team/mission-lead/MEMBER.md +39 -0
- package/atris/team/mission-lead/MISSION.md +33 -0
- package/atris/team/mission-lead/START_HERE.md +6 -0
- package/atris/team/navigator/MEMBER.md +11 -0
- package/atris/team/navigator/START_HERE.md +6 -0
- package/atris/team/opus-overnight/MEMBER.md +39 -0
- package/atris/team/opus-overnight/MISSION.md +61 -0
- package/atris/team/opus-overnight/START_HERE.md +6 -0
- package/atris/team/opus-overnight/STEERING.md +35 -0
- package/atris/team/researcher/START_HERE.md +6 -0
- package/atris/team/validator/MEMBER.md +26 -6
- package/atris/team/validator/START_HERE.md +6 -0
- package/atris/wiki/concepts/agent-activation-contract.md +79 -0
- package/atris/wiki/concepts/workspace-initialization-contract.md +73 -0
- package/atris/wiki/index.md +27 -0
- package/atris/wiki/sources/atris-labs-2026-05-10.txt +17 -0
- package/atris/wiki/sources/atris-labs-goals-2026-05-10.txt +15 -0
- package/atris/wiki/sources/atrisos-generative-ui-product-surface-2026-05-10.txt +10 -0
- package/atris/wiki/sources/jack-dorsey-2026-05-10.txt +12 -0
- package/atris.md +49 -13
- package/bin/atris.js +660 -22
- package/commands/activate.js +12 -3
- package/commands/aeo.js +1 -1
- package/commands/align.js +10 -10
- package/commands/analytics.js +9 -4
- package/commands/app.js +2 -0
- package/commands/apps.js +276 -0
- package/commands/auth.js +1 -1
- package/commands/autopilot.js +74 -5
- package/commands/brain.js +536 -61
- package/commands/brainstorm.js +12 -12
- package/commands/business-sync.js +142 -24
- package/commands/clean.js +9 -6
- package/commands/codex-goal.js +311 -0
- package/commands/errors.js +11 -1
- package/commands/feedback.js +55 -17
- package/commands/fork.js +2 -2
- package/commands/gm.js +376 -0
- package/commands/init.js +80 -3
- package/commands/integrations.js +524 -0
- package/commands/learn.js +25 -16
- package/commands/lesson.js +41 -0
- package/commands/lifecycle.js +2 -2
- package/commands/member.js +2416 -9
- package/commands/mission.js +1776 -0
- package/commands/now.js +48 -7
- package/commands/play.js +425 -0
- package/commands/publish.js +2 -1
- package/commands/pull.js +72 -29
- package/commands/push.js +199 -17
- package/commands/review.js +51 -13
- package/commands/skill.js +2 -2
- package/commands/soul.js +19 -13
- package/commands/status.js +6 -1
- package/commands/sync.js +5 -4
- package/commands/task.js +1041 -147
- package/commands/terminal.js +5 -5
- package/commands/verify.js +7 -5
- package/commands/visualize.js +7 -0
- package/commands/wiki.js +53 -16
- package/commands/workflow.js +298 -54
- package/commands/workspace-clean.js +1 -1
- package/commands/worktree.js +468 -0
- package/commands/xp.js +1608 -0
- package/lib/manifest.js +34 -4
- package/lib/scorecard.js +3 -2
- package/lib/task-db.js +408 -27
- package/lib/todo-fallback.js +28 -2
- package/lib/todo.js +5 -3
- package/package.json +23 -2
- package/utils/update-check.js +51 -1
package/AGENTS.md
CHANGED
|
@@ -1,25 +1,66 @@
|
|
|
1
1
|
# AGENTS.md — Universal Agent Instructions
|
|
2
2
|
|
|
3
|
-
> Works with: Claude Code, Cursor, Codex, Windsurf, and any AI coding agent.
|
|
3
|
+
> Works with: Claude Code, Cursor, Codex, OpenClaw, Windsurf, and any AI coding agent.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
atris
|
|
9
|
+
atris task list --status open
|
|
10
|
+
atris task claim <id> --as <agent>
|
|
9
11
|
```
|
|
10
12
|
|
|
11
|
-
Run
|
|
13
|
+
Run `atris` first. It prints repo state, the files to read, and the next command.
|
|
14
|
+
|
|
15
|
+
If there is no existing task, create one before editing:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
atris task new "<small concrete title>" --tag <area>
|
|
19
|
+
atris task claim <id> --as <agent>
|
|
20
|
+
```
|
|
12
21
|
|
|
13
22
|
## Core Files
|
|
14
23
|
|
|
24
|
+
Atris is the source of truth. This file is only an adapter for tools that read
|
|
25
|
+
`AGENTS.md`; do not turn it into a parallel brain. Durable policy, workflow,
|
|
26
|
+
task truth, proof, review, and backend/cloud sync all flow through Atris.
|
|
27
|
+
|
|
15
28
|
| File | Purpose |
|
|
16
29
|
|------|---------|
|
|
30
|
+
| `atris/atris.md` | Protocol/backbone for this workspace |
|
|
17
31
|
| `atris/PERSONA.md` | Communication style (read first) |
|
|
18
32
|
| `atris task` | Current tasks, claims, dialogue, proof |
|
|
19
33
|
| `.atris/state/tasks.projection.json` | Readable task projection for UIs/agents |
|
|
20
34
|
| `atris/TODO.md` | Rendered/legacy task view only |
|
|
21
35
|
| `atris/MAP.md` | Navigation (where is X?) |
|
|
22
36
|
|
|
37
|
+
## Agent Contract
|
|
38
|
+
|
|
39
|
+
Every agent should leave four artifacts another agent can trust:
|
|
40
|
+
|
|
41
|
+
| Artifact | Where |
|
|
42
|
+
|----------|-------|
|
|
43
|
+
| Objective | `atris task note <id> "Goal / files / done / check"` |
|
|
44
|
+
| Navigation | `atris/MAP.md` when a new route or file location is learned |
|
|
45
|
+
| Change | Small git diff in declared files only |
|
|
46
|
+
| Proof ready | `atris task ready <id> --proof "<commands or receipt>"` |
|
|
47
|
+
| Human accept | `atris task accept <id>` |
|
|
48
|
+
|
|
49
|
+
Do not rely on chat context. Put the task, file pointers, and proof on disk.
|
|
50
|
+
Do not write new operating doctrine here first; add it to Atris policy, skills,
|
|
51
|
+
wiki, or `atris/atris.md`, then regenerate this adapter if needed.
|
|
52
|
+
|
|
53
|
+
Native goals and task approval are separate gates:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
Agent proof ready -> native goal can complete
|
|
57
|
+
Human accept -> task Done + AgentXP awarded
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Always-on agents should move proof-backed work to Review, complete their native
|
|
61
|
+
goal, then continue the mission loop with the next goal. They must not run
|
|
62
|
+
`atris task accept` or claim AgentXP unless a human approved the proof.
|
|
63
|
+
|
|
23
64
|
## Workflow
|
|
24
65
|
|
|
25
66
|
```
|
|
@@ -28,6 +69,35 @@ BUILD → atris do (execute tasks)
|
|
|
28
69
|
CHECK → atris review (verify + cleanup)
|
|
29
70
|
```
|
|
30
71
|
|
|
72
|
+
## Parallel Member Worktrees
|
|
73
|
+
|
|
74
|
+
When multiple members, Codex/Claude subagents, or other agents may touch a repo, start in an isolated checkout:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
atris worktree guide
|
|
78
|
+
atris worktree start --member <member> --task "<short task>" --claim
|
|
79
|
+
atris worktree start --agent <subagent> --task "<short task>"
|
|
80
|
+
cd <printed path>
|
|
81
|
+
atris worktree ship --message "<commit summary>" --verify "<test command>" --merge
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
This ties member/agent identity, mission/member state, branch name, isolated checkout, optional Swarlo claim, verification, push, PR, and merge together. Use `atris worktree status` before broad staging or cleanup.
|
|
85
|
+
|
|
86
|
+
## Mission Autonomy
|
|
87
|
+
|
|
88
|
+
Use `atris mission` when work should survive this chat or run as an autonomous loop.
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
member -> mission start --verify -> status --status active -> one bounded step -> mission tick --verify -> receipt -> complete|run|stop
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
- Start current-agent work: `atris mission start "<objective>" --owner <member> --runner codex_goal --lane code --verify "<cmd>" --stop "<condition>"`
|
|
95
|
+
- Start headless Claude work: add `--runner claude --cadence "15m" --always-on`, then use `atris mission run <id> --max-ticks 4 --complete-on-pass`.
|
|
96
|
+
- Resume: `atris mission status --status active --json`, then pick the mission matching your owner/member.
|
|
97
|
+
- Prove: after one bounded step, run `atris mission tick <id> --verify --summary "<what changed>"`.
|
|
98
|
+
- Close: if the verifier passes, run `atris mission complete <id> --proof "<receipt_path>"`; if current-agent work should keep going, repeat status -> step -> tick.
|
|
99
|
+
- Rollout: `atrisos-backend` and `atrisos-web` agents must check active missions before picking work; if no active mission exists and autonomy was requested, create one with owner, verifier, lane, and stop condition first.
|
|
100
|
+
|
|
31
101
|
## Rules
|
|
32
102
|
|
|
33
103
|
- [ ] 3-4 sentences max per response
|
|
@@ -35,8 +105,12 @@ CHECK → atris review (verify + cleanup)
|
|
|
35
105
|
- [ ] Check MAP.md before touching code
|
|
36
106
|
- [ ] Run `atris task list` or `atris task next` before picking work
|
|
37
107
|
- [ ] Claim tasks with `atris task claim <id> --as <agent>`
|
|
38
|
-
- [ ]
|
|
108
|
+
- [ ] Move agent-completed work to Review via `atris task ready <id> --proof "..."`
|
|
109
|
+
- [ ] Complete native Codex/Claude goals after proof is in Review, so always-on work can continue
|
|
110
|
+
- [ ] Only use `atris task accept <id>` when the human has approved the proof
|
|
111
|
+
- [ ] Keep durable learning in Atris-owned policy/skill/wiki/task state; keep `AGENTS.md` as a generated/pointer layer
|
|
39
112
|
- [ ] Treat `atris/TODO.md` as a rendered view; do not manually use it as the source of truth
|
|
113
|
+
- [ ] Use `atris-labs` for the Atris Labs business computer slug in docs and links
|
|
40
114
|
|
|
41
115
|
## Anti-patterns
|
|
42
116
|
|
|
@@ -56,22 +130,24 @@ CHECK → atris review (verify + cleanup)
|
|
|
56
130
|
This workspace has a compiled agent brain.
|
|
57
131
|
|
|
58
132
|
On session start, activate it first:
|
|
59
|
-
`atris brain activate --root /Users/keshavrao/arena/atris-cli --verify`
|
|
133
|
+
`atris brain activate --root /Users/keshavrao/arena/empire/atris-cli --verify`
|
|
60
134
|
|
|
61
135
|
Load these first:
|
|
62
136
|
- `atris/now.md`
|
|
63
137
|
- `atris/brain/STATUS.md`
|
|
64
138
|
- `atris/brain/self_improvement_ledger.md`
|
|
65
|
-
- `atris/wiki/concepts/
|
|
66
|
-
- `atris/skills/
|
|
139
|
+
- `atris/wiki/concepts/agent-activation-contract.md`
|
|
140
|
+
- `atris/skills/atris/SKILL.md`
|
|
141
|
+
- `atris/PERSONA.md`
|
|
67
142
|
- `atris/MAP.md`
|
|
68
143
|
- `atris/TODO.md`
|
|
144
|
+
- `atris/wiki/index.md`
|
|
69
145
|
|
|
70
|
-
First-message rule:
|
|
146
|
+
First-message rule: lead with the move before writing to the operator.
|
|
71
147
|
Purpose: optimize for decision-speed; lead with the move, then use descriptions only when they help the operator act.
|
|
72
148
|
Shape: `<operator>, today is about <move>` -> `I picked this because <why now>` -> `Ready: <draft/proof/context>` -> `Go deeper: <paths>`.
|
|
73
149
|
Definitions: operator = current person or agent; move = one concrete high-leverage workflow; why now = business reason; ready = prepared action or proof; paths = 2-4 optional deeper views.
|
|
74
150
|
|
|
75
151
|
Re-run after meaningful work:
|
|
76
|
-
`atris brain compile --root /Users/keshavrao/arena/atris-cli`
|
|
152
|
+
`atris brain compile --root /Users/keshavrao/arena/empire/atris-cli`
|
|
77
153
|
<!-- ATRIS_BRAIN_COMPILE:END -->
|
package/README.md
CHANGED
|
@@ -138,6 +138,7 @@ atris business record atris/reports/2026-04-12-operator-recap.md --outcome mixed
|
|
|
138
138
|
| `atris log` | Add inbox items to today's journal |
|
|
139
139
|
| `atris status` | Show active work and completions |
|
|
140
140
|
| `atris task` | Durable local task state with claims, dialogue, review episodes, JSON export, TODO import, TODO render, board, and sync dry-run |
|
|
141
|
+
| `atris codex-goal` | Inspect or clear a completed native Codex thread goal after writing a backup, row dump, and receipt |
|
|
141
142
|
| `atris learn` | Manage structured learnings |
|
|
142
143
|
| `atris ingest` | Stage raw evidence into `atris/context/` and compile into `atris/wiki/` |
|
|
143
144
|
| `atris loop` | Refresh wiki health, stale/orphan signals, and next ingest candidates |
|
|
@@ -154,7 +155,9 @@ atris business record atris/reports/2026-04-12-operator-recap.md --outcome mixed
|
|
|
154
155
|
- `atris wiki --private` stores local-only sensitive notes under `.atris/presidio/`
|
|
155
156
|
- `atris loop` refreshes `atris/wiki/STATUS.md` and `atris/wiki/log.md`, flags stale/orphan pages, and suggests the next ingest
|
|
156
157
|
- `atris activate` loads the current wiki status so the next session starts with project memory, not just tasks
|
|
157
|
-
- `atris
|
|
158
|
+
- `atris member` keeps team-member identity and learning local-first: `MEMBER.md` is the role contract, `goals.json` is the machine-readable goal/experiment state, `goals.md` is the human readout, and `logs/YYYY-MM-DD.md` records what happened. Use `atris member goal`, `tick`, `status`, `block`, and `review --value 1..5` to test whether a member is making useful progress or needs the operator/orchestrator.
|
|
159
|
+
- `atris codex-goal` is the guarded bridge for native Codex `/goal`: `status` reads `~/.codex/state_5.sqlite`, while `reset --thread <id> --confirm-complete-goal-reset` backs up the DB, dumps the exact completed `thread_goals` row, deletes only that completed row, and writes a receipt. The next native goal must still be created by the live Codex thread; Atris Mission/member goals remain the durable loop state.
|
|
160
|
+
- `atris task` keeps durable local task state and append-only events for agents while `atris/TODO.md` remains a readable regenerated project board. Human views use semantic refs like `OBL-18`; commands accept `OBL-18`, `OBL18`, full 26-char task IDs, or any unique legacy prefix, while JSON/API keep the full `id` canonical and expose `display_id` plus `legacy_ref`. Use `atris task new`, `atris task delegate "..." --to <owner>`, `atris task day`, `atris task next`, `atris task say`, and `atris task ready <id> --proof "..."` for the agent loop; once proof is in Review, the agent may complete its native goal and continue the mission loop. Human approval uses `atris task accept <id>` to move the task to Done and award Career XP, and `atris task revise <id> --note "..."` sends work back to Do. Add `--json` for headless agents. Use `atris task serve` to open the local Task Factory board with goals, work streams, lineage, proof, lessons, and the compounding chain. Every change refreshes compact `.atris/state/tasks.projection.json` for web/desktop; use `atris task show <ref>` or `atris task events --all` for the full ledger. Use `atris task sync --dry-run` to preview the canonical Supabase/Swarlo task writes before any cloud mutation. Use `--via swarlo` on delegation when the live coordination layer should claim/report from the same task record. Use `--create-next` with review/finish to turn a `--next` suggestion into the next durable task. Use `atris task setup --import-todo` to bootstrap, `atris task review` to write an RSI episode, and `atris task render` to rebuild markdown if it gets clobbered. In cloud business workspaces, Supabase `tasks` is the source of truth and Swarlo is the live claim/report layer.
|
|
158
161
|
- `atris experiments` runs small test packs in `atris/experiments/`
|
|
159
162
|
- `atris pull` and `atris push` sync cloud workspaces and journals
|
|
160
163
|
- `atris live` keeps a business brain fresh by checking/fixing the workspace, pushing local state, pulling cloud state, and pushing again after local changes go quiet
|
|
@@ -164,6 +167,7 @@ atris business record atris/reports/2026-04-12-operator-recap.md --outcome mixed
|
|
|
164
167
|
Under the hood, Atris can keep score on real repo work.
|
|
165
168
|
|
|
166
169
|
- Tasks can carry a `Verify:` command, so work can end on a deterministic check instead of pure prose.
|
|
170
|
+
- Plan, do, and review now carry the same Confidence Gate: find every plausible loophole, patch it with source/proof/verifier/owner/rollback, or name it as residual risk before advancing.
|
|
167
171
|
- `atris autopilot` can run that check after review and record the result in the journal.
|
|
168
172
|
- Future task picks can use recent results, so Atris learns from repo-local history without claiming model retraining.
|
|
169
173
|
|
package/atris/AGENTS.md
CHANGED
|
@@ -4,12 +4,56 @@ Instructions for coding agents working inside this repository.
|
|
|
4
4
|
|
|
5
5
|
## Workflow (Default)
|
|
6
6
|
|
|
7
|
+
Atris is the source of truth. This file is only an adapter for agents that read
|
|
8
|
+
`AGENTS.md`; do not turn it into a parallel brain. Durable policy, workflow,
|
|
9
|
+
task truth, proof, review, and backend/cloud sync all flow through Atris.
|
|
10
|
+
|
|
7
11
|
1. Read `atris/PERSONA.md` and follow it (anti-slop, 3–4 sentences, ASCII for planning).
|
|
8
12
|
2. Run `atris activate` to load the current working context.
|
|
9
13
|
3. Use `atris/MAP.md` for navigation (file:line refs) when present.
|
|
10
|
-
4. Track work
|
|
14
|
+
4. Track work with `atris task`; use `atris/TODO.md` only as the rendered fallback view.
|
|
11
15
|
5. Preferred loop: `atris plan` → `atris do` → `atris review`.
|
|
12
16
|
|
|
17
|
+
## Mission Autonomy
|
|
18
|
+
|
|
19
|
+
Use `atris mission` when work should survive this chat or run as an autonomous loop.
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
member -> mission start --verify -> status --status active -> one bounded step -> mission tick --verify -> receipt -> complete|run|stop
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- Start current-agent work: `atris mission start "<objective>" --owner <member> --runner codex_goal --lane code --verify "<cmd>" --stop "<condition>"`
|
|
26
|
+
- Start headless Claude work: add `--runner claude --cadence "15m" --always-on`, then use `atris mission run <id> --max-ticks 4 --complete-on-pass`.
|
|
27
|
+
- Resume: `atris mission status --status active --json`, then pick the mission matching your owner/member.
|
|
28
|
+
- Prove: after one bounded step, run `atris mission tick <id> --verify --summary "<what changed>"`.
|
|
29
|
+
- Close: if the verifier passes, run `atris mission complete <id> --proof "<receipt_path>"`; if current-agent work should keep going, repeat status -> step -> tick.
|
|
30
|
+
|
|
31
|
+
## Agent Contract
|
|
32
|
+
|
|
33
|
+
Leave four durable artifacts:
|
|
34
|
+
|
|
35
|
+
| Artifact | Where |
|
|
36
|
+
|----------|-------|
|
|
37
|
+
| Objective | `atris task note <id> "Goal / files / done / check"` |
|
|
38
|
+
| Navigation | `atris/MAP.md` when a route or file location is learned |
|
|
39
|
+
| Change | Small git diff in declared files only |
|
|
40
|
+
| Proof ready | `atris task ready <id> --proof "<commands or receipt>"` |
|
|
41
|
+
| Human accept | `atris task accept <id>` |
|
|
42
|
+
|
|
43
|
+
Native goals and task approval are separate gates:
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
Agent proof ready -> native goal can complete
|
|
47
|
+
Human accept -> task Done + Career XP awarded
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Always-on agents should move proof-backed work to Review, complete their native
|
|
51
|
+
goal, then continue the mission loop with the next goal. They must not run
|
|
52
|
+
`atris task accept` or claim Career XP unless a human approved the proof.
|
|
53
|
+
|
|
54
|
+
Do not write new operating doctrine here first. Add it to Atris policy, skills,
|
|
55
|
+
wiki, or `atris/atris.md`, then regenerate this adapter if needed.
|
|
56
|
+
|
|
13
57
|
## Repo Layout
|
|
14
58
|
|
|
15
59
|
- `bin/atris.js` — CLI entrypoint + routing + natural-language entry.
|
|
@@ -17,6 +61,7 @@ Instructions for coding agents working inside this repository.
|
|
|
17
61
|
- `lib/` — journal/task/file helpers (`journal`, `file-ops`, `state-detection`).
|
|
18
62
|
- `utils/` — auth/API/config/update-check and cloud execution helpers.
|
|
19
63
|
- `atris.md` — master spec template copied into user projects.
|
|
64
|
+
- `atris/atris.md` — workspace protocol/backbone.
|
|
20
65
|
|
|
21
66
|
## Notes
|
|
22
67
|
|
package/atris/CLAUDE.md
CHANGED
|
@@ -28,10 +28,31 @@ This displays the Atris welcome visualization. Show it to the user, then respond
|
|
|
28
28
|
- Run `atris activate` to load the current working context.
|
|
29
29
|
- If `atris/wiki/STATUS.md` exists, treat it as the current memory snapshot for the project.
|
|
30
30
|
|
|
31
|
+
## Agent Contract
|
|
32
|
+
|
|
33
|
+
This project shape is agent-agnostic: Claude Code, Cursor, Codex, OpenClaw, Windsurf, and similar agents should all use the same disk-backed contract.
|
|
34
|
+
|
|
35
|
+
Atris is the source of truth. This file is only an adapter for Claude Code; do not turn it into a parallel brain. Durable policy, workflow, task truth, proof, review, and backend/cloud sync all flow through Atris.
|
|
36
|
+
|
|
37
|
+
Before edits, claim or create one small task with `atris task`, read `atris/MAP.md`, and write the goal/files/done/check contract into task dialogue. After edits, move proof-backed work to Review with `atris task ready <id> --proof "<commands or receipt>"`; chat-only proof does not count.
|
|
38
|
+
|
|
39
|
+
Native goals and task approval are separate gates:
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
Agent proof ready -> native goal can complete
|
|
43
|
+
Human accept -> task Done + AgentXP awarded
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Always-on agents should complete their native goal after proof is in Review, then continue the mission loop with the next goal. They must not run `atris task accept` or claim AgentXP unless a human approved the proof.
|
|
47
|
+
|
|
48
|
+
Do not write new operating doctrine here first. Add it to Atris policy, skills, wiki, or `atris/atris.md`, then regenerate this adapter if needed.
|
|
49
|
+
|
|
31
50
|
## Core Files
|
|
32
51
|
|
|
33
52
|
- `atris/MAP.md` — navigation (use file:line references)
|
|
34
|
-
- `atris
|
|
53
|
+
- `atris task` — current tasks, claims, dialogue, and proof
|
|
54
|
+
- `.atris/state/tasks.projection.json` — readable task projection for UIs/agents
|
|
55
|
+
- `atris/TODO.md` — rendered/legacy task view only
|
|
35
56
|
- `atris/logs/YYYY/YYYY-MM-DD.md` — journal (Inbox + Completed)
|
|
36
57
|
- `atris/wiki/STATUS.md` — current wiki health and next ingest targets
|
|
37
58
|
- `atris/wiki/index.md` — local knowledge index
|
|
@@ -41,6 +62,20 @@ This displays the Atris welcome visualization. Show it to the user, then respond
|
|
|
41
62
|
|
|
42
63
|
`atris plan` → `atris do` → `atris review`
|
|
43
64
|
|
|
65
|
+
## Mission Autonomy
|
|
66
|
+
|
|
67
|
+
Use `atris mission` when work should survive this chat or run as an autonomous loop.
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
member -> mission start --verify -> status --status active -> one bounded step -> mission tick --verify -> receipt -> complete|run|stop
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
- Start current-agent work: `atris mission start "<objective>" --owner <member> --runner codex_goal --lane code --verify "<cmd>" --stop "<condition>"`
|
|
74
|
+
- Start headless Claude work: add `--runner claude --cadence "15m" --always-on`, then use `atris mission run <id> --max-ticks 4 --complete-on-pass`.
|
|
75
|
+
- Resume: `atris mission status --status active --json`, then pick the mission matching your owner/member.
|
|
76
|
+
- Prove: after one bounded step, run `atris mission tick <id> --verify --summary "<what changed>"`.
|
|
77
|
+
- Close: if the verifier passes, run `atris mission complete <id> --proof "<receipt_path>"`; if current-agent work should keep going, repeat status -> step -> tick.
|
|
78
|
+
|
|
44
79
|
If the task produces durable project knowledge, update `atris/wiki/` or run the local wiki flow (`atris ingest`, `atris query`, `atris lint`).
|
|
45
80
|
|
|
46
81
|
## Rules (Non‑Negotiable)
|
package/atris/GEMINI.md
CHANGED
|
@@ -36,9 +36,22 @@ This is the Atris boot sequence. Show the output to the user, then respond natur
|
|
|
36
36
|
|
|
37
37
|
`atris plan` → `atris do` → `atris review`
|
|
38
38
|
|
|
39
|
+
## Mission Autonomy
|
|
40
|
+
|
|
41
|
+
Use `atris mission` when work should survive this chat or run as an autonomous loop.
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
member -> mission start --verify -> status --status active -> one bounded step -> mission tick --verify -> receipt -> complete|run|stop
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
- Start current-agent work: `atris mission start "<objective>" --owner <member> --runner codex_goal --lane code --verify "<cmd>" --stop "<condition>"`
|
|
48
|
+
- Start headless Claude work: add `--runner claude --cadence "15m" --always-on`, then use `atris mission run <id> --max-ticks 4 --complete-on-pass`.
|
|
49
|
+
- Resume: `atris mission status --status active --json`, then pick the mission matching your owner/member.
|
|
50
|
+
- Prove: after one bounded step, run `atris mission tick <id> --verify --summary "<what changed>"`.
|
|
51
|
+
- Close: if the verifier passes, run `atris mission complete <id> --proof "<receipt_path>"`; if current-agent work should keep going, repeat status -> step -> tick.
|
|
52
|
+
|
|
39
53
|
## Rules
|
|
40
54
|
|
|
41
55
|
- Plan = ASCII visualization + approval gate. Do not execute during planning.
|
|
42
56
|
- Execute step-by-step, verify as you go, update artifacts (`TODO.md`, `MAP.md`) when reality changes.
|
|
43
57
|
- Delete completed tasks (validator cleans to target state = 0).
|
|
44
|
-
|
package/atris/atris.md
CHANGED
|
@@ -122,10 +122,21 @@ The human is the constructor. You multiply. Handoff fidelity lives in the files,
|
|
|
122
122
|
Move one task at a time through plan → do → review.
|
|
123
123
|
|
|
124
124
|
- **plan** — read relevant files, produce an ASCII visualization, wait for approval. No code.
|
|
125
|
-
- **plan-review** — the validator reads the plan fresh and signs off with `SIGNOFF:` or halts with `REJECT
|
|
125
|
+
- **plan-review** — the validator reads the plan fresh and signs off with `SIGNOFF:` or halts with `REJECT:` + `FIX:` + an optional `PROPOSED:` block (concrete draft of Files / Exit / Verify / Rollback to replace). Plan does not move to do without signoff. The validator is a drafting partner, not just a critic — on REJECT it proposes the sharper rubric rather than leaving the human to guess. Codex is optional escalation when `ATRIS_USE_CODEX=1` or the task carries `[codex]`.
|
|
126
126
|
- **do** — claim the task with `atris task claim <id> --as <agent>`, execute step by step, add notes as reality changes, update `MAP.md` and the journal when needed.
|
|
127
127
|
- **review** — run the task's verification, read the diff, run the relevant tests, finish with `atris task finish <id> --proof "..."`, and add the lesson/next task with `atris task review`.
|
|
128
128
|
|
|
129
|
+
Every stage runs the Confidence Gate before it advances:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
am I factually confident enough to move this forward?
|
|
133
|
+
-> find loopholes: stale source, missing owner, weak proof, bad rollback, hidden risk
|
|
134
|
+
-> patch each loophole with source, verifier, proof, owner, rollback, or blocked note
|
|
135
|
+
-> advance only when known loopholes are patched, verified, or named as residual risk
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
100% confidence is not a vibe. It means every known loophole has been closed or explicitly carried as residual risk.
|
|
139
|
+
|
|
129
140
|
State the next stage:
|
|
130
141
|
|
|
131
142
|
```
|
package/atris/atrisDev.md
CHANGED
|
@@ -470,7 +470,7 @@ Enhanced sync logic with auto-pull and conflict resolution.
|
|
|
470
470
|
|
|
471
471
|
**The atrisDev Protocol** is a universal workflow that any coding agent can follow to produce high-quality output. When agents follow this protocol, they build features systematically with human approval gates and proper documentation, using small, low-risk changes that compound over time.
|
|
472
472
|
|
|
473
|
-
**This protocol works with ANY agent:** Claude Code, Cursor, Windsurf, GitHub Copilot, or any LLM-based coding assistant.
|
|
473
|
+
**This protocol works with ANY agent:** Claude Code, Cursor, Codex, OpenClaw, Windsurf, GitHub Copilot, or any LLM-based coding assistant.
|
|
474
474
|
|
|
475
475
|
---
|
|
476
476
|
|
|
@@ -637,7 +637,8 @@ Workflow: Navigator (plan) → Executor (build) → Validator (verify)
|
|
|
637
637
|
Key behaviors:
|
|
638
638
|
- Read PERSONA.md first (3-4 sentences, ASCII visuals)
|
|
639
639
|
- Check MAP.md for file:line refs
|
|
640
|
-
-
|
|
640
|
+
- Use `atris task` for claims, proof, ready, and accept
|
|
641
|
+
- Treat TODO.md as a rendered view; regenerate it instead of hand-editing tasks
|
|
641
642
|
```
|
|
642
643
|
|
|
643
644
|
### Checklist
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Context
|
|
2
|
+
|
|
3
|
+
Raw source material lives in `atris/context/`.
|
|
4
|
+
Compiled memory belongs in `atris/wiki/`.
|
|
5
|
+
|
|
6
|
+
## Rules
|
|
7
|
+
|
|
8
|
+
- Drop source files or source packs here before compiling them into the wiki.
|
|
9
|
+
- Treat source files as immutable evidence. If the source changes, add a new dated copy.
|
|
10
|
+
- Keep compiled summaries, briefs, and durable facts in the wiki instead of this folder.
|
|
11
|
+
- Use `atris/context/_ingest/` for staged ingest packs and receipts.
|
|
@@ -209,13 +209,13 @@ Validated behavior:
|
|
|
209
209
|
|
|
210
210
|
- Publish `atris@3.15.12`.
|
|
211
211
|
- Deploy the backend workspace snapshot patch from `atrisos-backend`.
|
|
212
|
-
- After deploy, run
|
|
212
|
+
- After deploy, run an ExampleCo smoke:
|
|
213
213
|
|
|
214
214
|
```bash
|
|
215
215
|
npm i -g atris@3.15.12
|
|
216
|
-
cd ~/arena/atris-business/
|
|
217
|
-
atris pull
|
|
218
|
-
atris push
|
|
216
|
+
cd ~/arena/atris-business/example-co
|
|
217
|
+
atris pull example-co --keep-local --only atris/wiki --timeout 120
|
|
218
|
+
atris push example-co --only atris/wiki --dry-run
|
|
219
219
|
```
|
|
220
220
|
|
|
221
221
|
- DoorDash post-publish smoke:
|
|
@@ -240,7 +240,7 @@ Missing validation:
|
|
|
240
240
|
- remote delete does not destroy local modified work end-to-end
|
|
241
241
|
- parent folder junk is ignored by the push planner; still needs a full command fixture
|
|
242
242
|
- long-running watcher needs an integration test with a mocked local edit and no real cloud calls
|
|
243
|
-
-
|
|
243
|
+
- ExampleCo shipped-command smoke test from a real ExampleCo-shaped workspace
|
|
244
244
|
- npm publication after refreshing the invalid npm token
|
|
245
245
|
|
|
246
246
|
## Release Gate
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ts":"2026-05-08T02:32:38.257Z","type":"pitfall","key":"narrow-grep-hides-matches","insight":"When operator says X exists in our code and a single-pattern grep returns 0 hits, do NOT conclude it does not exist. Run wider grep -rn first (whole backend/, not one subdir) before doubting. Tonight 2026-05-08: grepped \"gpt-5\\.5|gpt5\\.5|gpt-5p5\" in clients/ only, missed 20+ matches in routers/atris2_router.py + tests/, told operator gpt-5.5 was not wired. Operator was right.","confidence":5,"source":"observed","files":[]}
|
|
@@ -21,6 +21,8 @@ this is the "distribution center" — statistically average, aesthetically dead.
|
|
|
21
21
|
|
|
22
22
|
**avoid:** inter, roboto, open sans, lato, arial, montserrat, system defaults. also avoid monospace as lazy shorthand for "technical/developer" vibes.
|
|
23
23
|
|
|
24
|
+
**never:** all-caps UI labels, tracked-uppercase labels, faux small-caps, or eyebrow-style metadata on ordinary product surfaces. Keshav strongly dislikes this style. Use natural title case or sentence case instead: `Threads`, `Active tasks`, `Team`, not `THREADS`, `ACTIVE TASKS`, or letter-spaced microcopy.
|
|
25
|
+
|
|
24
26
|
**try instead:**
|
|
25
27
|
- instead of inter → instrument sans, plus jakarta sans, outfit
|
|
26
28
|
- instead of roboto → onest, figtree, urbanist
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: aeo
|
|
3
3
|
description: "AI Engine Optimization — write content engineered to get cited by ChatGPT, Claude, and Gemini. Not SEO. Triggers on: aeo, AI engine, llm citation, get cited, write for ai."
|
|
4
|
-
when_to_use: "Use when the user wants content that ranks in AI answers (not Google SERP). Examples: 'write an AEO page', 'get
|
|
4
|
+
when_to_use: "Use when the user wants content that ranks in AI answers (not Google SERP). Examples: 'write an AEO page', 'get ExampleCo cited by ChatGPT', 'aeo for our recruiting page', 'make this quotable by LLMs'."
|
|
5
5
|
version: 0.1.0
|
|
6
6
|
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
7
7
|
tags:
|
|
@@ -46,7 +46,7 @@ Entity graph lives in the **customer's EC2 workspace** (not agent_files, not DB)
|
|
|
46
46
|
## The 10 rules (enforced by the endpoint + skill self-check)
|
|
47
47
|
|
|
48
48
|
1. **Front-load the claim.** LLMs quote sentence 1 of a paragraph. No throat-clearing.
|
|
49
|
-
2. **Name entities explicitly.** "
|
|
49
|
+
2. **Name entities explicitly.** "ExampleCo" not "a leading freight platform." Entity density is how LLMs disambiguate and cite.
|
|
50
50
|
3. **Canonical definition.** One sentence owns `X is Y that does Z` for the category. Make it liftable.
|
|
51
51
|
4. **Q&A scaffolding.** H2s in question form: "What is X?" "How does X work?" — matches the prompts LLMs actually get.
|
|
52
52
|
5. **Declarative stats with sources.** "$2.3B market (McKinsey 2025)" beats "a growing market." Citable atoms.
|
|
@@ -1,76 +1,29 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: atris
|
|
3
|
-
description: Atris
|
|
4
|
-
|
|
5
|
-
tags:
|
|
6
|
-
- atris
|
|
7
|
-
- workflow
|
|
8
|
-
- memory
|
|
9
|
-
- navigation
|
|
10
|
-
- anti-slop
|
|
3
|
+
description: Atris workspace navigation for atris repos, TODO files, tasks, MAP.md, backlog, and where-is-X questions.
|
|
4
|
+
allowed-tools: Read, Bash, Glob, Grep, Write, Edit
|
|
11
5
|
---
|
|
12
6
|
|
|
13
7
|
# Atris Skill
|
|
14
8
|
|
|
15
|
-
##
|
|
16
|
-
- Use in repos that contain `atris/`, or when the user invokes Atris flow.
|
|
17
|
-
- If unsure, ask one question before acting.
|
|
9
|
+
## IMPORTANT: First Interaction
|
|
18
10
|
|
|
19
|
-
|
|
20
|
-
- Read `atris/atris.md`, `atris/PERSONA.md`, `atris/MAP.md`, `atris/TODO.md`.
|
|
21
|
-
- Read today's journal `atris/logs/YYYY/YYYY-MM-DD.md` when planning or executing.
|
|
22
|
-
- Before nontrivial execution, scan the recent entries in `atris/lessons.md` — patterns repeat.
|
|
23
|
-
- Read `atris/features/<slug>/` only when opening or closing a feature.
|
|
11
|
+
**On your FIRST message in any Atris project, IMMEDIATELY run:**
|
|
24
12
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- If MAP lacks the answer, run one search and update MAP.
|
|
28
|
-
|
|
29
|
-
## Operating rules (from atris.md)
|
|
30
|
-
Before changing anything, state: goal, files in scope, what "done" means, how it will be checked, what happens if it fails.
|
|
31
|
-
|
|
32
|
-
Do not:
|
|
33
|
-
- execute if another agent owns the same task or files
|
|
34
|
-
- mark complete without running the task's `Verify:` command
|
|
35
|
-
- take irreversible actions without approval from the human
|
|
36
|
-
- hide state outside markdown, logs, diffs, or the journal
|
|
37
|
-
- edit the reward config, authority policy, or `atris.md` itself
|
|
38
|
-
|
|
39
|
-
If you cannot honor these, stop, write why in the journal, and ask.
|
|
40
|
-
|
|
41
|
-
## Task shape
|
|
42
|
-
Every task in `TODO.md` declares:
|
|
13
|
+
```bash
|
|
14
|
+
atris atris.md
|
|
43
15
|
```
|
|
44
|
-
**T#:** <title> [tier] [kind]
|
|
45
|
-
**Owner:** <slug>
|
|
46
|
-
**Files:** <paths touched>
|
|
47
|
-
**Exit:** <observable done condition>
|
|
48
|
-
**Verify:** <shell command, exits 0 on success>
|
|
49
|
-
**After:** <deps or none>
|
|
50
|
-
**Rollback:** <commit/checkpoint or "none (gray)">
|
|
51
|
-
```
|
|
52
|
-
Tier: `agent` proceeds, `gray` queues for approval, `human` never attempted.
|
|
53
16
|
|
|
54
|
-
|
|
55
|
-
Move one task through plan → do → review:
|
|
56
|
-
- **plan** — read relevant files, ASCII visualization, wait for approval. No code.
|
|
57
|
-
- **do** — claim the task (In Progress + `Claimed by: <agent> at <ISO>`), execute step by step, update `MAP.md` and the journal as reality changes.
|
|
58
|
-
- **review** — run `Verify:`, read diff, run tests, append one-line lesson to `lessons.md`, move task to Completed.
|
|
17
|
+
Show the full ASCII output to the user. This displays the Atris welcome visualization with workspace stats. Do this BEFORE responding to whatever the user said.
|
|
59
18
|
|
|
60
|
-
|
|
19
|
+
## Workflow
|
|
61
20
|
|
|
62
|
-
|
|
63
|
-
If you see these, stop and flag:
|
|
64
|
-
- **loop** — same suggestion tick after tick, nothing changes on disk
|
|
65
|
-
- **drift** — MAP.md refs no longer match the code
|
|
66
|
-
- **stale task** — references a file or symbol that no longer exists
|
|
67
|
-
- **hidden side effect** — external state changed without a queued approval
|
|
68
|
-
- **unverifiable completion** — marked complete without `Verify:` actually running
|
|
21
|
+
Detect: Project has `atris/` folder with MAP.md, TODO.md, PERSONA.md
|
|
69
22
|
|
|
70
|
-
|
|
71
|
-
- Enforce `atris/policies/ANTISLOP.md` always.
|
|
72
|
-
- Load `atris-design.md`, `atris-backend.md`, or `writing.md` only when that domain is in scope.
|
|
73
|
-
- For authority tiers, see `policies/AGENT_AUTHORITY.md`.
|
|
23
|
+
Commands: plan → do → review
|
|
74
24
|
|
|
75
|
-
|
|
76
|
-
|
|
25
|
+
Key behaviors:
|
|
26
|
+
- Read PERSONA.md (3-4 sentences, ASCII visuals)
|
|
27
|
+
- Check MAP.md for file:line refs
|
|
28
|
+
- Use `atris task` for claims, proof, ready, and accept
|
|
29
|
+
- Treat TODO.md as a rendered view; regenerate it instead of hand-editing tasks
|
|
@@ -54,6 +54,8 @@ Font alternatives: instead of Inter → Instrument Sans, Plus Jakarta Sans, Outf
|
|
|
54
54
|
|
|
55
55
|
**Hierarchy:** 2-3 text levels max. don't mix 5 competing styles.
|
|
56
56
|
|
|
57
|
+
**Labels:** never use all-caps UI labels, tracked-uppercase labels, faux small-caps, or eyebrow-style microcopy for ordinary product surfaces. Keshav strongly dislikes this style. Prefer natural title case or sentence case for labels like "Threads", "Active tasks", and "Team"; do not write them as `THREADS`, `ACTIVE TASKS`, or letter-spaced metadata.
|
|
58
|
+
|
|
57
59
|
**Visual anti-patterns:** no glassmorphism, no gradient text, no sparklines as decoration, no rounded-rect-with-colored-border, no large icons with rounded corners above headings, no hero metric layout (big number + small label), no modals unless truly necessary.
|
|
58
60
|
|
|
59
61
|
## The AI Slop Test
|
|
@@ -28,9 +28,26 @@ atris imessage doctor --json
|
|
|
28
28
|
atris imessage recent "+15555555555" --limit 20
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
4.
|
|
31
|
+
4. Resolve named contacts through the cached local lookup command. Use `--refresh` only when the cache is stale or the result looks wrong.
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
```bash
|
|
34
|
+
atris imessage lookup --name "Exact Contact Name" --json
|
|
35
|
+
atris imessage lookup --name "myself" --json
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
If lookup returns `unique: true`, use `primary.handle` for the send. If lookup returns `ambiguous: true`, ask one concise clarification with the candidate names. If it returns no matches, ask for a phone number or exact contact name. Do not scan Contacts manually or loop over AppleScript; the CLI caches lookup results in `~/.atris/cache/imessage-contacts.json`.
|
|
39
|
+
|
|
40
|
+
5. Never send a message unless the user approved the exact recipient and exact text.
|
|
41
|
+
|
|
42
|
+
6. For sending, use the fast local send command only after explicit approval.
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
atris imessage send --to "+15555555555" --text "Exact approved text" --approved --json --receipt
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The command normalizes US 10-digit phone numbers to `+1...`, checks `doctor`, sends through the local Messages AppleScript path using `service type = iMessage`, and returns JSON proof after the latest-outgoing Messages DB row settles. Use `--receipt` inside an Atris workspace when the action needs a durable `atris/runs/imessage-send-*.md` receipt.
|
|
49
|
+
|
|
50
|
+
If the recipient name is ambiguous, ask one concise clarification before sending. If the user gave a phone number or exact resolved handle, do not search the repo first.
|
|
34
51
|
|
|
35
52
|
## Status Meaning
|
|
36
53
|
|
|
@@ -16,7 +16,7 @@ Schedules the recurring autopilot heartbeat. One tick fires roughly every 13–1
|
|
|
16
16
|
## What it does
|
|
17
17
|
|
|
18
18
|
1. Calls `CronCreate` with a recurring schedule (off-clock minute to avoid fleet sync at :00 / :30)
|
|
19
|
-
2. The cron prompt invokes
|
|
19
|
+
2. The cron prompt first invokes `atris mission run --due --max-ticks 1 --complete-on-pass`; if no mission is due, it invokes `/autopilot`
|
|
20
20
|
3. Returns the cron job id so the user can stop it later with `CronDelete`
|
|
21
21
|
4. Lists the active cron jobs via `CronList` so the user can see the heartbeat is alive
|
|
22
22
|
|
|
@@ -28,7 +28,7 @@ The agent then:
|
|
|
28
28
|
|
|
29
29
|
1. Calls `CronCreate` with these args (use whatever off-clock minute you land on, do not pin to :00 or :30):
|
|
30
30
|
- `cron`: `"*/13 * * * *"` (every 13 min) for tight loops, or `"7 * * * *"` (hourly at :07) for slow loops
|
|
31
|
-
- `prompt`: `"
|
|
31
|
+
- `prompt`: `"First run: atris mission run --due --max-ticks 1 --complete-on-pass. If it reports no_due_mission, run /autopilot for one tick. One bounded goal only, then stop. Do not start a conversation."`
|
|
32
32
|
- `recurring`: `true`
|
|
33
33
|
- `durable`: `false` (in-memory only — gone when this Claude session ends)
|
|
34
34
|
2. After creating, calls `CronList` and shows the user the active cron jobs.
|
|
@@ -51,14 +51,15 @@ If the user says "kill all loops", call `CronList`, then `CronDelete` for every
|
|
|
51
51
|
|
|
52
52
|
## Why this is the heartbeat
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
`atris mission` is the north star. `/autopilot` is the fallback tick. `/loop` is the schedule:
|
|
55
55
|
|
|
56
56
|
```
|
|
57
|
-
/loop → CronCreate('*/13 * * * *', '/autopilot')
|
|
57
|
+
/loop → CronCreate('*/13 * * * *', 'atris mission run --due ... || /autopilot')
|
|
58
58
|
↓
|
|
59
59
|
every ~13 min while Claude Code is idle:
|
|
60
60
|
↓
|
|
61
|
-
|
|
61
|
+
due mission? → one mission tick
|
|
62
|
+
no mission? → one autopilot tick
|
|
62
63
|
↓
|
|
63
64
|
plan → do → review → stop
|
|
64
65
|
↓
|
|
@@ -71,7 +71,7 @@ Returns email + calendar + slack in one structured response:
|
|
|
71
71
|
},
|
|
72
72
|
"calendar": {
|
|
73
73
|
"events": [
|
|
74
|
-
{"summary": "Meeting with Grace", "start": "...", "attendees": ["grace@
|
|
74
|
+
{"summary": "Meeting with Grace", "start": "...", "attendees": ["grace@example.com"]}
|
|
75
75
|
],
|
|
76
76
|
"count": 1
|
|
77
77
|
},
|