Simulink-agentic-toolkit filing-bug-reports
Generate a standalone bug report that another developer can use to reproduce, investigate, and fix an issue. Use when the user says 'file a bug', 'write a bug report', 'report this issue', or asks to document a defect for handoff.
git clone https://github.com/matlab/simulink-agentic-toolkit
T=$(mktemp -d) && git clone --depth=1 https://github.com/matlab/simulink-agentic-toolkit "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills-catalog/model-based-design-core/filing-bug-reports" ~/.claude/skills/matlab-simulink-agentic-toolkit-filing-bug-reports && rm -rf "$T"
skills-catalog/model-based-design-core/filing-bug-reports/SKILL.mdFiling Bug Reports
Generate a self-contained bug report as a Markdown file that gives a receiving developer everything needed to reproduce the issue — without prescribing root cause or solution.
When to Use
- User asks to file, write, or document a bug
- User wants to hand off a defect for another developer to investigate
- User wants a reproducible record of unexpected behavior
When NOT to Use
- User wants to debug and fix the issue themselves right now — just help them directly
- User wants a design review or code review — use
skill insteadcode-review
Output Conventions
- File:
(next available number, kebab-case slug from title)issues/BUG-<NNN>-<slug>.md - Create the
directory if it doesn't existissues/ - One bug per file — never combine multiple bugs
Workflow
-
Reconstruct from conversation context. You were present when the bug occurred — use your conversation history to extract:
- What the user was doing (the action and intent)
- What actually happened (error messages, tool output, unexpected behavior)
- What was expected (infer from the user's goal — e.g., if they asked to read a model and got an error, expected behavior is a successful read)
-
Gather environment details programmatically. Don't ask the user for things you can look up:
- Agent workspace root, OS, architecture: from your system context
- Available skills: list all skills visible to you (from your startup context)
- Loaded skills: list which skills you actually invoked during this session
- Available MCP tools: list the MCP tools you have access to
- Relevant source files: read the files involved in the failure
SATK-specific (when Simulink MCP tools are available):
- SATK version: read the
file at the SATK root. If it doesn't exist and aVERSION
folder is present, read the latest commit hash and note "development build (<hash>)". If neither exists, ask the user what version of Simulink Agentic Toolkit they are using.git/ - MATLAB:
→evaluate_matlab_codedisp(version); ver('simulink'); disp(pwd); disp(computer('arch'))
status:satk_initialize.m
→evaluate_matlab_code
(empty = not run)which('model_read')- Connector:
→evaluate_matlab_codetry; disp(connector.securePort); catch; disp('not running'); end - MCP config: read
for server mode and binary path.vscode/mcp.json
-
Reproduce the bug. Re-run the failing operation to confirm it's reproducible and capture exact output. If it passes on retry, note it as intermittent and try to identify what differs.
-
Shrink to a minimal reproduction. Remove every step, file, and variable that isn't needed to trigger the bug. The goal is the smallest input that still fails.
-
Ask the user ONLY for what you cannot determine:
- Expected behavior — only if the output looks plausible but the user says it's wrong (you can't know what "right" looks like)
- Severity / business impact — only if it's ambiguous (an outright crash is obviously high; a formatting nit is obviously low)
- Context from outside this session — if the user references something you didn't witness
-
Write the report using the template in
. Fill every required section. Mark optional sections N/A if not applicable.reference/bug-report-template.md -
Review before saving. Verify:
- A developer unfamiliar with the project can follow the steps without asking questions
- No root cause or fix is prescribed (observations and hypotheses go in the Notes section only)
- Error messages and logs are exact copies, not paraphrased
- The title follows the format:
[Area] — Action — Unexpected result
Guardrails
- Always: Include exact reproduction steps starting from a clean/known state
- Always: Include verbatim error messages and log output (never paraphrase)
- Always: Specify the environment (versions, OS, platform)
- Never: State the root cause — that's the investigator's job
- Never: Propose a fix in the report body (hypotheses go in Notes only, clearly marked as speculation)
- Never: Include secrets, tokens, passwords, or PII — redact with
<REDACTED>
References
— The output template (always use this structure)reference/bug-report-template.md