Skip to main content

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

MethodScopeUse When
AGENTS.mdOne repositoryInstructions should apply whenever Faheem Code works in the repository
.agents/skills/One repositoryA focused workflow or reference should load on demand
Organization skills repositoryOrganizationStandards should be available across the organization's conversations
User skills repositoryOne userA skill should follow one user across conversations
Conversation pluginOne conversationA capability bundle is needed for a specific task
MarketplaceUser or organizationUsers need a governed collection of plugins they can load on demand
Marketplace Auto-LoadUser or organizationEvery applicable conversation requires the marketplace's plugins

Understand enterprise loading layers

Enterprise marketplaces operate at three different layers:

  1. Instance Plugin Marketplace — An administrator configures the catalog source through Replicated or Helm. This powers the Plugin Directory at /plugins.
  2. Registered marketplace — A user or organization registers a Git repository under Settings > Skills. Registration makes its plugins discoverable and governable.
  3. 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.

  1. Open Settings > Skills.
  2. In Marketplaces, select + Add Repository.
  3. Enter the repository URL.
  4. Optionally specify a branch, tag, commit, or repository path.
  5. Select the personal or organization scope available to your role.
  6. 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.

  1. Open https://app.<your-base-domain>/plugins.
  2. Select a plugin.
  3. Select Create New Conversation.
  4. Review the repository, path, and ref.
  5. Confirm that you trust the plugin.
  6. Select Start Conversation.

The plugin is loaded only into the new conversation.

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:

  1. Open Settings > Skills.
  2. Find the marketplace under Marketplaces.
  3. Toggle Auto-Load.
  4. Save the changes.
  5. 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.

  1. Create a small skill with a unique trigger and an exact expected response.
  2. Start a new conversation in the intended scope.
  3. Use the trigger.
  4. Confirm that the response reflects the skill's instructions.
  5. 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