Developer Documentation

How to Test Bartholomew

A step-by-step guide for developers and teams who want to install, run, and test the autonomous CI failure auto-fix engine against a real GitHub repository.

1
Install the CLI
Takes about 30 seconds. Requires Python 3.9 or higher.

Install the Bartholomew evaluation and diagnostic CLI directly from PyPI:

bash
pip install bartholomew-eval

Verify the install worked:

bash
python -m bartholomew_eval.cli --help
[OK]
If you see the command list, you are ready to go. No API key required for the default heuristic engine.
2
Run CLI Commands Locally
Five commands you can run immediately against any Python test file.

Diagnose a failing test file: Point Bartholomew at any Python file with a known failure and it will identify the root cause and suggest a minimal fix.

bash
python -m bartholomew_eval.cli diagnose ./path/to/test_file.py

Detect and quarantine a flaky test by running it multiple times and analyzing the variance:

bash
# Replace with your actual test function name
python -m bartholomew_eval.cli quarantine test_payment_webhook_timeout

Benchmark AI repair models side-by-side across real AST defect scenarios:

bash
python -m bartholomew_eval.cli eval-models

You will see a ranked leaderboard comparing Gemini 2.0 Flash, Claude 3.7 Sonnet, GPT-4o, and DeepSeek R1 on pass rate, latency, and cost per fix.

[i]
BYOK: To use real AI inference instead of the built-in heuristic engine, set your API key in the Developer Console or export it as an environment variable: export GEMINI_API_KEY=AIzaSy...
3
Try the Interactive Simulator
No install required. Runs in any browser.

The Bartholomew Simulator lets you watch the full autonomous repair loop execute against three real production failure scenarios without connecting a GitHub repository:

  1. Go to bartholomew.info/simulator
  2. Select a failure scenario (Python Asyncio, TypeScript Vitest, or Go Data Race)
  3. Click Run Full Auto-Fix Cycle
  4. Watch the 5-stage repair loop execute step by step in the terminal

The simulator faithfully demonstrates: Webhook Ingest → Isolated Reproduction → Minimal AST Patch → 100% Test Verification → Green PR Dispatch.

Open the Simulator
4
Connect a Real GitHub Repository
Add the Bartholomew webhook to your repo in under two minutes.

This connects your repository directly to the Bartholomew backend so it receives real CI failure events.

Step A — Copy the Webhook URL:

Webhook Endpoint
https://acn-fastapi-backend-k72r.a.run.app/api/webhooks/github

Step B — Add it to your GitHub Repository:

  1. Go to your GitHub repository → SettingsWebhooks
  2. Click Add webhook
  3. Paste the Webhook URL above into the Payload URL field
  4. Set Content type to application/json
  5. Under Events, choose Workflow runs (or "Send me everything")
  6. Click Add webhook
[i]
No secrets required. The current webhook endpoint is open for testing. A signed secret token will be required for production team accounts.
5
Trigger a Live Autonomous Repair
Push a broken test and watch Bartholomew respond in real time.

Once your webhook is connected, introduce a known failure into your repository to trigger the full repair loop:

python — Broken test to trigger repair (test_sample.py)
# Paste this into any test file in your repo
# This simulates the exact asyncio failure Bartholomew knows how to repair

import asyncio

def test_async_broken():
    loop = asyncio.get_event_loop()  # Deprecated in Python 3.10+
    result = loop.run_until_complete(some_async_task())
    assert result == True

async def some_async_task():
    return True

Push to your main branch and let CI run. When it fails, Bartholomew will:

  1. Receive the GitHub workflow_run failure webhook
  2. Clone the failing commit into an isolated sandbox
  3. Synthesize a standalone reproduction proof
  4. Apply the minimal AST patch (asyncio.get_running_loop())
  5. Verify 100% of tests pass locally
  6. Open a Pull Request on your repository with the fix attached
[!]
GitHub App write permissions are required for Bartholomew to open Pull Requests on private repositories. This is the final integration step currently in development. Public repositories work today.

You can monitor all live repair activity in the Operations Workspace.

?
Current Feature Status
What works today vs. what is coming next.
CLI: diagnose, quarantine, eval-models
Fully working via PyPI
Interactive Browser Simulator
Live at /simulator
FastAPI Webhook Backend
Deployed on Cloud Run
AST Patch Synthesis Engine
Working locally
Chrome and Edge Side Panel
Working via unpacked extension
GitHub App Installation Flow
In development — next sprint
Automated PR Write Permissions
Requires GitHub App OAuth
Stripe Subscription Billing
Planned for next release