The batch workflow is the core IssueLoop pipeline: point it at a repository, let it run your test suite, hand the raw output to an LLM for triage, and then drain the resulting queue of independent tickets one at a time. Use it whenever you want a repeatable, fully-automated sweep — after a merge, on a schedule, or as a gate before deploying. Unlike the live monitor, the batch workflow runs synchronously and exits when the test suite finishes.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/onenot8/issueLoop/llms.txt
Use this file to discover all available pages before exploring further.
The test_manifest.json
IssueLoop readsdata/test_manifest.json to know which commands to run for each repository and how to prioritize them. Create this file in the root of your IssueLoop working directory before your first run.
The short identifier for the repo. Used everywhere in the API —
run_tests("myrepo"), get_top_error("myrepo"), etc.Path to the repo on disk, relative to the IssueLoop working directory. The test runner changes into this directory before executing each command.
A stable identifier for this test suite. Stored on every ticket so
run_single_test can re-run exactly that suite when verifying a fix.The shell command to run. Executed with
shell=True inside local_path. Both stdout and stderr are captured.Whether a failure here should be treated as blocking. Blocking failures receive the highest-priority
blocking ticket tier and can halt the rest of the run when stop_on_first_blocking_failure=True.Execution order within the repo. Lower numbers run first. Tests with the same priority are run in the order they appear in the list.
Step-by-step batch run
Configure IssueLoop
Call
issueloop.use() once at the top of your script to set the database backend and LLM provider. Both are optional — defaults are local SQLite and Ollama.Scan the repository
scan_repo walks the repository and writes a file inventory to data/logs/<repo>_files.json. This gives the LLM context about the project structure when it triages failures.Run the test suite
run_tests executes every entry in test_manifest.json for the named repo, in priority order. Results are appended to data/logs/run_<repo>.jsonl.Create tickets from failures
create_tickets reads the JSONL log, sends each failure block to the LLM, and writes the resulting tickets to the database. Duplicate summaries are de-duplicated automatically.CLI equivalent
The same four steps are available as CLI commands, making the batch workflow trivially scriptable.issueloop next myrepo in a loop, or hand it to an agent that fixes and re-runs until the queue is drained.
stop_on_first_blocking_failure
Passstop_on_first_blocking_failure=True to test_runner.run_tests to abort the run as soon as a test marked "blocking": true fails. This is useful when later test suites depend on earlier ones passing — there is no point running integration tests if unit tests are already broken.
priority order, so place your fastest, most fundamental suites at priority 1.