Agent skill

dashboard

Comprehensive usage analytics and epistemic coverage dashboard across all sessions.

Stars 87
Forks 8

Install this agent skill to your Project

npx add-skill https://github.com/jongwony/epistemic-protocols/tree/main/epistemic-cooperative/skills/dashboard

SKILL.md

Dashboard Skill

Analyze all Claude Code session data to produce a comprehensive usage analytics dashboard with epistemic protocol coverage metrics, friction analysis, growth timeline, and actionable improvement recommendations.

When to Use

Invoke this skill when:

  • A user wants to see overall epistemic protocol usage metrics across all sessions
  • Evaluating protocol coverage: which situations occurred vs. which protocols were used
  • Tracking usage growth, friction patterns, and satisfaction trends over time
  • After running /onboard for deeper, full-dataset analysis

Skip when:

  • User wants protocol recommendations (use /onboard instead)
  • Quick single-protocol question (answer directly)
  • No session history exists

Workflow Overview

COLLECT → AGGREGATE → ANALYZE → PRESENT
Phase Owner Tool Decision Point
1. Collect Main Glob Inventory + path decision
2. Aggregate Subagent (coverage-scanner) Bash, Read, Grep, Glob Batch data collection
3. Analyze Main 7 computations
4. Present Main Write, Bash HTML dashboard + console summary

Data Sources

Primary: Usage Data Cache

Source Method Extracts
~/.claude/usage-data/facets/{session_id}.json Glob + Read friction_counts, friction_detail, goal_categories, session_type, outcome, user_satisfaction_counts
~/.claude/usage-data/session-meta/{session_id}.json Glob + Read tool_counts, git_commits, git_pushes, languages, duration_minutes, start_time, first_prompt

Secondary: Session Logs

Source Method Extracts
~/.claude/projects/*/*.jsonl Glob All session JSONL files on disk
Session JSONL files Grep command-name + "skill":" Protocol usage history (slash commands + Skill tool invocations)

Phase Execution

Phase 1: Collect (Main)

  1. Glob ~/.claude/usage-data/facets/*.json → inventory facets files
  2. Glob ~/.claude/usage-data/session-meta/*.json → inventory session-meta files
  3. Note JSONL glob pattern ~/.claude/projects/*/*.jsonl (scanner runs glob internally)
  4. Intersect facets ∩ session-meta by filename stem (session_id)
  5. Path decision: facets ∩ session-meta ≥ 10 → Path A, else Path B

If no facets or session-meta data found: report "No usage data available. Run some Claude Code sessions first, then try /dashboard again." and stop.

Phase 2: Aggregate (Subagent: coverage-scanner)

Call coverage-scanner subagent with:

  • facets_dir: ~/.claude/usage-data/facets/
  • session_meta_dir: ~/.claude/usage-data/session-meta/
  • session_jsonl_glob: ~/.claude/projects/*/*.jsonl (scanner runs glob + grep internally, avoiding 900+ paths in prompt)
  • mode: "path_a" or "path_b" based on Phase 1 decision

The subagent returns aggregated data: friction totals, outcome/satisfaction distributions, tool totals, timeline, protocol usage (slash commands + Skill tool invocations, de-duplicated), code change statistics.

Phase 3: Analyze (Main) — 7 Computations

3.1 Coverage Computation

For each protocol, determine:

  • situation_occurred: whether the deficit situation was detected in session data
  • situation_used: whether the protocol's slash command was actually used
Protocol situation_occurred (Path A) situation_occurred (Path B)
Telos friction wrong_approach OR vague firstPrompt vague firstPrompt
Hermeneia friction misunderstood_request rework (3+ edits same file)
Syneidesis friction excessive_changes OR (wrong_approach + rework) rework + high exploration
Aitesis friction context_loss N/A
Prosoche friction wrong_file_edited deploy/push keywords
Prothesis exploration ratio ≥ 3:1
Katalepsis verification firstPrompt
Epharmoge N/A (conditional protocol)

situation_used detection: From Phase 2 Protocol Usage output (coverage-scanner detects via slash commands and Skill tool invocations in a single pass, de-duplicated per session). The scanner owns the mapping from skill names to protocol names — see coverage-scanner.md step 2c for the canonical mapping table.

Coverage ratio per protocol: situation_used / situation_occurred. Protocols with no detected situations = N/A.

3.2 Protocol Usage

Count protocol invocations per protocol from Phase 2 aggregated data (merged from slash commands + Skill tool). Include first usage date, detection method breakdown (command vs Skill tool), and session count if available.

3.3 Friction Mapping

Aggregate friction_counts from Phase 2. Map to protocol groups using the Tertiary Mapping Table:

Friction Key Protocol Group
wrong_approach Telos, Syneidesis
misunderstood_request Hermeneia
excessive_changes Syneidesis
context_loss Aitesis
wrong_file_edited Prosoche
Others (buggy_code, api_errors, etc.) Environmental (no protocol mapping)

3.4 Growth Timeline

From Phase 2 timeline data:

  • Weekly session counts
  • Protocol adoption dates (first slash command usage per protocol)
  • Cumulative session trend

3.5 Achievements

Compute milestones:

  • Session milestones: 10, 50, 100, 250, 500 sessions
  • Protocol milestones: first protocol used, 3+ protocols used, all 8 used
  • Code milestones: 100 commits, 500 commits
  • Streak: consecutive days with sessions (from timeline data)

3.6 Satisfaction Score

From user_satisfaction_counts (Path A only):

  • Weighted average on 0-100 scale
  • Split into first-half / second-half trend comparison

3.7 Quality Score

Composite score (0-100):

  • Outcome (35%): success ratio from outcome distribution
  • Friction rate (20%): inverse of friction per session
  • Satisfaction (25%): weighted satisfaction score
  • Coverage (20%): average coverage ratio across applicable protocols

Phase 4: Present (Main)

  1. HTML Dashboard: Write to ~/.claude/.insights/dashboard.html via Write tool

    • Refer to references/html-template.md for the full HTML skeleton
    • 9 sections: Coverage, Protocol Usage, Friction→Protocol, Improvement Opportunities, Growth Timeline, Achievements, Satisfaction Trends, Quality Score, Quick Actions
    • Path B degradation: Sections 3 (Friction), 7 (Satisfaction), 8 (Quality Score) show "Facets data enables richer analysis" guidance
  2. Console Summary: Output key metrics:

    • Total sessions analyzed
    • Coverage summary (X/Y protocols with situations detected)
    • Top friction areas
    • Quality score (if available)
    • File path: ~/.claude/.insights/dashboard.html
  3. Open in browser: Call Bash open ~/.claude/.insights/dashboard.html to launch the dashboard in the default browser

HTML Artifact Guidelines

Refer to references/html-template.md for the full HTML skeleton, CSS classes, and detailed artifact guidelines.

Rules

  1. Privacy: Never transmit session data externally. All analysis runs locally.
  2. Raw data in subagent: coverage-scanner subagent returns raw aggregated data only — all computation, mapping, and scoring happen in the main agent.
  3. Evidence-based metrics: Every metric must be derived from actual data. No estimated or interpolated values.
  4. Graceful degradation: Path B produces useful output without facets data. Sections requiring facets show clear guidance to obtain richer data.
  5. Idempotent: Running /dashboard multiple times produces updated results. Previous dashboard is overwritten.
  6. Subagent delegation: Phase 2 batch aggregation MUST be delegated to coverage-scanner subagent (single). Main agent handles Phases 1, 3, 4.
  7. No protocol recommendations: /dashboard provides analytics only. For protocol recommendations, direct users to /onboard.

Expand your agent's capabilities with these related and highly-rated skills.

jongwony/epistemic-protocols

write

Write blog posts from session insights with multi-perspective analysis.

87 8
Explore
jongwony/epistemic-protocols

contextualize

Detect application-context mismatch after execution. Verifies applicability when correct output may not fit the actual context, producing contextualized execution. Type: (ApplicationDecontextualized, AI, CONTEXTUALIZE, Result) → ContextualizedExecution. Alias: Epharmoge(ἐφαρμογή).

87 8
Explore
jongwony/epistemic-protocols

reflexion

Cross-session learning through guided dialogue. Extracts session insights and integrates into persistent memory when session knowledge should be preserved. Alias: Reflexion.

87 8
Explore
jongwony/epistemic-protocols

gap

Gap surfacing before decisions. Raises procedural, consideration, assumption, and alternative gaps as questions when gaps go unnoticed, producing an audited decision. Type: (GapUnnoticed, AI, SURFACE, Decision) → AuditedDecision. Alias: Syneidesis(συνείδησις).

87 8
Explore
jongwony/epistemic-protocols

bound

Define epistemic boundaries per decision. Produces BoundaryMap classifying domains as user-supplies, AI-proposes, or AI-autonomous when boundary ownership is undefined. Type: (BoundaryUndefined, AI, DEFINE, TaskScope) → DefinedBoundary. Alias: Horismos(ὁρισμός).

87 8
Explore
jongwony/epistemic-protocols

verify

This skill should be used when the user asks to "verify protocols", "check consistency before commit", "validate definitions", "run pre-commit checks", "verify soundness", or wants to ensure epistemic protocol quality. Invoke explicitly with /verify for pre-commit validation.

87 8
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results