Git · apply by default
/git-bisect
Locate a regression with a reproducible pass/fail check
Use to locate a deterministic regression boundary; debug first establishes a reliable oracle.
Make it your own.
In Claude Code, use the slash command and add your context. In Codex, select git-bisect from the just-vibe skill picker, then send the same brief.
Version 0.11.0 also supports /jv git-bisect, /just-vibe git-bisect and /jv:git-bisect in Claude. See shortcut setup and context examples.
/just-vibe:git-bisect Find the regression between these supplied refs using the deterministic fixture; cap at 12 runs./just-vibe:git-bisect Bisect across a dependency migration where intermediate commits do not build./just-vibe:git-bisect Plan bisect when the failure is not reproducible; do not move the active checkout.What the agent does
- Confirm the good and bad endpoints and the oracle's exit semantics.
- Run the bounded pass/fail oracle in an isolated worktree, treating unbuildable or untestable revisions as skips.
- Retest the candidate and its parent to confirm the boundary.
Inputs
- known good/bad refs, deterministic oracle, and run budget.
Optional context: scope, references, constraints, successCriteria, environment, mode, budget.
Scope
- Reads
- Locate a regression in isolated history; no changes to the user's active worktree.
- Writes
- Apply: only the requested local changes and relevant isolated verification. Inspect/plan requests remain inspection/planning. External actions require their exact action and target in session authorization.
- Mode
- Apply; known good/bad refs, deterministic oracle, and run budget.
- Prerequisites
- Git, exact repository/worktree, and readable refs/index. Record branch, HEAD, staged/unstaged/untracked state before mutation. Preserve unrelated edits and never default to broad staging, hard reset, clean, force push, or history rewriting.
Expected output
- Culprit or narrowed range with endpoint refs, the oracle, tested and skipped revisions, the independently confirmed boundary and cleanup state.
How the work is checked
- A deterministic regression yields a confirmed boundary; flaky or skipped revisions produce qualified results.
When to stop or clarify
- Stop when the oracle is unreliable or budget expires. Never label a skipped build as the regression without evidence.
Handling missing context
- Infer
- Read repository root, HEAD, branch, refs and staged/unstaged/untracked distinctions; use the configured human identity.
- Assume
- Limit an ambiguous inspection to the current repository and report that scope; preserve all existing changes.
- Ask
- Before mutation, resolve uncertain commit membership, destination ref or history-rewrite intent; do not ask again about already authorized exact actions.
Technical guidance
- Evidence
- Resolve known-good and known-bad commits and validate the oracle at both endpoints.
- Method
- Use an isolated worktree, bounded trials, explicit skip codes and a preserved candidate log.
- Pitfall
- Build failures may require skip rather than bad; flaky tests can point to an innocent commit.
- Check
- Recheck the candidate and parent with the same oracle; report a range if skipped revisions prevent a unique cause.
Situational decisions
When skipped revisions or flaky outcomes prevent a unique boundary: Report the candidate range and uncertainty rather than a definite offending commit.
The coding agent follows this workflow using its available tools. Installation does not grant service access or guarantee an outcome. Read the compatibility notes.