원클릭으로
release
Determine the next version, update the marketing site, and run the full release pipeline.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Determine the next version, update the marketing site, and run the full release pipeline.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | release |
| description | Determine the next version, update the marketing site, and run the full release pipeline. |
Cut a new release of Clearly. Determines the version from git history, updates the marketing site, and runs the release script.
.env exists in the project root. If it does not, stop and tell the user:
"Missing .env file. Copy .env.example to .env and fill in APPLE_TEAM_ID, APPLE_ID, and SIGNING_IDENTITY_NAME."AC_PASSWORD works. If it does not, stop and tell the user to run:
xcrun notarytool store-credentials "AC_PASSWORD" --apple-id "$APPLE_ID" --team-id "$APPLE_TEAM_ID" --password "<app-specific-password>"
git status --porcelain). If there are uncommitted changes, stop and tell the user to commit or stash first.main branch. If not, stop and tell the user to switch to main first.git tag -l 'v*' | sort -V | tail -1
git log <latest_tag>..HEAD --oneline --format='%s'
feat: or feat( → minor bump (e.g. 1.1.2 → 1.2.0)fix:, chore:, docs:, or similar → patch bump (e.g. 1.1.2 → 1.1.3)BREAKING CHANGE or uses a !: suffix → ask the user what version to usemcp__conductor__AskUserQuestion to ask:
Always confirm the version before proceeding. Use mcp__conductor__AskUserQuestion:
If the user picks "Use a different version", ask them for the version number. If they pick "Cancel", stop.
CHANGELOG.md has an ## [Unreleased] section with content (bullet points).## [Unreleased] section is empty or missing, draft entries from commits since the last tag:
mcp__conductor__AskUserQuestion.## [Unreleased] to ## [VERSION] - YYYY-MM-DD (today's date).## [Unreleased] section above it.project.yml. Update BOTH MARKETING_VERSION entries (main app target and QuickLook extension target) to the new version.website/index.html. Find the line containing class="requires" and replace the version:
<p class="requires">v<VERSION> · Requires macOS Sonoma or later</p>
git add project.yml website/index.html CHANGELOG.md
git commit -m "Update marketing site version to v<VERSION>"
git push
./scripts/release.sh <VERSION>
This handles: xcodegen → archive → export → DMG → notarize → staple → git tag → appcast → push → GitHub Release.
Let it run to completion. If it fails, report the error output to the user and stop. Do NOT retry automatically.
After the Sparkle release succeeds, ask the user if they also want to submit to the App Store. Use mcp__conductor__AskUserQuestion:
If yes:
Before running the release script, generate and output three blocks of text for App Store Connect. Output as raw, unformatted plain text (no markdown formatting, no code fences) so the user can copy/paste directly into App Store Connect.
What's New in This Version — Read all entries from CHANGELOG.md from v1.0.0 through the current release version. Consolidate into a single list using • bullets. Each entry: feature name em-dashed with a short description. Keep it punchy and user-facing. This is the cumulative view for the App Store listing (the release script sets the per-version "What's New" automatically — this cumulative version is for the user to paste if they prefer it).
Promotional Text (170 characters max) — One sentence that captures what makes Clearly different. Tone: confident, no fluff.
Description — Full App Store description. Structure:
Label each block clearly so the user knows which field to paste into.
./scripts/release-appstore.sh <VERSION>
This handles: strip Sparkle from project → archive → export → upload to App Store Connect → wait for build processing → create version → set "What's New" from CHANGELOG.md → attach build → submit for App Review. The entire flow is automated.
If it fails, report the error and stop. Do NOT retry automatically. Note: if the failure occurs after upload (during API submission), the build is already uploaded — tell the user they can finish manually in App Store Connect.
Ensure all commits are on the remote:
git push
Tell the user:
https://github.com/Shpigford/clearly/releases/tag/v<VERSION>.env is missing or the working tree is dirty