链条 · 所有者优先——先做外部大脑,再谈观众
L0 · 愿景
introduction ——"第一个用户是你自己——它是你自己思考的外部大脑;别人来查询只是第二层界面"。boundaries ——"不是一个求职工具;所有者自己的使用排在第一位"。founder-product-fit ——创始人本身就是目标用户;他自己用起来的真实摩擦,暴露的是任何人都装不出来的东西:摄入的顺手程度、检索的形状、语气的还原度。
L1 · 承诺
这套系统必须值得所有者一个人使用:他自己的检索、起草、整理、回顾——在任何访客出现之前就已经成立。
L2 · 需求(用户旅程与功能)
所有者的旅程很广;具体包括setup/auth(/setup 四步向导——identity / credentials / ai provider / verify,app/src/components/auth/SetupForm.tsx:27——、/login、/account/reset)、内容整理、对话回顾、管理端的Dashboard/Drafts/Preview/Conversations(36789537d下共21个管理端分区,app/src/components/admin/sections/);这是四种角色里"自己"这一种。
L3 · 设计决策
Setup-token首次运行认领(启动时打印、sha256、只消费一次——消歧见owner-keypair-auth);管理端搭在owner session cookie上(与访客路径不同);display-error-surfacing(面向所有者的错误是可操作的:401→跳登录,409→行内提示);对话作为回顾循环(chat_reports、conversation_ghosts两张表)。
L4 · 工程产物
backend/internal/infra/session(setup_token/owner_session/password)、backend/internal/infra/middleware(auth.go、csrf.go、code_guard.go、credential_guard.go、client_ip.go)、管理路由 + NAV_GROUPS侧边栏(app/src/components/admin/AdminSidebar.tsx)、instance_settings单例 + 一次性认领(schema.sql:152)。owner会话的卫生工作于2026-09-05落地:登出真的会吊销服务端会话(ec40ecdab),活跃会话面板能列出并吊销每一个owner登录(d6d3f54bc),每把owner-MCP密钥对都显示最近在哪里用过(169a51d79)。
L5 · 验证
setup/login/admin的端到端套件;features-and-journeys按优先级给未覆盖的spec排序。
现状与缺口
"所有者优先"这个立场在结构上是成立的(管理端是最大的功能面),但"外部大脑"这个承诺还很单薄:所有者一侧的检索 = 和访客一样的检索质量(corpus.search直打Postgres,confusables §10);除了Writings之外,唯一专属所有者的起草界面是简历composer(Puck,756c0eb1d,2026-09-07),而它只服务求职;"第一个用户是你"这个承诺目前更多靠的是整理界面撑着,而不是检索能力本身。