go-installer
Install and verify the Go toolchain on macOS, Linux, and Windows. Use when Go is required but not present, or when a specific Go version must be installed. Prefer system package managers (homebrew, apt, etc.) and fall back to official Go downloads when needed.
What this skill does
# Go Installer
Install or verify the Go toolchain with system package managers first, then fall back to official Go downloads when needed.
## Path Convention
Canonical install and execution directory: `~/.agents/skills/go-installer/`. Run commands from this directory:
```bash
cd ~/.agents/skills/go-installer
```
## Quick workflow
1. Check whether Go is already installed.
2. If missing, install via OS package manager (preferred).
3. If package manager is unavailable or the required version is not available, install from the official Go downloads.
4. Ensure `PATH` is updated and confirm `go version`.
## Verify
```bash
go version
```
If the command is missing, continue to installation.
## Install via package manager (preferred)
macOS (Homebrew):
```bash
brew install go
```
Linux (Debian/Ubuntu apt):
```bash
sudo apt update
sudo apt install -y golang-go
```
Linux (Fedora/RHEL/CentOS dnf):
```bash
sudo dnf install -y golang
```
Linux (RHEL/CentOS yum):
```bash
sudo yum install -y golang
```
Linux (Arch pacman):
```bash
sudo pacman -S --noconfirm go
```
Windows (winget):
```powershell
winget install --id GoLang.Go -e
```
Windows (Chocolatey):
```powershell
choco install -y golang
```
## Install from official Go downloads (fallback)
Use this when a specific version is required or no package manager is available.
Set the version explicitly (example uses Go 1.22.0):
```bash
GO_VER="go1.22.0"
```
### macOS (tar.gz, user dir)
```bash
GO_VER="go1.22.0"
ARCH="$(uname -m)"
case "${ARCH}" in
arm64) GO_ARCH="arm64" ;;
x86_64) GO_ARCH="amd64" ;;
*) echo "Unsupported arch: ${ARCH}"; exit 1 ;;
esac
TAR="${GO_VER}.darwin-${GO_ARCH}.tar.gz"
if command -v curl >/dev/null 2>&1; then
curl -LO "https://go.dev/dl/${TAR}"
else
wget -O "${TAR}" "https://go.dev/dl/${TAR}"
fi
rm -rf "${HOME}/.local/go"
mkdir -p "${HOME}/.local"
tar -C "${HOME}/.local" -xzf "${TAR}"
```
### Linux (tar.gz, user dir)
```bash
GO_VER="go1.22.0"
ARCH="$(uname -m)"
case "${ARCH}" in
aarch64) GO_ARCH="arm64" ;;
x86_64) GO_ARCH="amd64" ;;
*) echo "Unsupported arch: ${ARCH}"; exit 1 ;;
esac
TAR="${GO_VER}.linux-${GO_ARCH}.tar.gz"
if command -v curl >/dev/null 2>&1; then
curl -LO "https://go.dev/dl/${TAR}"
else
wget -O "${TAR}" "https://go.dev/dl/${TAR}"
fi
rm -rf "${HOME}/.local/go"
mkdir -p "${HOME}/.local"
tar -C "${HOME}/.local" -xzf "${TAR}"
```
### Windows (.zip)
```powershell
$GoVer = "go1.22.0"
$Arch = $env:PROCESSOR_ARCHITECTURE
switch ($Arch) {
"ARM64" { $GoArch = "arm64" }
"AMD64" { $GoArch = "amd64" }
default { throw "Unsupported arch: $Arch" }
}
$Zip = "$GoVer.windows-$GoArch.zip"
Invoke-WebRequest -Uri "https://go.dev/dl/$Zip" -OutFile $Zip
if (Test-Path C:\Go) { Remove-Item -Recurse -Force C:\Go }
tar -C C:\ -xf $Zip
```
## PATH updates
macOS/Linux (add to shell profile):
```bash
export PATH="$PATH:${HOME}/.local/go/bin"
```
Windows:
- Add `C:\Go\bin` to the system `PATH`.
## Post-check
```bash
go version
```
If the version still does not match, ensure the `PATH` order is correct and restart the shell.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.