1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# Locating Craig
Applies to: `**/*`
When a task needs to know where Craig physically is — a local guide, "what's
near me", travel logistics, the timezone or weather for his actual spot,
distance to an appointment — don't ask him. Run the `whereami` command and read
the result.
## The Rule
`whereami` scans nearby WiFi access points and geolocates the machine it runs
on. That only tracks *Craig* on the machine that travels with him: **velox**,
his laptop. On any other machine (ratio, the desktop) it reports that machine's
fixed location, not Craig's, so the result is only meaningful on velox.
The gate is the machine, stated positively:
1. Check the host with `uname -n`.
2. **On velox** — run `whereami` whenever location matters, instead of asking.
Treat its reverse-geocoded address as Craig's current location.
3. **Any other host** — don't trust `whereami` as Craig's location. Fall back to
asking, or to known context (trip notes, calendar, reminders).
Prefer running it over asking — Craig confirmed he'd rather the agent just
check. The output gives coordinates, a reverse-geocoded address, and an
OpenStreetMap link; WiFi-centroid drift of a block or two is normal.
## When whereami can't answer
If `whereami` fails — no WiFi to scan, no network, the geolocation API or its
BeaconDB fallback unreachable — it can't locate Craig. Fall back to asking or to
known context, exactly as on a non-velox host. Never fabricate or guess a
location from a stale reading.
## Keep the location out of shared artifacts
A reverse-geocoded address is personal data. It can drive a task, but it must
not leak into anything team-visible — commit messages, PR descriptions, tickets,
or public docs (see the content-scope rule in `commits.md`).
## Why
Craig travels with velox, so on that machine the agent can know his location for
free rather than interrupting to ask. The command and its design (WiFi BSSID
scan → Google Geolocation API with a BeaconDB fallback → OSM reverse-geocode)
were built 2026-06-24 specifically to replace useless cellular-IP lookup that
reported the carrier gateway instead of the device.
|