chati-dev 3.0.2 → 3.0.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chati-dev",
3
- "version": "3.0.2",
3
+ "version": "3.0.4",
4
4
  "description": "AI-Powered Multi-Agent Orchestration System — Structured vibe coding for Full Stack Development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Provider conventions (verified Feb 2026):
9
9
  * - Gemini CLI: auto-loads GEMINI.md, uses .gemini/commands/*.toml, no rules/
10
- * - Codex CLI: auto-loads AGENTS.md, uses .codex/commands/*.md for /chati
10
+ * - Codex CLI: auto-loads AGENTS.md, uses .agents/skills/chati/SKILL.md for $chati
11
11
  * - Copilot CLI: auto-loads AGENTS.md + CLAUDE.md + GEMINI.md natively (no COPILOT.md needed)
12
12
  */
13
13
 
@@ -43,10 +43,10 @@ export const IDE_CONFIGS = {
43
43
  name: 'Codex CLI',
44
44
  description: 'OpenAI Codex terminal agent',
45
45
  recommended: false,
46
- configPath: '.codex/commands/',
46
+ configPath: '.agents/skills/chati/',
47
47
  rulesFile: 'AGENTS.md',
48
48
  mcpConfigFile: null,
49
- formatNotes: 'Markdown command format',
49
+ formatNotes: 'Codex skill format (SKILL.md with YAML frontmatter)',
50
50
  },
51
51
  'gemini-cli': {
52
52
  name: 'Gemini CLI',
@@ -3,7 +3,7 @@ import { join, dirname } from 'path';
3
3
  import { fileURLToPath } from 'url';
4
4
  import { IDE_CONFIGS } from '../config/ide-configs.js';
5
5
  import { generateClaudeMCPConfig } from '../config/mcp-configs.js';
6
- import { generateSessionYaml, generateConfigYaml, generateClaudeMd, generateClaudeLocalMd, generateCodexRouter, generateGeminiRouter, generateCopilotAgent } from './templates.js';
6
+ import { generateSessionYaml, generateConfigYaml, generateClaudeMd, generateClaudeLocalMd, generateCodexSkill, generateGeminiRouter, generateCopilotAgent } from './templates.js';
7
7
  import { generateContextFiles } from '../config/context-file-generator.js';
8
8
  import { verifyManifest } from './manifest.js';
9
9
 
@@ -302,8 +302,9 @@ Pass through all context: session state, handoffs, artifacts, and user input.
302
302
  );
303
303
  }
304
304
  } else if (ideKey === 'codex-cli') {
305
- // Codex CLI: /chati slash command via .codex/commands/
306
- writeFileSync(join(targetDir, '.codex', 'commands', 'chati.md'), generateCodexRouter(), 'utf-8');
305
+ // Codex CLI: chati skill via .agents/skills/chati/SKILL.md (invoke with $chati)
306
+ createDir(join(targetDir, '.agents', 'skills', 'chati'));
307
+ writeFileSync(join(targetDir, '.agents', 'skills', 'chati', 'SKILL.md'), generateCodexSkill(), 'utf-8');
307
308
  } else if (ideKey === 'gemini-cli') {
308
309
  // Gemini CLI: TOML command file (native format for /chati command)
309
310
  writeFileSync(join(targetDir, '.gemini', 'commands', 'chati.toml'), generateGeminiRouter(), 'utf-8');
@@ -147,13 +147,24 @@ Type \`/chati\` to start.
147
147
  }
148
148
 
149
149
  /**
150
- * Generate Codex CLI command (.codex/commands/chati.md)
150
+ * Generate Codex CLI skill (.agents/skills/chati/SKILL.md)
151
151
  *
152
- * Codex CLI supports /chati slash command via .codex/commands/.
152
+ * Codex CLI uses the Skills system for extensibility.
153
+ * Skills live in .agents/skills/<name>/SKILL.md with YAML frontmatter.
154
+ * The user invokes with $chati or Codex auto-detects based on description.
153
155
  * Also reads AGENTS.md for project context (auto-generated by context-file-generator).
154
156
  */
155
- export function generateCodexRouter() {
156
- return `# /chati — Thin Router
157
+ export function generateCodexSkill() {
158
+ return `---
159
+ name: chati
160
+ description: >
161
+ Use this skill when the user wants to start or continue a Chati.dev session.
162
+ This activates the orchestrator which routes to the correct agent in the pipeline.
163
+ Invoke when the user mentions chati, /chati, wants to plan, build, or deploy a project.
164
+ Do NOT use for general coding questions unrelated to the Chati.dev pipeline.
165
+ ---
166
+
167
+ # Chati.dev Orchestrator
157
168
 
158
169
  ## CRITICAL — Language Override
159
170
 
@@ -169,17 +180,34 @@ ALL responses MUST be in this language. This overrides any global setting.
169
180
 
170
181
  If session.yaml does not exist or has no language field, default to English.
171
182
 
183
+ ## CRITICAL — Provider Context Mapping
184
+
185
+ The orchestrator was written for Claude Code. You are running on **Codex CLI**.
186
+ When the orchestrator references Claude-specific files, use these equivalents:
187
+
188
+ | Orchestrator says | You use instead |
189
+ |-------------------|-----------------|
190
+ | \`CLAUDE.md\` | \`AGENTS.md\` |
191
+ | \`CLAUDE.local.md\` | \`.chati/session.yaml\` (session state only) |
192
+ | \`.claude/rules/chati/\` | \`chati.dev/context/\` |
193
+ | \`.claude/commands/\` | \`.agents/skills/\` |
194
+ | \`/chati\` | \`$chati\` |
195
+
196
+ **NEVER create or reference CLAUDE.md, CLAUDE.local.md, or .claude/ directories.**
197
+
172
198
  ## Load
173
199
 
174
200
  Read and execute the full orchestrator at \`chati.dev/orchestrator/chati.md\`.
175
201
 
176
- Pass through all context: session state, handoffs, artifacts, and user input.
202
+ Apply the Provider Context Mapping above when following the orchestrator instructions.
177
203
 
178
204
  **Context to pass:**
179
205
  - \`.chati/session.yaml\` (session state — includes language)
180
- - \`AGENTS.md\` (project context — auto-generated)
206
+ - \`AGENTS.md\` (project context — auto-generated from base content)
181
207
  - \`chati.dev/artifacts/handoffs/\` (latest handoff)
182
208
  - \`chati.dev/config.yaml\` (version info)
209
+
210
+ **User input:** $ARGUMENTS
183
211
  `;
184
212
  }
185
213
 
@@ -197,10 +225,21 @@ Read \`.chati/session.yaml\` field \`language\` BEFORE anything else.
197
225
  ALL responses MUST be in this language (en, pt, es, fr).
198
226
  If session.yaml does not exist or has no language field, default to English.
199
227
 
228
+ CRITICAL — Provider Context Mapping:
229
+ The orchestrator was written for Claude Code. You are running on Gemini CLI.
230
+ When the orchestrator references Claude-specific files, use these equivalents:
231
+ - CLAUDE.md -> GEMINI.md
232
+ - CLAUDE.local.md -> .chati/session.yaml (session state only)
233
+ - .claude/rules/chati/ -> chati.dev/context/
234
+ - .claude/commands/ -> .gemini/commands/
235
+ NEVER create or reference CLAUDE.md, CLAUDE.local.md, or .claude/ directories.
236
+
200
237
  Read and execute the full orchestrator at \`chati.dev/orchestrator/chati.md\`.
238
+ Apply the Provider Context Mapping above when following instructions.
201
239
 
202
240
  Context to load:
203
241
  - \`.chati/session.yaml\` (session state — includes language)
242
+ - \`GEMINI.md\` (project context — auto-generated)
204
243
  - \`chati.dev/artifacts/handoffs/\` (latest handoff)
205
244
  - \`chati.dev/config.yaml\` (version info)
206
245
 
@@ -234,11 +273,26 @@ ALL responses MUST be in this language. This overrides any global setting.
234
273
 
235
274
  If session.yaml does not exist or has no language field, default to English.
236
275
 
276
+ ## CRITICAL — Provider Context Mapping
277
+
278
+ The orchestrator was written for Claude Code. You are running on **GitHub Copilot CLI**.
279
+ When the orchestrator references Claude-specific files, use these equivalents:
280
+
281
+ | Orchestrator says | You use instead |
282
+ |-------------------|-----------------|
283
+ | \`CLAUDE.md\` | \`AGENTS.md\` |
284
+ | \`CLAUDE.local.md\` | \`.chati/session.yaml\` (session state only) |
285
+ | \`.claude/rules/chati/\` | \`chati.dev/context/\` |
286
+ | \`.claude/commands/\` | \`.github/agents/\` |
287
+ | \`/chati\` | \`@chati\` |
288
+
289
+ **NEVER create or reference CLAUDE.md, CLAUDE.local.md, or .claude/ directories.**
290
+
237
291
  ## Load
238
292
 
239
293
  Read and execute the full orchestrator at \`chati.dev/orchestrator/chati.md\`.
240
294
 
241
- Pass through all context: session state, handoffs, artifacts, and user input.
295
+ Apply the Provider Context Mapping above when following the orchestrator instructions.
242
296
 
243
297
  **Context to pass:**
244
298
  - \`.chati/session.yaml\` (session state — includes language)
@@ -70,6 +70,9 @@ export async function runWizard(targetDir, options = {}) {
70
70
  await stepConfirmation(config);
71
71
 
72
72
  // Step 5: Installation + Validation
73
+ const primaryIDE = selectedIDEs[selectedIDEs.length - 1];
74
+ const primaryIDEName = IDE_CONFIGS[primaryIDE]?.name || primaryIDE;
75
+
73
76
  console.log();
74
77
  const installSpinner = createSpinner(t('installer.installing'));
75
78
  installSpinner.start();
@@ -80,7 +83,17 @@ export async function runWizard(targetDir, options = {}) {
80
83
 
81
84
  showStep(t('installer.created_chati'));
82
85
  showStep(t('installer.created_framework'));
83
- showStep(t('installer.created_commands'));
86
+
87
+ // Show provider-specific command creation
88
+ const commandStepMap = {
89
+ 'claude-code': 'Created .claude/commands/ (thin router)',
90
+ 'gemini-cli': 'Created .gemini/commands/ (TOML command)',
91
+ 'codex-cli': 'Created .agents/skills/chati/ (Codex skill)',
92
+ 'github-copilot': 'Created .github/agents/ (Copilot agent)',
93
+ };
94
+ const commandStep = commandStepMap[primaryIDE] || t('installer.created_commands');
95
+ showStep(commandStep);
96
+
84
97
  showStep(t('installer.installed_constitution'));
85
98
  showStep(t('installer.created_session'));
86
99
  if (selectedIDEs.includes('claude-code')) {
@@ -118,9 +131,11 @@ export async function runWizard(targetDir, options = {}) {
118
131
  p.outro(t('installer.success'));
119
132
 
120
133
  // Show quick start — same experience across all providers
121
- const primaryIDE = selectedIDEs[selectedIDEs.length - 1];
122
- const primaryIDEName = IDE_CONFIGS[primaryIDE]?.name || primaryIDE;
123
- const invokeCmd = primaryIDE === 'github-copilot' ? '@chati' : '/chati';
134
+ const invokeCmdMap = {
135
+ 'github-copilot': '@chati',
136
+ 'codex-cli': '$chati',
137
+ };
138
+ const invokeCmd = invokeCmdMap[primaryIDE] || '/chati';
124
139
  showQuickStart(t('installer.quick_start_title'), [
125
140
  `${t('installer.quick_start_1')} (${primaryIDEName})`,
126
141
  `Type: ${invokeCmd}`,