check-approve

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Skill: 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 (
    ubuntu@hcm-bonbon-sv03
    ) — 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
    .sh
    (tránh lỗi xuống dòng khi copy) và in inline.
  • 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 →
    /orca-issue
    ), không trace trên local mặc định.
  • 目的: 当某个 DMS request “点击 approve 后卡住”/尚不清楚审批命令是否已到达 BE 时,用户需要一条单行命令,粘贴到 product server(
    ubuntu@hcm-bonbon-sv03
    )上——Agent 无法通过 SSH 访问 product,因此不会自行运行,只会生成命令([[feedback_product_server_debug]])。此 Skill 预生成 BE + FE 命令,将其写入
    .sh
    文件(避免复制时发生换行错误),并内联输出。
  • 触发条件(何时使用):
    • /check-approve <REQ-CODE> [--since 120m]
    • 用户:“写一条 check(approve/审批)命令”“request <CODE> approve 卡住”“日志里看不到审批命令”“检查 BE/FE 上的审批”
  • 非目标:不通过 SSH/不在 product 上运行命令,不修复 approve bug(需要复现/修复的故障 →
    /orca-issue
    ),默认不在 local 上进行 trace。

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

输入与输出约定

FieldRequired?Ý nghĩa
In
<REQ-CODE>
cómã request, vd
BAF-CTD-26050043
; thiếu → hỏi user
In
--since
khôngkhoảng docker logs, default
120m
In
--be-container
/
--user
khôngthiếu → để placeholder
<BE_CONTAINER>
/
<FE_USER>
In
SUM-ID
khônglọc hẹp hơn, hỏi user nếu cần
Out
scratchpad/check-approve-<REQ-CODE>.sh
có2 one-liner BE + FE (hoặc path user chỉ định)
Outlệnh inline trong câu trả lờicóđể user copy nhanh; "xong" = user có lệnh chạy được, KHÔNG phải agent đã chạy
字段必填?含义
输入
<REQ-CODE>
是request code,例如
BAF-CTD-26050043
;缺少 → 询问用户
输入
--since
否docker logs 的时间范围,默认
120m
输入
--be-container
/
--user
否缺少 → 保留 placeholder
<BE_CONTAINER>
/
<FE_USER>
输入
SUM-ID
否用于更精确的过滤;如有需要则询问用户
输出
scratchpad/check-approve-<REQ-CODE>.sh
是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
    /
    .txt
    , KHÔNG
    .md
    (tránh OKF frontmatter hook).
  • 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
    ,不要写入
    .md
    (避免触发 OKF frontmatter hook)。
  • 能力:在本地写入命令文件;无法访问服务器或网络。

Failure boundaries

失败边界

  • Thiếu
    <REQ-CODE>
    → clarify, không sinh lệnh với mã đoán.
  • 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

主流程

StepTypeInputsActionOutputs/exitFailure/next
W01judgmentlời userResolve tham số, còn lại để placeholderbộ tham sốthiếu REQ-CODE → clarify
W02deterministictham sốGenerate 2 one-liner BE + FE theo template, 1 dòng2 lệnh—
W03effectlệnhWrite vào
scratchpad/check-approve-<REQ-CODE>.sh
(hoặc path user chỉ định)
file
.sh
—
W04deterministiclệnhShow inline; KHÔNG tự chạyuser có lệnh—
Chi tiết từng bước (nguồn chân lý cho W01–W04):
  1. Resolve — lấy
    <REQ-CODE>
    ,
    --since
    , container/user nếu user cung cấp; còn lại để placeholder cho user tự điền.
  2. Generate — dựng 2 one-liner (BE + FE) theo template dưới, giữ trên 1 dòng (không xuống dòng).
  3. Write — ghi vào
    scratchpad/check-approve-<REQ-CODE>.sh
    (hoặc path user chỉ định). Nếu user nói "ghi vào folder log của wiki" → ghi
    .sh
    /
    .txt
    , KHÔNG
    .md
    (tránh OKF frontmatter hook).
  4. Show — in cả 2 lệnh inline trong câu trả lời để user copy nhanh. KHÔNG tự chạy trên product.
步骤类型输入操作输出/退出失败/下一步
W01judgment用户输入解析参数,其余参数保留为 placeholder参数集缺少 REQ-CODE → 澄清
W02deterministic参数根据模板生成 2 条单行 one-liner(BE + FE)2 条命令—
W03effect命令写入
scratchpad/check-approve-<REQ-CODE>.sh
(或用户指定的 path)
.sh
文件
—
W04deterministic命令内联展示;不得自行执行用户获得命令—
各步骤详情(W01–W04 的唯一依据):
  1. 解析 — 获取
    <REQ-CODE>
    、
    --since
    以及用户提供的 container/user;其余参数保留为 placeholder,供用户自行填写。
  2. 生成 — 根据下方模板构建 2 条 one-liner(BE + FE),并确保每条命令保持在 1 行,不得换行。
  3. 写入 — 写入
    scratchpad/check-approve-<REQ-CODE>.sh
    (或用户指定的 path)。如果用户说“写入 wiki 的 log 文件夹” → 写入
    .sh
    /
    .txt
    ,不要写入
    .md
    (避免触发 OKF frontmatter hook)。
  4. 展示 — 在回复中内联展示两条命令,方便用户快速复制。不得在 product 上自行执行。

Input

输入

Tham sốÝ nghĩaDefault
<REQ-CODE>
Mã request, vd
BAF-CTD-26050043
bắt buộc
--since
Khoảng thời gian docker logs
120m
--be-container
Container backend (nếu user biết)placeholder
<BE_CONTAINER>
--user
Username FE để lọc proxy logplaceholder
<FE_USER>
(vd
trangntt
)
<REQ-CODE>
thường gắn
SUM-ID
(vd
1010228
) — hỏi user nếu cần lọc hẹp hơn.
参数含义默认值
<REQ-CODE>
request code,例如
BAF-CTD-26050043
必填
--since
docker logs 的时间范围
120m
--be-container
Backend container(如果用户知道)placeholder
<BE_CONTAINER>
--user
用于过滤 proxy log 的 FE usernameplaceholder
<FE_USER>
,例如
trangntt
<REQ-CODE>
通常关联
SUM-ID
(例如
1010228
)——如需更精确的过滤,则询问用户。

Branches

分支

IDKindGuardHành viSkip / failureRejoin
B01user_optionaluser nói "ghi vào folder log của wiki"ghi
.sh
/
.txt
vào đó thay vì
scratchpad/
, không
.md
không nói → path mặc địnhW04
B02user_optionaluser chỉ cần lọc theo mã requestdùng bản BE gọn thay bản tổng hợp—W03
ID类型条件行为跳过/失败汇合点
B01user_optional用户说“写入 wiki 的 log 文件夹”将
.sh
/
.txt
写入该目录,而不是
scratchpad/
;不要写入
.md
未指定 → 使用默认 pathW04
B02user_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:
    /check-approve BAF-CTD-26050043 --since 6h
    → ghi
    scratchpad/check-approve-BAF-CTD-26050043.sh
    chứa lệnh BE + FE
    --since 6h
    , container để
    <BE_CONTAINER>
    /
    <FE_CONTAINER>
    , in inline, không chạy.
  • 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
    → 写入
    scratchpad/check-approve-BAF-CTD-26050043.sh
    ,其中包含 BE + FE 命令和
    --since 6h
    ;container 保持为
    <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 UpdateRequestByApproveGroup
BE — 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-26050043
FE (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 Action
Thay
<BE_CONTAINER>
/
<FE_CONTAINER>
bằng container thật (
docker ps
). Đổi
--since
nếu duyệt đã lâu (vd
6h
). Đổi
BAF-CTD-26050043
thành mã request cần check.
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 UpdateRequestByApproveGroup
BE — 精简版(仅按 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-26050043
FE(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>
/
<FE_CONTAINER>
替换为实际 container(可通过
docker ps
查询)。如果审批操作发生在很久以前,请调整
--since
(例如
6h
)。将
BAF-CTD-26050043
替换为需要检查的 request code。

Reference — Đọc kết quả

参考 — 读取结果

  • Có
    POST /api/ApproveSummary/Approve
    (hoặc
    UpdateGenTask
    ,
    UpdateRequestByApproveGroup
    ) kèm mã request → lệnh duyệt ĐÃ tới BE.
  • 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
    、
    UpdateRequestByApproveGroup
    )且带有 request code → 审批命令已到达 BE。
  • 即使 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)