df48c36422
把规则从原 ppt-gen 项目泛化为通用脚手架,覆盖 19 个文件: - ddd/architecture/design-discipline/error-codes/communication-* 等: 领域术语、错误码、消息示例、扩展点、状态流统一为「订单」示范域 - agent-dag/agent.md/agent-concurrency/agent-llm-*:DAG 节点、配置、并发、 LLM 适配从「对话→预览→生成→截图→合成」改为「intake→process→validate→finalize」 - backend-db:Session 实体/状态机/ORM/仓储/checkpoint 对齐新流水线 - 移除幻灯片专属依赖与产物:agent 去 playwright/python-pptx, Dockerfile 去 Chromium 系统库,.gitignore 去 *.pptx - 保留合法通用项:ANSI(PTY 处理)、Playwright(E2E 测试工具)、Gemini CLI(真实 provider) 验证:gemini-cli/openai-api 两变体生成退出 0,生成项目零 PPT 残留, backend/agent 骨架均可 import 运行。
1.5 KiB
1.5 KiB
全局约定
命名规范 + 禁 print/console + 注释 + 包管理概览。
命名规范(已定)
不是"全部 snake":各随语言生态,边界(wire)统一为 snake。
| 范围 | 命名 | 强制 |
|---|---|---|
| Python(backend+agent) | snake_case 变量/函数、PascalCase 类、UPPER_SNAKE 常量 | ruff N(pep8-naming) |
| 前端 TS | camelCase 变量/函数、PascalCase 组件/类型 | eslint naming-convention |
| 通信线 JSON 契约 | snake_case | 契约源 Pydantic(snake),后端零映射 |
- Python 字段
agent_ws_url↔ 环境变量AGENT_WS_URL为 pydantic-settings 默认映射,无需alias_generator(见config.md) - 旧文档中"Python camelCase"与
to_screaming_snake描述已作废,一律按上表
禁 print / console
- 禁止
print()(Python)和console.log()(TS):统一用各层 logger - Python 用
from loguru import logger,禁用 stdliblogging - ruff
T20(Python)/ eslintno-console(TS,允许 warn/error)强制
注释
- 不写无意义注释;WHY 不明显时才写注释
其他约定
- 每次会话/请求使用独立 UUID 工作目录:
{WORK_DIR}/{uuid}/(WORK_DIR经 .env 注入)
包管理概览
| 目录 | 工具 | 锁文件 |
|---|---|---|
backend/ |
uv | uv.lock |
agent/ |
uv | uv.lock |
frontend/ |
pnpm | pnpm-lock.yaml |
锁文件必须提交 git,保证环境一致性。CI 用 --frozen/--frozen-lockfile 安装。各目录详细命令见对应服务规则。