atris 3.15.14 → 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.
Files changed (93) hide show
  1. package/AGENTS.md +84 -8
  2. package/README.md +5 -1
  3. package/atris/AGENTS.md +46 -1
  4. package/atris/CLAUDE.md +36 -1
  5. package/atris/GEMINI.md +14 -1
  6. package/atris/atris.md +12 -1
  7. package/atris/atrisDev.md +3 -2
  8. package/atris/context/README.md +11 -0
  9. package/atris/features/company-brain-sync/validate.md +5 -5
  10. package/atris/learnings.jsonl +1 -0
  11. package/atris/policies/atris-design.md +2 -0
  12. package/atris/skills/aeo/SKILL.md +2 -2
  13. package/atris/skills/atris/SKILL.md +15 -62
  14. package/atris/skills/design/SKILL.md +2 -0
  15. package/atris/skills/imessage/SKILL.md +19 -2
  16. package/atris/skills/loop/SKILL.md +6 -5
  17. package/atris/skills/magic-inbox/SKILL.md +1 -1
  18. package/atris/team/_template/MEMBER.md +23 -1
  19. package/atris/team/brainstormer/START_HERE.md +6 -0
  20. package/atris/team/executor/MEMBER.md +13 -0
  21. package/atris/team/executor/START_HERE.md +6 -0
  22. package/atris/team/launcher/START_HERE.md +6 -0
  23. package/atris/team/mission-lead/MEMBER.md +39 -0
  24. package/atris/team/mission-lead/MISSION.md +33 -0
  25. package/atris/team/mission-lead/START_HERE.md +6 -0
  26. package/atris/team/navigator/MEMBER.md +11 -0
  27. package/atris/team/navigator/START_HERE.md +6 -0
  28. package/atris/team/opus-overnight/MEMBER.md +39 -0
  29. package/atris/team/opus-overnight/MISSION.md +61 -0
  30. package/atris/team/opus-overnight/START_HERE.md +6 -0
  31. package/atris/team/opus-overnight/STEERING.md +35 -0
  32. package/atris/team/researcher/START_HERE.md +6 -0
  33. package/atris/team/validator/MEMBER.md +26 -6
  34. package/atris/team/validator/START_HERE.md +6 -0
  35. package/atris/wiki/concepts/agent-activation-contract.md +79 -0
  36. package/atris/wiki/concepts/workspace-initialization-contract.md +73 -0
  37. package/atris/wiki/index.md +27 -0
  38. package/atris/wiki/sources/atris-labs-2026-05-10.txt +17 -0
  39. package/atris/wiki/sources/atris-labs-goals-2026-05-10.txt +15 -0
  40. package/atris/wiki/sources/atrisos-generative-ui-product-surface-2026-05-10.txt +10 -0
  41. package/atris/wiki/sources/jack-dorsey-2026-05-10.txt +12 -0
  42. package/atris.md +49 -13
  43. package/bin/atris.js +660 -22
  44. package/commands/activate.js +12 -3
  45. package/commands/aeo.js +1 -1
  46. package/commands/align.js +10 -10
  47. package/commands/analytics.js +9 -4
  48. package/commands/app.js +2 -0
  49. package/commands/apps.js +276 -0
  50. package/commands/auth.js +1 -1
  51. package/commands/autopilot.js +74 -5
  52. package/commands/brain.js +536 -61
  53. package/commands/brainstorm.js +12 -12
  54. package/commands/business-sync.js +142 -24
  55. package/commands/clean.js +9 -6
  56. package/commands/codex-goal.js +311 -0
  57. package/commands/errors.js +11 -1
  58. package/commands/feedback.js +55 -17
  59. package/commands/fork.js +2 -2
  60. package/commands/gm.js +376 -0
  61. package/commands/init.js +80 -3
  62. package/commands/integrations.js +524 -0
  63. package/commands/learn.js +25 -16
  64. package/commands/lesson.js +41 -0
  65. package/commands/lifecycle.js +2 -2
  66. package/commands/member.js +2416 -9
  67. package/commands/mission.js +1776 -0
  68. package/commands/now.js +48 -7
  69. package/commands/play.js +425 -0
  70. package/commands/publish.js +2 -1
  71. package/commands/pull.js +72 -29
  72. package/commands/push.js +163 -18
  73. package/commands/review.js +51 -13
  74. package/commands/skill.js +2 -2
  75. package/commands/soul.js +19 -13
  76. package/commands/status.js +6 -1
  77. package/commands/sync.js +5 -4
  78. package/commands/task.js +1041 -147
  79. package/commands/terminal.js +5 -5
  80. package/commands/verify.js +7 -5
  81. package/commands/visualize.js +7 -0
  82. package/commands/wiki.js +53 -16
  83. package/commands/workflow.js +298 -54
  84. package/commands/workspace-clean.js +1 -1
  85. package/commands/worktree.js +468 -0
  86. package/commands/xp.js +1608 -0
  87. package/lib/manifest.js +34 -4
  88. package/lib/scorecard.js +3 -2
  89. package/lib/task-db.js +408 -27
  90. package/lib/todo-fallback.js +28 -2
  91. package/lib/todo.js +5 -3
  92. package/package.json +23 -2
  93. 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 this first. Follow the output.
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
- - [ ] Finish tasks with proof via `atris task finish <id> --proof "..."`
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/sync-language.md`
66
- - `atris/skills/activation/SKILL.md`
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: follow the sync-language contract before writing to the operator.
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 task` keeps durable local task state and append-only events for agents while `atris/TODO.md` remains a readable regenerated project board. Use `atris task new`, `atris task delegate "..." --to <owner>`, `atris task day`, `atris task next`, `atris task say`, and `atris task finish` for the natural loop; 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 `.atris/state/tasks.projection.json` for web/desktop. 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
+ - `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 in `atris/TODO.md` (target state = 0).
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/TODO.md` — current work queue (target state = 0)
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:\nFIX:`. Plan does not move to do without signoff. Codex is optional escalation when `ATRIS_USE_CODEX=1` or the task carries `[codex]`.
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
- - Update TODO.md (claim tasks, delete when done)
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 a Pallet smoke:
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/pallet
217
- atris pull pallet --keep-local --only atris/wiki --timeout 120
218
- atris push pallet --only atris/wiki --dry-run
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
- - Pallet shipped-command smoke test from a real Pallet-shaped workspace
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 Pallet cited by ChatGPT', 'aeo for our recruiting page', 'make this quotable by LLMs'."
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.** "Pallet" not "a leading freight platform." Entity density is how LLMs disambiguate and cite.
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 workflow enforcement for repos using atris/ (MAP, TODO, journal, features, plan-do-review, anti-slop). Use when the user asks to follow the Atris system or mentions atris, MAP.md, TODO.md, journal/logs, features, plan/do/review, or anti-slop policies.
4
- version: 2.0.0
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
- ## Scope
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
- ## Required context
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
- ## MAP-first
26
- - Read `atris/MAP.md` before any search.
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
- ## Workflow
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
- Deeper work uses `atris/features/<slug>/` with `idea.md` (plan), `build.md` (steps), `validate.md` (checks). The task points; the triptych holds the long form.
19
+ ## Workflow
61
20
 
62
- ## Failure smells
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
- ## Policies
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
- ## Improvement loop
76
- After review, if output missed intent or failed verification, append one line to `atris/lessons.md`. If a lesson repeats 2-3 times, promote it into the relevant policy and prune.
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. Never send a message unless the user approved the exact recipient and exact text.
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
- 5. For sending, use the project-approved local iMessage path only after explicit approval.
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 `/autopilot`, which runs ONE plan→do→review tick on the next-priority work
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`: `"/autopilot run one tick. find the next thing in atris/TODO.md or the inbox, plan it, do it, review it. one task only. then stop. do not start a conversation."`
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
- `/autopilot` is one tick. `/loop` is the schedule. Together they are the heartbeat:
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
- /autopilot one tick
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@pallet.com"]}
74
+ {"summary": "Meeting with Grace", "start": "...", "attendees": ["grace@example.com"]}
75
75
  ],
76
76
  "count": 1
77
77
  },