Skills, tools & sources
The skills tab shows what the agent knows how to do in this
project: the skills under .agent/skills/
and the tools under .agent/tools/ — the
same files the agent reads, rendered for you.
One source of truth, many agents
Section titled “One source of truth, many agents”.agent/skills/ is the source; agent-specific folders are symlinks
into it:
.claude/skills → ../.agent/skillsAdd or edit a skill under .agent/skills/ and every agent sees it
immediately. The rule is the same for you and the agent: edit there,
never inside a dot-folder.
Sources: skills you didn’t write
Section titled “Sources: skills you didn’t write”Skills and tools can come from a Speccify source — a skills repo
added under Sources in the skills tab. Expanding a skill from a
source runs the expand step: normal skills land
in .agent/skills/, tool contracts in .agent/tools/, and
.agent/speccify/expansions.yaml records where each came from, at
which version, and whether each tool’s implementation is verified
on this platform.
Two rules keep the bookkeeping sane:
- Edit the skills and tools, not
expansions.yaml— the record is maintained by Speccify; hand-edits would make it lie. - Tools are pre-approved deliberately. For Claude Code,
.claude/settings.jsonallowlists running what’s under.agent/tools/— implementations are contract-checked, so the agent can call them without a permission prompt each time.
When the agent uses an expanded skill while working a ticket, it logs
an agent_run line in the ticket’s history naming the skill and
tool — the inspector is the trail of what was
used; there is no separate log file.