跳转至

ADR-0007 · 项目命名为 Alfred,移除 claw 前缀

  • 状态:accepted
  • 日期:2026-08-01

背景(Context)

问题一:claw 是哪来的?

用户在审阅旧代码时发现包名 @claw/mobile@claw/shared,直接质疑:

"为什么有 claw 呢?为什么命名有 claw 呢?这个不对吧,这个命名完全不对。"

查证结论:claw最初脚手架自动生成的 npm 作用域前缀,没有任何业务含义,纯属残留。

问题二:jobhunter 这个名字会过期。

用户随后指出:

"既然未来可以变成一个私人的助理,那仓库名称是不是也要更新了,而不是 jobhunter 呢。"

这与产品定位完全一致——求职季结束后,助理要继续服务于工作与社交。叫 jobhunter 等于给产品设了一个到期日。

问题三:起什么名? 用户给了明确方向:

"能不能起名类似罗宾,也就是蝙蝠侠的罗宾,是一个非常好的私人助手呢?"

决策(Decision)

项目命名为 Alfred(阿尔弗雷德·潘尼沃斯,蝙蝠侠的管家)。

仓库 名称
后端 alfred-api
前端 alfred-web
Python 包 alfred

claw 前缀全面移除,且不从旧仓库继承任何命名。

理由与代价(Consequences)

为什么是 Alfred 而不是 Robin

在蝙蝠侠宇宙里,罗宾是并肩作战的搭档,阿尔弗雷德才是那个打理一切的管家——记日程、备装备、整理信息、在关键时刻递上该递的东西。用户描述的产品是"像秘书一样帮我记录、整理、提醒",语义上正对应 Alfred 而非 Robin。

用户在 alfred / robin / oracle 三个候选中选择了 alfred

其余理由

  • 领域中性:名字里没有 "job",覆盖求职 → 工作 → 社交全周期
  • 好读、好记、单词短,做命令行/包名都合适
  • 有清晰的人格意象,便于未来做交互语气的一致性

代价

  • 与已有的 macOS 工具 Alfred 重名(个人项目,无商业冲突,可接受)
  • 旧仓库 jobhunter 的名字保留不动,作为只读原型归档

备选方案(Alternatives)

候选 说明 为何不选
robin 蝙蝠侠的搭档 语义偏"并肩作战",不如管家贴"私人助理/秘书"
oracle 芭芭拉,情报中枢 语义很贴"整理串联信息",但与 Oracle 数据库严重撞名
jobhunter(沿用) 锁死在求职领域,与长期定位冲突
personal-assistant / concierge 描述性太强,不像产品名,没有记忆点

执行清单

  • [x] 新仓库使用 alfred-api / alfred-web
  • [x] Python 包名 alfred,不带任何作用域前缀
  • [ ] 前端 package.jsonalfred-web不使用 npm scope
  • [ ] 旧 jobhunter 仓库标记为归档(只读参考)