ISNAD · Pilotage

Planning

Vue du planning versionné d'ISNAD. La roadmap reste la source de vérité principale (EPIC, Sprint, ordre d'exécution, statut du programme). Spec Kit détaille le sprint/feature sélectionné, sans la remplacer.

Source de vérité principaleplanning/epics/scientific-knowledge-layer-roadmap.md· Version v1.60· Mise à jour 2026-10-04

1. Finalité de la plateforme

À quoi sert ISNAD

ISNAD est une bibliothèque scientifique des narrateurs et des chaînes de transmission du hadith. Elle permet de retrouver un hadith, de lire le texte arabe documentaire tel qu’il est conservé, de voir sa chaîne de transmission, d’identifier les narrateurs et de consulter les sources qui parlent d’eux.

La plateforme sépare toujours ce qui est documenté (texte, chaîne, source), ce qui est proposé (candidats, rapprochements) et ce qui est décidé par une revue humaine. Un résultat retrouvé n’est pas un hadith authentifié ; une suspicion n’est pas une erreur établie.

Principes non négociables
  • Aucun verdict d’authenticité automatique.
  • Chaque affirmation renvoie à une source ou à un passage.
  • Le texte arabe documentaire n’est jamais réécrit.
  • La traduction française est dérivée, versionnée et révisable.

2. Parcours et grands modules

Vérifier une tradition

Disponible

Saisir une question ou une citation, en arabe ou en français, et retrouver les passages du corpus correspondants.

Corpus et hadiths

Disponible

Parcourir les recueils, les livres, les chapitres et lire chaque hadith avec sa chaîne, ses commentaires et ses panneaux scientifiques.

Sciences des hommes (narrateurs)

Disponible

Rechercher un narrateur, voir ses maîtres, ses élèves, ses appellations et les sources biographiques disponibles.

Analyse d’une chaîne

Disponible

Coller un isnād et obtenir sa lecture structurée : narrateurs, termes de transmission, continuité documentée.

Labs

Partiel

Explorer les graphes de narrateurs, l’état de l’intégration OpenITI et les outils expérimentaux.

Contrôle humain (administration)

Partiel

Réviser les traductions, qualifier les anomalies et examiner les cas ouverts par les équipes scientifiques.

Synthèse scientifique sourcée

Prévu

Une réponse lisible qui précède les résultats, appuyée sur les dossiers et les passages réellement disponibles.

3. État actuel et prochaine étape

Le planning a été réconcilié le 2026-09-24 : un seul backlog, chaque problème ouvert a un propriétaire. Fait le 2026-09-24 : une session vocale n’est plus ouverte quand sa limite partagée ne peut pas être vérifiée (E16). Fait le 2026-09-26 : les travaux en cours (promotion des biographies, saisie vocale) ont été sauvegardés sans être intégrés, et une base propre est prête pour la prochaine étape. Prochaine étape : intégrer, désactivé par défaut, l’atelier privé de traduction des ouvrages déjà livré (E14). Ensuite : terminer le tri côté serveur et la certification mobile de l’administration (E11), reprendre la saisie vocale (E15), puis le contrôle humain, la qualité des candidats, les prémisses, les dossiers et la synthèse sourcée.

Répartition des epics :Certifié4Partiel10Déployé, non certifié2État vérifié le 2026-09-26
Comment lire les états
CertifiéClos par un rapport de certification écrit.
PartielEn production et certifié en partie ; des critères restent ouverts.
Déployé, non certifiéEn production, sans rapport de certification.
ImplémentéLe code existe, sans être en production.
BloquéAttend une action extérieure au projet.
PrévuRien n’est encore construit.

4. Détail des epics

Acquisition des sources

Certifié
Objectif pour l’utilisateur
Faire entrer des recueils de hadith de sources différentes sans rien perdre de leur origine.
Fonction rendue possible
Importer un texte, le rattacher à son édition et à son jeu de données, et le relire de façon reproductible.
Principales données
Sources, éditions, jeux de données, hadiths, chaînes.
État actuel
Clos par un rapport de sortie (2026-09-08) ; une source indépendante a validé la neutralité du pipeline.
Reste à faire
Le gate plateforme STAB-01 attend trois actions externes du fournisseur d’hébergement de la base.
Critère de clôture
12 critères de sortie validés.
Références techniques

E1 · Dépend de : aucune · E1 · S1.6 · STAB-01

Modèles scientifiques canoniques

Certifié
Objectif pour l’utilisateur
Donner à chaque famille de connaissances (hadith, rijāl, commentaire, Coran, terminologie) sa propre structure.
Fonction rendue possible
Représenter un hadith, une notice biographique, un passage de commentaire ou un terme sans les confondre.
Principales données
Cinq familles de modèles, chacune avec sa racine propre.
État actuel
Clos (2026-09-08), 15 critères sur 15.
Reste à faire
Rien de bloquant.
Critère de clôture
Sortie E2 validée.
Références techniques

E2 · Dépend de : E1 · E2

Provenance et preuves

Certifié
Objectif pour l’utilisateur
Pouvoir dire d’où vient chaque information et la vérifier.
Fonction rendue possible
Citer un passage de façon reproductible, contrôler la citation mot pour mot, suivre le cycle de vie d’un témoin.
Principales données
Témoins documentaires, liens de source, empreintes de contrôle, journaux de cycle de vie.
État actuel
Clos (2026-09-09). Aucune note de confiance ni verdict d’authenticité à ce niveau.
Reste à faire
Rien de bloquant.
Critère de clôture
Sortie finale validée.
Références techniques

E3 · Dépend de : E2 · E3

Identité des narrateurs

Partiel
Objectif pour l’utilisateur
Savoir quel narrateur précis se cache derrière un nom cité dans une chaîne.
Fonction rendue possible
Proposer des candidats, les départager par des preuves positives et négatives, et n’enregistrer une identité que lorsqu’elle est établie.
Principales données
Registre canonique des narrateurs, mentions, appellations, chaînes, sources rijāl.
État actuel
Fondation technique close le 2026-09-12 : 70 identités sur 786 éligibles ont été enregistrées, sans résolution en masse. La couverture scientifique reste partielle : toutes les chaînes de Bukhārī et de Muslim ne sont pas encore résolues.
Reste à faire
Vérifier les prémisses et trancher les arbitrages ouverts (mentions courtes, parent « son père », enregistrement étendu) avant de les utiliser dans le raisonnement.
Critère de clôture
Prémisses vérifiées et arbitrages décidés ; extension par décision produit.
Références techniques

E4 · Dépend de : E3 · E4 · E4-S02 · S4.6

Traditions et variantes

Partiel
Objectif pour l’utilisateur
Rapprocher les versions d’un même hadith sans conclure trop vite.
Fonction rendue possible
Proposer des candidats de tradition et de variante avec leurs preuves ; un candidat n’est pas une confirmation et plusieurs voies ne valent pas plusieurs corroborations indépendantes.
Principales données
Hadiths, chaînes, signaux du texte et des Compagnons, décisions de revue.
État actuel
Chaîne de traitement, persistance, lecture et panneau déployés ; aucune tradition confirmée pour l’instant.
Reste à faire
Contrôler la qualité des rapprochements sur un échantillon représentatif avant toute confirmation.
Critère de clôture
Pilote représentatif revu par des humains.
Références techniques

E5 · Dépend de : E3, E4 · E5

Thèmes et terminologie

Partiel
Objectif pour l’utilisateur
Rattacher un hadith à des thèmes sans confondre un mot présent et un thème établi.
Fonction rendue possible
Extraire des candidats thématiques à partir du texte, avec leur portée lexicale et leur contexte.
Principales données
Thèmes, termes, liens terme-thème, assertions candidates.
État actuel
Fondation déployée avec un petit pilote : uniquement des candidats, aucun thème confirmé.
Reste à faire
Évaluer les limites lexicales sur un pilote gelé avant d’élargir.
Critère de clôture
Pilote revu et règles versionnées.
Références techniques

E6 · Dépend de : E5 · E6

Confiance et conflits

Partiel
Objectif pour l’utilisateur
Distinguer une vraie contradiction d’une différence de portée ou d’un manque de données.
Fonction rendue possible
Enregistrer un conflit scientifique avec son objet exact et calculer une confiance explicable.
Principales données
Sujets scientifiques, conflits, évaluations de confiance.
État actuel
Fondation déployée ; aucun conflit enregistré en production à ce jour.
Reste à faire
Vérifier la justesse des règles avant d’ouvrir des cas en nombre.
Critère de clôture
Règles validées sur un pilote défini à l’avance.
Références techniques

E7 · Dépend de : E5, E6 · E7

Raisonnement scientifique

Partiel
Objectif pour l’utilisateur
Poser des conclusions explicites à partir de prémisses documentées.
Fonction rendue possible
Évaluer une question précise avec l’un des états : soutenu, non soutenu, contredit, non résolu.
Principales données
Cas de raisonnement, règles versionnées, prémisses issues d’E4 à E7.
État actuel
Moteur déployé ; 7 cas calculés à titre provisoire.
Reste à faire
Contrôler les prémisses en amont avant de produire davantage de raisonnements.
Critère de clôture
Prémisses vérifiées et pilote revu.
Références techniques

E8 · Dépend de : E4, E7 · E8

Dossier scientifique

Partiel
Objectif pour l’utilisateur
Rassembler, pour un hadith, tout ce qui est établi, discuté ou manquant.
Fonction rendue possible
Produire un dossier sourcé dont la conclusion peut légitimement rester « non résolu ».
Principales données
Dossiers versionnés, conclusions, liens vers les preuves.
État actuel
Contrat de dossier déployé ; 5 dossiers, tous non résolus faute de prémisses.
Reste à faire
Alimenter les prémisses (E4 à E8), puis afficher la synthèse sourcée avant les résultats.
Critère de clôture
Dossiers alimentés et revus.
Références techniques

E9 · Dépend de : E8 · E9

Architecture et expérience

Partiel
Objectif pour l’utilisateur
Rendre l’application fiable, lisible et maintenable.
Fonction rendue possible
Les pages publiques et l’administration lisent leurs données par des contrats serveur ; le navigateur ne parle plus à la base pour le métier.
Principales données
Pages, services serveur, adaptateurs de base, garde d’architecture.
État actuel
Pages publiques certifiées (S02) ; administration migrée, matrice authentifiée de bureau complète, mobile authentifié non certifié (S03) ; pages 404 localisées (S08) ; routes publiques des Labs et du formulaire de retours passées par les services serveur, sans exception restante dans le garde (S09 et reliquat) ; textes longs non coupés sur mobile (S10) ; pagination stable de l’explorateur de base et tri serveur des listes d’import et d’anomalies OpenITI (S04).
Reste à faire
Certification administrateur sur mobile sur un appareil tactile réel ou émulé (les corrections sont vérifiées à 390 px, ce qui ne vaut pas une certification tactile) ; tri serveur des files plafonnées par une procédure de base et de l’explorateur de résolution (évolution de procédures lourdes, migration à appliquer) ; modules serveur qui interrogent encore la base sans adaptateur (ingestion OpenITI, explorateur de base, commentaires) ; avertissements de rendu à examiner.
Critère de clôture
Toutes les stories E11 certifiées.
Références techniques

E11 · Dépend de : aucune · E11-S02 · E11-S03 · E11-S04 · E11-S11 · E11-S12

Identité documentaire des rijāl

Certifié
Objectif pour l’utilisateur
Relier les notices biographiques des ouvrages de rijāl aux narrateurs sans confondre source et identité.
Fonction rendue possible
Lire les notices, en extraire des attributs sourcés, et les proposer au registre sans écrire à sa place.
Principales données
Notices Taqrīb, Tahdhīb, Lisān et Taʿjīl ; attributs documentaires.
État actuel
Fondation certifiée ; les extensions passent par des propositions revues.
Reste à faire
Promotion des biographies vers le registre : décision séparée.
Critère de clôture
Certification de fondation obtenue.
Références techniques

E12 · Dépend de : E4 · E12

Traduction documentaire

Partiel
Objectif pour l’utilisateur
Offrir une traduction française fiable des notices arabes, toujours révisable.
Fonction rendue possible
Traduire avec un moteur générique, marquer les traductions périmées, revoir et corriger avec historique.
Principales données
Notices sources, traductions versionnées, hachage du texte source, anomalies, exécutions.
État actuel
Moteur et cockpit de revue déployés ; aucun déploiement massif ; la revue humaine reste à faire. Un atelier privé des ouvrages, livré séparément, a été reçu et contrôlé ; il n’est pas encore intégré.
Reste à faire
Intégrer l’atelier privé désactivé par défaut (tout chargement ou publication reste une décision séparée), puis achèvement technique (reprise des exécutions, coûts, transitions) et revue humaine. Ce sont des clôtures distinctes.
Critère de clôture
Certification technique puis revue humaine.
Références techniques

E14 · Dépend de : E12 · E13 · E14 · E14-T4B · E14-S07

Passerelle de recherche scientifique

Partiel
Objectif pour l’utilisateur
Comprendre une question libre et retrouver les bons passages.
Fonction rendue possible
Normaliser la question, la reformuler en arabe documentaire, chercher dans le corpus et indiquer honnêtement les résultats partiels.
Principales données
Questions, interprétations versionnées, index lexicaux, quotas.
État actuel
En production ; plusieurs critères restent ouverts (délais, réponses partielles, fraîcheur, coûts).
Reste à faire
Fraîcheur des projections, délais, réponses partielles, coûts mesurés ; reprise de la saisie vocale d’une question, commencée et sauvegardée le 2026-09-26, mais pas encore livrée.
Critère de clôture
Critères E15 restants validés.
Références techniques

E15 · Dépend de : E11 · E15 · E15-S06 · E15-S13

Epics Contrôle

Partiel
Objectif pour l’utilisateur
Faire examiner par des humains les cas réellement ouverts, epic par epic.
Fonction rendue possible
Voir un cas, ses preuves et son historique, laisser ouvert ou décider avec justification.
Principales données
Cas candidats, décisions, justification, version.
État actuel
Cockpit en lecture et décision déployé ; aucune décision simulée.
Reste à faire
Types de cas, options de décision par métier, protection contre les décisions concurrentes.
Critère de clôture
Toutes les stories ECT validées.
Références techniques

ECT · Dépend de : E11 · ECT · ECT-S02 · ECT-S03 · ECT-S04

Cybersécurité

Déployé, non certifié
Objectif pour l’utilisateur
Réduire les risques d’accès non autorisé, de fuite et d’abus.
Fonction rendue possible
Inventaire de l’exposition, contrôle des droits, secrets, entrées et limites de ressources, avec preuves.
Principales données
Points d’entrée, droits de la base, configuration de déploiement.
État actuel
En cours. Livré : inventaire de l’exposition, premières corrections (formulaire public de retours, droits d’écriture excessifs, en-têtes de réponse) ; socle applicatif à jour et corrigé ; outils de développement corrigés ; contrôle de code automatique en intégration continue ; décisions de revue administrative testées de bout en bout, refus et conflits distingués des pannes, effet d’une approbation annoncé avant la décision ; définitions administratives de la base versionnées et vérifiées, droits de maintenance inutiles retirés, limites de consommation partagées entre toutes les instances et vérifiées en production ; une session vocale est refusée tant que sa limite partagée ne peut pas être vérifiée. Aucune certification de cybersécurité.
Reste à faire
Politique de conservation des données après décision, politique de sécurité du contenu et autres protections inventoriées.
Critère de clôture
Risques critiques et élevés corrigés et vérifiés.
Références techniques

E16 · Dépend de : E11 · E16 · E16-S08 · E16-S09 · E16-S10

Synthèse scientifique sourcée

Déployé, non certifié
Objectif pour l’utilisateur
Répondre d’abord en clair, puis montrer les résultats et le détail scientifique.
Fonction rendue possible
Restitution déterministe fondée sur les dossiers réellement disponibles, sans affirmer au-delà des preuves.
Principales données
Dossiers, passages, commentaires réellement ingérés.
État actuel
Première restitution livrée : une synthèse de la recherche s’affiche avant les résultats (documents retrouvés, recueils, premier document avec lien vers le passage, limites) ; elle n’affirme ni authenticité ni attribution.
Reste à faire
Intégrer les dossiers scientifiques et les évaluations sourcées de chaque document, puis tester les cas complets, non résolus et divergents.
Critère de clôture
Synthèse affichée avant les résultats, sourcée.
Références techniques

SYN · Dépend de : E9 · SYN-S01 · SYN-S02 · E9

Diagramme fonctionnel de l’application

Trois lectures complémentaires. Chaque diagramme est accompagné de sa lecture textuelle ; les étapes en pointillé sont prévues mais pas encore disponibles.

1. Parcours de vérification d’une question

Ce que vit l’utilisateur, de la question à la restitution. Les étapes en pointillé ne sont pas encore disponibles.

Le diagramme peut se faire défiler horizontalement sur petit écran.

Lecture textuelle
  1. Saisie de la question — En arabe ou en français, texte libre ou référence.
  2. Compréhension et normalisation — La question est normalisée et, si besoin, reformulée en arabe documentaire ; l’interprétation est conservée avec sa version.
  3. Recherche dans le corpus — Recherche lexicale sur les textes documentaires ; une recherche partielle ou en échec est signalée comme telle, jamais comme « aucun résultat ».
  4. Passages et sources — Ouverture du hadith au passage trouvé ; le lien distingue le contexte des mots qui correspondent.
  5. Chaîne et narrateurs — Lecture de l’isnād et des narrateurs identifiés.
  6. Rapprochements, thèmes, divergences — Candidats de traditions, thèmes et conflits, présentés comme candidats tant qu’ils ne sont pas revus.
  7. Raisonnement et dossier — Conclusion documentée parmi : soutenu, non soutenu, contredit, non résolu.
  8. Synthèse sourcée (prévu)prévu — Réponse lisible affichée avant les résultats ; non disponible aujourd’hui.
  9. Contrôle humain et révision — Les propositions sont revues et décidées par des personnes, avec justification et historique.

2. Production et contrôle des connaissances

Comment une information entre dans la plateforme et devient une connaissance contrôlée.

Le diagramme peut se faire défiler horizontalement sur petit écran.

Lecture textuelle
  1. Source et édition — Ouvrage, édition et jeu de données d’origine.
  2. Texte documentaire — Le texte arabe est conservé tel quel, avec empreinte de contrôle.
  3. Chaîne et mentions — Décomposition de l’isnād en mentions de narrateurs.
  4. Candidats et preuves — Candidats classés par preuves positives et négatives ; jamais par simple ressemblance de nom.
  5. Décision de revue — Une personne confirme, rejette ou laisse ouvert ; auteur, date, justification et version sont conservés.
  6. Registre canonique — Seules les identités établies y sont inscrites.
  7. Assertions et divergences — Évaluations documentées, conflits et niveaux de confiance explicables.
  8. Raisonnement et dossier — Dossier versionné, éventuellement « non résolu ».
  9. Traduction française (branche) — Dérivée du texte source, versionnée, marquée périmée si la source change, révisée par un humain.

3. Rôle des modules et circulation des données

Les couches de l’application : chacune a un rôle et une seule direction de dépendance.

Le diagramme peut se faire défiler horizontalement sur petit écran.

Lecture textuelle
  1. Navigateur — Affichage et interactions ; ne parle jamais directement à la base pour le métier (seulement l’authentification).
  2. Pages et routes (app) — Paramètres d’URL, orchestration légère, pages introuvables et erreurs.
  3. Services et modèles de lecture (server) — Validation, autorisation, règles d’assemblage.
  4. Adaptateurs (infrastructure) — Seul endroit qui interroge la base et les fournisseurs.
  5. Base de données — Tables documentaires et scientifiques, droits et politiques de lecture.
  6. Règles pures (domain) — Règles scientifiques sans accès aux données.
  7. Fournisseur d’IA (interprétation de la question) — Utilisé uniquement pour reformuler la question ; jamais pour décider d’un fait scientifique.
  8. Administration — Passe par des points d’entrée serveur protégés (session vérifiée, droit administrateur).
15
EPICs
56
Sprints
38
Sprints terminés
6
Sprints en cours
24 / 26
Tasks roadmap
1
Features Spec Kit
99 / 99
Implémentation Spec Kit

Détail technique de la roadmap (source de vérité des sprints)

E1B0 Multi-Type Acquisition Foundation — PASS / CLOSED (2026-09-08) (12/12 critères E1-C, cf. § Sortie E1)Clos (roadmap)6 / 6

Description : Acquisition via adapters (ACL) → contrats neutres → projection canonique par famille → persistance transactionnelle idempotente. Vertical slice HADITH d'abord.

S1.1Auditer et stabiliser les contratsClos (roadmap)
3 / 3

Description : Auditer et stabiliser les contrats

  • ☑T1.1.1

    Description : Lire et indexer tous les types de src/domain/knowledge-acquisition/

  • ☑T1.1.2

    Description : Gaps entre contrats et BukhariAdapter existant

  • ☑T1.1.3

    Description : Valider CorpusProvenance contre data_sources/datasets/import_batches

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S1.2Persistence Mapping DecisionClos (roadmap)
5 / 5

Description : Persistence Mapping Decision

  • ☑T1.2.1

    Description : Cartographier CorpusDocument par kind

  • ☑T1.2.2

    Description : Cartographier CorpusChain / CorpusNode

  • ☑T1.2.3

    Description : Cartographier CorpusCommentary

  • ☑T1.2.4

    Description : Cartographier CorpusEdition / CorpusProvenance / CorpusImportResult

  • ☑T1.2.5

    Description : Validation humaine

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S1.3Persistence Implementation (KM V1)Clos (roadmap)
5 / 5

Description : Persistence Implementation (KM V1)

  • ☑T1.3.1

    Description : public.source_editions

  • ☑T1.3.2

    Description : public.knowledge_sources

  • ☑T1.3.3

    Description : public.knowledge_entries

  • ☑T1.3.4

    Description : Golden test SQL d'une notice rijāl

  • ☑T1.3.5

    Description : Test local PGlite (DDL + golden)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S1.4Hadith Canonical ProjectionClos (roadmap)
7 / 7

Description : définir et implémenter la projection pure du chemin HADITH (CorpusDocument(HADITH) + CorpusChain + CorpusNode → HadithAggregate), générique et corpus-agnostique, sans SQL, sans résolution de narrateur. Aucune migration exécutée en S1.4 ; S1.4 produit les spécifications SQL pour S1.5

  • ☑T1.4.1

    Description : Fidelity Matrix + décisions bloquantes — auditer CorpusDocument(HADITH) / CorpusChain / CorpusNode vers HadithAggregate.

  • ☑T1.4.2

    Description : Décisions d'architecture consignées dans la même matrice : identité stable vs contentHash ; d'abord vérifier si document.id / chain.id suffisent comme clés stables avant d'introduire un nouveau concept ; convention position 0-based (contrat) ↔ 1-based (hadith_chain_nodes.position >= 1) ; co-narration (CorpusNode.mentionsRaw[] vs mention_ar singulier + unique (chain_id, position)) ; taḥwīl (sharedT

  • ☑T1.4.3

    Description : Modèle minimal : HadithAcquisitionBundle, HadithAggregate, ProjectionResult / ProjectionIssue dans src/domain/knowledge-acquisition/. Aucun ID SQL. Ne pas dupliquer les nodes si CorpusChain les porte déjà. Pas de commentaires dans le bundle si le chemin HADITH n'en a pas besoin.

  • ☑T1.4.4

    Description : Projection pure : projectHadithBundle() (ou équivalent minimal) dans src/infrastructure/knowledge-acquisition/. Pure, corpus-agnostique, sans SQL / Supabase / pg / filesystem / résolution de narrateur. Pas de registry, pas de framework.

  • ☑T1.4.5

    Description : Guardrail architectural exécutable : test CI qui échoue si src/domain/knowledge-acquisition/ ou un Projector importe @supabase/*, @/lib/supabaseClient, pg, node:fs.

  • ☑T1.4.6

    Description : Persistence Contract Specification (contrat uniquement, aucune implémentation) : port HadithAggregateWriter.

  • ☑T1.4.7

    Description : Documentation d'architecture du chemin HADITH.

Cycle Spec Kit — 001-hadith-canonical-projectionEn cours
Specspec.mdPlanplan.mdTasks99 tâches définiesContrôleaucun rapport analyzeImplémentation99 / 99 tâches
Détail — specs/001-hadith-canonical-projection

Objectif : planning/SCIENTIFIC_KNOWLEDGE_LAYER_ROADMAP.md reste l'autorité sur l'ordre des EPIC/Sprints ;

Specspec.mdPlanplan.mdTasks99 tâches définiesContrôleaucun rapport analyzeImplémentation99 / 99 tâches
Checklist qualité de la spec (avant plan)
  • ☑No implementation details (languages, frameworks, APIs)
  • ☑Focused on user value and business needs
  • ☑Written for non-technical stakeholders
  • ☑All mandatory sections completed
  • ☑No [NEEDS CLARIFICATION] markers remain
  • ☑Requirements are testable and unambiguous
  • ☑Success criteria are measurable
  • ☑Success criteria are technology-agnostic (no implementation details)
  • ☑All acceptance scenarios are defined
  • ☑Edge cases are identified
  • ☑Scope is clearly bounded
  • ☑Dependencies and assumptions identified
  • ☑All functional requirements have clear acceptance criteria
  • ☑User scenarios cover primary flows
  • ☑Feature meets measurable outcomes defined in Success Criteria
  • ☑No implementation details leak into specification

Fichiers détectés: spec.md, plan.md, tasks.md, checklists/requirements.md

S1.5Hadith Persistence & Orchestration — CLOSED sur son périmètre E1 : T1.5.1–T1.5.4 ✅ (T1.5.4 code/architecture validés ; production reste SUSPENDUE par STAB-01 — sujet plateforme, hors preuves E1) ; T1.5.5/T1.5.6 SUPERSEDED par la preuve S1.6 (2ᵉ source réelle + VRAI writer + primitives résilience), cf. § Sortie E1Clos (roadmap)
4 / 6

Description : exécuter les décisions SQL de S1.4, implémenter la persistance réelle du chemin HADITH, brancher l'orchestrateur, et prouver le pipeline de bout en bout

  • ☑T1.5.1

    Description : Migrations SQL issues des décisions S1.4 (co-narration / taḥwīl / suspended-elided / clé d'idempotence / colonnes de hash, selon b0-hadith-fidelity-matrix.md). Additives, append-only.

  • ☑T1.5.2

    Description : Implémentation SupabaseHadithAggregateWriter du port HadithAggregateWriter.

  • ☑T1.5.3

    Description : Orchestrateur d'acquisition HADITH : DefaultKnowledgeAcquisitionEngine (implémente KnowledgeAcquisitionEngine, existant, inchangé) — read → project → persist, limit/failFast/mode/editionId, corpus par corpus, isolés.

  • ☑T1.5.4

    Description : Observabilité du run d'acquisition via public.import_batches (existant) + résolution (corpusId, editionId) → dataset_id + provenance canonique hadiths.dataset_id/import_batch_id. processing_runs explicitement non câblé (non nécessaire — décision T1.5.4 Final Gate).

  • ☐T1.5.5

    Description : E2E interne : Bukhārī legacy → engine → tables canoniques (round-trip contrôlé).

  • ☐T1.5.6

    Description : Primitives HADITH de retrait et reconstruction nécessaires à la preuve ADR-0003, sans agent ni généralisation multi-type.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S1.6Independent Source Proof — PASS / CLOSED (2026-09-08) · T1.6.1–T1.6.5 ✅Clos (roadmap)

Description : prouver que le pipeline d'acquisition HADITH fonctionne sur une

  • ·T1.6.1 ✅

    Description : Choisir une source d'entrée réelle hors hadiths/hadith_chains/hadith_chain_nodes.

  • ·T1.6.2 ✅

    Description : Adapter minimal pour cette source (ACL), réutilisant les contrats existants.

  • ·T1.6.3 ✅

    Description : Run complet read → adapt → project → persist sur une tranche réelle (≥ 40 ḥadīths).

  • ·T1.6.4 ✅

    Description : Independent Source Resilience Proof — ADR-0003 : utiliser la même source indépendante pour éprouver identité, mention, retrait logique et reconstruction.

  • ·T1.6.5 ✅

    Description : Bilan E1.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E2Canonical Scientific Models — PASS / CLOSED (2026-09-08) · E2 FINAL EXIT GATE : 15 / 15 critères E2-C PASS (spec §10) · 5 sprints S2.1–S2.5 fermés · 5 familles scientifiques, chacune sa racine → NO UNIVERSAL SCIENTIFIC ROOT · ScientificAssertion<T> = direction d'interface de domaine approuvée (RIJĀL/COMMENTARY/TERMINOLOGY ; jamais table physique ; 0 implémentation E2) · E2-F1 (terminology fixture witness) = ACCEPTED / NON-BLOCKING / transfert E3 · 6 migrations E2 additives en prod, drift = 0, 0 donnée scientifique E2 en production · spéc planning/epics/e2-canonical-scientific-models-spec.mdClos (roadmap)5 / 5

Description : Modèles canoniques spécialisés par famille : hadith durci, rijāl, commentary, Quran, terminology.

S2.2RIJĀL vertical slice — PASS / CLOSED (2026-09-08) · T2.2.1–T2.2.8, 15/15 critères · 3 migrations additives en prod (drift = 0) · adapter Taqrīb + projector pur + PostgresRijalKnowledgeWriter + 3 vues de projection · E2E 41/38/38, 0 Narrator, 0 promotion · 0 donnée RIJĀL en prodClos (roadmap)

Description : RIJĀL vertical slice — PASS / CLOSED (2026-09-08) · T2.2.1–T2.2.8, 15/15 critères · 3 migrations additives en prod (drift = 0) · adapter Taqrīb + projector pur + PostgresRijalKnowledgeWriter + 3 vues de projection · E2E 41/38/38, 0 Narrator, 0 promotion · 0 donnée RIJĀL en prod

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S2.1HADITH model hardening — PASS / CLOSED (2026-09-08) · 0 migration, 10/10 critères S2.1-C, findings S1.6-F1/F2 PRESERVED, tradition identity → E5 · planning/reports/e2-s2.1-hadith-model-hardening.mdClos (roadmap)

Description : HADITH model hardening — PASS / CLOSED (2026-09-08) · 0 migration, 10/10 critères S2.1-C, findings S1.6-F1/F2 PRESERVED, tradition identity → E5 · planning/reports/e2-s2.1-hadith-model-hardening.md

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S2.3COMMENTARY vertical slice — PASS / CLOSED (2026-09-08) · T2.3.1–T2.3.8, 15/15 · 1 migration additive 20260908100000 en prod (drift = 0) · Fatḥ al-Bārī 17 passages, E2E 17/14/14, 0 verdict d'authenticité · planning/reports/e2-s2.3-commentary-vertical-slice.mdClos (roadmap)

Description : COMMENTARY vertical slice — PASS / CLOSED (2026-09-08) · T2.3.1–T2.3.8, 15/15 · 1 migration additive 20260908100000 en prod (drift = 0) · Fatḥ al-Bārī 17 passages, E2E 17/14/14, 0 verdict d'authenticité · planning/reports/e2-s2.3-commentary-vertical-slice.md

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S2.4QURAN vertical slice — PASS / CLOSED (2026-09-08) · T2.4.1–T2.4.8, 15/15 · 1 migration additive 20260908110000 en prod (drift = 0, 4 tables quran_* VIDES) · famille autonome Surah → Ayah + AyahText témoin (AYAH IDENTITY ≠ TEXTUAL WITNESS) · fixture Tanzil Uthmani (Al-Fātiḥa 7 + al-Baqara 1–15) · E2E 17/17 preuves §26, 0 assertion, conflit de texte → erreur jamais UPDATE · 0 verset en prod · planning/reports/e2-s2.4-quran-vertical-slice.mdClos (roadmap)

Description : QURAN vertical slice — PASS / CLOSED (2026-09-08) · T2.4.1–T2.4.8, 15/15 · 1 migration additive 20260908110000 en prod (drift = 0, 4 tables quran_* VIDES) · famille autonome Surah → Ayah + AyahText témoin (AYAH IDENTITY ≠ TEXTUAL WITNESS) · fixture Tanzil Uthmani (Al-Fātiḥa 7 + al-Baqara 1–15) · E2E 17/17 preuves §26, 0 assertion, conflit de texte → erreur jamais UPDATE · 0 verset en prod · planning/reports/e2-s2.4-quran-vertical-slice.md

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S2.5TERMINOLOGY / MUṢṬALAḤ vertical slice — PASS / CLOSED (2026-09-08) · T2.5.1–T2.5.8, 15/15 · 1 migration additive 20260908120000 en prod (drift = 0, 6 tables terminology_* VIDES internes — 0 vue publique / 0 security_definer / 0 P5) · famille autonome Concept → Entry → Assertion → Evidence (CONCEPT IDENTITY ≠ DOCUMENTARY DEFINITION ; N définitions divergentes coexistent, aucune préférée) · fixture Muqaddimat Ibn al-Ṣalāḥ (8 concepts / 9 définitions, mursal ×2) · E2E 17/17 preuves §29, 0 classification de ḥadīth, 0 verdict d'authenticité, conflit de texte → erreur jamais UPDATE · comparaison inter-familles FINALE : NO UNIVERSAL ROOT, ScientificAssertion<T> = interface de domaine candidate (aucune implémentation) · planning/reports/e2-s2.5-terminology-vertical-slice.mdClos (roadmap)

Description : TERMINOLOGY / MUṢṬALAḤ vertical slice — PASS / CLOSED (2026-09-08) · T2.5.1–T2.5.8, 15/15 · 1 migration additive 20260908120000 en prod (drift = 0, 6 tables terminology_* VIDES internes — 0 vue publique / 0 security_definer / 0 P5) · famille autonome Concept → Entry → Assertion → Evidence (CONCEPT IDENTITY ≠ DOCUMENTARY DEFINITION ; N définitions divergentes coexistent, aucune préférée) · fixture Muqaddimat Ibn al-Ṣalāḥ (8 concepts / 9 définitions, mursal ×2) · E2E 17/17 preuves §29, 0 classification de ḥadīth, 0 verdict d'authenticité, conflit de texte → erreur jamais UPDATE · comparaison inter-familles FINALE : NO UNIVERSAL ROOT, ScientificAssertion<T> = interface de domaine candidate (aucune implémentation) · planning/reports/e2-s2.5-terminology-vertical-slice.md

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E3Provenance & Scientific Evidence — PASS / CLOSED (FINAL EXIT GATE PM, 2026-09-09) · spéc planning/epics/e3-provenance-scientific-evidence-spec.md · S3.1 + S3.2 + S3.2R + S3.3 + S3.4 = PASS / CLOSEDClos (roadmap)5 / 5

Description : Éditions, locators précis, citations académiques, chaîne Assertion → Evidence sourcée.

S3.1Provenance Foundation (15/15 S3.1-C, spec §1–§13) — terminology_witnesses (migr. 20260908130000) ; DocumentaryWitness + assessProvenance (flags, aucun score) ; contrat CitationService ; pas de table citations.Clos (roadmap)

Description : Provenance Foundation (15/15 S3.1-C, spec §1–§13) — terminology_witnesses (migr. 20260908130000) ; DocumentaryWitness + assessProvenance (flags, aucun score) ; contrat CitationService ; pas de table citations.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S3.2Citation Path & Reproducible Scientific Citation (15/15 S3.2-C, spec §14) — CitationService lecture seule, resolvePath family-agnostic + 4 resolvers, verifyQuote EXACT/NORMALIZED, 3 niveaux de hash, ACADEMIC_SHORT/FULL ; CitationView dérivée.Clos (roadmap)

Description : Citation Path & Reproducible Scientific Citation (15/15 S3.2-C, spec §14) — CitationService lecture seule, resolvePath family-agnostic + 4 resolvers, verifyQuote EXACT/NORMALIZED, 3 niveaux de hash, ACADEMIC_SHORT/FULL ; CitationView dérivée.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S3.2RDeterministic RIJĀL Documentary Binding (15/15 S3.2R-C, spec §14bis) — openiti.knowledge_entry_bindings (migr. 20260908140000) = seul JOIN d'identité ; hash → OK/FAILED/UNBOUND ; aucun fallback ; golden ambiguity test.Clos (roadmap)

Description : Deterministic RIJĀL Documentary Binding (15/15 S3.2R-C, spec §14bis) — openiti.knowledge_entry_bindings (migr. 20260908140000) = seul JOIN d'identité ; hash → OK/FAILED/UNBOUND ; aucun fallback ; golden ambiguity test.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S3.3Evidence Chain & Quote Integrity (19/19 S3.3-C, spec §15) — invariant KM V1 §5 testable → COMPLETE/INCOMPLETE/UNSUPPORTED (aucun score, aucune majorité) ; dette E2-F1 fermée (writer Terminology ; migr. 20260908150000 appliquée en prod) ; findings S3.3-F1 (SUPERSESSION_TIP → E7) / S3.3-F2 (INFO).Clos (roadmap)

Description : Evidence Chain & Quote Integrity (19/19 S3.3-C, spec §15) — invariant KM V1 §5 testable → COMPLETE/INCOMPLETE/UNSUPPORTED (aucun score, aucune majorité) ; dette E2-F1 fermée (writer Terminology ; migr. 20260908150000 appliquée en prod) ; findings S3.3-F1 (SUPERSESSION_TIP → E7) / S3.3-F2 (INFO).

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S3.4Documentary Source Lifecycle & Provenance Revision (15/15 S3.4-C, spec §16) — ACTIVE/QUARANTINED/WITHDRAWN (≠ DELETE, n'influe que sur l'éligibilité) ; CURRENT ≠ HISTORICAL ; témoin courant structurel (ACTIVE ∧ non supersédé) ; ambiguïté / cycle jamais arbitrés ; 3 journaux append-only family-specific (migr. 20260908160000 appliquée en prod, journaux vides). Finding : FK témoin→aval déjà ON DELETE RESTRICT ⇒ cascade destructive impossible. E3 = PASS / CLOSED.Clos (roadmap)

Description : Documentary Source Lifecycle & Provenance Revision (15/15 S3.4-C, spec §16) — ACTIVE/QUARANTINED/WITHDRAWN (≠ DELETE, n'influe que sur l'éligibilité) ; CURRENT ≠ HISTORICAL ; témoin courant structurel (ACTIVE ∧ non supersédé) ; ambiguïté / cycle jamais arbitrés ; 3 journaux append-only family-specific (migr. 20260908160000 appliquée en prod, journaux vides). Finding : FK témoin→aval déjà ON DELETE RESTRICT ⇒ cascade destructive impossible. E3 = PASS / CLOSED.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E4Narrator Identity & Resolution — clos technique PASS / CLOSED (2026-09-12, clôture conservée) · couverture scientifique PARTIELLE (v1.41) · spéc planning/e4-narrator-identity-resolution-spec.mdEn cours7 / 11

Description : Normalisation, génération de candidats, validation maître/élève et ṭabaqa, confidence d'identité, assertions rijāl sourcées.

S4.1Narrator Identity Foundation & Resolution Contract (15/15 S4.1-C, spec §14) — contrat pur src/domain/narrator-identity/ : NameRepresentation (11 kinds, normalized equality ≠ identity) · NarratorCandidate (narratorId FK — jamais créé · signals ≠ evidence · identityConfidence bande jamais un nombre) · IdentityEvidence positive ×9 + négative ×7 (strength, explanation obligatoire, EvidenceProvenanceRef → E3) · assessIdentityCandidate (≥1 négative STRONG ⇒ REJECTED malgré un texte proche ; SUPPORTED = forme d'identité entière ∧ corroboration structurelle ∧ 0 négative) · decideIdentity → UNRESOLVED/CANDIDATES_FOUND/AMBIGUOUS/CONFIRMED (aucun score de ranking, jamais rang 1, UNKNOWN > FALSE LINK, ne crée jamais de Narrator). Golden ʿAlqama : 4755 SUPPORTED (forme entière + ṭabaqa + arête narrated_from ʿUmar) / 6261 REJECTED (arrière-petit-fils — NAME_ROLE_MISMATCH + TABAQA_IMPOSSIBLE + CHRONOLOGY_IMPOSSIBLE + TEACHER_EDGE_INCOMPATIBLE, aucun if id === …) → CONFIRMED → 4755 ; hadith_chain_nodes.id = 5 inchangé (mission §8). Findings F1/F2/F3 (§16). test:narrator-identity-foundation (11 tests purs). 0 migration · 0 écriture DB · 0 mutation scientifique. NEXT = S4.2.Clos (roadmap)

Description : Narrator Identity Foundation & Resolution Contract (15/15 S4.1-C, spec §14) — contrat pur src/domain/narrator-identity/ : NameRepresentation (11 kinds, normalized equality ≠ identity) · NarratorCandidate (narratorId FK — jamais créé · signals ≠ evidence · identityConfidence bande jamais un nombre) · IdentityEvidence positive ×9 + négative ×7 (strength, explanation obligatoire, EvidenceProvenanceRef → E3) · assessIdentityCandidate (≥1 négative STRONG ⇒ REJECTED malgré un texte proche ; SUPPORTED = forme d'identité entière ∧ corroboration structurelle ∧ 0 négative) · decideIdentity → UNRESOLVED/CANDIDATES_FOUND/AMBIGUOUS/CONFIRMED (aucun score de ranking, jamais rang 1, UNKNOWN > FALSE LINK, ne crée jamais de Narrator). Golden ʿAlqama : 4755 SUPPORTED (forme entière + ṭabaqa + arête narrated_from ʿUmar) / 6261 REJECTED (arrière-petit-fils — NAME_ROLE_MISMATCH + TABAQA_IMPOSSIBLE + CHRONOLOGY_IMPOSSIBLE + TEACHER_EDGE_INCOMPATIBLE, aucun if id === …) → CONFIRMED → 4755 ; hadith_chain_nodes.id = 5 inchangé (mission §8). Findings F1/F2/F3 (§16). test:narrator-identity-foundation (11 tests purs). 0 migration · 0 écriture DB · 0 mutation scientifique. NEXT = S4.2.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S4.2Typed Narrator Representations (15/15 S4.2-C, spec §20) — projection pure projectNarratorRepresentations : Narrator → ProjectedNameRepresentation[] sur les champs existants (aucune table alias, aucune migration) · déterministe · KIND_ORDER stable · dédup déterministe (deux kinds différents portant la même chaîne jamais fusionnés) · champ absent ⇒ aucune représentation · origines typées (CANONICAL_FIELD/DERIVED_NORMALIZATION/DERIVED_TRANSLITERATION/DOCUMENTARY_OBSERVATION, DERIVED ≠ DOCUMENTARY) + reviewStatus (REVIEWED/MACHINE_GENERATED/UNREVIEWED) + key jamais une clé de Narrator · external_narrators intégré uniquement via un narrator_crosswalk explicite · goldens 4755 (9 reps, pas de TRANSLITERATION — absent de narrator_canonical_display) / 6261 (10 reps, 0 clé ni valeur partagée) · collision réelle 399/401 (formes strictement identiques, deux personnes) ⇒ *représentation ≠ identité* · findings F1/F2/F3/F4 · test:narrator-name-representations (16). 0 confidence, 0 décision, 0 mutation. NEXT = S4.3.Clos (roadmap)

Description : Typed Narrator Representations (15/15 S4.2-C, spec §20) — projection pure projectNarratorRepresentations : Narrator → ProjectedNameRepresentation[] sur les champs existants (aucune table alias, aucune migration) · déterministe · KIND_ORDER stable · dédup déterministe (deux kinds différents portant la même chaîne jamais fusionnés) · champ absent ⇒ aucune représentation · origines typées (CANONICAL_FIELD/DERIVED_NORMALIZATION/DERIVED_TRANSLITERATION/DOCUMENTARY_OBSERVATION, DERIVED ≠ DOCUMENTARY) + reviewStatus (REVIEWED/MACHINE_GENERATED/UNREVIEWED) + key jamais une clé de Narrator · external_narrators intégré uniquement via un narrator_crosswalk explicite · goldens 4755 (9 reps, pas de TRANSLITERATION — absent de narrator_canonical_display) / 6261 (10 reps, 0 clé ni valeur partagée) · collision réelle 399/401 (formes strictement identiques, deux personnes) ⇒ *représentation ≠ identité* · findings F1/F2/F3/F4 · test:narrator-name-representations (16). 0 confidence, 0 décision, 0 mutation. NEXT = S4.3.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S4.3Deterministic Narrator Candidate Generation (19/19 S4.3-C, spec §21) — domaine pur NarratorCandidateGeneration.ts : generateNarratorCandidates(mention, corpus, options) → NarratorCandidateSet ; corpus construit depuis les représentations typées S4.2 (buildRetrievalEntry), aucune normalisation réimplémentée (normalize_ar_query / normalize_translit restent les fonctions SQL réelles) · 7 canaux ordonnés = ordre de récupération, jamais probabilité d’identité · 9 retrievalSignals explicables, jamais des IdentityEvidence · reviewQuality = MACHINE_ONLY marque les candidats issus des seules formes générées (S4.2-F3) · KUNYA/QUALIFIER jamais utilisés en récupération · FULL_NAME_PREFIX_MATCH distingue 4755 (tête nominale) de 6261 (fragment de nasab) sans être une preuve négative · 1 candidat par narratorId, ordre stable, HARD_CANDIDATE_CAP = 50, aucun identityScore/confidence · dépassement ⇒ ensemble vidé (jamais de troncature arbitrante) · goldens G1–G6 ; hadith_chain_nodes.id = 5 inchangé · validation corpus réel déterministe (N = 80) : 96,3 % / p95 25 / max 40 vs legacy 93,8 % / p95 500 · findings F1–F4 · test:narrator-candidate-generation (21 purs) + test:narrator-candidate-generation-real (prod lecture seule). 0 migration · 0 écriture DB. NEXT = S4.4.Clos (roadmap)

Description : Deterministic Narrator Candidate Generation (19/19 S4.3-C, spec §21) — domaine pur NarratorCandidateGeneration.ts : generateNarratorCandidates(mention, corpus, options) → NarratorCandidateSet ; corpus construit depuis les représentations typées S4.2 (buildRetrievalEntry), aucune normalisation réimplémentée (normalize_ar_query / normalize_translit restent les fonctions SQL réelles) · 7 canaux ordonnés = ordre de récupération, jamais probabilité d’identité · 9 retrievalSignals explicables, jamais des IdentityEvidence · reviewQuality = MACHINE_ONLY marque les candidats issus des seules formes générées (S4.2-F3) · KUNYA/QUALIFIER jamais utilisés en récupération · FULL_NAME_PREFIX_MATCH distingue 4755 (tête nominale) de 6261 (fragment de nasab) sans être une preuve négative · 1 candidat par narratorId, ordre stable, HARD_CANDIDATE_CAP = 50, aucun identityScore/confidence · dépassement ⇒ ensemble vidé (jamais de troncature arbitrante) · goldens G1–G6 ; hadith_chain_nodes.id = 5 inchangé · validation corpus réel déterministe (N = 80) : 96,3 % / p95 25 / max 40 vs legacy 93,8 % / p95 500 · findings F1–F4 · test:narrator-candidate-generation (21 purs) + test:narrator-candidate-generation-real (prod lecture seule). 0 migration · 0 écriture DB. NEXT = S4.4.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S4.4Structural Identity Evidence I — Ṭabaqa & Chronologie (20/20 S4.4-C, spec §22) — domaine pur TabaqaChronologyEvidence.ts : assessTabaqaEvidence / assessChronologyEvidence / assessStructuralIdentityEvidence → IdentityEvidence[] · StructuralCompatibility = type de domaine, aucune table ni enum DB · resolveTabaqa n'arbitre jamais (assertions divergentes ⇒ aucun rang, sans repli sur le legacy, sans vote) · fenêtre générationnelle = deux bornes réellement observées, zéro constante · ṭabaqa jamais STRONG (non-monotonie attestée sur 4,4 % des paires réelles ; règle « ṭabaqa ≥ N depuis un Compagnon » écartée, pas calibrée) · chronologie = impossibilité seulement, STRONG réservé aux dates documentairement sourcées (6 fausses éliminations mesurées sur les champs legacy corrompus) · précondition d'intégrité birth < death · crosswalk jamais preuve structurelle + mesure crosswalk-off dédiée · legacy vs E3 explicitement distingués, aucune provenance fabriquée · goldens : 4755 TABAQA_COMPATIBLE sans négative STRONG, 6261 négative WEAK ⇒ C11 PARTIAL assumé, son exclusion relève de S4.5 · corpus réel déterministe (89 nœuds, 300 évaluations) : 0 négative STRONG, UNKNOWN chronologie 94 %, FALSE ELIMINATION RATE = 0 · findings F1–F5 · test:narrator-structural-evidence (22 purs) + test:narrator-structural-evidence-real (prod lecture seule). 0 migration · 0 écriture DB. NEXT = S4.5.Clos (roadmap)

Description : Structural Identity Evidence I — Ṭabaqa & Chronologie (20/20 S4.4-C, spec §22) — domaine pur TabaqaChronologyEvidence.ts : assessTabaqaEvidence / assessChronologyEvidence / assessStructuralIdentityEvidence → IdentityEvidence[] · StructuralCompatibility = type de domaine, aucune table ni enum DB · resolveTabaqa n'arbitre jamais (assertions divergentes ⇒ aucun rang, sans repli sur le legacy, sans vote) · fenêtre générationnelle = deux bornes réellement observées, zéro constante · ṭabaqa jamais STRONG (non-monotonie attestée sur 4,4 % des paires réelles ; règle « ṭabaqa ≥ N depuis un Compagnon » écartée, pas calibrée) · chronologie = impossibilité seulement, STRONG réservé aux dates documentairement sourcées (6 fausses éliminations mesurées sur les champs legacy corrompus) · précondition d'intégrité birth < death · crosswalk jamais preuve structurelle + mesure crosswalk-off dédiée · legacy vs E3 explicitement distingués, aucune provenance fabriquée · goldens : 4755 TABAQA_COMPATIBLE sans négative STRONG, 6261 négative WEAK ⇒ C11 PARTIAL assumé, son exclusion relève de S4.5 · corpus réel déterministe (89 nœuds, 300 évaluations) : 0 négative STRONG, UNKNOWN chronologie 94 %, FALSE ELIMINATION RATE = 0 · findings F1–F5 · test:narrator-structural-evidence (22 purs) + test:narrator-structural-evidence-real (prod lecture seule). 0 migration · 0 écriture DB. NEXT = S4.5.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S4.5Structural Identity Evidence II — Relations maître / élève (22/22 S4.5-C, spec §23) — domaine pur TeacherStudentEvidence.ts : assessTeacherStudentEvidence → IdentityEvidence[] + IdentitySignal[], seules les 4 catégories d'arête S4.1 utilisées · statut EDGE_ATTESTED / EDGE_CONTRADICTED / EDGE_UNKNOWN, volontairement distinct du vocabulaire de verdict S4.1 · une absence d'arête ne produit JAMAIS d'incompatibilité et les deux formulations réciproques sont acceptées · sémantique SQL mesurée (le relation_type nomme le rôle de l'objet) · provenance E3 vs locator-only vs corpus-dérivée, aucune provenance fabriquée · anti-circularité stricte (même corpus et corpus inconnu écartés ; cross-corpus admis en IdentitySignal seulement) · négatives réservées à une contradiction explicite, inexistante en production · goldens : 4755 0 arête ⇒ EDGE_UNKNOWN sans négative, 6261 9 arêtes dont aucune vers 4958/5774 ⇒ EDGE_UNKNOWN — 6261 reste non rejetable par S4.4 + S4.5 · réconciliation §21 : le golden S4.1 était une FIXTURE DE CONTRAT, pas une relation de production prouvée (tests S4.1 inchangés) · corpus réel 89 nœuds / 300 évaluations : 1 arête, support coverage 1,1 % (abrégées 1,7 %), réduction 0 %, FALSE ELIMINATION RATE = 0 · findings F1–F5 · test:narrator-relation-evidence (20 purs) + test:narrator-relation-evidence-real (prod lecture seule). 0 migration · 0 écriture DB. NEXT = S4.6.Clos (roadmap)

Description : Structural Identity Evidence II — Relations maître / élève (22/22 S4.5-C, spec §23) — domaine pur TeacherStudentEvidence.ts : assessTeacherStudentEvidence → IdentityEvidence[] + IdentitySignal[], seules les 4 catégories d'arête S4.1 utilisées · statut EDGE_ATTESTED / EDGE_CONTRADICTED / EDGE_UNKNOWN, volontairement distinct du vocabulaire de verdict S4.1 · une absence d'arête ne produit JAMAIS d'incompatibilité et les deux formulations réciproques sont acceptées · sémantique SQL mesurée (le relation_type nomme le rôle de l'objet) · provenance E3 vs locator-only vs corpus-dérivée, aucune provenance fabriquée · anti-circularité stricte (même corpus et corpus inconnu écartés ; cross-corpus admis en IdentitySignal seulement) · négatives réservées à une contradiction explicite, inexistante en production · goldens : 4755 0 arête ⇒ EDGE_UNKNOWN sans négative, 6261 9 arêtes dont aucune vers 4958/5774 ⇒ EDGE_UNKNOWN — 6261 reste non rejetable par S4.4 + S4.5 · réconciliation §21 : le golden S4.1 était une FIXTURE DE CONTRAT, pas une relation de production prouvée (tests S4.1 inchangés) · corpus réel 89 nœuds / 300 évaluations : 1 arête, support coverage 1,1 % (abrégées 1,7 %), réduction 0 %, FALSE ELIMINATION RATE = 0 · findings F1–F5 · test:narrator-relation-evidence (20 purs) + test:narrator-relation-evidence-real (prod lecture seule). 0 migration · 0 écriture DB. NEXT = S4.6.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S4.5RPont sources RIJĀL → registre canonique (amendement PM, spec §24) — domaine pur DocumentaryRelationResolution.ts : proposeSurfaceFormResolution (statuts PROPOSED / AMBIGUOUS / UNRESOLVED / INSUFFICIENT_PROVENANCE, l'ambiguïté conservée sans arbitrage ni vote ni rang 1) et proposeCanonicalCorrection (CANONICAL_MISSING / CANONICAL_CONTRADICTED / SOURCES_DIVERGENT) · DocumentaryProvenance requise — œuvre, édition, entrée, locator, citation arabe — sinon INSUFFICIENT_PROVENANCE · niveau de chaîne E3_REPRODUCIBLE / DOCUMENTARY_LOCATOR_ONLY / UNKNOWN jamais fabriqué · inventaire complet des 4 œuvres rijāl · couverture documentaire 14,7 % · épines relations/attributs disjointes (0 entrée partagée) · 390 formes de surface → 0 lien faute de preuve · 164 propositions de correction canonique, aucune appliquée · findings F1–F5 · test:rijal-documentary-resolution (14 purs) + test:rijal-documentary-resolution-real (prod lecture seule). 0 migration · NO UPDATE public.narrators. NEXT = arbitrage PM.Clos (roadmap)

Description : Pont sources RIJĀL → registre canonique (amendement PM, spec §24) — domaine pur DocumentaryRelationResolution.ts : proposeSurfaceFormResolution (statuts PROPOSED / AMBIGUOUS / UNRESOLVED / INSUFFICIENT_PROVENANCE, l'ambiguïté conservée sans arbitrage ni vote ni rang 1) et proposeCanonicalCorrection (CANONICAL_MISSING / CANONICAL_CONTRADICTED / SOURCES_DIVERGENT) · DocumentaryProvenance requise — œuvre, édition, entrée, locator, citation arabe — sinon INSUFFICIENT_PROVENANCE · niveau de chaîne E3_REPRODUCIBLE / DOCUMENTARY_LOCATOR_ONLY / UNKNOWN jamais fabriqué · inventaire complet des 4 œuvres rijāl · couverture documentaire 14,7 % · épines relations/attributs disjointes (0 entrée partagée) · 390 formes de surface → 0 lien faute de preuve · 164 propositions de correction canonique, aucune appliquée · findings F1–F5 · test:rijal-documentary-resolution (14 purs) + test:rijal-documentary-resolution-real (prod lecture seule). 0 migration · NO UPDATE public.narrators. NEXT = arbitrage PM.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S4.5R-P1Holdout validation du resolver (21/22 P1-C, spec §25) — PARTIAL / HOLDOUT GATE : 949 relations rejouées vérité cachée, 0 fuite prouvée cas par cas · recall 71,7 % < 95 % ⇒ le seuil n'est pas atteint et S4.5R ne peut pas être proposé en PASS · precision 100 %, 0 fausse proposition, coverage 1,2 % · faux négatifs dominés par les références relationnelles (« أبيه ») et les fragments nominaux · 3 narrateurs-placeholders détectés dans public.narrators · Lisān et Taʿjīl non validables (0 relation résolue) · test:narrator-relation-object-resolution-holdout sort en code non nul par conception (c'est un gate). 0 migration · 0 écriture. NEXT = PM GATE.À faire

Description : Holdout validation du resolver (21/22 P1-C, spec §25) — PARTIAL / HOLDOUT GATE : 949 relations rejouées vérité cachée, 0 fuite prouvée cas par cas · recall 71,7 % < 95 % ⇒ le seuil n'est pas atteint et S4.5R ne peut pas être proposé en PASS · precision 100 %, 0 fausse proposition, coverage 1,2 % · faux négatifs dominés par les références relationnelles (« أبيه ») et les fragments nominaux · 3 narrateurs-placeholders détectés dans public.narrators · Lisān et Taʿjīl non validables (0 relation résolue) · test:narrator-relation-object-resolution-holdout sort en code non nul par conception (c'est un gate). 0 migration · 0 écriture. NEXT = PM GATE.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S4.5R-P2Couche d'interprétation sémantique arabe (C26–C40 : 15/15, spec §26) — domaine pur ArabicDocumentaryReference.ts : 10 classes sémantiques, sous-types de parenté, portée et direction de transmission, négations, modalité, MAWLA_REFERENCE · raw arabe préservé inchangé, normalisation et interprétation strictement distinctes · référence pronominale inexploitable sans antécédent documentaire · UNKNOWN reste une sortie valide · aucune blacklist d'identifiants : les 41 entités canoniques non-personne sont déduites de leur classe linguistique · CanonicalIdentityAnomaly = constatation sans champ d'action · piège du « مولاهم » interne évité (437 faux positifs écartés en restreignant la classe à la position de tête) · architecture réutilisable au-delà du Tahdhīb · test:arabic-semantic-layer (20 purs) + test:arabic-semantic-layer-real (prod lecture seule). Gap de schéma SIGNALÉ, aucune migration créée. NEXT = PM (transmettre C1–C25).Clos (roadmap)

Description : Couche d'interprétation sémantique arabe (C26–C40 : 15/15, spec §26) — domaine pur ArabicDocumentaryReference.ts : 10 classes sémantiques, sous-types de parenté, portée et direction de transmission, négations, modalité, MAWLA_REFERENCE · raw arabe préservé inchangé, normalisation et interprétation strictement distinctes · référence pronominale inexploitable sans antécédent documentaire · UNKNOWN reste une sortie valide · aucune blacklist d'identifiants : les 41 entités canoniques non-personne sont déduites de leur classe linguistique · CanonicalIdentityAnomaly = constatation sans champ d'action · piège du « مولاهم » interne évité (437 faux positifs écartés en restreignant la classe à la position de tête) · architecture réutilisable au-delà du Tahdhīb · test:arabic-semantic-layer (20 purs) + test:arabic-semantic-layer-real (prod lecture seule). Gap de schéma SIGNALÉ, aucune migration créée. NEXT = PM (transmettre C1–C25).

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S4.5R-P2BRésolution contextuelle de parenté & récupération du holdout (C1–C25 : 24/25, spec §27) — PARTIAL : domaine pur ContextualKinshipResolution.ts (deriveKinshipSurface, extractNasabChain, proposeRepresentationEnrichment, inventoryNegativeExpression) · route sémantique avant tout resolver · père et grand-père reconstruits depuis le nasab du sujet, 78/78 et 5/5 · toute autre parenté NOT_DERIVABLE_FROM_NASAB · canal de fragment kunya/nisba borné qui ne conclut jamais · 4 401 formes documentaires en mémoire → 2 596 propositions d'enrichissement · 496 expressions négatives inventoriées, 0 convertie · 41 anomalies canoniques · 0 fuite de object_narrator_id sur 949 cas · recall utilisable 81,0 % < 95 % = unique critère en échec · test:narrator-contextual-reference-resolution (17 purs) + -real (prod lecture seule). 0 migration · 0 écriture. NEXT = PM GATE.À faire

Description : Résolution contextuelle de parenté & récupération du holdout (C1–C25 : 24/25, spec §27) — PARTIAL : domaine pur ContextualKinshipResolution.ts (deriveKinshipSurface, extractNasabChain, proposeRepresentationEnrichment, inventoryNegativeExpression) · route sémantique avant tout resolver · père et grand-père reconstruits depuis le nasab du sujet, 78/78 et 5/5 · toute autre parenté NOT_DERIVABLE_FROM_NASAB · canal de fragment kunya/nisba borné qui ne conclut jamais · 4 401 formes documentaires en mémoire → 2 596 propositions d'enrichissement · 496 expressions négatives inventoriées, 0 convertie · 41 anomalies canoniques · 0 fuite de object_narrator_id sur 949 cas · recall utilisable 81,0 % < 95 % = unique critère en échec · test:narrator-contextual-reference-resolution (17 purs) + -real (prod lecture seule). 0 migration · 0 écriture. NEXT = PM GATE.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

S4.5R-P3Pont biographie documentaire → identité canonique (29/30 P3-C, spec §28) — PARTIAL : domaine pur DocumentaryBiographyIdentity.ts (extractBiography, assessBiographyIdentity, corroborateAcrossSources, extractNegativeRelations, parseArabicYear) · états sans CONFIRMED · PROPOSABLE = candidat unique + corroboration d'attribut + 0 négative · modalité exclue de la corroboration · inventaire des 4 œuvres, dont Lisān/Taʿjīl hors catalogue (gap signalé, aucune migration) · assertions Taqrīb circulaires écartées, extraction depuis le raw · holdout 3 483 : 80,7 % recall, 99,8 % precision, 0,11 % false-rate · 20 212 non liées → 4 720 proposables · 7 nœuds 8545 inventoriés · test:narrator-documentary-biography-identity (25 purs) + -real. 0 migration · 0 écriture. NEXT = PM GATE.À faire

Description : Pont biographie documentaire → identité canonique (29/30 P3-C, spec §28) — PARTIAL : domaine pur DocumentaryBiographyIdentity.ts (extractBiography, assessBiographyIdentity, corroborateAcrossSources, extractNegativeRelations, parseArabicYear) · états sans CONFIRMED · PROPOSABLE = candidat unique + corroboration d'attribut + 0 négative · modalité exclue de la corroboration · inventaire des 4 œuvres, dont Lisān/Taʿjīl hors catalogue (gap signalé, aucune migration) · assertions Taqrīb circulaires écartées, extraction depuis le raw · holdout 3 483 : 80,7 % recall, 99,8 % precision, 0,11 % false-rate · 20 212 non liées → 4 720 proposables · 7 nœuds 8545 inventoriés · test:narrator-documentary-biography-identity (25 purs) + -real. 0 migration · 0 écriture. NEXT = PM GATE.

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E4-S02Vérification des prémisses et arbitrages E4/E12 (§3.3, rang 12) — P5A sauvegardé ea30a6e, non certifié, non intégré (2026-09-26)À faire

Description : Vérification des prémisses et arbitrages E4/E12 (§3.3, rang 12) — P5A sauvegardé ea30a6e, non certifié, non intégré (2026-09-26)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E5Hadith Tradition & Variant Graph — fondation, persistance, lecture et panneau déployés ; 0 tradition confirmée ; pilote à réviser · planning/reports/e5-t7-final-certification.mdEn cours

Description : Normalisation matn, signatures d'isnād, matching de traditions, clustering de variantes, graphe de traditions.

E6Topics, Terminology & Semantic Knowledge — clos technique (2026-09-16), pilote de candidats non revuEn cours

Description : Classification thématique, ontologie, vocabulaire contrôlé, coexistence des définitions divergentes.

E7Confidence & Conflict / Reconciliation — clos technique (2026-09-16), 0 conflit en production, règles à validerEn cours0 / 1

Description : 4 confidences, détection de contradictions, décisions de réconciliation, coexistence des avis.

E7-S03Qualité des conflits (PARTIAL ; puis E5-S02/S03, E6-S02/S03 — §3.3, rang 11)En cours

Description : Qualité des conflits (PARTIAL ; puis E5-S02/S03, E6-S02/S03 — §3.3, rang 11)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E8Hadith Scientific Reasoning Engine — clos technique (2026-09-16), 7 cas provisoiresEn cours0 / 1

Description : Inférence scientifique argumentée, arbre de preuves, anti-circularité.

E8-S03Raisonnements puis E9-S03 dossiers (PARTIAL — §3.3, rang 13)En cours

Description : Raisonnements puis E9-S03 dossiers (PARTIAL — §3.3, rang 13)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E9Scientific Dossier — clos technique (2026-09-16), 5 dossiers UNRESOLVED (prémisses non alimentées)En cours

Description : Produit final : dossier narrateur / dossier hadith généré et exportable.

E11Architecture & UX — PASS / CLOSED en périmètre réduit (2026-10-03) · S02/S04/S05/S08/S09/S10/S11 PASS · S12-T04 HOTFIX CLOSED · S03, S12-T01–T03 + T05, S13 DEFERRED · planning/reports/e11-final-closure-report.mdClos (roadmap)6 / 6

Description : Architecture & UX

E11-S02Pages publiques par contrats serveur — COMPLETEClos (roadmap)

Description : Pages publiques par contrats serveur — COMPLETE

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E11-S04Tri serveur restant — PASS / CLOSED (2026-10-03)Clos (roadmap)

Description : Tri serveur restant — PASS / CLOSED (2026-10-03)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E11-S08Pages 404 localisées — PASSClos (roadmap)

Description : Pages 404 localisées — PASS

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E11-S09Routes publiques via services serveur — PASSClos (roadmap)

Description : Routes publiques via services serveur — PASS

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E11-S10Textes longs sur mobile — PASSClos (roadmap)

Description : Textes longs sur mobile — PASS

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E11-S11Réconciliation des travaux et du planning — PASS / CLOSED (PR #89, 2026-09-24)Clos (roadmap)

Description : Réconciliation des travaux et du planning — PASS / CLOSED (PR #89, 2026-09-24)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E14Traduction documentaire — moteur + cockpit en PROD (ex-E14-T4B) · 0 revue humaine · aucun rollout massifEn cours1 / 7

Description : Moteur et revue de traduction

E14-S07Intégration de l'atelier privé des ouvrages (livraison 22236) — PASS / CLOSED (2026-10-04) : code livré désactivé en PROD (e922684), fonctionnalité non disponible ; T03 PASS ; T04 PASSClos (roadmap)

Description : Intégration de l'atelier privé des ouvrages (livraison 22236) — PASS / CLOSED (2026-10-04) : code livré désactivé en PROD (e922684), fonctionnalité non disponible ; T03 PASS ; T04 PASS

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E14-S08Activation privée de l'atelier — NOT_STARTED, sur décision utilisateurÀ faire

Description : Activation privée de l'atelier — NOT_STARTED, sur décision utilisateur

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E14-S09Import public des ouvrages — NOT_STARTED, sur décision utilisateurÀ faire

Description : Import public des ouvrages — NOT_STARTED, sur décision utilisateur

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E14-S04Orchestration — BLOCKED_DEPENDENCYÀ faire

Description : Orchestration — BLOCKED_DEPENDENCY

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E14-S05Certification technique — PARTIALEn cours

Description : Certification technique — PARTIAL

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E14-S06Revue humaine — IN_PROGRESS : 1 138 validées en masse sur attestation PM (2026-10-04), 491 → E14-S02En cours

Description : Revue humaine — IN_PROGRESS : 1 138 validées en masse sur attestation PM (2026-10-04), 491 → E14-S02

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E14-S02Qualification des anomalies — OPEN (491 entrées, 516 anomalies candidates)À faire

Description : Qualification des anomalies — OPEN (491 entrées, 516 anomalies candidates)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E15Passerelle de recherche scientifique — en production, critères ouvertsEn cours0 / 2

Description : Passerelle de recherche scientifique

E15-S13Reprise de la dictée existante — IN_PROGRESS (WIP sauvegardé e2f0ce2, 2026-09-26 ; non rebasé, non certifié)En cours

Description : Reprise de la dictée existante — IN_PROGRESS (WIP sauvegardé e2f0ce2, 2026-09-26 ; non rebasé, non certifié)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E15-S06Critères de recherche restants (clôture E15) — OPENEn cours

Description : Critères de recherche restants (clôture E15) — OPEN

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E16Cybersécurité — PASS / CLOSED (2026-10-04) · S01–S10 PASS · aucune certification de cybersécurité · planning/reports/e16-final-closure-report.mdClos (roadmap)7 / 7

Description : Cybersécurité

E16-S02Schéma administratif reproductible — PASS / CLOSED (2026-09-24)Clos (roadmap)

Description : Schéma administratif reproductible — PASS / CLOSED (2026-09-24)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E16-S05Session audio : interrupteur et limites — PASS / CLOSED (2026-09-24)Clos (roadmap)

Description : Session audio : interrupteur et limites — PASS / CLOSED (2026-09-24)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E16-S06Magasin partagé de quotas — PASS / CLOSED (2026-09-24, résultat nominal)Clos (roadmap)

Description : Magasin partagé de quotas — PASS / CLOSED (2026-09-24, résultat nominal)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E16-S08Quota audio en fonctionnement dégradé — PASS / CLOSED (PR #91, 2026-09-24)Clos (roadmap)

Description : Quota audio en fonctionnement dégradé — PASS / CLOSED (PR #91, 2026-09-24)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E16-S07Routes publiques de lecture bornées — PASS / CLOSED (2026-10-04, smoke PROD)Clos (roadmap)

Description : Routes publiques de lecture bornées — PASS / CLOSED (2026-10-04, smoke PROD)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E16-S09Conservation des données — PASS / CLOSED (2026-10-04, option a, purge manuelle)Clos (roadmap)

Description : Conservation des données — PASS / CLOSED (2026-10-04, option a, purge manuelle)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

E16-S10Autres protections ouvertes — PASS / CLOSED (2026-10-04 ; CSP Report-Only, F-16)Clos (roadmap)

Description : Autres protections ouvertes — PASS / CLOSED (2026-10-04 ; CSP Report-Only, F-16)

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

ECTEpics Contrôle — cockpit déployéEn cours0 / 3

Description : Epics Contrôle

ECT-S02Types de casÀ faire

Description : Types de cas

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

ECT-S03Options de décision par métierÀ faire

Description : Options de décision par métier

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

ECT-S04Décisions concurrentesÀ faire

Description : Décisions concurrentes

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

SYNSynthèse scientifique sourcéeEn cours1 / 2

Description : Synthèse scientifique sourcée

SYN-S01Première restitution de la recherche — PASS sur son périmètreClos (roadmap)

Description : Première restitution de la recherche — PASS sur son périmètre

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

SYN-S02Synthèse raccordée aux dossiers E9À faire

Description : Synthèse raccordée aux dossiers E9

Aucune feature Spec Kit rattachée à ce sprint pour le moment.

Page en lecture seule. Aucune écriture, aucune base de données, aucun secret. Les statuts sont calculés à partir des fichiers versionnés.