Problem
vedit ships content-addressed linear history but has no bisect analog. When a director says "the cut felt better two days ago," there is no way to binary-search vedit history with a yes/no predicate to find the commit that regressed the feel.
Scope (MVP)
- New tool
vedit_bisect { good: <ref>, bad: <ref>, predicate: <command-or-tool> }.
- Two interaction modes:
- Interactive: tool returns next candidate commit, user marks good/bad, repeat.
- Automated: predicate is another vedit tool (e.g.
vedit_diff_score) that returns a verdict — bisect runs to completion automatically.
- CLI:
awidat vedit bisect start --good <ref> --bad <ref> then awidat vedit bisect good|bad.
Layers
crates/core/src/vc/bisect.rs (new) — bisect state machine
crates/core/src/tools/vedit_bisect.rs (new)
crates/cli/src/ — bisect subcommand
- Test: 5-commit synthetic history, bisect converges on injected bad commit
References
Problem
veditships content-addressed linear history but has nobisectanalog. When a director says "the cut felt better two days ago," there is no way to binary-search vedit history with a yes/no predicate to find the commit that regressed the feel.Scope (MVP)
vedit_bisect { good: <ref>, bad: <ref>, predicate: <command-or-tool> }.vedit_diff_score) that returns a verdict — bisect runs to completion automatically.awidat vedit bisect start --good <ref> --bad <ref>thenawidat vedit bisect good|bad.Layers
crates/core/src/vc/bisect.rs(new) — bisect state machinecrates/core/src/tools/vedit_bisect.rs(new)crates/cli/src/— bisect subcommandReferences
.reference-research/pro-editing-gap-analysis/11-collaboration.md(still open [codex] Add editorial grammar upgrade montage#1)