architecting-systems
Guides clean, scalable system architecture during the build phase. Use when designing modules, defining boundaries, structuring…
Prevents silent failures and context loss in error handling. Use when writing try-catch blocks, designing error propagation, reviewing catch blocks, or implementing Result patterns.
$ npx -y skills add rileyhilliard/claude-essentials --skill handling-errors --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/handling-errorsContext preview
The summary Claude sees to decide when to auto-load this skill.
Prevents silent failures and context loss in error handling. Use when writing try-catch blocks, designing error propagation, reviewing catch blocks, or implementing Result patterns.
name: handling-errors description: Prevents silent failures and context loss in error handling. Use when writing try-catch blocks, designing error propagation, reviewing catch blocks, or implementing Result patterns.
If the current repo has its own rules/skills covering this topic (check .claude/rules/ and repo CLAUDE.md), those take precedence — apply this skill only where they're silent.
| Type | Examples | Handling | | ------------ | ---------------------------------- | --------------------------- | | **Expected** | Validation, Not found, Unauthorized| Return Result type, log info| | **Transient**| Network timeout, Rate limit | Retry with backoff, log warn| | **Unexpected**| Null reference, DB crash | Log error, show support ID | | **Critical** | Auth down, Payment gateway offline | Circuit breaker, alert |
**Fail fast** for critical dependencies:
await connectToDatabase(); // Throws on failure - app can't run without it
**Degrade gracefully** for optional features:
const prefs = await loadPreferences(userId).catch(() => DEFAULT_PREFS);
// ❌ Logging at every layer = same error 3x
async function fetchData() {
try { return await fetch(url); }
catch (e) { console.error("Fetch failed:", e); throw e; }
}
// ✅ Log once where handled
async function fetchData() {
const response = await fetch(url);
if (!response.ok) throw new Error(`HTTP ${response.status}`);
return response;
}
// Top level logs the error once| Pattern | Problem | Fix | |---------|---------|-----| | Empty catch blocks | Hides errors | Log or re-throw | | `return false` on error | Loses context | Return Result type | | Generic "Error" messages | Undebuggable | Include what/why/context | | Logging same error at each layer | Log pollution | Log once at boundary | | Bare `except:` / `catch (e)` all | Catches system signals | Catch specific types |
A unified development plugin for Claude Code with essential skills and specialized agents, all accessible under the ce namespace.
Guides clean, scalable system architecture during the build phase. Use when designing modules, defining boundaries, structuring…
Enforces precise, minimal design for dashboards and admin interfaces. Use when building SaaS UIs, data-heavy interfaces, or any…
Executes implementation plans directly with a verification gate and conditional code review. Use when carrying out a written plan…
Diagnose and fix tests that pass in isolation but fail when run concurrently. Covers shared state isolation, resource conflicts,…
Guides database architecture for PostgreSQL, DuckDB, Parquet, PGVector, and Neo4j. Use when designing schemas, choosing storage…
Guides GitHub Actions CI/CD architecture, security hardening, and deployment strategies. Use when designing workflows, securing…