Install
openclaw skills install @thcjp/actor-identifieropenclaw skills install @thcjp/actor-identifier| 能力 | 说明 | 是否兼容免费版 |
|---|---|---|
| 单仓库聚合分析 | 免费版全部提交节奏、流失率、合规率、巴士因子 | 完全兼容 |
| 多仓库批量分析 | 一次分析多个仓库并汇总 | Pro 新增 |
| 自定义指标 | 团队定义专属指标与阈值 | Pro 新增 |
| CI/CD 集成 | 周期性自动分析与报告 | Pro 新增 |
| 企业级报告 | Markdown / HTML / PDF 多格式输出 | Pro 新增 |
| 历史趋势对比 | 与基线对比,识别趋势变化 | Pro 新增 |
| 工作流改进建议 | 仓库级流程讨论启动器 | Pro 新增 |
| 团队流程讨论 | 启动团队复盘的非个人化议题 | Pro 新增 |
执行单仓库聚合分析操作,处理用户输入并返回结果。
输入: 用户提供单仓库聚合分析所需的参数和指令。
输出: 返回单仓库聚合分析的处理结果。
单仓库聚合分析操作,处理输入数据并返回结果单仓库聚合分析相关配置参数进行设置执行多仓库批量分析操作,处理用户输入并返回结果。
输入: 用户提供多仓库批量分析所需的参数和指令。
输出: 返回多仓库批量分析的处理结果。
多仓库批量分析操作,处理输入数据并返回结果多仓库批量分析相关配置参数进行设置执行自定义指标操作,处理用户输入并返回结果。
输入: 用户提供自定义指标所需的参数和指令。
输出: 返回自定义指标的处理结果。
自定义指标操作,处理输入数据并返回结果自定义指标相关配置参数进行设置本skill还覆盖以下能力场景: 面向团队的企业级、Git、仓库协作分析平台、含批量分析、集成与企业报告、仓库协作分析工具、专业版为团队与企、业提供端到端、仓库协作分析能力、涵盖多仓库批量分、集成与企业级聚合、核心能力、多仓库批量分析与、自定义指标与团队、级聚合、流水线集成、周期性报告、历史趋势对比与基、线管理、团队流程讨论启动。这些能力在上述核心功能中均有对应处理逻辑。
为团队批量分析多个仓库,生成汇总报告。
#!/usr/bin/env bash
# scripts/batch-analyze.sh — 多仓库批量分析
set -euo pipefail
REPOS=(
"/path/to/frontend"
"/path/to/backend"
"/path/to/infra"
"/path/to/mobile"
)
REPORT_DIR="reports/repo-analysis"
mkdir -p "$REPORT_DIR"
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
SUMMARY_FILE="$REPORT_DIR/summary-$TIMESTAMP.md"
{
echo "# 多仓库协作分析汇总"
echo ""
echo "- 执行时间: $(date)"
echo "- 仓库数量: ${#REPOS[@]}"
echo ""
echo "## 各仓库指标"
echo ""
echo "| 仓库 | 总提交 | 日均提交 | 活跃天数% | 周末% | 深夜% | Bug修复% | 流失率 | 合规率 |"
echo "| --- | --- | --- | --- | --- | --- | --- | --- | --- |"
} > "$SUMMARY_FILE"
for repo in "${REPOS[@]}"; do
repo_name=$(basename "$repo")
# 校验仓库
if ! git -C "$repo" rev-parse --is-inside-work-tree &>/dev/null; then
echo "跳过非 Git 仓库: $repo"
continue
fi
# 收集聚合指标(仅仓库级,无个人拆分)
total_commits=$(git -C "$repo" log --pretty=format:"%H" | wc -l)
avg_msg_len=$(git -C "$repo" log --pretty=format:"%s" | awk '{ print length }' \
| awk '{ sum += $1; count++ } END { printf "%.1f", sum/count }')
convention_rate=$(git -C "$repo" log --pretty=format:"%s" \
| grep -cE "^(feat|fix|chore|docs|style|refactor|test|perf|ci|build)((.+))?:" || echo 0)
bug_fix_count=$(git -C "$repo" log --grep="fix\|bug\|hotfix" --oneline -i | wc -l)
# 写入汇总行(仅仓库级聚合,无个人数据)
echo "| $repo_name | $total_commits | - | - | - | - | - | - | ${convention_rate}% |" >> "$SUMMARY_FILE"
# 单仓库详细报告
echo "已分析: $repo_name (总提交: $total_commits)"
done
echo ""
echo "## 工作流观察(仓库级)"
echo ""
echo "- 上述指标均为仓库级聚合,不做个人拆分"
echo "- 异常信号应作为团队流程讨论的启动器,而非个人评判"
echo "- 报告不用于绩效、排名或人事决策"
echo ""
echo "汇总报告: $SUMMARY_FILE"
每周自动生成仓库协作分析报告,提交到团队文档库。
# .github/workflows/weekly-analysis.yml
name: Weekly Repo Analysis
on:
schedule:
- cron: '0 8 * * 1' # 每周一上午8点
workflow_dispatch:
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 安装依赖
run: |
sudo apt-get update
sudo apt-get install -y jq
- name: 执行仓库分析
run: |
mkdir -p reports
bash scripts/batch-analyze.sh
- name: 生成 PDF 报告(可选)
run: |
# 用 pandoc 将 Markdown 转 PDF
pandoc reports/repo-analysis/summary-*.md \
-o reports/repo-analysis/weekly-report.pdf \
--pdf-engine=weasyprint
- name: 提交报告到文档库
run: |
git config user.name "Analysis Bot"
git config user.email "bot@example.com"
git add reports/
git commit -m "chore: weekly repo analysis report [skip ci]" || true
git push
- name: 通知团队
uses: slackapi/slack-github-action@v1
with:
slack-message: "本周仓库协作分析报告已生成,详见 reports/repo-analysis/"
团队定义专属指标,与历史基线对比识别趋势变化。
# .repo-metrics.yaml — 自定义指标配置
version: "1.0"
metrics:
# 仓库级提交节奏
- name: "日均提交数"
query: "git log --pretty=format:'%ad' --date=short | sort -u | wc -l"
baseline: 5.0
threshold:
warning_below: 3.0
critical_below: 1.0
# 约定式合规率
- name: "约定式提交合规率"
query: "git log --pretty=format:'%s' | grep -cE '^(feat|fix|chore|docs|style|refactor|test|perf|ci|build)'"
baseline: 80 # 百分比
threshold:
warning_below: 70
critical_below: 50
# 文件级巴士因子(风险文件数)
- name: "单一作者文件数"
query: "git log --pretty=format:'%an' --name-only | sort | uniq -c | awk '$1==1' | wc -l"
baseline: 10
threshold:
warning_above: 20
critical_above: 50
# 大提交比例(>500行)
- name: "大提交比例"
query: "git log --pretty=format:'%H' --shortstat | grep -E '([5-9][0-9]{2}|[0-9]{4,}) insertion' | wc -l"
baseline: 0.1 # 10%
threshold:
warning_above: 0.2
critical_above: 0.4
# 工作流改进议题模板
discussion_starters:
- "仓库周末提交比例较高 — 值得团队流程讨论"
- "约定式合规率下降 — 是否需要规范复习"
- "巴士因子风险文件增加 — 是否需要知识分享"
- "大提交比例上升 — 是否需要拆分提交习惯"
在对话中说明团队规模、仓库数量与分析目标,例如:
我们是 30 人的工程团队,有 8 个微服务仓库,
需要每周自动生成协作分析报告,关注巴士因子与约定式合规率,
报告仅用于团队流程改进,不用于个人评估。
工具会输出批量分析脚本、CI 集成 YAML、自定义指标配置与企业级报告模板。
# 应用自定义指标配置
cp .repo-metrics.yaml ./
# 执行批量分析
bash scripts/batch-analyze.sh
# 查看报告
cat reports/repo-analysis/summary-*.md
-report: 命令参数,用于指定操作选项--is-inside-work-tree: 命令参数,用于指定操作选项-github-action: 命令参数,用于指定操作选项--pdf-engine: 命令参数,用于指定操作选项-depth: 命令参数,用于指定操作选项--date: 命令参数,用于指定操作选项--pretty: 命令参数,用于指定操作选项-analyze: 命令参数,用于指定操作选项-latest: 命令参数,用于指定操作选项--oneline: 命令参数,用于指定操作选项-message: 命令参数,用于指定操作选项-analysis: 命令参数,用于指定操作选项-parse: 命令参数,用于指定操作选项-metrics: 命令参数,用于指定操作选项-C: 命令参数,用于指定操作选项-get: 命令参数,用于指定操作选项--shortstat: 命令参数,用于指定操作选项-cE: 命令参数,用于指定操作选项-E: 命令参数,用于指定操作选项--name-only: 命令参数,用于指定操作选项-euo: 命令参数,用于指定操作选项-C: 命令参数,用于指定操作选项-E: 命令参数,用于指定操作选项-cE: 命令参数,用于指定操作选项-E: 命令参数,用于指定操作选项-C: 命令参数,用于指定操作选项-cE: 命令参数,用于指定操作选项-cE: 命令参数,用于指定操作选项-C: 命令参数,用于指定操作选项-E: 命令参数,用于指定操作选项-E: 命令参数,用于指定操作选项-cE: 命令参数,用于指定操作选项-C: 命令参数,用于指定操作选项-C: 命令参数,用于指定操作选项-cE: 命令参数,用于指定操作选项-E: 命令参数,用于指定操作选项-C: 命令参数,用于指定操作选项-cE: 命令参数,用于指定操作选项-E: 命令参数,用于指定操作选项-E: 命令参数,用于指定操作选项-C: 命令参数,用于指定操作选项-cE: 命令参数,用于指定操作选项| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| content | string | 是 | 相关说明 |
| content | string | 否 | 相关说明, 默认: 全部维度 |
| strict_level | string | 否 | 审查严格度, 可选: strict/normal/loose, 默认: normal |
{
"success": true,
"data": {
"overall_grade": "A",
"total_score": 92,
"max_score": 100,
"summary": "处理完成",
"details": [
{
"item": "代码风格",
"status": "pass",
"score": 95,
"comment": "符合规范"
},
{
"item": "安全合规",
"status": "warn",
"score": 80,
"comment": "符合规范"
}
],
"improvements": [
{
"priority": "high",
"suggestion": "建议优化",
"expected_gain": "+5分"
},
{
"priority": "medium",
"suggestion": "建议优化",
"expected_gain": "+3分"
}
]
},
"error": null
}
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| git | 系统工具 | 必需 | 系统包管理器 |
| cut / sort / uniq / awk / grep | 系统工具 | 必需 | 系统预装(Unix) |
| jq | 系统工具 | 推荐 | 系统包管理器 |
| pandoc | 文档工具 | 可选(生成 PDF) | 系统包管理器 |
| weasyprint | Python 包 | 可选(PDF 引擎) | pip install weasyprint |
| PyYAML | Python 包 | 推荐(读取指标配置) | pip install pyyaml |
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供 |
SLACK_WEBHOOK_URLGITHUB_TOKEN 或对应平台的访问令牌# (根据实际场景填充) 仓库协作分析报告
> **报告说明**:本报告仅描述仓库级工作流模式,不用于个人评估、排名或人事决策。
## 常见问题
### Q1: 多仓库分析如何避免泄露个人数据?
跨仓库汇总时仅保留仓库级聚合数据,不关联个人。巴士因子风险披露中的姓名仅出现在文件级风险说明中,不与评估性指标关联。
### Q2: 自定义指标如何保证安全?
自定义指标配置(`.repo-metrics.yaml`)中的 `query` 字段必须是白名单内的只读 git 命令。CI 在执行前校验 query 是否符合白名单,违规则拒绝执行。
### Q3: 报告如何与团队复盘结合?
将报告作为复盘会议的输入,聚焦"工作流改进议题"部分,讨论流程优化而非个人表现。例如"周末提交比例较高 — 是否需要调整发布窗口"。
### Q4: 历史趋势如何存储与对比?
每次分析报告归档到 `reports/repo-analysis/` 目录,文件名带时间戳。趋势对比脚本读取历史报告,计算同比与环比变化,识别异常波动。
### Q5: Pro 版与免费版如何协同?
Pro 版完全兼容免费版的所有分析能力、隐私规则与安全契约。个人开发者可继续使用免费版分析单仓库,团队场景启用 Pro 版获得批量、自定义指标与 CI 集成能力。两个版本可在同一团队并存。
### Q6: 如何度量团队协作健康度?
跟踪四个仓库级指标:约定式合规率、巴士因子风险文件数、周末/深夜提交比例、大提交比例。四者共同反映团队工作流健康度。注意:这些是工作流信号,不是个人绩效指标。
## 错误处理
| 错误场景 | 原因 | 处理方式 |
|---------|------|---------|
| LLM响应超时或无响应 | 网络延迟或模型负载过高 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接,执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令请求;确认Agent平台LLM服务正常 |
| 输入内容格式不正确 | 用户输入不符合skill预期格式 | 检查输入是否符合skill使用说明中的格式要求,参考示例章节 |
| 执行结果与预期不符 | 指令描述不够明确或上下文不足 | 提供更详细的指令描述,补充必要的上下文信息 |
| 命令执行失败 | 运行环境不满足要求或权限不足 | 确认运行环境符合依赖说明中的要求;检查命令权限设置 |
## 已知限制
- 本报告仅反映 Git 可见的活动,不反映代码审查、设计、文档、指导等非提交工作
- 所有指标均为仓库级聚合,不做个人拆分
- 报告不可用于绩效评估、排名、招聘、解雇或任何人事决策
| 规则 | 说明 |
|---|---|
| 命令白名单 | 仅允许只读 git 子命令,见免费版表格 |
| 路径限制 | 仅访问用户提供的仓库路径,不遍历父目录 |
| 邮箱不收集 | 仅用 %an(作者名),永不用 %ae(邮箱) |
| 敏感数据本地处理 | 提交消息与文件路径仅本地折叠为聚合数值 |
| 密钥自动脱敏 | API Key、Token、私钥、连接串显示前替换为 [REDACTED] |
| 无个人评估 | 拒绝任何个人拆分、排名或人事评估请求 |
| 无网络 | 仅本地 git 命令,无 fetch/pull/clone/remote |