atris 3.68.9 → 3.70.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/README.md CHANGED
@@ -121,6 +121,59 @@ atris host import people.jsonl # bulk add people and who already knows who
121
121
  atris host room # the host's weekly read
122
122
  ```
123
123
 
124
+ ### Put members to work
125
+
126
+ Members are helpers that work in their own copy of the repo. Three words cover it.
127
+
128
+ Run hands over one job. Atris picks the right member and starts it.
129
+
130
+ ```bash
131
+ atris member run "fix one failing test"
132
+ ```
133
+
134
+ Wake keeps members working, each one pulling the next task that fits. Give a number, or name the members you want.
135
+
136
+ ```bash
137
+ atris member wake 5
138
+ atris member wake navigator executor
139
+ ```
140
+
141
+ Sleep stops the members that are awake.
142
+
143
+ ```bash
144
+ atris member sleep --all
145
+ ```
146
+
147
+ To watch them, open the board, or follow one member's steps as they happen.
148
+
149
+ ```bash
150
+ atris member board --watch
151
+ tail -f ~/.atris/progress/executor.log
152
+ ```
153
+
154
+ When a member finishes, ask for its result: what it changed, its receipt, and one number. Each member's copy of the repo stays until its work lands, then tidy puts it away.
155
+
156
+ ```bash
157
+ atris member result executor
158
+ atris member tidy --dry-run
159
+ ```
160
+
161
+ The older words still work as aliases: `dispatch` and `go` do what run does, and `up` does what wake does.
162
+
163
+ ### How member work gets checked and lands
164
+
165
+ Every member job ends with its own check, a command that must pass. Then a second engine reviews the change, and it is never the engine that did the work.
166
+
167
+ Work lands on its own only after you switch self-landing on, once. From then on Atris pushes the branch, opens a pull request, and turns on GitHub auto-merge, so GitHub merges it when the branch is up to date and CI passes.
168
+
169
+ ```bash
170
+ atris autoland on
171
+ ```
172
+
173
+ Anything else keeps the work on its branch, with one plain line saying why. That covers a failed check or review, unsaved changes, a clash with the main branch, and work that touches a protected area like payments, deploys, or credentials.
174
+
175
+ A job that fails three times in a row stops and waits for a person.
176
+
124
177
  ## Chat With Atris 2
125
178
 
126
179
  `ax` is the Atris 2 chat and coding-agent CLI. It uses the hosted Atris cloud by default, streams text, shows tool activity, and keeps fresh installs away from local setup.
@@ -3,6 +3,7 @@ name: opus-overnight
3
3
  role: Opus Overnight Worker
4
4
  description: Claude Opus 4.7 (1M context) running the rl-exp2 mission loop without burning money
5
5
  version: 1.0.0
6
+ status: experimental
6
7
 
7
8
  skills:
8
9
  - rl-exp2
package/commands/init.js CHANGED
@@ -4,6 +4,7 @@ const { ensureMemberBundle } = require('../lib/member-scaffold');
4
4
  const { ensureExperimentsFramework } = require('./experiments');
5
5
  const { ensureWorkspaceBrain } = require('../lib/workspace-scaffold');
6
6
  const { upsertAtrisClaudeBootBlock } = require('../lib/claude-boot-block');
7
+ const { ensureRunIgnore } = require('../lib/gitignore');
7
8
  const { INTENTS } = require('../lib/intents');
8
9
  const {
9
10
  upsertAgentVoiceCard,
@@ -1109,6 +1110,14 @@ Read atris/MAP.md. Begin iteration 1.`;
1109
1110
  }
1110
1111
  }
1111
1112
 
1113
+ // Member runs drop receipts and status into atris/runs/ and atris/status/.
1114
+ // A git repo that never ignores them stays dirty forever and member
1115
+ // self-merge never fires.
1116
+ const runIgnore = ensureRunIgnore(cwd);
1117
+ if (runIgnore.changed) {
1118
+ markReady('workspace', '.gitignore', `✓ ${runIgnore.created ? 'Created' : 'Updated'} .gitignore (atris run output ignored)`);
1119
+ }
1120
+
1112
1121
  if (fs.existsSync(sourceFile)) {
1113
1122
  fs.copyFileSync(sourceFile, targetFile);
1114
1123
  markReady('workspace', 'atris.md', '✓ Copied atris.md to atris/ folder');