Living Report

Practical engineering · Original scripted fixtures · Product experiments not performed

Two tasks, separate worktrees, one explicit conflict

Download run_demos.py and contracts.json into one folder before running these commands. Methodology and limitations.

Status: executed concurrent scripted workers in a disposable fixture. No parallel coding-agent product session was run or measured.

Use this workflow when two tasks can proceed independently but may touch shared files. Isolation protects uncommitted work; it does not guarantee mergeability. The acceptance requirement is to preserve both requested settings: label=review and limit=50.

Reproduce

Requirements: Python 3.11+ and Git; no third-party packages or network calls.

python3 run_demos.py parallel --output /tmp/lr-parallel-demo

Use a new directory. The script creates two worktrees from one baseline. A barrier starts two scripted workers concurrently. Each writes an uncommitted marker and verifies that the other worktree does not contain that marker.

Task A changes the label; task B changes the limit. Both modify the same JSON line on purpose. Merging task A succeeds. Merging task B returns exit 1 with a conflict. The unresolved contents are retained in injected-conflict.txt.

What was observed

The two uncommitted marker files stayed isolated. The planned merge conflict occurred. The script then explicitly resolved it to preserve both requested values and checked the resulting JSON. This resolution is an intervention, not evidence that an agent recovered autonomously.

result.json reports the wall time of the scripted-worker interval only. It excludes setup, merge resolution and review; it is not aggregate execution time, human effort, or a coding-tool speed measurement. Baseline commit IDs are run identities; expected settings and fixture source bytes are reproducible.

Apply it to a real project

  1. Give each task a fixed base, its own worktree, an edit allowlist and acceptance criteria. Name shared files before dispatch.
  2. Keep only one writer for the canonical integration branch. Workers must not push or merge into it themselves.
  3. Preserve task prompts, actual commands, diffs and checks independently. An interrupted task resumes from its own recorded state and actual Git status.
  4. Review each patch, integrate in a declared order, then rerun affected checks on the combined tree. A clean textual merge does not prove semantic agreement.
  5. If a conflict occurs, retain its evidence and record the resolution. Recheck both original acceptance requirements; do not discard one side to get green.

Limits

The fixture deliberately injects a textual conflict and demonstrates one known resolution. It does not test crashes, repository locks, agent permissions or a production recovery plan. Product experiment status is NOT_RUN. No API is used; human review effort is unknown. Separate-worktree practice still needs to be tested against the specific tools and project before relying on it.