ExternalConfigs.Skill (fnord v0.9.34)
View SourceA parsed Agent Skill from a SKILL.md file.
The SKILL.md format is shared between Claude Code and Cursor: a directory
containing a required SKILL.md with YAML frontmatter (name + description
at minimum) and a markdown body. The flavor field distinguishes which
ecosystem the skill came from (:claude or :cursor) so we can present
them under separate headings to the coordinator.
Self-delegation opt-out
External skills frequently exist as shims that delegate Claude Code or
Cursor invocations back to fnord (fnord ask -W . -q ...). When fnord
itself loads such a skill, the directionality is reversed and the agent
shells out to a fresh fnord process - infinite recursion.
Two fields mark a skill as "do not expose to fnord agents":
:fnord_skip- boolean; true iff the skill should be filtered before being offered to fnord's coordinator.:fnord_skip_reason-:frontmatter(explicit opt-out via thefnord_skip: truefrontmatter key) or:body_invokes_fnord(fallback body scan forfnord ask/fnord-dev ask), or nil when not skipped.
An explicit fnord_skip: false in the frontmatter overrides the body scan.
This lets a skill author opt back in if their SKILL.md legitimately
references fnord ask in passing.
Summary
Functions
Load a skill from a directory containing SKILL.md.
Types
@type flavor() :: :claude | :cursor
@type skip_reason() :: :frontmatter | :body_invokes_fnord | nil
@type source() :: :global | :project