Skip to content
Back to skills

Graceful Degradation

ASecurity

Graceful Degradation with Helpful Messages

  • 3,935 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 7, 2026
developmenttypescriptgodebugging

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add parcadei/Continuous-Claude-v3 --skill graceful-degradation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Graceful Degradation?

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

Security grade badge for Graceful Degradation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/parcadei-graceful-degradation/badge)](https://www.skillsdirectory.com/skills/parcadei-graceful-degradation)

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: graceful-degradation
description: Graceful Degradation with Helpful Messages
user-invocable: false
---

# 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

- This session: LMStudio availability check with 60s caching and helpful fallback
- 174e0ff3: Environment variable debugging - print computed paths for troubleshooting

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…