stacks-health

$npx mdskill add stacksjs/stacks/stacks-health

Implement health checks and diagnostics in Stacks applications.

  • Monitors service health via built-in GET /health endpoint.
  • Depends on @stacksjs/health package and Oh Dear driver (WIP).
  • Uses route.health() to register and return system metrics.
  • Returns JSON with status, uptime, memory, pid, and Bun version.

SKILL.md

.github/skills/stacks-healthView on GitHub ↗
---
name: stacks-health
description: Use when implementing health checks in a Stacks application — service monitoring, health endpoints, or diagnostic checks. Covers @stacksjs/health (currently WIP — Oh Dear integration planned).
license: MIT
compatibility: Bun >= 1.3.0, TypeScript
allowed-tools: Read Edit Write Bash Grep Glob
---

# Stacks Health

## Key Paths
- Core package: `storage/framework/core/health/src/`
- Drivers: `storage/framework/core/health/src/drivers/`
- Notifications: `storage/framework/core/health/src/notifications/`
- Package: `@stacksjs/health`

## Source Files
```
health/src/
├── index.ts              # Re-exports drivers and notifications
├── drivers/
│   ├── index.ts          # Driver exports
│   └── ohdear.ts         # Oh Dear health check driver (WIP)
└── notifications/
    └── index.ts          # Health notifications (WIP)
```

## Current Status

**This package is WIP.** Current exports are placeholder markers:

```typescript
export const ohdearWip = 1              // Oh Dear driver placeholder
export const healthNotificationsWip = 1  // Notifications placeholder
```

## Built-in Health Endpoint

The health check functionality currently lives in the router, not this package:

```
GET /health
```

Returns:
```json
{
  "status": "ok",
  "uptime": 12345,
  "memory": { "rss": 1234567, "heapUsed": 987654 },
  "pid": 1234,
  "bunVersion": "1.3.0"
}
```

This endpoint is registered via `route.health()` in the router.

## CLI Commands

```bash
buddy doctor              # Comprehensive system diagnostics
```

## Planned Features
- Oh Dear integration for external health monitoring
- Health check notifications (email, Slack, etc.)
- Custom health check drivers
- Database connectivity checks
- External service status verification

## Gotchas
- **Package is WIP** — only placeholder exports exist
- **Health endpoint is in the router** — `GET /health` works via `route.health()`, not this package
- **`buddy doctor`** — system diagnostics are in the buddy CLI, not this health package
- **Oh Dear driver planned** — integration with ohdear.app for external monitoring

More from stacksjs/stacks

SkillDescription
stacks-actionsUse when working with Stacks server actions — creating actions in app/Actions/, auto-generated API actions from the useApi model trait, the 80+ default framework actions (auth, dashboard, commerce, content, deployment, jobs), action request/response handling, or action registration. Covers @stacksjs/actions and storage/framework/defaults/actions/.
stacks-aiUse when integrating AI capabilities into a Stacks application — using Anthropic/OpenAI/Ollama/AWS Bedrock drivers, image generation (DALL-E), vision analysis, RAG/vector search, embeddings, MCP (Model Context Protocol) clients, text summarization, sentiment analysis, content classification, personalization, or the buddy AI assistant. Covers @stacksjs/ai and config/ai.ts.
stacks-aliasUse when working with path aliases in a Stacks project — import resolution, module aliasing, or debugging import paths. Covers @stacksjs/alias which defines 260+ path mappings for the entire framework.
stacks-analyticsUse when adding analytics to a Stacks application — configuring Fathom or self-hosted analytics, generating tracking scripts, privacy-friendly analytics setup, or the analytics configuration. Covers @stacksjs/analytics and config/analytics.ts.
stacks-apiUse when building, modifying, or debugging API endpoints in a Stacks application — defining routes, handling requests, API middleware, working with the API server, HTTP client (fetcher), API resources, or OpenAPI generation. Covers both @stacksjs/api utilities and the stacks-api server implementation.
stacks-arraysUse when working with array utilities in Stacks — statistical operations (average, median, mode, standard deviation, z-score, percentile, covariance), array manipulation (unique, flatten, partition, shuffle, sample, move), containment checks, or the Arr facade. Covers @stacksjs/arrays.
stacks-authUse when implementing authentication, authorization, passkeys, TOTP/2FA, RBAC, gates, policies, session auth, token management, email verification, password resets, or rate limiting in a Stacks application. Covers the @stacksjs/auth package, config/auth.ts, app/Gates.ts, and app/Middleware/.
stacks-auto-importsUse when working with the Stacks auto-import system — understanding how browser and server auto-imports work, configuring auto-imported functions/models/composables, the auto-import manifests, type generation, or how globals are injected. Covers the auto-import pipeline at storage/framework/auto-imports/.
stacks-brandkitUse when defining or exploring a brand identity for a Stacks project and you want premium brand-kit REFERENCE IMAGES first - logo directions, palettes, typography specimens, identity boards, and application/mockup decks. Generates IMAGES ONLY, never code. Trained for minimalist, cinematic, editorial, dark-tech, luxury, cultural, security, gaming, developer-tool, and consumer-app brand systems with intentional logo concepting, sparse type, strong symbolic meaning, and disciplined palettes a coding step can build against.
stacks-browseUse for headless browser QA on Stacks applications — navigation, screenshots, responsive testing, console/network monitoring, and accessibility snapshots. Dependency-free: drives a system browser over the Chrome DevTools Protocol using only Bun (no Playwright/Puppeteer). Invoke with /stacks-browse.