跳转至

03-24~31:Portal 演进与工作台方向

这一阶段 ClawCraft 的关注点从"游戏化配置界面"扩展到更大的"项目管理门户"方向,开始与 Agent Portal 产生深度关联。

Dad 的关键产品决策

知识拆分为 Skills(03-24)

背景:Clawline 开发部署经验过长,导致上下文污染

决策:把长上下文拆成 6 个 skill - 覆盖部署、维护、模块开发、验证等完整生命周期 - 内容言简意赅,适合 LLM 阅读 - 每个 skill 有明确触发条件

清理 WebBot 长上下文: - 主 session 有 195 条消息 / 401KB - 不直接删,备份到 references/CONTEXT.md.bak

从"按天日报"转向"项目洞察"(03-30~31)

核心问题: - 每天都是一张白纸,没有跨天记忆 - 只能做"回顾型日报",不能做"推进型洞察"

Dad 需要的是: - 当前在做什么 - 做得怎么样 - 下一步怎么推进 - 能按周看 - 能看到产出与入口 - 能继续对话推动执行

关键决策: - 采用"项目视角"而不是"按天视角" - 项目与 bot 是多对多关系 - 门户可新增独立 Projects 入口 - 历史 Mattermost 数据全部可导入

项目对话式管理

问题:状态切换、合并、删除做成一堆按钮,体验差

决策

状态切换、合并、删除等操作都不该做成一堆按钮;应改成"与项目对话"

新交互模型: 1. 用户在门户选中一个项目 2. 输入自然语言指令(如"把这两个合并""改名叫 xxx") 3. 消息 DM 给 bot,由 bot 在后端处理

技术问题与根因分析

多仓库维护模式问题

问题:调试场景下,子 agent 协作存在结构性问题 - 调试链路长,信息在多轮转述中损失 - 子 bot 缺少一手上下文,定位问题慢

解决方案:统一 Clawline 产品维护入口 - 让一个新 bot 统一维护整个 Clawline 的所有代码库 - WebBot 负责 6 个 repo:client-web, channel, sdk, gateway, docs, client-wechat

项目发现数量失控

问题:自动发现出 103 个项目,大部分是噪音

根因: - 项目发现门槛过低 - 增量匹配会把单次小事件也提升为项目 - 缺少"候选项目 / 多日复现后再升级"机制

解决方案: - 模型切换到 gpt-4.1 - Prompt 提高项目门槛 - 加硬规则: - 新发现先标记为 candidate - 只有跨天再次匹配才升级为正式项目 - 最终输出中过滤 candidate

结果:103 → 15 个较准项目

ClawCraft 被自动匹配污染

问题:ClawCraft 里程碑混入了很多不属于该项目的内容

根因:项目匹配不能只靠模糊关键词,否则会把"同生态但不同项目"的事件混入

修复: - 清理错误里程碑 - 修复匹配 prompt,减少未来误归类

门户性能问题

问题:项目列表打不开

根因: - /ap-projects 一次返回 100 个项目的完整 JSON,约 561KB - 包含大量 milestonesrecent_eventsdeliverables

架构启示:列表页与详情页必须拆分 payload。

metadata 整体覆盖事故

典型事故:给 Daily Digest 写 artifacts 时,PATCH 直接覆盖整个 metadata,导致 involved_botsmilestones 被清空

根因:多个写入路径都把 metadata 当整体对象 PATCH,而不是字段级 merge

经验: - metadata 必须做 merge,不可整体覆盖 - 需要明确"谁拥有哪些 metadata 字段"的边界

解决方案

curated 保护机制

问题:手工整理的项目会被 pipeline 再次弄乱

设计原则: - 在匹配前同步 Supabase 中的 curated 标记到本地缓存 - 对 curated 项目,只允许追加里程碑,不允许改名称/描述/状态/bots - push_projects 推送时跳过 curated 项目

涉及模块: - project_tracker.py - apply_match_results - match_events_to_projects - push_projects

多维护 bot 支持

需求:Clawline 项目需要显示两个主维护 bot

方案: - 不改表结构 - 在 metadata 中增加 maintainers 数组 - 由 portalbot 在卡片上渲染

刷新机制

初始问题:门户"更新慢"

错误方案:刷新按钮只重新 fetch Supabase 数据

正确方案: 1. 刷新按钮 → 给 bot 发 DM 2. bot 本地跑 pipeline 3. 更新 Supabase 4. 前端刷新

选型理由:避免打通远程到本地网络端口,改用消息驱动触发。

项目看板 React Flow

展示需求: - 右侧不要列表,要从左到右展开 - 更像真正流程图 - Category 节点可折叠

技术选型:React Flow

遇到的问题: - dagre 布局导致节点坐标异常 - fitView 未正确生效 - 节点全部堆叠

根因getNodeSize 返回共享对象引用,影响 dagre setNode

里程碑

03-24

  • [x] 将 Clawline 开发部署经验拆成 6 个 skill
  • [x] WebBot 成为唯一 Clawline 维护 bot
  • [x] 清理 WebBot 长上下文

03-25~29

  • [x] 消息通知全链路分析
  • [x] Dashboard 收集与服务器健康检查合并
  • [x] Portal 前端同步改造

03-30

  • [x] ClawCraft 洞察门户方向明确
  • [x] 项目发现与洞察 pipeline 建立
  • [x] Mattermost → Supabase → Portal 链路跑通
  • [x] 修复采集日期过滤、分页去重、模型参数等 bug
  • [x] 建立 AP_botsAP_daily_insightsAP_projects

03-31

  • [x] 从"按 bot 日报"演进到"项目看板 + 项目洞察"
  • [x] 项目发现从 103 收敛到 15 个
  • [x] curated 保护机制实现
  • [x] 项目对话式管理框架建立
  • [x] React Flow 流程图集成

关键配置

cron 调度

30 9,13,17,21,23 * * *

人工保护标记

{
  "metadata": {
    "curated": true
  }
}

多维护 bot

{
  "metadata": {
    "maintainers": ["webbot", "小蛛"]
  }
}