check-approve
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSkill: check-approve
Skill: check-approve
WHAT
WHAT
Purpose và context
目的与上下文
- Purpose: Khi 1 request DMS "ấn approve mà bị treo" / không rõ lệnh duyệt có tới BE chưa, user cần 1 lệnh 1 dòng để paste lên product server () — agent KHÔNG có SSH tới product nên KHÔNG tự chạy, chỉ sinh lệnh ([[feedback_product_server_debug]]). Skill này sinh sẵn lệnh BE + FE, ghi ra file
ubuntu@hcm-bonbon-sv03(tránh lỗi xuống dòng khi copy) và in inline..sh - Trigger (when to use):
/check-approve <REQ-CODE> [--since 120m]- User: "viết lệnh check (approve/duyệt)", "request <CODE> approve bị treo", "không thấy lệnh duyệt trong log", "check duyệt ở be/fe"
- Non-goals: không SSH/chạy lệnh trên product, không sửa bug approve (sự cố cần repro/fix → ), không trace trên local mặc định.
/orca-issue
- 目的: 当某个 DMS request “点击 approve 后卡住”/尚不清楚审批命令是否已到达 BE 时,用户需要一条单行命令,粘贴到 product server()上——Agent 无法通过 SSH 访问 product,因此不会自行运行,只会生成命令([[feedback_product_server_debug]])。此 Skill 预生成 BE + FE 命令,将其写入
ubuntu@hcm-bonbon-sv03文件(避免复制时发生换行错误),并内联输出。.sh - 触发条件(何时使用):
/check-approve <REQ-CODE> [--since 120m]- 用户:“写一条 check(approve/审批)命令”“request <CODE> approve 卡住”“日志里看不到审批命令”“检查 BE/FE 上的审批”
- 非目标:不通过 SSH/不在 product 上运行命令,不修复 approve bug(需要复现/修复的故障 → ),默认不在 local 上进行 trace。
/orca-issue
Mental model
逻辑模型
REQ-CODE (+ SUM-ID, since, container, user) → template BE + FE → one-liner 1 dòng → file .sh + in inline → user tự chạy trên product → đọc kết quả (có POST approve hay không)REQ-CODE(+ SUM-ID、since、container、user)→ BE + FE 模板 → 单行 one-liner → .sh 文件 + 内联输出 → 用户自行在 product 上运行 → 读取结果(是否有 POST approve)Input và output contract
输入与输出约定
| Field | Required? | Ý nghĩa | |
|---|---|---|---|
| In | | có | mã request, vd |
| In | | không | khoảng docker logs, default |
| In | | không | thiếu → để placeholder |
| In | | không | lọc hẹp hơn, hỏi user nếu cần |
| Out | | có | 2 one-liner BE + FE (hoặc path user chỉ định) |
| Out | lệnh inline trong câu trả lời | có | để user copy nhanh; "xong" = user có lệnh chạy được, KHÔNG phải agent đã chạy |
| 字段 | 必填? | 含义 | |
|---|---|---|---|
| 输入 | | 是 | request code,例如 |
| 输入 | | 否 | docker logs 的时间范围,默认 |
| 输入 | | 否 | 缺少 → 保留 placeholder |
| 输入 | | 否 | 用于更精确的过滤;如有需要则询问用户 |
| 输出 | | 是 | 2 条 one-liner(BE + FE),也可使用用户指定的 path |
| 输出 | 回复中内联展示的命令 | 是 | 方便用户快速复制;“完成”表示用户已获得可运行的命令,而不是 Agent 已执行命令 |
Rules và capabilities
规则与能力
- RULE-01 (MUST): KHÔNG tự SSH/chạy lệnh trên product — chỉ sinh lệnh ([[feedback_product_server_debug]]).
- RULE-02 (MUST): Mặc định trace trên product (hcm-bonbon-sv03), không phải local.
- RULE-03 (MUST): Mỗi lệnh giữ trên 1 dòng (không xuống dòng).
- RULE-04 (MUST): Nếu user nói "ghi vào folder log của wiki" → ghi /
.sh, KHÔNG.txt(tránh OKF frontmatter hook)..md - Capabilities: ghi file lệnh cục bộ; không truy cập server, không mạng.
- RULE-01(MUST):不得自行通过 SSH/在 product 上运行命令——只生成命令([[feedback_product_server_debug]])。
- RULE-02(MUST):默认在 product(hcm-bonbon-sv03)上进行 trace,而不是 local。
- RULE-03(MUST):每条命令必须保持在 1 行,不得换行。
- RULE-04(MUST):如果用户说“写入 wiki 的 log 文件夹” → 写入 /
.sh,不要写入.txt(避免触发 OKF frontmatter hook)。.md - 能力:在本地写入命令文件;无法访问服务器或网络。
Failure boundaries
失败边界
- Thiếu → clarify, không sinh lệnh với mã đoán.
<REQ-CODE> - Không biết container/user → partial hợp lệ: sinh lệnh với placeholder, dặn user thay bằng .
docker ps - User yêu cầu agent tự chạy trên product → blocked theo RULE-01, chỉ đưa lệnh.
- 缺少 → 澄清,不得猜测代码并生成命令。
<REQ-CODE> - 不知道 container/user → 允许返回 partial 结果:生成带 placeholder 的命令,并提醒用户通过 获取实际值。
docker ps - 用户要求 Agent 自行在 product 上运行命令 → 根据 RULE-01 设为 blocked,只提供命令。
HOW
HOW
Main workflow
主流程
| Step | Type | Inputs | Action | Outputs/exit | Failure/next |
|---|---|---|---|---|---|
| W01 | judgment | lời user | Resolve tham số, còn lại để placeholder | bộ tham số | thiếu REQ-CODE → clarify |
| W02 | deterministic | tham số | Generate 2 one-liner BE + FE theo template, 1 dòng | 2 lệnh | — |
| W03 | effect | lệnh | Write vào | file | — |
| W04 | deterministic | lệnh | Show inline; KHÔNG tự chạy | user có lệnh | — |
Chi tiết từng bước (nguồn chân lý cho W01–W04):
- Resolve — lấy ,
<REQ-CODE>, container/user nếu user cung cấp; còn lại để placeholder cho user tự điền.--since - Generate — dựng 2 one-liner (BE + FE) theo template dưới, giữ trên 1 dòng (không xuống dòng).
- Write — ghi vào (hoặc path user chỉ định). Nếu user nói "ghi vào folder log của wiki" → ghi
scratchpad/check-approve-<REQ-CODE>.sh/.sh, KHÔNG.txt(tránh OKF frontmatter hook)..md - Show — in cả 2 lệnh inline trong câu trả lời để user copy nhanh. KHÔNG tự chạy trên product.
| 步骤 | 类型 | 输入 | 操作 | 输出/退出 | 失败/下一步 |
|---|---|---|---|---|---|
| W01 | judgment | 用户输入 | 解析参数,其余参数保留为 placeholder | 参数集 | 缺少 REQ-CODE → 澄清 |
| W02 | deterministic | 参数 | 根据模板生成 2 条单行 one-liner(BE + FE) | 2 条命令 | — |
| W03 | effect | 命令 | 写入 | | — |
| W04 | deterministic | 命令 | 内联展示;不得自行执行 | 用户获得命令 | — |
各步骤详情(W01–W04 的唯一依据):
- 解析 — 获取 、
<REQ-CODE>以及用户提供的 container/user;其余参数保留为 placeholder,供用户自行填写。--since - 生成 — 根据下方模板构建 2 条 one-liner(BE + FE),并确保每条命令保持在 1 行,不得换行。
- 写入 — 写入 (或用户指定的 path)。如果用户说“写入 wiki 的 log 文件夹” → 写入
scratchpad/check-approve-<REQ-CODE>.sh/.sh,不要写入.txt(避免触发 OKF frontmatter hook)。.md - 展示 — 在回复中内联展示两条命令,方便用户快速复制。不得在 product 上自行执行。
Input
输入
| Tham số | Ý nghĩa | Default |
|---|---|---|
| Mã request, vd | bắt buộc |
| Khoảng thời gian docker logs | |
| Container backend (nếu user biết) | placeholder |
| Username FE để lọc proxy log | placeholder |
<REQ-CODE>SUM-ID1010228| 参数 | 含义 | 默认值 |
|---|---|---|
| request code,例如 | 必填 |
| docker logs 的时间范围 | |
| Backend container(如果用户知道) | placeholder |
| 用于过滤 proxy log 的 FE username | placeholder |
<REQ-CODE>SUM-ID1010228Branches
分支
| ID | Kind | Guard | Hành vi | Skip / failure | Rejoin |
|---|---|---|---|---|---|
| B01 | user_optional | user nói "ghi vào folder log của wiki" | ghi | không nói → path mặc định | W04 |
| B02 | user_optional | user chỉ cần lọc theo mã request | dùng bản BE gọn thay bản tổng hợp | — | W03 |
| ID | 类型 | 条件 | 行为 | 跳过/失败 | 汇合点 |
|---|---|---|---|---|---|
| B01 | user_optional | 用户说“写入 wiki 的 log 文件夹” | 将 | 未指定 → 使用默认 path | W04 |
| B02 | user_optional | 用户只需要按 request code 过滤 | 使用精简版 BE 命令,而不是综合版本 | — | W03 |
Validation và stopping
校验与停止条件
Kiểm bằng mắt: mỗi lệnh đúng 1 dòng, mã request đã thay đúng chỗ, placeholder còn lại được nêu rõ. Dừng sau W04 — bước đọc log là của user (mục "Đọc kết quả" dùng khi user dán log về).
通过人工检查确认:每条命令均为 1 行,request code 已正确替换,剩余 placeholder 均有明确说明。W04 后停止——读取 log 由用户负责(当用户粘贴 log 回来时,使用“读取结果”部分)。
Examples
示例
- Positive: → ghi
/check-approve BAF-CTD-26050043 --since 6hchứa lệnh BE + FEscratchpad/check-approve-BAF-CTD-26050043.sh, container để--since 6h/<BE_CONTAINER>, in inline, không chạy.<FE_CONTAINER> - Boundary/failure: "check approve treo giúp, tự ssh vào xem" không có mã request → hỏi mã request; từ chối SSH, chỉ sinh lệnh.
- 正向示例: → 写入
/check-approve BAF-CTD-26050043 --since 6h,其中包含 BE + FE 命令和scratchpad/check-approve-BAF-CTD-26050043.sh;container 保持为--since 6h/<BE_CONTAINER>;内联输出命令,不执行。<FE_CONTAINER> - 边界/失败: “check approve treo giúp, tự ssh vào xem”未提供 request code → 询问 request code;拒绝 SSH,只生成命令。
Reference — Command templates
参考 — 命令模板
BE (docker logs trên product) — lệnh tổng hợp các endpoint approve:
bash
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 UpdateRequestByApproveGroupBE — bản gọn (chỉ lọc theo mã request):
bash
docker logs <BE_CONTAINER> --since 120m 2>&1 | grep -i -e POST -e approve -e UpdateGenTask -e ApproveSummary -e UpdateRequestByApproveGroup -e BAF-CTD-26050043FE (dms-proxy log) — lọc theo user + request:
bash
docker logs <FE_CONTAINER> --since 120m 2>&1 | grep -i -e "dms-proxy" -e BAF-CTD-26050043 -e <FE_USER> -e Approve -e ActionThay/<BE_CONTAINER>bằng container thật (<FE_CONTAINER>). Đổidocker psnếu duyệt đã lâu (vd--since). Đổi6hthành mã request cần check.BAF-CTD-26050043
BE(product 上的 docker logs)— 汇总 approve endpoint 的命令:
bash
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 UpdateRequestByApproveGroupBE — 精简版(仅按 request code 过滤):
bash
docker logs <BE_CONTAINER> --since 120m 2>&1 | grep -i -e POST -e approve -e UpdateGenTask -e ApproveSummary -e UpdateRequestByApproveGroup -e BAF-CTD-26050043FE(dms-proxy log)— 按 user + request 过滤:
bash
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>替换为实际 container(可通过<FE_CONTAINER>查询)。如果审批操作发生在很久以前,请调整docker ps(例如--since)。将6h替换为需要检查的 request code。BAF-CTD-26050043
Reference — Đọc kết quả
参考 — 读取结果
- Có (hoặc
POST /api/ApproveSummary/Approve,UpdateGenTask) kèm mã request → lệnh duyệt ĐÃ tới BE.UpdateRequestByApproveGroup - Không có dòng POST nào dù FE báo đã ấn → request treo ở FE / proxy, chưa gọi BE → soi tiếp [[concepts/approve-action-flow]] và proxy.
- Endpoint per-module xem [[entities/dms-modules]] (BAF/VEN01/CashAdv… khác nhau).
- 存在 (或
POST /api/ApproveSummary/Approve、UpdateGenTask)且带有 request code → 审批命令已到达 BE。UpdateRequestByApproveGroup - 即使 FE 报告已点击,也没有任何 POST 行 → request 卡在 FE / proxy,尚未调用 BE → 继续检查 [[concepts/approve-action-flow]] 和 proxy。
- 各模块的 endpoint 参见 [[entities/dms-modules]](BAF/VEN01/CashAdv… 各不相同)。
Reference — Giới hạn
参考 — 限制
- KHÔNG tự SSH/chạy lệnh trên product — chỉ sinh lệnh ([[feedback_product_server_debug]]).
- Mặc định trace trên product (hcm-bonbon-sv03), không phải local.
- 不得自行通过 SSH/在 product 上运行命令——只生成命令([[feedback_product_server_debug]])。
- 默认在 product(hcm-bonbon-sv03)上进行 trace,而不是 local。
Origin
来源
- Raw: distill từ session 6902c846 / c2f1149e (2026-06-25, debug approve treo BAF-CTD-26050043/30/26060030)
- Generated by: /orca-eval finding #3 (250626-eval-report)
- Raw: 提炼自 session 6902c846 / c2f1149e(2026-06-25,调试卡住的 approve 流程:BAF-CTD-26050043/30/26060030)
- Generated by: /orca-eval finding #3(250626-eval-report)