Brand and design · Hi-fi screens · Hi-fi screens

Hi-fi: S11 Diagnostic · Diagnostic · retell

Contract, a board per state (idle, recording, paused, autostop, too-short, permission-denied, loading, empty, error, offline), tokens and strings.

Generated by botgumi-design index from ../../screens.json. Edit that file, not this page.

Stage: hifi · Key: diagnostic/diag-record · Data-binding map: bindings.md

Drawn in the gallery: Diagnostic. Each board is the committed HTML in screens/, drawn on the example data in docs/api/examples/.

Contract

  • idle: Diagnostic round 1 only, capped at config.limits.diagnostic_max_ms (90 s). Same recorder states as the daily loop.
  • recording: Diagnostic round 1 only, capped at config.limits.diagnostic_max_ms (90 s). Same recorder states as the daily loop.
  • paused: Diagnostic round 1 only, capped at config.limits.diagnostic_max_ms (90 s). Same recorder states as the daily loop.
  • autostop: Diagnostic round 1 only, capped at config.limits.diagnostic_max_ms (90 s). Same recorder states as the daily loop.
  • too-short: Diagnostic round 1 only, capped at config.limits.diagnostic_max_ms (90 s). Same recorder states as the daily loop.
  • permission-denied: Diagnostic round 1 only, capped at config.limits.diagnostic_max_ms (90 s). Same recorder states as the daily loop.

Flows: F1 First launch → diagnostic → paywall → first real session.

Reads and calls:

  • POST /v1/sessions/{id}/attempts {round:1}
  • POST /v1/attempts/{id}/submit

Local state:

  • local:recorder.*

Boards

One row per state. A state without boards of its own says what shows it.

State Board Example data
idle zh-Hans · en config.json (zh-Hans · en), article-diagnostic.json (zh-Hans · en)
recording zh-Hans · en config.json (zh-Hans · en), article-diagnostic.json (zh-Hans · en)
paused zh-Hans · en config.json (zh-Hans · en), article-diagnostic.json (zh-Hans · en)
autostop zh-Hans · en config.json (zh-Hans · en), article-diagnostic.json (zh-Hans · en)
too-short zh-Hans · en config.json (zh-Hans · en), article-diagnostic.json (zh-Hans · en)
permission-denied zh-Hans · en article-diagnostic.json (zh-Hans · en)
loading no board of its own: From states.md (Diagnostic record): —
empty no board of its own: From states.md (Diagnostic record): —
error no board of its own: From states.md (Diagnostic record): upload failure → processing failed · fatal: —
offline no board of its own: From states.md (Diagnostic record): recording works; upload queued (processing--offline)

The boards

Each state as drawn (393 × 852), one board per locale. Open a board on its own for its spec panel.

idle

recording

paused

autostop

too-short

permission-denied

Tokens used

By path in ../../system/tokens.source.json.

Token Where
color.accentPrimary .btn--primary, .is-recording, .live, .r1 …
color.accentPrimaryPressed .btn--primary
color.accentPrimarySoft .is-recording, .r2, .r3, .rec …
color.bgCanvas .device, .dock, .navbar, .screen
color.bgInverse .rec-btn
color.bgInverseRaised .icon-btn
color.bgScrim .scrim
color.bgSunken .btn, .icon-btn, .paused, .rec …
color.bgSurface .card, .is-paused, .rec, .rec-btn …
color.lineHairline .card--flat, .progress-hair
color.lineStrong .grabber, .r1, .r2, .r3 …
color.recording .rec-indicator
color.statusDanger .rec-indicator
color.statusDangerSoft .rec-indicator
color.textDisabled .btn, .rec, .rec-btn
color.textOnAccent .btn--primary
color.textOnInverse .icon-btn, .rec-btn
color.textPrimary .device, .home-indicator, .icon-btn, .is-paused …
color.textSecondary .btn--ghost, .c-secondary, .paused, .rec-indicator …
color.textTertiary .c-tertiary, .frozen, .paused, .rec-indicator …
color.topicViolet .tag--violet
color.topicVioletSoft .tag--violet
radius.button .btn
radius.card .card
radius.md .card--md
radius.pill .rec-indicator, .round-chip
radius.xl .sheet
space.gutter .dock, .navbar, .pad, .sheet
space.s5 .card
space.s6 .screen
space.safeBottom .dock, .dock-tall, .has-dock, .screen …
space.safeTop .device, .screen
space.sizeCtaHeight .btn, .dock-tall, .has-dock, .screen
space.sizeHitMin .btn--ghost, .icon-btn
space.sizeNavbarHeight .navbar
space.sizeRecordButton .rec-btn
space.sizeRecordRing .rec
space.sizeTabbarHeight .screen
typography.body .t-body
typography.footnote .t-footnote
typography.headline .t-headline
typography.subheadline .t-subhead
typography.timer .t-timer
typography.title1 .t-title1
typography.title2 .t-title2

Strings

app.name, common.back, common.step_of.a11y, complete.ba.first, complete.xp.round1, diag.record.cta, diag.record.nav, feedback.confidence.low, feedback.evidence.pause.a11y, home.greeting.format, home.quest.done.tag, notif.daily.title, onboarding.progress.a11y, onboarding.welcome.illo.first, paywall.projection.score, profile.settings, profile.settings.a11y, read.tag.diagnostic, record.autostop.body, record.autostop.effective, record.autostop.submit, record.autostop.title, record.button.pause, record.button.resume, record.button.start, record.button.stopped, record.chip.round1, record.cta.caption, record.denied.back, record.denied.body, record.denied.cta, record.denied.step1, record.denied.step2, record.denied.step3, record.denied.title, record.hint.idle, record.hint.paused, record.hint.ready, record.indicator.paused, record.indicator.recording, record.nav.round1, record.rerecord, record.short.body, record.short.continue, record.short.title, record.sub.round1, record.title.round1, resume.round1, settings.nav

Notes for the app tracks

Motion, haptics, Dynamic Type and VoiceOver: engagement.md, tokens.md §6–7 and ios-handoff.md. Open a board with ?theme=dark&dt=1.35&binds=1 to see dark mode, the largest tested type size and every bound element.

Tracking-plan events: no tracking plan page exists yet; ADR-001 D12 names the events.

Tokens with no group in system/tokens.source.json yet (they stay in tokens.css): --dt, --elevation-1, --elevation-3, --elevation-record, --font-family-numeric, --font-family-text, --font-weight-bold, --font-weight-heavy, --font-weight-regular, --font-weight-semibold, --motion-breath, --motion-duration-base, --motion-duration-fast, --motion-duration-instant, --motion-duration-slow, --motion-ease-emphasized, --motion-ease-spring, --motion-ease-standard, --type-tracking-tight.