You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-3Lines changed: 7 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -78,7 +78,7 @@ The authoring surface includes structure navigation on the left, a full formatti
78
78
79
79
### TPS Cue Language
80
80
81
-
PrompterOne treats TPS cues as reading instructions, not markup noise. The editor and reader now carry the same cue intent forward for voice, delivery, pace, emphasis, highlight, pronunciation, phonetics, stress, breath marks, staccato, legato, energy, melody, aside, rhetorical turns, building delivery, sarcasm, loud, soft, whisper, warm, urgent, and related emotion cues.
81
+
PrompterOne treats TPS cues as reading instructions, not markup noise. The editor and reader now carry the same cue intent forward for voice, delivery, pace, emphasis, highlight, pronunciation, phonetics, stress, breath marks, staccato, legato, energy, melody, edit points, speaker/archetype metadata, aside, rhetorical turns, building delivery, sarcasm, loud, soft, whisper, warm, urgent, and related emotion cues.
82
82
83
83
In the editor, TPS authoring stays readable while Monaco colors cue tags, underlines articulation, and keeps pronunciation and delivery hints visible beside the clean script text.
84
84
@@ -91,15 +91,19 @@ In the teleprompter, the clean reading line keeps those cues visible through sub
|`#`, `##`, `###`| Script, segment, and block structure | Groups reader cards, segmented progress, and jump targets without showing raw headers in the reading line |
94
-
|`/`, `//`, `[pause:500ms]`, `[pause:1s]`, `[breathe]`| Short and explicit rests | Adds phrase-aware timing gaps; breath and pause cues shape the cadence without becoming noisy text |
94
+
|`/`, `//`, `[pause:500ms]`, `[pause:1s]`, `[breath]`| Short and explicit rests | Adds phrase-aware timing gaps; breath and pause cues shape the cadence without becoming noisy text |
95
95
|`[xslow]`, `[slow]`, `[normal]`, `[fast]`, `[xfast]`, `[180WPM]`| Relative or explicit pace | Changes effective word timing; slow cues can add airy spacing, while fast cues keep readable normal spacing instead of squeezing words together |
96
96
|`[loud]`, `[soft]`, `[whisper]`| Volume and vocal intensity | Adjusts subtle color, weight, and opacity so the delivery cue is visible but the line remains readable |
97
-
|`[warm]`, `[urgent]`, `[happy]`, `[sad]`, `[calm]`, `[energetic]`, `[professional]`, `[focused]`, `[concerned]`, `[motivational]`, `[neutral]`| Emotional tone | Tints the word and reader background mood while preserving the base reading contrast |
97
+
|`[warm]`, `[urgent]`, `[excited]`, `[happy]`, `[sad]`, `[calm]`, `[energetic]`, `[professional]`, `[focused]`, `[concerned]`, `[motivational]`, `[neutral]`| Emotional tone | Tints the word and reader background mood while preserving the base reading contrast |
98
98
|`[aside]`, `[rhetorical]`, `[building]`, `[sarcasm]`| Delivery shape | Adds delivery-specific tone color and emphasis so the speaker sees how to bend the phrase |
99
99
|`[legato]`, `[staccato]`| Smooth versus clipped articulation | Uses music-like wavy or dotted underline texture below the affected words |
100
100
|`[energy:8]`, `[melody:3]`| Intensity and melodic movement | Adds controlled glow or line color rhythm without shifting word layout |
101
101
|`[highlight]`, `[emphasis]`, Markdown bold/italic | Editorial emphasis | Preserves highlight and emphasis as continuous phrase styling, not broken word-by-word fragments |
102
102
|`[pronunciation:guide]`, `[phonetic:IPA]`, `[stress:rising]`| Pronunciation, phonetic, and stress help | Keeps the reading word clean while retaining metadata, tooltip/detail, and stress underline cues for rehearsal and review |
103
+
|`[edit_point]`, `[edit_point:medium]`, `[edit_point:high]`| Editing and production cut points | Stays out of the spoken reader line; appears only as an editor or operator marker |
104
+
|`Speaker:*`, `Archetype:*`| Talent and delivery persona metadata | Affects validation, graph context, and optional chrome without becoming raw reader text |
105
+
106
+
The full implemented rendering contract, animation constraints, and verification evidence are recorded in [TPS Cue Rendering Specification](TPS_CUE_RENDERING_PLAN.md).
- Local real-model smoke completed against Azure OpenAI through the Microsoft Agent Framework path. The graph status reached `Model`, the browser sent the model request through the configured Azure OpenAI deployment, and no production graph extraction call bypassed the `ChatClientAgent` composition path.
81
+
70
82
## Claude Review
71
83
72
84
Captured before implementation and folded into the mapping above:
Copy file name to clipboardExpand all lines: docs/Reference/TPS.md
+39-42Lines changed: 39 additions & 42 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -238,7 +238,7 @@ The **+/−** buttons on the reading page change the **base speed** for the curr
238
238
[whisper]secret or intimate[/whisper] # Whispered delivery
239
239
```
240
240
241
-
Volume tags control the **intended loudness** of delivery. Renderers should visually distinguish volume levels (e.g., larger/bolder text for `[loud]`, smaller/lighter for `[soft]`, styled differently for `[whisper]`).
241
+
Volume tags control the **intended loudness** of delivery. PrompterOne distinguishes volume with weight, opacity, accent color, and italic treatment for whisper, not with font-size scaling that would shift the reading line.
242
242
243
243
#### Highlighting
244
244
@@ -287,7 +287,7 @@ develop[stress]me[/stress]nt # Stress on "me"
287
287
[stress]in[/stress]frastructure # Stress on "in"
288
288
```
289
289
290
-
The tag can wrap a single letter or a syllable. Renderers should visually distinguish the stressed portion (e.g., larger font size, underline, or bold).
290
+
The tag can wrap a single letter or a syllable. PrompterOne distinguishes the stressed portion with underline, weight, or accent metadata, not with font-size scaling that would move the word baseline.
291
291
292
292
**Stress guide** — full syllable breakdown with a parameter:
293
293
@@ -905,20 +905,15 @@ A TPS file is **source markup**, not display output. The teleprompter applicatio
905
905
906
906
### Tag Visibility
907
907
908
-
All tags (`[emphasis]`, `[slow]`, `[loud]`, `[sarcasm]`, etc.) are **invisible in the rendered output**. The renderer applies their effects visually:
909
-
910
-
-`[emphasis]word[/emphasis]` → the word appears **bold** or in a distinct color
911
-
-`[slow]text[/slow]` → text may appear with a pacing indicator or wider spacing
912
-
-`[loud]text[/loud]` → text appears larger or bolder
913
-
-`[whisper]text[/whisper]` → text appears smaller or lighter
914
-
-`[sarcasm]text[/sarcasm]` → text styled with a distinct visual cue (e.g., italic + indicator)
915
-
-`[building]text[/building]` → text may gradually increase in size or intensity
916
-
-`[legato]text[/legato]` → words appear closer together, smooth underline
917
-
-`[staccato]text[/staccato]` → words appear spaced apart, dotted underline
918
-
-`[energy:N]text[/energy]` → text size/weight scales with energy level
919
-
-`[melody:N]text[/melody]` → wave or flat indicator based on level
920
-
-`[breath]` → a small visual indicator (e.g., a subtle mark or gap)
921
-
- Segment/block headers → rendered as section dividers, not raw markdown
908
+
All tags (`[emphasis]`, `[slow]`, `[loud]`, `[sarcasm]`, etc.) are **invisible in PrompterOne reader output**. The renderer applies their effects through timing, color, weight, underline texture, metadata, and stable animation. PrompterOne must not expose raw tags in the reading line, must not use negative letter spacing, and must not scale or move active reader words in ways that make lines jump or overlap.
909
+
910
+
- Segment and block headers group reader cards, segmented progress, and jump targets; they are not spoken text.
911
+
- Pause markers (`/`, `//`, `[pause:...]`) affect phrase timing and may show a low-emphasis rest mark; they never become literal slash text.
912
+
-`[breath]` is a natural breath cue, not an added pause duration.
913
+
- Inline speed tags alter effective WPM; slow tags may widen spacing, while fast and xfast stay at non-negative readable spacing.
914
+
- Voice, delivery, emotion, articulation, energy, melody, highlight, stress, and pronunciation tags become visual contour and metadata only.
915
+
-`[edit_point]`, `[edit_point:medium]`, and `[edit_point:high]` are editor/operator markers and do not enter the spoken reader line.
916
+
-`Speaker:*` and `Archetype:*` remain metadata for validation, graph context, and optional chrome, not raw reader text.
922
917
923
918
The reader sees only the spoken text with visual styling applied. Tags are commands for the renderer, not content for the speaker.
924
919
@@ -937,32 +932,34 @@ TPS is designed for **teleprompter use** — text is always rendered on a **dark
937
932
938
933
### Visual Rendering Hints
939
934
940
-
Renderers should use **text size, letter spacing, weight, and animation** to communicate delivery cues without the reader needing to see tags. Recommended visual mappings:
941
-
942
-
| Tag | Font size | Letter spacing | Weight | Other |
|`[energy:5–6]`| Normal | Normal | Normal | Default styling (no special treatment) |
960
-
|`[energy:7–10]`| Larger (110–130%) | Normal | Bold | Glow or pulsing effect |
961
-
|`[melody:1–3]`| Normal | Normal | Normal | Flat visual indicator (dash) |
962
-
|`[melody:4–6]`| Normal | Normal | Normal | Default styling (no special treatment) |
963
-
|`[melody:7–10]`| Normal | Normal | Normal | Wave or oscillating indicator |
964
-
965
-
These are **recommendations**, not requirements. Renderers may adapt the visual treatment to their platform. The key principle: the reader should **feel** the delivery instruction from the visual presentation alone.
935
+
PrompterOne uses the following implementation-specific contract. It intentionally tightens the upstream rendering guidance so reader text stays legible during real teleprompter playback.
|`#`, `##`, `###`, `Speaker:*`, `Archetype:*`| Metadata, card grouping, segmented progress, validation, graph context, and optional chrome only; no raw header or metadata text in the active reader line. | Monaco tokens, section metadata, structure navigation, and diagnostics. |
940
+
|`/`, `//`, `[pause:...]`| Phrase timing gap and optional low-emphasis rest mark; no visible grid/ruler line and no literal slash text. | Marker token and hover with duration. |
941
+
|`[breath]`| Tiny breath affordance with zero added pause duration. | Token and hover that distinguishes breath from pause. |
942
+
|`[xslow]`, `[slow]`| Slower effective WPM, positive airy letter spacing, and dotted pacing underline; active words remain on the same baseline. | Completion, color token, and hover. |
943
+
|`[normal]`, `[fast]`, `[xfast]`, `[NWPM]`| Effective WPM changes; fast and xfast keep non-negative spacing so words cannot merge or overlap. | Completion, color token, and hover for relative and absolute speed scopes. |
944
+
|`[loud]`| Stronger weight and warmer active accent; no font-size scaling or baseline jump. | Token and hover. |
945
+
|`[soft]`| Lower opacity and lighter cool accent with stable geometry. | Token and hover. |
946
+
|`[whisper]`| Subdued italic treatment with normal readable spacing. | Token and hover. |
947
+
|`[emphasis]`, `*`, `**`| Existing emphasis hierarchy through underline/weight/highlight without splitting phrase styling word by word. | Monaco Markdown/TPS decoration. |
948
+
|`[highlight]`| Subtle translucent background at a visible opacity floor; not a color-only cue. | Token and hover. |
949
+
| Inline emotions (`neutral`, `warm`, `professional`, `focused`, `concerned`, `urgent`, `motivational`, `excited`, `happy`, `sad`, `calm`, `energetic`) | Active-word accent and reader surface tint that preserve base contrast. Segment/block emotion changes fade smoothly; inline emotion changes apply immediately. | Completion, semantic color token, and hover. |
950
+
|`[sarcasm]`| Subtle italic/rose accent with no joke label. | Token and hover. |
951
+
|`[aside]`| Slightly dimmer parenthetical feel; aside itself does not change timing unless nested speed tags do. | Token and hover. |
952
+
|`[rhetorical]`| Statement-like underline and tone accent without question-mark decoration. | Token and hover. |
953
+
|`[building]`| Crescendo through `--tps-build-progress`, bounded weight, glow, and accent intensity; no scale ramp. | Token and hover. |
954
+
|`[legato]`| Smooth or wavy underline and connected visual rhythm without negative spacing. | Token and hover. |
955
+
|`[staccato]`| Dotted underline and crisp weight using natural word gaps, not inserted separators. | Token and hover. |
956
+
|`[energy:N]`| Bounded glow/weight normalized with `(N - 1) / 9`; no scale or baseline motion. | Token, range validation, and hover. |
957
+
|`[melody:N]`| Wavy underline intensity normalized with `(N - 1) / 9`; low melody stays nearly flat. | Token, range validation, and hover. |
958
+
|`[phonetic:IPA]`, `[pronunciation:guide]`| Clean spoken word with subtle dotted underline and metadata/tooltip detail. | Hover or tooltip displays the guide. |
959
+
|`[stress]`, `[stress:guide]`| Stress underline/weight on the affected syllable or word; guide remains metadata, not replacement text. | Hover or tooltip displays the guide. |
960
+
|`[edit_point]`, `[edit_point:medium]`, `[edit_point:high]`| Omitted from spoken reader text or shown only as non-disruptive operator chrome. | Priority marker in the source/editor workflow. |
961
+
962
+
See the root [TPS Cue Rendering Specification](../../TPS_CUE_RENDERING_PLAN.md) for the animation contract, verification plan, screenshots, and real-model AI smoke evidence.
0 commit comments