Skills and plugins
Faheem Code Enterprise supports several ways to add reusable guidance and capabilities to conversations. Choose the approach that meets your needs.
Choose a distribution method
| Method | Scope | Use When |
|---|---|---|
AGENTS.md | One repository | Instructions should apply whenever Faheem Code works in the repository |
.agents/skills/ | One repository | A focused workflow or reference should load on demand |
| Organization skills repository | Organization | Standards should be available across the organization's conversations |
| User skills repository | One user | A skill should follow one user across conversations |
| Conversation plugin | One conversation | A capability bundle is needed for a specific task |
| Marketplace | User or organization | Users need a governed collection of plugins they can load on demand |
| Marketplace Auto-Load | User or organization | Every applicable conversation requires the marketplace's plugins |
Understand enterprise loading layers
Enterprise marketplaces operate at three different layers:
- Instance Plugin Marketplace — An administrator configures the catalog source through
Replicated or Helm. This powers the Plugin Directory at
/plugins. - Registered marketplace — A user or organization registers a Git repository under
Settings>Skills. Registration makes its plugins discoverable and governable. - Conversation attachment — A plugin is loaded into a conversation through the Plugin Directory, a launch link, the V1 API, or Auto-Load.
Registering a marketplace does not by itself load every plugin into every conversation.
Add repository skills
Use repository files when a skill or instruction belongs to one codebase.
Permanent repository context
Add AGENTS.md at the repository root for concise instructions that should always apply:
my-project/
└── AGENTS.md
Faheem Code loads this file when a conversation uses the repository.
On-demand repository skills
Add one directory per skill under .agents/skills/:
my-project/
└── .agents/
└── skills/
└── deploy-helper/
├── SKILL.md
├── scripts/
└── references/
The SKILL.md file contains the skill name, description, and instructions. Faheem Code initially
shows the agent a summary and loads the full content when the skill is invoked or triggered.
See Skills for the complete format and loading precedence.
Add organization and user skills
Use a special configuration repository when skills should apply beyond one project.
For GitHub, create a repository named .agents under the organization or user and place skills
under skills/:
Great-Co/.agents
└── skills/
└── engineering-standards/
└── SKILL.md
For GitLab organizations, use faheem-code-config because GitLab repository names cannot begin
with a period.
The source control integration must have access to the configuration repository. Access to one user or organization does not grant access to repositories owned by another organization.
See Organization and User Skills for more information.
Register a marketplace
Register a marketplace to make a Git-hosted plugin collection available to a user or organization.
- Open
Settings>Skills. - In
Marketplaces, select+ Add Repository. - Enter the repository URL.
- Optionally specify a branch, tag, commit, or repository path.
- Select the personal or organization scope available to your role.
- Save the marketplace.
The Skills & Plugins table shows the entries discovered from registered marketplaces and
built-in sources.
For private repositories, ensure that your Enterprise source control integration has access.
Load a plugin for one conversation
Use explicit attachment when a plugin is needed for one task. This keeps ordinary conversations isolated from unrelated plugin context and integrations.
- Open
https://app.<your-base-domain>/plugins. - Select a plugin.
- Select
Create New Conversation. - Review the repository, path, and ref.
- Confirm that you trust the plugin.
- Select
Start Conversation.
The plugin is loaded only into the new conversation.
Use the /launch route to share a preconfigured plugin:
https://app.<your-base-domain>/launch?plugins=<base64-encoded-plugin-array>
A launch link can include multiple plugins, editable parameter defaults, and an optional starting message. The user reviews the configuration and confirms trust before the conversation starts.
See Plugin Launcher for the plugin definition and encoding format. Replace the Cloud hostname in its examples with your Enterprise application hostname.
Add a plugins array to POST /api/v1/app-conversations:
{
"initial_message": {
"content": [
{
"type": "text",
"text": "Run the release readiness check."
}
]
},
"plugins": [
{
"source": "github:AcmeCo/faheem-code-plugins",
"ref": "main",
"repo_path": "plugins/release-ready"
}
]
}
See Cloud API for authentication, response handling, and conversation status. Use your Enterprise application hostname as the base URL.
Configure Auto-Load
Auto-Load adds a registered marketplace's plugins to every applicable conversation in its scope.
Use Auto-Load when:
- Every conversation requires the capability.
- The marketplace is controlled and reviewed by your organization.
- The additional context and startup work are acceptable.
- The plugins are allowed to use the secrets available in those conversations.
Keep Auto-Load off when users should choose plugins per task.
To change Auto-Load:
- Open
Settings>Skills. - Find the marketplace under
Marketplaces. - Toggle
Auto-Load. - Save the changes.
- Start a new conversation to verify the new behavior.
Changes do not retroactively reload skills or plugins in an already-running conversation.
Verify skill and plugin loading
Use this to really verify loading instead of checking only that a name appears in the UI.
- Create a small skill with a unique trigger and an exact expected response.
- Start a new conversation in the intended scope.
- Use the trigger.
- Confirm that the response reflects the skill's instructions.
- Start a control conversation outside that scope and confirm that the skill does not activate.
For organization skills, use a conversation without a selected repository or explicit plugin when the release supports organization-wide loading in that context. For marketplace Auto-Load, compare a conversation created before the setting changed with a new conversation created afterward.
Troubleshooting
A marketplace is registered but its plugins are not loaded
Registration makes plugins available on demand. Enable Auto-Load for the marketplace or attach a plugin explicitly through the Plugin Directory, a launch link, or the V1 API.
A repository skill is missing
Confirm that the conversation selected the expected repository and ref. Verify the skill path
is .agents/skills/<name>/SKILL.md and that the source control integration can clone the
repository.
A custom skill has the same name as a built-in skill
Skill enablement is based on the skill name, not its source. Disabling a built-in skill also
disables a custom skill with the same name in its SKILL.md frontmatter. A custom skill name
should not conflict with a built-in skill name. Rename the custom skill and its parent directory
to a unique name, such as acme-github.
A skill appears but does not affect the conversation
Confirm that its trigger matches the user message or explicitly ask the agent to invoke the skill. Test with a unique trigger and exact expected behavior.
Next steps
Learn about skill formats, triggers, and loading precedence.
Build bundles containing skills, hooks, MCP servers, agents, and commands.
Enable and configure the Enterprise Plugin Directory.
Create shareable links that open conversations with plugins attached.