Markdown To

SpecificationsnormativeSheet 12 of 18

podcast@0.1

A dialogue manuscript that becomes one native two-speaker performance, with stable voices and no single-voice imitation.

File
*.podcast.md
##
production section
Speakers
exactly two
Codes
MDTO1200–1299
Read agent skill · authoring and editorial guide

§ 01

The script and the voices travel together

Planner-style HOST 1: and bold HOST 2: turns resolve through explicit stable IDs to Gemini prebuilt voices. Pauses are exact; production notes remain visible and silent.

Fig. 1A two-host explainernative · ordered
show.podcast.md
---
markdownto: [email protected]
speakers:
  - id: host
    name: HOST 1
    voice: Charon
  - id: guest
    name: HOST 2
    voice: Leda
---
## Opening

> [production:: note] Begin without theme music.

HOST 1: Let us start with the result.

[pause:: 750ms]

HOST 2: Then we can explain how it works.

## Closing

HOST 1: That is the whole model.
rendered · speaker transcriptread-only

[email protected]

3 turnsacross 2 sectionsnative two-speaker

HOST 1host · CharonHOST 2guest · Leda

Opening

  1. production note · not narrated

    Begin without theme music.

  2. HOST 1

    Let us start with the result.

  3. pause 750ms
  4. HOST 2

    Then we can explain how it works.

Closing

  1. HOST 1

    That is the whole model.

§ 02

Stable IDs meet exact prompt labels

speakers
Exactly two mappings of stable ID, display label, and distinct Gemini voice.
HOST 1:
A dialogue turn resolved by display name; the stable ID works too.
[pause:: 750ms]
Local silence inserted without buying an empty provider request.
[production:: note]
Visible production direction that never enters the spoken transcript.

§ 03

Capability-check before the first paid request

Verb

Meaning

Source edit

estimate

Reports native capability, segments, cache disposition, workers, and inferred duration.

None.

produce

Requires --yes, generates only cache misses, and joins atomically in manuscript order.

Artifacts only.

preview

Auditions one section through the same native path.

Temporary artifact.

voices

Lists voices and selected-model native capability.

None.

§ 04

Ambiguous prose is never charged to a guessed speaker

broken.podcast.md
---
markdownto: [email protected]
speakers:
  - id: host
    name: HOST 1
    voice: Kore
  - id: guest
    name: HOST 2
    voice: Puck
---
This prose has no owner.

HOST 3: Unknown speaker.

HOST 1:

[pause:: tomorrow]

> This is an ordinary quotation.

mdto validate

  • MDTO1230 error line 2

    markdownto: [email protected]

    Podcast has no dialogue turns: add a paragraph beginning with a declared speaker ID or display name followed by a colon.

  • MDTO1211 error line 11

    This prose has no owner.

    Ambiguous prose has no speaker label. Prefix it with a declared speaker ID or display name followed by a colon.

  • MDTO1212 error line 13

    HOST 3: Unknown speaker.

    Unknown speaker label HOST 3: declare it in speakers or use a declared speaker ID/display name.

  • MDTO1213 error line 15

    HOST 1:

    Dialogue turn for HOST 1 is empty.

  • MDTO1214 error line 17

    [pause:: tomorrow]

    Malformed pause: use milliseconds or seconds, for example [pause:: 750ms] or [pause:: 2s], up to 10 minutes.

  • MDTO1215 error line 19

    > This is an ordinary quotation.

    Blockquotes in [email protected] are non-narrated notes and must begin > [production:: note].

Read podcast.md or run mdto spec podcast for the complete native request, cache, receipt, and Hub contract.