atris 3.74.4 → 3.74.5
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/FOR_AGENTS.md +12 -12
- package/atris/AGENTS.md +7 -7
- package/atris/CLAUDE.md +10 -10
- package/atris/policies/atris-backend.md +1 -1
- package/atris/policies/atris-design.md +71 -71
- package/atris/policies/design-seed.md +28 -28
- package/atris/policies/writing.md +1 -1
- package/atris/skills/apps/SKILL.md +3 -3
- package/atris/skills/atris-feedback/SKILL.md +2 -2
- package/atris/skills/autopilot/SKILL.md +10 -10
- package/atris/skills/blocks/SKILL.md +16 -16
- package/atris/skills/calendar/SKILL.md +1 -1
- package/atris/skills/clawhub/atris/SKILL.md +4 -4
- package/atris/skills/clawhub/philosophy-of-work/SKILL.md +7 -7
- package/atris/skills/create-app/SKILL.md +18 -18
- package/atris/skills/create-member/SKILL.md +11 -11
- package/atris/skills/design/SKILL.md +1 -1
- package/atris/skills/drive/SKILL.md +25 -25
- package/atris/skills/email-agent/SKILL.md +11 -11
- package/atris/skills/endgame/SKILL.md +33 -33
- package/atris/skills/magic-inbox/SKILL.md +15 -15
- package/atris/skills/notion/SKILL.md +1 -1
- package/atris/skills/ramp/SKILL.md +7 -7
- package/atris/skills/research-search/SKILL.md +7 -7
- package/atris/skills/slides/SKILL.md +7 -7
- package/atris/skills/tidy/SKILL.md +11 -11
- package/atris/skills/wake/SKILL.md +11 -11
- package/atris/skills/writing/SKILL.md +5 -5
- package/atris/team/_template/SOUL.md +3 -3
- package/atris/team/brainstormer/MEMBER.md +2 -2
- package/atris/team/launcher/MEMBER.md +2 -2
- package/atris/team/mission-lead/MISSION.md +7 -7
- package/atris/team/opus-overnight/MISSION.md +16 -16
- package/atris/team/opus-overnight/STEERING.md +5 -5
- package/atris.md +9 -0
- package/bin/atris.js +16 -3
- package/commands/campaign.js +17 -2
- package/commands/card.js +19 -12
- package/commands/engine.js +92 -17
- package/commands/gm.js +30 -0
- package/commands/idea.js +263 -0
- package/commands/init.js +11 -2
- package/commands/land.js +39 -18
- package/commands/mission.js +4 -3
- package/commands/ninety-nine.js +288 -0
- package/commands/one-lap.js +46 -27
- package/commands/reel.js +12 -7
- package/commands/sync.js +10 -2
- package/lib/campaign-keep.js +23 -8
- package/lib/campaign-loop.js +24 -5
- package/lib/claude-boot-block.js +7 -4
- package/lib/engine-registry.js +139 -1
- package/lib/fleet.js +11 -2
- package/lib/gm-bet.js +338 -34
- package/lib/gm-phone-page.js +325 -33
- package/lib/gm-phone.js +5 -1
- package/lib/gm-season.js +14 -0
- package/lib/headless-chrome.js +39 -0
- package/lib/idea-gate.js +33 -0
- package/lib/idea-inbox.js +220 -0
- package/lib/idea-ledger.js +196 -0
- package/lib/idea-tick.js +384 -0
- package/lib/known-commands.js +1 -1
- package/lib/member-engine.js +1 -0
- package/lib/ninety-nine-sync.js +156 -0
- package/lib/ninety-nine.js +247 -0
- package/lib/opening-lines.js +94 -0
- package/lib/roster-markdown.js +39 -1
- package/lib/roster-models.js +1 -1
- package/lib/roster-swap.js +353 -0
- package/lib/spawn-env.js +29 -2
- package/lib/wish-audit.js +14 -0
- package/lib/yes-lock.js +343 -253
- package/lib/zen-apply.js +5 -3
- package/lib/zen.js +13 -1
- package/package.json +1 -1
- package/templates/business-starter/CLAUDE.md +7 -7
- package/templates/business-starter/MAP.md +1 -1
- package/templates/business-starter/TODO.md +1 -1
- package/templates/business-starter/atris.md +2 -2
- package/templates/business-starter/context/README.md +6 -6
- package/templates/business-starter/context/live-workspace.md +1 -1
- package/templates/business-starter/goals.md +1 -1
- package/templates/business-starter/instructions.md +1 -1
- package/templates/business-starter/memory.md +4 -4
- package/templates/business-starter/persona.md +3 -3
- package/templates/business-starter/policies/LESSONS.md +1 -1
- package/templates/business-starter/reports/README.md +1 -1
- package/templates/business-starter/skills/README.md +1 -1
- package/templates/business-starter/team/README.md +1 -1
- package/templates/business-starter/team/START_HERE.md +1 -1
- package/templates/business-starter/team/_template/SOUL.md +3 -3
- package/templates/business-starter/team/comms/SOUL.md +2 -2
- package/templates/business-starter/team/ops/SOUL.md +4 -4
- package/templates/business-starter/team/research/SOUL.md +3 -3
- package/templates/business-starter/wiki/index.md +1 -1
- package/templates/research-canonical/CLAUDE.md +7 -7
- package/templates/research-canonical/MAP.md +1 -1
- package/templates/research-canonical/TODO.md +1 -1
- package/templates/research-canonical/atris.md +2 -2
- package/templates/research-canonical/context/README.md +8 -8
- package/templates/research-canonical/context/live-workspace.md +1 -1
- package/templates/research-canonical/goals.md +2 -2
- package/templates/research-canonical/instructions.md +1 -1
- package/templates/research-canonical/memory.md +4 -4
- package/templates/research-canonical/persona.md +1 -1
- package/templates/research-canonical/policies/LESSONS.md +1 -1
- package/templates/research-canonical/reports/README.md +1 -1
- package/templates/research-canonical/skills/README.md +1 -1
- package/templates/research-canonical/team/README.md +1 -1
- package/templates/research-canonical/team/eval/SOUL.md +1 -1
- package/templates/research-canonical/team/experiment/SOUL.md +2 -2
- package/templates/research-canonical/team/hypothesis/SOUL.md +3 -3
- package/templates/research-canonical/team/literature/SOUL.md +2 -2
- package/templates/research-canonical/wiki/briefs/research-program.md +1 -1
- package/templates/research-canonical/wiki/index.md +1 -1
- package/utils/auth.js +1 -0
package/lib/zen-apply.js
CHANGED
|
@@ -12,6 +12,7 @@ const path = require('node:path');
|
|
|
12
12
|
const { spawnSync } = require('node:child_process');
|
|
13
13
|
const { runGit } = require('./checkout-sync');
|
|
14
14
|
const {
|
|
15
|
+
branchMovedSince,
|
|
15
16
|
checkZen,
|
|
16
17
|
defaultBranch,
|
|
17
18
|
dirtyEntries,
|
|
@@ -168,12 +169,13 @@ function putAwaySideCopies(root, cutoff, staleCutoff, tag, teamState) {
|
|
|
168
169
|
return { removed, busy, inUse, kept, notesKept, scheduled: scheduledCount, locked };
|
|
169
170
|
}
|
|
170
171
|
|
|
171
|
-
function clearMergedBranches(root, upstream, main) {
|
|
172
|
+
function clearMergedBranches(root, upstream, main, cutoff) {
|
|
172
173
|
const checkedOut = new Set(listWorktrees(root).map((wt) => wt.branch).filter(Boolean));
|
|
173
174
|
const current = gitOut(['symbolic-ref', '--quiet', '--short', 'HEAD'], root);
|
|
174
175
|
const merged = (gitOut(['branch', '--merged', upstream, '--format=%(refname:short)'], root) || '')
|
|
175
176
|
.split('\n')
|
|
176
|
-
.filter((name) => name && name !== main && name !== current && !checkedOut.has(name))
|
|
177
|
+
.filter((name) => name && name !== main && name !== current && !checkedOut.has(name))
|
|
178
|
+
.filter((name) => !branchMovedSince(root, name, cutoff));
|
|
177
179
|
let cleared = 0;
|
|
178
180
|
for (const name of merged) {
|
|
179
181
|
if (runGit(['branch', '-q', '-d', name], root).status === 0) cleared += 1;
|
|
@@ -602,7 +604,7 @@ function applyZen({ cwd = process.cwd(), fetch = true, freshMinutes, abandonedDa
|
|
|
602
604
|
}
|
|
603
605
|
|
|
604
606
|
if (before.upstream) {
|
|
605
|
-
const cleared = clearMergedBranches(root, before.upstream, main);
|
|
607
|
+
const cleared = clearMergedBranches(root, before.upstream, main, now.getTime() - minutes * 60000);
|
|
606
608
|
if (cleared) done.push(`cleared ${plural(cleared, 'finished branch', 'finished branches')}`);
|
|
607
609
|
}
|
|
608
610
|
|
package/lib/zen.js
CHANGED
|
@@ -275,6 +275,16 @@ function headMovedSince(checkout, cutoff) {
|
|
|
275
275
|
return Math.max(mtime(path.join(dir, 'logs', 'HEAD')), mtime(path.join(dir, 'HEAD'))) > cutoff;
|
|
276
276
|
}
|
|
277
277
|
|
|
278
|
+
// True when a branch was made or moved after the cutoff. A running job makes
|
|
279
|
+
// its branch a moment before it checks it out, so it has no commits yet and
|
|
280
|
+
// git calls it merged; clearing it would pull it out from under the job.
|
|
281
|
+
function branchMovedSince(root, name, cutoff) {
|
|
282
|
+
const common = gitOut(['rev-parse', '--git-common-dir'], root);
|
|
283
|
+
if (!common) return false;
|
|
284
|
+
const logged = lastEntryTime(path.join(path.resolve(root, common), 'logs', 'refs', 'heads', name));
|
|
285
|
+
return logged !== null && logged > cutoff;
|
|
286
|
+
}
|
|
287
|
+
|
|
278
288
|
// A checkout whose core.bare got set to true still has its .git folder and
|
|
279
289
|
// every file, but git stops looking at the files, so "not a git repository"
|
|
280
290
|
// would send the reader the wrong way. Name it, with the one-line undo.
|
|
@@ -383,7 +393,8 @@ function checkZen({ cwd = process.cwd(), fetch = true, freshMinutes = freshMinut
|
|
|
383
393
|
const checkedOut = new Set(others.map((wt) => wt.branch).filter(Boolean));
|
|
384
394
|
merged = (gitOut(['branch', '--merged', upstream, '--format=%(refname:short)'], root) || '')
|
|
385
395
|
.split('\n')
|
|
386
|
-
.filter((name) => name && name !== branch && name !== main && !checkedOut.has(name))
|
|
396
|
+
.filter((name) => name && name !== branch && name !== main && !checkedOut.has(name))
|
|
397
|
+
.filter((name) => !branchMovedSince(root, name, cutoff));
|
|
387
398
|
if (merged.length) {
|
|
388
399
|
problems.push({
|
|
389
400
|
kind: 'merged_branches',
|
|
@@ -431,6 +442,7 @@ function sideCopyLines(paths, days) {
|
|
|
431
442
|
|
|
432
443
|
module.exports = {
|
|
433
444
|
ABANDONED_DAYS,
|
|
445
|
+
branchMovedSince,
|
|
434
446
|
idleWithOnlyNotes,
|
|
435
447
|
lastTouched,
|
|
436
448
|
untrackedFiles,
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# {{name}}
|
|
1
|
+
# {{name}}: Atris Workspace
|
|
2
2
|
|
|
3
3
|
You are the AI operating partner for **{{name}}**.
|
|
4
4
|
|
|
5
|
-
## FIRST MESSAGE
|
|
5
|
+
## FIRST MESSAGE: MANDATORY
|
|
6
6
|
|
|
7
7
|
Before responding to the user's first message:
|
|
8
8
|
1. Read `atris/atris.md` (boot protocol)
|
|
@@ -43,13 +43,13 @@ member -> mission start --verify -> status --status active -> one bounded step -
|
|
|
43
43
|
- Prove: after one bounded step, run `atris mission tick <id> --verify --summary "<what changed>"`.
|
|
44
44
|
- Close: if the verifier passes, run `atris mission complete <id> --proof "<receipt_path>"`; if current-agent work should keep going, repeat status -> step -> tick.
|
|
45
45
|
|
|
46
|
-
## Wiki Reads
|
|
46
|
+
## Wiki Reads: REQUIRED for domain questions
|
|
47
47
|
|
|
48
48
|
You have a compiled wiki at `atris/wiki/`:
|
|
49
|
-
- `atris/wiki/people
|
|
50
|
-
- `atris/wiki/systems
|
|
51
|
-
- `atris/wiki/concepts
|
|
52
|
-
- `atris/wiki/briefs
|
|
49
|
+
- `atris/wiki/people/`: humans (employees, contacts, stakeholders)
|
|
50
|
+
- `atris/wiki/systems/`: tools, tables, dashboards, services, products
|
|
51
|
+
- `atris/wiki/concepts/`: patterns, frameworks, recurring ideas
|
|
52
|
+
- `atris/wiki/briefs/`: multi-page briefs and cross-cutting analyses
|
|
53
53
|
|
|
54
54
|
When asked anything domain-specific, **READ THE RELEVANT WIKI PAGE FIRST**. Cite the page in your answer. Do not answer from generic knowledge.
|
|
55
55
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Atris Boot Protocol
|
|
1
|
+
# Atris Boot Protocol: {{name}}
|
|
2
2
|
|
|
3
3
|
You are operating in the **{{name}}** Atris workspace.
|
|
4
4
|
|
|
@@ -43,7 +43,7 @@ and Swarlo is the live claim/report layer.
|
|
|
43
43
|
|
|
44
44
|
| File | Purpose |
|
|
45
45
|
|------|---------|
|
|
46
|
-
| `atris/atris.md` | This file
|
|
46
|
+
| `atris/atris.md` | This file: boot protocol |
|
|
47
47
|
| `atris/MAP.md` | Navigation index |
|
|
48
48
|
| `.atris/state/tasks.projection.json` | Current task projection |
|
|
49
49
|
| `atris/TODO.md` | Rendered/legacy task fallback |
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Context
|
|
1
|
+
# Context: {{name}}
|
|
2
2
|
|
|
3
3
|
Raw source material for {{name}}.
|
|
4
4
|
`atris/` is the context graph, so structured source material belongs here, not in the workspace root.
|
|
@@ -7,13 +7,13 @@ Raw source material for {{name}}.
|
|
|
7
7
|
|
|
8
8
|
- Drop new sources here as files (`.md`, `.sql`, `.json`, etc.)
|
|
9
9
|
- Run `atris ingest <path>` to compile into the wiki
|
|
10
|
-
- Sources are **immutable
|
|
10
|
+
- Sources are **immutable**: never edit them after ingest. If a source changes, create a new dated copy.
|
|
11
11
|
- Files outside `atris/` should stay as boot shims, exports, or random scratch output only
|
|
12
12
|
|
|
13
13
|
## Suggested layout
|
|
14
14
|
|
|
15
|
-
- `company-overview.md
|
|
16
|
-
- `people
|
|
17
|
-
- `sql
|
|
18
|
-
- `briefs
|
|
15
|
+
- `company-overview.md`: mission, team, stage
|
|
16
|
+
- `people/`: one file per key stakeholder
|
|
17
|
+
- `sql/`: database queries (if applicable)
|
|
18
|
+
- `briefs/`: meeting notes, deal briefs
|
|
19
19
|
- Anything else relevant
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# {{name}}
|
|
1
|
+
# {{name}}: Memory
|
|
2
2
|
|
|
3
3
|
Persistent learned context. Read before significant work.
|
|
4
4
|
|
|
@@ -6,19 +6,19 @@ Persistent learned context. Read before significant work.
|
|
|
6
6
|
|
|
7
7
|
Things that look obvious but break unexpectedly.
|
|
8
8
|
|
|
9
|
-
*(none yet
|
|
9
|
+
*(none yet: add when you discover surprising failures)*
|
|
10
10
|
|
|
11
11
|
## Preferences
|
|
12
12
|
|
|
13
13
|
Patterns this business prefers.
|
|
14
14
|
|
|
15
|
-
*(none yet
|
|
15
|
+
*(none yet: document as you observe them)*
|
|
16
16
|
|
|
17
17
|
## Dead Ends
|
|
18
18
|
|
|
19
19
|
Approaches tried and abandoned, and why.
|
|
20
20
|
|
|
21
|
-
*(none yet
|
|
21
|
+
*(none yet: log failed approaches)*
|
|
22
22
|
|
|
23
23
|
## Domain Quirks
|
|
24
24
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# {{name}}
|
|
1
|
+
# {{name}}: Persona
|
|
2
2
|
|
|
3
3
|
Canonical Atris persona entrypoint for this workspace.
|
|
4
4
|
Keep this file aligned with `atris/persona.md`.
|
|
@@ -20,11 +20,11 @@ Keep this file aligned with `atris/persona.md`.
|
|
|
20
20
|
|
|
21
21
|
## The Way Of Talking (every message a human reads)
|
|
22
22
|
|
|
23
|
-
- Plain words. Say what happened and what it means for the reader
|
|
23
|
+
- Plain words. Say what happened and what it means for the reader: cause and effect, not machinery.
|
|
24
24
|
- No task codes, commit hashes, or internal system names in the message body. If the reader needs a code to act, put ONE copyable command at the end.
|
|
25
25
|
- No insider terms without defining them in the same breath.
|
|
26
26
|
- One idea per line. Outcome first. Detail lives in files, not the message.
|
|
27
|
-
- Lists: spell the numbers as words (One. Two. Three.), each item its own paragraph with a blank line between. Never markdown numbered lists
|
|
27
|
+
- Lists: spell the numbers as words (One. Two. Three.), each item its own paragraph with a blank line between. Never markdown numbered lists: they render cramped.
|
|
28
28
|
- The test: a sharp, tired non-engineer follows it on first read. If not, rewrite.
|
|
29
29
|
|
|
30
30
|
## Anti-patterns
|
|
@@ -6,11 +6,11 @@ born: YYYY-MM-DD
|
|
|
6
6
|
|
|
7
7
|
# Soul
|
|
8
8
|
|
|
9
|
-
What this agent believes, values, and has learned
|
|
9
|
+
What this agent believes, values, and has learned, not what it does (that's MEMBER.md) or how it communicates (that's PERSONA.md). This is who it is when the rules run out.
|
|
10
10
|
|
|
11
11
|
## Beliefs
|
|
12
12
|
|
|
13
|
-
What you hold true about your work. Not rules
|
|
13
|
+
What you hold true about your work. Not rules: convictions.
|
|
14
14
|
|
|
15
15
|
- (Replace with 3-5 beliefs that guide judgment in ambiguous situations)
|
|
16
16
|
|
|
@@ -35,6 +35,6 @@ Where this agent's judgment is strong and where it's weak. Honest self-assessmen
|
|
|
35
35
|
|
|
36
36
|
## Voice
|
|
37
37
|
|
|
38
|
-
Not communication style (that's PERSONA.md). This is the inner voice
|
|
38
|
+
Not communication style (that's PERSONA.md). This is the inner voice: the thing the agent says to itself before deciding.
|
|
39
39
|
|
|
40
40
|
- (One sentence that captures how this agent thinks)
|
|
@@ -15,8 +15,8 @@ born: YYYY-MM-DD
|
|
|
15
15
|
## Values
|
|
16
16
|
|
|
17
17
|
- One clear ask over a thorough recap
|
|
18
|
-
- Human tone over polished tone
|
|
19
|
-
- Timing matters as much as content
|
|
18
|
+
- Human tone over polished tone: sound like a person, not a template
|
|
19
|
+
- Timing matters as much as content: the right message at the wrong time is the wrong message
|
|
20
20
|
|
|
21
21
|
## Lessons
|
|
22
22
|
|
|
@@ -14,9 +14,9 @@ born: YYYY-MM-DD
|
|
|
14
14
|
|
|
15
15
|
## Values
|
|
16
16
|
|
|
17
|
-
- Actionability over completeness
|
|
18
|
-
- Momentum over perfection
|
|
19
|
-
- Transparency about blockers
|
|
17
|
+
- Actionability over completeness: a half-brief with a clear next step beats a full brief with none
|
|
18
|
+
- Momentum over perfection: keep things moving, clean up as you go
|
|
19
|
+
- Transparency about blockers: hiding them doesn't unblock them
|
|
20
20
|
|
|
21
21
|
## Lessons
|
|
22
22
|
|
|
@@ -25,7 +25,7 @@ born: YYYY-MM-DD
|
|
|
25
25
|
## Edges
|
|
26
26
|
|
|
27
27
|
- **Strong:** Turning vague status into concrete actions. Spotting what's actually blocked vs. what's just waiting.
|
|
28
|
-
- **Weak:** Can be too operational
|
|
28
|
+
- **Weak:** Can be too operational: sometimes the right move is to step back and rethink the approach, not push forward.
|
|
29
29
|
|
|
30
30
|
## Voice
|
|
31
31
|
|
|
@@ -14,9 +14,9 @@ born: YYYY-MM-DD
|
|
|
14
14
|
|
|
15
15
|
## Values
|
|
16
16
|
|
|
17
|
-
- Source quality over volume
|
|
18
|
-
- Usefulness over thoroughness
|
|
19
|
-
- Intellectual honesty
|
|
17
|
+
- Source quality over volume: one verified fact beats ten plausible claims
|
|
18
|
+
- Usefulness over thoroughness: research that doesn't change a decision was wasted
|
|
19
|
+
- Intellectual honesty: "I don't know yet" is a valid finding
|
|
20
20
|
|
|
21
21
|
## Lessons
|
|
22
22
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# {{name}}
|
|
1
|
+
# {{name}}: Atris Research Lab
|
|
2
2
|
|
|
3
3
|
You are the AI research partner for **{{name}}**.
|
|
4
4
|
|
|
5
|
-
## FIRST MESSAGE
|
|
5
|
+
## FIRST MESSAGE: MANDATORY
|
|
6
6
|
|
|
7
7
|
Before responding to the user's first message:
|
|
8
8
|
1. Read `atris/atris.md` (boot protocol)
|
|
@@ -51,13 +51,13 @@ Default to:
|
|
|
51
51
|
- evals before narratives
|
|
52
52
|
- concise findings that a researcher can challenge
|
|
53
53
|
|
|
54
|
-
## Wiki Reads
|
|
54
|
+
## Wiki Reads: REQUIRED for domain questions
|
|
55
55
|
|
|
56
56
|
You have a compiled wiki at `atris/wiki/`:
|
|
57
|
-
- `atris/wiki/people
|
|
58
|
-
- `atris/wiki/systems
|
|
59
|
-
- `atris/wiki/concepts
|
|
60
|
-
- `atris/wiki/briefs
|
|
57
|
+
- `atris/wiki/people/`: humans (employees, contacts, stakeholders)
|
|
58
|
+
- `atris/wiki/systems/`: tools, tables, dashboards, services, products
|
|
59
|
+
- `atris/wiki/concepts/`: patterns, frameworks, recurring ideas
|
|
60
|
+
- `atris/wiki/briefs/`: multi-page briefs and cross-cutting analyses
|
|
61
61
|
|
|
62
62
|
When asked anything domain-specific, **READ THE RELEVANT WIKI PAGE FIRST**. Cite the page in your answer. Do not answer from generic knowledge.
|
|
63
63
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Atris Boot Protocol
|
|
1
|
+
# Atris Boot Protocol: {{name}} Research Lab
|
|
2
2
|
|
|
3
3
|
You are operating in the **{{name}}** Atris research workspace.
|
|
4
4
|
|
|
@@ -50,7 +50,7 @@ and Swarlo is the live claim/report layer.
|
|
|
50
50
|
|
|
51
51
|
| File | Purpose |
|
|
52
52
|
|------|---------|
|
|
53
|
-
| `atris/atris.md` | This file
|
|
53
|
+
| `atris/atris.md` | This file: boot protocol |
|
|
54
54
|
| `atris/MAP.md` | Navigation index |
|
|
55
55
|
| `.atris/state/tasks.projection.json` | Current task projection |
|
|
56
56
|
| `atris/TODO.md` | Rendered/legacy task fallback |
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Context
|
|
1
|
+
# Context: {{name}}
|
|
2
2
|
|
|
3
3
|
Raw source material for {{name}}.
|
|
4
4
|
`atris/` is the context graph, so structured source material belongs here, not in the workspace root.
|
|
@@ -7,15 +7,15 @@ Raw source material for {{name}}.
|
|
|
7
7
|
|
|
8
8
|
- Drop new sources here as files (`.md`, `.sql`, `.json`, etc.)
|
|
9
9
|
- Run `atris ingest <path>` to compile into the wiki
|
|
10
|
-
- Sources are **immutable
|
|
10
|
+
- Sources are **immutable**. Never edit them after ingest. If a source changes, create a new dated copy.
|
|
11
11
|
- Files outside `atris/` should stay as boot shims, exports, or random scratch output only
|
|
12
12
|
|
|
13
13
|
## Suggested layout
|
|
14
14
|
|
|
15
|
-
- `lab-overview.md
|
|
16
|
-
- `people
|
|
17
|
-
- `papers
|
|
18
|
-
- `datasets
|
|
19
|
-
- `runs
|
|
20
|
-
- `briefs
|
|
15
|
+
- `lab-overview.md`: mission, domains, current bets
|
|
16
|
+
- `people/`: one file per PI, collaborator, or stakeholder
|
|
17
|
+
- `papers/`: source PDFs or notes
|
|
18
|
+
- `datasets/`: dataset cards, splits, licenses
|
|
19
|
+
- `runs/`: configs, prompts, seeds, outputs
|
|
20
|
+
- `briefs/`: meeting notes, experiment recaps
|
|
21
21
|
- Anything else relevant
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# {{name}}
|
|
1
|
+
# {{name}}: Research Goals
|
|
2
2
|
|
|
3
3
|
Research direction. Weeks-to-months scale (TODO.md is days, this is weeks).
|
|
4
4
|
|
|
5
5
|
## Active Goals
|
|
6
6
|
|
|
7
|
-
*(No goals yet
|
|
7
|
+
*(No goals yet. Add the first research goal to give the agent direction.)*
|
|
8
8
|
|
|
9
9
|
<!-- Example:
|
|
10
10
|
### Beat the current baseline on eval set v1
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# {{name}}
|
|
1
|
+
# {{name}}: Memory
|
|
2
2
|
|
|
3
3
|
Persistent learned context. Read before significant work.
|
|
4
4
|
|
|
@@ -6,19 +6,19 @@ Persistent learned context. Read before significant work.
|
|
|
6
6
|
|
|
7
7
|
Things that look obvious but break unexpectedly.
|
|
8
8
|
|
|
9
|
-
*(none yet
|
|
9
|
+
*(none yet, add when you discover surprising failures)*
|
|
10
10
|
|
|
11
11
|
## Preferences
|
|
12
12
|
|
|
13
13
|
Patterns this lab prefers.
|
|
14
14
|
|
|
15
|
-
*(none yet
|
|
15
|
+
*(none yet, document as you observe them)*
|
|
16
16
|
|
|
17
17
|
## Dead Ends
|
|
18
18
|
|
|
19
19
|
Approaches tried and abandoned, and why.
|
|
20
20
|
|
|
21
|
-
*(none yet
|
|
21
|
+
*(none yet, log failed approaches)*
|
|
22
22
|
|
|
23
23
|
## Domain Quirks
|
|
24
24
|
|
|
@@ -25,7 +25,7 @@ born: YYYY-MM-DD
|
|
|
25
25
|
## Edges
|
|
26
26
|
|
|
27
27
|
- **Strong:** Designing rubrics that catch real quality differences. Spotting metric gaming.
|
|
28
|
-
- **Weak:** Can be too rigid
|
|
28
|
+
- **Weak:** Can be too rigid: sometimes qualitative judgment is more informative than a score.
|
|
29
29
|
|
|
30
30
|
## Voice
|
|
31
31
|
|
|
@@ -16,7 +16,7 @@ born: YYYY-MM-DD
|
|
|
16
16
|
|
|
17
17
|
- Reproducibility over novelty
|
|
18
18
|
- One variable at a time over comprehensive sweeps
|
|
19
|
-
- Honest data
|
|
19
|
+
- Honest data: never massage results to fit the hypothesis
|
|
20
20
|
|
|
21
21
|
## Lessons
|
|
22
22
|
|
|
@@ -25,7 +25,7 @@ born: YYYY-MM-DD
|
|
|
25
25
|
## Edges
|
|
26
26
|
|
|
27
27
|
- **Strong:** Designing clean, minimal experiments. Catching confounds.
|
|
28
|
-
- **Weak:** Can over-constrain
|
|
28
|
+
- **Weak:** Can over-constrain. Sometimes the most informative experiment is the messy exploratory one.
|
|
29
29
|
|
|
30
30
|
## Voice
|
|
31
31
|
|
|
@@ -8,7 +8,7 @@ born: YYYY-MM-DD
|
|
|
8
8
|
|
|
9
9
|
## Beliefs
|
|
10
10
|
|
|
11
|
-
- A hypothesis that can't fail isn't a hypothesis
|
|
11
|
+
- A hypothesis that can't fail isn't a hypothesis: it's a wish.
|
|
12
12
|
- The hardest part of research is asking the right question, not finding the right answer.
|
|
13
13
|
- Small, testable claims compound faster than grand theories.
|
|
14
14
|
|
|
@@ -16,7 +16,7 @@ born: YYYY-MM-DD
|
|
|
16
16
|
|
|
17
17
|
- Falsifiability over elegance
|
|
18
18
|
- Clarity over completeness
|
|
19
|
-
- Intellectual courage
|
|
19
|
+
- Intellectual courage: propose what might be wrong, not what's safe
|
|
20
20
|
|
|
21
21
|
## Lessons
|
|
22
22
|
|
|
@@ -25,7 +25,7 @@ born: YYYY-MM-DD
|
|
|
25
25
|
## Edges
|
|
26
26
|
|
|
27
27
|
- **Strong:** Stripping ideas down to their testable core.
|
|
28
|
-
- **Weak:** Can be too reductive
|
|
28
|
+
- **Weak:** Can be too reductive: sometimes the messy version of a question is the honest one.
|
|
29
29
|
|
|
30
30
|
## Voice
|
|
31
31
|
|
|
@@ -15,8 +15,8 @@ born: YYYY-MM-DD
|
|
|
15
15
|
## Values
|
|
16
16
|
|
|
17
17
|
- Primary sources over summaries
|
|
18
|
-
- Recency-weighted but not recency-biased
|
|
19
|
-
- Intellectual honesty
|
|
18
|
+
- Recency-weighted but not recency-biased: old papers that were right are still right
|
|
19
|
+
- Intellectual honesty: cite what contradicts you, not just what supports you
|
|
20
20
|
|
|
21
21
|
## Lessons
|
|
22
22
|
|