# KOC LOOP 数据回收标题跳转设计 QA

## 验证对象

- 用户参考截图：`/var/folders/0g/8yrmts9s7v5g_xc60sxx0__80000gn/T/codex-clipboard-2296f03e-e79b-494c-b745-08e939fc20c6.png`
- 浏览器实现截图：`/private/tmp/koc-loop-recovery-title-link-focused.png`
- 参考与实现并排对照：`/private/tmp/koc-loop-recovery-title-link-comparison.png`
- 本地页面：`http://localhost:8080/`

## 环境与状态

- CSS 视口：1278 × 692，桌面布局
- 用户参考截图：2556 × 1384，按 2:1 密度归一为 1278 × 692
- 实现截图：1278 × 692
- 页面状态：数据回收 → 美团医美-备婚 → 数据回收队列
- 交互状态：已回填短链的第一条标题获得键盘焦点；两条未回填记录保持普通文本

## 完整画面对比

- 信息架构、侧栏、采集计划和数据回收表格继续沿用现有界面，没有新增路由或改变表格列宽。
- 已回填标题使用现有绿色交互色，聚焦时显示清晰但克制的描边；未回填标题仍为黑色普通文本。
- 参考图中的目标区域与实现截图在同一张并排对照图中检查，未发现遮挡、换行异常或列错位。

## 聚焦区域检查

- 字体与层级：标题字号、字重和省略规则保持不变，仅为可点击标题增加语义色和 hover/focus 状态。
- 间距与布局：链接仍受原有 310px 最大宽度约束，头像、账号副标题和相邻数据列未发生位移。
- 颜色与状态：绿色与现有按钮、成功状态色一致；键盘焦点轮廓可见。
- 图片质量：创作者截图缩略图未受本次改动影响，仍保持原比例显示。
- 文案内容：标题原文、账号名称、平台信息和采集数据均保持不变。

## 功能验证

- 当前任务中识别到 1 条可点击标题，`href` 为已回填的 `http://xhslink.cn/o/9qOYiD3Iu8K`，`target=_blank`。
- 点击标题后短链成功跳转并解析为小红书笔记详情页。
- 另外 2 条没有发布链接的标题不是链接，避免误导点击。
- 链接仅允许小红书正式域名和 `xhslink.cn` / `xhslink.com` 短链域名，其他协议或域名不会渲染为链接。
- 后台浏览器控制台无 warning/error。
- Docker 生产构建通过；相关静态验收测试 12 项全部通过。

## 迭代记录

1. 初次浏览器验收发现第一条发布链接为 `xhslink.cn`，而前端白名单只包含 `xhslink.com`，因此标题仍是普通文本。
2. 补充 `xhslink.cn` 及其子域名白名单，保留 HTTP/HTTPS 与小红书域名边界。
3. 重新构建后，浏览器识别到 1 条可点击标题；点击实际打开对应小红书页面，未回填行仍不可点击。

final result: passed

---

# KOC LOOP 任务筛选常驻搜索框设计 QA

## 验证对象

- 用户目标截图：`/var/folders/0g/8yrmts9s7v5g_xc60sxx0__80000gn/T/codex-clipboard-67b0b080-8ea8-4504-82eb-348e8cf4ec19.png`
- 浏览器实现截图：`/private/tmp/koc-distributions-direct-search.png`
- CSS 视口：842 × 778，设备像素比 2
- 本地页面：`http://localhost:8080/?nav=distributions`

## 调整结果

1. 品牌/项目、内容类型、平台不再使用“先点下拉、再输入搜索”的两层结构，筛选栏直接展示三个可输入的搜索框。
2. 输入内容时立即进行模糊筛选；聚焦或输入后，下方仅展示匹配候选项，不再重复显示第二个搜索框。
3. 宽屏下四个搜索框保持同一行；当前窄视口下任务名称独占一行，三个分类搜索保持在下一行，不互相遮挡。
4. 保留键盘与无障碍语义，三个分类搜索均使用 `combobox`，候选项使用 `listbox` / `option`。

## 功能验证

- 默认展示 6 个任务。
- 品牌/项目直接输入“美团”后，候选项仅显示“美团”和“美团医美”，任务结果同步缩小为 2 个。
- 清空输入后恢复 6 个任务。
- 静态验收测试 14 项全部通过，正式构建通过；本地 Docker 应用已重新构建并加载新页面。

final result: passed

---

# KOC LOOP 任务筛选下拉遮挡设计 QA

## 验证对象

- 用户问题截图：`/var/folders/0g/8yrmts9s7v5g_xc60sxx0__80000gn/T/codex-clipboard-bd2d14b7-472f-43a5-b997-1b6ff9528ba1.png`
- 浏览器实现截图：`/Users/wufp/Documents/koc-loop/design-qa-inline-filter.png`
- 修复前后并排对照：`/Users/wufp/Documents/koc-loop/design-qa-inline-filter-comparison.png`
- CSS 视口：1280 × 720，设备像素比 2
- 本地页面：`http://localhost:8080/?nav=distributions`

## 问题与调整

1. 之前仍使用浏览器原生 `select`，系统级下拉层会悬浮在页面上，因此即使搜索框本身布局正常，展开菜单仍会遮住搜索区或任务卡片。
2. 品牌/项目、内容类型、平台三个筛选器改为页面内选择面板，面板使用正常文档流布局，展开时把任务卡片向下推。
3. 同一时间只展开一个筛选器；选择选项后自动收起，并保留键盘焦点、`aria-expanded`、`listbox` 和 `option` 语义。

## 布局与功能验证

- 内容类型面板展开后：面板 `position: static`，搜索框底部为 379px，面板顶部为 388px，两者无重叠。
- 第一张任务卡片顶部为 480px，面板底部为 452px，任务卡片位于面板下方，未被覆盖。
- 选择“视频”后面板自动收起，任务数由 6 个缩小为 1 个；清空筛选后恢复 6 个任务。
- 浏览器实测搜索框、三个筛选按钮和任务卡片均可正常操作，交互过程中未出现页面报错。
- TypeScript 构建、静态验收及共 65 项测试全部通过；本地 Docker 服务已重新构建并通过健康检查。

final result: passed

---

# KOC LOOP 任务分发筛选栏设计 QA

## 验证对象

- 用户问题截图：`/var/folders/0g/8yrmts9s7v5g_xc60sxx0__80000gn/T/codex-clipboard-4c32c7e3-58e0-4262-b625-c02b20ec4490.png`
- 浏览器实现截图：`/Users/wufp/Documents/koc-loop/design-qa-implementation.png`
- 修复前后并排对照：`/Users/wufp/Documents/koc-loop/design-qa-comparison.png`
- CSS 视口：1280 × 720
- 本地页面：`http://localhost:8080/?nav=distributions`

## 问题与调整

1. 全局 `label` 布局把搜索图标和输入框纵向堆叠，导致搜索框被拆成上下两层。
2. 搜索框现在显式使用横向布局，并清除继承的外边距；图标使用固定宽度居中对齐。
3. 品牌/项目下拉框加宽，选中值和下拉菜单锚点保持稳定，不再挤压搜索区域。

## 功能验证

- 输入“视频”后，结果从 6 个任务缩小为 1 个任务，筛选栏没有发生错位。
- 清空搜索后恢复展示 6 个任务。
- 浏览器控制台无错误。
- TypeScript、静态验收测试和正式构建均通过。
- 本地 Docker 服务已重建并通过健康检查。

final result: passed

---

# KOC LOOP 可搜索任务筛选浮层设计 QA

## 验证对象

- 参考截图：`/var/folders/0g/8yrmts9s7v5g_xc60sxx0__80000gn/T/codex-clipboard-fc7ce949-d8ea-4a3b-afa6-04a778fdb8dc.png`
- 浏览器实现截图：`/Users/wufp/Documents/koc-loop/design-qa-current-filter.png`
- 参考与实现并排对照：`/Users/wufp/Documents/koc-loop/design-qa-filter-comparison.png`
- 本地页面：`http://localhost:8080/?nav=distributions`

## 布局与交互验证

- 品牌/项目、内容类型、平台均改为紧凑的页面内浮层，不再使用系统原生下拉，也不会把任务卡片整体向下推。
- 浮层锚定在当前筛选按钮下方，宽度与筛选控件协调，未遮挡任务名称搜索框及其他筛选按钮。
- 浮层顶部支持输入模糊查询；输入“医”后只显示“美团医美”，可继续点击完成筛选。
- 同一时间只展开一个筛选器，支持点击页面其他位置或按 Esc 收起。
- 浏览器实测筛选栏、任务卡片和按钮均保持稳定，没有布局跳动。

## 数据修复验证

- 抖音作品重新采集后获得点赞 5,684、收藏 565、转发 6,878、评论 332。
- 抖音主页链接改用短链跳转携带的真实 `sec_uid`，不再用数字内部用户 ID 拼接主页。
- MCP 的公开主页解析对当前账号仍返回资源不存在，因此公开抖音号、粉丝数和 IP 暂时保持待识别，不再写入错误数据。
- 相关自动化测试共 67 项全部通过，本地 Docker 服务已重建并通过健康检查。

final result: passed
# KOC LOOP 任务分发横向搜索框设计 QA

## 验证对象

- 用户问题截图：`codex-clipboard-252bf483-c3d1-4d70-abfb-d54587a300a2.png`
- 浏览器实现截图：`/private/tmp/koc-loop-distribution-filters-fixed.png`
- 本地页面：`http://localhost:8080/?nav=distributions`

## 问题与调整

1. 品牌/项目、内容类型、平台三个筛选框使用通用表单标签，继承了纵向排列样式，导致图标和提示文字上下分离。
2. 筛选框改为独立容器，并显式使用横向排列和垂直居中。
3. 保留原有模糊搜索、筛选逻辑及整体视觉规范。

## 布局与功能验证

- 三个筛选框内图标、输入文字与容器的垂直中心误差均为 0px。
- 四个搜索框保持同排展示，无相互遮挡、无异常换行、无额外浮层。
- 项目构建通过；页面渲染测试 14/14 通过；本地 Docker 运行版本已更新。

最终结果：通过。

---

# KOC LOOP KOC资源卡片密度优化设计 QA

## 验证对象

- 参考卡片：`/var/folders/0g/8yrmts9s7v5g_xc60sxx0__80000gn/T/codex-clipboard-615400a6-0bd1-4110-b280-f7fdc29bf705.png`
- 原页面参考：`/var/folders/0g/8yrmts9s7v5g_xc60sxx0__80000gn/T/codex-clipboard-5bf2bfb5-a50e-4c08-a407-192fdcf20b58.png`
- 第一轮实现截图：`/Users/wufp/Documents/koc-loop/design-qa-resource-cards-v2.png`
- 最终浏览器截图：`/Users/wufp/Documents/koc-loop/design-qa-resource-cards-final.png`
- 聚焦卡片并排对照：`/Users/wufp/Documents/koc-loop/design-qa-resource-card-comparison.png`
- 本地页面：`http://localhost:8080/`，KOC资源状态

## 环境与归一化

- CSS 视口：1280 × 720；设备像素比 2；浏览器截图按 1280 × 720 CSS 像素输出。
- 参考卡片像素：478 × 700；最终完整页面截图：1280 × 720。
- 聚焦对照将实现中的 304px 宽卡片等比放大到 478px，并与参考卡片并排查看；没有把两张独立截图当作同一对比证据。
- 桌面状态为三列卡片；同时验证 960px 两列、640px 一列。

## 完整画面对比

- 信息架构采用参考图的“头像 → 身份信息 → 简介 → 标签”顺序，同时保留 KOC LOOP 原有的粉丝、合作发布、合作来源和主页入口。
- 卡片高度由旧版的大块分区缩短到首屏实测约 274—278px；三列宽度均为 304px，页面没有横向溢出。
- 小红书使用粉红顶部识别线和柔和粉色标签，抖音使用深色顶部识别线，继续沿用现有平台标识。

## 聚焦区域检查

- 字体与层级：昵称 14px 并提高字重；账号号、属地、标签和数据从第一轮偏小的 8px 提升至 9—11px，信息仍紧凑但可读性更好。
- 间距与布局：圆形头像、昵称与性别保持同一视觉组；账号号、平台和属地收进头像右侧；粉丝、合作发布、最近合作合并为一条浅底数据栏。
- 颜色与视觉标记：标签颜色与平台呼应，状态对比足够；卡片 hover 只使用轻微位移和阴影，不改变布局。
- 图片与资产：当前账号数据没有头像 URL，因此保留现有首字母头像作为明确的数据缺失状态，没有伪造真人头像；平台标识继续使用项目已有资产。
- 文案与内容：真实简介最多展示三行；“未填写简介”“还没有简介”等占位内容统一折叠为“暂无简介”；无标签显示“待打标”；合作来源和主页入口合并到底部同一行。

## 交互与响应式验证

- 输入标签“美食探店”后，结果正确缩小为 3 个账号；清空后恢复完整列表。
- 主页入口保持可见并保留现有跳转目标；首屏六张卡片均检测到有效入口文案。
- 960px 视口为两列，640px 视口为一列，两个断点均无横向溢出。
- 浏览器控制台无 error；本地应用、MySQL、Nginx 均正常运行。
- 正式构建及完整自动化测试通过，共 82 项，无失败。

## 迭代记录

1. 第一轮已完成资料卡层级和高度压缩，但聚焦截图显示辅助文字偏小，无简介账号的底部留白仍较明显，记为 P2。
2. 第二轮提高辅助文字字号，移除固定最小高度，并把合作来源与主页入口合并为同一底栏。
3. 复查后卡片高度稳定在约 274—278px，关键内容可读，桌面与移动断点无溢出；先前 P2 已解决。

## 结论

- 没有遗留 P0、P1 或 P2 问题。
- P3 后续项：如果 MCP 未来提供可靠头像 URL，可将首字母头像替换成真实头像，进一步接近参考图。

final result: passed

---

# KOC LOOP KOC资源卡片底栏对齐设计 QA

## 验证对象

- 用户标注截图：`/var/folders/0g/8yrmts9s7v5g_xc60sxx0__80000gn/T/codex-clipboard-fa2c031d-52ba-4ef5-bd70-2bf74adfa52d.png`
- 最终浏览器截图：`/Users/wufp/Documents/koc-loop/design-qa-resource-card-alignment-final.png`
- 归一化并排对照：`/Users/wufp/Documents/koc-loop/design-qa-resource-card-alignment-comparison.png`
- 本地页面：`http://localhost:8080/?nav=resources`

## 问题与调整

1. 不同账号的简介和标签数量不一致时，合作来源与主页入口会跟随前方内容上下浮动，导致同一排卡片的底部结构不齐。
2. 卡片保持纵向弹性布局，底栏改为自动占用剩余空间并贴住卡片底部；不增加固定高度，不改变数据或交互逻辑。
3. 三列桌面视口下实测前三张卡片高度均为 267.9px，底栏顶部均为 333.4px，底栏底部均为 365.9px，误差为 0px。

## 验证结果

- CSS 视口：1280 × 720；三列卡片状态。
- 不同简介、标签数量下，合作来源、来源标签和主页入口保持同一条水平基线。
- 浏览器控制台无 error；页面 hover 位移不会改变静止状态的布局基线。
- 页面渲染测试与 TypeScript 检查通过；本地 Docker 已重建。

final result: passed

---

# KOC LOOP KOC资源卡片数据栏对齐设计 QA

## 验证对象

- 用户标注截图：`/var/folders/0g/8yrmts9s7v5g_xc60sxx0__80000gn/T/codex-clipboard-78335120-710a-4a7b-96f9-b1046191c788.png`
- 双列实现截图：`/Users/wufp/Documents/koc-loop/design-qa-resource-card-metrics-alignment-two-column.png`
- 三列实现截图：`/Users/wufp/Documents/koc-loop/design-qa-resource-card-metrics-alignment-final.png`
- 归一化并排对照：`/Users/wufp/Documents/koc-loop/design-qa-resource-card-metrics-alignment-comparison.png`
- 本地页面：`http://localhost:8080/?nav=resources`

## 环境与归一化

- 用户截图为 1674 × 1180px；双列实现截图为 837 × 591px。
- 并排对照将用户截图归一化为 837 × 591px，与实现截图使用同一双列宽度和页面状态进行聚焦比较。
- 同时在 1280 × 720 三列桌面视口复测，确认调整不依赖双列断点。

## 问题与调整

1. 先前仅把合作来源底栏贴底，数据栏仍跟随简介和标签数量上下浮动，形成 P2 对齐问题。
2. 将弹性留白移动到标签区之后，数据栏与合作来源底栏作为一个完整结构贴住卡片底部；数据内容、标签和交互均未改动。

## 验证结果

- 双列第一排两张卡片的数据栏顶部均为 233.4px、底部均为 267.9px；底栏顶部均为 277.9px、底部均为 310.4px。
- 双列第二排两张卡片的数据栏顶部均为 525.3px、底部均为 559.8px；底栏顶部均为 569.8px、底部均为 602.3px。
- 三列前三张卡片的数据栏与底栏上下边界误差均为 0px。
- 字体、颜色、图片资产和文案未发生变化；浏览器控制台无 error。
- 页面渲染测试 14/14、TypeScript 检查和 Docker 构建均通过。

final result: passed
