diff --git a/docs/commands.md b/docs/commands.md index 8b0d81839..4130f8415 100644 --- a/docs/commands.md +++ b/docs/commands.md @@ -618,7 +618,7 @@ Different AI tools use slightly different command syntax. Use the format that ma | Cursor | `/opsx-propose`, `/opsx-apply` | | Windsurf | `/opsx-propose`, `/opsx-apply` | | Copilot (IDE) | `/opsx-propose`, `/opsx-apply` | -| Kimi CLI | Skill-based invocations such as `/skill:openspec-propose`, `/skill:openspec-apply-change` (no generated `opsx-*` command files) | +| Kimi Code | Skill-based invocations such as `/skill:openspec-propose`, `/skill:openspec-apply-change` (no generated `opsx-*` command files) | | Trae | Skill-based invocations such as `/openspec-propose`, `/openspec-apply-change` (no generated `opsx-*` command files) | The intent is the same across tools, but how commands are surfaced can differ by integration. diff --git a/docs/supported-tools.md b/docs/supported-tools.md index b2ee30fb4..1f9f82c11 100644 --- a/docs/supported-tools.md +++ b/docs/supported-tools.md @@ -41,7 +41,7 @@ You can enable expanded workflows (`new`, `continue`, `ff`, `verify`, `bulk-arch | iFlow (`iflow`) | `.iflow/skills/openspec-*/SKILL.md` | `.iflow/commands/opsx-.md` | | Junie (`junie`) | `.junie/skills/openspec-*/SKILL.md` | `.junie/commands/opsx-.md` | | Kilo Code (`kilocode`) | `.kilocode/skills/openspec-*/SKILL.md` | `.kilocode/workflows/opsx-.md` | -| Kimi CLI (`kimi`) | `.kimi/skills/openspec-*/SKILL.md` | Not generated (no command adapter; use skill-based `/skill:openspec-*` invocations) | +| Kimi Code (`kimi`) | `.kimi-code/skills/openspec-*/SKILL.md` | Not generated (no command adapter; use skill-based `/skill:openspec-*` invocations) | | Kiro (`kiro`) | `.kiro/skills/openspec-*/SKILL.md` | `.kiro/prompts/opsx-.prompt.md` | | Lingma (`lingma`) | `.lingma/skills/openspec-*/SKILL.md` | `.lingma/commands/opsx/.md` | | Mistral Vibe (`vibe`) | `.vibe/skills/openspec-*/SKILL.md` | Not generated (no command adapter; use skill-based `/openspec-*` invocations) | diff --git a/src/core/config.ts b/src/core/config.ts index 3be428b26..a39b5cae5 100644 --- a/src/core/config.ts +++ b/src/core/config.ts @@ -38,7 +38,7 @@ export const AI_TOOLS: AIToolOption[] = [ { name: 'iFlow', value: 'iflow', available: true, successLabel: 'iFlow', skillsDir: '.iflow' }, { name: 'Junie', value: 'junie', available: true, successLabel: 'Junie', skillsDir: '.junie' }, { name: 'Kilo Code', value: 'kilocode', available: true, successLabel: 'Kilo Code', skillsDir: '.kilocode' }, - { name: 'Kimi CLI', value: 'kimi', available: true, successLabel: 'Kimi CLI', skillsDir: '.kimi' }, + { name: 'Kimi Code', value: 'kimi', available: true, successLabel: 'Kimi Code', skillsDir: '.kimi-code' }, { name: 'Kiro', value: 'kiro', available: true, successLabel: 'Kiro', skillsDir: '.kiro' }, { name: 'Lingma', value: 'lingma', available: true, successLabel: 'Lingma', skillsDir: '.lingma' }, { name: 'Mistral Vibe', value: 'vibe', available: true, successLabel: 'Mistral Vibe', skillsDir: '.vibe' }, diff --git a/test/core/init.test.ts b/test/core/init.test.ts index 6a436eaed..3b1b1cf7b 100644 --- a/test/core/init.test.ts +++ b/test/core/init.test.ts @@ -168,7 +168,7 @@ describe('InitCommand', () => { expect(await fileExists(skillFile)).toBe(true); }); - it('should support Kimi CLI as an adapterless skills-only tool', async () => { + it('should support Kimi Code as an adapterless skills-only tool', async () => { saveGlobalConfig({ featureFlags: {}, profile: 'core', @@ -178,10 +178,10 @@ describe('InitCommand', () => { const initCommand = new InitCommand({ tools: 'kimi', force: true }); await initCommand.execute(testDir); - const skillFile = path.join(testDir, '.kimi', 'skills', 'openspec-explore', 'SKILL.md'); + const skillFile = path.join(testDir, '.kimi-code', 'skills', 'openspec-explore', 'SKILL.md'); expect(await fileExists(skillFile)).toBe(true); - const commandsDir = path.join(testDir, '.kimi', 'commands'); + const commandsDir = path.join(testDir, '.kimi-code', 'commands'); expect(await directoryExists(commandsDir)).toBe(false); const logCalls = (console.log as unknown as { mock: { calls: unknown[][] } }).mock.calls.flat().map(String);