"""
source_15.py â s15 · ORIGINAL SHRI MATAJI â MONTĂE DE LA KUNDALINI (NIRMALA YOGA 22, 1984)
Série SOURCE ANNEXE FIABLE · généré depuis l'analyse gravée (Fable, 12 juil 2026).
RĂšgle : zĂ©ro invention â tout champ provient de la planche ou d'un recoupement datĂ©.
â PIĂCE MAJEURE : seule planche de la sĂ©rie s qui soit un ORIGINAL de Shri Mataji.
"""
from dataclasses import dataclass, field, asdict
import json
# ââ SOCLE COMMUN (passe U6c â imbrication, GO Ben 13 juil 2026, 23h35) ââââ
# socle_corpus.py = clé de voûte du paquet corpus/ (types partagés · registre
# · GRAPHE des jonctions · VERDICTS D1-D6). Loi 2 du contrat : les jonctions
# CANONIQUES entre piĂšces (dNN/sNN) vivent UNE SEULE FOIS dans GRAPHE â la
# liste locale `jonctions` (cible/nature) reste une NOTE DE LECTURE de la
# planche. â s15 = seule piĂšce de la sĂ©rie s avec auteur_shri_mataji=True :
# rĂ©fĂ©rence de STYLE pour authentifier les tracĂ©s d01âd22 (recoupement
# prioritaire avec d20, mĂȘme famille de tracĂ©s originaux).
# Loi 3 : aucun verdict recopiĂ© â pointer VERDICTS[id].
ID_CORPUS = "s15"
try:
from socle_corpus import GRAPHE, VERDICTS, SOURCES as REGISTRE_SOURCES
JONCTIONS_SOCLE = [j for j in GRAPHE if ID_CORPUS in (j.a, j.b)]
MODE_ILOT = False
except ImportError: # exécution isolée : le module reste lisible en ßlot
GRAPHE, VERDICTS, REGISTRE_SOURCES = [], {}, {}
JONCTIONS_SOCLE, MODE_ILOT = [], True
@dataclass
class Inscription:
texte: str
zone: str
statut: str = "\U0001f7e2"
@dataclass
class Jonction:
cible: str
nature: str
@dataclass
class Source:
sid: str = "s15"
titre: str = "ORIGINAL SHRI MATAJI â MONTĂE DE LA KUNDALINI (NIRMALA YOGA 22, 1984)"
type_source: str = "croquis Ă main levĂ©e, encre sur papier â scan de la revue officielle Nirmala Yoga"
origine: str = "Nirmala Yoga, Issue 22 (July-August 1984), Page 11"
auteur_shri_mataji: bool = True # â ORIGINAL de Sa main â unique dans la sĂ©rie s
fiabilite: str = "\U0001f7e2\U0001f7e2 source primaire datée et publiée (Nirmala Yoga n°22, juil.-août 1984, p. 11) · \U0001f7e1 numérisation indirecte, date exacte du tracé inconnue ('198x-0000')"
inscriptions: list = field(default_factory=lambda: [
Inscription("198x-0000 Original Drawing on the Raising of Ku\u1e47\u1e0dalin\u012b published in "
"Nirmala Yoga, Issue 22 (July-August 1984), Page 11", "lĂ©gende â verbatim"),
])
caracteristiques: list = field(default_factory=lambda: [
"trait rapide et superposĂ© â ligne serpentine verticale",
"succession de boucles/nĆuds autour de trois Ă©tages nouĂ©s (chakras)",
"évasement en bas : départ large, type triangle sacré",
"ouverture en haut : grande boucle libre = percée vers le Sahasrara",
"centres dessinés comme des pelotes denses, boucles enroulées autour",
"STATUT à PART : référence de style pour authentifier les dessins d01-d22",
])
jonctions: list = field(default_factory=lambda: [
Jonction("d20", "DOUBLE CORDE â mĂȘme famille de tracĂ©s originaux, recoupement PRIORITAIRE"),
Jonction("d09", "FORMATION DU CHAKRA â mĂȘme famille de tracĂ©s (pelotes/nĆuds)"),
Jonction("s08", "spirale 3œ tours â version pĂ©dagogique du mĂȘme sujet"),
Jonction("d02", "THE HAPPENING â montĂ©e et percĂ©e, version annotĂ©e"),
])
en_attente: list = field(default_factory=lambda: [
"\U0001f7e1 date exacte du tracé inconnue (légende '198x-0000')",
"comparaison de style avec d01-d22 â Ă mener en PHASE RĂVISION CODES",
])
def rapport(self) -> str:
etat_socle = ("ßlot (socle_corpus non chargé)" if MODE_ILOT
else f"imbriquĂ© â {len(JONCTIONS_SOCLE)} jonction(s) canoniques au GRAPHE")
return "\n".join([
f"[{self.sid}] {self.titre}",
f" origine : {self.origine}",
f" de la main de Shri Mataji : {self.auteur_shri_mataji} â",
f" fiabilité : {self.fiabilite}",
f" jonctions : {len(self.jonctions)}",
f" SOCLE : {etat_socle}",
])
def to_json(self) -> str:
data = asdict(self)
data["id_corpus"] = ID_CORPUS
data["jonctions_canoniques"] = [asdict(j) for j in JONCTIONS_SOCLE]
data["mode_ilot"] = MODE_ILOT
return json.dumps(data, ensure_ascii=False, indent=2)
if __name__ == "__main__":
print(Source().rapport())