Skip to content

STT: echo transcript to thread before agent reply (Discord + Slack) #570

@dogzzdogzz

Description

@dogzzdogzz

Background

Originally raised in Discord: https://discord.com/channels/1491295327620169908/1491365150664560881/1497784772230123560

現在使用 STT 很方便,但是我們會不曉得究竟 STT 翻譯的對不對,是否能在使用 STT 時,openab 可以先回個 STT 翻譯的訊息到 thread(不用 tag 任何人),之後再回覆 STT 內要求

When OpenAB transcribes a voice message via STT, the transcript is silently injected into the agent prompt — the user has no way to verify whether the bot heard them correctly until the agent replies. If the answer is off-topic, it's unclear whether the cause is STT misrecognition or an agent error.

Proposal

When STT runs on a voice attachment, post the transcript back to the thread (no mentions) before the agent reply so users can verify what was heard.

Behaviour

  • One thread message per user message, regardless of how many voice clips were attached.
  • Format: > 🎤 <transcript> (one quoted line per clip).
  • Failure: > 🎤 (transcription failed) line + a single ⚠️ reaction on the user's original message.
  • Opt-out via [stt] echo_transcript = false (default true).

Scope

  • Direct adapters that already perform STT today: Discord and Slack.
  • Architected platform-agnostically (stt::post_echo takes &Arc<dyn ChatAdapter>), so future LINE / Telegram / Teams adapters that ship transcripts inherit the behaviour without adapter-specific code. The gateway protocol does not carry audio attachments today, so gateway-based platforms are intentionally not in scope for this issue.

Design + Plan

  • Spec: docs/superpowers/specs/2026-04-26-stt-transcript-echo-design.md
  • Plan: docs/superpowers/plans/2026-04-26-stt-transcript-echo.md

Implementation

A PR will follow against this issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions