1What is BugBuddy?
BugBuddy is RoboClaw's dedicated bug-filing subsystem. Instead of copy-pasting failures into your tracker, you trigger BugBuddy from inside VS Code and it pushes a fully-formed Bug with one click — capturing the surrounding context automatically.
It supports four entry points:
- From the last test failure — uses Robot Framework's
output.xml - From a code/log selection — highlight any text in the editor
- From a test conclusion — RoboClaw's analyzer surfaces "this looks broken" verdicts
- Manually — open the form fresh and fill it yourself
roboclaw.projectManagement and picks the right tracker automatically.
2One-time Configuration
Open the BugBuddy settings panel:
For Azure DevOps
- Confirm
roboclaw.ado.organizationandroboclaw.ado.projectare set. - (Optional) Set
roboclaw.ado.areaPathandroboclaw.ado.iterationPath— applied to every new Bug. - If your process template requires custom fields, edit
roboclaw.ado.fieldMappingsandroboclaw.ado.extraFields(see section 9).
For Jira
- Confirm
roboclaw.jira.domain,jira.project, andjira.emailare set. - If you don't have a Jira API token saved, run
RoboClaw: Store Jira API Token— stored inSecretStorage.
SecretStorage API — they're never written to disk in plain text and never logged.
3File from a Test Failure
The fastest path — RoboClaw already has the failure context.
- Run your Robot suite (RoboClaw: Run Separate Test Scripts).
- When the run finishes, click the 🐞 File Bug action on the failure notification,
or runRoboClaw: BugBuddy: File Bug from Last Failure. - BugBuddy opens a pre-filled form:
- Title — generated from failing keyword + assertion
- Repro steps — parsed from
output.xmlwith timestamps - Severity — defaulted from suite tags (e.g.
@critical → S1) - Environment — from your Appium / Selenium session
- Attachments — last screenshot +
output.xmltail
- Edit anything you want and click Submit.
# Auto-generated title
[Shift Planner] Publish Shift fails with timeout after 30s on iPad Mini iOS 17.5
# Auto-generated repro
1. Launch app, login as supervisor
2. Navigate to Shift Planner
3. Tap draft shift card
4. Tap "Publish" button
Expected: Toast appears within 2s
Actual: Spinner indefinitely; AppiumLibrary timeout at 30s
4File from a Code or Log Selection
Use this when you spot something suspect in a log file, a generated script, or any other text in the editor.
- Select the relevant text (a stack trace, a console line, a TODO comment, etc.).
- Run
RoboClaw: BugBuddy: File Bug from Selectionfrom the Command Palette or right-click menu. - BugBuddy populates the form with the selected text as the description and the file path as context.
.log files, suspicious lines in output.xml, even comments in .robot files all become valid bug seeds.
5File from a Test Conclusion
RoboClaw's analyzer agent emits "conclusion" messages when it finds patterns that look like real defects (versus flaky tests). When the sidebar shows a conclusion, you get a one-click bug button.
- Look at Step 5: Analyzer & Debugging in the sidebar.
- When a conclusion appears (e.g. "Confirm button is unresponsive across 3 builds"), click 🐞 File Bug from Conclusion.
- The conclusion text + supporting evidence is pre-filled.
6The Bug Form — Field-by-Field
| Field | Auto-filled? | Notes |
|---|---|---|
| Title | ✅ Yes | Edit to a customer-friendly summary |
| Repro Steps | ✅ Yes (from output.xml) | Markdown supported; numbered steps recommended |
| Severity | ✅ Yes (from tags) | S1 · S2 · S3 · S4 — overridable |
| Priority | ⚙️ Default | Maps to roboclaw.ado.fieldMappings.priority |
| Environment | ✅ Yes | Captured from session capabilities |
| Version / Build | ✅ Yes | From bundleId + Info.plist (iOS) / version code (Android) |
| Application | ⚙️ Configurable | Set via roboclaw.ado.extraFields.Custom.Application1 |
| Tags | ✅ Yes | Includes roboclaw-autofiled for filtering |
| Attachments | ✅ Yes | Last screenshot + relevant output.xml excerpt |
7Retest Comments
After a fix lands, you usually want to verify the bug and post a "Retested in build X — passes" comment. BugBuddy does this in one step:
- Re-run the failing test (passing or failing — both work).
- Run
RoboClaw: BugBuddy: Submit Retest Comment to ADO Bug… - Pick the Bug ID (BugBuddy suggests recent ones from your local history).
- RoboClaw posts a comment with:
- The build / version retested against
- Pass / fail status
- Optional new screenshot + log excerpt
8History & Cleanup
BugBuddy keeps a local audit log of every bug filed from your workspace.
RoboClaw: BugBuddy: Show Filed Bug History— opens a panel with title, tracker ID, link, severity, and filed-at timestamp.RoboClaw: BugBuddy: Clear Filed Bug History— wipes the local log (the bugs themselves remain in your tracker).
History is stored in .vscode/robogent.json under bugBuddy.history[] and is safe to commit if you want shared visibility.
9Custom Field Mapping
Every team's ADO / Jira process template is different. BugBuddy adapts via two configuration objects.
roboclaw.ado.fieldMappings
Maps BugBuddy's logical field names to your tracker's reference names.
{
"title": "System.Title",
"reproSteps": "Microsoft.VSTS.TCM.ReproSteps",
"severity": "Microsoft.VSTS.Common.Severity",
"priority": "Custom.B_Priority",
"environment": "Custom.DetectedOnEnvironment1",
"version": "Custom.AppVersion",
"assignedTo": "Custom.AssignedtoTeam11",
"tags": "System.Tags"
}
The defaults match the BugWizard PFNA template. For a stock Agile template, change "priority" to "Microsoft.VSTS.Common.Priority".
roboclaw.ado.extraFields
Static values set on every new Bug — perfect for satisfying required custom fields and avoiding TF401320 rule errors.
{
"Custom.Sector": "PFNA",
"Custom.Activity11": "Testing",
"Custom.Markets": "US"
}
10Tips & Patterns
Tag autofiled bugs
Every BugBuddy filing includes the roboclaw-autofiled tag. Build an ADO query for it to track AI-assisted bug volume.
Severity from suite tags
Tag your suite with @critical · @major · @minor · @trivial and BugBuddy maps to S1–S4 automatically.
One bug per failure, not per test
BugBuddy de-duplicates within a single run — if 12 tests fail on the same locator, you get one bug for the underlying issue.
Combine with Self-Healing
If a failure is auto-healed at ≥ 0.80 confidence, BugBuddy doesn't surface it as a bug — it's just drift. Only true defects reach the filing surface.
Powered by the BYOK AI Router
The bug title, repro steps, and severity classification all flow through RoboClaw's central aiRouter. That means your BugBuddy bugs are generated by whichever AI provider you configured — Anthropic, OpenAI, Gemini, Azure, Ollama, or Copilot as a fallback. Every filed bug carries a Route via stamp so you can see which provider & model produced it.