mcpField
C
check-approve

check-approve

github.com/rheinmirDevelopment10239 installsUpdated 2w ago
Repository

About check-approve

check-approve is a skill for checking whether a DMS approval request reached the backend. It generates backend and frontend log commands from a request ID, saves them in a script, and displays them for the user to run on the product server; it does not connect to or run commands there.

Key features

  1. 01Generate backend and frontend log commands
  2. 02Filter logs by time range
  3. 03Leave placeholders for unknown container or user
  4. 04Save a script and display copyable commands
  5. 05Do not connect to or operate the product server

Use cases

  1. 01Check whether a DMS approval request reached the backend
  2. 02Determine whether an approval request stalled in the frontend or proxy
  3. 03Prepare product-server checks for a specific request

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/rheinmir/setup --skill check-approve

After installing, type/check-approvein Claude Code to confirm it loaded.

Details

From the project README

Skill: check-approve

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 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.
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).

Input và output contract
FieldRequired?Ý nghĩa
In<REQ-CODE>cómã request, vd BAF-CTD-26050043; thiếu → hỏi user
In--sincekhôngkhoảng docker logs, default 120m
In--be-container / --userkhôngthiếu → để placeholder <BE_CONTAINER> / <FE_USER>
InSUM-IDkhônglọc hẹp hơn, hỏi user nếu cần
Outscratchpad/check-approve-<REQ-CODE>.shcó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
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.
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.

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.
Input
Tham sốÝ nghĩaDefault
<REQ-CODE>Mã request, vd BAF-CTD-26050043bắt buộc
--sinceKhoảng thời gian docker logs120m
--be-containerContainer backend (nếu user biết)placeholder <BE_CONTAINER>
--userUsername 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.

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 .mdkhô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
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ề).

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.
Reference — Command templates

BE (docker logs trên product) — lệnh tổng hợp các endpoint approve:

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):

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:

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.

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).
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.

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)

Comments

Markdown supported