diff --git a/app/services/proposal_service.py b/app/services/proposal_service.py
index 4238e36..89fe837 100644
--- a/app/services/proposal_service.py
+++ b/app/services/proposal_service.py
@@ -239,8 +239,16 @@ def disposition_snapshot(now=None) -> dict:
view = portfolio.positions_view()
params = _scan_params(view)
stock_params = command_service.effective_stock_params()
- # 与实盘扫描同一份 skip: 在途 / 今日已被规则闸拒 / 今日已被研判闸驳回的新建仓
- skip = {**_judge_rejected_open_keys(), **_rejected_today_keys(), **_inflight_keys()}
+ # 给交易员的白话原因: 用同一套去重键 (口径与实盘扫描一致), 但值不含内部闸门术语、
+ # 也不指引任何终端命令 —— 原来的 _*_keys() 串带「研判闸/规则闸/看 make t-gate」, 那是
+ # 给日志与运维看的, 不该出现在交易员页面。落库顺序同实盘 (在途最后, 覆盖被拒)。
+ skip = {}
+ for _k in _judge_rejected_open_keys():
+ skip[_k] = "决策系统今天判过暂不建仓,明天开盘会重新评估"
+ for _k in _rejected_today_keys():
+ skip[_k] = "今天没通过合规检查,明天开盘会重新评估"
+ for _k in _inflight_keys(): # 在途; 前端多半已按指令/提议标成「已下单/待你确认」
+ skip[_k] = "系统已经在处理这只票(见『等我拍板』或『今日在办』)"
sink = {"skipped": []} # 丢弃用: _scan_open 只往里 append/extend, 不读它
would = _scan_open(view, params, stock_params, skip, {}, sink)
except Exception as e:
@@ -301,7 +309,7 @@ def _route_one(c, view, params, stock_params, brake_active, now, dry_run, out,
if not dry_run:
pms_repo.insert_ledger(ts_code=code, action=action, arbiter="rule", verdict="REJECT",
price_at=price, hard_numbers=c["hard_numbers"],
- failed_checks=gate["failed"], reason="自主提议未过规则闸")
+ failed_checks=gate["failed"], reason="自主提议未通过合规检查")
return
# ---- 二级: 研判闸 (补足/加仓/补仓/新建仓; 减持不送研判) ----
@@ -320,12 +328,12 @@ def _route_one(c, view, params, stock_params, brake_active, now, dry_run, out,
"recent_ledger": _recent_ledger(code)})
if verdict["verdict"] == judge.REJECT:
out["rejected"].append({"ts_code": code, "action": action, "by": "judge",
- "failed": [verdict.get("reason") or "研判驳回"]})
+ "failed": [verdict.get("reason") or "决策系统驳回"]})
if not dry_run:
pms_repo.insert_ledger(ts_code=code, action=action, arbiter="judge",
verdict="REJECT", price_at=price,
hard_numbers=c["hard_numbers"],
- reason=verdict.get("reason") or "研判驳回")
+ reason=verdict.get("reason") or "决策系统驳回")
return
if verdict.get("degraded"):
out["degraded"] = True
diff --git a/app/web/static/index.html b/app/web/static/index.html
index 40f7cdd..37738db 100644
--- a/app/web/static/index.html
+++ b/app/web/static/index.html
@@ -187,7 +187,7 @@ pre.json{background:var(--surface-2);border:1px solid var(--hair);border-radius: