Przejdź do treści
Biblioteka skilli
Programowanie · Pisanie

dev10x:release-notes

/dev10x:release-notes

Tworzy notatki o wydaniu z commitów między wersjami, opisując zmiany z perspektywy zadań użytkowników.

Repozytorium
dev10x-claude ↗
Licencja
MIT
Ostatnia zmiana repozytorium
12.10.2026

Ocena i bezpieczeństwo

90/ 100Klasa: dobry
Format15 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
4
Skrypty
1
Komentarze HTML
0
Adresy URL w SKILL.md
5
Przestarzałość

Brak sygnałów. Repozytorium zmienione 12.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co sprawdzić przed instalacją
  • 1 skrypt w paczce. Przejrzyj je przed instalacją, bo Claude może je uruchomić.

Skrypty: scripts/collect-prs.py

Co robi i kiedy

Tworzy notatki o wydaniu z commitów między wersjami, opisując zmiany z perspektywy zadań użytkowników.

Oryginalny opis (EN)

Generate JTBD-driven release notes from git commits between releases. Playbook-powered workflow with configurable ticket patterns, output targets, and categories. TRIGGER when: preparing a release and need to generate changelog or release notes from commit history. DO NOT TRIGGER when: writing individual commit messages, or updating documentation unrelated to releases.

Jak działa

  1. When to Use
  2. Playbook-Powered Workflow
  3. Workflow
  4. Arguments
Sekcje z nagłówków SKILL.md, w oryginale · 189 linii, 904 słów
Podgląd SKILL.md
---
name: dev10x:release-notes
description: >
  Generate JTBD-driven release notes from git commits between releases.
  Playbook-powered workflow with configurable ticket patterns, output
  targets, and categories.
  TRIGGER when: preparing a release and need to generate changelog or
  release notes from commit history.
  DO NOT TRIGGER when: writing individual commit messages, or updating
  documentation unrelated to releases.
user-invocable: true
invocation-name: dev10x:release-notes
allowed-tools:
  - Bash(${CLAUDE_PLUGIN_ROOT}/skills/release-notes/scripts/collect-prs.py:*)
  - mcp__plugin_dev10x_cli__collect_prs
  - Bash(gh pr view:*)
  - Bash(gh pr list:*)
  - Bash(gh release edit:*)
  - Bash(gh release view:*)
  - Bash(git tag:*)
  - Bash(git log:*)
  - mcp__claude_ai_Linear__get_issue
  - mcp__claude_ai_Linear__list_issues
  - mcp__claude_ai_Linear__list_comments
  - mcp__claude_ai_Slack__slack_send_message_draft
  - mcp__claude_ai_Slack__slack_read_channel
  - mcp__claude_ai_Slack__slack_search_public
  - mcp__plugin_dev10x_cli__mktmp
  - AskUserQuestion
  - TaskCreate
  - TaskUpdate
---

# Release Notes Skill

Generate JTBD-driven release notes from git commits between releases.
Uses Job Stories from PR descriptions to produce business-meaningful
summaries instead of technical commit logs.

## When to Use

- A new version has been released and needs release notes
- Asked to write or post release notes
- Asked to summarize changes in a release

## Playbook-Powered Workflow

This skill is driven by playbook configuration. The default playbook
lives at `${CLAUDE_PLUGIN_ROOT}/skills/release-notes/references/playbook.yaml`.
Projects can override via the 4-tier resolution in
`references/config-resolution.md` (global preferred:
`~/.config/Dev10x/playbooks/release-notes.yaml`).

### Plays

| Play | When | Steps |
|------|------|-------|
| `release` | Standard release | collect → generate JTBDs → synthesize → behavior changes → format → post |
| `hotfix` | Hotfix release | collect → short summary → format → post |

### Config Block

Each play has a `config` block with:

| Setting | Type | Default | Description |
|---------|------|---------|-------------|
| `ticket_patterns` | list[str] | `["[A-Z]+-\\d+"]` | Regex patterns for ticket IDs in commit messages |
| `ticket_links` | dict | `{}` | Prefix → URL template mapping (e.g., `PAY: https://linear.app/team/issue/PAY-{id}`) |
| `output_target` | str | `stdout` | Where to post: `stdout`, `github-release`, or `slack` |
| `slack_channel` | str | null | Slack channel ID (required when output_target is `slack`) |
| `include_joke` | bool | true | Append a release-themed joke |
| `categories` | list[str] | varies | Section headings for grouping changes |

## Workflow

### 1. Load Configuration

1. Read the project playbook override if it exists
2. Fall back to the default playbook
3. Determine which play to use (release vs hotfix)
4. Extract the `config` block for script args and formatting

**Missing override detection:** After loading, check whether a
user override exists (at any tier per `references/config-resolution.md`).
If **no override exists** AND the resolved config has
`output_target: stdout` with empty `ticket_links`:

**REQUIRED: Call `AskUserQuestion`** (do NOT use plain text).
Options:
- **Use defaults as-is** — proceed with stdout output, no ticket links
- **Save defaults as project override** — copy the default playbook
  to the project memory directory for future customization
- **Customize key settings now** — interactively set output target
  (stdout / github-release / slack), Slack channel ID, and ticket
  link prefixes, then save as project override

This prevents silent fallback to unusable defaults, which was the
root cause of 3/14 compliance deviations in a prior audit (GH-271).

### 2. Collect PRs

Run the `collect-prs.py` script with configured ticket patterns:

```bash
${CLAUDE_PLUGIN_ROOT}/skills/release-notes/scripts/collect-prs.py \
  <REPO_PATH> \
  [--from TAG] [--to TAG] \
  [--ticket-pattern PATTERN] ...
```

If `--from`/`--to` are omitted, the script auto-detects the two latest tags.

The `--ticket-pattern` arg is repeatable. Pass one per pattern from
the playbook config. Default: `[A-Z]+-\d+` (matches any JIRA/Linear-style ID).

The script outputs structured markdown with:
- Feature PRs with existing JTBDs (ready to use)
- Feature PRs missing JTBDs (need generation)
- Maintenance PRs (no JTBD needed)
- Skipped commits (version bumps, reverts)

Also read the detailed commit messages for context:

```bash
git log <from_tag>..<to_tag> --no-merges --format="### %s%n%n%b%n---"
```

### 3. Generate Missing JTBDs (release play only)

For feature PRs listed as "MISSING JTBDs":

1. Invoke `dev10x:jtbd` in unattended mode with ticket ID and PR number
2. Collect all drafts
3. Present as a batch for user approval:

> Generated Job Stories for PRs missing them:
>
> - **TICKET-1**: **When** ..., **[actor] wants to** ..., **so [beneficiary] can** ...
> - **TICKET-2**: **When** ..., **[actor] wants to** ..., **so [beneficiary] can** ...
>
> Approve these? (y/edit/n)

Generate missing Job Stories in the project or ticket language. If a PR
or ticket includes BDD/Gherkin-derived keywords, use Cucumber's official
language reference for translations:
https://cucumber.io/docs/gherkin/languages/

### 4. Synthesize Release Summary

**A. Group by business theme** — cluster JTBDs by area. Themes emerge
from the JTBDs themselves; don't force-fit.

**B. Merge related JTBDs** — multiple PRs for the same feature become
a single narrative line.

**C. Identify behavior changes** — scan commit message bodies for:
- Signal/trigger changes
- Auto-completion/auto-close logic changes
- Permission changes
- Default value changes
- Removal or narrowing of behavior

Present any findings to the user before formatting.

**D. Write a 2-3 sentence business summary**:
- Lead with the most impactful change
- Use business language (what users can now do)
- Contrast with the previous state when relevant

### 5. Format Output

Format depends on the configured `output_target`:

#### stdout (default)
Standard markdown output to console.

#### github-release
Markdown formatted for GitHub release body. Post via:
```bash
gh release edit <TAG> --notes-file <NOTES_FILE>
```

#### slack
Slack mrkdwn format with:
- `*bold*` headers (not `##`)
- `•` bullet lists
- `<URL|text>` links
- `:emoji_name:` gitmoji prefixes
- Optional joke at the end (if `include_joke: true`)

### 6. Ticket Links

Generate clickable links based on the `ticket_links` config.
Each entry maps a prefix to a URL template:

```yaml
ticket_links:
  PAY: "https://linear.app/team/issue/{id}"
  TT: "https://org.atlassian.net/browse/{id}"
  GH: "https://github.com/org/repo/issues/{number}"
```

The `{id}` placeholder is replaced with the full ticket ID (e.g., `PAY-123`).
The `{number}` placeholder is replaced with just the numeric part.

### 7. Deliver

Post to the configured target. For Slack, write the formatted message
to a temp file and use the Slack posting mechanism. For GitHub, use
`gh release edit`. For stdout, just print.

## Arguments

```
/dev10x:release-notes [--play release|hotfix] [--from TAG] [--to TAG]
```

- `--play`: Which playbook play to use (default: `release`)
- `--from`/`--to`: Override auto-detected tags
- Additional args are passed through to collect-prs.py
Pliki w paczce (4)
  • SKILL.md 7 KB
  • evals/evals.json 5 KB
  • references/playbook.yaml 5 KB
  • scripts/collect-prs.py 1 KB

Wersje

W bazie nie ma innych skilli o nazwie dev10x:release-notes.

Migawka bazy z 28.10.2026 · wersja paczki f9ff6dc571fa (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100create-release-notes
    Generuje notatki wydania dla użytkowników: dokumentuje release, streszcza zmiany i przygotowuje changelog między wersjami.
  • 100generate-release-notes
    Tworzy kategoryzowane notatki o wydaniu lub wpisy changelogu na podstawie historii gita i komunikatów w formacie Conventional Commits.
  • 100minutes-release-notes
    Pisze notatki o wydaniu Minutes dla użytkowników na podstawie zakresu commitów, ostatnich wydań GitHub i kontroli wydania w repozytorium.
  • 90doncheli-changelog
    Generuje wpisy CHANGELOG.md z historii commitów Git i przygotowuje na tej podstawie notatki o wydaniu.
  • 100changelog-generator
    Generuje notatki do wydań i changelogi z commitów, list funkcji lub aktualizacji projektu.
  • 100changelog-generator
    Zamienia historię commitów w changelog dla użytkowników: czyta commity od ostatniego wydania, kategoryzuje je i przepisuje techniczne komunikaty na czytelne notatki dla klienta.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.