📌 新手提示:还没装 Claude Code 的同学请先阅读本站《Claude Code 快速上手教程》;本文假设你已经能用 claude 命令在终端里和 AI 结对编程,现在要把它调教成"懂你项目"的老兵。

前言

用过几周 Claude Code 你会遇到同一个困惑:这个 AI 每次开工都像第一天入职——不知道你的代码规范、记不住你的偏好、每次都得重新交代。

Claude Code 官方给的答案是三个机制:

  1. CLAUDE.md:你写的"项目说明书",每次会话自动加载
  2. Auto memory:AI 自己记的"工作笔记",根据你的纠正自动积累
  3. 子代理(subagents):给 AI 配一群"专家同事",各司其职,互不干扰

本文基于 Claude Code 官方文档(https://code.claude.com/docs)编写,走完三件事:把记忆体系配好、给项目立规矩、给团队加专家。

官方文档是海外站点,国内访问需要科学上网;配置过程需要调用 Claude API(或国内的 Anthropic 兼容中转),文末脚本会带你配好。

一、CLAUDE.md:每次会话自动加载的"项目说明书"

CLAUDE.md 是纯文本 Markdown 文件,Claude Code 每次启动会话都会自动读取它——把你的约定写进去,AI 就不用每次重新问

放哪里?四个等级

级别位置管什么谁看
组织级Linux/WSL:/etc/claude-code/CLAUDE.md;macOS:/Library/Application Support/ClaudeCode/CLAUDE.md;Windows:C:\Program Files\ClaudeCode\CLAUDE.md公司标准、安全规范全公司
用户级~/.claude/CLAUDE.md你的个人偏好你所有的项目
项目级(最常用)./CLAUDE.md./.claude/CLAUDE.md项目架构、规范、工作流项目团队(随仓库提交)
本地级./CLAUDE.local.md(记得加进 .gitignore)只属于你的项目偏好只有你

优先级:加载顺序从宽到窄(组织→用户→项目→本地),越靠近你当前项目、越"后读",权重越高。

加载规则(重要)

  • 当前目录以及它的每一级上级目录里的 CLAUDE.md 都会被读到(顺序:最外层先读,离你工作目录最近的最后读)
  • 子目录里的 CLAUDE.md 按需加载——Claude 只有读到那个目录的文件时才加载,不会白占上下文
  • 单文件建议控制在 200 行以内:太长既费 token 也降低 AI 遵从率。指令越具体越好——“用 2 空格缩进"好过"代码规范点”
  • 想验证有没有加载成功:会话里输入 /context,看 Memory files 列表

快速生成:/init

在项目目录里输入 /init,Claude 会分析你的代码库、自动生成一份包含构建命令、测试指令、项目约定的 CLAUDE.md 初稿——比自己从零写强多了。在此基础上再补充 AI 自己发现不了的约定(比如"不要动 src/billing/ 下的文件结构")。

拆分与导入

  • 多文件拆分:把长篇说明按主题拆进 .claude/rules/ 目录(规范见第三节),CLAUDE.md 保持精炼
  • @ 导入:在 CLAUDE.md 里写 @README,该文件会自动并入上下文。比如你的仓库原来用 AGENTS.md(另一款 AI 工具的约定文件),直接在 CLAUDE.md 顶部写一行 @AGENTS.md 即可两套工具共用,不用重复维护
  • 代码块里不解析导入:想提路径又不想导入,用反引号包起来(`@README` 就是字面量)

二、Auto memory:让 AI 自己记笔记

Claude Code 内置自动记忆:AI 在工作中会把值得留存的发现写成笔记(放在 ~/.claude/projects/<项目>/memory/,一个 MEMORY.md 索引 + 若干主题文件),下次会话自动带上。你纠正它"这个项目的表单校验写在 src/validators/",它会自己记下来——你不用手动写 CLAUDE.md 的一条条规则

  • 默认开启;/memory 命令浏览/编辑/开关
  • 笔记是纯 Markdown,可读可改可删
  • 存储在本机,同一仓库的所有工作区共享

分工建议:CLAUDE.md 写"团队要共同遵守的显式规范"(进版本库),auto memory 让 AI 沉淀"只属于你个人的使用习惯"(不进库、不外泄)。

三、rules:按路径生效的规则

项目大了,把规则全塞进 CLAUDE.md 会膨胀。官方支持把规则按主题拆进 .claude/rules/ 目录(如 code-style.mdtesting.mdsecurity.md),而且可以按文件路径作用域加载

---
paths:
  - "src/**/*.ts"
---

# API 开发规则

- 所有 API 端点必须带输入校验
- 报错返回统一格式
  • paths 用 glob 通配:**/*.ts 表示"所有 TypeScript 文件",src/**/* 表示"src 下全部"——只有 Claude 处理匹配的文件时,这条规则才加载
  • 没有 paths 的规则文件与 CLAUDE.md 同级加载(每次会话都进上下文)
  • 好处:前端规则不干扰后端任务,上下文更省,遵从率更高

四、子代理:给团队加"专家同事"

子代理(subagent)是拥有独立对话窗口的专用 AI 助手——主对话把任务委托给它,它在自己的上下文里干活,只把结果摘要交回来。这带来两个收益:高噪声操作(跑测试、抓文档、翻日志)不污染主对话;多个子代理可以并行干活。

怎么写一个子代理

在项目目录建 .claude/agents/ 目录(用户级全局放 ~/.claude/agents/,所有项目可用),一个 Markdown 文件一个专家,frontmatter 里声明"名字 + 职责描述":

---
name: code-reviewer
description: 资深代码审查专家。写/改完代码后主动审查质量、安全与可维护性。适合让 Claude 在写完代码后调用。
tools: Read, Grep, Glob, Bash
model: inherit
---

你是一位资深代码审查员。

审查清单:
- 代码清晰可读、命名良好
- 无重复代码、错误处理完善
- 无硬编码密钥或 API Key
- 有充分的测试覆盖

按优先级输出:关键问题(必须修)/ 警告(应该修)/ 建议(可以考虑)

关键字段:

字段作用
name唯一标识,小写字母+连字符
description最关键——这是 Claude 决定"什么时候把这个任务派给它"的依据,写得越具体越容易被正确调用
tools允许使用的工具白名单(安全控制)
model用哪个模型跑(sonnet/opus/haiku/inherit)

使用:对话里直接说"用 code-reviewer 审查一下刚才的改动",或 Claude 检测到任务匹配 description 自动委派。独立上下文让它能带上大段代码不撑爆主对话。

官方文档路径:subagents 详情见 https://code.claude.com/docs/en/sub-agents(docs 里目录名随版本演进,旧版叫 subagents、新版叫 agents,以你的版本为准)。

五、组合拳:一个务实的最佳实践模板

总结一套开箱即用的组合(适用于多数组件型项目):

  1. 第一次进仓库/init 生成 CLAUDE.md 初稿 → 人工补充 3-5 条项目特有约定(构建命令、目录约定、“不要做什么”)
  2. 保持精炼:CLAUDE.md 总行数 < 200;复杂主题拆进 .claude/rules/,按路径加载
  3. 存量 AGENTS.md 仓库:CLAUDE.md 顶部 @AGENTS.md 一行迁移
  4. 配两个子代理code-reviewer(每次改完代码审查)+ 你自己场景的专家(如 docs-writertest-runner
  5. 每周末花 2 分钟看 /memory 里 auto memory 攒了什么,顺手清理

六、国内使用:API 或 base_url 怎么配

Claude Code 本身免费安装,但每次对话要消耗 Claude API 额度。国内直连官方需要海外信用卡 + 科学上网,最常见的国内方案是接 Anthropic 兼容的中转站——只需把两个环境变量指向中转站:

export ANTHROPIC_API_KEY="你的中转站Key"
export ANTHROPIC_BASE_URL="https://你的中转站地址"   # 以中转站控制台显示为准

以云间 API 中转站(https://cloudzone-api.cyou/)为例:Anthropic 兼容格式原生支持 Claude Code,CC MAX(Claude Code 专项套餐)低至官方 0.5 倍,Claude 其他模型按官方 0.4~0.6 倍起,香港节点国内直连稳定——花几分钟配好一次,之后 Claude Code 全流程无痛。文末脚本会用 Y/N 引导你完成配置。

判断方法:中转站文档说"支持 Claude Code / Anthropic 格式"即可;配好后在终端跑一句 claude,能正常对话就说明通了。

尾声

CLAUDE.md 解决"AI 不认识你",auto memory 解决"AI 记不住你",rules 解决"规则按需加载",子代理解决"一个 AI 干不过一群 AI"。这四件套配齐,Claude Code 从"聪明的实习生"变成"懂你仓库的老兵"。

再往后可以研究 hooks(代码提交前的强制检查)和 skills(按需加载的工作流技能包,官方文档都有专章)。先把今天这套用起来——每次让 AI 重复做的事,都值得写进 CLAUDE.md

配好记忆之后,别忘了给 Claude Code 配一把顺手的"模型钥匙":云间 API(https://cloudzone-api.cyou/)注册即用,CC MAX 半价起,国内直连,把配置成本一次清零。


附:一键配置脚本

不方便下载的同学可以直接复制下方完整源码,新建文本文档粘贴后改后缀为 .sh(macOS/Linux/WSL)或 .ps1(Windows)运行。也可以下载现成文件:

macOS / Linux / WSL(.sh)

#!/usr/bin/env bash
set -u
# ============================================================
#  Claude Code 进阶配置 一键脚本(macOS / Linux / WSL)
#  公开源码,欢迎审查 —— 不放心可先复制给 AI 判断
#  默认配置:云间 API 中转站(https://cloudzone-api.cyou/)
#  生成:CLAUDE.md 模板 + .claude/agents/ 子代理 + Key 配置
# ============================================================

GREEN='\033[0;32m'; YELLOW='\033[1;33m'; RED='\033[0;31m'; CYAN='\033[0;36m'; NC='\033[0m'
info()  { echo -e "${GREEN}[INFO]${NC} $1"; }
warn()  { echo -e "${YELLOW}[WARN]${NC} $1"; }
error() { echo -e "${RED}[ERROR]${NC} $1"; }
step()  { echo -e "${CYAN}[STEP]${NC} $1"; }

CLOUDZONE_URL="https://cloudzone-api.cyou"
CLOUDZONE_API_BASE="https://cloudzone-api.cyou/v1"

detect_network() {
  step "检测网络环境(国内 / 国外)..."
  if curl -fsI --max-time 5 "https://claude.ai" >/dev/null 2>&1; then
    info "可直连 claude.ai,判定为海外网络"
    echo "overseas"
  else
    warn "无法直连 claude.ai,判定为国内网络环境(将自动切换国内镜像)"
    echo "domestic"
  fi
}

check_claude() {
  step "检查 Claude Code..."
  if ! command -v claude >/dev/null 2>&1; then
    warn "未检测到 claude 命令。请先安装 Claude Code(本站《Claude Code 快速上手教程》或官方文档 https://code.claude.com/docs/en/start)后重跑本脚本。"
    return 1
  fi
  info "已安装:$(claude --version 2>&1 | head -1)"
  return 0
}

write_memory_files() {
  step "生成 CLAUDE.md 模板与子代理文件 ..."

  if [ ! -f "CLAUDE.md" ]; then
    cat > CLAUDE.md <<'MDEOF'
# 项目说明(CLAUDE.md)

> 本文件由 CleanResolver 一键脚本生成初稿。Claude Code 每次会话自动加载。
> 建议:补充构建命令、目录约定、代码规范;总行数控制在 200 行以内。

## 构建与测试
- 构建命令:____________(填你的命令,如 npm run build)
- 测试命令:____________

## 项目约定
- ____________

## 不要做
- ____________
MDEOF
    info "已生成 CLAUDE.md 模板(请填入你的项目信息)"
  else
    info "检测到已有 CLAUDE.md,跳过生成"
  fi

  mkdir -p .claude/agents
  if [ ! -f ".claude/agents/code-reviewer.md" ]; then
    cat > .claude/agents/code-reviewer.md <<'MDEOF'
---
name: code-reviewer
description: 资深代码审查专家。写/改完代码后主动审查质量、安全与可维护性。
tools: Read, Grep, Glob, Bash
model: inherit
---

你是一位资深代码审查员。

审查清单:
- 代码清晰可读、命名良好
- 无重复代码、错误处理完善
- 无硬编码密钥或 API Key
- 有充分的测试覆盖

按优先级输出:关键问题(必须修)/ 警告(应该修)/ 建议(可以考虑),并给出具体修改示例。
MDEOF
    info "已生成 .claude/agents/code-reviewer.md"
  fi

  if [ ! -f ".claude/agents/docs-writer.md" ]; then
    cat > .claude/agents/docs-writer.md <<'MDEOF'
---
name: docs-writer
description: 文档编写专家。适合总结代码、生成 README、撰写变更记录。
tools: Read, Grep, Glob, Bash
model: inherit
---

你是一位中文技术文档作者,擅长把复杂实现讲清楚:
- 先列结构再展开,多用步骤和表格
- 代码示例与当前仓库真实代码一致
- 术语首现给出通俗解释
MDEOF
    info "已生成 .claude/agents/docs-writer.md"
  fi
}

configure_api() {
  step "配置 Claude Code 的 API Key..."
  echo ""
  echo "Claude Code 每次对话需要消耗 Claude API 额度。默认推荐云间 API 中转站:"
  echo "  · Anthropic 兼容格式,原生支持 Claude Code"
  echo "  · CC MAX(Claude Code 专项套餐)低至官方 0.5 倍"
  echo "  · 香港节点国内直连,无需科学上网"
  echo ""
  echo "是否现在跳转注册并获取 API Key?"
  echo "  Y - 立即跳转至 ${CLOUDZONE_URL}"
  echo "  N - 我已有 Key(官方或第三方),自行输入"
  read -r -p "请选择 [Y/N]: " choice

  local API_KEY=""
  local BASE_URL="$CLOUDZONE_API_BASE"
  if [ "${choice:-N}" = "Y" ] || [ "${choice:-N}" = "y" ]; then
    info "正在打开浏览器..."
    if command -v xdg-open >/dev/null 2>&1; then
      xdg-open "$CLOUDZONE_URL" >/dev/null 2>&1
    elif command -v open >/dev/null 2>&1; then
      open "$CLOUDZONE_URL" >/dev/null 2>&1
    else
      warn "无法自动打开浏览器,请手动访问:$CLOUDZONE_URL"
    fi
    echo "注册后在控制台复制 Key,并确认你的中转站是 Anthropic 兼容格式。"
    read -r -p "粘贴你的 API Key: " API_KEY
    read -r -p "中转地址(直接回车用默认 ${CLOUDZONE_API_BASE}): " input_base
    [ -n "${input_base:-}" ] && BASE_URL="$input_base"
  else
    read -r -s -p "请输入你的 API Key (sk-...): " API_KEY
    echo
    echo "官方 Key 保持默认地址 https://api.anthropic.com;中转站 Key 填其 Anthropic 兼容地址。"
    read -r -p "API 地址(直接回车用默认 https://api.anthropic.com): " input_base
    BASE_URL="${input_base:-https://api.anthropic.com}"
  fi

  if [ -z "${API_KEY:-}" ]; then
    error "未输入 API Key,跳过配置。可稍后手动设置环境变量。"
    return 1
  fi

  local SHELL_RC=""
  case "$SHELL" in
    */zsh)  SHELL_RC="$HOME/.zshrc" ;;
    */bash) SHELL_RC="$HOME/.bashrc" ;;
    *)      SHELL_RC="$HOME/.profile" ;;
  esac

  info "写入环境变量到 $SHELL_RC(仅 ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL,原值备份 .bak)"
  if [ -f "$SHELL_RC" ]; then
    sed -i.bak '/ANTHROPIC_API_KEY/d; /ANTHROPIC_BASE_URL/d' "$SHELL_RC"
  fi
  {
    echo ""
    echo "# Claude Code - 由一键脚本写入"
    echo "export ANTHROPIC_API_KEY=\"$API_KEY\""
    echo "export ANTHROPIC_BASE_URL=\"$BASE_URL\""
  } >> "$SHELL_RC"

  export ANTHROPIC_API_KEY="$API_KEY"
  export ANTHROPIC_BASE_URL="$BASE_URL"

  info "配置完成!"
  echo "  API Key : ${API_KEY:0:10}********"
  echo "  Base URL: $BASE_URL"
  echo ""
  warn "新开终端窗口后永久生效,或立即执行:source $SHELL_RC"
}

main() {
  echo "============================================"
  echo "  Claude Code 进阶配置 一键脚本"
  echo "  适用于 macOS / Linux / WSL"
  echo "  默认接入:云间 API 中转站"
  echo "============================================"
  echo ""

  local NET
  NET=$(detect_network)

  if ! check_claude; then
    warn "脚本跳过安装步骤,仅生成配置模板。"
  fi

  write_memory_files

  configure_api || warn "Key 未配置,可稍后自行 export ANTHROPIC_API_KEY"

  echo ""
  echo "============================================"
  info "全部完成!"
  echo "  1. 打开 claude 会话,输入 /context 确认 Memory files 包含 CLAUDE.md"
  echo "  2. 让 AI 干活前先补全 CLAUDE.md 里的项目信息"
  echo "  3. 说'用 code-reviewer 审查'体验子代理"
  echo "============================================"
}

main "$@"

Windows(.ps1)

Windows 运行 .ps1 若提示执行策略限制:打开 PowerShell 输入 Set-ExecutionPolicy -Scope Process Bypass 后回车,再运行脚本。-Scope Process 仅对当前窗口生效,关掉即恢复,不会改动系统全局策略(系统默认限制来自安全设计,不要为了省事永久 Bypass)。

# ============================================================
#  Claude Code 进阶配置 一键脚本(Windows PowerShell)
#  公开源码,欢迎审查 -- 不放心可先复制给 AI 判断
#  默认配置:云间 API 中转站(https://cloudzone-api.cyou/)
#  生成:CLAUDE.md 模板 + .claude/agents/ 子代理 + Key 配置
# ============================================================
$ErrorActionPreference = "Stop"

function Write-Info  { Write-Host "[INFO] $args" -ForegroundColor Green }
function Write-Warn  { Write-Host "[WARN] $args" -ForegroundColor Yellow }
function Write-Err   { Write-Host "[ERROR] $args" -ForegroundColor Red }
function Write-Step  { Write-Host "[STEP] $args" -ForegroundColor Cyan }

$CLOUDZONE_URL = "https://cloudzone-api.cyou"
$CLOUDZONE_API_BASE = "https://cloudzone-api.cyou/v1"

function Detect-Network {
    Write-Step "检测网络环境(国内 / 国外)..."
    try {
        $null = Invoke-WebRequest -Uri "https://claude.ai" -Method Head -TimeoutSec 5 -UseBasicParsing
        Write-Info "可直连 claude.ai,判定为海外网络"
        return "overseas"
    } catch {
        Write-Warn "无法直连 claude.ai,判定为国内网络环境"
        return "domestic"
    }
}

function Check-Claude {
    Write-Step "检查 Claude Code..."
    if (-not (Get-Command claude -ErrorAction SilentlyContinue)) {
        Write-Warn "未检测到 claude 命令。请先安装 Claude Code(本站《Claude Code 快速上手教程》或官方文档 https://code.claude.com/docs/en/start)后重跑本脚本。"
        return $false
    }
    try { Write-Info "已安装:$(claude --version 2>&1 | Select-Object -First 1)" } catch { }
    return $true
}

function Write-MemoryFiles {
    Write-Step "生成 CLAUDE.md 模板与子代理文件 ..."

    if (-not (Test-Path "CLAUDE.md")) {
        @'
# 项目说明(CLAUDE.md)

> 本文件由 CleanResolver 一键脚本生成初稿。Claude Code 每次会话自动加载。
> 建议:补充构建命令、目录约定、代码规范;总行数控制在 200 行以内。

## 构建与测试
- 构建命令:____________(填你的命令,如 npm run build)
- 测试命令:____________

## 项目约定
- ____________

## 不要做
- ____________
'@ | Set-Content -Path "CLAUDE.md" -Encoding UTF8
        Write-Info "已生成 CLAUDE.md 模板(请填入你的项目信息)"
    } else {
        Write-Info "检测到已有 CLAUDE.md,跳过生成"
    }

    New-Item -ItemType Directory -Force -Path ".claude\agents" | Out-Null
    if (-not (Test-Path ".claude\agents\code-reviewer.md")) {
        @'
---
name: code-reviewer
description: 资深代码审查专家。写/改完代码后主动审查质量、安全与可维护性。
tools: Read, Grep, Glob, Bash
model: inherit
---

你是一位资深代码审查员。

审查清单:
- 代码清晰可读、命名良好
- 无重复代码、错误处理完善
- 无硬编码密钥或 API Key
- 有充分的测试覆盖

按优先级输出:关键问题(必须修)/ 警告(应该修)/ 建议(可以考虑),并给出具体修改示例。
'@ | Set-Content -Path ".claude\agents\code-reviewer.md" -Encoding UTF8
        Write-Info "已生成 .claude/agents/code-reviewer.md"
    }

    if (-not (Test-Path ".claude\agents\docs-writer.md")) {
        @'
---
name: docs-writer
description: 文档编写专家。适合总结代码、生成 README、撰写变更记录。
tools: Read, Grep, Glob, Bash
model: inherit
---

你是一位中文技术文档作者,擅长把复杂实现讲清楚:
- 先列结构再展开,多用步骤和表格
- 代码示例与当前仓库真实代码一致
- 术语首现给出通俗解释
'@ | Set-Content -Path ".claude\agents\docs-writer.md" -Encoding UTF8
        Write-Info "已生成 .claude/agents/docs-writer.md"
    }
}

function Configure-Api {
    Write-Step "配置 Claude Code 的 API Key..."
    Write-Host ""
    Write-Host "Claude Code 每次对话需要消耗 Claude API 额度。默认推荐云间 API 中转站:"
    Write-Host "  · Anthropic 兼容格式,原生支持 Claude Code"
    Write-Host "  · CC MAX(Claude Code 专项套餐)低至官方 0.5 倍"
    Write-Host "  · 香港节点国内直连,无需科学上网"
    Write-Host ""
    Write-Host "是否现在跳转注册并获取 API Key?"
    Write-Host "  Y - 立即跳转至 $CLOUDZONE_URL"
    Write-Host "  N - 我已有 Key(官方或第三方),自行输入"
    $choice = Read-Host "请选择 [Y/N]"

    $apiKey = ""
    $baseUrl = $CLOUDZONE_API_BASE
    if ($choice -eq "Y" -or $choice -eq "y") {
        Write-Info "正在打开浏览器..."
        try {
            Start-Process "$CLOUDZONE_URL"
        } catch {
            Write-Warn "无法自动打开浏览器,请手动访问:$CLOUDZONE_URL"
        }
        Write-Host "注册后在控制台复制 Key,并确认你的中转站是 Anthropic 兼容格式。"
    } else {
        $baseUrl = "https://api.anthropic.com"
        Write-Host "官方 Key 保持默认地址 https://api.anthropic.com;中转站 Key 填其 Anthropic 兼容地址。"
    }

    $sec = Read-Host "粘贴你的 API Key(输入时不显示字符)" -AsSecureString
    $bstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($sec)
    $apiKey = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr)
    [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($bstr)

    if ([string]::IsNullOrWhiteSpace($apiKey)) {
        Write-Err "未输入 API Key,跳过配置。可稍后手动设置环境变量。"
        return $false
    }

    $inputBase = Read-Host "API 地址(直接回车用默认 ${baseUrl})"
    if (-not [string]::IsNullOrWhiteSpace($inputBase)) { $baseUrl = $inputBase }

    # 写入用户级环境变量(永久),并导出到当前会话。原因:Claude Code 从环境变量读取 Key 与端点。
    [Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", $apiKey, "User")
    [Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", $baseUrl, "User")
    $env:ANTHROPIC_API_KEY = $apiKey
    $env:ANTHROPIC_BASE_URL = $baseUrl

    Write-Info "配置完成!"
    Write-Host "  API Key : $($apiKey.Substring(0, [Math]::Min(10, $apiKey.Length)))********"
    Write-Host "  Base URL: $baseUrl"
    Write-Host ""
    Write-Warn "新开终端窗口后永久生效(当前会话已立即生效)"
    return $true
}

Write-Host "============================================"
Write-Host "  Claude Code 进阶配置 一键脚本"
Write-Host "  适用于 Windows(PowerShell)"
Write-Host "  默认接入:云间 API 中转站"
Write-Host "============================================"
Write-Host ""

$net = Detect-Network

if (-not (Check-Claude)) {
    Write-Warn "脚本跳过安装步骤,仅生成配置模板。"
}

Write-MemoryFiles

if (-not (Configure-Api)) {
    Write-Warn "Key 未配置,可稍后自行设置 ANTHROPIC_API_KEY"
}

Write-Host ""
Write-Host "============================================"
Write-Info "全部完成!"
Write-Host "  1. 打开 claude 会话,输入 /context 确认 Memory files 包含 CLAUDE.md"
Write-Host "  2. 让 AI 干活前先补全 CLAUDE.md 里的项目信息"
Write-Host "  3. 说'用 code-reviewer 审查'体验子代理"
Write-Host "============================================"