Communitygithub.com

Purple-Horizons/tick-md

Coordonner le travail entre humains et agents IA via des fichiers Markdown structurés.

Qu'est-ce que tick-md ?

Tick Multi-Agent Coordination est un protocole basé sur Git qui permet à des humains et des agents IA de collaborer sur des tâches de développement, en utilisant un simple fichier TICK.md lisible par les humains et analysable par les machines. L'utilisateur interagit de manière naturelle avec l'agent, qui crée, assigne, commente et marque automatiquement les tâches terminées via la CLI tick ou les outils MCP. Il gère les dépendances entre tâches, le déblocage automatique, les corrections (undo, reopen) et les opérations par lot, avec un historique complet versionné dans Git. Ce skill est conçu pour tous les assistants de codage (Claude Code, Cursor, Codex) qui peuvent exécuter des commandes ou appeler des outils MCP, et transforme une conversation informelle en un suivi de projet structuré sans que l'utilisateur ait à manipuler directement les fichiers.

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

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-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.md
  • tick_agent_list - Lister les agents avec 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établissement

  • tick_reopen - Rouvrir une tâche terminée
  • tick_delete - Supprimer une tâche
  • tick_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 :

  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 | 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

  1. Les utilisateurs interagissent avec VOUS, pas directement avec Tick
  2. VOUS maintenez TICK.md de manière transparente
  3. Le tableau de bord est pour l'inspection, pas l'interaction principale
  4. Utilisez toujours le nom de votre 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