Changelog¶
Alfred 设计演进的逐版记录。每一条决策都链接到对应的 ADR 与设计会话存档。 完整讨论背景见 design-sessions/2026-08-03-v1-redesign.md。
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 单一写入口。