analytics-report

安装量: 50
排名: #14706

安装

npx skills add https://github.com/laurigates/claude-plugins --skill analytics-report
/analytics:report
Display usage analytics for commands and skills across all projects.
Context
Check if analytics data exists:
if
[
[
-f
~/.claude-analytics/summary.json
]
]
;
then
echo
"Analytics available"
SUMMARY
=
$(
cat
~/.claude-analytics/summary.json
)
TOTAL
=
$(
echo
"
$SUMMARY
"
|
jq
-r
'.total_invocations // 0'
)
SINCE
=
$(
echo
"
$SUMMARY
"
|
jq
-r
'.tracking_since // "unknown"'
)
echo
"Total invocations:
$TOTAL
"
echo
"Tracking since:
$SINCE
"
else
echo
"No analytics data found. Start using commands to collect data."
exit
0
fi
Parameters
$ARGS
- Optional filter:
Empty: Show all analytics
commands
Show only commands
skills
Show only skills
Show specific command/skill details Execution Display analytics report: ANALYTICS_DIR = " ${ HOME } /.claude-analytics" SUMMARY_FILE = " ${ANALYTICS_DIR} /summary.json" EVENTS_FILE = " ${ANALYTICS_DIR} /events.jsonl" if [ [ ! -f " ${SUMMARY_FILE} " ] ] ; then echo "📊 No analytics data yet" echo "" echo "Analytics will be collected automatically as you use commands and skills." echo "Data is stored in: ${ANALYTICS_DIR} " exit 0 fi SUMMARY = $( cat " ${SUMMARY_FILE} " ) FILTER = " ${ARGS :- all} " echo "📊 Command & Skill Analytics" echo ""

Header info

TOTAL

$( echo " $SUMMARY " | jq -r '.total_invocations' ) SINCE = $( echo " $SUMMARY " | jq -r '.tracking_since' ) echo "Total invocations: ${TOTAL} " echo "Tracking since: ${SINCE} " echo ""

Top used items

echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "Most Used" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" if [ [ " ${FILTER} " == "all" || " ${FILTER} " == "commands" ] ] ; then echo "" echo "📝 Commands" echo " $SUMMARY " | jq -r ' .items | to_entries | map(select(.value.type == "command")) | sort_by(-.value.count) | .[:10] | .[] | " (.value.count | tostring | (. + " ")[:6]) (.key) ((.value.success)✓ (.value.failure)✗)" ' fi if [ [ " ${FILTER} " == "all" || " ${FILTER} " == "skills" ] ] ; then echo "" echo "🎯 Skills" echo " $SUMMARY " | jq -r ' .items | to_entries | map(select(.value.type == "skill")) | sort_by(-.value.count) | .[:10] | .[] | " (.value.count | tostring | (. + " ")[:6]) (.key) ((.value.success)✓ (.value.failure)✗)" ' fi

Success rate

if [ [ " ${FILTER} " == "all" ] ] ; then echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "Success Rates" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" TOTAL_SUCCESS = $( echo " $SUMMARY " | jq '[.items[].success] | add // 0' ) TOTAL_FAILURE = $( echo " $SUMMARY " | jq '[.items[].failure] | add // 0' ) TOTAL_OPS = $(( TOTAL_SUCCESS + TOTAL_FAILURE )) if [ [ $TOTAL_OPS -gt 0 ] ] ; then SUCCESS_RATE = $( echo "scale=1; ${TOTAL_SUCCESS} * 100 / ${TOTAL_OPS} " | bc ) echo " Overall: ${SUCCESS_RATE} % ( ${TOTAL_SUCCESS} ✓ ${TOTAL_FAILURE} ✗)" fi

Items with failures

echo "" echo " Items with failures:" echo " $SUMMARY " | jq -r ' .items | to_entries | map(select(.value.failure > 0)) | sort_by(-.value.failure) | .[:5] | .[] | " (.key): (.value.failure) failures" ' | while read -r line ; do if [ [ -n " $line " ] ] ; then echo " $line " else echo " None!" fi done fi

Recent activity

if [ [ " ${FILTER} " == "all" ] ] ; then echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "Recent Activity (last 10)" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" if [ [ -f " ${EVENTS_FILE} " ] ] ; then tail -10 " ${EVENTS_FILE} " | jq -r ' "(.timestamp | split("T")[0] + " " + (.timestamp | split("T")[1] | split(".")[0])) (.name) " + (if .success then "✓" else "✗" end) ' fi fi

Specific item details

if [ [ " ${FILTER} " != "all" && " ${FILTER} " != "commands" && " ${FILTER} " != "skills" ] ] ; then echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "Details: ${FILTER} " echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo " $SUMMARY " | jq -r \ --arg name " ${FILTER} " \ ' if .items[$name] then .items[$name] | "Type: (.type)\n" + "Total uses: (.count)\n" + "Successful: (.success)\n" + "Failed: (.failure)\n" + "First used: (.first_used)\n" + "Last used: (.last_used)" else "No data found for: " + $name end '

Show recent invocations

if [ [ -f " ${EVENTS_FILE} " ] ] ; then echo "" echo "Recent invocations:" grep " \" ${FILTER} \" " " ${EVENTS_FILE} " | tail -5 | jq -r ' " (.timestamp) " + (if .success then "✓" else "✗ (.error)" end) ' fi fi echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "💡 Tips:" echo " • /analytics:report commands - Show only commands" echo " • /analytics:report skills - Show only skills" echo " • /analytics:unused - Find never-used commands" echo " • /analytics:clear - Reset analytics data" Post-actions None.

返回排行榜