ROAD TO
Spécification complète du format JSON RtTemplate v1 utilisé par Road To pour les templates, sections et tâches. Documentation pour les développeurs, robots et IA.
Road To utilise un format JSON ouvert nommé RtTemplate pour représenter les templates de parcours. Ce format est utilisé pour l'import, l'export, et la génération par IA.
{
"version": 1,
"versionTemplate": 1,
"id": "UNIQUE_ID",
"locale": "fr",
"name": "Nom du template",
"description": "Description du parcours",
"sections": [ ... ]
}
| Champ | Type | Requis | Description |
|---|---|---|---|
version | number | Oui | Version du format JSON (1 actuellement) |
versionTemplate | number | Non | Version interne du template (incrémentée à chaque édition) |
id | string | Oui | Identifiant unique du template (alphanumérique, 9 caractères) |
locale | string | Oui | Locale BCP 47 : "fr", "en", "es", etc. |
name | string | Oui | Nom affiché du template |
description | string | Oui | Description synthétique du parcours |
sections | array | Oui | Liste ordonnée des sections du template |
sourceTemplateId | string | Non | ID du template d'origine si ce template est un fork |
sourceTemplateName | string | Non | Nom du template d'origine si ce template est un fork |
Une section représente une phase ou étape du parcours.
{
"id": "SECTION_ID",
"version": 1,
"title": "Titre de la section",
"subtitle": "Sous-titre optionnel",
"description": "Description détaillée de cette phase",
"tasks": [ ... ]
}
| Champ | Type | Requis | Description |
|---|---|---|---|
id | string | Oui | Identifiant unique dans le template |
version | number | Non | Version interne de la section |
title | string | Oui | Titre principal de la section |
subtitle | string | Non | Sous-titre ou accroche de la section |
description | string | Oui | Description du contenu ou des objectifs de la phase |
tasks | array | Oui | Liste ordonnée des tâches de la section |
Une tâche est une action concrète à accomplir.
{
"id": "TASK_ID",
"version": 1,
"text": "Description de l'action à réaliser",
"estimatedTime": 30,
"difficulty": "medium"
}
| Champ | Type | Requis | Description |
|---|---|---|---|
id | string | Oui | Identifiant unique dans le template |
version | number | Non | Version interne de la tâche |
text | string | Oui | Texte de la tâche (action à effectuer) |
estimatedTime | number (minutes) | Non | Durée estimée en minutes |
difficulty | "low" | "medium" | "high" | Non | Niveau de difficulté de la tâche |
Voici un exemple de template complet au format RtTemplate v1 :
{
"version": 1,
"versionTemplate": 1,
"id": "WEBPROJ001",
"locale": "fr",
"name": "Lancement d'un projet web",
"description": "Parcours complet pour lancer un projet web de A à Z",
"sections": [
{
"id": "PHASE_DISCOVERY",
"version": 1,
"title": "Découverte",
"subtitle": "Comprendre le besoin",
"description": "Cette phase permet de cadrer le projet et de valider les objectifs avec le client.",
"tasks": [
{
"id": "TASK_BRIEF",
"version": 1,
"text": "Rédiger le brief projet avec le client",
"estimatedTime": 60,
"difficulty": "low"
},
{
"id": "TASK_PERSONAS",
"version": 1,
"text": "Définir les personas utilisateurs",
"estimatedTime": 120,
"difficulty": "medium"
}
]
},
{
"id": "PHASE_DESIGN",
"version": 1,
"title": "Design",
"subtitle": "Concevoir l'expérience",
"description": "Création des maquettes et validation de l'interface avec les parties prenantes.",
"tasks": [
{
"id": "TASK_WIREFRAMES",
"version": 1,
"text": "Créer les wireframes des pages principales",
"estimatedTime": 240,
"difficulty": "medium"
},
{
"id": "TASK_VALIDATE_UI",
"version": 1,
"text": "Valider les maquettes avec le client",
"estimatedTime": 60,
"difficulty": "low"
}
]
},
{
"id": "PHASE_DEV",
"version": 1,
"title": "Développement",
"subtitle": "Construire la solution",
"description": "Phase de développement et d'intégration des fonctionnalités.",
"tasks": [
{
"id": "TASK_SETUP",
"version": 1,
"text": "Initialiser le projet et configurer l'environnement",
"estimatedTime": 90,
"difficulty": "low"
},
{
"id": "TASK_FEATURES",
"version": 1,
"text": "Développer les fonctionnalités principales",
"estimatedTime": 1440,
"difficulty": "high"
},
{
"id": "TASK_TESTS",
"version": 1,
"text": "Écrire et exécuter les tests",
"estimatedTime": 360,
"difficulty": "medium"
}
]
},
{
"id": "PHASE_LAUNCH",
"version": 1,
"title": "Livraison",
"subtitle": "Mettre en production",
"description": "Déploiement, recette finale et transfert au client.",
"tasks": [
{
"id": "TASK_DEPLOY",
"version": 1,
"text": "Déployer en production",
"estimatedTime": 120,
"difficulty": "high"
},
{
"id": "TASK_HANDOVER",
"version": 1,
"text": "Former le client et livrer la documentation",
"estimatedTime": 180,
"difficulty": "medium"
}
]
}
]
}
Pour qu'un template soit valide et importable dans Road To :
id doivent être uniques dans tout le fichier JSON (entre sections et entre tâches).locale doit être un code BCP 47 valide ("fr", "en", "es", "de", etc.).difficulty doit être exactement "low", "medium" ou "high" (ou omis).estimatedTime est en minutes (entier positif)..json encodé en UTF-8.