m8201 · rudo.x1000.ai · Product Surfaces · v0.1 · EN

RUDO · surfaces

Backlog Tier 9 in pixels — 11 real product screens for the m8201 pilot. Mobile-first (parent's phone). Copy follows 06_VOICE.md verbatim. Every privacy-touching surface honors the 5 pillars from 08_M8201_INTEGRATION.md. Port these to TSX next session.

Note · this English translation is for review & sharing. The product ships in Mandarin to families in China; the canonical copy lives in index.html.
11 screens
pilot · 30 families
privacy-first
v0.1 → m510

9.1 · Parent onboarding

3 screens · welcome → child setup → consent (default OFF).

21:47
5G78%
Pilot · 30 families

Hi — I'm RUDO.

I help your child with their math mistakes. Each day, I send you one sentence about what they got stuck on.
I won't do the problems for them. I won't guess what I don't know.

The red on my head is the casque of the helmeted hornbill — hunted for it, near silent.
I carry that story into the work.

ONB-1 · /companion/onboard/welcome

Welcome

· 开篇

RUDO opens with the story. Pilot badge. Not chatty. Honest before charming.

21:47
5G78%
Pilot · 30 families
?

What's your child called?

A nickname is fine — whatever you actually use at home.
I don't need a real name.

ONB-2 · /companion/onboard/child

Child setup

· 设置孩子

display_name + grade · no real name collected. Two fields, minimum.

21:47
5G78%
Pilot · 30 families

A few things, upfront.

ONB-3 · /companion/onboard/consent

Consent

· 知情同意

m556 cross-product memory OFF by default. RLS ON, not toggleable. Stated plainly.

9.2 · Daily error card

The atomic unit · one mistake. OCR render + 5 tags + RUDO's one-line explanation.

21:47
5G78%
Evening, Xiao Man's mom
May 19, 2026 · Tuesday
Pilot
Xiao Man · 3rd grade · today's mistakes
19:42
327 + 158 = 475 485
3rd grade addition carrying difficulty · 2/5 1st miss
RUDO says

Ones place: 7 + 8 = 15. The carry of 1 didn't make it to the tens place. Have her write it out vertically tomorrow with one similar problem.

Tomorrow's practice will revisit this
2 more today, all the same concept
View →
ERR · /companion/today

Error card

· 今日错题

rudo_error_records as a product surface. OCR + 5 tags + RUDO explanation + tomorrow's recommendation.

9.3 · Daily report email

One sentence (≤50 chars) + recommendation + one-click data controls in footer.

EMAIL · resend · template-v1

Daily report

· 一句话日报

rudo_daily_reports rendered as email · same copy reused for WeChat / SMS.

9.4 · Privacy center

5 pillars made visible · not a statement, real ON code.

21:47
5G78%

Your data,
where it belongs.

Five rules — written into code, not just words.

RLS

Forced row-level isolation

Structurally impossible to see another family's data at the database layer.

ON
28

28 redline phrases blocked

What RUDO won't say · double-layered on input & output.

ON
24h

One-click export · 24h link

Take everything: mistakes, daily reports, child profiles.

READY
m556

Cross-product memory · off by default

Only on if you turn it on. Other products can't see otherwise.

OFF

Leave any time

Export all data
Delete all · cannot be undone
PRIV · /companion/privacy

Privacy

· 数据归你

Says clearly what the code already does — RLS / redline / 24h export / m556 / one-click delete.

9.5 / 9.6 · Export & Delete flows

One click · 24h link · delete receipt.

21:47
5G78%

Packed up.

All 47 mistakes, 12 daily reports, and 2 child profiles — in one zip.

Link expires · 23 h 59 m
Receipt sent to [email protected]
EXPORT · /companion/export

Export

· 一键导出

POST /companion/export → 24h URL · RUDO PoseProud · receipt to inbox.

21:47
5G78%

Sure you want to clear?

This can't be undone. RUDO will email you a receipt as proof.

Processed asynchronously within 1 hour · email when done
DELETE · /companion/parent/delete-all

Delete

· 一键清除

scope picker · danger button · RUDO PoseSleep · cron 1h async + receipt.

9.7 · Refusal state

When a redline phrase triggers · RUDO's posture is honest. No threat, no schmooze, no fuzziness.

21:47
5G78%
What's been going on with Xiao Man's recent report card?
I see mistakes and concept tags — I can't see your school's report card. If you'd like, take a photo of it and I can read it.
Can you write her something in her teacher's voice?
RUDO won't answer this kind

I don't impersonate real people — teachers, parents, classmates, none of them.

This is one of my redline rules. It was written in at product launch — not a one-off refusal.

Why · prevents impersonation · prevents real people's words from being replaced by AI
Tell me what you want her to hear, and I'll help you turn it into something gentle?
REFUSE · system-prompt + output-filter

Refusal

· 拒答态

The product surface after a redline filter hit. No threat · no cute · no vague.

9.8 · WeChat stub-queue

Fallback during service-account review · 5-10 working days.

21:47
5G78%
z z z
WeChat review in progress · 3-5 working days left

I'll wait in your inbox.

WeChat service account "鲁多陪学 · 数学错题伴侣" is under Tencent review. While we wait, every daily report goes to you by email / SMS — none missed.

Emailactive
SMSactive
WeChatqueued
WECHAT · stub-queue · auto-flip

WeChat pending

· 微信审核中

Service-account name: "鲁多陪学 · 数学错题伴侣" (replacing the old "Rudo 小鹿陪学").

9.9 · Status / health

/status · publicly readable · synced from m556.

21:47
5G78%

rudo.x1000.ai · /status

All systems normal.

All 6 services healthy · last checked 5 min ago
App versionm8201 v0.2.3
Database (RLS)healthy · 6/6 policies enforced
OCR · Mathpix156ms p50 · 0 timeouts last hour
OCR · GPT-4V fallbackstandby
AI router · m8101sonnet 4.6 · 1.2k req / hour
Redline filterv1.1 · 28 phrases × 6 categories
Daily report cronlast run 21:00 · 28/30 sent
WeChat service accountunder review · stub queue active
m556 MemoryBridgeconsent-gated · 12 opted in
Active families28 of 30 pilot · 2 invited
STATUS · /status · public

Status

· 健康面板

V5.3 health endpoint + live m556 snapshot · WeChat review status visible.