VOOZH about

URL: https://deepwiki.com/invokable/laravel-boost-copilot-cli/7.2-configuration-files-reference

⇱ Configuration Files Reference | invokable/laravel-boost-copilot-cli | DeepWiki


Loading...
Last indexed: 7 March 2026 (397730)
Menu

Configuration Files Reference

This page provides a comprehensive reference for all configuration files used by the laravel-boost-copilot-cli package. These files control testing, code quality, package features, and development environment setup.

For information about MCP configuration files (.github/mcp-config.json), see MCP Configuration File. For information about boost.json feature flags and their effects, see Boost Configuration.

Configuration Files Overview

The package uses several configuration files that serve different purposes in the development and testing lifecycle:

FilePurposePrimary ConsumerCommitted to VCS
boost.jsonPackage feature flags and agent configurationLaravel Boost frameworkYes
testbench.yamlOrchestra Testbench workbench configurationOrchestra TestbenchYes
phpunit.xmlPHPUnit test suite configurationPHPUnit/PestYes
pint.jsonLaravel Pint code style rulesLaravel PintYes
.editorconfigEditor behavior and formatting rulesCode editors/IDEsYes
.gitattributesGit repository export and diff behaviorGitYes

Sources: boost.json1-13 testbench.yaml1-34 phpunit.xml1-21 .editorconfig1-16 .gitattributes1-18

Configuration System Architecture


Sources: boost.json1-13 testbench.yaml1-34 phpunit.xml1-21 .editorconfig1-16 .gitattributes1-18

boost.json

Purpose

The boost.json file configures which Laravel Boost features, agents, and skills are enabled for the package. This file controls the activation of the CopilotCli agent and associated MCP server functionality.

Location: Repository root

Structure

The file contains a JSON object with the following top-level keys:

KeyTypeDescription
agentsarrayList of agent identifiers to enable
guidelinesbooleanWhether to enable AI guidelines generation
herd_mcpbooleanEnable Laravel Herd MCP server support
mcpbooleanEnable MCP server configuration generation
nightwatch_mcpbooleanEnable Nightwatch MCP server support
sailbooleanWhether the package uses Laravel Sail
skillsarrayList of skill identifiers to enable

Sources: boost.json1-13

Configuration Values

The package's default configuration:


Key Settings:

  • agents: ["copilot-cli"] - Enables the CopilotCli agent class registration via CopilotCliServiceProvider
  • guidelines: true - Generates .github/instructions/laravel-boost.instructions.md from Blade templates
  • mcp: true - Enables generation of .github/mcp-config.json during boost:install
  • skills: ["pest-testing"] - Activates the Pest testing skill for GitHub Copilot CLI
  • sail: false - Package development uses native PHP, not Docker containers

Sources: boost.json1-13

Usage Context

This file is read by the Laravel Boost framework during application bootstrapping. The CopilotCliServiceProvider registers the agent only when "copilot-cli" appears in the agents array. The file is excluded from package distribution via .gitattributes export rules.

Sources: boost.json1-13 .gitattributes14

testbench.yaml

Purpose

The testbench.yaml file configures Orchestra Testbench workbench environment, which provides a minimal Laravel application context for package development and testing.

Location: Repository root

Structure

The file uses YAML format with the following sections:

SectionDescription
laravelLaravel version or preset to use
providersService providers to register in workbench
migrationsDirectories containing database migrations
seedersDatabase seeder classes
workbenchWorkbench-specific configuration
workbench.buildBuild steps to execute
workbench.discoversFeature discovery flags
workbench.assetsAsset publishing configuration
workbench.syncDirectory synchronization rules

Sources: testbench.yaml1-34

Key Configuration Sections

Laravel Version


Uses the Testbench-provided Laravel version rather than a specific version constraint.

Sources: testbench.yaml1

Migrations and Seeders


Defines where Testbench should look for database migrations and which seeder class to use.

Sources: testbench.yaml6-10

Workbench Build Process


The build process executes these commands in sequence when setting up the workbench environment:

  1. asset-publish - Publishes package assets
  2. create-sqlite-db - Creates SQLite database file
  3. db-wipe - Wipes existing database
  4. migrate-fresh - Runs fresh migrations

Sources: testbench.yaml23-27

Feature Discovery


Controls which Laravel features are auto-discovered in the workbench:

  • Routes: Web and API routes are discovered
  • Commands: Artisan commands are auto-registered
  • Factories: Model factories are available
  • Components/Views: Not used by this package

Sources: testbench.yaml16-22

Storage Synchronization


Synchronizes the storage directory bidirectionally with workbench/storage, allowing persistent data between test runs.

Sources: testbench.yaml30-33

Usage Context

This configuration is read by Orchestra Testbench when running tests via ./vendor/bin/testbench or when executing PHPUnit/Pest tests. The workbench build process is triggered by composer test or explicitly via ./vendor/bin/testbench workbench:build.

Sources: testbench.yaml1-34

phpunit.xml

Purpose

The phpunit.xml file configures PHPUnit test execution, including test suite definitions, environment variables, and code coverage settings.

Location: Repository root

Structure


The root <phpunit> element defines global test execution settings:

  • bootstrap: Autoloader file to include before tests
  • colors: Enable colored terminal output
  • xsi:noNamespaceSchemaLocation: PHPUnit XML schema location

Sources: phpunit.xml1-6

Test Suites


Defines a single test suite named "Feature" that includes all tests in the tests/Feature directory. The package uses feature tests to validate CopilotCli agent functionality, guidelines generation, and service provider registration.

Sources: phpunit.xml7-11

Environment Variables


Sets environment variables for the test environment:

VariableValuePurpose
APP_ENVtestingSets Laravel environment to testing mode
APP_KEYbase64:uz4B...Application encryption key for testing

Sources: phpunit.xml12-15

Code Coverage


Configures PHPUnit to collect code coverage data from the src directory, which contains the CopilotCliServiceProvider and CopilotCli agent class.

Sources: phpunit.xml16-20

Usage Context

This configuration is used by PHPUnit when executing tests via composer test, ./vendor/bin/pest, or directly via ./vendor/bin/phpunit. The Pest testing framework also reads this configuration.

Sources: phpunit.xml1-21

Configuration File Relationships


Sources: boost.json1-13 testbench.yaml1-34 phpunit.xml1-21

pint.json

Purpose

The pint.json file configures Laravel Pint code style rules. While this file exists in the repository, it is not included in the provided source files.

Location: Repository root

Usage Context

Laravel Pint is executed via composer lint and enforces code style consistency across the src and tests directories. The configuration follows Laravel's standard PSR-12 preset with custom rules.

Sources: Referenced in .gitattributes13

.editorconfig

Purpose

The .editorconfig file defines editor behavior and formatting rules that are recognized by most modern code editors and IDEs. This ensures consistent code formatting across different development environments.

Location: Repository root

Global Settings


Default settings applied to all files:

SettingValuePurpose
charsetutf-8Character encoding
end_of_linelfUnix-style line endings
indent_size4Four spaces per indentation level
indent_stylespaceUse spaces, not tabs
insert_final_newlinetrueAdd newline at end of files
trim_trailing_whitespacetrueRemove trailing spaces

Sources: .editorconfig3-9

File-Type Specific Settings

Markdown Files


Markdown files preserve trailing whitespace, as it can be semantically significant for line breaks.

Sources: .editorconfig11-12

YAML Files


YAML files use 2-space indentation, which is the convention for YAML configuration files like testbench.yaml.

Sources: .editorconfig14-15

Usage Context

Code editors that support EditorConfig (VSCode, PhpStorm, Sublime Text, etc.) automatically apply these settings when editing files in the repository. This works in conjunction with Laravel Pint but operates at the editor level before code is saved.

Sources: .editorconfig1-16

.gitattributes

Purpose

The .gitattributes file configures Git's behavior for file handling, including diff algorithms for specific file types and export exclusions for package distribution.

Location: Repository root

Text File Normalization

* text=auto

Enables automatic line ending normalization for all text files. Git converts line endings to LF on commit and to the system's native line ending on checkout.

Sources: .gitattributes1

Language-Specific Diff Algorithms

*.blade.php diff=html
*.md diff=markdown
*.php diff=php

Assigns specialized diff algorithms for better readability:

PatternDiff DriverPurpose
*.blade.phphtmlHTML-aware diffs for Blade templates
*.mdmarkdownMarkdown-aware diffs
*.phpphpPHP-aware diffs with function context

Sources: .gitattributes3-5

Export Exclusions

/.github export-ignore
/tests export-ignore
.editorconfig export-ignore
.gitattributes export-ignore
.gitignore export-ignore
phpunit.xml export-ignore
pint.json export-ignore
boost.json export-ignore
testbench.yaml export-ignore
/.ai export-ignore
/workbench export-ignore

Files and directories marked with export-ignore are excluded when creating distribution archives via git archive. This reduces package size when published to Packagist:

Excluded items:

  • Development tools configuration: .editorconfig, phpunit.xml, pint.json, testbench.yaml
  • Package-specific configuration: boost.json
  • Development directories: tests/, workbench/, .github/, .ai/
  • Git metadata: .gitattributes, .gitignore

Sources: .gitattributes7-17

Usage Context

These rules are applied automatically by Git during operations like git diff, git archive, and package publishing via Composer/Packagist.

Sources: .gitattributes1-18

Configuration Files by Development Phase

PhaseActive Configuration FilesPrimary Purpose
Package Installationboost.jsonDetermines which agents and skills to enable
Development.editorconfig, pint.jsonCode formatting and style
Testingphpunit.xml, testbench.yaml, boost.jsonTest execution and environment setup
CI/CDphpunit.xml, pint.jsonAutomated testing and linting
Distribution.gitattributesDefines what's included in package archives
Version Control.gitattributes, .editorconfigFile handling and formatting

Sources: boost.json1-13 testbench.yaml1-34 phpunit.xml1-21 .editorconfig1-16 .gitattributes1-18