executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
plan-payrollRuns the payroll-confidence chain end to end — forecasts cash across the payroll window with cash-flow-snapshot, ranks and drafts overdue-invoice reminders with invoice-chase to close any gap, then assembles timesheets, flags every anomaly, and stages the run with payroll-prep. On Gusto the run is staged for the owner to submit; on QuickBooks Payroll, or wi…
Independent GitHub snapshot · Automated classification · Original documentation governs
Three skills in order: know payroll is covered, close the gap if it is not, then run it.
Owners do not ask two separate questions here. "Can I make payroll" and "run payroll" are one worry, and splitting them across two sessions is how a run gets keyed in at 11pm without anyone checking the bank balance first.
Parse arguments:
--horizon (default 30) — forecast window in days: 30, 60, or 90--payroll-date (optional) — the date payroll runs; defaults to the next scheduled pay dateInvoke cash-flow-snapshot. It owns the forecast math, the confidence bands, and the CSV fallback — do not rebuild any of it here.
Say the verdict in one line before anything else: covered, tight, or short by a named dollar amount on a named date.
Gate — where the chain goes next. If payroll is comfortably covered, ask whether to skip the collection step and go straight to the run. If there is a gap, present it and wait for an explicit "see what we can collect" before Step 2.
Invoke invoice-chase. It owns the ranking, the tone matching, and the send path per invoice type.
Tie the ranking back to Step 1: show what gets collected inside the horizon and whether that actually closes the payroll gap. A reminder that pays in 45 days does nothing for a Friday run — say so.
Gate — nothing sends without approval. Drafts only until the owner says send, per reminder or as a batch they name.
Invoke payroll-prep. It owns the period setup, the hour totals, the anomaly checks, and the books sync.
Carry Step 1 forward instead of recomputing it. When payroll-prep reports whether the run clears, it uses the forecast this chain already produced, plus anything Step 2 is expected to collect.
Gate — the flags, one at a time. payroll-prep walks each anomaly separately. Do not collapse them into a single "looks good?" — each one is a person's pay.
Gate — the run itself. With Gusto connected, the run is staged in Gusto (payroll-prep writes the approved inputs with update_payroll; run_payroll is never called). With QuickBooks Payroll connected, the connector holds the reads and no run-staging write, so the outcome is the validated run sheet the owner keys in — what the connector holds today, not a lesser path. Staging holds only when the source actually returned a roster and a schedule: payroll-prep stops the staging path when a connected source reports employees but delivers none, and the chain then ends on the run sheet, stated plainly. The owner submits it. With neither, the deliverable is a validated run sheet for manual entry, and that is a complete outcome, not a degraded one. This includes when Gusto reports blockers — the run sheet inherits the blocker list from payroll-prep.
One recap, in this order: the cash verdict, what was sent and to whom, the projected position if the reminders convert, and the staged run — headcount, total hours, total gross, cash leaving the account, pay date, and any flags left open.
Ray Okonkwo sees it in four lines: cash short USD 4,200 on the 15th, three reminders sent covering USD 6,800, two likely inside the window, run staged for 9 people at USD 18,340 with one missing punch still open on Marcus.
Deliver the Step 4 recap per the owner's stored output preference — never default to a markdown file. Check the ## Business context block's Output preference (shared style guide rule, ../../shared/artifact-style.md):
If no ledger is reachable (MYOB, NetSuite, QuickBooks, Xero, or Zoho Books — whichever the owner uses), stop and say so by category — the forecast is the foundation of the chain. If a payment connector or the mail connector (Gmail or M365) fails, name it and continue with the rest. If the payroll system fails, fall to the run sheet path rather than aborting; the owner still gets a payroll they can run. When the run cannot be staged or synced into the books — blockers, missing write access — say so in the Step 4 recap and deliver the run sheet plus the journal-entry summary for the bookkeeper to key in; payroll-prep's blocker check decides which path applies.
../../shared/personal-data.md).Payroll is covered, the reminders are out, and the run is staged for the owner to submit. The natural next step is "pay the bills" — /pay-the-bills handles the vendor side with the same cash picture on screen. Also nearby: "cash forecast" (cash-flow-snapshot) to watch the position as the reminders convert, and "close the month" (/close-month) when the period wraps. Offer at most three, and skip any offer the owner already declined this session.
The connectors named in this skill are the tested paths, not a wall. If the owner wants this flow to use a tool that isn't connected or listed, offer build-connector — it checks the connector directory first and connects through Zapier otherwise, never hand-building against a raw API. Once the connection exists, the tool joins this skill like any other optional connector, under the same approval gates.