- 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
94 lines
2.9 KiB
Markdown
94 lines
2.9 KiB
Markdown
# CLAUDE.md global — Règles pour tous les projets
|
|
|
|
## Time Tracking obligatoire
|
|
|
|
Claude DOIT créer une time entry dans Lesstime au démarrage de chaque tâche de développement, ou sur demande explicite de l'utilisateur ("lance le chrono", "start timer", "track le temps").
|
|
|
|
### Déclencheurs
|
|
|
|
1. **Début d'une tâche de dev** : feature, bugfix, refactoring, infra, review
|
|
2. **Demande explicite** : "lance le chrono", "start timer", "track le temps"
|
|
3. **Depuis un ticket Lesstime** : lier directement au `taskId` du ticket référencé
|
|
|
|
### Méthode — via le MCP `lesstime`
|
|
|
|
**Toujours passer par les outils MCP `mcp__lesstime__*`, jamais par curl.**
|
|
|
|
1. **Vérifier qu'il n'y a pas de timer actif** :
|
|
`mcp__lesstime__list-time-entries` avec `userId: 5`, puis chercher une entrée dont `stoppedAt` est `null`.
|
|
|
|
2. **Stopper l'éventuel timer actif** avant d'en créer un nouveau :
|
|
`mcp__lesstime__update-time-entry` avec `id: <activeId>` et `stoppedAt: "<ISO8601 maintenant>"`.
|
|
|
|
3. **Créer le timer** :
|
|
```
|
|
mcp__lesstime__create-time-entry({
|
|
userId: 5,
|
|
startedAt: "<ISO8601 avec timezone, ex 2026-05-13T10:00:00+02:00>",
|
|
title: "<description courte>",
|
|
projectId: <projectId>,
|
|
tagIds: [<tagId>, ...],
|
|
taskId: <taskId> // optionnel : si lié à un ticket Lesstime
|
|
})
|
|
```
|
|
Retient l'`id` retourné.
|
|
|
|
4. **Stopper le timer en fin de tâche** :
|
|
```
|
|
mcp__lesstime__update-time-entry({
|
|
id: <timerId>,
|
|
stoppedAt: "<ISO8601 maintenant>"
|
|
})
|
|
```
|
|
|
|
### Paramètres obligatoires
|
|
|
|
- **userId** : TOUJOURS `5` (Matthieu)
|
|
- **startedAt** : ISO 8601 avec timezone (ex: `2026-05-13T14:30:00+02:00`)
|
|
- **title** : description courte de la tâche en cours
|
|
- **projectId** : selon le mapping ci-dessous
|
|
|
|
### Tags (choisir selon le type de travail)
|
|
|
|
| Tag | tagId |
|
|
|-----|-------|
|
|
| RDV | 1 |
|
|
| Frontend | 2 |
|
|
| Backend | 3 |
|
|
| UI/UX | 4 |
|
|
| Infra | 5 |
|
|
| Maintenance | 6 |
|
|
| IA | 7 |
|
|
| Réunion | 8 |
|
|
| Gestion projet | 9 |
|
|
| Formation | 10 |
|
|
|
|
> En cas de doute, appeler `mcp__lesstime__list-tags` pour la liste à jour.
|
|
|
|
### Mapping projets
|
|
|
|
| Projet | projectId |
|
|
|--------|-----------|
|
|
| Lesstime | 5 |
|
|
| ERP Liot / Coltura | 6 |
|
|
| Inventory | 7 |
|
|
| Ferme | 8 |
|
|
| Malio UI | 11 |
|
|
| SIRH | 12 |
|
|
| Infrastructure | 13 |
|
|
| Qualiopi | 14 |
|
|
| ADMIN | 16 |
|
|
| Maintenance-LIOT | 17 |
|
|
| Vaultwarden | 18 |
|
|
|
|
> En cas de doute, appeler `mcp__lesstime__list-projects`.
|
|
|
|
### Règles
|
|
|
|
- **Un seul timer actif à la fois** (contrainte DB) — toujours stopper l'actif avant d'en créer un nouveau
|
|
- **Toujours stopper le timer** en fin de tâche ou sur demande
|
|
- **Informer l'utilisateur** quand un timer est lancé/stoppé (id, titre, projet, tags)
|
|
- **Lier au ticket Lesstime** si un ticket est référencé (`taskId`)
|
|
- **Choisir les tags intelligemment** selon le type de travail
|
|
- **Fallback curl interdit** sauf si le MCP `lesstime` est indisponible — dans ce cas, signaler le problème à l'utilisateur
|