Install
openclaw skills install @thcjp/code-analysis-toolkitopenclaw skills install @thcjp/code-analysis-toolkit支持全员同意的团队复盘,输出匿名化/聚合结果:
# 团队复盘(必须全员同意)
python -m src.main --i-have-consent \
--multi-author-team-retro \
--consented-author "Alice <alice@example.com>" \
--consented-author "Bob <bob@example.com>" \
--consented-author "Carol <carol@example.com>" \
-r /path/to/team-repo \
-f markdown -o team-retro.md
重要约束:
| 规则 | 说明 |
|---|---|
| 必须全员同意 | 每个被分析的成员都必须明确同意 |
| 双步选择 | 需同时指定 --multi-author-team-retro 和 --consented-author |
| 无排行榜 | 不生成排名表或跨作者对比表 |
| 匿名化选项 | 可输出匿名化结果 |
| 审计追踪 | 记录同意时间与范围 |
输入: 用户提供团队复盘分析(需全员同意)所需的指令和必要参数。
{
"consent_management": {
"enabled": true,
"consent_log": ".code-analysis/consent-log.json",
"require_explicit": true,
"consent_expiry_days": 90,
"revocation_supported": true
}
}
同意记录包含:
| 字段 | 说明 |
|---|---|
| 作者 | 被分析的 Git 作者 |
| 同意时间 | 明确同意的时间戳 |
| 分析范围 | 被授权分析的数据范围 |
| 过期时间 | 同意有效期 |
| 撤回状态 | 是否已撤回同意 |
输入: 用户提供同意管理所需的指令和必要参数。 输出: 返回同意管理的执行结果,包含操作状态和输出数据。
# 批量扫描多个仓库
python -m src.main --i-have-consent \
-r /path/to/projects \
--scan-all \
-f markdown -o batch-report.md
# 每个仓库单独分析,合并为聚合报告
输入: 用户提供多仓库批量扫描所需的指令和必要参数。 输出: 返回多仓库批量扫描的执行结果,包含操作状态和输出数据。
多仓库批量扫描操作,处理输入数据并返回结果多仓库批量扫描 选项# 对比历史基线
python -m src.main --i-have-consent \
-r /path/to/repo \
--compare-baseline .code-analysis/baselines/q1-baseline.json \
-f markdown -o trend-report.md
趋势追踪维度:
| 维度 | 追踪指标 | 说明 |
|---|---|---|
| 提交纪律 | 提交频率变化 | 与基线对比的增减 |
| 代码质量 | Bug 修复率趋势 | 是否在改善 |
| 测试覆盖 | 测试文件变更率 | 测试投入趋势 |
| 提交规范 | 规范符合度变化 | 规范采纳趋势 |
输入: 用户提供历史趋势追踪所需的指令和必要参数。 处理: 按照skill规范执行历史趋势追踪操作,遵循单一意图原则。 输出: 返回历史趋势追踪的执行结果,包含操作状态和输出数据。
# 匿名化团队报告
python -m src.main --i-have-consent \
--multi-author-team-retro \
--consented-author "Alice <alice@example.com>" \
--consented-author "Bob <bob@example.com>" \
-r /path/to/repo \
--anonymize \
-f markdown -o anonymous-retro.md
匿名化规则:
| 处理项 | 方式 |
|---|---|
| 作者名 | 替换为"开发者 A/B/C" |
| 邮箱 | 完全移除 |
| 提交哈希 | 保留(用于引用) |
| 文件路径 | 保留(技术分析需要) |
输入: 用户提供匿名化输出所需的指令和必要参数。 输出: 返回匿名化输出的执行结果,包含操作状态和输出数据。
本skill还覆盖以下能力场景: 企业级、历史分析、支持团队复盘、趋势追踪与多格式、面向团队与企业的、历史分析工具、在免费版基础上扩、展团队复盘、趋势追踪等能力、核心能力、同意管理与审计追、多仓库批量扫描与、历史趋势追踪与基、匿名化输出与隐私。这些能力在上述核心功能中均有对应处理逻辑。
迭代结束后,团队全员同意做复盘分析。
# 团队复盘(全员已同意)
python -m src.main --i-have-consent \
--multi-author-team-retro \
--consented-author "Alice <alice@example.com>" \
--consented-author "Bob <bob@example.com>" \
--consented-author "Carol <carol@example.com>" \
-r /path/to/sprint-repo \
-s 2026-04-01 -u 2026-06-30 \
--anonymize \
-f markdown -o sprint-23-retro.md
输出示例:
团队迭代复盘报告 - Sprint 23
=====================================
使用须知:
- 本报告描述 Git 历史,不描述个人能力
- 代码审查、设计、指导等贡献不可见
- 结果仅供团队复盘讨论,不用于任何 HR 决策
匿名化说明:
- 开发者已替换为 A/B/C
- 所有分析均基于全员同意
团队聚合统计:
- 总提交数: 342
- 活跃开发者: 3 人
- 平均提交大小: 28 行
- 测试文件变更占比: 25%
各维度观察(匿名):
开发者 A: 提交频率稳定,测试覆盖率高
开发者 B: 提交较大,建议拆分小提交
开发者 C: Bug 修复占比低,代码质量稳定
团队改进建议(讨论提示):
- 考虑统一提交消息规范
- 测试文件变更占比可提升
- 建议定期做小提交
注意: 以上为讨论提示,非评判结论
对企业多个仓库做批量质量审计。
# 批量扫描
python -m src.main --i-have-consent \
-r /path/to/projects \
--scan-all \
-f markdown -o quality-audit.md
# 对比基线
python -m src.main --i-have-consent \
-r /path/to/projects \
--scan-all \
--compare-baseline .code-analysis/baselines/q1-baseline.json \
-f markdown -o trend-audit.md
建立质量基线,定期追踪改进趋势。
# 建立基线
python -m src.main --i-have-consent \
-r /path/to/repo \
--save-baseline .code-analysis/baselines/q2-baseline.json
# 季度对比
python -m src.main --i-have-consent \
-r /path/to/repo \
-s 2026-07-01 -u 2026-09-30 \
--compare-baseline .code-analysis/baselines/q2-baseline.json \
-f markdown -o q3-trend.md
趋势报告示例:
代码质量趋势报告 - Q3 vs Q2
=====================================
提交纪律:
- 提交频率: +12% (提升)
- 消息长度: +8 字符 (改善)
- 规范符合: 72% → 85% (显著提升)
代码质量:
- Bug 修复率: 18% → 15% (改善)
- 回退率: 3% → 2% (改善)
- 测试变更: 22% → 28% (提升)
结论:
本季度代码质量指标整体改善
建议: 继续保持提交规范,进一步提升测试覆盖
mkdir -p .code-analysis/{baselines,reports,consent}
cat > .code-analysis/config.json << 'EOF'
{
"edition": "pro",
"consent_management": {
"enabled": true,
"consent_log": ".code-analysis/consent/consent-log.json",
"require_explicit": true,
"consent_expiry_days": 90
},
"batch": {
"scan_all": true,
"max_depth": 5
},
"trend": {
"baseline_dir": ".code-analysis/baselines/",
"auto_compare": true
},
"privacy": {
"anonymize_default": false,
"local_only": true
}
}
EOF
# 记录同意(团队复盘前)
请记录以下成员的分析同意:
- Alice <alice@example.com> - 同意,有效期 90 天
- Bob <bob@example.com> - 同意,有效期 90 天
- Carol <carol@example.com> - 同意,有效期 90 天
分析范围: Sprint 23 期间的提交历史
# 团队复盘分析
python -m src.main --i-have-consent \
--multi-author-team-retro \
--consented-author "Alice <alice@example.com>" \
--consented-author "Bob <bob@example.com>" \
--consented-author "Carol <carol@example.com>" \
-r /path/to/repo \
--anonymize \
-f markdown -o team-retro.md
--anonymize: 命令参数,用于指定操作选项--i-have-consent: 命令参数,用于指定操作选项--scan-all: 命令参数,用于指定操作选项-trend: 命令参数,用于指定操作选项结果处理: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,参考错误处理章节获取恢复步骤。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| 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命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供 |
| gitpython | Python 库 | 必需 | pip install gitpython |
| pydriller | Python 库 | 必需 | pip install pydriller |
| radon | Python 库 | 必需 | pip install radon |
| tabulate | Python 库 | 必需 | pip install tabulate |
| jinja2 | Python 库 | 必需 | pip install jinja2 |
| click | Python 库 | 必需 | pip install click |
| reportlab | Python 库 | PDF 必需 | pip install reportlab |
| weasyprint(可选) | Python 库 | PDF 推荐 | pip install weasyprint |
| concurrent-futures | Python 标准库 | 批量扫描 | Python 自带 |
{
"edition": "pro",
"organization": {
"name": "开发团队",
"team_members": [
{"name": "Alice", "email": "alice@example.com"},
{"name": "Bob", "email": "bob@example.com"}
]
},
"consent_management": {
"enabled": true,
"consent_log": ".code-analysis/consent/consent-log.json",
"require_explicit": true,
"consent_expiry_days": 90,
"revocation_supported": true
},
"batch": {
"scan_all": true,
"max_depth": 5,
"concurrent": 3
},
"trend": {
"baseline_dir": ".code-analysis/baselines/",
"auto_compare": true,
"retention_baselines": 365
},
"privacy": {
"anonymize_default": false,
"local_only": true,
"no_external_transmission": true
},
"audit": {
"enabled": true,
"log_dir": ".code-analysis/audit/",
"retention_days": 365
}
}
{
"consent_log": {
"format": "json",
"fields": [
"author_name",
"author_email",
"consent_timestamp",
"analysis_scope",
"expiry_date",
"revoked": false,
"revoked_date": null
]
}
}
完全兼容。专业版使用相同的分析维度与报告格式,免费版的报告可直接在专业版中对比。
是的。每个被分析的 Git 作者都必须明确同意。缺少任何一人的同意,该作者的数据不会被分析。
同意记录存储在 .code-analysis/consent/consent-log.json 中,包含同意时间、范围、有效期等。支持随时撤回。
可以。匿名化只替换作者名和邮箱,保留提交哈希和文件路径,技术分析不受影响。
在首次分析时使用 --save-baseline 参数保存基线,之后可使用 --compare-baseline 与基线对比。
专业版用户可通过专属通道提交问题,通常 1 个工作日内响应。
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| LLM响应超时或无响应 | 网络延迟或模型负载过高 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接,执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令请求;确认Agent平台LLM服务正常 |
| 输入内容格式不正确 | 用户输入不符合skill预期格式 | 检查输入是否符合skill使用说明中的格式要求,参考示例章节 |
| 执行结果与预期不符 | 指令描述不够明确或上下文不足 | 提供更详细的指令描述,补充必要的上下文信息 |
| 命令执行失败 | 运行环境不满足要求或权限不足 | 确认运行环境符合依赖说明中的要求;检查命令权限设置 |