← ClaudeAtlas

env-doctorlisted

项目跑前环境配置体检:检测缺失的 .env 文件、对比 .env.example 找出未配置的 key 和空值 key,提前报警别等运行时炸。当用户说「体检环境 / 检查 env / .env 缺了什么 / 跑前配置检查 / 环境变量有没有配好」时触发。
YuAICode/ai-skills · ★ 1 · AI & Automation · score 72
Install: claude install-skill YuAICode/ai-skills
# env-doctor — 环境配置体检 项目跑前先体检,缺啥提前报,别等运行时炸一脸。 ## 何时触发 用户说以下任意一种: - "体检环境 / 检查 env / 看看 env 配好没" - ".env 缺了什么 / 环境变量有没有配好" - "跑前配置检查 / 帮我检查一下环境配置" - "为什么程序读不到环境变量" ## 用法 1. 跑体检脚本(纯 bash,无外部依赖): ```bash bash <skill>/bin/check-env.sh [项目目录] # 项目目录缺省 = 当前目录 # 例:bash env-doctor/bin/check-env.sh ~/my-project ``` 2. 脚本自动识别模板文件(.env.example / .env.sample / .env.template)并输出: - 有模板没有 .env → 警告,给出 `cp` 命令 - 有模板有 .env → 列出**缺失的 key** 和**值为空的 key** - 无缺失 → 配置完整提示 3. 根据输出给用户中文说明: - **缺失 key**:在 .env.example 里有,但 .env 里没有该行 - **空值 key**:key 存在但等号右侧为空(如 `DB_PASSWORD=`) - 建议编辑 .env 补全后再次运行体检确认 4. 常见坑提醒: > 有些项目(如 Go、Java、C)不会自动加载 .env 文件。 > 跑程序前需手动导入: > ```bash > set -a; source .env; set +a > ``` > 只在当前 shell 生效;新终端或子进程需重新导入。 ## 退出码约定 | 退出码 | 含义 | |--------|------| | `0` | 配置完整,或无模板可对比 | | `0` | 有模板但 .env 缺失(警告,不阻断) | | `2` | 存在缺失 key 或空值 key,需用户补全 | | `1` | 脚本本身出错(目录不存在等) | ## 硬规则 - **只读不改**:脚本只读取 .env 和模板文件,绝不修改任何文件(除非用户明确要求补全)。 - **不臆造 key 含义**:不猜测 key 该填什么值,只列出缺失和空值;若用户问某个 key 怎么填,结合项目上下文作答。 - **不联网、不扫历史**:纯本地体检。 ## 边界 - 只解析 `KEY=VALUE` 格式的行;不处理 `export KEY=VAL`(export 前缀)的 shell 脚本风格(可扩展)。 - 不检测 .env 里多余的 key(只看 .env.example 里有的)。 - 不验证值的格式/有效性(如 URL 格式、token 长度),只看是否为空。