{"id":"c1411","filename":"c1411_zakon47_usaglasenost.dok.json","weise3_id":"zakon47_usaglasenost_c1411","tip":"zakon","naziv":"ZAKON 47 - USAGLASENOST PRIJE IZMJENE / Jedna istina o zivom","kreator":"genesis","datum":"2026-06-15","snippet":"","status":"POTVRDJENO","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"zakon","broj_zakona":47,"naziv":"ZAKON 47 - USAGLASENOST PRIJE IZMJENE / Jedna istina o zivom","jezgra":"Nijedna izmjena zivog kriticnog koda ne smije se dogoditi bez (1) zahvacene BRAVE IZMJENE, (2) provjerenog polaznog stanja hashom, i (3) istine DOKAZANE NA ZIVOM PROCESU - ne na tvrdnji. Svi akteri (Opus, CC, Ivan, svaki paralelni agent) sinkroniziraju se kroz JEDNU tocku. Moramo biti usaglaseni, na svim razinama.","paragrafi":{"p1_brava_izmjene":"Prije dodira kriticnog fajla: zahvati bravu (services/deploy_lock.py -> /var/www/{projekt}/.deploy_lock.json + Redis genesis:deploy:lock db=4) sa {agent_id, fajlovi, baseline_hash, vrijeme, razlog}. Brava tudja i ziva (TTL 30min) -> STANI, ne diraj. Otpusti tek nakon deploya + verify. Brava je vidljiva svima.","p2_baseline_hash":"Svaki upis u kriticni fajl PRVO provjeri da je trenutni hash == baseline na kojem je izmjena gradjena. Drift -> ABORT, nista se ne pise (anchor-assert + md5-guard). Drift znaci da je netko dirao -> istrazi, ne prepisuj.","p3_istina_je_proces":"Prosirenje ZAKON 46 i 0 na PROCES: izraz != proces; istina je proces. 'Sto je stvarno zivo' utvrdjuje se PROBE-om pokrenutog procesa (HTTP/health/verzija-hash), ne fajlom, ne memorijom, ne proposalom. Tvrdnja o zivom stanju bez probe = DRAFT. Zapis istine + probe izlaz idu u genesis_live_state.json.","p4_usaglasenost_na_svim_razinama":"Opus (arhitektura), CC (ruke), Ivan (veto/smjer), SVAKI paralelni agent dijele JEDNU tocku istine (brava + live-state). Promjena mimo te tocke = krsenje. Dvije ruke na istom kriticnom kodu istovremeno = zabranjeno.","p5_git_commit_trag":"Svaki kriticni deploy zavrsava git commitom (radno stablo konzistentno, izmjena zapisana). Bez commita = nezapisana izmjena koju sljedeci akter ne vidi.","p6_lijecenje_sudara":"Kad dva aktera zele istu bravu, ili kad probe zivog != zapisano: ZAUSTAVI, uskladi prema zivom procesu, pa nastavi. Hijerarhija istine: zivi proces > git HEAD > fajl > memorija > tvrdnja."},"kriticni_kod":["auth","recovery","kriptografija","kljucevi","persist","BunkerSeal","Folija","slog zakona","migracije sheme"],"mehanizam":"services/deploy_lock.py: claim(agent_id, files, reason) / release(agent_id) / check() / verify_baseline(path, hash) / record_live_state(key, value, proof). Atomarnost: Redis SET NX (db=4). Vidljivost: .deploy_lock.json. Live-state: genesis_live_state.json.","dokaz_ponasanja":"Demo 9/9 PASS (2026-06-15): cc.A claim -> cc.B claim ODBIJEN dok A drzi (serijalizacija) -> release -> cc.B prolazi; verify_baseline tocan->True krivi->False (drift); record_live_state zapisan uz dokaz.","veza":"Prosiruje ZAKON 46 (izraz!=genom -> izraz!=proces), cuva ZAKON 0 (nema dvostrukog izvora istine), oslanja se na ZAKON 32 (svaki fix=chain entry).","povod":"2026-06-15: paralelni akter je commitao c1410 na zivi recovery.py TIJEKOM drugog deploya. Memorija/proposal tvrdili '503 brava gore, nista deployano' dok je zivi proces vracao c1410 (503 uklonjena). Otkriveno SAMO md5-driftom (8837f26e->2ca0f4e0) i probe-om /vrati (403 ne 503). Dvije ruke na istom kriticnom kodu = razbijena brava.","zakon":["ZAKON NAD ZAKONIMA","ZAKON 46","ZAKON 0","ZAKON 32"],"citacija":"Moramo biti usaglaseni - na svim razinama. Dvije ruke na istoj bravi razbiju bravu. - Ivan Brtan, 2026-06-15","weise3_id":"zakon47_usaglasenost_c1411","datum":"2026-06-15","status":"POTVRDJENO","content_seal_sha3":"201e6e7dc185e5dd71bb3df454142086108c9c17972f54658c310b78acb0edfb","krunica_hash":"f6f799456f8f2e09a60f40e7b895b7536dce98ec25e97dd57526185556179a81"}}