Skip to content

研发团队度量洞察 玩法指南

Rabetbase CLI 把团队所有的 SQL、BFF、数据集变成了可查询的结构化数据资产。它不只是帮开发者提效的工具——更是一套业务流程 AI 化的基础设施。当所有研发行为都沉淀在平台,AI 就能回答过去只能靠人工判断的问题:谁的代码复用率最高?谁在重复造轮子?架构债务藏在哪里?团队贡献如何量化?

本质上,这是用 AI 持续洞察团队健康度、保障架构一致性、发现协作盲区——而不是依赖主观评估或事后复盘。本手册是给 AI Agent 的执行指南,当用户提出以下类型的请求时,AI 按对应路径执行。


Case 1:分析 SQL 复用情况

用户 Prompt 示例:

"分析一下团队 SQL 复用情况""哪些 SQL 被多个 BFF 引用了""有没有孤岛 SQL"

AI 执行路径:

Bash
# Step 1: 拿 SQL 清单
rabetbase sql list --format json > /tmp/sql_list.json

# Step 2: 拿 BFF 清单,遍历每个 BFF 的代码,搜索 SQL 引用
rabetbase bff list --format json | jq -r '.[].id' | while read id; do
  CODE=$(rabetbase bff detail "$id" --format json | jq -r '.code // ""')
  echo "=== BFF: $id ==="
  for sql in $(cat /tmp/sql_list.json | jq -r '.[].sqlCode'); do
    echo "$CODE" | grep -q "$sql" && echo "  -> $sql"
  done
done

输出格式:

Plain
SQL 复用率:
┌──────────────────┬───────┬──────────────────┐
│ SQL              │ 引用数 │ 等级             │
├──────────────────┼───────┼──────────────────┤
│ get_user_profile │   8   │ ⭐⭐⭐ 核心资产   │
│ get_order_list   │   5   │ ⭐⭐ 高复用      │
│ debug_v3         │   1   │ ⚠️ 孤岛         │
└──────────────────┴───────┴──────────────────┘

Case 2:检测重复 BFF 代码(DRY 违规)

用户 Prompt 示例:

"有没有重复的 BFF 代码""哪几个 BFF 长得差不多""DRY 违规有哪些"

AI 执行路径:

Bash
# 收集所有 BFF 代码到文件
rabetbase bff list --format json | jq -r '.[].id' | while read id; do
  NAME=$(rabetbase bff detail "$id" --format json | jq -r '.name')
  CODE=$(rabetbase bff detail "$id" --format json | jq -r '.code // ""')
  echo "=== $NAME ===" >> /tmp/bff_all.txt
  echo "$CODE" >> /tmp/bff_all.txt
  echo "" >> /tmp/bff_all.txt
done

然后在 Claude Code 里用 Python 做相似度比对:

Python
import subprocess, json, difflib

bff_list = json.loads(subprocess.run(
    ['rabetbase', 'bff', 'list', '--format', 'json'], capture_output=True, text=True
).stdout)

bffs = {}
for b in bff_list:
    detail = json.loads(subprocess.run(
        ['rabetbase', 'bff', 'detail', b['id'], '--format', 'json'],
        capture_output=True, text=True
    ).stdout)
    bffs[b['name']] = detail.get('code', '')

for name_a, code_a in bffs.items():
    for name_b, code_b in bffs.items():
        if name_a >= name_b: continue
        ratio = difflib.SequenceMatcher(None, code_a, code_b).ratio()
        if ratio > 0.7:
            print(f"⚠️ DRY违规: {name_a} <-> {name_b} (相似度 {ratio:.0%})")

输出格式:

Plain
⚠️ DRY 违规:
- user/listHandler.ts <-> user/listV2.ts (82%)
- order/priceCalc.ts <-> order/priceCalcLegacy.ts (91%)

Case 3:看团队数据模型全貌

用户 Prompt 示例:

"团队有哪些数据集""数据集之间的关联是什么""有没有孤岛数据集"

AI 执行路径:

Bash
# 数据集清单
rabetbase dataset list --format json | jq '.'

# 数据集关联图(PK/FK/JOIN)
rabetbase dataset links --format json | jq '.'

找孤岛数据集(无任何关联):

Bash
rabetbase dataset links --format json | jq '
  [.datasets[] |
   select(. as $ds |
     [.links[] |
       select(.fromDataset == $ds.name or .toDataset == $ds.name)] |
       length == 0
   ) |
   .name
  ]
'

Case 4:团队贡献统计(按人聚合)

用户 Prompt 示例:

"团队谁写的 SQL 最多""这周新增了多少 BFF""每个人贡献了多少代码"

AI 执行路径:

Bash
# SQL 按创建者聚合
rabetbase sql list --format json | jq '
  group_by(.createdBy // "未知") |
  map({author: .[0].createdBy, count: length, sqlCodes: [.[]|.sqlCode]})
'

# BFF 按创建者聚合
rabetbase bff list --format json | jq '
  group_by(.createdBy // "未知") |
  map({author: .[0].createdBy, count: length, bffIds: [.[]|.id]})
'

输出格式:

Plain
贡献热力图:
┌──────────┬───────┬───────┐
│ 开发者   │ SQL数 │ BFF数 │
├──────────┼───────┼───────┤
│ zhangsan │  12   │   8   │
│ lisi     │   9   │   5   │
│ 未标注   │  20   │   7   │
└──────────┴───────┴───────┘

Case 5:搜索现成方案

用户 Prompt 示例:

"有没有现成的订单 SQL""有没有用户相关的 BFF""搜索所有含 xxx 的数据集"

AI 执行路径:

Bash
# 搜索 SQL
rabetbase sql list --format json | jq '
  [.[] | select(.sqlCode | test("订单|order"; "i"))]
'

# 搜索 BFF
rabetbase bff list --format json | jq '
  [.[] | select(.name | test("用户|user"; "i"))]
'

# 搜索数据集
rabetbase dataset list --format json | jq '
  [.[] | select(.name | test("营销|campaign"; "i"))]
'

Case 6:快速摸底团队资产(新手 onboarding)

用户 Prompt 示例:

"快速了解团队研发情况""团队有哪些资产""给我一个全局概览"

AI 执行路径:

Bash
# 一口气拉全量数据
rabetbase sql list --format json > /tmp/sql.json
rabetbase bff list --format json > /tmp/bff.json
rabetbase dataset list --format json > /tmp/dataset.json
rabetbase dataset links --format json > /tmp/links.json

# 统计
echo "=== 团队资产概览 ==="
echo "SQL 总数:    $(jq 'length' /tmp/sql.json)"
echo "BFF 总数:    $(jq 'length' /tmp/bff.json)"
echo "数据集总数:  $(jq 'length' /tmp/dataset.json)"
echo "数据集关联:  $(jq '[.links] | flatten | length' /tmp/links.json)"

Case 7:BFF 依赖了哪些数据集

用户 Prompt 示例:

"某个 BFF 用了哪些数据集""getUserProfile 这个 BFF 依赖什么数据"

AI 执行路径:

Bash
# 先找 BFF ID
rabetbase bff list --format json | jq '.[] | {name, id}'

# 看单个 BFF 详情(包含代码内容)
rabetbase bff detail <bff-id> --format json | jq '{name, code}'

在代码里搜索 dataset_ 前缀或数据集名称的引用即可定位依赖。


通用前置:确认环境和登录

以上所有 Case,执行前必须先确认:

Bash
# 检查登录
rabetbase auth login 2>&1 | head -3

# 确认当前应用
rabetbase app list
rabetbase app use --appcode <目标应>

本文档供 AI Agent 执行研发洞察时参考使用 | 基于 rabetbase-cli 现有命令

基于飞书知识库同步生成,内容以飞书源文档为准