From ship
Detects silent failures in code: empty catch blocks, missing .catch() handlers, swallowed errors, and silent fallbacks. Provides detection patterns and fixes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ship:use-context-reviewer-silenceWhen to use
silent failure, empty catch, エラーハンドリング, 握りつぶし, swallowed error
reviewer-silenceThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
| ID | Pattern | Fix |
| ID | Pattern | Fix |
|---|---|---|
| SF1 | catch (e) {} | catch (e) { logger.error(e); throw } |
| SF1 | catch (e) { console.log(e) } | Show user feedback + log context |
| SF2 | .then(fn) without .catch() | Add .catch() or use try/catch |
| SF2 | async () => { await fn() } | Wrap in try/catch, handle error |
| SF3 | No error UI states | Add error boundary, feedback component |
| SF4 | value ?? defaultValue silently | Log when using fallback |
| SF4 | data?.nested?.value | Check and report if unexpected null |
| SF5 | catch { return defaultValue } | Log root cause before returning default |
| SF5 | config.x || fallback | Validate config, warn on missing keys |
| Topic | File |
|---|---|
| Detection | ${CLAUDE_SKILL_DIR}/references/detection-patterns.md |
npx claudepluginhub thkt/dotclaude --plugin shipAudits code for silent error swallowing, degraded fallbacks, backwards compatibility shims, and UI failing to show errors to users. Finds and fixes all occurrences in specified scope.
Deep error-path analysis for auditing failure semantics: propagation, observability, recovery. Catches silent failures, partial failure mismatches, and resilience gaps in code.
Detects silent degradation patterns where operations succeed but produce empty results due to unmet preconditions. Scans JS/TS, Python, Go, Rust code for missing checks, silent skips, and misleading success messages.