✨ feat(playbook): add playbook root boundary placeholder
This commit is contained in:
+21
-3
@@ -626,10 +626,13 @@ def replace_placeholders(
|
||||
project_name: str | None,
|
||||
date_value: str,
|
||||
playbook_scripts: str | None,
|
||||
playbook_root: str | None,
|
||||
) -> str:
|
||||
result = text.replace("{{DATE}}", date_value)
|
||||
if project_name:
|
||||
result = result.replace("{{PROJECT_NAME}}", project_name)
|
||||
if playbook_root:
|
||||
result = result.replace("{{PLAYBOOK_ROOT}}", playbook_root)
|
||||
if playbook_scripts:
|
||||
result = result.replace("{{PLAYBOOK_SCRIPTS}}", playbook_scripts)
|
||||
return result
|
||||
@@ -649,11 +652,14 @@ def replace_placeholders_in_file(
|
||||
project_name: str | None,
|
||||
date_value: str,
|
||||
playbook_scripts: str | None,
|
||||
playbook_root: str | None,
|
||||
) -> None:
|
||||
if file_path.suffix != ".md":
|
||||
return
|
||||
text = file_path.read_text(encoding="utf-8")
|
||||
updated = replace_placeholders(text, project_name, date_value, playbook_scripts)
|
||||
updated = replace_placeholders(
|
||||
text, project_name, date_value, playbook_scripts, playbook_root
|
||||
)
|
||||
if updated != text:
|
||||
file_path.write_text(updated, encoding="utf-8", newline="\n")
|
||||
|
||||
@@ -673,6 +679,7 @@ def sync_directory(
|
||||
project_name: str | None,
|
||||
date_value: str,
|
||||
playbook_scripts: str | None,
|
||||
playbook_root: str | None,
|
||||
force: bool,
|
||||
no_backup: bool,
|
||||
) -> None:
|
||||
@@ -693,6 +700,7 @@ def sync_directory(
|
||||
project_name,
|
||||
date_value,
|
||||
playbook_scripts,
|
||||
playbook_root,
|
||||
)
|
||||
|
||||
|
||||
@@ -720,10 +728,11 @@ def update_agents_section(
|
||||
project_name: str | None,
|
||||
date_value: str,
|
||||
playbook_scripts: str | None,
|
||||
playbook_root: str | None,
|
||||
) -> None:
|
||||
template_text = template_path.read_text(encoding="utf-8")
|
||||
template_text = replace_placeholders(
|
||||
template_text, project_name, date_value, playbook_scripts
|
||||
template_text, project_name, date_value, playbook_scripts, playbook_root
|
||||
)
|
||||
block = extract_block_lines(template_text, start_marker, end_marker)
|
||||
if not block:
|
||||
@@ -802,6 +811,7 @@ def sync_agents_template(context: dict) -> int:
|
||||
|
||||
project_name = resolve_project_name(context)
|
||||
playbook_scripts = resolve_playbook_scripts(context)
|
||||
playbook_root = resolve_playbook_root(context)
|
||||
date_value = resolve_template_date(context)
|
||||
|
||||
agents_dst = project_root / "AGENTS.md"
|
||||
@@ -828,6 +838,7 @@ def sync_agents_template(context: dict) -> int:
|
||||
project_name,
|
||||
date_value,
|
||||
playbook_scripts,
|
||||
playbook_root,
|
||||
)
|
||||
sync_claude_md(project_root, context.get("config", {}))
|
||||
return 0
|
||||
@@ -944,12 +955,15 @@ def sync_rules_action(config: dict, context: dict) -> int:
|
||||
|
||||
project_name = resolve_project_name(context)
|
||||
playbook_scripts = resolve_playbook_scripts(context)
|
||||
playbook_root = resolve_playbook_root(context)
|
||||
date_value = config.get("date") or datetime.now().strftime("%Y-%m-%d")
|
||||
no_backup = bool(config.get("no_backup", False))
|
||||
|
||||
backup_path(rules_dst, no_backup)
|
||||
text = rules_src.read_text(encoding="utf-8")
|
||||
text = replace_placeholders(text, project_name, date_value, playbook_scripts)
|
||||
text = replace_placeholders(
|
||||
text, project_name, date_value, playbook_scripts, playbook_root
|
||||
)
|
||||
rules_dst.write_text(text.rstrip("\n") + "\n", encoding="utf-8", newline="\n")
|
||||
log("Synced: AGENT_RULES.md")
|
||||
|
||||
@@ -987,6 +1001,7 @@ def sync_memory_bank_action(config: dict, context: dict) -> int:
|
||||
|
||||
project_name = config.get("project_name")
|
||||
playbook_scripts = resolve_playbook_scripts(context)
|
||||
playbook_root = resolve_playbook_root(context)
|
||||
date_value = config.get("date") or datetime.now().strftime("%Y-%m-%d")
|
||||
force = bool(config.get("force", False))
|
||||
no_backup = bool(config.get("no_backup", False))
|
||||
@@ -999,6 +1014,7 @@ def sync_memory_bank_action(config: dict, context: dict) -> int:
|
||||
project_name,
|
||||
date_value,
|
||||
playbook_scripts,
|
||||
playbook_root,
|
||||
force,
|
||||
no_backup,
|
||||
)
|
||||
@@ -1020,6 +1036,7 @@ def sync_prompts_action(config: dict, context: dict) -> int:
|
||||
|
||||
project_name = resolve_project_name(context)
|
||||
playbook_scripts = resolve_playbook_scripts(context)
|
||||
playbook_root = resolve_playbook_root(context)
|
||||
date_value = config.get("date") or datetime.now().strftime("%Y-%m-%d")
|
||||
force = bool(config.get("force", False))
|
||||
no_backup = bool(config.get("no_backup", False))
|
||||
@@ -1033,6 +1050,7 @@ def sync_prompts_action(config: dict, context: dict) -> int:
|
||||
project_name,
|
||||
date_value,
|
||||
playbook_scripts,
|
||||
playbook_root,
|
||||
force,
|
||||
no_backup,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user