Autonomous QA for IBM Bob · Built for the Bob 2.0 Hackathon

Ship features. Bob finds the bugs and mends them in gold.

Kintsugi turns IBM Bob into an autonomous QA engineer. It reads your codebase, writes Playwright end-to-end tests, triages every failure with watsonx.ai, and heals the code until the suite is green.

Powered by watsonx.ai · IBM Cloudant · IBM Cloud Object Storage · No test-writing required

Kintsugi BoardKintsugi OverviewKintsugi Runs
The loop

From red to green, on its own

01

Analyze

analyze_app crawls the running app into a route map and Bob reads the source.

02

Plan & write

Bob designs lane-based E2E plans; subagents author Playwright specs.

03

Run & triage

Tests run in the MCP sandbox. Failures → screenshot → watsonx triage → ticket.

04

Heal

The healer fixes the app code and re-runs each test until the board is green.

Two Bob modes.
One autonomous QA loop.

Kintsugi ships as custom Bob modes, rules, skills, and an MCP server — a complete QA agent.

🔧 kintsugi-qa

Plans, writes & runs the tests

Crawls your app with analyze_app, designs lane-based E2E plans, and writes Playwright specs — executed through the MCP, never a shell. It can only edit test files.

uiapiauthedgevisual
test("checkout requires email", async ({ page }) => {
  await page.goto("/checkout")
  await page.getByRole("button").click()
  await expect(err).toBeVisible()
})
watsonx.ai

AI-triaged failures

IBM Granite on watsonx.ai assigns each failure a severity, root cause, and suspected files — with a heuristic fallback.

Checkout accepts empty emailhigh

Root cause · form submits without validating the email field; the order proceeds with a blank address.

Checkout.tsxvalidators.ts
🩹 kintsugi-healer

Fixes the code, re-verifies green

Given a failing ticket with full evidence, it repairs the application source and re-runs the test via rerun_test until it passes — and never weakens a test to do it.

-if (email) submitOrder(email)
+if (!isValidEmail(email)) {
+ setError("Email is required")
+ return
+}
+submitOrder(email)

Live Kanban board

Failures land as tickets with a screenshot, severity, and triage — moving Backlog → In progress → Done as Bob heals.

Backlog
In progress
Done

MCP + Playwright sandbox

The Kintsugi MCP server runs Playwright behind a host allowlist and a test-dir jail. Closing Bob's shell is the core safety property.

IBM Cloudant

Plans, runs, results, and tickets persist in IBM Cloudant — the live source of truth behind the board.

IBM Cloud Object Storage

Screenshots and traces upload to IBM COS as tamper-proof evidence attached to every ticket.

Built for IBM Bob

Five skills, wired into Bob

Kintsugi installs two custom modes, five slash-command skills, mode rules, and an MCP server — so QA lives inside Bob, right where you already work.

kintsugi-qa

/qa-init

Scaffolds the .kintsugi workspace and checks Playwright prerequisites — sets QA up without running anything yet.

kintsugi-qa

/qa-run

The full loop: plans, writes, and runs Playwright specs through the MCP, then opens a triaged ticket for every failure.

kintsugi-qa

/qa-test-writer

The spec-authoring conventions — structure, imports, selectors, assertions — auto-applied while Bob writes test files.

kintsugi-healer

/qa-heal

Diagnoses and fixes the application code behind a failing ticket, then re-verifies through the MCP until it's green.

any mode

/qa-report

Generates an HTML run report and summarises the latest run and the state of the ticket board.

Two guardrailed modes

  • 🔧kintsugi-qa — may edit test specs only. No shell.
  • 🩹kintsugi-healer — may edit app code, never tests. No shell.
FAQ

Frequently asked questions

Everything about how Kintsugi turns IBM Bob into an autonomous QA engineer — how it runs, what it can do, and where to start.

No. In kintsugi-qa mode, Bob reads your app, plans lane-based coverage, and writes the Playwright specs for you. You just run /qa-run.

Let Bob keep your app green

Open the dashboard, connect a project, and run /qa-run in Bob.

Open Dashboard