View a defect
"Show me defect 1762."
"Get the details for defect 42."
"What is the root cause for defect 1761?"
List defects
"Show open defects in the project."
"List defects for story 837."
"Show me Critical and Blocker defects."
Create a defect
Monty collects each required field from you before drafting the defect. It will never invent your steps to reproduce, actual behavior, expected behavior, or severity. The conversation follows this order:
1Link to a story — Provide the public story number (e.g. 837) the defect belongs to.
2Steps to Reproduce — Provide the exact steps that trigger the issue. Monty will not generate these for you.
3Actual Behavior — Describe what actually happens — what you see or experience when the bug occurs.
4Expected Behavior — Describe what should happen instead.
5Severity — Monty presents the severity options and waits for your selection. It is never auto-selected.
6Title — Monty can generate a concise title from your three content fields, or you can provide your own.
7Preview & confirm — Monty shows the full defect before saving. Reply yes or confirm to proceed, or no to cancel.
You can also provide all the information in one message and skip the step-by-step collection. Monty will still show a preview before saving.
Example — filing a defect in one message:
"File a defect against story 837. Steps to reproduce: go to the Reports page and click Export CSV. Actual behavior: the page shows a blank white screen. Expected behavior: a CSV file downloads. Severity: Critical."
Update a defect
All fields are optional — only what you mention is changed. Every other field stays exactly as it is in the database.
Change status
"Mark defect 1762 as Fixed."
"Move defect 42 to In Development."
"Close defect 107."
Add root cause or resolution
"Add root cause for defect 1761: the export handler was not checking for a null session before writing to the response stream."
"Add resolution for defect 1761: added a null check in ExportController before calling response.getWriter()."
By default, Monty appends to existing root cause and resolution text. Say "replace the root cause" if you want to overwrite instead of append.
Assign a defect
"Assign defect 1762 to me for development."
"Set QA owner for defect 42 to Sarah."
Update other fields
"Update severity for defect 1762 to Blocker."
"Add a note to defect 42: reproduced on Firefox 122 only."
"Add verification proof to defect 1761: confirmed fixed on staging as of build 2.4.1."
Severity reference
| ID | Label | When to use |
|---|
| 1 | Blocker | Prevents release; no workaround |
| 2 | Critical | Major functionality broken; workaround is difficult |
| 3 | Major | Significant impact but a workaround exists |
| 4 | Minor | Limited impact; cosmetic or low-priority |
| 5 | Trivial | Negligible impact; e.g. typos, minor layout issues |
Status reference
| ID | Status |
|---|
| 1 | Open |
| 2 | In Development |
| 3 | Fixed |
| 5 | Closed |
| 6 | Re-opened |
Troubleshooting
Monty asks for a field I thought I provided
Steps to Reproduce, Actual Behavior, Expected Behavior, and Severity are all required. Monty will not proceed without each one explicitly from you — this prevents fabricated defect data.
Story not found when creating a defect
Use the public-facing story number shown in the Silverile UI. Monty looks up the internal ID automatically — if it cannot find the story it returns an error rather than guessing.
Root cause was overwritten instead of appended
Check whether you said "replace" in your message. By default Monty appends to existing content. Say "add to the root cause" to make the intent explicit.
Defect status shows 0 in the database
This should not happen with the current version — new defects default to status 1 (Open). If you see 0, the defect was created by an older version. Update it with "Set defect X to Open".