Skip to content

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

@JarbasAl

Description

@JarbasAl

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions