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í.