Skip to content

Repository files navigation

my-orchestrator

CI codecov Python License: MIT

Picks the single next unit of work across the whole MyThingsLab fleet, for the one available worker.

"Which of N designed tools / open issues should be tackled next" is a recurring decision. myorchestrator next replaces it with a live, re-computable answer — prioritized deterministically wherever possible.

How it works

Deterministic pre-work, in order:

  1. List every repo under the MyThingsLab org.
  2. Collect candidates: open issues carrying each repo's backlog label, plus "scaffold this tool" candidates for designed-but-unbuilt tools (from the canonical fleet registry, tools_manifest.json, shipped as mythings package data in my-things-core; override with --manifest).
  3. Keep only ready scaffolds — every depends_on entry satisfied (a depended-on tool already built, or a core-contract addition landed).
  4. Rank: strict oldest-first, boosted by live ledger urgency signals (an unresolved kind=drift / a kind=ask awaiting a reply jumps the queue).
  5. Only a genuine tie among top candidates (same age, same urgency) reaches the one optional Engine call — "choose which the worker tackles next, and why." Against NoopEngine it falls back to strict oldest-first.

Its one side effect is updating a single pinned "next up" tracking issue via gh issue edit, routed through ActionPolicy. It decides; it never builds and never chains into another tool's CLI.

Usage

myorchestrator next            # human-readable
myorchestrator next --json     # machine-readable

In the fleet loop

myorchestrator is never invoked directly by another tool's CLI — the org root's fleet_dispatch.py imports Orchestrator as a library to rank candidates and hand them to workers, and fleet_cycle.py chains it with the rest of the fleet (myplannerfleet_dispatchmytester/mychangeloggermyprojectormyreportermytelegrambot) into one autonomous cycle. See the org README for the full loop.

Install (development)

python -m venv .venv && source .venv/bin/activate
pip install -e ../my-things-core -e ".[dev]"
pytest

License

MIT — see LICENSE.

About

Picks the single next unit of work across the whole MyThingsLab fleet.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages