mit einem Klick
sprint-summary
// Generates a Czech sprint summary article from Jira sprint data, preferably via Jira MCP with CSV as a fallback, and can optionally prepare Playwright screenshots/videos as side attachments for relevant UX tasks.
// Generates a Czech sprint summary article from Jira sprint data, preferably via Jira MCP with CSV as a fallback, and can optionally prepare Playwright screenshots/videos as side attachments for relevant UX tasks.
Drives `php bin/console monorepo:release` end-to-end. Runs pre-flight checks, starts the releaser, watches for confirm prompts, auto-presses Enter on prompts that are safe (waitFor already verified readiness, or ceremonial), and surfaces judgement calls to the operator via AskUserQuestion. Use when the user invokes /release.
Calls the GitHub REST API via `gh` to generate release notes for the given tag (the same content the "Generate release notes" button produces on the web UI) and inserts the result into the matching CHANGELOG-X.Y.md file. Used standalone or by the /release orchestrator when UpdateChangelogReleaseWorker is up next.
Create a Shopsys-style enum (a class extending AbstractEnum with public typed constants, NOT a native PHP enum). Use when you need to define a fixed set of values that downstream projects (like project-base) might extend or restrict.
Generates structured upgrade notes for a pull request based on diff analysis.
Analyzes PR diffs to identify breaking changes, feature movements, and scope
Commit Command — Analyzes uncommitted changes and creates logical, atomic, grouped commits following Shopsys commit guidelines. Use when the user asks to commit, create commits, or invokes /commit.
| name | sprint-summary |
| description | Generates a Czech sprint summary article from Jira sprint data, preferably via Jira MCP with CSV as a fallback, and can optionally prepare Playwright screenshots/videos as side attachments for relevant UX tasks. |
Generates a sprint summary from Jira sprint data. Prefer Jira MCP as the primary source; use a Jira CSV export only as a fallback when MCP is unavailable or missing required data. Creates a structured article in Czech suitable for Confluence. If Playwright MCP is available, it can optionally prepare screenshots/videos for relevant UI/UX tasks as side attachments.
When invoked without arguments, respond:
I am ready to generate a sprint summary. Please provide:
1. Sprint number or Jira sprint identifier
2. (Optional) Path to the CSV file exported from Jira, if Jira MCP is not available
3. (Optional) Path where to save the output file
Example: /sprint-summary 192
Fallback CSV example: /sprint-summary /home/user/jira-export.csv
You can generate the CSV here: https://shopsys.atlassian.net/issues/?filter=12564
Before exporting, update the sprint number in the filter to the sprint you want to summarize.
To export the CSV, click the three dots in the top right corner and select "Export" -> "CSV - filter fields".
Expected CSV columns:
- Issue key (e.g., SSP-3614)
- Summary
- Description
- Custom field (Merge Request) - GitHub PR link
Then wait for user input.
sprint-summary.md or same directory as CSV)Primarily use Jira MCP. CSV export is a fallback only when Jira MCP is unavailable or does not provide the required data.
When using Jira MCP:
Only include tasks completed in the sprint. Do not include issues that were merely assigned to or present in the sprint but not completed there.
Exclude operational/meta tasks such as sprint overhead, grooming, release management, coordination, or similar internal process tasks unless the user explicitly asks to include them.
When using CSV fallback:
If CSV data does not include comments, explicitly mention that Jira comments could not be checked unless Jira MCP is available.
Split tasks into categories based on name, description, and prefixes:
New Features:
Bug Fixes - Backend/Admin:
Bug Fixes - Storefront:
Admin Improvements:
Performance and Security:
Accessibility:
Developer Experience (DX):
Demo Data and Documentation:
Infrastructure:
For key tasks (new features, major changes), use Task tool with pr-diff-fetcher subagent to get PR descriptions:
Fetch PR descriptions for these GitHub PRs from shopsys/shopsys:
- PR #{number} ({task name})
Return just the PR title and description/body.
Create a structured markdown in Czech. Do NOT split categories into Backend/Storefront subsections. Instead, add a platform prefix to task titles only when it is not obvious from the name:
When to add prefix:
When NOT to add prefix:
Use format "Storefront: " or "Backend: " or "Admin: " as prefix when needed.
# Shrnutí sprintu
## Nové funkce
#### {Task name with optional platform prefix}
- **Jira:** [SSP-XXXX](https://shopsys.atlassian.net/browse/SSP-XXXX) | **PR:** [#YYYY](https://github.com/shopsys/shopsys/pull/YYYY)
- Bullet point 1 describing the change
- Bullet point 2 describing the change
#### {Another task}
...
---
## Opravy chyb
#### {Task name}
...
---
## Vylepšení administrace
...
## Výkon a bezpečnost
...
## Přístupnost (Accessibility)
...
## Developer Experience (DX)
...
## Demo data a dokumentace
...
## Infrastruktura
...
For each task:
Additional rules:
After the markdown is generated, check whether Playwright MCP/browser tools are available and whether the application is reachable.
Required: when Playwright MCP is available, generate screenshots for UX-relevant tickets as part of the workflow (do not wait for a separate prompt). Default target URL is the review environment https://<release-branch>.odin.shopsys.cloud/ (e.g. 19-0.odin.shopsys.cloud for branch 19.0); confirm or override with the user before starting.
If yes, explicitly ask the user whether they want visual attachments for relevant tasks:
When choosing tasks automatically, prefer:
Usually skip:
If the user wants visuals:
sprint-summary.md, use sprint-summary-assets/{ISSUE_KEY}-{short-slug}.png{ISSUE_KEY}-{short-slug}.gif{ISSUE_KEY}-{short-slug}.mp4When assets are generated, update the markdown item only with a short textual reference, not an embedded image. Use this format:
- Příloha: `sprint-summary-assets/SSP-3891-variant-parameters.png`
This keeps the article easy to preview in IDEs and easy to copy to Confluence.
Sprint summary has been generated.
File: {path to file}
Assets: {path to assets directory, if any}
Statistics:
- Total tasks: XX
- New features: X
- Bug fixes: X (BE: X, FE: X)
- DX improvements: X
- ...
Would you like to open the file in PhpStorm?
Always create the Confluence article as a private review page (isPrivate: true) when Confluence MCP is available.
Before creating the page, inform the user that the page will be created as private and that after review they should publish or make it public manually in Confluence.
Place the page under the same parent/folder as the previous sprint summary.
If attachment upload is not available, insert short screenshot placeholders into the article and clearly tell the user which local files need to be uploaded manually.
If Confluence MCP is unavailable, instruct the user to create the article manually in Confluence here:
https://shopsys.atlassian.net/wiki/spaces/PRG/folder/2698510337?atlOrigin=eyJpIjoiMTIzN2EwNmQyYzMyNGFiY2I1OTU1YmVkMjk4YTk1MTciLCJwIjoiYyJ9
For instructions on sending this summary to the maillist, see:
https://docs.google.com/document/d/172xIeT30FWxKYBh-ZedV5CRxsCv86ZkXMPdiyDuE0jU/edit?pli=1&tab=t.0
When processing Description field, remove or convert Jira-specific markup:
# Shrnutí sprintu
## Nové funkce
#### Upřesnění výpočtu lhůty pro odstoupení od smlouvy
- **Jira:** [SSP-3576](https://shopsys.atlassian.net/browse/SSP-3576) | **PR:** [#4317](https://github.com/shopsys/shopsys/pull/4317)
- Administrátor může nyní importovat státní svátky pro vybranou zemi a domény
- Lhůta pro odstoupení se automaticky posouvá na první pracovní den při víkendu/svátku
- Nová možnost označit den jako "Den pracovního volna" v nastavení
#### Storefront: Podpora onClick na komponentě Tag
- **Jira:** [SSP-3743](https://shopsys.atlassian.net/browse/SSP-3743) | **PR:** [#4322](https://github.com/shopsys/shopsys/pull/4322)
- Doplněn onClick handler pro napojení na GTM
---
## Opravy chyb
#### Formulář se neskryje po odeslání
- **Jira:** [SSP-3674](https://shopsys.atlassian.net/browse/SSP-3674) | **PR:** [#4303](https://github.com/shopsys/shopsys/pull/4303)
- Po odeslání se nyní skryje/vyčistí formulář na kontaktní stránce a stránkách osobních údajů
- Příloha: `sprint-summary-assets/SSP-3674-contact-form-state.png`
#### Admin: Chyba ve vyhledávání rozšířeného filtru
- **Jira:** [SSP-3748](https://shopsys.atlassian.net/browse/SSP-3748) | **PR:** [#4334](https://github.com/shopsys/shopsys/pull/4334)
- Opraveno dvojité volání requestu při použití našeptávání
---
## Výkon a bezpečnost
#### Storefront: Optimalizace broadcast channel
- **Jira:** [SSP-2013](https://shopsys.atlassian.net/browse/SSP-2013) | **PR:** [#4327](https://github.com/shopsys/shopsys/pull/4327)
- Při více otevřených záložkách se query na košík volá pouze jednou
Target audience of the article:
Write so that the article is understandable for non-technical colleagues, but also contains enough technical details for developers.