원클릭으로
code-review
按 ATP 项目约定对一组改动做 code review(命名 / 分层 / 装饰器顺序 / 响应格式 / from __future__ / token 经济性 / 安全),输出按文件聚合 + 必修 / 建议 / 可忽略三档分级的报告。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
按 ATP 项目约定对一组改动做 code review(命名 / 分层 / 装饰器顺序 / 响应格式 / from __future__ / token 经济性 / 安全),输出按文件聚合 + 必修 / 建议 / 可忽略三档分级的报告。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | code-review |
| description | 按 ATP 项目约定对一组改动做 code review(命名 / 分层 / 装饰器顺序 / 响应格式 / from __future__ / token 经济性 / 安全),输出按文件聚合 + 必修 / 建议 / 可忽略三档分级的报告。 |
用户说要"review / 评审 / 审一下 / 检查一下"代码、PR、commit、改动;或者你刚做完一组改动想自检。 典型触发词:「review 一下我的改动」「帮我审一下这个 PR」「检查这段代码有没有问题」。
确认(缺哪个问哪个):
git diff / git diff --staged)/ 某个 commit / 某个分支 vs main / 用户指定的文件列表""" ... """ 描述 + 作者: yandc + 创建时间: YYYY-MM-DD(参考 app/models/bug.py)。新文件无 docstring 直接 ❌ 必修。from __future__ import annotations:app/agents/** 下所有 .py 文件必须包含。其他目录推荐但不强制。utils.py / helpers.py / tools.py(app/utils/ 已经是聚合目录,里面文件可以叫 permission.py / crypto.py)。app.*,组间空行,组内字母序(项目大体如此,PEP 8)。mypy --strict)。from app.utils.debug import logs(agents)或 logging.getLogger(__name__)(routes / services);禁用 print(if __name__ == "__main__" 的脚本除外)。app/routes/)flask_smorest.Blueprint + MethodView,不要裸 @bp.route + 函数。<resource>_blp,并保留 <resource>_bp = <resource>_blp。@xxx_blp.route → @xxx_blp.response / @xxx_blp.alt_response → @login_required → @check_project_permission(...)。return jsonify({"code": 0, "data": ..., "message": "..."});失败 return jsonify({"code": 1, "message": ...}), 500。不要返回裸 dict,不要用 success: true。try/except + db.session.rollback()。g.get('current_user'),不再次解析 token。app/flask_app.py 的 create_app() 里 api.register_blueprint(...)。/api/projects/<int:project_id>/<resource>,全局接口才用 /api/<resource>。app/models/)BaseModel,不要重复声明 id / created_at / updated_at。__tablename__ 复数 snake_case。comment="..." 中文注释,状态 / 优先级类字符串列出可选值。to_dict() 中 datetime 用 .strftime("%Y-%m-%d %H:%M:%S"),JSON 字段 or [] / or {} 兜底。app/migrations/<verb>_<scope>_migration.py,且幂等可重入(先查 INFORMATION_SCHEMA 再 ALTER)。app/schemas/)Schema,必填 required=True,可选 load_default=...,不要混用 missing / default。metadata={"description": "..."}(Swagger 文档可见)。app/agents/business/)from __future__ import annotations。xxx_agent.py),类名 XxxAgent 继承 BaseAgent。name / output_schema / async def _process()。execute() / validate_output()。if state.input_data.get("mock"): 直接返回 fake + state.metadata["model_used"] = "mock"。await self._call_llm(...),不要直接 litellm.completion / openai.chat... —— 绕过 ModelRouter 等于让 routing_rules.yaml 失效。task_id / correlation_id / workflow_id(不可变字段)。app/agents/business/__init__.py 显式 import + 加 __all__。_process 内 import。app/agents/workflows/)<name>_workflow + build_<name>_orchestrator + __all__。_xxx(state) -> bool,只读 state、无副作用。client/src/)<script setup>(Composition API),不要用 Options API。@/api/<resource>,不要在 view 里 import axios。code,view 里看 res.data。import { Xxx } from '@element-plus/icons-vue'。client/src/router/index.js 集中注册,需登录的页加 meta: { requiresAuth: true }。recording_agent 等)直接回放,不再调 LLM。MYSQL_PASSWORD / SECRET_KEY / AI_ENCRYPTION_KEY 走 .env)。text(...) + bind params,不要 f-string 拼 SQL。app.run(debug=True) 不要进生产。按此结构产出报告(Markdown):
## Code Review
### 总览
- 范围:<git diff / 文件列表>
- 改动:N 个文件 / +X / -Y 行
- 结论:✅ 可合并 / ⚠ 需修改 / ❌ 必须修改
### 必修(阻断合并)
1. **<file>:<line>** — <一句话问题>
<代码片段>
建议:<修改后片段>
### 建议(合入后跟进)
1. ...
### 可忽略(仅记录)
1. ...
### 漏检风险
- <如果某些改动需要数据库 migration / 文档同步 / 前后端联动校验,但 PR 没带,列在这里>
git diff / git diff --staged / git diff <base>...HEAD 拿到改动(按用户指定范围)。flask_app.py),单独列在「漏检风险」段,不要混进必修。在 app/agents/business/ 新增一个业务 Agent(继承 BaseAgent,含 name / output_schema / async _process / mock 模式),并在 business/__init__.py 导出,遵循双词命名 + from __future__ annotations + ModelRouter 路由约定。
在 ATP 后端新增一个 ORM 模型(继承 BaseModel,含 id/created_at/updated_at),并写一次性 migration 脚本到 app/migrations/,更新 README 数据库表清单。
在 ATP 后端新增一个 RESTful 接口(flask-smorest MethodView + Marshmallow Schema + login_required + check_project_permission + service 分层),自动按项目目录约定落位并在 flask_app.py 注册蓝图。
在 client/src/views/ 新增一个 Vue 3 + Element Plus 页面,配套 client/src/api/ 接口模块,并在 client/src/router/index.js 注册路由(含 requiresAuth 守卫)。
在 app/agents/workflows/ 新增一条 LangGraph 风格工作流(WorkflowDefinition + WorkflowEdge + 条件边 + build_xxx_orchestrator 工厂),仅组合现有业务 Agent,不写业务逻辑。
给 ATP 后端的 service / engine / agent / route 模块补 pytest 测试,按"正常 / 边界 / 异常"三类组织 TestXxx 类,必要时用 unittest.mock + Flask app context + sqlite in-memory,落位到 app/tests/。