MODUL 5: 10 reparatii pe cele doua workshop-uri, dupa verificare

Gasite de un verificator care nu scrisese documentele, aplicate de un corector
separat de amandoi.

Tiparul dominant, patru din zece: inferenta autorului pusa in coloana „rostit
de curs" a diagramei rani_masti. Cuvantul „stop" nu apare deloc in
transcrierea workshop-ului 5 (singura ocurenta e „Recording stopped"), dar
„muti stopul" statea in negru, ca si cum l-ar fi spus cursul. Mutate in
albastru, ca derivatii.

Cea mai utila: emendarea „o sa va [im]bolnaviti" era gresita. Transcrierea
spune „o sa va vindecati in timp de chestia asta", iar asta e sensul corect
- „a se vindeca DE ceva" = o sa va treaca. Workshop 1 o confirma: „o sa va
plictisiti si nu o sa mai vreti sa faceti day trading". Citatul e pus la loc
neatins.

Restul: titlu de carte inventat, „un minut" care nu e in sursa, ordinea
grupelor data ca a cursului, o enumerare de trei acolo unde sursa numara doua,
si o sageata de diagrama care cadea pe „comportament" desi eticheta spunea
„gand" (acum legata prin assert de caseta tinta).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
This commit is contained in:
Claude Agent
2026-10-02 02:14:42 +00:00
parent 862627c33a
commit b758349b54
6 changed files with 153 additions and 122 deletions

View File

@@ -33,6 +33,11 @@ LANT2 = [("gând", '„iar m-a trădat piața"'),
("emoție", "furie"),
("comportament", "intri în revanșă"),
("rezultat", "a doua pierdere")]
BOX2_X = [14 + 172 * k for k in range(len(LANT2))]
BOX2_W = 152
# caseta în care intră săgeata care coboară din „reprezentare mentală"
ARROW_TARGET = 0
X_ARR = BOX2_X[ARROW_TARGET] + BOX2_W / 2
def lant_rana() -> str:
@@ -70,18 +75,19 @@ def lant_rana() -> str:
f'{fits("schimbă lentila", 140, 11)}</text>',
f'<line x1="534" y1="88" x2="542" y2="88" stroke="{RED}" stroke-width="1.5"/>']
# coborârea pe rândul doi
p += [f'<line x1="365" y1="138" x2="365" y2="162" stroke="{LINE}" stroke-width="1.5"/>',
f'<path d="M 361 156 L 365 164 L 369 156 Z" fill="{LINE}"/>']
p += [f'<path d="M 210 138 L 210 152 L {X_ARR} 152 L {X_ARR} 162"'
f' fill="none" stroke="{LINE}" stroke-width="1.5"/>',
f'<path d="M {X_ARR - 4} 156 L {X_ARR} 164 L {X_ARR + 4} 156 Z" fill="{LINE}"/>']
for k, (nume, ex) in enumerate(LANT2):
x = 14 + 172 * k
p += [f'<rect x="{x}" y="170" width="152" height="54" fill="{FILL}"'
x = BOX2_X[k]
p += [f'<rect x="{x}" y="170" width="{BOX2_W}" height="54" fill="{FILL}"'
f' stroke="{LINE}" stroke-width="1"/>',
f'<text x="{x + 10}" y="190" fill="{INK}" style="font-weight:bold">'
f'{fits(nume, 132)}</text>',
f'{fits(nume, BOX2_W - 20)}</text>',
f'<text x="{x + 10}" y="212" fill={chr(34)}{ORANGE}{chr(34)}'
f' font-size="11">{fits(ex, 132, 11)}</text>']
if k < len(LANT2) - 1:
p += [f'<line x1="{x + 154}" y1="197" x2="{x + 170}" y2="197"'
p += [f'<line x1="{x + BOX2_W + 2}" y1="197" x2="{x + 170}" y2="197"'
f' stroke="{LINE}" stroke-width="1.5"/>',
f'<path d="M {x + 164} 193 L {x + 172} 197 L {x + 164} 201 Z"'
f' fill="{LINE}"/>']
@@ -98,21 +104,25 @@ def lant_rana() -> str:
# ------------------------------------------------- 2. rană -> mască -> greșeală
# col. 4: True = legătura cu piața e rostită în transcriere; False = completarea mea
# col. 4 = ce e rostit în transcriere (negru); col. 5 = derivația mea pe execuție
# (albastru). Oricare poate fi "" — la abandon cursul nu spune nimic pe cont.
RANI = [("respingere", "fugarul", "de obicei tatăl",
"închizi tranzacția mai devreme; fugi de reguli", True),
"închizi tranzacția mai devreme; fugi de reguli", ""),
("abandon", "dependentul", "de obicei mama",
"nu intri până nu confirmă altcineva setup-ul", False),
"", "nu intri până nu confirmă altcineva setup-ul"),
("umilire", "masochistul", "de obicei mama",
"te autosabotezi; suporți pierderea mai mult decât trebuie", True),
"te autosabotezi", "suporți pierderea mai mult decât trebuie"),
("trădare", "dominatorul", "părintele de sex opus",
"schimbi strategia la prima serie proastă: „m-a trădat piața”", True),
"nu ai încredere în nicio strategie; o serie proastă = trădare",
"de aici schimbatul strategiei după o serie proastă"),
("nedreptate", "rigidul", "părintele mai autoritar",
"vrei să ai dreptate — muți stopul; overtrading „ca să meriți”", True)]
"vrei să ai dreptate; overtrading „ca să meriți”",
"de aici mutatul stopului ca să nu greșești")]
ROW_H = 40
def rani_masti() -> str:
h = 76 + 34 * len(RANI) + 58
h = 76 + ROW_H * len(RANI) + 58
p = [f'<svg viewBox="0 0 700 {h}" xmlns="http://www.w3.org/2000/svg"'
' style="width:100%;height:auto;font:12px sans-serif">',
f'<text x="14" y="22" fill="{INK}" style="font-weight:bold">Cele cinci'
@@ -122,25 +132,26 @@ def rani_masti() -> str:
f'<text x="212" y="46" fill="#44576e" font-size="10">PĂRINTE ASOCIAT</text>',
f'<text x="344" y="46" fill="#44576e" font-size="10">CE FACE PE CONT</text>',
f'<line x1="14" y1="52" x2="686" y2="52" stroke="{LINE}" stroke-width="1"/>']
for k, (rana, masca, par, ef, din_curs) in enumerate(RANI):
y = 74 + 34 * k
col = INK if din_curs else BLUE
for k, (rana, masca, par, negru, albastru) in enumerate(RANI):
y = 74 + ROW_H * k
p += [f'<text x="20" y="{y}" fill="{INK}" font-size="11"'
f' style="font-weight:bold">{fits(rana, 92, 11)}</text>',
f'<text x="118" y="{y}" fill="{ORANGE}" font-size="11">'
f'{fits(masca, 88, 11)}</text>',
f'<text x="212" y="{y}" fill="{MUTED}" font-size="10">'
f'{fits(par, 126, 10)}</text>',
f'<text x="344" y="{y}" fill="{col}" font-size="11">'
f'{fits(ef, 340, 11)}</text>']
f'{fits(par, 126, 10)}</text>']
randuri = [(t, c) for t, c in ((negru, INK), (albastru, BLUE)) if t]
for j, (txt, col) in enumerate(randuri):
p.append(f'<text x="344" y="{y + 14 * j}" fill="{col}"'
f' font-size="11">{fits(txt, 340, 11)}</text>')
if k < len(RANI) - 1:
p.append(f'<line x1="14" y1="{y + 11}" x2="686" y2="{y + 11}"'
p.append(f'<line x1="14" y1="{y + 21}" x2="686" y2="{y + 21}"'
f' stroke="{LINE}" stroke-width="0.5" stroke-opacity="0.6"/>')
yb = 76 + 34 * len(RANI) + 18
yb = 76 + ROW_H * len(RANI) + 18
p += [f'<text x="14" y="{yb}" fill="{INK}" font-size="11">'
f'{fits("Coloana a patra, în negru, e rostită în transcriere; rândul albastru (abandon) e completarea mea —", 672, 11)}</text>',
f'{fits("În coloana a patra, rândul negru e rostit în transcriere; rândul albastru de sub el e derivația mea pe execuție.", 672, 11)}</text>',
f'<text x="14" y="{yb + 16}" fill="{MUTED}" font-size="11">'
f'{fits("cursul descrie rana de abandon pe relații și dependențe, nu pe execuție. Poți fi în mai multe, cu una dominantă.", 672, 11)}</text>',
f'{fits("La abandon cursul vorbește doar de relații și dependențe, nu de cont. Poți fi în mai multe răni, cu una dominantă.", 672, 11)}</text>',
'</svg>']
return "\n ".join(p)
@@ -232,8 +243,14 @@ assert len(sub3) == 2, f"linia de 3 ani nu mai taie 2 etape, ci {len(sub3)}"
assert len(ETAPE) == 6, "titlul spune șase etape"
# 4. textul spune „cinci răni", fiecare cu exact o mască
assert len(RANI) == 5 and len({r[1] for r in RANI}) == 5, "5 răni, 5 măști distincte"
# 5. legenda spune că exact un rând e completarea mea
assert sum(1 for r in RANI if not r[4]) == 1, "legenda vorbește de un singur rând albastru"
# 5. fiecare rană spune ceva pe cont, din curs sau de la mine; „muți stopul" nu
# poate sta în negru (cuvântul „stop" nu apare în transcrierea workshopului)
assert all(r[3] or r[4] for r in RANI), "o rană fără nimic pe coloana de cont"
assert not any("stop" in r[3] for r in RANI), "«stop» nu e rostit în transcriere"
# 5b. săgeata care coboară din reprezentarea mentală cade pe caseta „gând"
_i = [n for n, _ in LANT2].index("gând")
assert _i == ARROW_TARGET and BOX2_X[_i] < X_ARR < BOX2_X[_i] + BOX2_W, \
f"săgeata la x={X_ARR} nu cade pe caseta „gând” ({BOX2_X[_i]}…{BOX2_X[_i] + BOX2_W})"
# 6. niciun SVG nu are linie goală (python-markdown ar rupe blocul)
for name, svg in svgs.items():
assert "\n\n" not in svg, f"linie goală în {name}"

View File

@@ -29,11 +29,11 @@ def fits(txt: str, box_w: float, fs: float = 12.0) -> str:
# (eticheta, ce e, cele două rânduri de detaliu din transcriere)
VERBE = [
("a FI", "abilitățile + starea emoțională",
["„20% strategie, 80% psihologie — puse", "la pachet ca să obții 100%"]),
["„20% strategie, 80% psihologie — puse", "la pachet ca să obții 100%”"]),
("a FACE", "procesul: execuția strategiei",
["„acțiunea sau procesul care", "înseamnă creștere și dezvoltare\u201d"]),
("a AVEA", "rezultatul: banii",
["„a avea ce este? rezultatul, frate —", "rezultatul e consecința procesului"]),
["„a avea ce este? rezultatul, frate —", "rezultatul e consecința procesului”"]),
]
BOX_W, BOX_H, GAP_X, X0, Y0 = 200, 104, 32, 18, 44