with one click
cra
// Suivi du temps : réconciliation Toggl, Billi CRA et git commits. Vue d'ensemble et détection d'écarts entre les sources.
// Suivi du temps : réconciliation Toggl, Billi CRA et git commits. Vue d'ensemble et détection d'écarts entre les sources.
Analyse des factures clients Qonto par période de prestation (pas date d'émission) et compte de destination. Sortie HT/TTC, top clients, audit des cas ambigus.
Transcribe audio files using the local `transcribe` CLI (WhisperX large-v3 + diarisation + optional LLM correction).
Write and publish a blog article to Notion based on conversation context, a file, or a topic. Optionally cross-post to LinkedIn, Twitter, and Slack.
Process a "Tech My Breath Away" meeting: move the Fireflies-created Notion page to the Talks database, and upload the video to Google Drive.
Create a new Claude Code skill based on conversation context, a file, or a description of the skill's purpose.
Import CRAs from an Excel file into Billi, or export CRAs from Billi to Excel. Bidirectional sync of activity reports.
| name | cra |
| description | Suivi du temps : réconciliation Toggl, Billi CRA et git commits. Vue d'ensemble et détection d'écarts entre les sources. |
| title | /cra |
| parent | Skills |
| permalink | /skills/cra/ |
| nav_order | 14 |
Skill chapeau pour le suivi du temps de travail. Orchestre les 3 sources de données sans dupliquer leur logique.
| Source | Rôle | Skill dédié | Pour qui |
|---|---|---|---|
| Toggl | Source de vérité (temps réel) | /toggl-calendar | Nicolas (accès Toggl personnel) |
| Billi CRA | Déclaratif client | /billi-cra | Tous les freelances/salariés |
| Git commits | Proxy jours travaillés | — (commandes git) | Collaborateurs sans Toggl |
/billi-cra pour le détail auth)# 1. Get token
curl -s -X POST https://api.billi.so/oauth/token \
-H "Content-Type: application/json" \
-d '{"grant_type":"password","email":"<email>","password":"<password>"}'
# 2. Fetch CRAs
curl -s https://api.billi.so/activity_reports \
-H "Authorization: Bearer <token>" \
-H "Accept: application/json"
# Returns activity_reports with: id, month, state, duration, mission, company, freelancer, activities
Pour les collaborateurs qui n'ont pas Toggl, les commits git servent de proxy :
# Tous les auteurs sur une année
git -C <repo> log --after="YYYY-01-01" --before="YYYY+1-01-01" --format='%aN' | sort | uniq -c | sort -rn
# Jours uniques par auteur
git -C <repo> log --after="YYYY-01-01" --before="YYYY+1-01-01" --author="Nom" --format="%ad" --date=format:"%Y-%m-%d" | sort -u | wc -l
# Détail jour par jour (pour vérification)
git -C <repo> log --after="YYYY-01-01" --before="YYYY+1-01-01" --author="Nom" --format="%ad" --date=format:"%Y-%m-%d" | sort -u
Quand l'utilisateur invoque /cra :
Demander la période (mois ou plage) et afficher un résumé par source :
python3 ~/dev/qraft/toggl/main.py <mois> (ou pointer vers /toggl-calendar)/cra toggl <mois> → déléguer à /toggl-calendar/cra billi import/export → déléguer à /billi-cra/cra git <repo> <année> → extraire les jours de commits/cra compare <mois> <personne> → réconcilier les sources :
Quand on compare les sources, les règles sont :