atris 2.0.13 → 2.0.14

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 (2) hide show
  1. package/commands/sync.js +64 -0
  2. package/package.json +1 -1
package/commands/sync.js CHANGED
@@ -68,6 +68,70 @@ function syncAtris() {
68
68
  console.log('✓ Migrated TASK_CONTEXTS.md to TODO.md');
69
69
  }
70
70
 
71
+ // Update .claude/skills/atris/SKILL.md
72
+ const claudeSkillsDir = path.join(process.cwd(), '.claude', 'skills', 'atris');
73
+ const claudeSkillFile = path.join(claudeSkillsDir, 'SKILL.md');
74
+ const skillContent = `---
75
+ name: atris
76
+ description: ATRIS workspace navigation. Triggers on: atris, TODO, tasks, MAP.md, backlog, "where is X?"
77
+ allowed-tools: Read, Bash, Glob, Grep, Write, Edit
78
+ ---
79
+
80
+ # ATRIS Skill
81
+
82
+ ## IMPORTANT: First Interaction
83
+
84
+ **On your FIRST message in any ATRIS project, IMMEDIATELY run:**
85
+
86
+ \`\`\`bash
87
+ atris atris.md
88
+ \`\`\`
89
+
90
+ 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.
91
+
92
+ ## Workflow
93
+
94
+ Detect: Project has \`atris/\` folder with MAP.md, TODO.md, PERSONA.md
95
+
96
+ Commands: plan → do → review
97
+
98
+ Key behaviors:
99
+ - Read PERSONA.md (3-4 sentences, ASCII visuals)
100
+ - Check MAP.md for file:line refs
101
+ - Update TODO.md (claim tasks, delete when done)`;
102
+
103
+ if (!fs.existsSync(claudeSkillsDir)) {
104
+ fs.mkdirSync(claudeSkillsDir, { recursive: true });
105
+ }
106
+ const currentSkill = fs.existsSync(claudeSkillFile) ? fs.readFileSync(claudeSkillFile, 'utf8') : '';
107
+ if (currentSkill !== skillContent) {
108
+ fs.writeFileSync(claudeSkillFile, skillContent);
109
+ console.log('✓ Updated .claude/skills/atris/SKILL.md');
110
+ updated++;
111
+ }
112
+
113
+ // Update .claude/settings.json with SessionStart hook
114
+ const claudeSettingsFile = path.join(process.cwd(), '.claude', 'settings.json');
115
+ if (!fs.existsSync(claudeSettingsFile)) {
116
+ const claudeSettings = {
117
+ hooks: {
118
+ SessionStart: [
119
+ {
120
+ hooks: [
121
+ {
122
+ type: "command",
123
+ command: "[ -d atris ] && atris atris.md || true"
124
+ }
125
+ ]
126
+ }
127
+ ]
128
+ }
129
+ };
130
+ fs.writeFileSync(claudeSettingsFile, JSON.stringify(claudeSettings, null, 2));
131
+ console.log('✓ Created .claude/settings.json (SessionStart hook)');
132
+ updated++;
133
+ }
134
+
71
135
  if (updated === 0) {
72
136
  console.log('✓ Already up to date');
73
137
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atris",
3
- "version": "2.0.13",
3
+ "version": "2.0.14",
4
4
  "description": "atrisDev (atris dev) - CLI for AI coding agents. Works with Claude Code, Cursor, Windsurf. Make any codebase AI-navigable.",
5
5
  "main": "bin/atris.js",
6
6
  "bin": {