skills/woostack-execute-overnight/SKILL.md
Use to execute an approved woostack plan UNATTENDED overnight — one autonomous run with no user input after launch that drives every increment to a reviewed stack, swapping woostack-execute's stop-and-ask gates for resolve-or-log-and-continue (woostack-debug on stuck verifications; bounded auto-address on a blocking review; halt-the-track on anything unsafe or ambiguous), honoring optional `## Track:` grouping in the plan (independent, fault-isolated tracks run sequentially), and writing a morning report under .woostack/overnight/ for a human to test in the morning. It is the third choice at woostack-build's execution-handoff gate (Go / Hand off / Run overnight); also usable standalone via /woostack-execute-overnight <plan-path> [--inline|--subagent]. One plan per spec, multiple PRs per plan. Never merges; never relaxes safety for autonomy.
npx skillsauth add howarewoo/woo-stack woostack-execute-overnightInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Execute an approved plan the way woostack-execute does, but
unattended. Same input (one plan path), same per-increment cadence, same drivers, same hard
safety invariants — this skill reuses all of it and overrides only the three points where
execute would stop and ask, replacing each with an autonomous resolve-or-log-and-continue
policy. It ends by writing a morning report a human reads first thing to test the work. It
never merges.
The use case: spend the day crafting a genuinely good plan through the gated build loop, then let this run it overnight so the work is waiting — reviewed, or partially reviewed with blockers logged — in the morning.
/woostack-execute-overnight <plan-path> [--inline | --subagent] — execute the named markdown
plan under .woostack/plans/ autonomously. The plan path is required. The optional,
mutually exclusive mode flag selects the driver; omit it for the smart default. Passing both is
an error: stop and ask which./woostack-execute-overnight (no argument) — do not guess "the current plan." Ask which
plan to execute (optionally list .woostack/plans/ candidates) and stop until one is named.
This is the only moment user input is solicited; an unattended run cannot start without a
plan.Everything except the stop-points. Do not restate these — follow
woostack-execute:
woostack-commit → review → distill →
teardown worktree. Identical to woostack-execute's cadence,
including the per-PR worktree contract (parent-aware
base_ref, WOOSTACK_ROOT-anchored distill, leave-on-failure). On a track blocker the blocked
track's last worktree is left in place for morning inspection, not torn down.--inline / --subagent override;
a --subagent request a host can't satisfy falls back to inline (say so) — never pretend.main/staging/beta/alpha); never force-push; never merge.spec : plan : PRs = 1 : 1 : N invariant.Because nobody is watching mid-run, validate before going autonomous and refuse to start rather than burn the night on a doomed run:
.woostack/overnight/ (outcome refused-to-start, naming the gaps) and stop..woostack/ exists; when invoked from
build, the spec+plan PR base is present (standalone: tracks branch off the current
non-protected branch HEAD)..woostack/overnight/ if missing and open
.woostack/overnight/YYYY-MM-DD-<plan-basename>.md from
references/report-template.md. Write it incrementally so a
crash still leaves a partial record.Clean pre-flight → go autonomous and solicit no further input.
Run execute's per-increment cadence unchanged, except at the three points where execute would stop. Each becomes an autonomous policy, and every decision is appended to the report's decision log as it happens.
/woostack-debug <target>, which runs its root-cause analysis
autonomously and hands back a proposed minimal fix (execute already does this); execute
implements and commits the fix. If debug cannot establish a root cause, there is no
present user to escalate to → record a blocker and apply the halt policy.woostack-review --fast posts a batched GitHub Review on the increment PR. On
REQUEST_CHANGES, run
woostack-address-comments --auto (it reads the
PR's unresolved threads, fixes/replies/resolves/pushes; its clean-tree + branch=PR-head
precondition holds right after the increment commit), then re-review — up to 2 rounds.
Still blocking after the cap → blocker → halt policy.BLOCKED escalation is the terminal outcome → treat it directly
as a blocker → halt policy (the loop already was the retry; no separate auto-address).A plan may group its increments under top-level ## Track: headings. Each track is its own
linear gt stack branched off the common base (the spec+plan PR when invoked from build, else
the current non-protected branch HEAD). A plan with no track headings has one implicit
track — exactly woostack-execute's linear behavior. The convention is author-driven:
woostack-plan documents and allows it; this skill is the only
consumer.
Process tracks in order, sequentially (single session — no real concurrency); within a track, increments in order. On a blocker:
not-attempted.Written incrementally to .woostack/overnight/YYYY-MM-DD-<plan-basename>.md from
references/report-template.md. It is gitignored (a per-run
artifact, like .woostack/visuals/), so it never rides into an increment PR and never dirties the
tree for the review / address-comments clean-tree preconditions. Sections:
clean / partial+blockers /
refused-to-start).done / done-with-findings / blocked / not-attempted),
branch + PR URL, review verdict, auto-address rounds used.Stop when every track has either completed or halted at a blocker. The result is a Graphite stack (linear, or tree-stacked across tracks) of reviewed / partially-reviewed increment PRs, plus a complete morning report. Report the path. Never merge.
This skill owns no approval gate — there is no human at runtime to gate. The pre-flight
refuse-to-start is a safety check, not a gate. woostack-build's upstream HARD GATES (design,
spec) are unchanged; "Run overnight" is an explicit chosen go-ahead at build's step-8 gate, never
an inference. It never merges and never relaxes safety for autonomy.
## Track: headings (default one implicit
track); a blocker ends only its track. Never force-build on broken work..woostack/overnight/.testing
Use to curate the .woostack/ knowledge store. Reflects over the static memory store + docs (no session mining), then proposes a gated changeset that merges duplicate notes, replaces stale/contradicted ones, drops dead/orphaned notes, resolves conflicts, surfaces consolidated insights, and recommends evidence-guarded documentation edits. Nothing mutates before explicit approval; ends on a summary + iterate loop. Local-only memory (no commit); doc edits land in the working tree. Never commits or merges. Invoke via /woostack-dream [instructions].
development
woostack's canonical test-driven-development home and on-demand test-adder. The single source for the TDD kernel — Red→Green→Refactor, test-first, cover happy/error/edge/success+failure, framework-aware, no-runner→concrete verification — that woostack-plan, woostack-execute, woostack-debug, and bootstrap patterns.md §7 should link to instead of restating. Also the 14th public command: /woostack-tdd <target> adds appropriate tests to an existing code block, PR, spec, or plan — one verb, target-routed (code→colocated *.test files, PR→tests for the gh pr diff surface, spec→strengthen §7 acceptance criteria, plan→fill failing-test steps) — with a characterization carve-out for existing code (new code is red-first; existing code pins current behavior). Writes tests to the working tree and hands to woostack-commit; never commits, merges, or authors status:/branch:; owns no approval gate.
development
Use to resolve small technical issues (bugs, hotfixes, refactors) through a unified execution loop — diagnose root cause with woostack-debug, author a fix plan under .woostack/fixes/, harden, get explicit user approval, then delegate execution to woostack-execute (TDD per task, task review, commit via woostack-commit, distill).
testing
Use to show the derived woostack feature board — for every spec in .woostack/specs/ and fix in .woostack/fixes/, its reconciled phase, plan progress, increment-PR state, owner, age, and the single next action, plus flags for any drift between the authored status field and the artifacts on disk. Read-only; never fetches, commits, or pushes. Use for /woostack-status, "what's in flight", or "what should I do next".