Skip to content

NPC 任务看板(kanban-view)— 产品需求文档

v1.0 · 2026-05-21 · AI Pipeline Factory 生成


一、产品概述与核心价值

产品定位

面向 CNB 多组织多仓库管理者的一站式 NPC 任务看板。聚合 10 个组织的仓库、Issue、积分数据,提供实时可视化的任务进度、积分消耗和仓库健康度监控。

核心价值

  • 全局可视:一个页面看全 10 个组织的 NPC 任务状态
  • 效率提升:免去逐个仓库翻 Issue 的重复操作
  • 成本可控:积分余额实时监控,耗尽预警
  • 质量保障:仓库健康度一览,异常即时发现

二、用户画像与使用场景

目标用户

  • 技术管理者:管理多个 CNB 组织,使用 NPC 完成开发任务

典型场景

  1. 晨会巡检:打开仪表盘,5秒掌握所有组织任务状态
  2. 任务追踪:在看板页筛选特定 NPC 的任务进度
  3. 积分告警:积分余额低于阈值时收到预警
  4. 仓库健康巡检:快速发现长期无提交或积压 PR 的仓库

三、信息架构

kanban-view/
├── /                    → 仪表盘(Dashboard)
├── /tasks               → 任务看板(Task Board)
├── /credits             → 积分监控(Credits Monitor)
├── /repos               → 仓库健康度(Repo Health)
├── /admin               → 管理后台入口
│   ├── /admin/dashboard → 管理概览
│   ├── /admin/dispatch  → 任务派发
│   └── /admin/credits   → 积分管理

四、核心页面清单

用户端(client/)— 4 页,免登录

#页面路由功能描述
1仪表盘/10 组织概览卡片,仓库数/活跃Issue/积分趋势
2任务看板/tasks按组织/仓库/状态筛选 NPC Issue,看板+列表切换
3积分监控/credits各组织 Credits 余额、消耗速度、趋势图
4仓库健康度/repos仓库列表,最近提交、PR 状态、Issue 数

管理后台(admin/)— 3 页

#页面路由功能描述
1管理概览/admin/dashboard任务完成率、NPC响应时间、积分ROI
2任务派发/admin/dispatch选仓库→写需求→开Issue+派NPC
3积分管理/admin/credits查看/调配积分,设置告警阈值

五、关键交互流程

仪表盘

  1. 页面加载 → 并行请求 10 组织数据(TanStack Query)
  2. 每组织一张卡片:名称、仓库数、活跃Issue数、积分余额
  3. 底部:积分消耗趋势折线图(Recharts)

任务看板

  1. 左侧筛选器:组织选择、NPC 选择、状态选择
  2. 主区域:看板视图(待接单 | 进行中 | 已完成)
  3. 点击 Issue 卡片 → 弹窗显示详情(标题、描述、评论数、创建时间)
  4. 支持切换为列表视图

积分监控

  1. 表格:组织名、当前余额、日均消耗、预计耗尽日期
  2. 趋势图:近 7/30 天积分变化曲线
  3. 低于阈值的行标红高亮

仓库健康度

  1. 表格:仓库名、组织、最近提交时间、Open PR数、Open Issue数
  2. 排序:按最后提交时间(升序)找出僵尸仓库
  3. 颜色标注:>7天无提交=黄色,>30天=红色

六、数据模型与 API 设计

数据实体

typescript
interface Organization {
  slug: string;           // cnbdocs, cnbmm, ...
  name: string;           // 显示名
  avatar_url: string;
  repo_count: number;
  credits_balance: number;
}

interface Repository {
  full_name: string;      // cnbmm/linghang
  org_slug: string;
  name: string;
  description: string;
  visibility: string;     // public/private
  updated_at: string;
  open_issues_count: number;
  open_pulls_count: number;
}

interface Issue {
  number: number;
  title: string;
  state: 'open' | 'closed';
  body: string;
  author: { username: string; is_npc: boolean };
  assignees: Array<{ username: string; is_npc: boolean }>;
  comment_count: number;
  created_at: string;
  updated_at: string;
  repository: { full_name: string };
}

interface CreditSnapshot {
  org_slug: string;
  balance: number;
  recorded_at: string;    // ISO datetime
}

后端 API 路由(CloudBase 云函数)

GET /api/orgs                    → 组织列表(含积分)
GET /api/orgs/:slug/repos        → 某组织的仓库列表
GET /api/orgs/:slug/credits      → 某组织积分历史
GET /api/issues                  → 跨组织 Issue 搜索
  ?org=cnbmm&state=open&npc=true
GET /api/repos/:full_name/issues → 单仓库 Issue 列表
GET /api/repos/:full_name/pulls  → 单仓库 PR 列表
GET /api/credits/snapshot        → 全组织积分快照
POST /api/issues/create          → 创建 Issue + 派 NPC(管理后台)

CNB OpenAPI 数据源映射

本地 APICNB API
GET /api/orgsGET /user/orgs + 逐组织 GET /{org}
GET /api/orgs/:slug/reposGET /{org}/-/repos
GET /api/issues逐组织 GET /{org}/-/issues 聚合
GET /api/repos/:name/pullsGET /{repo}/-/pulls

七、技术方案

前端(client/)

  • React 18 + TypeScript + Vite
  • Ant Design 5(组件库)
  • Zustand(状态管理)
  • TanStack Query(数据获取 + 缓存 + 自动刷新,5min staleTime)
  • Recharts(图表)
  • React Router v6(路由)

管理后台(admin/)

  • 同前端技术栈
  • @ant-design/pro-components(ProTable, ProForm)
  • base: '/admin/'

后端(server/)

  • CloudBase 云函数 Node.js 18
  • @cloudbase/node-sdk
  • 内存缓存(Map + TTL,5min 过期)
  • 定时触发器:每小时记录积分快照

部署

  • 前端 + 管理后台:EdgeOne Pages
  • 后端:CloudBase 云函数
  • 域名:taskboard.yunjinhong.cn
  • HTTPS:EdgeOne 自动签发

八、优先级排序

优先级功能说明
P0仪表盘核心入口,最先看到
P0任务看板核心功能
P0后端 API 代理所有数据的基础
P1积分监控成本控制
P1仓库健康度质量保障
P2管理后台 - 任务派发主动操作
P2管理后台 - 积分管理配置管理
P2管理后台 - 数据看板数据分析
P3积分快照定时任务趋势图数据
P3移动端适配响应式布局

九、限制与约束

  1. 免登录:用户端不要求认证,展示公开数据
  2. 数据来源单一:全部来自 CNB OpenAPI,无自建数据库
  3. API 频率限制:需缓存层避免触发 CNB API 限流
  4. 积分数据:CNB API 可能不直接暴露积分余额,需确认接口可用性
  5. 跨域:前端直调 CNB API 会遇到 CORS,必须通过后端代理

十、管理后台需求

任务派发页

  • 选择目标仓库(下拉,支持搜索)
  • 编写需求(Markdown 编辑器)
  • 选择 NPC(@codebuddy / @npc/ui-ux-pro-max / @tencent/cloud/cloudbase/community)
  • 是否开启 work_mode(切换开关)
  • 一键提交 → 调用 CNB API 创建 Issue

积分管理页

  • 表格展示各组织当前积分余额
  • 设置告警阈值(默认 50 Credits)
  • 低于阈值的组织标红
  • 手动刷新积分数据

数据看板页

  • 任务完成率(近 7/30 天)
  • NPC 响应时间统计(平均、P95)
  • 积分消耗排行
  • 仓库活跃度排行

由云锦鸿维护