PRODUCT SPACE

CoDelphi ⌁ gzhanlei/codelphi · main ↗

CoDelphi 把 GitHub 仓库变成一份可追溯的产品规格。 连接仓库后,AI 自动提取功能清单与用户场景,每次 push 自动总结行为变化——每一条结论都附带可点击的源码证据,而不是凭空生成的摘要。

最近一次分析:succeeded

双语界面第 4a 波:登录、仪表盘、工作区与添加产品文案

34d18b7 ↗

界面语言切换扩展到入口界面:登录页、403 页、产品总览、我的工作区、添加产品页与共享反馈组件按 ui locale 服务端渲染或经 props 接收 locale,新增 lib/ui-strings/dashboard.ts 域字典;时间线日期与日期 chip 改用 formatDateIn,CopyBlock 复制按钮文案随 locale 切换。

行为变化 65 条 · 变更说明 48 条展开

回归清单导出 Markdown ↓

MCP 连接指南公开页

EC-19影响面推荐 · 证据路径与本次改动文件命中
EC-2影响面推荐 · 证据路径与本次改动文件命中
EC-20影响面推荐 · 证据路径与本次改动文件命中
EC-22影响面推荐 · 证据路径与本次改动文件命中
EC-24影响面推荐 · 证据路径与本次改动文件命中
EC-3影响面推荐 · 证据路径与本次改动文件命中
HP-3影响面推荐 · 证据路径与本次改动文件命中
HP-30影响面推荐 · 证据路径与本次改动文件命中
HP-31影响面推荐 · 证据路径与本次改动文件命中
HP-32影响面推荐 · 证据路径与本次改动文件命中
HP-33影响面推荐 · 证据路径与本次改动文件命中
HP-34影响面推荐 · 证据路径与本次改动文件命中
HP-35影响面推荐 · 证据路径与本次改动文件命中
HP-36影响面推荐 · 证据路径与本次改动文件命中
HP-37影响面推荐 · 证据路径与本次改动文件命中
HP-38影响面推荐 · 证据路径与本次改动文件命中
HP-39影响面推荐 · 证据路径与本次改动文件命中
HP-4影响面推荐 · 证据路径与本次改动文件命中
变化
MCP 连接指南公开页 · EC-1

「MCP 连接指南公开页」更新场景 EC-1

查看前后差异

变更前

情境
团队希望把同一约定共享给所有成员
操作
查看指南第五节说明
结果
仓库根目录 AGENTS.md 被标注为可选加强、非必需;已连接 agent 还会随连接收到相同的 MCP instructions

变更后

情境
未传入 locale 的 CopyBlock 使用方
操作
点击复制按钮
结果
按钮文案以默认 zh-CN 显示「复制」/「已复制」
证据路径命中components/copy-block.tsx
EC-18影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/copy-block.tsx
EC-21影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/copy-block.tsx
EC-26影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/copy-block.tsx
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/copy-block.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/copy-block.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/copy-block.tsx
HP-27影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/copy-block.tsx
HP-28影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/copy-block.tsx
变化
MCP 连接指南公开页 · HP-29Highlight · Access

「MCP 连接指南公开页」更新场景 HP-29

查看前后差异

变更前

情境
访客未登录访问 /mcp
操作
打开 /mcp 页面
结果
以公开外壳渲染连接指南,含端点、通用 mcpServers JSON、各客户端文件位置、OAuth 连接器说明、工具清单与工作流约定,并显示「返回产品总览」链接

变更后

情境
英文界面语言下查看 MCP 连接指南
操作
点击复制按钮
结果
按钮文案由 Copy 变为 Copied,文本写入剪贴板
证据路径命中components/copy-block.tsx

产品总览仪表盘

HP-9影响面推荐 · 证据路径与本次改动文件命中
EC-14影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/dashboard-lists.tsx
新增
产品总览仪表盘 · EC-15

「产品总览仪表盘」新增场景 EC-15

查看前后差异

变更后

情境
界面语言为英文,某产品处于分析中且已有历史功能或发布
操作
查看产品卡片
结果
卡片显示英文「分析中,历史规格可查看」文案并保持可点击链接
证据路径命中components/dashboard-lists.tsx
新增
产品总览仪表盘 · EC-2

「产品总览仪表盘」新增场景 EC-2

查看前后差异

变更后

情境
界面语言为英文,最近变化列表为空
操作
查看最近变化区块
结果
显示英文空态提示「Release changes will appear here after the first code analysis completes.」
证据路径命中components/dashboard-lists.tsx
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/page.tsx
EC-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/page.tsx
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/page.tsx
HP-10影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/page.tsx
新增
产品总览仪表盘 · HP-11

「产品总览仪表盘」新增场景 HP-11

查看前后差异

变更后

情境
用户以英文界面语言打开仪表盘
操作
访问首页仪表盘
结果
标题、副标题、添加产品按钮、统计卡标签与单位、区块标题说明以英文渲染,日期 chip 按英文格式显示
证据路径命中app/page.tsx
证据路径命中components/dashboard-lists.tsx
新增
产品总览仪表盘 · HP-13

「产品总览仪表盘」新增场景 HP-13

查看前后差异

变更后

情境
界面语言为英文,产品总览无任何产品
操作
打开产品总览页
结果
空态标题、正文与尾部提示以英文呈现,仍包含 npm run db:seed 命令
证据路径命中components/dashboard-lists.tsx
新增
产品总览仪表盘 · HP-2

「产品总览仪表盘」新增场景 HP-2

查看前后差异

变更后

情境
仪表盘存在产品与最近发布
操作
查看产品空间与最近变化区块
结果
ProductGrid 与 ReleaseTimeline 按传入 locale 渲染卡片、时间线与空状态文案
证据路径命中app/page.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/page.tsx
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/page.tsx
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/page.tsx
HP-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/page.tsx

分析输出语言设置

EC-10影响面推荐 · 证据路径与本次改动文件命中
EC-4影响面推荐 · 证据路径与本次改动文件命中
EC-5影响面推荐 · 证据路径与本次改动文件命中
EC-7影响面推荐 · 证据路径与本次改动文件命中
EC-8影响面推荐 · 证据路径与本次改动文件命中
EC-9影响面推荐 · 证据路径与本次改动文件命中
ER-3影响面推荐 · 证据路径与本次改动文件命中
ER-5影响面推荐 · 证据路径与本次改动文件命中
HP-4影响面推荐 · 证据路径与本次改动文件命中
HP-5影响面推荐 · 证据路径与本次改动文件命中
HP-6影响面推荐 · 证据路径与本次改动文件命中
HP-7影响面推荐 · 证据路径与本次改动文件命中
HP-8影响面推荐 · 证据路径与本次改动文件命中
HP-9影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-form-sections.tsx
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-form-sections.tsx
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/new/page.tsx
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-form-sections.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-form-sections.tsx
HP-14影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/new/page.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-form-sections.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/new-product-form.tsx

我的工作区页

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx

我的工作区页面

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
HP-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx

我的工作区页面双语

影响面推荐 · 证据路径与本次改动文件命中
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/organizations/page.tsx

界面语言切换与双语外壳

EC-4影响面推荐 · 证据路径与本次改动文件命中
EC-5影响面推荐 · 证据路径与本次改动文件命中
EC-6影响面推荐 · 证据路径与本次改动文件命中
EC-7影响面推荐 · 证据路径与本次改动文件命中
EC-8影响面推荐 · 证据路径与本次改动文件命中
EC-9影响面推荐 · 证据路径与本次改动文件命中
ER-3影响面推荐 · 证据路径与本次改动文件命中
HP-11影响面推荐 · 证据路径与本次改动文件命中
HP-12影响面推荐 · 证据路径与本次改动文件命中
HP-13影响面推荐 · 证据路径与本次改动文件命中
HP-15影响面推荐 · 证据路径与本次改动文件命中
HP-7影响面推荐 · 证据路径与本次改动文件命中
HP-8影响面推荐 · 证据路径与本次改动文件命中
HP-9影响面推荐 · 证据路径与本次改动文件命中
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-10影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/page.tsx
HP-14影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/dashboard-lists.tsx

登录与 403 页面

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/forbidden/page.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx

登录页与 403 访问受限页

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/forbidden/page.tsx
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/forbidden/page.tsx
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/forbidden/page.tsx
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/forbidden/page.tsx
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-8影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx

登录页与 403 页双语入口

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/forbidden/page.tsx
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/login/page.tsx
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/forbidden/page.tsx

产品注册入口与凭据前置校验

EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/new-product-content.tsx
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/new-product-form.tsx
新增
产品注册入口与凭据前置校验 · EC-3Highlight · Integrations

「产品注册入口与凭据前置校验」新增场景 EC-3

查看前后差异

变更后

情境
界面语言为英文,已具备 GitHub 凭据
操作
打开添加产品页
结果
渲染添加产品表单,表单内文案为英文
证据路径命中components/new-product-content.tsx
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/new-product-form.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/new-product-content.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-form-sections.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/new/page.tsx
新增
产品注册入口与凭据前置校验 · HP-4

「产品注册入口与凭据前置校验」新增场景 HP-4

查看前后差异

变更后

情境
editor 以英文界面语言打开新建产品页
操作
访问 /products/new
结果
返回链接、标题、副标题以英文渲染,NewProductContent 按传入 locale 渲染
证据路径命中app/products/new/page.tsx
新增
产品注册入口与凭据前置校验 · HP-5Highlight · Integrations

「产品注册入口与凭据前置校验」新增场景 HP-5

查看前后差异

变更后

情境
界面语言为英文,未安装 GitHub App 且无服务端令牌
操作
打开添加产品页
结果
显示英文「Connect GitHub first」标题、说明与「Open Integrations」链接
证据路径命中components/new-product-content.tsx

可复制代码块组件

EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/copy-block.tsx
新增
可复制代码块组件 · ER-1

「可复制代码块组件」新增场景 ER-1

查看前后差异

变更后

情境
浏览器不支持或拒绝剪贴板写入
操作
点击「复制」按钮
结果
复制失败,按钮文案不切换为「已复制」
证据路径命中components/copy-block.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/copy-block.tsx

变更说明(AI)

变化
界面语言切换与双语外壳

新增 lib/ui-strings/dashboard.ts 域字典(LOGIN/FORBIDDEN/DASHBOARD/ORGANIZATIONS/NEW_PRODUCT/FEEDBACK),登录页、403 页、产品总览、我的工作区、添加产品页经 resolveUiLocale 取 locale 后用 pick 渲染;dashboard-lists、form-feedback、product-form-sections、new-product-content 经 props 接收 locale。

用户影响:界面语言为英文时,登录、403、产品总览、工作区、添加产品与表单按钮文案显示英文;中文界面保持原文案。

变化
产品总览仪表盘

仪表盘标题、统计卡、区块标题、空状态与产品卡/时间线文案改由 DASHBOARD 字典按 locale 取值,ProductGrid 与 ReleaseTimeline 接收 locale,timelineDate 改用 formatDateIn。

用户影响:英文界面下产品总览的标题、统计、空状态与时间线日期按英文显示。

变化
可复制代码块组件

CopyBlock 新增可选 locale 属性,复制按钮文案在「复制/已复制」与「Copy/Copied」间按 locale 切换。

用户影响:英文界面下 /mcp 指南的复制按钮显示 Copy/Copied。

新增
登录页与 403 页双语入口

登录页与 403 页新增按 ui locale 渲染的文案:登录页标题、说明、Chandler 登录按钮、数据说明、公开演示入口与五个匿名导出标签;403 页标题、正文与返回登录链接。

用户影响:英文界面下登录页与 403 页显示英文文案,公开演示导出入口标签同步英文化。

新增
我的工作区页面

我的工作区页新增按 ui locale 渲染的标题、邀请成员表单、邀请结果提示、工作区表格表头、角色标签与切换按钮文案。

用户影响:英文界面下工作区页的邀请表单、结果提示与角色列显示英文。

变化
界面语言切换与双语外壳

新增 lib/ui-strings/dashboard.ts 域字典,登录页、403 页、产品总览仪表盘、我的工作区、添加产品页与共享反馈组件改为服务端解析界面语言后用 pick() 渲染中英文文案,时间线日期改用 formatDateIn 按 locale 格式化。

用户影响:界面语言为英文的用户在登录、403、仪表盘、工作区与添加产品等入口看到英文文案与英文日期格式;中文界面渲染保持不变。

变化
可复制代码块组件

CopyBlock 新增可选 locale 属性,复制按钮文案按界面语言显示「复制/已复制」或 Copy/Copied,默认 zh-CN。

用户影响:英文界面下 /mcp 指南的复制按钮显示英文文案;中文界面不变。

变化
界面语言切换与双语外壳

新增 lib/ui-strings/dashboard.ts 域字典,登录页、403 页、仪表盘、我的工作区、添加产品页在服务端解析界面语言后用 pick() 渲染中英文文案;CopyBlock、表单反馈与仪表盘列表组件经 props 接收 locale。

用户影响:界面语言为英文的用户在登录、403、产品总览、工作区与添加产品等入口界面看到英文文案,中文界面保持原样。

变化
产品总览仪表盘

仪表盘标题、统计卡、产品空间与最近变化区块文案改由 DASHBOARD 字典按界面语言取值,产品卡片与时间线组件接收 locale,时间线日期改用 formatDateIn 按 locale 格式化。

用户影响:英文界面下仪表盘标题、统计、空状态与时间线日期以英文呈现。

新增
登录页与 403 访问受限页

登录页与 403 页新增界面语言支持:登录页标题、说明、Chandler 登录按钮、数据说明与公开演示入口及五个匿名导出链接按 locale 渲染;403 页改为服务端解析 locale 后渲染标题、正文与返回登录链接。

用户影响:英文界面用户看到英文登录页与 403 提示;中文界面文案与之前一致。

新增
我的工作区页面

我的工作区页新增界面语言支持:返回链接、标题、邀请成员表单、邀请结果提示、成员表格表头与角色名、当前工作区徽标与切换按钮按 locale 渲染。

用户影响:英文界面下工作区页的邀请与成员管理文案显示英文。

变化
界面语言切换与双语外壳

新增 lib/ui-strings/dashboard.ts 域字典,登录页、403 页、产品总览、我的工作区、添加产品页在服务端解析界面语言后经 pick() 渲染中英文案;表单反馈标签与仪表盘卡片/时间线/空态改为 locale 感知,时间线日期改用 formatDateIn。

用户影响:界面语言为英文的用户在登录、403、产品总览、工作区与添加产品页看到英文文案与英文日期格式;中文界面渲染保持不变。

变化
可复制代码块组件

CopyBlock 新增可选 locale 属性,复制按钮文案按界面语言在「复制/已复制」与 Copy/Copied 之间切换,默认 zh-CN。

用户影响:英文界面下 /mcp 指南的复制按钮显示 Copy/Copied;中文界面不变。

变化
产品总览仪表盘

仪表盘标题、统计卡、分区标题、产品卡片与时间线空态文案改由 DASHBOARD 字典按界面语言取值,产品网格与时间线接收 locale,时间线日期经 formatDateIn 按 locale 格式化。

用户影响:英文界面下产品总览的标题、统计、空态与时间线日期显示英文;中文界面不变。

新增
登录页与 403 访问受限页

登录页与 403 页改为服务端解析界面语言,标题、说明、Chandler 登录按钮、数据说明、公开演示入口与五个匿名导出链接、403 提示与返回登录链接均按界面语言渲染。

用户影响:英文界面用户看到英文登录页与 403 提示;公开演示导出入口名称随界面语言切换。

新增
我的工作区页

我的工作区页新增界面语言解析,返回链接、标题、邀请成员表单、邀请结果提示、成员表格表头、角色名与切换按钮按界面语言渲染。

用户影响:英文界面下工作区页的邀请表单、角色与表格文案显示英文。

变化
界面语言切换与双语外壳

新增 lib/ui-strings/dashboard.ts 域字典,登录页、403 页、产品总览、我的工作区、添加产品页与表单分区、通用反馈组件按 resolveUiLocale 取 locale 后用 pick 渲染中英文案;时间线日期与日期 chip 改用 formatDateIn。

用户影响:界面语言为英文的用户在登录、403、仪表盘、工作区与添加产品等入口界面看到英文文案与英文日期格式;中文界面渲染保持不变。

变化
可复制代码块组件

CopyBlock 新增可选 locale 属性,复制按钮文案按 locale 在「复制/已复制」与 Copy/Copied 之间切换,默认 zh-CN。

用户影响:英文界面下 /mcp 指南的复制按钮显示 Copy/Copied,中文界面文案不变。

新增
登录与 403 页面

新增登录页与 403 页的双语渲染:登录页标题、说明、Chandler 登录按钮、数据说明与公开演示入口及五个导出链接按 LOGIN 字典渲染;403 页标题、正文与返回登录链接按 FORBIDDEN 字典渲染。

用户影响:英文界面下登录页与 403 页显示英文文案与英文导出入口名称;中文界面保持原文案。

新增
我的工作区页面

我的工作区页新增双语渲染:返回链接、标题、邀请成员表单、邀请结果提示、成员表格表头、角色标签与切换按钮按 ORGANIZATIONS 字典渲染。

用户影响:英文界面下工作区页的邀请表单、结果提示与成员表格显示英文;中文界面不变。

变化
界面语言切换与双语外壳

新增 lib/ui-strings/dashboard.ts 域字典,登录页、403 页、产品总览、我的工作区、添加产品页与表单分区、通用反馈组件按 resolveUiLocale 取 locale 后用 pick 渲染。

用户影响:界面语言为英文时,登录、403、仪表盘、工作区与添加产品等入口页面显示英文文案;中文界面保持原样。

变化
产品总览仪表盘

仪表盘标题、统计卡、产品空间与最近变化区块文案改由 DASHBOARD 字典按 locale 取值,ProductGrid 与 ReleaseTimeline 接收 locale,时间线日期改用 formatDateIn。

用户影响:英文界面下仪表盘标题、统计与空状态显示英文,时间线日期按英文格式输出。

变化
可复制代码块组件

CopyBlock 新增可选 locale 属性,复制按钮文案在「复制/已复制」与「Copy/Copied」之间按 locale 切换。

用户影响:英文界面下 /mcp 指南的复制按钮显示 Copy/Copied。

新增
我的工作区页面双语

我的工作区页标题、邀请成员表单、邀请结果提示、成员表格表头与角色标签、切换按钮按 ORGANIZATIONS 字典渲染。

用户影响:英文界面下工作区页的邀请与成员管理文案显示英文。

变化
产品输出语言设置面板

新增 lib/ui-strings/dashboard.ts 域字典(每键一个 LocaleEntry),登录/403/仪表盘/工作区/新建产品页服务端解析 ui locale 并通过 pick() 渲染;CopyBlock 增加可选 locale 参数(默认 zh-CN)。

用户影响:界面语言切换覆盖登录、仪表盘、工作区、新建产品与共享反馈组件;默认中文渲染不变。

变化
产品访问鉴权

403 页面由同步硬编码中文改为 async 组件,await resolveUiLocale() 后按 locale 渲染标题、正文与返回登录链接。

用户影响:无权限访问时 403 页文案随界面语言切换。

变化
Chandler OAuth 登录

登录页主标题按换行拆两行渲染,说明、面板文案、Chandler 登录按钮、用户提示、数据说明链接与公开演示区块均改为 pick 渲染;DemoExports 增加 locale 参数,五个导出入口标签本地化,接口路径不变。

用户影响:登录页与公开演示导出入口文案随界面语言切换,导出链接行为不变。

变化
产品总览仪表盘

仪表盘标题、副标题、添加产品按钮、统计区 aria-label 与三张统计卡标签/单位、产品空间与最近变化区块标题说明改为 pick 渲染;ProductGrid 与 ReleaseTimeline 额外传入 locale;日期 chip 仍用 formatDateIn。

用户影响:仪表盘全部文案与日期格式随界面语言切换。

变化
产品成员与邀请

工作区页返回链接、标题、邀请表单、邀请结果提示、表头、角色名、当前工作区徽标与切换按钮改为 pick 渲染。

用户影响:工作区列表与邀请流程文案随界面语言切换,权限与表单行为不变。

变化
产品注册入口与凭据前置校验

新建产品页返回链接、标题、副标题改为 pick 渲染,NewProductContent 额外传入 locale。

用户影响:新建产品页文案随界面语言切换,连接状态与默认输出语言逻辑不变。

变化
MCP 连接指南公开页

CopyBlock 复制按钮文案改为按 locale 渲染「复制/已复制」与「Copy/Copied」,locale 默认 zh-CN。

用户影响:公开指南页复制按钮文案随界面语言切换。

变化
产品总览仪表盘

dashboard-lists 的 timelineDate、ProductCardContent、ProductGrid、ReleaseTimeline 增加 locale 参数(默认 zh-CN),pending 文案、功能/发布计数单位、空态文案改为 pick(locale, DASHBOARD.*),时间线日期改用 formatDateIn(locale, ...) 格式化。

用户影响:英文界面下产品卡片、空态与时间线日期以英文呈现;中文界面渲染不变。

变化
产品注册提交区

ProductInformationSection 与 RepositorySection 增加可选 locale 字段(默认 zh-CN),区块标题、说明、字段标签、占位符、slug 提示、输出语言标签与 aria-label、输出语言提示后缀、仓库与分支标签/占位符/提示改为 pick(locale, NEW_PRODUCT.*)。

用户影响:英文界面下产品信息与仓库区块的标签、占位符与提示为英文;中文界面不变。

变化
Chandler OAuth 登录

新增 LOGIN 字典(含嵌套 demoExports),登录页文案按 locale 渲染。

用户影响:英文界面下登录页标题、说明、Chandler 登录按钮与演示入口文案为英文。

变化
产品访问鉴权

新增 FORBIDDEN 字典,403 页标题、说明与返回登录链接按 locale 渲染。

用户影响:英文界面下无权限页文案为英文。

变化
产品成员与邀请

新增 ORGANIZATIONS 字典,我的工作区页标题、邀请表单、角色标签、邀请结果提示与切换工作区文案按 locale 渲染。

用户影响:英文界面下工作区页与邀请相关文案为英文。

已检查
产品总览仪表盘

ProductGrid 中 pending 卡片是否渲染为链接或非链接等待卡的判定逻辑未变,仅透传 locale。

用户影响:无外部可见行为变化。

界面语言切换基础:locale cookie、切换器与双语外壳

203cdca ↗

新增界面语言管线:lib/ui-locale.ts 纯函数解析 locale 与文案字典,lib/ui-locale-server.ts 在服务端读取 cookie;POST /api/ui-locale 校验 locale 与同源重定向后写入一年期 SameSite=Lax cookie 并 303 回原页;顶栏新增语言切换 pill;AppShell/PublicShell/DemoShell/Brand 与根布局改为 locale 感知,html lang 与 metadata 描述随语言变化;日期格式化改为 locale 感知的 formatDateIn/formatDateTimeIn,替换仪表盘、设置、成本页与产品总览中的硬编码 zh-CN。

行为变化 56 条 · 变更说明 55 条展开

回归清单导出 Markdown ↓

locale 感知日期格式化

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/format.ts
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/format.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/settings/page.tsx证据路径命中lib/format.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/format.ts证据路径命中lib/product-overview.ts
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/format.ts
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/format.ts

产品总览仪表盘

EC-10影响面推荐 · 证据路径与本次改动文件命中
EC-11影响面推荐 · 证据路径与本次改动文件命中
EC-12影响面推荐 · 证据路径与本次改动文件命中
EC-13影响面推荐 · 证据路径与本次改动文件命中
EC-2影响面推荐 · 证据路径与本次改动文件命中
EC-5影响面推荐 · 证据路径与本次改动文件命中
EC-6影响面推荐 · 证据路径与本次改动文件命中
EC-7影响面推荐 · 证据路径与本次改动文件命中
EC-8影响面推荐 · 证据路径与本次改动文件命中
EC-9影响面推荐 · 证据路径与本次改动文件命中
ER-2影响面推荐 · 证据路径与本次改动文件命中
HP-11影响面推荐 · 证据路径与本次改动文件命中
HP-2影响面推荐 · 证据路径与本次改动文件命中
HP-7影响面推荐 · 证据路径与本次改动文件命中
HP-8影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-overview.ts
EC-14影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-overview.ts
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-overview.ts
EC-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-overview.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-overview.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-overview.ts
变化
产品总览仪表盘 · HP-10

「产品总览仪表盘」更新场景 HP-10

查看前后差异

变更前

情境
最新发布包含实现证据的行为变化
操作
buildProductOverview 执行
结果
changeGroups 按功能聚合 added/removed/changed 计数,影响卡展示实现证据的影响文本

变更后

情境
界面语言为 en 的用户打开仪表盘
操作
访问 /
结果
日期 chip 以英文格式显示当前日期(月/日/星期)
证据路径命中app/page.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-overview.ts
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-overview.ts
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-overview.ts
HP-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-overview.ts
HP-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-overview.ts

产品页头部与演示只读入口

EC-13影响面推荐 · 证据路径与本次改动文件命中
EC-14影响面推荐 · 证据路径与本次改动文件命中
EC-3影响面推荐 · 证据路径与本次改动文件命中
EC-4影响面推荐 · 证据路径与本次改动文件命中
EC-5影响面推荐 · 证据路径与本次改动文件命中
EC-6影响面推荐 · 证据路径与本次改动文件命中
EC-7影响面推荐 · 证据路径与本次改动文件命中
EC-8影响面推荐 · 证据路径与本次改动文件命中
ER-4影响面推荐 · 证据路径与本次改动文件命中
ER-5影响面推荐 · 证据路径与本次改动文件命中
HP-4影响面推荐 · 证据路径与本次改动文件命中
HP-6影响面推荐 · 证据路径与本次改动文件命中
HP-7影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
ER-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/demo-shell.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/demo-shell.tsx

产品页头部与简介展示

EC-4影响面推荐 · 证据路径与本次改动文件命中
EC-6影响面推荐 · 证据路径与本次改动文件命中
HP-4影响面推荐 · 证据路径与本次改动文件命中
HP-5影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-overview.ts
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-overview.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx

匿名演示态分析入口

EC-4影响面推荐 · 证据路径与本次改动文件命中
EC-5影响面推荐 · 证据路径与本次改动文件命中
EC-8影响面推荐 · 证据路径与本次改动文件命中
HP-4影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/demo-shell.tsx
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx

只读演示下的分析入口

EC-3影响面推荐 · 证据路径与本次改动文件命中
EC-4影响面推荐 · 证据路径与本次改动文件命中
EC-6影响面推荐 · 证据路径与本次改动文件命中
EC-7影响面推荐 · 证据路径与本次改动文件命中
HP-3影响面推荐 · 证据路径与本次改动文件命中
HP-4影响面推荐 · 证据路径与本次改动文件命中
HP-5影响面推荐 · 证据路径与本次改动文件命中
HP-6影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/app-shell.tsx
EC-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/demo-shell.tsx
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx

演示模式分析入口

EC-4影响面推荐 · 证据路径与本次改动文件命中
EC-5影响面推荐 · 证据路径与本次改动文件命中
EC-8影响面推荐 · 证据路径与本次改动文件命中
EC-9影响面推荐 · 证据路径与本次改动文件命中
HP-4影响面推荐 · 证据路径与本次改动文件命中
HP-5影响面推荐 · 证据路径与本次改动文件命中
HP-6影响面推荐 · 证据路径与本次改动文件命中
HP-7影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/demo-shell.tsx
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/demo-shell.tsx
EC-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/demo-shell.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/demo-shell.tsx

界面语言切换

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ui-locale-server.ts证据路径命中lib/ui-locale.ts
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/ui-locale/route.ts
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/language-switcher.tsx
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/language-switcher.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/ui-locale/route.ts证据路径命中components/language-switcher.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/app-shell.tsx证据路径命中components/language-switcher.tsx证据路径命中components/shell-frame.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/layout.tsx证据路径命中lib/format.ts

界面语言切换与双语外壳

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/ui-locale/route.ts
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ui-locale.ts
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/language-switcher.tsx
EC-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/language-switcher.tsx
EC-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/language-switcher.tsx
EC-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/ui-locale/route.ts
EC-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/language-switcher.tsx
EC-8影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/ui-locale/route.ts
EC-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/language-switcher.tsx
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/ui-locale/route.ts
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/language-switcher.tsx
ER-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/language-switcher.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/ui-locale/route.ts证据路径命中components/language-switcher.tsx
HP-10影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/admin/costs/page.tsx证据路径命中app/page.tsx证据路径命中app/settings/page.tsx证据路径命中lib/format.ts证据路径命中lib/product-overview.ts
HP-11影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/ui-locale/route.ts证据路径命中components/language-switcher.tsx
HP-12影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/settings/page.tsx证据路径命中lib/format.ts
HP-13影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/ui-locale/route.ts
HP-14影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/layout.tsx证据路径命中components/app-shell.tsx证据路径命中lib/ui-locale-server.ts
HP-15影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/admin/costs/page.tsx证据路径命中app/page.tsx证据路径命中app/settings/page.tsx证据路径命中lib/format.ts证据路径命中lib/product-overview.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/layout.tsx证据路径命中components/app-shell.tsx证据路径命中lib/ui-strings.ts
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/public-shell.tsx
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/ui-locale/route.ts证据路径命中components/language-switcher.tsx
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/layout.tsx证据路径命中lib/ui-strings.ts
HP-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/page.tsx证据路径命中lib/format.ts
HP-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/ui-locale/route.ts证据路径命中components/language-switcher.tsx
HP-8影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/ui-locale/route.ts
HP-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/layout.tsx证据路径命中lib/ui-locale-server.ts证据路径命中lib/ui-strings.ts

变更说明(AI)

新增
界面语言切换

新增 POST /api/ui-locale:校验 locale 仅限 zh-CN/en、redirectTo 必须为同源路径,写入 codelphi_locale cookie(一年期、非 HttpOnly、SameSite=Lax)并 303 重定向回原页;非法输入返回 400。

用户影响:用户可在顶栏切换界面语言,选择被记住一年并停留在当前页面。

新增
界面语言切换

新增 LanguageSwitcher 客户端组件:以「中文 / English」自名展示两个选项,当前语言标记 aria-pressed,点击时读取 window.location 路径 POST 到 /api/ui-locale 后 router.refresh()。

用户影响:顶栏出现语言切换 pill,点击即切换界面语言并刷新当前页。

新增
界面语言切换

新增 lib/ui-locale.ts(locale 类型、cookie 名、自名标签、resolveUiLocaleValue 缺省回退 zh-CN、pick/intlLocale)与 lib/ui-locale-server.ts(服务端读取 cookie),以及 lib/ui-strings.ts 双语字典(导航、壳层文案、品牌标语、侧栏说明)。

用户影响:界面语言由 cookie 决定,未设置或非法值回退中文。

变化
界面语言切换

根布局改为 async 并读取 locale:html lang 属性随语言变化,metadata 描述按语言输出中英双语。

用户影响:页面语言标记与搜索引擎描述随界面语言切换。

变化
界面语言切换

新增 lib/format.ts 的 formatDateIn/formatDateTimeIn,按 locale 格式化日期;仪表盘日期 chip、设置页计费周期/宽限期/跳过记录/钱包到期/订单时间、成本观测页 run 时间与产品总览时间线及上一行为发布日期改用该函数。

用户影响:日期时间显示随界面语言变化,不再固定中文格式。

新增
界面语言切换与双语外壳

新增 lib/ui-locale.ts(纯函数 locale 解析与字典取值)、lib/ui-locale-server.ts(服务端读 cookie)、lib/ui-strings.ts(导航与外壳文案双语字典)、lib/format.ts(locale 感知日期格式化)、components/language-switcher.tsx(顶栏语言切换 pill)与 POST /api/ui-locale(校验 locale 与同源 redirectTo,写一年期 cookie 后 303 重定向)。

用户影响:用户可在顶栏一键切换界面语言,选择被记住一年;导航、品牌标语、演示提示、登录入口与页面日期按所选语言展示。

变化
产品总览仪表盘

buildProductOverview 新增可选 locale 参数(默认 zh-CN),发布时间线与最近一次有行为变化发布的日期标签改用 formatDateIn 按 locale 格式化。

用户影响:界面语言为英文时,总览页发布时间线与历史发布日期以英文格式展示。

变化
产品页头部与演示只读入口

AppShell、PublicShell、DemoShell 改为 async 组件并读取界面语言 cookie,导航项改为 labelKey 经字典取值,顶栏挂载 LanguageSwitcher,Brand 接收 locale 渲染双语标语与 aria-label。

用户影响:三种外壳的导航、品牌标语、演示模式徽章与登录入口随界面语言切换,顶栏出现语言切换器。

变化
产品页头部与简介展示

产品页在构建总览时传入 resolveUiLocale() 结果,使简介行所在页面的日期标签按界面语言格式化。

用户影响:英文界面下产品页头部相关日期以英文格式展示。

变化
匿名演示态分析入口

演示外壳改为 async 并读取界面语言,演示徽章、只读说明与「使用 Chandler 登录」链接文案经字典按 locale 渲染,顶栏新增语言切换器。

用户影响:匿名演示访客看到的演示提示与登录引导随界面语言切换。

变化
只读演示下的分析入口

演示外壳的只读说明与登录入口文案改为按界面语言取值,写入口仍不渲染。

用户影响:只读演示页的提示文案随界面语言切换,写入口可见性不变。

变化
演示模式分析入口

DemoShell 读取界面语言并渲染双语演示徽章、侧栏只读说明与登录链接,顶栏挂载语言切换器。

用户影响:演示模式页面文案随界面语言切换,登录引导仍集中在顶栏。

新增
界面语言偏好持久化

POST /api/ui-locale 以 zod 校验 locale 仅限 zh-CN/en、redirectTo 必须为同源路径(拒绝 // 与绝对 URL),成功写 codelphi_locale cookie(非 HttpOnly、SameSite=Lax、Path=/、一年)并 303 重定向回原页。

用户影响:切换语言后停留在当前页面,刷新与后续访问保持所选语言;非法语言或外站跳转被拒绝。

新增
界面语言解析与回退

resolveUiLocaleValue 仅将 cookie 值 en 解析为英文,其余(含缺失与未知值)回退 zh-CN;resolveUiLocale 从 next/headers 读取 cookie。

用户影响:未设置或设置异常语言的用户默认看到中文界面。

新增
根布局语言与元数据

根布局改为 async,按 cookie 设置 html lang,并用 generateMetadata 输出双语站点描述。

用户影响:页面语言属性与搜索引擎/分享摘要随界面语言变化。

新增
界面语言切换与双语外壳

新增界面语言 cookie 管线与切换器:POST /api/ui-locale 接受 locale(zh-CN/en)与同源 redirectTo,写一年期非 HttpOnly SameSite=Lax cookie 并 303 重定向;LanguageSwitcher 以自名标签展示两种语言、点击时读取 window.location 提交并刷新;应用/公开/演示三种外壳与 Brand 改为异步 locale 感知,导航、登录、演示提示等文案取自双语字典;根布局按 cookie 设置 html lang 与双语 description。

用户影响:用户可在顶栏一键切换界面语言,刷新后导航、外壳文案、页面标题描述与日期格式随之切换;非法语言或站外重定向被拒绝。

变化
产品总览仪表盘

buildProductOverview 新增可选 locale 参数(缺省 zh-CN),发布时间线与用户影响投影的日期标签改用 formatDateIn 按界面语言格式化,不再硬编码 zh-CN。

用户影响:切换界面语言后,总览页发布时间线与影响卡中的日期按所选语言显示。

变化
产品页头部与演示只读入口

演示外壳 DemoShell 改为异步 locale 感知:侧栏 DEMO MODE 说明、顶栏演示模式徽标与「使用 Chandler 登录」链接文案取自双语字典,顶栏新增 LanguageSwitcher;写入口的权限判定逻辑未变。

用户影响:演示页顶栏出现语言切换器,演示提示与登录链接随界面语言切换;匿名访客仍看不到任何写入口。

变化
匿名演示态分析入口

演示外壳顶栏新增 LanguageSwitcher,登录引导文案改为字典取值;匿名访客不渲染分析入口的判定未变。

用户影响:匿名演示访客可在顶栏切换界面语言,登录引导仍集中在顶栏。

变化
只读演示下的分析入口

演示外壳与产品页的 locale 解析接入后,只读演示下的分析入口渲染条件与 demo guard 拦截逻辑保持不变,仅外壳文案与日期随语言切换。

用户影响:只读演示下仍不出现分析入口,页面文案与日期随界面语言切换。

变化
演示模式分析入口

DemoShell 改为异步组件并读取界面语言,演示徽标、只读说明与登录链接文案取自字典,顶栏挂载语言切换器;demo guard 与服务端写校验边界未变。

用户影响:演示模式页面文案随界面语言切换,写操作仍被 demo guard 与服务端校验拦截。

新增
界面语言切换接口

新增 POST /api/ui-locale:zod 校验 locale 枚举与以单个 / 开头的同源 redirectTo(最长 2000 字符),失败返回 400;成功写 codelphi_locale cookie(一年、非 HttpOnly、生产环境 secure、SameSite=Lax、Path=/)并 303 重定向到目标路径。

用户影响:语言切换请求被安全校验,站外或协议相对地址被拒绝,切换后回到原页面。

新增
界面语言解析与文案字典

lib/ui-locale.ts 定义 UiLocale、cookie 名、自名标签、resolveUiLocaleValue(仅 en 生效,其余回退 zh-CN)与 pick/intlLocale;lib/ui-locale-server.ts 从 next/headers 读取 cookie;lib/ui-strings.ts 提供导航、外壳 chrome、品牌标语与侧栏说明的双语条目。

用户影响:未设置或非法 cookie 时界面回退简体中文,两种语言下导航与外壳文案均有对应文本。

新增
locale 感知日期格式化

新增 lib/format.ts:formatDateIn 按 locale 用 Intl.DateTimeFormat 格式化,空值或非法日期返回「—」;formatDateTimeIn 使用 medium 日期加 short 时间。仪表盘、设置页、成本观测页与产品总览改用该函数。

用户影响:日期与时间展示随界面语言变化,缺失或非法日期统一显示「—」。

新增
界面语言切换与双语外壳

新增 lib/ui-locale.ts(纯函数、客户端安全)与 lib/ui-locale-server.ts(隔离 next/headers 读取 cookie),POST /api/ui-locale 校验 locale 枚举与同源 redirectTo 后写一年期 cookie 并 303 重定向;LanguageSwitcher 以自名标签(中文/English)在 AppShell、PublicShell、DemoShell 顶栏挂载,点击时读取 window.location 提交并刷新。

用户影响:用户可在顶栏一键切换界面语言,刷新后整页以所选语言渲染,且与分析输出语言相互独立。

变化
界面语言切换与双语外壳

AppShell、PublicShell、DemoShell 与 Brand 改为 async locale 感知组件,导航、侧栏说明、演示徽标、登录入口与品牌标语改由 lib/ui-strings 字典按 locale 取值;根布局改为 generateMetadata 并按 cookie 设置 html lang。

用户影响:外壳导航与品牌文案随界面语言切换,英文界面下显示英文导航与说明。

新增
界面语言切换与双语外壳

新增 lib/ui-locale.ts(locale 类型、cookie 名、自名标签、取值回退)与 lib/ui-locale-server.ts(服务端读 cookie),新增 POST /api/ui-locale 校验 locale 枚举与同源 redirectTo 后写一年期 cookie 并 303 重定向,新增 LanguageSwitcher 客户端组件。

用户影响:用户可在顶栏一键切换界面语言,刷新后整页以所选语言渲染,偏好保留一年。

变化
界面语言切换与双语外壳

AppShell、PublicShell、DemoShell 改为 async 并读取 locale,导航与壳层文案改由 lib/ui-strings 字典取值,Brand 接收 locale 渲染双语标语;根布局改为 async 并按 cookie 输出 html lang 与双语 description。

用户影响:导航、侧栏说明、演示模式提示、登录入口与品牌标语随界面语言切换,页面 lang 属性与搜索引擎描述同步。

新增
界面语言切换与双语外壳

新增 lib/ui-locale.ts(纯函数 locale 解析与字典取值)、lib/ui-locale-server.ts(服务端读 cookie)、lib/ui-strings.ts(中英字典)、components/language-switcher.tsx(顶栏语言 pill)与 POST /api/ui-locale(校验 locale 与同源 redirectTo,写一年期 cookie 后 303 重定向)。

用户影响:用户可在顶栏一键切换界面语言,刷新后导航、品牌标语、演示提示、登录入口等外壳文案随之切换。

变化
界面语言切换与双语外壳

AppShell、PublicShell、DemoShell 改为 async 并读取 locale,导航项由固定中文 label 改为 labelKey 经字典取值;Brand 接收 locale 输出双语标语与 aria-label;根布局改为 generateMetadata 并按 cookie 设置 html lang。

用户影响:登录、公开与演示三种外壳的导航与品牌文案随界面语言切换,页面 lang 属性与站点描述同步。

变化
产品输出语言设置面板

新增界面语言(UI locale)解析与切换:POST /api/ui-locale 校验 locale(zh-CN/en)与同源 redirectTo,成功写一年期非 HttpOnly、SameSite=Lax、path=/ 的 cookie 并 303 重定向回原页;根布局按 cookie 设置 html lang 与双语 description;三个外壳顶栏挂载语言切换器。

用户影响:用户可在界面中切换界面语言,刷新后保持;界面语言与分析输出语言相互独立。

变化
产品总览仪表盘

仪表盘页先解析界面语言,日期 chip 由硬编码 zh-CN 改为 formatDateIn(locale, ...) 按界面语言格式化。

用户影响:仪表盘日期显示随界面语言变化。

已检查
产品输出语言设置面板

lib/ui-locale.ts 为纯客户端安全模块、lib/ui-locale-server.ts 隔离 next/headers,属内部实现分层,不单独构成外部可见行为。

用户影响:无直接外部可见影响。

新增
产品输出语言设置面板

新增 POST /api/ui-locale 路由:设置一年期 SameSite=Lax 的 locale cookie,校验同源 redirectTo,非法输入返回 400,成功返回 303 重定向。

用户影响:切换语言通过服务端 cookie 持久化一年,并在刷新后生效;非法请求被拒绝。

变化
产品输出语言设置面板

AppShell、PublicShell、DemoShell 由同步组件改为 async 组件,先 await resolveUiLocale() 读取 locale,再按 locale 从字典取导航、侧栏说明、顶栏回退文案与登录/登出文案;导航项由中文字面 label 改为 labelKey。

用户影响:三个外壳的导航与顶栏文案随界面语言变化,未设置时回退默认语言。

变化
产品输出语言设置面板

Brand 组件新增可选 locale 参数(默认 zh-CN),aria-label 与副标题文案按 locale 取字典。

用户影响:品牌区副标题与无障碍标签随界面语言变化。

新增
产品输出语言设置面板

新增 lib/format.ts 的 formatDateIn/formatDateTimeIn,按 locale 用 Intl.DateTimeFormat 格式化日期,空值与无效日期返回“—”。

用户影响:仪表盘、设置、成本等页面日期显示随界面语言变化,无效日期显示占位符。

已检查
产品输出语言设置面板

lib/ui-locale.ts 为纯客户端安全模块、lib/ui-locale-server.ts 隔离 next/headers,属内部实现分层,不改变外部可见行为。

用户影响:无直接外部可见变化,仅保证客户端包不引入服务端依赖。

新增
产品输出语言设置面板

新增 lib/ui-locale.ts:定义 UiLocale 类型(zh-CN|en)、UI_LOCALE_COOKIE=codelphi_locale、UI_LOCALES、自名标签字典、resolveUiLocaleValue(仅 en 返回 en,其余回退 zh-CN)、pick/intlLocale 工具。

用户影响:界面语言取值与回退规则确定:非 en 的 cookie 值一律按中文渲染。

新增
产品输出语言设置面板

新增 lib/ui-locale-server.ts:resolveUiLocale 异步读取 next/headers cookies 中的界面语言 cookie,可注入 jar 便于测试。

用户影响:服务端组件可按 cookie 渲染对应界面语言。

变化
产品总览与产品页

buildProductOverview 新增第二参数 locale(默认 zh-CN),时间线条目 dateLabel 由硬编码 zh-CN 改为 formatDateIn(locale, ...)。

用户影响:产品总览时间线日期按界面语言格式化,英文界面显示英文月份。

已检查
产品总览与产品页

文件顶部新增 import { formatDateIn } from "./format",为内部依赖引入,无独立外部行为。

用户影响:无直接外部可见变化。

分析输出语言:产品级与工作区默认设置

e6dc205 ↗

新增分析输出语言(简体中文 / English):产品注册时可选并缺省继承工作区默认,产品设置页可切换(切换后下一次分析全量重建),工作区设置页可改新仓库默认语言;分析 run 读取产品语言并传入提取上下文。数据库新增 products.output_language、organizations.default_output_language、spec_versions.output_language 三列。

行为变化 25 条 · 变更说明 65 条展开

回归清单导出 Markdown ↓

AI 规格分析与发布变化

EC-3影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-10影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-11影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
EC-19影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
EC-32影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
EC-33影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-34影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
EC-35影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-36影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
EC-37影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
EC-38影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-39影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-40影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-41影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
新增
AI 规格分析与发布变化 · EC-42

「AI 规格分析与发布变化」新增场景 EC-42

查看前后差异

变更后

情境
分析调用方未传 outputLanguage
操作
调用 analyzeWithAI
结果
字段可选,调用不受影响
证据路径命中lib/ai.ts
新增
AI 规格分析与发布变化 · EC-43

「AI 规格分析与发布变化」新增场景 EC-43

查看前后差异

变更后

情境
产品未设置 output_language
操作
执行分析运行
结果
outputLanguage 为 undefined,提取按缺省 zh-CN 处理
证据路径命中lib/analysis.ts
新增
AI 规格分析与发布变化 · EC-44

「AI 规格分析与发布变化」新增场景 EC-44

查看前后差异

变更后

情境
存量 spec_versions 无语言记录。
操作
迁移执行。
结果
存量版本 output_language 置为 zh-CN。
证据路径命中migrations/072_output_language.sql
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
ER-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
ER-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
ER-8影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
ER-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-10影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-11影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
新增
AI 规格分析与发布变化 · HP-12

「AI 规格分析与发布变化」新增场景 HP-12

查看前后差异

变更后

情境
产品已设置输出语言为 en 且分析 run 已加载该产品
操作
runAnalysisBody 组装 analyzeWithAI 上下文
结果
上下文携带 outputLanguage=en,主提取与分区提取均按该语言生成规格与发布稿
证据路径命中lib/ai.ts证据路径命中lib/analysis.ts
新增
AI 规格分析与发布变化 · HP-13

「AI 规格分析与发布变化」新增场景 HP-13

查看前后差异

变更后

情境
分析调用方传入 outputLanguage
操作
调用 analyzeWithAI
结果
context 接受该可选字段,调用正常完成
证据路径命中lib/ai.ts
新增
AI 规格分析与发布变化 · HP-14

「AI 规格分析与发布变化」新增场景 HP-14

查看前后差异

变更后

情境
产品 output_language 为 en
操作
执行分析运行
结果
loadRun 读取 outputLanguage=en,单分区与多分区提取 context 均携带 en
证据路径命中lib/analysis.ts
新增
AI 规格分析与发布变化 · HP-15

「AI 规格分析与发布变化」新增场景 HP-15

查看前后差异

变更后

情境
产品输出语言发生切换。
操作
触发首个分析 run。
结果
新 spec_version 记录新 output_language 并强制全量重建。
证据路径命中migrations/072_output_language.sql
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
HP-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
HP-8影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts

LLM 调用回执记账

ER-3影响面推荐 · 证据路径与本次改动文件命中
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts

产品输出语言设置面板

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-output-language-settings.tsx
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-output-language-settings.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-output-language-settings.tsx

分析输出语言设置

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-output-language-settings.tsx证据路径命中components/workspace-output-language-settings.tsx
EC-10影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-output-language-settings.tsx
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/settings/output-language-default/route.ts证据路径命中lib/product-input.ts
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-registration.ts
EC-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-input.ts
EC-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-output-language-settings.tsx
EC-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/settings/output-language-default/route.ts
EC-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-output-language-settings.tsx
EC-8影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/settings/output-language-default/route.ts证据路径命中lib/product-input.ts
EC-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-input.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/settings/output-language-default/route.ts
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-output-language-settings.tsx
ER-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/settings/output-language-default/route.ts
ER-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/workspace-output-language-settings.tsx
ER-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/settings/output-language-default/route.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/settings/output-language-default/route.ts证据路径命中components/workspace-output-language-settings.tsx
HP-10影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-output-language-settings.tsx
HP-11影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-output-language-settings.tsx
HP-12影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/workspace-output-language-settings.tsx
HP-13影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/settings/output-language-default/route.ts
HP-14影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-registration.ts
HP-15影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-output-language-settings.tsx证据路径命中lib/product-client.ts
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/new/page.tsx证据路径命中components/new-product-form.tsx
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/settings/output-language-default/route.ts
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-registration.ts
HP-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-rename.ts
HP-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-8影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/new-product-form.tsx
HP-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-output-language-settings.tsx

工作区默认输出语言设置

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/settings/output-language-default/route.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/settings/output-language-default/route.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/settings/output-language-default/route.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/settings/output-language-default/route.ts

零行为变更窗口沿用

HP-6影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts

产品改名与旧链接重定向

EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-rename.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-rename.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-rename.ts
新增
产品改名与旧链接重定向 · HP-3

「产品改名与旧链接重定向」新增场景 HP-3

查看前后差异

变更后

情境
产品需要切换分析输出语言
操作
updateProductIdentity 以 outputLanguage 执行部分更新
结果
UPDATE 语句以 COALESCE 写入 output_language,返回 updated,名称与 slug 不变
证据路径命中lib/product-rename.ts

产品注册与移除

EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-registration.ts
新增
产品注册与移除 · EC-2

「产品注册与移除」新增场景 EC-2

查看前后差异

变更后

情境
注册请求未指定输出语言且工作区默认输出语言为 en
操作
registerProduct 执行
结果
products 行继承工作区默认,写入 output_language=en
证据路径命中lib/product-registration.ts
新增
产品注册与移除 · EC-3

「产品注册与移除」新增场景 EC-3

查看前后差异

变更后

情境
注册请求未指定输出语言且工作区无默认值
操作
registerProduct 执行
结果
回退写入 output_language=zh-CN
证据路径命中lib/product-registration.ts
新增
产品注册与移除 · EC-4

「产品注册与移除」新增场景 EC-4

查看前后差异

变更后

情境
存量工作区未配置默认语言。
操作
读取 default_output_language。
结果
取默认值 zh-CN。
证据路径命中migrations/072_output_language.sql
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-registration.ts
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/api/products/[slug]/route.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-registration.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-registration.ts
新增
产品注册与移除 · HP-3

「产品注册与移除」新增场景 HP-3

查看前后差异

变更后

情境
注册请求显式指定输出语言
操作
registerProduct 执行
结果
products 行以请求语言写入 output_language
证据路径命中lib/product-registration.ts
新增
产品注册与移除 · HP-4

「产品注册与移除」新增场景 HP-4

查看前后差异

变更后

情境
工作区已设置 default_output_language。
操作
在该工作区注册新产品且未显式指定语言。
结果
新产品 output_language 继承工作区默认值。
证据路径命中migrations/072_output_language.sql

产品注册入口与凭据前置校验

EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/new-product-content.tsx
新增
产品注册入口与凭据前置校验 · EC-2

「产品注册入口与凭据前置校验」新增场景 EC-2

查看前后差异

变更后

情境
工作区未设置默认输出语言
操作
打开新建产品页
结果
defaultOutputLanguage 为可选属性,表单按缺省语言处理
证据路径命中components/new-product-content.tsx
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/new-product-form.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/new-product-content.tsx
新增
产品注册入口与凭据前置校验 · HP-2

「产品注册入口与凭据前置校验」新增场景 HP-2

查看前后差异

变更后

情境
工作区默认输出语言为 en
操作
打开添加产品页
结果
表单「分析输出语言」下拉默认选中 English,提交时随创建请求携带
证据路径命中app/products/new/page.tsx证据路径命中components/new-product-form.tsx
新增
产品注册入口与凭据前置校验 · HP-3

「产品注册入口与凭据前置校验」新增场景 HP-3

查看前后差异

变更后

情境
工作区成员打开新建产品页
操作
页面加载并渲染新建产品表单
结果
表单预填工作区默认输出语言,注册产品继承该默认值
证据路径命中app/products/new/page.tsx证据路径命中components/new-product-content.tsx

产品管理与成员管理客户端

EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-input.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-client.ts
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-client.ts
新增
产品管理与成员管理客户端 · ER-3

「产品管理与成员管理客户端」新增场景 ER-3

查看前后差异

变更后

情境
保存输出语言接口返回错误
操作
setOutputLanguage 执行
结果
抛出接口 error 或「保存输出语言设置失败」
证据路径命中lib/product-client.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-client.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-client.ts
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-client.ts
新增
产品管理与成员管理客户端 · HP-4

「产品管理与成员管理客户端」新增场景 HP-4

查看前后差异

变更后

情境
需要切换产品分析输出语言
操作
setOutputLanguage 执行
结果
PATCH /api/products/[slug] 携带 outputLanguage,返回 updated
证据路径命中lib/product-client.ts

产品详情与发布变化读取

EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-details.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-details.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-details.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-details.ts
新增
产品详情与发布变化读取 · HP-3

「产品详情与发布变化读取」新增场景 HP-3

查看前后差异

变更后

情境
产品行已设置输出语言
操作
getProductDetails 执行
结果
返回的 product 含 outputLanguage 字段供设置页展示
证据路径命中lib/product-details.ts

分析覆盖率回执与继承

EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
ER-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts

分析触发模式与兜底 sweep

EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis-trigger.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis-trigger.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis-trigger.ts
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis-trigger.ts

匿名演示态分析入口

EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/product-client.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx

行为面两步提取

EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts

规格版本落库与发布记录

EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-10影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-8影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
ER-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-8影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts

证据清洗与提取重试

EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
EC-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
ER-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
ER-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
HP-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts

变更说明(AI)

变化
产品改名与旧链接重定向

updateProductIdentity 的 UPDATE 语句新增 output_language = COALESCE(?, output_language),PATCH 路由把 outputLanguage 纳入身份更新分支。

用户影响:产品设置页可单独切换输出语言,不影响名称与 slug。

新增
产品管理与成员管理客户端

新增 setOutputLanguage 客户端方法,PATCH /api/products/{slug} 提交 { outputLanguage } 并校验 status=updated。

用户影响:产品设置页保存输出语言失败时展示接口错误。

变化
产品详情与发布变化读取

getProductDetails 的 products 查询新增 output_language AS outputLanguage 并随 product 返回。

用户影响:产品设置页可展示当前输出语言。

变化
AI 规格分析与发布变化

analyzeWithAI 上下文新增 outputLanguage 字段;runAnalysisBody 从 run.outputLanguage 传入单窗与分区提取上下文。

用户影响:分析产出的功能、场景与发布稿按产品输出语言生成。

新增
分析输出语言设置

新增产品设置页「分析输出语言」面板与工作区设置页「新仓库默认输出语言」面板,以及 PATCH/GET /api/settings/output-language-default 接口;语言枚举仅 zh-CN 与 en。

用户影响:工作区编辑者可改新仓库默认语言,产品编辑者可切换单个产品语言,只读成员看不到面板。

新增
产品注册继承工作区默认输出语言

注册产品时优先使用请求中的 outputLanguage,缺省继承 organizations.default_output_language,再缺省为 zh-CN,并写入 products.output_language。

用户影响:新接入产品自动按工作区默认语言生成规格,无需逐个设置。

新增
产品输出语言切换

PATCH /api/products/[slug] 接受 outputLanguage,经 updateProductIdentity 以 COALESCE 方式更新 output_language;产品设置页新增「分析输出语言」面板,保存后提示下一次分析全量重建。

用户影响:编辑者可在产品设置页切换输出语言,历史版本保持原语言。

新增
分析运行携带输出语言

loadRun 查询 products.output_language,runAnalysisBody 将其作为 outputLanguage 传入 analyzeWithAI 的提取上下文。

用户影响:分析产出的规格与发布稿按产品所选语言生成。

变化
产品详情返回输出语言

getProductDetails 的产品查询新增 output_language AS outputLanguage 字段。

用户影响:产品详情与设置页可读取当前输出语言。

新增
分析输出语言设置

新增产品级 output_language 与工作区 default_output_language 列(migration 072),spec_versions 逐版记录语言;注册、产品设置页与工作区设置页均可选择简体中文或 English。

用户影响:用户可决定 AI 生成的功能规格、场景与发布稿使用中文还是英文;新接入产品默认继承工作区设置,已有产品单独管理。

变化
产品注册与移除

注册产品时读取工作区默认输出语言,按请求显式值 > 工作区默认 > zh-CN 的优先级写入 products.output_language。

用户影响:新添加的产品自动使用工作区默认输出语言,无需逐个设置。

变化
产品改名与旧链接重定向

updateProductIdentity 的 UPDATE 语句新增 output_language = COALESCE(?, output_language),PATCH /api/products/[slug] 接受 outputLanguage 并走同一身份更新路径。

用户影响:产品设置页切换输出语言后立即保存,下一次分析按新语言生成。

变化
产品管理与成员管理客户端

新增 setOutputLanguage 客户端方法,PATCH /api/products/[slug] 提交 { outputLanguage } 并透出接口错误。

用户影响:产品设置页切换语言失败时显示接口返回的错误消息。

变化
产品详情与发布变化读取

getProductDetails 的 products 查询新增 output_language AS outputLanguage,详情返回产品当前输出语言。

用户影响:产品设置页能回显当前输出语言选项。

变化
AI 规格分析与发布变化

analyzeWithAI 上下文新增 outputLanguage 字段,runAnalysisBody 从 run 上下文透传给单趟与分区提取调用。

用户影响:AI 提取的功能、场景与摘要按产品所选语言生成。

变化
产品注册与移除

注册产品时读取工作区默认输出语言,按「请求显式指定 > 工作区默认 > zh-CN」写入 products.output_language。

用户影响:新接入产品默认按工作区设定的语言生成规格与发布稿,注册时也可单独指定。

变化
产品改名与旧链接重定向

updateProductIdentity 的 UPDATE 语句新增 output_language = COALESCE(?, output_language),支持仅改输出语言的部分更新。

用户影响:产品设置页切换输出语言走同一身份更新路径生效。

新增
产品管理与成员管理客户端

新增 setOutputLanguage 客户端方法,PATCH /api/products/[slug] 提交 { outputLanguage },失败抛出接口错误。

用户影响:产品设置页可保存输出语言选择。

变化
产品详情与发布变化读取

getProductDetails 的产品查询新增 output_language AS outputLanguage 字段返回。

用户影响:产品设置页能显示当前输出语言。

变化
AI 规格分析与发布变化

analyzeWithAI 上下文新增 outputLanguage 字段,runAnalysisBody 从 run 上下文透传给主提取与分区提取。

用户影响:AI 产出的功能、场景与发布稿按产品所选语言生成。

新增
分析输出语言设置

新增产品级输出语言设置面板与工作区默认输出语言设置面板及 PATCH/GET /api/settings/output-language-default 接口,语言枚举限定 zh-CN 与 en,编辑权限校验,切换后下一次分析全量重建。

用户影响:产品设置页可切换本产品输出语言;工作区设置页可设定新仓库默认语言,已有产品不受影响。

变化
产品注册与移除

注册产品时读取工作区默认输出语言,请求显式指定优先,其次继承 organizations.default_output_language,均无则回退 zh-CN,并写入 products.output_language。

用户影响:新接入产品默认按工作区设定的语言生成规格,也可在注册时单独选择。

变化
产品改名与旧链接重定向

updateProductIdentity 的局部更新路径新增 output_language 列,可与改名、改 slug、公开演示开关一并提交。

用户影响:产品设置页切换输出语言走同一身份更新接口生效。

新增
产品管理与成员管理客户端

新增 setOutputLanguage 客户端方法,PATCH /api/products/[slug] 提交 outputLanguage,失败时抛出接口错误或「保存输出语言设置失败」。

用户影响:产品设置页可保存输出语言并看到失败提示。

变化
AI 规格分析与发布变化

analyzeWithAI 上下文新增 outputLanguage,runAnalysisBody 从 run 上下文透传给主提取与分区提取;loadRun 查询 products.output_language。

用户影响:AI 产出的功能、场景与发布稿按产品所选语言生成。

新增
分析输出语言设置

新增产品级分析输出语言(zh-CN/en):注册表单可选、产品设置页可切换、工作区设置页可设新仓库默认语言,分析 run 读取产品 output_language 传入提取上下文。

用户影响:用户可为新产品选择输出语言,切换后下一次分析按新语言全量重建,历史版本保持原语言。

变化
产品注册与移除

注册产品时读取工作区默认输出语言,请求未指定时继承,均无则回退 zh-CN,并写入 products.output_language。

用户影响:新接入产品默认继承工作区输出语言设置。

变化
产品改名与旧链接重定向

updateProductIdentity 的局部更新路径新增 output_language 列,PATCH 产品接口接受 outputLanguage 并走同一身份更新路径。

用户影响:产品设置页切换输出语言通过既有产品 PATCH 接口生效。

变化
产品详情与发布变化读取

getProductDetails 查询新增 output_language AS outputLanguage 并随产品返回。

用户影响:产品详情页可读取当前输出语言用于设置面板展示。

新增
产品标识设置

账户设置页在触发默认设置与 MCP Keys 之间新增渲染 WorkspaceOutputLanguageSettings,传入 canEdit 与当前工作区默认输出语言。

用户影响:工作区设置页出现默认输出语言设置项,非 viewer 可编辑。

已检查
产品标识设置

产品设置页新增 ProductOutputLanguageSettings 导入语句,属内部实现,无独立外部可见行为。

用户影响:无直接外部可见影响。

已检查
产品注册入口与凭据前置校验

新建产品页新增 getWorkspaceOutputLanguageDefault 导入,属内部实现。

用户影响:无直接外部可见影响。

已检查
产品注册入口与凭据前置校验

NewProductContent 新增 OutputLanguage 类型导入,属内部实现。

用户影响:无直接外部可见影响。

新增
产品标识设置

产品设置页新增「分析输出语言」面板,可在 zh-CN/en 间切换并保存;保存成功提示下一次分析全量重建、历史版本保持原语言;无编辑权限时不渲染。

用户影响:有权限的成员可在产品设置中切换输出语言,切换后下一次分析按新语言全量重建。

新增
产品标识设置

工作区设置页新增「新仓库默认输出语言」面板,通过 PATCH /api/settings/output-language-default 保存默认语言,响应非 ok 或 status 非 updated 时报错;无编辑权限时不渲染。

用户影响:管理员可设置新接入产品继承的默认输出语言,已有产品不受影响。

变化
AI 规格分析与发布变化

analyzeWithAI 的 context 参数新增可选 outputLanguage 字段(zh-CN/en)。

用户影响:分析调用可携带产品输出语言,供后续按语言生成规格与发布稿。

已检查
AI 规格分析与发布变化

新增 lib/analysis-language.ts 定义 OutputLanguage 类型、默认值、zod 校验、标签与提示文案,为内部共享常量与类型,本身不改变外部行为。

用户影响:无直接外部可见变化。

新增
产品标识设置

新增 getWorkspaceOutputLanguageDefault / updateWorkspaceOutputLanguageDefault,读写 organizations.default_output_language,非 en 一律回退 zh-CN。

用户影响:工作区可设置默认输出语言,新接入产品继承该默认值。

变化
产品注册提交区

insertRegistration 在事务内先读取工作区 default_output_language,按 input.outputLanguage ?? 工作区默认 ?? zh-CN 计算后写入 products.output_language。

用户影响:新注册产品自动继承工作区默认输出语言,也可在注册时显式指定。

变化
产品标识设置

productInputSchema 新增可选 outputLanguage;productUpdateSchema 新增可选 outputLanguage 并纳入 refine 至少一项条件。

用户影响:注册与 PATCH 请求可携带 outputLanguage 字段,仅传 outputLanguage 的 PATCH 也合法。

新增
产品标识设置

新增客户端 setOutputLanguage,PATCH /api/products/${slug} 携带 { outputLanguage },status 非 updated 抛错。

用户影响:设置页可切换产品输出语言,失败时提示保存输出语言设置失败。

变化
产品详情与发布变化读取

getProductDetails 两条 SELECT 增加 output_language AS outputLanguage,结果类型新增可选 outputLanguage。

用户影响:产品详情读取结果包含当前输出语言,供设置面板展示。

变化
产品标识设置

ProductRenameInput 新增可选 outputLanguage 字段,updateProductIdentity 的 UPDATE 语句新增 output_language = COALESCE(?, output_language),参数为 input.outputLanguage ?? null。

用户影响:通过身份更新路径可修改产品输出语言;未传该字段时保持原值不变。

新增
产品标识设置

迁移 072 为 products 增加 output_language VARCHAR(8) NOT NULL DEFAULT 'zh-CN'。

用户影响:存量产品默认中文输出,新字段对外可读写。

新增
产品注册与移除

迁移 072 为 organizations 增加 default_output_language VARCHAR(8) NOT NULL DEFAULT 'zh-CN',作为注册时继承的工作区默认值。

用户影响:工作区具备默认输出语言配置,存量工作区默认 zh-CN。

新增
AI 规格分析与发布变化

迁移 072 为 spec_versions 增加 output_language VARCHAR(8) NOT NULL DEFAULT 'zh-CN',逐版记录语言,存量版本为中文。

用户影响:规格版本携带语言标记,语言切换后首个 run 全量重建。

已检查
产品标识设置

文件顶部新增 import type { OutputLanguage } from './analysis-language',仅为类型导入,无运行时行为。

用户影响:无外部可见影响。

分析流水线变体治理(BM-6)

d48d4d2 ↗

本次发布为分析流水线引入变体治理:锚定装载时受影响功能优先装入 24k 预算;增量契约改为基于上一版锚做修订并限制每功能输出条数;提取合并与规格 diff 共用确定性变体折叠(removed↔added 措辞近似对折叠为 reason=variant,审计保留不删数据);纯测试/文档证据的场景在规格工作台打「测试佐证」标,发布稿勾选计数与影响投影降权而全量变化视图保留;另提供一次性变体合并提案脚本。

行为变化 199 条 · 变更说明 59 条展开

回归清单导出 Markdown ↓

产品总览仪表盘

影响面推荐 · 证据路径与本次改动文件命中
变化
产品总览仪表盘 · EC-1

「产品总览仪表盘」更新场景 EC-1

查看前后差异

变更前

情境
首次接入产品尚无任何功能与发布数据且分析进行中
操作
渲染产品卡片
结果
渲染为非链接等待卡并提示「分析中,请稍候」

变更后

情境
最近发布中某场景级变化的对侧证据全部来自测试/文档
操作
buildProductOverview 计算发布稿功能勾选计数
结果
该变化不计入 changeGroups,但发布时间线 changeStats 仍按全量统计
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · EC-10

「产品总览仪表盘」新增场景 EC-10

查看前后差异

变更后

情境
最新发布同时存在实现证据与测试佐证的影响文本
操作
buildUserImpact 执行
结果
实现证据的影响文本优先占位,测试佐证文本只在有余位时补充
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · EC-11

「产品总览仪表盘」新增场景 EC-11

查看前后差异

变更后

情境
行为变化不是场景级(entityType 非 scenario)
操作
changeIsTestOnly 判定
结果
返回 false,该变化按实现证据口径计入勾选计数
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · EC-12

「产品总览仪表盘」新增场景 EC-12

查看前后差异

变更后

情境
场景级变化的对侧证据全部为测试/文档
操作
buildProductOverview 执行
结果
该变化不进 changeGroups 发布稿勾选计数,但 changeStats 时间线统计仍计入
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · EC-13

「产品总览仪表盘」新增场景 EC-13

查看前后差异

变更后

情境
变化实体类型不是 scenario
操作
changeIsTestOnly 执行
结果
返回 false,功能级变化始终计入发布稿勾选
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · EC-14Highlight · Limits

「产品总览仪表盘」新增场景 EC-14

查看前后差异

变更后

情境
某功能影响文本已满每功能上限
操作
buildUserImpact 执行
结果
后续文本计入 moreCount,不再追加到 userImpacts
证据路径命中lib/product-overview.ts
变化
产品总览仪表盘 · EC-2

「产品总览仪表盘」更新场景 EC-2

查看前后差异

变更前

情境
产品列表为空
操作
渲染产品网格
结果
显示「还没有接入产品」空状态

变更后

情境
最近发布中某变化不是场景级(entityType 非 scenario)
操作
changeIsTestOnly 判定
结果
返回 false,该变化照常计入发布稿勾选计数
证据路径命中lib/product-overview.ts
变化
产品总览仪表盘 · EC-3

「产品总览仪表盘」更新场景 EC-3

查看前后差异

变更前

情境
发布列表为空
操作
渲染最近变化时间线
结果
显示「完成第一次代码分析后,发布变化会出现在这里」

变更后

情境
连续多条零行为变化发布
操作
buildProductOverview 执行
结果
折叠为 quiet-run 分组,单条零变化发布不分组
证据路径命中lib/product-overview.ts
变化
产品总览仪表盘 · EC-4

「产品总览仪表盘」更新场景 EC-4

查看前后差异

变更前

情境
时间线中存在连续多条零行为变化发布
操作
buildProductOverview 执行
结果
连续零变化发布折叠为 quiet-run 组,单条零变化发布仍单独展示

变更后

情境
最新发布没有非空用户影响文本
操作
buildProductOverview 执行
结果
按确定性变化统计回退,不用更早发布的影响冒充
证据路径命中lib/product-overview.ts
变化
产品总览仪表盘 · EC-5

「产品总览仪表盘」更新场景 EC-5

查看前后差异

变更前

情境
最新发布没有任何非空用户影响
操作
buildUserImpact 执行
结果
按确定性数据回退为 changes 或 quiet 状态,不用更早发布冒充最新发布

变更后

情境
最新发布无用户影响说明但有规格行为变化
操作
渲染总览影响面板
结果
回退展示前 3 个功能级变化摘要并链接全部前后差异
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · EC-6

「产品总览仪表盘」新增场景 EC-6

查看前后差异

变更后

情境
发布时间线中连续多次发布均无规格行为变化
操作
渲染发布时间线
结果
折叠为一组「N 次提交均未发现规格行为变化」,可展开查看
新增
产品总览仪表盘 · EC-7

「产品总览仪表盘」新增场景 EC-7

查看前后差异

变更后

情境
场景级变化的对侧证据全部来自测试/文档
操作
buildProductOverview 执行
结果
该变化不计入 changeGroups 与影响投影,changeStats 仍计入全量
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · EC-8

「产品总览仪表盘」新增场景 EC-8

查看前后差异

变更后

情境
同一功能下实现证据与测试佐证的影响文本并存
操作
buildUserImpact 执行
结果
实现证据文本先占位,测试佐证文本仅在有余位时补充
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · EC-9

「产品总览仪表盘」新增场景 EC-9

查看前后差异

变更后

情境
最新发布中某场景变化的对侧证据全部来自测试/文档
操作
buildProductOverview 执行
结果
该变化不计入发布稿功能勾选计数,但仍在时间线 changeStats 与发布变化视图中可见
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · ER-1

「产品总览仪表盘」新增场景 ER-1

查看前后差异

变更后

情境
产品尚无任何发布
操作
buildProductOverview 执行
结果
userImpact.state 为 none,任务入口给出「尚无发布」等真实禁用原因
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · ER-2

「产品总览仪表盘」新增场景 ER-2

查看前后差异

变更后

情境
知识健康接口读取失败
操作
渲染知识健康面板
结果
面板不渲染,不阻断总览其余内容
变化
产品总览仪表盘 · HP-1Highlight · Privacy

「产品总览仪表盘」更新场景 HP-1

查看前后差异

变更前

情境
登录成员打开产品总览
操作
DashboardPage 执行
结果
返回产品统计、产品卡片与最近 8 条发布变化时间线

变更后

情境
产品存在最近一次发布且含行为变化
操作
buildProductOverview 执行
结果
返回按功能聚合的发布稿勾选计数、发布时间线与用户影响投影
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · HP-10

「产品总览仪表盘」新增场景 HP-10

查看前后差异

变更后

情境
最新发布包含实现证据的行为变化
操作
buildProductOverview 执行
结果
changeGroups 按功能聚合 added/removed/changed 计数,影响卡展示实现证据的影响文本
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · HP-11

「产品总览仪表盘」新增场景 HP-11

查看前后差异

变更后

情境
最新发布同时包含实现证据与测试佐证的变化
操作
buildProductOverview 执行
结果
影响卡中实现证据的影响文本排在测试佐证之前
证据路径命中lib/product-overview.ts
变化
产品总览仪表盘 · HP-2

「产品总览仪表盘」更新场景 HP-2

查看前后差异

变更前

情境
产品已有功能与发布数据
操作
buildProductOverview 执行
结果
返回能力摘要、最新发布变化统计、用户影响投影与发布时间线分组

变更后

情境
最近发布中同时存在实现证据与纯测试/文档证据的变化
操作
buildProductOverview 构建用户影响投影
结果
实现证据的影响文本排在前面,测试佐证文本只在有余位时补充
证据路径命中lib/product-overview.ts
变化
产品总览仪表盘 · HP-3

「产品总览仪表盘」更新场景 HP-3

查看前后差异

变更前

情境
最新发布存在非空用户影响文本
操作
buildUserImpact 执行
结果
按功能合并影响文本,每组最多 3 条、最多 3 个功能组

变更后

情境
产品已有最新发布与行为变化
操作
buildProductOverview 执行
结果
返回能力清单、最新发布变化统计、按功能分组与发布时间线
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · HP-4

「产品总览仪表盘」新增场景 HP-4

查看前后差异

变更后

情境
最新发布存在已落库的用户影响文本
操作
buildProductOverview 执行
结果
按功能合并影响文本,每组最多 3 条并给出溢出计数,最多 3 个功能组
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · HP-5

「产品总览仪表盘」新增场景 HP-5

查看前后差异

变更后

情境
最新发布的变化中场景证据全为测试/文档
操作
buildProductOverview 执行
结果
该变化不进发布稿功能勾选计数,changeStats 仍计入全量
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · HP-6

「产品总览仪表盘」新增场景 HP-6

查看前后差异

变更后

情境
最新发布同时存在实现证据与测试佐证的影响文本
操作
buildProductOverview 执行
结果
实现证据的影响文本排在前面,测试佐证文本在有余位时补充
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · HP-7

「产品总览仪表盘」新增场景 HP-7

查看前后差异

变更后

情境
最新发布存在带用户影响说明的变化
操作
渲染总览「本次发布对用户的影响」面板
结果
按功能列出用户影响文本,超出条数提示见全部前后差异
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · HP-8

「产品总览仪表盘」新增场景 HP-8

查看前后差异

变更后

情境
最新发布的变化证据全部来自测试/文档
操作
渲染发布稿功能勾选计数与影响投影
结果
该变化不计入勾选计数,其影响文本排在实现证据文本之后
证据路径命中lib/product-overview.ts
新增
产品总览仪表盘 · HP-9

「产品总览仪表盘」新增场景 HP-9

查看前后差异

变更后

情境
最新发布含实现证据的行为变化
操作
buildProductOverview 执行
结果
changeGroups 按功能聚合实现证据变化,changeStats 统计全量变化,userImpact 按实现证据优先排列影响文本
证据路径命中lib/product-overview.ts

产品页头部与简介展示

影响面推荐 · 证据路径与本次改动文件命中
EC-7影响面推荐 · 证据路径与本次改动文件命中
HP-6影响面推荐 · 证据路径与本次改动文件命中
HP-7影响面推荐 · 证据路径与本次改动文件命中
变化
产品页头部与简介展示 · EC-1

「产品页头部与简介展示」更新场景 EC-1

查看前后差异

变更前

情境
简介为空
操作
渲染产品页头部
结果
以占位样式展示空简介

变更后

情境
产品简介为空
操作
buildProductOverview 执行
结果
headline 回退为「产品概览」
证据路径命中lib/product-overview.ts
变化
产品页头部与简介展示 · EC-2

「产品页头部与简介展示」更新场景 EC-2

查看前后差异

变更前

情境
产品简介为空且访问者为编辑者
操作
渲染产品简介行
结果
显示「尚无产品简介」提示与 ✎ 编辑入口

变更后

情境
产品简介为空且当前用户可编辑
操作
渲染产品简介行
结果
显示「尚无产品简介——点击 ✎ 由 AI 生成或手写」与编辑入口
变化
产品页头部与简介展示 · EC-3

「产品页头部与简介展示」更新场景 EC-3

查看前后差异

变更前

情境
产品简介为空且访问者非编辑者
操作
渲染产品简介行
结果
不渲染任何占位内容

变更后

情境
产品简介为空且当前用户只读
操作
渲染产品简介行
结果
不渲染任何占位内容
变化
产品页头部与简介展示 · EC-4

「产品页头部与简介展示」更新场景 EC-4

查看前后差异

变更前

情境
匿名演示访客查看产品页
操作
渲染头部
结果
编辑控件标记为不可编辑(data-can-edit=false)

变更后

情境
场景证据全部来自测试/文档,无实现代码
操作
渲染场景卡片
结果
场景标签行显示「测试佐证」徽标,悬浮提示行为以人工核实为准
证据路径命中components/scenario-card.tsx
变化
产品页头部与简介展示 · EC-5Highlight · Access

「产品页头部与简介展示」更新场景 EC-5

查看前后差异

变更前

情境
已登录用户访问无权限的非演示 slug
操作
渲染产品页
结果
保持 404

变更后

情境
场景证据为空数组
操作
isTestOnlyEvidence 执行
结果
返回 false,不显示测试佐证徽标
证据路径命中lib/evidence.ts
变化
产品页头部与简介展示 · EC-6Highlight · Access

「产品页头部与简介展示」更新场景 EC-6

查看前后差异

变更前

情境
已登录但对该产品无访问权限的用户访问非演示 slug
操作
打开产品页
结果
返回 404,不展示产品内容

变更后

情境
场景证据全部来自测试/文档,无实现代码
操作
渲染场景卡片
结果
在编号后显示「测试佐证」徽标,悬浮说明行为以人工核实为准
证据路径命中app/globals.css证据路径命中components/scenario-card.tsx
变化
产品页头部与简介展示 · ER-1

「产品页头部与简介展示」更新场景 ER-1

查看前后差异

变更前

情境
保存简介接口失败
操作
点击「保存」
结果
对话框内显示错误消息,保持打开

变更后

情境
保存产品简介接口失败
操作
在编辑对话框点击保存
结果
对话框内显示错误消息,保持打开可重试
变化
产品页头部与简介展示 · HP-1

「产品页头部与简介展示」更新场景 HP-1

查看前后差异

变更前

情境
编辑者查看产品页头部
操作
点击简介旁的编辑按钮
结果
打开「编辑产品概况」对话框,预填当前简介

变更后

情境
产品简介由分析生成并带证据
操作
buildProductOverview 执行
结果
headline 取简介文本,headlineSource 为 generated,headlineEvidence 返回证据路径
证据路径命中lib/product-overview.ts
变化
产品页头部与简介展示 · HP-2

「产品页头部与简介展示」更新场景 HP-2

查看前后差异

变更前

情境
编辑对话框已修改内容
操作
点击「保存」
结果
调用更新接口,关闭对话框并刷新页面

变更后

情境
产品已有简介且当前用户可编辑
操作
渲染产品简介行
结果
展示完整简介文本与 ✎ 编辑入口
变化
产品页头部与简介展示 · HP-3

「产品页头部与简介展示」更新场景 HP-3

查看前后差异

变更前

情境
产品已有简介且访问者为编辑者
操作
渲染产品简介行
结果
全文展示简介并显示 ✎ 编辑入口

变更后

情境
场景证据全部来自测试/文档
操作
渲染规格工作台场景卡片
结果
场景标签行显示「测试佐证」徽标,悬停说明行为以人工核实为准
证据路径命中components/scenario-card.tsx
变化
产品页头部与简介展示 · HP-4

「产品页头部与简介展示」更新场景 HP-4

查看前后差异

变更前

情境
产品已有生成的简介
操作
打开产品页
结果
展示产品名与简介内容

变更后

情境
场景证据包含实现代码路径
操作
渲染场景卡片
结果
正常展示场景标签、情境/操作/结果与证据链接,不显示测试佐证徽标
证据路径命中components/scenario-card.tsx
变化
产品页头部与简介展示 · HP-5

「产品页头部与简介展示」更新场景 HP-5

查看前后差异

变更前

情境
匿名演示访客打开演示产品页
操作
渲染产品页头部与简介
结果
展示产品名与简介,编辑控件以 data-can-edit=false 呈现

变更后

情境
场景证据包含实现代码
操作
渲染场景卡片
结果
显示类别、编号、来源与编辑信息,不显示「测试佐证」徽标
证据路径命中components/scenario-card.tsx

分析覆盖率回执与继承

影响面推荐 · 证据路径与本次改动文件命中
变化
分析覆盖率回执与继承 · EC-1

「分析覆盖率回执与继承」更新场景 EC-1

查看前后差异

变更前

情境
窗口无实现级行为变更、上一版本身无有效回执
操作
loadInheritedCoverageReceipt 执行
结果
沿版本链最多回看 10 版跳过 implFilesTotal=0 的回执,取最近有效回执

变更后

情境
分析运行无覆盖率回执
操作
buildProductOverview 执行
结果
coverageByte 与 coverageFiles 为 null,不展示覆盖率行
证据路径命中lib/product-overview.ts
变化
分析覆盖率回执与继承 · EC-2

「分析覆盖率回执与继承」更新场景 EC-2

查看前后差异

变更前

情境
整条版本链都无有效回执
操作
零行为变更窗口处理
结果
写入 implFilesTotal=0 的诚实零回执并记录诊断日志

变更后

情境
本次分析无覆盖率回执
操作
渲染总览信任行
结果
覆盖率位置显示「源码装配覆盖率 —(无覆盖率回执)」
变化
分析覆盖率回执与继承 · EC-3

「分析覆盖率回执与继承」更新场景 EC-3

查看前后差异

变更前

情境
查询 migration 054 之前的历史规格版本
操作
loadCoverageReceipt 执行
结果
无回执返回 null

变更后

情境
上一版为回填快照或沿用版本,无有效回执
操作
loadInheritedCoverageReceipt 执行
结果
沿版本链向上最多回看 10 版,跳过 implFilesTotal=0 的合成零回执,取最近有效回执
新增
分析覆盖率回执与继承 · EC-4Highlight · Limits

「分析覆盖率回执与继承」新增场景 EC-4

查看前后差异

变更后

情境
提取趟数达到上限
操作
isCoverageCapped 执行
结果
返回 true,展示层显式警示本规格未覆盖全部实现面
新增
分析覆盖率回执与继承 · EC-5Highlight · Privacy

「分析覆盖率回执与继承」新增场景 EC-5

查看前后差异

变更后

情境
分区被截断或 diff 有未选路径
操作
deriveSourceCoverage 执行
结果
状态为 partial,并保留 diffTotalPaths/diffSelectedPaths/diffOmittedPaths 计数
新增
分析覆盖率回执与继承 · EC-6

「分析覆盖率回执与继承」新增场景 EC-6

查看前后差异

变更后

情境
传入的受影响功能名在上一版规格中不存在
操作
loadPreviousSpecText 执行
结果
无命中,功能顺序保持原 position 序不变
证据路径命中lib/spec-versions.ts
新增
分析覆盖率回执与继承 · EC-7

「分析覆盖率回执与继承」新增场景 EC-7

查看前后差异

变更后

情境
仓库没有任何规格版本
操作
loadPreviousSpecText 执行
结果
返回空数组,锚定降级为仅命名约束
证据路径命中lib/spec-versions.ts
新增
分析覆盖率回执与继承 · ER-1

「分析覆盖率回执与继承」新增场景 ER-1

查看前后差异

变更后

情境
版本链上全部回执均无效
操作
loadInheritedCoverageReceipt 执行
结果
返回 null
新增
分析覆盖率回执与继承 · ER-2

「分析覆盖率回执与继承」新增场景 ER-2

查看前后差异

变更后

情境
未装配任何实现文件
操作
deriveSourceCoverage 执行
结果
状态为 failed
新增
分析覆盖率回执与继承 · ER-3

「分析覆盖率回执与继承」新增场景 ER-3

查看前后差异

变更后

情境
读取上一版规格文本抛错
操作
runAnalysisBody 加载锚
结果
记录错误日志,previousSpecText 置空,本次分析不因锚加载失败而中断
证据路径命中lib/analysis.ts
变化
分析覆盖率回执与继承 · HP-1

「分析覆盖率回执与继承」更新场景 HP-1

查看前后差异

变更前

情境
仓库实现面超出单窗口、按分区装配
操作
computeCoverageReceipt 执行
结果
返回装配文件数与字节数、覆盖率比例、分区数与是否触顶,以及 diff 总/入选/遗漏路径数

变更后

情境
分析运行带覆盖率回执
操作
buildProductOverview 执行
结果
返回 coverageByte 与 coverageFiles 展示标签
证据路径命中lib/product-overview.ts
变化
分析覆盖率回执与继承 · HP-2

「分析覆盖率回执与继承」更新场景 HP-2

查看前后差异

变更前

情境
规格版本写入事务内
操作
saveCoverageReceipt 执行
结果
覆盖率回执按 spec_version_id 落 analysis_coverage_receipts,历史版本可回溯

变更后

情境
本次分析产生覆盖率回执
操作
渲染总览信任行
结果
展示源码装配覆盖率字节、证据文件数与 Spec 版本号
新增
分析覆盖率回执与继承 · HP-3

「分析覆盖率回执与继承」新增场景 HP-3

查看前后差异

变更后

情境
分析完成并写入规格版本
操作
computeCoverageReceipt 与 saveCoverageReceipt 执行
结果
回执记录装配文件数/字节、总面、覆盖率、趟数与 diff 覆盖口径并落库
新增
分析覆盖率回执与继承 · HP-4

「分析覆盖率回执与继承」新增场景 HP-4

查看前后差异

变更后

情境
分析 run 完成源码装配
操作
deriveSourceCoverage 执行
结果
覆盖率回执含 implFilesAssembled/implFilesTotal/coverageRatio,全部装配且未截断时状态为 complete
新增
分析覆盖率回执与继承 · HP-5

「分析覆盖率回执与继承」新增场景 HP-5

查看前后差异

变更后

情境
仓库已有上一版规格且本次为增量分析
操作
loadPreviousSpecText 传入受影响功能名执行
结果
受影响功能按传入顺序排最前,其余功能保持 position 序返回
证据路径命中lib/spec-versions.ts
新增
分析覆盖率回执与继承 · HP-6

「分析覆盖率回执与继承」新增场景 HP-6

查看前后差异

变更后

情境
仓库已有上一版规格且本次为全量分析
操作
loadPreviousSpecText 不传 prioritize 执行
结果
全部功能按 position 序返回场景全文锚
证据路径命中lib/spec-versions.ts

变体场景合并提案脚本

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts

变体场景存量清理脚本

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts

变体场景清理提案脚本

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
ER-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
ER-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts

变体场景清理脚本

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
ER-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中scripts/merge-variant-scenarios.ts

多趟提取确定性合并

影响面推荐 · 证据路径与本次改动文件命中
ER-1影响面推荐 · 证据路径与本次改动文件命中
变化
多趟提取确定性合并 · EC-1

「多趟提取确定性合并」更新场景 EC-1

查看前后差异

变更前

情境
两个分区出现情境/操作/结果行为等价的场景
操作
mergeChunkResults 执行
结果
后者被去重丢弃,scenariosDeduped 计数加一

变更后

情境
两场景骨架词共享但行为不同(如跳转 dashboard 与锁定账户)
操作
scenarioVariantSimilar 判定
结果
返回 false,两条场景都保留
证据路径命中lib/extraction-merge.ts
变化
多趟提取确定性合并 · EC-2

「多趟提取确定性合并」更新场景 EC-2

查看前后差异

变更前

情境
同一功能内出现相同引用但行为不同
操作
mergeChunkResults 执行
结果
按前缀取现有最大序号加一重编号(如 HP-9 → HP-10)

变更后

情境
合并后 changes 超过 150 条
操作
mergeChunkResults 执行
结果
截断到前 150 条并打日志,onStats 回报 changesTruncated
证据路径命中lib/extraction-merge.ts
变化
多趟提取确定性合并 · EC-3

「多趟提取确定性合并」更新场景 EC-3

查看前后差异

变更前

情境
合并后 changes 超过 150 条
操作
mergeChunkResults 执行
结果
截断为前 150 条,打印截断日志并通过 onStats 上报 changesTruncated

变更后

情境
同一功能内两条场景行为确实不同
操作
mergeChunkResults 执行
结果
两条场景都保留,不误合
证据路径命中tests/bm6-variant-fold.test.ts
新增
多趟提取确定性合并 · EC-4

「多趟提取确定性合并」新增场景 EC-4

查看前后差异

变更后

情境
两条场景骨架词共享但行为不同(如「跳转 dashboard」与「锁定账户」)
操作
mergeChunkResults 执行
结果
不折叠,两条场景均保留
证据路径命中lib/extraction-merge.ts
新增
多趟提取确定性合并 · EC-5

「多趟提取确定性合并」新增场景 EC-5

查看前后差异

变更后

情境
两条场景骨架词共享但行为不同(如跳转 dashboard 与锁定账户)
操作
mergeChunkResults 执行
结果
变体判定拒绝合并,两条均保留
证据路径命中lib/extraction-merge.ts
新增
多趟提取确定性合并 · EC-6

「多趟提取确定性合并」新增场景 EC-6

查看前后差异

变更后

情境
两条场景骨架词共享但行为不同(如「跳转 dashboard」与「锁定账户」)
操作
mergeChunkResults 执行
结果
变体判定拒绝折叠,两条场景都保留
证据路径命中lib/extraction-merge.ts
新增
多趟提取确定性合并 · EC-7

「多趟提取确定性合并」新增场景 EC-7

查看前后差异

变更后

情境
两条场景情境/操作/结果同义且 category 相同
操作
mergeChunkResults 执行
结果
scenarioBehaviorEqual 命中直接去重,不进入变体判定
证据路径命中lib/extraction-merge.ts
变化
多趟提取确定性合并 · HP-1

「多趟提取确定性合并」更新场景 HP-1

查看前后差异

变更前

情境
多个分区返回同名功能与场景
操作
mergeChunkResults 执行
结果
按稳定键分组,摘要取场景数最多的趟,功能按名称排序输出

变更后

情境
多个分区返回同名功能
操作
mergeChunkResults 执行
结果
按功能稳定键合并,摘要取场景数最多的趟,场景按引用冲突规则重编号
证据路径命中lib/extraction-merge.ts
新增
多趟提取确定性合并 · HP-10

「多趟提取确定性合并」新增场景 HP-10

查看前后差异

变更后

情境
同一分区输出内同一行为以不同措辞重复建条
操作
mergeChunkResults 执行
结果
scenarioVariantSimilar 命中,后一条被去重,scenariosDeduped 计数加一
证据路径命中lib/extraction-merge.ts
新增
多趟提取确定性合并 · HP-2

「多趟提取确定性合并」新增场景 HP-2

查看前后差异

变更后

情境
单分区输出中同一行为从不同角色重复建条(措辞变体)
操作
mergeChunkResults 执行
结果
变体近似判定命中后折叠,scenariosDeduped 计数加一,不落库并存
证据路径命中lib/extraction-merge.ts
新增
多趟提取确定性合并 · HP-3

「多趟提取确定性合并」新增场景 HP-3

查看前后差异

变更后

情境
多个分区各自提取出同一功能
操作
mergeChunkResults 执行
结果
按功能 key 归并为一条功能,场景合并保留
证据路径命中lib/extraction-merge.ts
新增
多趟提取确定性合并 · HP-4

「多趟提取确定性合并」新增场景 HP-4

查看前后差异

变更后

情境
单分区输出内同一行为以不同措辞重复建条
操作
mergeChunkResults 执行
结果
变体场景折叠为一条,保留先到者,changes 不受影响
证据路径命中lib/extraction-merge.ts
新增
多趟提取确定性合并 · HP-5

「多趟提取确定性合并」新增场景 HP-5

查看前后差异

变更后

情境
实现面被切分为多个提取分区
操作
mergeChunkResults 合并各趟 AnalysisResult
结果
同名功能归并为一条,场景按顺序合并为完整规格
证据路径命中lib/extraction-merge.ts
新增
多趟提取确定性合并 · HP-6

「多趟提取确定性合并」新增场景 HP-6

查看前后差异

变更后

情境
单分区输出内同一行为以不同角色或措辞重复建条
操作
mergeChunkResults 执行
结果
scenarioVariantSimilar 判定为变体后折叠,scenariosDeduped 计数加一
证据路径命中lib/extraction-merge.ts
新增
多趟提取确定性合并 · HP-7

「多趟提取确定性合并」新增场景 HP-7

查看前后差异

变更后

情境
多个分区窗口输出同一功能
操作
mergeChunkResults 执行
结果
按功能稳定键归并场景并统计去重数量
证据路径命中lib/extraction-merge.ts
新增
多趟提取确定性合并 · HP-8

「多趟提取确定性合并」新增场景 HP-8

查看前后差异

变更后

情境
多个分区窗口各自产出功能与场景
操作
mergeChunkResults 执行
结果
按功能稳定键归并场景,返回合并后的规格与去重/截断统计
证据路径命中lib/extraction-merge.ts
新增
多趟提取确定性合并 · HP-9

「多趟提取确定性合并」新增场景 HP-9

查看前后差异

变更后

情境
实现面超出单窗口被分成多个分区
操作
mergeChunkResults 执行
结果
各分区功能按 key 归并,场景合并为一份完整规格并回报合并统计
证据路径命中lib/extraction-merge.ts

行为面两步提取

影响面推荐 · 证据路径与本次改动文件命中
变化
行为面两步提取 · EC-1

「行为面两步提取」更新场景 EC-1

查看前后差异

变更前

情境
模型复述返回未知文件路径或缺少 before/after
操作
parseBehavioralDescriptions 执行
结果
跳过未知路径与非字符串复述,只保留已知文件的完整条目

变更后

情境
复述输出含未知路径或畸形条目
操作
parseBehavioralDescriptions 执行
结果
只保留已知路径的合法条目,畸形条目丢弃
证据路径命中tests/ai.test.ts
新增
行为面两步提取 · EC-2

「行为面两步提取」新增场景 EC-2

查看前后差异

变更后

情境
判定输出缺 product 或 release 且 features 为空数组
操作
analyzeBehavioralGroup 执行
结果
注入占位 product/release,features 空数组合法
证据路径命中tests/ai.test.ts
新增
行为面两步提取 · EC-3

「行为面两步提取」新增场景 EC-3

查看前后差异

变更后

情境
窗口内无实现级行为变更(纯文档/注释/格式提交)
操作
runAnalysisBody 执行
结果
跳过全部 AI 提取,上一版规格原样沿用、零变化
证据路径命中lib/analysis.ts
新增
行为面两步提取 · EC-4Highlight · Limits

「行为面两步提取」新增场景 EC-4

查看前后差异

变更后

情境
行为文件数超过组数上限
操作
enumerateBehavioralChunks 执行
结果
只处理前 maxGroups 组,其余计入 pathsOmitted,状态为 partial
新增
行为面两步提取 · EC-5

「行为面两步提取」新增场景 EC-5

查看前后差异

变更后

情境
单文件 hunk 总需求超过 400 行预算
操作
allocateHunkReads 执行
结果
每 hunk 先保底核心区间,剩余按需求比例分配,未满足的 hunk 标记 truncated 并计数披露
变化
行为面两步提取 · ER-1

「行为面两步提取」更新场景 ER-1

查看前后差异

变更前

情境
复述响应不含 JSON 对象
操作
parseBehavioralDescriptions 执行
结果
抛出 AI response did not contain a JSON object

变更后

情境
某组定向提取连续两次失败
操作
enumerateBehavioralChunks 执行
结果
跳过该组,groupsFailed 计数增加,状态为 partial 而非完整成功
变化
行为面两步提取 · HP-1

「行为面两步提取」更新场景 HP-1

查看前后差异

变更前

情境
存在行为变更文件与变更区上下文
操作
analyzeBehavioralGroup 执行
结果
先复述每个变更块,再判定输出场景与 reviewed 条目

变更后

情境
行为变更文件含多个变更块
操作
analyzeBehavioralGroup 执行
结果
先调用复述 prompt 逐块给出改前改后,再调用判定 prompt 输出场景
证据路径命中tests/ai.test.ts
新增
行为面两步提取 · HP-2

「行为面两步提取」新增场景 HP-2

查看前后差异

变更后

情境
push 变更包含行为文件
操作
runAnalysisBody 计算 behavioralPaths 并进入提取
结果
行为文件清单跨模式共享,供 RC2 与定向枚举使用
证据路径命中lib/analysis.ts
新增
行为面两步提取 · HP-3

「行为面两步提取」新增场景 HP-3

查看前后差异

变更后

情境
窗口存在实现级行为变更
操作
runAnalysisBody 执行
结果
按行为面文件清单分区逐趟提取后合并为完整规格
证据路径命中lib/analysis.ts
新增
行为面两步提取 · HP-4

「行为面两步提取」新增场景 HP-4

查看前后差异

变更后

情境
窗口 diff 含行为文件
操作
enumerateBehavioralChunks 执行
结果
按组定向提取,每组结果用组文件与全部 diff 文件作证据允许集清洗后返回

规格工作区场景卡片

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/scenario-card.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/scenario-card.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/scenario-card.tsx

规格工作台场景卡片

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/scenario-card.tsx证据路径命中lib/evidence.ts
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/evidence.ts
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/scenario-card.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/scenario-card.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/scenario-card.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/scenario-card.tsx

规格差异变体折叠

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/spec-diff.ts
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/spec-diff.ts
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/spec-diff.ts
EC-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/spec-diff.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/spec-diff.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/spec-diff.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/spec-diff.ts

规格版本落库与发布记录

影响面推荐 · 证据路径与本次改动文件命中
变化
规格版本落库与发布记录 · EC-1

「规格版本落库与发布记录」更新场景 EC-1

查看前后差异

变更前

情境
产品简介已有非空人工文本
操作
saveResult 执行
结果
仅当 description 为空时写入生成简介,不覆盖人工内容

变更后

情境
发布已存在 changes 记录
操作
upsertRelease 执行
结果
跳过 changes 插入,直接确保回归任务后返回 releaseId
证据路径命中lib/analysis.ts
新增
规格版本落库与发布记录 · EC-10

「规格版本落库与发布记录」新增场景 EC-10

查看前后差异

变更后

情境
仓库没有任何规格版本
操作
loadPreviousSpecText 执行
结果
返回空数组,锚定降级为仅命名约束
证据路径命中lib/spec-versions.ts
新增
规格版本落库与发布记录 · EC-2

「规格版本落库与发布记录」新增场景 EC-2

查看前后差异

变更后

情境
增量模式下 AI 输出命中 carried 键
操作
insertSpecVersion 执行
结果
该 AI 功能被丢弃并计数,carried 内容保全
证据路径命中lib/spec-versions.ts
新增
规格版本落库与发布记录 · EC-3

「规格版本落库与发布记录」新增场景 EC-3

查看前后差异

变更后

情境
新版场景数较上一版骤降超过阈值
操作
detectSpecCollapse 执行
结果
返回坍缩告警,只告警不阻断落库
证据路径命中lib/spec-versions.ts
新增
规格版本落库与发布记录 · EC-4

「规格版本落库与发布记录」新增场景 EC-4

查看前后差异

变更后

情境
前后场景行为相反或数字/否定冲突(如 404 与 400、可以重试与不可以重试)
操作
scenarioVariantSimilar 判定
结果
返回 false,不折叠,两条变化均保留
证据路径命中lib/spec-diff.ts
新增
规格版本落库与发布记录 · EC-5

「规格版本落库与发布记录」新增场景 EC-5

查看前后差异

变更后

情境
前后场景 category 不一致(happy 与 edge)
操作
scenarioVariantSimilar 判定
结果
直接返回 false,不折叠
证据路径命中lib/spec-diff.ts
新增
规格版本落库与发布记录 · EC-6

「规格版本落库与发布记录」新增场景 EC-6

查看前后差异

变更后

情境
同功能内 removed↔added 且行为字段逐项等价
操作
scenarioChanges 执行
结果
折叠为 reason=renumber,不产生变化行
证据路径命中lib/spec-diff.ts
新增
规格版本落库与发布记录 · EC-7

「规格版本落库与发布记录」新增场景 EC-7

查看前后差异

变更后

情境
同功能内 removed↔added 措辞近似但语义相同
操作
scenarioChanges 执行
结果
折叠为 reason=variant 进 folded 审计面,不产生变化行、不删数据
证据路径命中lib/spec-diff.ts
新增
规格版本落库与发布记录 · EC-8

「规格版本落库与发布记录」新增场景 EC-8

查看前后差异

变更后

情境
两条场景行为相反、主体互换、数字或否定冲突
操作
scenarioVariantSimilar 执行
结果
返回 false,保留为真实变化
证据路径命中lib/spec-diff.ts
新增
规格版本落库与发布记录 · EC-9

「规格版本落库与发布记录」新增场景 EC-9

查看前后差异

变更后

情境
prioritize 中的功能名在上一版规格中不存在
操作
loadPreviousSpecText 执行
结果
顺序不变,全部功能按 position 序返回
证据路径命中lib/spec-versions.ts
变化
规格版本落库与发布记录 · ER-1

「规格版本落库与发布记录」更新场景 ER-1

查看前后差异

变更前

情境
本 run 已被更新的 run 取代
操作
assertLatestRun 执行
结果
抛出 Analysis superseded by run N,事务回滚

变更后

情境
保存过程中任一步抛错
操作
saveResult 执行
结果
事务回滚并抛出错误,run 不标记成功
证据路径命中lib/analysis.ts
新增
规格版本落库与发布记录 · ER-2

「规格版本落库与发布记录」新增场景 ER-2

查看前后差异

变更后

情境
当前 run 已被更新的 run 取代
操作
assertLatestRun 执行
结果
抛出 Analysis superseded by run N,事务回滚
证据路径命中lib/analysis.ts
新增
规格版本落库与发布记录 · ER-3

「规格版本落库与发布记录」新增场景 ER-3

查看前后差异

变更后

情境
新增功能的实现证据文件本次均无行为性行变更
操作
diffFeature 执行
结果
折叠为 reason=tests-only,不落行为变化
证据路径命中lib/spec-diff.ts
变化
规格版本落库与发布记录 · HP-1

「规格版本落库与发布记录」更新场景 HP-1

查看前后差异

变更前

情境
分析结果已产出且本 run 仍是最新
操作
saveResult 执行
结果
事务内写入规格版本、发布与变更清单,run 置 succeeded 后提交

变更后

情境
分析成功且存在上一版规格
操作
saveResult 执行
结果
事务内写入规格版本、覆盖率回执、发布记录与改动文件清单,run 标记 succeeded
证据路径命中lib/analysis.ts
变化
规格版本落库与发布记录 · HP-2

「规格版本落库与发布记录」更新场景 HP-2

查看前后差异

变更前

情境
发布存在改动文件
操作
upsertRelease 执行
结果
按 behavioralChangePaths 写入 release_files 的 behavioral_change 标志并生成回归任务

变更后

情境
发布已存在同 sha 记录
操作
upsertRelease 执行
结果
按唯一键更新 analysis_run_id 与 spec_version_id,不重复插入
证据路径命中lib/analysis.ts
新增
规格版本落库与发布记录 · HP-3

「规格版本落库与发布记录」新增场景 HP-3

查看前后差异

变更后

情境
增量模式存在受影响集之外的既有功能
操作
insertSpecVersion 执行
结果
未受影响功能原样沿用上一版,AI 输出与人工条目按优先级合并
证据路径命中lib/spec-versions.ts
新增
规格版本落库与发布记录 · HP-4

「规格版本落库与发布记录」新增场景 HP-4

查看前后差异

变更后

情境
同功能内 removed↔added 场景措辞近似但语义相同
操作
diffSpec 计算变化
结果
该对折叠为 reason=variant 的审计明细,不产生变化行
证据路径命中lib/spec-diff.ts
新增
规格版本落库与发布记录 · HP-5

「规格版本落库与发布记录」新增场景 HP-5

查看前后差异

变更后

情境
分析产出的场景与上一版行为等价但编号变化
操作
diffSpec 计算场景差异
结果
removed↔added 对折叠为 reason=renumber,不产生变化行
证据路径命中lib/spec-diff.ts
新增
规格版本落库与发布记录 · HP-6

「规格版本落库与发布记录」新增场景 HP-6

查看前后差异

变更后

情境
分析产出的场景与上一版为同义改写(如「演示访客」改为「demo 访客」)
操作
diffSpec 计算场景差异
结果
removed↔added 对折叠为 reason=variant,写入 folded 审计,changes 为空
证据路径命中lib/spec-diff.ts
新增
规格版本落库与发布记录 · HP-7

「规格版本落库与发布记录」新增场景 HP-7

查看前后差异

变更后

情境
分析产出新规格
操作
insertSpecVersion 执行
结果
写入规格版本并在同事务内重建 path→规格反向索引
新增
规格版本落库与发布记录 · HP-8

「规格版本落库与发布记录」新增场景 HP-8

查看前后差异

变更后

情境
仓库已有最新规格版本
操作
loadPreviousSpecText 执行
结果
返回按 position 序的功能与场景全文,供 prompt 锚定
证据路径命中lib/spec-versions.ts
新增
规格版本落库与发布记录 · HP-9

「规格版本落库与发布记录」新增场景 HP-9

查看前后差异

变更后

情境
增量分析已确定受影响功能清单
操作
loadPreviousSpecText 传入 prioritize 执行
结果
受影响功能稳定排到最前,其余保持 position 序
证据路径命中lib/spec-versions.ts

证据清洗与提取重试

影响面推荐 · 证据路径与本次改动文件命中
变化
证据清洗与提取重试 · EC-1

「证据清洗与提取重试」更新场景 EC-1

查看前后差异

变更前

情境
模型引用真实存在但本趟未读的文件
操作
sanitizeEvidence 执行
结果
不可溯源场景/变化/功能整条剔除并记录 dropped paths 告警

变更后

情境
模型引用了本趟未读的文件
操作
sanitizeEvidence 执行
结果
剔除该证据及整条场景/变化,打 warn 日志,其余产出保留
证据路径命中lib/analysis.ts
变化
证据清洗与提取重试 · EC-2

「证据清洗与提取重试」更新场景 EC-2

查看前后差异

变更前

情境
候选声明全部被清洗
操作
sanitizeEvidence 执行
结果
allCandidatesRejected 置位并输出 error 日志,不伪装成正常空结果

变更后

情境
候选全部被清洗后为空
操作
sanitizeEvidence 执行
结果
标记 allCandidatesRejected 并打 error 日志,不伪装成正常空结果
证据路径命中lib/analysis.ts
新增
证据清洗与提取重试 · EC-3

「证据清洗与提取重试」新增场景 EC-3

查看前后差异

变更后

情境
模型输出缺 changes 键
操作
parseAnalysisContent 执行
结果
changes 归一化为空数组
证据路径命中tests/ai.test.ts
新增
证据清洗与提取重试 · EC-4

「证据清洗与提取重试」新增场景 EC-4

查看前后差异

变更后

情境
证据数组为空
操作
isTestOnlyEvidence 执行
结果
返回 false,不标记为测试佐证
证据路径命中lib/evidence.ts
新增
证据清洗与提取重试 · EC-5

「证据清洗与提取重试」新增场景 EC-5

查看前后差异

变更后

情境
证据以 JSON 字符串或带 evidence 字段的场景对象传入
操作
isTestOnlyEvidence 执行
结果
解析出证据数组后按同一口径判定
证据路径命中lib/evidence.ts
新增
证据清洗与提取重试 · EC-6

「证据清洗与提取重试」新增场景 EC-6

查看前后差异

变更后

情境
证据含 CI/锁文件等基础设施文件
操作
evidenceKind 执行
结果
仍判为 implementation,不标记为测试佐证
证据路径命中lib/evidence.ts
新增
证据清洗与提取重试 · EC-7

「证据清洗与提取重试」新增场景 EC-7

查看前后差异

变更后

情境
部分证据路径不在允许集内
操作
sanitizeEvidence 执行
结果
剔除不可溯源声明,droppedClaims 计数增加,证据完整性维度为 partial
变化
证据清洗与提取重试 · ER-1

「证据清洗与提取重试」更新场景 ER-1

查看前后差异

变更前

情境
单趟提取首次调用硬失败(解析/网络/网关)
操作
extractPassWithRetry 执行
结果
重试一次,两次都失败才让 run 失败

变更后

情境
单趟提取重试后仍失败
操作
extractPassWithRetry 执行
结果
错误向上抛出,run 失败
证据路径命中lib/analysis.ts
新增
证据清洗与提取重试 · ER-2

「证据清洗与提取重试」新增场景 ER-2

查看前后差异

变更后

情境
响应不含完整 JSON 对象
操作
parseAnalysisContent 执行
结果
抛出 AI response did not contain a JSON object
证据路径命中tests/ai.test.ts
新增
证据清洗与提取重试 · ER-3

「证据清洗与提取重试」新增场景 ER-3

查看前后差异

变更后

情境
模型输出结构不可解析
操作
parseAnalysisContent 解析
结果
schema 校验失败并抛错,交由重试与 run 失败如实暴露
证据路径命中lib/ai.ts
新增
证据清洗与提取重试 · ER-4Highlight · Privacy

「证据清洗与提取重试」新增场景 ER-4

查看前后差异

变更后

情境
某趟候选全部被清洗
操作
deriveEvidenceIntegrity 执行
结果
allCandidatesRejectedPasses 计数增加,证据完整性维度为 failed
变化
证据清洗与提取重试 · HP-1

「证据清洗与提取重试」更新场景 HP-1

查看前后差异

变更前

情境
模型引用的证据路径都在本分区窗口或 diff 文件内
操作
sanitizeEvidence 执行
结果
声明全部保留,返回保留场景数与空标记

变更后

情境
模型引用的证据路径都在本分区允许集内
操作
sanitizeEvidence 执行
结果
证据全部保留,返回清洗摘要且 droppedClaims 为 0
证据路径命中lib/analysis.ts
新增
证据清洗与提取重试 · HP-2

「证据清洗与提取重试」新增场景 HP-2

查看前后差异

变更后

情境
单趟提取首次调用抛错
操作
extractPassWithRetry 执行
结果
重试一次,重试调用照常落 LLM 回执,成功则继续
证据路径命中lib/analysis.ts
新增
证据清洗与提取重试 · HP-3

「证据清洗与提取重试」新增场景 HP-3

查看前后差异

变更后

情境
模型在合法 diff 路径前后带零宽字符
操作
parseAnalysisContent 执行
结果
证据路径去除不可见字符后通过允许集校验
证据路径命中tests/ai.test.ts
新增
证据清洗与提取重试 · HP-4Highlight · Limits

「证据清洗与提取重试」新增场景 HP-4

查看前后差异

变更后

情境
模型输出证据列表超过上限
操作
parseAnalysisContent 在 schema 校验前执行 capEvidence
结果
证据截断为前 5 条,解析继续成功
证据路径命中tests/ai.test.ts
新增
证据清洗与提取重试 · HP-5

「证据清洗与提取重试」新增场景 HP-5

查看前后差异

变更后

情境
模型输出证据为 JSON 字符串或带 evidence 字段的场景对象
操作
isTestOnlyEvidence 读取证据
结果
兼容三种形状解析出证据数组并判定是否全部非实现代码
证据路径命中lib/evidence.ts
新增
证据清洗与提取重试 · HP-6

「证据清洗与提取重试」新增场景 HP-6

查看前后差异

变更后

情境
场景证据含实现代码路径
操作
isTestOnlyEvidence 执行
结果
返回 false,按实现证据对待
证据路径命中lib/evidence.ts
新增
证据清洗与提取重试 · HP-7

「证据清洗与提取重试」新增场景 HP-7

查看前后差异

变更后

情境
模型输出的证据路径都在允许集内
操作
sanitizeEvidence 执行
结果
证据保留,keptClaims 计数增加,证据完整性维度为 complete

证据链接与证据强度分级

影响面推荐 · 证据路径与本次改动文件命中
变化
证据链接与证据强度分级 · EC-1

「证据链接与证据强度分级」更新场景 EC-1

查看前后差异

变更前

情境
证据路径为绝对路径、含反斜杠或 ..
操作
evidenceUrl 执行
结果
返回 null,不生成链接

变更后

情境
证据入参为带 evidence 字段的场景对象
操作
isTestOnlyEvidence 执行
结果
递归取出 evidence 数组后判定,全部非实现代码时返回 true
证据路径命中lib/evidence.ts
新增
证据链接与证据强度分级 · EC-10

「证据链接与证据强度分级」新增场景 EC-10

查看前后差异

变更后

情境
证据数组为空
操作
isTestOnlyEvidence 执行
结果
返回 false,不把无证据场景判为测试佐证
证据路径命中lib/evidence.ts
新增
证据链接与证据强度分级 · EC-11

「证据链接与证据强度分级」新增场景 EC-11

查看前后差异

变更后

情境
证据路径为 CI 工作流或锁文件等基础设施文件
操作
isTestOnlyEvidence 执行
结果
evidenceKind 仍判为 implementation,返回 false,保持可见不冒进
证据路径命中lib/evidence.ts
变化
证据链接与证据强度分级 · EC-2Highlight · Integrations

「证据链接与证据强度分级」更新场景 EC-2

查看前后差异

变更前

情境
证据路径位于 .github/、锁文件或 LICENSE
操作
isInfrastructureEvidence 执行
结果
判定为基础设施证据,不构成运行时行为证据

变更后

情境
证据路径为 CI 工作流或锁文件
操作
isTestOnlyEvidence 执行
结果
evidenceKind 仍判为 implementation,不视为测试佐证
证据路径命中lib/evidence.ts
变化
证据链接与证据强度分级 · EC-3

「证据链接与证据强度分级」更新场景 EC-3

查看前后差异

变更前

情境
证据路径为测试或文档文件
操作
evidenceKind 执行
结果
分别返回 test 或 document,其余为 implementation

变更后

情境
传入空证据数组
操作
isTestOnlyEvidence 执行
结果
返回 false,不判为测试佐证
证据路径命中lib/evidence.ts
新增
证据链接与证据强度分级 · EC-4

「证据链接与证据强度分级」新增场景 EC-4

查看前后差异

变更后

情境
传入带 evidence 字段的场景对象或 JSON 字符串
操作
isTestOnlyEvidence 执行
结果
递归取出证据数组后按同一口径判定
证据路径命中lib/evidence.ts
新增
证据链接与证据强度分级 · EC-5

「证据链接与证据强度分级」新增场景 EC-5

查看前后差异

变更后

情境
证据包含任一实现代码文件
操作
isTestOnlyEvidence 执行
结果
返回 false,不标记为测试佐证
证据路径命中lib/evidence.ts
新增
证据链接与证据强度分级 · EC-6

「证据链接与证据强度分级」新增场景 EC-6

查看前后差异

变更后

情境
证据路径为测试或文档文件
操作
evidenceKind 执行
结果
返回 test 或 document,全部非实现时 isTestOnlyEvidence 为 true
证据路径命中lib/evidence.ts
新增
证据链接与证据强度分级 · EC-7

「证据链接与证据强度分级」新增场景 EC-7

查看前后差异

变更后

情境
证据路径为绝对路径、含反斜杠或含 ..
操作
evidenceUrl 执行
结果
返回 null,不生成链接
新增
证据链接与证据强度分级 · EC-8

「证据链接与证据强度分级」新增场景 EC-8

查看前后差异

变更后

情境
证据路径为 CI 配置或锁文件
操作
evidenceKind 判定
结果
仍按实现代码处理,isTestOnlyEvidence 返回 false
证据路径命中lib/evidence.ts
新增
证据链接与证据强度分级 · EC-9

「证据链接与证据强度分级」新增场景 EC-9

查看前后差异

变更后

情境
传入的是 behavior_changes 的 before/after 场景对象
操作
isTestOnlyEvidence 执行
结果
读取对象上的 evidence 字段继续判定,不因非数组形状返回 false
证据路径命中lib/evidence.ts
变化
证据链接与证据强度分级 · HP-1Highlight · Integrations

「证据链接与证据强度分级」更新场景 HP-1

查看前后差异

变更前

情境
证据含合法 sha、相对路径与起始行
操作
evidenceUrl 执行
结果
返回带 #L 行号锚点的 GitHub blob 链接

变更后

情境
证据路径为普通源码文件
操作
evidenceKind 执行
结果
返回 implementation
证据路径命中lib/evidence.ts
新增
证据链接与证据强度分级 · HP-2

「证据链接与证据强度分级」新增场景 HP-2

查看前后差异

变更后

情境
证据路径为 tests/ 目录或 .test./.spec. 文件
操作
evidenceKind 执行
结果
返回 test
证据路径命中lib/evidence.ts
新增
证据链接与证据强度分级 · HP-3

「证据链接与证据强度分级」新增场景 HP-3

查看前后差异

变更后

情境
场景证据全部来自测试或文档
操作
isTestOnlyEvidence 执行
结果
返回 true,展示层可打「测试佐证」标
证据路径命中lib/evidence.ts
新增
证据链接与证据强度分级 · HP-4

「证据链接与证据强度分级」新增场景 HP-4

查看前后差异

变更后

情境
场景证据含至少一条实现代码路径
操作
isTestOnlyEvidence 执行
结果
返回 false,按实现证据对待
证据路径命中lib/evidence.ts
新增
证据链接与证据强度分级 · HP-5

「证据链接与证据强度分级」新增场景 HP-5

查看前后差异

变更后

情境
证据路径指向测试或文档文件
操作
EvidenceLinks 渲染证据
结果
链接前显示 [测试] 或 [文档] 标记
新增
证据链接与证据强度分级 · HP-6

「证据链接与证据强度分级」新增场景 HP-6

查看前后差异

变更后

情境
场景证据全部来自测试/文档
操作
isTestOnlyEvidence 执行
结果
返回 true,供场景卡片打「测试佐证」标与总览影响降权
证据路径命中lib/evidence.ts
新增
证据链接与证据强度分级 · HP-7Highlight · Integrations

「证据链接与证据强度分级」新增场景 HP-7

查看前后差异

变更后

情境
证据路径指向实现代码且提交 SHA 合法
操作
evidenceUrl 执行
结果
返回带 #L 行号锚点的 GitHub blob 链接
新增
证据链接与证据强度分级 · HP-8

「证据链接与证据强度分级」新增场景 HP-8

查看前后差异

变更后

情境
场景证据全部来自测试/文档
操作
isTestOnlyEvidence 执行
结果
返回 true,供展示层打「测试佐证」标与影响投影降权
证据路径命中lib/evidence.ts
新增
证据链接与证据强度分级 · HP-9

「证据链接与证据强度分级」新增场景 HP-9

查看前后差异

变更后

情境
场景证据全部来自测试或文档路径
操作
isTestOnlyEvidence 执行
结果
返回 true,场景被标记为测试佐证
证据路径命中lib/evidence.ts

零行为变更窗口沿用

影响面推荐 · 证据路径与本次改动文件命中
变化
零行为变更窗口沿用 · EC-1

「零行为变更窗口沿用」更新场景 EC-1

查看前后差异

变更前

情境
零行为变更窗口但找不到上一版规格
操作
runAnalysisBody 执行
结果
抛出 no-behavioral-change window but no previous spec found

变更后

情境
零行为变更窗口但整条版本链无覆盖率回执
操作
runAnalysisBody 执行
结果
写入诚实的零回执并打 warn 日志
证据路径命中lib/analysis.ts
新增
零行为变更窗口沿用 · EC-2

「零行为变更窗口沿用」新增场景 EC-2

查看前后差异

变更后

情境
仓库尚无上一版规格
操作
loadLatestSpecFeatures 执行
结果
返回 null,无法沿用
证据路径命中lib/spec-versions.ts
新增
零行为变更窗口沿用 · EC-3

「零行为变更窗口沿用」新增场景 EC-3

查看前后差异

变更后

情境
零行为变更窗口且仓库无上一版规格
操作
runAnalysisBody 执行
结果
无规格可沿用,按既有空态处理
证据路径命中lib/analysis.ts
新增
零行为变更窗口沿用 · EC-4

「零行为变更窗口沿用」新增场景 EC-4

查看前后差异

变更后

情境
零行为变更窗口且上一版无有效覆盖率回执
操作
loadInheritedCoverageReceipt 执行
结果
沿版本链向上取最近有效回执,避免落合成零回执
新增
零行为变更窗口沿用 · EC-5

「零行为变更窗口沿用」新增场景 EC-5

查看前后差异

变更后

情境
窗口内无实现级行为变更但 diff 命中功能证据面
操作
runAnalysisBody 执行
结果
不激活增量重提取,避免文档内容被写成假场景
证据路径命中lib/analysis.ts
新增
零行为变更窗口沿用 · ER-1

「零行为变更窗口沿用」新增场景 ER-1

查看前后差异

变更后

情境
零行为变更窗口但找不到上一版规格
操作
runAnalysisBody 执行
结果
抛出 no-behavioral-change window but no previous spec found
证据路径命中lib/analysis.ts
变化
零行为变更窗口沿用 · HP-1

「零行为变更窗口沿用」更新场景 HP-1

查看前后差异

变更前

情境
已有上一版规格且 patch-scan 行为文件清单为空
操作
runAnalysisBody 执行
结果
不调用 AI 提取,规格沿用上一版,release 说明为无行为变化窗口

变更后

情境
已有上一版规格且本窗口无行为变更文件
操作
runAnalysisBody 执行
结果
跳过 AI 提取,规格原样沿用上一版,release 说明声明无行为变化
证据路径命中lib/analysis.ts
新增
零行为变更窗口沿用 · HP-2

「零行为变更窗口沿用」新增场景 HP-2

查看前后差异

变更后

情境
零行为变更窗口且版本链上存在有效覆盖率回执
操作
loadInheritedCoverageReceipt 执行
结果
继承最近有效回执作为本版覆盖率
证据路径命中lib/analysis.ts
新增
零行为变更窗口沿用 · HP-3

「零行为变更窗口沿用」新增场景 HP-3

查看前后差异

变更后

情境
窗口内只有文档或注释变更
操作
runAnalysisBody 执行
结果
跳过 AI 提取,上一版规格整体沿用,不产生行为变化
证据路径命中lib/analysis.ts
新增
零行为变更窗口沿用 · HP-4

「零行为变更窗口沿用」新增场景 HP-4

查看前后差异

变更后

情境
窗口内仅有文档/注释/格式提交
操作
runAnalysisBody 执行
结果
上一版规格原样沿用,零变化,不调用 AI 提取
证据路径命中lib/analysis.ts
新增
零行为变更窗口沿用 · HP-5

「零行为变更窗口沿用」新增场景 HP-5

查看前后差异

变更后

情境
窗口无实现级行为变更且存在上一版规格
操作
runAnalysisBody 执行
结果
上一版规格原样沿用,零变化
证据路径命中lib/analysis.ts
新增
零行为变更窗口沿用 · HP-6

「零行为变更窗口沿用」新增场景 HP-6

查看前后差异

变更后

情境
窗口内只有文档/注释/格式提交,无实现级行为变更
操作
runAnalysisBody 执行
结果
跳过 AI 提取,上一版规格原样沿用,发布变化为零
证据路径命中lib/analysis.ts

AI 规格分析与发布变化

EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
EC-10影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
EC-11影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
EC-19影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
新增
AI 规格分析与发布变化 · EC-2

「AI 规格分析与发布变化」新增场景 EC-2

查看前后差异

变更后

情境
AI 输出中同一行为从不同角色/视角/措辞重复建条
操作
按锚定规则处理输出
结果
与锚中既有场景语义相同的输出按沿用处理,不新增重复场景
证据路径命中lib/ai.ts
新增
AI 规格分析与发布变化 · EC-3

「AI 规格分析与发布变化」新增场景 EC-3

查看前后差异

变更后

情境
场景证据混合实现代码与测试文件
操作
调用 isTestOnlyEvidence 判定
结果
因存在 implementation 证据返回 false,不显示「测试佐证」徽标
证据路径命中components/scenario-card.tsx证据路径命中lib/evidence.ts
EC-32影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
新增
AI 规格分析与发布变化 · EC-33

「AI 规格分析与发布变化」新增场景 EC-33

查看前后差异

变更后

情境
增量模式存在受影响功能且上一版规格锚超过 24k 字符预算
操作
loadPreviousSpecText 以 affectedFeatureNames 作为 prioritize 装载锚
结果
受影响功能稳定排到最前,其余功能保持 position 序,截断时先保住受影响功能的旧场景
证据路径命中lib/analysis.ts证据路径命中lib/spec-versions.ts
新增
AI 规格分析与发布变化 · EC-34

「AI 规格分析与发布变化」新增场景 EC-34

查看前后差异

变更后

情境
增量模式组装 prompt 且锚段存在
操作
specAnchoringSection 生成锚段文本
结果
锚段包含「同一行为只允许一条场景」约束,禁止同一行为从不同角色或措辞重复建条
证据路径命中lib/ai.ts
新增
AI 规格分析与发布变化 · EC-35

「AI 规格分析与发布变化」新增场景 EC-35

查看前后差异

变更后

情境
增量分析中受影响功能在上一版规格锚的 24k 预算内
操作
loadPreviousSpecText 按受影响功能名定向装入锚
结果
受影响功能稳定排到锚最前,其余功能保持 position 序,截断时先保受影响功能的旧场景
证据路径命中lib/analysis.ts证据路径命中lib/spec-versions.ts
新增
AI 规格分析与发布变化 · EC-36

「AI 规格分析与发布变化」新增场景 EC-36

查看前后差异

变更后

情境
增量分析中模型为同一行为从不同角色或措辞重复建条
操作
analyzeWithAI 组装增量 prompt
结果
锚段明确「同一行为只允许一条场景」,与锚中既有场景语义相同的输出按沿用处理
证据路径命中lib/ai.ts
新增
AI 规格分析与发布变化 · EC-37

「AI 规格分析与发布变化」新增场景 EC-37

查看前后差异

变更后

情境
增量分析中受影响功能在上一版规格锚中不存在
操作
AI 按增量契约处理该功能
结果
允许重新枚举,通常每功能 3-8 个场景,happy/edge/error 全部类别逐一检查,边界与错误路径不得省略
证据路径命中lib/ai.ts
新增
AI 规格分析与发布变化 · EC-38

「AI 规格分析与发布变化」新增场景 EC-38

查看前后差异

变更后

情境
removed 与 added 场景 category 不同(如 happy 与 error)。
操作
运行规格差异分析。
结果
不判定为变体,不折叠,仍作为独立的移除与新增变化行输出。
证据路径命中lib/spec-diff.ts
新增
AI 规格分析与发布变化 · EC-39

「AI 规格分析与发布变化」新增场景 EC-39

查看前后差异

变更后

情境
removed 与 added 场景操作或结果中的数字 token 不一致(如 404 与 400)。
操作
运行规格差异分析。
结果
variantFieldGate 拒绝,不折叠为变体,变化行保留。
证据路径命中lib/spec-diff.ts
新增
AI 规格分析与发布变化 · EC-4

「AI 规格分析与发布变化」新增场景 EC-4

查看前后差异

变更后

情境
场景证据为空数组
操作
调用 isTestOnlyEvidence 判定
结果
返回 false,不显示「测试佐证」徽标
证据路径命中lib/evidence.ts
新增
AI 规格分析与发布变化 · EC-40

「AI 规格分析与发布变化」新增场景 EC-40

查看前后差异

变更后

情境
removed 与 added 场景否定词计数不同。
操作
运行规格差异分析。
结果
不判定为变体,变化行保留。
证据路径命中lib/spec-diff.ts
新增
AI 规格分析与发布变化 · EC-41

「AI 规格分析与发布变化」新增场景 EC-41

查看前后差异

变更后

情境
场景 source 为 manual 或存在于 spec_verifications(entity_type=scenario)。
操作
运行合并提案脚本。
结果
该场景被跳过并在报告中标注「人工/已核实」,不进入删除提案。
证据路径命中scripts/merge-variant-scenarios.ts
新增
AI 规格分析与发布变化 · ER-1

「AI 规格分析与发布变化」新增场景 ER-1

查看前后差异

变更后

情境
加载上一版场景全文时数据库调用失败
操作
runAnalysisBody 执行 loadPreviousSpecText
结果
错误被捕获并记录日志,previousSpecText 置为空数组,分析继续执行(锚定降级为仅命名约束,不阻塞分析)
证据路径命中lib/analysis.ts
ER-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
ER-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
新增
AI 规格分析与发布变化 · ER-8

「AI 规格分析与发布变化」新增场景 ER-8

查看前后差异

变更后

情境
removed 与 added 场景操作/结果不等价且合并文本 contentJaccard 低于 0.5。
操作
运行规格差异分析。
结果
不折叠,作为独立变化行输出,不产生 variant 审计条目。
证据路径命中lib/spec-diff.ts
证据路径命中scripts/merge-variant-scenarios.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
新增
AI 规格分析与发布变化 · HP-10

「AI 规格分析与发布变化」新增场景 HP-10

查看前后差异

变更后

情境
指定仓库最新规格版本内存在措辞变体场景,且非 manual、未被人工核实。
操作
运行 merge-variant-scenarios.ts --repository <slug|id>(不带 --apply)。
结果
输出按功能分组的删除/并入提案与跳过项,提示 dry-run 未改动数据。
证据路径命中scripts/merge-variant-scenarios.ts
新增
AI 规格分析与发布变化 · HP-11

「AI 规格分析与发布变化」新增场景 HP-11

查看前后差异

变更后

情境
已人工审阅 dry-run 提案。
操作
运行 merge-variant-scenarios.ts --repository <slug|id> --apply。
结果
按提案删除被合并的变体场景行并打印删除行数,历史 changes 的 before/after JSON 不动。
证据路径命中scripts/merge-variant-scenarios.ts
新增
AI 规格分析与发布变化 · HP-2

「AI 规格分析与发布变化」新增场景 HP-2

查看前后差异

变更后

情境
上一版规格全文超过 24k 字符且包含受影响功能
操作
runAnalysisBody 在受影响集计算后加载上一版场景全文并传入受影响功能名
结果
受影响功能优先装入锚,截断时先保留受影响功能的旧场景
证据路径命中lib/analysis.ts
新增
AI 规格分析与发布变化 · HP-3

「AI 规格分析与发布变化」新增场景 HP-3

查看前后差异

变更后

情境
多分区提取结果中同一功能出现同一行为的措辞变体
操作
mergeChunkResults 对场景做去重合并
结果
行为等价或近似变体的场景被折叠为一条,scenariosDeduped 计数增加
证据路径命中lib/extraction-merge.ts
证据路径命中app/globals.css证据路径命中components/scenario-card.tsx
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
HP-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/analysis.ts
新增
AI 规格分析与发布变化 · HP-7

「AI 规格分析与发布变化」新增场景 HP-7

查看前后差异

变更后

情境
增量分析中上一版规格锚包含受影响功能的旧场景
操作
AI 按增量契约对受影响功能做修订
结果
未变场景逐字沿用原编号与文字,变化行为改写对应条目,新增行为才新增条目,消失行为不再输出,每功能输出条数不超过锚中该功能条数 +3
证据路径命中lib/ai.ts
新增
AI 规格分析与发布变化 · HP-8

「AI 规格分析与发布变化」新增场景 HP-8

查看前后差异

变更后

情境
同一功能内一个场景被移除、另一个措辞近似(同义替换)的场景被新增,category 一致且操作/结果通过严守护。
操作
运行规格差异分析。
结果
该 removed↔added 对被折叠,不产生 added/removed 变化行,折叠明细中出现 reason=variant 的审计条目,原始 before/after 保留。
证据路径命中lib/spec-diff.ts
新增
AI 规格分析与发布变化 · HP-9

「AI 规格分析与发布变化」新增场景 HP-9

查看前后差异

变更后

情境
分析前读取上一版规格全文作为锚,且已知受影响功能名列表。
操作
调用 loadPreviousSpecText 并传入 prioritize 受影响功能名。
结果
受影响功能按名称匹配稳定排到返回列表最前,其余功能保持 position 序,24k 锚预算优先覆盖受影响功能。
证据路径命中lib/spec-versions.ts

LLM 调用回执记账

ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts
新增
LLM 调用回执记账 · ER-2

「LLM 调用回执记账」新增场景 ER-2

查看前后差异

变更后

情境
网关返回非 2xx
操作
requestStructuredCompletion 执行
结果
写入 outcome=failed 的 unknown-usage 回执后抛出网关错误
证据路径命中lib/ai.ts
新增
LLM 调用回执记账 · ER-3

「LLM 调用回执记账」新增场景 ER-3

查看前后差异

变更后

情境
网关返回 2xx 但响应结构不可解析
操作
requestStructuredCompletion 执行
结果
usage 若存在仍写入 outcome=failed 回执,随后抛出解析错误
证据路径命中lib/ai.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/ai.ts

变更说明(AI)

变化
AI 规格分析与发布变化

增量分析契约由「与全量分析相当地重新枚举」改为「以上一版规格锚为基准做增量修订」:未变场景逐字沿用原编号与文字,确属新增才新增条目,每功能输出条数不得超过锚中该功能条数 +3;锚段新增「同一行为只允许一条场景」约束。

用户影响:增量分析产出的规格更贴近上一版措辞,减少同义改写与同行为重复建条带来的噪音。

变化
AI 规格分析与发布变化

上一版规格锚装载改为受影响功能优先:loadPreviousSpecText 接受 prioritize 参数,把受影响功能稳定排到最前,其余保持 position 序;analysis 在计算受影响集之后再装载锚并传入 affectedFeatureNames。

用户影响:24k 锚预算截断时优先保住受影响功能的旧场景,减少因无锚可沿用导致的重推导与编号分裂。

变化
多趟提取确定性合并

mergeChunkResults 的场景去重除行为等价外新增变体近似判定:同功能内措辞近似(同义替换、角色改写)的场景折叠并计入 scenariosDeduped,与跨版本 spec-diff 共用同一判定。

用户影响:单分区输出中同一行为从不同角色重复建条的变体不再落库并存,规格场景列表更干净。

新增
证据链接与证据强度分级

新增 isTestOnlyEvidence:证据数组、JSON 字符串或带 evidence 字段的场景对象中,全部证据路径都不是实现代码(测试/文档)时返回 true;基础设施文件仍按实现代码处理。

用户影响:系统可识别「只有测试/文档佐证」的场景,用于展示标记与发布影响降权。

变化
产品总览仪表盘

发布稿功能勾选计数与用户影响投影改用实现证据口径:场景级变化对侧证据全为测试/文档时不计入 changeGroups;影响文本排序让实现证据优先、测试佐证靠后;发布时间线 changeStats 保持全量口径。

用户影响:总览影响卡不再让测试断言类变化排在最前,发布稿勾选计数与时间线数字差异由「测试佐证」徽标解释。

新增
变体场景清理提案脚本

新增 scripts/merge-variant-scenarios.ts:对指定仓库最新规格版本内的措辞变体场景做合并提案,默认 dry-run,--apply 才写入;复用 scenarioVariantSimilar 判定,跳过 manual 功能与人工核实过的场景。

用户影响:运维可对存量变体场景生成可审阅的合并提案,避免直接改动账本。

变化
AI 规格分析与发布变化

增量契约由「与全量分析相当」改为「以上一版规格锚为基准做增量修订」:未变场景逐字沿用原编号与文字,确属新增才新增,每功能输出条数不得超过锚中该功能条数 +3;锚段新增「同一行为只允许一条场景」约束。

用户影响:增量分析不再为同一行为重复建条,规格条目更稳定、发布变化噪音更少。

变化
AI 规格分析与发布变化

loadPreviousSpecText 新增 prioritize 参数,受影响功能稳定排到锚最前,其余保持 position 序;analysis.ts 在零行为变更窗口判定之后加载锚并传入 affectedFeatureNames。

用户影响:24k 锚截断时受影响功能优先保留旧场景,减少无锚重推导导致的键分裂与重编号。

变化
多趟提取确定性合并

mergeChunkResults 的去重条件在 scenarioBehaviorEqual 之外增加 scenarioVariantSimilar,单分区输出内的措辞变体也在合并层收口。

用户影响:同一行为从不同角色/措辞重复建条不再落库为多条场景。

变化
规格版本落库与发布记录

spec-diff 新增 scenarioVariantSimilar 变体判定与 reason=variant 折叠:同功能内 removed↔added 措辞近似对折叠进 folded 审计,不产生变化行;FoldedSpecChange 与 FoldedBehaviorChangeRow 的 reason 联合类型增加 variant。

用户影响:措辞改写不再被计为行为变化,审计面仍可见折叠明细。

变化
产品总览仪表盘

新增 changeIsTestOnly:场景级变化对侧证据全为测试/文档时,从发布稿功能勾选计数(changeGroups)中排除;changeStats 与发布变化视图保持全量;影响投影中实现证据文本优先、测试佐证文本靠后补充。

用户影响:总览影响卡与发布稿勾选不再让测试断言冒充用户影响,时间线数字仍为全量口径。

变化
证据链接与证据强度分级

新增 isTestOnlyEvidence:证据数组、JSON 字符串或带 evidence 字段的场景对象中,全部证据路径均非 implementation 时判为测试佐证。

用户影响:为「测试佐证」徽标与发布影响降权提供统一判定口径。

新增
规格工作台场景卡片

ScenarioCard 在场景标签行新增「测试佐证」徽标,悬停提示证据全部来自测试/文档、行为以人工核实为准;globals.css 新增 .test-only-badge 样式。

用户影响:编辑者可在规格工作台直接识别仅由测试/文档佐证的场景。

新增
变体场景存量清理脚本

新增 scripts/merge-variant-scenarios.ts:对指定仓库最新规格版本按 scenarioVariantSimilar 生成措辞变体合并提案,默认 dry-run,--apply 才删除;跳过 manual 功能/场景与已人工核实场景。

用户影响:维护者可先审阅提案再一次性清理存量重复场景,历史 changes 的 before/after JSON 不动。

变化
AI 规格分析与发布变化

上一版规格锚装载改为在零行为变更窗口判定之后执行,并传入受影响功能名列表;loadPreviousSpecText 支持 prioritize 参数,把受影响功能稳定排到最前,其余保持 position 序。

用户影响:24k 锚预算截断时优先保留受影响功能的旧场景,模型有锚可沿用,减少无锚重推导导致的键分裂。

变化
多趟提取确定性合并

mergeChunkResults 在原有行为等价去重之外,新增 scenarioVariantSimilar 近似折叠,收口单分区输出内的措辞变体(同行为不同角色/措辞重复建条)。

用户影响:同一功能内措辞变体不再重复落库,规格场景清单更干净。

变化
规格版本落库与发布记录

spec-diff 新增 scenarioVariantSimilar 判定与 variant 折叠原因:同功能内 removed↔added 且措辞近似(category 一致、数字/英文词/否定词守护、操作与结果等价或合并文本 Jaccard≥0.5)的对折叠为 reason=variant,写入 folded 审计而不产生变化行;FoldedSpecChange 与 FoldedBehaviorChangeRow 的 reason 联合类型扩展 variant。

用户影响:同义改写不再被计为一次行为变化,发布变化清单噪音下降,审计面仍可查看被折叠对。

新增
证据链接与证据强度分级

lib/evidence 新增 isTestOnlyEvidence:证据数组、JSON 字符串或带 evidence 字段的场景对象中,全部证据路径均非实现代码(测试/文档)时返回 true。

用户影响:系统可识别「测试这样断言」而非「运行时如此执行」的场景,用于展示标注与影响降权。

新增
产品页头部与简介展示

场景卡片在证据全部来自测试/文档时显示「测试佐证」徽标,悬停说明行为以人工核实为准;globals.css 新增 .test-only-badge 样式。

用户影响:规格工作台中可一眼区分仅有测试/文档佐证的场景,避免误当实现事实。

变化
产品总览仪表盘

总览发布稿功能勾选计数与用户影响投影排除测试佐证场景变化(changeIsTestOnly),影响文本按实现证据优先排序、测试佐证文本靠后补充;发布时间线 changeStats 保持全量口径。

用户影响:发布稿与影响卡不再让测试佐证变化冒充用户影响,时间线数字与勾选数字的差异由「测试佐证」徽标解释。

新增
变体场景合并提案脚本

新增 scripts/merge-variant-scenarios.ts:对指定仓库最新规格版本内的措辞变体场景做合并提案,默认 dry-run,--apply 才写入;复用 scenarioVariantSimilar 判定,跳过 manual 功能/场景与已人工核实的场景。

用户影响:运维可对存量变体场景生成可审阅的清理提案,避免误合人工维护内容。

变化
AI 规格分析与发布变化

增量分析契约由「与全量分析相当地重新枚举」改为「以上一版规格锚为基准做增量修订」:未变场景逐字沿用原编号与文字,确属新增才新增,每功能输出条数不得超过锚中该功能条数 +3;锚段新增「同一行为只允许一条场景」约束。

用户影响:增量分析不再为同一行为重复建条,规格条目更稳定、编号漂移更少。

变化
AI 规格分析与发布变化

上一版规格锚装载改为在零行为变更窗口判定之后执行,并传入受影响功能名做定向优先:受影响功能稳定排到锚最前,保证 24k 字符预算先覆盖它们。

用户影响:被本次提交触及的功能更可能拿到旧场景锚,减少无锚重推导导致的键分裂。

变化
多趟提取确定性合并

mergeChunkResults 在行为等价去重之外新增变体近似折叠:单分区输出内措辞变体(同行为不同角色/措辞重复建条)按 scenarioVariantSimilar 收口,与跨版本 spec-diff 共用同一判定。

用户影响:同一行为不再以多条近似场景并存落库。

变化
规格版本落库与发布记录

spec-diff 的 removed↔added 折叠新增 variant 通道:措辞近似但语义相同的场景对折叠为 reason=variant,与 renumber 一样进 folded 审计面、不产生变化行、不删数据;FoldedSpecChange 与 FoldedBehaviorChangeRow 的 reason 联合类型加入 variant。

用户影响:同义改写不再被计为行为变化,审计面仍可查看被折叠的差异。

新增
证据链接与证据强度分级

新增 isTestOnlyEvidence:证据数组、JSON 字符串或带 evidence 字段的场景对象中,全部证据路径经 evidenceKind 判定均非 implementation 时返回 true。

用户影响:系统可识别「测试这样断言」而非「运行时如此执行」的场景。

变化
产品总览仪表盘

总览发布稿勾选计数与影响投影改用实现证据口径:场景级变化对侧证据全为测试/文档时不计入 changeGroups;影响文本按实现证据优先排序,测试佐证文本仅在有余位时补充;changeStats 时间线保持全量口径。

用户影响:总览影响卡不再让测试佐证文本冒充最靠前的用户影响,两处数字差由「测试佐证」徽标解释。

新增
产品页头部与简介展示

场景卡片在证据全部来自测试/文档时显示「测试佐证」徽标,悬浮说明行为以人工核实为准;新增 .test-only-badge 样式。

用户影响:规格工作区可直接看出哪些场景只有测试/文档佐证。

新增
变体场景清理提案脚本

新增 scripts/merge-variant-scenarios.ts:对指定仓库最新规格版本内的措辞变体场景做合并提案,默认 dry-run,--apply 才写库;复用 scenarioVariantSimilar 判定,跳过 manual 功能/场景与人工核实过的场景。

用户影响:运维可对存量变体场景产出可审阅的清理提案,不自动改账本。

变化
AI 规格分析与发布变化

上一版规格锚的加载改为在受影响功能清单确定之后执行,并把受影响功能名传入 loadPreviousSpecText 做定向优先装入。

用户影响:24k 锚预算截断时优先保留受影响功能的旧场景,减少因无锚可沿用导致的重推导与重编号。

变化
规格版本落库与发布记录

loadPreviousSpecText 新增 prioritize 参数:按功能名(去空白、忽略大小写)把受影响功能稳定排到最前,其余保持 position 序;无命中时顺序不变。

用户影响:锚定内容顺序随受影响功能变化,截断时优先覆盖本次改动涉及的功能。

变化
多趟提取确定性合并

mergeChunkResults 的去重条件在 scenarioBehaviorEqual 之外增加 scenarioVariantSimilar,单分区输出内的措辞变体在合并层即被折叠并计入 scenariosDeduped。

用户影响:同一行为从不同角色/措辞重复建条不再落库为多条场景。

变化
产品总览仪表盘

发布稿功能勾选计数改用排除测试佐证场景变化后的集合;时间线 changeStats 保持全量口径;影响文本排序改为实现证据优先、测试佐证靠后补充。

用户影响:总览影响卡不再让测试佐证文本排在最前,勾选计数与时间线数字差异由「测试佐证」徽标解释。

新增
产品页头部与简介展示

场景卡片在证据全部来自测试/文档时显示「测试佐证」徽标,悬浮说明行为以人工核实为准;globals.css 新增 .test-only-badge 样式。

用户影响:规格工作台中可一眼区分仅有测试/文档佐证的场景。

新增
变体场景清理提案脚本

新增 scripts/merge-variant-scenarios.ts:对指定仓库最新规格版本内的措辞变体场景产出合并提案,默认 dry-run,--apply 才执行;复用 scenarioVariantSimilar 判定,跳过 manual 功能/场景与人工核实过的场景。

用户影响:运维可先审阅提案再决定是否清理存量变体场景,避免误合。

变化
AI 规格分析与发布变化

锚定段新增「同一行为只允许一条场景」约束;增量模式契约由「与全量分析相当」改为「以上一版规格锚为基准做增量修订」,要求未变场景逐字沿用、每功能输出条数不超过锚中该功能条数 +3。

用户影响:增量分析不再为同一行为从不同角色或措辞重复建条,受影响功能的场景编号与文字更稳定,发布变化清单噪音减少。

变化
分析覆盖率回执与继承

loadPreviousSpecText 新增 prioritize 参数,受影响功能按名称稳定排到锚最前,其余保持 position 序;analysis.ts 在零行为变更窗口判定之后加载锚并传入 affectedFeatureNames。

用户影响:24k 锚预算截断时优先保留受影响功能的旧场景,减少因无锚可沿用导致的重新推导与编号漂移。

变化
多趟提取确定性合并

mergeChunkResults 的去重条件在 scenarioBehaviorEqual 之外增加 scenarioVariantSimilar,单分区输出内的措辞变体在合并层收口。

用户影响:同一行为以不同措辞重复出现的场景不再同时落库,规格场景列表更干净。

变化
证据链接与证据强度分级

新增 isTestOnlyEvidence:证据数组、JSON 字符串或带 evidence 字段的场景对象中,全部证据路径均非 implementation 级时返回 true。

用户影响:系统可识别「仅由测试/文档佐证」的场景,用于展示标记与发布影响降权。

新增
规格工作区场景卡片

ScenarioCard 在场景证据全部来自测试/文档时渲染「测试佐证」徽标,悬停提示行为以人工核实为准;globals.css 新增 .test-only-badge 样式。

用户影响:编辑者在规格工作区可直接看出哪些场景只有测试/文档佐证、未链接实现代码。

变化
规格差异变体折叠

spec-diff 新增 scenarioVariantSimilar 判定(category 一致、数字签名一致、英文词交集、否定词计数一致、长字段 Jaccard 下限、操作+结果等价或合并文本 Jaccard ≥0.5),removed↔added 近似对折叠为 reason=variant 并进 folded 审计;FoldedSpecChange 与 FoldedBehaviorChangeRow 的 reason 联合类型新增 variant。

用户影响:措辞改写但语义相同的场景不再产生变化行,审计面仍可见折叠记录,数据不删除。

新增
变体场景清理脚本

新增 scripts/merge-variant-scenarios.ts,对指定仓库最新规格版本内的措辞变体场景产出合并提案,默认 dry-run,--apply 才写库;跳过 manual 功能与已人工核实的场景。

用户影响:维护者可对存量变体场景生成可审阅的清理提案,人工拍板后再执行。

变化
AI 规格分析与发布变化

specAnchoringSection 新增「同一行为只允许一条场景」规则行,禁止从不同角色/视角/措辞为同一行为重复建条,与锚中既有场景语义相同的输出按沿用处理。

用户影响:AI 生成的规格中同一行为不再出现多条同义场景,场景条数与措辞更稳定。

变化
AI 规格分析与发布变化

incrementalScopeSection 对受影响功能的输出要求由「完整清单重新提取、覆盖与全量相当」改为「以上一版规格锚为基准做增量修订」:未变场景逐字沿用原编号与文字、变化行为改写对应条目、新增行为才新增条目、消失行为不再输出,每功能输出条数不得超过锚中该功能条数 +3;仅当锚中没有该功能时才允许重新枚举。

用户影响:增量分析输出的场景数量受锚约束,减少无锚重推导导致的键分裂与场景膨胀。

变化
AI 规格分析与发布变化

上一版场景全文的加载从 runAnalysisBody 早期(noBehavioralWindow 判定前)移到受影响集计算之后、多趟提取之前,并传入 affectedFeatureNames 使受影响功能优先装入锚。

用户影响:24k 锚截断时优先保留受影响功能的旧场景,增量修订有锚可用;加载失败仍降级为空锚不阻塞分析。

变化
AI 规格分析与发布变化

mergeChunkResults 的场景去重条件在 scenarioBehaviorEqual 之外新增 scenarioVariantSimilar 近似通道,单分区输出的措辞变体在合并层收口,与跨版本 spec-diff 的 variant 折叠共用同一判定。

用户影响:同一行为从不同角色重复建条的措辞变体在提取合并时被折叠,不再同义并存落库。

新增
AI 规格分析与发布变化

lib/evidence.ts 新增导出 isTestOnlyEvidence(value):证据数组非空且每项 path 经 evidenceKind 判定均非 implementation 时返回 true;入参兼容证据数组、JSON 字符串与带 evidence 字段的场景对象。

用户影响:为测试佐证场景的展示打标与发布影响降权提供统一判定口径。

新增
AI 规格分析与发布变化

ScenarioCard 计算 testOnly = isTestOnlyEvidence(scenario.evidence),为真时在 reference 之后显示「测试佐证」徽标(class test-only-badge,带 title 说明证据全部来自测试/文档、行为以人工核实为准)。

用户影响:规格工作区中证据仅来自测试/文档的场景被显式标注,读者可区分「测试这样断言」与「运行时如此执行」。

新增
AI 规格分析与发布变化

app/globals.css 新增 .test-only-badge 样式规则(inline-block、左外边距 8px、内边距 2px 7px、圆角 4px、背景 #eef2f7、文字色 #4a5d78、字号 12px、字重 600、vertical-align middle)。

用户影响:测试佐证徽标以独立配色呈现,与「可能过时」徽标视觉区分。

已检查
AI 规格分析与发布变化

提交说明中的「发布计数与影响投影排除/降权测试佐证场景、完整变更视图保留全部条目」以及 scripts/merge-variant-scenarios.ts 一次性清理脚本,在本批次提供的上下文代码中无对应实现片段,无法给出可验证证据,仅留痕。

用户影响:无直接可验证的外部行为变化证据。

新增
AI 规格分析与发布变化

新增 scenarioVariantSimilar 确定性变体判定(category 一致、情境轻守护、操作/结果严守护、操作+结果等价即同行为、合并文本 contentJaccard≥0.5 兜底),并在 scenarioChanges 的 removed↔added 配对中折叠为 reason=variant。

用户影响:措辞改写但语义相同的场景不再作为新增/移除变化出现,而是进入折叠审计明细(reason=variant),变化列表更贴近真实行为差异。

变化
AI 规格分析与发布变化

FoldedSpecChange.reason 与 FoldedBehaviorChangeRow.reason 类型新增 "variant"。

用户影响:发布变化视图的折叠审计条目可展示变体折叠原因。

变化
AI 规格分析与发布变化

loadPreviousSpecText 新增 prioritize 参数,按功能名(trim+小写)把受影响功能稳定排到最前,其余保持 position 序。

用户影响:24k 字符锚预算优先覆盖受影响功能,未变行为更可能被逐字沿用,减少重推导与重编号。

变化
产品总览与产品页

新增 changeIsTestOnly:场景级变化对侧证据全为测试/文档时判定为测试佐证;总览功能分组改用过滤后的 userVisibleChanges,changeStats 仍基于全量。

用户影响:总览功能级变化计数不再包含仅测试/文档佐证的变化,与发布时间线全量统计的差异由「测试佐证」徽标解释。

变化
产品总览与产品页

buildUserImpact 先筛最新发布且 userImpact 非空的条目,再按证据是否测试佐证分组,实现证据在前、测试/文档佐证在后填充每组最多 3 条。

用户影响:影响卡优先展示实现证据的用户影响文本,测试断言类文本仅在有余位时补充。

新增
AI 规格分析与发布变化

新增 scripts/merge-variant-scenarios.ts:按仓库最新规格版本用 scenarioVariantSimilar 生成变体合并提案,跳过 manual 功能/场景与已核实场景,默认 dry-run,--apply 时删除被合并场景行。

用户影响:运维可对存量措辞变体场景产出可审阅的合并提案,默认不改数据。

已检查
AI 规格分析与发布变化

latinTokens 使用显式 spread 而非迭代器 helpers,属内部实现细节,对外不可见。

用户影响:无外部可见影响。

匿名演示页隐藏写入口

8b6a0c0 ↗

匿名演示访客在产品页不再看到「立即分析」「发布产品」入口及只读提示,登录引导统一收敛到顶栏;登录只读成员仍看到禁用按钮与权限说明,服务端写校验仍是最终边界。

行为变化 120 条 · 变更说明 12 条展开

回归清单导出 Markdown ↓

产品发布入口

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/overview-publish-dialog.tsx
变化
产品发布入口 · EC-2Highlight · Access

「产品发布入口」更新场景 EC-2

查看前后差异

变更前

情境
当前账号为只读成员或匿名
操作
渲染发布按钮
结果
只读显示禁用按钮与权限说明,匿名显示登录引导链接

变更后

情境
匿名演示访客查看总览页
操作
渲染发布入口
结果
不渲染任何发布按钮或登录链接
证据路径命中components/overview-publish-dialog.tsx
证据路径命中components/overview-publish-dialog.tsx
新增
产品发布入口 · EC-5

「产品发布入口」新增场景 EC-5

查看前后差异

变更后

情境
匿名 demo 访客查看总览页
操作
渲染发布入口
结果
不渲染任何发布入口,登录引导集中在顶栏
证据路径命中components/overview-publish-dialog.tsx
证据路径命中components/overview-publish-dialog.tsx
新增
产品发布入口 · ER-2

「产品发布入口」新增场景 ER-2

查看前后差异

变更后

情境
生成发布稿草稿的接口返回错误
操作
提交生成请求
结果
面板显示接口错误消息,不跳转发布卡
证据路径命中components/overview-publish-dialog.tsx
变化
产品发布入口 · HP-1

「产品发布入口」更新场景 HP-1

查看前后差异

变更前

情境
编辑者在总览页点击发布产品
操作
勾选功能并点击生成发布稿
结果
生成草稿并提示去校对并发布

变更后

情境
编辑者打开产品总览页
操作
点击「发布产品」
结果
打开发布对话框,列出本次发布的功能及新增/更新/移除计数,默认全选
证据路径命中components/overview-publish-dialog.tsx
证据路径命中components/overview-publish-dialog.tsx
新增
产品发布入口 · HP-3

「产品发布入口」新增场景 HP-3

查看前后差异

变更后

情境
编辑者打开产品总览页
操作
点击「发布产品」并勾选功能后生成草稿
结果
生成发布稿草稿并跳转到发布卡校对发布
证据路径命中components/overview-publish-dialog.tsx

产品页头部与演示只读入口

影响面推荐 · 证据路径与本次改动文件命中
变化
产品页头部与演示只读入口 · EC-1Highlight · Access

「产品页头部与演示只读入口」更新场景 EC-1

查看前后差异

变更前

情境
已登录但对该产品仅有只读权限
操作
渲染分析入口
结果
显示禁用的「发起分析 · 需编辑权限」按钮与只读权限说明

变更后

情境
匿名演示访客打开演示产品页
操作
渲染头部操作区
结果
不渲染分析按钮、只读提示与登录链接,页面标记 data-can-edit=false
证据路径命中components/analyze-button.tsx证据路径命中tests/public-demo-page.test.ts
新增
产品页头部与演示只读入口 · EC-13Highlight · Access

「产品页头部与演示只读入口」新增场景 EC-13

查看前后差异

变更后

情境
登录只读成员打开产品页
操作
页面渲染分析入口区域
结果
仍渲染禁用的「发起分析 · 需编辑权限」按钮与「当前账号对该产品为只读权限。」说明。
证据路径命中components/analyze-button.tsx
新增
产品页头部与演示只读入口 · EC-14Highlight · Access

「产品页头部与演示只读入口」新增场景 EC-14

查看前后差异

变更后

情境
登录只读成员打开产品总览页
操作
页面渲染发布入口区域
结果
仍渲染禁用的「发布产品 · 需编辑权限」按钮,title 提示只读权限。
证据路径命中components/overview-publish-dialog.tsx
变化
产品页头部与演示只读入口 · EC-2Highlight · Access

「产品页头部与演示只读入口」更新场景 EC-2

查看前后差异

变更前

情境
产品页头部渲染
操作
查看标题下方区域
结果
不再出现通用来源说明段落

变更后

情境
登录只读成员打开产品页
操作
渲染头部操作区
结果
显示禁用的「发起分析 · 需编辑权限」按钮与只读权限说明
证据路径命中components/analyze-button.tsx
新增
产品页头部与演示只读入口 · EC-3Highlight · Access

「产品页头部与演示只读入口」新增场景 EC-3

查看前后差异

变更后

情境
登录只读成员访问产品页
操作
渲染分析入口
结果
降为次要禁用按钮并明示只读权限原因
证据路径命中components/analyze-button.tsx
新增
产品页头部与演示只读入口 · EC-4

「产品页头部与演示只读入口」新增场景 EC-4

查看前后差异

变更后

情境
匿名 demo 访客访问产品页
操作
渲染分析入口
结果
不渲染分析入口与只读提示,登录引导集中在顶栏
证据路径命中components/analyze-button.tsx
新增
产品页头部与演示只读入口 · EC-5

「产品页头部与演示只读入口」新增场景 EC-5

查看前后差异

变更后

情境
匿名演示访客打开演示产品页
操作
渲染页面头部
结果
data-can-edit 为 false,不渲染写入口与「登录后可分析」
证据路径命中tests/public-demo-page.test.ts
新增
产品页头部与演示只读入口 · EC-6Highlight · Access

「产品页头部与演示只读入口」新增场景 EC-6

查看前后差异

变更后

情境
登录只读成员打开产品页
操作
渲染头部编辑控件
结果
写操作降为禁用按钮并明示只读权限
证据路径命中components/analyze-button.tsx
新增
产品页头部与演示只读入口 · EC-7

「产品页头部与演示只读入口」新增场景 EC-7

查看前后差异

变更后

情境
匿名演示访客查看产品页
操作
检查页面是否含「登录后可分析」文案
结果
页面不含该文案,写入口整体不渲染
证据路径命中tests/public-demo-page.test.ts
新增
产品页头部与演示只读入口 · EC-8

「产品页头部与演示只读入口」新增场景 EC-8

查看前后差异

变更后

情境
匿名演示访客查看产品页
操作
检查移除产品控件
结果
不渲染 data-remove-product 控件
证据路径命中tests/public-demo-page.test.ts
变化
产品页头部与演示只读入口 · ER-1

「产品页头部与演示只读入口」更新场景 ER-1

查看前后差异

变更前

情境
编辑者点击分析且请求失败
操作
调用 requestAnalysis
结果
按钮下方显示错误消息

变更后

情境
分析请求失败
操作
点击「立即分析」
结果
显示错误消息,按钮恢复可用
证据路径命中components/analyze-button.tsx
证据路径命中components/analyze-button.tsx
新增
产品页头部与演示只读入口 · ER-3Highlight · Access

「产品页头部与演示只读入口」新增场景 ER-3

查看前后差异

变更后

情境
匿名 demo 访客尝试触发写操作
操作
服务端校验写权限
结果
服务端拒绝写请求,demo guard 与服务端校验仍是最终边界
证据路径命中components/analyze-button.tsx
新增
产品页头部与演示只读入口 · ER-4Highlight · Access

「产品页头部与演示只读入口」新增场景 ER-4

查看前后差异

变更后

情境
匿名演示访客尝试直接发起写请求
操作
调用写接口
结果
服务端写权限校验拒绝,演示守卫与服务端校验仍是最终边界
证据路径命中components/analyze-button.tsx
新增
产品页头部与演示只读入口 · ER-5Highlight · Access

「产品页头部与演示只读入口」新增场景 ER-5

查看前后差异

变更后

情境
匿名 demo 访客绕过页面直接调用写接口
操作
发起分析或生成发布稿请求
结果
服务端写校验仍拒绝,权限边界不因前端隐藏入口而放宽。
证据路径命中components/analyze-button.tsx证据路径命中components/overview-publish-dialog.tsx
变化
产品页头部与演示只读入口 · HP-1Highlight · Access

「产品页头部与演示只读入口」更新场景 HP-1

查看前后差异

变更前

情境
已登录且有编辑权限的用户打开产品页
操作
渲染头部操作区
结果
显示可用的分析按钮、发布产品与导出菜单

变更后

情境
编辑者打开产品页
操作
渲染头部操作区
结果
显示可点击的「立即分析」主按钮
证据路径命中components/analyze-button.tsx
变化
产品页头部与演示只读入口 · HP-2

「产品页头部与演示只读入口」更新场景 HP-2

查看前后差异

变更前

情境
匿名访客打开公开演示产品页
操作
渲染头部操作区
结果
同一行内先显示只读演示提示,再显示「登录后可分析」链接

变更后

情境
编辑者点击「立即分析」
操作
请求分析接口
结果
提示「分析已排队,稍后刷新查看」并刷新页面
证据路径命中components/analyze-button.tsx
新增
产品页头部与演示只读入口 · HP-3

「产品页头部与演示只读入口」新增场景 HP-3

查看前后差异

变更后

情境
编辑者访问产品页
操作
渲染头部写操作入口
结果
显示可用的分析、编辑与发布入口
证据路径命中components/analyze-button.tsx
新增
产品页头部与演示只读入口 · HP-4

「产品页头部与演示只读入口」新增场景 HP-4

查看前后差异

变更后

情境
编辑者打开产品页
操作
渲染头部编辑控件
结果
渲染可用的编辑与写操作入口
新增
产品页头部与演示只读入口 · HP-5

「产品页头部与演示只读入口」新增场景 HP-5

查看前后差异

变更后

情境
匿名演示访客打开公开演示产品页
操作
渲染产品页头部
结果
页面以 data-can-edit=false 渲染,不出现分析登录引导与发布入口
证据路径命中tests/public-demo-page.test.ts
新增
产品页头部与演示只读入口 · HP-6

「产品页头部与演示只读入口」新增场景 HP-6

查看前后差异

变更后

情境
编辑者打开产品页
操作
渲染头部操作区
结果
渲染可用的分析等写操作按钮
证据路径命中components/analyze-button.tsx
新增
产品页头部与演示只读入口 · HP-7

「产品页头部与演示只读入口」新增场景 HP-7

查看前后差异

变更后

情境
匿名 demo 访客打开产品页
操作
页面渲染分析入口区域
结果
不渲染分析按钮、只读提示与「登录后可分析」链接,登录引导仅出现在顶栏。
证据路径命中components/analyze-button.tsx

产品页头部与简介展示

影响面推荐 · 证据路径与本次改动文件命中
EC-10影响面推荐 · 证据路径与本次改动文件命中
EC-11影响面推荐 · 证据路径与本次改动文件命中
EC-12影响面推荐 · 证据路径与本次改动文件命中
EC-13影响面推荐 · 证据路径与本次改动文件命中
EC-14影响面推荐 · 证据路径与本次改动文件命中
EC-15影响面推荐 · 证据路径与本次改动文件命中
EC-8影响面推荐 · 证据路径与本次改动文件命中
EC-9影响面推荐 · 证据路径与本次改动文件命中
HP-10影响面推荐 · 证据路径与本次改动文件命中
HP-11影响面推荐 · 证据路径与本次改动文件命中
HP-8影响面推荐 · 证据路径与本次改动文件命中
HP-9影响面推荐 · 证据路径与本次改动文件命中
变化
产品页头部与简介展示 · EC-1

「产品页头部与简介展示」更新场景 EC-1

查看前后差异

变更前

情境
产品简介为空或仅空白
操作
打开产品页头部
结果
不渲染简介占位;编辑者仍可见编辑入口,其他访问者不渲染该行

变更后

情境
简介为空
操作
渲染产品页头部
结果
以占位样式展示空简介
证据路径命中app/globals.css
变化
产品页头部与简介展示 · EC-2

「产品页头部与简介展示」更新场景 EC-2

查看前后差异

变更前

情境
访问者为只读成员
操作
打开产品页头部
结果
简介全文展示,不显示编辑入口

变更后

情境
产品简介为空且访问者为编辑者
操作
渲染产品简介行
结果
显示「尚无产品简介」提示与 ✎ 编辑入口
变化
产品页头部与简介展示 · EC-3

「产品页头部与简介展示」更新场景 EC-3

查看前后差异

变更前

情境
产品页头部渲染
操作
查看标题下方区域
结果
不再出现「CoDelphi 根据此仓库的持续分析形成功能规格…」通用来源说明

变更后

情境
产品简介为空且访问者非编辑者
操作
渲染产品简介行
结果
不渲染任何占位内容
变化
产品页头部与简介展示 · EC-4

「产品页头部与简介展示」更新场景 EC-4

查看前后差异

变更前

情境
产品简介为空或仅空白字符且访问者不可编辑
操作
打开产品页
结果
不渲染简介行,也不显示占位文本

变更后

情境
匿名演示访客查看产品页
操作
渲染头部
结果
编辑控件标记为不可编辑(data-can-edit=false)
证据路径命中tests/public-demo-page.test.ts
变化
产品页头部与简介展示 · EC-5Highlight · Access

「产品页头部与简介展示」更新场景 EC-5

查看前后差异

变更前

情境
产品简介为空或仅空白字符且访问者可编辑
操作
打开产品页
结果
只渲染简介编辑入口,不显示简介文本

变更后

情境
已登录用户访问无权限的非演示 slug
操作
渲染产品页
结果
保持 404
证据路径命中tests/public-demo-page.test.ts
变化
产品页头部与简介展示 · EC-6Highlight · Access

「产品页头部与简介展示」更新场景 EC-6

查看前后差异

变更前

情境
访问者无编辑权限
操作
打开产品页
结果
展示完整简介但不显示编辑入口

变更后

情境
已登录但对该产品无访问权限的用户访问非演示 slug
操作
打开产品页
结果
返回 404,不展示产品内容
证据路径命中tests/public-demo-page.test.ts
变化
产品页头部与简介展示 · EC-7

「产品页头部与简介展示」更新场景 EC-7

查看前后差异

变更前

情境
任意产品页头部
操作
查看标题下方区域
结果
不再渲染通用来源说明段落

变更后

情境
产品简介为空
操作
渲染产品页头部
结果
标题回退为「产品概览」
变化
产品页头部与简介展示 · HP-1

「产品页头部与简介展示」更新场景 HP-1

查看前后差异

变更前

情境
产品有非空简介且访问者为编辑者
操作
打开产品页头部
结果
简介全文展示,旁边显示编辑入口

变更后

情境
编辑者查看产品页头部
操作
点击简介旁的编辑按钮
结果
打开「编辑产品概况」对话框,预填当前简介
变化
产品页头部与简介展示 · HP-2

「产品页头部与简介展示」更新场景 HP-2

查看前后差异

变更前

情境
产品简介长度超过 90 字
操作
打开产品页头部
结果
简介完整展示,不出现「展开全文」按钮

变更后

情境
编辑对话框已修改内容
操作
点击「保存」
结果
调用更新接口,关闭对话框并刷新页面
变化
产品页头部与简介展示 · HP-3

「产品页头部与简介展示」更新场景 HP-3

查看前后差异

变更前

情境
产品已有非空简介且访问者可编辑
操作
打开产品页
结果
头部展示产品名、仓库链接与完整简介文本,并显示简介编辑入口

变更后

情境
产品已有简介且访问者为编辑者
操作
渲染产品简介行
结果
全文展示简介并显示 ✎ 编辑入口
变化
产品页头部与简介展示 · HP-4

「产品页头部与简介展示」更新场景 HP-4

查看前后差异

变更前

情境
产品简介长度超过 90 字
操作
打开产品页
结果
简介全文一次性展示,不出现「展开全文」或「收起」按钮

变更后

情境
产品已有生成的简介
操作
打开产品页
结果
展示产品名与简介内容
证据路径命中tests/public-demo-page.test.ts
变化
产品页头部与简介展示 · HP-5Highlight · Access

「产品页头部与简介展示」更新场景 HP-5

查看前后差异

变更前

情境
产品已有非空简介且访问者无编辑权限
操作
打开产品页
结果
头部展示产品名、仓库链接与完整简介全文,不显示展开/收起按钮与编辑入口

变更后

情境
匿名演示访客打开演示产品页
操作
渲染产品页头部与简介
结果
展示产品名与简介,编辑控件以 data-can-edit=false 呈现
证据路径命中tests/public-demo-page.test.ts
变化
产品页头部与简介展示 · HP-6

「产品页头部与简介展示」更新场景 HP-6

查看前后差异

变更前

情境
产品简介超过 90 字且访问者可编辑
操作
打开产品页
结果
简介全文展示,右侧仅显示编辑入口,不出现展开全文切换

变更后

情境
访客打开公开演示产品页
操作
渲染页面头部与简介
结果
展示产品名与简介,写操作控件不渲染
证据路径命中tests/public-demo-page.test.ts
变化
产品页头部与简介展示 · HP-7

「产品页头部与简介展示」更新场景 HP-7

查看前后差异

变更前

情境
产品简介非空且访问者可编辑
操作
渲染产品页头部
结果
简介全文展示,旁边显示编辑入口

变更后

情境
产品已有非空简介
操作
渲染产品页头部
结果
展示简介文本与来源标记,生成来源附证据链接

匿名演示态分析入口

影响面推荐 · 证据路径与本次改动文件命中
变化
匿名演示态分析入口 · EC-1Highlight · Access

「匿名演示态分析入口」更新场景 EC-1

查看前后差异

变更前

情境
访问者具备编辑权限
操作
查看分析入口区域
结果
不渲染只读提示与登录按钮,走正常分析控件

变更后

情境
匿名演示访客查看演示外壳顶栏
操作
渲染顶栏
结果
显示「使用 Chandler 登录」链接作为唯一登录引导
变化
匿名演示态分析入口 · EC-2Highlight · Access

「匿名演示态分析入口」更新场景 EC-2

查看前后差异

变更前

情境
匿名访客以 demo 权限打开产品页且视口较窄
操作
查看分析操作区
结果
提示与登录按钮按 demo-gate 行内布局换行排列,不溢出容器

变更后

情境
登录只读成员打开产品页
操作
渲染分析入口组件
结果
显示禁用的「发起分析 · 需编辑权限」按钮与只读权限说明
证据路径命中components/analyze-button.tsx
新增
匿名演示态分析入口 · EC-3

「匿名演示态分析入口」新增场景 EC-3

查看前后差异

变更后

情境
匿名演示访客在演示页触发写操作
操作
调用 demo guard
结果
弹出 Demo 模式只读提示对话框,写操作被拦截
新增
匿名演示态分析入口 · EC-4

「匿名演示态分析入口」新增场景 EC-4

查看前后差异

变更后

情境
登录只读成员在产品页
操作
渲染分析入口
结果
显示禁用按钮并说明当前账号只读
证据路径命中components/analyze-button.tsx
新增
匿名演示态分析入口 · EC-5

「匿名演示态分析入口」新增场景 EC-5

查看前后差异

变更后

情境
匿名 demo 访客在产品页
操作
渲染分析入口
结果
不渲染分析入口与只读提示,登录引导集中在顶栏
证据路径命中components/analyze-button.tsx
新增
匿名演示态分析入口 · EC-8Highlight · Access

「匿名演示态分析入口」新增场景 EC-8

查看前后差异

变更后

情境
登录只读成员查看分析入口
操作
渲染分析按钮
结果
显示次要按钮并明示只读权限原因
证据路径命中components/analyze-button.tsx
新增
匿名演示态分析入口 · ER-1

「匿名演示态分析入口」新增场景 ER-1

查看前后差异

变更后

情境
分析请求返回错误
操作
提交分析
结果
显示接口错误消息,不进入分析中状态
证据路径命中components/analyze-button.tsx
新增
匿名演示态分析入口 · ER-2

「匿名演示态分析入口」新增场景 ER-2

查看前后差异

变更后

情境
分析请求被额度闸门拒绝
操作
点击「立即分析」
结果
展示接口返回的额度提示消息
变化
匿名演示态分析入口 · HP-1

「匿名演示态分析入口」更新场景 HP-1

查看前后差异

变更前

情境
匿名访客以演示模式打开产品页
操作
查看分析入口区域
结果
先显示只读提示「只读演示:分析、编辑与发布需登录自己的工作区。」,随后是「登录后可分析」按钮,二者同行排列

变更后

情境
匿名演示访客打开演示产品页
操作
渲染分析入口组件
结果
组件返回空,不输出任何按钮或提示
证据路径命中components/analyze-button.tsx证据路径命中tests/write-access-buttons.test.ts
变化
匿名演示态分析入口 · HP-2Highlight · Access

「匿名演示态分析入口」更新场景 HP-2

查看前后差异

变更前

情境
匿名访客以 demo 权限打开产品页
操作
查看分析操作区
结果
先显示「只读演示:分析、编辑与发布需登录自己的工作区。」弱化小字,随后显示「登录后可分析」按钮,二者同行排列

变更后

情境
编辑者在产品页
操作
点击「立即分析」
结果
提交分析请求并刷新页面
证据路径命中components/analyze-button.tsx
新增
匿名演示态分析入口 · HP-4

「匿名演示态分析入口」新增场景 HP-4

查看前后差异

变更后

情境
编辑者在产品页
操作
点击「立即分析」
结果
调用分析接口并在完成后刷新页面
证据路径命中components/analyze-button.tsx

只读演示下的分析入口

影响面推荐 · 证据路径与本次改动文件命中
变化
只读演示下的分析入口 · EC-1Highlight · Access

「只读演示下的分析入口」更新场景 EC-1

查看前后差异

变更前

情境
匿名访客点击「登录后可分析」
操作
点击该按钮
结果
跳转到登录页

变更后

情境
登录只读成员查看分析入口
操作
渲染组件
结果
显示「当前账号对该产品为只读权限。」说明,不渲染主按钮
证据路径命中components/analyze-button.tsx证据路径命中tests/write-access-buttons.test.ts
新增
只读演示下的分析入口 · EC-2

「只读演示下的分析入口」新增场景 EC-2

查看前后差异

变更后

情境
匿名 demo 访客尝试打开场景编辑面板
操作
点击编辑或新建场景
结果
demo guard 拦截,不打开编辑面板
新增
只读演示下的分析入口 · EC-3

「只读演示下的分析入口」新增场景 EC-3

查看前后差异

变更后

情境
匿名演示访客在产品页
操作
查找分析入口
结果
页面不出现分析入口与登录引导链接
证据路径命中tests/write-access-buttons.test.ts
新增
只读演示下的分析入口 · EC-4

「只读演示下的分析入口」新增场景 EC-4

查看前后差异

变更后

情境
匿名演示访客在产品页
操作
查看分析入口
结果
不渲染分析入口,登录引导集中在顶栏
证据路径命中components/analyze-button.tsx
新增
只读演示下的分析入口 · EC-5

「只读演示下的分析入口」新增场景 EC-5

查看前后差异

变更后

情境
演示产品按组织与 slug 精确解析
操作
打开演示详情页
结果
按 (org, slug) 精确解析产品,不使用全局 slug 兜底
证据路径命中tests/public-demo-page.test.ts
新增
只读演示下的分析入口 · EC-6

「只读演示下的分析入口」新增场景 EC-6

查看前后差异

变更后

情境
演示页渲染写操作控件
操作
渲染页面
结果
不渲染移除产品等写控件
证据路径命中tests/public-demo-page.test.ts
新增
只读演示下的分析入口 · EC-7

「只读演示下的分析入口」新增场景 EC-7

查看前后差异

变更后

情境
匿名访客访问公开演示产品页
操作
渲染写操作控件
结果
不渲染移除产品等写控件,也不渲染分析登录引导
证据路径命中tests/public-demo-page.test.ts
新增
只读演示下的分析入口 · ER-1Highlight · Access

「只读演示下的分析入口」新增场景 ER-1

查看前后差异

变更后

情境
匿名 demo 访客绕过前端提交写请求
操作
服务端校验写权限
结果
服务端拒绝,写能力以服务端校验为准
证据路径命中components/analyze-button.tsx
新增
只读演示下的分析入口 · ER-2

「只读演示下的分析入口」新增场景 ER-2

查看前后差异

变更后

情境
匿名访客访问非 demo 产品地址
操作
解析公开演示产品
结果
返回 null,页面按 404 处理
变化
只读演示下的分析入口 · HP-1Highlight · Access

「只读演示下的分析入口」更新场景 HP-1

查看前后差异

变更前

情境
匿名访客以只读演示身份打开产品页
操作
查看分析操作区
结果
先显示只读提示「只读演示:分析、编辑与发布需登录自己的工作区。」,随后显示「登录后可分析」按钮,两者同行换行排列

变更后

情境
登录只读成员打开产品页
操作
渲染分析入口
结果
显示禁用的次要按钮「发起分析 · 需编辑权限」
证据路径命中components/analyze-button.tsx
变化
只读演示下的分析入口 · HP-2Highlight · Access

「只读演示下的分析入口」更新场景 HP-2

查看前后差异

变更前

情境
用户拥有编辑权限
操作
查看分析操作区
结果
展示可用的分析按钮而非登录入口

变更后

情境
匿名 demo 访客浏览产品规格
操作
查看场景工作区
结果
可浏览规格内容,不出现分析入口
证据路径命中components/analyze-button.tsx
新增
只读演示下的分析入口 · HP-3

「只读演示下的分析入口」新增场景 HP-3

查看前后差异

变更后

情境
登录只读成员在产品页
操作
尝试触发分析
结果
按钮禁用,不发出写请求
证据路径命中components/analyze-button.tsx
新增
只读演示下的分析入口 · HP-4Highlight · Access

「只读演示下的分析入口」新增场景 HP-4

查看前后差异

变更后

情境
登录只读成员在产品页
操作
查看分析入口
结果
显示禁用/次要的分析按钮并说明只读权限
证据路径命中components/analyze-button.tsx
新增
只读演示下的分析入口 · HP-5

「只读演示下的分析入口」新增场景 HP-5

查看前后差异

变更后

情境
访客打开 canonical 组织路径的演示产品页
操作
渲染页面
结果
页面标记 data-can-edit=false,不出现分析入口与登录后可分析文案
证据路径命中tests/public-demo-page.test.ts
新增
只读演示下的分析入口 · HP-6

「只读演示下的分析入口」新增场景 HP-6

查看前后差异

变更后

情境
匿名访客访问公开演示产品的 canonical 地址
操作
渲染演示产品页
结果
以只读身份展示产品内容,data-can-edit 为 false

演示模式分析入口

影响面推荐 · 证据路径与本次改动文件命中
变化
演示模式分析入口 · EC-1

「演示模式分析入口」更新场景 EC-1

查看前后差异

变更前

情境
匿名访客在窄屏查看演示页头部
操作
渲染分析入口区域
结果
只读提示与登录按钮按可换行横向排列,不溢出头部

变更后

情境
匿名演示访客查看产品页头部
操作
渲染分析入口
结果
不渲染分析按钮与只读提示
证据路径命中components/analyze-button.tsx
新增
演示模式分析入口 · EC-10

「演示模式分析入口」新增场景 EC-10

查看前后差异

变更后

情境
登录页需要展示公开演示入口
操作
加载公开演示产品
结果
优先取数据库标记的 demo 产品,无则取环境变量白名单首个,都没有则不渲染入口
新增
演示模式分析入口 · EC-2

「演示模式分析入口」新增场景 EC-2

查看前后差异

变更后

情境
匿名演示访客查看总览页
操作
渲染发布入口
结果
不渲染发布按钮与登录链接
证据路径命中components/overview-publish-dialog.tsx
新增
演示模式分析入口 · EC-4Highlight · Access

「演示模式分析入口」新增场景 EC-4

查看前后差异

变更后

情境
登录只读成员查看产品页
操作
渲染写操作入口
结果
显示禁用按钮与权限说明,不显示登录引导
证据路径命中components/analyze-button.tsx
新增
演示模式分析入口 · EC-5

「演示模式分析入口」新增场景 EC-5

查看前后差异

变更后

情境
匿名访客在演示页查找登录引导
操作
查看页面主体
结果
主体不渲染登录引导,引导位于顶栏
证据路径命中components/analyze-button.tsx
新增
演示模式分析入口 · EC-6

「演示模式分析入口」新增场景 EC-6

查看前后差异

变更后

情境
匿名演示访客查看发布入口
操作
渲染发布入口组件
结果
组件输出为空字符串,不渲染发布链接
证据路径命中tests/write-access-buttons.test.ts
新增
演示模式分析入口 · EC-7Highlight · Access

「演示模式分析入口」新增场景 EC-7

查看前后差异

变更后

情境
以 writeAccess=readonly 渲染 AnalyzeButton
操作
渲染组件
结果
渲染禁用按钮并写明需编辑权限
证据路径命中tests/write-access-buttons.test.ts
新增
演示模式分析入口 · EC-8

「演示模式分析入口」新增场景 EC-8

查看前后差异

变更后

情境
以 writeAccess=demo 渲染 OverviewPublishButton
操作
渲染组件
结果
输出为空字符串,不渲染发布入口
证据路径命中tests/write-access-buttons.test.ts
新增
演示模式分析入口 · EC-9

「演示模式分析入口」新增场景 EC-9

查看前后差异

变更后

情境
产品未标记 demo 但在环境变量白名单中
操作
匿名访问该产品页面
结果
白名单兜底放行只读展示
新增
演示模式分析入口 · ER-1Highlight · Access

「演示模式分析入口」新增场景 ER-1

查看前后差异

变更后

情境
绕过前端直接向写接口发请求
操作
服务端处理写请求
结果
由服务端写权限校验拒绝,前端隐藏不改变强制边界
证据路径命中components/analyze-button.tsx
变化
演示模式分析入口 · HP-1

「演示模式分析入口」更新场景 HP-1

查看前后差异

变更前

情境
匿名访客以演示模式查看产品页
操作
查看分析入口区域
结果
只读提示以行内小字排在「登录后可分析」按钮之前,两者同排展示

变更后

情境
匿名演示访客打开演示产品页
操作
渲染页面
结果
以演示外壳渲染,侧栏标注 DEMO MODE 只读演示
新增
演示模式分析入口 · HP-2

「演示模式分析入口」新增场景 HP-2

查看前后差异

变更后

情境
演示访客触发任一写操作
操作
调用 useDemoGuard 返回的守卫
结果
弹出「Demo 模式」对话框说明编辑不会保存
新增
演示模式分析入口 · HP-3

「演示模式分析入口」新增场景 HP-3

查看前后差异

变更后

情境
匿名 demo 访客打开产品页
操作
渲染页面头部
结果
不出现分析、发布等写入口,顶栏提供登录引导
证据路径命中components/analyze-button.tsx
新增
演示模式分析入口 · HP-4

「演示模式分析入口」新增场景 HP-4

查看前后差异

变更后

情境
匿名访客进入演示产品页
操作
浏览页面
结果
页面正常展示只读内容,无任何写入口
证据路径命中tests/public-demo-page.test.ts
新增
演示模式分析入口 · HP-5

「演示模式分析入口」新增场景 HP-5

查看前后差异

变更后

情境
匿名演示访客打开演示产品页
操作
渲染分析入口组件
结果
组件输出为空字符串,不渲染按钮或链接
证据路径命中tests/write-access-buttons.test.ts
新增
演示模式分析入口 · HP-6

「演示模式分析入口」新增场景 HP-6

查看前后差异

变更后

情境
以 writeAccess=demo 渲染 AnalyzeButton
操作
renderToStaticMarkup 渲染组件
结果
输出为空字符串,不渲染按钮或链接
证据路径命中tests/write-access-buttons.test.ts
新增
演示模式分析入口 · HP-7

「演示模式分析入口」新增场景 HP-7

查看前后差异

变更后

情境
产品在数据库中标记为公开演示
操作
匿名访问该产品页面
结果
按 (orgSlug, slug) 精确解析并放行只读展示

变更说明(AI)

变化
匿名演示态分析入口

writeAccess 为 demo 时 AnalyzeButton 直接返回 null,不再渲染「只读演示」提示与「登录后可分析」链接。

用户影响:匿名演示访客在产品页看不到分析入口与只读提示,需通过顶栏「使用 Chandler 登录」进入登录。

移除
匿名演示态分析入口

移除 .analyze-control.demo-gate 样式规则,演示态不再有横向排列的登录引导控件。

用户影响:演示页不再出现该登录引导按钮样式。

变化
匿名演示态分析入口

writeAccess 为 demo 时 AnalyzeButton 直接返回 null,不再渲染只读提示与「登录后可分析」链接。

用户影响:匿名访客在产品页看不到分析入口与只读提示,登录引导集中在顶栏。

移除
匿名演示态分析入口

移除 .analyze-control.demo-gate 样式,该样式仅服务于已删除的 demo 登录引导布局。

用户影响:无直接可见影响,仅清理不再使用的样式。

移除
匿名演示态分析入口

移除 .analyze-control.demo-gate 样式,demo 态不再有横向排列的登录引导控件。

用户影响:演示页不再出现该登录引导控件样式。

移除
匿名演示态分析入口

移除 .analyze-control.demo-gate 样式规则,demo 态不再有横向排列的登录引导控件。

用户影响:演示页不再出现该登录引导控件及其布局样式。

变化
产品页头部与演示只读入口

AnalyzeButton 在 writeAccess 为 demo 时由渲染只读提示与「登录后可分析」链接改为直接返回 null;OverviewPublishButton 在 demo 时由渲染「登录后可发布」链接改为返回 null;同时删除 .analyze-control.demo-gate 样式规则。

用户影响:匿名 demo 访客在产品页不再看到分析按钮、发布按钮、只读提示与登录 CTA,登录引导仅保留在顶栏;登录只读成员仍看到禁用按钮与权限说明。

简化产品页头部

24135a7 ↗

移除产品标题下的通用来源说明,产品简介改为全文展示并去掉截断与展开按钮;匿名演示页把只读提示移到登录按钮前并改为弱化小字,使头部行对齐。

行为变化 14 条 · 变更说明 18 条展开

回归清单导出 Markdown ↓

产品简介编辑

影响面推荐 · 证据路径与本次改动文件命中
变化
产品简介编辑 · EC-1

「产品简介编辑」更新场景 EC-1

查看前后差异

变更前

情境
产品简介为空且当前用户可编辑
操作
渲染简介行
结果
显示「尚无产品简介」提示与编辑入口

变更后

情境
产品简介为空且当前用户可编辑
操作
渲染产品页头部
结果
显示「尚无产品简介——点击 ✎ 由 AI 生成或手写。」与编辑入口
证据路径命中components/product-description-line.tsx
变化
产品简介编辑 · EC-2

「产品简介编辑」更新场景 EC-2

查看前后差异

变更前

情境
简介超过 90 字
操作
渲染简介行
结果
默认两行截断,提供「展开全文 / 收起」切换

变更后

情境
产品简介为空且当前用户不可编辑
操作
渲染产品页头部
结果
不渲染简介行
证据路径命中components/product-description-line.tsx
新增
产品简介编辑 · EC-3

「产品简介编辑」新增场景 EC-3

查看前后差异

变更后

情境
产品简介超过 90 字
操作
渲染产品页头部
结果
仍全文展示,不出现截断或「展开全文」按钮
证据路径命中components/product-description-line.tsx
新增
产品简介编辑 · EC-4

「产品简介编辑」新增场景 EC-4

查看前后差异

变更后

情境
只读或匿名用户查看有简介的产品页
操作
查看简介行
结果
简介全文展示,不显示编辑入口,也不显示展开/收起按钮。
证据路径命中components/product-description-line.tsx
变化
产品简介编辑 · ER-1

「产品简介编辑」更新场景 ER-1

查看前后差异

变更前

情境
保存简介接口失败
操作
点击保存
结果
弹窗内显示错误消息,弹窗保持打开

变更后

情境
保存简介时接口返回错误
操作
在编辑对话框点击保存
结果
对话框内显示错误消息,保持打开可重试
变化
产品简介编辑 · HP-1

「产品简介编辑」更新场景 HP-1

查看前后差异

变更前

情境
编辑者点击简介旁的 ✎
操作
在弹窗输入内容并保存
结果
updateDescription 保存后关闭弹窗并刷新页面

变更后

情境
产品已有非空简介且当前用户可编辑
操作
渲染产品页头部
结果
简介全文展示,右侧显示 ✎ 编辑入口
证据路径命中components/product-description-line.tsx
新增
产品简介编辑 · HP-2

「产品简介编辑」新增场景 HP-2

查看前后差异

变更后

情境
编辑者点击 ✎ 打开编辑对话框
操作
修改内容并点击保存
结果
调用 updateDescription 保存后关闭对话框并刷新页面
新增
产品简介编辑 · HP-3

「产品简介编辑」新增场景 HP-3

查看前后差异

变更后

情境
编辑者打开有简介的产品页
操作
查看简介行
结果
简介全文展示,右侧显示 ✎ 编辑入口。
证据路径命中components/product-description-line.tsx

产品页头部与演示只读入口

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/analyze-button.tsx
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/analyze-button.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx证据路径命中components/analyze-button.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/globals.css证据路径命中components/analyze-button.tsx

产品页头部与简介展示

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-description-line.tsx
EC-10影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-description-line.tsx
EC-11影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-description-line.tsx
EC-12影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
EC-13影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-description-line.tsx
EC-14影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-description-line.tsx
EC-15影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/globals.css证据路径命中app/products/[slug]/[product]/page.tsx
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-description-line.tsx
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
EC-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-description-line.tsx
EC-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-description-line.tsx
EC-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-description-line.tsx
EC-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
EC-8影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-description-line.tsx
EC-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-description-line.tsx
HP-10影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx证据路径命中components/product-description-line.tsx
HP-11影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/globals.css证据路径命中components/product-description-line.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/globals.css证据路径命中components/product-description-line.tsx
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx证据路径命中components/product-description-line.tsx
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/globals.css证据路径命中components/product-description-line.tsx
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/products/[slug]/[product]/page.tsx证据路径命中components/product-description-line.tsx
HP-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-description-line.tsx
HP-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/product-description-line.tsx
HP-8影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/globals.css证据路径命中components/product-description-line.tsx
HP-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/analyze-button.tsx

匿名演示态分析入口

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/analyze-button.tsx
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/globals.css
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/globals.css证据路径命中components/analyze-button.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/globals.css证据路径命中components/analyze-button.tsx

只读演示下的分析入口

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/analyze-button.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/globals.css证据路径命中components/analyze-button.tsx
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/analyze-button.tsx

演示模式分析入口

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/globals.css
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中app/globals.css证据路径命中components/analyze-button.tsx

变更说明(AI)

变化
产品页头部

匿名演示页的分析入口改为同一行内先显示只读提示、再显示「登录后可分析」按钮,提示使用弱化小字样式。

用户影响:演示访客在登录按钮前直接看到只读原因,头部操作行对齐更整齐。

变化
匿名演示态分析入口

只读演示态下,只读提示文案移到「登录后可分析」按钮之前,容器改为行内排列,提示使用弱化小字样式。

用户影响:匿名访客先看到只读说明再看到登录按钮,头部行对齐更整齐。

变化
只读演示下的分析入口

demo(匿名)访问时,只读提示文案改为排在「登录后可分析」按钮之前,容器改为行内换行布局,提示使用弱化小字样式。

用户影响:匿名访客在产品页看到登录按钮与只读说明同行排列,说明文字更弱化,头部更整齐。

变化
演示模式分析入口

匿名演示访问时,只读提示改为行内小字并排在「登录后可分析」按钮之前,容器改为横向排列可换行。

用户影响:演示页头部操作行对齐更整齐,登录引导与只读说明同排展示。

变化
产品页头部与简介展示

产品页头部不再渲染「CoDelphi 根据此仓库的持续分析形成功能规格、行为变化与回归建议;结论附源码证据,采纳前经人工核实」通用来源说明,并删除对应样式。

用户影响:产品页标题下方更简洁,不再出现统一的来源与信任说明文案。

变化
产品页头部与简介展示

匿名演示(demo)模式下,只读提示文案移到「登录后可分析」按钮之前,容器改为横向排列,提示使用 readonly-hint 弱化小字样式。

用户影响:演示页头部操作行对齐更整齐,提示与登录入口并排展示。

变化
产品页头部与简介展示

产品页头部不再渲染「CoDelphi 根据此仓库的持续分析形成功能规格、行为变化与回归建议;结论附源码证据,采纳前经人工核实」通用来源说明;产品简介不再按 90 字截断为两行,也不再提供「展开全文/收起」按钮,始终全文展示。

用户影响:访客与成员在产品页看到更简洁的标题区,简介内容一次看全,无需点击展开。

变化
匿名演示态分析入口

writeAccess 为 demo 时,只读提示文案移到「登录后可分析」按钮之前,容器改为 demo-gate 行内布局,提示使用 readonly-hint 弱化小字样式。

用户影响:匿名访客在演示产品页先看到只读说明再看到登录按钮,头部操作区排列更整齐。

变化
产品简介编辑

产品简介行移除两行截断与展开/收起逻辑:不再计算长度阈值、不再附加 clamp 类与 title,直接全文展示;编辑入口仍仅编辑者可见。

用户影响:长简介不再被截断为两行,也不再出现「展开全文/收起」按钮,读者直接看到完整简介。

变化
产品详情与发布变化读取

匿名演示(writeAccess=demo)下分析入口改为横向排列容器,只读提示以弱化小字样式内联显示在「登录后可分析」登录按钮之前。

用户影响:匿名访客在产品页看到只读提示位于登录按钮左侧/前方,头部行对齐更整齐;登录入口与提示文案内容不变。

已检查
产品详情与发布变化读取

CSS 中 .inline-message 定义从 .analyze-control 行拆分到 .readonly-hint 同一行,样式声明本身未变,属内部样式组织调整。

用户影响:无外部可见变化。

docs: mention user-level instruction snippet option in MCP guide

1d56805 ↗

本窗口无实现级行为变更(纯文档/注释/格式提交),规格原样沿用上一版,零行为变化。

本次分析未发现规格行为变化,无需全量回归;建议做瘦身回归——按近期风险抽查核心路径与既有冒烟用例即可。

docs: drop free-cloud wording and add MCP integration guide to README

8ad6fac ↗

本窗口无实现级行为变更(纯文档/注释/格式提交),规格原样沿用上一版,零行为变化。

本次分析未发现规格行为变化,无需全量回归;建议做瘦身回归——按近期风险抽查核心路径与既有冒烟用例即可。

MCP 下发工作流约定,连接指南改用用户级指令文件

9a21af3 ↗

MCP initialize 响应新增 instructions 字段,随连接下发计划期反查、push 后对账与反馈上报的工作流约定,并同步改写相关工具描述;/mcp 连接指南新增可复制的用户级常驻指令段(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md),仓库级 AGENTS.md 降为可选;新增 CopyBlock 客户端组件为指南代码块提供复制按钮。

行为变化 72 条 · 变更说明 26 条展开

回归清单导出 Markdown ↓

MCP key 管理与只读工具面

EC-16影响面推荐 · 证据路径与本次改动文件命中
EC-17影响面推荐 · 证据路径与本次改动文件命中
ER-10影响面推荐 · 证据路径与本次改动文件命中
ER-2影响面推荐 · 证据路径与本次改动文件命中
ER-3影响面推荐 · 证据路径与本次改动文件命中
ER-4影响面推荐 · 证据路径与本次改动文件命中
ER-5影响面推荐 · 证据路径与本次改动文件命中
ER-6影响面推荐 · 证据路径与本次改动文件命中
ER-7影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
EC-10影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
EC-11影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
EC-12影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
EC-13影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
EC-14影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
EC-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
EC-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
EC-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
EC-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
EC-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
EC-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
EC-8影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
EC-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
ER-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
新增
MCP key 管理与只读工具面 · ER-11

「MCP key 管理与只读工具面」新增场景 ER-11

查看前后差异

变更后

情境
调用 lookup_by_files 时 paths 为空或超过 20 个
操作
handleMcpRpc 处理 tools/call
结果
返回 JSON-RPC 错误码 -32602(INVALID_PARAMS)
证据路径命中lib/mcp/server.ts
新增
MCP key 管理与只读工具面 · ER-12

「MCP key 管理与只读工具面」新增场景 ER-12

查看前后差异

变更后

情境
调用不存在的工具或方法
操作
handleMcpRpc 处理 tools/call 或未知 method
结果
返回 JSON-RPC 错误码 -32601(METHOD_NOT_FOUND)
证据路径命中lib/mcp/server.ts
ER-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-10影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-11影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-12影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-13影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-17影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-18影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-19影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-2影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-20影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-21影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-22影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-23影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-24影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-25影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-26影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
新增
MCP key 管理与只读工具面 · HP-27

「MCP key 管理与只读工具面」新增场景 HP-27

查看前后差异

变更后

情境
客户端发起 MCP initialize 握手
操作
handleMcpRpc 处理 initialize 请求
结果
响应含 protocolVersion、tools 能力、serverInfo 与 instructions 工作流约定(覆盖 lookup_by_files、get_release、send_feedback 等时机)
证据路径命中lib/mcp/server.ts
新增
MCP key 管理与只读工具面 · HP-28

「MCP key 管理与只读工具面」新增场景 HP-28

查看前后差异

变更后

情境
agent 读取工具列表
操作
handleMcpRpc 处理 tools/list 请求
结果
返回 13 个只读工具,描述中标注调用时机(list_projects 先匹配 slug、lookup_by_files 改前必查、list_releases/get_release push 后对账、send_feedback 带三要素)
证据路径命中lib/mcp/server.ts
新增
MCP key 管理与只读工具面 · HP-29

「MCP key 管理与只读工具面」新增场景 HP-29

查看前后差异

变更后

情境
客户端发起 initialize 握手
操作
handleMcpRpc 处理 initialize 请求
结果
响应除 protocolVersion、capabilities.tools 与 serverInfo 外,还携带 instructions 字段,内容含 lookup_by_files、get_release、send_feedback 等工作流约定
证据路径命中lib/mcp/server.ts
HP-3影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
新增
MCP key 管理与只读工具面 · HP-30

「MCP key 管理与只读工具面」新增场景 HP-30

查看前后差异

变更后

情境
客户端请求 tools/list
操作
handleMcpRpc 处理 tools/list 请求
结果
返回只读工具清单,其中 list_projects 描述提示先用 git remote 的 owner/name 匹配产品取 slug,lookup_by_files 描述标注做计划或改文件前必查,list_releases 与 get_release 描述标注 push 后对账,send_feedback 描述要求带场景、证据、代码实际行为三要素
证据路径命中lib/mcp/server.ts
新增
MCP key 管理与只读工具面 · HP-31

「MCP key 管理与只读工具面」新增场景 HP-31

查看前后差异

变更后

情境
客户端发起 MCP initialize 握手
操作
handleMcpRpc 处理 initialize 请求
结果
响应含 protocolVersion、tools 能力、serverInfo,并携带 instructions 字段,内容覆盖 lookup_by_files 计划期反查、get_release push 后对账与 send_feedback 上报
证据路径命中lib/mcp/server.ts
新增
MCP key 管理与只读工具面 · HP-32

「MCP key 管理与只读工具面」新增场景 HP-32

查看前后差异

变更后

情境
agent 查看工具清单以决定调用时机
操作
tools/list 返回工具定义
结果
list_projects 描述提示先用 git remote 的 owner/name 匹配产品取 slug,lookup_by_files 标注做计划或改文件前必查,list_releases 标注 per-push 一条且 push 后用本次 sha 找发布,get_release 标注 push 后对账,send_feedback 标注带场景/证据/实际行为三要素
证据路径命中lib/mcp/server.ts
新增
MCP key 管理与只读工具面 · HP-33Highlight · Security

「MCP key 管理与只读工具面」新增场景 HP-33

查看前后差异

变更后

情境
coding agent 以 API key 或 OAuth 身份连接 MCP 端点并发送 initialize 请求
操作
客户端调用 initialize
结果
响应包含 protocolVersion、capabilities、serverInfo,并新增 instructions 字段,值为四条工作流约定文本(计划前 lookup_by_files 反查、search_scenarios/get_feature 理解行为、push 后 list_releases/get_release 对账、send_feedback 三要素上报)
证据路径命中lib/mcp/server.ts
新增
MCP key 管理与只读工具面 · HP-34

「MCP key 管理与只读工具面」新增场景 HP-34

查看前后差异

变更后

情境
agent 已连接 MCP 并调用 tools/list
操作
客户端请求 tools/list
结果
返回的工具描述包含调用时机说明:list_projects 按 git remote owner/name 匹配取 slug、lookup_by_files 计划或改文件前必查、list_releases/get_release push 后对账、send_feedback 带三要素上报
证据路径命中lib/mcp/server.ts
HP-4影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-5影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-6影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-7影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-8影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts
HP-9影响面推荐 · 证据路径与本次改动文件命中
证据路径命中lib/mcp/server.ts

MCP 连接指南公开页

影响面推荐 · 证据路径与本次改动文件命中
EC-4影响面推荐 · 证据路径与本次改动文件命中
EC-5影响面推荐 · 证据路径与本次改动文件命中
EC-6影响面推荐 · 证据路径与本次改动文件命中
EC-7影响面推荐 · 证据路径与本次改动文件命中
HP-10影响面推荐 · 证据路径与本次改动文件命中
HP-11影响面推荐 · 证据路径与本次改动文件命中
HP-12影响面推荐 · 证据路径与本次改动文件命中
HP-13影响面推荐 · 证据路径与本次改动文件命中
HP-14影响面推荐 · 证据路径与本次改动文件命中
HP-15影响面推荐 · 证据路径与本次改动文件命中
HP-16影响面推荐 · 证据路径与本次改动文件命中
HP-17影响面推荐 · 证据路径与本次改动文件命中
HP-18影响面推荐 · 证据路径与本次改动文件命中
HP-19影响面推荐 · 证据路径与本次改动文件命中
HP-20影响面推荐 · 证据路径与本次改动文件命中
HP-5影响面推荐 · 证据路径与本次改动文件命中
HP-6影响面推荐 · 证据路径与本次改动文件命中
HP-7影响面推荐 · 证据路径与本次改动文件命中
HP-8影响面推荐 · 证据路径与本次改动文件命中
HP-9影响面推荐 · 证据路径与本次改动文件命中
变化
MCP 连接指南公开页 · EC-1

「MCP 连接指南公开页」更新场景 EC-1

查看前后差异

变更前

情境
未登录访客查看指南
操作
点击「去设置页签发 key」
结果
跳转 /settings,由登录流程接管

变更后

情境
团队希望把同一约定共享给所有成员
操作
查看指南第五节说明
结果
仓库根目录 AGENTS.md 被标注为可选加强、非必需;已连接 agent 还会随连接收到相同的 MCP instructions
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · EC-18

「MCP 连接指南公开页」新增场景 EC-18

查看前后差异

变更后

情境
团队希望把同一约定共享给所有成员
操作
查看 /mcp 指南的指令文件说明
结果
指南说明可再把同段贴进仓库根目录 AGENTS.md 作为可选加强,并说明已连接 agent 会随连接收到相同约定(MCP instructions)
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · EC-19

「MCP 连接指南公开页」新增场景 EC-19

查看前后差异

变更后

情境
团队希望把同一段约定共享给所有成员
操作
查看指南中关于仓库级 AGENTS.md 的说明
结果
仓库根目录 AGENTS.md 被标注为可选的团队共享加强,非必需
证据路径命中app/mcp/page.tsx
变化
MCP 连接指南公开页 · EC-2

「MCP 连接指南公开页」更新场景 EC-2

查看前后差异

变更前

情境
指南页展示连接配置且未携带已签发 key
操作
渲染通用 mcpServers JSON
结果
Authorization 显示占位符 <sk_cd_…>,提示到设置页签发后复制烤好的版本

变更后

情境
仓库未接入 CoDelphi 或 git remote 匹配不到产品
操作
agent 读取用户级指令段
结果
段内门控条件不满足,agent 直接跳过该段,不影响未接入项目
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · EC-20

「MCP 连接指南公开页」新增场景 EC-20

查看前后差异

变更后

情境
用户级指令文件未配置
操作
已连接本服务的 agent 建立连接
结果
agent 仍随连接收到一份相同的约定(MCP instructions),具备基本触发
证据路径命中app/mcp/page.tsx证据路径命中lib/mcp/server.ts
新增
MCP 连接指南公开页 · EC-21

「MCP 连接指南公开页」新增场景 EC-21

查看前后差异

变更后

情境
用户尚未签发 key
操作
查看通用 mcpServers JSON 配置块
结果
Authorization 使用占位符 <sk_cd_…>,提示签发后自动写入真实值
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · EC-22

「MCP 连接指南公开页」新增场景 EC-22

查看前后差异

变更后

情境
用户已签发 key 并在设置页复制烤好的配置
操作
查看 /mcp 指南页配置块
结果
指南页配置块仍以占位符展示,真实 key 由设置页烤入版本提供
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · EC-23

「MCP 连接指南公开页」新增场景 EC-23

查看前后差异

变更后

情境
团队希望把同一约定共享给所有成员
操作
查看指南中仓库级 AGENTS.md 的说明
结果
仓库根目录 AGENTS.md 被标注为可选加强、非必需,并说明已连接 agent 会随连接收到相同约定
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · EC-24

「MCP 连接指南公开页」新增场景 EC-24

查看前后差异

变更后

情境
用户尚未签发 key 时查看指南的通用 mcpServers JSON
操作
查看配置代码块
结果
Authorization 使用占位符,提示把占位符换成自己的 key 或到设置页签发后复制烤好的版本
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · EC-25

「MCP 连接指南公开页」新增场景 EC-25

查看前后差异

变更后

情境
尚未签发 key 时查看连接配置
操作
查看通用 mcpServers JSON 代码块
结果
Authorization 使用占位符 <sk_cd_…>,提示签发 key 后自动写入真实值
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · EC-26

「MCP 连接指南公开页」新增场景 EC-26

查看前后差异

变更后

情境
已签发 key 后查看连接配置
操作
查看通用 mcpServers JSON 代码块
结果
Authorization 为真实 key,可点击复制按钮一键复制
证据路径命中app/mcp/page.tsx证据路径命中components/copy-block.tsx
变化
MCP 连接指南公开页 · EC-3

「MCP 连接指南公开页」更新场景 EC-3

查看前后差异

变更前

情境
指南页展示工具面清单
操作
渲染工具分组
结果
按产品与规格、发布、反馈三组列出 13 个工具及说明

变更后

情境
用户所在仓库未接入 CoDelphi 或未连接 codelphi MCP
操作
把用户级指令段贴进 ~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md
结果
指令段自带门控条件,不满足时自动跳过,不影响未接入的项目
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · ER-1

「MCP 连接指南公开页」新增场景 ER-1

查看前后差异

变更后

情境
浏览器不支持或拒绝剪贴板写入
操作
点击 CopyBlock 的「复制」按钮
结果
复制失败,按钮文案不切换为「已复制」
证据路径命中components/copy-block.tsx
变化
MCP 连接指南公开页 · HP-1Highlight · Access

「MCP 连接指南公开页」更新场景 HP-1

查看前后差异

变更前

情境
未登录访客打开 /mcp
操作
渲染连接指南页
结果
以公开外壳展示指南全文与「登录 / 注册」入口,并给出返回产品总览链接

变更后

情境
访客未登录访问 /mcp
操作
打开 /mcp 页面
结果
以公开外壳渲染连接指南,含端点、通用 mcpServers JSON、各客户端文件位置、OAuth 连接器说明、13 个工具清单与工作流约定,并显示「返回产品总览」链接
证据路径命中app/mcp/page.tsx
变化
MCP 连接指南公开页 · HP-2

「MCP 连接指南公开页」更新场景 HP-2

查看前后差异

变更前

情境
已登录用户打开 /mcp
操作
渲染连接指南页
结果
以应用外壳展示指南全文,侧栏 MCP 项高亮,不显示返回产品总览链接

变更后

情境
已登录用户访问 /mcp
操作
打开 /mcp 页面
结果
以应用外壳渲染同一连接指南内容,侧栏 MCP 项高亮
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · HP-27

「MCP 连接指南公开页」新增场景 HP-27

查看前后差异

变更后

情境
用户需要让 agent 在所有仓库自觉执行工作流约定
操作
在 /mcp 指南中点击用户级常驻指令段的「复制」
结果
门控片段(未连接 codelphi MCP 或 remote 匹配不到时自动跳过)写入剪贴板,按钮显示「已复制」,可贴进 ~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md
证据路径命中app/mcp/page.tsx证据路径命中components/copy-block.tsx
新增
MCP 连接指南公开页 · HP-28

「MCP 连接指南公开页」新增场景 HP-28

查看前后差异

变更后

情境
用户需要复制通用 mcpServers 连接配置
操作
在 /mcp 指南的「通用 mcpServers JSON」块点击「复制」
结果
配置 JSON 写入剪贴板,按钮文案变为「已复制」
证据路径命中app/mcp/page.tsx证据路径命中components/copy-block.tsx
新增
MCP 连接指南公开页 · HP-29Highlight · Access

「MCP 连接指南公开页」新增场景 HP-29

查看前后差异

变更后

情境
访客未登录访问 /mcp
操作
打开 /mcp 页面
结果
以公开外壳渲染连接指南,含端点、通用 mcpServers JSON、各客户端文件位置、OAuth 连接器说明、工具清单与工作流约定,并显示「返回产品总览」链接
证据路径命中app/mcp/page.tsx
变化
MCP 连接指南公开页 · HP-3

「MCP 连接指南公开页」更新场景 HP-3

查看前后差异

变更前

情境
需要复制客户端配置
操作
查看「写入你的 coding agent」一节
结果
展示以站点 origin 推导的 /api/mcp 端点与通用 mcpServers JSON(Authorization 为占位符)

变更后

情境
用户需要把通用 mcpServers 配置写入 coding agent
操作
在指南第二节查看配置块并点击「复制」
结果
CopyBlock 将配置 JSON 写入剪贴板,按钮文案变为「已复制」
证据路径命中app/mcp/page.tsx证据路径命中components/copy-block.tsx
新增
MCP 连接指南公开页 · HP-30

「MCP 连接指南公开页」新增场景 HP-30

查看前后差异

变更后

情境
用户在 /mcp 指南中查看通用 mcpServers JSON 配置块
操作
点击该块的「复制」按钮
结果
配置 JSON 写入剪贴板,按钮文案变为「已复制」
证据路径命中app/mcp/page.tsx证据路径命中components/copy-block.tsx
新增
MCP 连接指南公开页 · HP-31

「MCP 连接指南公开页」新增场景 HP-31

查看前后差异

变更后

情境
用户希望让 agent 在所有仓库自觉执行工作流约定
操作
复制「用户级常驻指令段」并贴进 ~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md
结果
指南给出带门控的指令段(未连接 codelphi MCP 或仓库匹配不到时自动跳过),一次配置对所有仓库生效
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · HP-32

「MCP 连接指南公开页」新增场景 HP-32

查看前后差异

变更后

情境
用户需要让 agent 自觉执行工作流约定
操作
查看「写入你的 coding agent」章节
结果
页面推荐把门控生效的指令段贴进用户级指令文件(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md),并提供可复制的指令段文本;仓库根目录 AGENTS.md 标注为可选团队共享
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · HP-33

「MCP 连接指南公开页」新增场景 HP-33

查看前后差异

变更后

情境
用户需要复制通用 mcpServers JSON
操作
点击 CopyBlock 的「复制」按钮
结果
配置文本写入剪贴板,按钮文案变为「已复制」
证据路径命中app/mcp/page.tsx证据路径命中components/copy-block.tsx
新增
MCP 连接指南公开页 · HP-34

「MCP 连接指南公开页」新增场景 HP-34

查看前后差异

变更后

情境
用户需要把工作流约定写进 coding agent 的常驻指令
操作
在指南「写入你的 coding agent」段查看用户级常驻指令段
结果
展示推荐贴进 ~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md 的门控片段,说明每人一次、所有仓库生效,未连接或匹配不到时自动跳过
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · HP-35

「MCP 连接指南公开页」新增场景 HP-35

查看前后差异

变更后

情境
用户需要复制通用 mcpServers JSON 或用户级指令段
操作
点击对应代码块的「复制」按钮
结果
文本写入剪贴板,按钮文案变为「已复制」
证据路径命中app/mcp/page.tsx证据路径命中components/copy-block.tsx
新增
MCP 连接指南公开页 · HP-36

「MCP 连接指南公开页」新增场景 HP-36

查看前后差异

变更后

情境
用户需要把工作流约定交给 agent 自觉执行
操作
查看连接指南的指令段区块
结果
推荐贴进用户级指令文件 ~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md,展示带门控的常驻指令段(未连接 codelphi MCP 或仓库匹配不到时自动跳过),并说明仓库根 AGENTS.md 为可选团队共享、已连接 agent 会随连接收到相同约定
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · HP-37

「MCP 连接指南公开页」新增场景 HP-37

查看前后差异

变更后

情境
用户访问 /mcp 指南页的「二、写入你的 coding agent」小节
操作
查看通用 mcpServers JSON 配置块
结果
配置块以 CopyBlock 渲染,显示 label「通用 mcpServers JSON」、复制按钮与 pre/code 中的配置 JSON
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · HP-38

「MCP 连接指南公开页」新增场景 HP-38

查看前后差异

变更后

情境
用户点击配置块的复制按钮
操作
点击「复制」按钮
结果
配置 JSON 文本被写入剪贴板,按钮文案变为「已复制」
证据路径命中components/copy-block.tsx
新增
MCP 连接指南公开页 · HP-39

「MCP 连接指南公开页」新增场景 HP-39

查看前后差异

变更后

情境
用户访问 /mcp 指南页的「五、给 agent 的工作流约定」小节
操作
查看常驻指令配置说明
结果
页面推荐把指令段贴进用户级指令文件(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md),说明每人一次、所有仓库生效、段内自带门控;并提供 CopyBlock 展示该指令段;同时说明团队可选贴进仓库根目录 AGENTS.md,已连接 agent 还会随连接收到相同约定
证据路径命中app/mcp/page.tsx
变化
MCP 连接指南公开页 · HP-4

「MCP 连接指南公开页」更新场景 HP-4

查看前后差异

变更前

情境
需要了解可用工具
操作
查看「工具面(13 个)」一节
结果
按产品与规格、发布、反馈三组列出工具名与说明

变更后

情境
用户希望 agent 在所有仓库自觉执行账本约定
操作
在指南第五节复制用户级常驻指令段并贴进 ~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md
结果
CopyBlock 复制含门控条件的指令段(计划期 lookup_by_files 反查、search_scenarios 理解行为、push 后 list_releases/get_release 对账、send_feedback 上报),一次粘贴覆盖所有仓库
证据路径命中app/mcp/page.tsx
新增
MCP 连接指南公开页 · HP-40

「MCP 连接指南公开页」新增场景 HP-40

查看前后差异

变更后

情境
用户点击用户级指令段的复制按钮
操作
点击「复制」按钮
结果
指令段文本被写入剪贴板,按钮文案变为「已复制」
证据路径命中app/mcp/page.tsx证据路径命中components/copy-block.tsx

可复制代码块组件

影响面推荐 · 证据路径与本次改动文件命中
EC-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/copy-block.tsx
HP-1影响面推荐 · 证据路径与本次改动文件命中
证据路径命中components/copy-block.tsx

变更说明(AI)

新增
MCP key 管理与只读工具面

initialize 响应新增 instructions 字段,内容为 MCP_WORKFLOW_INSTRUCTIONS:计划期用 list_projects 匹配 slug 并 lookup_by_files 反查爆炸半径、理解既有行为用 search_scenarios、push 后用 list_releases/get_release 对账、发现不符用 send_feedback 上报。

用户影响:零配置接入的 coding agent 无需额外指令文件即可获得工作流触发时机。

变化
MCP key 管理与只读工具面

工具描述补充时机说明:list_projects 提示先用 git remote 的 owner/name 匹配取 slug;search_scenarios 提示理解既有行为优先用它;lookup_by_files 标注做计划或改文件前必查;list_releases 标注 per-push 一条、docs-only 也有零变化条目并提示用本次 sha 找发布;get_release 标注 push 后对账;send_feedback 要求带场景、证据、代码实际行为三要素。

用户影响:agent 在工具列表中即可看到各工具的调用时机,减少误用与漏用。

新增
MCP 连接指南公开页

指南第五节新增用户级常驻指令段 WORKFLOW_AGENTS_SNIPPET,以 CopyBlock 展示,可一键复制贴进 ~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md;段内自带门控,未连接 codelphi MCP 或 remote 匹配不到时自动跳过。

用户影响:用户一次粘贴即可让所有仓库的 agent 自觉执行账本约定,无需逐仓库配置。

变化
MCP 连接指南公开页

通用 mcpServers JSON 由静态 pre 块改为 CopyBlock 组件,带「复制」按钮;仓库级 AGENTS.md 从「建议写进」降为「可选加强,非必需」,并说明已连接 agent 会随连接收到相同的 MCP instructions。

用户影响:配置 JSON 可直接复制,接入步骤更少出错;团队共享指令文件变为可选。

新增
可复制代码块组件

新增客户端组件 CopyBlock:标题行 + 复制按钮 + pre/code,点击后写入剪贴板并把按钮文案切换为「已复制」。

用户影响:指南页的配置与指令段可一键复制。

新增
MCP key 管理与只读工具面

initialize 响应新增 instructions 字段,下发工作流约定(计划期 lookup_by_files 反查、push 后 get_release 对账、send_feedback 上报),零配置连接也自带触发时机。

用户影响:连接 MCP 的 coding agent 无需额外配置即可收到工作流约定,按约定在计划期反查爆炸半径、push 后核对行为变化。

变化
MCP key 管理与只读工具面

list_projects、search_scenarios、lookup_by_files、list_releases、get_release、send_feedback 的工具描述补充使用时机(slug 匹配、计划前必查、push 后对账、反馈三要素)。

用户影响:agent 从工具描述即可判断何时调用,减少漏查与错序调用。

变化
MCP 连接指南公开页

连接指南改为推荐把门控工作流片段贴进用户级指令文件(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md),一次覆盖所有仓库;仓库级 AGENTS.md 降为可选团队共享,并说明已连接 agent 会随连接收到相同约定。

用户影响:用户按新指引配置一次即可在所有仓库生效,未接入的项目因门控自动跳过。

新增
MCP 连接指南公开页

新增 CopyBlock 客户端组件,为指南中的通用 mcpServers JSON 与用户级指令片段提供标题行、复制按钮与代码块,复制后按钮显示「已复制」。

用户影响:用户可一键复制连接配置与指令片段,无需手动选中文本。

新增
MCP key 管理与只读工具面

MCP initialize 响应新增 instructions 字段,内容为工作流约定(计划前 lookup_by_files 反查爆炸半径、push 后 list_releases/get_release 对账、send_feedback 上报),并同步在 list_projects、search_scenarios、lookup_by_files、list_releases、get_release、send_feedback 的工具描述中写明使用时机。

用户影响:零配置接入的 coding agent 连接后即收到工作流触发约定,无需额外配置指令文件也能按约定在计划前反查、push 后对账。

变化
MCP 连接指南公开页

连接指南改为推荐把门控生效的用户级常驻指令段贴进 ~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md(一次配置所有仓库生效),仓库根目录 AGENTS.md 降为可选的团队共享加强;配置 JSON 与指令段改用新增的 CopyBlock 组件渲染,带复制按钮与「已复制」反馈。

用户影响:用户可一键复制连接配置与常驻指令段,并按推荐路径做一次用户级配置即可在所有仓库生效。

新增
MCP key 管理与只读工具面

initialize 响应新增 instructions 字段,下发计划期 lookup_by_files 反查、push 后 get_release 对账、send_feedback 上报等工作流约定;list_projects、search_scenarios、lookup_by_files、list_releases、get_release、send_feedback 的工具描述补充触发时机。

用户影响:零配置连接的 coding agent 随连接即获得工作流触发时机,无需额外配置指令文件。

变化
MCP 连接指南公开页

连接指南改为推荐把门控生效的工作流指令段贴进用户级指令文件(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md),仓库级 AGENTS.md 降为可选团队共享;通用 mcpServers JSON 与指令段均改为带复制按钮的 CopyBlock 组件。

用户影响:用户一次粘贴即可对所有仓库生效,并可在页面上直接复制配置与指令段。

新增
可复制文本块组件

新增 CopyBlock 客户端组件:标题行 + 复制按钮 + pre/code,点击后写入剪贴板并把按钮文案切换为「已复制」。

用户影响:指南页的配置与指令段可一键复制,避免手动选中出错。

新增
MCP key 管理与只读工具面

initialize 响应新增 instructions 字段,内容为 MCP_WORKFLOW_INSTRUCTIONS:计划前用 list_projects 匹配 slug 并 lookup_by_files 反查爆炸半径、push 后用 list_releases/get_release 对账、发现不符用 send_feedback 上报。

用户影响:零配置连接的 coding agent 也能收到工作流触发时机,无需额外配置文件。

变化
MCP 连接指南公开页

指南由「建议写进仓库 AGENTS.md」改为推荐贴进用户级指令文件(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md),提供带门控的常驻指令段;仓库级 AGENTS.md 降为可选团队共享,并说明已连接 agent 会随连接收到相同约定。

用户影响:用户一次粘贴即可对所有仓库生效,未接入的项目因门控自动跳过。

新增
MCP 连接指南公开页

新增 CopyBlock 客户端组件,为通用 mcpServers JSON 与用户级指令段提供标题行、复制按钮与代码块,复制后按钮文案变为「已复制」。

用户影响:指南中的配置与指令段可一键复制,减少手工选中出错。

新增
MCP key 管理与只读工具面

MCP initialize 响应新增 instructions 字段,内容为工作流约定(计划期用 list_projects 匹配 slug 并 lookup_by_files 反查爆炸半径、理解既有行为用 search_scenarios、push 后用 list_releases/get_release 对账、发现不符用 send_feedback 上报)。

用户影响:零配置连接的 coding agent 无需额外指令文件即可获得工作流触发时机。

变化
MCP 连接指南公开页

连接指南改为推荐把工作流约定贴进用户级指令文件(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md),提供带门控的常驻指令段;仓库根 AGENTS.md 降为可选的团队共享加强,并说明已连接 agent 会随连接收到相同约定。

用户影响:用户一次粘贴即可对所有仓库生效,未接入的项目因门控自动跳过。

新增
MCP 连接指南公开页

新增 CopyBlock 客户端组件,为指南中的通用 mcpServers JSON 与用户级指令段提供标题行、复制按钮与「已复制」反馈。

用户影响:用户可一键复制连接配置与指令片段,无需手动选中文本。

新增
MCP 连接指南公开页

新增客户端组件 CopyBlock:接收 label 与 text,渲染标题行(label + 复制按钮)与 pre/code 文本;点击按钮调用 navigator.clipboard.writeText 复制文本,按钮文案在「复制」与「已复制」间切换。

用户影响:访问 /mcp 的用户可一键复制配置 JSON 与指令段,无需手动选中文本。

变化
MCP 连接指南公开页

「二、写入你的 coding agent」小节的通用 mcpServers JSON 展示由手写 div.mcp-guide-config + pre.mcp-guide-code 改为 CopyBlock 组件(label=通用 mcpServers JSON,text=configJson)。

用户影响:该配置块外观保持 mcp-guide 样式,并新增复制按钮。

变化
MCP 连接指南公开页

「五、给 agent 的工作流约定」小节由建议贴进仓库 AGENTS.md 改为:推荐贴进用户级指令文件(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md,每人一次、所有仓库生效、段内自带门控),并提供 CopyBlock 展示 WORKFLOW_AGENTS_SNIPPET;同时说明团队可选贴进仓库根目录 AGENTS.md,已连接 agent 还会随连接收到相同约定(MCP instructions)。

用户影响:用户按指南配置一次即可对所有仓库生效;仓库级 AGENTS.md 变为可选加强项。

新增
MCP key 管理与只读工具面

新增导出常量 MCP_WORKFLOW_INSTRUCTIONS(四条编号工作流约定拼接文本),并在 handleMcpRpc 的 initialize 响应中新增 instructions 字段返回该常量。

用户影响:MCP 客户端在 initialize 时即可获得工作流约定并注入 agent 上下文,零配置连接也具备触发时机。

变化
MCP key 管理与只读工具面

多个工具描述更新:list_projects 追加按 git remote owner/name 匹配产品取 slug;search_scenarios 追加理解既有行为优先使用;lookup_by_files 改为「做计划或改文件前必查」开头;list_releases 追加 per-push 一条、docs-only 零变化条目与 push 后用 sha 找发布;get_release 追加 push 后对账;send_feedback 改为带三要素上报。

用户影响:tools/list 返回的工具描述变化,agent 可据此在正确时机调用工具。

已检查
MCP 连接指南公开页

app/mcp/page.tsx 新增 CopyBlock 导入与 WORKFLOW_AGENTS_SNIPPET 常量定义,属页面内部实现,外部可见效果已由上述场景覆盖。

用户影响:无独立外部影响。

另有 1 条差异判定为仅措辞/编号调整,已折叠(未计入行为变化)展开
变化
MCP 连接指南公开页 · EC-24

场景表述仅措辞差异(行为等价,未计入行为变化)

查看前后差异

变更前

情境
页面渲染时未签发 key
操作
渲染通用 mcpServers JSON
结果
Authorization 头显示占位符 <sk_cd_…>,提示到设置页签发后复制烤好的版本

变更后

情境
用户尚未签发 key 时查看指南的通用 mcpServers JSON
操作
查看配置代码块
结果
Authorization 使用占位符,提示把占位符换成自己的 key 或到设置页签发后复制烤好的版本

docs: reframe AGENTS.md MCP section from dogfood to the standard workflow

45f2727 ↗

本窗口无实现级行为变更(纯文档/注释/格式提交),规格原样沿用上一版,零行为变化。

本次分析未发现规格行为变化,无需全量回归;建议做瘦身回归——按近期风险抽查核心路径与既有冒烟用例即可。