Skip to content

[P1] Centraliser les codes de sortie dans un enum typé et publier leur référence #197

Description

@stephrobert

État vérifié

Les codes de sortie sont devenus une interface machine, et ils sont
dispersés :

Code Où il est défini
7 locking.py:77EXIT_LOCKED
8 infra/inventory.py:373EXIT_HOTES_INJOIGNABLES
9 services/doctor.pyEXIT_DOCTOR_REQUIS_KO
10 services/doctor.pyEXIT_DOCTOR_INDETERMINE
127 cli/_socle.py:96littéral nu, aucune constante
130 interrupt.py:61EXIT_INTERRUPTED

docs/exit-codes.md n'existe pas. La documentation machine les décrit
commande par commande, ce qui oblige un intégrateur à parcourir toute la page
pour reconstituer la table.

Pourquoi c'est un problème maintenant

Un code de sortie est le contrat le plus dur qui soit : il n'a ni schéma, ni
version, ni message. Quatre codes ont été ajoutés en une journée (8, 9, 10, plus
le 127 existant), chacun dans le module qui l'utilise. Rien n'empêche
aujourd'hui d'en attribuer deux fois le même — aucun test ne compare les valeurs
entre modules.

Critères d'acceptation

  • Un ExitCode(IntEnum) central porte toutes les valeurs, y compris le
    127 aujourd'hui littéral.
  • Les constantes existantes deviennent des alias de cet enum, ou sont
    remplacées : aucune valeur en double, et un test le vérifie.
  • docs/exit-codes.md (EN + FR) donne la table complète, avec pour chaque
    code ce qu'il signifie et le geste qu'il appelle — 9 se répare, 10
    se remesure, 7 s'attend.
  • La page est reliée depuis docs/machine-output.*.
  • Un test échoue si un code est ajouté au code sans figurer dans la page.

Relevé en confrontant au code une analyse externe du dépôt, le 2026-08-24.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions