PHPackages                             fast-forward/composer-installers - 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. fast-forward/composer-installers

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

fast-forward/composer-installers
================================

Composer installer plugin for Fast Forward resource bundles.

v0.3.0(1mo ago)058MITPHPPHP ^8.3

Since Apr 29Pushed 1mo agoCompare

[ Source](https://github.com/php-fast-forward/composer-installers)[ Packagist](https://packagist.org/packages/fast-forward/composer-installers)[ Docs](https://github.com/php-fast-forward/composer-installers)[ RSS](/packages/fast-forward-composer-installers/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (3)Dependencies (2)Versions (4)Used By (0)

Fast Forward Composer Installers
================================

[](#fast-forward-composer-installers)

Composer installer plugin for Fast Forward resource bundle packages.

`fast-forward/composer-installers` lets Fast Forward packages declare a payload directory and lets consumer roots choose where that payload is copied. The package root still lives in `vendor/`, but only the declared payload contents are materialized into consumer-owned paths.

Resource Package Metadata
-------------------------

[](#resource-package-metadata)

Resource packages use the `fast-forward-resource-bundle` type and declare the payload directory to copy. They may also declare how existing target files are handled when the manifest is missing:

```
{
  "type": "fast-forward-resource-bundle",
  "extra": {
    "fast-forward-bundle": {
      "payload-path": ".agents",
      "install-policy": "mutable"
    }
  }
}
```

`install-policy` is optional and defaults to `mutable`.

Consumer Configuration
----------------------

[](#consumer-configuration)

Consumer repositories allow this Composer plugin and map resource packages to target directories:

```
{
  "config": {
    "allow-plugins": {
      "fast-forward/composer-installers": true
    }
  },
  "extra": {
    "installer-paths": {
      ".agents/": ["fast-forward/agents"],
      ".github/workflows/": ["fast-forward/github-workflows"]
    }
  }
}
```

The target path receives the payload contents. For `fast-forward/agents`, that means `.agents/agents` and `.agents/skills` are copied into the consumer project without creating `.agents/agents/.agents`.

Update Behavior
---------------

[](#update-behavior)

The installer writes a manifest under `vendor/fast-forward/.composer-installers`for each materialized package. On package update, files listed in the manifest are refreshed from the new payload and stale managed files are removed. Files that already exist in the target but are not tracked by the manifest are handled according to the bundle install policy.

The `mutable` policy is the default. It adopts existing files when their content already matches the payload and recreates the manifest, which makes `composer install` safe after deleting `vendor/`. If an existing file differs from the payload and no manifest marks it as managed, that path is skipped with a warning instead of overwriting a consumer customization. The installer still materializes the remaining payload entries and records only copied or adopted entries in the manifest.

The `authoritative` policy is intended for generated or shared automation such as GitHub workflow bundles. It overwrites existing divergent target files and then writes a fresh manifest, allowing committed workflow files to be refreshed after a clean clone where `vendor/` has not been installed yet. Authoritative bundles should use package-specific target directories or clearly owned file names, such as a `fast-forward-` prefix, so the installer only overwrites paths that are intentionally controlled by the bundle. Non-empty consumer directories are not removed automatically; they are skipped with a warning.

The materialized payload is copied as literal files and directories. Composer `path` repositories may still symlink the package root in `vendor/`, but the consumer-facing payload remains copied.

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance91

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

42d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/bb658791d4db57e57ac164a268f94340ddff4d1ee0aad1358d4593847051a9fe?d=identicon)[coisa](/maintainers/coisa)

---

Top Contributors

[![coisa](https://avatars.githubusercontent.com/u/426835?v=4)](https://github.com/coisa "coisa (7 commits)")

---

Tags

composercomposer-plugindeveloper-toolsfast-forwardinstallersphpplugincomposerinstallerresourcesfast-forward

### Embed Badge

![Health badge](/badges/fast-forward-composer-installers/health.svg)

```
[![Health](https://phpackages.com/badges/fast-forward-composer-installers/health.svg)](https://phpackages.com/packages/fast-forward-composer-installers)
```

###  Alternatives

[ergebnis/composer-normalize

Provides a composer plugin for normalizing composer.json.

1.1k40.0M2.6k](/packages/ergebnis-composer-normalize)[dealerdirect/phpcodesniffer-composer-installer

PHP\_CodeSniffer Standards Composer Installer Plugin

598170.6M2.2k](/packages/dealerdirect-phpcodesniffer-composer-installer)[craftcms/plugin-installer

Craft CMS Plugin Installer

283.4M9](/packages/craftcms-plugin-installer)[automattic/jetpack-autoloader

Creates a custom autoloader for a plugin or theme.

545.9M110](/packages/automattic-jetpack-autoloader)[laminas/laminas-component-installer

Composer plugin for injecting modules and configuration providers into application configuration

304.3M105](/packages/laminas-laminas-component-installer)[infinum/eightshift-libs

WordPress libs developed by Eightshift team to use in modern WordPress.

63123.8k3](/packages/infinum-eightshift-libs)

PHPackages © 2026

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