rikudou/installer
rikudou/installer provides installation tooling for Laravel and PHP projects, helping streamline setup and package integration through Composer. It is aimed at developers who want a straightforward way to automate common installation steps and reduce manual configuration.
What it is: rikudou/installer is a Composer plugin that hooks Composer's install/update lifecycle to apply package-provided configuration automatically — conceptually a lightweight, framework-agnostic analogue to Symfony Flex recipes. The value proposition is that a package author can ship an "install recipe" so consumers get config files, service registrations, or scaffolding written into their project without a manual vendor:publish + edit ritual.
Architecture fit. The problem fits Laravel well: Laravel's package auto-discovery covers service providers and aliases, but stops short of config publishing, .env keys, migration ordering, or asset scaffolding — teams still run php artisan vendor:publish --tag=... and hand-edit. A recipe layer is a genuine gap. The implementation fits less cleanly:
config.allow-plugins, so adoption is an org-wide supply-chain policy change, not a composer require.package:discover and vendor:publish conventions, so you'd be running two parallel configuration-bootstrap mechanisms.opportunity: 4.65 against a score: 0.03 is the defining signal: a validated problem with an unvalidated, unmaintained solution. Treat the space as interesting and this artifact as a design reference, not a dependency.Integration feasibility. Mechanically low-effort — it's a Composer plugin, installable globally or per-project, with no runtime footprint in the application. That is its one real strength: an install-time-only tool cannot introduce production runtime attack surface or request-path latency. The blocker is evidentiary, not mechanical: 0 stars, 0 dependents, and an archived repository mean there is no field validation, no compatibility matrix, and no observable behavior on modern PHP or Composer 2.7.x.
Technical risk (ranked):
post-install-cmd, post-package-install, pre-package-uninstall) have shifted across 2.x; an unmaintained plugin is a latent CI break on the next Composer bump.allow-plugins isn't configured, Composer warns and proceeds; recipes simply never apply. Teams will believe configuration is automated when it isn't.Key questions before any decision:
--no-scripts-style escape hatch?composer install in CI (i.e., every build) or only on first require?Stack fit. Neutral-to-poor as a direct dependency, good as a pattern reference. Our stack is Composer 2.x + Laravel 10/11 with a mix of in-house and third-party packages. The plugin's install-time-only lifecycle actually sidesteps the usual Laravel compatibility matrix (no service provider, no facade, no published config schema to version), which is the one thing that de-risks it. But it duplicates a responsibility Laravel already owns, and dual ownership of "how packages configure themselves" is an architecture smell.
Compatibility. Unverified. No published constraint set, no CI matrix, no dependents to infer from. Assume Composer 1-era plugin semantics until proven otherwise; test explicitly against the pinned Composer version in our build images.
Migration path. There is nothing to migrate from — this is additive tooling. The realistic paths are:
--dry-run and an idempotency contract, gate recipe application behind an explicit opt-in in composer.json, and publish to a private registry. Budget ~2–3 engineer-weeks for hardening plus ongoing ownership.vendor:publish --tag plus documented setup steps. Zero risk, known friction. Legitimate if package-configuration churn is low.Sequencing:
allow-plugins policy amendment, CI job covering the plugin path, and a documented bypass for --no-plugins production installs.Maintenance. Effectively infinite, because it starts at zero. An archived repo with no maintainer means the fork owner is the maintainer from day one. Ongoing cost is not bug-fixing (the codebase is small and stable-by-abandonment) but compatibility chasing: every Composer major and minor that touches the plugin API, every PHP minor that trips a deprecation, and every new recipe feature our teams request. Estimate 1–2 engineer-days per Composer/PHP upgrade cycle plus feature requests — modest but permanent, and it lands on whoever owns internal developer tooling.
Support. None externally. No issue triage, no security advisories, no CVE response. Internal support means an on-call rotation or a named owner for a tool that sits in the critical path of every developer's composer install. That is a disproportionate support burden for the value delivered. Note the flip side: zero dependents means zero inherited vulnerability surface — the supply-chain risk is the plugin itself, not its transitive tree.
Scaling. Install-time execution scales acceptably in wall-clock terms (recipes are file writes, not network calls), but it scales badly in organizational terms:
composer install. A non-idempotent recipe means repeated rewrites of tracked files → dirty working trees → spurious review noise.--no-plugins production installs become divergent code paths: the feature is present in dev and absent in prod builds. Any config the recipe generates must therefore be committed, which partly defeats the automation rationale.Failure modes. Enumerate these for the runbook: (a) silent no-op when allow-plugins is unset — most likely and most dangerous; (b) Composer upgrade breaks the plugin and halts installs org-wide, since a throwing plugin fails the install; (c) recipe applies a partial file mutation on interrupt, leaving a half-written config that passes syntax checks but is semantically wrong; (d) conflicting writes between two packages targeting the same config file; (e) path handling on Windows dev machines; (f) recipe re-application overwriting local developer edits. Modes (a), (b), and (f) are the ones that will actually page someone.
Ramp-up. Low for consumers (install, allowlist, done), high for owners. Understanding Composer's plugin event model, the allow-plugins trust mechanism, and idempotent file-mutation design is specialized knowledge that few Laravel developers carry — the ecosystem's convention is service providers and publish tags, not install-time mutation. Expect a half-day of onboarding for each engineer who has to debug a failed install, and a dedicated owner who can read Composer's internals. Documentation will be entirely ours to write; the upstream repo provides none we can rely on.
Verdict. Adopt the pattern, reject the package. The 4.65 opportunity score reflects a real gap in Laravel's package-configuration story; the 0.03 package score and archived status reflect that this specific artifact is a design sketch, not a dependency. Recommend either an internally owned thin implementation or a documented status quo, and revisit only if package-configuration toil proves to be a measured, recurring cost.
How can I help you explore Laravel packages today?