Release

SkillDev tools

Tag a new release, push, and publish on GitHub

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Release skill

What this skill tells your AI

The instructions your AI receives, as published by yicheng47/quill in .agents/skills/release/SKILL.md and read by ahel’s review.

Create a new versioned release for Quill.

Steps

  1. Ask the user for the version number (e.g. 0.3.0) if not provided as an argument.

  2. Bump version in all three files. IMPORTANT: Do NOT use sed for version bumps. Instead:

    • Confirm you're on main and the working tree is clean (git status). If not, stop and report.
    • Read each file first with the Read tool to confirm the current version string.
    • Use the Edit tool to replace the version in package.json, src-tauri/tauri.conf.json, and src-tauri/Cargo.toml.
    • After editing, verify all three files show the correct new version.
    • Run cargo check in src-tauri/ to update Cargo.lock.
    • Run npm install --package-lock-only --ignore-scripts to update the root version in package-lock.json.
    • Check if public/foliate-js submodule has changes. If so, commit and push the submodule, then stage the updated reference.
    • Stage everything and commit with message chore: bump version to v{version}.
  3. Push the version bump commit directly to main: git push

  4. Tag: git tag -a v{version} -m "v{version}"

  5. Push the tag: git push origin v{version}

  6. Wait for the release workflow to complete: gh run list --workflow=release.yml --limit 1 --json status,conclusion,databaseId

  7. Once the workflow succeeds, draft a release message by reviewing commits since the last tag: git log $(git describe --tags --abbrev=0 HEAD^)..HEAD --oneline

  8. Categorize changes into sections: What's New, Improvements, Bug Fixes (omit empty sections).

  9. Publish the release: gh release edit v{version} --draft=false --notes "...". Include a Download section at the bottom with the .dmg filenames for Apple Silicon and Intel.

If any step fails, stop and report the error — do not continue.

Notarization Commands

  • Check notarization history:

    xcrun notarytool history --apple-id "$APPLE_ID" --password "$APPLE_PASSWORD" --team-id "$APPLE_TEAM_ID"
    
  • Check a specific submission:

    xcrun notarytool info <submission-id> --apple-id "$APPLE_ID" --password "$APPLE_PASSWORD" --team-id "$APPLE_TEAM_ID"
    
  • Verify stapling on a DMG or .app:

    stapler validate <file>
    
  • Check code signing:

    codesign -dvv <path-to-app>
    

Note: Apple credentials are in ~/.zshrc. The shell may not have them loaded — use literal values if env vars are empty.

Signals

GitHub stars
35
Forks
3
Last commit
Sep 2026
Hacker News mentions
20

ahel review

  • K1binfo
    installs-packages

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
release-yicheng47
Source
github.com/yicheng47/quill