.claude/skills/release-app/SKILL.md
Create and push a Packmind release by verifying a clean git state, bumping package versions, updating CHANGELOG links and dates, tagging `release/{{version}}`, and preparing the next Unreleased section to ensure a consistent, traceable release workflow when publishing a new version.
npx skillsauth add PackmindHub/packmind release-appInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create a Packmind release with version {{version}}. Follow these steps:
Confirm Feature Flag Audit has been run (MANDATORY PRE-CHECK):
Before doing ANY other step, stop and ask the user to confirm that the feature-flags-audit skill has been invoked on the packmind-proprietary repository. The purpose of this check is to avoid shipping a release that still contains feature flags which should have been removed.
Ask the user explicitly:
Has the
feature-flags-auditskill been run onpackmind-proprietaryprior to this release? (yes / no)
feature-flags-audit skill first, review the resulting report, remove any stale/shipped flags, and then re-invoke this skill.Do NOT proceed to step 1 until the user has explicitly confirmed with yes.
Verify clean git status: Check that git status shows no uncommitted changes. If there are changes, fail and ask the user to commit or stash them first.
Update package.json files and CHANGELOG.MD for release (First commit):
Update the version in package.json to {{version}}
Update the version in apps/api/docker-package.json to {{version}}
Run npm install to update package-lock.json with the new version
In CHANGELOG.MD:
drop the empty sections under [Unreleased]
Replace the [Unreleased] heading with [{{version}}] - {{today_date}} (use ISO 8601 format YYYY-MM-DD for the date)
Update the unreleased comparison link at the bottom to point to the new release:
[{{version}}]: https://github.com/PackmindHub/packmind/compare/release/{{previous_version}}...release/{{version}}
Extract the previous version from the existing comparison links inCHANGELOG.MD
Commit with message: chore: release {{version}} (this commit will include package.json, apps/api/docker-package.json, package-lock.json, and CHANGELOG.MD)
Create and push release tag:
Create tag: release/{{version}}
Push the tag to GitHub
Prepare next development cycle (Second commit):
Add a new [Unreleased] section at the top of CHANGELOG.MD:
# [Unreleased]
## Added
## Changed
## Fixed
## Removed
Add the unreleased comparison link at the bottom:
[Unreleased]: https://github.com/PackmindHub/packmind/compare/release/{{version}}...HEAD
Commit with message: chore: prepare next development cycle
Push all commits to GitHub
Important notes:
Do NOT use --no-verify when committing
Verify each commit was successful before proceeding to the next step
The date must be in ISO 8601 format (YYYY-MM-DD)
tools
Record polished UI demo videos and screenshots of a running web app using Playwright MCP — for client deliverables, release notes, feature walkthroughs, or bug repros. Produces an HD WebM video with chapter markers, a mandatory animated cursor overlay, and a mandatory subtitle bar that narrates each step (positioned deliberately so it never masks the UI being demonstrated), plus full-page screenshots at each step. Use this whenever the user asks to "record a demo", "create a screencast", "make a UI walkthrough video", "document this feature with video", "show the client how X works", "capture screenshots of the app", or anything similar — even when the user only says "make a video" or "take screenshots" in the context of a running frontend. Also use it when the user wants to demonstrate a workflow, generate marketing-quality footage of an app, or produce repeatable visual documentation.
tools
The canonical recipe for starting, checking, and stopping the Packmind local dev stack with Docker Compose — the single source of truth other skills and the Michel agent defer to. Covers bringing the full stack (PostgreSQL, Redis, NestJS API, React/Vite frontend on :4200, MCP server, nginx) up in the background, the init services (dependency install + TypeORM migrations) you must wait on, the critical host-port trap that the API on container port 3000 is NOT exposed to the host and must be reached via the frontend Vite proxy at localhost:4200/api/v0, confirming the API and frontend are actually serving before you depend on them, the persistent-volume gotcha that leaves stale Postgres schema and node_modules behind between runs, building the CLI, and tearing everything down so no container is left blocking the run. Use this whenever you need Packmind running locally — to verify a change, record a UI or CLI demo, hit the API, seed data, or reproduce a bug — and whenever you are about to start or stop `docker compose`. If you are an autonomous agent (e.g. Michel) that started the stack, you MUST use the teardown half before finishing. Prefer this over running `nx serve` on the host for anything that needs the real, containerized stack.
tools
Best practices for creating GitHub pull requests that include inline images — CLI terminal screenshots (from cli-demo-recorder), UI screenshots/videos (from ui-demo-recorder), or any other visual artifact. Use this skill whenever opening or updating a PR that has visual artifacts to embed, or when images aren't rendering in a PR description. Also use it when asked "how do I add screenshots to a PR", "why isn't my image showing", or "embed a demo in the PR".
tools
--- name: michel-create-packmind-dataset description: Seed a local Packmind instance with a realistic dataset — one organization populated with standards, commands, and skills — so an autonomous agent can exercise its own changes against lifelike data instead of an empty app. Use this whenever you need populated Packmind data to verify a change end-to-end: reproducing a bug that only shows with existing artifacts, recording a UI/CLI demo that needs content on screen, smoke-testing a new endpoint