From 544c91978e98dfbcf379af15473ec70657fbffc2 Mon Sep 17 00:00:00 2001 From: Daniel Infante Vargas Date: Thu, 26 Mar 2026 10:51:54 -0500 Subject: [PATCH] fix(skills): avoid treating skill content as a template --- crates/forge_repo/src/skill.rs | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/crates/forge_repo/src/skill.rs b/crates/forge_repo/src/skill.rs index 3e1f0c38ee..fb8756b4a2 100644 --- a/crates/forge_repo/src/skill.rs +++ b/crates/forge_repo/src/skill.rs @@ -2,9 +2,7 @@ use std::sync::Arc; use anyhow::Context; use forge_app::domain::Skill; -use forge_app::{ - EnvironmentInfra, FileInfoInfra, FileReaderInfra, TemplateEngine, Walker, WalkerInfra, -}; +use forge_app::{EnvironmentInfra, FileInfoInfra, FileReaderInfra, Walker, WalkerInfra}; use forge_domain::SkillRepository; use futures::future::join_all; use gray_matter::Matter; @@ -98,7 +96,7 @@ impl SkillR let rendered_skills = skills .into_iter() .map(|skill| self.render_skill(skill, &env)) - .collect::>>()?; + .collect::>(); Ok(rendered_skills) } @@ -219,20 +217,17 @@ impl ForgeS /// /// # Arguments /// * `skill` - The skill to render - /// * `env` - The environment containing path information - /// - /// # Errors - /// Returns an error if template rendering fails - fn render_skill(&self, skill: Skill, env: &forge_domain::Environment) -> anyhow::Result { - let skill_context = serde_json::json!({ - "global_skills_path": env.global_skills_path().display().to_string(), - "local_skills_path": env.local_skills_path().display().to_string(), - }); + /// * `env` - The environment containing path informations + fn render_skill(&self, skill: Skill, env: &forge_domain::Environment) -> Skill { + let global = env.global_skills_path().display().to_string(); + let local = env.local_skills_path().display().to_string(); - let rendered_command = TemplateEngine::default() - .render_template(forge_domain::Template::new(&skill.command), &skill_context)?; + let rendered = skill + .command + .replace("{{global_skills_path}}", &global) + .replace("{{local_skills_path}}", &local); - Ok(skill.command(rendered_command)) + skill.command(rendered) } }