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/commands/skill.js
CHANGED
|
@@ -593,7 +593,7 @@ function skillCreate(nameArg, ...flags) {
|
|
|
593
593
|
console.error('Examples:');
|
|
594
594
|
console.error(' atris skill create daily-standup');
|
|
595
595
|
console.error(' atris skill create email-outreach --integration');
|
|
596
|
-
console.error(' atris skill create
|
|
596
|
+
console.error(' atris skill create example-co/bol-processor --integration');
|
|
597
597
|
console.error(' atris skill create my-skill --local # project only, skip system dirs');
|
|
598
598
|
process.exit(1);
|
|
599
599
|
}
|
|
@@ -883,7 +883,7 @@ function skillCommand(subcommand, ...args) {
|
|
|
883
883
|
console.log('Examples:');
|
|
884
884
|
console.log(' atris skill create daily-standup');
|
|
885
885
|
console.log(' atris skill create email-outreach --integration');
|
|
886
|
-
console.log(' atris skill create
|
|
886
|
+
console.log(' atris skill create example-co/bol-processor --integration');
|
|
887
887
|
console.log(' atris skill link --all');
|
|
888
888
|
console.log('');
|
|
889
889
|
}
|
package/commands/soul.js
CHANGED
|
@@ -132,7 +132,9 @@ function displaySoul(soul) {
|
|
|
132
132
|
console.log(` │ ${'IDENTITY'.padEnd(W - 1)}│`);
|
|
133
133
|
if (soul.identity['PERSONA.md']) {
|
|
134
134
|
const preview = soul.identity['PERSONA.md'].split('\n').find(l => l.trim() && !l.startsWith('#')) || '';
|
|
135
|
-
|
|
135
|
+
const max = W - 15;
|
|
136
|
+
const text = preview.length > max ? preview.slice(0, max - 1) + '…' : preview;
|
|
137
|
+
console.log(` │ persona: ${text.padEnd(W - 14)}│`);
|
|
136
138
|
}
|
|
137
139
|
if (soul.identity.team) {
|
|
138
140
|
console.log(` │ team: ${soul.identity.team.length} members${' '.repeat(Math.max(0, W - 20 - String(soul.identity.team.length).length))}│`);
|
|
@@ -298,8 +300,24 @@ function distillSoul(atrisDir) {
|
|
|
298
300
|
|
|
299
301
|
// ── Main ───────────────────────────────────────────────
|
|
300
302
|
|
|
303
|
+
function showSoulHelp() {
|
|
304
|
+
console.log('');
|
|
305
|
+
console.log(' atris soul — see what your project has learned');
|
|
306
|
+
console.log('');
|
|
307
|
+
console.log(' soul show identity, knowledge, learnings');
|
|
308
|
+
console.log(' soul snapshot export full soul to JSON (auto-gitignored)');
|
|
309
|
+
console.log(' soul distill compress lessons + policies into PERSONA.md');
|
|
310
|
+
console.log(' soul fork <path> copy persona + policies to another project');
|
|
311
|
+
console.log('');
|
|
312
|
+
}
|
|
313
|
+
|
|
301
314
|
async function soul(args = []) {
|
|
302
315
|
const subcommand = (args[0] || 'status').toLowerCase();
|
|
316
|
+
if (subcommand === 'help' || subcommand === '--help' || subcommand === '-h') {
|
|
317
|
+
showSoulHelp();
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
|
|
303
321
|
const atrisDir = findAtrisDir();
|
|
304
322
|
|
|
305
323
|
if (!atrisDir) {
|
|
@@ -307,18 +325,6 @@ async function soul(args = []) {
|
|
|
307
325
|
process.exit(1);
|
|
308
326
|
}
|
|
309
327
|
|
|
310
|
-
if (subcommand === 'help' || subcommand === '--help' || subcommand === '-h') {
|
|
311
|
-
console.log('');
|
|
312
|
-
console.log(' atris soul — see what your project has learned');
|
|
313
|
-
console.log('');
|
|
314
|
-
console.log(' soul show identity, knowledge, learnings');
|
|
315
|
-
console.log(' soul snapshot export full soul to JSON (auto-gitignored)');
|
|
316
|
-
console.log(' soul distill compress lessons + policies into PERSONA.md');
|
|
317
|
-
console.log(' soul fork <path> copy persona + policies to another project');
|
|
318
|
-
console.log('');
|
|
319
|
-
return;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
328
|
switch (subcommand) {
|
|
323
329
|
case 'status':
|
|
324
330
|
case 'st': {
|
package/commands/status.js
CHANGED
|
@@ -189,7 +189,12 @@ function statusAtris(isQuick = false, jsonMode = false, verbose = false) {
|
|
|
189
189
|
} else {
|
|
190
190
|
where.push('No active endgame is set.');
|
|
191
191
|
}
|
|
192
|
-
|
|
192
|
+
const ipCount = todo.inProgress.length;
|
|
193
|
+
const bkCount = todo.backlog.length;
|
|
194
|
+
const cpCount = todo.completed.length;
|
|
195
|
+
const ipWord = ipCount === 1 ? 'task' : 'tasks';
|
|
196
|
+
const verb = ipCount === 1 ? 'is' : 'are';
|
|
197
|
+
where.push(`There ${verb} ${ipCount} ${ipWord} in progress, ${bkCount} queued, and ${cpCount} completed items still sitting in TODO.`);
|
|
193
198
|
|
|
194
199
|
const queueParts = [];
|
|
195
200
|
if (todo.inProgress[0]) {
|
package/commands/sync.js
CHANGED
|
@@ -415,7 +415,7 @@ function syncAtris() {
|
|
|
415
415
|
const claudeSkillFile = path.join(claudeSkillsDir, 'SKILL.md');
|
|
416
416
|
const skillContent = `---
|
|
417
417
|
name: atris
|
|
418
|
-
description: Atris workspace navigation
|
|
418
|
+
description: Atris workspace navigation for atris repos, TODO files, tasks, MAP.md, backlog, and where-is-X questions.
|
|
419
419
|
allowed-tools: Read, Bash, Glob, Grep, Write, Edit
|
|
420
420
|
---
|
|
421
421
|
|
|
@@ -440,7 +440,8 @@ Commands: plan → do → review
|
|
|
440
440
|
Key behaviors:
|
|
441
441
|
- Read PERSONA.md (3-4 sentences, ASCII visuals)
|
|
442
442
|
- Check MAP.md for file:line refs
|
|
443
|
-
-
|
|
443
|
+
- Use \`atris task\` for claims, proof, ready, and accept
|
|
444
|
+
- Treat TODO.md as a rendered view; regenerate it instead of hand-editing tasks`;
|
|
444
445
|
|
|
445
446
|
if (!fs.existsSync(claudeSkillsDir)) {
|
|
446
447
|
fs.mkdirSync(claudeSkillsDir, { recursive: true });
|
|
@@ -773,7 +774,7 @@ function syncAtrisAll({ dryRun = false, force = false } = {}) {
|
|
|
773
774
|
const plan = initialPlan;
|
|
774
775
|
|
|
775
776
|
// Report.
|
|
776
|
-
console.log(`Found ${projects.length} project
|
|
777
|
+
console.log(`Found ${projects.length} ${projects.length === 1 ? 'project' : 'projects'}.`);
|
|
777
778
|
console.log('');
|
|
778
779
|
let wouldUpdate = 0, unchanged = 0, skipped = 0;
|
|
779
780
|
for (const p of plan) {
|
|
@@ -788,7 +789,7 @@ function syncAtrisAll({ dryRun = false, force = false } = {}) {
|
|
|
788
789
|
console.log(` · ${rel} (up to date)`);
|
|
789
790
|
unchanged++;
|
|
790
791
|
} else {
|
|
791
|
-
console.log(` → ${rel} — ${p.changes.length} file
|
|
792
|
+
console.log(` → ${rel} — ${p.changes.length} ${p.changes.length === 1 ? 'file' : 'files'}: ${p.changes.join(', ')}`);
|
|
792
793
|
wouldUpdate++;
|
|
793
794
|
}
|
|
794
795
|
}
|