What
implement-dispatch.sh's _ticket_exports and _slots_used each take a fresh full-board snapshot (_board.snapshot() — one GraphQL call over every issue), and the sweep's own pass takes another. Net: a dispatching tick costs roughly three snapshots per dispatched ticket on top of the tick's own.
Flagged as a non-blocking nit in the PR #23 pre-merge review; the cost is annotated in the script (skills/implementing-tickets/scripts/implement-dispatch.sh, comment above _ticket_exports).
Why it can wait
Harmless at the current operating point: 5-minute cadence, ~300-issue board. GraphQL rate budget and tick latency are both far from any limit.
When to act
If the board grows ~10× (or tick cadence tightens), add snapshot caching — e.g. take one snapshot per tick and pass it to both helpers, or a short-TTL file cache keyed by tick. The single-authority predicate (_board.py) stays the one place eligibility is computed.
What
implement-dispatch.sh's_ticket_exportsand_slots_usedeach take a fresh full-board snapshot (_board.snapshot()— one GraphQL call over every issue), and the sweep's own pass takes another. Net: a dispatching tick costs roughly three snapshots per dispatched ticket on top of the tick's own.Flagged as a non-blocking nit in the PR #23 pre-merge review; the cost is annotated in the script (
skills/implementing-tickets/scripts/implement-dispatch.sh, comment above_ticket_exports).Why it can wait
Harmless at the current operating point: 5-minute cadence, ~300-issue board. GraphQL rate budget and tick latency are both far from any limit.
When to act
If the board grows ~10× (or tick cadence tightens), add snapshot caching — e.g. take one snapshot per tick and pass it to both helpers, or a short-TTL file cache keyed by tick. The single-authority predicate (
_board.py) stays the one place eligibility is computed.