Puzzle path planner
Explores number-tile board recognition and move planning, using visual previews to explain candidate moves while a background search improves the plan.
A web monitoring agent for booking slots, price drops, delivery updates and new posts. Describe what you're waiting for in plain language, approve the rule the agent drafts, and let scheduled checks do the refreshing for you.
Draft #12 ready · room-list rule, checks every 61s · reply /approve 12
Sat 14:00 (30 min) · Sun 11:30 (30 min) — verified by two independent schedule queries
🔔 sound₩1,290,000 → ₩1,090,000 · condition “price ≤ ₩1,100,000” is now met
🔔 sound3 new tracking steps since last check · monitor will close itself on delivery
🔔 soundSite responding again after 3 failed checks · 2 new posts since last successful check
🔕 silentThe problem
Cancellations, restocks, booking slots and tracking updates can change between visits. Checking them manually takes time, and useful changes can be hard to distinguish from page noise.
How it works
A model proposes the rule once; a deterministic engine runs it from then on. Every draft and every later change goes through your review.
Send a URL and what you want in a chat message. No selectors, no code.
“Alert me if this lens drops under 1.1M won”An AI worker reads a sanitized copy of the public page and proposes a structured rule as strict JSON.
{"selector": ".price", "type": "number", "op": "<=", "value": 1100000}You review the draft and approve, edit, retry or hand it off. Nothing goes live without you.
/approve 12A sequential scheduler runs the rule on a fixed interval and alerts only on real transitions.
checks: 61s · AI calls: 0Drafting, step by step
The draft is the product. It has to be specific enough to run unattended, show what it is based on, and say clearly when a page can't be supported.
Sanitized page excerpt
<!-- scripts, styles, tracking removed --> <h1>50mm F1.8 Lens</h1> <span class="price-now">₩1,290,000</span> <del class="price-was">₩1,390,000</del> <p class="stock">In stock</p> <aside class="ad">Summer sale…</aside>
{
"type": "condition",
"url": "https://shop.example/lens/50mm-f1.8",
"checks": [
{ "selector": "span.price-now",
"parse": "number", "op": "<=", "value": 1100000 },
{ "selector": "p.stock",
"parse": "text", "op": "contains", "value": "In stock" }
],
"notify": "on_transition",
"interval_s": 61,
"evidence": ["price-now = ₩1,290,000", "stock = In stock"],
"ignored": ["del.price-was (old price)", "aside.ad"],
"uncertainty": "Stock text may differ per option."
}
Illustrative example with a placeholder store. Field names are simplified from the agent's internal schema.
Reliability design
The agent is designed around failure first: recoverable state, explicit failure modes and rules a person can read.
State changes and pending alerts are committed in one database transaction, so a queued alert survives a crash or restart and is retried until it is delivered.
Empty, partial or unparseable responses never replace the last good snapshot, so an outage isn't mistaken for “sold out”.
Where supported, comparing two permitted views of the same data helps flag inconsistent availability before generating an alert.
A separate watchdog checks the process and its heartbeat every few minutes, restarts it if it stalls, and reports the restart.
Separate change alerts from routine status updates, with quieter recovery messages and controlled escalation for repeated errors.
Target URLs are validated, requests to private networks are blocked, and secrets are masked in logs and stored errors.
Monitoring use cases
The intended scope is public pages and APIs that permit automated access. Support depends on the source site's terms, access limits and technical behavior; private or restricted content is outside the intended scope.
Built with Claude
Much of our implementation work is done with Claude Code: turning design notes into modules, writing and running the test suite, tracing failures from logs, and producing the verification reports that live next to the code.
The same discipline applies inside the product: the model proposes, a human approves, and plain code executes. Next, we're bringing Claude into the agent itself.
Architecture, decision records and monitor specs are written first; Claude Code implements against them, one reviewable change at a time.
The monitoring agent has 119 automated, network-free tests covering parsers, the scheduler, state transactions, security checks and chat commands.
Live-site checks and recorded evidence are part of each release, so a passing test suite is never the only signal.
The drafting backend is already pluggable. Next is a Claude API backend that uses tool use for the rule schema, measured on a set of real pages before users rely on it.
Selected work
Earlier projects in visual recognition, search, simulation and data visualization, built with the same habits: careful perception, conservative decisions and verification before release.
Explores number-tile board recognition and move planning, using visual previews to explain candidate moves while a background search improves the plan.
Explores surface pressure and upper-air weather-model data in an interactive 3D view, with pressure-center detection and vertical profiles for scientific visualization.
Explores cross-referencing public property listings, distinguishing direct matches from related or estimated results so a user can review the evidence.
A tilt-and-touch driving game built around a custom spring-mass simulation, with deformable vehicles, a speed-adaptive camera and interactive courses.
How we build
We aim to keep design decisions and verification evidence close to the code as our projects develop.
Roadmap
The agent runs today as a self-hosted service. Next comes a Claude-powered drafting backend, then a hosted multi-user beta.
Contact
We're onboarding a small group of early users. Tell us what you're waiting for, and we'll tell you whether the agent can watch it.