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
| Need | Use | Recommended Location | Loading Behavior |
|---|---|---|---|
| Instructions for every task in a repository | AGENTS.md | Repository root | Full content is included in the initial system prompt |
| Reusable expertise or a workflow for a specific task | Agent Skills SKILL.md | .agents/skills/<skill-name>/SKILL.md | Name and description are advertised first; the agent invokes the full skill when relevant |
| Automatic activation for specific words or commands | SKILL.md with triggers | .agents/skills/<skill-name>/SKILL.md | The skill remains available for model invocation and its content is also injected when a trigger matches |
| Deterministic guidance for specific files | A skill with paths | .agents/skills/<skill-name>/SKILL.md or .agents/skills/<rule-name>.md | Content 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:
- Discovery: Faheem Code loads each skill's
nameanddescriptioninto the available-skills catalog. - Invocation: When a task matches the description, the agent invokes the skill by name and receives the full
SKILL.mdinstructions. - Resources: The agent reads referenced files from
scripts/,references/, orassets/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:
triggersinjects the skill when a keyword or command appears in a user message. The skill is still available for model invocation.pathsturns 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 bothpathsandtriggers,pathstakes precedence.
Official skill registry
The official global skill registry is maintained at github.com/SMART-National-Solution/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
# Repository Guidance
Run the test suite before committing. Keep changes focused and follow the existing project conventions.
---
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:
| Scope | Recommended Location | Applies To |
|---|---|---|
| Repository context | <repository>/AGENTS.md | Conversations in that repository |
| Project skills | <project>/.agents/skills/ | Conversations using that project workspace |
| User skills | ~/.agents/skills/ | Conversations for that user |
| Public skills | Faheem Code extensions registry | Conversations 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
- Repository Context provides always-on project instructions.
- Keyword-Triggered Skills activate when a user message contains configured terms.
- Path-Triggered Rules apply deterministic instructions to matching files.
- Organization and User Skills share guidance across repositories.
- Global Skills are reusable skills published through the Faheem Code extensions registry.
Using skills across Faheem Code
| Surface | How Skills Are Loaded |
|---|---|
| Faheem Code | Manage installed skills under Customize > Skills; configuration is scoped to the active backend |
| SDK and agent server | Pass Skill objects directly or enable the user, project, and public file-based loaders in AgentContext |
| Faheem Code Cloud | Select 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
- Add an Existing Skill
- Create a Skill
- Browse the Faheem Code Skills Registry
- Bundle Skills in a Plugin
- Monitor and Improve Skills
Learn more
- For SDK integration: See SDK Skills Guide
- For architecture details: See Skills Architecture
- For specific skill types: See Repository Skills, Keyword Skills, Path-Triggered Rules, Organization Skills, and Global Skills