Kancl je open source headless ERP: firemní pravidla a data tvoří samostatné jádro. Přehledné UI, vestavěný asistent a externí platforma používají stejné aplikační
Databáze a aplikační pravidla
PostgreSQL drží firemní záznamy, transakce a audit. Jádro ověřuje oprávnění, počítá částky přesnými desetinnými čísly a hlídá stavy dokladů. Model navrhuje kroky; nemůže přepsat účetní pravidlo ani přímo měnit firemní tabulky.
Jedna instance pro jednu firmu
Každá firma má vlastní databázi, úložiště příloh, tajemství a doménu. Data dvou firem se nepotkají v jedné databázi, takže izolace nestojí na filtrech v dotazech. První verze se instaluje přes Docker Compose na jeden server; Kubernetes přijde později.
Python a modulární monolit
Jeden backend v Pythonu, worker jako samostatný proces téhož projektu. Jeden toolchain, jedna sada testů, žádné zbytečné služby. Správnost hlídají kontrakty a testy, ne volba jazyka.
React UI, HTTP API a MCP
React a TypeScript pro pracovní rozhraní. HTTP API pro UI, kancl-mcp jako adaptér pro externí AI klienty. Všechny cesty volají stejný registr nástrojů a stejná pravidla, včetně kontroly oprávnění a historie. Externí klient se v první verzi připojí osobním tokenem, OAuth pro connectory Claude a ChatGPT přijde později.
Vestavěný agent
Malý runtime: chat, trvalé úlohy v Postgresu, katalog nástrojů, příručka firmy a recepty, ve kterých agent připraví a člověk schválí. Bez spouštění kódu a bez subagentů v první verzi. Model dodá nakonfigurovaný poskytovatel v EU, nebo vlastní klíč firmy. Mzdová data k modelu nejdou.
Z projektu AI//BRO (MIT) přebíráme jen vybrané kusy kódu a postupy, například trvalé úlohy a napojení na datovou schránku. Kancl na něm za běhu nezávisí.
Přihlášení a oprávnění
První verze: passkey, odkaz e‑mailem a Google. Microsoft a Seznam přijdou později. Přihlášení prokazuje identitu; role a oprávnění určuje instance. Správa práv, změna bankovních účtů, citlivé exporty a podání vyžadují čerstvé ověření. Připojení e‑mailové schránky je samostatné povolení.
Schválení platí pro konkrétní obsah
Server spojí potvrzení s člověkem, akcí, verzí dokladu a příjemcem. Změna obsahu vyžádá nové schválení. Opakovaný požadavek nesmí vystavit druhou fakturu. Odesílání jde přes transakční outbox; nejistý výsledek se dohledá, ne pošle znovu.
Legislativa jako verzovaná data
Sazby, limity a XML schémata jsou verzovaná data s platností od–do v repozitáři aplikace. Výpočet si vybere pravidla podle data období a podání si pamatuje, z jaké verze vzniklo. Aktualizace přijde s novou verzí aplikace.
Banka a podání bez autopilota
Banku Kancl jen čte: Fio přes API, ostatní přes import výpisu. Platební příkazy vydá jako soubor pain.001 nebo ABO k podpisu v bance. Podání připraví jako validovaný soubor s kontrolním seznamem; přímé odeslání datovou schránkou přijde později.
Zálohy a upgrade
Šifrované zálohy databáze i příloh a pravidelný test obnovy do izolované instance. Upgrade jedním příkazem udělá zálohu před migrací; při chybě se zastaví a obnoví podle postupu. Obnova nikdy znovu neodešle starou platbu ani zprávu.
Vývoj pomocí AI agentů
Kód píšou AI agenti. Proto má návrh jednoznačné kontrakty, nezávislé testovací příklady, kontrolu migrací a obnovy a samostatné revize. Správnost účetnictví se neodvozuje z toho, že kompilace nebo testy prošly.
prošly.