Files
AI_portal/contract-check/checklist.py
Ondřej Glaser 48cef99257 Initial portal commit: landing + 9 AI-powered apps
Apps:
- dwg-rooms: extract room numbers from DWG/DXF
- dwg-counting: count symbols in PDF drawings (OpenCV template matching)
- contract-check: review PDF contracts against a checklist (Claude vision + Tesseract OCR fallback)
- email-drafter: bullet notes → polished Czech/English business emails
- invoice-extractor: PDF/image invoice → structured data → Excel
- translator: Czech-first translator across 19 languages with tone control
- vv-check: find inconsistent unit prices across VV sheets in one workbook
- vv-compare: diff original vs new VV files (changes / added / removed)
- feature-request: portal users submit ideas + sample files

Infrastructure:
- LiteLLM gateway with per-app virtual keys + budgets
- Langfuse observability
- Geist font, shared theme, cross-subdomain back link + theme sync via cookie/URL
- Caddy reverse proxy on *.klas.chat
2026-05-13 15:25:04 +02:00

99 lines
3.3 KiB
Python

"""Default checklist of items to review in a Czech business contract.
Each item targets a risk that disadvantages the RECIPIENT of the contract
(the party being asked to sign), not the drafter.
"""
DEFAULT_CHECKLIST = [
{
"id": "sankce",
"label": "Smluvní pokuty a sankce",
"hint": "Jsou pokuty vyvážené? Stejné pro obě strany? Není výše nepřiměřená?",
"default": True,
},
{
"id": "odpovednost",
"label": "Omezení odpovědnosti za škodu",
"hint": "Je odpovědnost druhé strany omezena nepřiměřeně nízkou částkou? Vyloučení následných škod?",
"default": True,
},
{
"id": "vypovedni_lhuta",
"label": "Výpovědní lhůta a podmínky výpovědi",
"hint": "Je délka přiměřená? Jsou důvody pro výpověď spravedlivé? Jednostranné podmínky?",
"default": True,
},
{
"id": "auto_prodlouzeni",
"label": "Automatické prodloužení smlouvy",
"hint": "Hrozí, že se smlouva sama prodlouží? Lhůta pro odmítnutí prodloužení?",
"default": True,
},
{
"id": "cena_eskalace",
"label": "Cena, indexace a její navyšování",
"hint": "Může druhá strana cenu jednostranně zvyšovat? Vazba na inflaci/jiný index?",
"default": True,
},
{
"id": "platebni_podminky",
"label": "Platební podmínky a úroky z prodlení",
"hint": "Splatnost faktur, výše úroků z prodlení, předfaktury, zálohy.",
"default": True,
},
{
"id": "mlcenlivost",
"label": "Mlčenlivost (NDA)",
"hint": "Jednostranná? Doba trvání? Co spadá pod důvěrné informace?",
"default": True,
},
{
"id": "gdpr",
"label": "Ochrana osobních údajů (GDPR)",
"hint": "Zpracování osobních údajů, role správce/zpracovatele, dodatek o zpracování (DPA).",
"default": True,
},
{
"id": "ip_prava",
"label": "Duševní vlastnictví a licence",
"hint": "Komu patří výsledky? Rozsah licence? Možnost převodu?",
"default": True,
},
{
"id": "rozhodne_pravo",
"label": "Rozhodné právo a místo soudu",
"hint": "České právo? Příslušnost soudu? Rozhodčí doložka?",
"default": True,
},
{
"id": "force_majeure",
"label": "Vyšší moc (force majeure)",
"hint": "Jaké události spadají? Jsou nepřiměřeně omezené?",
"default": False,
},
{
"id": "postoupeni",
"label": "Postoupení smlouvy třetí straně",
"hint": "Může druhá strana smlouvu postoupit bez vašeho souhlasu?",
"default": False,
},
{
"id": "exkluzivita",
"label": "Exkluzivita a zákaz konkurence",
"hint": "Zavazujete se nepracovat s konkurencí? Po dobu trvání i po skončení?",
"default": False,
},
{
"id": "zaruka_kvalita",
"label": "Záruka a reklamace",
"hint": "Délka záruky, postup reklamace, vyloučení odpovědnosti za vady.",
"default": False,
},
{
"id": "zmeny_smlouvy",
"label": "Změny smlouvy a dodatky",
"hint": "Pouze písemně? Souhlas obou stran? Jednostranné úpravy?",
"default": False,
},
]