Skip to content

Intake caiet de sarcini

Transformi un document de licitație în cerințe structurate. Complet mecanic în pașii 1–3 — nicio inferență de model acolo unde un regex e suficient și verificabil.

docx/pdf → text prin pandoc, docx2txt sau soffice --headless --convert-to txt. Păstrezi textul brut alături de cel curățat; diacriticele lipsă nu sunt o problemă pentru segmentare, dar sunt pentru citate.

Terminal window
python3 90-implementare/scripts/extract_requirements.py <caiet.txt> -o cerinte.json

Prinde ambele forme de cerință: (N) [OBL] ... și a) [OBL] .... Exclude definițiile marcajelor din §1.3 și descrierile de anexe.

Verificare obligatorie: compară numărul de cerințe extrase cu numărul de marcaje [OBL]/[REC] din document. Orice diferență se explică, marcaj cu marcaj. Un extractor care ratează tăcut 14% produce un raport de acoperire fals.

Aproximativ 44% dintre cerințele obligatorii ale unui caiet guvernamental nu sunt tehnice — sunt despre comitete, RACI, proprietate intelectuală, CV-uri, rapoarte lunare, procese-verbale, clauze finale. Acestea nu se potrivesc la CU-* prin natura lor și se răspund din biblioteca de răspunsuri de companie.

Capitolele tehnice tipice: 7 (funcțional), 8 (arhitectură), 9 (securitate), 10 (nefuncțional), 11 (migrare).

Caietele guvernamentale definesc de regulă module M.01..M.12. Extrage-le separat — acolo se află povestea reală de acoperire, nu în cerințele transversale.

Valorile în paranteze drepte ([60] minute, [99,5]%, [4] ore) sunt parametri pe care autoritatea îi completează. Fiecare devine o valoare de configurat, nu o dezvoltare.

cerinte.json cu: id stabil, prioritate, secțiune, module referite, domeniu estimat, text, linia din sursă (pentru citare verificabilă).

Nu interpretezi cerințele în acest pas și nu le potrivești la nimic. Intake-ul e strict mecanic; potrivirea e pasul următor și are reguli proprii.