39fe248f9f
- 新增 .claude/skills/new-project/SKILL.md(标准 skill 格式) - install-skill.sh 安装时组装 SKILL.md + verify.sh,单一源无重复 - verify.sh 改用索引数组替代 declare -A,兼容 macOS bash 3.2 - log_pass/log_skip 显式 return 0,避免 set -e 下非 verbose 误退出 - README 改为 skill 优先;补全 copier.yml/scripts/template 入库
27 lines
1.5 KiB
Markdown
27 lines
1.5 KiB
Markdown
# 配置管理
|
||
|
||
> .env 规约 + 命名映射坑 + API 文档开关。每个服务用 `.env` 注入配置,**不硬编码、不提交密钥**。
|
||
|
||
- `{服务}/.env.example` 提交 git(模板);`{服务}/.env` gitignore(含密钥)
|
||
- backend/agent:`pydantic-settings` 读 `.env`,启动即校验类型,fail-fast
|
||
- frontend:Vite 读 `.env`,**仅 `VITE_` 前缀变量**注入浏览器
|
||
- 优先级:环境变量 > `.env` 文件 > 代码默认值
|
||
|
||
## 命名映射(关键坑 —— 无需自定义 alias_generator)
|
||
|
||
`.env` 用 **SCREAMING_SNAKE_CASE**(`AGENT_WS_URL`);Settings 字段用 **snake_case**(`agent_ws_url`)。字段已是 snake_case,`agent_ws_url` ↔ `AGENT_WS_URL` 正是 **pydantic-settings 默认映射**。**不要引入任何自定义 `alias_generator`** —— 旧版 `to_screaming_snake` 桥接函数已删除。
|
||
|
||
```python
|
||
class Settings(BaseSettings):
|
||
agent_ws_url: str = "ws://localhost:8001"
|
||
enable_api_docs: bool = True # dev 默认开,prod 关
|
||
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8")
|
||
# 无 alias_generator:AGENT_WS_URL → agent_ws_url 为默认行为
|
||
```
|
||
|
||
## API 文档(Swagger / OpenAPI)
|
||
|
||
- FastAPI 由 `.env` 的 `ENABLE_API_DOCS` 控制 `/docs` `/redoc` `/openapi.json`:**dev true,prod false**(关闭时三者设 `None`)
|
||
- 主要用于 backend;agent 内部 WS 服务可直接关
|
||
- 外部可替换依赖(LLM CLI 命令、skill 来源/路径)也经 `.env` 注入,不硬编码(见 `architecture.md`、`agent.md`)
|