Asana & Git Automation Retex
Ce skill documente les points de friction rencontrés lors de l'exécution des workflows automatisés (Asana → KiloClaw et sauvegarde Git) et les solutions appliquées pour garantir une exécution fluide.
🔍 Points Bloquants Identifiés & Solutions
1. Token GitHub Expiré ou Invalide
- Symptôme : Échec silencieux du
git pushlors de la sauvegarde hebdomadaire, erreur HTTP 401. - Cause : Le Personal Access Token (PAT) GitHub stocké dans l'URL du remote était périmé.
- Solution :
- Récupérer le nouveau PAT depuis 1Password (
op item get "GitHub Personal Access Token" --vault "KiloClaw" --fields identifiant --reveal). - Mettre à jour l'URL du remote :
git remote set-url origin "https://x-access-token:<TOKEN>@github.com/rez0/kiloclaw-workspace.git". - Prévention : Ajouter une vérification de santé du token (
curl -s -H "Authorization: token $TOKEN" https://api.github.com/user) dans le script de backup avant toute opération Git.
- Récupérer le nouveau PAT depuis 1Password (
2. Token Asana Désynchronisé
- Symptôme : Les tâches Asana assignées à KiloClaw ne sont pas traitées, erreur
401 Not Authorizedlors de l'appel API. - Cause : Le fichier local
~/.config/tokens/asana-kiloclaw.txtcontenait un ancien token, tandis que le token à jour était dans 1Password. - Solution :
- Synchroniser systématiquement le token local avec 1Password avant l'exécution du script :
op item get "Asana" --vault "KiloClaw" --fields identifiant --reveal > ~/.config/tokens/asana-kiloclaw.txt. - Prévention : Modifier le script
asana_daily_fetch.shpour qu'il récupère dynamiquement le token via 1Password à chaque exécution, éliminant la dépendance à un fichier statique potentiellement obsolète.
- Synchroniser systématiquement le token local avec 1Password avant l'exécution du script :
3. Structure Incohérente du Fichier d'État Asana
- Symptôme : Le script
asana_daily.pyéchoue avec l'erreur'completed_gids'lors de la tentative de marquage d'une tâche comme "done". - Cause : Le fichier
.asana-task-state.jsonavait une structure différente (processed_gidsau lieu decompleted_gids) de celle attendue par le script Python. - Solution :
- Corriger manuellement la structure du fichier JSON pour qu'elle corresponde au schéma attendu :
{"completed_gids": [...]}. - Prévention : Ajouter une validation de schéma ou une migration automatique dans
asana_daily.pypour gérer les anciennes versions du fichier d'état sans planter.
- Corriger manuellement la structure du fichier JSON pour qu'elle corresponde au schéma attendu :
4. Fichiers Non Versionnés Polluant le Dépôt
- Symptôme : Le script de backup tente de committer des dossiers entiers clonés temporairement (ex:
SkillClaw/) ou des logs locaux (records/). - Cause : Absence de règles d'ignorance dans
.gitignore. - Solution :
- Ajouter explicitement
SkillClaw/etrecords/au fichier.gitignoredu workspace. - Prévention : Réviser le
.gitignorelors de l'installation de tout nouvel outil ou workflow pour éviter l'encombrement du dépôt principal.
- Ajouter explicitement
5. Collisions et Échecs de Jobs Cron (Morning Briefing / Backup)
- Symptôme : Double exécution ou échec du "Briefing Quotidien" et du backup hebdomadaire le dimanche à 7h00 (erreur 502 ou conflit de ressources).
- Cause : Plusieurs jobs cron (GitHub Awesome Check, Morning Briefing, Git Backup) étaient programmés exactement à la même heure, saturant les ressources ou entrant en conflit. De plus, le Morning Briefing tentait d'appeler un plugin inexistant.
- Solution :
- Décaler les jobs non critiques (ex: GitHub Awesome Check) à 7h15 pour laisser la priorité absolue au backup hebdomadaire à 7h00.
- Reconfigurer le Morning Briefing pour qu'il exécute directement le script Python local (
scripts/morning_brief.py) viaagentTurnavec les outils autorisés (exec,read,write,message), plutôt que de dépendre d'un plugin externe. - Prévention : Lors de l'ajout d'un nouveau job cron, toujours vérifier l'horaire via
cron listet éviter les chevauchements avec les fenêtres de backup (dimanche 7h00) ou de brief matinal (8h00).
🔄 Intégration au Workflow de Sauvegarde
Ce skill et les corrections apportées (scripts mis à jour, .gitignore enrichi) font désormais partie intégrante du périmètre de la sauvegarde hebdomadaire Git. Toute future modification de ces mécanismes devra être validée par ce référentiel.
