track-management

Par wshobson · agents

Utilisez cette skill lors de la création, de la gestion ou du travail avec les tracks Conductor — les unités de travail logiques pour les fonctionnalités, les bugs et les refactorisations. S'applique aux fichiers spec.md, plan.md et aux opérations du cycle de vie des tracks.

npx skills add https://github.com/wshobson/agents --skill track-management

Gestion des Tracks

Guide pour créer, gérer et compléter les tracks Conductor - les unités de travail logiques qui organisent les fonctionnalités, les bugs et les refactorisations à travers les phases de spécification, planification et implémentation.

Quand utiliser cette compétence

  • Créer des tracks de fonctionnalité, bug ou refactorisation
  • Écrire ou réviser les fichiers spec.md
  • Créer ou mettre à jour les fichiers plan.md
  • Gérer le cycle de vie des tracks de la création à l'achèvement
  • Comprendre les marqueurs et conventions d'état des tracks
  • Travailler avec le registre tracks.md
  • Interpréter ou mettre à jour les métadonnées des tracks

Concept de Track

Un track est une unité de travail logique qui encapsule une pièce de travail complète. Chaque track possède :

  • Un identifiant unique
  • Une spécification définissant les exigences
  • Un plan phasé décomposant le travail en tâches
  • Des métadonnées suivi l'état et la progression

Les tracks fournissent une organisation sémantique du travail, permettant :

  • Des limites de portée claires
  • Le suivi de la progression
  • Des opérations sensibilisées à Git (revenir en arrière par track)
  • La coordination d'équipe

Types de Tracks

feature

Nouvelles fonctionnalités ou capacités. À utiliser pour :

  • Nouvelles fonctionnalités visibles pour l'utilisateur
  • Nouveaux points de terminaison API
  • Nouvelles intégrations
  • Améliorations significatives

bug

Correctifs de défauts. À utiliser pour :

  • Comportement incorrect
  • Conditions d'erreur
  • Régressions de performance
  • Vulnérabilités de sécurité

chore

Maintenance et tâches courantes. À utiliser pour :

  • Mises à jour de dépendances
  • Changements de configuration
  • Mises à jour de documentation
  • Tâches de nettoyage

refactor

Amélioration du code sans changement de comportement. À utiliser pour :

  • Restructuration du code
  • Adoption de patterns
  • Réduction de la dette technique
  • Optimisation de performance (même comportement, meilleure performance)

Format d'ID de Track

Les IDs de track suivent le pattern : {shortname}_{YYYYMMDD}

  • shortname: Description en kebab-case de 2-4 mots (ex. user-auth, api-rate-limit)
  • YYYYMMDD: Date de création au format ISO

Exemples :

  • user-auth_20250115
  • fix-login-error_20250115
  • upgrade-deps_20250115
  • refactor-api-client_20250115

Cycle de vie d'un Track

1. Création (newTrack)

Définir les exigences

  1. Recueillir les exigences par Q&A interactif
  2. Identifier les critères d'acceptation
  3. Déterminer les limites de portée
  4. Identifier les dépendances

Générer la spécification

  1. Créer spec.md avec les exigences structurées
  2. Documenter les exigences fonctionnelles et non-fonctionnelles
  3. Définir les critères d'acceptation
  4. Lister les dépendances et contraintes

Générer le plan

  1. Créer plan.md avec la décomposition des tâches par phase
  2. Organiser les tâches en phases logiques
  3. Ajouter les tâches de vérification après les phases
  4. Estimer l'effort et la complexité

Enregistrer le track

  1. Ajouter une entrée au registre tracks.md
  2. Créer la structure du répertoire du track
  3. Générer metadata.json
  4. Créer le index.md du track

2. Implémentation

Exécuter les tâches

  1. Sélectionner la tâche suivante en attente dans le plan
  2. Marquer la tâche comme en cours
  3. Implémenter en suivant le workflow (TDD)
  4. Marquer la tâche complète avec le SHA du commit

Mettre à jour le statut

  1. Mettre à jour les marqueurs de tâche dans plan.md
  2. Enregistrer les SHAs de commit pour la traçabilité
  3. Mettre à jour la progression de phase
  4. Mettre à jour le statut du track dans tracks.md

Vérifier la progression

  1. Compléter les tâches de vérification
  2. Attendre l'approbation du checkpoint
  3. Enregistrer les commits de checkpoint

3. Achèvement

Synchroniser la documentation

  1. Mettre à jour product.md si des fonctionnalités ont été ajoutées
  2. Mettre à jour tech-stack.md si les dépendances ont changé
  3. Vérifier que tous les critères d'acceptation sont satisfaits

Archiver ou supprimer

  1. Marquer le track comme complété dans tracks.md
  2. Enregistrer la date d'achèvement
  3. Archiver ou conserver le répertoire du track

Structure de la Spécification (spec.md)

# {Track Title}

## Overview

Brève description de ce que ce track accomplit et pourquoi.

## Functional Requirements

### FR-1: {Requirement Name}

Description de l'exigence fonctionnelle.

- Acceptance: Comment vérifier que cette exigence est satisfaite

### FR-2: {Requirement Name}

...

## Non-Functional Requirements

### NFR-1: {Requirement Name}

Description de l'exigence non-fonctionnelle (performance, sécurité, etc.)

- Target: Cible mesurable spécifique
- Verification: Comment tester

## Acceptance Criteria

- [ ] Criterion 1: Condition spécifique et testable
- [ ] Criterion 2: Condition spécifique et testable
- [ ] Criterion 3: Condition spécifique et testable

## Scope

### In Scope

- Éléments explicitement inclus
- Fonctionnalités à implémenter
- Composants à modifier

### Out of Scope

- Éléments explicitement exclus
- Considérations futures
- Travail connexe mais séparé

## Dependencies

### Internal

- Autres tracks ou composants dont dépend celui-ci
- Artefacts de contexte requis

### External

- Services ou APIs tiers
- Dépendances externes

## Risks and Mitigations

| Risk             | Impact          | Mitigation          |
| ---------------- | --------------- | ------------------- |
| Description du risque | High/Medium/Low | Stratégie d'atténuation |

## Open Questions

- [ ] Question qui a besoin de résolution
- [x] Question résolue - Réponse

Structure du Plan (plan.md)

# Implementation Plan: {Track Title}

Track ID: `{track-id}`
Created: YYYY-MM-DD
Status: pending | in-progress | completed

## Overview

Brève description de l'approche d'implémentation.

## Phase 1: {Phase Name}

### Tasks

- [ ] **Task 1.1**: Description de la tâche
  - Sous-tâche ou détail
  - Sous-tâche ou détail
- [ ] **Task 1.2**: Description de la tâche
- [ ] **Task 1.3**: Description de la tâche

### Verification

- [ ] **Verify 1.1**: Étape de vérification pour la phase

## Phase 2: {Phase Name}

### Tasks

- [ ] **Task 2.1**: Description de la tâche
- [ ] **Task 2.2**: Description de la tâche

### Verification

- [ ] **Verify 2.1**: Étape de vérification pour la phase

## Phase 3: Finalization

### Tasks

- [ ] **Task 3.1**: Update documentation
- [ ] **Task 3.2**: Final integration test

### Verification

- [ ] **Verify 3.1**: All acceptance criteria met

## Checkpoints

| Phase   | Checkpoint SHA | Date | Status  |
| ------- | -------------- | ---- | ------- |
| Phase 1 |                |      | pending |
| Phase 2 |                |      | pending |
| Phase 3 |                |      | pending |

Conventions de marqueurs d'état

Utiliser des marqueurs cohérents dans plan.md :

Marker Meaning Usage
[ ] En attente Tâche non commencée
[~] En cours Actuellement en cours
[x] Complète Tâche terminée (inclure SHA)
[-] Ignorée Intentionnellement non faite
[!] Bloquée En attente de dépendance

Exemple :

- [x] **Task 1.1**: Set up database schema `abc1234`
- [~] **Task 1.2**: Implement user model
- [ ] **Task 1.3**: Add validation logic
- [!] **Task 1.4**: Integrate auth service (blocked: waiting for API key)
- [-] **Task 1.5**: Legacy migration (skipped: not needed)

Format du Registre de Tracks (tracks.md)

# Track Registry

## Active Tracks

| Track ID                                         | Type    | Status      | Phase | Started    | Assignee   |
| ------------------------------------------------ | ------- | ----------- | ----- | ---------- | ---------- |
| [user-auth_20250115](tracks/user-auth_20250115/) | feature | in-progress | 2/3   | 2025-01-15 | @developer |
| [fix-login_20250114](tracks/fix-login_20250114/) | bug     | pending     | 0/2   | 2025-01-14 | -          |

## Completed Tracks

| Track ID                                       | Type  | Completed  | Duration |
| ---------------------------------------------- | ----- | ---------- | -------- |
| [setup-ci_20250110](tracks/setup-ci_20250110/) | chore | 2025-01-12 | 2 days   |

## Archived Tracks

| Track ID                                             | Reason     | Archived   |
| ---------------------------------------------------- | ---------- | ---------- |
| [old-feature_20241201](tracks/old-feature_20241201/) | Superseded | 2025-01-05 |

Champs de métadonnées (metadata.json)

{
  "id": "user-auth_20250115",
  "title": "User Authentication System",
  "type": "feature",
  "status": "in-progress",
  "priority": "high",
  "created": "2025-01-15T10:30:00Z",
  "updated": "2025-01-15T14:45:00Z",
  "started": "2025-01-15T11:00:00Z",
  "completed": null,
  "assignee": "@developer",
  "phases": {
    "total": 3,
    "current": 2,
    "completed": 1
  },
  "tasks": {
    "total": 12,
    "completed": 5,
    "in_progress": 1,
    "pending": 6
  },
  "checkpoints": [
    {
      "phase": 1,
      "sha": "abc1234",
      "date": "2025-01-15T13:00:00Z"
    }
  ],
  "dependencies": [],
  "tags": ["auth", "security"]
}

Opérations sur les Tracks

Créer un track

  1. Exécuter /conductor:new-track
  2. Répondre aux questions interactives
  3. Réviser le spec.md généré
  4. Réviser le plan.md généré
  5. Confirmer la création du track

Démarrer l'implémentation

  1. Lire spec.md et plan.md
  2. Vérifier que les artefacts de contexte sont actuels
  3. Marquer la première tâche comme [~]
  4. Commencer le workflow TDD

Compléter une phase

  1. S'assurer que toutes les tâches de la phase sont [x]
  2. Compléter les tâches de vérification
  3. Attendre l'approbation du checkpoint
  4. Enregistrer le SHA du checkpoint
  5. Procéder à la phase suivante

Compléter un track

  1. Vérifier que toutes les phases sont complètes
  2. Vérifier que tous les critères d'acceptation sont satisfaits
  3. Mettre à jour product.md si nécessaire
  4. Marquer le track complété dans tracks.md
  5. Mettre à jour metadata.json

Revenir en arrière sur un track

  1. Exécuter /conductor:revert
  2. Sélectionner le track à revenir en arrière
  3. Choisir la granularité (track/phase/task)
  4. Confirmer l'opération de retour en arrière
  5. Mettre à jour les marqueurs d'état

Gérer les dépendances de tracks

Identifier les dépendances

Lors de la création d'un track, identifier :

  • Dépendances strictes : Doit être complété avant que ce track puisse commencer
  • Dépendances faibles : Peut procéder en parallèle mais peut affecter l'intégration
  • Dépendances externes : Services tiers, APIs ou décisions d'équipe

Documenter les dépendances

Dans spec.md, lister les dépendances avec :

  • Type de dépendance (stricte/faible/externe)
  • État actuel (disponible/en attente/bloqué)
  • Chemin de résolution (ce qui doit se passer)

Gérer les tracks bloqués

Quand un track est bloqué :

  1. Marquer les tâches bloquées avec [!] et raison
  2. Mettre à jour le statut dans tracks.md
  3. Documenter le blocage dans metadata.json
  4. Considérer créer un track de dépendance si nécessaire

Directives de dimensionnement des tracks

Tracks de bonne taille

Viser des tracks qui :

  • Se complètent en 1-5 jours de travail
  • Ont 2-4 phases
  • Contiennent 8-20 tâches au total
  • Livrent une unité cohérente et testable

Trop grands

Signes qu'un track est trop grand :

  • Plus de 5 phases
  • Plus de 25 tâches
  • Plusieurs fonctionnalités non liées
  • Durée estimée > 1 semaine

Solution : Diviser en plusieurs tracks avec des limites claires.

Trop petits

Signes qu'un track est trop petit :

  • Phase unique avec 1-2 tâches
  • Aucune vérification significative requise
  • Pourrait être une sous-tâche d'un autre track
  • Moins que quelques heures de travail

Solution : Combiner avec un travail connexe ou gérer comme partie d'un track existant.

Liste de vérification de la qualité de la spécification

Avant de finaliser spec.md, vérifier :

Qualité des exigences

  • [ ] Chaque exigence a des critères d'acceptation clairs
  • [ ] Les exigences sont testables
  • [ ] Les exigences sont indépendantes (vérifiables séparément)
  • [ ] Pas de langage ambigu ("should be fast" → "response < 200ms")

Clarté de la portée

  • [ ] Les éléments in-scope sont spécifiques
  • [ ] Les éléments out-of-scope préviennent l'expansion de portée
  • [ ] Les limites sont claires pour l'implémentateur

Dépendances identifiées

  • [ ] Toutes les dépendances internes sont listées
  • [ ] Les dépendances externes ont des propriétaires/contacts
  • [ ] L'état de dépendance est actuel

Risques traités

  • [ ] Les risques majeurs sont identifiés
  • [ ] L'évaluation d'impact est réaliste
  • [ ] Les atténuations sont actionnables

Liste de vérification de la qualité du plan

Avant de commencer l'implémentation, vérifier plan.md :

Qualité des tâches

  • [ ] Les tâches sont atomiques (une action logique)
  • [ ] Les tâches sont indépendamment vérifiables
  • [ ] Les descriptions de tâches sont claires
  • [ ] Les sous-tâches fournissent des détails utiles

Organisation des phases

  • [ ] Les phases groupent les tâches connexes
  • [ ] Chaque phase livre quelque chose de testable
  • [ ] Tâches de vérification après chaque phase
  • [ ] Les phases se construisent logiquement l'une sur l'autre

Complétude

  • [ ] Toutes les exigences de spec ont des tâches correspondantes
  • [ ] Les tâches de documentation sont incluses
  • [ ] Les tâches de test sont incluses
  • [ ] Les tâches d'intégration sont incluses

Patterns de tracks courants

Pattern de track de fonctionnalité

Phase 1: Foundation
- Data models
- Database migrations
- Basic API structure

Phase 2: Core Logic
- Business logic implementation
- Input validation
- Error handling

Phase 3: Integration
- UI integration
- API documentation
- End-to-end tests

Pattern de track de correctif de bug

Phase 1: Reproduction
- Write failing test capturing bug
- Document reproduction steps

Phase 2: Fix
- Implement fix
- Verify test passes
- Check for regressions

Phase 3: Verification
- Manual verification
- Update documentation if needed

Pattern de track de refactorisation

Phase 1: Preparation
- Add characterization tests
- Document current behavior

Phase 2: Refactoring
- Apply changes incrementally
- Maintain green tests throughout

Phase 3: Cleanup
- Remove dead code
- Update documentation

Bonnes pratiques

  1. Un track, une préoccupation : Garder les tracks focalisés sur un seul changement logique
  2. Petites phases : Décomposer le travail en phases de 3-5 tâches maximum
  3. Vérification après les phases : Toujours inclure les tâches de vérification
  4. Mettre à jour les marqueurs immédiatement : Marquer le statut de tâche pendant que vous travaillez
  5. Enregistrer les SHAs : Toujours noter les SHAs de commit pour les tâches complétées
  6. Réviser les specs avant la planification : S'assurer que la spec est complète avant de créer le plan
  7. Lier les dépendances : Noter explicitement les dépendances de tracks
  8. Archiver, ne pas supprimer : Préserver les tracks complétés pour référence
  9. Dimensionner appropriément : Garder les tracks entre 1-5 jours de travail
  10. Critères d'acceptation clairs : Chaque exigence doit être testable

Skills similaires