homebrew
Skill7 starsChanged 51 days agoApache-2.0View on GitHub
Add released versions of Apache SkyWalking AI Sessionizer to its Homebrew tap, Formula/ on main in apache/skywalking-ai-sessionizer. Writes asz@VERSION from the voted packages, moves asz to the newest version, checks every formula with brew, and opens a pull request to main in this repository. Use after a version is published, or to add older released versions.
- Installs packages
- Commits and pushes
4 other projects use a version of this.
Adopted by
Most recently taken up by
- G1Joshi/Agent-Skillstheir own version, first seen Oct 13, 2026
- 0xHoneyJar/construct-gygaxtheir own version, first seen Oct 11, 2026
- tstapler/dotfilestheir own version, first seen Oct 10, 2026
- cloudposse/atmostheir own version, first seen Oct 8, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- cloudposse/atmos★ 1.4ksame name
- G1Joshi/Agent-Skills★ 15same name
- tstapler/dotfiles★ 8same name
- 0xHoneyJar/construct-gygax★ 1same name
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.
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 1 is distinctive, and 2 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 93
Stop at the first failure and tell the user.
- Very specific: line 160
Every step must pass, and each binary must print its version.
- Very specific: line 178
Only files under Formula/ may change.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Homebrew tap
Formula/ on main in this repository is the tap. It holds:
From 0.5.0 one formula installs both binaries. Before it there were two, fetching the identical
archive and the identical checksum and installing one binary each, which only invited a machine to
end up with asz of one version and the recorder of another. A version before 0.5.0 keeps the
two-formula shape it was released with, and its formulae stay as they are.
asz@VERSION.rbfor every released version from 0.5.0, andasz@VERSION.rbwithasz-claude-code@VERSION.rbfor the versions before it, which stay as they were released, keg-only, so an exact version stays installable;asz.rbfor the newest version.
asz.rb beside this file is the template. A formula installs the voted
binary package for the machine, macOS or Linux on arm64 or amd64, from the version's GitHub release,
with archive.apache.org as its mirror. That URL keeps working after the version leaves the download
site. Users run:
brew trust https://github.com/apache/skywalking-ai-sessionizer
brew tap apache/skywalking-ai-sessionizer https://github.com/apache/skywalking-ai-sessionizer
brew install apache/skywalking-ai-sessionizer/asz
brew install apache/skywalking-ai-sessionizer/asz@0.4.0Homebrew 7 loads a tap that is not its own only after brew trust, and this tap must be trusted by
its URL, because the repository is not named homebrew-skywalking-ai-sessionizer. The check below
needs no trust: it names each formula in full, which Homebrew takes as trusting that one.
The user names one version or several. Each must be released: voted, on the download site or the
archive, and its GitHub release promoted. 0.5.0 is the first version the template fits, because
it installs asz-changes, which a package before 0.5.0 does not hold. A version before 0.5.0 is in
Formula/ already, with the formulae it was released with; never write it again. This runs on
macOS with Homebrew. It changes nothing but a pull request to main in this repository.
A local proxy can break HTTPS to Apache hosts, so the commands below go around it.
1. Check the versions are released
for v in <versions>; do
for u in "https://downloads.apache.org/skywalking/ai-sessionizer/$v/" "https://archive.apache.org/dist/skywalking/ai-sessionizer/$v/"; do
curl --noproxy '*' -s -o /dev/null -w "$v $u %{http_code}\n" "$u"
done
gh release view "v$v" --repo apache/skywalking-ai-sessionizer --json isPrerelease --jq '"v'"$v"' prerelease=\(.isPrerelease)"'
doneEach version must answer 200 on one of the two sites, and its GitHub release must not be a prerelease. Otherwise stop and tell the user.
2. Branch from main
Work in a worktree, so changes in the main clone are left alone. W is a scratch directory.
git fetch origin
git worktree add -b homebrew-<versions> <scratch dir>/asz origin/main
cd <scratch dir>/asz
W=<scratch dir>/homebrew3. Download and check the packages
A formula names the sha256 of each package, so each must be the voted file, and must hold what the formula installs. A package that fails here would fail for everyone on its platform.
for v in <versions>; do
mkdir -p "$W/$v"
for p in darwin-arm64 darwin-amd64 linux-arm64 linux-amd64; do
f=apache-skywalking-ai-sessionizer-$v-bin-$p.tgz
for g in "$f" "$f.sha512"; do
curl --noproxy '*' -fsSL -o "$W/$v/$g" "https://downloads.apache.org/skywalking/ai-sessionizer/$v/$g" ||
curl --noproxy '*' -fsSL -o "$W/$v/$g" "https://archive.apache.org/dist/skywalking/ai-sessionizer/$v/$g"
done
(cd "$W/$v" && shasum -a 512 -c "$f.sha512")
tar -tvzf "$W/$v/$f" | awk '($NF == "asz" || $NF == "asz-changes") && $1 ~ /^-rwx/ {n++}
$NF == "LICENSE" || $NF == "NOTICE" {m++} $NF ~ /^licenses\/./ {l = 1}
END {if (n != 2 || m != 2 || !l) {print "missing a file the formula installs"; exit 1}}'
done
doneStop at the first failure and tell the user.
4. Write the formulae
T=.claude/skills/homebrew
for v in <versions>; do
sum() { shasum -a 256 "$W/$v/apache-skywalking-ai-sessionizer-$v-bin-$1.tgz" | cut -d ' ' -f 1; }
mkdir -p "$W/formula-$v"
for f in asz; do
sed -e "s/@VERSION@/$v/g" \
-e "s/@DARWIN_ARM64_SHA256@/$(sum darwin-arm64)/" -e "s/@DARWIN_AMD64_SHA256@/$(sum darwin-amd64)/" \
-e "s/@LINUX_ARM64_SHA256@/$(sum linux-arm64)/" -e "s/@LINUX_AMD64_SHA256@/$(sum linux-amd64)/" \
"$T/$f.rb" > "$W/formula-$v/$f.rb"
done
# Homebrew names a versioned formula's class after its file: asz@0.4.0 is
# AszAT040. keg_only keeps it from clashing with the current formula.
for c in Asz:asz; do
C=${c%%:*} V=${c%%:*}AT$(printf '%s' "$v" | tr -d .) perl -pe \
's/^class \Q$ENV{C}\E < Formula$/class $ENV{V} < Formula/; s/^( license "Apache-2\.0"\n)/$1\n keg_only :versioned_formula\n/' \
"$W/formula-$v/${c#*:}.rb" > "$W/formula-$v/${c#*:}@$v.rb"
done
grep -n '@[A-Z0-9_]*@' "$W/formula-$v"/*.rb && echo "a placeholder is left"
done
current=""
if [ -f Formula/asz.rb ]; then current=$(sed -nE 's#.*/releases/download/v([0-9.]+)/.*#\1#p' Formula/asz.rb | head -1); fi
newest=$(printf '%s\n' $current <versions> | sort -V | tail -1)
echo "current: ${current:-none}, newest: $newest"asz.rb moves only forward: to $newest, when it is one of the given
versions. Adding an older version never moves them back.
5. Check them with Homebrew
The check installs every new formula from its real GitHub release URL, and removes it afterwards. It must not touch the user's own install. If any of these is installed, stop, tell the user, and do not uninstall it:
for f in asz $(for v in <versions>; do printf 'asz@%s ' "$v"; done); do
brew list --formula "$f" >/dev/null 2>&1 && echo "$f is installed"
doneThen, in a local tap:
export HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 HOMEBREW_NO_ENV_HINTS=1
tap=aszcheck/formulae
brew tap-new --no-git "$tap"
dir=$(brew --repository "$tap")/Formula
for v in <versions>; do cp "$W/formula-$v/asz@$v.rb" "$dir/"; done
if [ "$newest" != "$current" ]; then cp "$W/formula-$newest/asz.rb" "$dir/"; fi
env -u http_proxy -u https_proxy -u all_proxy brew style "$tap"
for f in "$dir"/*.rb; do
n=$tap/$(basename "$f" .rb)
env -u http_proxy -u https_proxy -u all_proxy brew audit --strict --formula "$n"
env -u http_proxy -u https_proxy -u all_proxy brew install --formula "$n"
brew test "$n"
done
for v in <versions>; do
"$(brew --prefix "asz@$v")/bin/asz" version
"$(brew --prefix "asz@$v")/bin/asz-changes" version
doneEvery step must pass, and each binary must print its version. When asz.rb moved, the asz and
asz-changes on $(brew --prefix)/bin must print $newest, and link into the asz keg, not a
versioned one. Then remove everything the check installed, whether it passed or not:
for f in "$dir"/*.rb; do brew uninstall --formula "$tap/$(basename "$f" .rb)"; done
brew untap "$tap"6. Put them into Formula/
mkdir -p Formula
for v in <versions>; do cp "$W/formula-$v/asz@$v.rb" Formula/; done
if [ "$newest" != "$current" ]; then cp "$W/formula-$newest/asz.rb" Formula/; fi
git status --shortOnly files under Formula/ may change.
7. Open the pull request to main
git add Formula
git commit -m "Homebrew formulae for <versions>"
git push -u origin homebrew-<versions>
gh pr create --repo apache/skywalking-ai-sessionizer --base main --title "Homebrew formulae for <versions>"The commit message and the pull request carry no AI attribution: no Co-Authored-By line and no
"Generated with" line. Say in the pull request which versions were added, which version the asz
formula installs now, and that the check passed.
8. After the merge
Anyone who tapped runs brew update, then brew upgrade asz. Tell the user the
pull request link, and remove the worktree and W once it is merged.
Does 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.

