field-lane-v2

Notes

  • 2026-09-05 Phase 1 shipped (entirely-api edb3c3f): field is Darius’s job board — the API posts one card per stop at 6 AM (services/field_lane.py, announcer bot token) and threads photo / pier-log / Vision / note / closeout / follow-up / still-open events under it; tomorrow preview + empty days are one top-level post. notify(‘darius’|‘field’) goes to the lane first, Kilroy webhook routes are fallback only. Retired: ‘Done at X? YES/NO/NOSHOW’ 10-min prompt, Kilroy 4 PM Tomorrow Preview cron. Go-live gate: invite @unlikely_professional to field. Spec /home/claude/FIELD_LANE_SPEC_2026-09-05.md; Phase 2 = API-side field intent listener, Phase 3 = Hermes keep-or-fold.
  • 2026-09-07: go-live gate cleared (announcer bot invited to field, membership verified, test card posted+deleted). Sunday 6 AM fire had failed not_in_channel and the dedup swallowed the Kilroy fallback (0 stops that day) — fixed on master a7c2751. Phase 2 scaffold on branch claude/field-lane-phase2: services/field_intents.py (dictation-tolerant schedule/upload_link/closeout/note matcher), services/field_listener_app.py (Socket Mode listener, THIRD read-only Slack app, replies via field_lane), field_inspection.request_follow_up shared by the unlikely.pics button and the listener, compose service field-listener, FIELD_LISTENER_SETUP.md. Not merged/deployed until Phase 1 holds for a week; needs Dustin to create the unlikely-field Slack app. Handoff: /home/claude/HANDOFF_FIELD_LANE_PHASE2_2026-09-07.md