Skip to content
Development
Skill

/graceful-degradation

Graceful Degradation with Helpful Messages

From plugin
continuous-claude-v3
3.9k156 skills32 agents
Install
$ npx -y skills add parcadei/Continuous-Claude-v3 --skill graceful-degradation --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/graceful-degradation

Context preview

The summary Claude sees to decide when to auto-load this skill.

Graceful Degradation with Helpful Messages

SKILL.md

graceful-degradation.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

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
Read more
Ships withcontinuous-claude-v3

A persistent, learning, multi-agent development environment built on Claude Code Continuous Claude transforms Claude Code into a continuously learning system that maintains context across sessions, orchestrates specialized agents, and eliminates wasting

Get the whole plugin

Other skills on continuous-claude-v3.