Communitygithub.com

Tick Multi-Agent Coordination

Coordonne le travail entre agents humains et IA via des fichiers Markdown structurés. Les utilisateurs interagissent naturellement avec vous, tandis que vous gérez les tâches de manière transparente dans TICK.md.

Qu'est-ce que Tick Multi-Agent Coordination ?

Tick est un protocole de coordination multi-agents basé sur Git, matérialisé par des fichiers Markdown (TICK.md) lisibles par les humains et analysables par les machines. Il permet de créer, suivre et gérer des tâches en temps réel avec une traçabilité complète, sans nécessiter de cloud. Tick s’intègre avec les assistants IA comme Claude Code, Cursor ou Codex via son interface CLI ou les outils MCP (Model Context Protocol), offrant ainsi une solution locale et transparente pour orchestrer des workflows complexes entre développeurs humains et agents automatisés. Le protocole prend en charge la création hiérarchique de tâches, les dépendances, le blocage et déblocage automatique, les commentaires, les corrections via `undo`, les opérations par lots, la visualisation des dépendances et la validation. Il impose comme règles de sécurité de demander une approbation explicite de l'utilisateur avant toute modification des fichiers de configuration MCP ou toute synchronisation distante (`tick sync --push`).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Purple-Horizons/tick-md/tree/main/clawhub-skill

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

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 --push ou git 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.md
  • tick_agent_list - Lister les agents avec des filtres optionnels

Gestion des Tâches

  • tick_add - Créer une nouvelle tâche
  • tick_claim - Revendiquer une tâche pour un agent
  • tick_release - Libérer une tâche revendiquée
  • tick_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ée
  • tick_delete - Supprimer une tâche
  • tick_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 :

  1. Frontmatter (YAML) : Métadonnées du projet
  2. Tableau des Agents (Markdown) : Qui travaille sur quoi
  3. 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

  1. Les utilisateurs interagissent avec VOUS, pas directement avec Tick
  2. VOUS gérez le TICK.md de manière transparente
  3. Le tableau de bord est pour l'inspection, pas l'interaction principale
  4. Utilisez toujours votre nom d'agent de manière cohérente
  5. Commentez fréquemment pour montrer la progression
  6. Validez avant de synchroniser
  7. Vérifiez le statut avant de revendiquer
  8. Décomposez le travail complexe en sous-tâches

Ressources

Licence

MIT

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills associés