Skip to content

AI guides follow-ups - #568

Draft
Devon-White wants to merge 25 commits into
mainfrom
Devon/ai-guides-followup
Draft

AI guides follow-ups#568
Devon-White wants to merge 25 commits into
mainfrom
Devon/ai-guides-followup

Conversation

@Devon-White

Copy link
Copy Markdown
Collaborator

No description provided.

…mple

Rewrites the AI-sounding introduction, disambiguates "call" from the phone
call in the SWAIG request/reply section, removes DataMap from "where the
code lives" since it has no code (keeping a relocated mention for straight
REST calls), moves the dispatch agent example to the end of the guide so it
lands after the reliability patterns it demonstrates, and puts the Server
SDK code block first in every CodeBlocks group on the page.
Task 11 final sweep caught one straggler: the context-step CodeBlocks
group led with SWML instead of the Server SDK, breaking the
Server-SDK-first convention every other AI doc page follows.
Qualify the content-redaction masking table against the C source. Four paths
carry unredacted text and the page claimed otherwise: interim ASR results and
transparent-barge payloads reach the event webhook unmasked, and the timeline's
auto-correct, pronunciation, and normalization entries keep the original text.
Replace the "everything SignalWire records" absolute with the concrete surface
list, split the two overclaiming table rows into masked and unmasked, and stop
the Verify step from asking the agent to repeat the number back, which is the
step that triggers the pronounce path it then claimed was masked.

Correct redaction's latency framing: it is a synchronous model call on the turn
path, not a background task. Drop the say-action claim that handler text never
reenters the model's context, which is false in realtime mode.

End the tool-calling guide on its most complete example. The closing agent gains
the second tool, the global_data validation, and fillers; the mid-page copy
becomes the two-handler excerpt the global_data section actually needs, with a
forward link. Retarget swaig-test, the AI quickstart link, and the fillers
reference accordingly, and use the documented rime.spore:coda voice string.

Reconcile the prompt-structure taxonomy with its worked example: six elements,
in the example's order, with Context folded into Knowledge base.

Add the no-code-agents redirect, stop the AI overview promising a Dashboard
walkthrough no page provides, and point Datasphere and the voice Build-with-AI
card at guides instead of a REST endpoint.
The previous wave replaced one absolute with three positive masking claims, two
of which are false on the default documented path. Redaction only ever rewrites
a turn's content: redact_user_text marks spans and redact_apply_markers swaps
them into a sibling "redacted" string, and every consumer honors it by preferring
that sibling in place of content (conversation.c:164-168, :234-237, :269-272).
Nothing else on the entry is touched.

The metadata flatten is the hole. ai_conversation_json copies every metadata
field to the top level unconditionally at conversation.c:180-188, immediately
after the content swap it is unaffected by, so entity (speech_detect.c:750-767 ->
conversation.c:1628-1636, the validated structured value in canonical form) and
original_result (conversation.c:1866-1869, the undistilled tool output) reach
call_log and raw_call_log intact. build_call_timeline is worse than unmasked:
its turn events carry no content field at all (timeline.c:657-674), so they are
the flattened metadata and nothing else, and masking the text cannot change them.

Drop the two false table rows, add rows for the structured fields and for
timeline turn entries, scope the call_log row to conversation text, and delete
the narrowing sentence claiming the turns themselves are still masked. Replace
the "wherever the call is recorded or transmitted" absolute the last wave missed,
and scope the Warning's first clause to the conversation text.

Bring the diagram into line in all four places. The mermaid matters most: it is
what the .md view and any agent reading this page receives instead of the image,
so it gained an unmasked structured-fields node beside the masked-text one rather
than restating "every record is masked". The SVG grows a second labeled records
row for the same contrast; theming, classes, and the reduced-motion guard are
untouched.

Point the AI overview's Datasphere link at builtin-skills#datasphere, which is
the section that documents it; search-knowledge is about sw-search and pgvector.

Rename the tool-calling inline declaration to validate_trip so it matches what
the page teaches, and the remote signature response with it, since it declared
the same get_quote(pickup, destination) the page's own agent declares paramless.
Give the global_data excerpt its class header so it pastes without an
IndentationError.
Timeline turn entries carry no turn text, but on a normal barge
mod_openai.c writes text_heard_approx and text_spoken_total onto the
last assistant entry's metadata, and timeline.c flattens metadata
unconditionally onto the event. The agent's raw utterance therefore
reaches raw_call_log and call_timeline unmasked, which refutes the
'no conversation text at all' absolute.

Scope the Verify redaction step to the logs so it no longer sends the
reader to the timeline looking for masked turns, and retarget the
'Speak a value' lead-in at the records, which is what both paragraphs
beneath it actually compare.
Two independent source traces disagreed on whether the barge timeline
fields text_heard_approx / text_spoken_total are masked. A contested
claim should not ship in either direction on a PCI/HIPAA page, so the
claim is deleted rather than adjudicated or hedged.

Keeps the source-verified sentence that timeline turn entries are built
from structured fields, and keeps the entity / original_result warning
above it. Also drops the dependent 'timeline holds no turn text to mask'
clause from the verify step, retaining the correct scoping of the ----
expectation to call_log and raw_call_log.
@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Unhide conversation analytics and give it a home. Move analytics.mdx into
pages/ai/guides/ so the existing folder nav entry picks it up, drop the
explicit hidden page entry, remove noindex, and promote both #### headings
to ## so the page renders a table of contents. Slug and body unchanged --
the stub is now visible, not rewritten.

Restore the two topics that were dropped rather than compressed when the
capabilities page merged into the overview. Fillers and background audio
join the media-path section, where the remaining tool-call wait is already
under discussion. Voice selection extends the voices-and-languages clause.
Real-time analytics gets a paragraph in "Reaching your systems" plus a
Next steps card, since it was one of the three named differentiators and
had no presence on the page at all.

Restore built-in skills to the quickstart: add_skill appeared nowhere in
the AI docs, so a newcomer never learned they exist. datetime and math,
with a comment naming them as built-in.

Break the Dashboard link loop on resources.mdx. Both AI Agents cards
pointed back at the AI overview, which is where the reader came from;
they now land on the Dashboard creation steps further down the page.

Noise filtering and accent variation are deliberately not claimed. The
only noise handling in the AI path is interrupt_on_noise (a barge-in
threshold) and a provider-specific realtime setting; public noise
reduction is the opt-in denoise method, not an automatic capability.
…he mechanism

The two arrows floated in dead space below both panels, touching neither, and
their labels named the payload rather than what happens. Widen the channel from
80px to 240px by narrowing the panels, and put both arrows in it, centered
against the card stacks and reaching to within 4px of each panel edge.

Labels now trace the hop: the agent calls a tool, the request reaches your
backend, your code shapes the response, the agent answers from it. Add the
centered mono caption both sibling diagrams close with, carrying the reliability
point - the answer comes from your code, not the model. Shorten the tools
subtitle so the narrower card holds it.

Update the aria-label, the img alt, and the paired llms-only mermaid to match.
A doc review found both guides hard to read: long paragraphs welding
several distinct claims together, so the reader has to reread to keep
them apart. Fix the two guides and codify the rule that prevents the
drift, since mdx-style only governed sentence length.

- mdx-style: add "one paragraph, one job" to Voice, explicitly not a
  word-count rule.
- best-practices: split 6 paragraphs by idea, drop the Tip that
  duplicated the staleness point in prose, cut two restating sentences,
  and demote three aphorisms to plain statements (page ran 5-6 against
  a 2-3 limit). Re-site the handler-timing sentence next to turnaround,
  where the interval it belongs to is defined.
- prompt-engineering: split 4 paragraphs, condense the new-team-member
  simile, cut a significance-inflation opener, and bring Role and
  Response guidelines into the page's register.

Paragraphs at 70+ words: best practices 8 to 0, prompt engineering
5 to 0. No heading text changed, so no anchor moved.
'SignalWire AI' says nothing about what the product is — a doc review
called it weak branding readers ignore by default, and the H1 was the
first string a reader hit. Name the category instead.

Keep the tab label and the product name as AI; this is the page title,
not a rename. Drop 'voice AI' from the subtitle and description: the
term reads as speech synthesis outside telecom, and hard-coding the
channel would need rewriting if conversational AI reaches other
channels. The concrete claims stay accurate to what ships today.

Leave line 49's quoted 'voice AI' alone — correcting that reading is
the point of the section — and leave the TCPA and HIPAA references,
which are voice-specific by law.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant