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

###> symfony/asset-mapper ###
/public/assets/
# assets/vendor/ est VERSIONNÉ (#84) : le déploi ne dépend plus du CDN jsDelivr
# (importmap:install devient un no-op au build). Toute mise à jour d'importmap.php
# doit être suivie de `php bin/console importmap:install` + commit (garde CI).
###< symfony/asset-mapper ###

###> phpstan/phpstan ###
phpstan.neon
###< phpstan/phpstan ###

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

###> local tailwind via node (poste ARM64) ###
/node_modules/
###< local tailwind via node ###

# Artefact d'autocomplétion de config, regénéré à chaque cache:clear/warmup. C'est une
# aide IDE pour la config écrite en PHP : ici la config est 100 % YAML et rien ne le
# consomme (PHPStan ne scanne que src/ et tests/). Généré en local, jamais committé.
/config/reference.php

# Clés locales du poste (clé privée du registre MCP, clés API de session) :
# générées et lues en local, jamais committées.
/secrets/

# SDK npm (sdk/js) : les SOURCES et le code généré depuis docs/openapi.yaml sont
# versionnés (la CI rejoue le générateur et compare), l'installation et le build
# ne le sont pas. `npm publish` reconstruit dist/ par `prepublishOnly`.
/sdk/js/node_modules/
/sdk/js/dist/

# SDK PyPI (sdk/python) : même partage. `python -m build` reconstruit dist/.
/sdk/python/.venv/
/sdk/python/dist/
/sdk/python/**/__pycache__/
/sdk/python/**/*.egg-info/
/sdk/python/.mypy_cache/
/sdk/python/.pytest_cache/
