skills/skill-logger/SKILL.md
Logs and scores skill usage quality, tracking output effectiveness, user satisfaction signals, and improvement opportunities. Expert in skill analytics, quality metrics, feedback loops, and continuous improvement. Activate on "skill logging", "skill quality", "skill analytics", "skill scoring", "skill performance", "skill metrics", "track skill usage", "skill improvement". NOT for creating skills (use agent-creator), skill documentation (use skill-coach), or runtime debugging (use debugger skills).
npx skillsauth add curiositech/windags-skills skill-loggerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Track, measure, and improve skill quality through systematic logging and scoring.
Skill Category Analysis:
├─ Code Generation Skills
│ ├─ IF output type = "code" → Priority: syntax_correctness, test_pass_rate, user_edits
│ ├─ IF includes tool calls → Track: tool_success_rate, retry_count
│ └─ ELSE → Standard completion signals
│
├─ Analysis/Advisory Skills
│ ├─ IF output is recommendations → Priority: follow_up_rate, acceptance_rate
│ ├─ IF research-heavy → Track: source_quality, comprehensiveness
│ └─ ELSE → Focus on user_satisfaction, edit_ratio
│
├─ Creative/Content Skills
│ ├─ IF artistic output → Priority: user_acceptance, revision_requests
│ ├─ IF writing/documentation → Track: readability_score, user_edits
│ └─ ELSE → Standard quality metrics
│
└─ Meta/System Skills
├─ IF affects other skills → Priority: downstream_impact, system_health
├─ IF automation focused → Track: execution_success, error_recovery
└─ ELSE → Completion rate, efficiency metrics
Signal Availability Decision Tree:
├─ Real-time signals available?
│ ├─ YES → Collect: completion_rate, token_efficiency, tool_success
│ └─ NO → Skip to delayed collection
│
├─ User interaction possible?
│ ├─ YES → Request: thumbs_up/down, edit_ratio measurement
│ └─ NO → Infer from: retry_requests, follow_up_questions
│
├─ Output testable?
│ ├─ Code → Run: syntax_check, basic_execution
│ ├─ Data → Validate: format_compliance, completeness
│ └─ Text → Check: length_appropriateness, structure
│
└─ Delayed validation available?
├─ YES → Schedule: outcome_tracking, revert_detection
└─ NO → Mark as: immediate_signals_only
Based on skill usage context:
IF high_stakes_usage (production, important decisions):
→ Use strict scoring: require 90+ for "good", weight errors heavily
ELIF experimental_usage (testing, learning):
→ Use lenient scoring: 70+ acceptable, focus on learning signals
ELIF routine_usage (daily workflow):
→ Use balanced scoring: standard thresholds, efficiency emphasis
ELSE (unknown context):
→ Default to balanced scoring with conservative error handling
Symptoms: Skill produces unnecessarily verbose outputs, token usage 2x+ expected baseline
Detection: IF tokens_output > baseline_tokens * 2.0 AND user_edit_ratio > 0.6
Diagnosis: Skill optimizing for completeness over conciseness
Fix: Add explicit length constraints, example-based training on concise outputs
Symptoms: Skill quality scores trending downward without apparent cause changes
Detection: IF quality_trend_7d < -5 AND no_skill_changes AND stable_usage_pattern
Diagnosis: External factors (user expectations, data changes) affecting relative performance
Fix: Recalibrate baselines, investigate environmental changes, update scoring criteria
Symptoms: Quality scores don't reflect actual user satisfaction, delayed negative signals
Detection: IF immediate_score > 80 AND delayed_satisfaction < 50 AND lag > 24hrs
Diagnosis: Relying too heavily on completion metrics vs. outcome metrics
Fix: Implement delayed signal collection, weight outcome signals higher, add follow-up tracking
Symptoms: Most skills scoring 85+ but users reporting quality issues
Detection: IF avg_skill_score > 85 AND user_complaints > baseline AND edit_ratio > 0.4
Diagnosis: Scoring criteria too lenient, missing key quality dimensions
Fix: Tighten scoring thresholds, add user satisfaction weight, implement comparative scoring
Symptoms: Quality scores fluctuating wildly, no clear improvement signal
Detection: IF score_variance > 20 AND no_clear_trend AND random_pattern
Diagnosis: Collecting too many weak signals, insufficient signal filtering
Fix: Focus on top 3-5 signals per skill category, implement signal confidence weighting
Scenario: The api-architect skill's quality score dropped from 89 to 67 over 3 days.
Step 1 - Detect Regression
# Query recent performance
SELECT skill_name, AVG(quality_score) as avg_score, COUNT(*) as uses
FROM skill_invocations
WHERE skill_name = 'api-architect'
AND timestamp > datetime('now', '-7 days')
GROUP BY DATE(timestamp)
ORDER BY timestamp DESC;
# Result shows: 89→78→71→67 trend with stable usage (12-15 daily uses)
Step 2 - Diagnose Cause
-- Check error patterns
SELECT errors_json, COUNT(*)
FROM skill_invocations
WHERE skill_name = 'api-architect'
AND quality_score < 70
AND timestamp > datetime('now', '-3 days');
-- Result: 8 instances of "Missing import statements" error
-- This is NEW - wasn't appearing before
Step 3 - Analyze Specific Failures
# Examine failed invocations
failed_cases = get_low_score_invocations('api-architect', days=3)
for case in failed_cases:
if 'import' in case.errors:
# Pattern: Generated code missing required imports
# User edit ratio: 0.7 (high - users adding imports)
# Tool success rate: normal (tools work, output incomplete)
Step 4 - Root Cause The skill was recently updated to use a more concise code style, but the import detection logic wasn't updated to handle the new patterns.
Step 5 - Fix Implementation
# Add import detection rule to skill
IMPORT_PATTERNS = [
r'from \w+',
r'import \w+',
r'require\(',
r'#include'
]
def ensure_imports_present(code):
# Check for usage of external functions/classes
# Automatically add missing imports
Step 6 - Validate Fix Monitor for 48 hours:
Expert Insight: The novice approach would be to just re-calibrate the scoring threshold. The expert approach recognizes that a sudden quality drop with stable usage indicates a systematic issue requiring root cause analysis and targeted fixes.
Do NOT use skill-logger for:
agent-creator insteadskill-coach insteaddebugger or error-analyst skillsdevops-automator for system logssystem-monitor skillDelegate when:
skill-coachagent-creatordevops-automatordata-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.