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.
- package/commands/sync.js +64 -0
- 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