Coordination Multi-Agent Tick
Coordonnez le travail entre humains et agents IA à l'aide de fichiers Markdown structurés. Les utilisateurs interagissent naturellement avec vous, et vous maintenez les tâches de manière transparente dans TICK.md.
Installation
Prérequis : La CLI Tick et le serveur MCP doivent déjà être installés et configurés par votre environnement.
Première installation ? Consultez INSTALL.md pour les instructions spécifiques à votre éditeur.
Vérification rapide :
# Vérifier que la CLI est disponible
tick --version
# Vérifier si TICK.md existe dans le projet
ls TICK.md
# Sinon, initialiser
tick init
Concept Fondamental
Protocole Tick = Coordination de tâches basée sur Git via les fichiers TICK.md
- Lisible par les humains : Markdown standard avec YAML
- Analysable par les machines : Structuré pour les outils
- Basé sur Git : contrôle de version complet et traçabilité
- Local d'abord : Aucun cloud requis
Démarrage Rapide
Vérifier si Tick est initialisé
ls TICK.md
Si non initialisé
tick init
Obtenir le statut actuel
tick status
Flux de Travail Courants
1. L'utilisateur vous demande de faire quelque chose
Utilisateur : "Peux-tu refactoriser le système d'authentification ?"
Vos actions :
# 1. Créer la tâche
tick add "Refactoriser le système d'authentification" --priority high --tags backend,security
# 2. Vous enregistrer (première fois uniquement)
tick agent register @votre-nom --type bot --roles "engineer,refactoring"
# 3. Revendiquer la tâche
tick claim TASK-XXX @votre-nom
# 4. Travailler dessus (faire le vrai travail)
# 5. Ajouter des commentaires de progression
tick comment TASK-XXX @votre-nom --note "Analyse du flux d'auth actuel"
tick comment TASK-XXX @votre-nom --note "Refactorisé pour utiliser JWT"
# 6. Marquer comme terminé
tick done TASK-XXX @votre-nom
2. L'utilisateur demande l'état du projet
Utilisateur : "Sur quelles tâches travaillons-nous ?"
# Obtenir un état complet
tick status
# Ou filtrer et lister les tâches
tick list --status in_progress
tick list --claimed-by @nom-bot
Résumez la sortie de manière naturelle pour l'utilisateur.
3. Coordination avec d'autres agents
Utilisateur : "Les autres agents ont-ils terminé leurs tâches ?"
# Vérifier l'état général
tick status
# Lister les agents et leur travail
tick agent list --verbose
# Valider le projet
tick validate
4. Décomposition du travail complexe
Utilisateur : "Construis un tableau de bord utilisateur avec des graphiques et export de données"
Vos actions :
# Créer la tâche parente
tick add "Construire le tableau de bord utilisateur" --priority high --tags frontend
# Créer des sous-tâches avec dépendances
tick add "Concevoir la mise en page du tableau de bord" --priority high --tags frontend,design
tick add "Implémenter les graphiques de données" --priority medium --tags frontend,charts --depends-on TASK-XXX
tick add "Ajouter l'export CSV" --priority low --tags frontend,export --depends-on TASK-XXX
# Visualiser les dépendances
tick graph
Référence des Commandes
Gestion de projet
tick init # Initialiser un nouveau projet
tick status # Voir l'aperçu du projet
tick list # Lister les tâches avec filtres
tick graph # Visualiser les dépendances
tick watch # Surveiller les changements en temps réel
tick validate # Vérifier les erreurs
tick sync --push # Commiter et pousser vers git
Opérations sur les tâches
tick add "Titre de la tâche" \
--priority high \ # urgent|high|medium|low
--tags backend,api \ # Tags séparés par des virgules
--assigned-to @agent \ # Assigner à un agent
--depends-on TASK-001 \ # Dépendances
--estimated-hours 4 # Estimation en heures
tick claim TASK-001 @agent # Revendiquer une tâche (passe en in_progress)
tick release TASK-001 @agent # Libérer une tâche (retour en todo)
tick done TASK-001 @agent # Terminer une tâche
tick reopen TASK-001 @agent # Rouvrir une tâche terminée
tick delete TASK-001 # Supprimer une tâche
tick comment TASK-001 @agent \ # Ajouter une note
--note "Mise à jour de progression"
tick edit TASK-001 \ # Modifier directement un champ
--title "Nouveau titre" \
--priority high \
--status in_progress
Corrections et Rétablissement
tick reopen TASK-001 @agent # Rouvrir une tâche terminée
tick reopen TASK-001 @agent \ # Rouvrir et re-bloquer les dépendants
--re-block
tick delete TASK-001 # Supprimer une tâche, nettoie les dépendances
tick delete TASK-001 --force # Supprimer même si a des dépendants
tick edit TASK-001 --title "X" # Changer le titre
tick edit TASK-001 --priority high # Changer la priorité
tick edit TASK-001 --status todo # Changer le statut directement
tick edit TASK-001 --tags a,b,c # Remplacer les tags
tick edit TASK-001 --add-tag new # Ajouter un tag
tick edit TASK-001 --remove-tag old # Supprimer un tag
tick edit TASK-001 \ # Modifier les dépendances
--depends-on TASK-002,TASK-003
tick undo # Annuler la dernière opération tick
tick undo --dry-run # Prévisualiser ce qui serait annulé
Opérations par Lots
tick import tasks.yaml # Importer des tâches depuis un fichier YAML
tick import - < tasks.yaml # Importer depuis stdin
tick import tasks.yaml --dry-run # Prévisualiser l'importation
tick batch start # Commencer le mode batch (pas d'auto-commit)
tick batch status # Vérifier le statut batch
tick batch commit # Commiter tous les changements en lot
tick batch abort # Abandonner les changements en lot
Listage Avancé des Tâches
tick list # Toutes les tâches, groupées par statut
tick list --status blocked # Uniquement les tâches bloquées
tick list --priority urgent # Tâches haute priorité
tick list --assigned-to @alice # Tâches pour un agent spécifique
tick list --tag backend # Tâches avec un tag
tick list --json # Sortie JSON pour les scripts
Visualisation des Dépendances
tick graph # Arbre de dépendances ASCII
tick graph --format mermaid # Diagramme de flux Mermaid
tick graph --show-done # Inclure les tâches terminées
Surveillance en Temps Réel
tick watch # Surveiller les changements
tick watch --interval 10 # Intervalle de scrutation personnalisé
tick watch --filter in_progress # Afficher uniquement un statut spécifique
Gestion des Agents
tick agent register @nom \ # Enregistrer un nouvel agent
--type bot \ # human|bot
--roles "dev,qa" \ # Rôles séparés par des virgules
--status idle # working|idle|offline
tick agent list # Lister tous les agents
tick agent list --verbose # Infos détaillées
tick agent list --type bot # Filtrer par type
tick agent list --status working # Filtrer par statut
Outils MCP (Alternative à la CLI)
Si vous utilisez le Model Context Protocol, utilisez ces outils au lieu des commandes CLI :
Statut et Inspection
tick_status- Obtenir le statut du projet (agents, tâches, progression)tick_validate- Valider la structure de TICK.mdtick_agent_list- Lister les agents avec filtres optionnels
Gestion des Tâches
tick_add- Créer une nouvelle tâchetick_claim- Revendiquer une tâche pour un agenttick_release- Libérer une tâche revendiquéetick_done- Terminer une tâche (débloque automatiquement les dépendants)tick_comment- Ajouter une note à une tâche
Corrections et Rétablissement
tick_reopen- Rouvrir une tâche terminéetick_delete- Supprimer une tâchetick_edit- Modifier directement un champ (contourne la machine à états)tick_undo- Annuler la dernière opération tick
Opérations sur les Agents
tick_agent_register- Enregistrer un nouvel agent
Exemple MCP :
// Créer une tâche via MCP
await tick_add({
title: "Refactoriser l'authentification",
priority: "high",
tags: ["backend", "security"],
assignedTo: "@nom-bot"
})
// La revendiquer
await tick_claim({
taskId: "TASK-023",
agent: "@nom-bot"
})
Bonnes Pratiques
1. Conversation Naturelle d'abord
✅ Bien : L'utilisateur dit "refactorise l'auth", vous créez la tâche automatiquement ❌ Mal : Forcer l'utilisateur à créer des tâches explicitement
2. Toujours Utiliser Votre Nom d'Agent
Enregistrez-vous une fois :
tick agent register @nom-bot --type bot --roles "engineer"
Puis utilisez-le systématiquement :
tick claim TASK-001 @nom-bot
tick done TASK-001 @nom-bot
3. Fournir du Contexte dans les Commentaires
# ✅ Bien - explique quoi et pourquoi
tick comment TASK-005 @bot --note "Passage de REST à GraphQL pour une meilleure sécurité des types et moins de sur-récupération"
# ❌ Mal - trop vague
tick comment TASK-005 @bot --note "API mise à jour"
4. Décomposer les Grandes Tâches
Créez des sous-tâches avec dépendances :
tick add "Configurer le pipeline CI/CD" --priority high
tick add "Configurer GitHub Actions" --depends-on TASK-010
tick add "Ajouter les scripts de déploiement" --depends-on TASK-011
tick add "Configurer l'environnement de staging" --depends-on TASK-011
5. Vérifier le Statut Avant de Revendiquer
# S'assurer que la tâche existe et n'est pas revendiquée
tick status
# Puis revendiquer
tick claim TASK-XXX @votre-nom
Comprendre la Structure de TICK.md
Le fichier comporte trois sections :
- Frontmatter (YAML) : Métadonnées du projet
- Tableau des Agents (Markdown) : Qui travaille sur quoi
- Blocs de Tâches (YAML + Markdown) : Tâches individuelles avec historique
Exemple :
---
project: mon-app
schema_version: "1.0"
next_id: 5
---
# Agents
| Nom | Type | Rôles | Statut | Travaille sur |
|------|------|-------|--------|------------|
| @alice | humain | propriétaire | en cours | TASK-003 |
| @bot | bot | ingénieur | inactif | - |
# Tâches
yaml
id: TASK-001
title: Construire l'authentification
status: done
priority: high
claimed_by: null
# ... autres champs
history:
- ts: 2026-02-07T10:00:00Z
who: @bot
action: créé
- ts: 2026-02-07T14:00:00Z
who: @bot
action: terminé
authentification JWT implémentée avec rafraîchissement de token...
Fonctionnalités Avancées
Déblocage Automatique des Dépendances
Lorsque vous terminez une tâche, les tâches dépendantes sont automatiquement débloquées :
# TASK-002 dépend de TASK-001
# Statut de TASK-002 : bloqué
tick done TASK-001 @bot
# TASK-002 passe automatiquement à : todo
Détection des Dépendances Circulaires
La validation détecte les dépendances circulaires :
tick validate
# Erreur : Dépendance circulaire détectée : TASK-001 → TASK-002 → TASK-003 → TASK-001
Messages de Commit Intelligents
tick sync --push
# Génère automatiquement : "feat: terminer TASK-001, TASK-002; mettre à jour TASK-003"
Rouvrir des Tâches Terminées
Si une tâche a été marquée terminée prématurément :
tick reopen TASK-001 @bot
# Remet le statut à in_progress, enregistré dans l'historique
tick reopen TASK-001 @bot --re-block
# Re-bloque également toutes les tâches qui dépendent de celle-ci
Corriger des Erreurs
# Annuler la dernière opération tick
tick undo
# Prévisualiser ce qui serait annulé d'abord
tick undo --dry-run
# Modifications directes de champs (contourne la machine à états)
tick edit TASK-001 --status todo --priority urgent
Opérations par Lots
Pour plusieurs modifications sans commits individuels :
tick batch start
# Maintenant, effectuez plusieurs modifications...
tick add "Tâche 1" --priority high
tick add "Tâche 2" --priority medium
tick claim TASK-001 @bot
# ...
tick batch commit # Un seul commit pour toutes les modifications
# Ou : tick batch abort # Abandonner toutes les modifications
Surveillance en Temps Réel
tick watch
# [10:23:45] ✓ Ajouté : TASK-015 - Implémenter la recherche utilisateur
# [10:24:12] 🔒 TASK-015 revendiquée par @bot
# [10:26:33] ⟳ TASK-015 : in_progress → done
Carte de Référence Rapide
Flux : init → add → claim → work → comment → done → sync
Essentiel : status | add | claim | done | list | graph
Corrections : reopen | delete | edit | undo
Lot : import | batch start/commit/abort
Coordination : agent register | agent list | validate | watch
Git : sync --pull | sync --push
Rappels Clés
- Les utilisateurs interagissent avec VOUS, pas directement avec Tick
- VOUS maintenez TICK.md de manière transparente
- Le tableau de bord est pour l'inspection, pas l'interaction principale
- Utilisez toujours le nom de votre agent de manière cohérente
- Commentez fréquemment pour montrer la progression
- Validez avant de synchroniser
- Vérifiez le statut avant de revendiquer
- Décomposez le travail complexe en sous-tâches
Ressources
- GitHub : https://github.com/your-org/tick-md
- Documentation : https://tick-md.dev/docs
- CLI npm : https://npmjs.com/package/tick-md
- Serveur MCP npm : https://npmjs.com/package/tick-mcp-server
Licence
MIT