night-shift
Skill0 starsChanged 3 months agoMITView on GitHub
Autonomní overnight smyčka nad agent-ready plánem v GitHub issues — jedno issue s checklistem, epic s odkazy na sub-issues, nebo seznam issues. Tenký supervisor spouští na každou jednotku worker subagenta s čerstvým kontextovým oknem, po green verify commit + odškrtnutí; failure policy s BLOCKED markery, context guard a řízený stop s push notifikací. Použij, když má owner dlouhou, jasně naplánovanou práci (desítky položek, např. stránky frontendu dle zadání) a chce ji nechat běžet bez dozoru, typicky přes noc. Nepoužívej na běžnou interaktivní feature práci ani na práci bez hotového plánu v issues.
- Deletes or force-pushes
- Commits and pushes
8 other projects use a version of this.
Adopted by
Most recently taken up by
- morethanwords/twebtheir own version, first seen Nov 9, 2026
- Cynthia-wlan9509/offline-game-revivaltheir own version, first seen Nov 1, 2026
- andrewcamerongraham/claude-skillstheir own version, first seen Oct 13, 2026
- committed-nightly/opstheir own version, first seen Oct 13, 2026
- profbernardoj/everclawtheir own version, first seen Oct 8, 2026
- queglay/claude-skillstheir own version, first seen Jul 9, 2026
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- morethanwords/tweb★ 2.7ksame name
- profbernardoj/everclaw★ 112same name
- Cynthia-wlan9509/offline-game-revival★ 83same name
- andrewcamerongraham/claude-skills★ 0same name
- committed-nightly/ops★ 0same name
- queglay/claude-skills★ 0same name
- Sean-Michael/skills★ 0same name
- search-atlas-group/amm-founding-circle★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository4 other files it gives its agents.
- featureSkill
- handoverSkill
- mergeSkill
- zaznamenejSkill
The file
Files
/night-shift — autonomní noční směna nad issue plánem
Cíl: /night-shift <issue#> večer → ráno je hotové maximum jednotek plánu,
každá ověřená a commitnutá, blocked označené s důvodem, draft PR čeká na
review. Ty jsi supervisor: malý, stálý, levný. Veškerou implementaci
dělají worker subagenti — každý startuje s čerstvým kontextovým oknem,
takže session nepotřebuje /clear ani /handover uprostřed noci. /clear si model
zavolat neumí; tenhle skill ho nahrazuje tím, že hlavní okno nikdy nenaroste.
Invarianty supervisora (drž celou noc)
- NIKDY nečteš zdrojáky, nespouštíš build/testy, needituješ kód. Všechno
deleguj workerům. Sám smíš jen levné stavové příkazy:
git log --oneline -n 3,git status -s,gh issue view/edit/comment,gh issue create,gh pr create --draft— a Edit issue body přes scratchpad. I „rychlý pohled do souboru" je porušení; na to je retry worker. - Tvůj kontext je palivo na celou noc. Výstupy tool calls drž minimální
(
--jsons výčtem fieldů, žádné diffy, žádné logy workerů). Bodies sub-issues NIKDY nedržíš v kontextu — worker si je čte sám, audit dělá audit subagent. - Stav světa = řídicí issue + git, ne konverzace. Po každé jednotce je issue aktuální → pád session nic neztratí, resume je stateless.
- Po preflightu žádné AskUserQuestion — nikdo u stroje není. Nejasnost = BLOCKED marker, ne otázka do prázdna. (Jediná výjimka: permission gate, krok 0 preflightu — ten se ptá, dokud je owner u stroje.)
- V noci nesmí vyskočit ŽÁDNÝ permission prompt. Nikdy. Žádný (reálná noc: session s ~20 prompty skončila jako nepoužitelná). Prompt za běhu = selhání setupu, ne něco k proklikání; jistotu dává jen bypass režim, vynucuje krok 0.
Vstup
$1…$n= číslo/čísla issue v aktuálním repu. Tři tvary, všechny vedou na jeden řídicí checklist:- Jedno issue s checklistem → ono je řídicí; položky = jednotky práce.
- Epic: checklist řídicího issue odkazuje na sub-issues
(
- [ ] #123 …) → jednotka = celé sub-issue. Zadání workera = title + body sub-issue; případný checklist UVNITŘ sub-issue je DoD workera, ne další jednotky (granularita: 1 sub-issue = 1 worker = 1 čerstvý kontext). - Seznam (
/night-shift 43 44 45) → preflight vytvoří řídicí epicgh issue create --title "night-shift <YYYY-MM-DD>"s checklistem- [ ] #43atd. a od té chvíle se celá session chová jako tvar 2 s epic číslem — každý wakeup prompt i resume používá/night-shift <epic#>, nikdy původní seznam (jinak by resume založil druhý epic).
- Mix inline položek a
#Nodkazů v jednom checklistu je v pořádku — typ se určuje per položka. Issue v seznamu bez vlastního checklistu = 1 jednotka jako celek.
--model= model workerů, default opus (nejnovější Opus).--model sonnetna jednoduché mechanické položky,fablena nejtěžší. Supervisor běží na session modelu.--max N= strop jednotek zpracovaných touto session, default 40 (context guard; resume po stopu počítá od nuly).
Re-invokace s řídicím číslem = resume (i po wakeupu): preflight kroky 1–3 zkrať na kontrolu, smyčka naváže na první neodškrtnutou ne-BLOCKED jednotku.
FÁZE 0 — Preflight (večer, owner je ještě u stroje)
Pořadí záměrné — nejdřív levné kontroly, pak drahé:
- Permission gate (tvrdá podmínka, PRVNÍ krok): směna smí běžet JEN
v session s
bypassPermissions— startclaude --settings ~/.claude/night-settings.json(profil si vytvoř: bypass + deny na secrets a force push), případně selector ručně přepnutý na Bypass. Režim nejde zjistit introspekcí →AskUserQuestion: „Běží tahle session v bypass permissions (night profil / selector)?" — Ano → pokračuj; Ne / nejistota → 🛑 STOP s pokynem: restartujclaude --settings ~/.claude/night-settings.jsona spusť/night-shift <N>znovu (resume je stateless, nic se neztratí). Auto režim NENÍ dost — classifier eskaluje prompty nezávisle na allowlistu. Gate platí pro každou novou session (první invokaci v konverzaci); wakeup resume v téže session ho přeskakuje — režim se sám nezmění. - Řídicí checklist: seznam čísel → založ epic (tvar 3 výše). Pak
gh issue view <N> --json title,body,urlřídicího a vyparsuj checklist (- [ ]/- [x]; u položek rozliš inline text vs#Nodkaz). Jedno issue bez checklistu a bez seznamu → 🛑 STOP („není co smyčkovat"). - Agent-ready audit: worker nezná konverzaci — každá jednotka musí být
self-contained: jednoznačný scope + odkaz na specku/soubor/sekci NEBO plný
popis (v položce, resp. v body sub-issue). Audit deleguj na levného
read-only subagenta (máš-li vlastního collector agenta, použij ho; jinak
general-purpose s levnějším modelem): dostane seznam jednotek (u
#Nsi bodies načte sám přesgh issue view), vrátí jen verdikt per jednotka (ready/vágní + proč). Vágní („dodělat zbytek") vypiš; víc než ⅓ vágních → 🛑 STOP („doplň zadání, spusť znovu"); jinak je v této noci přeskakuj a uveď v závěrečném souhrnu. - Git: clean tree (dirty → 🛑 STOP — cizí WIP se v noci nestashuje).
Na main →
git checkout -b feat/issue-<N>-night; na feature branchi → použij ho. Zjisti, zda existujeorigin→ určuje PUSH_LINE v šabloně. - Verify baseline: deleguj na subagenta (máš-li vlastní verify agent,
použij ho; jinak general-purpose s pokynem vrátit jen selhání) na aktuální
stav. Červené už teď → 🛑 STOP — noc nad rozbitým repem nemá smysl.
Z výstupu ulož VERIFY_CMDS (přesné příkazy: lint, testy, smoke harness)
do worker šablony.
Ostrá data: předepisuje-li projektový CLAUDE.md ověření nad kopií
produkčních dat (sonda / probe skript), pak: (a) kopie chybí nebo je
zastaralá → refresh ještě v preflightu (owner je u stroje, SSH/VPN projde) —
selhání → 🛑 STOP; (b) sondu spusť a její výstup ulož jako BASELINE do
.claude/night-notes.md; (c) sondu přidej do VERIFY_CMDS každé jednotky, které se týká (typicky finanční výpočty, projekce, scheduler). Taková jednotka bez běhu sondy NENÍ done, i se zelenými testy — vady distribuce ostrých dat fixtures nechytí. - Prostředí (Windows):
powercfg /q SCHEME_CURRENT SUB_SLEEP STANDBYIDLE— AC index ≠ 0 znamená, že stroj v noci usne → varuj a navrhnipowercfg /x standby-timeout-ac 0(sám neměň). Na jiném OS zkontroluj ekvivalent (sleep/suspend settings). Permission prompty řeší krok 0 (bypass gate) — allowlist je jen záloha, na noc se NEspoléhá. - Předávací zápisník: založ
.claude/night-notes.md(append-only, worker→worker: sdílené komponenty, pasti, konvence zjištěné za běhu) a commitni ho, pokud neexistuje. - Vypiš preflight summary (počet jednotek / model workerů / branch / push ano-ne / baseline výsledek / varování) a rovnou spusť první jednotku — invokace /night-shift je souhlas, žádný confirm gate.
FÁZE 1 — Smyčka
Opakuj, dokud existují neodškrtnuté ne-BLOCKED jednotky a nepřekročils --max:
- Vyber jednotku: první neodškrtnutá shora bez ⛔ markeru a bez vágní flagu.
- Spusť workera:
Agentsrun_in_background: true,modeldle--model,description: "<i>/<total> <slug>", prompt = šablona níže s doplněnými placeholdery (ÚKOL dle typu jednotky). - Fallback heartbeat:
ScheduleWakeup(delaySeconds: 1800, prompt: "/night-shift <řídicí#> <flagy>", reason: "night-shift heartbeat — <slug>"). Pak ukonči turn. Primární buzení je notifikace o dokončení workera; wakeup je pojistka proti zaseknutí. - Po notifikaci workera zpracuj jeho strukturovaný výsledek:
STATUS: DONE→ ověř realitu, ne tvrzení:git log --oneline -n 3obsahuje nový commit a VERIFY sekce je green? → odškrtni jednotku v řídicím (postup níže); u sub-issue navícgh issue comment <M>(„✅ night-shift: hotovo, commit<hash>— zavře PR"), issue NEzavírej (zavře ho merge přes Closes). Pak krok 1.BLOCKED, DONE bez commitu, nebo nesmyslný výstup → failure policy.
- Po wakeupu bez notifikace (worker nejspíš stále běží): zkontroluj
TaskOutputposledního workera. Jeví aktivitu → jen novýScheduleWakeup(1800)a konec turnu. Druhý wakeup téhož workera bez pokroku (≈60 min) →TaskStopa ber to jako 1 selhání jednotky. - Checkpoint: po každých 10 dokončených jednotkách
gh issue commentna řídicí s mezisouhrnem (done/blocked/zbývá + poslední commit hash) — owner to v noci vidí z mobilu a případný pád session nic neztratí.
Odškrtnutí jednotky — přesně takhle, jinak rozbiješ body issue; přes Bash tool, ne PowerShell (encoding):
gh issue view <řídicí#> --json body --jq .body > <scratchpad>/issue-<N>.md→ Edit na tom souboru: přesná záměna - [ ] <text> → - [x] <text>
(u BLOCKED: append ⛔ BLOCKED: <důvod> (<YYYY-MM-DD>), checkbox nech prázdný)
→ gh issue edit <řídicí#> --body-file <týž soubor>.
Worker prompt šablona
Doplň <ÚKOL>, <BRANCH>, <ŘÍDICÍ#>, <VERIFY_CMDS>, <PUSH_LINE>.
<ÚKOL> podle typu jednotky:
- inline položka: plný text položky včetně odkazů na specku;
- sub-issue:
celé issue #<M> — zadání si načti sám: gh issue view <M> --json title,body. Checklist uvnitř toho issue (existuje-li) je tvůj DoD — hotovo znamená splněno vše.(body sub-issue do promptu NEvkládej — šetři supervisora)
Jsi worker noční směny — autonomní, jednorázový, bez přístupu k předchozí
konverzaci. Repo: aktuální cwd, branch <BRANCH>. Děláš JEDNU jednotku
nočního plánu (řídicí issue #<ŘÍDICÍ#>):
ÚKOL: <ÚKOL>
Nejdřív čti: projektový CLAUDE.md (máš v kontextu), `.claude/night-notes.md`
(poznámky předchozích workerů — sdílené komponenty a pasti) a specku z úkolu.
Pokud úkol odkazuje na neexistující soubor/sekci nebo chybí předpoklad
(např. API endpoint), NIC neimplementuj a vrať BLOCKED s důvodem.
POSTUP:
1. Implementuj jednotku kompletně (frontend vždy mobil + desktop dle specky).
2. Verify: <VERIFY_CMDS>. Červené → oprav a opakuj; neopravitelné → BLOCKED,
červený stav nikdy necommituj. Obsahuje-li VERIFY_CMDS sondu nad prod kopií
dat, porovnej výstup s BASELINE v night-notes a před/po čísla uveď ve VERIFY
(„beze změny projekce" je taky výsledek — uveď ho explicitně).
3. Green → commit s popisnou zprávou končící `(#<číslo issue jednotky>)`.
<PUSH_LINE>
4. Vytvořil jsi sdílenou komponentu nebo narazil na past? Přidej 1 řádek do
`.claude/night-notes.md` a commitni společně s prací.
ZÁKAZY: deploy, merge, jakýkoli force push, DB migrace, mazání branchí,
zavírání issues, práce nad rámec jednotky (další mají vlastní workery), nové
dependencies jen když jednotka jinak nejde — pak důvod do night-notes.
NÁVRAT (finální zpráva, max 15 řádků, nic jiného):
STATUS: DONE | BLOCKED
COMMIT: <hash> | none
FILES: <max 8 cest>
VERIFY: <příkaz → green/red, počty testů>
NOTES: <1-2 řádky: co má supervisor vědět / proč BLOCKED><PUSH_LINE>: s originem = Pak git push origin <BRANCH> (nikdy force).;
bez originu = Nepushuj.
Failure policy
- 1. selhání jednotky (BLOCKED / DONE bez commitu / TaskStop): spusť JEDNOHO retry workera — do promptu přidej „Předchozí pokus selhal: <důvod z výsledku>. Nejdřív ověř příčinu, pak teprve implementuj."
- 2. selhání téže jednotky: ⛔ marker do řídicího checklistu; u sub-issue
navíc
gh issue comment <M>s důvodem → další jednotka. - 3× BLOCKED po sobě (různé jednotky): to není smůla, to je systémový problém (rozbitá závislost, špatný plán) → řízený stop.
- Worker vrátil null (API/limit chyba):
ScheduleWakeup(3600)a zopakuj týž krok; 3 marné pokusy → řízený stop.
Řízený stop = (1) gh issue comment na řídicí se stavem (done/blocked/
zbývá, poslední commit, důvod stopu), (2) ToolSearch
"select:PushNotification" → PushNotification s jednovětým souhrnem,
(3) konec smyčky BEZ dalšího wakeupu. Nic nerevertuj — ráno se naváže resumem.
Context guard
Řízený stop taky když: v kontextu se objevila systémová sumarizace konverzace,
NEBO jsi zpracoval --max jednotek. Poslední commit je bezpečný bod — resume
je levnější než degradovaný supervisor. Prevence = invarianty 1 a 2.
FÁZE 2 — Ukončení (vše done, nebo zbývají jen BLOCKED/vágní)
- Finální verify celé branche (opět deleguj na subagenta). Červené → řízený stop s poznámkou (žádné noční opravy naslepo).
- Origin + ≥1 done → draft PR:
gh pr create --draft, titulek dle řídicího issue, body = souhrn noci +Closes #<M>za KAŽDÉ dokončené sub-issue;Closes #<řídicí>jen při kompletním checklistu. PR už existuje → jen doplň Closes řádky do body. gh issue commentna řídicí: závěrečný souhrn (X done / Y blocked s důvody / Z přeskočeno vágních, rozsah commitů, PR link).PushNotification: „night-shift #<N>: X/Y done, draft PR #<M>čeká na review".- Totéž vypiš do chatu. Deploy a merge NEděláš — ráno review + merge
(máš-li skill
/merge, použij ho).
Co NIKDY (platí pro tebe i workery)
Deploy, merge, git push --force (ani with-lease), mazání branchí, zavírání
issues (zavře je merge PR přes Closes), DB migrace proti reálné DB, změny mimo
repo (výjimka: ~/.claude/plans/ a scratchpad), gh operace mimo issue
view/edit/comment/create + pr create --draft. Při pochybě → BLOCKED, ne
kreativita.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

