release-codexbar
Skill76 starsChanged 15 days agoMITView on GitHub
CodexBar release: versioning, notarization, appcast, Homebrew, post-release bump.
- Reads credentials
2 other projects use a version of this; 1 new project in the last 4 weeks, against 0 the 4 before.
Adopted by
Surging: 1 new project took it in the last 4 weeks, none the 4 weeks before.thin data
Most recently taken up by
- Richard-Yang0130/vibe-islandword for word, first seen Jun 18, 2026
- steipete/CodexBarword for word, first seen Jun 18, 2026
Other versions2 projects use a version of this.
Word for word · 2
- steipete/CodexBar★ 23k100% same
- Richard-Yang0130/vibe-island★ 4100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository6 other files it gives its agents.
- AGENTS.mdAGENTS.md
- docs/claude.mdCLAUDE.md
- docs/llms.txtllms.txt
- codexbar-git-workflowSkill
- codexbarSkill
- qa-testSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. About 0 are common, 8 are distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use for releasing signed/notarized macOS apps, especially repos with Sparkle appcasts and Homebrew casks.
- Distinctive: line 13
Check repo state, current version, latest tag/release, and release docs/scripts.
- Distinctive: line 15
Prefer the repo release script.
- Distinctive: line 16
Never print key material. Keep 1Password references and local key paths as references only.
- Very specific: line 21
Use $one-password for secret handling.
- Very specific: line 26
keep all three fields from the same 1Password item.
- Very specific: line 43
Run with op run --account my.1password.com --env-file <file> -- <script>, then delete the temp env file.
- Very specific: line 69
If notarization fails with 401 Unauthenticated, rerun using all three App Store Connect fields from the 1Password item above.
- Very specific: line 71
If widget metadata generation times out, CODEXBAR_WIDGET_METADATA_TIMEOUT_SECONDS=600 is a known-good floor.
- Very specific: line 81
If the workflow fails only in update-homebrew-tap with GitHub API rate limiting, the CLI assets may already be uploaded.
- Distinctive: line 117
Update the cask when app zip assets exist.
- Distinctive: line 123
Create/push tag and GitHub release through the release script.
- Distinctive: line 124
Verify appcast points to the new GitHub release asset with signature and length.
- Distinctive: line 125
Update/push the Homebrew cask if the app zip changed.
- Very specific: line 129
Commit, push, then pull --ff-only.
- Very specific: line 131
Check no release/notary/op temp sessions or temp env files remain.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CodexBar Release
Use for releasing signed/notarized macOS apps, especially repos with Sparkle appcasts and Homebrew casks.
Start
- Work from the app repo unless asked otherwise.
- Check repo state, current version, latest tag/release, and release docs/scripts.
- Confirm
CHANGELOG.mdis complete, user-facing, deduped, and dated for the release. - Prefer the repo release script; patch small script/test blockers instead of bypassing the release path.
- Never print key material. Keep 1Password references and local key paths as references only.
- Load
$release-privateif it exists before resolving Peter-owned credential locators.
Key Material
Use $one-password for secret handling. op only in tmux/persistent shell; no broad env, set, export -p, or secret scans.
Known App Store Connect shape:
- fields:
private_key_p8,key_id,issuer_id - keep all three fields from the same 1Password item; do not mix with stale values from
~/.profile - resolve Peter-owned item refs from
$release-private
Known Sparkle key:
- resolve the private key file from
$release-private - pass as
SPARKLE_PRIVATE_KEY_FILE
Safe env file pattern:
APP_STORE_CONNECT_API_KEY_P8=<1Password ref from release-private>
APP_STORE_CONNECT_KEY_ID=<1Password ref from release-private>
APP_STORE_CONNECT_ISSUER_ID=<1Password ref from release-private>
SPARKLE_PRIVATE_KEY_FILE=<path from release-private>Run with op run --account my.1password.com --env-file <file> -- <script>, then delete the temp env file.
CodexBar
Paths:
- repo:
~/Projects/codexbar - release script:
Scripts/release.sh - signing/notarization:
Scripts/sign-and-notarize.sh - appcast:
Scripts/make_appcast.sh,appcast.xml - release assets:
CodexBar-macos-universal-<version>.zip,CodexBar-macos-universal-<version>.dSYM.zip - packaged app:
CodexBar.app - version file:
version.env - changelog:
CHANGELOG.md - Homebrew tap:
~/Projects/homebrew-tap - cask:
~/Projects/homebrew-tap/Casks/codexbar.rb - formula:
~/Projects/homebrew-tap/Formula/codexbar.rb - CLI release workflow:
.github/workflows/release-cli.yml
Normal release:
tmux new-session -d -s codexbar-release 'op run --account my.1password.com --env-file /tmp/codexbar-release-op.env -- Scripts/release.sh'
tmux attach -t codexbar-releaseIf notarization fails with 401 Unauthenticated, rerun using all three App Store Connect fields from the 1Password item above. Mismatched key_id / issuer_id from ~/.profile can cause this.
If widget metadata generation times out, CODEXBAR_WIDGET_METADATA_TIMEOUT_SECONDS=600 is a known-good floor.
CodexBar CLI tarballs are not produced by Scripts/release.sh itself. The GitHub release event triggers .github/workflows/release-cli.yml, which builds and uploads:
CodexBarCLI-v<version>-macos-arm64.tar.gzCodexBarCLI-v<version>-macos-x86_64.tar.gzCodexBarCLI-v<version>-linux-aarch64.tar.gzCodexBarCLI-v<version>-linux-x86_64.tar.gz- matching
.sha256files
If the workflow fails only in update-homebrew-tap with GitHub API rate limiting, the CLI assets may already be uploaded. Verify assets live, then update Formula/codexbar.rb manually from the tarball checksums.
Verify
Release is not done until the published chain checks out:
gh release view v<VERSION> --json tagName,name,isDraft,isPrerelease,url,assets,body
Scripts/check-release-assets.sh v<VERSION>
python3 - <<'PY'
import xml.etree.ElementTree as ET
ns={'sparkle':'http://www.andymatuschak.org/xml-namespaces/sparkle'}
root=ET.parse('appcast.xml').getroot()
item=root.find('channel').find('item')
enc=item.find('enclosure')
print(item.findtext('title'))
print(item.findtext('sparkle:version', namespaces=ns))
print(item.findtext('sparkle:shortVersionString', namespaces=ns))
print(enc.attrib.get('url'))
print(enc.attrib.get('length'))
print(bool(enc.attrib.get('{http://www.andymatuschak.org/xml-namespaces/sparkle}edSignature')))
PY
codesign --verify --deep --strict --verbose=2 CodexBar.app
spctl --assess --type execute --verbose CodexBar.appFor Homebrew:
shasum -a 256 CodexBar-macos-universal-<VERSION>.zip
cd /Users/steipete/Projects/homebrew-tap
python3 .github/scripts/update_formula.py --formula codexbar --tag v<VERSION> --repository steipete/CodexBar --artifact-template 'CodexBarCLI-{tag}-{target}.tar.gz' --target-aliases 'darwin_arm64=macos-arm64,darwin_amd64=macos-x86_64,linux_arm64=linux-aarch64,linux_amd64=linux-x86_64'
brew fetch --cask --force --retry codexbar
brew fetch --formula --force --retry steipete/tap/codexbarUpdate the cask when app zip assets exist. Update the formula only when standalone CLI tarballs for that version exist.
Tap audit can be noisy from unrelated formulae; keep evidence specific to the app cask.
Closeout
- Create/push tag and GitHub release through the release script.
- Verify appcast points to the new GitHub release asset with signature and length.
- Update/push the Homebrew cask if the app zip changed.
- Bump the app repo to next patch
Unreleased:version.env: nextMARKETING_VERSION, nextBUILD_NUMBERCHANGELOG.md: top## <next> — Unreleased
- Commit, push, then pull
--ff-only. - Restart the local app from the packaged bundle and verify the running bundle version.
- Check no release/notary/op temp sessions or temp env files remain.
CodexBar restart:
pkill -x CodexBar || pkill -f CodexBar.app || true
cd "$(git rev-parse --show-toplevel)"
open -n CodexBar.app
/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' CodexBar.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' CodexBar.app/Contents/Info.plistDoes it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

