---
name: release-note-writer
description: >
  Use when: writing release notes for PI planning presentations, system demos, sprint reviews,
  or SAFe Program Increment documentation. Generates structured release notes from git history,
  Jira/Xray test results, and feature files — readable by PO's and stakeholders, not just developers.
  Triggers: "release notes", "release note", "PI planning", "sprint review", "demo documentatie",
  "what's new", "nieuw in release", "sprint samenvatting", "release documentatie", "PI demo"
---

# SKILL: Release Note Writer — Lima Next Gen / BU PHR

Schrijft gestructureerde release notes voor SAFe PI-planningen, sprint reviews en system demos.
Output is leesbaar voor PO's, stakeholders en functionele analisten — niet alleen voor developers.

## Output formaten

| Format | Gebruik |
|--------|---------|
| **PI Planning deck** | PowerPoint-klaar bullet points per Epic/Feature |
| **Sprint review** | Markdown samenvatting per user story |
| **System demo** | Stap-voor-stap demo script met screenshots |
| **Xray release report** | Test coverage per release, gesorteerd op RiskLevel |

## PI Planning Release Notes template

```markdown
# Lima Next Gen — PI [nummer] Release Notes
**Periode**: [datum range]
**Team**: BU PHR — Cipal Schaubroeck
**Omgevingen**: TST-26 | NB-10 (⚠ LN-3674)

---

## 🟢 Beschikbaar in deze PI

### Epic: EGov 3.0 — Phase 1 (Flexijob)
- ✅ **LN-XXXX** Flexijob-aangifte via XML naar RSZ
- ✅ **LN-XXXX** Exchange view: PO kan aangiften raadplegen
- ✅ **LN-XXXX** Retrigger functionaliteit in phr-exchange

### Epic: e-Kalender Maandafsluiting
- ✅ **LN-XXXX** Maandafsluiting workflow geoptimaliseerd
- ✅ **LN-XXXX** Status machine refactoring (5 statussen)

---

## 🟡 In progress / niet volledig getest

### Epic: LTDS Phase 2
- 🔄 **LN-XXXX** LTDS aangifte basisstructuur (testbaar apr 2026)
- ⏳ Volledig testbaar: jul 2026

---

## 🔴 Bekende beperkingen

| ID | Beschrijving | Impact |
|----|-------------|--------|
| LN-3674 | NB-10 omgeving 502 | Testomgeving niet beschikbaar |
| B4 | WCS CLI password grant (KC 2.1 blocker) | WCS upgrade geblokkeerd |

---

## 📊 Test Coverage deze PI

| Module | Integration | E2E (Cypress) | BDD | Status |
|--------|-------------|----------------|-----|--------|
| EGov Phase 1 | ✅ 12 tests | 🟡 Gepland | ✅ 8 scenarios | Gereed |
| e-Kalender | 🟡 8 tests | 🟡 Gepland | 🟡 4 scenarios | Deels |
| Multi-tenant | ✅ Isolatie tests | — | — | Gereed |
```

## Sprint Review samenvatting (kort formaat)

```markdown
## Sprint [nummer] — Wat is er nieuw?

**Opgeleverd**:
- [User story beschrijving] — [@Xray-LN-XXXX]
- [User story beschrijving] — [@Xray-LN-XXXX]

**Getest** (alle Cypress E2E's geslaagd):
- verlofaanvraag happy path ✅
- DIMONA aangifte validatie ✅

**Geblokkeerd**:
- LTDS: wacht op Lima API (geschat Q3 2026)

**Demo URL**: https://lima.tst-docker-26.test.payrollhr.be
```

## System Demo script

```markdown
## System Demo — [Feature naam]

**Doel**: Toon [feature] aan PO en stakeholders
**Duur**: ~10 minuten
**Omgeving**: TST-26

### Stap 1: Login als HR-medewerker
- Open https://lima.tst-docker-26.test.payrollhr.be
- Kies tenant: TESTGEM
- [Screenshot: homepage na login]

### Stap 2: [Feature gebruiken]
- Navigeer naar [module]
- Voer [actie] uit
- [Screenshot: resultaatscherm]

### Stap 3: Verifieer in admin view
- Wissel naar [admin rol]
- Controleer [verwacht resultaat]
- [Screenshot: admin view]

### Bekende beperkingen in demo
- NB-10 is offline (LN-3674) — gebruik TST-26
```

## Playwright screenshots voor release docs

```typescript
// scripts/release-screenshots.ts
// Maakt screenshots voor release documentatie
import { chromium } from 'playwright'

const DEMO_PAGES = [
  { url: '/lima/verlof',     name: 'verlofmodule',    title: 'Verlofbeheer' },
  { url: '/lima/loon',       name: 'loonsimulatie',   title: 'Loonsimulatie' },
  { url: '/lima/ekalender',  name: 'ekalender',       title: 'e-Kalender' },
  { url: '/lima/dimona',     name: 'dimona',           title: 'DIMONA Aangifte' },
]

async function makeReleaseScreenshots(releaseTag: string) {
  const browser = await chromium.launch()
  const page = await browser.newPage({ viewport: { width: 1440, height: 900 } })

  // Login
  await page.goto(process.env.E2E_BASE_URL!)
  await page.fill('[name="username"]', process.env.E2E_USERNAME!)
  await page.fill('[name="password"]', process.env.E2E_PASSWORD!)
  await page.click('[type="submit"]')

  for (const { url, name, title } of DEMO_PAGES) {
    await page.goto(url)
    await page.waitForLoadState('networkidle')
    await page.screenshot({
      path: `docs/release/${releaseTag}/${name}.png`,
      fullPage: false,
    })
    console.log(`✅ Screenshot: ${title}`)
  }

  await browser.close()
  console.log(`\n📄 Screenshots opgeslagen in docs/release/${releaseTag}/`)
}

makeReleaseScreenshots(process.argv[2] || 'latest')
```

## Xray release rapport (vanuit .feature bestanden)

```bash
# Overzicht van alle Xray-IDs per RiskLevel voor release
grep -r "@Xray-LN" tests/features/ | grep "@RiskLevel-High" | \
  sed 's/.*@Xray-LN-\([^ ]*\).*/LN-\1/' | sort -u

# Scenarios die NIET getagd zijn (blocker voor release)
grep -r "Scenario:" tests/features/ -l | xargs grep -L "@Xray-LN"
```

## Tip: /release-notes commando

Gebruik `/release-notes [sprint-nummer]` om automatisch release notes te genereren
vanuit git log + .feature bestanden + bekende bugs uit CLAUDE.md.
