office-hourslisted
Install: claude install-skill natb1/commons.systems
# Office Hours
The office-hours counterpart of `dispatch` — the user-facing entry into the
**office-hours queue**, the set of items blocked on a human. An item lands here
two ways:
1. **Mid-phase input block** — a dispatch phase reached a user-input point
(an unexpected permission prompt). The input-block hook
(`dispatch-input-block.sh`) is a passive reactor: when the worker
hits `ExitPlanMode`/`AskUserQuestion`/a permission prompt/elicitation, it applies
`dispatch:office-hours` to the issue and passes the baton — the session stays
blocked on the prompt rather than terminating.
2. **Completion-time deviation or planning-time ambiguity** — a phase ran to
completion but surfaced a deviation from the approved plan or the acceptance
criteria; or `/plan-issue` hit genuine ambiguity it could not resolve and
called `dispatch-mark-deviation`. In both cases the phase skill skipped its
`phase-completed` marker and wrote `office-hours-reason`. On this legacy issue
lane the label is applied IN-SESSION by `dispatch-mark-deviation` itself, via
its `dispatch-apply-office-hours <N>` call. On the graph-node lane there is no
label at all: a session that ends owing a disposition is parked to the node's
`office_hours` field by `dispatch-tick`'s `terminal_without_disposition_sweep`,
which is gh-free and skips `<N>-slug` issue workers entirely.
This skill is a **review-and-recommend dispatcher**. It runs two ways: a human
types `/office-hours` inside an