boardx / boardx/workspacex

🔒 需人类裁决:解锁 V-D 的四个字段缺口(D2/D3/D4/D5)—— 这是 CLR 到 10 分的关键路径

Open
#831 2 comments 0 reactions 0 assignees View on GitHub
area:chat backlog
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
1h 7m
Merged PRs (30d)
969

Description

## 为什么现在需要你裁决

CLR 统一衡量(#814)四条 track 里,**V-D(项目对话主屏保真)是最大缺口**:rev-uiux 第 6 轮
实测 **1/10**,已迭代 6 轮,D 组仍停在 1 分。

`chat-main-fidelity-rubric.md` 十维里,**D2/D3/D4/D5 四维卡在契约缺字段**——#728 会话已经
重申过两轮「待人类裁决」。按 ADR-023,契约口径只有人能改,**agent 再迭代多少轮也解不开**。

⇒ 这四条是 CLR 到 10 分的**关键路径**,且瓶颈在裁决不在工时。

## 我核实过的现状(不看叙述,grep 真实契约)

| 维度 | 原型要什么 | 契约今天有什么 |
|---|---|---|
| D2 编制区 | 每行 = 头像 + 名字 · **角色** + **一句能力描述** + 在场态 | 只有 `duty: z.string()`(非空,I-17:「说不出职责的 agent 等于噪音」)——**一个字段要当两个用** |
| D5 消息身份 | agent 消息带 **角色 chip** + **所用 skill chip** | 同上缺角色;skill 归属未投影到消息 |
| D3 线程列表副行 | **负责 agent** · 时间 · **状态徽标**(转录中 N / N 条待复核 / 已归档) | 线程无「负责 agent」字段;`MessageBadge` 已有 `review-pending`、`archived` 已有 |
| D4 线程头部面包屑 | **项目 / 阶段 / 周次**,不是裸 id | 线程有 `projectId`;**「阶段」「周次」在项目域里根本不存在**(`ThreadPhase` 是 `onsite/research`,是会话类型不是项目阶段) |

## ⚠ 关键判断:这四个缺口性质不同,不该用同一种办法解

- **D2/D5 是「少个字段」**——概念存在(agent 确实有角色),只是契约没建模。
- **D4 是「少个概念」**——「项目阶段/周次」这个领域概念在产品里压根不存在。
凭空加字段去凑面包屑,是拿建模成本换一行 UI,而且会造出一个没人维护的假层级。
- **D3 一半一半**——「状态徽标」大部分可从已有数据派生;「负责 agent」隐含一个
「线程有归属 agent」的领域概念,今天不存在。

**本仓最忌讳的就是为了让界面像原型而造一个没有真实语义的字段**(`chat-ux-acceptance-criteria.md`
第 1 条硬性要求)。所以我不建议四条一律「加字段」。

---

## 裁决项

### D-1|agent 的「角色」(影响 D2 + D5,两维)

| 方案 | 做法 | 优点 | 缺点/风险 |
|---|---|---|---|
| **A(推荐)** | 新增 `role: z.string()` 短标签,`duty` 保留为能力描述 | 与原型逐字对应;chip 显示短标签才好看;两个语义分开后各自可校验 | 契约变更 + 需要写入路径(谁设 role)+ 存量 agent 要回填默认值 |
| B | 复用 `duty` 当角色,不加字段 | 零契约变更,今天就能做 | `duty` 语义是「一句职责」,把一句话塞进 chip 会截断/难看;D2 要求的「角色 + 能力描述」两件事仍然只有一件 |
| C | 从 `duty` 派生短标签(截断/取首句) | 零契约变更 | **编数据**。本仓明令禁止,且派生规则一定会在某些 duty 上出洋相 |

**推荐 A**,理由:这是四条里唯一「概念真实存在、只是没建模」的一条,加字段是诚实的。
配套需要你一并定:① 谁能设 role(建 agent 时必填?admin 后台可改?)② 存量 agent 回填什么。
我的建议是**建 agent 时必填、admin 可改、存量回填为 `duty` 的前 8 字并标记待人工确认**。

### D-2|D3 线程列表副行

| 方案 | 做法 | 优点 | 缺点/风险 |
|---|---|---|---|
| **A(推荐)** | 状态徽标**从已有数据派生**(`review-pending` 计数、`archived`、录音会话活跃态);**不做「负责 agent」** | 全部有真实数据支撑,零新概念;D3 大部分判据能满足 | D3 严格按判据可能仍拿不到满分(少「负责 agent」一项) |
| B | 同时新增 `ownerAgentId` | 完全对齐原型 | 「线程归属某个 agent」这个概念产品里不存在,得先定义:谁指派?能改吗?跟 roster 什么关系?——这是一次产品设计,不是加字段 |
| C | 「负责 agent」= roster 第一个 / 第一个 present 的 | 零成本 | 武断,且会随 roster 变动跳来跳去,用户会认为是 bug |

**推荐 A**,并**接受 D3 暂时拿不满**。理由:为了一个副行去引入「线程归属」这个新领域概念,
代价远超收益;而且一旦引入,它会渗透到权限、通知、交接等一堆地方。

### D-3|D4 面包屑「项目 / 阶段 / 周次」

| 方案 | 做法 | 优点 | 缺点/风险 |
|---|---|---|---|
| **A(推荐)** | 只显示**真实存在的层级**:组织 / 项目名(+ 已有的 `ThreadPhase` 如适用);缺的层级**不显示、不占位** | 诚实;零建模成本;符合「没有真实数据支撑就不做假 UI」 | D4 严格按判据拿不满 |
| B | 建「项目阶段 / 周次」领域模型 | 完全对齐原型 | **几周的工作**,涉及项目域建模、迁移、写入路径、权限;而它服务的只是一行面包屑 |
| C | 面包屑写死成占位文案 | 零成本 | 假 UI,明令禁止 |

**推荐 A**。这条我态度最明确:**原型里的「阶段/周次」是画界面时顺手画上去的,
背后没有产品概念**——ADR-023 建立契约束签核,防的正是这种「后端契约在画界面时被顺手创造」。

---

## 如果你采纳三条推荐,会发生什么

- D2、D5 **可解**(走 D-1 方案 A,一次契约变更)
- D3、D4 **部分可解**,但**按现行判据拿不到满分**

⇒ 直接后果:**V-D 这条 track 在现行判据下到不了 10/10。**

所以还有第四个裁决项:

### D-4|判据本身要不要调(这条只有你能定)

| 方案 | 做法 | 说明 |
|---|---|---|
| **A(推荐)** | 承认「原型有两处超出产品域」,把 D3「负责 agent」与 D4「阶段/周次」从判据中**移除或降级为可选**,并在 rubric 里写明裁决出处 | 让 10 分变成一个**可达**的目标。评分卡自己写着「认为原型不对,写进需要人类裁决一节,不要自行改判据」——这就是那一节 |
| B | 判据不动,接受 V-D 永远 8/10 封顶 | 那么 CLR 也永远到不了 10,「10 分门」失去意义 |
| C | 判据不动,按 D-2/D-3 的方案 B 全建 | 诚实且完整,但要几周,且为一行面包屑建一个项目阶段模型 |

**推荐 A**。理由:10 分门的价值在于它**可达且严格**。一个结构上不可能达到的满分,
会让所有人默认「反正到不了」,门就废了——这比降低标准更危险。

---

## 我需要你回什么

四条各回一个字母即可(A/B/C),或直接说「按推荐走」。
裁决后:D-1 我会按 ADR-023 登记契约束待签核;D-4 的判据修改由**你**改 rubric
(agent 不许改判据),我会把改动位置和措辞准备好给你确认。

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading chat-main-fidelity-rubric.md, chat-ux-acceptance-criteria.md, ADR-023, and the referenced #728 and #814 discussions. Review the D2–D5 gaps and the A/B/C choices, then wait for the human ruling; done means the decisions are recorded in the contract process and any approved rubric changes are explicitly documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend-api-design, design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.