Release Manifest Manager
You are helping manage the release-manifest.json file for the Umbraco.AI repository.
Task
Generate release-manifest.json at the repository root. Products can be provided as a parameter or selected interactively via a numbered menu.
Usage:
- With products:
/release-manifest-management --products="Umbraco.AI,Umbraco.AI.OpenAI,Umbraco.AI.Agent"
- Interactive:
/release-manifest-management (shows menu)
About Release Manifests
- Required on
release/* branches (CI will fail without it)
- Optional on
hotfix/* branches (falls back to change detection if absent)
- Lists which products to package and release
- Format: JSON array of product names (e.g.,
["Umbraco.AI", "Umbraco.AI.OpenAI"])
Workflow
Mode Detection
Check the initial prompt/task for a --products parameter:
- If
--products="Product1,Product2,..." is present → Use Automated Mode
- If no products specified → Use Interactive Mode
Automated Mode (products provided)
- Parse product list from parameter (comma-separated)
- Discover available products to validate:
find . -maxdepth 1 -type d -name "Umbraco.AI*" | sed 's|^\./||' | sort
- Validate each product exists in the repository
- Skip to Generate Manifest (step 5 below)
Interactive Mode (no products provided)
Discover products - Find all Umbraco.AI* directories at repository root:
find . -maxdepth 1 -type d -name "Umbraco.AI*" | sed 's|^\./||' | sort
Display numbered menu - Show all products with numbers:
Select products to include in this release:
1. Umbraco.AI
2. Umbraco.AI.Agent
3. Umbraco.AI.Agent.Copilot
4. Umbraco.AI.Amazon
5. Umbraco.AI.Anthropic
6. Umbraco.AI.Google
7. Umbraco.AI.MicrosoftFoundry
8. Umbraco.AI.OpenAI
9. Umbraco.AI.Prompt
Get user selection - Display the menu and wait for user response:
- After showing the numbered list, ask the user to provide their selection
- Do NOT use AskUserQuestion - just wait for the user to respond naturally
- The user will type their selection in the chat
- Parse their input, supporting multiple formats:
- Comma-separated:
1,3,5,8
- Space-separated:
1 3 5 8
- Range notation:
1-4,7,9
- Special commands:
all, none, cancel
- Product names:
Umbraco.AI, Umbraco.AI.OpenAI
Validate selection - Check that:
- Numbers are within valid range (1 to N)
- Product names exist (if names provided)
- At least one product selected (unless intentionally empty)
Common Steps (both modes)
Generate manifest - Write selected products to release-manifest.json:
["Umbraco.AI", "Umbraco.AI.OpenAI"]
- Use Write tool to create the file at repository root
- Format as pretty-printed JSON with 2-space indentation
- Sort products alphabetically
Confirm creation - Read and display the generated manifest
Important Notes
- Always run from repository root
- Manifest is validated by CI on
release/* and hotfix/* branches
- On release branches, CI ensures all changed products are in the manifest
- The file path must be
release-manifest.json at the repository root
- This skill is typically invoked by the
/release-management orchestration skill
Example Flows
Automated Mode (from release-management skill)
Skill invoked with: --products="Umbraco.AI,Umbraco.AI.Agent,Umbraco.AI.OpenAI,Umbraco.AI.Prompt"
You discover products to validate against
You validate all provided products exist
You generate release-manifest.json:
[
"Umbraco.AI",
"Umbraco.AI.Agent",
"Umbraco.AI.OpenAI",
"Umbraco.AI.Prompt"
]
You confirm:
✓ Generated release-manifest.json with 4 products
Interactive Mode (user selection)
User invokes: /release-manifest-management
You discover and display:
Select products to include in this release:
1. Umbraco.AI
2. Umbraco.AI.Agent
3. Umbraco.AI.Agent.Copilot
4. Umbraco.AI.Amazon
5. Umbraco.AI.Anthropic
6. Umbraco.AI.Google
7. Umbraco.AI.MicrosoftFoundry
8. Umbraco.AI.OpenAI
9. Umbraco.AI.Prompt
You ask: "Enter product numbers (comma or space-separated, e.g., 1,3,5) or type 'all' for all products:"
User types: "1,2,8,9"
You parse: 1=Umbraco.AI, 2=Umbraco.AI.Agent, 8=Umbraco.AI.OpenAI, 9=Umbraco.AI.Prompt
You generate release-manifest.json:
[
"Umbraco.AI",
"Umbraco.AI.Agent",
"Umbraco.AI.OpenAI",
"Umbraco.AI.Prompt"
]
You confirm:
✓ Generated release-manifest.json with 4 products
1---2name: release-manifest-management3description: Generates and manages the release-manifest.json file. Use when you need to create or update the manifest file that specifies which products to include in a release/hotfix. Called by the release-management orchestration skill.4---56# Release Manifest Manager78You are helping manage the `release-manifest.json` file for the Umbraco.AI repository.910## Task1112Generate `release-manifest.json` at the repository root. Products can be provided as a parameter or selected interactively via a numbered menu.1314**Usage:**15- With products: `/release-manifest-management --products="Umbraco.AI,Umbraco.AI.OpenAI,Umbraco.AI.Agent"`16- Interactive: `/release-manifest-management` (shows menu)1718## About Release Manifests1920- **Required** on `release/*` branches (CI will fail without it)21- **Optional** on `hotfix/*` branches (falls back to change detection if absent)22- Lists which products to package and release23- Format: JSON array of product names (e.g., `["Umbraco.AI", "Umbraco.AI.OpenAI"]`)2425## Workflow2627### Mode Detection2829Check the initial prompt/task for a `--products` parameter:30- If `--products="Product1,Product2,..."` is present → Use **Automated Mode**31- If no products specified → Use **Interactive Mode**3233### Automated Mode (products provided)34351. **Parse product list** from parameter (comma-separated)362. **Discover available products** to validate:37 ```bash38 find . -maxdepth 1 -type d -name "Umbraco.AI*" | sed 's|^\./||' | sort39 ```403. **Validate** each product exists in the repository414. **Skip to Generate Manifest** (step 5 below)4243### Interactive Mode (no products provided)44451. **Discover products** - Find all `Umbraco.AI*` directories at repository root:4647 ```bash48 find . -maxdepth 1 -type d -name "Umbraco.AI*" | sed 's|^\./||' | sort49 ```50512. **Display numbered menu** - Show all products with numbers:5253 ```54 Select products to include in this release:5556 1. Umbraco.AI57 2. Umbraco.AI.Agent58 3. Umbraco.AI.Agent.Copilot59 4. Umbraco.AI.Amazon60 5. Umbraco.AI.Anthropic61 6. Umbraco.AI.Google62 7. Umbraco.AI.MicrosoftFoundry63 8. Umbraco.AI.OpenAI64 9. Umbraco.AI.Prompt65 ```66673. **Get user selection** - Display the menu and wait for user response:68 - After showing the numbered list, ask the user to provide their selection69 - Do NOT use AskUserQuestion - just wait for the user to respond naturally70 - The user will type their selection in the chat71 - Parse their input, supporting multiple formats:72 - Comma-separated: `1,3,5,8`73 - Space-separated: `1 3 5 8`74 - Range notation: `1-4,7,9`75 - Special commands: `all`, `none`, `cancel`76 - Product names: `Umbraco.AI, Umbraco.AI.OpenAI`77784. **Validate selection** - Check that:79 - Numbers are within valid range (1 to N)80 - Product names exist (if names provided)81 - At least one product selected (unless intentionally empty)8283### Common Steps (both modes)84855. **Generate manifest** - Write selected products to `release-manifest.json`:8687 ```json88 ["Umbraco.AI", "Umbraco.AI.OpenAI"]89 ```9091 - Use Write tool to create the file at repository root92 - Format as pretty-printed JSON with 2-space indentation93 - Sort products alphabetically94956. **Confirm creation** - Read and display the generated manifest9697## Important Notes9899- Always run from repository root100- Manifest is validated by CI on `release/*` and `hotfix/*` branches101- On release branches, CI ensures all changed products are in the manifest102- The file path must be `release-manifest.json` at the repository root103- This skill is typically invoked by the `/release-management` orchestration skill104105## Example Flows106107### Automated Mode (from release-management skill)108109```110Skill invoked with: --products="Umbraco.AI,Umbraco.AI.Agent,Umbraco.AI.OpenAI,Umbraco.AI.Prompt"111112You discover products to validate against113You validate all provided products exist114You generate release-manifest.json:115[116 "Umbraco.AI",117 "Umbraco.AI.Agent",118 "Umbraco.AI.OpenAI",119 "Umbraco.AI.Prompt"120]121122You confirm:123✓ Generated release-manifest.json with 4 products124```125126### Interactive Mode (user selection)127128```129User invokes: /release-manifest-management130131You discover and display:132Select products to include in this release:1331341. Umbraco.AI1352. Umbraco.AI.Agent1363. Umbraco.AI.Agent.Copilot1374. Umbraco.AI.Amazon1385. Umbraco.AI.Anthropic1396. Umbraco.AI.Google1407. Umbraco.AI.MicrosoftFoundry1418. Umbraco.AI.OpenAI1429. Umbraco.AI.Prompt143144You ask: "Enter product numbers (comma or space-separated, e.g., 1,3,5) or type 'all' for all products:"145146User types: "1,2,8,9"147148You parse: 1=Umbraco.AI, 2=Umbraco.AI.Agent, 8=Umbraco.AI.OpenAI, 9=Umbraco.AI.Prompt149150You generate release-manifest.json:151[152 "Umbraco.AI",153 "Umbraco.AI.Agent",154 "Umbraco.AI.OpenAI",155 "Umbraco.AI.Prompt"156]157158You confirm:159✓ Generated release-manifest.json with 4 products160```