From ab612cb33d15ef2c51392a44355d020ddaedc88f Mon Sep 17 00:00:00 2001 From: OoO Date: Wed, 13 May 2026 12:20:46 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=9C=20OpenClaw=20=E9=81=B8=E5=96=AE?= =?UTF-8?q?=E8=A4=87=E6=A0=B8=E5=A0=B1=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/openclaw_menu_audit_report.md | 111 +++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 docs/openclaw_menu_audit_report.md diff --git a/docs/openclaw_menu_audit_report.md b/docs/openclaw_menu_audit_report.md new file mode 100644 index 0000000..96b1b73 --- /dev/null +++ b/docs/openclaw_menu_audit_report.md @@ -0,0 +1,111 @@ +# OpenClaw Telegram 按鈕盤點報表(2026-05-01;2026-05-13 Codex 複核) + +## 總覽 +- 按鈕總數:84(`menu:`/`cmd:`/`await:`/`cmd:catdetail` 等) +- 自動回歸測試:40 項通過(`pytest -q tests/test_openclaw_bot_menu_keyboards.py tests/test_openclaw_bot_routes_webhook.py tests/test_openclaw_bot_telegram_api.py`,2026-05-13) +- /menu 顯示與 Callback 編輯流程:已修正為優先編輯原訊息,避免重複傳訊息 +- 重複更新處理:新增 update_id 去重,重複 webhook 會直接 `skip` +- `message is not modified`:判斷後不再 fallback 重傳 +- V2 callback 盤點再確認:OpenClaw 分類按鈕目前使用 `cmd:catdetail::`,不是舊式 `cat_`;`await:date_trend_*` 與 `await:goal_*` 皆有 webhook state handler。 + +## 主選單(`/menu`) +| 按鈕 | Callback | 對應子選單 | +|---|---|---| +| 📊 業績查詢 | `menu:sales` | `sales` | +| 🏆 商品廠商 | `menu:products` | `products` | +| 🎯 目標管理 | `menu:goals` | `goals` | +| 📈 智能分析 | `menu:analysis` | `analysis` | +| 📄 簡報報表 | `menu:reports` | `reports` | +| 🌐 市場情報 | `menu:market` | `market` | +| 🔍 競品日報 | `menu:competitor` | `competitor` | + +## 快速入口(help) +| 按鈕 | Callback | +|---|---| +| 📊 快速查詢 | `menu:sales` | +| 🏆 熱銷與廠商 | `menu:products` | +| 🎯 目標管理 | `menu:goals` | +| 📈 智能分析 | `menu:analysis` | +| 🧩 報表簡報 | `menu:reports` | +| 🔍 競品比較 | `menu:competitor` | + +## 子選單 + +### `sales` +- 今日 / 昨日業績:`cmd:sales:` +- 每週業績:`cmd:trend:week` +- 每月業績:`cmd:history:` +- 每季業績:`cmd:trend:quarter` +- 近半年:`cmd:trend:half` +- 趨勢分析:`menu:trend` +- 同期比較:`cmd:compare:` +- 分類業績:`cmd:category:` +- 日期區間輸入:`await:date_range_sales` +- 月份總覽:`cmd:history` + +### `products` +- 熱銷商品:`cmd:top:` +- 熱銷廠商:`cmd:vendor:` +- 商品健康:`cmd:health:` +- 昨日商品:`cmd:top:` +- 補貨預測:`cmd:restock` +- 分類鑽取:`menu:category` +- 指定日期:`await:date_top` + +### `goals` +- 查看達成率:`cmd:goal` +- 日/月/季/半年/年目標設定:`await:goal_*` + +### `analysis` +- 商品策略:`cmd:strategy:` +- 業績趨勢:`menu:trend` +- 商品健康:`cmd:health:` +- 分類業績:`cmd:category:` +- 促銷追蹤:`await:promo_range` +- 補貨預測:`cmd:restock` +- 趨勢圖表:`cmd:chart` +- 同期比較:`cmd:compare:` +- 指定日期:`await:date_analysis` + +### `trend` +- 近7日 / 近1個月:`cmd:trend:7`, `cmd:trend:month` +- 近3個月 / 近半年:`cmd:trend:quarter`, `cmd:trend:half` +- 本年度:`cmd:trend:year` +- 指定月份:`await:date_trend_month` +- 指定年份:`await:date_trend_year` +- 指定季度:`await:date_trend_quarter` + +### `reports` +- 日報 / 週報 / 月報:`cmd:ppt:daily`, `cmd:ppt:weekly`, `cmd:ppt:monthly` +- 下載報表:`cmd:report` +- 策略(日/週/月/季/半年/年):`cmd:ppt:strategy` 及 `cmd:ppt:strategy ` +- 促銷效益:`await:promo_range` +- 競品比較:`menu:competitor` +- 指定日報 / 指定月報:`await:date_ppt_daily`, `await:date_ppt_monthly` + +### `market` +- 電商新聞 / 天氣:`cmd:news`, `cmd:weather` +- Google 熱搜 / Dcard:`cmd:trends`, `cmd:dcard` +- 台銀匯率 / 電商節慶:`cmd:exchange`, `cmd:calendar` +- YouTube / AI 狀態:`cmd:youtube`, `cmd:learn` +- 關鍵字比價 / 圖片比價說明:`await:search_compare`, `cmd:photo_search_help` + +### `competitor` +- 今日 / 昨日簡報:`cmd:ppt:competitor ` +- 本週 / 本月 / 本季 / 指定日期比較:`cmd:ppt:competitor `、`await:date_competitor` +- 進入競品長週期:`menu:competitor_ppt` + +### `competitor_ppt` +- 半年 / 年比較:`cmd:ppt:competitor half`, `cmd:ppt:competitor yearly` +- 返回:`menu:competitor` + +### `category` +- 固定 L1 分類:`cmd:catdetail::` +- 全分類清單:`cmd:category:` + +## 補充狀態 +1. ✅ 所有回傳 `menu:` 的 callback 都有對應 `_SUBMENUS`。 +2. ✅ `/menu`、回呼選單、`await:` 狀態機都已有回歸測試。 +3. ✅ 簡報快取:同參數請求先讀 DB,命中則直接回傳既有 PPT,未命中才生成並寫入 DB。 +4. ✅ 重複 /callback 重送與 Telegram 「message is not modified」重複訊息已降噪。 +5. ✅ `cmd:catdetail`、`await:date_trend_*`、`await:goal_*` 已由回歸測試與程式碼路徑覆蓋;若未來新增 callback prefix,需同步補 handler 與 `tests/test_openclaw_bot_*`。