Skip to content

Commit 79fc6b0

Browse files
authored
Make sure to use .kilocode/rules consistently (#196)
* Update translations with proper folder name * Update rules dir name
1 parent c03e0fa commit 79fc6b0

File tree

19 files changed

+182
-198
lines changed

19 files changed

+182
-198
lines changed

src/core/prompts/sections/__tests__/custom-instructions.test.ts

Lines changed: 127 additions & 137 deletions
Large diffs are not rendered by default.

src/core/prompts/sections/custom-instructions.ts

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ function formatDirectoryContent(dirPath: string, files: Array<{ filename: string
107107
* Load rule files from the specified directory
108108
*/
109109
export async function loadRuleFiles(cwd: string): Promise<string> {
110-
// Check for .roo/rules/ directory
111-
const rooRulesDir = path.join(cwd, ".roo", "rules")
110+
// Check for .kilocode/rules/ directory
111+
const rooRulesDir = path.join(cwd, ".kilocode", "rules")
112112
if (await directoryExists(rooRulesDir)) {
113113
const files = await readTextFilesFromDirectory(rooRulesDir)
114114
if (files.length > 0) {
@@ -117,7 +117,7 @@ export async function loadRuleFiles(cwd: string): Promise<string> {
117117
}
118118

119119
// Fall back to existing behavior
120-
const ruleFiles = [".roorules", ".clinerules"]
120+
const ruleFiles = [".kilocoderules", ".roorules", ".clinerules"]
121121

122122
for (const file of ruleFiles) {
123123
const content = await safeReadFile(path.join(cwd, file))
@@ -143,8 +143,8 @@ export async function addCustomInstructions(
143143
let usedRuleFile = ""
144144

145145
if (mode) {
146-
// Check for .roo/rules-${mode}/ directory
147-
const modeRulesDir = path.join(cwd, ".roo", `rules-${mode}`)
146+
// Check for .kilocode/rules-${mode}/ directory
147+
const modeRulesDir = path.join(cwd, ".kilocode", `rules-${mode}`)
148148
if (await directoryExists(modeRulesDir)) {
149149
const files = await readTextFilesFromDirectory(modeRulesDir)
150150
if (files.length > 0) {
@@ -155,16 +155,10 @@ export async function addCustomInstructions(
155155

156156
// If no directory exists, fall back to existing behavior
157157
if (!modeRuleContent) {
158-
const rooModeRuleFile = `.roorules-${mode}`
158+
const rooModeRuleFile = `.kilocoderules-${mode}`
159159
modeRuleContent = await safeReadFile(path.join(cwd, rooModeRuleFile))
160160
if (modeRuleContent) {
161161
usedRuleFile = rooModeRuleFile
162-
} else {
163-
const clineModeRuleFile = `.clinerules-${mode}`
164-
modeRuleContent = await safeReadFile(path.join(cwd, clineModeRuleFile))
165-
if (modeRuleContent) {
166-
usedRuleFile = clineModeRuleFile
167-
}
168162
}
169163
}
170164
}
@@ -192,7 +186,7 @@ export async function addCustomInstructions(
192186

193187
// Add mode-specific rules first if they exist
194188
if (modeRuleContent && modeRuleContent.trim()) {
195-
if (usedRuleFile.includes(path.join(".roo", `rules-${mode}`))) {
189+
if (usedRuleFile.includes(path.join(".kilocode", `rules-${mode}`))) {
196190
rules.push(modeRuleContent.trim())
197191
} else {
198192
rules.push(`# Rules from ${usedRuleFile}:\n${modeRuleContent}`)

src/core/webview/ClineProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -913,7 +913,7 @@ export class ClineProvider extends EventEmitter<ClineProviderEvents> implements
913913
await fs.mkdir(mcpServersDir, { recursive: true })
914914
} catch (error) {
915915
// Fallback to a relative path if directory creation fails
916-
return path.join(os.homedir(), ".kilo-code", "mcp")
916+
return path.join(os.homedir(), ".kilocode", "mcp")
917917
}
918918
return mcpServersDir
919919
}

webview-ui/src/components/prompts/PromptsView.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -798,7 +798,7 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
798798
// Open or create an empty file
799799
vscode.postMessage({
800800
type: "openFile",
801-
text: `./.roo/rules-${currentMode.slug}/rules.md`,
801+
text: `./.kilocode/rules-${currentMode.slug}/rules.md`,
802802
values: {
803803
create: true,
804804
content: "",
@@ -936,7 +936,7 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
936936
onClick={() =>
937937
vscode.postMessage({
938938
type: "openFile",
939-
text: "./.roo/rules/rules.md",
939+
text: "./.kilocode/rules/rules.md",
940940
values: {
941941
create: true,
942942
content: "",

webview-ui/src/i18n/locales/ca/prompts.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@
3636
"title": "Instruccions personalitzades específiques del mode (opcional)",
3737
"resetToDefault": "Restablir a valors predeterminats",
3838
"description": "Afegiu directrius de comportament específiques per al mode {{modeName}}.",
39-
"loadFromFile": "Les instruccions personalitzades específiques per al mode {{mode}} també es poden carregar des de la carpeta <span>.kilo-code/rules-{{slug}}/</span> al vostre espai de treball (.kilocoderules-{{slug}} estan obsolets i deixaran de funcionar aviat)."
39+
"loadFromFile": "Les instruccions personalitzades específiques per al mode {{mode}} també es poden carregar des de la carpeta <span>.kilocode/rules/</span> al vostre espai de treball (.kilocoderules-{{slug}} estan obsolets i deixaran de funcionar aviat)."
4040
},
4141
"globalCustomInstructions": {
4242
"title": "Instruccions personalitzades per a tots els modes",
4343
"description": "Aquestes instruccions s'apliquen a tots els modes. Proporcionen un conjunt bàsic de comportaments que es poden millorar amb instruccions específiques de cada mode a continuació.\nSi voleu que Kilo Code pensi i parli en un idioma diferent al de la visualització del vostre editor ({{language}}), podeu especificar-ho aquí.",
44-
"loadFromFile": "Les instruccions també es poden carregar des de la carpeta <span>.kilo-code/rules/</span> al vostre espai de treball (.kilocoderules estan obsolets i deixaran de funcionar aviat)."
44+
"loadFromFile": "Les instruccions també es poden carregar des de la carpeta <span>.kilocode/rules/</span> al vostre espai de treball (.kilocoderules estan obsolets i deixaran de funcionar aviat)."
4545
},
4646
"systemPrompt": {
4747
"preview": "Previsualització del prompt del sistema",
@@ -100,7 +100,7 @@
100100
},
101101
"advancedSystemPrompt": {
102102
"title": "Avançat: Sobreescriure prompt del sistema",
103-
"description": "Podeu reemplaçar completament el prompt del sistema per a aquest mode (a part de la definició de rol i instruccions personalitzades) creant un fitxer a <span>.kilo-code/system-prompt-{{slug}}</span> al vostre espai de treball. Aquesta és una funcionalitat molt avançada que eludeix les salvaguardes integrades i les comprovacions de consistència (especialment al voltant de l'ús d'eines), així que aneu amb compte!"
103+
"description": "Podeu reemplaçar completament el prompt del sistema per a aquest mode (a part de la definició de rol i instruccions personalitzades) creant un fitxer a <span>.kilocode/system-prompt-{{slug}}</span> al vostre espai de treball. Aquesta és una funcionalitat molt avançada que eludeix les salvaguardes integrades i les comprovacions de consistència (especialment al voltant de l'ús d'eines), així que aneu amb compte!"
104104
},
105105
"createModeDialog": {
106106
"title": "Crear nou mode",

webview-ui/src/i18n/locales/de/prompts.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@
3636
"title": "Modusspezifische benutzerdefinierte Anweisungen (optional)",
3737
"resetToDefault": "Auf Standardwerte zurücksetzen",
3838
"description": "Fügen Sie verhaltensspezifische Richtlinien für den Modus {{modeName}} hinzu.",
39-
"loadFromFile": "Benutzerdefinierte Anweisungen für den Modus {{mode}} können auch aus dem Ordner <span>.kilocode/rules-{{slug}}/</span> in deinem Arbeitsbereich geladen werden (.kilocoderules-{{slug}} ist veraltet und wird bald nicht mehr funktionieren)."
39+
"loadFromFile": "Benutzerdefinierte Anweisungen für den Modus {{mode}} können auch aus dem Ordner <span>.kilocode/rules/</span> in deinem Arbeitsbereich geladen werden (.kilocoderules-{{slug}} ist veraltet und wird bald nicht mehr funktionieren)."
4040
},
4141
"globalCustomInstructions": {
4242
"title": "Benutzerdefinierte Anweisungen für alle Modi",
4343
"description": "Diese Anweisungen gelten für alle Modi. Sie bieten einen grundlegenden Satz von Verhaltensweisen, die durch modusspezifische Anweisungen unten erweitert werden können.\nWenn du möchtest, dass Kilo Code in einer anderen Sprache als deiner Editor-Anzeigesprache ({{language}}) denkt und spricht, kannst du das hier angeben.",
44-
"loadFromFile": "Anweisungen können auch aus dem Ordner <span>.kilo-code/rules/</span> in deinem Arbeitsbereich geladen werden (.kilocoderules sind veraltet und werden bald nicht mehr funktionieren)."
44+
"loadFromFile": "Anweisungen können auch aus dem Ordner <span>.kilocode/rules/</span> in deinem Arbeitsbereich geladen werden (.kilocoderules sind veraltet und werden bald nicht mehr funktionieren)."
4545
},
4646
"systemPrompt": {
4747
"preview": "System-Prompt Vorschau",
@@ -100,7 +100,7 @@
100100
},
101101
"advancedSystemPrompt": {
102102
"title": "Erweitert: System-Prompt überschreiben",
103-
"description": "Du kannst den System-Prompt für diesen Modus vollständig ersetzen (abgesehen von der Rollendefinition und benutzerdefinierten Anweisungen), indem du eine Datei unter <span>.kilo-code/system-prompt-{{slug}}</span> in deinem Arbeitsbereich erstellst. Dies ist eine sehr fortgeschrittene Funktion, die eingebaute Schutzmaßnahmen und Konsistenzprüfungen umgeht (besonders bei der Werkzeugnutzung), also sei vorsichtig!"
103+
"description": "Du kannst den System-Prompt für diesen Modus vollständig ersetzen (abgesehen von der Rollendefinition und benutzerdefinierten Anweisungen), indem du eine Datei unter <span>.kilocode/system-prompt-{{slug}}</span> in deinem Arbeitsbereich erstellst. Dies ist eine sehr fortgeschrittene Funktion, die eingebaute Schutzmaßnahmen und Konsistenzprüfungen umgeht (besonders bei der Werkzeugnutzung), also sei vorsichtig!"
104104
},
105105
"createModeDialog": {
106106
"title": "Neuen Modus erstellen",

webview-ui/src/i18n/locales/en/prompts.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@
3636
"title": "Mode-specific Custom Instructions (optional)",
3737
"resetToDefault": "Reset to default",
3838
"description": "Add behavioral guidelines specific to {{modeName}} mode.",
39-
"loadFromFile": "Custom instructions specific to {{mode}} mode can also be loaded from the <span>.kilocode/rules-{{slug}}/</span> folder in your workspace (.kilocoderules-{{slug}} is deprecated and will stop working soon)."
39+
"loadFromFile": "Custom instructions specific to {{mode}} mode can also be loaded from the <span>.kilocode/rules/</span> folder in your workspace (.kilocoderules-{{slug}} is deprecated and will stop working soon)."
4040
},
4141
"globalCustomInstructions": {
4242
"title": "Custom Instructions for All Modes",
4343
"description": "These instructions apply to all modes. They provide a base set of behaviors that can be enhanced by mode-specific instructions below.\nIf you would like Kilo Code to think and speak in a different language than your editor display language ({{language}}), you can specify it here.",
44-
"loadFromFile": "Instructions can also be loaded from the <span>.kilo-code/rules/</span> folder in your workspace (.kilocoderules is deprecated and will stop working soon)."
44+
"loadFromFile": "Instructions can also be loaded from the <span>.kilocode/rules/</span> folder in your workspace (.kilocoderules is deprecated and will stop working soon)."
4545
},
4646
"systemPrompt": {
4747
"preview": "Preview System Prompt",
@@ -100,7 +100,7 @@
100100
},
101101
"advancedSystemPrompt": {
102102
"title": "Advanced: Override System Prompt",
103-
"description": "You can completely replace the system prompt for this mode (aside from the role definition and custom instructions) by creating a file at <span>.kilo-code/system-prompt-{{slug}}</span> in your workspace. This is a very advanced feature that bypasses built-in safeguards and consistency checks (especially around tool usage), so be careful!"
103+
"description": "You can completely replace the system prompt for this mode (aside from the role definition and custom instructions) by creating a file at <span>.kilocode/system-prompt-{{slug}}</span> in your workspace. This is a very advanced feature that bypasses built-in safeguards and consistency checks (especially around tool usage), so be careful!"
104104
},
105105
"createModeDialog": {
106106
"title": "Create New Mode",

webview-ui/src/i18n/locales/es/prompts.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@
3636
"title": "Instrucciones personalizadas para el modo (opcional)",
3737
"resetToDefault": "Restablecer a valores predeterminados",
3838
"description": "Agrega directrices de comportamiento específicas para el modo {{modeName}}.",
39-
"loadFromFile": "Las instrucciones personalizadas para el modo {{mode}} también se pueden cargar desde la carpeta <span>.kilocode/rules-{{slug}}/</span> en tu espacio de trabajo (.kilocoderules-{{slug}} está obsoleto y dejará de funcionar pronto)."
39+
"loadFromFile": "Las instrucciones personalizadas para el modo {{mode}} también se pueden cargar desde la carpeta <span>.kilocode/rules/</span> en tu espacio de trabajo (.kilocoderules-{{slug}} está obsoleto y dejará de funcionar pronto)."
4040
},
4141
"globalCustomInstructions": {
4242
"title": "Instrucciones personalizadas para todos los modos",
4343
"description": "Estas instrucciones se aplican a todos los modos. Proporcionan un conjunto base de comportamientos que pueden ser mejorados por instrucciones específicas de cada modo.\nSi quieres que Kilo Code piense y hable en un idioma diferente al idioma de visualización de tu editor ({{language}}), puedes especificarlo aquí.",
44-
"loadFromFile": "Las instrucciones también se pueden cargar desde la carpeta <span>.kilo-code/rules/</span> en tu espacio de trabajo (.kilocoderules está obsoleto y dejará de funcionar pronto)."
44+
"loadFromFile": "Las instrucciones también se pueden cargar desde la carpeta <span>.kilocode/rules/</span> en tu espacio de trabajo (.kilocoderules está obsoleto y dejará de funcionar pronto)."
4545
},
4646
"systemPrompt": {
4747
"preview": "Vista previa de la solicitud del sistema",
@@ -100,7 +100,7 @@
100100
},
101101
"advancedSystemPrompt": {
102102
"title": "Avanzado: Anular solicitud del sistema",
103-
"description": "Puedes reemplazar completamente la solicitud del sistema para este modo (aparte de la definición de rol e instrucciones personalizadas) creando un archivo en <span>.kilo-code/system-prompt-{{slug}}</span> en tu espacio de trabajo. ¡Esta es una función muy avanzada que omite las salvaguardas integradas y las verificaciones de consistencia (especialmente en torno al uso de herramientas), así que ten cuidado!"
103+
"description": "Puedes reemplazar completamente la solicitud del sistema para este modo (aparte de la definición de rol e instrucciones personalizadas) creando un archivo en <span>.kilocode/system-prompt-{{slug}}</span> en tu espacio de trabajo. ¡Esta es una función muy avanzada que omite las salvaguardas integradas y las verificaciones de consistencia (especialmente en torno al uso de herramientas), así que ten cuidado!"
104104
},
105105
"createModeDialog": {
106106
"title": "Crear nuevo modo",

webview-ui/src/i18n/locales/fr/prompts.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@
3636
"title": "Instructions personnalisées spécifiques au mode (optionnel)",
3737
"resetToDefault": "Réinitialiser aux valeurs par défaut",
3838
"description": "Ajoutez des directives comportementales spécifiques au mode {{modeName}}.",
39-
"loadFromFile": "Les instructions personnalisées spécifiques au mode {{mode}} peuvent également être chargées depuis le dossier <span>.kilocode/rules-{{slug}}/</span> dans votre espace de travail (.kilocoderules-{{slug}} est obsolète et cessera de fonctionner bientôt)."
39+
"loadFromFile": "Les instructions personnalisées spécifiques au mode {{mode}} peuvent également être chargées depuis le dossier <span>.kilocode/rules/</span> dans votre espace de travail (.kilocoderules-{{slug}} est obsolète et cessera de fonctionner bientôt)."
4040
},
4141
"globalCustomInstructions": {
4242
"title": "Instructions personnalisées pour tous les modes",
4343
"description": "Ces instructions s'appliquent à tous les modes. Elles fournissent un ensemble de comportements de base qui peuvent être améliorés par des instructions spécifiques au mode ci-dessous.\nSi vous souhaitez que Kilo Code pense et parle dans une langue différente de celle de votre éditeur ({{language}}), vous pouvez le spécifier ici.",
44-
"loadFromFile": "Les instructions peuvent également être chargées depuis le dossier <span>.kilo-code/rules/</span> dans votre espace de travail (.kilocoderules est obsolète et cessera de fonctionner bientôt)."
44+
"loadFromFile": "Les instructions peuvent également être chargées depuis le dossier <span>.kilocode/rules/</span> dans votre espace de travail (.kilocoderules est obsolète et cessera de fonctionner bientôt)."
4545
},
4646
"systemPrompt": {
4747
"preview": "Aperçu du prompt système",
@@ -100,7 +100,7 @@
100100
},
101101
"advancedSystemPrompt": {
102102
"title": "Avancé : Remplacer le prompt système",
103-
"description": "Vous pouvez complètement remplacer le prompt système pour ce mode (en dehors de la définition du rôle et des instructions personnalisées) en créant un fichier à <span>.kilo-code/system-prompt-{{slug}}</span> dans votre espace de travail. Il s'agit d'une fonctionnalité très avancée qui contourne les garanties intégrées et les vérifications de cohérence (notamment concernant l'utilisation des outils), alors soyez prudent !"
103+
"description": "Vous pouvez complètement remplacer le prompt système pour ce mode (en dehors de la définition du rôle et des instructions personnalisées) en créant un fichier à <span>.kilocode/system-prompt-{{slug}}</span> dans votre espace de travail. Il s'agit d'une fonctionnalité très avancée qui contourne les garanties intégrées et les vérifications de cohérence (notamment concernant l'utilisation des outils), alors soyez prudent !"
104104
},
105105
"createModeDialog": {
106106
"title": "Créer un nouveau mode",

0 commit comments

Comments
 (0)