Coordination Multi-Agents Tick
Coordonnez le travail entre agents humains et IA à l'aide de fichiers Markdown structurés. Les utilisateurs interagissent naturellement avec vous, et vous gérez 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 configuration ? Consultez INSTALL.md pour les instructions d'installation spécifiques à votre éditeur.
Limites de Sécurité
- Demandez une approbation explicite de l'utilisateur avant de modifier les fichiers de configuration MCP de l'éditeur.
- Demandez une approbation explicite de l'utilisateur avant d'exécuter une commande qui pousse vers un dépôt Git distant (
tick sync --pushougit push). - Si l'approbation de l'utilisateur n'est pas explicite, utilisez les commandes en lecture seule / status et expliquez quelle action d'écriture est en attente.
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 des fichiers TICK.md
- Lisible par l'humain : Markdown standard avec YAML
- Analysable par la machine : Structuré pour les outils
- Basé sur Git : Contrôle de version et piste d'audit complets
- Local d'abord : Aucun cloud requis
Démarrage Rapide
Vérifier si Tick est initialisé
ls TICK.md
S'il n'est pas initialisé
tick init
Obtenir le statut actuel
tick status
Flux de Travail Courants
1. L'Utilisateur Vous Demande de Faire Quelque Chose
Utilisateur : « Pouvez-vous refactoriser le système d'authentification ? »
Vos Actions :
# 1. Créer une 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 travail réel)
# 5. Ajouter des commentaires de progression
tick comment TASK-XXX @votre-nom --note "Analyse du flux d'authentification actuel"
tick comment TASK-XXX @votre-nom --note "Refactorisation effectuée pour utiliser les tokens JWT"
# 6. Marquer comme terminée
tick done TASK-XXX @votre-nom
2. L'Utilisateur S'interroge sur l'État du Projet
Utilisateur : « Sur quelles tâches travaillons-nous ? »
# Obtenir le statut complet
tick status
# Ou filtrer et lister les tâches
tick list --status in_progress
tick list --claimed-by @nom-du-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 le statut global
tick status
# Lister les agents et leur travail
tick agent list --verbose
# Valider le projet
tick validate
4. Décomposer un Travail Complexe
Utilisateur : « Construis un tableau de bord utilisateur avec des graphiques et l'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 --pull # Tirer les derniers changements
# tick sync --push # Uniquement avec approbation explicite de l'utilisateur
Opérations sur les Tâches
tick add "Titre de la tâche" \
--priority high \ # urgent|high|medium|low
--tags backend,api \ # Étiquettes séparées par des virgules
--assigned-to @agent \ # Assigner à un agent
--depends-on TASK-001 \ # Dépendances
--estimated-hours 4 # Estimation de temps
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 \ # Édition directe de champ
--title "Nouveau titre" \
--priority high \
--status in_progress
Corrections et Récupération
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 elle 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 étiquettes
tick edit TASK-001 --add-tag new # Ajouter une étiquette
tick edit TASK-001 --remove-tag old # Supprimer une étiquette
tick edit TASK-001 \ # Éditer 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 l'entrée standard
tick import tasks.yaml --dry-run # Prévisualiser l'import
tick batch start # Démarrer le mode batch (pas d'auto-commit)
tick batch status # Vérifier le statut du batch
tick batch commit # Commiter tous les changements du batch
tick batch abort # Abandonner les changements du batch
Liste Avancée 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 une étiquette
tick list --json # Sortie JSON pour 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 # Informations 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 à la place 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 des 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écupération
tick_reopen- Rouvrir une tâche terminéetick_delete- Supprimer une tâchetick_edit- Édition directe de champ (contourne la machine d'état)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-du-bot"
})
// La revendiquer
await tick_claim({
taskId: "TASK-023",
agent: "@nom-du-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 explicitement des tâches
2. Utilisez Toujours Votre Nom d'Agent
Enregistrez-vous une fois :
tick agent register @votre-nom-bot --type bot --roles "engineer"
Utilisez-le ensuite de manière cohérente :
tick claim TASK-001 @votre-nom-bot
tick done TASK-001 @votre-nom-bot
3. Fournissez du Contexte dans les Commentaires
# ✅ Bien - explique quoi et pourquoi
tick comment TASK-005 @bot --note "Migration de REST vers GraphQL pour une meilleure sécurité de typage et moins de sur-récupération"
# ❌ Mal - trop vague
tick comment TASK-005 @bot --note "API mise à jour"
4. Décomposez les Grandes Tâches
Créez des sous-tâches avec dépendances :
tick add "Mettre en place 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érifiez le Statut Avant de Revendiquer
# Assurez-vous que la tâche existe et n'est pas déjà revendiquée
tick status
# Puis revendiquez
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 | human | owner | working | TASK-003 |
| @bot | bot | engineer | idle | - |
# Tâches
type: task
title: Construire l'authentification
status: done
priority: high
claimed_by: null
# ... autres champs
history:
- ts: 2026-02-07T10:00:00Z
who: @bot
action: created
- ts: 2026-02-07T14:00:00Z
who: @bot
action: done
Authentification basée sur 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 :
```bash
# TASK-002 dépend de TASK-001
# TASK-002 statut : blocked
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
# Exécuter uniquement avec approbation explicite de l'utilisateur
tick sync --push
# Génère automatiquement : "feat: terminé TASK-001, TASK-002; mise à jour TASK-003"
Rouvrir des Tâches Terminées
Si une tâche a été marquée comme terminée prématurément :
tick reopen TASK-001 @bot
# Remet le statut à in_progress, enregistre dans l'historique
tick reopen TASK-001 @bot --re-block
# Re-bloque également 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
# Éditions directes de champ (contourne la machine d'état)
tick edit TASK-001 --status todo --priority urgent
Opérations par Lots
Pour plusieurs changements sans commits individuels :
tick batch start
# Maintenant, faites 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 tous les changements
# Ou : tick batch abort # Abandonner tous les changements
Surveillance en Temps Réel
tick watch
# [10:23:45] ✓ Ajouté : TASK-015 - Implémenter la recherche utilisateur
# [10:24:12] 🔒 TASK-015 revendiqué 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 (approbation explicite utilisateur requise)
Rappels Clés
- Les utilisateurs interagissent avec VOUS, pas directement avec Tick
- VOUS gérez le TICK.md de manière transparente
- Le tableau de bord est pour l'inspection, pas l'interaction principale
- Utilisez toujours votre nom d'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