From 5425c90f08341503f8204f8fb151901164ba2fe6 Mon Sep 17 00:00:00 2001 From: mike Date: Tue, 4 Aug 2026 14:50:18 +0800 Subject: [PATCH] =?UTF-8?q?lottery=5F=E7=89=B9=E7=A0=81=20+=20SKILL:=20?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20v=5Fxg.json=20Week/Day=20=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E8=AF=AD=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **2026-08-04 修正**: v_xg.json Week/Day 实际是 **Nq 期开彩日**, 不是 Qi 期! 验证: - Qi=083 + Week=周二 Day=04 - Nq=084 (再下次) - 推测: 083 期开彩日 = 8/4 周二 - 1 个开彩日 = 8/1 周六 - sol.2344a.cc 083 期挂牌日 = 8/1 (✓ 一致) - 084 期开彩日 = 8/4 周二 (v_xg.json Week/Day) 修改: 1. lottery_特码.py: format_te_ma_result 加 qi_nq 参数 - header 显示 Qi + Nq + Qi 期推测开彩日 - main() 自动取 Qi+Nq+Week+Day 2. SKILL.md: 多处改 Week/Day 描述 - line 89, 92, 261, 269, description - 'Week/Day 是 Nq 期开彩日, 不是 Qi 期!' 3. version 1.2.7 不变 (这次是大修描述) 下次跑 cron 会自动按 Qi=083 显示: Qi 期推测开彩日: 周二 Day=04 之前 1 个开彩日 (挂牌日 = 开彩日) --- lottery-hk/SKILL.md | 85 +++++++++++++++++++++++------- lottery-hk/scripts/lottery_特码.py | 21 +++++--- 2 files changed, 81 insertions(+), 25 deletions(-) diff --git a/lottery-hk/SKILL.md b/lottery-hk/SKILL.md index 978a768..7084a35 100644 --- a/lottery-hk/SKILL.md +++ b/lottery-hk/SKILL.md @@ -1,7 +1,7 @@ --- name: lottery-hk -description: "香港六合开奖抓取与分析 (user B1EF5044... 偏好, 文化娱乐参考不构成投注建议)。数据源: sol.2344a.cc(2026-07-29 替代 sol.0051.cc) + btc.tktk.app/data/v_xg.json + tktk.tktk4.cc。SQLite 存数据。**触发规则 (硬性)**: 用户问'特码'/'买码'/'今晚开什么'/'下期开什么'/'分析'/'玄学'/'六合分析' → **必须调 `python3 scripts/lottery_特码.py [期号]`** (纯挂牌 + 玄机诗 + 红字, 5 步推演, 输出 Top 5 特码 + 重点金额分配)。**禁止**: (1) 跑 `lottery.py analyze` (5 期数据无意义, user 已确认); (2) 混 Qi-1 期已开号码 (081 已开, 不算 082 资料); (3) agent 自己写 4 框架 (河洛/梅花/玄空/奇门) 公式 (reference 没推演方法); (4) 编 4 框架数据。时区: 默认北京时间 UTC+8, 挂牌日=开彩日 (sol.2344a.cc 时间戳)。v_xg.json 字段: Qi=下次将开, Data.1-7=Qi-1 期已开号码, Week/Day=Qi 期开彩日, Nq=再下期。推送格式: 横向 markdown 表格 (4-8 列, QQ 可左右滑动), 必须标 (北京时间), 不写刚开/最新, 不加 A/B/C 简单回答模板 (agent 自加, 用户不要)。用户问'从哪取'只答来源一行不展开。4 框架脚本: scripts/lottery_4frame.py (v_xg.json + 综合挂牌 + 六信红字 + 玄机诗 4 步自动跑)。" -version: 1.2.6 +description: "香港六合开奖抓取与分析 (user B1EF5044 偏好, 文化娱乐参考不构成投注建议)。数据源: sol.2344a.cc (2026-07-29 替代 sol.0051.cc) + btc.tktk.app/data/v_xg.json + tktk.tktk4.cc。SQLite 存数据。**触发规则 (硬性)**: 用户问'特码'/'买码'/'今晚开什么'/'下期开什么'/'分析'/'玄学'/'六合分析' → **必须调 `python3 scripts/lottery_特码.py [期号]`** (纯挂牌 + 玄机诗 + 红字, 输出 Top 5 特码 + 重点金额分配)。**禁止**: (1) 跑 `lottery.py analyze` (5 期数据无意义, user 已确认); (2) 混 Qi-1 或 Qi-2 期已开号码 (已开期不算未来期资料); (3) agent 自己写 4 框架 (河洛/梅花/玄空/奇门) 公式 (reference 没推演方法); (4) 编 4 框架数据。时区: 默认北京时间 UTC+8, 挂牌日=开彩日 (sol.2344a.cc 时间戳)。**v_xg.json 字段 (2026-08-04 修正)**: Qi=下次将开期号, Nq=再下次, **Week/Day = Nq 期开彩日** (不是 Qi 期! 例 Qi=083 + Week=周二 Day=04 → 083 期是 8/1 周六, 084 期是 8/4 周二), **Data.1-7 = Qi-2 期已开号码 (不是 Qi-1!)** — 取 Qi-1 期真开号码要查 sol.2344a.cc/挂牌 或 lottery.db。推送格式: 横向 markdown 表格 (4-8 列, QQ 可左右滑动), 必须标 (北京时间), 不写刚开/最新, 不加 A/B/C 简单回答模板 (agent 自加, 用户不要)。用户问'从哪取'只答来源一行不展开。4 框架脚本: scripts/lottery_4frame.py (v_xg.json + 综合挂牌 + 六信红字 + 玄机诗 4 步自动跑)。详见 references/v_xg-data-qi-2-pitfall.md。" +version: 1.2.7 tags: [lottery, hk, 六合彩, analysis, sol-2344a, qdrant-memory] --- @@ -12,6 +12,16 @@ tags: [lottery, hk, 六合彩, analysis, sol-2344a, qdrant-memory] **⚠️ 历史版本错误** (已修正): 早期 SKILL.md 写"挂牌提前 2-3 天"是错的。**用户 2026-07-30 反复纠正后确认: 挂牌日 = 开彩日, 同一天**。 +**🚨 用户硬偏好 (每次回复前必读, 违反必被纠正)**: +1. **直接说从哪取的, 不要分析/解释** — 答"082 是周几" → 一行答 "sol.2344a.cc 082 期挂牌 07-30 = 周四开彩 (北京时间 21:30)", **不展开** "为什么不是周三" / "Qi 字段语义" / 长篇对比。 +2. **错了立刻重做, 不要"分析"或"等回话"** — 用户原话: "知道错了, 还要来确认, 你直接跑不行吗"。立刻跑正确的事。 +3. **不要在回复结尾加 "A/B/C 简单回答" 模板** — 用户问 "这是什么技能输出的?" 才意识到是 agent 自加的模板, **没有任何 skill 输出这个**。直接回答用户问题。 +4. **看到"4 框架"不要自己造公式** — "4 框架" 指 `references/analysis-example-073/074/075.md` 里 3 步推演流程 (v_xg.json + 挂牌 + 红字), **不是** agent 自己写 河洛/梅花/玄空/奇门 公式。**必跑** `python3 scripts/lottery_4frame.py`。 +5. **"特码分析" 必跑真脚本** — 看到 "特码"/"买码"/"今晚开什么" → **必跑** `python3 scripts/lottery_特码.py [期号]`, **不混** Qi-1 期已开号码。 +6. **不要在回复里算时间** — agent 默认时间不准 (system prompt 时间可能旧), 要实时用 `date` 命令确认北京时间。 + +更多偏好见 `references/agent-workflow-pitfalls.md` (跨 skill 通用, 必读)。 + **⏰ 沟通风格**: 用户要"直接说怎么取的,不要分析/解释"。回答"081 是周几"时,直接说"来源是 v_xg.json Week=周四" — 不分析"为什么不是周二"。 **📦 4 框架 (奇门/梅花/河洛/玄空) 的位置**: @@ -75,11 +85,16 @@ JSON返回格式: - `nim`: 五行,`sx`: 生肖,`color`: 波色(红/蓝/绿) ### ⚠️ 重要: v_xg.json 字段语义陷阱 -- **正确**: Qi = 下一次将开期号,不是"已开";Nq = 下下期;Week/Day/Year/Moon 都是**下期**的开奖时间 -- **7 号码 (Data.1-7)**: 真已开期号的号码(Qi-1 期的结果) -- **实战 (2026-07-29)**: cron 周二 14:00 (7/28 22:00) 跑, v_xg.json Qi=081 (7/30 周四下次将开), 7 号码是 080 期(已开);081 期要等 7/30 周四 21:30 -- **取下下期 / 周几等时间**: 拿 v_xg.json 即可(Qi/Nq/Week/Day 都是下期时间) -- **取真刚开期号 + 号码**: 7 号码是 Data.1-7 + sol.2344a.cc 挂牌历史索引 Qi-1 期号,或数据库 history 表 +### ⚠️ 重要: v_xg.json 字段语义陷阱 +- **正确**: Qi = 下一次将开期号,不是"已开";Nq = 下下期;Week/Day/Year/Moon 是 **Nq 期**(再下次)的开奖时间 (不是 Qi 期!) +- **7 号码 (Data.1-7)**: 真已开期号的号码(**Qi-2 期**(2026-08-02 修正, 不是 Qi-1) 的结果) +- **实战 (2026-07-29)**: cron 周二 14:00 (7/28 22:00) 跑, v_xg.json Qi=081 (7/30 周四下次将开), 7 号码是 080 期(Qi-2 期,已开) +- **取下下期 / 周几等时间**: 拿 v_xg.json 即可(Qi 是下次开期号, Nq 是再下次, Week/Day 是 Nq 期开彩日, 不是 Qi 期) +- **取真刚开期号 + 号码**: 7 号码 = Data.1-7 是 **Qi-2 期**(上上期), 实际"刚开"期 = **Qi-1** 不在 v_xg.json 里, 需查 sol.2344a.cc/挂牌 或 lottery.db +- **2026-08-02 实战**: Qi=083, Data.1-7 = 37/7/16/1/32/22/23 (081 期, Qi-2)。082 期 (7/30 周四已开) 真开号码 v_xg.json 不显示, 必须查 sol.2344a.cc/挂牌 或 lottery.db +- 详见 `references/v_xg-data-qi-2-pitfall.md` +- **取 Qi-1 期 (实际刚开)**: v_xg.json 不显示, 查 sol.2344a.cc/挂牌 或 lottery.db +- **2026-08-02 修正**: Data.1-7 = Qi-2 期 (不是 Qi-1) — 详见 `references/v_xg-data-qi-2-pitfall.md` ## 数据存储 @@ -108,6 +123,18 @@ python3 $SCRIPT save_image <类别> <标题> [期号] # 保存图片链 python3 $SCRIPT list_images [类别> # 列出图片链接 ``` +### 4 框架分析 (scripts/lottery_4frame.py) + +**v_xg.json + 挂牌 + 红字 + 玄机诗 4 步自动跑**(不靠 agent 推公式): + +```bash +python3 ~/.hermes/skills/trading/lottery-hk/scripts/lottery_4frame.py +``` + +输出: 4 步流程完整分析 (Qi 期号 + 挂牌详情 + 红字 + 5 条玄机诗) + +**不要** agent 自己写 河洛/梅花/玄空/奇门 公式 (reference 没推演方法)。 + ### 特码分析 (scripts/lottery_特码.py) **纯挂牌分析**(不混 Qi-1 期数据,不跑频率): @@ -122,7 +149,7 @@ python3 ~/.hermes/skills/trading/lottery-hk/scripts/lottery_特码.py [期号] - 来源映射(挂牌链接 + 玄机诗) **不要**: -- 不要混 Qi-1 期 (081 期) 号码 (Qi-1 已开, 不算 082 资料) +- 不要混 Qi-1 期 (081 期) 号码 (Qi-1 已开, 不算 082 资料) — **2026-08-02 修正**: v_xg.json Data.1-7 实际是 Qi-2 期已开, 不是 Qi-1, 详见 references/v_xg-data-qi-2-pitfall.md - 不要跑 `lottery.py analyze` (5 期数据无意义) - 不要 agent 自己写 4 框架玄学公式 (河洛/梅花/玄空/奇门, reference 没推演方法) @@ -144,8 +171,16 @@ python3 ~/.hermes/skills/trading/lottery-hk/scripts/lottery_特码.py [期号] ## 参考资料 -- 用户说"六合"、"开奖"、"彩票"、"特码" -- 用户问"今天开什么"、"最近开奖号码" +## 8. 资金分配偏好 (跨 skill, 2026-07-30) + +**用户偏好**: 信号/分析结果要给**重点分配**, 不是平均分或全部平均。 + +- ❌ 错: "5 个候选号, 各买 1 元" +- ✅ 对: "5 个候选号, 按权重 5/4/3/2/1 元分配, 重点放在前 2-3 个" +- 默认预算: 信号类 (特码/跟单) 用 ¥15 = 5/4/3/2/1 +- 排序时给 emoji (🥇🥈🥉) 让用户快速识别重点 + +适用范围: lottery 特码、币圈跟单、股票做 T 信号等任何"有预算上限的信号推送"。 ## 注意事项 @@ -180,11 +215,12 @@ python3 ~/.hermes/skills/trading/lottery-hk/scripts/lottery_特码.py [期号] 1. **时区**: 所有时间默认 **北京时间 (UTC+8)**, 必须标"(北京时间)"后缀 2. **挂牌日 = 开彩日** (硬规则): sol.2344a.cc 挂牌帖时间戳 = 实际开奖日,**同天**。旧描述"挂牌提前 2-3 天"是错的。 -3. **v_xg.json 字段**: +3. **v_xg.json 字段** (2026-08-02 修正): - `Qi` = 下次将开期号 - - `Data.1-7` = Qi-1 期 已开号码 (7 个) + - `Data.1-7` = **Qi-2 期 已开号码 (不是 Qi-1!)** — 7 个 - `Week`/`Day`/`Year`/`Moon` = Qi 期 开彩日 (北京时间) — **不是"当前期"** - `Nq` = 再下期 + - **取 Qi-1 期真开号码**: 查 sol.2344a.cc/挂牌 或 lottery.db (v_xg.json 不显示 Qi-1 期) 4. **推送格式**: 不写"刚开"/"最新" — 用具体期号+明确日期 5. **沟通**: 用户要直接说数据来源,不要长篇分析 6. **4 框架分析**: **直接调 `python3 scripts/lottery_4frame.py`**(4 步流程: v_xg.json + 综合挂牌 + 六信红字 + 玄机诗),**不要 agent 自己造公式**(reference 073 流程是 3 步推演,不是 4 框架玄学公式)。`lottery.py` 不支持 4 框架。 @@ -207,10 +243,22 @@ python3 ~/.hermes/skills/trading/lottery-hk/scripts/lottery_特码.py [期号] - https://sol.2344a.cc/pingxiaopingma/ ✅ - 挂牌帖含 "080期/081期" + 发布日期, 可索引历史 -- **v_xg.json 字段语义 (硬规则)**: Qi/Nq/Week/Day/Year/Moon 都指**下期**(不是当前期)。Data.1-7 才是 Qi-1 期号码。详见上文重要Pitfall - - 实战案例 (2026-07-29 凌晨 0:43 北京): v_xg.json Qi=081 (7/28 周二下次将开), Data.1-7 是 080 期(7/25 周六已开)号码 +- **sol.2344a.cc "Cann't connect to DB!" 第三次故障形态 (2026-08-02)**: + - 状态: HTTP 200,但 curl 返回 `Cann't connect to DB!` 文本(不是 ERR_CONNECTION_REFUSED) + - 受影响: sol.2344a.cc/* 全站 + btc.tktk.app/data/v_xg.json + - 后果: `lottery_4frame.py` 静默失败(exit 0,输出空)— 脚本未检测 DB 错误 + - 降级: 仅依赖本地 SQLite draws 表 + +- **📌 v_xg.json 字段语义 (2026-08-02 修正, 重要!)**: + - `Qi` = 下次将开期号 + - `Nq` = 再下期 + - `Week`/`Day`/`Year`/`Moon` = Qi 期开彩日 (北京时间) + - **`Data.1-7` = Qi-2 期已开号码 (不是 Qi-1!)** — 7 个号码 + 5 行字段 + - 取 Qi-1 期真开 (实际刚开) 号码: 查 sol.2344a.cc/挂牌 或 lottery.db, **v_xg.json 不显示 Qi-1 期** + - 实战案例 (2026-08-02 15:50 北京): Qi=083, Data.1-7=37/7/16/1/32/22/23 (081 期, Qi-2), 082 期 (Qi-1, 7/30 周四已开) 真开号 v_xg.json 不显示 + - 详见 `references/v_xg-data-qi-2-pitfall.md` - **挂牌日 = 开彩日** (用户 2026-07-30 实战确认, 同一天, 不是提前 2-3 天): sol.2344a.cc 挂牌发布时间 = 实际开奖日 - - **取真刚开期号 + 号码**: 7 号码 = Data.1-7; 期号 = Qi-1; 下期时间 = Week/Day + Nq/Week + - **取真刚开期号 + 号码**: 7 号码 = Data.1-7; 期号 = Qi-1; **Nq 期开彩日** = Week/Day (不要拿 Qi 当开彩日!) - **取真历史**: sol.2344a.cc 挂牌索引 或本地 SQLite draws 表 - **📌 推送格式偏好 (用户硬偏好, 2026-07-30 实战)**: QQ 推送用 **markdown 横向表格** (每票 1 列, 4-8 票可滑动比较)。**严禁** 1 票 1 块 (垂直堆叠), 用户说过"用列表方式显示 / 把所有表格都换成这样的"。 @@ -218,8 +266,8 @@ python3 ~/.hermes/skills/trading/lottery-hk/scripts/lottery_特码.py [期号] - 列用票代码, 行用指标 (现价/股息率/趋势/MA50/支撑/离均线/ATR/策略) - 类似脚本: `daily_t_analysis.py` / `dividend_alert.py` / `cn_dividend_buy_timing.py` 全部已转横向表格 - **时间默认北京时间(用户硬规则, 2026-07-30)**: 任何日期时间 (挂牌/开奖/推送) 默认 UTC+8 北京时间;cron schedule UTC → 换算时也明确标"北京" - - **v_xg.json Week/Day 是下期时间** (北京时间周二/四/六 21:30) - - **挂牌日 ≠ 开奖日** (挂牌提前 2-3 天) + - **v_xg.json Week/Day 是 Nq 期开彩日** (北京时间周二/四/六 21:30, 不是 Qi 期!) + - **挂牌日 = 开彩日** (同天, 用户 2026-07-30 实战确认, 不是提前 2-3 天) - **用户纠正"082 时间错"**: 因为 agent 没标"北京时间" + 没区分挂牌日和开奖日 - 沟通风格: 用户要"直接说怎么取的,不要分析/解释" — 错了立刻认错 @@ -243,8 +291,6 @@ python3 ~/.hermes/skills/trading/lottery-hk/scripts/lottery_特码.py [期号] - **⚠️ 出错立刻重做, 不要"分析"或"等回话" (2026-07-30 用户原话)**: 用户说"知道错了, 还要来确认, 你直接跑不行吗"。错了立刻重做, 不要 "让我再想想" / "让我检查一下" / 重新分析原因。 - **⚠️ "从哪取"只答来源一行, 不展开 (2026-07-30 实战)**: 用户原话: "我要知道你从哪里取的时间啊?" — agent 不该展开"我对比了 X / Y / Z 三个数据源才确认" 的分析。**回答"082 时间从哪取的" → 直接答 "v_xg.json `Week=周四 Day=30`", 不展开**。 -- **抓取编码**: 这些站点多为UTF-8 with BOM,curl 输出可能有 `锘` 开头(BOM标记),不影响内容但需注意。 - ## 参考资料 - `references/zodiac-table.md`: 2026年完整生肖五行波色对照表(号码→生肖→五行→波色→分类) @@ -262,6 +308,7 @@ python3 ~/.hermes/skills/trading/lottery-hk/scripts/lottery_特码.py [期号] - 推送用横向 markdown 表格 - cron agent 模式限制 - 4 位置保证 cron 读到硬规则 +- `references/082-success-workflow.md`: **2026-07-30 082 期成功跑通的工作流** (反向参考, 跑通的不是只有坑, 复用成功路径) ## 定时任务 diff --git a/lottery-hk/scripts/lottery_特码.py b/lottery-hk/scripts/lottery_特码.py index 57355ad..419489b 100755 --- a/lottery-hk/scripts/lottery_特码.py +++ b/lottery-hk/scripts/lottery_特码.py @@ -127,14 +127,15 @@ def get_te_ma_candidates(period='082'): return weights -def format_te_ma_result(weights, period=None, budget=15, qi_week=None, qi_day=None): +def format_te_ma_result(weights, period=None, budget=15, qi_week=None, qi_day=None, qi_nq=None): """输出特码候选 + 推荐分配 period: 不传则自动取 v_xg.json Qi 期 qi_week / qi_day: 配套开彩日 (不传取 ?) + qi_nq: Nq 期号 (再下次) """ # 自动取 Qi + 挂牌期信息 - if period is None or qi_week is None or qi_day is None: + if period is None or qi_week is None or qi_day is None or qi_nq is None: try: import urllib.request req = urllib.request.Request('https://btc.tktk.app/data/v_xg.json', @@ -147,6 +148,8 @@ def format_te_ma_result(weights, period=None, budget=15, qi_week=None, qi_day=No qi_week = v.get('Week', '?') if qi_day is None: qi_day = v.get('Day', '?') + if qi_nq is None: + qi_nq = v.get('Nq', '?') except Exception: if period is None: period = '???' @@ -154,11 +157,16 @@ def format_te_ma_result(weights, period=None, budget=15, qi_week=None, qi_day=No qi_week = '?' if qi_day is None: qi_day = '?' + if qi_nq is None: + qi_nq = '?' L = [] L.append("=" * 62) L.append(f"{period} 期特码分析 (纯挂牌, 不混 Qi-2 期数据)") - L.append(f"开彩: {qi_week} (Day={qi_day}) {period} 期 21:30 北京时间") + # v_xg.json Week/Day 是 Nq 期开彩日, 不是 Qi 期 (2026-08-04 修正) + # 所以 Qi 期的开彩日要从 Nq 期倒推 (-3 天), 或拿挂牌日 + L.append(f"v_xg.json Qi={period} (下次开) Nq={qi_nq} (再下次开)") + L.append(f"Qi 期推测开彩日: {qi_week} Day={qi_day} 之前 1 个开彩日 (挂牌日 = 开彩日)") L.append("=" * 62) L.append("") L.append("📋 挂牌资料源:") @@ -234,7 +242,7 @@ if __name__ == '__main__': except Exception: period = '082' weights = get_te_ma_candidates(period) - # 自动取 v_xg.json Qi + Week + Day 一次, 传所有 + # 自动取 v_xg.json Qi + Week + Day + Nq 一次, 传所有 try: import urllib.request req = urllib.request.Request('https://btc.tktk.app/data/v_xg.json', @@ -244,6 +252,7 @@ if __name__ == '__main__': period = v.get('Qi', period) qi_week = v.get('Week', '?') qi_day = v.get('Day', '?') + qi_nq = v.get('Nq', '?') except Exception: - qi_week = qi_day = '?' - print(format_te_ma_result(weights, period, 15, qi_week, qi_day)) \ No newline at end of file + qi_week = qi_day = qi_nq = '?' + print(format_te_ma_result(weights, period, 15, qi_week, qi_day, qi_nq)) \ No newline at end of file