Silent failure detection patterns for frontend code. Triggers: サイレント障害, silent failure, 空のcatch, empty catch, 未処理Promise, unhandled rejection, unhandled promise, Error Boundary, fire and forget, エラーハンドリング, error handling, try-catch.
/plugin marketplace add thkt/claude-config/plugin install complete-workflow-system@thkt-development-workflowsThis skill is limited to using the following tools:
references/detection-patterns.mdTarget: All failures are visible, debuggable, and user-informed.
| Pattern | Risk | Impact |
|---|---|---|
| Empty catch block | [Critical] | Errors completely hidden |
| Promise without catch | [Critical] | Unhandled rejections |
| Fire and forget async | [High] | Lost error context |
| Console.log only | [High] | No user feedback |
| Missing Error Boundary | [High] | App crash on component error |
| Excessive optional chaining | [Medium] | May mask bugs |
| Section | File | Focus | Triggers |
|---|---|---|---|
| Detection | references/detection-patterns.md | Regex patterns, search commands | 空のcatch, empty catch |
.catch or try-catch)console.log as only error handling| Principle | Application |
|---|---|
| Fail Fast | Make failures visible and immediate |
| User Feedback | Always inform users of failures |
| Context Logging | Log with enough info to debug |
| Graceful Degradation | Fail gracefully, not silently |
# Empty catch blocks
rg "catch\s*\([^)]*\)\s*\{\s*\}" --glob "*.{ts,tsx}"
# Then without catch
rg "\.then\([^)]+\)$" --glob "*.{ts,tsx}"
# Console.log only error handling
rg "catch.*console\.log" --glob "*.{ts,tsx}"
// Bad: Silent failure
try {
await fetchUserData();
} catch (e) {
// Nothing here - error disappears
}
// Good: Proper handling
try {
await fetchUserData();
} catch (error) {
logger.error("Failed to fetch user data", { error });
setError("Unable to load user data. Please try again.");
}
// Bad: Unhandled rejection
fetchData().then((data) => setData(data));
// Good: With error handling
fetchData()
.then((data) => setData(data))
.catch((error) => {
logger.error("Failed to fetch data", error);
setError("Loading failed");
});
reviewing-type-safety - Type safety catches some errors at compile timegenerating-tdd-tests - Test error pathssilent-failure-reviewer - Primary consumer of this skillThis skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.