网易首页 > 网易号 > 正文 申请入驻

一款酒窖应用,能记住你1999年相信什么

0
分享至

大多数酒窖应用只回答一个问题:我现在有什么。Cellar想回答的是另一个更难的问题——1999年6月1日,我的酒窖长什么样?2018年那次品鉴改变主意之前,我以为那瓶酒的适饮期是什么时候?哪些酒去年正处在巅峰,而我当时没留意,现在已经过了最佳饮用期?

这些问题直接排除了最直观的数据模型。在酒瓶上放一个状态字段,只能告诉你今天为真的事,对2004年一无所知;在酒款上放一个"适饮至"字段,只能记录某人当下的判断,却抹掉了此前的判断。


不存状态,只存事件和主张

Cellar两样都不存。它存的是事件和主张:

  • 购入和消耗是带日期的文档,不是酒瓶上的字段。只要在日期T或之前存在一条消耗事件,这瓶酒在T时点就算已被消耗。
  • 评估是带日期、带署名的关于"这瓶酒该什么时候喝"的主张。没有任何东西会覆盖一个适饮窗口。当前窗口由T时点已存在的主张按明确规则解析得出:我自己的品鉴笔记优先于酒庄的,酒庄的优先于酒评人的;同一层级内,最新的主张胜出。

其余的一切都由此推导。把日期控件往回拨,购入记录消失,消耗记录反转,适饮窗口随着主导主张的变化而变化;往前拨,未开瓶的酒会随时间穿过它们的适饮窗口。

底层的设计原则是:当你以后可能需要知道当时为真的事,就不要只存现在为真的事。

三个界面,各司其职

Cellar有三个界面,承担不同的工作:

  • Sanity Studio负责编写和治理这本账。六种文档类型、一个自定义审核队列、两个文档操作,以及一个只读的工作流字段。
  • 一个基于App SDK构建、运行在Sanity内部的Sanity App负责解读这本账。三个视图,全部由一个纯TypeScript包从事件日志实时计算得出,这个包对Sanity一无所知。
  • 一个公开页面,就是同一个App,只是不需要账号。它的只读是结构性的,而非约定俗成的——打包产物里没有令牌,数据集的公开ACL只授予读取权限。

它刻意不做第二套增删改查界面。Studio本身就是一套,所以添加酒瓶和记录消耗都在那里完成。App只负责解读,不负责管理。

至于它是给谁用的,老实说:给我自己。但这个论证可以推广到葡萄酒之外,这也是我把它做出来的原因。

同一本542瓶的账,读三个时点

无需账号即可打开:kenwalger.github.io/Cellar。在Sanity内部(组织成员)则是The Cellar应用。

同一本542瓶的账,在三个时点被读取:1999年,整个酒窖是四瓶1993年的木桐酒庄葡萄酒,其中两瓶已经开过。到2026年,是248瓶。投射到2035年,这248瓶还在,其中182瓶已经过了适饮窗口。

酒窖从不会丢酒,它丢的是机会。

"即将适饮"列出十二个月内关闭窗口的酒,每一行都注明是哪个主张决定了它:哪个层级、谁的、什么时候的。"错过的机会"问的是另一个问题:哪些酒在某段时间里正处巅峰、从未被打开、如今已过窗口。而当什么都没错过时,它会说明原因,而不是显示一个空面板。

App里的三个视图,全部从事件日志实时计算:酒窖健康度,任意日期下按状态划分的瓶数;即将适饮,十二个月内关闭的窗口,每行注明由哪个主张决定;错过的机会,某段时间内正处巅峰、从未被打开、如今已过窗口的酒。而在Studio里,是审核队列——一条被提出的主张在那里等待一个人来处理。

十四份规划文档,没有一行代码

工具方面:终端里的Claude Code,旁边是WebStorm,接上了Sanity的MCP服务器,这样模型可以核对当前文档,而不是凭记忆作答。有一点值得直说:提示词本身是在与Claude的另一次规划对话中起草的,每一个分岔口的决定也是在那里做出后再转达的。把这件事说成"一个开发者加一个智能体"并不准确。

项目进入实现阶段时,带着十四份规划文档:一份内容模型、一份时间解析规范、一份构建计划、一份种子数据计划,以及十一份架构决策记录。没有一行是代码。这一点后来被证明很重要,只是方式和我预想的不同。

浮现出来的模式是:规范,然后智能体冲突检查、不写代码,然后人来决策,然后实现,然后独立的判据、测量或实验,最后是一道只有我能关上的闸门。

每个阶段都以一句大意如下的提示词开始:读规范,对照当前平台检查它们,报告哪里不一致,然后停下。每个阶段都发现了问题。随着项目推进,这个数字是上升的,不是下降的。第一阶段发现了三处规范错误。第四阶段一开场就有十处冲突,其中两处是规范错误。

最有价值的一条指令

"报告冲突,并在写代码之前停下。"这是整个项目里价值最高的一条指令。第一阶段它发现,我指定了带下划线前缀的投影字段,而这是Sanity保留给系统字段的;还发现一条校验规则要求某条评估必须在特定状态下被创建,而Sanity无法表达这一点,因为校验只能看到当前状态。照字面实现那条规则,会让"接受"这个转换永久失效,恰好破坏这条规则本意要保护的工作流。

还有一类闸门,会写明什么不算证据。为App SDK那道闸门,我写下了正在被测试的路径,然后列出它可能被伪造的方式:不要通过单独调用@cellar/core、用别的工具查询数据集、或只依赖现有测试套件来满足这道闸门。目的是证明完整路径:Content Lake → App SDK → CELLAR_QUERY → toCellarSnapshot → bottleState() → 渲染视图。你看不到渲染后的视图,所以不要把闸门报告为已通过。给我命令、URL,以及我具体应该看到什么。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
曾放话让中国向世界道歉的阿丘,遭央视除名后,如今混成了啥样?

曾放话让中国向世界道歉的阿丘,遭央视除名后,如今混成了啥样?

翰飞观事
2026-09-30 10:15:07
阿根廷4-0大胜!劳塔罗破门,21岁天才挑射,梅西后继有人了

阿根廷4-0大胜!劳塔罗破门,21岁天才挑射,梅西后继有人了

体育知多少
2026-10-01 10:17:44
养老红利分配失衡:一边坐享优待,一边劝大众隐忍,值得深思

养老红利分配失衡:一边坐享优待,一边劝大众隐忍,值得深思

你在偷看谁
2026-08-27 20:41:21
德拉富恩特:维尔茨太出色,可惜没西班牙护照

德拉富恩特:维尔茨太出色,可惜没西班牙护照

懂球帝
2026-09-30 15:39:10
惊天逆转!中国队夺亚运历史首金,17岁小孩姐最后20米超越夺金

惊天逆转!中国队夺亚运历史首金,17岁小孩姐最后20米超越夺金

林子说事
2026-09-30 12:59:58
红果AI短剧新剧榜TOP10出炉:第一名6390万太虐了!

红果AI短剧新剧榜TOP10出炉:第一名6390万太虐了!

草莓解说体育
2026-09-30 03:56:35
黑龙江富豪惨遭灭门,保姆装死逃过一劫,保姆:凶手怎么会是他?

黑龙江富豪惨遭灭门,保姆装死逃过一劫,保姆:凶手怎么会是他?

林林故事揭秘
2025-04-10 17:37:49
第27号台风“彩云”今天凌晨生成,强度逐渐增强可达强台风级,路径预测公布

第27号台风“彩云”今天凌晨生成,强度逐渐增强可达强台风级,路径预测公布

蓬勃新闻
2026-10-01 08:18:15
米兰大秀第三弹:林心如脸垮,舒淇被宋慧乔“碾压”,袁泉老了

米兰大秀第三弹:林心如脸垮,舒淇被宋慧乔“碾压”,袁泉老了

黄色的泥土
2026-09-28 14:04:48
群众呼吁取消公职人员车补:出差都报销车费了,每月发车补不合理

群众呼吁取消公职人员车补:出差都报销车费了,每月发车补不合理

白米饭怎么吃
2026-09-27 22:03:04
没想到,游本昌追悼会上,上影副团长陈龙因一个举动实现口碑暴涨

没想到,游本昌追悼会上,上影副团长陈龙因一个举动实现口碑暴涨

枫尘余往逝
2026-09-30 16:17:34
亚运会奖牌30日刷新!日本200枚、韩国103枚,中国健儿表现太惊喜

亚运会奖牌30日刷新!日本200枚、韩国103枚,中国健儿表现太惊喜

快看张同学
2026-10-01 09:41:12
潮水退去,所有资产都会露出真实价值。上海杨浦老破小如今挂牌价跌仅3万/㎡,其他区二手房同比持续下跌,曾经暴涨神话难以重现

潮水退去,所有资产都会露出真实价值。上海杨浦老破小如今挂牌价跌仅3万/㎡,其他区二手房同比持续下跌,曾经暴涨神话难以重现

捣蛋窝
2026-09-30 06:05:08
理想汽车9月交付新车31817辆,历史累计交付量突破183万辆

理想汽车9月交付新车31817辆,历史累计交付量突破183万辆

IT之家
2026-10-01 10:27:05
泰国真的不能再去了?无数游客亲身经历,坦言当地早已不复当年

泰国真的不能再去了?无数游客亲身经历,坦言当地早已不复当年

网络易不易
2026-09-30 06:10:17
医生呼吁:马上停用3种调味酱,它是肠癌催化剂!再下饭也别沾

医生呼吁:马上停用3种调味酱,它是肠癌催化剂!再下饭也别沾

任医生聊健康
2026-09-08 08:10:34
53年女匪首为报答毛主席恩情率兵剿匪,不投降者被一一击毙

53年女匪首为报答毛主席恩情率兵剿匪,不投降者被一一击毙

史论人生
2026-10-01 08:50:24
如果你有退休金,还有三四十万存款,那第一要做的事,不是到处旅游、坚守老家,而是在离子女近的地方“重新谋生”

如果你有退休金,还有三四十万存款,那第一要做的事,不是到处旅游、坚守老家,而是在离子女近的地方“重新谋生”

犀利强哥
2026-10-01 07:00:49
10月1日WTT中国大满贯时间表!王曼昱孙颖莎领衔 王楚钦林诗栋退赛

10月1日WTT中国大满贯时间表!王曼昱孙颖莎领衔 王楚钦林诗栋退赛

慢歌轻步谣
2026-10-01 08:05:15
直播3小时副乳走光无人管:流量退潮时,体面才是最后的遮羞布

直播3小时副乳走光无人管:流量退潮时,体面才是最后的遮羞布

放开他让wo来
2026-09-16 00:05:28
2026-10-01 10:56:49
灰度测试中
灰度测试中
生活正在重构,目前还在灰度测试阶段,暂不全量发布。
205文章数 85关注度
往期回顾 全部

头条要闻

牛弹琴:赴以航班事故8个细节不简单 被质疑假旗行动

头条要闻

牛弹琴:赴以航班事故8个细节不简单 被质疑假旗行动

体育要闻

30天30队·火箭:乌度卡的控制欲

娱乐要闻

宋佳二封金鹰视后 内娱奖项史即将改写

财经要闻

智谱发上亿Token 能挽回开发者信任吗?

科技要闻

华为Mate90全系搭载旗舰τ芯片

汽车要闻

燃油车的最佳平替 长城大狗HEV简单好开更经济

态度原创

亲子
旅游
家居
游戏
军事航空

亲子要闻

高龄备孕辅酶q10选哪个品牌?试管卵巢早衰怎样调理?

旅游要闻

徐州汉文化旅游节经开区分会场启动仪式举行

家居要闻

2026建博会(广州) 公装联探展交流活动

任天堂官宣NS2系统更新!运行更流畅 老任在行动

军事要闻

美防长宣布组建“自主作战司令部”

无障碍浏览 进入关怀版