From 65a24bb0ea99aa1ff3e2d6899d0d9b1243613fad Mon Sep 17 00:00:00 2001 From: Lauren ten Hoor Date: Mon, 16 Feb 2026 15:08:22 +0800 Subject: [PATCH] refactor: update loadRoleInstructions to prioritize new file layout --- lib/bootstrap-hook.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/bootstrap-hook.ts b/lib/bootstrap-hook.ts index b82acd0..9c896a4 100644 --- a/lib/bootstrap-hook.ts +++ b/lib/bootstrap-hook.ts @@ -44,17 +44,19 @@ export async function loadRoleInstructions( projectName: string, role: string, ): Promise { - const projectFile = path.join(workspaceDir, "projects", "roles", projectName, `${role}.md`); - try { - return await fs.readFile(projectFile, "utf-8"); - } catch { - /* not found — try default */ - } - const defaultFile = path.join(workspaceDir, "projects", "roles", "default", `${role}.md`); - try { - return await fs.readFile(defaultFile, "utf-8"); - } catch { - /* not found */ + // Try paths in priority order: new layout first, then legacy fallback + const candidates = [ + path.join(workspaceDir, "devclaw", "projects", projectName, "prompts", `${role}.md`), + path.join(workspaceDir, "devclaw", "prompts", `${role}.md`), + path.join(workspaceDir, "projects", "roles", projectName, `${role}.md`), + path.join(workspaceDir, "projects", "roles", "default", `${role}.md`), + ]; + for (const filePath of candidates) { + try { + return await fs.readFile(filePath, "utf-8"); + } catch { + /* not found — try next */ + } } return ""; }