AI-powered debugging and testing workflow built with IBM Bob 2.0.
The project demonstrates how an AI-assisted developer workflow can reduce the manual effort required to investigate a bug, understand its root cause, generate a regression test and fix, validate the result, and prepare the changes for a GitHub pull request.
Developers often spend significant time manually:
- Investigating failing tests
- Reading stack traces and unfamiliar code
- Identifying the root cause
- Writing regression tests
- Implementing fixes
- Running validation tests
- Preparing changes for code review
This workflow can be repetitive and error-prone, especially when debugging small but recurring issues.
Bob Debug Pipeline demonstrates an AI-assisted debugging workflow using IBM Bob.
The MVP follows this pipeline:
Bug / Stack Trace
↓
Repository Analysis
↓
Root Cause Detection
↓
Regression Test
↓
Fix Generation
↓
Test Validation
↓
GitHub Pull Request
IBM Bob is used as a core part of the debugging and implementation workflow.
The MVP focuses on a small Node.js project containing a realistic Jest test failure.
The application contains a getUserById() function:
function getUserById(id) {
return users.find(user => user.id === id);
}The test expects:
getUserById(999) → null
However, JavaScript's Array.find() returns:
undefined
when no matching element is found.
Therefore, the test fails with:
Expected: null
Received: undefined
The implementation relies directly on Array.find() without normalizing the result.
IBM Bob identified the minimal fix:
return users.find(user => user.id === id) ?? null;This preserves the existing behavior for valid users while returning null when the requested user does not exist.
The debugging workflow was performed using IBM Bob 2.0.
Bob was asked to:
- Inspect the relevant files
- Analyze the failing Jest test
- Reproduce or understand the failure
- Identify the root cause
- Propose a minimal fix
No files were modified during the investigation phase.
Bob was then instructed to:
- Modify only
test-project/src/userService.js - Implement the proposed minimal fix
- Avoid unrelated changes
- Run the focused Jest test
- Report the final validation result
The resulting fix was:
return users.find(user => user.id === id) ?? null;The current Jest test suite passes successfully:
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
The tests cover:
Existing user
getUserById(1) → user
and:
Missing user
getUserById(999) → null
The backend TypeScript build also passes.
The frontend production build passes.
The React frontend presents the debugging workflow as a single developer-oriented interface.
Displays the failing Jest scenario:
Expected: null
Received: undefined
File:
tests/userService.test.js
Test:
getUserById(999)
Displays the root cause identified during the Bob debugging workflow.
Displays the regression scenario that validates the expected behavior.
Displays the minimal code change:
- return users.find(user => user.id === id);
+ return users.find(user => user.id === id) ?? null;Displays the successful Jest validation:
2 tests passed
The workflow includes a GitHub PR step in the demo interface.
The current MVP demonstrates the PR workflow in the UI. The actual repository pull request was created separately through GitHub during development.
┌─────────────────────┐
│ React Frontend │
│ │
│ Bug / Stack Trace │
│ Root Cause │
│ Regression Test │
│ Fix Preview │
│ Validation │
│ GitHub PR Workflow │
└──────────┬──────────┘
│
│ HTTP
▼
┌─────────────────────┐
│ Express Backend │
│ │
│ POST /api/analyze │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Test Project │
│ │
│ userService.js │
│ userService.test.js │
└─────────────────────┘
IBM Bob 2.0
│
▼
Investigation & Fix
bob-debug-pipeline/
│
├── backend/
│ ├── src/
│ │ └── server.ts
│ ├── package.json
│ └── tsconfig.json
│
├── frontend/
│ ├── src/
│ │ ├── App.tsx
│ │ └── ...
│ ├── package.json
│ └── vite.config.ts
│
├── test-project/
│ ├── src/
│ │ └── userService.js
│ ├── tests/
│ │ └── userService.test.js
│ └── package.json
│
├── bob_sessions/
│ └── Bob Task Session Summary screenshots
│
├── .gitignore
├── package-lock.json
└── README.md
- IBM Bob 2.0
- Node.js
- TypeScript
- Express
- CORS
- React
- TypeScript
- Vite
- Jest
- Git
- GitHub
Navigate to the backend directory:
cd backendInstall dependencies:
npm installRun the development server:
npm run devThe backend runs on:
http://localhost:3000
Open another terminal:
cd frontendInstall dependencies:
npm installRun the development server:
npm run devOpen the URL displayed by Vite in the terminal.
Navigate to the test project:
cd test-projectInstall dependencies:
npm installRun Jest:
npm testExpected result:
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
The backend exposes the analysis endpoint:
POST /api/analyze
The endpoint represents the analysis stage of the debugging pipeline and returns the structured information used by the frontend:
- Bug information
- Root cause
- Regression test
- Proposed fix
- Validation result
The hackathon requires relevant IBM Bob task session evidence to be included in the repository.
The screenshots will be stored in:
bob_sessions/
Expected evidence includes the Task Session Summary for the relevant Bob investigation and implementation tasks.
- Mohamed Benkhaled (@MBen213) — Backend, debugging pipeline, Bob workflow and integration
- Wessfago — Frontend MVP and GitHub workflow UI
- Eséchiel — Testing and debugging validation
Built for the:
IBM Bob 2.0 Hackathon — 2026
The project focuses on improving the developer debugging, testing, validation, and code workflow using IBM Bob as a core development tool.
IBM Bob investigation ✓
Root cause analysis ✓
Minimal fix ✓
Jest validation ✓
Backend API ✓
React frontend ✓
Frontend/backend connection ✓
GitHub Pull Request ✓
Bob session evidence In progress
Final testing In progress
This project was created as a hackathon prototype.