Files
Nexus/.cursor/skills/requesting-code-review/SKILL.md
T
Your Name cdd0be328a fix: 六轮深度扫描 — 47项Bug修复、安全加固、死代码清理
Critical runtime bugs:
- terminal.html WebSSH完全不可用(URL前缀/JSON解析/Content-Type三处错误)
- servers.py路由遮蔽:/logs被/{id}拦截,3个前端页面同步日志查询失败
- scripts.html startExecPoll()→startExecPolling(),长任务快速执行崩溃
- agent.py {value!r!s:.50}格式串非法,agent发非数值时ValueError
- alerts.html d.daily.reduce()无null检查,API返回空数据时TypeError

Resource leak / stability:
- websocket.py僵尸连接未关闭TCP,文件描述符泄漏
- websocket.py _last_alert_time字典无限增长(加1小时过期清理)
- asyncssh_pool.py全忙时超过MAX_CONNECTIONS无限增长
- self_monitor.py Telegram告警无冷却,宕机时每30秒刷屏
- schedule_runner.py一次性调度执行超60秒会重复触发
- 限速脚本EXPIRE每次重置窗口可绕过(改用Lua原子脚本)

Security:
- JWT access token加token_version声明,改密码后旧token立失效(零宽限)
- INSTALL_MODE导入时常量→动态函数,安装后JWT认证不再残留禁用
- install.py /lock端点加管理员存在性验证,防止阻断安装
- ServerUpdate schema移除connectivity只读字段,防止伪造连接状态

Frontend fixes:
- doExec()缺r.ok检查、commands.html null检查
- _server_to_dict()补last_checked_at+ssh_key_public
- _field_match()逗号cron表达式修复
- alerts类型显示、SSH会话名称、搜索高亮定位
- 一次性/循环定时任务(run_mode+fire_at+自动禁用)

Dead code removed (400+ lines):
- SyncService batch_push/_push_single等5个方法(零调用者)
- 5个未使用schema(SyncCommands/SyncConfig/SyncSftp/FileDeploy/PaginatedResponse)
- 6个零调用service方法、3个无前端API端点
- 4个未使用import

Schema migrations:
- push_schedules: run_mode + fire_at列,cron_expr改NULL
- servers: 7个新列 + ssh_key_private/public VARCHAR(500)→TEXT

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-24 16:26:40 +08:00

104 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: requesting-code-review
description: 完成任务、实现重要功能或合并前使用,用于验证工作成果是否符合要求
---
# 请求代码审查
派遣代码审查子代理,在问题扩散之前发现它们。审查者获得的是精心组织的评估上下文——绝不是你的会话历史。这样可以让审查者专注于工作成果而非你的思考过程,同时保留你自己的上下文以便继续工作。
**核心原则:** 早审查,勤审查。
## 何时请求审查
**必须审查:**
- 子代理驱动开发中每个任务完成后
- 完成重要功能后
- 合并到 main 之前
**可选但有价值:**
- 卡住时(换个视角)
- 重构之前(建立基线)
- 修复复杂 bug 之后
## 如何请求
**1. 获取 git SHA**
```bash
BASE_SHA=$(git rev-parse HEAD~1) # 或 origin/main
HEAD_SHA=$(git rev-parse HEAD)
```
**2. 派遣代码审查子代理:**
使用 Task 工具,指定 `general-purpose` 类型,填写 `code-reviewer.md` 中的模板
**占位符说明:**
- `{DESCRIPTION}` - 你刚完成的内容简要说明
- `{PLAN_OR_REQUIREMENTS}` - 预期功能
- `{BASE_SHA}` - 起始提交
- `{HEAD_SHA}` - 结束提交
**3. 处理反馈:**
- Critical 问题立即修复
- Important 问题在继续之前修复
- Minor 问题记录下来稍后处理
- 如果审查者有误,用技术理由反驳
## 示例
```
[刚完成任务 2:添加验证功能]
你:让我在继续之前请求代码审查。
BASE_SHA=$(git log --oneline | grep "Task 1" | head -1 | awk '{print $1}')
HEAD_SHA=$(git rev-parse HEAD)
[派遣代码审查子代理]
DESCRIPTION: 添加了 verifyIndex() 和 repairIndex(),支持 4 种问题类型
PLAN_OR_REQUIREMENTS: docs/superpowers/plans/deployment-plan.md 中的任务 2
BASE_SHA: a7981ec
HEAD_SHA: 3df7661
[子代理返回]:
优点:架构清晰,测试真实
问题:
Important:缺少进度指示器
Minor:报告间隔使用了魔法数字 (100)
评估:可以继续
你:[修复进度指示器]
[继续任务 3]
```
## 与工作流的集成
**子代理驱动开发:**
- 每个任务完成后审查
- 在问题叠加之前发现它们
- 修复后再进入下一个任务
**执行计划:**
- 每个任务完成后或在自然 checkpoint 审查
- 获取反馈,应用,继续
**临时开发:**
- 合并前审查
- 卡住时审查
## 红线
**绝不要:**
- 因为"很简单"就跳过审查
- 忽略 Critical 问题
- 带着未修复的 Important 问题继续推进
- 对合理的技术反馈进行争辩
**如果审查者有误:**
- 用技术理由反驳
- 展示证明其可行的代码/测试
- 要求澄清
参见模板:requesting-code-review/code-reviewer.md