./deploy.sh、并且开着 SEED_DEMO_DATA 录的;第 1 段是画的 ——
它讲的是授权那条路,而画出来的东西能拿去和 user/care_circle.py 对照,
录屏不能。README 放了四幕里的三幕,第四幕链到这里。
SEED_DEMO_DATA 默认打开,所以 ./deploy.sh 一跑完,① → ② → ③ 这条链就能走:登录
和浏览种子记录不需要任何 key;第 2、3 段的抽取和第 4 段的提问,走的是前面配的那一
把 key。
1 · 进门。 你用 you@mirobody.ai 登录,看到的是两份记录,不是一份。你自己的:
一年的自测体征,加去年 11 月的一份化验单。mom@mirobody.ai 的形状一样,但那是另一
个人,把记录以只读方式共享给你,而她的体重在涨、睡眠偏短、HbA1c 已经越出范围。同一
个问题,两个答案,而两份记录里只有一份是你的。隔离是你能看见的,不是只能读到的。
到 1.4.4 之前,这四条只是一张图。现在每一条都由测试当作安全属性钉死,而不是当
作一件好事,因为出货的代码曾经一次性违反了全部四条(见路线图)。
表可以 diff,图不行。
这个开关是一个字段,不是一句承诺:
care_circle_members.health_access,
NOT NULL DEFAULT 0,在你自己的那一行上。被拉进一个圈子本身不共享任何东西,
由成员自己决定,别人的任何动作都抬不高它。读它的那个检查是抛异常而不是返回一个假
值,所以一条忘了检查的路由给出的是 403,而不是把记录递出去。
examples/06_care_circle_rules.py 能离线打印
整张决策表。
2 · ① 收集。 demo/upload/ 里放着四份种子数据故意没写进库的文件,
所以上传一份不是空操作。它们是四种不同的格式,因为一份健康档案本来就是化验所、诊所
和家里各自产出什么样,它就是什么样:
把一份拖到 Data 页,文件先被原样存下来,可追溯。① 收集只做这一件事,而这个切分很
要紧:化验所说了什么是一个事实,它是什么意思是另一个。

Total Cholesterol-TC,它写的是 Cholesterol, Total,而两者同为
14647-2,所以它们是一条序列,不是两条。单位是这个身份的一部分,而不是被抹平的东西:
胆固醇在 mmol/L 下是 14647-2,在 mg/dL 下是 2093-3,把这件事说出来,才挡得住一条由两
者混起来的趋势悄悄地错。把这两个码归并成一条可比的线是 1.5.0 的 comparability key;
设备那一侧的换算已经在做了,
examples/02_standardize_a_reading.py
能离线把 154.5 lb 变成 70.08 kg。
4 · ③ 智能体。 问一句胆固醇怎么变的。agent 会把带着这一项的文件全都找出来,包括
csv 里那个不一样的写法,然后拿它读到的东西作答:


SEED_DEMO_DATA 设成 false。
demo/README.md 说明每份文件是什么、怎么重建;抽取这一步对这些
指标还没有做到的事,写在 docs/roadmap.md 里,而不是在这里含糊过去。