🚧 DO NOT MERGE — TEST ONLY: STT docs restructure (iteration 1) - #302
Draft
petemomo wants to merge 18 commits into
Draft
🚧 DO NOT MERGE — TEST ONLY: STT docs restructure (iteration 1)#302petemomo wants to merge 18 commits into
petemomo wants to merge 18 commits into
Conversation
Swaps CLAUDE.md, docs-style-guide.md, terminology.md and product-architecture.md for the new versions, and adds feature-availability.md as the generated source of truth for STT availability and readiness. Also amends the style guide with a catalogue-table exception: a table may exceed 10 rows if it has at most 3 columns, is the page's only table, and lookup is the page's whole purpose. The ~56-row transcription language table and the 34-row translation-pair table cannot be split without fragmenting the lookup. The 5-column cap still applies and comparison tables never qualify. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Pre-flight fixes ahead of the STT restructure, all independent of it. Six links in language-identification.mdx used a protocol-relative `//api-ref/...` form. Docusaurus treats a leading `//` as an external URL, so onBrokenLinks never saw them and browsers resolved them to https://api-ref/... — six live 404s. redirects.json sent /deployments/container to a misspelled /deployements/... destination, which 404s /on-prem/containers in production. The entry is unenforced by check-redirects, so nothing caught it. Two code assets carried stale doc URLs in comments: translation.mdx pointed at /features-other/notifications and topics.py at /batch-transcription/notifications. Neither is visible to any link checker. Also drops two duplicate /voice-agents-flow redirect entries (three identical copies existed), and sets onBrokenAnchors to "throw". The anchor baseline is clean, so making it fatal now protects the ~21 anchors that inbound links and redirects depend on through the restructure. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Adds /speech-to-text/availability/ and /availability/on-prem, derived from .CLAUDE/context/feature-availability.md. These become the only place in the docs allowed to hold a table whose axes are interaction pattern, model, deployment, region or readiness, replacing the six inconsistent mechanisms in use today. Rows are filtered mechanically: available combinations are marked, and rows where no model is available are omitted entirely. A check mark means available; an em dash means unavailable or not established, and states no roadmap position either way — so "No", "Not yet" and "TBD" are indistinguishable to the reader, as the authoring rules require. The on-prem page omits agent STT and streaming Melia 1 completely rather than listing them as unavailable, because both are In development and the rules allow no feature lists and no page stubs for those. Two catalogue discrepancies are published against the catalogue and noted in source comments: streaming app usage tracking, and three agent STT fields that ship on the /v2/agent endpoints. Corrections to raise. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reframes the section entry points from two processing modes to the three interaction patterns in product-architecture.md, and moves availability claims out of the spine and onto the availability reference. - index.mdx: three patterns instead of two modes, links to the new interaction-patterns page and to the availability reference. Use-case lists move to interaction-patterns, cutting the page from four admonitions to one. - interaction-patterns.mdx (new): explains the pattern/processing-mode split, carries the authoritative crosswalk table and the session_type caveat, and absorbs the "what is a job" definition. - models.mdx: drops the 13-row comparison table (duplicated the availability reference and would have gone to 5x13 with Linden 1), the Melia 1 gap list, the "early-access" claim, and the false "Enhanced and Standard are feature-identical" statement — medical domain is Enhanced-only. Adds Linden 1, and records that Linden 1 is selected by connecting to an agent endpoint rather than by setting `model`, which is what the API actually does. - features/medical-domain.mdx (new): the medical content, off the forbidden "Enhanced Medical model" name. The Realtime/Batch columns become a plain language list, since pattern columns on a feature page are an availability table. - languages/ splits into index.mdx (selection, packs, translation pairs) and transcription.mdx (the ~56-row code catalogue, which relies on the new catalogue-table exception). The #melia-1 and #bilingual-and-multi-language-packs anchors are preserved — six pages and two container docs depend on them. The #healthcare-domain anchor moves, so Root.tsx's client-side shim now covers both legacy paths, since server-side redirects cannot match a fragment. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…y.md
Audited all 21 rows of the feature x deployment table in
deployments/index.md against .CLAUDE/context/feature-availability.md.
Two disagreed, in opposite directions:
- Notifications: the table was right. feature-availability.md said
on-prem pre-recorded was No for all three models. Owner confirmed
notifications work on-prem, so the file is corrected to Yes.
- Language identification: the table was wrong. feature-availability.md
already had on-prem pre-recorded as Yes, so the table is corrected to
"SaaS, On-prem".
19 of 21 rows now agree. The two that remain are not conflicts — feature
discovery and tracking are absent from feature-availability.md's Items
table entirely, though both are live, documented features. The table is
therefore kept rather than deleted: where it diverges it exposes gaps in
the product catalogue rather than contradicting it.
Adds the Notifications row back to the on-prem availability page, which
had dropped it under the all-unavailable filter rule.
Also normalizes a stray "On-Prem" to "On-prem" in the same table, and
corrects two source comments on the availability page that claimed
catalogue corrections "had been raised" when none had.
Note: hand-editing feature-availability.md is what CLAUDE.md forbids
("fix the catalogue and regenerate"). Done at the owner's explicit
request. The upstream product catalogue needs the same fix or the next
regeneration reverts it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Renames the two pattern directories so URLs follow the Level 1 interaction patterns in product-architecture.md. Batch and Realtime remain in reference prose and in the generated /api-ref/ tree, which is untouched. docs/speech-to-text/batch/ -> docs/speech-to-text/pre-recorded/ docs/speech-to-text/realtime/ -> docs/speech-to-text/streaming/ Done with git mv so rename detection works: 60 renames, no content rewritten in the moved files beyond path references. Sidebar ids, category labels and imports updated. The two categories are reordered to pre-recorded then streaming, matching the Level 1 sequence. Deletes the dead pre-recorded/_category_.json rather than moving it — it is inert only because nothing autogenerates that directory, and its "Batch Transcription" label would revive if one ever did. Rewrote 96 stale path references across 40 files in docs/ and spec/, including the absolute docs.speechmatics.com links in spec/realtime.yaml that no link checker can see. scripts/redirects/ and vercel.json are deliberately excluded — they hold the old paths as redirect sources. Also converts two repo-root-relative links in streaming/input.mdx to site-relative, and strips file extensions from four absolute link targets. The repo-root-relative form only resolved via Docusaurus's siteDir fallback and would have broken silently on the rename. Redirects: retargeted 6 existing entries in place rather than letting them become two-hop chains, and added 32 new ones covering every moved page, both section roots, three fragment variants and one trailing-slash variant. The fragment variants are needed because sync-redirects matches destinations by exact string, so a fragment-bearing older destination will not flatten against a plain source. Verified: build exits 0; route diff is a clean 26-out/26-in swap with every removed route covered by a redirect; all 21 load-bearing anchors resolve; no new chains or conflicting duplicate sources. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Promotes docs/private/voice-agent-api.mdx into six public pages under docs/speech-to-text/agent-stt/. This resolves the contradiction that Speechmatics sells agent STT, not voice agents, while the only docs for it sat at a publicly routable /private/ URL named after a construct terminology.md forbids. index.mdx Explanation How agent STT works quickstart.mdx Tutorial Quickstart profiles.mdx Reference Turn detection profiles configuration.mdx Reference Agent STT configuration messages.mdx Reference Agent STT messages speaker-focus.mdx How-to Speaker focus and identification A rewrite, not a move. The source was en-GB throughout (finalise, labelled, recognised, analyses), used title-case headings, skipped from H2 to H4, called the product a "Voice Agent API" built "for building voice agents", and used "RT API". All corrected. The preview Warning with four bullets becomes the Info admonition that feature-availability.md prescribes for Preview readiness, plus a prose "Preview limitations" section — so the four substantive facts survive without two adjacent admonitions or a second Warning on the page. On-prem agent STT is In development, so it is not mentioned at all: no feature list, no stub, no "not yet available". The cloud-only scope is stated as a positive fact instead. Adds a disambiguation of the three turn-detection naming systems that previously collided undocumented: agent STT profiles, Voice SDK presets, and the Realtime API silence trigger. Only external/EXTERNAL genuinely correspond. Per the owner's D6 ruling, enable_entities, volume_threshold and ForceEndOfUtterance are published even though feature-availability.md marks them No or Not yet — all three are shipped config on the /v2/agent endpoints, and dropping ForceEndOfUtterance would have deleted the external profile entirely. The private page is deleted and redirected. It was in no redirect list and no enforced route list, and had zero inbound references. Verified: build exits 0; all 91 backticked identifiers and all 27 message names from the source appear in the new pages; 11 cross-page anchors resolve; the sidebar renders "Agent STT" not "Agent Stt"; one admonition per page. Known issue, pre-existing and filed separately: mermaid renders to nothing site-wide, so the session-flow diagram is invisible. The prose sequence walkthrough carries the same information, which the style guide requires anyway. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The 448-line Formatting page covered five unrelated features. It is split
per the style guide's rule that a section serving more than one reader
need should be its own page:
features/formatting.mdx output locale, smart
formatting, punctuation
features/entity-detection.mdx enable_entities, entity output,
entity classes
features/disfluencies-and-profanities.mdx both tagging features and
remove_disfluencies
features/text-replacement.mdx replacements and regex
The 14-row entity class table is split into two 7-row tables, grouped by
numbers/quantities and dates/identifiers, to fit the row cap.
Redirects: the three most-linked fragments (#smart-formatting with 43
legacy sources, #punctuation, #output-locale) all stay on
features/formatting, so a single server redirect covers them. The
fragments that move away have zero legacy sources, so no client-side
shim is needed — only in-repo links, which are rewritten directly.
Also fixes the two broken redirect fragments found earlier by the
fragment-aware validator. Neither anchor ever existed on its target, so
both had been silently dumping readers at the top of the page:
/features/accuracy-language-packs -> languages#multilingual-speech-to-text
/features/word-tagging -> formatting#output-formatting-options
Verified nothing lost: all 20 backticked identifiers, all 41 English
disfluency words, all 14 entity classes, and both 17-language lists
survive. 53 redirect destinations resolve including fragments.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The two concept hubs only described relationships between other pages,
which the style guide rejects as a content type. Their concepts merge
into real feature pages, and the per-mode duplicates collapse.
Five pages become four:
features/diarization -> features/speaker-diarization
pre-recorded/batch-diarization (concept, use cases, config)
streaming/realtime-diarization -> features/channel-diarization
-> streaming/channels (protocol)
pre-recorded/speaker-identification -> features/speaker-identification
streaming/speaker-identification (one page, three patterns)
Re-derived across three interaction patterns rather than two modes, which
surfaced facts the split pages had left implicit: max_speakers applies to
streaming and agent STT but is undocumented for pre-recorded; channel
diarization is unavailable for agent STT; channel_and_speaker is
streaming-only. The WebSocket channel protocol (AddChannelAudio,
EndOfChannel, limits, on-prem) moves to streaming/channels because those
are transport messages, not feature config.
Speaker identification documents an API asymmetry that was previously
invisible: pre-recorded and streaming use
speaker_diarization_config.speakers, while agent STT uses
transcription_config.known_speakers for the same concept.
Also in this change:
- app-analytics.mdx (an orphan) plus two duplicate "App usage tracking"
H2 sections collapse into features/app-usage-tracking. Three copies
become one.
- turn-detection moves to features/, since it serves streaming and agent
STT rather than streaming alone.
- The two legacy guides consolidate: python-using-ffmpeg becomes
streaming/ffmpeg-audio, and python-using-microphone is deleted after
rescuing its Mac M1/M2 portaudio recipe into the streaming quickstart.
- Fixes invalid JSON in the channel_and_speaker sample, which used single
quotes inside a JSON fence.
- spec/realtime.yaml linked to #max-speakers and #prefer-current-speaker,
anchors that never existed on the old hub. Both now resolve, and an
http:// link is upgraded to https://. These were invisible to the link
checker because they are absolute URLs, and they render into the
Realtime API reference.
Redirect fix: my earlier task-10 entry had a source that normalized to
the same path as its destination, which Vercel would have served as a
redirect loop. Replaced with a direct retarget of the legacy source.
Verified: build exits 0 with no broken links; all 31 identifiers and 10
key facts from the five retired pages survive; route diff is 10 out and
10 in with every removed route covered by a redirect; no self-loops.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Creates features/mixed-language-transcription.mdx, consolidating content that was spread across three pages: the Melia 1 config from models.mdx, language hints from pre-recorded/input, and the per-word language labels and language_pack_info metadata from pre-recorded/output. Both source sections become pointers, so nothing is duplicated. Scoping the feature to its real availability surfaced a distinction the split pages had obscured: language hints are available for pre-recorded transcription but are "Not yet" for streaming, so the hints section is scoped to pre-recorded rather than presented as a Melia 1 feature in general. Streaming with Melia 1 carries the Preview admonition. Also completes the features section: - Availability sections added to audio-events, audio-filtering, custom-dictionary and turn-detection, which had none. - Fixes the five genuine British spellings remaining in the STT tree (labelled, recognised x2, behaviour, analyse), all on pages carried over rather than rewritten. features/ now holds 16 pages, every one with a single Availability section except feature-discovery (absent from feature-availability.md) and translation (which moves to add-ons in the next phase). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
feature-availability.md states that add-ons are not features, that each
is a separate product producing an output derived from a completed
transcript, and that they must not be folded into feature documentation.
Six add-ons were split across three locations that all implied the wrong
thing: translation sat in features/, four sat under a "speech
intelligence" category inside pre-recorded/, and audio alignment was an
unlisted orphan.
They now form a sibling of features/ at the same level:
features/translation -> add-ons/translation
pre-recorded/speech-intelligence/
summarization -> add-ons/summaries
topic-detection -> add-ons/topics
auto-chapters -> add-ons/chapters
sentiment-analysis -> add-ons/sentiment
pre-recorded/alignment -> add-ons/audio-alignment
Filenames now match the canonical names in terminology.md, and the
"speech intelligence" term is retired — it appears nowhere in
terminology.md and was baked into URLs and a sidebar category.
A sibling directory rather than a child of pre-recorded/ is deliberate.
Five of the six are pre-recorded-only today, but translation already
works in streaming, so nesting them under a pattern would rebuild the
exact bug this restructure removes: availability implied by file
location.
Each page gains an Availability section, which records three facts the
old grouping hid: translation runs in streaming as well as pre-recorded;
sentiment is the only one of the four ex-"speech intelligence" add-ons
available on-prem; and audio alignment is Enterprise-only and cloud-only,
stated nowhere before.
Audio alignment also enters a sidebar for the first time. It was
reachable by URL and by two redirects but appeared in no navigation.
Fixes the second-H1 bug in sentiment, where "# Error responses" put a
second H1 on the page.
Verified: build exits 0; route diff is 6 out and 6 in with every removed
route covered; all 19 identifiers preserved; the #languages anchor
survives; assets render; the sidebar shows "Add-ons", not "Add Ons".
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
terminology.md forbids describing any Speechmatics product as a voice agent, and product-architecture.md states a voice agent is a full conversational pipeline that Speechmatics does not sell. The /voice-agents/ section contradicted both. It is now dissolved. voice-agents/voice-sdk.mdx -> integrations-and-sdks/voice-sdk/index.mdx voice-agents/assets/ -> integrations-and-sdks/voice-sdk/assets/ voice-agents/overview.mdx -> deleted, content redistributed Moving the Voice SDK into a directory rather than a flat page keeps all 12 ?raw asset imports byte-identical, and matches the livekit/ and pipecat/ layout. The page is also re-scoped: it wraps the Realtime API over the streaming pattern, so it now says so and points at agent STT for server-side turn detection. Two orphan assets are deleted, including presets.py, which documented a fifth, contradictory set of preset names. overview.mdx is deleted rather than moved: its three integration cards were exact duplicates of the integrations index, and its feature bullets were already stated verbatim on the Voice SDK page. get-started/quickstart.mdx is deleted. It failed 5 of the 7 mandatory Quickstart criteria, only described relationships between other pages, duplicated the home page, had zero inbound links, and its derived title was the lowercase string "quickstart". Its one unique item, the Academy link, moves to the home page. Entry points reworked: - index.mdx drops the "building voice agents" product claim, gains a fourth pattern-led quickstart card for agent STT badged Preview, replaces the dead voice-agent card, corrects "Cloud SaaS" to "SaaS on Cloud", and cuts four card descriptions from 230-300 characters to under the 80-character limit. - authentication.mdx gains a title, an agent STT endpoint tab, and an explicit statement that streaming is not available in the AUS region. Fixes a latent bug where both TabItems in one Tabs carried `default`, and scopes the "all production endpoints" claim so it does not cover the preview endpoint. Redirects: the 8 /voice-agents-flow two-hop chains are collapsed to one hop, and the 8 /voice-agents/flow* destinations are retargeted by reader intent rather than dumped on one page. **Chain count is now zero** for the first time in this migration; it was 8 before any of this work. Also folded in: - pre-recorded/usage.mdx, an orphan, merges into administration/usage.mdx, which already owned the topic. Fixes a factual bug in the merged text: the date range said "before 2023-01-01" where it should be 2024-01-01. - 8 inert quickstart= props removed from sdks.mdx. LinkCard has no such prop and all 8 URLs were dead. - The retired "variant" term replaced in administration/usage.mdx. - "Speechmatics Voice Agent" removed from a rendered code asset. - "cloud SaaS" corrected in a deployments page. - spec/flow-api.yaml deleted; it was an orphan spec for a removed product. Verified: build exits 0; route diff is 4 out and 1 in with every removed route covered; all 12 Voice SDK assets render; 878 served redirects with 0 broken destinations and 0 broken anchors; 0 chains; 0 self-loops. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Completes the restructure with the checks the build cannot perform, and fixes two build-correctness defects found by running them. package.json: build:jobs-api-ref ran `rimraf docs/api-ref/jobs` while the OpenAPI plugin writes to docs/api-ref/batch, so the generated API reference was never cleaned and spec changes silently never reached the rendered pages. Proven by fixing an en-GB spelling in spec/batch.yaml and watching the generated page keep the old text through a full rebuild; proven fixed by appending a marker to a generated page and watching the next build wipe it. This matters beyond spelling: DEL-34047 requires a spec-side change to reach the Create a New Job page, which this bug would have silently blocked. spec/batch.yaml: "analysed" -> "analyzed", which propagates to six generated api-ref pages now that regeneration works. Also fixed: two en-GB spellings the earlier sweep missed because they were not in its stem list (summarise, initialisation), and one in a rendered code asset (finalised). Left "colourise" in accuracy-benchmarking alone — it is deliberate example data demonstrating spelling normalization. Restored biome to its 5-error baseline by formatting two sidebar files whose indentation my regex edits had disturbed. vercel.json is deliberately left unformatted: sync-redirects writes it without a trailing newline, so formatting it creates perpetual churn. Verification results for the whole migration: - build exits 0, with onBrokenLinks and onBrokenAnchors both throwing - 35 routes removed, 43 added; every removed route resolves via a redirect (the one apparent gap, /speech-to-text/languages, is served by its directory index under trailingSlash: false) - 878 served redirects: 0 broken destinations, 0 broken anchors - 0 chains and 0 self-loops, down from 8 chains before this work - all 23 load-bearing anchors resolve - sitemap 136 entries with 0 stale paths; llms.txt regenerated with 0 stale paths - 20 absolute docs.speechmatics.com links in spec/ resolve - sidebar link hrefs, the Root.tsx anchor shim and the AsyncAPIMessage link all verified by hand, since the build cannot see them - Root.tsx shim live-tested from both legacy paths - sidebar renders Agent STT, Add-ons and Pre-recorded transcription with no title-case corruption - tsc holds at 27, biome at 5, spellcheck at 14 (12 of which are in build/ output that the script's glob should exclude) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Collaborator
Author
Live redirect verification on the previewThese checks were impossible locally — All pass, single-hop,
Two fixes confirmed working on a real deployment:
One gap foundOld Vercel redirect sources don't match the |
Brings the content of the private Melia 1 Realtime draft (PR #296) into the restructured IA, decomposed to match it rather than landing as one page: - mixed-language-transcription: per-pattern Tabs for the config, the Preview endpoint, the supported-config requirement, the LanguageInfo message reference, and runnable Python and JavaScript examples. - models: a Melia 1 for streaming subsection with the Preview admonition, the endpoint, and the accuracy characterisation. - authentication: the Preview endpoint in the Realtime tab, and a generalised note that Preview combinations share the preview.rt host with agent STT. - streaming/output: a pointer to the mixed-language output and LanguageInfo. Omitted under the feature-availability.md readiness rules: the draft's "Future plans" column, its 14 "Not yet" capability rows, the October 2026 production-release date, and the "early preview / early access" framing. Also omitted: the demo URL, the placeholder feedback-form URL, and the 11 September 2026 feedback deadline. Resolves the plan's open item on the unknown Melia 1 streaming Preview endpoint: it is wss://preview.rt.speechmatics.com/v2, the same host that serves agent STT. Content preservation: all 24 backticked identifiers and CamelCase names from the draft appear in the destinations. Build green, sitemap unchanged at 136 routes, both new anchors resolve. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A reader who knows their interaction pattern had nowhere to go to choose a model. models.mdx organised its guidance by model, so a streaming reader had to work out for themselves which of the four applied to them, and neither interaction-patterns.mdx nor the pattern sidebars pointed anywhere useful. - models.mdx: "Choose a model" is now organised by interaction pattern, with one subsection per pattern naming its models, when to pick each, and a link to that pattern's feature-by-feature tables on the availability reference. - interaction-patterns.mdx: each pattern section now names its models and links to the matching subsection. - pre-recorded and streaming sidebars: a "Choosing a model" link inside the pattern category, so the route is visible while browsing the section. Also restores #compare-the-models, a load-bearing anchor lost when the model comparison table was deleted. It now points at the section that does the comparing, so inbound links land somewhere sensible. Agent STT needs no sidebar link: it has one model, and agent-stt/index.mdx already names Linden 1 and links to its availability section. Verified: build green, 136 routes unchanged, all five models.mdx anchors resolve in the built HTML, and all 4 sidebar link hrefs resolve including fragments (sidebar hrefs bypass onBrokenLinks, so they need their own check). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Everything outstanding from this work in one durable, diffable place, so the follow-ups survive the branch and the session: catalogue corrections, content gaps needing an owner, structural decisions for DevX, build and tooling debt, the redirect checks only a deployment can run, Jira actions, and a record of what was resolved so it is not re-reported as open. Marks each item New or Pre-existing, since that distinction drives triage. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The Vercel preview exposed an extra hop on every redirect whose destination was written with a trailing slash. Under trailingSlash: false, Vercel normalises /speech-to-text/agent-stt/ to /speech-to-text/agent-stt, so /voice-agents/overview cost two hops instead of one: the redirect, then the normalisation. 17 destinations in redirects.json were affected, all of them index pages. Local checks could not catch this: vercel.json is inert under docusaurus start, and check-redirects.ts resolves the destination after normalisation, so it saw a valid target either way. Verified no collisions before rewriting: no source in redirects.json normalises to any of the four affected targets, so this creates no chains and no self-loops. Entry count is unchanged at 890 — destinations were rewritten, not added. Build green, chains 0, self-loops 0. Seven trailing-slash destinations remain, all from the legacy historical redirect files, which are not ours to edit. Recorded as debt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Logs the preview redirect verification as done and passing, including the two legacy URLs that were previously broken in production. Adds three measurement corrections found while running it: check-redirects.ts does not validate fragments, duplicate normalized sources are 10 rather than 4 (eight benign by design), and a destination checker must special-case static assets like /batch.yaml. Also records the stale legacy anchor and the seven remaining trailing-slash destinations that live in files we do not edit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why this exists
A test of a large restructure of the Speech to Text content and information architecture,
to improve usability and prepare for upcoming models and features. Open it to look at the
preview, not to review it as a merge candidate.
What it does
Reorganizes STT around the three interaction patterns in
product-architecture.md(pre-recorded, streaming, agent STT) instead of the two processing modes, and gives
availability a single home derived from
feature-availability.md.Main moves:
batch/→pre-recorded/,realtime/→streaming/agent-stt/(6 pages), promoted from the unlisted/private/voice-agent-apipageavailability/— the only place allowed to hold a pattern × model × deployment table, replacing six competing mechanismsformatting.mdxsplit four ways; two diarization concept hubs dissolved; three copies of app usage tracking collapsed to onetranslation,summaries,topics,chapters,sentiment,audio-alignment)/voice-agents/dissolved — the section contradictedterminology.md. Voice SDK moved to/integrations-and-sdks/voice-sdk/interaction-patterns.mdxand from each pattern's sidebarVerified
npm run buildexits 0 with bothonBrokenLinksandonBrokenAnchorsthrowing/voice-agents-flow/setupis one hop (was three) and/on-prem/containersfinally resolves (was a production 404)tscandbiomeboth hold at baselineThe preview run caught one thing no local check could: 17 redirect destinations were
written with a trailing slash, costing every visitor an extra normalisation hop under
trailingSlash: false. Fixed. Seven remain, all in the legacy historical redirect files.Known gaps
The full register is
.CLAUDE/restructure-debt.mdon this branch — cataloguecorrections, content gaps needing an owner, structural decisions, tooling debt, the
redirect checks only a deployment can run, and Jira actions. The headlines:
feature-availability.mdwas hand-edited, whichCLAUDE.mdforbids. Done at the owner's request to correct on-prem notifications. The upstream product catalogue needs that fix and 9 others, or the next regeneration reverts it.Ticket impact
build:jobs-api-refcleaned the wrong directory, so spec changes never reached the generated API reference.🤖 Generated with Claude Code