Aller au contenu

Étude astronomique de l'EMV/Plan d'étude

De Wiki Valtorta
Version datée du 4 octobre 2026 à 23:17 par Matthieu (discussion | contributions) (Ajout de l'étude astronomique de l'EMV (texte italien))
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
🤖 Travail réalisé avec une intelligence artificielle. Le relevé, l'encodage, les relectures et la rédaction ont été faits par Claude (modèle d'IA d'Anthropic) et ses sous-agents, à la demande de Matthieu Penchenat ; les calculs astronomiques sont faits par des scripts Python. Les jugements de lecture restent des jugements, à vérifier. Dépôt de travail : find-enigmes, branche astro (privé) ; les chemins de fichiers cités renvoient à ce dépôt. Mis en ligne le 4 octobre 2026.

Statut : pilote (phase 3) exécuté le 25/09/2026 ; instruments révisés puis validés sur 40 chapitres neufs et gelés le 26/09/2026 (codebook v1.0, tag astro-it/instruments-v1, journal emv/astro-it/CHANGELOG.md). Prochaine étape : point de décision n° 1, passage au relevé exhaustif (phase 4). Destinataires : Codex (relecture critique de la méthode, des statistiques et de la faisabilité), puis l'utilisateur (décisions). Dépôt : ~/projets/VALTORTA/find-enigmes (privé). Les chemins ci-dessous sont relatifs à ce dossier. Règle du projet : le code, les noms de fichiers, les clés JSON et les identifiants sont en anglais ; la prose reste en français.


0. En une page

But. Relever tout ce que L'Evangelo come mi è stato rivelato (Maria Valtorta, 1943-1947, 652 chapitres) dit du ciel et du calendrier luni-solaire, en lisant l'original italien, puis vérifier chaque élément suffisamment précis contre le ciel réel calculé (éphémérides JPL). Les énoncés de savoir astronomique (dictées, discours, dialogues) sont aussi relevés et vérifiés.

Pourquoi une deuxième étude. La première (v1, 24/09/2026, page /astronomie du viewer) lisait le français. Elle ne lisait que les 876 paragraphes contenant un mot-clé (lune, étoile, astre, Vénus, néoménie…). Elle portait surtout sur la lune et excluait les énoncés de savoir. Enfin, ses lots d'extraction contenaient les dates de Lavère et De Caro, ce qui risquait d'influencer le relevé. Elle n'est donc ni exhaustive ni aveugle.

Ce que la v2 change.

  1. Texte italien (5 801 sections) lu en entier, deux fois, par deux passes indépendantes, plus un filet lexical automatique. On estime le rappel par capture-recapture.
  2. Relevé aveugle : aucun agent de relevé ou d'encodage ne voit une chronologie, une date proposée ou un résultat de calcul.
  3. Heures exprimées par rapport au soleil (coucher + 1 h, aube, 3ᵉ heure temporaire…), et non en heure d'horloge. L'agent n'a donc pas besoin de connaître la saison, donc la date.
  4. Un codebook italien → contraintes, figé avant tout calcul, à trois niveaux de tolérance (strict, nominal, large).
  5. Moteur de calcul étendu :
    • soleil, heures temporaires et veilles de nuit ;
    • calendrier juif observationnel (visibilité du premier croissant) ;
    • étoiles du catalogue Hipparcos et figures de constellations ;
    • visibilité selon la magnitude ;
    • en option, horizon réel calculé à partir d'un modèle numérique de terrain.
  6. Statistiques qui ne supposent plus l'indépendance des observations. Le test central (§ 8.4) cherche si la chronologie de Lavère se distingue des chronologies décalées d'un nombre entier de lunaisons en conservant la saison (dont le cycle de Méton). C'est la seule façon de savoir si le texte désigne une année et pas seulement une place dans le mois lunaire.
  7. Relecture symétrique : concordances et discordances sont relues de la même façon, et aucune correction n'est faite en connaissant le résultat. Des équipes rouges (défense et attaque) interviennent ensuite, puis la vérification web des énoncés de savoir.

Critères de jugement principaux (pré-enregistrés, § 2) :

Code Critère
E1 Exhaustivité mesurée
E2 Descriptions impossibles à toute date
E3 Spécificité de l'année (rang de la chronologie de Lavère parmi les décalages luni-solaires)
E4 Années compatibles avec les jours de semaine et les dates juives explicites
E5 Bilan des énoncés de savoir

Ordre de grandeur. Environ 600 à 650 exécutions d'agents Opus au total (relevé ≈ 390, le reste pour le pilote, l'arbitrage, la relecture et la vérification). Les calculs locaux prennent quelques minutes à quelques dizaines de minutes. Tout passe d'abord par un pilote sur ~20 chapitres, puis par quatre points de décision de l'utilisateur.



1. Contexte

1.1 Le projet find-enigmes

Il s'agit d'une recherche assistée par IA de détails de l'EMV difficiles à expliquer par une seule main humaine (« pépites ») et d'erreurs possibles (« anomalies ») :

  • le relevé est fait par des agents Opus ;
  • la vérification est contradictoire, sur le web ;
  • les résultats sont affichés dans une application locale (viewer/, TanStack Start), déployée sans index sur lab.valtortamaria.org.

Rien n'est publié dans Directus. Les 417 énigmes de J.-F. Lavère ont déjà été auditées : 356 faibles, 61 fausses, aucune solide.

1.2 L'étude astronomique v1 (24/09/2026)

Méthode.

  • Relevé : 24 agents ont lu 876 paragraphes français préfiltrés par mots-clés (378 chapitres). L'italien n'était consulté qu'au cas par cas.
  • Consignes : prompts/astro-emv-extraction.md, prompts/astro-constraints.md et prompts/astro-review.md.
  • Moteur : scripts/astro/sky.py (skyfield 1.55, JPL DE406, ΔT de skyfield, soit ≈ 10 120 s en l'an 30).
  • Scripts associés : evaluate.py, analyze.py et parse_chronology.py. Ce dernier lit le tableau « Études chronologiques » du wiki : Lavère en grégorien proleptique, De Caro en julien.
  • Données : emv/astro/.

Résultats.

Mesure Valeur
Observations retenues 242 (54 précises, 106 qualitatives, 82 vagues)
Concordances aux dates de Lavère 148 sur 226, contre ≈ 90 attendues par hasard
Concordances des observations précises 27 sur 54, contre ≈ 10
Concordances aux dates de De Caro (autres années) 63 sur 91, contre ≈ 34
Dates de Lavère lues comme juliennes 150 concordances

Conclusion de la v1 : le texte montre une cohérence de calendrier lunaire, mais aucune date n'est désignée. 90 discordances ont été relues : 50 réelles, 20 artefacts, 15 ambiguës, et 5 descriptions impossibles à toute date (102.6, 357.2, 426.11, 630.20, 632.42). Les 204 affirmations de Lavère recalculées donnent 104 exactes, 47 approximatives, 42 fausses et 11 invérifiables. Leur erreur type : des phases calculées au quantième julien sous des dates grégoriennes.

1.3 Faiblesses de la v1 et correctifs

# Faiblesse v1 Conséquence Correctif v2
W1 Préfiltre par mots-clés français Rappel inconnu ; mentions implicites manquées (« nuit claire », « clarté argentée », date juive sans le mot « lune ») Lecture intégrale de l'italien, deux passes, filet lexical, rappel estimé (§ 6.4)
W2 Français comme texte de travail Écarts de traduction (≈ 21 faux positifs dans l'étude des anomalies) L'italien est la référence ; le français sert à l'affichage et au journal des écarts
W3 Lots d'extraction contenant jfl_text / dc_text Fuite possible de la date vers l'encodage Aveuglement strict (§ 3, P3)
W4 Heures d'horloge fixées par l'agent (« l'aube ≈ 04:30-05:45 selon la saison ») Il faut connaître la saison, donc la date Fenêtres ancrées sur le soleil, calculées par le script (§ 5.4)
W5 Vocabulaire centré sur la lune ; soleil, saisons, relief et magnitudes absents ; body_visible grossier ; une étoile par constellation Pans entiers non testés Vocabulaire v2 (§ 5.5), Hipparcos, figures de constellations, visibilité selon la magnitude, relief en option
W6 Jour lunaire converti grossièrement (âge ∈ [d-0,5 ; d+2]) Tests calendaires imprécis Calendrier juif observationnel (croissant visible, critères de Yallop et d'Odeh)
W7 Seules les discordances relues ; corrections faites en voyant le résultat (ex. 5.4-2 recodé « Jupiter », qui passe alors à la date de Lavère) Biais vers la concordance Relecture de l'encodage à l'aveugle avant tout calcul ; après calcul, relecture explicative seulement ; toute correction tardive est journalisée et publiée des deux façons
W8 Valeurs p de Poisson-binomiale (indépendance supposée) ; taux de base « même heure, ± 5 ans » sans saison ni calendrier Valeurs p trop optimistes ; confusion entre « cohérent avec le mois lunaire » et « juste pour l'année » Nulls par décalage de la chronologie entière (dépendances conservées), décalages luni-solaires, bootstrap par chapitre (§ 8)
W9 Énoncés de savoir exclus Aucune évaluation des affirmations scientifiques ou des anachronismes Catégories knowledge et lexicon + vérification web (§ 6.9)
W10 Un seul relevé par passage Pas de mesure de fiabilité Accord inter-annotateurs sur un échantillon (§ 6.5)

1.4 Le texte italien disponible

  • Source : Meilisearch valtorta_it (indexvaltorta.org), documents {id, book: "EMV", language: "it", chapter (chaîne), section, reference, name, content}. L'index ne contient que l'EMV : 5 801 documents, un par section.
  • Contrôles faits le 24/09/2026 :
    • 652 chapitres, tous non vides ;
    • 5 801 références, identiques à celles de l'index français rag_emv_fr ;
    • environ 10,0 millions de caractères (10,3 Mo en UTF-8) ;
    • chapitre médian : 13,8 Ko ; plus gros chapitre : 596 (86 Ko).
  • Numérotation et frontières. La numérotation est la même, mais les frontières de sections ne coïncident pas toujours : la fin de 93.2 italien se trouve dans 93.3 français. L'index français est en outre un découpage RAG avec recouvrements (du texte dupliqué). L'italien est donc canonique pour les références. L'affichage en français se fera par alignement dans le chapitre, pas par simple égalité de référence.
  • Points à contrôler :
    • 9 sections se terminent sans ponctuation finale (209.2, 210.6, 288.6, 313.2, 321.2, 364.2, 472.5, 546.3, 622.4) ; il faut vérifier qu'elles ne sont pas tronquées ;
    • l'édition source de l'index est à confirmer : on suppose la 2ᵉ édition du CEV ;
    • l'index italien n'a pas de champ de notes d'édition (le français en a un), et seuls 52 chapitres portent une date de rédaction dans le texte (« 16 agosto 1944 »…).
  • Accès. Cloudflare renvoie 403 au User-Agent Python par défaut ; il faut passer un User-Agent de type curl. Le filtre s'écrit book = EMV AND chapter = "93", car chapter est une chaîne.
  • Droits. Le texte appartient au Centro Editoriale Valtortiano. Le texte intégral reste local : il n'entre pas dans l'image Docker (voir § 10). Les sorties ne contiennent que des citations courtes.

1.5 Ce que la v1 ne pouvait pas voir : exemples

Ces passages ont été repérés en préparant ce plan (italien, non encore vérifiés). Aucun ne figure dans la v1, et 460.2 ne figure pas non plus parmi les anomalies.

Réf. Italien Pourquoi c'est dans le périmètre
460.2 « un limpido sole che balza ora da dietro i monti occidentali » (matin, terrasse de Capharnaüm) Soleil qui se lève à l'ouest : erreur possible indépendante de toute date
286.2 / 372.1 « Il sole sta per calare dietro i monti della Giudea » / « sole che si alza da dietro i colli che celano Betania e la valle del Giordano » Contrôles de relief et d'azimut
132.7 Pierre : « Occhio alla polare, mano ferma al timone » En l'an 30, la Polaire est à 11,6° du pôle (Kochab à 8,4°), calcul skyfield : il n'y avait pas d'« étoile polaire ». Anachronisme de notion possible
448.10 Jésus à Pierre : « Prendi il timone e guarda la Polare » Même question
136.2 Jésus à Simon : « stelle e stelline, e pianeti […] hanno vita e splendore […] per il sole che li illumina » Énoncé de savoir : les étoiles éclairées par le soleil ?
5.10 Dictée : « astri e pianeti che scorrono come saette e frecce, rigando l'arco del firmamento » Énoncé de savoir (planètes ou météores ?)
168.10 Marie : « al novilunio di aprile saremo a Betania » Calendrier (néoménie avant Pâque) et mois romain dans la bouche de Marie
426.10 « Ormai è luna nuova… » (veille de 426.11, jugé impossible en v1) Lecture « conjonction » ou « premier croissant »
440.6 « a luna nuova va messa a dimora » Croyance agricole lunaire : relevée, classée générique, non datable



2. Questions et critères de jugement

2.1 Questions

  • Q1 — Recensement. Qu'est-ce que l'EMV dit du ciel et du calendrier, où, et dans quelle voix (narration, dictée, dialogue, note de l'autrice) ?
  • Q2 — Cohérence interne, sans date. Les descriptions sont-elles possibles à une date au moins ? Sont-elles cohérentes avec ce que le texte dit lui-même (jour du mois lunaire, fête, saison, heure) ?
  • Q3 — Concordance avec les chronologies publiées. Lavère (grégorien tel que publié), Lavère relu en julien, De Caro (julien).
  • Q4 — Spécificité. Le texte désigne-t-il une année (et des jours) précise ? Ou seulement une place cohérente dans le mois lunaire, que toute chronologie calée sur les fêtes « gagne » d'office ?
  • Q5 — Savoir. Les énoncés astronomiques (dictées, discours, dialogues) sont-ils exacts, connus en 1943-47 et plausibles dans la bouche de leur locuteur au Iᵉʳ siècle ?
  • Q6 — Continuité. Qu'est-ce qui change par rapport à la v1, et pourquoi ?

2.2 Critères principaux (fixés avant tout calcul)

E1 — Exhaustivité.

  • 100 % des sections ont une fiche de couverture dans chacune des deux passes.
  • 0 citation invalide.
  • 100 % des résidus du filet lexical sont arbitrés.
  • 100 % des 242 observations v1 sont retrouvées ou écartées avec un motif.
  • Rappel estimé (capture-recapture, § 8.8) ≥ 0,97 sur les éléments datables. Si ce seuil n'est pas atteint, on le dit et on lance une passe ciblée.

E2 — Impossibilités. Nombre et liste des éléments dont toutes les lectures encodées avant calcul échouent à toutes les dates de la fenêtre de balayage W (§ 8.1), en tolérance large. Chacun est accompagné d'une explication vérifiée.

E3 — Spécificité de l'année. Rang de la chronologie de Lavère (grégorien publié, marge s = 1 jour, score pondéré par l'information, ensemble principal § 8.3) parmi les décalages luni-solaires N3 (§ 8.4). La valeur p de rang vaut (1 + nombre d'alternatives de score ≥) / (1 + nombre d'alternatives). Même calcul pour De Caro, en résultat secondaire.

E4 — Calendrier. Ensemble des années (entre 20 et 40 apr. J.-C.) compatibles avec toutes les affirmations explicites de jour de semaine, de fête et de date juive, selon le modèle de calendrier observationnel, dans ses variantes. Cet ensemble est comparé aux années de Lavère et de De Caro.

E5 — Savoir. Répartition des verdicts des énoncés knowledge et lexicon (exact / inexact / non testable × connu ou non en 1943-47 × plausible ou non dans la bouche du locuteur), avec la liste des cas notables.

2.3 Critères secondaires (exploratoires, étiquetés comme tels)

  • Taux de concordance par catégorie, couche narrative, force et relation à la scène.
  • Comparaison avec la v1.
  • Planètes seules.
  • Passages cités par Lavère ou non.
  • Lavère relu en julien.
  • Tests saisonniers (T2).
  • Toutes les analyses de sensibilité (§ 8.7).
  • Options C1 à C4 (§ 6.11).

2.4 Ce que l'étude ne dira pas

Elle ne tranche pas l'origine de l'œuvre. Elle établit des faits vérifiables : ce que dit le texte, ce que montre le ciel, ce qu'un hasard ou un auteur bien informé produirait, et ce qu'un voyant « parfait » produirait (simulations, § 8.6).



3. Principes de méthode

  • P1 — L'original fait foi. Relevé, citations et encodage se font sur l'italien. Le français sert à l'affichage et au journal des écarts de traduction, qui est un sous-produit utile.

  • P2 — Exhaustivité vérifiable. Chaque section reçoit une fiche de couverture par passe (même vide). La couverture se contrôle par script ; le rappel se mesure.

  • P3 — Aveuglement. Les agents de relevé, d'encodage, d'arbitrage et de relecture d'encodage :

    • ne reçoivent aucune chronologie ni date proposée, et aucun accès au wiki, à emv/astro/, à existing-enigmes-* ou au web ;
    • ne voient aucun résultat de calcul.

    Les dates ne sont rattachées qu'ensuite, par script. Si l'orchestrateur ne permet pas de retirer les outils web, l'interdiction figure dans la consigne et un audit des appels d'outils est fait dans les journaux.

  • P4 — Pré-enregistrement. Plusieurs éléments sont figés et étiquetés dans git avant tout calcul sur les chronologies :

    • le codebook et le vocabulaire de contraintes ;
    • les tolérances et la fenêtre de balayage ;
    • les scores, les nulls et les critères.

    Toute modification ultérieure passe par emv/astro-it/CHANGELOG.md et les résultats sont publiés avant et après.

  • P5 — Symétrie. Même relecture pour ce qui concorde et ce qui discorde. Les simulations de contrôle (§ 8.6) valident les tests avant de regarder les vrais résultats.

  • P6 — Neutralité. Ni apologète ni détracteur. Un résultat qui s'effondre est aussi utile qu'un résultat confirmé.

  • P7 — Séparation des rôles. Les agents lisent, citent et encodent. Python calcule. Aucun agent ne fait de calcul astronomique de tête.

  • P8 — Traçabilité. Toute affirmation finale renvoie à sa citation italienne, sa référence, sa lecture, ses contraintes et son calcul.

  • P9 — Reproductibilité. Versions épinglées (skyfield, jplephem, numpy…), empreinte SHA-256 des éphémérides et du texte, graines aléatoires fixées. Un script unique rejoue tous les calculs.

  • P10 — Pas d'écrasement de la v1. La v1 reste dans emv/astro/ ; la v2 vit dans emv/astro-it/.



4. Définitions

4.1 L'élément astronomique (item)

Un item est une affirmation, dans une section, sur :

  • l'état du ciel (lune, soleil au-delà du simple repère horaire, étoiles, planètes, phénomènes passagers) ;
  • ou le calendrier luni-solaire (jour du mois, néoménie, fête datée, mois, intercalation, jour de semaine lié à une date) ;
  • ou un savoir ou une notion astronomique (nature des astres, mouvements, cosmologie, navigation aux étoiles, astrologie, noms d'astres ou de mois dans la bouche d'un personnage).

Précisions :

  • Une même phrase peut donner plusieurs items (la lune et Vénus).
  • Les repères horaires seuls (« all'alba », « al tramonto », « ora sesta ») ne sont pas des items. Ils vont dans la chronologie des scènes (§ 5.3) et servent à dater les items. Ils deviennent des items s'ils affirment quelque chose de testable sur le soleil : direction, relief derrière lequel il se lève ou se couche, hauteur à une heure donnée, ombre, durée du jour.
  • Les emplois figurés (Marie « stella del mattino », « come le stelle del cielo », comparaisons, prophéties, poésie de la création) ne sont pas des items. Ils sont consignés dans la fiche de couverture, avec un motif, pour que le filet lexical puisse être refermé et le rappel audité.

4.2 Catégories (category)

Code Contenu Datable ? Exemple
moon Phase, aspect, hauteur, direction, lever ou coucher, présence ou absence, clair de lune oui 102.6
sun Direction ou relief du lever et du coucher, hauteur à une heure donnée, ombres, durée du jour ou de la nuit oui 460.2, 286.2
star Étoiles nommées ou décrites, constellations, Voie lactée, ciel étoilé détaillé oui 3.2, 357.2
planet Planètes nommées, « stella del mattino / della sera », astre très brillant identifiable oui 357.2
transient Éclipses, comètes, météores ou étoiles filantes oui ou documentaire —
optics Arc-en-ciel, halo, lune rousse (géométrie testable : soleil < 42° pour un arc-en-ciel) parfois —
calendar Jour du mois lunaire, néoménie, fête datée, mois hébreu ou romain, intercalation, « lune » comme durée, jour de semaine lié à une date oui 168.10
knowledge Énoncé de savoir sur les astres (quel que soit le locuteur) non (vérification web) 136.2, 5.10
lexicon Notion ou terme astronomique potentiellement anachronique dans la bouche d'un personnage (la Polaire comme étoile du pôle, heures d'horloge, mois romains…) non (vérification web) 132.7, 448.10
extraordinary Phénomène présenté comme prodige (étoile de Bethléem, ténèbres de la Passion, signes) : relevé, décrit, testé seulement pour ses aspects naturels collatéraux partiel 5.4-5.6

Nuance pour lexicon : les paroles des personnages sont rendues en italien, donc le nom d'un astre (« Venere ») ne prouve rien. Seule la notion compte (la Polaire comme repère du nord en l'an 30).

4.3 Couche narrative (layer) et relation à la scène (scene_relation)

  • layer : narration (Maria décrit la vision) · dictation (dictée de Jésus, de Marie, etc., hors scène) · dialogue (+ speaker) · parable (récit fictif dans une bouche) · author_note (remarque de Maria datée de 1943-47, ex. 587.13 « dalle 23 di giovedì 1° marzo »).
  • scene_relation : present (ciel au moment de la scène) · retrospective (raconté, passé ; ex. 94.3 « per più notti di luna ») · prospective (annoncé ; ex. 168.10) · generic (habituel ou proverbial ; ex. 440.6) · figurative (réservé à la fiche de couverture).

4.4 Datable, testable

  • Datable : catégorie moon, sun, star, planet, transient, optics ou calendar ; relation present, ou retrospective / prospective avec un jour déterminable ; lieu et fenêtre horaire établis.

  • Testable sans date : toute lecture datable, puisqu'on la confronte à toutes les dates de W (E2).

  • Force. L'agent donne une force descriptive (precise, qualitative, vague). La force analytique est calculée par script, à partir du taux de base p (§ 8.2) :

    Force analytique Taux de base
    précise p ≤ 0,15
    qualitative 0,15 < p ≤ 0,5
    vague p > 0,5

4.5 « Exhaustif » : définition opératoire

On ne peut pas prouver 100 %. On garantit une couverture de 100 % (chaque section lue et consignée par deux passes indépendantes, plus le filet lexical, plus l'arbitrage de chaque désaccord), et on estime ce qui reste manqué (§ 8.8). Les critères chiffrés sont ceux de E1.



5. Données et formats

5.1 Arborescence

emv/chunks-it/chNNN.txt           texte italien "[ref] contenu", en-tête « # Capitolo N — titre » (généré, local)
emv/chunks-it/manifest.json       652 chapitres, 5 801 refs, SHA-256 et longueur par section, source et date d'export
emv/astro-it/
  codebook.json                   italien → contraintes, 3 niveaux de tolérance (figé)
  gazetteer.json                  lieux (coordonnées, altitude, incertitude, repères de relief)
  horizons/<place_id>.json        profils d'horizon (option C4)
  batches/{a,b}-NNN.json          composition des lots
  pass-a/items-NNN.jsonl          items encodés (passe A)
  pass-a/coverage-NNN.jsonl       fiche de couverture par section (passe A)
  pass-a/scenes-NNN.jsonl         chronologie des scènes (passe A)
  pass-b/mentions-NNN.jsonl       mentions détectées (passe B, détection seule)
  pass-b/coverage-NNN.jsonl
  keyword-net.jsonl               filet lexical (script)
  reconcile/*.jsonl               appariement A/B/K, cas à arbitrer
  adjudication/*.jsonl            décisions d'arbitrage (+ items ajoutés)
  items.jsonl                     items consolidés (avant relecture d'encodage)
  encoding-review/*.jsonl         relecture aveugle de l'encodage (ok / correctif)
  iaa/*.jsonl                     ré-encodage indépendant d'un échantillon (accord inter-annotateurs)
  observations.frozen.jsonl       items figés (tag git astro-it/encodings-v1)
  chronologies/{lavere,lavere_julian,decaro}.json
  attachment-review/*.jsonl       rattachement scène ↔ date du wiki (aveugle aux résultats)
  engine-tests/report.json        validation du moteur
  scans/<engine_version>/*.npz    matrices de passage item × jour (hors git si volumineuses)
  results/<chronology>.jsonl      résultats par item et par chronologie
  simulations/*.json              contrôles de puissance et de spécificité
  stats.json, endpoints.json      critères E1-E5 et secondaires
  review/*.jsonl                  relecture explicative (après calcul, sans modifier l'encodage)
  redteam/*.jsonl                 équipes rouges
  knowledge/*.jsonl               vérification web des énoncés knowledge / lexicon
  translation-issues.jsonl        écarts italien / français repérés
  synthesis.json                  synthèse rédigée (affichée par le viewer)
  CHANGELOG.md                    toute modification postérieure à un gel
prompts/astro-it-*.md             consignes (§ 6)
scripts/fetch_chunks_it.py
scripts/astro_it/*.py             outillage de la chaîne (validation, rapprochement, capture-recapture…)
scripts/astro/*.py                moteur (étendu, compatible avec la v1) + tests/

5.2 Fiche de couverture (une par section et par passe)

<syntaxhighlight lang="json">{"ref": "102.6", "pass": "A", "batch": "a-041",

"status": "items | figurative_only | none",
"items": ["102.6-a1"],
"seen": [{"quote_it": "come una stella", "class": "figurative", "reason": "comparaison"}],
"notes": ""}</syntaxhighlight>

seen liste tout terme céleste ou calendaire remarqué mais non retenu, avec son motif. C'est ce qui permet de refermer automatiquement la plupart des alertes du filet lexical.

5.3 Scène (une par scène, pour chaque chapitre qui contient au moins un item)

<syntaxhighlight lang="json">{"chapter": 102, "scene_id": "102.s3", "sections": ["102.6", "102.7"],

"day_rel": 0, "day_rel_basis": "même soirée que 102.1 (« La sera è scesa »)",
"part_of_day": "evening", "place_id": "<gazetteer id>", "place_basis": "…",
"weather": "clear | cloudy | rain | storm | unknown",
"stated_calendar": [{"type": "weekday", "value": "venerdì", "quote_it": "…"},
                    {"type": "feast", "value": "Tabernacoli", "day": null, "quote_it": "…"}]}</syntaxhighlight>

day_rel est un décalage en jours civils par rapport à la première scène du chapitre (jour 0). Convention : le jour civil D d'une scène de nuit est celui de la soirée qui ouvre la nuit. Une scène « all'alba » qui suit une nuit appartient au jour D + 1.

5.4 Item (passe A, arbitrage)

Exemple illustratif ; le lieu et l'heure sont à établir au relevé :

<syntaxhighlight lang="json">{"id": "102.6-a1", "ref": "102.6", "chapter": 102, "scene_id": "102.s3", "source": "pass-a",

"quote_it": "La sera è scesa e il primo quarto di luna si alza ora.",
"category": "moon", "layer": "narration", "speaker": "narratrice",
"scene_relation": "present", "datable": true,
"claim": "Au début de la soirée, la lune au premier quartier se lève.",
"place": {"id": "<gazetteer id>", "basis": "…"},
"time": {"day_rel": 0,
         "window": {"kind": "solar", "from": {"event": "sunset", "offset_h": 0.0},
                                     "to":   {"event": "sunset", "offset_h": 2.0}},
         "basis": "« La sera è scesa »"},
"readings": [
  {"reading_id": "r1", "preferred": true, "codebook": ["moon.first_quarter", "moon.rising"],
   "constraints": {"moon_illum": [0.35, 0.65], "moon_waxing": true, "moon_event": {"type": "rise", "tol_min": 30}},
   "justification": "sens littéral"},
  {"reading_id": "r2", "preferred": false, "codebook": ["moon.waxing_generic", "moon.rising"],
   "constraints": {"moon_illum": [0.05, 0.75], "moon_waxing": true, "moon_event": {"type": "rise", "tol_min": 30}},
   "justification": "« primo quarto » au sens lâche de premiers jours de la lune"}],
"weather_confounded": false,
"anachronism_flags": [],
"strength_descriptive": "precise",
"confidence": "haute", "notes": ""}</syntaxhighlight>

Règles :

  • Les lectures alternatives sont encodées au relevé, à partir du seul texte, jamais après le calcul.

  • preferred sert au critère principal ; les autres servent à l'analyse de sensibilité.

  • Types de fenêtre (window.kind) :

    Type Définition
    solar événement (sunrise, sunset, solar_noon, solar_midnight) + décalage en heures
    sun_alt intervalle de hauteur du soleil + branche morning / evening
    seasonal_hour heures temporaires du jour, de 1 à 12, en fractions du jour clair
    night_watch veille de nuit : roman4 ou jewish3, numéro de veille
    night whole, first_half ou second_half
    clock heure locale ; réservé aux author_note et aux heures d'horloge explicites

5.5 Vocabulaire de contraintes v2 (compatible avec la v1)

Les clés v1 sont conservées (moon_*, sun_*, body_*, eclipse…). Clés ajoutées :

Domaine Clés ajoutées
Lune moon_illum (intervalle) · moon_event (lever ou coucher dans la fenêtre, avec tolérance) · moon_light (clair de lune : lune levée, hauteur ≥ h, illumination ≥ x) · moon_behind / moon_over (repère du gazetteer)
Soleil sun_event · sun_az · sun_behind (repère) · sun_culmination_alt · shadow_ratio (longueur de l'ombre / hauteur de l'objet, d'où la hauteur du soleil) · day_length_h
Étoiles star (nom ou numéro HIP) · constellation ({name, min_stars, alt_min} sur les étoiles de la figure) · milky_way_visible · limiting_mag (modèle simplifié de Schaefer, 1993)
Planètes planet · planet_visible (magnitude et hauteur du soleil) · morning_star / evening_star (Vénus en lecture préférée ; « toute planète de magnitude ≤ -1,5 » en alternative) · bodies_conjunction
Phénomènes eclipse solaire locale (séparation topocentrique soleil-lune) et lunaire visible du lieu · comet et meteor_shower (documentaires : catalogues historiques, sans calcul)
Calendrier lunar_day (`{day, month

5.6 Codebook (extrait ; version complète au § 7)

<syntaxhighlight lang="json">{"id": "moon.first_quarter", "it": ["primo quarto", "luna al primo quarto", "mezza luna crescente"],

"meaning": "premier quartier",
"constraints": {"strict":  {"moon_illum": [0.42, 0.58], "moon_waxing": true},
                "nominal": {"moon_illum": [0.35, 0.65], "moon_waxing": true},
                "lenient": {"moon_illum": [0.25, 0.75], "moon_waxing": true}},
"notes": ""}</syntaxhighlight>

Les agents citent des codebook ids. Une contrainte hors codebook est permise avec "custom": true et une justification ; elle est alors relue systématiquement.

5.7 Gazetteer

<syntaxhighlight lang="json">{"id": "capernaum", "names_it": ["Cafarnao"], "names_fr": ["Capharnaüm"],

"lat": 32.881, "lon": 35.575, "elev_m": -200, "uncertainty_km": 0.5,
"landmarks": {"golan_heights": {"az": [45, 135]}, "western_hills": {"az": [225, 315]}},
"horizon_profile": "horizons/capernaum.json", "sources": ["…"]}</syntaxhighlight>

Il est constitué une fois pour toutes (lieux de la v1 et du wiki, puis relecture), avant le relevé. Les agents choisissent un place_id au lieu d'inventer des coordonnées.



6. Déroulé détaillé

6.0 Phase 0 — Préalables (≈ ½ journée, sans agents)

  1. Branche git astro-it. Ce plan est figé (tag astro-it/plan-v1) une fois les remarques de Codex et de l'utilisateur intégrées.
  2. Environnement scripts/astro/.venv : épingler les versions dans scripts/astro/requirements.txt :
    • l'existant : skyfield 1.55, jplephem 2.24, numpy 2.5.3 ;
    • les ajouts : jsonschema, scipy, statsmodels (capture-recapture log-linéaire), pytest, et rasterio si l'option C4 est retenue.
  3. Données de référence :
    • catalogue Hipparcos (skyfield.data.hipparcos) ;
    • figures de constellations de Stellarium (constellationship.fab, culture occidentale) ;
    • SHA-256 de de406.bsp ;
    • option C4 : tuiles Copernicus GLO-30 autour de 31-34° N, 34-37° E.
  4. Contrôle du modèle de ΔT de skyfield 1.55 : on attend la spline de Stephenson, Morrison et Hohenkerk (2016), à confirmer. Valeurs relevées : 10 654 s en 21 av. J.-C. et 10 120 s en l'an 30. On note la marge d'incertitude à tester (± 30 min en sensibilité).
  5. Droits d'auteur : ajouter emv/chunks-it/ à .dockerignore. Décider s'il doit être versionné dans le dépôt privé (§ 11, décision D8).

6.1 Phase 1 — Corpus italien (script, sans agents)

  • scripts/fetch_chunks_it.py exporte le texte : une requête par chapitre, User-Agent curl, huit en parallèle. Il écrit emv/chunks-it/chNNN.txt et manifest.json.
  • Contrôles automatiques :
    • 652 chapitres et 5 801 références, numérotation continue 1..n dans chaque chapitre ;
    • aucune section vide ;
    • liste des sections sans ponctuation finale ;
    • comparaison des longueurs avec le français, pour information seulement (découpage RAG, recouvrements).
  • Contrôle manuel des 9 sections suspectes (§ 1.4), par comparaison avec une autre source italienne si elle est disponible.
  • Alignement français ↔ italien pour l'affichage : dans chaque chapitre, alignement de phrases (agent ou similarité de chaînes) seulement pour les sections qui portent des items ; sinon, repli sur la section de même référence ± 1.

6.2 Phase 2 — Instruments (≈ 1 journée ; quelques agents)

  1. Codebook v0 (§ 7), rédigé puis relu par un agent chargé de lister les tournures italiennes manquantes. On part des 750 sections qui contiennent un terme du ciel nocturne et des 1 707 qui contiennent un terme céleste ou horaire au sens large.

  2. Gazetteer v0 : environ 60 à 100 lieux. Point de départ : les lieux de emv/astro/emv-obs/, auxquels un agent ajoute les pages du wiki (coordonnées, altitude, repères de relief avec leurs azimuts depuis les points d'observation fréquents). Relecture humaine des 20 lieux les plus fréquents.

  3. Schémas JSON : fiche de couverture, scène, item, mention, codebook, gazetteer, fichiers scripts/astro_it/schemas/*.json.

  4. Validateur scripts/astro_it/validate.py. Les agents le lancent eux-mêmes avant de rendre leur lot. Il vérifie :

    • la conformité au schéma ;
    • que chaque quote_it est une sous-chaîne exacte de la section, après normalisation des apostrophes, des guillemets et des espaces (garde-fou contre les citations inventées) ;
    • qu'il y a une fiche de couverture par section du lot ;
    • que les ids du codebook et du gazetteer existent ;
    • que les références croisées sont cohérentes (items ↔ couverture ↔ scènes).
  5. Filet lexical scripts/astro_it/keyword_net.py : lexique italien versionné, pas de hiérarchie « figuré / littéral ». Il écrit keyword-net.jsonl au format {ref, terms, pattern_ids}.

    Domaine Termes
    Lune luna, lunare, plenilunio, novilunio, neomenia, falce, falcetta, spicchio, mezzaluna, crescente, calante
    Ciel stella, stellato, astro, firmamento, costellazione, via lattea
    Astres nommés pianeta, Venere, Espero, Vespero, Lucifero (au sens d'astre du matin), Orione, Pleiadi, Carro, Orsa, Boote, Arturo, Sirio, polare, zodiaco
    Phénomènes eclissi, cometa, meteora, stella cadente
    Soleil sole, tramonto, alba, aurora, crepuscolo, meriggio, solstizio, equinozio, ombra
    Calendrier mois hébreux et romains, calende, « ora terza / sesta / nona », vigilia, canto del gallo
  6. Consignes (prompts/astro-it-*.md) :

    Fichier Rôle
    extract.md Passe A : relevé complet et encodage
    detect.md Passe B : détection seule, rappel maximal
    adjudicate.md Arbitrage
    encoding-review.md Relecture aveugle de l'encodage
    attachment-review.md Rattachement scène ↔ date
    explain-review.md Relecture explicative après calcul
    redteam-defense.md, redteam-attack.md Équipes rouges
    knowledge.md Vérification web des énoncés de savoir

    Toutes reprennent les règles du projet :

    • italien obligatoire ;
    • fichier de sortie écrit en une fois puis validé ;
    • fichiers temporaires dans le scratchpad seulement ;
    • aucune modification d'autres fichiers.

6.3 Phase 3 — Pilote (~20 chapitres ; ≈ 25 agents) → point de décision n° 1

Chapitres.

  • Des chapitres « connus » : 3, 5, 80, 94, 102, 132, 136, 168, 271, 286, 357, 426, 448, 460, 543, 545, 630, 632.
  • Le plus gros chapitre (596).
  • Deux chapitres tirés au sort sans aucun terme du filet lexical, pour mesurer les faux positifs et les manques de l'inattendu.

Déroulé.

  • Chaîne complète : passes A et B, filet K, rapprochement, arbitrage, relecture d'encodage, ré-encodage indépendant de tout le pilote pour l'accord inter-annotateurs.
  • Pas de calcul sur les chronologies, seulement E2 (impossibilités) et le calcul des taux de base.

Critères de passage.

  • 100 % des observations v1 de ces chapitres retrouvées ou écartées avec motif.
  • 100 % des lots valides après auto-contrôle ; 0 citation inexacte.
  • Accord sur la classe de phase ≥ 0,8 (κ de Cohen) ; accord sur l'ancre horaire ≥ 85 % ; accord sur la direction ≥ 85 % ; day_rel identique ≥ 85 %.
  • Moins de 5 % de résidus du filet lexical non expliqués par les fiches de couverture.
  • Coût (durée, tokens) par Ko de texte mesuré, pour extrapoler.

Sortie. Corrections du codebook, du schéma et des consignes, puis gel (tag astro-it/instruments-v1). C'est l'utilisateur qui décide du passage à l'échelle.

6.4 Phase 4 — Relevé exhaustif → point de décision n° 2

Passe A — relevé et encodage complets.

  • Opus, lots de chapitres entiers ≤ 55 Ko d'italien, soit 221 lots. Un chapitre n'est jamais coupé, même le 596 (86 Ko).
  • Pour chaque lot : fiche de couverture pour toutes les sections, scènes des chapitres qui portent des items, items complets.
  • L'agent lance validate.py et corrige jusqu'à obtenir un résultat valide.

Passe B — détection seule, indépendante.

  • Opus, autre consigne, lots ≤ 70 Ko avec des frontières décalées par rapport à A, soit ≈ 170 lots.
  • Elle liste toute mention céleste ou calendaire (y compris figurée, marquée comme telle) : {ref, quote_it, category_guess, literal}. Pas d'encodage.
  • La consigne est tournée vers le rappel maximal : il vaut mieux trop que pas assez.

Filet K — script (Phase 2).

Rapprochement (scripts/astro_it/reconcile.py). Un item A et une mention B correspondent s'ils sont dans la même section ou une section voisine (± 1) et que leurs citations se recouvrent (inclusion, ou Jaccard sur les mots ≥ 0,5). Le script produit :

  • les items A ∩ B (acquis) ;
  • les items de A seul (maintenus, et comptés pour la capture-recapture) ;
  • les mentions littérales de B seul (à arbitrer) ;
  • les résidus de K : sections avec un terme que ni les items de A, ni les mentions littérales de B, ni les seen de A n'expliquent (à arbitrer).

Arbitrage. Un agent Opus par tranche de chapitres :

  • il relit l'italien en contexte et décide : inclure (et encoder avec la consigne et le codebook de la passe A), fusionner ou exclure (avec motif) ;
  • sortie : adjudication/*.jsonl ;
  • les items ajoutés portent source: "adjudication".

Mesures d'exhaustivité (E1).

  • Couverture : 5 801 sur 5 801 pour A et pour B.
  • Observations v1 retrouvées : 242 sur 242, avec un appariement par référence ± 1, puisque la v1 citait des références issues du découpage français.
  • Capture-recapture (§ 8.8) : estimateur de Chapman pour chaque paire, et modèle log-linéaire à trois sources (A, B, K), par strate (catégorie, force).
  • Échantillon de contrôle « au microscope » : 30 chapitres tirés au sort et stratifiés par taille. Un agent classe chaque phrase qui contient un terme du lexique ou une indication d'heure, ce qui donne une estimation directe du rappel.

Point de décision n° 2. Si le rappel estimé est < 0,97 sur les éléments datables, on lance une passe ciblée sur les strates faibles.

6.5 Phase 5 — Encodage validé à l'aveugle → gel → point de décision n° 3

  1. Relecture de l'encodage (Opus, environ 25 items par agent, soit ≈ 40 agents).
    • L'agent reçoit l'item, sa section et son chapitre en italien, le codebook et le gazetteer. Pas de date, pas de résultat.
    • Il vérifie : fidélité de la citation et du sens ; lectures alternatives pertinentes et complètes ; ids du codebook ; ancre horaire ; day_rel ; lieu ; relation à la scène ; couche narrative ; weather_confounded.
    • Sortie : ok ou fix (correctif + motif).
    • Le script applique les correctifs, et chaque modification est tracée.
  2. Accord inter-annotateurs : 15 % des chapitres porteurs d'items, stratifiés, sont ré-encodés par un agent indépendant qui n'a pas vu l'encodage. On mesure le F1 au niveau des items, puis l'accord par champ (classe de phase, ancre horaire, direction, day_rel, lieu). Un champ en dessous des seuils du pilote déclenche une clarification du codebook et une nouvelle relecture de ce champ, avant le gel.
  3. Gel : observations.frozen.jsonl, tag astro-it/encodings-v1. Tout changement ultérieur est consigné dans CHANGELOG.md et publié des deux façons.

6.6 Phase 6 — Moteur de calcul v2

Cette phase peut avancer en parallèle des phases 2 à 5 : elle est entièrement scriptée et se prête à une implémentation ou une relecture par Codex.

Modules (dans scripts/astro/ ; ceux de la v1 restent compatibles) :

Module Fonctions principales Notes
time_windows.py solar_events(lat, lon, civil_jd0) → lever et coucher du soleil, midi et minuit solaires, crépuscules civil, nautique et astronomique (TU) ; resolve_window(spec, lat, lon, civil_jd0) → (ut_start, ut_end) Heures temporaires : H = (coucher − lever) / 12 ; veilles romaines = 4 parts égales de la nuit, veilles juives = 3 parts
jewish_calendar.py crescent_q(sunset_ut, lat, lon) (critère de Yallop, catégories A à F ; variante Odeh) ; first_visibility_evening(conjunction, place, level) ; months(years, variant) ; jewish_date(civil_jd, part_of_day, variant) Variantes de visibilité : stricte (A), nominale (A-B), large (A-C). Un mois dure 29 ou 30 jours (plafond de 30 jours). Règle de Nisan en variantes : 15 Nisan après l'équinoxe (22 mars julien en l'an 30), 14 Nisan après l'équinoxe, ou règle de l'orge non modélisée donc ambiguïté ± 1 mois signalée
stars.py Recherche par nom ou numéro HIP (Hipparcos, mouvement propre, précession de skyfield) ; constellation_visible(name, t, place, min_stars, alt_min) ; limiting_mag(sun_alt, moon_illum, moon_alt, moon_sep) Remplace les 21 étoiles codées en dur
horizon.py (option C4) horizon_profile(place_id) à partir du modèle de terrain, au pas de 1°, courbure et réfraction comprises ; apparent_rise_set(body, place, window) Racines de alt(t) − h(az(t)) = 0
constraints.py evaluate_v2(constraints, place, ut_array) → (pass, marge par contrainte) Marge = distance signée à la satisfaction (degrés, fraction, minutes)
scan.py scan(item, reading, tolerance, days) → booléens et marges pour chaque jour civil de W Un fichier compact par scénario (moteur × tolérance × horizon × ΔT)
chronology.py Lecture du wiki (reprise de parse_chronology.py), variantes Lavère grég., Lavère jul., De Caro jul. ; rattachement item → jour civil jour = date du chapitre (scène d'ancrage) + day_rel
analyze_it.py Critères E1-E5, secondaires, sensibilité, simulations Écrit stats.json et endpoints.json

Validation du moteur (T0 ; engine-tests/report.json, pytest).

  • Nouvelles et pleines lunes du Iᵉʳ siècle comparées au catalogue des phases de la NASA (Espenak) : écart attendu de quelques minutes, dû aux modèles de ΔT.
  • Éclipses de lune comparées au Five Millennium Canon (Espenak et Meeus). Cas test : l'éclipse partielle du 3 avril 33 (julien), visible au lever de la lune à Jérusalem.
  • Levers et couchers (soleil et lune) : 100 dates et lieux tirés au hasard, comparés à une implémentation indépendante (PyMeeus ou astropy + erfa), à ± 2 min près.
  • Calendrier juif : on retrouve les cas classiques de Humphreys et Waddington (1983) et de Schaefer (1990), le 14 Nisan tombant un vendredi en 30 (7 avril julien) et en 33 (3 avril julien) dans la variante nominale.
  • Fenêtres : à l'équinoxe, une heure temporaire vaut ≈ 60 min ; les veilles partitionnent la nuit ; une fenêtre qui passe minuit reste bien rattachée à la soirée du jour D (ce qui supprime l'heuristique c < 12 de la v1).
  • Non-régression : les 242 observations v1, recodées dans le format v2 par script (sans agent), redonnent les verdicts v1 à la tolérance nominale, à l'exception des écarts attendus et documentés (fenêtres solaires, jour lunaire).

Coût de calcul. Environ 1 000 lectures × ≈ 51 000 jours de W × 8 échantillons horaires, vectorisés par item. Les événements (levers, couchers, croissants) sont précalculés une fois par lieu. Compter quelques secondes par item, soit quelques minutes à dix minutes avec 12 processus. Les matrices de passage pèsent environ 6 Mo par scénario.

6.7 Phase 7 — Rattachement aux chronologies

  • Lecture du tableau du wiki : 660 lignes pour 652 chapitres ; 635 lignes datées par Lavère, 210 par De Caro, 16 plages de dates. Les 25 lignes sans date de Lavère concernent les chapitres 1, 2, 7, 9-11, 13-15, 17, 22, 33-39, 42, 43, 492 et 646-648, puis 652. Test unitaire : 30 lignes tirées au sort comparées au texte du wiki.
  • Relecture du rattachement (≈ 20 agents). Pour chaque chapitre porteur d'items datables, l'agent lit la ligne du wiki (date, titre, note) et le chapitre italien, puis indique quelle scène la date désigne (anchor_scene). Il signale les retours en arrière et les chapitres qui s'étendent sur plusieurs jours. Il ne voit aucun résultat de calcul.
  • Les dates sont ensuite calculées par script pour chaque item et chaque chronologie.

6.8 Phase 8 — Calculs et tests (après le gel ; détail au § 8)

Test Contenu
T0 Validation du moteur (§ 6.6)
T1 Sans date (E2) : taux de base sur W, impossibilités, cohérence interne (par exemple « c'est le 10 Nisan » + description de la lune, testés ensemble sur toutes les années avec le calendrier observationnel)
T2 Saisonnier : saison tirée du seul texte (fête, mois nommé) ; taux de base limité aux jours compatibles de toutes les années de W (ex. Orion un soir de Tabernacles)
T3 Chronologies publiées (Q3) : concordances, marges, quasi-concordances à ± 1 jour ; tableau comparable à celui de la v1 (null N1) et tableaux avec les nulls robustes (N2, N3)
T4 Spécificité (E3) : décalages luni-solaires, marges s = 0, 1, 2 appliquées à égalité, scores pondéré et non pondéré
T5 Calendrier (E4) : années 20-40 × variantes du calendrier observationnel, contre toutes les affirmations explicites de jour de semaine et de date juive, rapportées à la pâque n de la vie publique (ordre narratif)
T6 Planètes : pour chaque item de planète, liste des dates de W qui satisfont la description ; place des dates de Lavère et de De Caro dans cette liste
T7 Simulations de contrôle (§ 8.6), à faire tourner avant de lire T3 et T4
T8 Comparaison avec la v1 : ce qui change et pourquoi (italien, aveuglement, codebook, moteur)
T9 Sensibilité (§ 8.7)
T10 Les 204 affirmations de Lavère recalculées avec le moteur v2 (robustesse seulement, sans nouvelle relecture)

6.9 Phase 9 — Relectures, équipes rouges, énoncés de savoir → point de décision n° 4

  1. Relecture explicative (après calcul). Elle couvre toutes les impossibilités, toutes les discordances des items précis ou qualitatifs, et un tirage de même taille parmi les concordances.

    • Le relecteur explique ce que montre le ciel, en italien et avec le calcul à l'appui, sans modifier l'encodage.
    • Une erreur d'encodage découverte à ce stade est consignée dans CHANGELOG.md ; les résultats sont publiés avec et sans cette correction.
  2. Équipes rouges (≈ 6 agents).

    • La défense tente de sauver impossibilités et discordances : lectures charitables, météo, variantes du texte, erreur du wiki.
    • L'attaque tente de faire tomber les concordances : imprécision, taux de base élevé, circularité, fête qui impose la phase.
    • Un arbitre rédige la synthèse de ce qui résiste.
  3. Énoncés knowledge et lexicon (Opus avec recherche web, environ 5 items par agent, vagues ≤ 20 agents à cause du débit de WebSearch). Grille :

    • fidélité (italien) ;
    • exactitude aujourd'hui (exact / inexact / partiellement / non testable, car poétique ou théologique) ;
    • état du savoir en 1943-47, en visant les sources italiennes plausibles : Enciclopedia Italiana Treccani (1929-37), astronomie populaire (Flammarion traduit, Secchi, Schiaparelli), plus les sources déjà dans sources-1940s/ ;
    • plausibilité dans la bouche du locuteur au Iᵉʳ siècle : Aratos, Pline l'Ancien (livre II), Géminos, livre astronomique d'Hénoch, calendriers de Qumrân, Mishna Rosh Hashana (procédure des témoins de la néoménie ; figures de la lune de Rabban Gamaliel, RH 2,8).

    Les verdicts reprennent ceux du projet :

    • pour une erreur possible : erreur-confirmee, douteux, defendable, faux-positif, avec un error_score ;
    • pour un savoir possiblement en avance : solide, interessant, faible, faux, avec un nugget_score.

    Les défenses de Lavère, du wiki et des réponses aux critiques sont systématiquement consultées (defense-docs/, wiki via l'API w139).

6.10 Phase 10 — Restitution

  • Synthèse (synthesis.json, en français, neutre), sur le modèle de la v1 : en bref ; exhaustivité ; impossibilités ; concordances et spécificité ; calendrier ; planètes ; savoir ; méthode et limites ; journal des modifications.
  • Viewer. Page /astronomie avec un onglet « v2 (italien) » ; la v1 reste consultable.
    • Carte de couverture (652 chapitres × statut).
    • Filtres : catégorie, couche, relation, force, résultat.
    • Fiches d'items (italien d'abord, français aligné, lectures, contraintes lisibles, ciel calculé aux dates de Lavère et de De Caro, taux de base, marges).
    • Courbe du score selon le décalage, avec k = 0 et les alternatives luni-solaires marquées.
    • Tableau des années du critère E4, liste des impossibilités, table des énoncés de savoir.
    • Les graphiques suivent la skill dataviz.
  • Documentation : README du dossier emv/astro-it/ et mise à jour du README racine.
  • Déploiement sur lab.valtortamaria.org seulement sur demande. Rien dans Directus.

6.11 Options (décision au cas par cas)

  • C1 — Corpus témoin Emmerich. On applique la même chaîne à A.-C. Emmerich (The Life of Jesus Christ, The Dolorous Passion, déjà dans sources-1940s/, ≈ 4,8 Mo en anglais, soit ≈ 90 lots). On compare les taux d'impossibilités et de cohérence avec les fêtes : une autre vision « datée » fait-elle aussi bien ? Sans chronologie propre, seuls T1 et T2 sont possibles.
  • C2 — Hypothèse « Viareggio ». Si une table des dates de rédaction chapitre par chapitre est disponible (appareil de l'édition du CEV ; seuls 52 chapitres en portent une dans l'index), on teste si les lunes décrites suivent la lune réelle au-dessus de Viareggio (43,87° N ; 10,25° E), ou de Sant'Andrea di Compito en 1944, le jour de la rédaction. C'est l'explication naturelle la plus directe de certaines concordances, et elle se teste.
  • C3 — Les Quaderni (Cahiers 1943-1950). Même méthode, périmètre élargi.
  • C4 — Horizons réels. Profils tirés du modèle de terrain pour les 15 à 20 lieux les plus fréquents (vallée du Jourdain, rivages du lac, Jérusalem et le mont des Oliviers, Nazareth…). À garder en analyse principale seulement si cela change plus de 2 % des verdicts au pilote ; sinon, en sensibilité.



7. Codebook italien : version initiale (à affiner au pilote)

Valeurs nominales. Les niveaux strict et large resserrent ou élargissent d'environ un tiers ; les valeurs exactes sont figées dans codebook.json.

Lune

Italien Contrainte nominale
luna piena, plenilunio, « tonda », « disco intero » illumination ≥ 0,95
quasi piena, non ancora piena / appena scemata 0,75 ≤ illumination < 0,97, croissante / décroissante
gibbosa 0,60-0,95
primo quarto / ultimo quarto, mezza luna 0,35-0,65, croissante / décroissante (ou les deux si non précisé)
falce, falcetta, spicchio ≤ 0,35
sottile falce, filo di luna ≤ 0,15
crescente / calante croissante / décroissante
luna nuova, novilunio ambigu, deux lectures : (a) conjonction ± 1,5 j, lune invisible ; (b) premier croissant (âge 1-3 j, le soir)
senza luna, notte senza luna lune sous l'horizon pendant la fenêtre (soleil ≤ -12°) ; « tutta la notte » donne no_moon_all_night
chiaro di luna, al lume della luna lune levée, hauteur ≥ 5°, illumination ≥ 0,3
notte buia, oscura, nera contrainte faible : pas (lune levée à ≥ 15° avec illumination ≥ 0,5) ; weather_confounded = true, exclu du critère principal
sorge, si leva, spunta / tramonta, cala moon_event lever / coucher dans la fenêtre, tolérance 30 min
si leva tardi lever ≥ coucher du soleil + 2 h
alta / altissima, a picco, allo zenit, verticale hauteur ≥ 40° / ≥ 70° (à 32° N, la lune culmine au plus vers 86° lors des lunistices majeurs)
bassa / all'orizzonte ≤ 20° / ≤ 8°
a oriente (levante) / a occidente (ponente) / a mezzogiorno / a settentrione azimut 45-135 / 225-315 / 135-225 / 315-45 (secteurs de ± 45°)

Soleil et heures (fenêtres calculées par le moteur pour chaque date)

Italien Fenêtre ou contrainte
alba / aurora / prima dell'alba hauteur du soleil de -12° à 0° le matin / de -18° à -3° / de -18° à -6°
sorge il sole de -1° à +5°, le matin
tramonto / crepuscolo, imbrunire de -4° à +3° le soir / de -12° à 0° le soir
sera du coucher - 1 h au coucher + 3 h
notte fatta / notte fonda soleil ≤ -12° / de coucher + 3 h à lever - 2 h, et soleil ≤ -18°
mezzogiorno, meriggio, ora sesta 6ᵉ heure temporaire (± 1 heure temporaire en tolérance large)
ora terza / ora nona 3ᵉ / 9ᵉ heure temporaire
prima / seconda / terza / quarta vigilia veille romaine n (4 parts égales de la nuit) ; variante juive à 3 veilles
canto del gallo 3ᵉ veille romaine (cf. Mc 13,35), tolérance 2ᵉ-4ᵉ
sole a picco culmination ≥ 70° (impossible en hiver à 32° N, où le soleil culmine vers 35°)
il sole si alza / cala dietro <relief> sun_event + sun_behind (azimut du repère, ou profil d'horizon en C4)

Étoiles et planètes

Italien Contrainte
stelle (visibles) soleil ≤ -6° pour les étoiles brillantes (mag ≤ 1), ≤ -10° sinon ; hauteur ≥ 5-10°
cielo stellato, fitto di stelle soleil ≤ -15° et (lune couchée ou illumination ≤ 0,5)
via lattea soleil ≤ -18°, lune couchée ou illumination ≤ 0,25, au moins 3 des 8 points de référence du plan galactique à ≥ 20°
<constellation> visibile au moins 3 étoiles de la figure (mag ≤ 3) à ≥ 10°, soleil ≤ -12°
stella polare, Carro, Orsa position réelle à la date (précession comprise) ; la notion de « polaire » est versée en lexicon
stella del mattino / della sera Vénus visible à l'est avant l'aube / à l'ouest après le coucher (soleil ≤ -4°, hauteur ≥ 3°) ; alternative : toute planète de mag ≤ -1,5
Venere / Giove / Marte / Saturno / Mercurio planète levée, soleil ≤ -2° (Vénus), ≤ -5° (Jupiter), ≤ -6° (les autres), hauteur ≥ 5°

Calendrier

Italien Contrainte
neomenia, calende, primo del mese jour lunaire 1 (calendrier observationnel)
è il N di <mese> jour lunaire N + mois
Pasqua, Azzimi 14 Nisan (immolation l'après-midi) / 15-21 Nisan
Pentecoste ambigu : 50ᵉ jour à partir du 16 Nisan (usage pharisien), ou dimanche (usage sadducéen ou boéthusien)
Tabernacoli (Capanne) / Encenie (Dedicazione) / Purim / Capodanno / Kippur 15-21 (22) Tishri / à partir du 25 Kislev (8 jours) / 14 Adar (15 dans les villes fortifiées) / 1 Tishri / 10 Tishri
sabato et jours de semaine jour civil pour une scène de jour ; le sabbat commence le vendredi au coucher du soleil
mesi romani (aprile…) mois julien approximatif ; versé aussi en lexicon dans la bouche d'un personnage
« tre lune fa » environ 3 lunaisons (± 1) ; force faible



8. Statistiques

8.1 Fenêtre de balayage W

Les jours civils vont du 1ᵉʳ janvier 60 av. J.-C. au 31 décembre 80 apr. J.-C. (julien), soit ≈ 51 000 jours. W couvre Lavère (-21 à 33), De Caro (31 à 34) et tous les décalages de ± 40 ans.

8.2 Taux de base

Pour une lecture r et une marge s (en jours), on note M_r(d) = 1 si la description est satisfaite à un moment de la fenêtre horaire du jour d, ou de la nuit qui suit, pour les fenêtres de nuit.

  • Taux de base : p_r(s) = moyenne sur d ∈ W de max_{|δ|≤s} M_r(d + δ). Il se calcule avec la même générosité (marge, plage de dates) que le test lui-même.
  • Taux saisonnier (T2) : la même moyenne, restreinte aux jours de W compatibles avec la saison que donne le texte.

8.3 Ensemble principal et scores

Ensemble principal (pré-enregistré). Items datable, scene_relation = present, layer ∈ {narration, dialogue}, non weather_confounded, lecture préférée, tolérance nominale, taux de base p ≤ 0,5.

Scores d'une chronologie Λ (qui fixe le jour d_i(Λ) de chaque item) :

  • S_count(Λ, s) = Σ pass_i ;
  • S_info(Λ, s) = Σ pass_i · min(−ln p_i(s), ln 100). Ce score pondère par l'information : une concordance précise vaut plus qu'une concordance banale.

8.4 Hypothèses nulles

  • N1 (continuité v1). Items indépendants, pass_i ~ Bernoulli(p_i) ; Poisson-binomiale exacte. Ce null est anti-conservateur : il est donné pour comparaison, jamais comme preuve.

  • N2 (décalage circulaire aléatoire). Λ_k = Λ + k jours, avec k tiré uniformément dans ± 40 ans et |k| ≥ 60 ; 10 000 tirages. La structure interne (intervalles, dépendances entre items) est conservée. Ce null répond à : « le ciel concorde-t-il mieux qu'une chronologie quelconque de même forme ? »

  • N3 (décalages luni-solaires : critère E3). Λ_n = Λ + round(n × 29,530589) jours, pour les n tels que le glissement saisonnier |n × 29,530589 − années × 365,25| ≤ 20 jours, avec |n| ≤ 495 (± 40 ans), soit 106 alternatives (calculées : certaines années en comptent deux, par exemple n = 12, à -10,9 j, et n = 13, à +18,7 j). La résolution de la valeur p de rang est donc 1/107. Exemples : n = ±12 (-10,9 j), ±37 (-3,1 j), ±99 (+1,5 j), ±136 (-1,6 j), ±235 (-0,06 j : cycle de Méton).

    Chaque alternative garde approximativement la phase et la saison. Pour le seul décalage de Méton (n = ±235), 235 lunaisons ≈ 255,02 mois draconitiques (écart ≈ 0,6 j) : la latitude, donc la déclinaison de la lune, revient à peu près ; l'anomalie, elle, ne revient pas (251,85 mois anomalistiques), d'où des écarts de phase de l'ordre de ± ½ jour. Pour les autres décalages (12, 37, 99, 136…), les déclinaisons ne reviennent pas. Ce sont des rapprochements approximatifs, pas des retours exacts. Seuls peuvent départager les années :

    • les planètes ;
    • les jours de semaine (testés à part, en T5) ;
    • des détails horaires fins.

    Si le texte encode le ciel réel d'années précises, k = 0 doit se détacher nettement. S'il n'encode qu'une cohérence de mois lunaire, k = 0 se noie parmi les alternatives, ce qui prolongerait le constat de la v1 (« De Caro fait aussi bien »).

  • N4 (liberté égale). Lavère a ajusté ses jours sur ces mêmes lunes (circularité). On accorde donc la même marge s (0, 1, 2 jours) à toutes les chronologies comparées, et on rapporte les trois.

8.5 Incertitude et multiplicité

  • Intervalles de confiance : bootstrap par chapitre (10 000 rééchantillonnages de chapitres) pour les taux et les rapports observé / attendu.
  • Multiplicité : les 5 critères principaux sont annoncés d'avance. Pour E3, une seule variante est principale (Lavère grégorien, s = 1, S_info, ensemble principal). Les autres (s = 0 et 2, S_count, De Caro, Lavère julien) sont secondaires, avec une correction de Holm signalée.
  • Chaque tableau donne n, observé, attendu, rapport, IC à 95 % et valeur p, avec le null précisé.

8.6 Simulations de contrôle (avant de regarder les vrais résultats)

On construit trois jeux synthétiques qui ont exactement les types de contraintes, les fenêtres et les lieux des items réels :

  • (a) Voyant parfait. Chaque description est tirée du vrai ciel aux dates de Lavère (phase, hauteur, direction arrondies aux classes du codebook). Attendu : E3 met k = 0 au rang 1, avec une valeur p de rang de 1/107.
  • (b) Auteur cohérent avec le calendrier. Les phases découlent de la place dans le mois lunaire (âge ≈ jour lunaire − 1 ± 1), sans année ni planètes réelles. Attendu : E3 ne désigne pas k = 0.
  • (c) Auteur naïf. Descriptions tirées au hasard selon les fréquences du texte. Attendu : rang aléatoire.

Si (a) n'est pas détecté ou si (b) l'est, le test est mal calibré : on le corrige avant de lire T3 et T4.

8.7 Analyses de sensibilité

  • Codebook strict, nominal ou large.
  • ΔT ± 30 min.
  • Horizon plat ou réel (C4).
  • Coordonnées du lieu décalées de ± leur incertitude.
  • Lecture préférée, ou toutes les lectures (pire et meilleur cas).
  • Exclusions : dictées, dialogues, rétrospectifs, météo incertaine, passages cités par Lavère, contextes de fête.
  • Calendrier observationnel strict, nominal ou large, et règles de Nisan.
  • Marge s = 0, 1 ou 2.
  • Ajoutées au gel de l'encodage (27/09/2026, avant tout calcul), d'après les marqueurs sensitivity de observations.frozen.jsonl :
    • items retirés au contrôle « item ou non » réintégrés (item_check_dropped), en particulier les retraits non indépendants (prompt_influenced : aubes à l'orient, exemples de la consigne) ;
    • sans les items de force descriptive vague (vague) ;
    • sans les items rejetés par le ré-encodeur indépendant (iaa_disputed) ;
    • jour de semaine du soir lu en jour civil plutôt qu'en jour juif (weekday_civil_removed, 4 items).

8.8 Capture-recapture (E1)

  • Pour deux sources : n_A et n_B items trouvés, m en commun. Estimateur de Chapman : N̂ = (n_A + 1)(n_B + 1)/(m + 1) − 1, avec un intervalle de confiance. Le rappel de A vaut n_A / N̂.
  • Les passes A et B sont toutes deux faites par Opus. Leurs chances de trouver un item sont donc corrélées positivement, ce qui fait sous-estimer N̂ et surestimer le rappel. Trois parades :
    • une troisième source de nature différente (le filet lexical K) ;
    • un modèle log-linéaire à trois sources (GLM de Poisson avec interactions deux à deux, choisi par AIC) ;
    • une stratification par catégorie et par force.
  • En complément : estimation directe du rappel sur l'échantillon « au microscope » (30 chapitres).



9. Orchestration, coûts, calendrier

  • Orchestration par l'outil Workflow de Claude Code, lancé sur demande explicite de l'utilisateur.
    • Vagues de ≤ 50 agents (limite CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS = 50) ; vagues de ≤ 20 pour les agents qui utilisent WebSearch.
    • Reprise possible (resumeFromRunId).
    • validate.py tourne après chaque vague ; un lot invalide est relancé une fois, puis signalé.
  • Modèle : Opus partout (préférence de l'utilisateur ; Opus trouvait environ deux fois plus de candidats que Sonnet lors du test sur les chapitres 52-53).
Phase Agents Web Sorties
2 Instruments 2-4 wiki (gazetteer) codebook, gazetteer
3 Pilote ≈ 25 non pilote complet
4 Passe A 221 non items, couverture, scènes
4 Passe B ≈ 170 non mentions, couverture
4 Arbitrage + microscope ≈ 30 + 30 non décisions, rappel direct
5 Relecture d'encodage + accord inter-annotateurs ≈ 40 + ≈ 30 non correctifs, accord
7 Rattachement ≈ 20 non scènes d'ancrage
9 Relecture explicative + équipes rouges ≈ 25 + 6 non explications
9 Savoir ≈ 30-40 oui verdicts
Total cœur ≈ 600-650
Option C1 Emmerich ≈ 90-120 non témoin
  • Durée : une vague prend environ 20 à 40 minutes, soit en tout 8 à 12 heures de traitement, réparties sur plusieurs sessions entre les points de décision. Les calculs locaux (moteur, balayages, statistiques, simulations) se comptent en minutes.
  • Points de décision de l'utilisateur :
    1. après le pilote (passage à l'échelle et gel des instruments) ;
    2. après le relevé (exhaustivité suffisante ?) ;
    3. avant les calculs (gel de l'encodage) ;
    4. avant la synthèse et un éventuel déploiement.



10. Risques et parades

Risque Parade
Citations inventées ou retouchées Contrôle de sous-chaîne exacte par script (validateur)
Fuite de la date dans l'encodage Aucune chronologie en entrée ; fenêtres solaires ; interdiction de lire emv/astro/, le wiki, existing-enigmes-* et le web ; audit des appels d'outils. Le savoir préalable du modèle (Lavère, De Caro) ne peut pas être exclu : c'est la raison du codebook, de la relecture aveugle et des simulations
Correction a posteriori favorable à une hypothèse Gel, journal des modifications, résultats publiés des deux façons
Frontières de sections différentes entre italien et français Italien canonique ; appariement à la section voisine près ; alignement de phrases pour l'affichage
Texte italien incomplet ou d'édition inconnue Manifeste et empreintes, contrôle des 9 sections suspectes, édition à confirmer (décision D7)
Critère de réussite trop généreux (« à un instant quelconque de la fenêtre, un jour quelconque de la plage ») Taux de base calculés avec la même générosité ; marges rapportées ; sensibilité à la tolérance
Nuages et météo (« notte buia ») weather_confounded, exclu du critère principal
Incertitude du calendrier observationnel (visibilité du croissant, intercalation) Variantes strict, nominal et large, et règles de Nisan ; résultats par variante
Parsage du wiki erroné, date rattachée à la mauvaise scène Test unitaire du parseur ; relecture du rattachement à l'aveugle
Dépendance entre items (même nuit, même chapitre) Nulls par décalage de la chronologie entière ; bootstrap par chapitre
Chances de repérage corrélées entre A et B Troisième source K, modèle log-linéaire, échantillon au microscope
Débit de recherche web (déjà rencontré avec 121 agents) Vagues de ≤ 20 pour la phase « savoir » ; reprise
Droits sur le texte italien (CEV) emv/chunks-it/ hors de l'image Docker ; citations courtes seulement dans les sorties affichées
Dérive du coût Pilote chiffré avant le passage à l'échelle ; lots dimensionnés ; arrêt possible à chaque point de décision



11. Décisions pour l'utilisateur

# Décision Recommandation
D1 Italien comme texte de référence, français pour l'affichage Oui
D2 Modèle de la passe B Opus, autre consigne, autres frontières de lots (+ filet K comme troisième source). Sonnet réduirait la corrélation, mais avec un rappel plus faible
D3 Inclure knowledge et lexicon (énoncés de savoir) Oui : c'est là que se trouvent peut-être les vraies pépites ou les vraies erreurs
D4 Horizons réels (C4) Pilote sur 5 lieux ; en analyse principale seulement si plus de 2 % des verdicts changent
D5 Témoin Emmerich (C1) Oui, après le cœur de l'étude : c'est le meilleur étalon d'interprétation
D6 Hypothèse Viareggio (C2) À faire si l'on dispose de la table des dates de rédaction (édition du CEV ?)
D7 Édition du texte italien de l'index À confirmer (2ᵉ édition du CEV ?)
D8 Versionner emv/chunks-it/ dans le dépôt privé Même politique que emv/chunks/, mais exclu de l'image Docker (et emv/chunks/ aussi, à l'occasion)
D9 Publication Viewer seulement, déployé sur demande ; rien dans Directus

12. Questions pour la relecture (Codex)

  1. N3 (décalages luni-solaires) est-il le bon null pour « le texte désigne une année » ? Faut-il en plus un null qui recale chaque chapitre sur la même date juive d'autres années (calendrier observationnel), avec une liberté d'ajustement égale à celle de Lavère ?
  2. Le score S_info (pondération par −ln p, plafonnée à ln 100) est-il un bon choix face à un rapport de vraisemblance explicite ? Risque-t-il d'être dominé par quelques items ?
  3. Capture-recapture : le modèle log-linéaire à trois sources suffit-il, sachant que la corrélation entre A et B est probablement forte ? Faut-il imposer à B un modèle différent ?
  4. Fenêtres solaires et heures temporaires : la convention du jour civil D (« la nuit appartient à la soirée qui l'ouvre ») est-elle sans piège pour les scènes après minuit, pour le sabbat et pour les veilles ?
  5. Calendrier observationnel : critère de Yallop ou d'Odeh, niveaux A, B et C ; règles d'intercalation. Les variantes proposées couvrent-elles l'incertitude réelle du Iᵉʳ siècle ?
  6. Visibilité des étoiles et des planètes : le modèle simplifié de Schaefer (1993) est-il suffisant, ou vaut-il mieux des seuils pré-enregistrés sur la hauteur du soleil ?
  7. Les simulations (§ 8.6) valident-elles vraiment la puissance et la spécificité de E3 ? Manque-t-il un scénario (par exemple un auteur qui calerait ses lunes sur un almanach d'une autre année) ?
  8. Des failles dans l'aveuglement (§ 3, P3) ou dans la chaîne de gel ?
  9. Faisabilité et coût : faut-il des lots plus gros (≤ 70 Ko, 170 lots) pour la passe A ?

12 bis. Corrections après la relecture de Codex (24/09/2026)

Ces corrections priment sur les sections précédentes en cas de contradiction.

  1. N3 n'est plus un test. Lavère a construit sa chronologie en lisant le texte ; les chronologies décalées n'ont pas eu cette liberté. Le rang de Lavère parmi les décalages devient un rang descriptif, sans valeur p. N4 (marge égale) ne corrige pas cette circularité.
    • Nouveau E3 : un ajusteur automatique (script) place les chapitres pour chaque hypothèse d'années (début de la vie publique de 20 à 40), à partir du seul squelette calendaire (fêtes, jours de semaine, jours lunaires énoncés, intervalles narratifs), sans jamais voir les descriptions du ciel. Chaque hypothèse est ensuite notée sur les descriptions du ciel : on obtient une courbe score × année. Toutes les hypothèses ont exactement la même liberté. Si l'ajusteur utilise des descriptions du ciel, construction et évaluation portent sur des moitiés disjointes.
    • La procédure de Lavère restant inconnue, cette limite est rappelée partout où son rang apparaît.
  2. Rappel. Le microscope lit toutes les phrases d'un échantillon (sans préfiltre lexical), sans accès aux passes A et B. Il donne l'estimation principale du rappel, sur le corpus final consolidé, avec son intervalle ; la capture-recapture devient un diagnostic (l'interaction d'ordre trois du modèle log-linéaire n'est pas identifiable).
  3. Cohérence de scène. Un seul décalage de jour par chapitre (la marge s s'applique au chapitre, pas à l'item) ; un instant commun pour les affirmations simultanées (simul_group) ; des décalages cohérents entre scènes liées. Les taux de base appliquent les mêmes règles. Le bootstrap se fait par grappe de nuit (chapitres décrivant la même nuit regroupés), pas par chapitre.
  4. Cohérence d'une nuit à l'autre (nouveau, T1) : le long d'une suite de scènes reliées (« il giorno dopo », « tre giorni dopo »), l'évolution de la lune (phase, heure de lever) doit être compatible avec un même calendrier.
  5. Simulations = mesure de puissance, pas réussite imposée. Nombreuses répétitions, plusieurs années sources, taux de faux positifs et puissance mesurés, validation sur des simulations neuves après réglage. Deux scénarios ajoutés : almanach d'une autre année et chronologie ajustée après lecture des descriptions. Un voyant parfait peut ne pas être distingué (Méton, ex-aequo) : cela mesure le manque d'information du texte, pas un défaut du test.
  6. Impossibilités : trois verdicts — aucune solution trouvée dans W ; incompatibilité robuste après recherche temporelle affinée (racines et marges, pas 8 échantillons fixes) ; impossibilité géométrique démontrée. Les seuils perceptifs (codebook : perceptual: true) sont retirés pour juger une impossibilité.
  7. Calendrier et dates. Visibilité du croissant ≠ début du mois effectivement proclamé : les variantes donnent des calendriers plausibles, pas une restitution. Catégories Yallop et Odeh non interchangeables (Odeh C = instrument seulement, exclu) ; crescent_q calcule le « meilleur moment » après le coucher. Trois étiquettes distinctes : étiquette de nuit (soirée qui ouvre la nuit, encodée par l'agent), date civile de l'instant et jour juif (calculées par script).
  8. Polaire : 11,6° du pôle suffit pour tenir un cap sur un lac ; les Grecs se guidaient sur la Petite Ourse. Le cas est examiné selon la précision réellement impliquée, sans présumer l'anachronisme.
  9. Score. S_info reste un score de classement, pas un rapport de vraisemblance. Publier la contribution de chaque scène, un score équilibré par scène, une analyse retirant successivement les scènes les plus influentes, et une information conditionnelle à la saison et au jour lunaire.
  10. Pilote : 10 chapitres tirés au sort (graine 20260924) au lieu de 2 ; effort medium comparé à high sur la passe A ; taille des lots fixée d'après les omissions et le coût observés. Aveuglement matériel : les agents de relevé ne reçoivent ni ce plan, ni la v1, ni les résultats des autres passes.
  11. Datation par événement (nouveau, après les tests, jamais utilisée pour les tester) : pour chaque événement clé, liste des dates de W qui satisfont ensemble toutes ses indications, présentées comme propositions.

13. Références

  • Humphreys C. J. & Waddington W. G. (1983), « Dating the Crucifixion », Nature 306, 743-746.
  • Schaefer B. E. (1990), « Lunar visibility and the crucifixion », QJRAS 31, 53-67.
  • Schaefer B. E. (1993), « Astronomy and the limits of vision », Vistas in Astronomy 36, 311-361.
  • Yallop B. D. (1997), A Method for Predicting the First Sighting of the New Crescent Moon, NAO Technical Note 69.
  • Odeh M. Sh. (2004), « New criterion for lunar crescent visibility », Experimental Astronomy 18, 39-64.
  • Stephenson F. R., Morrison L. V. & Hohenkerk C. Y. (2016), « Measurement of the Earth's rotation: 720 BC to AD 2015 », Proc. R. Soc. A 472.
  • Espenak F. & Meeus J., Five Millennium Canon of Solar Eclipses (NASA TP-2006-214141) et of Lunar Eclipses (NASA TP-2009-214172) ; catalogue des phases de la lune (NASA).
  • Standish E. M. (1998), JPL Planetary and Lunar Ephemerides DE405/LE405 (DE406 en est la version longue durée).
  • Rhodes B., Skyfield (1.55) ; ESA (1997), The Hipparcos Catalogue ; Stellarium, constellationship.fab.
  • Chapman D. G. (1951), estimateur de capture-recapture ; International Working Group for Disease Monitoring and Forecasting (1995), « Capture-recapture and multiple-record systems estimation », Am. J. Epidemiol. 142.
  • Mishna, Rosh Hashana 1-2 ; Aratos, Phénomènes ; Pline l'Ancien, Histoire naturelle II.
  • Projet : prompts/astro-*.md (v1), emv/astro/synthesis.json, emv/astro/stats.json, scripts/astro/.

← Retour à l'étude astronomique