P1 — define one declarative voice-fixture manifest for realistic command/dialogue recordings #166

Open
opened 2026-08-22 21:54:22 +00:00 by lost-rob0t · 0 comments
lost-rob0t commented 2026-08-22 21:54:22 +00:00 (Migrated from github.com)

Parent epic: #151
Depends on: #156, #165; integrates with #132.

Goal

Define the single source of truth used by both automated voice tests and the human recording tool. Do not bury phrase lists/timing in shell scripts.

Manifest contract

Research and version fields for case id/version, utterance steps, exact phrase to record, expected transcript/normalization, expected IntentFrame/slots/missing slots/dialogue transition, expected capability/location/result fixture, audio files/format, realistic cue/inter-turn/post-speech timing, tags and compatibility metadata.

Support single-turn, separate-file multi-turn, optional continuous-session, correction, cancellation, device/server/tool and authored-command cases.

Requirements/tests

  • strict schema with unknown/duplicate keys rejected;
  • bounded phrase/step/file counts and durations;
  • deterministic canonical serialization/ordering where useful;
  • path traversal/symlink escapes blocked for fixture paths;
  • duplicate case ids and missing audio references explicit;
  • timing ranges validated (no negative/unbounded waits);
  • corpus can be loaded without microphone/network/model provider;
  • same cases feed text semantic tests where audio is absent/not yet recorded;
  • schema migration/version mismatch behavior explicit.

Initial phrase corpus

Include metadata for timer complete; timer missing duration + follow-up; correction; cancel; open Firefox; bare open + follow-up; server search; device screenshot; memory fixture; safe fake tool; create/invoke/parameterize/edit/delete user command flows.

Acceptance

One reviewed declarative manifest drives phrases, timing expectations and semantic assertions for recorder and CI, preventing the recording script and tests from drifting.

Parent epic: #151 Depends on: #156, #165; integrates with #132. ## Goal Define the single source of truth used by both automated voice tests and the human recording tool. Do not bury phrase lists/timing in shell scripts. ## Manifest contract Research and version fields for case id/version, utterance steps, exact phrase to record, expected transcript/normalization, expected IntentFrame/slots/missing slots/dialogue transition, expected capability/location/result fixture, audio files/format, realistic cue/inter-turn/post-speech timing, tags and compatibility metadata. Support single-turn, separate-file multi-turn, optional continuous-session, correction, cancellation, device/server/tool and authored-command cases. ## Requirements/tests - strict schema with unknown/duplicate keys rejected; - bounded phrase/step/file counts and durations; - deterministic canonical serialization/ordering where useful; - path traversal/symlink escapes blocked for fixture paths; - duplicate case ids and missing audio references explicit; - timing ranges validated (no negative/unbounded waits); - corpus can be loaded without microphone/network/model provider; - same cases feed text semantic tests where audio is absent/not yet recorded; - schema migration/version mismatch behavior explicit. ## Initial phrase corpus Include metadata for timer complete; timer missing duration + follow-up; correction; cancel; open Firefox; bare open + follow-up; server search; device screenshot; memory fixture; safe fake tool; create/invoke/parameterize/edit/delete user command flows. ## Acceptance One reviewed declarative manifest drives phrases, timing expectations and semantic assertions for recorder and CI, preventing the recording script and tests from drifting.
Sign in to join this conversation.
No milestone
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
nsaspy/zara#166
No description provided.