Skip to content
Back to skills

Doctor

ASecurity

System health diagnostics and troubleshooting

  • 2,496 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 10, 2026
blockchaintypescriptbashsqlnodeapidatabase

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add alsk1992/CloddsBot --skill doctor --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Doctor?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Doctor
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/alsk1992-doctor/badge)](https://www.skillsdirectory.com/skills/alsk1992-doctor)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: doctor
description: "System health diagnostics and troubleshooting"
emoji: "🩺"
---

# Doctor - Complete API Reference

Run system diagnostics, check health status, and troubleshoot issues.

---

## Chat Commands

### Health Checks

```
/doctor                                     Run all diagnostics
/doctor quick                               Quick health check
/doctor full                                Full diagnostic scan
/doctor <component>                         Check specific component
```

### Component Checks

```
/doctor system                              OS, memory, disk
/doctor node                                Node.js version, memory
/doctor network                             Connectivity tests
/doctor api                                 API key validation
/doctor database                            Database connection
/doctor channels                            Channel health
```

### Status

```
/health                                     Quick health status
/status                                     System status overview
/status verbose                             Detailed status
```

---

## TypeScript API Reference

### Create Doctor Service

```typescript
import { createDoctorService } from 'clodds/doctor';

const doctor = createDoctorService({
  // Checks to run
  checks: ['system', 'node', 'network', 'api', 'database', 'channels'],

  // Thresholds
  thresholds: {
    memoryWarning: 80,    // % memory usage
    memoryCritical: 95,
    diskWarning: 80,      // % disk usage
    diskCritical: 95,
    latencyWarning: 1000, // ms
    latencyCritical: 5000,
  },

  // Timeout
  timeoutMs: 30000,
});
```

### Run Diagnostics

```typescript
// Run all checks
const report = await doctor.runDiagnostics();

console.log(`Overall: ${report.status}`);  // 'healthy' | 'degraded' | 'unhealthy'
console.log(`Checks passed: ${report.passed}/${report.total}`);

for (const check of report.checks) {
  const icon = check.status === 'pass' ? 'βœ“' : check.status === 'warn' ? '⚠' : 'βœ—';
  console.log(`${icon} ${check.name}: ${check.message}`);
  if (check.details) {
    console.log(`  ${JSON.stringify(check.details)}`);
  }
}
```

### Run Specific Check

```typescript
// Check system resources
const system = await doctor.checkSystem();

console.log(`OS: ${system.os} ${system.version}`);
console.log(`CPU: ${system.cpuUsage}%`);
console.log(`Memory: ${system.memoryUsage}% (${system.memoryUsedGB}/${system.memoryTotalGB} GB)`);
console.log(`Disk: ${system.diskUsage}% (${system.diskUsedGB}/${system.diskTotalGB} GB)`);
```

### Check Node.js

```typescript
const node = await doctor.checkNode();

console.log(`Node.js: ${node.version}`);
console.log(`Heap: ${node.heapUsed}/${node.heapTotal} MB`);
console.log(`RSS: ${node.rss} MB`);
console.log(`Uptime: ${node.uptime} seconds`);
```

### Check Network

```typescript
const network = await doctor.checkNetwork();

console.log(`Internet: ${network.internet ? 'Connected' : 'Disconnected'}`);
console.log(`DNS: ${network.dns ? 'Working' : 'Failed'}`);

for (const [endpoint, result] of Object.entries(network.endpoints)) {
  console.log(`${endpoint}: ${result.reachable ? 'OK' : 'Failed'} (${result.latencyMs}ms)`);
}
```

### Check API Keys

```typescript
const api = await doctor.checkApiKeys();

for (const [provider, status] of Object.entries(api)) {
  console.log(`${provider}: ${status.valid ? 'Valid' : 'Invalid'}`);
  if (status.error) {
    console.log(`  Error: ${status.error}`);
  }
  if (status.quota) {
    console.log(`  Quota: ${status.quota.used}/${status.quota.limit}`);
  }
}
```

### Check Database

```typescript
const db = await doctor.checkDatabase();

console.log(`Connected: ${db.connected}`);
console.log(`Latency: ${db.latencyMs}ms`);
console.log(`Version: ${db.version}`);
console.log(`Tables: ${db.tables}`);
console.log(`Size: ${db.sizeMB} MB`);
```

### Check Channels

```typescript
const channels = await doctor.checkChannels();

for (const channel of channels) {
  console.log(`${channel.name}: ${channel.status}`);
  if (channel.error) {
    console.log(`  Error: ${channel.error}`);
  }
  console.log(`  Connected: ${channel.connected}`);
  console.log(`  Last message: ${channel.lastMessage}`);
}
```

### Format Report

```typescript
// Get formatted report
const report = await doctor.runDiagnostics();
const formatted = doctor.formatReport(report);

console.log(formatted);
// Outputs nicely formatted diagnostic report
```

---

## Diagnostic Checks

| Check | What it Tests |
|-------|---------------|
| **system** | OS, CPU, memory, disk |
| **node** | Node.js version, heap, memory |
| **network** | Internet, DNS, API endpoints |
| **api** | API key validity and quotas |
| **database** | Connection, latency, schema |
| **channels** | Channel connections, health |
| **mcp** | MCP server connections |
| **dependencies** | npm packages, versions |

---

## Status Levels

| Status | Meaning |
|--------|---------|
| **healthy** | All checks pass |
| **degraded** | Some warnings, still functional |
| **unhealthy** | Critical failures, action needed |

### Check Results

| Result | Meaning |
|--------|---------|
| **pass** | Check succeeded |
| **warn** | Warning threshold exceeded |
| **fail** | Critical failure |
| **skip** | Check skipped (not applicable) |

---

## CLI Commands

```bash
# Run all diagnostics
clodds doctor

# Quick check
clodds doctor --quick

# Check specific component
clodds doctor --check system

# JSON output
clodds doctor --json
```

---

## Common Issues

### High Memory Usage
```
⚠ Memory: 85% used
```
**Solution**: Restart the service or increase available memory

### API Key Invalid
```
βœ— Anthropic API: Invalid key
```
**Solution**: Check ANTHROPIC_API_KEY in .env

### Database Connection Failed
```
βœ— Database: Connection refused
```
**Solution**: Check DATABASE_URL and ensure PostgreSQL is running

### Channel Disconnected
```
⚠ Telegram: Disconnected
```
**Solution**: Check TELEGRAM_BOT_TOKEN and network connectivity

---

## Best Practices

1. **Run regularly** β€” Check health daily or after changes
2. **Monitor trends** β€” Watch for gradual degradation
3. **Set alerts** β€” Alert on unhealthy status
4. **Fix warnings** β€” Don't wait for failures
5. **Review before deploy** β€” Run doctor before production changes

Files in this skill

  • SKILL.md6.2 KB
  • index.ts2.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.