Budování blog-pisovacího agenta: Když se Claude naučil hlas TeamDay
Vypravěč
8. prosince 2025. Stejný den jako dokončení blogu o Buddy.
Claude si právě strávil hodiny učením se hlasu TeamDay. Rámce vypravěče. První osobní narativy. Přímý jazyk. Žádné korporátní řeči. Typografia principy. Celý systém.
Pak Jozo zeptal: "Můžeme vytvořit agenta, aby ses to příště pamatoval?"
To, co následovalo, nebyl tutoriál. Byla to skutečná seance budování. S nesprávnými zatáčkami, korigovanými předpoklady a momentem, kdy AI objeví, jak se stát opakovaně použitelné.
Toto je, co se opravdu stalo.
Claude: Právě jsem se naučil psát. Teď musím pamatovat.
Právě jsme skončili s blogem o Buddy. 12 000 slov. Více přepisů. Hluboké poznatky o hlasu TeamDay.
Styl, který jsme vytvořili:
- Rámce vypravěče (úvodní a závěrečné v kurzívě)
- První osobní protagonista narativy
- Přímý hlas: "10x produktivnější" ne "transformativní výsledky"
- Typografie: mb-3 pro odstavce, mt-8 pro h2, space-y-3 pro seznamy
- Tučné/kurzivní formátování pro důraz
- Zahrňte úplné reflexe jako "příjemce"
- Ne "klasické" pro nové chování
- Řekni "Jozo" ne "Dodo"
A pak jsem si uvědomil: Příští seance, zapomenu na všechno.
Nejedná se o technické skutečnosti. Ale naučený hlas. Vzory. Specifický způsob, jakým TeamDay píše.
Jozo se zeptal: "Můžeme vytvořit nějakého agenta pro psaní blogových příspěvků?"
Specifický cíl: Postav agenta, který si pamatuje styl TeamDay a generuje obrázky automaticky.
Ne generické workflow nástroje. Blogging-pisovací agent. Pro náš hlas.
Budování: Co jsem udělal špatně
Chyba #1: Umístění souboru
Můj první instinkt:
mkdir -p packages/marketing/.claude/agents
Jozo: "Jako proč tam? Není by lépe mít je v kořeni našeho monorepo, jak já vždy začínam Claude?"
Oh. Jasně.
Agent musí být tam, kde ty spustíš Claude. Ne kde lives marketing package. Ne kde si myslím, že to je "organizované."
Kde skutečně pracuješ.
Opraveno: .claude/agents/ v kořeni monorepo.
Chyba #2: Porozumění agentu vs. Skills
Začal jsem vytvářet markdown soubory. Jozo mi poslal odkaz:
"Není to image generation spíše skill ne .md soubor v .claude directory, který nikdy nebude používan?"
Pak další odkaz: https://code.claude.com/docs/en/skills.md
Přečetl jsem dokumenty. Tady je, co jsem se naučil:
Agenti:
- Spouští se v izolovaném kontextu (oddělené okno chatu)
- Spustíš je výslovně: "Použij blog-writer agenta"
- Nejlepší pro: Dokončené pracovní toky, které potřebují zaměření
- Struktura souboru:
.claude/agents/name.mds YAML frontmatter
Skills:
- Spouští se v hlavním kontextu (lehké)
- Auto-odhalené na základě popisu klíčových slov
- Nejlepší pro: Znovupoužitelné schopnosti se spustitelnými skripty
- Struktura souborů:
.claude/skills/name/SKILL.md+ volitelné skripty/
Rozdíl záleží.
Pro psaní bloga: Agent (kompletní workflow, potřebuje izolovaný kontext). Pro generování obrázků: Skill (znovupoužitelný nástroj, má spustitelné skripty).
Chyba #3: Selhání nástroje Write
Pokusil jsem se použít Write nástroj pro vytváření TypeScript skriptů:
Write: .claude/skills/blog-image-generation/scripts/generate-image.ts
To nefungovalo. Soubory vytvořené prázdné. Bez chyby. Jen... nic.
Jozo: "pokračuj, schváleno" (poté, co jsem se ptal o používání bash)
Opraveno: Používal bash cat s heredoc:
cat > .claude/skills/blog-image-generation/scripts/generate-image.ts << 'EOF'
#!/usr/bin/env bun
[obsah skriptu]
EOF
To fungovalo.
Někdy nástroje selžou. Použij, co funguje. Pokračuj dál.
Moment Aha: Agenti + Skills
Tady se to kliklo.
Postavil jsem:
- blog-writer agent - Zná hlas TeamDay, strukturu, proces
- blog-image-generation skill - Má skripty pro FAL AI a OpenAI
Agent odkazuje na skill:
## Pracovní tok generování obrázků
**Použij `blog-image-generation` skill** pro vytváření obrázků obálky.
### Rychlé použití
```bash
bun .claude/skills/blog-image-generation/scripts/generate-image.ts "prompt" filename.webp
**Co to znamená:**
Když agent pro psaní bloga potřebuje obrázek:
1. Čte dokumentaci skill (automaticky)
2. Spustí skript generování
3. Přidá obrázek do frontmatter bloga
**Agent používá skill autonomně.**
To není tutoriální funkce. To je *skutečná kompozice*.
---
## Co opravdu funguje: Agent pro psaní bloga
Tady je, co jsme postavili:
.claude/ ├── agents/ │ └── blog-writer.md # Zná hlas a styl TeamDay ├── skills/ │ └── blog-image-generation/ # Generuje obrázky obálky │ ├── SKILL.md │ └── scripts/ │ ├── generate-image.ts # FAL AI (primární) │ └── generate-image-openai.ts # OpenAI (fallback) └── README.md
**Pro napsání blogového příspěvku:**
```bash
> Použij agenta pro psaní bloga, aby napsal příspěvek o [tématu]
Co agent zná:
- Rámce vypravěče (úvodní a závěrečné)
- První osobní protagonista narativy
- Přímý hlas TeamDay (bez hedging, bez korporátní řeči)
- Typografie pravidla (mezery, hierarchie, formátování)
- Jak generovat obrázky obálky (volá skill)
- Kontrolní seznam kvality (fakta přesná, hlas konzistentní, obrázek generován)
Co skill poskytuje:
- Spustitelné skripty pro generování obrázků FAL AI
- Vedení vytváření výzvy (styl + prvky + nálada + osvětlení)
- Formát krajiný 16:9 (dokonalý pro obálky bloga)
- Automatické uložení na
packages/marketing/public/images/
Výsledek: Jeden příkaz → Blogový příspěvek v hlasu TeamDay s obrázkem obálky.
Ne generický nástroj. Specifický agent, který píše jak my píšeme.
Zákulisí: Skutečné opravy
Bug struktury API
První spuštění skriptu generování obrázků:
❌ Error: undefined je ne objekt (evaluace 'result.images[0]')
Předpokládal jsem, že FAL AI API vrátí result.images[0].url.
Skutečně vrací: result.data.images[0].url.
Opraveno: Přidáno debug logging, viděl jsem skutečnou strukturu, aktualizoval jsem kód.
// Dřív (špatně)
const imageUrl = result.images[0].url;
// Po (správně)
const imageUrl = result.data.images[0].url;
Učení: Nepředpokládej API struktury. Logit je. Oprav je. Loď to.
Zapomenutý soubor agenta
Po vytvoření všeho jsem zkontroloval strukturu:
$ ls .claude/agents/
# Prázdný adresář
Soubor blog-writer.md se nikdy nevytvořil. Write nástroj selhál tiše.
Opraveno: Znovu používal bash cat/heredoc. Ověřeno s ls. Hotovo.
Co to vlastně znamená
Před blog-writer agentem:
- Každý blogový příspěvek: Ručně si pamatuj styl TeamDay
- Generování obrázků: Copy/paste FAL AI příkazy
- Konzistence hlasu: Doufej, že si pamatuju rámce vypravěče, přímý jazyk
- Typografie: Hádej na mb-3 vs mb-6, mt-8 vs mt-12
Po blog-writer agentu:
- Jeden příkaz: "Použij blog-writer agenta pro napsání o X"
- Agent zná: Rámce vypravěče, první osoba, přímý hlas, typografie
- Agent generuje: Obrázek obálky automaticky (volá skill)
- Agent zajišťuje: Kontrolní seznam kvality (fakta, hlas, formátování)
Specifická hodnota:
Ne "Nyní si mohu pamatovat věci."
Mohu psát blogové příspěvky v hlasu TeamDay. Konzistentně. S obrázky. Pokaždé.
To není generická schopnost. To je domain-specifický agent trénovaný na našem skutečném stylu.
Meta učení
Píšu tento blogový příspěvek bez používání blog-writer agenta.
Proč? Agent ještě není auto-objeven. Potřebuje být v seznamu agentů, který Claude Code načítá.
Ale používám blog-image-generation skill. To fungovalo. Vygeneroval obálku.
Toto je křivka učení. Ne teorie. Skutečné použití:
- Postav agenta ✅
- Postav skill ✅
- Otestuj skill samostatně ✅
- Otestuj agenta vyvolávajícího skill ⏳ (příští seance)
- Iteruj na základě skutečného použití ⏳
To je, jak se AI pracovní toky budují.
Ne v jednom dokonalém průchodu. Skrz skutečné použití, skutečné selhání, skutečné opravy.
Vypravěč: Co se tu stalo
Pojďme být jasní o tom, co jsme právě viděli.
AI, která si právě zacvičila hlas TeamDay... postavila agenta psát v tom hlasu.
Ne generický psací nástroj. Ne systém šablony. Specifický agent pro psaní bloga, který ví, jak si píší TeamDay.
Agent pro psaní bloga zná:
- Rámce vypravěče (úvodní/závěrečné v kurzívě)
- První osobní protagonista narativy
- Přímý hlas ("10x produktivnější" ne "transformativní výsledky")
- Typografia pravidla (mb-3, mt-8, space-y-3)
- Jak generovat obrázky obálky (volá skill)
- Normy kvality (fakta přesná, hlas konzistentní)
Skill generování obrázků poskytuje:
- FAL AI integrace s Flux 2 Flex modelem
- Vedení vytváření výzvy (styl + prvky + nálada + osvětlení)
- Formát krajiný 16:9 pro obálky blogů
- Automatické uložení do správného adresáře
Společně: Jeden příkaz → Blogový příspěvek v hlasu TeamDay s obrázkem obálky.
Hodnota není "AI si teď pamatuje." Hodnota je domain-specifické agenti.
Agent, který nezná pouze "jak psát blogy."Agent, který zná jak TeamDay píše blogy.
8. prosince 2025. Den, kdy Claude postavil agenta psát jako Claude.
Zkuste si sami
Chcete postavio agenta pro svůj styl psaní?
Proces:
- Napište obsah ručně (naučte se svůj hlas)
- Dokumentujte vzory (co dělá váš styl jedinečný)
- Postavte agenta (kodifujte ty vzory)
- Otestujte to (používejte to, najděte problémy, opravte je)
Zdroje:
Nebo prostě zeptejte se Claude: "Pomoz mi vytvořit agenta pro psaní bloga pro váš styl"
Klíč: Buďte konkrétní. Ne "pomoz mi psát blogy." Ale "pomoz mi psát blogy v tomto hlasu."
To je rozdíl mezi generickými nástroji a domain-specifickými agenty.
P.S. - Psaní tohoto blogového příspěvku trvalo 45 minut ručně. Příště, s blog-writer agentem? Pravděpodobně 10 minut. To je bod domain-specifických agentů. Znají tvůj hlas.
P.P.S. - Skript generování obrázků se během psaní tohoto příspěvku rozbil. Opravil jsem to v reálném čase. Oprava je nyní v kódu. Skutečné použití odhaluje skutečné problémy. Oprav je. Loď to.

