Changelog¶
Alfred 设计演进的逐版记录。每一条决策都链接到对应的 ADR 与设计会话存档。 完整讨论背景见 design-sessions/2026-08-03-v1-redesign.md。
2026-08-18 · 文档一致性收敛与 PRD 治理¶
- STYLE §2 元信息块由单行|改为多行 bullets;自身 frontmatter 补
updated。 - VISION 补 frontmatter(updated/scope/related);§2 七条 V1 能力统一「能力—PRD 工作流」格式(去掉孤立加粗的「投递追踪」);§4 加固约束级边界;元信息「最后更新」同步。
- PRD:job-seeking 新增 NFR-4(缺失信息·人工补齐优先)并补工作流二 step 5(d);工作流一补「缺失補全闭环」并修正子项层级。工作流二:修正触发条件(紧接工作流一 → 「同一会话中用户继续投递该岗位」,明确仅针对刚才那个岗位);推荐改为可迭代反馈闭环;文件交付明确「可直接下载的文件(即下载链接)」。
- UPLOAD_WORKFLOW / GRAPH / DATA_MODEL_V2 / design-sessions / DATA_MODEL_V3 元信息块统一「每项一行」渲染修复并同步
最后更新。 - VISION 北极星句由裸引用块改为
[!ABSTRACT]callout,与元信息块明确区分(纠正「位置误当元信息」)。 - PRD:job-seeking 工作流一~多处的
(a)(b)(c)子项改为嵌套有序列表(a. b. c.),每个另起一行、渲染清晰。工作流三:step2 补「官网投递可能无邮件」说明;投递台账与额外处理改每项一行的嵌套有序列表(mermaid 同步)。工作流四 / 五对调(物理位置 + 编号一并调整):面试准备(原工作流五,更重要)上移为「工作流四」,面试信息追踪(原工作流四)下移为「工作流五」;VISION 经历库引用、PRD 工作流八 多轮串联注记、DATA_MODEL_V3 新表归属同步改为工作流五。工作流九/十一/十四/十五 与 FR-21/FR-22 的内联字段枚举拆分为独立子项,便于浏览。 -
LATEST 补 2026-08-18 索引(
updated一并补),落实「每次更新自动同步元数据 + CHANGELOG + LATEST」纪律。 -
Design:job-seeking-graph-architecture 新建(草稿):将 PRD 工作流翻译为引擎 Graph 的编排设计;先落地 Graph 1(JD 解析 + 确认 + 入库,对应工作流一 step 1–5),术语对齐 ADR-0018(Side Effect=Action、Interrupt=LangGraph interrupt、Conditional Edge=分支 Edge),不涉及数据模型(见 DATA_MODEL_V2/V3)。已拍板并落地:范围=工作流一~四;一个工作流可拆多 Graph(边界=独立触发事件);Step 6 想法记录=Side Effect(非独立 Graph);Reminder 固定 10/20/30 天;Node 1 Parse JD=纯 LLM 抽取(多模态归一在 Graph 外接入层);Node 3 User Confirm=一次 HITL interrupt(复用 Node 2 缺失分支机制)。新增 §3.5(Step 6=Side Effect)与 Graph 2–5 占位。当前暂停点:等你讲工作流一第二部分(Graph 2)后再画工作流二~四。
- GLOSSARY 新增 Side Effect / Conditional Edge / Graph Lifecycle 词条;Interrupt 指明复用 LangGraph interrupt/resume(HITL)。
2026-08-07 · 站点导航去除 status 徽章「!」¶
- 根因:MkDocs Material 将 frontmatter 的
status(如现行有效/草稿/accepted)当作内置「页面状态」徽章渲染到左侧导航,未知状态值回退成「!」图标。该status字段是站点治理元数据(见 STYLE §6.3),供 AI 过滤,不应被主题渲染。 - 修法:新增 docs/css/extra.css 对
.md-status设display:none,并在 mkdocs.yml 注册extra_css;仅隐藏视觉标记,保留文档内status数据本身。不影响任何正文内容。
2026-08-06 · 文档一致性修正(mermaid / 流程图 / 索引)¶
- PRD:job-seeking 修复工作流三 mermaid 语法错误(节点标签内多余引号导致无法渲染);为原缺流程图的工作流八(笔试)、十一(Offer 比较)、十四(Coffee Chat)补齐 flowchart,统一为带引号标签风格。
- LATEST 补 2026-08-06 更新索引(此前停在 08-05)。
- prd/README 登记求职助理用户流程 PRD(此前误写「暂无特性级 PRD」)。
- GLOSSARY / index 补求职领域细化表与 DATA_MODEL_V3 链接。
- 说明:CHANGELOG 此前已含 08-06「工作流十一~十五」条目;DATA_MODEL_V3 仍为草稿(工作流 11/13/14 的结构化字段、activity_log 物化、person 画像隔离待评审)。
2026-08-06 · 求职工作流补全(十一~十五)与数据模型细化¶
- PRD:job-seeking 新增工作流十一~十五(Offer 比较 / 静默期保温 / 统计与分析 / Coffee Chat / 合同审查)+ FR-18~FR-22;候选工作流章节裁剪已转正项。
- DATA_MODEL_V3.md 扩展:
follow_up.kind(thank_you / result_follow_up / silence_warmup)、activity_log、contract_review、person/interaction画像字段;补工作流 11–15 数据流行与关键不变量(共 14 条)。
2026-08-05 · 求职工作流补全(六~十)与 ER 设计¶
- PRD:job-seeking 新增工作流六~十(面试复盘 / 跟进生成 / 笔试 / Offer / 拒信)+ FR-13~FR-17。
- 产出 DATA_MODEL_V3.md(ER 图 + 数据流 + 新表规格 + 不变量草稿),登记 mkdocs nav;并修订 mkdocs.yml 注册。
2026-08-03 · V1 重新设计(重大架构定型)¶
本轮把分散在聊天记录里的概念清单与已落地代码做了对齐,拷问并拍板了 11 个互相锁死的建模决策。全部为 accepted。
核心结论¶
| 主题 | 决策 | ADR |
|---|---|---|
| 命名 | job_posting(实例) + occupation(大类),退役 position |
0009 |
| 真相模型 | event(行为真相) 与 fact(状态真相) 并列互补,非派生;application/interview 独立强类型表 |
0010 |
| 多用户 | 私有表带 user_id,共享实体/词表(user/person/organization/occupation/skill/location)不带 |
0011 |
| 编排框架 | LangGraph 编排 + Action 执行双层,不用 OpenAI Agent SDK | 0012 |
| 上下文 | 常驻单 chat_thread + AI 自动 chat_segment 分段 + 人工干预 |
0013 |
| 简历溯源 | 软引用 + 渲染强制 footnote + 校验阻断无源 | 0014 |
| 地点 | location 实体 + location_alias 反查 |
0015 |
| 内核边界 | 领域无关内核 + 领域包(V1 求职 / 未来健康·记账) | 0016 |
| 组织泛化 | company → organization(kind 枚举) |
0017 |
关键不变量(写代码前必须记住)¶
- 双真相:行为写
event(append-only),状态物化到fact(带valid_from/valid_to);二者经fact.source_event_id双向可追。 - Action 唯一写入口:LangGraph 节点落库一律走
ActionExecutor,保留dry_run/commit与 Fake-provider 可测。 - 租户过滤:所有私有表查询带
user_id;共享表天然跨用户。 - 强类型优先:可归类数据进强类型表,
memory仅收容残余。 - 简历可解释:bullet 须软引用
fact,渲染加 footnote,校验阻断无源。
影响面(实现期要做的)¶
- 重命名迁移:
position → job_posting、company → organization、position.job_family → occupation、tag.namespace='skill' → skill+user_skill。 - 新增表:
fact、chat_segment、location、location_alias、nudge、nudge_rule、document_version_fact、position_requirement、experience_source、user_skill(已有则需调整语义)、interaction(替代窄coffee_chat)。 - 旧
event语义变更:从"时间轴 kind 表"改为"行为真相日志";coffee chat / interview 等内容迁移到interaction/interview强类型表。
2026-08-04 · 个人 OS 扩展与引擎术语重构(重大范围扩展)¶
把 Alfred 从「求职助理」推进为「个人 OS」。本轮只更新设计文档,不改代码(代码重构在后续实现期)。决策背景见设计会话(brainstorming → domain-modeling → grill-with-docs → to-spec)。
核心结论¶
| 主题 | 决策 | ADR |
|---|---|---|
| 引擎术语 | "Skill" 一词双义 → 改名 Node(处理单元)/ Graph(LangGraph 真控制流)/ Action(原子写原语不变) | 0018 |
| Graph 形态 | Graph 是 Python 代码(Graph-as-Code);YAML 只做 Node 配置,不承载控制流 | 0019 |
| 输入分发 | 四层分发 L0–L3:模态 → 声明式预筛 → LLM 模糊回路 → 回流;跨域 subgraph 常驻 | 0020 |
| 领域扩展 | 共享基座 + 领域 Graph 包:job(原样保留)+ habit / media / progress(+travel) | 0021 |
关键变化(文档层)¶
- 词汇表 GLOSSARY.md:消除 "Skill" 歧义,引入 Node / Graph / Action、4 层分发、共享基座;旧 ADR 的 "Skill" 一律按 Node 理解。
- 入口 CONTEXT.md:引擎描述从 "Skills" 改为 "Node / Graph / Action"。
- 引擎规范 GRAPH.md(新建):Node 配置 YAML + Graph Python + Action + HITL 状态机。
- 捕获工作流 UPLOAD_WORKFLOW.md(新建):4 层分发 L0–L3 + Mode A/B。
- 数据模型 DATA_MODEL_V2.md:新增 habit / media / progress(+travel) 三领域包与 ER 图。
- 愿景 VISION.md:V3 个人管家领域落地为 job/habit/media/progress;前端演进到网页 → APP → 硬件。
命名冲突消除¶
skill(小写,领域数据)= skill 能力词表 / user_skill / position_requirement;引擎单元 = Node。二者不再混用。
历史(原型期)¶
- 0001–0008 见 adr/README.md:PostgreSQL 选型、前后端分仓、Taro 三端、可带脚本的 Skill 目录、长输入分块、延后 LaTeX 编译、命名 Alfred、services 单一写入口。