OpenVoiceOS / OpenVoiceOS/architecture

Spec proposal: OVOS-TRANSFORM-1 — Transformer Plugins (six lifecycle hooks)

Open
#19 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
3
Forks
0
Avg merge
15h 20m
Merged PRs (30d)
90

Description

Proposal for OVOS-TRANSFORM-1, the transformer plugin specification.

Problem

Six transformer plugin types run at fixed points around the utterance lifecycle but share no normative contract — chain ordering, per-session overrides, error handling, and the registration index are all implementation-defined.

Proposal

One abstraction for all six types:

  • Six injection points: audio (pre-STT), utterance (post-STT), metadata (post-utterance), intent (post-match pre-dispatch), dialog (post-skill pre-TTS, runs in audio-output layer), TTS (post-synthesis pre-playback)
  • Chain ordering: ascending priority (lower = earlier); deployer-configured explicit order wins
  • Per-session overrides: session.{audio,utterance,metadata,intent,dialog,tts}_transformers fields
  • Passive registration index: ovos.transformer.{type}.list / .list.response per type
  • Error handling: exceptions and shape violations become no-ops; orchestrator logs and proceeds
  • Dialog transformer note: runs in the audio-output layer just before TTS — in satellite topologies this means it runs on the satellite, not the hub

PR

PR #20

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the OVOS-TRANSFORM-1 proposal and PR #20, then review the six injection points and the listed requirements for ordering, session overrides, registration, and error handling. Done means the specification has a normative contract covering those behaviors, including the dialog transformer’s satellite placement.

Written by the indexing model from the issue text.

Assessment

Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.