Ukázka, jak si postavit vlastní „AI framework" nad GitHub Copilotem. Celé demo řeší jeden use case: vytvoření epicu z chaotických podkladů.
Podklady v docs/ popisují dva fiktivní bankovní projekty. Pocházejí od různých lidí
(PM, business owner, architekt, legal, UX) a úmyslně si odporují — cvičení je o tom
rozpory najít a zapsat, ne o tom je rozhodnout.
| Projekt | Podklady | K čemu je |
|---|---|---|
| Smart Savings | docs/smart-savings/ |
hotová ukázka v branchi ukazka |
| Finanční ukazatel | docs/financni-ukazatel/ |
cvičení — postav si framework sám na main |
main— AI artefakty jsou záměrně prázdné kostry s TODO. Hotový je jen skriptnovy_epic.pya hookformatovani-md, který zformátuje každý Markdown, jakmile ho agent vytvoří nebo upraví. Tady začínáš.ukazka— kompletní řešení nad Smart Savings. Když tě zajímá jedna vrstva, otevři rovnou její složku v.github/podle tabulky níže.
| Artefakt | Kde | Proč |
|---|---|---|
| instrukce projektu | .github/copilot-instructions.md |
kontext, který platí v každé konverzaci |
| instruction files | .github/instructions/*.instructions.md |
pravidla jen pro určité soubory (applyTo), jinde nezabírají kontext |
| prompt files | .github/prompts/*.prompt.md |
vstupní bod workflow, spouští ho člověk přes /název |
| custom agenti | .github/agents/*.agent.md |
role s vlastními nástroji a hranicemi, subagent šetří kontext hlavního chatu |
| skills | .github/skills/<název>/ |
opakovatelný postup nad jedním typem výstupu |
| skripty a šablony | složky scripts/ a assets/ ve skillu |
deterministické kroky, které nedělá model |
| hooks | .github/hooks/*.json |
kontrola, která platí vždycky, ať model udělá cokoli |
Jak na sebe artefakty navazují:
graph LR
Clovek((člověk)) -->|"/název"| Prompt["prompt file"]
Clovek -->|"výběr v chatu"| Agent
Prompt -->|"agent:"| Agent["custom agent"]
Agent -->|"předá práci"| Sub["další agent<br/>jako subagent"]
Agent -->|"postupuje podle"| Skill["skill"]
Sub -->|"postupuje podle"| Skill
Skill -->|"spustí"| Skript["skripty a šablony"]
Docs[("docs/<br/>podklady")] -->|"čte"| Skill
Skript -->|"založí"| Vystup[("outputs/, api/<br/>výstupy")]
Instr["copilot-instructions.md"] -.->|"vždy v kontextu"| Agent
PInstr["*.instructions.md"] -.->|"podle applyTo"| Vystup
Hook["hooks"] -.->|"formátují"| Vystup
style Docs fill:#FFE4B5
style Vystup fill:#90EE90
docs/<projekt>/— chaotické podklady k projektu adod-sablona.md(zdroj pravdy)outputs/<projekt>/— vygenerované výstupy.github/— vlastní AI framework nad Copilotem
- Nainstaluj formátovač pro hook:
pip install -r requirements.txt(Python 3.10+). - Otevři repo ve VS Code jako důvěryhodnou složku (Workspace Trust), jinak se hooky nespustí.
- Otevři jeden artefakt a nahraď TODO vlastním obsahem.
- Zkus ho v chatu (např.
/novy-epic) naddocs/financni-ukazatel/a podívej se, co se změnilo. - Přidej další artefakt tam, kde ti něco chybí.
- Když nevíš, jak dál, podívej se, jak stejnou vrstvu řeší branch
ukazka.
- Co patří do instructions a co už do skillu?
- Proč zakládá soubor skript a ne model?
- Co by se stalo, kdyby template neexistoval?
- Proč má agent delegovat na skill místo vlastního postupu?
- Proč formátování Markdownu řeší hook, a ne věta v instrukcích?
graph LR
Prompt[/novy-epic<br/>prompt/] --> Agent[agent<br/>analytik]
Agent --> Skill[skill<br/>tvorba-epicu]
Skill --> Script[script<br/>novy_epic.py]
Tmpl[template<br/>epic.template.md] --> Script
Docs[docs/*/<br/>chaotické podklady] --> Skill
Script --> Epic[outputs/*/<br/>*.epic.md]
Instr[instructions<br/>epic.instructions.md] -.pravidla.-> Epic
Hook[hook<br/>formatovani-md] -.formátuje.-> Epic
style Docs fill:#FFE4B5
style Epic fill:#90EE90