Expand description
Out-of-scope detector: decides, BEFORE touching the disk, whether vivacity
can install this lock natively or must delegate to composer install
(default fallback) / fail explicitly (when Composer is not available).
Principle (plan r1/F3-F5): never a silently divergent vendor/. An unknown plugin, or one that changes the layout, is out of scope. Plugins proven harmless at boot (fixture qualification) are installed like ordinary libraries, with a warning.
Structs§
Enums§
Constants§
- BENIGN_
PLUGINS - Plugins proven to write nothing at install time under a Composer whose plugins are active (the corpus baseline, docs/corpus/): installed as libraries, reported with a note. A plugin that writes a file is either emulated (EMULATED_PLUGINS) or unknown — never listed here. Removed on the corpus’s evidence (2026-09-16): pestphp/pest-plugin (vendor/pest-plugins.json), phpstan/extension-installer and rector/extension-installer (GeneratedConfig.php), dealerdirect/phpcodesniffer-composer-installer (CodeSniffer.conf).
- EMULATED_
PLUGINS - Plugins emulated natively by vivacity (identical output, drift test).
composer/installers (see
layout) is, under conditions checked before any write. drupal/core-composer-scaffold is deliberately absent: its source is GPL-2.0-or-later and cannot be ported here (NOTICE.md). - LAYOUT_
PLUGINS - Plugins known to change the install layout or the package contents: always out of scope.
Functions§
- analyze
plugins_enabled= no--no-plugins: with the flag, Composer ignores every plugin, composer/installers included; everything goes into vendor/.- config_
issues - The
configkeys of the manifest (or the global config) that vivacity does not honour: apreferred-installasking forsourceanywhere. (vendor-dir/bin-dirare resolved bydirs::Dirs; the forms it refuses come back as layout issues.) - plugin_
issues - Blocking plugin issues alone (unknown or layout-changing plugins in the
lock), for commands that do not install but would still let Composer run
plugin listeners —
dump-autoloadand its PRE_AUTOLOAD_DUMP.