Jak jsem si v Claude Desktop nastavil ranní git+Jira status report
Case study: scheduled task, který každý pracovní den projde mou git aktivitu a Jira tickety za posledních 24 hodin a vytvoří output Slack-ready zprávu pro daily standup.
Pavel Andrašší, Design IT (KISK FF MUNI), květen 2026
(text byl editován s pomocí AI asistenta – obsah a zkušenosti jsou autorské)
Co tenhle task dělá
Task se každý pracovní den ráno automaticky spustí, projde definované zdroje (lokální git repo, GitHub PRs, Jira tickety) a vyhodí strukturovaný report ve formátu, který lepím do Slacku jako daily standup.
Příprava reportu mě dřív stála 5 až 8 minut každý den. Teď se na něj jen kouknu, případně něco doladím, a posílám.

Krok 1 — Připravil jsem si prompt mimo Claude
Než jsem cokoliv klikal v UI, napsal jsem prompt zvlášť v Markdown editoru.
Důvod: prompt do scheduled tasku se špatně edituje uvnitř malého inputu a chci mít verzi, kterou si můžu commitnout do svého repa s konfigurací.
Krok 2 — Nastavil jsem MCP konektory
Aby task mohl číst Jiru, musí mít konektor.
V Claude Desktop:
1. Otevřel jsem Customize → Connectors
2. Najít Atlassian v seznamu (nebo přes Browse Connectors)
3. Připojit — proběhne OAuth flow do Atlassianu, autorizoval jsem to v prohlížeči
4. Po návratu konektor svítí jako connected
5. GitHub CLI (gh) jsem měl už nainstalovaný (brew install gh && gh auth login).
Cowork ho používá přes terminál, není to MCP konektor. Pokud gh nemáš, scheduled task ti gh pr list vyhodí jako „command not found“.
Krok 3 — Vytvořil jsem scheduled task v UI
V Claude Code Desktop appce jsem v levém sidebaru klikl na Scheduled a v pravém horním rohu na + New task.
Otevřel se modal s pěti poli:
Task name: pojmenoval jsem ho daily-status-check. Slouží jen mně, aby se mi tasky později nepletly.
Prompt: vlepil jsem celý Markdown prompt z Kroku 1. Cowork zvládá poměrně dlouhé prompty a Markdown formátování v něm respektuje, takže nadpisy a code bloky tam přežijí.
Schedule: vybral jsem On weekdays a čas 12:30. Cowork přidává pár minut náhodný offset, abys nezaplavil API přesně v půl, takže reálně se task spouští kolem 12:32-12:34. Pro mě OK — v 13:00 píšu status, mám dost času zkontrolovat output.
Tip: pokud nepotřebuješ standardní cadence (daily / weekly / weekdays / hourly), v jakékoliv Cowork session napiš plain
language prompt typu „set up a task that runs every Monday and Thursday at 9am“ a Claude ti task vytvoří sám. Funguje i pro úpravy existujících tasků.
Working folder: tady to bylo důležité. git log a gh musí běžet v adresáři mého git repa. Vybral jsem cestu k lokálnímu
klonu projektu (/Users/<user>/repos/<projekt>) a v dialogu Trust folder to potvrdil. Bez trustnutí by task selhal hned na
startu.
Permission mode: nechal jsem default (accept edits či ekvivalent dle aktuální verze). Pro task, který jen čte data a nevolá destruktivní příkazy, to je v pořádku. > Save. Task naskočil do sekce Scheduled v sidebaru s indikátorem příštího běhu.
Krok 4 — Otestoval jsem ho na živo
Před tím, než jsem ho nechal běžet zítra ráno automaticky, ručně jsem ho spustil.
V sekci Scheduled u tasku najdeš tlačítko Run now. Kliknul jsem, otevřela se nová Cowork session, Claude začal tool-callovat.
První běh selhal hned na druhém kroku (gh pr list) — v shellu nebyl gh v PATH.
Opravil jsem prompt: na úvod přidal řádek „Pokud `gh` není dostupné, přeskoč tento krok a pokračuj.“ Lepší řešení by bylo ověřit PATH v shell konfiguraci Cowork, ale tohle stačilo.
Druhý běh prošel: Claude přečetl git log, zavolal Atlassian MCP, napsal output ve formátu, který jsem zadal.
Output je v threadu té scheduled session, najdeš ho v sidebaru pod Scheduled.
Krok 5 — Co jsem doladil po prvních ostrých bězích
Po dvou-třech reálných spuštěních jsem prompt upravoval ještě dvakrát:
Claude občas zahrnoval commits z předchozího dne, které jsem už reportoval. Přidal jsem do promptu explicitní hranici: „Cutoff je včerejších 13:00 CET, vše starší ignoruj.“
Když nebyly žádné WIP branches, vypisoval prázdnou sekci s textem „žádné WIP“. Přidal jsem: „Sekci úplně vynech, pokud je prázdná.“
Každou úpravu promptu jsem dělal v Markdown souboru zvlášť, pak vlepil do tasku přes Edit task → Prompt.
Verze promptu mám v gitu, takže můžu kdykoliv rollbacknout.

Kdy task běží a kdy ne
Code scheduled task běží jen pokud je počítač probuzený a Claude Desktop appka je otevřená.
Když je notebook ve sleepu, task se přeskočí a spustí se jednou po probuzení (catch-up run). Když je vypnutý nebo je appka zavřená, run se zahodí úplně.
V Settings → Desktop app → General jsem zapnul Keep computer awake, ale zavřené víko notebooku stejně systém uspí.
V praxi: notebook nechávám přes den otevřený a appku zapnutou, jinak by mi to ráno neběželo.
Pokud potřebuješ běh nezávislý na lokálním stroji, podívej se na Claude Code cloud routines (claude.ai/code/scheduled) – ty běží na Anthropic infrastruktuře.
Tam jsem nešel, protože git repo i Jira přístup mám lokálně.

Scheduling prompt:
Analyze git activity and generate a Slack daily status update
Data sources
1. Git log — commits z posledních 24h (od včerejších 13:00 do teď, CET),
filter podle mého author name
2. Open PRs — spusť:
gh pr list –author=@me –state=open –json <br /> number,title,headRefName,updatedAt,isDraft
3. WIP branches — spusť:
git branch -r –sort=-committerdate | head -20
Pro každou větev co vypadá jako moje (git log -1 –format=“%an“ )
ověř, jestli má PR. Větve s commits za posledních 7 dní bez PR = WIP.
4. Jira activity — použij searchJiraIssuesUsingJql MCP nástroj
s cloudId .atlassian.net a JQL:
updatedDate >= -1d AND (assignee = currentUser()
OR reporter = currentUser()
OR worklogAuthor = currentUser()
OR comment ~ currentUser())
ORDER BY updated DESC
s fields [„summary“, „status“, „updated“, „issuetype“].
Pravidla výstupu
Group related commits do meaningful work themes (ne raw commit list)
Popisuj WHY a impact, ne jen co se změnilo
Aktivní jazyk: „implementoval“, „opravil“, ne „updated“
Pokud commit referencuje Jira ticket, přidej číslo
Max 3 bullets pro „done“, 2 pro „planned“, 3 pro „WIP“
Každý bullet: jedna věta, max ~12 slov
Formát (Slack-ready)
✅ Co jsem dělal:
[bullet]
[bullet]
[bullet]
🔜 Co plánuji:
[bullet — max 1-2]
Jazyk: české věty, technické termíny anglicky (PR, branch names,
Jira tickets, Playwright, CI zůstávají v angličtině).
Blocker sekci vynech, pokud žádné nejsou.
Co je důležité na tomhle promptu: explicitní pravidla výstupu (max 3 bullets, max 12 slov) jsou tam záměrně.
Bez nich Claude napsal romány. Proces vypadal tak, že jsem prompt psal iterativně — spustil ho, zjistil že vypisuje 12 bulletů místo 3, přidal pravidlo, znovu, atd. Ten finální prompt je asi 5 iterací.
