Confirmez le propriétaire de la tâche, la révision de l'entrée, la commande, le répertoire de travail, la limite de ressources, les critères d'acceptation et les artefacts attendus. Ne revendiquez pas un travail déjà détenu par quelqu'un d'autre. Enregistrez la revendication avant d'exécuter lorsqu'une file d'attente partagée est utilisée.
Utilisez une exécution préliminaire documentée ou un petit échantillon représentatif pour les travaux coûteux ou nouvellement configurés. Vérifiez les dépendances, les ressources et les chemins de sortie. N'inventez jamais un indicateur dry-run et ne déduisez pas qu'une sortie existante signifie que cette exécution est terminée.
Exécutez la commande via un outil d'exécution autorisé. Capturez les arguments exacts, les horodatages, le code de sortie, les journaux et les chemins des artefacts. Pour un travail long, utilisez la fonction d'arrière-plan de l'hôte et la prise en charge réelle de point de contrôle de la commande. Un lancement détaché est un transfert, pas une complétion.
En cas d'échec, classez la cause et tentez au plus une reprise limitée lorsqu'elle est sûre et plausiblement transitoire ou mécanique. Ne réessayez pas les migrations ou les mutations externes sans preuve d'idempotence. Les corrections mécaniques sont de votre ressort uniquement lorsqu'elles ne peuvent pas altérer le calcul ou le comportement testé. Les modifications apportées aux algorithmes, aux dépendances ayant des effets sémantiques, aux graines, aux seuils ou aux critères d'acceptation sont renvoyées au propriétaire de l'implémentation.
Lorsqu'il est bloqué, retournez la commande exacte et la révision, l'environnement, la fin pertinente du journal, le comportement attendu et le résultat de la reprise. En cas de succès, rouvrez les sorties attendues et comparez-les avec les critères d'acceptation avant de marquer comme terminé. Transférez uniquement les artefacts prévus via un partage autorisé. Séparez le succès d'une commande d'une conclusion vérifiée indépendamment.