###> symfony/framework-bundle ###
/.env.local
/.env.local.php
/.env.*.local
/config/secrets/prod/prod.decrypt.private.php
/public/bundles/
/public/build/
/var/
/vendor/
/node_modules/
###< symfony/framework-bundle ###

###> phpunit/phpunit ###
/phpunit.xml
.phpunit.result.cache
###< phpunit/phpunit ###

/.idea
# jane: keep vendor ignored, but TRACK the tool locks (#236) - CI must
# install ECS/PHPStan from lock for deterministic lint gates
/vendor-bin/**/vendor

# Firebird database files
*.fdb
*.fbk
*.gdb

# Temporary test files
test-*.txt
*-test-*.txt

# Coverage reports
coverage/
.coverage
htmlcov/

# Cypress artifacts
cypress/screenshots/
cypress/videos/
cypress/results/

# OS files
.DS_Store
Thumbs.db

# Editor files
*.swp
*.swo
*~
.vscode/

# Generated security scan reports
gitleaks-report.json
betterleaks-report.json

# Package manager conflicts (project uses npm, not yarn)
yarn.lock
pnpm-lock.yaml

# Plugin development - ignore plugin subdirectories and runtime manifest
/plugins/*
!/plugins/.gitkeep
/plugins/plugins.json
/plugins.dev.json

# Per-dev Docker Compose override (sibling-repo mounts, custom ports)
# See docker-compose.local.yml.example for template
/docker-compose.local.yml

# Local CI runner binary + variables (contains tokens)
bin/gitlab-ci-local
.gitlab-ci-local-variables.yml

# Playwright artifacts (browser automation screenshots/snapshots)
.playwright-mcp/
.playwright-cli/
*.page.png

# SDD cache
.specify/workflows/.cache/

# Composer auth (local satis tokens, never commit)
/auth.json

# PHPUnit coverage output
/coverage.xml
/config/reference.php
# Session handoff artifacts (local-only by design, decision 2026-08-19 HANDOFF.md)
/HANDOFF.md
/NEXT_STEPS.md

# opencode agent workspace (local scratch: plans, tooling - not project docs)
.opencode/

# misdirected-mirror residue from pre-#355 test runs (cleanup of affected checkouts)
/tests/plugins/
