claude-pangu 2.0.18 → 2.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,123 @@
1
+ ---
2
+ name: expert
3
+ description: 专家模式开关 - 为高级用户提供精简输出,跳过引导信息
4
+ allowed-tools:
5
+ - Read
6
+ - Write
7
+ - Bash
8
+ model: haiku
9
+ ---
10
+
11
+ <command-name>/expert</command-name>
12
+
13
+ # 专家模式开关
14
+
15
+ 切换专家模式,控制输出详细程度。
16
+
17
+ ## 使用方式
18
+
19
+ ```text
20
+ /expert [on|off|status]
21
+ ```
22
+
23
+ ## 执行逻辑
24
+
25
+ ### `/expert on` - 启用专家模式
26
+
27
+ 1. 创建模式标记文件:
28
+ ```bash
29
+ mkdir -p ~/.oh-my-claude && echo "expert" > ~/.oh-my-claude/mode
30
+ ```
31
+
32
+ 2. 显示确认:
33
+ ```text
34
+ ⚡ 专家模式已启用
35
+
36
+ 效果:
37
+ • 跳过新手引导
38
+ • 精简输出格式
39
+ • 减少确认步骤
40
+
41
+ 关闭: /expert off
42
+ ```
43
+
44
+ ### `/expert off` - 关闭专家模式
45
+
46
+ 1. 删除模式标记文件:
47
+ ```bash
48
+ rm -f ~/.oh-my-claude/mode
49
+ ```
50
+
51
+ 2. 显示确认:
52
+ ```text
53
+ 📖 已切换到标准模式
54
+
55
+ 效果:
56
+ • 显示完整引导
57
+ • 详细解释说明
58
+ • 更多操作提示
59
+ ```
60
+
61
+ ### `/expert status` - 查看当前状态
62
+
63
+ 1. 检查模式文件:
64
+ ```bash
65
+ cat ~/.oh-my-claude/mode 2>/dev/null
66
+ ```
67
+
68
+ 2. 根据结果显示:
69
+
70
+ 文件存在且内容为 "expert":
71
+ ```text
72
+ 当前模式: ⚡ 专家模式
73
+ ```
74
+
75
+ 文件不存在或内容不匹配:
76
+ ```text
77
+ 当前模式: 📖 标准模式
78
+ ```
79
+
80
+ ### `/expert` 无参数 - 切换模式
81
+
82
+ 检查当前状态并切换到相反模式:
83
+ - 如果当前是专家模式 → 切换到标准模式
84
+ - 如果当前是标准模式 → 切换到专家模式
85
+
86
+ ---
87
+
88
+ ## 模式效果对比
89
+
90
+ | 特性 | 标准模式 | 专家模式 |
91
+ |------|----------|----------|
92
+ | 新手引导 | ✅ 显示 | ❌ 跳过 |
93
+ | 详细解释 | ✅ 完整 | ⚡ 精简 |
94
+ | 操作确认 | ✅ 询问 | ⚡ 直接执行 |
95
+ | 错误提示 | 📚 多选项 | 🎯 首选方案 |
96
+ | 输出格式 | 📖 详细 | ⚡ 紧凑 |
97
+
98
+ ---
99
+
100
+ ## 适用场景
101
+
102
+ ### 推荐使用专家模式
103
+
104
+ - ✅ 熟悉 oh-my-claude 所有命令
105
+ - ✅ 不需要引导和解释
106
+ - ✅ 追求效率,减少阅读时间
107
+ - ✅ 屏幕空间有限
108
+
109
+ ### 推荐使用标准模式
110
+
111
+ - ✅ 新用户或偶尔使用
112
+ - ✅ 需要详细的操作指引
113
+ - ✅ 遇到复杂问题需要多选项
114
+ - ✅ 正在学习命令用法
115
+
116
+ ---
117
+
118
+ ## 别名
119
+
120
+ - `/expert` - 主命令
121
+ - `/pro` - 简写
122
+ - `/专家` - 中文别名
123
+ - `/简洁` - 中文别名
@@ -0,0 +1,138 @@
1
+ ---
2
+ name: hook-perf
3
+ description: Hook 性能监控 - 查看各 Hook 的执行时间,识别性能瓶颈
4
+ allowed-tools:
5
+ - Bash
6
+ - Read
7
+ model: haiku
8
+ ---
9
+
10
+ <command-name>/hook-perf</command-name>
11
+
12
+ # Hook 性能监控
13
+
14
+ 查看 oh-my-claude 43 个 Hook 的执行性能,识别可能影响响应速度的瓶颈。
15
+
16
+ ## 使用方式
17
+
18
+ ```text
19
+ /hook-perf [report|clear|summary]
20
+ ```
21
+
22
+ ## 执行流程
23
+
24
+ ### `/hook-perf` 或 `/hook-perf report` - 查看性能报告
25
+
26
+ 执行性能监控脚本:
27
+
28
+ ```bash
29
+ ~/.claude/plugins/oh-my-claude/hooks/hook-performance-monitor.sh report
30
+ ```
31
+
32
+ 显示格式:
33
+
34
+ ```text
35
+ ┌─────────────────────────────────────────────────────────────┐
36
+ │ 🔍 Hook 性能监控报告 │
37
+ ├─────────────────────────────────────────────────────────────┤
38
+ │ │
39
+ │ Hook 名称 平均耗时 最大耗时 调用次数 │
40
+ │ ───────────────────────────────────────────────────────── │
41
+ │ keyword-detector.sh 120ms 350ms 45 │
42
+ │ todo-enforcer.sh 85ms 200ms 32 │
43
+ │ progress-notifier.sh 45ms 120ms 28 │
44
+ │ ... │
45
+ │ │
46
+ │ 📁 日志位置: ~/.oh-my-claude/performance/ │
47
+ │ │
48
+ └─────────────────────────────────────────────────────────────┘
49
+ ```
50
+
51
+ ### `/hook-perf clear` - 清除性能日志
52
+
53
+ ```bash
54
+ ~/.claude/plugins/oh-my-claude/hooks/hook-performance-monitor.sh clear
55
+ ```
56
+
57
+ 输出:
58
+ ```text
59
+ ✅ 性能日志已清除
60
+ ```
61
+
62
+ ### `/hook-perf summary` - 获取 JSON 摘要
63
+
64
+ ```bash
65
+ ~/.claude/plugins/oh-my-claude/hooks/hook-performance-monitor.sh summary
66
+ ```
67
+
68
+ 返回 JSON 格式的性能数据,可用于进一步分析。
69
+
70
+ ---
71
+
72
+ ## 性能阈值说明
73
+
74
+ | 阈值 | 说明 |
75
+ |------|------|
76
+ | < 500ms | 正常 |
77
+ | 500-2000ms | ⏱️ 较慢,可能需要优化 |
78
+ | > 2000ms | ⚠️ 非常慢,建议检查 |
79
+
80
+ ---
81
+
82
+ ## 性能优化建议
83
+
84
+ 当发现慢 Hook 时:
85
+
86
+ 1. **检查外部依赖**
87
+ - 网络请求(API 调用)
88
+ - 文件系统操作(大量文件扫描)
89
+ - 外部命令(jq、curl 等)
90
+
91
+ 2. **考虑禁用不必要的 Hook**
92
+ - 编辑 `hooks/hooks.json`
93
+ - 注释或删除不需要的 Hook
94
+
95
+ 3. **使用缓存**
96
+ - 对于重复计算的结果使用缓存
97
+ - 设置合理的缓存过期时间
98
+
99
+ 4. **异步执行**
100
+ - 非关键 Hook 可以在后台执行
101
+ - 避免阻塞主流程
102
+
103
+ ---
104
+
105
+ ## 日志文件位置
106
+
107
+ ```
108
+ ~/.oh-my-claude/performance/
109
+ ├── hook-timing.log # 原始执行日志
110
+ └── summary.json # 性能摘要
111
+ ```
112
+
113
+ ---
114
+
115
+ ## 依赖说明
116
+
117
+ - 需要 `jq` 进行 JSON 分析(可选)
118
+ - 无 jq 时仍可记录日志,但无法生成详细报告
119
+
120
+ 安装 jq:
121
+ ```bash
122
+ # macOS
123
+ brew install jq
124
+
125
+ # Linux
126
+ apt install jq
127
+
128
+ # Windows
129
+ choco install jq
130
+ ```
131
+
132
+ ---
133
+
134
+ ## 别名
135
+
136
+ - `/hook-perf` - 主命令
137
+ - `/perf-hook` - 英文别名
138
+ - `/性能` - 中文别名
package/commands/map.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: map
3
- description: 命令关系速查图 - 理解 51 个命令的关系和选择逻辑
3
+ description: 命令关系速查图 - 理解 55 个命令的关系和选择逻辑
4
4
  allowed-tools:
5
5
  - Read
6
6
  model: haiku
@@ -0,0 +1,167 @@
1
+ #!/usr/bin/env bash
2
+ # Hook 性能监控
3
+ # 追踪各 Hook 的执行时间,识别性能瓶颈
4
+ # 触发时机: PostToolUse (周期性检查)
5
+
6
+ set -euo pipefail
7
+
8
+ # 性能日志目录
9
+ PERF_LOG_DIR="${HOME}/.oh-my-claude/performance"
10
+ PERF_LOG_FILE="${PERF_LOG_DIR}/hook-timing.log"
11
+ PERF_SUMMARY_FILE="${PERF_LOG_DIR}/summary.json"
12
+
13
+ # 确保目录存在
14
+ mkdir -p "$PERF_LOG_DIR"
15
+
16
+ # 性能阈值(毫秒)
17
+ SLOW_HOOK_THRESHOLD=500
18
+ VERY_SLOW_HOOK_THRESHOLD=2000
19
+
20
+ # 获取当前时间戳(毫秒)
21
+ get_timestamp_ms() {
22
+ if command -v python3 &>/dev/null; then
23
+ python3 -c "import time; print(int(time.time() * 1000))"
24
+ elif command -v node &>/dev/null; then
25
+ node -e "console.log(Date.now())"
26
+ else
27
+ # 降级方案:秒级精度
28
+ echo "$(($(date +%s) * 1000))"
29
+ fi
30
+ }
31
+
32
+ # 记录 Hook 执行时间
33
+ log_hook_timing() {
34
+ local hook_name="$1"
35
+ local start_time="$2"
36
+ local end_time="$3"
37
+ local duration=$((end_time - start_time))
38
+
39
+ # 追加到日志
40
+ echo "{\"hook\":\"$hook_name\",\"duration\":$duration,\"timestamp\":$end_time}" >> "$PERF_LOG_FILE"
41
+
42
+ # 检查是否超过阈值
43
+ if [ "$duration" -gt "$VERY_SLOW_HOOK_THRESHOLD" ]; then
44
+ echo "⚠️ 非常慢的 Hook: $hook_name (${duration}ms)"
45
+ elif [ "$duration" -gt "$SLOW_HOOK_THRESHOLD" ]; then
46
+ echo "⏱️ 较慢的 Hook: $hook_name (${duration}ms)"
47
+ fi
48
+ }
49
+
50
+ # 生成性能摘要
51
+ generate_summary() {
52
+ if [ ! -f "$PERF_LOG_FILE" ]; then
53
+ echo "{\"error\": \"No performance data\"}"
54
+ return
55
+ fi
56
+
57
+ # 使用 jq 生成摘要(如果可用)
58
+ if command -v jq &>/dev/null; then
59
+ jq -s '
60
+ group_by(.hook) |
61
+ map({
62
+ hook: .[0].hook,
63
+ count: length,
64
+ avg_ms: (map(.duration) | add / length | floor),
65
+ max_ms: (map(.duration) | max),
66
+ min_ms: (map(.duration) | min)
67
+ }) |
68
+ sort_by(-.avg_ms)
69
+ ' "$PERF_LOG_FILE" > "$PERF_SUMMARY_FILE"
70
+
71
+ cat "$PERF_SUMMARY_FILE"
72
+ else
73
+ echo "{\"message\": \"Install jq for detailed analysis\"}"
74
+ fi
75
+ }
76
+
77
+ # 清理旧日志(保留最近 7 天)
78
+ cleanup_old_logs() {
79
+ if [ -f "$PERF_LOG_FILE" ]; then
80
+ # 获取 7 天前的时间戳
81
+ local cutoff_time
82
+ cutoff_time=$(( $(get_timestamp_ms) - 7 * 24 * 60 * 60 * 1000 ))
83
+
84
+ if command -v jq &>/dev/null; then
85
+ jq -c "select(.timestamp > $cutoff_time)" "$PERF_LOG_FILE" > "${PERF_LOG_FILE}.tmp" 2>/dev/null || true
86
+ mv "${PERF_LOG_FILE}.tmp" "$PERF_LOG_FILE" 2>/dev/null || true
87
+ fi
88
+ fi
89
+ }
90
+
91
+ # 显示性能报告
92
+ show_performance_report() {
93
+ echo ""
94
+ echo "┌─────────────────────────────────────────────────────────────┐"
95
+ echo "│ 🔍 Hook 性能监控报告 │"
96
+ echo "├─────────────────────────────────────────────────────────────┤"
97
+
98
+ if [ -f "$PERF_SUMMARY_FILE" ] && command -v jq &>/dev/null; then
99
+ echo "│ │"
100
+ echo "│ Hook 名称 平均耗时 最大耗时 调用次数 │"
101
+ echo "│ ───────────────────────────────────────────────────────── │"
102
+
103
+ jq -r '.[] | "│ \(.hook | .[0:25] | . + " " * (25 - length)) \(.avg_ms | tostring | . + "ms" + " " * (8 - length)) \(.max_ms | tostring | . + "ms" + " " * (8 - length)) \(.count) │"' "$PERF_SUMMARY_FILE" 2>/dev/null | head -10
104
+
105
+ echo "│ │"
106
+ else
107
+ echo "│ 暂无性能数据或 jq 未安装 │"
108
+ echo "│ │"
109
+ echo "│ 💡 安装 jq 以获取详细分析: │"
110
+ echo "│ brew install jq (macOS) │"
111
+ echo "│ apt install jq (Linux) │"
112
+ echo "│ choco install jq (Windows) │"
113
+ fi
114
+
115
+ echo "│ │"
116
+ echo "│ 📁 日志位置: ~/.oh-my-claude/performance/ │"
117
+ echo "│ │"
118
+ echo "│ 🔧 命令: │"
119
+ echo "│ /hook-perf 查看性能报告 │"
120
+ echo "│ /hook-perf clear 清除性能日志 │"
121
+ echo "│ │"
122
+ echo "└─────────────────────────────────────────────────────────────┘"
123
+ }
124
+
125
+ # 主逻辑
126
+ main() {
127
+ local action="${1:-report}"
128
+
129
+ case "$action" in
130
+ "start")
131
+ # 记录开始时间(由调用者使用)
132
+ get_timestamp_ms
133
+ ;;
134
+ "end")
135
+ # 记录结束时间并计算耗时
136
+ local hook_name="${2:-unknown}"
137
+ local start_time="${3:-0}"
138
+ local end_time
139
+ end_time=$(get_timestamp_ms)
140
+ log_hook_timing "$hook_name" "$start_time" "$end_time"
141
+ ;;
142
+ "report")
143
+ # 显示性能报告
144
+ generate_summary >/dev/null 2>&1
145
+ show_performance_report
146
+ ;;
147
+ "summary")
148
+ # 仅生成 JSON 摘要
149
+ generate_summary
150
+ ;;
151
+ "clear")
152
+ # 清除日志
153
+ rm -f "$PERF_LOG_FILE" "$PERF_SUMMARY_FILE"
154
+ echo "✅ 性能日志已清除"
155
+ ;;
156
+ "cleanup")
157
+ # 清理旧日志
158
+ cleanup_old_logs
159
+ ;;
160
+ *)
161
+ echo "用法: hook-performance-monitor.sh [start|end|report|summary|clear|cleanup]"
162
+ ;;
163
+ esac
164
+ }
165
+
166
+ # 运行主程序
167
+ main "$@"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-pangu",
3
- "version": "2.0.18",
3
+ "version": "2.0.19",
4
4
  "description": "基于中国传统文化的 Claude Code 智能编排插件 - A Claude Code plugin inspired by Chinese traditional culture (原名 oh-my-claude)",
5
5
  "keywords": [
6
6
  "claude-code",