xiaohongshu
xiaohongshu
ash-library-release
Manages version releases for ash_cookie_consent Elixir library including CHANGELOG updates, version bumping, quality checks, Hex.pm publishing, and git tagging. Use when user asks to "release", "publish to hex", "bump version", "create release", or "prepare for publishing".
Full skill instructions
This skill guides you through releasing a new version of the ash_cookie_consent library to Hex.pm.
Activate this skill when the user requests:
Before starting, verify:
Clean working directory:
git status
All changes should be committed.
On main branch and up to date:
git branch --show-current # Should show: main
git pull origin main
User has Hex credentials:
mix hex.user whoami
If not authenticated, run: mix hex.user auth
Ask user for version number if not provided. Follow Semantic Versioning:
Pre-1.0 note: While version < 1.0.0, MINOR can include breaking changes.
Read current CHANGELOG.md
Move all items from [Unreleased] section to new version section:
## [X.Y.Z] - YYYY-MM-DD
### Added
- Feature descriptions from [Unreleased]
### Changed
- Changes from [Unreleased]
### Fixed
- Bug fixes from [Unreleased]
Add today's date (YYYY-MM-DD format)
Update comparison links at bottom of file
Ensure [Unreleased] section is empty but present
Quality check:
mix.exs@version "X.Y.Z" at top of fileExecute all quality checks and report results:
# 1. Tests
mix test
# 2. Formatting
mix format --check-formatted
# 3. Credo (strict mode)
mix credo --strict
# 4. Dialyzer
mix dialyzer
# 5. Documentation build
mix docs
Required: All must pass with 0 errors/warnings before proceeding.
If any fail:
# Build package
mix hex.build
Review package contents:
tar -tf ash_cookie_consent-X.Y.Z.targit add CHANGELOG.md mix.exs
git commit -m "Bump version to X.Y.Z"
Commit message format: Always use Bump version to X.Y.Z for consistency.
# Create annotated tag
git tag -a vX.Y.Z -m "Release vX.Y.Z"
# Push commits and tag
git push origin main
git push origin vX.Y.Z
Tag format: Always prefix with v (e.g., v0.2.0)
mix hex.publish
The command will:
Action: Inform user to type y to confirm.
After publishing:
If gh CLI is available:
gh release create vX.Y.Z \
--title "vX.Y.Z - Brief Description" \
--notes "See [CHANGELOG.md](https://github.com/shotleybuilder/ash_cookie_consent/blob/main/CHANGELOG.md#vXYZ) for full details."
If gh not available:
https://github.com/shotleybuilder/ash_cookie_consent/releases/newVerify release succeeded:
Hex.pm package:
open https://hex.pm/packages/ash_cookie_consent
GitHub release:
open https://github.com/shotleybuilder/ash_cookie_consent/releases
Present this checklist to user:
Solution:
mix hex.user auth
Re-authenticate and try again.
Solution:
mix docs locallySolution:
### Fixed if user-facingSolution:
files: list in mix.exs package configmix hex.buildExample: 0.1.0 → 0.1.1
## [0.1.1] - 2025-11-XX
### Fixed
- Fix consent expiration calculation (#42)
- Correct cookie encoding for edge case (#43)
Example: 0.1.0 → 0.2.0
## [0.2.0] - 2025-XX-XX
### Added
- Built-in database sync helpers
- Multi-language support (EN, ES, FR, DE)
### Changed
- Improved performance of cookie encoding (50% faster)
Example: 0.9.0 → 1.0.0
## [1.0.0] - 2025-XX-XX
### Added
- Stable API guarantee
- Comprehensive security audit
### Changed
- **BREAKING**: Renamed `consent_given?/2` to `has_consent?/2`
- **BREAKING**: Changed default cookie expiration from 365 to 180 days
### Migration Guide
...
If critical bug needs immediate fix:
Create hotfix branch:
git checkout -b hotfix/X.Y.Z vX.Y.Z
Fix the bug:
### FixedBump PATCH version:
Test thoroughly:
mix test
mix credo --strict
mix dialyzer
Merge and publish:
git checkout main
git merge hotfix/X.Y.Z+1
# Then follow normal release process from Step 6
Retire vulnerable version (if security issue):
mix hex.retire ash_cookie_consent X.Y.Z \
--reason security \
--message "Security fix in vX.Y.Z+1, please upgrade"
.claude/MAINTAINER_GUIDE.mdRelease is successful when:
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience