From b19726baf78d35e9cf4c2fb5c1549127af66f868 Mon Sep 17 00:00:00 2001 From: uinstinct <61635505+uinstinct@users.noreply.github.com> Date: Fri, 10 Oct 2025 08:44:36 +0530 Subject: [PATCH 1/5] fix: show md rules and prompts in respective sections --- core/config/markdown/loadMarkdownRules.ts | 6 +++--- core/promptFiles/getPromptFiles.ts | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/config/markdown/loadMarkdownRules.ts b/core/config/markdown/loadMarkdownRules.ts index bdeddedaaae..db93fe0bce1 100644 --- a/core/config/markdown/loadMarkdownRules.ts +++ b/core/config/markdown/loadMarkdownRules.ts @@ -3,7 +3,7 @@ import { markdownToRule, } from "@continuedev/config-yaml"; import { IDE, RuleWithSource } from "../.."; -import { PROMPTS_DIR_NAME, RULES_DIR_NAME } from "../../promptFiles"; +import { RULES_DIR_NAME } from "../../promptFiles"; import { joinPathsToUri } from "../../util/uri"; import { getAllDotContinueDefinitionFiles } from "../loadLocalAssistants"; @@ -54,8 +54,8 @@ export async function loadMarkdownRules(ide: IDE): Promise<{ } } - // Load markdown files from both .continue/rules and .continue/prompts - const dirsToCheck = [RULES_DIR_NAME, PROMPTS_DIR_NAME]; + // Load markdown files from both .continue/rules + const dirsToCheck = [RULES_DIR_NAME]; for (const dirName of dirsToCheck) { try { diff --git a/core/promptFiles/getPromptFiles.ts b/core/promptFiles/getPromptFiles.ts index 6a3837e3ab6..cf840c23d84 100644 --- a/core/promptFiles/getPromptFiles.ts +++ b/core/promptFiles/getPromptFiles.ts @@ -2,7 +2,6 @@ import path from "path"; import { DEFAULT_PROMPTS_FOLDER_V1, DEFAULT_PROMPTS_FOLDER_V2, - DEFAULT_RULES_FOLDER, RULES_DIR_NAME, } from "."; import { IDE } from ".."; @@ -24,7 +23,9 @@ export async function getPromptFilesFromDir( const uris = await walkDir(dir, ide, { source: "get dir prompt files", }); - const promptFilePaths = uris.filter((p) => p.endsWith(".prompt")); + const promptFilePaths = uris.filter( + (p) => p.endsWith(".prompt") || p.endsWith(".md"), + ); const results = promptFilePaths.map(async (uri) => { const content = await ide.readFile(uri); // make a try catch return { path: uri, content }; @@ -44,7 +45,7 @@ export async function getAllPromptFiles( const workspaceDirs = await ide.getWorkspaceDirs(); let promptFiles: { path: string; content: string }[] = []; - let dirsToCheck = [DEFAULT_PROMPTS_FOLDER_V2, DEFAULT_RULES_FOLDER]; + let dirsToCheck = [DEFAULT_PROMPTS_FOLDER_V2]; if (checkV1DefaultFolder) { dirsToCheck.push(DEFAULT_PROMPTS_FOLDER_V1); } From cf0fabaf71eaf7f8c9456eb737dcb08c365c04c0 Mon Sep 17 00:00:00 2001 From: Aditya Mitra <61635505+uinstinct@users.noreply.github.com> Date: Fri, 10 Oct 2025 09:02:18 +0530 Subject: [PATCH 2/5] Update core/config/markdown/loadMarkdownRules.ts Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- core/config/markdown/loadMarkdownRules.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/config/markdown/loadMarkdownRules.ts b/core/config/markdown/loadMarkdownRules.ts index db93fe0bce1..0df358b7922 100644 --- a/core/config/markdown/loadMarkdownRules.ts +++ b/core/config/markdown/loadMarkdownRules.ts @@ -54,7 +54,7 @@ export async function loadMarkdownRules(ide: IDE): Promise<{ } } - // Load markdown files from both .continue/rules + // Load markdown files from .continue/rules const dirsToCheck = [RULES_DIR_NAME]; for (const dirName of dirsToCheck) { From ff80ef4ca7d2c136d5b81a156b06a9d3dccc2d10 Mon Sep 17 00:00:00 2001 From: uinstinct <61635505+uinstinct@users.noreply.github.com> Date: Wed, 15 Oct 2025 09:03:31 +0530 Subject: [PATCH 3/5] Revert "Update core/config/markdown/loadMarkdownRules.ts" This reverts commit cf0fabaf71eaf7f8c9456eb737dcb08c365c04c0. --- core/config/markdown/loadMarkdownRules.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/config/markdown/loadMarkdownRules.ts b/core/config/markdown/loadMarkdownRules.ts index f097abeeeb3..64cf80e6c1f 100644 --- a/core/config/markdown/loadMarkdownRules.ts +++ b/core/config/markdown/loadMarkdownRules.ts @@ -54,7 +54,7 @@ export async function loadMarkdownRules(ide: IDE): Promise<{ } } - // Load markdown files from .continue/rules + // Load markdown files from both .continue/rules const dirsToCheck = [RULES_DIR_NAME]; for (const dirName of dirsToCheck) { From 80cae25d37ebdc7b7c48b9e89229fa19527b9310 Mon Sep 17 00:00:00 2001 From: uinstinct <61635505+uinstinct@users.noreply.github.com> Date: Wed, 15 Oct 2025 09:03:57 +0530 Subject: [PATCH 4/5] Revert "fix: show md rules and prompts in respective sections" This reverts commit b19726baf78d35e9cf4c2fb5c1549127af66f868. --- core/config/markdown/loadMarkdownRules.ts | 6 +++--- core/promptFiles/getPromptFiles.ts | 7 +++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/core/config/markdown/loadMarkdownRules.ts b/core/config/markdown/loadMarkdownRules.ts index 64cf80e6c1f..91ed7216485 100644 --- a/core/config/markdown/loadMarkdownRules.ts +++ b/core/config/markdown/loadMarkdownRules.ts @@ -3,7 +3,7 @@ import { markdownToRule, } from "@continuedev/config-yaml"; import { IDE, RuleWithSource } from "../.."; -import { RULES_DIR_NAME } from "../../promptFiles"; +import { PROMPTS_DIR_NAME, RULES_DIR_NAME } from "../../promptFiles"; import { joinPathsToUri } from "../../util/uri"; import { getAllDotContinueDefinitionFiles } from "../loadLocalAssistants"; @@ -54,8 +54,8 @@ export async function loadMarkdownRules(ide: IDE): Promise<{ } } - // Load markdown files from both .continue/rules - const dirsToCheck = [RULES_DIR_NAME]; + // Load markdown files from both .continue/rules and .continue/prompts + const dirsToCheck = [RULES_DIR_NAME, PROMPTS_DIR_NAME]; for (const dirName of dirsToCheck) { try { diff --git a/core/promptFiles/getPromptFiles.ts b/core/promptFiles/getPromptFiles.ts index cf840c23d84..6a3837e3ab6 100644 --- a/core/promptFiles/getPromptFiles.ts +++ b/core/promptFiles/getPromptFiles.ts @@ -2,6 +2,7 @@ import path from "path"; import { DEFAULT_PROMPTS_FOLDER_V1, DEFAULT_PROMPTS_FOLDER_V2, + DEFAULT_RULES_FOLDER, RULES_DIR_NAME, } from "."; import { IDE } from ".."; @@ -23,9 +24,7 @@ export async function getPromptFilesFromDir( const uris = await walkDir(dir, ide, { source: "get dir prompt files", }); - const promptFilePaths = uris.filter( - (p) => p.endsWith(".prompt") || p.endsWith(".md"), - ); + const promptFilePaths = uris.filter((p) => p.endsWith(".prompt")); const results = promptFilePaths.map(async (uri) => { const content = await ide.readFile(uri); // make a try catch return { path: uri, content }; @@ -45,7 +44,7 @@ export async function getAllPromptFiles( const workspaceDirs = await ide.getWorkspaceDirs(); let promptFiles: { path: string; content: string }[] = []; - let dirsToCheck = [DEFAULT_PROMPTS_FOLDER_V2]; + let dirsToCheck = [DEFAULT_PROMPTS_FOLDER_V2, DEFAULT_RULES_FOLDER]; if (checkV1DefaultFolder) { dirsToCheck.push(DEFAULT_PROMPTS_FOLDER_V1); } From 460806c7372ee90ee4bb62230f7ada98d78bf073 Mon Sep 17 00:00:00 2001 From: uinstinct <61635505+uinstinct@users.noreply.github.com> Date: Wed, 15 Oct 2025 09:31:57 +0530 Subject: [PATCH 5/5] fix: skip invokable prompt files also read .md files from prompt folders --- core/config/markdown/loadMarkdownRules.ts | 10 +++++++++- core/promptFiles/getPromptFiles.ts | 10 ++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/core/config/markdown/loadMarkdownRules.ts b/core/config/markdown/loadMarkdownRules.ts index 91ed7216485..34762c95dd9 100644 --- a/core/config/markdown/loadMarkdownRules.ts +++ b/core/config/markdown/loadMarkdownRules.ts @@ -79,7 +79,15 @@ export async function loadMarkdownRules(ide: IDE): Promise<{ uriType: "file", fileUri: file.path, }); - rules.push({ ...rule, source: "rules-block", sourceFile: file.path }); + if (rule.invokable) { + // skip prompt files which are invokable + } else { + rules.push({ + ...rule, + source: "rules-block", + sourceFile: file.path, + }); + } } catch (e) { errors.push({ fatal: false, diff --git a/core/promptFiles/getPromptFiles.ts b/core/promptFiles/getPromptFiles.ts index 6a3837e3ab6..f92a728a2a6 100644 --- a/core/promptFiles/getPromptFiles.ts +++ b/core/promptFiles/getPromptFiles.ts @@ -24,7 +24,9 @@ export async function getPromptFilesFromDir( const uris = await walkDir(dir, ide, { source: "get dir prompt files", }); - const promptFilePaths = uris.filter((p) => p.endsWith(".prompt")); + const promptFilePaths = uris.filter( + (p) => p.endsWith(".prompt") || p.endsWith(".md"), + ); const results = promptFilePaths.map(async (uri) => { const content = await ide.readFile(uri); // make a try catch return { path: uri, content }; @@ -60,6 +62,8 @@ export async function getAllPromptFiles( await Promise.all(fullDirs.map((dir) => getPromptFilesFromDir(ide, dir))) ).flat(); + console.log("debug1 prompt files", promptFiles); + // Also read from ~/.continue/prompts and ~/.continue/rules promptFiles.push(...readAllGlobalPromptFiles()); @@ -68,10 +72,12 @@ export async function getAllPromptFiles( ); promptFiles.push(...promptFilesFromRulesDirectory); - return await Promise.all( + const result = await Promise.all( promptFiles.map(async (file) => { const content = await ide.readFile(file.path); return { path: file.path, content }; }), ); + console.log("debug1 result", result); + return result; }