feat(log): 匯入 jsc-log 技能組

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-21 13:08:43 +08:00
co-authored by Claude Fable 5
parent 5afb39d3ed
commit de9e342d77
5 changed files with 132 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env sh
# usage-stats.sh — 聚合 jsc-hooks 記錄的技能用量。
# 用法:
# usage-stats.sh skills [--cli <name>] # 每個 skill 的使用次數(降冪)
# usage-stats.sh chains [--cli <name>] # 每條 from -> to 呼叫鏈的次數(降冪)
# 資料: $JSC_HOME/usage/skills.jsonl、chains.jsonl(預設 $HOME/.jsc)
set -u
JSC_HOME="${JSC_HOME:-$HOME/.jsc}"
cmd="${1:?usage: usage-stats.sh skills|chains [--cli <name>]}"; shift
cli=""
while [ $# -gt 0 ]; do
case "$1" in
--cli) cli="${2:?--cli needs a value}"; shift 2 ;;
*) shift ;;
esac
done
by_cli() { # 依 --cli 過濾;未指定就原樣輸出
if [ -n "$cli" ]; then grep "\"cli\":\"$cli\""; else cat; fi
}
rank() { sort | uniq -c | sort -rn | sed 's/^ *\([0-9][0-9]*\) /\1\t/'; }
case "$cmd" in
skills)
f="$JSC_HOME/usage/skills.jsonl"; [ -f "$f" ] || exit 0
by_cli < "$f" | sed -n 's/.*"skill":"\([^"]*\)".*/\1/p' | rank ;;
chains)
f="$JSC_HOME/usage/chains.jsonl"; [ -f "$f" ] || exit 0
by_cli < "$f" | sed -n 's/.*"from":"\([^"]*\)".*"to":"\([^"]*\)".*/\1 -> \2/p' | rank ;;
*)
echo "unknown command: $cmd" >&2; exit 2 ;;
esac