# Graceful Degradation

Graceful Degradation with Helpful Messages

- Repository: https://github.com/parcadei/Continuous-Claude-v3 (3947 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-01-26
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add parcadei/Continuous-Claude-v3 --skill graceful-degradation -g -a claude-code -y`
Codex: `npx skills add parcadei/Continuous-Claude-v3 --skill graceful-degradation -g -a codex -y`
Cursor: `npx skills add parcadei/Continuous-Claude-v3 --skill graceful-degradation -g -a cursor -y`
Gemini CLI: `npx skills add parcadei/Continuous-Claude-v3 --skill graceful-degradation -g -a gemini-cli -y`

## Description

Graceful Degradation with Helpful Messages

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Graceful Degradation with Helpful Messages

When optional services are unavailable, degrade gracefully with actionable fallback messages.

## Pattern

Check availability at the start, cache the result, and provide helpful messages that explain what's missing and how to fix it.

## DO

- Check service availability early (before wasting compute)
- Cache health check results for the session (e.g., 60s TTL)
- Provide actionable fallback messages:
  - What service is missing
  - What features are degraded
  - How to enable the service
- Continue with reduced functionality when possible

## DON'T

- Silently fail or return empty results
- Check availability on every call (cache it)
- Assume the user knows how to start missing services

## Example: LMStudio Check Pattern

```typescript
let lmstudioAvailable: boolean | null = null;
let lastCheck = 0;
const CACHE_TTL = 60000; // 60 seconds

async function checkLMStudio(): Promise<boolean> {
  const now = Date.now();
  if (lmstudioAvailable !== null && now - lastCheck < CACHE_TTL) {
    return lmstudioAvailable;
  }

  try {
    const response = await fetch('http://localhost:1234/v1/models', {
      signal: AbortSignal.timeout(2000)
    });
    lmstudioAvailable = response.ok;
  } catch {
    lmstudioAvailable = false;
  }
  lastCheck = now;
  return lmstudioAvailable;
}

// Usage
if (!await checkLMStudio()) {
  return {
    result: 'continue',
    message: `LMStudio not available at localhost:1234.

To enable Godel-Prover tactic suggestions:
1. Install LMStudio from https://lmstudio.ai/
2. Load "Goedel-Prover-V2-8B" model
3. Start the local server on port 1234

Continuing without AI-assisted tactics...`
  };
}
```

## Fallback Message Template

```
[Service] not available at [endpoint].

To enable [feature]:
1. [Step to install/start]
2. [Configuration step if needed]
3. [Verification step]

Continuing without [degraded feature]...
```

## Source Sessions

The rest: https://github.com/parcadei/Continuous-Claude-v3/blob/HEAD/.claude/skills/graceful-degradation/SKILL.md
