# Maui Release Notes

> >-

- **Type:** Skill
- **Install:** `agentstack add skill-redth-maui-skillz-maui-release-notes`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Redth](https://agentstack.voostack.com/s/redth)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Redth](https://github.com/Redth)
- **Source:** https://github.com/Redth/maui-skillz/tree/main/.agents/skills/maui-release-notes

## Install

```sh
agentstack add skill-redth-maui-skillz-maui-release-notes
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# MAUI Release Notes Generator

Generate formatted markdown for .NET MAUI workload releases using live workload
data from the `dotnet-workload-info` skill.

When custom NuGet sources or exact package versions are provided, use them for
workload set and workload manifest discovery instead of assuming the packages
already exist on NuGet.org.

## When to Use This Skill

Use this skill when:
- generating new `release-notes/maui-release-notes-YYYYMMDD.md` entries
- updating `release-notes/maui-release-notes.md` after a workload release
- documenting a pre-release or internal MAUI workload build from a private feed
- producing notes for a specific workload set or manifest version the user provided
- checking whether a new release-note entry is needed

## Skill Boundary

`dotnet-workload-info` owns source selection, package/version resolution, and
manifest dependency extraction.

This skill owns change detection and markdown authoring. Pass feed/version
overrides through unchanged, and avoid separate feed lookups unless the returned
data is incomplete.

## File Structure

```
release-notes/
├── maui-release-notes.md              # Index page with all releases
└── maui-release-notes-YYYYMMDD.md     # Dated release notes (one per update)
```

## Workflow

### Step 1: Gather workload data
Use `dotnet-workload-info` to fetch live data for the **two most recent .NET
versions** (e.g., .NET 10 and .NET 9), unless the user explicitly asked for a
different set of versions.

Pass through any user-provided overrides, especially:
- custom `nugetSources`
- exact `workloadSetVersion`
- per-workload `manifestVersions`
- `includePrerelease=true`

Capture:
- Workload set versions (NuGet + CLI format)
- Individual workload versions (MAUI, iOS, Mac Catalyst, Android, tvOS, macOS)
- MAUI NuGet package versions (implicit from workload vs latest on NuGet)
- Apple dependencies (Xcode version, SDK)
- Android dependencies (JDK, SDK packages)
- Source/feed used for each workload set and manifest lookup

### Step 2: Check for version changes
Compare fetched data against most recent `maui-release-notes-YYYYMMDD.md`:

```bash
ls -1 release-notes/maui-release-notes-*.md | sort -r | head -1
```

Key versions to compare per .NET version:
- Workload set version
- MAUI version
- iOS version  
- Android version

If no prior `maui-release-notes-*.md` file exists, treat the requested versions
as changed and generate the first entry.

**If any changed → proceed.**

**If unchanged → report "versions are up to date"** unless the user explicitly
requested notes for a pinned version, private feed, or forced regeneration. In
those cases, still generate/update the note for the requested build.

### Step 3: Generate dated release notes
Create `release-notes/maui-release-notes-{YYYYMMDD}.md` using templates from [references/templates.md](references/templates.md).

For link construction (NuGet URLs, GitHub release tags), see [references/links.md](references/links.md).

Source-specific rules:
- Record the actual source summary in the header (NuGet.org, custom feeds, or both)
- Even when a package version is discovered from a private/internal feed, keep
  the package links pointed at the equivalent `nuget.org` URL so the notes will
  resolve correctly once the packages are published publicly
- Keep the package/version data authoritative to the selected feed/version set

### Step 4: Update index page
Add new entry at **top** of `release-notes/maui-release-notes.md`:
- Only include .NET version sections that had actual changes
- Update "Last Updated" date

## Index Entry Format

Each release entry includes:
1. Date heading (e.g., `### January 19, 2026`)
2. Link to full notes
3. Per-.NET version summary (only for versions with changes):
   - Workload set version
   - Workload versions table with Requirements column
   - MAUI NuGet packages (implicit vs latest)

**Requirements column:**
- Apple platforms: `Xcode ≥ {version}`
- Android: `API {level}, JDK {version}`
- MAUI: (empty)

## Stop Signals

- Stop once the requested versions are resolved and the dated note plus index
  update are complete.
- Stop early with an informational response when nothing changed and the user
  did not request a specific build/version.
- Do not continue scanning additional feeds once the needed workload set and
  manifest packages have been found.

## Detailed Templates

See [references/templates.md](references/templates.md) for:
- Complete index page template
- Full dated release notes template with all sections

## Link Construction

See [references/links.md](references/links.md) for:
- NuGet package URL patterns
- GitHub release tag formats (including Apple platform tag algorithm)
- Formatting conventions

## Inputs

| Parameter | Required | Default |
|-----------|----------|---------|
| dotnetVersions | no | Two most recent stable versions |
| includePrerelease | no | false |
| nugetSources | no | none |
| workloadSetVersion / workloadSetVersions | no | auto-discovered |
| manifestVersions | no | derived from workload set |
| forceGenerate | no | false |

## Output

**Versions changed:**
1. New `release-notes/maui-release-notes-{YYYYMMDD}.md`
2. Updated `release-notes/maui-release-notes.md` with new entry at top

**Versions current:** Informational message only

## Dependencies

Requires `dotnet-workload-info` for live feed/package data. Never use
cached/hardcoded versions, and never assume NuGet.org is the correct source
when the user provided a custom feed.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Redth](https://github.com/Redth)
- **Source:** [Redth/maui-skillz](https://github.com/Redth/maui-skillz)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-redth-maui-skillz-maui-release-notes
- Seller: https://agentstack.voostack.com/s/redth
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
