plugins/vercel/skills/investigation-mode/SKILL.md
Orchestrated debugging coordinator. Triggers on frustration signals (stuck, hung, broken, waiting) and systematically triages: runtime logs → workflow status → browser verify → deploy/env. Reports findings at every step.
npx skillsauth add openai/plugins investigation-modeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
When a user reports something stuck, hung, broken, or not responding, you are the diagnostic coordinator. Do not guess. Follow the triage order, report what you find at every step, and stop when you have a high-confidence root cause.
Every investigation step MUST follow this pattern:
Never silently move between steps. The user is already frustrated — silence makes it worse.
Work through these in order. Stop as soon as you find the root cause.
vercel logs --follow (production) or vercel logs <deployment-url>Tell the user: "Checking runtime logs…" → share what you found → explain next step.
If the app uses workflows, queues, or cron jobs:
vercel workflow runs list to check recent run statusesrunning state — likely a missing await or unresolved promisevercel workflow runs get <run-id>Tell the user: "Checking workflow run status…" → share the run state → explain next step.
Use agent-browser to visually verify what the user sees:
Tell the user: "Taking a browser screenshot to see the current state…" → share the screenshot → explain what you see.
vercel inspect <deployment-url> — check build output, function regions, environmentvercel ls — verify the latest deployment succeededTell the user: "Checking deployment status…" → share the deployment state → explain findings.
Stop investigating when:
Do not keep cycling through steps hoping something appears. If logs are empty and workflows look fine, say so and ask the user what they expected to happen.
When logs point to code issues, check for these frequent culprits:
await: Async functions called without await cause silent failureswhile(true) without break conditions, recursive calls without base casesnew Promise() that never calls resolve() or reject()process.env.X returning undefined causing silent auth/DB failuresnext() or returns a responsevercel.json maxDuration)If the investigation reveals insufficient observability, add structured logging immediately — you cannot debug what you cannot see.
// API routes — wrap handlers with try/catch + logging
export async function POST(request: Request) {
console.log('[api/route] incoming request', { method: 'POST', url: request.url });
try {
const result = await doWork();
console.log('[api/route] success', { resultId: result.id });
return Response.json(result);
} catch (error) {
console.error('[api/route] failed', { error: String(error), stack: (error as Error).stack });
return Response.json({ error: 'Internal error' }, { status: 500 });
}
}
// Workflow steps — log entry/exit of every step
const result = await step.run('process-data', async () => {
console.log('[workflow:process-data] step started');
const data = await fetchData();
console.log('[workflow:process-data] step completed', { count: data.length });
return data;
});
Key principle: Every async boundary, every external call, every step entry/exit should have a log line. When something hangs, the last log line tells you exactly where it stopped.
Cross-reference: For comprehensive logging setup (OpenTelemetry, log drains, Sentry, Vercel Analytics), see the observability skill. For workflow-specific debugging, see the workflow skill.
tools
Top-level workflow skill for USD performance diagnosis and optimization. Use for slow loading, high memory, low FPS, or 'optimize my scene' requests; delegates auth/runtime setup to Phase 0 owners.
data-ai
Use when the user mentions MagicPath, designs, UI components, themes, canvas selections, or repo-to-canvas UI work; run magicpath-ai to search, inspect, install, or author components.
documentation
Use as the top-level router for Omniverse Realtime Viewer USD app requests and focused viewer reference documents.
tools
Turn Notion specs into implementation plans, tasks, and progress tracking; use when implementing PRDs/feature specs and creating Notion plans + tasks from them.