Gate 1 — Radio Check slice 2 (LastVet OS → last1.app bridge)¶
Status: Tracked next slice — not urgent until WIN org onboarding needs org-side engagement visibility.
Priority: After Phase B crisis-stub device verification (safety) is signed off on TestFlight.
Problem¶
Gate 1 Phase A/B records categorical Radio Check responses in lastvet-db (radio_check_events).
last1.app org admin and member surfaces read different tables:
| last1.app surface | Source today | LastVet OS events? |
|---|---|---|
| Check-ins Pending/Completed | last1_outcome_check_ins |
No |
| Beneficiary Recent Check-ins | last1_outcome_check_ins |
No |
| Radio Signals tab | Legacy RadioCheck app / SMS (last1_radio_check_instances, etc.) |
No |
Member /member/check-in |
check_in_signals |
No |
Veteran taps in LastVet iOS do not appear in last1.app until a bridge exists. This is expected for slice 1; not a bug.
Why build it (WIN-relevant, not blocking today)¶
- One clock intent (
LOOP_LEDGER_AND_PROOF_MACHINE_SPEC.md): org ledger should reflect the same weekly cadence veterans see on LastVet Home. - Active veteran metric (
GATE_1_TRACTION_THRESHOLD.md§3): org dashboards benefit from ≥3-of-4-week visibility tied to Last1 identity. - WIN pilot: becomes valuable when Michelle/onboarding is live and org admins need engagement signals for enrolled beneficiaries.
Not urgent while WIN has no onboarded cohort checking in via LastVet.
Out of scope for slice 2¶
- Replacing legacy RadioCheck SMS app pipeline wholesale.
- Full Section 2 crisis handoff UI (Phase C / Mic sign-off).
- Duplicating org coordination loop SoR (still last1.app for program loops per
GATE_2_coordination_loop.md).
Proposed shape (when prioritized)¶
- Emit on respond (last.vet-api): after
check_in_respondedappend, POST PHI-free payload to last1.app internal API keyed bylast1_identity_id: response:ok|struggling|need_support(enum only)cycle_key,occurred_at,source: lastvet_os- last1.app ingest: map into org-visible ledger (extend unified check-ins / Radio Signals read path, or new
lastvet_radio_check_signalstable — design at implementation time). - Member read-back: veteran logged into last1.app sees recent LastVet OS check-ins (read-only mirror or link to LastVet app).
- Org admin: beneficiary profile + Radio Signals (or dedicated LastVet OS filter) shows same events for enrolled members.
Crisis discipline carries: no free text, no distress content in payload; need_support is categorical only.
Dependencies¶
- Stable Last1 ID link on veteran row (
veterans.last1_identity_id) — same as coordination read path. - last1.app internal auth (existing
LAST1APP_*server secret pattern used by coordination BFF). - WIN org enrollment linking beneficiary ↔ Last1 identity (already live for coordination).
Definition of Done (draft)¶
- [ ] Prod respond on LastVet iOS creates row visible on org beneficiary profile within one request path.
- [ ] Member portal shows veteran's own LastVet OS check-in for current cycle (read-back).
- [ ] Legacy Radio Signals (29 SMS rows) remain distinct; LastVet OS rows labeled
lastvet_os(or equivalent). - [ ] No PHI in cross-system payload; crisis enum only.
- [ ] Runbook + rollback documented.
Related¶
RADIO_CHECK_SLICE_1.md(Phase A/B — shipped)lastvet-gates/LOOP_LEDGER_AND_PROOF_MACHINE_SPEC.mdlastvet-gates/gates/GATE_1_TRACTION_THRESHOLD.md§3