MCPcopy Create free account
hub / github.com/clawshell/clawshell / write_onboard_hermes_skill

Function write_onboard_hermes_skill

src/main.rs:271–286  ·  view source on GitHub ↗

Write every ClawShell-managed skill that applies to this onboarding run into `~/.hermes/skills/`. The stats skill is always written; the email skill is written only when email integration is enabled. Unlike `write_onboard_openclaw_skill`, this doesn't upsert a `managed_skills` manifest entry — Hermes discovers skills from its own `~/.hermes/skills/` tree directly and doesn't share OpenClaw's mani

(
    ob_config: &crate::onboard::OnboardConfig,
)

Source from the content-addressed store, hash-verified

269/// `~/.hermes/skills/` tree directly and doesn't share OpenClaw's
270/// manifest bookkeeping.
271fn write_onboard_hermes_skill(
272 ob_config: &crate::onboard::OnboardConfig,
273) -> Result<Vec<PathBuf>, Box<dyn Error>> {
274 let (home_dir, uid, gid) = resolve_hermes_target_user()?;
275
276 let mut written = Vec::new();
277
278 let stats_skill = onboard::render_admin_stats_skill(ob_config);
279 written.push(write_hermes_skill_bundle(stats_skill, &home_dir, uid, gid)?);
280
281 if let Some(email_skill) = onboard::render_email_messages_skill(ob_config) {
282 written.push(write_hermes_skill_bundle(email_skill, &home_dir, uid, gid)?);
283 }
284
285 Ok(written)
286}
287
288fn resolve_openclaw_owner_spec(openclaw_path: &Path) -> Result<Option<String>, Box<dyn Error>> {
289 use std::os::unix::fs::MetadataExt;

Callers 1

Calls 4

render_admin_stats_skillFunction · 0.85

Tested by

no test coverage detected