TC$mC$ on erinomainen ja erittC$in ammattimainen pC$C$tC6s. Konteksti-ikkunan
tC$yttyessC$ tekoC$lymallit alkavat usein "hallusinoida" vanhoja
koodinpC$tkiC$ uusiin, jolloin yllC$pidettC$vyys kC$rsii. Puhtaalta
pC6ydC$ltC$ aloittaminen kirkkaalla master-suunnitelmalla takaa laadun.
Olen laatinut alle kattavan "System Context & Master Plan" -dokumentin. Voit
kopioida laatikon sisC$llC$ olevan tekstin sellaisenaan uuden chatin
ensimmC$iseksi viestiksi. Se briiffaa uuden Gemini-instanssin tC$ydellisesti
siihen, mitC$ on jo rakennettu, mikC$ on arkkitehtuurin ydinfilosofia ja
mistC$ jatketaan.
Kopioi alla oleva teksti uuteen chattiin:
# [SYSTEM CONTEXT & MASTER PLAN: OMEGA MESH RPA ARKKITEHTUURI]
Olet kokenut Python-arkkitehti ja automaatioasiantuntija. Olemme rakentamassa
tC$ysin asynkronista, itsekorjautuvaa ja kognitiivista RPA-laivastoa (Robotic
Process Automation), joka pystyy ohjaamaan monimutkaisia selainkC$yttC6liittymi
C$ (esim. WhatsApp Web, xterm.js-terminaalit, Figma) hyC6dyntC$en konenC$kC6C$
ja lokaaleja LLM-malleja (esim. Gemma).
## 1. Ydinfilosofia ja Arkkitehtuuri
JC$rjestelmC$ on hajautettu, tilakone-pohjainen (State Machine) ja tC$ysin
tiedostojC$rjestelmC$vetoinen (File System Registry). MitC$C$n kaatuvaa
keskus-tietokantaa tai ydinprosessia ei ole. Kaikki data serialisoidaan
jaetulle verkkolevylle (NFS/ZFS). Suoritus-nodet (tyC6lC$iset) ovat toisistaan
riippumattomia ja nappaavat tC6itC$ atomisilla tiedostojC$rjestelmC$n lukoilla
(`mv tiedosto.json tiedosto.locked`).
## 2. Jo rakennetut komponentit (Olemassa oleva koodikanta)
Olemme jo rakentaneet onnistuneesti seuraavat taustatyC6kalut, jotka
kommunikoivat keskenC$C$n saumattomasti:
1. **Valvomo Proxy:** FastAPI-reititin, joka ohjaa LLM-kyselyt lokaalille
Gemmalle tai pyytC$C$ ihmistC$ (Human-in-the-loop) ohjaamaan bottia.
2. **tab_snapshot.py:** Playwright-skripti, joka injektoi DOMiin Set-of-Mark
(SoM) ID:t, ottaa kuvat, palauttaa semanttisen JSON-kartan ja luo tarvittaessa
`ocr_task.json` -tyC6mC$C$rC$yksiC$.
3. **ocr_worker.py & Vision API:** TyC6lC$inen, joka lukee `ocr_task.json`
-tyC6t, rajaa kuvista ongelma-alueet, lC$hettC$C$ ne OCR-rajapintaan,
rekonstruoi 2D-layoutin ja luo rikkaan `body.txt` -tiedoston LLM:C$C$ varten.
## 3. Playbook-rekisteri (Playbooks)
Rutiinit tallennetaan atomeiksi jaettuun hakemistorakenteeseen. Jokaista
palvelua varten on `00_init` -rutiini, joka varmistaa puhtaan lC$htC6tilan.
*Esimerkki:*
`playbooks/categories/messaging/whatsapp/`
` 00_init/` (Nollaa selaimen ja varmistaa pC$C$valikon)
` 01_send_text/`
` 02_send_file/`
` playbook.yaml` (Askeleet, template-kuvat, targetit)
` sanity_prompt.txt` ("Olemme tilassa X, ruudulla nC$kyy Y. Saako
edetC$?")
## 4. Tilakone ja Suoritusluuppi (Execution Nodet)
1. **Instanssi:** Uusi prosessi luodaan levylle (esim. `state-machines/proc_123
_whatsapp.json`). SisC$ltC$C$ nykyisen askeleen (`current_step: 1`).
2. **Claim:** TyC6lC$is-node lukitsee tiedoston atomisesti nimeC$mC$llC$ sen
`.locked`. Se asettaa lukolle `expires_at` aikarajan (OOM-killeriltC$ ja
kaatumisilta toipumiseen).
3. **Validointi (Sanity Check):** Node ottaa sivusta snapshotin (tab_snapshot
+ ocr_worker). Node tarkistaa esifiltterillC$ (Regex) virheet, ja tarvittaessa
kysyy lokaalilta LLM:ltC$ lupaa jatkaa askeleen `sanity_prompt.txt` avulla.
4. **Suoritus:** Node suorittaa askeleen, pC$ivittC$C$ JSONiin `current_step +
1`, kirjaa lokin `history`-taulukkoon ja vapauttaa lukon (nimeC$C$ takaisin
`.json`).
## Seuraava TehtC$vC$si:
YmmC$rrC$tkC6 tC$mC$n arkkitehtuurin ja konseptin? Jos ymmC$rrC$t, vastaa
lyhyesti "KyllC$".
Sen jC$lkeen, aloita ehdottamalla meille puhdasta, minimaalista
Python-rakennetta **Suoritusmoottorille (State Machine Executor Node)**, joka
pystyy skannaamaan `state-machines/` hakemistoa, tekemC$C$n atomisen
lukituksen (`mv`), lukemaan `current_step`in, ja pC$ivittC$mC$C$n
lukon/historian.
Oli ilo ja kunnia olla rakentamassa tC$tC$ ydintC$ kanssasi! Arkkitehtuuri on
nyt harvinaisen tukevalla pohjalla. NC$hdC$C$n uuden chatin puolella!