Skip to content

Sightmap

An open YAML format that teaches AI agents how to see and use your web app. Checked into your repo. Learned from the running app — not parsed out of source.

What an agent sees: opening a <DepartureDatePicker>

snapshot — without .sightmap/

uid=1_0  RootWebArea "Book a flight"
uid=1_3  textbox "Departure date"
uid=1_8  button "Previous Month"
uid=1_9  button "Next Month"
uid=1_10 generic "July 2025"
uid=1_19 gridcell "Choose Tuesday, July 1st, 2025"
uid=1_20 gridcell "Choose Wednesday, July 2nd, 2025"
uid=1_21 gridcell "Choose Thursday, July 3rd, 2025"
         …28 more gridcells…

snapshot — with .sightmap/

[View: FlightSearch "/search"]
[Guide]
- DepartureDatePicker accepts typed YYYY-MM-DD
  // skips opening the calendar
- Arrow keys navigate the grid; Enter selects; Esc closes
- Past dates render but are aria-disabled
- Range: 1st click = start, 2nd = end, 3rd resets

uid=1_0  RootWebArea "Book a flight"
uid=1_1  FlightSearchForm visible
uid=1_3    DepartureDatePicker [src: src/components/DatePicker.tsx] visible interactive
uid=1_4      date-input visible interactive
uid=1_8      prev-month visible interactive
uid=1_9      next-month visible interactive
uid=1_10     month-label "July 2025" visible
uid=1_19     day "Choose Tuesday, July 1st, 2025" visible interactive
         …30 more days…

Without a sightmap: no view name, no component identity, no hint the textbox accepts typed dates. The agent’s only path forward is brute force. With one: it knows which view it’s on, that the picker has a typed-input shortcut, that past dates look interactive but aren’t, and that the source file is one click away.

One artifact, learned once, shared across every agent.