Commit Graph

23 Commits

Author SHA1 Message Date
210f46ab21 nlp practitioner transcripts 1-3 2026-04-24 08:45:55 +03:00
48243bf13d 2 calculatoare 2026-04-23 09:43:39 +03:00
7544a9facf chore: copy_m6_m8_to_pc2.bat (Tailscale + robocopy), scoate bundle obsolete
PC2 are deja proiectul git, deci prepare_pc2_bundle.py + zip-ul asociat sunt
inutile. Le înlocuiesc cu un script robocopy peste admin share Tailscale:

  copy_m6_m8_to_pc2.bat  -> copiază audio/Modul 6-8 pe lenovo-aio-birou
                            (\lenovo-aio-birou\E$\proiecte\nlp-master\...)
                            Resumable (/Z), multithread (/MT:8).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 09:00:31 +03:00
6ee53133b7 feat(practitioner): structură per-modul + PDF-uri sursă + split 2-PC
- audio/Modul {N}/filename.mp3 — fiecare modul în subdirector separat
  pentru copiere pe telefon și transfer între PC-uri.
- PDF-urile se păstrează ca sursă în summaries/pdf/ (fără extract txt).
- transcribe_status="pdf_source_only" pentru lecțiile PDF → summarize.py
  le filtrează automat.
- Fix coliziune manifest transcript_path (stem-based, nu preserve prior).
- .bat per modul (M2-M8) + dispatchers run_pc1_all (M2-M5) + run_pc2_all
  (M6-M8) pentru partajare work pe 2 PC-uri.
- prepare_pc2_bundle.py: zip cu scripts + manifest + .env + PDFs pentru
  PC2 (self-installs whisper.cpp/model/ffmpeg la primul run).
- M1 whisper complete (49/49 audio+vimeo transcrise).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 08:48:58 +03:00
2e4bb88624 feat: al 4-lea tip de lecție — PDF (extract text cu pypdf)
Recon-ul pe practitioner M1 arată că unele lecții n-au nici audio nici
Vimeo iframe — doar un link "Descarcă rezumat PDF" (/resurse/*.pdf).
Scraperul vechi le clasifica drept "text" și le marca failed (HTML body
avea <50 chars).

- classify_lesson: detectează acum a[href$=".pdf"] → type="pdf".
- download_pdf_and_extract: download PDF via session autentificat
  (pypdf reader) → transcript .txt cu header + conținut pe pagini →
  șterge PDF sursă (preferință utilizator: nu păstrez sursele).
- Branch în main loop pentru type=="pdf".
- requirements.txt: + pypdf.
- transcribe.py: skip type in ("text", "pdf") — transcript e deja scris
  de download.py.

Limitări: PDF-uri cu conținut vizual (infografice, diagrame) extrag
puțin text. Titlul și textul inline sunt capturate; restul rămâne
pentru review manual.

Testat pe 4 PDF-uri M1 practitioner (Premisele NLP, Forme de Pacing,
Gesturi de calmare, Exercitiu Pacing): 3/4 extract bun (877-3068 bytes),
1/4 conținut predominant grafic (203 bytes).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 23:01:09 +03:00
a7cb06ac3e feat: run_practitioner.bat wrapper pentru cursul practitioner
Dublu-click pe Windows echivalent cu 'run.bat practitioner [modules]'.
Aceeași sintaxă argumente ca run.bat pentru master.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 21:40:33 +03:00
d22038d002 refactor: parametrize pipeline cu --course flag + suport Vimeo/text
Un singur set de scripturi acum rulează pe orice curs configurat în
courses.py. Master rămâne la rădăcina repo (backward-compat M1-M6);
cursuri noi (ex. practitioner la shop.cursnlp.ro) primesc un root
dedicat (nlp-practitioner/) cu propriile artefacte.

- courses.py: config dict (master, practitioner) + course_paths() +
  validate_manifest_course() (manifest fără course_key = master).
- download.py: --course + --modules; trei tipuri de lecții (audio HTTP,
  Vimeo iframe via yt-dlp audio-only, text-only cu captură HTML);
  merge cu manifest existent în loc de replace; strip [Audio] pentru
  backward-compat paths.
- transcribe.py: --course + --modules; skip type==text; path-uri prin
  course_paths(); validare course_key.
- summarize.py: --course + --compile; template prompt folosește
  course['name']; scrie SUPORT_CURS.md cu LF explicit (WSL2 baseline).
- md_to_pdf.py: --course resolv-ă summaries_dir / pdf_dir per curs.
- run.bat: detectează master|practitioner ca primul argument,
  propagă --course la sub-scripturi; backward-compat run.bat [modules].
- requirements.txt: + yt-dlp.
- .gitignore: nlp-practitioner/audio/, audio_wav/, scratch_recon.py, tmp_recon/.
- tests/test_regression.sh: 5 gate-uri read-only (import, schema,
  disk-coherence, SUPORT_CURS byte-identic, cross-course isolation).

Regression curs master: PASS (manifest + SUPORT_CURS.md hash
identic cu baseline /tmp/suport_before.md).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 14:33:19 +03:00
ada00e380d docs: adaugă secțiunea Gstack Skills în CLAUDE.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 13:50:05 +03:00
40f821f5df docs: actualizează procesul + prompt-urile cu ce s-a folosit efectiv la M6
- PROCES_SUMARIZARE: proces în 2 faze cu agenți paraleli + extragere
  intermediară (_m{N}_extract_*.md) + filtru conținut comercial + naming
  variant (M6+ folosește "Master 2025 M{N}" vs M1-M5 "Master 25M{N}")
- PROMPT_EXPERIENTIAL: proces în 4 pași (extragere → per zi → merge →
  aplicări), PROMPT_EXTRAGERE nou, variantă 3 zile pentru module ca M6,
  concept multi-temă (M6_ARHETIPURI_CREDO), structuri prompts detaliate
- CLAUDE.md: 5 module → 6 (curs complet) + secțiune "Documentația
  sumarizărilor" cu pointeri
- TODOS.md: eliminat task-urile M6 (done), păstrat doar plicul sigilat M1
  + moratoriul 3 săptămâni post-Master + checklist pentru viitor

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 16:05:29 +03:00
9086903e8b feat(M6): sumarizări complete + caiet experiențial + cross-modul
- 5 fișiere M6: EXHAUSTIV, CONCENTRAT, CHEATSHEET, ARHETIPURI_CREDO (caiet
  facilitator), ARHETIPURI_CREDO_APLICARI
- 9 transcripts M6 (Z1A-D, Z2A-B, Z3A-C — 3 zile, ultimul modul al cursului)
- update fișiere cross-modul cu M6: INDEX_EXERCITII, HARTA_CONEXIUNI,
  GLOSAR_CREDINTE, GHID_FACILITARE, METAFORE_POVESTI
- PDF-uri regenerate pentru toate fișierele modificate
- SUPORT_CURS.md recompilat

Tema M6: pivot personal → transpersonal. Arhetipurile de tranziție (Pearson/Jung)
+ Procesul Credo + ceremonie de încheiere.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 15:58:53 +03:00
9fe87a4af9 feat: adaugă PDF-uri generate pentru toate sumarizările (30 fișiere)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 15:35:00 +02:00
c2f37ddb8f fix: md_to_pdf — parallel conversion, fix tabele largi, fix underscores
- Conversie paralelă cu ProcessPoolExecutor (4 workers default)
- Tabele: font 8.5pt, padding compact, word-break pentru text lung
- code-friendly extra previne pierderea _ din nume de fișiere
- find_files caută toate *.md din summaries/, nu doar MODUL*
- .gitignore: adaugă .claude/ (local state)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 15:34:12 +02:00
2c5e140bd1 fix: corectează referințele din GHID_FACILITARE.md
Referințele inventate (ex: "MODUL4 Cercetasi Ex.3") au fost înlocuite
cu căi reale către fișierele sursă și secțiunile exacte
(ex: MODUL4_STRATEGII_APLICARI.md → "Pentru cercetași adulți" → "Exercitiu 3").

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 15:27:22 +02:00
e067134c0e feat: track transcripts (M1-M5) and all summaries in git
Add 41 transcript files and 31 summary files to version control.
Previously excluded via .gitignore — now tracked for backup and portability.
SRT subtitle files remain excluded (derivable from transcripts).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 15:07:57 +02:00
771be6ccfd feat: caiete experiențiale M1-M5 + prompt reutilizabil + ghid facilitare + md_to_pdf
Adaugă al 4-lea nivel de sumarizare: caiete de facilitator cu corelații
cross-disciplinare (IFS, CNV, attachment theory, Brené Brown, neuroștiință),
exerciții cu script complet, și ghiduri de aplicare cu secvențe de cadrare
pentru 4 contexte (grup NLP, cercetași, CNV, self-coaching).

Fișiere noi (în summaries/, ne-tracked de .gitignore):
- 5 caiete: MODUL{1-5}_{CONCEPT}.md
- 5 aplicări: MODUL{1-5}_{CONCEPT}_APLICARI.md
- 5 cross-modul: INDEX_EXERCITII, HARTA_CONEXIUNI, GLOSAR_CREDINTE,
  GHID_FACILITARE, METAFORE_POVESTI

Tracked:
- PROMPT_EXPERIENTIAL.md: prompt reutilizabil pentru M6
- TODOS.md: instrucțiuni complete pentru M6 (run.bat 6 + sumarizări + caiet)
- md_to_pdf.py: convertor markdown→PDF pentru summaries
- PROCES_SUMARIZARE.md: documentație proces sumarizare standard

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 15:05:06 +02:00
763999f3a9 feat: anti-hallucination params + retranscribe script for fixing broken transcripts
- transcribe.py: add --max-context 0, --entropy-thold 2.4, --max-len 60,
  --suppress-nst, --no-fallback to whisper.cpp to prevent hallucination loops
- transcribe.py: remove interactive quality gate (runs unattended now)
- run.bat: remove pause prompts for unattended operation
- retranscribe_tail.py: new script that detects hallucination bursts in SRT
  files, extracts and re-transcribes only the affected audio segments, then
  splices the result back together. Drops segments that re-hallucinate
  (silence/music). Backs up originals to transcripts/backup/.
- fix_hallucinations.bat: Windows wrapper for retranscribe_tail.py

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 21:17:14 +02:00
56e676618f Remove manifest.json from git tracking (machine-specific state)
Add manifest.json to .gitignore so it doesn't conflict between machines.
Also add CLAUDE.md for Claude Code guidance.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 02:13:08 +02:00
45e72bc89b feat: adauga --modules filter si la download.py
Parametrul din run.bat (ex: 4-5) era transmis doar la transcribe.py.
Acum download.py primeste acelasi filtru si descarca doar modulele
specificate. Sintaxa acceptata: '4-5', '1,3', '1-3,5'.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 02:10:33 +02:00
7b18e8fc41 fix(run.bat): evita Microsoft Store Python stub care termina cmd.exe
Store stub-ul pentru python.exe termina procesul batch cand e apelat
direct. Fix: foloseste 'py' launcher (safe) sau detecteaza python.exe
real via 'where | findstr /v WindowsApps', fara a executa python
in contextul check-ului. Toate apelurile python -> !PYTHON_CMD!.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 02:06:42 +02:00
e83bd74813 feat: switch to CPU-only whisper build (no GPU on this machine)
- setup_whisper.py: descarcă build CPU din release-urile oficiale,
  sare peste Vulkan/CUDA/OpenBLAS
- run.bat: elimină env var GGML_VK_PREFER_HOST_MEMORY și check-ul Vulkan SDK
- transcribe.py: --no-gpu era deja setat

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 02:01:39 +02:00
60f564c107 fix(run.bat): restore CRLF line endings, add .gitattributes
Windows batch files require CRLF — LF-only caused cmd.exe to exit
silently mid-script. .gitattributes ensures *.bat stays CRLF.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 01:55:03 +02:00
696c04c41c chore: normalize line endings from CRLF to LF across all files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 01:53:35 +02:00
bbc5884545 NLP Master: pipeline download + transcribe + summarize
- run.bat: one-click pipeline (download, convert, transcribe)
- download.py: fetch audio from course platform
- transcribe.py: whisper.cpp batch transcription (CPU, WAV 16kHz)
  - MP3->WAV conversion via ffmpeg
  - --modules filter for splitting work across machines
- summarize.py: generate summaries from transcripts
- setup_whisper.py: auto-download whisper.cpp, ffmpeg, and model
- Medium model (q5_0) instead of large to avoid VRAM crashes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 01:37:13 +02:00