PHPackages                             agents/skills - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. agents/skills

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

agents/skills
=============

Discover and install AI agent skills from Composer dependencies

1299—0%[1 issues](https://github.com/agentsphp/skills/issues)PHPCI passing

Since Jan 23Pushed 3mo agoCompare

[ Source](https://github.com/agentsphp/skills)[ Packagist](https://packagist.org/packages/agents/skills)[ RSS](/packages/agents-skills/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

AgentsPHP / Skills
==================

[](#agentsphp--skills)

Discover and install AI agent skills from Composer dependencies. This library provides a mechanism for PHP packages to distribute AI agent skills (prompts, instructions, templates) that can be automatically discovered and synced into your project.

**Key features:**

- Automatic skill discovery from installed Composer packages
- Sync skills to your project with a single command
- Override protection to preserve local modifications
- Custom target directory support
- Post-update hook for automatic syncing

```
your/library
  ├── .claude
  │   └── skills
  │       ├── commit
  │       │   └── SKILL.md
  │       └── review
  │           └── SKILL.md
  └── composer.json

```

Installation
============

[](#installation)

This library requires PHP 8.2 or higher.

```
composer require agents/skills
```

Quick Start
-----------

[](#quick-start)

1. Install the package via Composer
2. Configure automatic syncing in your `composer.json`:

```
{
  "require": {
    "php": ">=8.2"
  },
  "require-dev": {
    "agents/skills": "^0.1.0"
  },
  "scripts": {
    "post-update-cmd": [
      "@composer agents:skills --override"
    ]
  },
  "config": {
    "allow-plugins": {
      "agents/skills": true
    }
  }
}
```

3. Run `composer update` to automatically sync skills, or use the commands manually via `composer skills`.

Console
-------

[](#console)

```
composer agents:skills [options]
```

OptionShortDescription`--skill``-s`Sync only the specified skill by name`--override``-o`Override existing files instead of skipping them`--target``-t`Target directory for skills (default: `.claude/skills`)### Examples

[](#examples)

```
composer agents:skills              # Syncs all skills (default)
composer agents:skills -s commit -o # Sync specific skill with override
```

Custom Skill
------------

[](#custom-skill)

Package authors can distribute skills by adding configuration to their `composer.json`. Both `skills` and `agentskills` keys are supported (with `skills` taking precedence).

### Skill Structure

[](#skill-structure)

```
your-package/
├── composer.json
└── .claude/
    └── skills/
        ├── commit/
        │   └── SKILL.md
        └── review/
            └── SKILL.md

```

### Discovery Mode (Recommended)

[](#discovery-mode-recommended)

The simplest way to distribute skills. Each subfolder in the source directory becomes a skill, and all files within are included.

```
{
    "extra": {
        "skills": {
            "discovery": {
                "source": [".claude/skills"]
            }
        }
    }
}
```

Features:

- Each folder name becomes the skill name
- All files in each folder are included (non-recursive)
- Hidden files/folders (starting with `.`) are skipped
- Supports multiple source directories as an array
- Also supports a single string: `"source": ".claude/skills"`

### Explicit Mode

[](#explicit-mode)

For fine-grained control over file mappings and output paths.

```
{
    "extra": {
        "skills": {
            "skills": [
                {
                    "name": "commit",
                    "description": "Git commit helper",
                    "source": ".claude/skills/commit",
                    "files": [
                        {"input": "SKILL.md", "output": "commit/SKILL.md"}
                    ]
                }
            ]
        }
    }
}
```

### Mixed Mode

[](#mixed-mode)

Combine discovery with explicit overrides. Explicit skills take precedence over discovered ones.

```
{
    "extra": {
        "skills": {
            "discovery": {
                "source": [".claude/skills"]
            },
            "skills": [
                {
                    "name": "commit",
                    "description": "Custom commit description",
                    "source": ".claude/skills/commit",
                    "files": [
                        {"input": "SKILL.md", "output": ".claude/custom/commit.md"}
                    ]
                }
            ]
        }
    }
}
```

### Configuration Reference

[](#configuration-reference)

FieldRequiredDescription`discovery.source`NoArray of directories to scan for folder-based skills`skills`NoArray of explicit skill definitions`skills[].name`YesUnique identifier for the skill`skills[].description`NoHuman-readable description`skills[].source`YesPath to skill files relative to package root`skills[].files`YesArray of file mappings`skills[].files[].input`YesSource file path relative to `source``skills[].files[].output`YesDestination path relative to target directoryExample
-------

[](#example)

See the [playground](https://github.com/agentsphp/playground) for a complete example of skills in action.

###  Health Score

18

—

LowBetter than 8% of packages

Maintenance33

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

 Bus Factor1

Top contributor holds 50% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/538058?v=4)[Milan Šulc](/maintainers/f3l1x)[@f3l1x](https://github.com/f3l1x)

---

Top Contributors

[![f3l1x](https://avatars.githubusercontent.com/u/538058?v=4)](https://github.com/f3l1x "f3l1x (2 commits)")[![felixure](https://avatars.githubusercontent.com/u/23188301?v=4)](https://github.com/felixure "felixure (2 commits)")

---

Tags

agentsaiphpskills

### Embed Badge

![Health badge](/badges/agents-skills/health.svg)

```
[![Health](https://phpackages.com/badges/agents-skills/health.svg)](https://phpackages.com/packages/agents-skills)
```

###  Alternatives

[fbett/le_acme2

Letsencrypt PHP ACME v2 client

323.7k](/packages/fbett-le-acme2)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
