Skip to main content

Skills overview

Skills give Faheem Code reusable instructions for specialized tasks. A skill can capture domain knowledge, define a repeatable workflow, and include supporting scripts, references, or templates.

Skills guide the agent's behavior; they do not grant permissions or install dependencies by themselves. The agent can only use the files, tools, secrets, and network access available in its environment.

Choose the right mechanism

NeedUseRecommended LocationLoading Behavior
Instructions for every task in a repositoryAGENTS.mdRepository rootFull content is included in the initial system prompt
Reusable expertise or a workflow for a specific taskAgent Skills SKILL.md.agents/skills/<skill-name>/SKILL.mdName and description are advertised first; the agent invokes the full skill when relevant
Automatic activation for specific words or commandsSKILL.md with triggers.agents/skills/<skill-name>/SKILL.mdThe skill remains available for model invocation and its content is also injected when a trigger matches
Deterministic guidance for specific filesA skill with paths.agents/skills/<skill-name>/SKILL.md or .agents/skills/<rule-name>.mdContent is injected when the agent first touches a matching file

Use AGENTS.md for short, repository-wide conventions. Use SKILL.md for focused knowledge that is needed only for some tasks. A legacy .md skill without a trigger is always loaded in full; prefer AGENTS.md for that use case so its purpose is clear.

Faheem Code also recognizes CLAUDE.md and GEMINI.md as model-specific repository context.

How progressive disclosure works

Agent Skills use three levels of context:

  1. Discovery: Faheem Code loads each skill's name and description into the available-skills catalog.
  2. Invocation: When a task matches the description, the agent invokes the skill by name and receives the full SKILL.md instructions.
  3. Resources: The agent reads referenced files from scripts/, references/, or assets/ only when needed.

This keeps the initial prompt smaller than loading every skill in full. Write the description to explain both what the skill does and when it applies; the agent uses that metadata to decide whether to invoke it.

Faheem Code supports two deterministic activation paths:

  • triggers injects the skill when a keyword or command appears in a user message. The skill is still available for model invocation.
  • paths turns the file into a path-triggered rule. The rule is not advertised to the model and is injected once per conversation when a matching file is read, edited, or created. If a file declares both paths and triggers, paths takes precedence.

Official skill registry

The official global skill registry is maintained at github.com/alsairy/faheem-code-extensions. This repository contains community-shared skills that can be used by all Faheem Code agents. You can browse available skills, contribute your own, and learn from examples created by the community.

Five-minute setup

Add concise repository guidance and one on-demand skill:

my-repository/
├── AGENTS.md
└── .agents/
└── skills/
└── release-checklist/
└── SKILL.md
AGENTS.md
# Repository Guidance

Run the test suite before committing. Keep changes focused and follow the existing project conventions.
.agents/skills/release-checklist/SKILL.md
---
name: release-checklist
description: Prepare and verify a release checklist. Use when creating release notes or publishing a release.
---

Check the version, changelog, validation commands, and release notes before publishing.

For a portable Agent Skills package, name and description are required. The name must match the parent directory and use lowercase letters, numbers, and hyphens. See Creating Skills for the complete format and authoring guidance.

Start a new conversation after changing skill files so Faheem Code rebuilds the available-skills catalog.

Skill locations and precedence

Faheem Code can combine skills from several scopes:

ScopeRecommended LocationApplies To
Repository context<repository>/AGENTS.mdConversations in that repository
Project skills<project>/.agents/skills/Conversations using that project workspace
User skills~/.agents/skills/Conversations for that user
Public skillsFaheem Code extensions registryConversations configured to load the public registry

Both the legacy .faheem-code/skills/ and .faheem-code/microagents/ directories remain supported, but use .agents/skills/ for new skills. This location follows the Agent Skills standard and makes skills portable across compatible agent tools.

Name conflicts are resolved by precedence rather than by merging skill bodies. For automatically loaded sources, project skills override user skills, and user skills override public skills. Within a project or user scope, .agents/skills/ takes precedence over the legacy directories.

Faheem Code-Specific skill types

Using skills across Faheem Code

SurfaceHow Skills Are Loaded
Faheem CodeManage installed skills under Customize > Skills; configuration is scoped to the active backend
SDK and agent serverPass Skill objects directly or enable the user, project, and public file-based loaders in AgentContext
Faheem Code CloudSelect or import skills for a conversation, including skills stored in Git repositories

In Faheem Code, disabling a bundled or custom skill prevents it from being included in the agent context for new Faheem Code and ACP conversations. Enabled skills remain available to new conversations.

The skill catalog defaults to an explicit allow-list of recommended skills rather than enabling every available skill. The Customize > Skills page shows the full catalog with a Recommended badge and facet; only the recommended skills are enabled by default. You can enable any additional skill individually. An existing deny-list still takes precedence over the default allow-list.

See Customize and Settings for Faheem Code and Plugin Launcher for loading a Git-hosted skill into an Faheem Code Cloud conversation.

Next steps

Learn more