Files
Claude-config/commands/push-tickets-lesstime.md
Matthieu ea27f27f7f chore : initial claude-config repo
- global CLAUDE.md (time tracking via MCP lesstime)
- workspace CLAUDE.md (dev_malio inventory)
- commands : ticket-writer, push-tickets-lesstime, full-project-review, bump-version
- MCP install guide (Code + Desktop) + .mcp.json.example
- scripts/install.sh + sync.sh
2026-05-13 17:03:07 +02:00

7.4 KiB

name, description
name description
push-tickets-lesstime Use after full-project-review to push TICKETS.md tickets into Lesstime project management via MCP. Triggers on "push tickets", "envoyer tickets", "creer les tickets dans lesstime", "sync tickets lesstime", "pousser les tickets".

Push Tickets to Lesstime

Overview

Prend le fichier TICKETS.md genere par le skill full-project-review et cree les taches correspondantes dans Lesstime via le MCP lesstime (mcp__lesstime__*). Chaque ticket devient une tache avec la bonne priorite, le bon groupe et la description complete.

When to Use

  • Apres un full-project-review qui a genere un TICKETS.md
  • L'utilisateur demande de "pousser", "sync", "envoyer" les tickets dans Lesstime
  • L'utilisateur veut creer les taches dans son gestionnaire de projet

Prerequis

  • Un fichier TICKETS.md doit exister dans le repertoire courant (genere par full-project-review)
  • Le MCP lesstime doit etre disponible (verifier mcp__lesstime__list-projects retourne du contenu). Si non, signaler le probleme a l'utilisateur — ne pas fallback sur curl.

Outils MCP utilises

Operation Tool MCP
Lister projets mcp__lesstime__list-projects
Lister users mcp__lesstime__list-users
Lister statuts (globaux) mcp__lesstime__list-statuses
Lister priorites (globales) mcp__lesstime__list-priorities
Lister tags (globaux) mcp__lesstime__list-tags
Lister groupes d'un projet mcp__lesstime__list-groups (projectId optionnel)
Creer un groupe mcp__lesstime__create-group
Creer une tache mcp__lesstime__create-task

Champs create-task

Champ Type Description
projectId int (required) Cible du ticket
title string (required) Titre du ticket
description string Markdown complet
statusId int Defaut "A faire" = 1
priorityId int Voir list-priorities
effortId int S/M/L — voir list-efforts
assigneeId int User assignee
collaboratorIds int[] Collaborateurs
groupId int Groupe (per-project)
tagIds int[] Tags globaux
deadline string (ISO date) Optionnel

Tous les IDs sont des entiers — pas d'IRI a construire, le MCP s'occupe de la conversion.

IDs verifies (cache — toujours reconfirmer via les outils list-*)

Type Label ID
Statut A faire 1
Statut En cours 2
Statut Bloque 3
Statut En attente de validation 4
Statut Termine 5
User admin 2
User Tristan 3
User Lucile 4
User Matthieu 5
User matteo 6
User kevin 7
User geoffrey 8
User Julie 10
Projet Lesstime 5
Projet Coltura 6
Projet Inventory 7
Projet Ferme 8
Projet Malio UI 11
Projet SIRH 12
Projet Infrastructure 13
Projet Qualiopi 14
Projet ADMIN 16
Projet Maintenance-LIOT 17
Projet Vaultwarden 18
Projet ednotif-bundle 19
Projet Formation 20

Process

digraph push_flow {
  rankdir=TB;
  "1. Lire TICKETS.md" -> "2. Discovery MCP (parallele)";
  "2. Discovery MCP (parallele)" -> "3. Demander projet cible + config";
  "3. Demander projet cible + config" -> "4. Mapper priorites P0/P1/P2/P3";
  "4. Mapper priorites P0/P1/P2/P3" -> "5. create-group si besoin";
  "5. create-group si besoin" -> "6. create-task pour chaque ticket";
  "6. create-task pour chaque ticket" -> "7. Resume au user";
}

Phase 1 — Lire et parser TICKETS.md

Lire le fichier TICKETS.md du repertoire courant. Extraire :

  • La liste des tickets avec leur ID (T-001, T-002, ...)
  • Le titre de chaque ticket
  • La priorite (P0, P1, P2, P3) — derivee de la section dans laquelle se trouve le ticket
  • Le corps complet (Pourquoi + A faire + Fichiers) — sera la description de la tache

Parsing :

  • Les sections ## P0, ## P1, ## P2, ## P3 delimitent les groupes de priorite
  • Chaque ### T-XXX -- {Titre} est un ticket
  • Tout le contenu entre deux ### T-XXX constitue la description du ticket

Phase 2 — Discovery MCP (appels paralleles)

Appeler en parallele :

  • mcp__lesstime__list-projects
  • mcp__lesstime__list-users
  • mcp__lesstime__list-statuses
  • mcp__lesstime__list-priorities
  • mcp__lesstime__list-tags

Apres le choix du projet : mcp__lesstime__list-groups avec projectId.

Phase 3 — Demander le projet cible

Presenter a l'utilisateur la liste des projets Lesstime et lui demander :

  1. Quel projet ? (projectId)
  2. Quel statut initial ? (statusId, defaut "A faire" = 1)
  3. Creer des groupes par priorite ? (ex: "P0 - Urgents", "P1 - Importants")
  4. Assigner a quelqu'un ? (assigneeId, optionnel)
  5. Tags a ajouter ? (tagIds, optionnel)

Phase 4 — Mapper les priorites

Mapper les priorites du TICKETS.md aux priorites Lesstime via list-priorities :

  • P0 → priorite la plus haute disponible (ex: "Urgent", "Critical")
  • P1 → priorite haute
  • P2 → priorite moyenne
  • P3 → priorite basse

Si le mapping n'est pas evident, demander confirmation a l'utilisateur.

Phase 5 — Creer les groupes (si demande)

Si l'utilisateur veut des groupes par priorite et qu'ils n'existent pas, appeler mcp__lesstime__create-group pour chacun :

create-group({ projectId: <id>, title: "P0 - Urgents (securite)", color: "#D32F2F" })
create-group({ projectId: <id>, title: "P1 - Importants",         color: "#F57C00" })
create-group({ projectId: <id>, title: "P2 - Documentation",      color: "#FBC02D" })
create-group({ projectId: <id>, title: "P3 - Nice to have",       color: "#388E3C" })

Stocker les id retournes pour les reutiliser dans la phase suivante.

Phase 6 — Creer les taches

Pour chaque ticket dans TICKETS.md :

  1. Construire le titre : "T-XXX -- {titre}"
  2. Construire la description : corps complet du ticket (Pourquoi + A faire + Fichiers)
  3. Appeler mcp__lesstime__create-task avec projectId, statusId, priorityId, assigneeId, groupId, tagIds

Gestion d'erreurs : si un create-task echoue, logguer l'erreur et continuer avec le suivant. Reporter toutes les erreurs en fin de batch.

Phase 7 — Resume

Afficher au user :

  • Nombre de taches creees
  • Repartition par groupe / priorite
  • Lien http://project.malio-dev.fr/my-tasks si assignees au user login
  • Taches echouees avec raison

Mapping par defaut (groupes)

TICKETS.md Lesstime Group Couleur
P0 "P0 - Urgents (securite)" #D32F2F
P1 "P1 - Importants" #F57C00
P2 "P2 - Documentation" #FBC02D
P3 "P3 - Nice to have" #388E3C

Common Mistakes

  • Bypasser le MCP : ne jamais retomber sur curl + JWT REST. Si le MCP est down, signaler a l'utilisateur.
  • Oublier la phase Discovery : les IDs (statuts, priorites, groupes) peuvent varier — toujours list-* avant de creer.
  • Ne pas demander confirmation : toujours valider le projet cible et le mapping avec l'utilisateur avant de creer.
  • Creer sans groupes : les groupes rendent la vue Lesstime beaucoup plus lisible.
  • Description trop courte : inclure le corps complet du ticket, pas juste le titre.
  • Oublier les groupes existants : toujours list-groups avant create-group pour eviter les doublons.
  • Ne pas gerer les erreurs : si une tache echoue, continuer avec les suivantes et reporter a la fin.