Cadrage — Projet intégrateur « DASES-Provider »¶
Nom de travail : SkillBridge Contexte : démonstration technique ciblée pour la candidature « Développeur confirmé : data, IA et logiciel » chez Prof en Poche (Pau) Version : v0 — document de cadrage initial Statut : cadrage validé — fondation en cours Équipe (trio) : Jeremy (décideur / validation) · Claude (stratégie, architecture, sparring) · Claude Code (implémentation) Méthode : cadrage avant code (BMAD), docs as code, déploiement souverain
1. Intention¶
Ce projet est une preuve de compétence destinée à court-circuiter le filtre CV (Bac+5 et 36 mois d'expérience affichés comme « indispensables ») en démontrant, par un livrable concret et fidèle à leur écosystème, la capacité à tenir le poste.
Le poste couvre trois domaines : intégration des outils du dataspace dans les produits, déploiement de services d'IA (clustering, recommandation), et développement de briques open-source. Le projet vise à toucher les trois en un seul fil rouge, en se positionnant exactement dans le rôle que Prof en Poche joue déjà au sein de Prometheus-X : celui de « Data & AI provider » du Data Space for Education & Skills (DASES), notamment sur le use case DAPO-X.
2. Le domaine métier (rappel)¶
Les traces d'apprentissage sont éparpillées dans des formats incompatibles (xAPI, SCORM, IMS Caliper, cmi5, propriétaires) et cloisonnées par organisation. Prometheus-X construit un dataspace décentralisé et human-centric (sous Gaia-X, conforme RGPD/AI Act) où la donnée circule de façon souveraine et consentie. Finalités débloquées : portabilité des données de l'apprenant, personnalisation, analytics de compétences, entraînement d'IA sur données mutualisées.
Ce projet matérialise une tranche verticale de cette vision : de la trace brute jusqu'à la recommandation personnalisée.
3. Objectifs¶
Objectifs de démonstration (mappés à l'offre)¶
| Domaine de l'offre | Ce que le projet démontre |
|---|---|
| Use case leader / intégration dataspace | Déploiement et connexion du PDC et du LRC ; simulation d'un PLRS |
| Data & AI provider | Service exposant un jeu de données via API + clustering + recommandation |
| Building block open-source | Service packagé, documenté, déployé comme brique réutilisable |
Objectifs personnels¶
- Démontrer Python en première ligne (l'indispensable de l'offre) et amorcer la montée en compétences AI Engineer.
- Combler le gap MongoDB en déployant le PDC réel.
- Produire un livrable réutilisable comme actif d'agence (MindAgency) au-delà de cette candidature.
4. Scénario fil rouge¶
Persona : « Léa », élève utilisant une application de maths façon Mathia.
- Léa réalise des exercices ; l'appli génère des traces brutes (exercice tenté, réussi/échoué, temps passé).
- Les traces sont normalisées au format xAPI (profil DASES) par le LRC.
- Elles sont déposées dans son PLRS (coffre de données personnel — simulé au niveau 1).
- Léa consent à partager ses données (anonymisées) avec un service ; l'échange transite par le PDC.
- Le Service Data & IA ingère ces traces, les enrichit avec des compétences du référentiel ESCO/ROME, regroupe les ressources par compétence (clustering) et recommande les prochaines ressources adaptées.
- Les recommandations sont renvoyées et affichées.
5. Périmètre par niveaux d'ambition¶
Le niveau 1 est le livrable garanti. On pousse vers le niveau 2 si le temps le permet. Le niveau 3 est hors scope POC (à évoquer en entretien comme « la suite »).
| Élément | Niveau 1 (socle) | Niveau 2 (visé) | Niveau 3 (hors scope) |
|---|---|---|---|
| LRC (conversion xAPI) | Déployé et utilisé en réel | idem | idem |
| Service Data & IA | Construit (enrichissement + reco + clustering) | idem + affiné | idem |
| PDC (connecteur) | Déployé et présenté, échange simulé | Échange réel entre 2 connecteurs, catalogue + contrat minimal | Catalogue + Contract + Consent complets |
| PLRS | Simulé (stockage simple) | Simulé enrichi | Intégration réelle (Cozy Cloud) |
| Front de démo | Minimal | Minimal soigné | — |
6. Architecture cible¶
Réutilisation maximale des briques réelles, construction de la pièce manquante.
- Réutilisé (open-source Prometheus-X) :
dataspace-connector(PDC) — TypeScript, MongoDB, Docker, licence MIT. Dépend de composants centraux (Catalogue, Contract, Consent) pour un échange complet.learning-records-converter(LRC) — Python/FastAPI, Docker, licence GPL-3.0. Endpoints/convert,/validate.- Construit par nous — le Service Data & IA :
- Ingestion de traces xAPI → enrichissement compétences (ESCO/ROME) via embeddings → clustering → recommandation.
- Exposition via API (FastAPI) compatible avec une logique de « data/AI provider ».
- Flux : Application éducative → LRC (xAPI) → PLRS → PDC (échange consenti) → Service Data & IA → recommandations.
7. Stack technique (fidèle à eux + indispensables de l'offre)¶
- Service IA : Python 3.12, FastAPI,
sentence-transformers(embeddings, modèle multilingue local),scikit-learn(clustering), modèle sérialisé enpickle/joblib. - Briques réutilisées : Node.js / TypeScript + MongoDB (PDC) ; Python / FastAPI (LRC).
- Données & formats : xAPI (profils DASES), référentiel ESCO/ROME.
- Infra : Docker / Docker Compose, déploiement Coolify sur VPS Hetzner (souverain).
- Front de démo : Streamlit (rapide, tout-Python, cohérent avec le syllabus AI Engineer) — option : petit front Angular/Ionic en bonus pour coller à leur stack front, non prioritaire.
- Qualité : tests (pytest), CI/CD, documentation versionnée + ADRs.
8. Sources de données¶
- Traces d'apprentissage : jeu de données xAPI synthétique généré (scénario maths primaire façon Mathia), couvrant des activités variées (exercices, réussites, échecs, temps).
- Référentiel de compétences : ESCO (référentiel européen, open data) et/ou ROME (France Travail) pour aligner le vocabulaire « skills » de Prometheus-X.
- Catalogue de ressources : petit corpus de ressources éducatives à recommander (titre, niveau, compétences associées).
9. Livrables¶
- Repo Git propre (monorepo ou multi-repo à trancher), README clair.
- Service Data & IA déployé avec API documentée (Swagger).
- PDC et LRC déployés (selon niveau atteint).
- Front de démo accessible en ligne.
- Documentation déployée façon AlpiMonitor : objectifs, architecture (C4), ADRs, guide de démarrage.
- Un court écrit « ce que ça démontre » utilisable en entretien.
10. Risques & points d'attention¶
| Risque | Impact | Mitigation |
|---|---|---|
| Dépendances du PDC (Catalogue/Contract/Consent) | Échange réel complexe à monter | Échange simulé au niveau 1 ; minimal au niveau 2 |
| LRC « work in progress » (18 commits, pas de release) | Débogage possible | Tester tôt ; fallback : s'inspirer du format de sortie sans dépendre du service |
| Licence GPL-3.0 du LRC vs MIT du PDC | Contrainte si produit commercial | OK pour un POC ; à tracer dans un ADR si réutilisation produit |
| Gap data/ML personnel (Python data récent) | Courbe d'apprentissage | Rester sur de l'IA appliquée (embeddings + clustering), pas de deep learning lourd |
| Effet tunnel / scope creep | Retard | Niveau 1 livrable d'abord, jalons courts |
11. Découpage en lots (jalons)¶
- Lot 0 — Spike de faisabilité. ✅ (fait) PDC et LRC validés comme déployables.
- Lot 1 — Données & enrichissement. Générer le jeu xAPI synthétique ; intégrer ESCO/ROME ; enrichissement des traces par compétences.
- Lot 2 — Service IA. Embeddings + clustering + recommandation ; API FastAPI ; tests.
- Lot 3 — Interopérabilité. Déployer le LRC réel ; brancher la conversion en amont du service.
- Lot 4 — Dataspace. Déployer le PDC ; échange simulé (niveau 1) puis réel (niveau 2).
- Lot 5 — Démo & doc. Front de démo ; documentation déployée ; déploiement final Coolify/Hetzner.
12. Critères de réussite (Definition of Done)¶
- Le fil rouge fonctionne de bout en bout (au moins au niveau 1) et est déployé en ligne.
- L'API du Service Data & IA est documentée et testée.
- La documentation explique clairement le « pourquoi » métier et l'architecture.
- Le projet est présentable en 5 minutes en entretien, avec un lien live.
13. Décisions tranchées¶
- [x] Nom définitif du projet : SkillBridge (repo
skill-bridge) - [x] Délai cible : niveau 1 visé en ~2 semaines (sprint cadré, façon AlpiMonitor)
- [x] Modèle d'embeddings :
sentence-transformersmultilingue, exécution locale - [x] Référentiel de compétences : ESCO (primaire) ; mapping ROME en secondaire, plus tard
- [x] Front de démo : Streamlit (seul, niveau 1) ; bonus Angular/Ionic non prioritaire
- [x] Organisation du code : repo unique pour notre code ; PDC et LRC intégrés via Docker (non copiés dans le repo)
- [x] Niveau d'ambition : niveau 1 garanti d'abord, niveau 2 visé en bonus
Stack Python actée : Python 3.12 · uv (gestion d'env et de deps) · ruff (lint/format) · pytest (tests).
Document de cadrage v0 — à affiner en trio avant le démarrage du Lot 1.