with one click
error-audit
// Audit code for silent error swallowing, fallbacks to degraded alternatives, backwards compatibility shims, and UI that fails to show errors to the user. Finds and fixes all occurrences in the specified scope.
// Audit code for silent error swallowing, fallbacks to degraded alternatives, backwards compatibility shims, and UI that fails to show errors to the user. Finds and fixes all occurrences in the specified scope.
Interview-driven planning methodology that produces implementation-ready plans. Always use this skill INSTEAD of EnterPlanMode — it provides structured interviewing (20-40 clarifying questions), exhaustive parallel codebase exploration (5-15 Explore agents), verbatim requirements capture, and automated plan validation via plan-reviewer (must score 9+). Use for new features, refactoring, architecture changes, migrations, or any non-trivial implementation work.
Audit code for observability gaps — debug logs left in, errors caught without being logged, missing context on log entries, untracked slow operations. Uses the app's existing observability tooling exclusively.
Audit UI code for missing loading states, empty states, and error states. Every async operation and data-driven UI must handle all three. Finds gaps and implements the missing states using the app's existing patterns.
Scan all .md files in the project and add or fix YAML frontmatter (summary + read_when) so they can be discovered by context routers like Reflex.
Create or update .meridian/docs/ knowledge files for a module or directory. Produces reference docs with frontmatter for context routing.
| name | error-audit |
| description | Audit code for silent error swallowing, fallbacks to degraded alternatives, backwards compatibility shims, and UI that fails to show errors to the user. Finds and fixes all occurrences in the specified scope. |
The core principle: every error belongs to the user. Not to a catch block, not to a console, not to a null return. Scan the specified code, fix every violation, report what changed.
Before fixing anything, identify how this app surfaces errors to users — toast notifications, error banners, error boundaries, returned error states, alert dialogs, inline messages. Use these patterns exclusively. Don't invent a new one.
Silent error swallowing — backend/logic layer:
catch(e) {}catch(e) { console.error(e) } with execution proceeding normally.catch(() => {}) on promisesnull, undefined, or empty defaults on failure instead of throwingSilent error swallowing — UI layer:
try/catch in a loader or server action that swallows the error and returns partial/empty dataFallbacks to degraded alternatives:
Backwards compatibility shims:
if (legacyFormat) or if (oldVersion) branchesConfig defaults that hide misconfiguration:
process.env.X || 'fallback' for required values — missing required config is a startup crash, not a defaultOptional chaining hiding missing required data:
user?.profile?.name ?? 'Guest' when profile must always exist — the absence is a bug, not an edge case to handle silentlyreferences/error-patterns.md — Concrete anti-patterns with structural descriptions, bad/good code examples, and false positive notes. Read this before starting the audit.After fixing, summarize by file: what was found, what the fix was. Be specific — file paths and the pattern removed.