Announce adaptive service identity when bridging to live human agent #21

Open
opened 2026-04-06 10:13:56 -07:00 by pyr0ball · 0 comments
Owner

Summary

When Osprey successfully navigates an IVR and bridges the user to a live human, it must announce itself as an adaptive service before handing off the call.

This is required by the cf-orch service contract (Circuit-Forge/circuitforge-orch#18) and is both an ethical consent obligation and an accessibility design principle: the human agent has the right to know they are in an assisted interaction.

Implementation

In the bridge/handoff handler (wherever the human connection is made), the service must:

  1. Play or speak an announcement before the user is connected:

    "Hi, I'm connecting you with [user name] — they're using Osprey, an adaptive assistive service. They'll be with you in just a moment."

  2. Make user name optional and user-controlled (default: omit name — privacy first)

  3. Save announced_at timestamp to the session state / run record

Configurable fields (via product config or user prefs)

  • announce_user_name: bool (default: false)
  • announcement_voice: TTS voice selection
  • product_name: defaults to "Osprey by CircuitForge"

Acceptance criteria

  • Announcement fires on every human bridge connection
  • No bridge completes without prior announcement
  • User name is opt-in (never on by default)
  • Announcement transcript stored in run record
  • Unit test verifying announcement precedes bridge handoff

Reference

## Summary When Osprey successfully navigates an IVR and bridges the user to a live human, it must announce itself as an adaptive service before handing off the call. This is required by the cf-orch service contract (Circuit-Forge/circuitforge-orch#18) and is both an ethical consent obligation and an accessibility design principle: the human agent has the right to know they are in an assisted interaction. ## Implementation In the bridge/handoff handler (wherever the human connection is made), the service must: 1. Play or speak an announcement before the user is connected: > "Hi, I'm connecting you with [user name] — they're using Osprey, an adaptive assistive service. They'll be with you in just a moment." 2. Make user name optional and user-controlled (default: omit name — privacy first) 3. Save `announced_at` timestamp to the session state / run record ## Configurable fields (via product config or user prefs) - `announce_user_name: bool` (default: false) - `announcement_voice`: TTS voice selection - `product_name`: defaults to "Osprey by CircuitForge" ## Acceptance criteria - [ ] Announcement fires on every human bridge connection - [ ] No bridge completes without prior announcement - [ ] User name is opt-in (never on by default) - [ ] Announcement transcript stored in run record - [ ] Unit test verifying announcement precedes bridge handoff ## Reference - Circuit-Forge/circuitforge-orch#18 (service contract)
pyr0ball added this to the Alpha — Pipeline milestone 2026-04-06 10:13:56 -07:00
pyr0ball added the
backlog
label 2026-04-06 10:13:56 -07:00
Sign in to join this conversation.
No labels
backlog
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Circuit-Forge/osprey#21
No description provided.