@startuml Architecture Overview skinparam componentStyle rectangle skinparam shadowing false skinparam ArrowColor #555 skinparam component { BackgroundColor<> #E8F5E9 BackgroundColor<> #E3F2FD BackgroundColor<> #FFF3E0 } package "Browser (Chat Sites)" <> { [ChatGPT DOM] [Claude DOM] [Gemini DOM] } node "Userscript: AI Repo Commander" as Userscript { component "Core Monitor" <> as Monitor component "Command Parser" <> as Parser component "Validation Engine" <> as Validator component "Execution Manager" <> as Executor component "Dedupe Store" <> as Dedupe component "Config Manager" <> as Config component "UI Panel (Tools/Settings)" <> as Panel component "Inline Status UI" <> as InlineUI } cloud "Bridge API" <> as Bridge ' Relationships [ChatGPT DOM] -down-> Monitor : observe assistant messages [Claude DOM] -down-> Monitor [Gemini DOM] -down-> Monitor Monitor -> Parser : extract YAML blocks Parser -> Validator : validate fields/actions Validator -> Executor : approved commands Executor -> Bridge : HTTP requests (key, action) Executor --> InlineUI : progress + results Monitor --> InlineUI : markers (processed, run again) Panel <--> Config : view/edit config Executor <--> Config : timeouts, retries Monitor <--> Dedupe : per-convo records @enduml