Three real product gaps surfaced by an honest test run:
Issue A — substance_use_concern route
New route fires on strong substance signals (drunk/wasted/hungover/
blackout/stoned/got high/etc.). 'high' alone deliberately stays
ambiguous so 'high anxiety' / 'high stress' do not false-positive.
Template names UMD University Health Center Psychiatry and
Substance Use Services + UMD SUIT explicitly, non-punitive framing,
confidentiality reassurance. Registry entries for the SU services
now tag substance_use_concern in route_types for retrieval scoring.
Issue B — privacy_confidentiality route
ALWAYS_DIRECT route for 'is it confidential' / 'will they tell my
parents' / 'go on my transcript' / 'is counseling private' /
FERPA / records questions. Template answers factually (CC sessions
generally confidential, FERPA basics, mandatory-disclosure
exceptions, redirect to office for legally binding specifics)
instead of deflecting to a generic OFFER. Real student concern …
V4.2 part 2: authority-misconduct route + conversation history in rephraser
Authority-misconduct route
- New SupportRoute.AUTHORITY_MISCONDUCT. Detects (authority noun) AND
(problematic content) in the same message: counselor/advisor/professor/
RA/coach/dean/etc. + harm/harassment/discrimination/retaliation/
confidentiality-breach phrasing.
- Detection runs BEFORE advisor_conflict and care_violence_confidential
so alleged ethics violations don't get absorbed into academic-setback
or generic care templates.
- ALWAYS_DIRECT route: skips LISTEN/PERMISSION, goes straight to OFFER
with a template that names UMD OCRSM, Office of Student Conduct, and
Dean of Students. Template deliberately does NOT validate the
authority's standing or treat the alleged conduct as ordinary advice.
- Two new registry entries: umd_ocrsm (https://ocrsm.umd.edu/) and
umd_student_conduct (https://studentconduct.umd.edu/). Both verified
live 2026-05-10. Registry now 34 nodes.
- The exact prompt that failed in real-conversation review ("my
counsellor say the best thing …
V4.2 part 1: fix broken ISSS URL, ship URL audit + Karthik data brief
Root cause of demo 404
- UMD restructured the global office from globalmaryland.umd.edu to
marylandglobal.umd.edu and reorganized the path.
- Three service_graph rows (umd_isss, umd_isss_academic_difficulty,
umd_isss_opt_cpt) plus the INTERNATIONAL_SOURCE_HINT in response_planner.py
all pointed at the dead old path -> "Open ↗" on the ISSS source card 404'd.
- Replaced with https://isss.umd.edu/ (the canonical that auto-redirects to
the new path so we survive future UMD reorgs).
- Bumped last_verified on the 3 rows; preserved migration note for future
maintainers.
URL audit pipeline
- eval/audit_resource_urls.py walks every service_graph URL + every corpus
URL, HEADs/GETs each with a polite UA, reports HTTP status and redirects,
writes a timestamped Markdown report.
- Current state after fix: 60/63 live. The 3 SAMHSA "errors" are TLS
handshake quirks with python urllib (browsers load them fine; Karthik's
audit confirmed live).
- .gitignore: timestamped audit reports e…
V4: streaming, controlled paraphrasing, support plan, voice, sweeps
Previous responses prescribed action on turn 1 even when the user was
just venting, and there was no acknowledgment that an F-1 student
worried about deportation faces a different layer of fear than ordinary
academic stress. UMD also has a dedicated office (ISSS) for F-1
academic-difficulty advising and SEVIS, which the system never
surfaced.
This change introduces a three-stage conversation model
(LISTEN -> PERMISSION -> OFFER) that defaults to acknowledgment + open
invitation on turn 1 for listen-eligible routes, soft resource hints
on turn 2, and full action with named resources on turn 3 or any
explicit ask. Each stage has a distinct opener so back-to-back turns
no longer repeat the same validation phrase. Always-direct routes (ADS,
counseling navigation, basic needs, advisor conflict, peer-helper,
crisis, out-of-scope) skip the listening stages and go straight to
OFFER.
International / F-1 detection is a cross-cutting concern with session
memory: once visa/deport/F-1/SEVIS keywo…