This repository has been archived on 2026-08-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
kb-skills/dev-workflow/dev_workflow.py
T
starmen1265 f86bb7043c feat(dev-workflow): 添加 Cross 模式统计报告功能
- stats.py: record_event, get_stats, format_stats_report
- dev_workflow.py: stats 和 record-event CLI 命令
- 安全特性: 文件权限 600, 文件锁, 敏感数据过滤
- .gitignore: 排除数据文件
2026-03-09 16:00:55 +08:00

122 lines
3.1 KiB
Python

#!/usr/bin/env python3
"""
Dev Workflow - 开发工作流工具
提供 Cross-Debate 统计报告等功能
"""
import sys
import argparse
from pathlib import Path
# 添加当前目录到 Python 路径
sys.path.insert(0, str(Path(__file__).parent))
from stats import record_event, get_stats, format_stats_report
def cmd_stats(args):
"""查看统计报告"""
print(format_stats_report())
return 0
def cmd_record_event(args):
"""记录事件"""
try:
# 构建 metadata
metadata = {}
if args.metadata:
for item in args.metadata:
if '=' in item:
key, value = item.split('=', 1)
metadata[key] = value
# 记录事件
record_event(
event_type=args.type,
mode=args.mode,
metadata=metadata,
status=args.status
)
print(f"✅ 事件已记录: type={args.type}, mode={args.mode}, status={args.status}")
return 0
except ValueError as e:
print(f"❌ 错误: {e}", file=sys.stderr)
return 1
except Exception as e:
print(f"❌ 记录事件失败: {e}", file=sys.stderr)
return 1
def main():
"""主函数"""
parser = argparse.ArgumentParser(
description='Dev Workflow - 开发工作流工具',
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
示例:
# 查看统计报告
python3 dev_workflow.py stats
# 记录一个 cross 模式的 debate 事件
python3 dev_workflow.py record-event --type debate --mode cross --status success
# 记录带元数据的事件
python3 dev_workflow.py record-event --type review --mode normal --metadata files=5 issues=2
"""
)
subparsers = parser.add_subparsers(dest='command', help='可用命令')
# stats 命令
stats_parser = subparsers.add_parser('stats', help='查看统计报告')
stats_parser.set_defaults(func=cmd_stats)
# record-event 命令
record_parser = subparsers.add_parser('record-event', help='记录事件')
record_parser.add_argument(
'--type',
required=True,
choices=['debate', 'review', 'audit'],
help='事件类型 (debate|review|audit)'
)
record_parser.add_argument(
'--mode',
required=True,
choices=['cross', 'normal'],
help='模式 (cross|normal)'
)
record_parser.add_argument(
'--status',
default='success',
choices=['success', 'failed'],
help='事件状态 (success|failed),默认为 success'
)
record_parser.add_argument(
'--metadata',
nargs='*',
help='元数据,格式为 key=value(可多个)'
)
record_parser.set_defaults(func=cmd_record_event)
# 解析参数
args = parser.parse_args()
# 如果没有指定命令,显示帮助
if not args.command:
parser.print_help()
return 0
# 执行命令
if hasattr(args, 'func'):
return args.func(args)
else:
parser.print_help()
return 0
if __name__ == '__main__':
sys.exit(main())