{"id":"c0055","filename":"c0055_plan_arhiva_satiink_13_na_10.dok.json","weise3_id":"","tip":"cc.plan","naziv":"Arhiva sati.ink — od 5.8/10 do 13/10","kreator":"CC Sonnet 4.6","datum":"2026-05-06","snippet":"","status":"IN_PROGRESS","prev_weise3":"","bunker_l":"#00d4ff","full":{"id":"c0055","tip":"cc.plan","naziv":"Arhiva sati.ink — od 5.8/10 do 13/10","datum":"2026-05-06","autor":"CC Sonnet 4.6","status":"IN_PROGRESS","cilj":"Svaka kategorija arhive na sati.ink >= 13/10 prema Genesis standardu","polazna_ocjena":{"arhitektura":"6/10","chain_integracija":"5/10","sigurnost":"7/10","pwa_frontend":"7/10","api_dizajn":"5/10","testiranost":"3/10","performanse":"6/10","zakonska_sukladnost":"8/10","kampanja_sprmnost":"5/10","prosjek":"5.8/10"},"plan":[{"r":1,"naziv":"WeisE3 pri uploadu — chain-native od sekunde 0","kategorije":["chain_integracija"],"sto_treba":"TempArhivaEntry dobiva genesis_weise3_id ODMAH pri POST, lokalno, bez čekanja OCR-a. Formula: SHA3-256('WEISE3::{sha256_fajla}::{kreator}::{komitent}::FENIX2026'). Genesis API ostaje async (OCR task).","status":"TODO"},{"r":2,"naziv":"Smart email capture — soft, ne-blokira","kategorije":["kampanja_sprmnost","sigurnost"],"sto_treba":"_OPEN_MODE ostaje True. Ali: nakon prvog uploada prikazati bottom-sheet 'Spremi napredak — upiši email' (ne modal, ne redirect). Email → upgrade TempUploader iz anonimnog u imenovani. Conversion event u Redisu.","status":"TODO"},{"r":3,"naziv":"Upgrade wall — waitlist forma (ne dead end)","kategorije":["kampanja_sprmnost"],"sto_treba":"upgrade_wall.html: dodati email formu 'Javi mi kad je Pro dostupno'. Redis LPUSH waitlist + email na Ivan. Ne treba Stripe — waitlist je konverzija.","status":"TODO"},{"r":4,"naziv":"BetaUploadView — WeisE3 + BunkerSeal L0 pri svakom uploadu","kategorije":["chain_integracija","sigurnost"],"sto_treba":"BetaUploadView (beta.html kamera flow) dobiva isti WeisE3 pri uploadu. BunkerSeal L0 (SHA3 wrap) na svaki file odmah, ne samo u dvorac_touch_entry Celery tasku.","status":"TODO"},{"r":5,"naziv":"views_pwa.py split — 5 fokusiranih modula","kategorije":["arhitektura","api_dizajn"],"sto_treba":"views_pwa.py (2636 l) → views_pwa_auth.py, views_pwa_upload.py, views_pwa_dashboard.py, views_pwa_media.py, views_pwa_genesis.py. Svaki < 400 linija. urls.py importira iz svih 5.","status":"TODO"},{"r":6,"naziv":"Test suite — minimum 25 testova","kategorije":["testiranost"],"sto_treba":"tests/test_pwa_upload.py, tests/test_chain_integration.py, tests/test_email_capture.py, tests/test_upgrade_wall.py. Pokriti: upload flow, weise3 generation, email capture, upgrade wall waitlist, SSE status, magic link verify.","status":"TODO"},{"r":7,"naziv":"ZAKON 15 — Folija zaštita za Django arhiva auth","kategorije":["sigurnost"],"sto_treba":"GenesisLoginView u views_pwa.py već ima event log + vatra. Dodati: folija.watch() init, anomaly detection (>20 fail/10min → WhatsApp). Preslikati ZAKON 15 spec iz c0040.","status":"TODO"},{"r":8,"naziv":"Analytics funnel — conversion tracking","kategorije":["kampanja_sprmnost","performanse"],"sto_treba":"Redis: visit → upload_1 → email_capture → upgrade_click → waitlist. Dashboard za Ivana: GET /pub/arhiva/admin/funnel/ (token zaštićeno). Vidljivo koliko je u svakom koraku.","status":"TODO"},{"r":9,"naziv":"Referral mehanizam — viral loop","kategorije":["kampanja_sprmnost"],"sto_treba":"Svaki TempUploader dobiva referral_code. Share link: sati.ink/r/{code} → onboarding s 15 free (umjesto 10). Referrer dobiva +5 bonus. Redis + TempUploader model update.","status":"TODO"},{"r":10,"naziv":"Genesis FastAPI endpoint — arhiva/upload chain-native","kategorije":["arhitektura","api_dizajn"],"sto_treba":"Genesis api/archive.py: POST /api/v1/arhiva/upload → WeisE3 + chain entry odmah. sati.ink nginx (za novu PWA) može udariti direktno Genesis (8010) bez Django. Paralelno s Django verzijom — ne brisati Django dok nije testirano.","status":"TODO"},{"r":11,"naziv":"beta.html refactoring — modularni Web Components","kategorije":["pwa_frontend"],"sto_treba":"beta.html (2239 l) → components: upload-zone.js, ocr-status.js, doc-card.js, chain-badge.js. Alpine.js komponente postaju custom elements. Template ostaje skeleton.","status":"TODO"},{"r":12,"naziv":"Zakonska sukladnost — eIDAS + DATEV certifikacija check","kategorije":["zakonska_sukladnost"],"sto_treba":"Audit DATEV export (datev_extf.py) — testirati s pravim DATEV import toolom. TSA verify endpoint javno dostupan. eIDAS plan u IDEAS.md (ne implementacija — priprema spec).","status":"TODO"}],"zakon":"Z1 WeisE3, Z2 chain, Z13b DokArh task tracker, Z15 Folija auth"}}