From c8d6bf21a643e9ac1ea079c17618f50a5dcfce51 Mon Sep 17 00:00:00 2001 From: csh Date: Sun, 17 May 2026 08:11:48 +0800 Subject: [PATCH] :bug: fix(playbook): use relative paths in CLAUDE.md when not at project root When CLAUDE.md lives in a subdirectory (e.g. .claude/CLAUDE.md), the @AGENTS.md import must use ../AGENTS.md since Claude Code resolves @path relative to the file's directory. Calculate depth automatically. Co-Authored-By: Claude Opus 4.6 (1M context) --- scripts/playbook.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/scripts/playbook.py b/scripts/playbook.py index 840419c5..7df5727a 100644 --- a/scripts/playbook.py +++ b/scripts/playbook.py @@ -746,11 +746,20 @@ def sync_claude_md(project_root: Path, config: dict) -> None: if claude_md is None: claude_md = project_root / "CLAUDE.md" + rel_prefix = "" + try: + rel = claude_md.parent.resolve().relative_to(project_root.resolve()) + if rel != Path("."): + depth = len(rel.parts) + rel_prefix = "../" * depth + except ValueError: + pass + block_lines = [ _CLAUDE_BLOCK_START, "", - "@AGENTS.md", - "@AGENT_RULES.md", + f"@{rel_prefix}AGENTS.md", + f"@{rel_prefix}AGENT_RULES.md", "", _CLAUDE_BLOCK_END, ]