The MyThingsLab fleet's worker: takes one picked issue and closes it as a
draft PR — reads the target repo, makes the smallest change with tests, runs
its suite and linter, commits, and opens the PR. Formerly inlined in
fleet-dispatch's fleet_dispatch.py; now a real,
tested, versioned My[X] tool.
Unlike every other fleet tool, my-coder makes no single narrow Engine call —
its core action is an open-ended, tools-enabled headless coding session, the
fleet's one deliberate exception to that pattern. See
CLAUDE.md for the full contract.
# Close issue #12 in a target repo by running one bounded coding session,
# then open a draft PR. --session-runner defaults to `noop` (a safe dry run);
# pass `claude` to run a real headless session.
mycoder build --repo MyThingsLab/my-raytracer --issue 12 \
--source ../my-raytracer --session-runner claude \
--max-budget-usd 5 --max-turns 40The session is sandboxed to a throwaway git worktree and may only edit files
and commit; my-coder itself performs the single push + gh pr create --draft
side effect, gated by Policy. It never merges. Outcomes: success (commit +
draft PR), no_changes, needs_review, denied, skipped, failure,
blocked (paused on a missing capability in another repo the session filed
an issue for — see the FLEET-DISPATCH-BLOCKED: sentinel in the prompt).
python -m venv .venv && source .venv/bin/activate
pip install -e ../mythings-core -e ".[dev]"
pytestMIT — see LICENSE.