agent-customization
**WORKFLOW SKILL** — Create, update, review, fix, or debug VS Code agent customization files (.instructions.md, .prompt.md,…
Investigate unexpected chat agent behavior by analyzing direct debug logs in JSONL files. Use when users ask why something happened, why a request was slow, why tools or subagents were used or skipped, or why instructions/skills/agents did not load.
Claude Code
$ npx -y skills add microsoft/vscode --skill troubleshoot --agent claude-code
Codex
$ npx skills add microsoft/vscode --skill troubleshoot -a codex -y
Cursor
$ npx skills add microsoft/vscode --skill troubleshoot -a cursor -y
Gemini CLI
$ npx skills add microsoft/vscode --skill troubleshoot -a gemini-cli -y
GitHub Copilot
$ npx skills add microsoft/vscode --skill troubleshoot -a github-copilot -y
OpenCode
$ npx skills add microsoft/vscode --skill troubleshoot -a opencode -y
Windsurf
$ npx skills add microsoft/vscode --skill troubleshoot -a windsurf -y
name: troubleshoot description: Investigate unexpected chat agent behavior by analyzing direct debug logs in JSONL files. Use when users ask why something happened, why a request was slow, why tools or subagents were used or skipped, or why instructions/skills/agents did not load.
This skill investigates and explains unexpected chat agent behavior using direct log files.
Use this skill for questions like:
Base conclusions on evidence from logs. Do not guess.
Use direct debug log files written by Copilot Chat:
debug-logs/<sessionId>/ main.jsonl — always start here; primary conversation log models.json — (optional) snapshot of available models at session start system_prompt_0.json — (optional) full system prompt sent to the model (untruncated) system_prompt_1.json — (optional) written when the model changes mid-session tools_0.json — (optional) tool definitions sent to the model tools_1.json — (optional) written when the model changes mid-session runSubagent-<agentName>-<uuid>.jsonl — (optional) subagent's tool calls & LLM requests searchSubagent-<uuid>.jsonl — (optional) search subagent work title-<uuid>.jsonl — (optional, UI-only) title generation categorization-<uuid>.jsonl — (optional, UI-only) prompt categorization summarize-<uuid>.jsonl — (optional, UI-only) conversation summarization
Always read `main.jsonl` first — it has the full conversation flow. Child files only appear when those operations occurred. `main.jsonl` contains `child_session_ref` entries that link to each child file by name. Title, categorization, and summarize files are UI housekeeping and rarely relevant to troubleshooting. When investigating model availability or selection issues, read `models.json` — it contains the full list of models (with capabilities, billing, and limits) that were available when the session started.
When investigating what the model was told (system prompt, instructions), read the `system_prompt_*.json` file referenced by a `system_prompt_ref` entry in `main.jsonl`. The file contains the full untruncated system prompt as `{ "content": "..." }`. When investigating which tools were available, read the `tools_*.json` file similarly. If the model changed mid-session, multiple numbered files exist — each `llm_request` entry has a `systemPromptFile` attr indicating which file was active for that request.
Each line is a JSON object. Common fields: `ts` (epoch ms), `dur` (duration ms), `sid` (session ID), `type`, `name`, `spanId`, `parentSpanId`, `status` (`ok`|`error`), `attrs` (type-specific details).
{"ts":1773200251309,"dur":0,"sid":"62f52dec","type":"discovery","name":"Load Instructions","spanId":"2cb1f2f4","status":"ok","attrs":{"details":"Resolved 0 instructions in 0.0ms | folders: [/c:/Users/user/.copilot/instructions, /workspace/.github/instructions]","category":"discovery","source":"core"}}
{"ts":1773200251415,"dur":0,"sid":"62f52dec","type":"discovery","name":"Load Agents","spanId":"38a897d8","status":"ok","attrs":{"details":"Resolved 3 agents in 0.0ms | loaded: [Plan, Ask, Explore] | folders: [/workspace/.github/agents]","category":"discovery","source":"core"}}
{"ts":1773200251431,"dur":0,"sid":"62f52dec","type":"discovery","name":"Load Skills","spanId":"472eb225","status":"ok","attrs":{"details":"Resolved 6 skills in 0.0ms | loaded: [agent-customization, troubleshoot, ...]","category":"discovery","source":"core"}}Key attrs: `details` (human-readable summary with folder paths, loaded items, skip reasons), `category` (always `"discovery"`), `source` (`"core"`).
{"ts":1773200222647,"dur":4,"sid":"62f52dec","type":"tool_call","name":"manage_todo_list","spanId":"000000000000000b","parentSpanId":"0000000000000003","status":"ok","attrs":{"args":"{\"operation\":\"read\"}","result":"No todo list found."}}
{"ts":1773200234047,"dur":8937,"sid":"62f52dec","type":"tool_call","name":"run_in_terminal","spanId":"000000000000000d","parentSpanId":"0000000000000003","status":"error","attrs":{"args":"{\"command\":\"echo rama\"}","result":"ERROR: conpty.node missing","error":"A native exception occurred during launch"}}Key attrs: `args` (JSON string of tool input), `result` (tool output or error text), `error` (present when `status:"error"`).
{"ts":1773200231010,"dur":3001,"sid":"62f52dec","type":"llm_request","name":"chat:gpt-4o","spanId":"000000000000000c","parentSpanId":"0000000000000003","status":"ok","attrs":{"model":"gpt-4o","inputTokens":15025,"outputTokens":126,"ttft":1987,"maxTokens":32000,"systemPromptFile":"system_prompt_0.json","userRequest":"echo hello","inputMessages":"[{...}]"}}Key attrs: `model`, `inputTokens`, `outputTokens`, `ttft` (time to first token in ms), `maxTokens`, `temperature`, `topP`, `systemPromptFile` (references a system prompt file in the session directory), `toolsFile` (references a tools file in the session directory), `userRequest` (the full user message content, untruncated), `inputMessages` (full messages array as JSON, truncated to the configured `maxAttributeSizeChars` — unlimited by default), `error` (when failed).
{"ts":1773200234011,"dur":0,"sid":"62f52dec**WORKFLOW SKILL** — Create, update, review, fix, or debug VS Code agent customization files (.instructions.md, .prompt.md,…
Analyze Copilot session history for standup reports, usage tips, session search, and session reindexing. Use when the user asks…
Create a Copilot extension canvas at user, workspace, or plugin scope.
Create a hook (.json) to enforce policy or automate agent lifecycle events.
Create an instructions file (.instructions.md) for a project rule or convention.
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.