بنقرة واحدة
release
Full SessionFlow release — build signed app, notarize, create DMG, commit, tag, push, GitHub release
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Full SessionFlow release — build signed app, notarize, create DMG, commit, tag, push, GitHub release
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | release |
| description | Full SessionFlow release — build signed app, notarize, create DMG, commit, tag, push, GitHub release |
| user_invocable | true |
| disable-model-invocation | true |
Usage: /release — creates a release with today's date as the marketing version (e.g. 2026.4.10).
SessionFlow uses date-based versioning: YYYY.M.D. The build number auto-increments independently.
git status --porcelain
If dirty (uncommitted changes), stop and tell the user to commit or stash first.
git log --oneline $(git describe --tags --abbrev=0)..HEAD
Collect all commits since the last tag — used to write the changelog.
CHANGELOG.md to see the format## [YYYY.M.D] - YYYY-MM-DD section at the top (below the header, above the previous version)### Added, ### Changed, ### Fixed — only include sections that have entries**), no italic (_), no other markdown inside bullet text./build_app.sh --release
The --release flag:
Release configuration (not Debug)./release/SessionFlow.app (separate from debug builds in ./)The script sets the marketing version to today's date and bumps the build number automatically.
For same-day rebuilds (version already matches today), use:
./build_app.sh --release current
Confirm the output says the correct version (e.g. version 2026.4.10 (build 750) is ready in ./release/).
./notarize.sh "release/SessionFlow.app"
This submits the signed app to Apple's notary service, waits for approval, and staples the notarization ticket. Takes 1-5 minutes typically.
Requires keychain credentials stored under profile "SessionFlow" (one-time setup by the user).
For same-day suffix releases, set the override:
DMG_VERSION_OVERRIDE="YYYY.M.D-N" APP_SOURCE_OVERRIDE="./release/SessionFlow.app" ./create_dmg.sh
For normal releases:
APP_SOURCE_OVERRIDE="./release/SessionFlow.app" ./create_dmg.sh
The DMG is created in dmg_output/SessionFlow-{VERSION}.dmg.
./notarize.sh "dmg_output/SessionFlow-{VERSION}.dmg"
The DMG also needs its own notarization ticket stapled.
The ZIP contains the notarized .app from ./release/ (not the DMG):
(cd release && zip -r "../SessionFlow-{VERSION}.zip" "SessionFlow.app" -q)
The ZIP is created in the project root.
Normal release (new version today):
v{VERSION} (e.g. v2026.4.10)SessionFlow-{VERSION}.dmg, SessionFlow-{VERSION}.zipSame-day rebuild (version matches an existing tag):
git tag -l "v{VERSION}-*"v{VERSION}-{N} (e.g. v2026.4.10-2)SessionFlow-{VERSION}-{N}.dmg, SessionFlow-{VERSION}-{N}.zipStage only the project file (version bump). CHANGELOG was already committed in step 2.
git add SessionFlow.xcodeproj/project.pbxproj
git commit -m "chore: release version {VERSION}
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>"
git tag -a {TAG} -m "Release version {VERSION} (build {BUILD})"
git push origin main --tags
gh release create {TAG} \
"dmg_output/SessionFlow-{ARTIFACT_LABEL}.dmg" \
"SessionFlow-{ARTIFACT_LABEL}.zip" \
--title "SessionFlow {TAG} (build {BUILD})" \
--notes "RELEASE_NOTES"
Release notes = the new CHANGELOG section content, plain text, no markdown formatting.
Tell the user the release URL returned by gh release create.
--release — Debug builds lack Developer ID signing and will fail notarization.app bundle, not the .dmg filegit add -A — only stage project.pbxproj (CHANGELOG is committed separately)dmg_output/, ZIP is in the project root