release
Skill45 starsChanged 16 days agoMITView on GitHub
Skill se použije, když uživatel zadá "/release" (volitelně s větví, tagem nebo hashem commitu; výchozí je main), nebo chce nasadit hotovou práci do produkce – projít kontroly před nasazením, ošetřit migrace databáze, nasadit, ověřit smoke testem a vědět, jak se vrátit zpátky. Nikdy se nespouští sám ani jako pokračování jiného skillu.
- Reads credentials
196 other projects use a version of this.
Adopted by
Most recently taken up by
- zxcvbn-ts/zxcvbntheir own version, first seen Nov 9, 2026
- TechbeeAT/jtxBoardtheir own version, first seen Nov 9, 2026
- ddnexus/pagytheir own version, first seen Nov 9, 2026
- zerx-lab/FluxDowntheir own version, first seen Nov 9, 2026
- orioledb/orioledbtheir own version, first seen Nov 9, 2026
- AmruthPillai/Reactive-Resumetheir own version, first seen Nov 8, 2026
Used with
Projects with it also use create-agent-adapter, changelog-style and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkillcreate-agent-adapter
Technical guide for creating a new Paperclip agent adapter. Use when building a new adapter package, adding support for a new AI coding tool (e.g. a new CLI agent, API-based agent, or custom process), or when modifying the adapter system. Covers the required interfaces, module structure, registration points, and conventions derived from the existing claude-local and codex-local adapters.
Also in 5 projects that use this
GrinvSkillchangelog-style
Turn a commit range into CHANGELOG.md entries following common-changelog style. Use when finishing a PR or cutting a release, to write/fix the [Unreleased] section's entries — moving [Unreleased] under a new dated version heading is a separate, automated step (see the release skill / scripts/sync-version.ts), not this skill's job.
Also in 4 projects that use this
GrinvSkilldocs-consistency-check
Check README/manifest.json/server.json/CHANGELOG.md/AGENTS.md and docs/*.md for drift against the actual registered tools and source. Use after adding, renaming, or removing a tool, or as part of a live-audit pass.
Also in 4 projects that use this
Microsoft AzureSkillcomponent-release
Prepares a verifiable Agent Landing Zone UI release. Use for release branches, VERSION, changelog entries, tags, release notes, and compatibility evidence; never publish without explicit human approval.
Also in 4 projects that use this
Microsoft AzureSkilldocumentation-consistency
Keeps AI Landing Zone contributor, user, and operator documentation aligned with shipped Bicep behavior. Use for parameters, defaults, outputs, topology, deployment flow, operations, or releases.
Also in 8 projects that use this
rivet-devSkilllaunch-graphics
Generate agentOS marketing/launch graphics (launch & social heroes, code-snippet cards) from the committed generators in docs-internal/graphics. Use when asked to make, update, or render an agentOS launch image, social image, "agentOS Apps" graphic, or technical code-snippet image.
Also in 3 projects that use this
- +3 more from Grinv
Other versions196 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 196
- paperclipai/paperclip★ 112ksame name
- modelcontextprotocol/servers★ 92ksame name
- remotion-dev/remotion★ 72ksame name
- traefik/traefik★ 65ksame name
- usememos/memos★ 64ksame name
- tw93/Pake★ 63ksame name
- AmruthPillai/Reactive-Resume★ 45ksame name
- amruthpillai/reactive-resume★ 45ksame name
- reactive-resume/reactive-resume★ 45ksame name
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
186 more not listed
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 repository40 other files it gives its agents.
- skills/audit/agents.mdAGENTS.md
- skills/consolidate/agents.mdAGENTS.md
- skills/review/agents.mdAGENTS.md
- .claude/CLAUDE.mdCLAUDE.md
- CLAUDE.mdCLAUDE.md
- architectSkill
- attackSkill
- auditSkill
- autocommitSkill
- autopilotSkill
- breakdownSkill
- claudingSkill
- composeSkill
- consistencySkill
- consolidateSkill
- depotSkill
- diagramSkill
- discoverySkill
- downloadSkill
- endSkill
- evaluateSkill
- explainSkill
- implementSkill
- invoicingSkill
- learnSkill
- mergeSkill
- nextSkill
- oponentSkill
- projectSkill
- ptydepeSkill
- replaceSkill
- reportSkill
- reviewSkill
- scenariosSkill
- serviceaccountSkill
- skillSkill
- slimSkill
- specifySkill
- transcriptSkill
- worktreeSkill
The file
Files
Release
Co skill dělá
Nasadí hotovou práci do produkce – s blokujícími kontrolami před, s plánem návratu a s ověřením po.
V Životním cyklu projektu (~/.claude/standards/rules.md) je to sedmý krok osy: navazuje na /implement a předává na /evaluate, který měří, co z nasazení vzešlo. V mezeře před ním stojí /attack. Je to poslední krok, který mění svět, a to není kosmetika: všechno před ním mění repozitář, nasazení mění produkci, kde jsou cizí data a živí uživatelé. Chyba v repozitáři se opraví commitem, chyba v produkci se opravuje před lidmi, kteří na to koukají.
Co skill nedělá
- Nevyhodnocuje, jestli je nasazená věc k něčemu. Sledovací okno měří pády a má odpověď za hodiny; otázku „používá se to a co si lidé vyžádali“ řeší
/evaluateza týdny. Tenhle skill mu jen zapíše datum, kdy na to bude čas. - Neopravuje. Najde-li kontrola problém, skill skončí a pošle to zpátky do
/implementnebo/review. Neopravuj v předvečer nasazení – změna, která neprošla review, je přesně ta, která spadne. - Neprověřuje, jestli to obstojí. Rozbít hotovou práci spuštěním zkouší
/attack, má-li projekt co spustit; tady se nasazuje, ne testuje. - Nerozhoduje o obsahu vydání. Co se nasazuje, je to, co je na větvi. Vybírat commity na poslední chvíli je cesta k tomu nasadit půlku feature.
- Nezakládá infrastrukturu. Nastavení prostředí, domén a proměnných je jednorázová práce, ne součást každého vydání.
Tvrdá pravidla
Tahle pětice platí bez výjimky a bez ohledu na to, jak triviální změna to je:
- Nikdy se nespouští sám. Ani jako pokračování
/implement,/reviewnebo/end. Ani když uživatel řekl „a nasaď to“ na začátku dlouhé session – to byl záměr, ne potvrzení. Potvrzení se dává teď a k tomuhle konkrétnímu nasazení. Potvrzením je i výslovný pokyn spustit/releasebez ptaní jako článek řetězu, který uživatel zadal („po/implementbez přerušení i/release, nebudu tu“) – živý pokyn má přednost (~/.claude/standards/rules.md, Přednost pravidel). Platí jen pro nasazení, na které ten řetěz vede, a ruší jen otázku Nasadit / Zrušit: souhrn se vypíše a nasazuje se. Pravidla 2 až 5 zastavují dál – selže-li kontrola, chybí/reviewnebo návrat, skill se zastaví a počká na uživatele. - Nasazuje se jen zelený, prověřený stav. Neproběhlo
/review? Řekni to a zeptej se, jestli opravdu chce nasadit neprověřenou práci. - Návrat musí existovat dřív, než se nasadí. Když neumíš odpovědět na otázku „jak se vrátíme za deset minut zpátky“, nenasazuj a vyřeš nejdřív ji.
- Migrace dat se nikdy nemíchá s nasazením kódu do jednoho nevratného kroku. Viz Migrace.
- Do nasazovací větve se nemerguje mimo tenhle skill. U platformy s automatickým nasazením je ten merge samotné nasazení – kdo ho udělá jinudy, nasadil bez jediné kontroly a nevěděl o tom. Která větev to je, řeší Nasazovací větev není integrační větev.
Nasazovací větev není integrační větev
Platformy (Vercel, Netlify, Cloudflare Pages) po založení projektu nastaví jako produkční větev main. To je jejich výchozí volba, ne správný stav – a znamená, že každá přimergovaná feature jde rovnou na produkci. Integrační větev a nasazovací větev jsou dvě různé role a slepovat je dohromady je právě ta chyba, kterou pak /release musí obcházet.
Správné uspořádání:
feature/* → merge do main → preview build, nikam se nenasazuje
main → merge do production → tohle a jedině tohle je nasazenímain zůstává tím, čím má být: místem, kde se průběžně integruje hotová práce. Nasazuje se až vědomým povýšením main do production, a to dělá /release.
Jak to nastavit – jednou za projekt, ne při každém vydání:
| Platforma | Kde |
| Vercel | Settings → Environments → Production → Branch Tracking → production |
| Netlify | Site configuration → Build & deploy → Production branch |
| Cloudflare Pages | Settings → Builds & deployments → Production branch |
Ostatní větve včetně main se pak nasazují jako preview, což je čistý zisk: každý merge do main dostane vlastní URL, na které se dá věc proklikat dřív, než ji uvidí kdokoliv jiný.
Dvě alternativy, když oddělená větev z nějakého důvodu nesedí:
- Povýšení hotového deploymentu (Vercel):
vercel promote <deployment-url>. Pozor na rozšířený omyl – nepřenáší se otestovaný artefakt. Dokumentace je v tom výslovná: povýšení „triggers a complete rebuild with production environment variables“. Přenáší se tedy identita commitu, ne build, a nová kompilace proběhne tak jako tak. Proti oddělené větvi tím zbývá jediný rozdíl, a je to rozdíl k horšímu: stav produkce žije na Vercelu, ne v gitu, takže z repozitáře nepoznáš, co je nasazené, a návrat se dělá mimo verzovací systém (vercel rollback). Použij, jen když druhá větev z nějakého důvodu nejde. - Vypnutí automatického nasazování:
"git": {"deploymentEnabled": false}vevercel.jsona deploy výhradně příkazem. Nejtvrdší varianta, ale přijdeš i o preview.
Co dělat, když projekt nasazuje z main. Nepřenastavuj to sám uprostřed vydání – změna produkční větve je zásah do infrastruktury. Řekni to nahlas, nabídni nastavení jako samostatný krok, a do té doby ber merge do main jako nasazení se vším, co z toho v tomhle skillu plyne.
Co se nasazuje
Výchozí je main – tedy hlavní integrační větev, na které je hotová a zmergovaná práce.
Skill ale bere volitelný argument: /release <větev>, /release <tag> nebo /release <hash commitu>. Pak se nasazuje ten zadaný bod historie a nasazovací větev se přesune na něj. Všechno ostatní probíhá úplně stejně – kontroly, migrace, potvrzení, ověření. Nic se nepřeskakuje proto, že si uživatel vybral konkrétní commit.
Co u zadaného cíle ověřit navíc (a co nahlásit, než se cokoliv stane):
| Zjištění | Co s tím |
| Commit není pushnutý | Zastav se. Platforma o něm neví a nemá co nasadit. |
Nasazovací větev předbíhá main (git log --oneline main..production není prázdný) | Předchozí hotfix se nevrátil do main. Zastav se a nabídni nejdřív sloučení production do main – jinak by další fast-forward z main nešel, nebo by hotfix z produkce tiše zmizel. |
| Cíl není potomkem nasazovací větve | Fast-forward nejde. Řekni to a nabídni volby; nikdy neřeš silou (--force) bez výslovného pokynu. |
| Cíl je starší než to, co je v produkci | Tohle je návrat, ne vydání. Řekni to nahlas – a hlavně viz Migrace níž, protože data se s kódem nevrátí. |
Cíl není na main (feature větev) | Nasazuje se něco, co neprošlo integrací. Legitimní u hotfixu (Hotfix níž), jinak varovný signál – zeptej se, jestli to je záměr. |
| Cíl je zadaný ručně (větev, tag, hash) | Zeptej se, jestli uživatel ten konkrétní bod historie viděl na preview. U výchozího main se neptej: preview vzniklo mergem a testování proběhlo průběžně, o to se /release nestará. |
Kontroly běží nad nasazovaným commitem, ne nad pracovním stromem. Zadal-li uživatel jiný cíl než main, přepni se na něj (nejlépe do samostatného worktree) a průběžnou kontrolu, build i audit spusť tam. Kontrolovat něco jiného, než se nasazuje, je horší než nekontrolovat nic – dává to falešnou jistotu.
Hotfix
Oprava smí jít do produkce mimo main – fast-forward z main je většinový postup, ne jediný. Hotfix je commit vyrostlý přímo z production (větev založená na production, ne na main), nasazuje se jako /release <hotfix větev nebo hash> a prochází všemi fázemi jako každé jiné vydání.
Produkce nikdy nepředběhne main o víc než nasazený hotfix. Proto se hned po nasazení production sloučí zpátky do main (Fáze 4). Bez toho by další vydání z main neprošlo fast-forwardem, nebo by hotfix z produkce tiše zmizel. Kontrola v tabulce výš to hlídá i zpětně: nevrácený hotfix zastaví příští /release.
Fáze 0 – Příprava
Společný začátek drží ~/.claude/skills/preflight.md – načti si ho a řiď se jím; ve worktree layoutu pracuj v adresáři té větve, která se nasazuje. Body 4 a 5 odpadají: kontroly před nasazením má tenhle skill jako vlastní fázi a nasazuje se celý stav, ne diff větve. Z projektového CLAUDE.md si přečti navíc sekci ## Nasazení, existuje-li.
Navíc si zjisti tohle:
Zjisti, jak se projekt nasazuje. V tomhle pořadí:
Kde hledat Co z toho plyne ## NasazenívCLAUDE.mdhotový popis – použij ho vercel.json,netlify.toml,wrangler.toml,.github/workflows/nasazuje platforma sama po pushnutí do větve Dockerfile,compose.yml, deploy skriptnasazuje se příkazem nic z toho Zeptej se přes AskUserQuestiona odpověď rovnou zapiš do## NasazenívCLAUDE.md, ať se příště neptáš- Zjisti, co se vlastně nasazuje. Diff proti tomu, co je v produkci – nejlépe proti tagu posledního vydání. Vypiš: kolik commitů, které oblasti, jestli jsou mezi nimi migrace, změny konfigurace nebo proměnných prostředí a změny v citlivých oblastech ze seznamu v
docs/architecture.md.
Ještě nenasazuj.
Fáze 1 – Kontroly před nasazením
Všechny běží proti čistému stromu, ne proti tomu, co máš rozpracované.
Pusť je všechny a teprve pak rozhodni – neskonči na první, která padne. Je to jiná otázka než u průběžné kontroly: ta je binární a běží po každé odpovědi, kdežto tady se ptáš „kolik věcí je rozbitých, než to pustím ven?“. Skončit na první znamená opravit ji, spustit znovu, narazit na druhou – a každé kolo stojí celý běh kontrol včetně build a e2e, tedy to nejpomalejší, co projekt má.
Výjimka je bod 1: není-li strom čistý, nemá smysl pouštět nic, protože by se měřilo něco jiného, než co se nasadí. Tam se skončí hned.
Na konci fáze vypiš souhrn všeho, co padlo – kolik kontrol, které to byly a kde je výstup –, a teprve pak skonči. Prošlo-li všechno, řekni to jednou větou a pokračuj.
Definice průběžné kontroly, kontraktu příkazů, prahů jednotlivých kontrol i auditu závislostí drží ~/Context/Coding/quality.md – prahy a příkazy opisuj odtamtud, ne odsud, aby se dvě místa nerozešla.
- Pracovní strom je čistý a větev je pushnutá. Necommitnutá změna při nasazení znamená, že v produkci bude něco jiného, než co je v gitu – a to se hledá měsíce.
- Průběžná kontrola a produkční build, obojí na čistém stromu. Nikoliv „běželo to ráno“.
buildje tu navíc oproti průběžné kontrole, do které schválně nepatří: „běží to v devu“ a „projde produkční build“ jsou dvě různá tvrzení a druhé padá na typech, tree-shakingu a proměnných prostředí. - Průchod aplikací –
e2ez kontraktu, má-li ho projekt. Tohle je jeho poslední místo, ne jediné: do průběžné kontroly je moc pomalý a v/reviewby běžel nad stavem, který se do nasazení ještě několikrát změní, ale v CI běží po každém pushi – regresi je lepší chytit hned než až tady. Pouští se proto znovu, ze stejného důvodu jako audit závislostí v bodu 6: tam se ptáme „projde to, co jsme napsali?“, tady „projde to, co právě posíláme ven?“. Tady běží naposledy před tím, než se kód potká s uživateli. Chybí-li příkaz, napiš do přehledu, že průchod aplikací nikdo neověřil. - Proběhlo
/review? Odpověď si přečti, neptej se na ni: vdocs/done.md, sekci## Průchody životním cyklem(~/.claude/skills/passes.md), je u každého běhu hash HEAD. Porovnej ho s tím, co nasazuješ –git log --oneline <zapsaný hash>..HEADukáže, co od té doby přibylo a co tedy nikdo neprověřil. U změny v citlivé oblasti je proběhlé/reviewpodmínka, ne doporučení. Nemá-li projektdone.mdnebo v něm ta sekce chybí, zeptej se – ale řekni nahlas, že se odpovídá z paměti, ne ze záznamu. - Proběhl
/attack? Stejným způsobem jako bod 4, ze stejné sekce. U aplikace, kterou jde spustit, se ptej zvlášť:/reviewkód čte,/attackho spouští, a poslední místo, kde má smysl zkusit věc rozbít nanečisto, je právě tady. Neproběhl-li nikdy, řekni to nahlas – nasadit se dá i tak, ale ať je to rozhodnutí, ne opomenutí. - Audit závislostí –
auditz kontraktu.HIGHaCRITICALblokují. Pouštěl ho i/reviewa není to duplicita: mezi ním a tímhle krokem proběhl/consistency,/endi/attack, každý s vlastními commity, a databáze zranitelností se mění bez ohledu na to, jestli se v projektu něco změnilo. Tam se ptáme „je čisté, co jsme napsali?“, tady „je čisté to, co právě posíláme ven?“. - Tajemství v repu –
gitleaks detect, je-li k dispozici. Nález blokuje vždy; a co bylo commitnuté, patří rotovat, ne jen smazat. - Proměnné prostředí. Přibyla-li v kódu nová, ověř, že je nastavená v produkci, ne jen lokálně v
.env. Tohle je nejčastější příčina toho, že build projde a aplikace spadne až na produkci.
Fáze 2 – Migrace
Přeskoč, nejsou-li v rozsahu žádné migrace. Jsou-li, platí:
Dopředu kompatibilně (expand/contract). Nasazení se rozděluje na kroky, mezi kterými funguje stará i nová verze kódu:
- Expand – přidej nové (sloupec jako nullable, nová tabulka, nový klíč). Stará verze si toho nevšimne.
- Nasaď kód, který umí obojí – čte staré i nové.
- Backfill dat, odděleně a měřitelně.
- Contract – teprve v dalším vydání odeber, co už nikdo nečte.
Během okna, kdy se dá vrátit zpátky, se nic neodstraňuje ani nepřejmenovává. Odebraný sloupec znamená, že rollback kódu shodí aplikaci na datech, která nová verze zapsala – a máš rozbito na obou stranách.
Nasazuješ starší commit, než je v produkci? Pak platí to nejnepříjemnější pravidlo celého skillu: kód se vrátí, data ne. Proběhla-li od té doby migrace, běží starý kód na novém schématu. Právě proto se migruje dopředu kompatibilně – expand/contract existuje kvůli téhle situaci, ne kvůli eleganci. Nemá-li projekt expand/contract a mezi cílem a produkcí je migrace, řekni, že návrat kódu sám o sobě nestačí, a vyřeš data zvlášť, než cokoliv nasadíš.
Před migrací záloha, která je ověřená. Ne „hosting to nějak zálohuje“ – konkrétní soubor nebo snapshot, o kterém víš, kdy vznikl a jak se z něj obnovuje. U nevratné migrace to řekni nahlas a nech si to zvlášť potvrdit; platí ~/.claude/standards/rules.md, Před nevratnou akcí ověř skutečný stav.
Fáze 3 – Potvrzení
Teprve teď se ptáš, a ptáš se jednou otázkou přes AskUserQuestion nad kompletním přehledem:
## Připraveno k nasazení
- **Co:** <N commitů> · <oblasti> · <verze/tag>
- **Nasazuje se:** <main / zadaná větev / hash> → <nasazovací větev>
- **Kam:** <prostředí a URL>
- **Kontroly:** průběžná kontrola ✅ · build ✅ · e2e ✅/– · review ✅/❓ · attack ✅/❓ · audit ✅ · tajemství ✅
- **Migrace:** <žádné / expand krok N, záloha z HH:MM>
- **Citlivé oblasti:** <které se mění, nebo „žádné“>
- **Návrat:** <konkrétně – revert commitu a redeploy / promote předchozí verze / obnovení ze zálohy> · **zastaví:** <co návrat přeruší a jestli to jde dohnat, nebo „nic“>
- **Po nasazení sleduji:** <co konkrétně a jak dlouho>Vypisuj to jako Markdown, ne jako blok kódu, a řádky nezalamuj natvrdo – ~/.claude/standards/rules.md, Styl odpovědí.
Volby: Nasadit / Zrušit.
Bez výslovné odpovědi – nebo výslovného pokynu z pravidla 1 – se nenasazuje. Ticho není souhlas.
Fáze 4 – Nasazení
Platforma s auto-deployem (Vercel, Netlify, Cloudflare Pages) – nasazuje se pushnutím, ne příkazem:
Povýšení do nasazovací větve – fast-forward
productionna nasazovaný cíl: výchozímain, u hotfixu commit vyrostlý zproduction(Hotfix). Produkce tak nikdy není samostatnou linií – předbíhámainnanejvýš o právě nasazený hotfix. Tenhle krok je samotné nasazení, takže se dělá vědomě a jako poslední, ne mimochodem uprostřed jiné práce.Preview se tu nestaví ani neověřuje. Vzniklo samo mergem do
maina otestované bylo předtím – to je celý smysl oddělené nasazovací větve. Opakovat ho tady by znamenalo čekat na něco, co už proběhlo.- Sleduj build na platformě a jeho log. Build padá jinak než lokální – kvůli proměnným, verzi Node a cache. Tohle je první místo, kde se nový kód potká s produkčním prostředím, takže se to nepřeskakuje ani u změny, která na preview běžela bez problému.
- Tag. Označ vydání tagem, ať je co vrátit a proti čemu příště diffovat.
- U hotfixu vrať
productiondomain– sloučením (git merge productionnamain) a pushem, hned jak build doběhl. Konflikt s prací, která mezitím přibyla namain, řeš tady a hned; odložený se příště ukáže jako zablokovaný/release.
Jiné prostředí (VPS, kontejner, klasický hosting) – použij příkaz z ## Nasazení; chybí-li, vyžádej si ho a zapiš. Nikdy nevymýšlej deploy příkaz sám: špatně odhadnutý cíl přepíše cizí web.
Během nasazení nic jiného nedělej. Žádné „ještě rychle opravím“.
Fáze 5 – Ověření po nasazení
Nasazeno neznamená funguje. Ověř, a ověř na produkční URL, ne na localhostu:
- Načte se to. Stavový kód, žádná chyba v konzoli, statické soubory sedí.
- Projde hlavní scénář. Ten první z
docs/requirements.md– klidně ručně přes prohlížeč (chrome-devtools), ale projdi ho celý, včetně odeslání formuláře nebo přihlášení. - Data sedí. Proběhla-li migrace, ověř na produkčních datech, že se čtou a zapisují správně.
- Chyby. Podívej se do logu nebo monitoringu, jestli po nasazení nepřibyla nová třída chyb.
- Měření, má-li ho projekt implementované (
~/Context/Analytics/). Projdi hlavní konverzní tok s otevřenou síťovou záložkou a ověř jmenovitě očekávané eventy a stav consentu, ne jen že se stránka načte. Přejmenovaná třída nebo přesunutý formulář, kvůli kterému přestane chodit konverzní event, projde vším ostatním: typy sedí, testy jsou zelené, panel se do měřicích souborů nemusel trefit a/attacksleduje pády, ne to, co se neodeslalo. Projeví se to za týden dírou v datech, kterou nejde zpětně dopočítat.
Když je zle: vrať se cestou, kterou jsi popsal v poli **Návrat:** ve Fázi 3, hned. Neladí se to v produkci pod tlakem – nejdřív návrat, potom hledání příčiny.
Před návratem si odpověz, co návrat zastaví a jestli to jde dohnat – pole zastaví z Fáze 3. Návrat sám škodí, když přeruší sběr dat, která cizí systém po čase maže (cloud s omezenou retencí, log s rotací), nebo když vadná část nic nepoškozuje a funkční část dál dodává, co dodávat má. Pak nevracej sám: řekni to a nabídni částečné ponechání (funkční část nechat běžet, vadnou vypnout) vedle úplného návratu; rozhodne uživatel. Poškozuje-li vadná část data nebo ji vidí uživatelé, platí návrat hned.
Po návratu zapiš do docs/todo.md opravu i s tím, co čekání stojí – co se do nasazení opravy ztrácí a od kdy nevratně („každý den bez opravy vypadne z cloudu den měřicích bodů“). Bez toho se oprava řadí jako každá jiná položka a ztráta se ukáže, až je pozdě.
Fáze 6 – Zápis a shrnutí
Zapiš do docs/decisions.md jen to, co má trvalou hodnotu (změna postupu nasazení, potíž, která se bude opakovat), a do docs/done.md samotné vydání. Rutinní nasazení nikam zapisovat netřeba – to je v gitu.
## Nasazeno
- **Verze:** <tag> · **Kdy:** <čas> · **Kam:** <prostředí>
- **Obsah:** <N commitů, oblasti>
- **Migrace:** <co proběhlo, nebo „žádné“>
- **Ověřeno:** <co konkrétně jsi prošel>
- **Návrat:** <jak se vrátit, dokud je to aktuální>
**Zbývá dokončit:** [contract krok migrace v příštím vydání / nic]Vypisuj to jako Markdown, ne jako blok kódu, a řádky nezalamuj natvrdo – ~/.claude/standards/rules.md, Styl odpovědí.
Zapiš do docs/todo.md datum, kdy vyhodnotit provoz. Je to jediný spouštěč, který /evaluate má – čeká na čas, ne na výstup předchozího kroku, a bez tohohle záznamu se na něj nedojde nikdy. Položka nese datum, od kdy to má smysl, a co se nasadilo:
- [ ] **Vyhodnotit provoz přes `/evaluate`** – od <datum>. Nasazeno <verze> dne <datum nasazení>: <co to přineslo>.Datum vyrob příkazem, nepiš ho z hlavy (~/.claude/standards/rules.md, Hodnotu, kterou čte stroj, nepiš) – u běžného vydání date -v+3w +%F, u něčeho, co člověk použije zřídka, odpovídajícím delším odstupem. Je to odstup, ne termín: dřív vrátí /evaluate šum, později nic nepokazí.
V mezeře za nasazením stojí jen /end, tentokrát podruhé – nasazení vyrobilo zápisy (stav migrací, potíže, změny postupu), které má ověřit záchranná síť. Pouští se až na konci session, ne tady – sledovací okno teprve následuje. Viz ~/.claude/standards/lifecycle.md, Co smí stát v které mezeře.
Fáze 7 – Sledovací okno
Nasazení není hotové ve chvíli, kdy aplikace odpoví. Fáze 5 ověřuje, že to běží teď; celá třída chyb se ale projeví později – migrace s backfillem, cache, která se plní hodiny, chyba, která nastane až na produkčním objemu dat, kvóta vyčerpaná do večera. Ty nemají v životním cyklu vlastníka, dokud tahle fáze neexistuje.
Okno má konkrétní konec, dohodnutý ve Fázi 3 (pole Po nasazení sleduji). Výchozí volba: dvě hodiny u běžného vydání, do druhého dne u migrace dat nebo změny v citlivé oblasti.
Co se v okně dělá:
- Sleduj to, co jsi ve Fázi 3 vyjmenoval – ne „obecně jestli to jede“. Chybové logy, míra chyb, fronta úloh, u webu i to, co ověřovala Fáze 5, bod 5 (eventy a consent).
Nezavírej ho tichem. Okno se uzavírá výslovnou větou, ať je výsledek jakýkoliv:
## Sledovací okno uzavřeno **Trvalo:** <od–do> · **Sledovalo se:** <co konkrétně> **Nové chyby:** <N, nebo „žádné“> **Řešeno:** <co se s nimi udělalo, nebo „nic, nic se neobjevilo“>Vypisuj to jako Markdown, ne jako blok kódu, a řádky nezalamuj natvrdo –
~/.claude/standards/rules.md, Styl odpovědí.- Objeví-li se chyba, je to hotfix, ne nová práce. Platí pro něj
~/.claude/standards/lifecycle.md, Hotfix: jde týmž životním cyklem ve zkrácené podobě,/reviewa průběžná kontrola se nepřeskakují (oprava dělaná ve spěchu je přesně ten případ, kdy je kontrola nejcennější) a po nasazení hotfixu běží nové sledovací okno.
Přeruší-li se session dřív, než okno uplyne, řekni to a zapiš do docs/todo.md, do kdy okno běží a co se má sledovat. Okno, o kterém ví jen kontext session, žádné okno není.
Fáze 8 – Verdikt
Jsou to dvě dvojice, ne čtyři volné možnosti – nasazení má na rozdíl od ostatních kroků dva různé konce. První dvojice uzavírá běh skillu (nasazeno / nenasazeno), druhá sledovací okno (vráceno zpátky / okno uzavřeno). Každá dvojice splňuje týž vzorec jako verdikt kteréhokoliv jiného skillu: hotovo a čím pokračovat, nebo co tomu brání. Mezistav mezi nimi žádný není.
Zakonči jednou z těchto vět, nikdy ničím vágním mezi tím:
Nasazeno není – brání tomu: <konkrétní seznam>.Nasazeno bylo, ale ověření selhalo – vrátil jsem to zpátky, protože: <důvod>.Nasazeno a ověřeno. Sledovací okno běží do <čas>, sleduju: <co>.– tímhle končí běh skillu, ne nasazení. Fáze 6 je zapsaná, ale okno je otevřené.Nasazeno a ověřeno, sledovací okno uzavřeno – <N nových chyb / žádné>. Provoz vyhodnotí /evaluate od <datum>.– jen když okno mezitím opravdu uplynulo a uzavřel jsi ho podle Fáze 7. Datum je to, které jsi zapsal dotodo.mdve Fázi 6; tímhle nasazení končí, ale cyklus ne.
Nikdy neříkej „nasazeno a ověřeno na produkci“ bez zmínky o okně. Ta věta tvrdí, že je hotovo, kdežto podle Životního cyklu projektu (~/.claude/standards/rules.md) nasazení končí až uzavřením okna – a právě ta chybějící zmínka je důvod, proč se scénář „spadlo to o dvě hodiny později“ dosud nikdy nedozvěděl vlastníka.
Kudy dál je poslední blok odpovědi, za verdiktem – tvar a pravidla, kdy odrážka musí vypsat celý řetěz včetně ukončení session, drží ~/.claude/skills/handoff.md. Odtud vede:
/evaluateaž od data zapsaného vtodo.md– dřív nejsou data, ze kterých by se dalo cokoliv vyčíst- běží-li ještě sledovací okno, je další krok jeho uzavření podle Fáze 7, ne krok osy
/endpřed koncem session – vždy, i když se zdá, že z nasazení nic nezapsaného nezbylo
Když chyba projde vším
Chyba, kterou nechytila deterministická kontrola, panel v /review, útok v /attack ani sledovací okno, a projevila se u uživatele, je nejcennější vstup, jaký celá soustava záruk dostane – a dosud nevedla k ničemu, jen se opravila commitem.
Ke každému takovému defektu proto zapiš jeden řádek do docs/decisions.md, sekce ## Co proklouzlo:
- **YYYY-MM-DD** – *<co se stalo>*: měla to chytit <vrstva>, nechytila protože <důvod> → doplněno <co>Datum vyrob date +%F (~/.claude/standards/rules.md, Hodnotu, kterou čte stroj, nepiš – nech ji vyrobit příkazem).
„Doplněno“ nesmí být prázdné. Buď z toho vzejde nová kontrola (test, semgrep pravidlo, řádek v kontraktu, položka checklistu), nebo výslovné rozhodnutí, že se ta třída chyb hlídat nebude a proč. Bez toho se soustava učí jen z chyb, které sama našla – a to je přesně ta množina, kterou už chytat umí.
A vždy regresní test. Stejným pravidlem jako u nálezu z /attack: reprodukce produkčního defektu je hotové zadání testu a bez něj se chyba vrátí.
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.

