EDPA Playbook — Od nuly po první PI
Kompletní příručka pro nasazení metodiky EDPA na nový projekt
Prerekvizity
Nástroje
| Nástroj | Minimální verze | Ověření |
|---|---|---|
| Python | 3.10+ | python --version |
| PyYAML | libovolná | pip install pyyaml |
| GitHub CLI (gh) | 2.40+ | gh --version |
| Git | 2.30+ | git --version |
GitHub CLI scopes
gh auth login
gh auth refresh -s repo,project,read:project,admin:org Ověření:
gh auth status
# Musí ukazovat scopes: repo, project, admin:org Organizace a tým
Před začátkem je třeba mít:
- GitHub organizaci (např.
my-org) - Definovaný tým: jména, role (Arch, Dev, DevSecOps, PM, QA, BO), FTE, kapacity
- Alespoň základní backlog (1 Epic, 2-3 Features, 5-10 Stories)
Role v EDPA
| Role | Popis | Typické evidence v Gitu |
|---|---|---|
| BO | Business Owner | Issue komentáře, validace |
| PM | Product Manager / Product Owner | Backlog management, specifikace |
| Arch | Architekt | Code review, design decisions |
| Dev | Vývojář | Commity, PR, assignee |
| DevSecOps | DevSecOps Engineer | CI/CD, security, infra commity |
| QA | Test Engineer | Testovací commity, review |
Fáze 1: Infrastruktura (Den 1, ~4 hodiny)
Cesta A: Claude Code (doporučeno)
V terminálu s Claude Code nainstalovaným:
/edpa setup Claude Code provede kroky 1.1-1.6 automaticky — vytvoří repo, nakonfiguruje tým, nastaví Issue Types a vytvoří GitHub Project.
Cesta B: Manuální CLI
Následující kroky popisují manuální postup bez Claude Code.
1.1 Nainstalovat EDPA plugin
Varianta A: Shell installer (doporučeno)
cd my-project
curl -fsSL https://edpa.technomaton.com/install.sh | sh Varianta B: Manuální kopie
cd my-project
gh repo clone technomaton/edpa /tmp/edpa
cp -r /tmp/edpa/plugin/ .claude/
rm -rf /tmp/edpa Výsledná struktura:
my-project/
.edpa/
config.yaml # Hlavní konfigurace
people.yaml # Tým a projekt
initiatives/ # 1 soubor = 1 initiative
epics/ # 1 soubor = 1 epic
features/ # 1 soubor = 1 feature
stories/ # 1 soubor = 1 story
changelog.jsonl # Changelog syncu
sync_state.json # Stav poslední synchronizace
iterations/ # Plány a výsledky iterací
.github/workflows/
branch-check.yml # CI: kontrola branch naming
iteration-close.yml # CI: uzavření iterace (workflow_dispatch)
sync-projects-to-git.yml # Cron: Projects -> Git (15 min)
sync-git-to-projects.yml # Push trigger: Git -> Projects
.claude/edpa/templates/
people.yaml.tmpl # Šablona kapacitního registru
cw_heuristics.yaml.tmpl # Šablona CW heuristik
project.yaml.tmpl # Šablona projektové konfigurace
.claude/edpa/scripts/
engine.py # EDPA výpočetní jádro
backlog.py # Správa backlogu (tree, show, wsjf, validate)
sync.py # Bidirekční sync GitHub Projects <-> Git
issue_types.py # Správa Issue Types na org úrovni
project_setup.py # Automatické vytvoření GitHub Projectu
project_views.py # Views setup
create_project_views.py # Playwright automatizace views (volitelné)
evaluate_cw.py # CW kalibrace (MAD evaluator)
.edpa/data/ # Ground truth data (po PI)
.edpa/reports/ # Generované reporty per iterace
.edpa/snapshots/ # Zmrazené snapshoty iterací
docs/ # Dokumentace 1.2 Nakonfigurovat tým (people.yaml)
# /edpa setup generates .edpa/config/people.yaml automatically Upravit .edpa/config/people.yaml:
cadence:
iteration_weeks: 2 # 1 (AI-native) nebo 2 (classic)
pi_weeks: 10 # 5 nebo 10
delivery_iterations_per_pi: 4 # PI minus IP iterace
ip_iterations_per_pi: 1 # Innovation & Planning
teams:
- id: "Muj Tym"
planning_factor: 0.8 # Plánujeme na 80% kapacity
people:
- id: alice
name: "Alice Nováková"
role: Arch # Arch, Dev, DevSecOps, PM, QA, BO
team: "Muj Tym"
fte: 0.5
capacity_per_iteration: 40 # hodiny (FTE x 80 pro 2-týdenní iter.)
email: "alice@example.com"
availability: confirmed
- id: bob
name: "Bob Svoboda"
role: Dev
team: "Muj Tym"
fte: 1.0
capacity_per_iteration: 80
email: "bob@example.com"
availability: confirmed planning_factor je plánovací heuristika (plánujeme na 80%). EDPA engine počítá vždy se 100% kapacity — buffer absorbuje neplánované práce.1.3 Nakonfigurovat projekt (project.yaml)
# /edpa setup generates .edpa/config/project.yaml automatically Upravit .edpa/config/project.yaml:
project:
name: "Muj Projekt"
registration: ""
program: ""
organizations:
- name: "Moje Organizace"
domain: "mujprojekt.cz"
governance:
methodology: "EDPA v1.4.0-beta"
calculation_mode: "simple" # simple (JS x CW) nebo full (JS x CW x RS)
audit_mode: "full"
naming:
pi_pattern: "PI-{year}-{pi_num}"
iteration_pattern: "PI-{year}-{pi_num}.{iter_num}"
branch_pattern: "{type}/{item_id}-{description}"
item_prefixes:
initiative: "I"
epic: "E"
feature: "F"
story: "S"
task: "T"
defect: "D" 1.4 Nakonfigurovat CW heuristiky
# /edpa setup generates .edpa/config/heuristics.yaml automatically Výchozí hodnoty jsou kalibrované Monte Carlo simulací (1000 scénářů, 66 362 záznamů, p<0.001). Pro začátek stačí bez úprav.
| Evidence role | CW váha |
|---|---|
| owner (assignee) | 1.00 |
| key (PR author) | 0.60 |
| reviewer (commit/PR review) | 0.25 |
| consulted (komentář) | 0.15 |
Role-specifické korekce (strategické role jsou Gitem podhodnoceny):
| Role | Korekce | Důvod |
|---|---|---|
| BO consulted | 0.30 (+0.15) | Rozhodování neviditelné v Gitu |
| PM consulted | 0.20 (+0.05) | Specifikace neviditelná v Gitu |
| Arch reviewer | 0.30 (+0.05) | Design review neviditelný |
1.5 Nakonfigurovat .edpa/config/edpa.yaml
pi:
current: PI-2026-1
year: 2026
num: 1
iteration_weeks: 2
pi_weeks: 10
iterations:
- id: PI-2026-1.1
dates: "1.4.–14.4.2026"
status: planned
- id: PI-2026-1.2
dates: "15.4.–28.4.2026"
status: planned
- id: PI-2026-1.3
dates: "29.4.–12.5.2026"
status: planned
- id: PI-2026-1.4
dates: "13.5.–26.5.2026"
status: planned
- id: PI-2026-1.5
dates: "27.5.–9.6.2026"
status: planned
type: IP # Innovation & Planning
sync:
github_org: "my-org"
github_project_number: 1
sync_interval: "15m"
auto_commit: true 1.6 Nastavit Issue Types na organizaci
Claude Code (doporučeno):
/edpa setup Manuální CLI:
# Zobrazit aktuální typy
python3 .claude/edpa/scripts/issue_types.py list --org my-org
# Vytvořit EDPA sadu Issue Types
python3 .claude/edpa/scripts/issue_types.py setup --org my-org
# Dry-run (jen ukáže co by se stalo)
python3 .claude/edpa/scripts/issue_types.py setup --org my-org --dry-run EDPA vytvoří tyto Issue Types:
| Typ | Barva | Popis |
|---|---|---|
| Initiative | PINK | Business case, investiční záměr |
| Epic | PURPLE | Strategický cíl, 6-9 měsíců |
| Feature | BLUE | Musí se vejít do Planning Intervalu |
| Story | GREEN | Dodáváno v iteraci |
| Defect | RED | Defekt v existující funkcionalitě |
| Task | YELLOW | Technická práce |
1.7 Naplnit backlog
EDPA používá file-per-item strukturu — každý work item je samostatný YAML soubor:
.edpa/
people.yaml
config.yaml
initiatives/
I-1.yaml # 1 soubor = 1 initiative
epics/
E-1.yaml # 1 soubor = 1 epic
features/
F-1.yaml # 1 soubor = 1 feature
stories/
S-1.yaml # 1 soubor = 1 story
iterations/
PI-2026-1.1.yaml # plán iterace Příklad story souboru (.edpa/backlog/stories/S-1.yaml):
id: S-1
type: Story
title: "Implementace parseru"
status: Backlog
parent: F-1
js: 5
assignee: dev1
iteration: PI-2026-1.1 Přidání nového itemu:
# Claude Code:
/edpa setup # interaktivně přidá items
# CLI:
python3 .claude/edpa/scripts/backlog.py add --type Story --parent F-1 --title "..." --js 5 --assignee dev1
python3 .claude/edpa/scripts/backlog.py add --type Epic --title "..." --js 13 --bv 13 --tc 8 --rr 5 Ověřit integritu:
python3 .claude/edpa/scripts/backlog.py validate Zobrazit hierarchii:
python3 .claude/edpa/scripts/backlog.py tree
python3 .claude/edpa/scripts/backlog.py tree --level epic Zobrazit WSJF prioritizaci:
python3 .claude/edpa/scripts/backlog.py wsjf
python3 .claude/edpa/scripts/backlog.py wsjf --level feature 1.8 Vytvořit GitHub Project
Claude Code (doporučeno):
/edpa setup Manuální CLI:
python3 .claude/edpa/scripts/project_setup.py \
--org my-org \
--repo my-project \
--project-title "EDPA -- Muj Projekt" Skript provede 9 kroků:
- Vytvoří labels (Enabler)
- Vytvoří GitHub Project v2 na org úrovni
- Vytvoří custom fields: Job Size, BV, TC, RR, WSJF Score, Team + 4 Status fields (Initiative/Epic/Feature/Story Status se SAFe workflow)
- Linkuje projekt k repozitáři
- Dotáže nativní Issue Types z organizace
- Vytvoří issues z item files v
.edpa/s nativními Issue Types - Nastaví field values na všech project items
- Propojí sub-issues (parent-child hierarchie Initiative→Epic→Feature→Story)
- Aktualizuje
.edpa/config/edpa.yamls číslem projektu
1.9 Nastavit Project views
Claude Code (doporučeno):
/edpa setup Manuální CLI:
Cesta A: Manuální setup s instrukcemi
python3 .claude/edpa/scripts/project_views.py instructions --org my-org --project 1 | View | Typ | Filtr/Řazení |
|---|---|---|
| All Items | Table | Všechny položky, řazeno WSJF |
| Board | Board | Funnel / Analyzing / Backlog / Implementing / Done |
| Epics | Table | type:Epic, řazeno WSJF |
| Features | Table | type:Feature, řazeno WSJF |
| WSJF Ranking | Table | Seskupeno Issue Type, řazeno WSJF |
| Current Iteration | Board | Filtr aktuální iterace, denní standup view |
| My Work | Table | assignee:@me, osobní přehled |
| Roadmap | Roadmap | Timeline podle Planning Interval |
Cesta B: Označit jako šablonu
python3 .claude/edpa/scripts/project_views.py template --org my-org --project 1 Cesta C: Vytvořit z šablony
python3 .claude/edpa/scripts/project_views.py create-from-template \
--org my-org --template 1 --title "Novy Projekt" Ověření:
python3 .claude/edpa/scripts/project_views.py verify --org my-org --project 1 1.10 Nastavit automatizace a Status fields
Status fields (4 typované):
project_setup.py automaticky vytvoří 4 status fieldy na GitHub Projects — jeden per work-item level:
| Field | Platí pro | Workflow |
|---|---|---|
| Initiative Status | Initiative | Funnel → Reviewing → Analyzing → Ready → Implementing → Done |
| Epic Status | Epic | Funnel → Reviewing → Analyzing → Ready → Implementing → Done |
| Feature Status | Feature | Funnel → Analyzing → Backlog → Implementing → Validating → Deploying → Releasing → Done |
| Story Status | Story | Funnel → Analyzing → Backlog → Implementing → Validating → Deploying → Releasing → Done |
Engine logika: status == "Done" = hotovo. Vše ostatní = in-work. Žádné Blocked/Spillover labely.
GitHub Projects Automations — co zapnout:
| Automatizace | Doporučení | Důvod |
|---|---|---|
| Item added to project → Set status "Funnel" | Zapnout | Nové issues mají výchozí status |
| Auto-add issues from linked repo | Zapnout | Issues z repo automaticky v projektu |
| PR merged → Set status "Done" | Nezapínat | Předčasné — item může potřebovat QA |
| Item closed → Auto-archive | NIKDY | Archivované items zmizí z API → sync.py je ztratí → EDPA engine přijde o data |
| Item reopened → Set status "Implementing" | Nezapínat | Koliduje se sync — reopened item může potřebovat jiný status |
Konfigurace: projekt → ... menu → Workflows → zapnout jen doporučené.
Granularity guardrails:
- Story: max Job Size 8 (classic 2/10) nebo 5 (AI-native 1/5)
- Feature: max Job Size 13
- Epic: max Job Size 20
- Překročení limitu → rozdělit na menší položky
Definition of Ready — žádná položka nevstupuje do delivery bez:
- Issue Type nastaven
- Parent issue propojen (sub-issue)
- Job Size odhadnut
- BV + TC + RR vyplněny
- Primary Owner přiřazen
- Iteration nebo Planning Interval přiřazen
Doporučené Insights grafy (projekt → Insights tab → New chart):
- Burn-down — X: čas, Y: počet items, Group: Status
- Items by Status — sloupcový graf
- Items by Team — rozložení zátěže
- Items by Issue Type — balance hierarchie
Insights = real-time dashboardy. EDPA engine = governance-grade kalkulace (derived hours, CW). Doplňují se.
1.11 Ověřit setup
Claude Code (doporučeno):
/edpa close-iteration # demo ověření engine
/edpa sync status # ověření sync Manuální CLI:
# Demo EDPA engine (bez reálných dat)
python3 .claude/edpa/scripts/engine.py --demo
# Validace backlogu
python3 .claude/edpa/scripts/backlog.py validate
# Status projektu
python3 .claude/edpa/scripts/backlog.py status
# Sync status
python3 .claude/edpa/scripts/sync.py status 1.12 Commitnout základní konfiguraci
git add .edpa/config/people.yaml .edpa/config/project.yaml .edpa/config/heuristics.yaml
git add .edpa/
git commit -m "feat(edpa): initial EDPA setup for my-project"
git push origin main Fáze 2: První iterace (Týden 1-2)
2.1 Iteration Planning
- Potvrzení kapacity — tým potvrdí dostupnost na iteraci
- Výběr stories — z backlogu dle WSJF pořadí, na 80% kapacity
# WSJF ranking features
python3 .claude/edpa/scripts/backlog.py wsjf --level feature
# Tree pro konkrétní iteraci
python3 .claude/edpa/scripts/backlog.py tree --iteration PI-2026-1.1 - Přiřazení assignees — každá story musí mít assignee
- Aktualizace backlogu —
iteration: PI-2026-1.1na vybraných stories
2.2 Denní práce
Branch naming konvence (CI kontrola v .github/workflows/branch-check.yml):
# Formát: {type}/{ITEM_ID}-{popis}
git checkout -b feature/S-200-omop-parser
git checkout -b feature/F-102-anon-engine
git checkout -b defect/D-215-upload-validation
git checkout -b chore/T-050-ci-pipeline Povolené typy: feature, defect, hotfix, chore
Commit konvence:
git commit -m "feat(S-200): implement OMOP CDM parser"
git commit -m "fix(S-215): validate upload file size"
git commit -m "test(S-201): add unit tests for parser"
git commit -m "docs(E-10): update epic hypothesis" EDPA engine rozpoznává reference S-XXX, F-XXX, E-XXX v commitech a PR pro detekci evidence.
Pull Request workflow:
git push origin feature/S-200-omop-parser
gh pr create --title "S-200: OMOP CDM parser implementation" \
--body "Closes #42
## Changes
- Implemented OMOP CDM parser
- Added schema validation
## Testing
- Unit tests: 15 passing
" PR review = evidence pro EDPA (reviewer dostane CW dle role).
2.3 Sync (automaticky)
Bidirekční synchronizace mezi GitHub Projects (UI pro PM/BO) a item files v .edpa/ (Git-native):
Automaticky přes GitHub Actions:
sync-projects-to-git.yml— každých 15 minut stahuje změny z Projects do Gitusync-git-to-projects.yml— při push domainse změnou v.edpa/propaguje do Projects
Claude Code (doporučeno):
/edpa sync pull # GitHub Projects -> item files
/edpa sync push # item files -> GitHub Projects
/edpa sync diff # zobrazit co by se změnilo
/edpa sync status # stav synchronizace Manuální CLI:
# Pull: GitHub Projects -> item files in .edpa/
python3 .claude/edpa/scripts/sync.py pull
# Push: item files in .edpa/ -> GitHub Projects
python3 .claude/edpa/scripts/sync.py push
# Diff: zobrazit co by se změnilo
python3 .claude/edpa/scripts/sync.py diff
# Status
python3 .claude/edpa/scripts/sync.py status 2.4 Iteration Close
Na konci každé iterace (po 2 týdnech):
Claude Code (doporučeno):
/edpa close-iteration PI-2026-1.1 Manuální CLI:
python3 .claude/edpa/scripts/engine.py --edpa-root .edpa --iteration PI-2026-1.1 Výstupy:
.edpa/reports/iteration-PI-2026-1.1/
edpa_results.json # Kompletní výpočet (JSON)
vykaz-alice.md # Výkaz pro každou osobu
item-costs.xlsx # Náklady per položka (Excel)
.edpa/snapshots/
PI-2026-1.1.json # Zmrazený snapshot Režim výpočtu:
| Režim | Vzorec | Použití |
|---|---|---|
| simple | JS × CW | Výchozí — Job Size × Contribution Weight |
| full | JS × CW × RS | S Role Strength — pro přesnější alokaci |
Invarianty (engine automaticky kontroluje):
- Součet hodin osoby = její kapacita (odchylka < 0.01h)
- Součet poměrů = 1.0 (odchylka < 0.001)
- Žádné záporné hodiny
- Pokud invariant selže, engine hlásí
FAIL
2.5 Aktualizace iteračního plánu
Po uzavření iterace vytvořit/aktualizovat .edpa/iterations/PI-2026-1.1.yaml:
iteration:
id: PI-2026-1.1
pi: PI-2026-1
dates: "1.4.–14.4.2026"
status: closed
planning:
capacity: 380
planning_factor: 0.80
planned_sp: 24
stories:
- S-200
- S-201
- S-202
delivery:
delivered_sp: 24
predictability: "100%"
velocity: 24
spillover: []
unplanned: []
notes: "První iterace -- plný delivery." Fáze 3: PI Close (Po 4-5 iteracích)
Cesta A: Claude Code (doporučeno)
/edpa calibrate Claude Code spustí CW kalibraci, vyhodnotí MAD a návrh úprav heuristik.
/edpa reports Cesta B: Manuální CLI
3.1 Retrospektiva
Na konci PI (po 4 delivery iteracích + 1 IP iterace):
- Projít auto-detekci vs. realita na 5-10 stories
- Pro každou story porovnat: kdo byl auto-detekován, jaké CW engine přiřadil, odpovídá realitě?
3.2 Zaznamenat ground truth
Vytvořit .edpa/data/ground_truth.yaml:
# Ground truth pro CW kalibraci
records:
- item_id: S-200
person_id: alice
evidence_role: reviewer
auto_cw: 0.25
confirmed_cw: 0.35
person_role: Arch
notes: "Alice dělala design review + arch. rozhodnutí"
- item_id: S-200
person_id: bob
evidence_role: owner
auto_cw: 1.00
confirmed_cw: 1.00
person_role: Dev
notes: "Přesně -- Bob byl assignee a udělal všechnu práci"
# ... alespoň 20 záznamů pro kalibraci 3.3 Kalibrace CW heuristik
Claude Code (doporučeno):
/edpa calibrate Manuální CLI:
python3 .claude/edpa/scripts/evaluate_cw.py \
--ground-truth .edpa/data/ground_truth.yaml \
--heuristics .edpa/config/heuristics.yaml Výstup:
MAD=0.041200
RECORDS=20
TOTAL_DEVIATION=0.824000 Interpretace MAD (Mean Absolute Deviation):
| MAD | Hodnocení | Akce |
|---|---|---|
| < 0.03 | Výborné | Bez změny |
| 0.03 - 0.06 | Dobré | Drobné korekce (volitelné) |
| 0.06 - 0.10 | Přijatelné | Zvážit úpravu role_overrides |
| > 0.10 | Špatné | Nutná kalibrace |
3.4 Plánování dalšího PI
- Nové epicy/features — přidat jako soubory do
.edpa/backlog/epics/a.edpa/backlog/features/ - WSJF prioritizace:
python3 .claude/edpa/scripts/backlog.py wsjf - Kapacitní plánování — aktualizovat
.edpa/config/people.yaml - Aktualizovat
.edpa/config/edpa.yaml— nový PI, iterace, datumy
Fáze 4: Kontinuální provoz
S Claude Code (doporučeno)
Každá iterace:
/edpa close-iteration PI-2026-1.X # uzavření iterace
/edpa reports # generování reportů Každý PI:
/edpa calibrate # CW kalibrace Každá iterace (každé 2 týdny)
- Planning — vybrat stories, přiřadit assignees
- Denní práce — branch naming, commity s referencemi, PR review
- Iteration Close — EDPA engine, generování reportů
- Sync — automaticky verzuje změny (GitHub Actions cron 15min)
- Review — tým zkontroluje výkazy, zahlásí korektury
Každý PI (každých 10 týdnů)
- Retrospektiva — auto-detected CW vs realita
- Ground truth — zaznamenat alespoň 20 nových záznamů
- CW kalibrace —
evaluate_cw.py, vyhodnotit MAD - Velocity trend — porovnat delivery across iterací
- Predictability — (delivered_sp / planned_sp) across iterací
Automatizace přes GitHub Actions
| Workflow | Trigger | Co dělá |
|---|---|---|
branch-check.yml | PR opened/sync | Kontroluje branch naming konvenci |
iteration-close.yml | workflow_dispatch | Spustí EDPA engine, commitne výsledky |
sync-projects-to-git.yml | cron (15min) | Pull: Projects → item files |
sync-git-to-projects.yml | push na .edpa/ | Push: item files → Projects |
Checklist — Co mít hotové
Den 1
- Repo vytvořené s EDPA strukturou
.edpa/config/people.yaml— tým s rolemi, FTE, kapacitami.edpa/config/project.yaml— název projektu, metadata.edpa/config/heuristics.yaml— výchozí heuristiky.edpa/config/edpa.yaml— PI, iterace, datumy, sync- Issue Types nastavené na organizaci
- Backlog naplněný (alespoň 1 Epic, 3 Features, 10 Stories)
backlog.py validateprojde bez chyb- GitHub Project vytvořen
- Project views nastaveny
engine.py --demoprojde úspěšně
Týden 1
- Tým pracuje s branch naming konvencí
- Commity referují work items (
feat(S-XXX): ...) - PR reviews probíhají
- Sync funguje (
sync.py status) - Item files v .edpa/ se automaticky aktualizují
Konec iterace 1
- EDPA engine spuštěn pro iteraci
edpa_results.jsonvygenerován- Výkazy vygenerovány (per-person)
- Všechny invarianty prošly (
all_invariants_passed: true) - Tým zkontroloval výsledky
- Iterační soubor vytvořen v
.edpa/iterations/
Konec iterace 2-4
- Velocity stabilní (odchylka < 20%)
- Prediktabilita > 80%
- Žádné nevyřešené sync konflikty
Konec PI 1
- Ground truth zaznamenáno (min. 20 záznamů)
- CW kalibrace provedena (
evaluate_cw.py) - MAD vyhodnoceno (cíl: < 0.06)
- Heuristiky upraveny (pokud MAD > 0.06)
- Plánování PI 2 — nové epicy, WSJF, kapacity
CLI Reference
Claude Code příkazy (doporučeno)
| Příkaz | Popis |
|---|---|
/edpa setup | Počáteční setup projektu — repo, tým, Issue Types, GitHub Project |
/edpa close-iteration PI-2026-1.X | Uzavření iterace — stažení evidence, EDPA engine, reporty |
/edpa reports | Generování reportů a výkazů |
/edpa calibrate | CW kalibrace — vyhodnocení MAD, návrh úprav heuristik |
engine.py — EDPA výpočetní jádro
| Příkaz | Popis |
|---|---|
engine.py --edpa-root .edpa --iteration ID | Plný EDPA výpočet pro iteraci (čte z .edpa/backlog/) |
engine.py --demo | Demo s vestavěnými ukázkovými daty |
engine.py --iteration ID --capacity ... --heuristics ... | Legacy režim s explicitními soubory |
backlog.py — Správa backlogu
| Příkaz | Popis |
|---|---|
backlog.py tree | Zobrazí plnou hierarchii (I → E → F → S) |
backlog.py tree --level epic | Jen epicy |
backlog.py tree --iteration PI-2026-1.1 | Filtr stories na iteraci |
backlog.py show S-200 | Detail položky |
backlog.py status | Celkový status projektu |
backlog.py wsjf | WSJF prioritizace (všechny úrovně) |
backlog.py validate | Kontrola integrity backlogu |
sync.py — Bidirekční sync
| Příkaz | Popis |
|---|---|
sync.py pull | GitHub Projects → item files in .edpa/ |
sync.py push | item files in .edpa/ → GitHub Projects |
sync.py diff | Zobrazí rozdíly (dry-run) |
sync.py status | Stav poslední synchronizace |
sync.py conflicts | Nevyřešené konflikty |
issue_types.py — Issue Types (org-level)
| Příkaz | Popis |
|---|---|
issue_types.py list --org ORG | Zobrazí aktuální typy |
issue_types.py setup --org ORG | Vytvoří EDPA sadu Issue Types |
issue_types.py setup --org ORG --dry-run | Dry-run setup |
issue_types.py migrate --org ORG --repo REPO | Migruje labels → Issue Types |
project_setup.py — Inicializace GitHub Projectu
| Příkaz | Popis |
|---|---|
project_setup.py --org ORG --repo REPO | Vytvoří kompletní Project |
project_setup.py --org ORG --repo REPO --dry-run | Jen ukáže co by udělal |
evaluate_cw.py — CW Kalibrace
| Příkaz | Popis |
|---|---|
evaluate_cw.py --ground-truth .edpa/data/ground_truth.yaml --heuristics .edpa/config/heuristics.yaml | Spočítá MAD |
Architektura
GitHub Projects (UI) <--> .edpa/ item files (Git)
| |
PM/BO pracují Verzované, auditovatelné
| |
Issue Types (org) EDPA engine (výpočet)
| |
Custom fields Reports + Snapshots Tok dat
+---------------------------+
| GitHub Projects (UI) |
| PM/BO spravují backlog |
+---------------------------+
| ^
sync pull | | sync push
(cron 15min) v | (push trigger)
+---------------------------+
| .edpa/ item files (Git) |
| Source of truth |
+---------------------------+
|
+---------+---------+
| |
+----------+ +----------+
| Engine | | Backlog |
| (výpočet)| | CLI |
+----------+ +----------+
| |
+----------+ +----------+
| Reports | | WSJF |
| Snapshots| | Tree |
| Výkazy | | Validate|
+----------+ +----------+ Evidence detection
| Signál | Váha | Evidence role |
|---|---|---|
| GitHub issue assignee | 4.0 | owner |
/contribute @person weight:X | 3.0 | key |
| PR author referencing item | 2.0 | key |
| Commit author s S-XXX/F-XXX | 1.0 | reviewer |
| PR reviewer | 1.0 | reviewer |
| Issue/PR komentář | 0.5 | consulted |
Nejvyšší signál určuje evidence role (signály se nesčítají).
Výpočet EDPA (simple mode)
Pro každou osobu v iteraci:
- Detekovat evidence na každé položce
- Pro každý pár (osoba, položka):
score = JS × CW - Pro každou osobu:
ratio_i = score_i / sum(scores) - Odvozené hodiny:
hours_i = ratio_i × capacity
sum(hours) = capacity (přesně, ne přibližně).Troubleshooting
gh auth — chybějící scopes
ERROR: insufficient scopes for organization query Řešení:
gh auth refresh -s repo,project,read:project,admin:org
gh auth status # ověřit Issue Types — "Not Found" při setup
ERROR: Organization not found or insufficient permissions Řešení:
- Ověřit že jste člen organizace s admin právy
- Issue Types vyžadují org-level přístup (ne personal account)
gh auth refresh -s admin:org
Backlog validate — chyby
ERROR: S-200 references non-existent feature F-999 Řešení: ověřit že všechny feature: reference v stories ukazují na existující features.
WARNING: S-200 Job Size exceeds maximum (JS=13, max=8) Řešení: Story JS max 8 (classic) nebo 5 (AI-native). Rozdělit velkou story na menší.
EDPA engine — invariant failure
INVARIANT FAILURE -- check results
All invariants passed: NO Možné příčiny:
- Osoba nemá žádné evidence (není assignee, žádné commity)
- Všechny CW jsou 0
- Kapacita je 0
Řešení: ověřit že každá osoba má alespoň 1 přiřazený work item, commity/PR referují správné item ID, kapacity > 0 v .edpa/config/people.yaml.
Sync — konflikty
CONFLICT: S-200 modified in both Git and Projects Claude Code (doporučeno):
/edpa sync diff # zobrazit rozdíly
/edpa sync push # po vyřešení push Manuální CLI:
# Zobrazit konflikty
python3 .claude/edpa/scripts/sync.py conflicts
# Diff
python3 .claude/edpa/scripts/sync.py diff Ručně vyřešit v příslušném item souboru v .edpa/, pak:
python3 .claude/edpa/scripts/sync.py push Sync — loop prevence
Workflow sync-git-to-projects.yml obsahuje:
if: github.actor != 'github-actions[bot]' To zabraňuje nekonečné smyčce: push → sync → push → sync...
GitHub Project — custom fields chybí
ERROR: Field "Job Size" not found on project Řešení: spustit znovu project_setup.py nebo ručně: Settings → Custom fields → Add field.
Branch naming CI failure
Branch name does not follow EDPA convention.
Required format: {type}/{item-id}-{description} Řešení: formát feature/S-200-omop-parser. Typy: feature, defect, hotfix, chore. main, develop, release/* jsou výjimky.
MAD příliš vysoké (> 0.10)
Řešení:
- Analyzovat záznamy s největším
abs(auto_cw - confirmed_cw) - Seskupit dle role
- Pokud BO má konzistentně vyšší confirmed_cw → zvýšit
role_overrides.BO.consulted - Pokud Arch reviewer je podhodnocen → zvýšit
role_overrides.Arch.reviewer - Znovu evaluovat
Iteration close — "config not found"
ERROR: .edpa/config/people.yaml not found. Run EDPA setup first. Řešení:
# /edpa setup generates .edpa/config/people.yaml automatically
# /edpa setup generates .edpa/config/heuristics.yaml automatically
# /edpa setup generates .edpa/config/project.yaml automatically Slovníček
| Termín | Význam |
|---|---|
| PI | Planning Interval (10 týdnů = 4 delivery + 1 IP iterace) |
| IP | Innovation & Planning (poslední iterace PI) |
| JS | Job Size — relativní velikost práce (Fibonacci) |
| BV | Business Value — obchodní hodnota |
| TC | Time Criticality — časová kritičnost |
| RR | Risk Reduction — snížení rizika |
| WSJF | Weighted Shortest Job First = (BV+TC+RR)/JS |
| CW | Contribution Weight — váha příspěvku (0.0 - 1.0) |
| RS | Role Strength — síla role (volitelné v full mode) |
| MAD | Mean Absolute Deviation — průměrná absolutní odchylka |
| Evidence | Doklad o práci (commit, PR, assignee, komentář) |
| Ground truth | Potvrzená realita od týmu (pro kalibraci) |