"""
source_06.py — s06 · TABLEAU DE DÉCODAGE DES « CATCHES » SUR LES MAINS
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é.
♻️ s14 = DOUBLON EXACT — SUPPRIMÉ sur décision Ben (12 juil 2026) ; toute la donnée vit ici.
"""
from dataclasses import dataclass, field, asdict
import json
# ── SOCLE COMMUN (passe U6b — imbrication, GO Ben 13 juil 2026, 23h29) ────
# 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 (la mention s14 n'y survit que comme trace : pièce supprimée).
# Loi 3 : aucun verdict recopié — D1 (s14 doublon supprimé) et D3 (Agnya OR
# harmonisé, porté par s06) font foi dans VERDICTS["D1"] / VERDICTS["D3"].
ID_CORPUS = "s06"
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 = "s06"
titre: str = "TABLEAU DE DÉCODAGE DES « CATCHES » — DOIGTS & MEMBRES"
type_source: str = "'Catch' Decoding Chart — capture d'écran mobile"
origine: str = "filigrane www.sahajayoga.org · signé ~Aumaparna (auteur non officiel)"
auteur_shri_mataji: bool = False
fiabilite: str = "\U0001f7e2 filigrane sahajayoga.org, doctrine des catches standard · \U0001f7e1 auteur non officiel, affirmations médicales fortes à traiter comme croyance SY"
inscriptions: list = field(default_factory=lambda: [
Inscription("'Catch' Decoding Chart", "titre"),
Inscription("7 Sahasrara · 6 Agnya · 5 Vishuddi · 4 Anahata · 3 Nabhi · 2 Swadhistana · 1 Mooladhara",
"légende du méditant (droite)"),
Inscription("If your left little finger is burning/ tingling… means you have issues with your "
"mother… Heart-felt hatred or bad relations for anyone can cause serious diseases "
"like cancer also!", "texte — extrait verbatim"),
Inscription("~Aumaparna", "signature"),
Inscription("www.sahajayoga.org", "filigrane"),
])
correspondances_main: dict = field(default_factory=lambda: {
"pouce": "Swadhisthana (2)",
"index": "Vishuddhi (5)",
"majeur": "Nabhi/Solar (3)",
"annulaire": "Agnya/3rd Eye (6)",
"auriculaire": "Heart/Anahata (4)",
"paume": "Sahasrara (7)",
"base_paume": "Mooladhara (1)",
})
caracteristiques: list = field(default_factory=lambda: [
"corps entier : membres colorés/numérotés 1→7 par chakra + encarts main et pied",
"méditant : canaux jaune (droit) et bleu (gauche)",
"usage : table diagnostique des sensations en méditation",
])
jonctions: list = field(default_factory=lambda: [
Jonction("d22", "CARTE MAINS↔CHAKRAS — recoupement direct, à confronter doigt par doigt"),
Jonction("s02", "complète la projection tête par la projection mains/membres"),
Jonction("s05", "même famille pédagogique — panneau 3 de s05 = même doctrine"),
Jonction("s14", "\u267b\ufe0f DOUBLON EXACT — SUPPRIMÉ sur décision Ben (12 juil 2026)"),
])
en_attente: list = field(default_factory=lambda: [
"\U0001f7e1 convention gauche/droite VÉRIFIÉE contre d22 en passe U5 (13 juil) : CONCORDANTE 🟢 — gauche = Ida/émotionnel (« mother » s06 ↔ Vienne 1982-09-26 d22) · 7/7 doigts identiques — dossier miroir CLOS",
"\U0001f7e1 affirmations médicales (cancer) : statut croyance SY, pas fait médical",
])
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" correspondances main : {len(self.correspondances_main)} · 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())