diff --git a/CHANGELOG.md b/CHANGELOG.md index e834c24..994b0dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,36 @@ # Changelog +## 2.1.10 — 2026-06-01 — Drop dead `cadence:` config (cadence is iteration-sourced) + +The `cadence:` block (`iteration_weeks` / `pi_weeks` / `delivery_iterations_per_pi` +/ `ip_iterations_per_pi`) that shipped in the `people.yaml` template was **never read +by the engine**. Effective cadence is derived per Planning Interval from the `pi:` +block of `.edpa/iterations/PI-*.yaml` (`_pi_loader.derive_pis`), or inferred from each +iteration's `weeks:`/dates. The block was dead config that invited "edit this to change +the rhythm" mistakes, and it had been copied — with a misleading "must mirror" note — +into `edpa.yaml` examples and test fixtures too. + +### refactor(cadence): remove the dead block everywhere, redirect to the live surface +- `people.yaml.tmpl`: drop the `cadence:` block; add a breadcrumb pointing at the + iteration `pi:` block. `people.yaml` is now just `teams` + `people`. +- Examples/fixtures: drop `cadence:` from `docs/kashealth-pilot/{edpa,people}.yaml.example`, + `docs/examples/capacity-small-team.yaml`, and `tests/e2e_v2_full/fixtures/{edpa,people}.yaml` + (incl. the stale "must mirror / Wave C verifies this match" comments — no code ever + verified it). +- Docs + web: remove the `cadence:` snippet from README / SETUP / quick-start / playbook + (CZ+EN) and the web setup wizard's generated config; point users at the iteration + `pi:` block. `docs/cadence.md` gains a "Where cadence is configured" section. + Conceptual cadence content (2/10 vs 1/5 variants) is unchanged. + +### docs(mcp,backlog): fix two stale "cadence" references +- `mcp_server.py`: the `edpa://config` resource serves `edpa.yaml` but was described as + "Master config: PI, iterations, cadence, sync settings" — corrected to the project + config it actually serves. +- `backlog.py`: the "Load team metadata (people, teams, cadence)" comment overstated — + cadence is loaded into the dict but never read; the comment now says so. + +No engine behaviour change — cadence was already iteration-sourced. Full suite 577 passing. + ## 2.1.9 — 2026-06-01 — Windows onboarding fixes (filelock, UTF-8 console + file I/O) `/edpa:edpa-setup` crashed on a fresh Windows box, surfaced by colleagues running diff --git a/README.md b/README.md index 59acf4a..d915871 100644 --- a/README.md +++ b/README.md @@ -103,10 +103,6 @@ The template ships with placeholder names. Replace them with your team (1-week iterations, 5-week PI = 4 delivery + 1 IP): ```yaml -cadence: - iteration_weeks: 1 # AI-native default; use 2 for classic SAFe - pi_weeks: 5 # 4 delivery iterations + 1 IP - people: - id: alice name: "Alice Architect" diff --git a/SETUP.md b/SETUP.md index 70f83f1..4da42f1 100644 --- a/SETUP.md +++ b/SETUP.md @@ -34,9 +34,6 @@ If you prefer to configure manually instead of using `/edpa setup`: Edit `.edpa/config/people.yaml`: ```yaml -cadence: - iteration_weeks: 2 # 1 (AI-native) or 2 (classic) - people: - id: alice name: "Alice Smith" diff --git a/docs/cadence.md b/docs/cadence.md index 3751f7d..f859fad 100644 --- a/docs/cadence.md +++ b/docs/cadence.md @@ -33,3 +33,19 @@ Switch after first PI if: ## EDPA is cadence-agnostic The formula works identically for both variants — only `Capacity[P, I]` changes. + +## Where cadence is configured + +Cadence is **not** set in `people.yaml`. The engine derives it per Planning +Interval from the iteration files in `.edpa/iterations/`: + +```yaml +# .edpa/iterations/PI-2026-1.yaml +pi: + id: PI-2026-1 + iteration_weeks: 1 # 1 (AI-native) or 2 (classic) + pi_iterations: 5 # total iterations incl. IP (4 delivery + 1 IP) +``` + +If `iteration_weeks` / `pi_iterations` are omitted, the engine infers them from +each iteration's `weeks:` (or its start/end dates) and the iteration count. diff --git a/docs/examples/capacity-small-team.yaml b/docs/examples/capacity-small-team.yaml index 3d1b8f7..a5cfe10 100644 --- a/docs/examples/capacity-small-team.yaml +++ b/docs/examples/capacity-small-team.yaml @@ -1,16 +1,8 @@ -# Example: 3-person startup team -# Classic SAFe cadence (2-week iterations, 10-week PI). -# -# As of 1.4 the default ships AI-native (1-week iter / 5-week PI) — see -# plugin/edpa/templates/people.yaml.tmpl for the new defaults. This file -# stays as a reference for teams that want classic SAFe; just halve every -# capacity_per_iteration value below if you switch to iteration_weeks: 1. - -cadence: - iteration_weeks: 2 - pi_weeks: 10 - delivery_iterations_per_pi: 4 - ip_iterations_per_pi: 1 +# Example: 3-person startup team. +# Capacities below assume classic SAFe (2-week iterations): 1.0 FTE = 80h. +# For the AI-native default (1-week iterations) halve every +# capacity_per_iteration. Cadence itself is set per-PI in the `pi:` block of +# .edpa/iterations/PI-*.yaml, not here — see docs/cadence.md. teams: - id: "Acme Corp" diff --git a/docs/kashealth-pilot/KASHEALTH-PILOT.md b/docs/kashealth-pilot/KASHEALTH-PILOT.md index 8118e9b..b56af79 100644 --- a/docs/kashealth-pilot/KASHEALTH-PILOT.md +++ b/docs/kashealth-pilot/KASHEALTH-PILOT.md @@ -315,7 +315,7 @@ Pokud 5+ z 6 PASS → pilot úspěšný, pokračuj na PI-2026-2 (full prod) a zv ## 7. Open questions (pre-kickoff sync) -1. **PI cadence** — 1-week × 5 (default) vs 2-week × 5? Nastavitelné v `cadence:` (edpa.yaml + people.yaml, musí se shodovat). +1. **PI cadence** — 1-week × 5 (default) vs 2-week × 5? Nastavitelné per-PI v `pi:` bloku `.edpa/iterations/PI-*.yaml` (`iteration_weeks` / `pi_iterations`). 2. **FTE distribuce** — 1.0 / 0.5 / 0.25 per člen? Doporučení v `people.yaml.example`. 3. **Cost reporting** — sazby drží **privátní registr** (ne EDPA people.yaml — engine `hourly_rate` nečte). Auditor format = open question. 4. **Calibration timing** — `/edpa:autocalib` až po PI-2026-1 close (potřeba ≥ 20 ground truth records). diff --git a/docs/kashealth-pilot/edpa.yaml.example b/docs/kashealth-pilot/edpa.yaml.example index da9d115..e144a24 100644 --- a/docs/kashealth-pilot/edpa.yaml.example +++ b/docs/kashealth-pilot/edpa.yaml.example @@ -58,15 +58,6 @@ governance: # audit_mode — snapshoty vždy nesou plný signals[] audit trail. methodology: "EDPA 2.1.8" -# Kadence (AI-native default): 1-week iterace × 5 (4 delivery + 1 IP). -# Musí zrcadlit `cadence:` blok v people.yaml. Pro classic SAFe nastav -# iteration_weeks: 2 a pi_weeks: 10. -cadence: - iteration_weeks: 1 - pi_weeks: 5 - delivery_iterations_per_pi: 4 - ip_iterations_per_pi: 1 - naming: pi_pattern: "PI-{year}-{pi_num}" iteration_pattern: "PI-{year}-{pi_num}.{iter_num}" diff --git a/docs/kashealth-pilot/people.yaml.example b/docs/kashealth-pilot/people.yaml.example index 2ae368f..d573e56 100644 --- a/docs/kashealth-pilot/people.yaml.example +++ b/docs/kashealth-pilot/people.yaml.example @@ -19,15 +19,9 @@ # ani cost (jen Item, Level, JS, Person, CW, Score, Ratio, Hours). # Sazby držte v separátním (privátním) registru — dle smluv — # ne v EDPA configu, který může skončit v public repu. - -cadence: - # AI-native default per EDPA: 1-week delivery iteration × 5 (4 delivery + 1 IP). - # Pokud preferujete classic SAFe (2-week iter × 5 = 10 weeks), nastavte - # iteration_weeks: 2 a pi_weeks: 10. - iteration_weeks: 1 - pi_weeks: 5 - delivery_iterations_per_pi: 4 - ip_iterations_per_pi: 1 +# +# Kadenci (iteration_weeks / pi_iterations) nastav per-PI v `pi:` bloku +# .edpa/iterations/PI-*.yaml, ne tady. Viz docs/cadence.md. teams: - id: "kashealth" diff --git a/docs/playbook.md b/docs/playbook.md index 9347db0..29a98ba 100644 --- a/docs/playbook.md +++ b/docs/playbook.md @@ -108,7 +108,7 @@ my-project/ .edpa/ config/ edpa.yaml # Projekt + governance (zdroj verze metodiky) - people.yaml # Tym a kapacity (cadence, teams, people) + people.yaml # Tym a kapacity (teams, people) cw_heuristics.yaml # CW signalove vahy id_counters.yaml # Citace ID (S-1, E-1, F-1, ...) backlog/ @@ -152,19 +152,9 @@ my-project/ cp .edpa/engine/templates/people.yaml.tmpl .edpa/config/people.yaml ``` -Upravit `.edpa/config/people.yaml`. Tady zije **cadence + teams + people** -- zadny separatni registr, vse je v jednom souboru: +Upravit `.edpa/config/people.yaml`. Tady ziji **teams + people** -- zadny separatni registr. Kadence (iteration_weeks / pi_iterations) se nastavuje per-PI v `pi:` bloku `.edpa/iterations/PI-*.yaml`, pripadne se odvodi z `weeks:`/dat iteraci -- viz [cadence.md](cadence.md): ```yaml -cadence: - # AI-native default: 5-tydenni PI = 4 dodavkove iterace po 1 tydnu + 1 IP - # tyden na dluh, prioritizaci a PI planning (s AI zvladnutelne za den). - # Classic SAFe (2-tydenni iterace, 10-tydenni PI) zustava podporovany — - # nastav iteration_weeks: 2 + pi_weeks: 10. - iteration_weeks: 1 # 1 (AI-native, default) nebo 2 (classic) - pi_weeks: 5 # 5 (AI-native, default) nebo 10 (classic) - delivery_iterations_per_pi: 4 # PI minus IP iterace - ip_iterations_per_pi: 1 # Innovation & Planning - teams: - id: "Muj Tym" planning_factor: 0.8 # Planujeme na 80% kapacity @@ -778,7 +768,7 @@ V2 ma **jediny** volitelny workflow (jen s `--with-ci`): ### Den 1 - [ ] Engine vendorovany do `.edpa/engine/` (`/edpa:setup` nebo `project_setup.py`) -- [ ] `.edpa/config/people.yaml` -- tym s rolemi, FTE, kapacitami (cadence + teams + people) +- [ ] `.edpa/config/people.yaml` -- tym s rolemi, FTE, kapacitami (teams + people) - [ ] `.edpa/config/edpa.yaml` -- nazev projektu, governance, naming - [ ] `.edpa/config/cw_heuristics.yaml` -- vychozi signalove vahy (ze sablony) - [ ] `.edpa/config/id_counters.yaml` -- naseto diff --git a/docs/quick-start.md b/docs/quick-start.md index a0933ec..e04eaf3 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -31,10 +31,6 @@ cp plugin/edpa/templates/people.yaml.tmpl .edpa/config/people.yaml Edit `.edpa/config/people.yaml` with your team: ```yaml -cadence: - iteration_weeks: 1 # 1-week iterations (AI-native default; use 2 for classic SAFe) - pi_weeks: 5 # 5-week planning intervals (4 delivery + 1 IP) - people: - id: alice name: "Alice Smith" diff --git a/plugin/.claude-plugin/plugin.json b/plugin/.claude-plugin/plugin.json index e084a01..3c4ebae 100644 --- a/plugin/.claude-plugin/plugin.json +++ b/plugin/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "edpa", - "version": "2.1.9", + "version": "2.1.10", "description": "EDPA — Evidence-Driven Proportional Allocation. Derive hours from local git evidence (commits, yaml edits, status transitions). Zero timesheets, mathematical guarantee, Monte Carlo calibrated CW weights. Local-first: .edpa/backlog/ YAML as source of truth, git as the audit trail. GitHub Projects sync optional.", "author": { "name": "TECHNOMATON", diff --git a/plugin/edpa/scripts/backlog.py b/plugin/edpa/scripts/backlog.py index ee29ff4..258091f 100755 --- a/plugin/edpa/scripts/backlog.py +++ b/plugin/edpa/scripts/backlog.py @@ -183,7 +183,8 @@ def load_backlog(root): """ edpa = root / ".edpa" - # Load team metadata (people, teams, cadence) + # Load team metadata (people, teams). The cadence: block is not read here — + # effective cadence is derived from .edpa/iterations/PI-*.yaml (see _pi_loader). people_path = edpa / "config" / "people.yaml" backlog = yaml.safe_load(open(people_path, encoding="utf-8")) if people_path.exists() else {} diff --git a/plugin/edpa/scripts/mcp_server.py b/plugin/edpa/scripts/mcp_server.py index a43a54a..66f1bd0 100644 --- a/plugin/edpa/scripts/mcp_server.py +++ b/plugin/edpa/scripts/mcp_server.py @@ -1407,7 +1407,7 @@ async def list_resources() -> list[Resource]: resources = [] if edpa_root: if (edpa_root / "config" / "edpa.yaml").exists(): - resources.append(Resource(uri="edpa://config", name="EDPA Configuration", description="Master config: PI, iterations, cadence, sync settings", mimeType="application/x-yaml")) + resources.append(Resource(uri="edpa://config", name="EDPA Configuration", description="Project config: name, funding, organizations, governance, naming, issue types", mimeType="application/x-yaml")) if (edpa_root / "config" / "people.yaml").exists(): resources.append(Resource(uri="edpa://people", name="EDPA Team Registry", description="Team members, roles, FTE, capacity", mimeType="application/x-yaml")) # Add iteration resources for each iteration diff --git a/plugin/edpa/templates/edpa.yaml.tmpl b/plugin/edpa/templates/edpa.yaml.tmpl index 88a0d11..bdc34c4 100644 --- a/plugin/edpa/templates/edpa.yaml.tmpl +++ b/plugin/edpa/templates/edpa.yaml.tmpl @@ -64,7 +64,7 @@ project: governance: # Auto-stamped to the installed plugin version by install.sh / project_setup.py. - methodology: "EDPA 2.1.9" + methodology: "EDPA 2.1.10" # v1.14: single calculation path. v1.17: extended with yaml_edit # signals — every commit on .edpa/backlog//.md in the # iteration window contributes structural credit (create / block_add diff --git a/plugin/edpa/templates/people.yaml.tmpl b/plugin/edpa/templates/people.yaml.tmpl index 13da120..6e6ed0d 100644 --- a/plugin/edpa/templates/people.yaml.tmpl +++ b/plugin/edpa/templates/people.yaml.tmpl @@ -2,16 +2,9 @@ # Edit this file with your team details # Updated at each Iteration Planning -cadence: - # Default is AI-native: 5-week PI = 4× 1-week delivery iteration + 1× 1-week IP. - # The IP iteration absorbs leftover work, debt, prioritization, and PI planning - # itself (compressible to a single day with AI-assisted ceremonies). - # Set iteration_weeks: 2 + pi_weeks: 10 + delivery_iterations_per_pi: 4 for - # classic SAFe cadence on slower-moving teams. - iteration_weeks: 1 # 1 (AI-native, default) or 2 (classic SAFe) - pi_weeks: 5 # 5 (AI-native, default) or 10 (classic) - delivery_iterations_per_pi: 4 # PI minus IP iteration - ip_iterations_per_pi: 1 # Innovation & Planning +# Cadence (iteration_weeks / pi_iterations) is NOT configured here. It is set +# per Planning Interval in the `pi:` block of .edpa/iterations/PI-*.yaml, or +# auto-derived from each iteration's `weeks:`/dates. See docs/cadence.md. # Teams — planning_factor is a team-level decision, not a cadence property teams: @@ -88,7 +81,7 @@ people: # Calculated at runtime by EDPA engine: # total_fte: sum of people[].fte # total_capacity_per_iteration: sum of people[].capacity_per_iteration -# total_capacity_per_pi: total_capacity_per_iteration × delivery_iterations_per_pi +# total_capacity_per_pi: total_capacity_per_iteration × delivery iterations in the PI # ───────────────────────────────────────────────────────────────────── # Backlog item evidence schema (v1.11 — referenced from .edpa/backlog/**/*.yaml) diff --git a/tests/e2e_v2_full/fixtures/edpa.yaml b/tests/e2e_v2_full/fixtures/edpa.yaml index be7989e..faf7417 100644 --- a/tests/e2e_v2_full/fixtures/edpa.yaml +++ b/tests/e2e_v2_full/fixtures/edpa.yaml @@ -58,15 +58,6 @@ naming: defect: "D" event: "EV" -# AI-native cadence: 1-week iterations, 5-week PI (4 delivery + 1 IP). -# Must mirror the cadence block in people.yaml — the test harness -# verifies this match as part of Wave C invariant checks. -cadence: - iteration_weeks: 1 - pi_weeks: 5 - delivery_iterations_per_pi: 4 - ip_iterations_per_pi: 1 - # Native GitHub Issue Types (org-level, not labels) issue_types: Initiative: "Business case, investment proposal" diff --git a/tests/e2e_v2_full/fixtures/people.yaml b/tests/e2e_v2_full/fixtures/people.yaml index b0d2ba1..0aff3f2 100644 --- a/tests/e2e_v2_full/fixtures/people.yaml +++ b/tests/e2e_v2_full/fixtures/people.yaml @@ -5,13 +5,6 @@ # Total capacity per iteration must sum to exactly 144 hours, which # Wave C asserts as an invariant. -cadence: - # Must match the cadence block in edpa.yaml (1-week iters, 5-week PI). - iteration_weeks: 1 - pi_weeks: 5 - delivery_iterations_per_pi: 4 - ip_iterations_per_pi: 1 - # Single team for the synthetic project; planning_factor 0.8 leaves # 20% buffer per the AI-native defaults. teams: diff --git a/tests/test_capacity_overrides.py b/tests/test_capacity_overrides.py index 4a482db..780e55f 100644 --- a/tests/test_capacity_overrides.py +++ b/tests/test_capacity_overrides.py @@ -48,8 +48,6 @@ def _seed_minimal_edpa(tmp_path: Path, *, iteration_id="PI-2026-1.1", (edpa / "backlog" / "features").mkdir(parents=True) (edpa / "config" / "people.yaml").write_text(yaml.safe_dump({ - "cadence": {"iteration_weeks": 1, "pi_weeks": 5, - "delivery_iterations_per_pi": 4, "ip_iterations_per_pi": 1}, "teams": [{"id": "T", "planning_factor": 0.8}], "people": [ {"id": "bob-dev", "name": "Bob", "role": "Dev", "team": "T", diff --git a/web/src/pages/en/guide.astro b/web/src/pages/en/guide.astro index 578bddd..8a9cbb2 100644 --- a/web/src/pages/en/guide.astro +++ b/web/src/pages/en/guide.astro @@ -84,7 +84,7 @@ Next: /edpa setup "Project Name"`, /edpa:setup "Project Name" --with-ci`, code: `# Manual alternative (outside Claude Code): # 1. Edit .edpa/config/people.yaml (team, roles, FTE, capacity) -# 2. Edit .edpa/config/edpa.yaml (project name, cadence) +# 2. Edit .edpa/config/edpa.yaml (project name, governance, naming) # 3. Seed ID counters: python3 .edpa/engine/scripts/setup.py @@ -92,7 +92,7 @@ python3 .edpa/engine/scripts/setup.py python3 .edpa/engine/scripts/setup.py --with-ci`, result: `✓ Engine vendored: .edpa/engine/{scripts,templates,schemas} ✓ Team: 3 members configured (2.8 FTE) -✓ Config: .edpa/config/edpa.yaml (project + cadence) +✓ Config: .edpa/config/edpa.yaml (project + governance) ✓ Config: .edpa/config/people.yaml (team) ✓ Seeded: .edpa/config/id_counters.yaml ✓ CW heuristics: .edpa/config/cw_heuristics.yaml diff --git a/web/src/pages/en/playbook.astro b/web/src/pages/en/playbook.astro index 21bd2eb..ede3076 100644 --- a/web/src/pages/en/playbook.astro +++ b/web/src/pages/en/playbook.astro @@ -101,7 +101,7 @@ curl -fsSL https://edpa.technomaton.com/install.sh | sh .edpa/ config/ edpa.yaml # Project + governance (source of methodology version) - people.yaml # Team and capacities (cadence, teams, people) + people.yaml # Team and capacities (teams, people) cw_heuristics.yaml # CW signal weights id_counters.yaml # ID counters (S-1, E-1, F-1, ...) backlog/ @@ -138,18 +138,8 @@ curl -fsSL https://edpa.technomaton.com/install.sh | sh

1.2 Configure the team and capacities (people.yaml)

project_setup.py already seeds .edpa/config/people.yaml from the template. Or manually:

cp .edpa/engine/templates/people.yaml.tmpl .edpa/config/people.yaml
-

Edit .edpa/config/people.yaml. This is where cadence + teams + people live — no separate registry, everything is in one file:

-
cadence:
-  # AI-native default: 5-week PI = 4 delivery iterations of 1 week + 1 IP
-  # (a week for debt, prioritization and PI planning — with AI, doable in a day).
-  # Classic SAFe (2-week iterations, 10-week PI) stays supported —
-  # set iteration_weeks: 2 + pi_weeks: 10.
-  iteration_weeks: 1                    # 1 (AI-native, default) or 2 (classic)
-  pi_weeks: 5                           # 5 (AI-native, default) or 10 (classic)
-  delivery_iterations_per_pi: 4         # PI minus IP iteration
-  ip_iterations_per_pi: 1              # Innovation & Planning
-
-teams:
+    

Edit .edpa/config/people.yaml. This is where teams + people live — no separate registry. Set cadence (iteration_weeks / pi_iterations) per-PI in the pi: block of .edpa/iterations/PI-*.yaml:

+
teams:
   - id: "My Team"
     planning_factor: 0.8               # Plan to 80% of capacity
 
@@ -624,7 +614,7 @@ python3 .edpa/engine/scripts/reports.py PI-2026-1.1

Day 1

  • Engine vendored into .edpa/engine/ (/edpa:setup or project_setup.py)
  • -
  • .edpa/config/people.yaml — team with roles, FTE, capacities (cadence + teams + people)
  • +
  • .edpa/config/people.yaml — team with roles, FTE, capacities (teams + people)
  • .edpa/config/edpa.yaml — project name, governance, naming
  • .edpa/config/cw_heuristics.yaml — default signal weights (from the template)
  • .edpa/config/id_counters.yaml — seeded
  • diff --git a/web/src/pages/en/setup.astro b/web/src/pages/en/setup.astro index 83c387b..811bbd5 100644 --- a/web/src/pages/en/setup.astro +++ b/web/src/pages/en/setup.astro @@ -879,7 +879,6 @@ import Layout from '../../layouts/Layout.astro'; function generateConfigYaml(): string { const org = state.githubOrg || 'my-org'; const repo = state.githubRepo || 'my-project'; - const fteCap = getFullCapacity(); const lines = [ '# EDPA Configuration', `# Generated: ${new Date().toISOString().split('T')[0]}`, @@ -893,13 +892,6 @@ import Layout from '../../layouts/Layout.astro'; ` org: "${org}"`, ` repo: "${repo}"`, '', - 'cadence:', - ` iteration_weeks: ${state.iterWeeks}`, - ` delivery_iterations: ${state.deliveryIters}`, - ` ip_iterations: ${state.ipIters}`, - ` pi_weeks: ${(state.deliveryIters + state.ipIters) * state.iterWeeks}`, - ` capacity_per_fte: ${fteCap}`, - '', 'scoring:', ' contribution_weights:', ' assignee: 1.0', diff --git a/web/src/pages/playbook.astro b/web/src/pages/playbook.astro index b9ff3f9..7b98a84 100644 --- a/web/src/pages/playbook.astro +++ b/web/src/pages/playbook.astro @@ -103,7 +103,7 @@ curl -fsSL https://edpa.technomaton.com/install.sh | sh
.edpa/ config/ edpa.yaml # Projekt + governance (zdroj verze metodiky) - people.yaml # Tym a kapacity (cadence, teams, people) + people.yaml # Tym a kapacity (teams, people) cw_heuristics.yaml # CW signalove vahy id_counters.yaml # Citace ID (S-1, E-1, F-1, ...) backlog/ @@ -140,18 +140,8 @@ curl -fsSL https://edpa.technomaton.com/install.sh | sh

1.2 Nakonfigurovat tým a kapacity (people.yaml)

project_setup.py.edpa/config/people.yaml naseje ze šablony. Případně ručně:

cp .edpa/engine/templates/people.yaml.tmpl .edpa/config/people.yaml
-

Upravit .edpa/config/people.yaml. Tady žije cadence + teams + people — žádný separátní registr, vše je v jednom souboru:

-
cadence:
-  # AI-native default: 5-tydenni PI = 4 dodavkove iterace po 1 tydnu + 1 IP
-  # tyden na dluh, prioritizaci a PI planning (s AI zvladnutelne za den).
-  # Classic SAFe (2-tydenni iterace, 10-tydenni PI) zustava podporovany —
-  # nastav iteration_weeks: 2 + pi_weeks: 10.
-  iteration_weeks: 1                    # 1 (AI-native, default) nebo 2 (classic)
-  pi_weeks: 5                           # 5 (AI-native, default) nebo 10 (classic)
-  delivery_iterations_per_pi: 4         # PI minus IP iterace
-  ip_iterations_per_pi: 1              # Innovation & Planning
-
-teams:
+    

Upravit .edpa/config/people.yaml. Tady žijí teams + people — žádný separátní registr. Kadenci (iteration_weeks / pi_iterations) nastav per-PI v pi: bloku .edpa/iterations/PI-*.yaml:

+
teams:
   - id: "Muj Tym"
     planning_factor: 0.8               # Planujeme na 80% kapacity
 
@@ -619,7 +609,7 @@ python3 .edpa/engine/scripts/reports.py PI-2026-1.1

Den 1

  • Engine vendorovaný do .edpa/engine/ (/edpa:setup nebo project_setup.py)
  • -
  • .edpa/config/people.yaml — tým s rolemi, FTE, kapacitami (cadence + teams + people)
  • +
  • .edpa/config/people.yaml — tým s rolemi, FTE, kapacitami (teams + people)
  • .edpa/config/edpa.yaml — název projektu, governance, naming
  • .edpa/config/cw_heuristics.yaml — výchozí signálové váhy (ze šablony)
  • .edpa/config/id_counters.yaml — naseto
  • diff --git a/web/src/pages/setup.astro b/web/src/pages/setup.astro index 7e7aae5..4bad881 100644 --- a/web/src/pages/setup.astro +++ b/web/src/pages/setup.astro @@ -879,7 +879,6 @@ import Layout from '../layouts/Layout.astro'; function generateConfigYaml(): string { const org = state.githubOrg || 'my-org'; const repo = state.githubRepo || 'my-project'; - const fteCap = getFullCapacity(); const lines = [ '# EDPA Configuration', `# Generated: ${new Date().toISOString().split('T')[0]}`, @@ -893,13 +892,6 @@ import Layout from '../layouts/Layout.astro'; ` org: "${org}"`, ` repo: "${repo}"`, '', - 'cadence:', - ` iteration_weeks: ${state.iterWeeks}`, - ` delivery_iterations: ${state.deliveryIters}`, - ` ip_iterations: ${state.ipIters}`, - ` pi_weeks: ${(state.deliveryIters + state.ipIters) * state.iterWeeks}`, - ` capacity_per_fte: ${fteCap}`, - '', 'scoring:', ' contribution_weights:', ' assignee: 1.0',