关于 check-approve
check-approve 是用于排查 DMS 审批请求是否到达后端的技能。它根据请求编号生成后端与前端日志查询命令,保存为脚本并展示供用户在产品服务器运行;不会自行连接或执行命令。
主要功能
- 01生成后端与前端日志查询命令
- 02支持按时间范围筛选
- 03未知容器或用户保留占位符
- 04保存脚本并显示可复制命令
- 05不连接或操作产品服务器
适用场景
- 01排查 DMS 审批请求是否到达后端
- 02检查审批请求是否停留在前端或代理
- 03为特定请求生成产品服务器排查命令
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rheinmir/ setup --skill check-approve安装后在 Claude Code 中输入/check-approve确认已加载。
详细介绍
Skill:check-approve
WHAT
用途和上下文
- 用途: 当遇到 DMS 请求“点了 approve 但卡住了”,或不确定审批命令是否已到 BE 时,用户需要一条单行命令,粘贴到产品服务器(
ubuntu@hcm-bonbon-sv03)上运行——Agent 无法通过 SSH 连接产品服务器,因此不会自行运行,只生成命令([[feedback_product_server_debug]])。此 Skill 会预先生成 BE + FE 命令,写入.sh文件(避免复制时换行出错),并在回复中直接展示。 - 触发条件(何时使用):
/check-approve <REQ-CODE> [--since 120m]- 用户说:“写个检查命令(approve/审批)”、“请求
approve 卡住了”、“日志里看不到审批命令”、“检查 BE/FE 上的审批”
- 非目标: 不通过 SSH 连接或在产品服务器上运行命令,不修复 approve 的 bug(需要复现/修复的问题 →
/orca-issue),默认不在本地追踪。
心智模型
REQ-CODE (+ SUM-ID、since、container、user) → BE + FE 模板 → 单行命令 → 写入 .sh 文件并直接展示 → 用户自行在产品服务器上运行 → 读取结果(是否有 POST approve)。
输入和输出约定
字段 必填? 含义 输入 <REQ-CODE>是 request 编号,例如 BAF-CTD-26050043;缺少时 → 询问用户 输入 --since否 docker logs 的时间范围,默认 120m 输入 --be-container / --user否 缺少时 → 使用占位符 <BE_CONTAINER> / <FE_USER> 输入 SUM-ID否 进一步缩小筛选范围;如有需要,询问用户 输出 scratchpad/check-approve-<REQ-CODE>.sh是 2 条 BE + FE 单行命令(或用户指定的路径) 输出 回复中的内联命令 是 方便用户快速复制;“完成”= 用户拿到可运行的命令,并非 Agent 已运行
规则和能力
- RULE-01(MUST):不得自行通过 SSH 连接或在产品服务器上运行命令——只生成命令([[feedback_product_server_debug]])。
- RULE-02(MUST):默认在产品服务器(hcm-bonbon-sv03)上追踪,而非本地。
- RULE-03(MUST):每条命令都保持在一行(不得换行)。
- RULE-04(MUST):如果用户说“写入 wiki 的日志文件夹” → 写入
.sh/.txt,不要写入 .md(避免 OKF frontmatter hook)。
- 能力:写入本地命令文件;不能访问服务器,也不能联网。
失败边界
- 缺少
<REQ-CODE> → 澄清,不得使用猜测的编号生成命令。
- 不知道 container/user → 可以部分完成:使用占位符生成命令,并提醒用户通过
docker ps 确认后替换。
- 用户要求 Agent 自行在产品服务器上运行命令 → 按 RULE-01 阻止,只提供命令。
HOW
主工作流
步骤 类型 输入 操作 输出/退出 失败/下一步 W01 判断 用户的话 确定参数,其余使用占位符 参数集 缺少 REQ-CODE → 澄清 W02 确定性 参数 按模板生成 2 条 BE + FE 单行命令,保持在一行 2 条命令 — W03 副作用 命令 写入 scratchpad/check-approve-<REQ-CODE>.sh(或用户指定的路径) .sh 文件— W04 确定性 命令 在回复中展示;不得自行运行 用户拿到命令 —
各步骤的详细说明(W01–W04 的事实来源):
- 确定参数——获取
<REQ-CODE>、--since,以及用户提供的 container/user;其余使用占位符,供用户自行填写。
- 生成命令——按下方模板构建 2 条单行命令(BE + FE),保持在一行(不得换行)。
- 写入文件——写入
scratchpad/check-approve-<REQ-CODE>.sh(或用户指定的路径)。如果用户说“写入 wiki 的日志文件夹” → 写入 .sh/.txt,不要写入 .md(避免 OKF frontmatter hook)。
- 展示命令——在回复中展示 2 条内联命令,方便用户快速复制。不得自行在产品服务器上运行。
输入
参数 含义 默认值 <REQ-CODE>request 编号,例如 BAF-CTD-26050043 必填 --sincedocker logs 的时间范围 120m--be-container后端 container(如果用户知道) 占位符 <BE_CONTAINER> --user用于筛选 proxy log 的 FE 用户名 占位符 <FE_USER>(例如 trangntt)
<REQ-CODE> 通常关联 SUM-ID(例如 1010228)——如需进一步缩小筛选范围,请询问用户。
分支
ID 类型 条件 行为 跳过 / 失败 汇合点 B01 user_optional 用户说“写入 wiki 的 log 文件夹” 写入 .sh/.txt 到该文件夹,而不是 scratchpad/,不写入 .md 未提及 → 使用默认路径 W04 B02 user_optional 用户只需按 request 编号筛选 使用精简版 BE 命令,而不是汇总版 — W03
验证与停止
目视检查:每条命令正好一行,request 编号已在正确位置替换,剩余占位符已明确说明。在 W04 后停止——读取 log 是用户的步骤(用户贴回 log 后使用“读取结果”一节)。
示例
- 正例:
/check-approve BAF-CTD-26050043 --since 6h → 写入 scratchpad/check-approve-BAF-CTD-26050043.sh,其中包含 BE + FE 命令和 --since 6h,容器名保留为 <BE_CONTAINER>/<FE_CONTAINER>,以内联方式打印,不执行。
- 边界/失败:“帮忙检查 approve 卡住了,自己 SSH 进去看看”但未提供 request 编号 → 询问 request 编号;拒绝 SSH,只生成命令。
参考 — 命令模板
BE(product 上的 docker logs)— 汇总各 approve endpoint 的命令:
docker logs <BE_CONTAINER> --since 120m 2>&1 | grep -i -B2 -A2 -e BAF-CTD-26050043 -e <SUM_ID> | grep -i -e POST -e Action -e Approve -e Reject -e Return -e UpdateGenTask -e GetGenTaskById -e UpdateTask -e "ApproveSummary/Approve" -e QuickApprove -e UpdateRequestByApproveGroup
BE — 精简版(只按 request 编号筛选):
docker logs <BE_CONTAINER> --since 120m 2>&1 | grep -i -e POST -e approve -e UpdateGenTask -e ApproveSummary -e UpdateRequestByApproveGroup -e BAF-CTD-26050043
FE(dms-proxy log)— 按 user + request 筛选:
docker logs <FE_CONTAINER> --since 120m 2>&1 | grep -i -e "dms-proxy" -e BAF-CTD-26050043 -e <FE_USER> -e Approve -e Action
将 <BE_CONTAINER> / <FE_CONTAINER> 替换为实际容器名(docker ps)。如果审批已经进行了一段时间,调整 --since(例如 6h)。将 BAF-CTD-26050043 替换为需要检查的 request 编号。
参考 — 读取结果
- 有
POST /api/ApproveSummary/Approve(或 UpdateGenTask、UpdateRequestByApproveGroup)并带有 request 编号 → 审批命令已到达 BE。
- 没有任何 POST 行,尽管 FE 显示已点击 → request 卡在 FE / proxy,还未调用 BE → 继续检查 [[concepts/approve-action-flow]] 和 proxy。
- 各模块的 endpoint 参见 [[entities/dms-modules]](BAF/VEN01/CashAdv…有所不同)。
参考 — 限制
- 不要自行 SSH / 在 product 上运行命令——只生成命令([[feedback_product_server_debug]])。
- 默认在 product(hcm-bonbon-sv03)上追踪,而不是在本地。
来源
- 原始内容: 从 session 6902c846 / c2f1149e 提炼(2026-06-25,排查 BAF-CTD-26050043/30/26060030 的 approve 卡住问题)
- 生成者: /orca-eval finding #3(250626-eval-report)
评论
支持 Markdown