Agent skill

Homebrew

by cloudposse in cloudposse/atmos

Prepare, verify, and submit a Homebrew/homebrew-core formula PR for atmos (or fix an existing one that was closed for missing the template).

Apache-2.0Auto-check passedDevelopment

Install Homebrew

skills CLI
$ npx skills add cloudposse/atmos --skill homebrew -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install cloudposse/atmos homebrew --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/homebrew .claude/skills/homebrew && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
homebrew
GitHub stars
1.4k
Token cost
~2.8k tokens
SKILL.md length
1,247 words
Files
1
Skills in repo
70
Repo updated
First seen
Licence
Apache-2.0

At a glance

Prepare, verify, and submit a Homebrew/homebrew-core formula PR for atmos (or fix an existing one that was closed for missing the template).

  • Development work in your project
  • SKILL.md covers Do not open a new PR to fix a…, The real PR template, AI/LLM disclosure (read this… and Commit message style (the…, plus 4 more sections
  • Calls brew, gh and openssl; reaches github.com

What it does

Homebrew is an agent skill from cloudposse/atmos. Prepare, verify, and submit a Homebrew/homebrew-core formula PR for atmos (or fix an existing one that was closed for missing the template). Covers the real PR template, the AI/LLM disclosure rules, the 50-character commit-subject limit, and how to actually run brew install --build-from-source / brew test / brew audit --strict / brew style locally without needing a full homebrew-core clone. Invoke before opening a Homebrew formula PR, when a Homebrew PR got auto-closed for missing the template or looking…

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development. It works with Homebrew. The repository describes itself as: Atmos is the open-source runtime for infrastructure — it builds, authenticates, and ships Terraform, OpenTofu, Packer, Ansible, Kubernetes, Helm, and containers the same way on… The licence is Apache-2.0.

When your agent uses it

  • Development work in your project

Example prompts

  • “/homebrew”

What it can do on your machine

Read from SKILL.md and the folder at commit fbae93f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • brew
    • gh
    • openssl
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    Also links to:

    • docs.brew.sh

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Homebrew loads about 2.8k tokens when it runs. Until then it costs about 146 tokens; SKILL.md has 1,247 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~146
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from cloudposse/atmos at commit fbae93f, republished under its Apache-2.0 licence (© cloudposse). 1,247 words, ~2,802 tokens.

Download SKILL.mdSave it as .claude/skills/homebrew/SKILL.md (or your agent's skills folder).
name
homebrew
description
Prepare, verify, and submit a Homebrew/homebrew-core formula PR for atmos (or fix an existing one that was closed for missing the template). Covers the real PR template, the AI/LLM disclosure rules, the 50-character commit-subject limit, and how to actually run brew install --build-from-source / brew test / brew audit --strict / brew style locally without needing a full homebrew-core clone. Invoke before opening a Homebrew formula PR, when a Homebrew PR got auto-closed for missing the template or looking AI-written, or when asked to update the atmos Homebrew formula.
metadata.copyright
Copyright Cloud Posse, LLC 2026
metadata.version
1.0.0

Homebrew Formula PR Workflow (atmos)

Use this skill for any change to Formula/a/atmos.rb in Homebrew/homebrew-core (a different repo than cloudposse/atmos — all gh commands below need --repo Homebrew/homebrew-core). It exists because a previous attempt got auto-closed by BrewTestBot for looking AI-generated and skipping the real template — this skill is how to not repeat that.

Do not open a new PR to fix a closed one

If BrewTestBot closes a PR with the incomplete-pr-template message, it says explicitly: "Do not open a new pull request for this." Editing the body of the existing (closed) PR to complete the template makes the bot reopen it automatically. Check state first:

bash
gh pr view <num> --repo Homebrew/homebrew-core --json state,title,body,comments

Before submitting anything, also confirm there isn't a duplicate open PR for the same formula (the template's own checklist requires this):

bash
gh pr list --repo Homebrew/homebrew-core --search "atmos in:title" --state open --json number,title,url

The real PR template

Fetch it fresh rather than assuming — it changes:

bash
gh api repos/Homebrew/homebrew-core/contents/.github/PULL_REQUEST_TEMPLATE.md --jq '.content' | openssl base64 -d -A

The template body is just the checklist — unlike atmos's own PR template, there are no ## what/## why headers. That does not mean explanation is optional: real merged homebrew-core PRs consistently open with a free-text paragraph (often with links to the upstream fix/issue) above the checklist — e.g. "Fixes #301233 by building libraries statically... Roughly similar to Fedora's layout, but they also delete the Flang RT headers..." (PR #301251). Write that explanation; just don't force it into headed sections the template doesn't ask for. The checklist itself is what BrewTestBot actually gates on. As of this writing, the checklist covers:

  • Followed the contributing guidelines?
  • Commits follow the commit style guide?
  • No other open PR for the same formula?
  • Built locally with HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>?
  • brew test <formula> passing?
  • brew audit --strict <formula> passing (or brew audit --new for a new formula)?
  • AI/LLM disclosure checkbox (see below — this is the one that sank the first attempt).

Never tick a checkbox for something you have not actually run. The template's own header says so, and BrewTestBot's heuristics for "looks AI-written" are tuned to catch exactly that.

AI/LLM disclosure (read this before writing the PR body)

Full source of truth: CONTRIBUTING.md's "Artificial intelligence" section and https://docs.brew.sh/Responsible-AI-Usage. Fetch both fresh:

bash
gh api repos/Homebrew/homebrew-core/contents/CONTRIBUTING.md --jq '.content' | openssl base64 -d -A

Key rules, and how the first attempt violated them:

  • Disclosure must be in the initial PR body, not added after the fact. The first attempt disclosed nothing at all, which is a real CONTRIBUTING.md violation, not just a checkbox omission.
  • You must review AI output before asking anyone to review it. The first attempt's body literally said "I haven't run a local brew audit... happy to iterate" — an admission of the opposite. Never submit with that framing. Do the verification first (see below), then write the PR body describing what you actually ran and what it showed.
  • Never attribute a commit to AI (no Co-authored-by/Assisted-by trailers on the formula-repo commit — this is stricter than atmos's own commit convention, which does add a Co-Authored-By trailer; do not carry that habit into a homebrew-core commit).
  • The PR author must personally answer maintainer questions and review comments going forward — this is a commitment about the human's future conduct. Confirm this with the user explicitly rather than ticking it unilaterally on their behalf; see the parent pull-request skill's general norm of not taking actions that bind the user without their sign-off.
  • Attribute actions to whoever actually did them. A first draft of the disclosure paragraph said "I built... I ran brew test..." in the human's voice, when the agent ran those commands and the human reviewed the results. Write it as: the agent ran the verification, the human reviewed the diff and results. Getting this backwards is the same kind of dishonest framing that got the original PR closed, just inverted.
  • Keep the disclosure itself short — one sentence stating the tool, plus a short list of what was actually verified. It does not need its own essay; the checklist above already covers most of what a reviewer needs.
  • Checking the disclosure box does not auto-close the PR. Verified directly against the policy doc — disclosure is a transparency requirement, not disqualifying. The "one AI-assisted PR open at a time" clause applies to non-maintainers of Homebrew core, which is unrelated to being a maintainer of the upstream project the formula packages.

Commit message style (the second thing the first attempt got wrong)

From docs.brew.sh/Formula-Cookbook#commit:

  • Subject line 50 characters or less. Check before committing: echo -n "atmos: your subject" | wc -c.
  • Format: foobar 7.3 (new formula) for new formulae, foobar 7.3 for a version bump, foobar: fix flibble matrix. for any other fix — formula name always leads.
  • If the summary can't fit in 50 characters, it's probably two commits.

The first attempt's subject (atmos: build with GOFIPS140=latest for parity with upstream releases, 68 chars) blew past this. Amend before pushing:

bash
git commit --amend -m "atmos: build with GOFIPS140=latest"
Show full SKILL.md (469 more words)Show less

Actually running brew install/test/audit/style locally

atmos (and most core formulae) installs via Homebrew's JSON API by default, so there is no local git clone of homebrew-core to edit directly — brew formula atmos only gives you a read-only cached .rb. HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source atmos on that cached file fails with "Homebrew requires formulae to be in a tap". Use a disposable local tap instead of cloning the full homebrew-core tap (large, slow):

bash
brew tap-new local/atmos-pr-test
tap_dir="$(brew --repository local/atmos-pr-test)"
cp "$(brew formula atmos)" "$tap_dir/Formula/atmos.rb"
# Apply the same edit the real PR makes, e.g.:
#   ENV["GOFIPS140"] = "latest"
$EDITOR "$tap_dir/Formula/atmos.rb"

# `no_autobump!` (and some other directives) are only valid in official taps —
# strip them for local-tap testing only; they stay untouched in the real PR.
perl -pi -e 's/^\s*no_autobump!.*\n//' "$tap_dir/Formula/atmos.rb"

# atmos is likely already installed from homebrew/core; a same-name formula
# from a different tap can't coexist. Uninstall first, restore after.
brew uninstall atmos

HOMEBREW_NO_INSTALL_FROM_API=1 HOMEBREW_NO_AUTO_UPDATE=1 \
  brew install --build-from-source local/atmos-pr-test/atmos
brew test local/atmos-pr-test/atmos
brew audit --strict local/atmos-pr-test/atmos
brew style local/atmos-pr-test/atmos

# Restore the real install and clean up — do not leave the test tap installed.
brew uninstall local/atmos-pr-test/atmos
brew install atmos   # reinstalls the official bottle from homebrew/core
rm -rf "$tap_dir"

Gotcha: false positives from the test-tap scaffolding itself. Removing no_autobump! (or other local-tap-only edits) can leave stray artifacts — e.g. a leftover blank line — that brew audit --strict/brew style will flag. Before treating a finding as a real problem, diff your test copy against the untouched original and confirm the flagged line isn't just your own scaffolding:

bash
tap_dir="$(brew --repository local/atmos-pr-test)"
diff "$(brew formula atmos)" "$tap_dir/Formula/atmos.rb"

brew style run against a bare file path (not through a tap) produces unrelated noise (missing Sorbet sigils, missing top-level doc comment, a false "duplicate method" if the real cached formula is also on disk) — always run it through the tap name (local/atmos-pr-test/atmos), not a raw path.

Writing the "why" — keep it short

Homebrew's template has no What/Why section, but a short paragraph above the checklist explaining why is normal and helpful. Real merged precedent is terse: a one-sentence fix (#299644 bbot: fix build) and a ~9-line change with a before/after example and two links (#204084, a single ENV[...] addition — the closest analog to a one-line env-var fix) both merged with no padding. Match that length, not atmos's own PR-template verbosity. A first draft of this exact PR ran to four paragraphs restating things already visible in the diff ("adds no new dependency", "the formula already requires Go") — cut anything the reviewer can see for themselves in the one-line diff. Aim for one short paragraph plus one or two links; expand only if the change is genuinely non-obvious.

Write that paragraph in ASD-STE100 (Simplified Technical English) style: short sentences, active voice, one idea per sentence, plain everyday words — a Homebrew reviewer skimming a diff, not a blog reader. (This is the opposite of atmos's own blog-post convention, which explicitly avoids STE100 choppiness — that rule is scoped to blog posts, not this.) Short sentences and short overall length reinforce each other; don't use STE100's brevity per sentence as license to add more sentences.

If you are also a maintainer of the upstream project the formula packages (e.g. Cloud Posse / atmos), say so in one clause and link to a pinned-commit permalink (not a branch) for the source-of-truth line, so it survives future edits:

https://github.com/cloudposse/<repo>/blob/<full-sha>/<path>#L<line>

Updating the PR body

bash
cat > /tmp/pr-body.md <<'EOF'
...filled-in template...
EOF
gh pr edit <num> --repo Homebrew/homebrew-core --body-file /tmp/pr-body.md

Use --body-file (see the pull-request skill's backtick-escaping gotcha — it applies here too).

  • pull-request — the analogous workflow for atmos's own PRs onto cloudposse/atmos; not applicable to homebrew-core (different template, different label/changelog rules) but the backtick-escaping gotcha for gh pr create --body applies equally here.

© cloudposse, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/homebrew of cloudposse/atmos.

Open the folder on GitHubat commit fbae93f

Compare with similar skills

Homebrew next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Homebrew compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Homebrew this skillcloudposse/atmos1.4k—~2.8kAutomated safety check: PassApache-2.0
Mole CLI Release Flowtw93/Mole70k—~2.6kAutomated safety check: PassGPL-3.0
Releasetrasta298/keifu810—~1.2kAutomated safety check: PassMIT
AnyDrag Release RoutineXueshiQiao/AnyDrag227—~2.6kAutomated safety check: PassGPL-3.0
Kt Search Releasejillesvangurp/kt-search155—~1.2kAutomated safety check: PassMIT
Full Releasegittower/git-flow-next457—~2.7kAutomated safety check: NotesCustom licence

Similar skills

  • Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.

    70k GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Release

    trasta298/keifu

    Create a new release with tag, GitHub release, and homebrew-tap update

    810 GitHub stars~1.2k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • AnyDrag Release Routine

    XueshiQiao/AnyDrag

    Runs the full AnyDrag release process end to end, from cumulative bilingual release notes through version bumping to watching CI and the Homebrew cask update.

    227 GitHub stars~2.6k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Kt Search Release

    jillesvangurp/kt-search

    A skill your agent uses when the user wants to cut, publish, tag, or create a GitHub release for kt-search, especially when the task includes version bumping, validating that commits are pushed…

    155 GitHub stars~1.2k tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Full Release

    gittower/git-flow-next

    Run the full release process end-to-end - prep, tag, CI verification, Homebrew tap, WinGet verification, website sync, and a Discussions announcement

    457 GitHub stars~2.7k tokensUpdated 1 mo ago
    DevelopmentAuto-check: notes
  • Go CLI Release Automation

    hashgraph-online/awesome-codex-plugins

    Design, implement, and review secure Go CLI release automation with versioned tags, GoReleaser, GitHub Actions, checksums, signing, provenance, changelogs, Homebrew distribution, least-privilege…

    1.3k GitHub stars~668 tokensUpdated today
    DevelopmentAuto-check passed

More from cloudposse/atmos

All 70 skills in this repo
  • Fix Log

    cloudposse/atmos

    A skill your agent uses when implementing, finishing, documenting, or reviewing a fix, repair, remediation, bug fix, debug-and-fix task, workflow fix, infrastructure fix, or any change that should…

    1.4k GitHub stars~685 tokensUpdated today
    Auto-check passed
  • Atmos Lint

    cloudposse/atmos

    Atmos Terraform linting with TFLint: standalone atmos terraform lint, component-aware config discovery and toolchain versions, TFLint rule configuration, and lifecycle hooks/CI findings.

    1.4k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Changelog

    cloudposse/atmos

    Blog post authoring for Atmos: MDX template, frontmatter, website/blog/tags.yml and authors.yml rules, problem-first framing, backtick-opening ban, optional cast embeds, and no-Go-internals leakage.

    1.4k GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Editions

    cloudposse/atmos

    Decide whether a PR's new or changed default needs edition-journal handling (pkg/edition, docs/prd/editions.md), and do the mechanical work if so: journal entries, the four-layer default check…

    1.4k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Atmos Migration

    cloudposse/atmos

    Migrate to Atmos from native Terraform, Terraform Workspaces, Terramate, Terragrunt, Make, Just, or Task; migrate tool versions from mise or Aqua CLI; migrate AWS/GCP/Azure CLI configs, Leapp…

    1.4k GitHub stars~5.1k tokensUpdated today
    Auto-check: warnings
  • PR Maintenance Loop

    cloudposse/atmos

    Start an hourly background loop that keeps the current branch's PR rebased, its addressed CodeRabbit threads resolved, its CI checks passing, its lint clean, its tests passing with adequate patch…

    1.4k GitHub stars~1.4k tokensUpdated today
    Auto-check passed

Works with

Questions about Homebrew

What does Homebrew do?

Prepare, verify, and submit a Homebrew/homebrew-core formula PR for atmos (or fix an existing one that was closed for missing the template). Homebrew is an agent skill from cloudposse/atmos. Prepare, verify, and submit a Homebrew/homebrew-core formula PR for atmos (or fix an existing one that was closed for missing the template).

When should I use Homebrew?

Homebrew fits situations like: development work in your project.

How do I install Homebrew in Claude Code?

Run `npx skills add cloudposse/atmos --skill homebrew -a claude-code`. Or copy the skill folder (.claude/skills/homebrew in cloudposse/atmos) into .claude/skills/homebrew in your project. Claude Code loads it when a task matches its description.

How do I install Homebrew in Codex?

Run `npx skills add cloudposse/atmos --skill homebrew -a codex`. Or copy the skill folder (.claude/skills/homebrew in cloudposse/atmos) into .agents/skills/homebrew in your project. Codex loads it when a task matches its description.

Can I use Homebrew in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cloudposse/atmos --skill homebrew -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/homebrew, .gemini/skills/homebrew, .github/skills/homebrew and .opencode/skills/homebrew in your project.

What does Homebrew need to run?

Going by SKILL.md and its folder, Homebrew needs the command-line tools its instructions call (brew, gh, openssl and git).

Does Homebrew access the network?

SKILL.md names 2 domains. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. As links in the text: docs.brew.sh. This is read from the text; nothing was executed.

Is Homebrew safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Homebrew use?

Homebrew is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Homebrew use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Homebrew?

Skills that share tags, products or a category with Homebrew: Mole CLI Release Flow (tw93/Mole, 70k stars), Release (trasta298/keifu, 810 stars), AnyDrag Release Routine (XueshiQiao/AnyDrag, 227 stars) and Kt Search Release (jillesvangurp/kt-search, 155 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Homebrew?

cloudposse (a GitHub organization) maintains it in cloudposse/atmos, which has 1,398 GitHub stars. The repository holds 70 skills in this directory. The repository was last updated on October 9, 2026.

Source: cloudposse/atmos on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.