Quality Dashboard
by mehdic
Unified project health dashboard aggregating all quality metrics
Skill Details
Repository Files
3 files in this skill directory
name: quality-dashboard description: Unified project health dashboard aggregating all quality metrics version: 1.0.0 allowed-tools: [Bash, Read]
Quality Dashboard Skill
You are the quality-dashboard skill. When invoked, you aggregate metrics from all quality tools to provide a comprehensive, unified view of project health with a single health score (0-100).
When to Invoke This Skill
Invoke this skill when:
- After running security-scan, test-coverage, and lint-check
- Before final code review or deployment
- PM needs overall project health status
- Generating status reports for stakeholders
- Checking if quality gates pass
Do NOT invoke when:
- Quality tools haven't run yet (no metrics available)
- Emergency hotfixes (skip quality dashboard)
- Work-in-progress code not ready for review
Your Task
When invoked:
- Execute the quality dashboard aggregation script
- Read the generated dashboard report
- Return a summary to the calling agent
Step 1: Execute Quality Dashboard Script
Use the Bash tool to run the pre-built dashboard script.
On Unix/macOS:
bash .claude/skills/quality-dashboard/scripts/dashboard.sh
On Windows (PowerShell):
pwsh .claude/skills/quality-dashboard/scripts/dashboard.ps1
Cross-platform detection: Check if running on Windows (
$env:OScontains "Windows" orunamedoesn't exist) and run the appropriate script.
This script will:
- Read
bazinga/security_scan.json - Read
bazinga/coverage_report.json - Read
bazinga/lint_results.json - Read
bazinga/project_metrics.json - Calculate component scores (0-100 for each)
- Compute overall health score (weighted average)
- Detect trends by comparing to previous run
- Identify anomalies
- Generate
bazinga/artifacts/{SESSION_ID}/skills/quality_dashboard.json
Step 2: Read Generated Report
Use the Read tool to read:
bazinga/artifacts/{SESSION_ID}/skills/quality_dashboard.json
Extract key information:
overall_health_score- Single score 0-100health_level- excellent/good/fair/poor/criticalmetrics.security.score- Security component scoremetrics.coverage.score- Coverage component scoremetrics.lint.score- Lint component scoremetrics.velocity.score- Velocity component scorequality_gates_status- passed/failed for each gateanomalies- Detected issuesrecommendations- Action items
Step 3: Return Summary
Return a concise summary to the calling agent:
Quality Dashboard Summary:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Overall Health: {score}/100 ({level})
Trend: {overall_trend}
Component Scores:
- Security: {score}/100 [{trend}]
- Coverage: {score}/100 [{trend}]
- Lint: {score}/100 [{trend}]
- Velocity: {score}/100 [{trend}]
Quality Gates:
- Security: {passed/failed}
- Coverage: {passed/failed}
- Lint: {passed/failed}
{If anomalies:}
⚠️ Anomalies Detected:
- {anomaly}
Top Recommendations:
1. {recommendation}
2. {recommendation}
3. {recommendation}
Details saved to: bazinga/artifacts/{SESSION_ID}/skills/quality_dashboard.json
Example Invocation
Scenario: Healthy Project
Input: PM requesting overall health status after all quality checks
Expected output:
Quality Dashboard Summary:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Overall Health: 92/100 (excellent)
Trend: improving
Component Scores:
- Security: 100/100 [stable]
- Coverage: 94/100 [improving]
- Lint: 95/100 [stable]
- Velocity: 80/100 [improving]
Quality Gates:
- Security: passed ✅
- Coverage: passed ✅
- Lint: passed ✅
Top Recommendations:
1. Continue current practices
2. Coverage improved by 12% this iteration
Details saved to: bazinga/artifacts/{SESSION_ID}/skills/quality_dashboard.json
Scenario: Quality Issues Detected
Input: PM checking health after detecting test failures
Expected output:
Quality Dashboard Summary:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Overall Health: 58/100 (fair)
Trend: declining
Component Scores:
- Security: 70/100 [declining]
- Coverage: 62/100 [declining]
- Lint: 45/100 [declining]
- Velocity: 55/100 [stable]
Quality Gates:
- Security: failed ❌ (3 high issues)
- Coverage: failed ❌ (below 70%)
- Lint: failed ❌ (12 errors)
⚠️ Anomalies Detected:
- Security score dropped 25 points from last run
- Coverage decreased in auth module (82% -> 62%)
- Lint errors increased by 150%
Top Recommendations:
1. Address 3 high-severity security issues before deployment
2. Add tests for auth module (20% coverage drop)
3. Fix 12 linting errors
Details saved to: bazinga/artifacts/{SESSION_ID}/skills/quality_dashboard.json
Error Handling
If all metric files missing:
- Return: "Cannot generate dashboard - no quality metrics found. Run security-scan, test-coverage, and lint-check first."
If only some metrics missing:
- Calculate health score with available metrics
- Note: "Incomplete data: {missing components}"
- Adjust weights accordingly
If previous dashboard not found:
- Skip trend detection
- Note: "No baseline for trend comparison (first run)"
Notes
- The script handles all aggregation and scoring logic
- Supports both bash (Linux/Mac) and PowerShell (Windows)
- Health score is weighted: Security (35%), Coverage (30%), Lint (20%), Velocity (15%)
- Quality gates are minimum standards for deployment
- Trends require at least 2 runs to detect
- Anomaly detection catches regressions early
Related Skills
Attack Tree Construction
Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.
Grafana Dashboards
Create and manage production Grafana dashboards for real-time visualization of system and application metrics. Use when building monitoring dashboards, visualizing metrics, or creating operational observability interfaces.
Matplotlib
Foundational plotting library. Create line plots, scatter, bar, histograms, heatmaps, 3D, subplots, export PNG/PDF/SVG, for scientific visualization and publication figures.
Scientific Visualization
Create publication figures with matplotlib/seaborn/plotly. Multi-panel layouts, error bars, significance markers, colorblind-safe, export PDF/EPS/TIFF, for journal-ready scientific plots.
Seaborn
Statistical visualization. Scatter, box, violin, heatmaps, pair plots, regression, correlation matrices, KDE, faceted plots, for exploratory analysis and publication figures.
Shap
Model interpretability and explainability using SHAP (SHapley Additive exPlanations). Use this skill when explaining machine learning model predictions, computing feature importance, generating SHAP plots (waterfall, beeswarm, bar, scatter, force, heatmap), debugging models, analyzing model bias or fairness, comparing models, or implementing explainable AI. Works with tree-based models (XGBoost, LightGBM, Random Forest), deep learning (TensorFlow, PyTorch), linear models, and any black-box model
Pydeseq2
Differential gene expression analysis (Python DESeq2). Identify DE genes from bulk RNA-seq counts, Wald tests, FDR correction, volcano/MA plots, for RNA-seq analysis.
Query Writing
For writing and executing SQL queries - from simple single-table queries to complex multi-table JOINs and aggregations
Pydeseq2
Differential gene expression analysis (Python DESeq2). Identify DE genes from bulk RNA-seq counts, Wald tests, FDR correction, volcano/MA plots, for RNA-seq analysis.
Scientific Visualization
Meta-skill for publication-ready figures. Use when creating journal submission figures requiring multi-panel layouts, significance annotations, error bars, colorblind-safe palettes, and specific journal formatting (Nature, Science, Cell). Orchestrates matplotlib/seaborn/plotly with publication styles. For quick exploration use seaborn or plotly directly.
