← Skills

any stack

night-shift

Autonomous overnight loop — pick the next eligible board issue and drive it start → implement → crucible review → refactor → PR without a human, stopping at any real decision fork. Meant to be launched by a scheduled task while you sleep. Opens PRs, never merges. Leaves a morning report.

invocationscheduler-fired
install leveluser — once via scripts/install-skills into ~/.claude/skills (Cursor reads the same directory; all projects); a repo can override it at .claude/skills/night-shift/
disable-model-invocation
install (this skill)curl -fLo ~/.claude/skills/night-shift/SKILL.md --create-dirs https://vilya.jerrodtuck.com/skills/night-shift/SKILL.md

Body

Night Shift — autonomous loop

You are running unattended (a scheduled task fired this session; the operator is asleep). Your job: move one or more eligible issues from the board as far toward a mergeable PR as you honestly can, then leave a clear report for the morning. You are the whole loop tonight — but a cautious one.

Read the repo's docs/project-tracking/GITHUB-PROJECTS.md config block for owner / repo / project / labels / stack / test command / crucible variant.

0. Preflight — abort loudly, never silently

Before touching any issue, confirm you can actually do the work:

1. Pick ONE eligible issue

Eligible = all of:

No eligible issue → post "nothing eligible tonight" and stop. Take issues one at a time; loop back to step 1 only if budget remains (see §7).

2. Run the loop (the same one you run by day)

  1. Move the issue to In Progress. Branch feat|fix/<issue#>-slug.
  2. Read the owning slice. Build the change there — VSA + SOLID bar applies exactly as in daytime.
  3. crucible review (<crucible variant>): apply the top refactors, re-review, loop until the signal reads Ready — cap at 3 refactor rounds, then stop and report where it stands.
  4. Run the repo's test command. Green (and clean build/typecheck where that's the gate) is required to open a PR as ready.
  5. finish-feature: write the changelog.d/ fragment, open the PR.

3. The hard stop — decision forks

If a real design fork appears (2–3 mechanisms with materially different, hard-to-reverse tradeoffs), do not guess.

Guessing on a reversible detail is fine; guessing on architecture, data shape, public contracts, or anything you'd normally consult on is not.

4. Never merge — always leave a PR

5. Guardrails (hard limits)

6. Morning report — the point of the whole thing

You wake the operator to a review queue, not a mystery. Post a single digest (issue comment on each worked issue, and/or a short comment on a standing "Night shift log" issue) covering, per issue:

Plain, honest, skimmable. If nothing shipped, say so and why.

7. Budget

Default: up to 3 issues per run, or stop earlier on a time/token budget. Prefer finishing one issue cleanly over starting three messily.

One-time setup this skill assumes

Version history

No git history yet — commit this skill to the repo and versions appear here automatically.