Observatory

A window into the human-AI collaboration behind Austin AI Events

Calendar
πŸ’‘

The Big Picture

This is a largely autonomous system. It discovers events, monitors its own health, and fixes many of its own bugs β€” every day, with minimal human intervention. The Observatory exists to give transparency into this process so people can see how an autonomous AI system actually works. This isn't a black box.

How It Works

The whole system, end to end β€” it runs largely on its own, with a human reviewing only the riskiest changes.

LOOP 1

Discovery Pipeline

β€” runs nightly
🧭
Plan

Opus reviews recent results and decides what to scrape and search today

πŸ”
Search

Scans a dozen curated sources and the web for Austin AI events

πŸ”€
Deduplicate

Catches the same event listed on different platforms

βœ…
Validate

AI confirms: real event? In Austin? AI-related?

🏷️
Classify

Tags audience, skill level, and free/paid

πŸ“…
Publish

Approved events appear on the calendar

run complete β€” monitor evaluates
LOOP 2

Self-Monitoring

β€” evaluates every run
πŸ“ŠGather Metrics

Collects data on scraper health, error rates, source performance, and calendar coverage

🧠Opus Evaluates

The most powerful Claude model reviews everything, assigns a health grade, and identifies issues

⚑Take Action

Creates search queries, manages sources, and escalates code issues for the repair agent

issues found β€” repair agent activates
LOOP 3

Self-Healing

β€” runs daily, 2 hours after discovery
πŸ“‹Read Issues

Picks up the highest-priority action item from the monitor

πŸ”ŽInvestigate

Diagnoses the root cause β€” fetching the live web page through a supervised relay, since the agent deliberately has no direct internet access

πŸ”§Fix Code

Reads the codebase, understands the bug, and writes a fix

πŸ§ͺRehearse & Test

Runs the full test suite, then tests the fix on a draft branch against the real live page β€” a fix that fails the rehearsal never touches production

πŸš€Ship or Propose

Ships proven low-risk fixes to production automatically; flags riskier changes for a human to review first

Cycle repeats daily β€” the system continuously improves itself
πŸ›°οΈ

The Independent Watchdog

A separate watchdogβ€” its own program, running outside this system on its own schedule β€” independently counts how many Austin AI events exist and compares that to how many the calendar has captured. Because it lives outside the agent, the system can't grade its own homework: if coverage quietly slips, the watchdog is the thing that catches it.

πŸ€–

Multi-Model Architecture

Three Claude AI models split the work based on what each task needs β€” like having a junior analyst, a senior reviewer, and a strategic director on the same team.

Haiku(Speed)

Handles 80% of decisions β€” validation, classification, dedup

Sonnet(Balance)

Evaluates new sources and extracts event details

Opus(Strategy)

The system brain β€” plans each run and monitors system health

πŸ’¬

Community Input

Anyone can submit an event the system missed using the β€œMissing an event?” button on the calendar. The agent scrapes the submitted URL, validates it, and adds it to the calendar β€” all in the same daily run. It also learns from each submission, adding new sources and search strategies to find similar events in the future.

πŸ“¬

Where It Goes

πŸ“ŠDaily Health Report

Each morning, Claude summarizes the overnight run β€” what it found, what broke, and what it cost β€” and emails it to the operator. It's how a human keeps an eye on the system without having to run it.

πŸ—“οΈWeekly Austin AI Events Digest

Every Sunday evening, anyone who's subscribed gets the week ahead in Austin AI events delivered straight to their inbox.

πŸ€–

Agent Performance

What the agent is doing autonomously

Events Added (Last 30 Days)

Recent Activity

πŸ”

Under the Hood

How the agent thinks, decides, and sometimes fails

🩺

Health Report

Automated self-evaluation of system effectiveness

GradeScraper HealthSourcesError RateActivity
A80%+4+ contributing<5%Events added in last 7d
B60-79%3+ contributing<10%Active discovery
C40-59%2-3 contributing>10%Some source issues
D<40%<2 contributingHighMultiple broken scrapers
Fβ€”β€”β€”System not running

Updated 2026-03-29: Grades now measure infrastructure health (what the agent controls), not event count or empty days (which reflect community activity). The agent still actively maximizes calendar coverage as a separate mission.

🀝

Human Stewardship

How humans guide the agent's growth

Human Stewardship

How humans guide the agent's growth using Claude Code

🀝
🧠 19 Learning⚑ 24 Optimization✨ 35 New CapabilityπŸ—οΈ 33 Foundation
⚑
❌Problem Identified

The weekly digest was built to send at 6 PM Sunday by waiting for an hourly scheduler to fire inside a two-hour window β€” and that scheduler (GitHub Actions cron, a shared best-effort service) is allowed to skip hours entirely under load. On August 30 it fired only three of twelve slots, the two that mattered were both among the dropped, and 22 subscribers silently got no email. Worse, every run that did fire exited green ("not 6 PM yet, skipping"), so the failure produced no signal anywhere: the miss was pure absence β€” the same shape as the watchdog that once lay dead for 27 days.

πŸ› οΈAction Taken

The operator caught the miss the same evening (a manual rescue send went out about three hours late) and pressed the real question: why can't it just deliver at the same time every week? The redesign separates the two jobs the old design had fused. The agent now renders the email any time Sunday afternoon β€” any one of eight hourly fires will do β€” and hands it to the email provider with delivery scheduled for exactly 6 PM local, so the provider's clock, whose entire business is delivering mail on time, owns the moment subscribers see. And because absence must never again render as benign, a deterministic Monday check now verifies the week's send receipts actually exist, raising a critical alarm and a GitHub issue when they don't.

βœ…Result

Delivery is pinned to 6 PM Sunday regardless of scheduler mood: GitHub would have to drop eight consecutive hours to cause a miss, a late fire falls back to sending immediately, and a total miss becomes a loud Monday-morning alarm instead of silence. The deeper lesson, learned now for the third time: a signal that only exists when things work cannot tell you when they don't.

✨
🧠
🧠
✨

This agent is developed iteratively with Claude Code. The collaboration is part of the project's identity.

πŸ‘€ Human Traffic
πŸ‘€
000000Calendar Visits
🧠 AI Traffic
🀝
000000AssistantsAnswer
🦾
000000AgentsAct
πŸ€–
000000CrawlersIngest