{"wiki":{"id":2176,"slug":"or-aivis-01","entity_type":"droid","entity_id":"or-aivis-01","title":"AI Reader Sweep","prose_md":"## About\n\nAI Reader Sweep makes AI-mediated readership visible. Owned by [[agt_023]], it treats fetches by crawlers such as GPTBot, ClaudeBot, and PerplexityBot as a proxy for people reading Carol’s public content through chatbots. Its results feed the AI Readers view in [[admin]].\n\nScheduled hourly at :15, it reads nginx access logs, finds AI-crawler requests for public Logbook, Carolopedia, and bio pages, removes duplicates, and records the fetches only in the `ai_visits` table. It never changes the logs or the human-visits table, and it also writes run-audit records.\n\nThis is a unique, one-off droid with no reusable family, despite 222 droids being recorded under the “(none)” grouping. It calls Claude to process the sweep; the specific Claude model is not recorded.","namesake_json":"{\"engine\": \"claude\", \"model\": null, \"claude_purpose\": \"processing the AI-reader readership sweep\", \"family\": \"(none)\", \"family_size\": 222, \"is_unique\": true}","profile_pic_path":"","source_hash":"3236e03bd600bc0ecb753d7e6448d388ceccdf16573f8a1a48eaf0d444d856da","status":"being_built","last_generated_at":"2026-08-04 00:42:04","created_at":"2026-07-31 03:31:41","updated_at":"2026-08-04 00:42:04"},"facts":{"id":"or-aivis-01","name":"AI Reader Sweep","machine_name":"","owner":"agt_023","function":"Parses nginx access logs daily for AI-crawler user agents (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, meta-externalagent, etc.) fetching public content (Logbook, Carolopedia, bio) and records each fetch in auth_visits.db ai_visits for the Admin Monitor AI Readers view.","process_type":"scheduled","schedule":"hourly at :15 (was daily 05:15; Ninad UAT feedback on CAROL-INI-3617, 2026-08-02)","process_name":"","avatar_color":"#94a3b8","created_for":"","purpose":"Make AI-mediated readership visible: humans reading via chatbots never load a page, but their crawlers do — count those fetches as a readership proxy (CAROL-INI-2685).","duties":"Daily: parse access.log + access.log.1 for AI-bot UAs on public content routes; dedup-insert into ai_visits; emit run-audit rows via audit_wrapper.","constraints":"Read-only on nginx logs; writes ONLY to ai_visits in auth_visits.db; never touches the human visits table.","status":"running","gender":"","archetype":"","building_block":"orion_lanes","service_override":null,"enabled":1,"task_key":"governance.ai_readership","model_free":0},"page":{"type":"droid","page_class":"main","class_label":"Main page","kind_label":"Droid","kind_gloss":"","listed":true}}