Skip to content

Creating Skills — `/skill-create`

/skill-create <name> [intent...]

Sends the skill creation request to the agent, which uses buildSkillCreatePrompt() to generate a fully implemented SKILL.md based on the described intent.

What the agent does (in order, without extra steps):

  1. Create directory <project>/.umbra/skills/<name>/ (including parents)
  2. Write SKILL.md with a description derived from intent and a practical body using $ARGUMENTS / $1 substitution as appropriate
  3. Reply with the created file path and a one-line summary

Substitution guidance baked into the prompt:

  • $ARGUMENTS = the entire text typed after the skill name (used for natural-language input)
  • $1, $2, $3 = individual space-separated words (used for positional flags like branch + environment)
  • When in doubt → use $ARGUMENTS, not $1

Example:

/skill-create git-summary Summarise recent git activity in a readable format

The agent writes something like:

---
name: git-summary
description: Summarise recent git activity in a readable format
argument-hint: <days>
---
Show a human-readable summary of git activity for the last $ARGUMENTS days (default: 7).
!`git log --oneline --since="$ARGUMENTS days ago" 2>/dev/null | head -30`
Describe what changed, group by author if multiple contributors, highlight any notable patterns or hot files.

When both global and project-local skills have the same name:

project-local wins → ~/.umbra/skills/deploy/ is shadowed by
<project>/.umbra/skills/deploy/

This allows project-specific overrides of global skills without modifying the global copy.

Terminal window
umbra debug # debug JSONL stream includes "skills loaded" events with counts
# and "skills dir scan" entries showing what was found