Sur push main, le workflow Deploy ouvre une session SSH vers Vision ou une forced
command lance scripts/deploy.sh : le runner (Stark, sans socket Docker) ne pilote
pas Docker, il delegue a l'hote distant. La cle CI ne peut declencher que le
deploiement (forced command + options no-*, cle d'hote epinglee, BatchMode).
deploy.sh gagne un mode non-interactif (DEPLOY_YES), grave src/VERSION (SHA + date)
et alimente deploy.log. GET /api/health expose version + deployed_at lus depuis
src/VERSION : apres un deploiement, la sonde reflete le nouveau commit -> preuve
verifiable du CD cote app.
Mise en place cote Vision + secrets forge documentes dans
docs/architecture/deployment.md. Revue compliance : 1 must_fix integre (BatchMode).