Custom Skills
Skills are discoverable, loadable packs of instructions and assets. Each skill lives in its own
directory with a SKILL.md file that contains YAML frontmatter and markdown instructions.
Skill format
Section titled “Skill format”The directory name must match the skill name in frontmatter. Use allowed-tools to scope what
the agent can call when the skill is active.
.skills/ incident-response/ SKILL.md scripts/ triage.py references/ playbook.md---name: incident-responsedescription: Triage host compromise signals and summarize next actions.allowed-tools: read_logs run_skill_scriptlicense: MITcompatibility: dreadnode>=0.9metadata: owner: security---
Follow this process:
1. Identify the host and timeframe.2. Run the triage script for baseline indicators.3. Summarize findings and next actions.Discover and load skills
Section titled “Discover and load skills”Use discover_skills for a specific directory. If you want to merge skills from multiple
locations (such as a capability’s bundled skills path), call it for each directory and combine
the results.
from pathlib import Path
from dreadnode.agents.skills import create_skill_tool, discover_skills
project_skills = discover_skills(Path(".skills"))capability_skills = discover_skills(Path("./capabilities/threat-hunting/skills"))
skill_tool = create_skill_tool([*project_skills, *capability_skills])print("Loaded skill tool:", skill_tool.name)Using skills in an agent
Section titled “Using skills in an agent”create_skill_tool returns a single tool that lists available skills in its description and
loads the full SKILL.md content on demand. The agent only sees metadata until it requests
instructions.