drupal/core-composer-scaffold
Composer plugin used by Drupal core to scaffold essential project files such as .htaccess, robots.txt, and settings into the web root during install and update, with configurable file mappings and overwrite behavior.
composer create-project, laravel new, or an existing starter kit..htaccess/web-server config, robots.txt, env templates, CI stubs), the question "how do customers receive upstream changes to those files without losing local edits?" is exactly what this plugin solves via scaffold:update semantics, append/prepend rules, and managed .gitignore entries. That is a real roadmap decision, not a hypothetical.allow-plugins policy, idempotency, conflict handling). Useful input to a build-vs-borrow spike before committing engineering time.web/ docroot, Drupal index.php, .htaccess, robots.txt, settings.php handling). Adopting it for a Laravel app means stripping the defaults and re-authoring the config — at which point you are maintaining a fork of a narrow tool.laravel/installer + a private starter kit repo, or composer create-project, or the framework's publishing conventions (php artisan vendor:publish) if the files come from a package.post-create-project-cmd scripts) is a better fit than something Drupal-shaped.allow-plugins approval under Composer 2.2+, which adds friction to CI, security review, and developer onboarding for every new machine.To executives: This is a small, mature piece of Drupal's build tooling, not a Laravel dependency. It solves a real problem — shipping a project skeleton that customers can keep updating — and it's a useful reference for how we might build our own starter-kit upgrade path. Recommendation: do not adopt; borrow the pattern. Cost of adoption is near zero but so is the value, and GPL-2.0 plus Composer plugin-approval friction creates avoidable legal and CI overhead. If we want a scaffoldable Laravel template, that's a 1–2 sprint spike on our own tooling, and this package is the best free design doc we'll get.
To engineering: It's a Composer plugin that runs on install/update, copying a configured set of files into the project (with replace/append/prepend rules and managed .gitignore entries), tracking a hash so it can warn on local modification. Relevant mechanics to steal: idempotent file placement, explicit conflict policy, and keeping scaffolded artifacts in VCS while staying refreshable. Relevant risks to note: plugins execute arbitrary code at install time (requires allow-plugins in Composer 2.2+), the defaults are Drupal-specific and must be rewritten for anything else, and upstream is a core split — not a versioned library. Verdict: read the config schema, don't add the dependency.
How can I help you explore Laravel packages today?