home / skills / serendipityoneinc / srp-claude-code-marketplace / mac-setup

mac-setup skill

/plugins/srp-allstaff/skills/mac-setup

npx playbooks add skill serendipityoneinc/srp-claude-code-marketplace --skill mac-setup

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
14.5 KB
---
name: mac-setup
description: Mac development environment setup and verification for SRP employees (Mac 开发环境安装配置与验证)
---

# Mac Setup for SRP

为 SRP 员工提供 Mac 开发环境的安装、配置和验证。支持智能检测已安装软件,让用户选择需要安装的组件,并在安装后进行验证检查。

## Quick Start

```
帮我配置 Mac 开发环境
Setup my Mac for SRP development
检查我的 Mac 开发环境
```

## Workflow Overview

执行此 skill 时,按以下 5 个阶段进行:

```
1. 前置检查 → 2. 智能检测 → 3. 用户选择 → 4. 执行安装 → 5. 验证检查
```

## Phase 1: Pre-requisite Check (前置检查)

### 1.1 Check Homebrew

Homebrew 是所有后续安装的前提。

```bash
# 检测 Homebrew 是否已安装
which brew
brew --version
```

**如果未安装 Homebrew:**
提示用户先安装 Homebrew,这是唯一需要手动执行的步骤(因为需要输入密码):

```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

安装完成后,配置阿里云镜像加速:
```bash
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc
```

### 1.2 Check Google Cloud Authentication (Optional)

如果用户选择安装 GKE 配置或 Telepresence,需要先完成 gcloud 认证。

```bash
# 检查 gcloud 认证状态
gcloud auth list 2>/dev/null | grep -q "ACTIVE" && echo "authenticated" || echo "not authenticated"
```

**如果未认证且用户选择了需要认证的组件:**
引导用户完成认证(会打开浏览器):
```bash
gcloud auth login
gcloud auth application-default login
```

## Phase 2: Smart Detection (智能检测)

检测以下所有组件的安装状态。使用此检测逻辑:

### Component Detection Commands

| Component | Category | Detection Command |
|-----------|----------|-------------------|
| Homebrew | Package Manager | `which brew` |
| Claude Code | AI Tools | `which claude` |
| Warp Terminal | Terminal | `ls /Applications/Warp.app 2>/dev/null` |
| Git | Version Control | `which git` |
| GitHub CLI | Version Control | `which gh` |
| Git LFS | Version Control | `which git-lfs` |
| Python 3.13 | Development | `brew list [email protected] 2>/dev/null` |
| Anaconda | Development | `ls /opt/homebrew/anaconda3 2>/dev/null \|\| ls ~/anaconda3 2>/dev/null` |
| Google Cloud SDK | Cloud CLI | `which gcloud` |
| kubectl | Cloud CLI | `which kubectl` |
| Azure CLI | Cloud CLI | `which az` |
| Oracle CLI | Cloud CLI | `which oci` |
| DigitalOcean CLI | Cloud CLI | `which doctl` |
| Terraform | DevOps | `which terraform` |
| Cursor IDE | IDE | `ls /Applications/Cursor.app 2>/dev/null` |
| Orbstack | Containers | `ls /Applications/OrbStack.app 2>/dev/null` |
| Telepresence | VPN | `which telepresence` |

### Configuration Detection

| Configuration | Detection Command |
|---------------|-------------------|
| pip mirror | `grep -q "pypi.tuna.tsinghua.edu.cn" ~/.pip/pip.conf 2>/dev/null` |
| GKE contexts | `kubectl config get-contexts 2>/dev/null \| grep -q "srp-cluster"` |
| KUBECONFIG env | `grep -q "KUBECONFIG=~/.kube/config.srp" ~/.zshrc 2>/dev/null` |
| Cursor extensions | Compare installed vs required extensions |

### Detection Script

执行以下脚本进行完整检测:

```bash
echo "=== Mac Setup Detection Report ==="
echo ""

echo "## Package Manager"
echo -n "Homebrew: "; which brew > /dev/null 2>&1 && echo "✅ Installed ($(brew --version | head -1))" || echo "❌ Not installed"
echo ""

echo "## AI Tools"
echo -n "Claude Code: "; which claude > /dev/null 2>&1 && echo "✅ Installed" || echo "❌ Not installed"
echo ""

echo "## Terminal"
echo -n "Warp Terminal: "; [ -d "/Applications/Warp.app" ] && echo "✅ Installed" || echo "❌ Not installed"
echo ""

echo "## Version Control"
echo -n "Git: "; which git > /dev/null 2>&1 && echo "✅ Installed ($(git --version))" || echo "❌ Not installed"
echo -n "GitHub CLI: "; which gh > /dev/null 2>&1 && echo "✅ Installed ($(gh --version | head -1))" || echo "❌ Not installed"
echo -n "Git LFS: "; which git-lfs > /dev/null 2>&1 && echo "✅ Installed" || echo "❌ Not installed"
echo ""

echo "## Development Environment"
echo -n "Python 3.13: "; brew list [email protected] > /dev/null 2>&1 && echo "✅ Installed" || echo "❌ Not installed"
echo -n "Anaconda: "; ([ -d "/opt/homebrew/anaconda3" ] || [ -d "$HOME/anaconda3" ]) && echo "✅ Installed" || echo "❌ Not installed"
echo -n "Orbstack: "; [ -d "/Applications/OrbStack.app" ] && echo "✅ Installed" || echo "❌ Not installed"
echo ""

echo "## IDE"
echo -n "Cursor: "; [ -d "/Applications/Cursor.app" ] && echo "✅ Installed" || echo "❌ Not installed"
echo ""

echo "## Cloud CLI"
echo -n "Google Cloud SDK: "; which gcloud > /dev/null 2>&1 && echo "✅ Installed ($(gcloud --version 2>/dev/null | head -1))" || echo "❌ Not installed"
echo -n "kubectl: "; which kubectl > /dev/null 2>&1 && echo "✅ Installed" || echo "❌ Not installed"
echo -n "Azure CLI: "; which az > /dev/null 2>&1 && echo "✅ Installed" || echo "❌ Not installed"
echo -n "Oracle CLI: "; which oci > /dev/null 2>&1 && echo "✅ Installed" || echo "❌ Not installed"
echo -n "DigitalOcean CLI: "; which doctl > /dev/null 2>&1 && echo "✅ Installed" || echo "❌ Not installed"
echo ""

echo "## DevOps Tools"
echo -n "Terraform: "; which terraform > /dev/null 2>&1 && echo "✅ Installed ($(terraform version | head -1))" || echo "❌ Not installed"
echo -n "Telepresence: "; which telepresence > /dev/null 2>&1 && echo "✅ Installed" || echo "❌ Not installed"
echo ""

echo "## Configurations"
echo -n "pip mirror config: "; grep -q "pypi.tuna.tsinghua.edu.cn" ~/.pip/pip.conf 2>/dev/null && echo "✅ Configured" || echo "❌ Not configured"
echo -n "GKE contexts: "; kubectl config get-contexts 2>/dev/null | grep -q "srp-cluster" && echo "✅ Configured" || echo "❌ Not configured"
echo -n "KUBECONFIG env: "; grep -q "KUBECONFIG" ~/.zshrc 2>/dev/null && echo "✅ Configured" || echo "❌ Not configured"
```

## Phase 3: User Selection (用户选择)

根据检测结果,向用户展示未安装的组件,让用户选择要安装的内容。

**按类别分组展示:**

1. **基础工具 (All Staff)**
   - [ ] Claude Code - AI 编程助手 (公司全员必装)
   - [ ] Warp Terminal - 现代化终端
   - [ ] Git + GitHub CLI + Git LFS - 版本控制

2. **开发环境 (Developers)**
   - [ ] Python 3.13 - 基础 Python
   - [ ] Anaconda - Python 虚拟环境管理
   - [ ] Cursor IDE - AI 增强的代码编辑器
   - [ ] Cursor Extensions - Cursor 扩展插件包
   - [ ] Orbstack - 容器运行环境

3. **云平台 CLI (Developers/DevOps)**
   - [ ] Google Cloud SDK - GCP 访问工具
   - [ ] Azure CLI - Azure 访问工具
   - [ ] Oracle CLI - OCI 访问工具
   - [ ] DigitalOcean CLI - DO 访问工具

4. **DevOps 工具**
   - [ ] Terraform - 基础设施即代码
   - [ ] Miscellaneous - telnet, iftop, mtr, node, maven, ansible, pssh

5. **配置项**
   - [ ] pip 镜像配置 - 使用清华镜像加速
   - [ ] GKE 集群配置 - 配置 K8s 访问上下文
   - [ ] Telepresence VPN - 内网访问工具

使用 AskUserQuestion 工具让用户进行多选。

## Phase 4: Installation (执行安装)

根据用户选择,按依赖顺序执行安装。

### Installation Commands

#### 基础工具

**Claude Code:**
```bash
brew install --cask claude-code
```

**Warp Terminal:**
```bash
brew install --cask warp
```
安装后提示用户加入 SRP Team: https://app.warp.dev/team/9uUrBMqrIoZ7Jj5J6qrnSN

**Git + GitHub CLI + Git LFS:**
```bash
brew install gh git git-lfs
git lfs install
```

#### 开发环境

**Python 3.13:**
```bash
brew install [email protected]
```

**Anaconda:**
```bash
brew install --cask anaconda
```

**Cursor IDE:**
```bash
brew install --cask cursor
```

**Cursor Extensions:**
安装 Cursor 扩展。扩展列表在 skill 目录的 `cursor-extensions.txt` 文件中。

执行时,Claude 应该:
1. 读取 `cursor-extensions.txt` 文件内容
2. 逐行执行 `cursor --install-extension <extension-id>`

```bash
# 示例:安装单个扩展
cursor --install-extension ms-python.python
```

**Orbstack:**
```bash
brew install orbstack
```

#### 云平台 CLI

**Google Cloud SDK:**
```bash
brew install --cask google-cloud-sdk
gcloud components install gke-gcloud-auth-plugin kubectl kustomize bq
brew install gettext
```

**Azure CLI:**
```bash
brew install azure-cli
```

**Oracle CLI:**
```bash
brew install oci-cli
```

**DigitalOcean CLI:**
```bash
brew install doctl
```

#### DevOps 工具

**Terraform:**
```bash
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
```

**Miscellaneous:**
```bash
brew install telnet iftop mtr node maven ansible pssh
```

**Telepresence:**
```bash
sudo curl -fL https://app.getambassador.io/download/tel2oss/releases/download/v2.18.0/telepresence-darwin-arm64 -o /usr/local/bin/telepresence
sudo chmod a+x /usr/local/bin/telepresence
```

#### 配置项

**pip 镜像配置:**
```bash
mkdir -p ~/.pip
tee ~/.pip/pip.conf << 'EOF'
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/

[install]
trusted-host=mirrors.aliyun.com
               pypi.ngc.nvidia.com
               pypi.tuna.tsinghua.edu.cn

no-cache-dir = true
EOF
```

**GKE 集群配置:**

前提:需要先完成 gcloud auth login

```bash
# 备份现有配置
[ -f ~/.kube/config.srp ] && mv -f ~/.kube/config.srp ~/.kube/config.srp.bak

# 设置 KUBECONFIG
export KUBECONFIG=~/.kube/config.srp
grep -q "KUBECONFIG" ~/.zshrc || echo 'export KUBECONFIG=~/.kube/config.srp' >> ~/.zshrc

# 获取集群凭证
gcloud container clusters get-credentials srp-cluster-dev-us-east1 --location us-east1 --project srpdev-7b1d3
gcloud container clusters get-credentials srp-cluster-dev-us-west1 --location us-west1 --project srpdev-7b1d3
gcloud container clusters get-credentials srp-cluster-staging-us-east1 --location us-east1 --project srpstaging
gcloud container clusters get-credentials srp-cluster-staging-us-west1 --location us-west1 --project srpstaging
gcloud container clusters get-credentials srp-cluster-production-us-east1 --location us-east1 --project srpproduct-dc37e
gcloud container clusters get-credentials srp-cluster-production-us-west1 --location us-west1 --project srpproduct-dc37e

# 重命名 context 为简短名称
kubectl config rename-context gke_srpdev-7b1d3_us-east1_srp-cluster-dev-us-east1 srp-cluster-dev-us-east1
kubectl config rename-context gke_srpdev-7b1d3_us-west1_srp-cluster-dev-us-west1 srp-cluster-dev-us-west1
kubectl config rename-context gke_srpstaging_us-east1_srp-cluster-staging-us-east1 srp-cluster-staging-us-east1
kubectl config rename-context gke_srpstaging_us-west1_srp-cluster-staging-us-west1 srp-cluster-staging-us-west1
kubectl config rename-context gke_srpproduct-dc37e_us-east1_srp-cluster-production-us-east1 srp-cluster-production-us-east1
kubectl config rename-context gke_srpproduct-dc37e_us-west1_srp-cluster-production-us-west1 srp-cluster-production-us-west1

# 设置默认 context
kubectl config use-context srp-cluster-dev-us-east1
```

## Phase 5: Verification (验证检查)

对已安装的组件进行功能验证,确保安装配置正确。

### Verification Script

```bash
echo "=== Mac Setup Verification Report ==="
echo ""
PASS=0
FAIL=0

verify() {
    local name="$1"
    local cmd="$2"
    echo -n "$name: "
    if eval "$cmd" > /dev/null 2>&1; then
        echo "✅ PASS"
        ((PASS++))
    else
        echo "❌ FAIL"
        ((FAIL++))
    fi
}

echo "## Software Verification"
verify "Homebrew" "brew --version"
verify "Claude Code" "claude --version"
verify "Warp Terminal" "[ -d '/Applications/Warp.app' ]"
verify "Git" "git --version"
verify "GitHub CLI" "gh --version"
verify "Git LFS" "git lfs version"
verify "Python 3.13" "python3.13 --version"
verify "Anaconda" "conda --version"
verify "Cursor" "[ -d '/Applications/Cursor.app' ]"
verify "Orbstack" "[ -d '/Applications/OrbStack.app' ]"
verify "Google Cloud SDK" "gcloud --version"
verify "kubectl" "kubectl version --client"
verify "Azure CLI" "az --version"
verify "Terraform" "terraform version"
verify "Telepresence" "telepresence version"
echo ""

echo "## Configuration Verification"
verify "pip mirror" "grep -q 'pypi.tuna.tsinghua.edu.cn' ~/.pip/pip.conf"
verify "KUBECONFIG env" "grep -q 'KUBECONFIG' ~/.zshrc"
echo ""

echo "## GKE Connectivity Verification"
verify "GKE contexts configured" "kubectl config get-contexts | grep -q 'srp-cluster'"
verify "GKE dev cluster access" "kubectl --context srp-cluster-dev-us-east1 get namespaces"
echo ""

echo "=== Summary ==="
echo "Passed: $PASS"
echo "Failed: $FAIL"

if [ $FAIL -gt 0 ]; then
    echo ""
    echo "⚠️  Some verifications failed. Please check the items above."
fi
```

### Detailed Verification Checks

| Component | Verification Method | Success Criteria |
|-----------|---------------------|------------------|
| Homebrew | `brew --version` | 返回版本号 |
| Claude Code | `claude --version` | 返回版本号 |
| Warp Terminal | 检查 App 目录 | /Applications/Warp.app 存在 |
| Git | `git --version` | 返回版本号 |
| GitHub CLI | `gh auth status` | 显示认证状态 |
| Git LFS | `git lfs version` | 返回版本号 |
| Python | `python3.13 --version` | 返回 3.13.x |
| Anaconda | `conda --version` | 返回版本号 |
| Cursor | 检查 App 目录 | /Applications/Cursor.app 存在 |
| Orbstack | `orb version` | 返回版本号 |
| gcloud | `gcloud auth list` | 显示 ACTIVE 账号 |
| kubectl | `kubectl cluster-info` | 返回集群信息 |
| GKE access | `kubectl get namespaces` | 返回 namespace 列表 |
| Telepresence | `telepresence version` | 返回版本号 |
| pip config | 检查配置文件 | 包含清华镜像地址 |

### Troubleshooting Guide

**问题:Homebrew 安装失败**
- 检查网络连接
- 尝试使用代理或镜像源

**问题:gcloud auth 失败**
- 确保浏览器可以正常打开
- 检查是否有公司网络限制

**问题:GKE 集群连接失败**
- 确认 gcloud auth 已完成
- 检查是否有 VPN 连接要求
- 确认账号是否有集群访问权限

**问题:Telepresence 连接失败**
- 确保 GKE 配置正确
- 检查是否已运行 `telepresence quit -s`
- 尝试重新连接: `telepresence connect --context srp-cluster-dev-us-east1`

## Reference Documentation

- 飞书文档: [Mac Setup (for SRP)](https://starquest.feishu.cn/wiki/X0dMwOQ6PiJyYbky9VKcgSlLnpc)
- Warp Team 邀请: https://app.warp.dev/team/9uUrBMqrIoZ7Jj5J6qrnSN
- Telepresence 使用指南: 参考飞书文档中的链接

## Related Skills

- `lark-docs`: 访问飞书文档获取最新配置信息
- `lark-messages`: 在飞书群组中寻求帮助