56 lines
2.4 KiB
Markdown
56 lines
2.4 KiB
Markdown
# Cron 默认 Qi vs Nq 陷阱 (2026-08-13 用户发现)
|
|
|
|
## 🚨 事故时间线
|
|
|
|
- **2026-07-29 左右 → 2026-08-13**: cron `lottery-hot-data` 跑 `lottery_特码_cron.sh`, 脚本默认抓 `v_xg.json['Qi']`(已开期), 跑了一个月标题/排名/挂牌全是已开期数据。
|
|
- **2026-08-13 12:04 北京**: 用户问 "你这前面写的期数是已开的, 分析的数据也是已开的? 我只要你分析未开的啊" — 当天 v_xg.json Qi=087 (已开), Nq=088 (未开, 8/13 周四 21:30 开彩)。
|
|
|
|
## 根因
|
|
|
|
`scripts/lottery_特码_cron.sh` 第 9-19 行:
|
|
```python
|
|
d = json.loads(r.read().decode('utf-8'))
|
|
print(d['Qi']) # ❌ 改用 Nq
|
|
```
|
|
|
|
`scripts/lottery_特码.py` 第 397-406 行 (默认 period):
|
|
```python
|
|
period = json.loads(r.read().decode('utf-8')).get('Qi', '082') # ❌ 改用 Nq, fallback '088'
|
|
```
|
|
|
|
两个文件 runtime 路径全部用 Qi, 文档注释里写 "自动取 Qi 期"。**用户问"特码"永远是想知道"下期买什么", 不是"上期回顾"**。
|
|
|
|
## 硬规则 (修改时必检)
|
|
|
|
1. `lottery_特码_cron.sh` 默认写 `NQ=$(... Nq ...)` (小写 `Nq=未开`)
|
|
2. `lottery_特码.py` 默认 `period = v_xg.json['Nq']`, fallback `'088'`
|
|
3. **修改这两个文件后必跑**:
|
|
```bash
|
|
grep -n "Qi\|Nq" ~/.hermes/skills/trading/lottery-hk/scripts/lottery_特码.py \
|
|
~/.hermes/skills/trading/lottery-hk/scripts/lottery_特码_cron.sh
|
|
```
|
|
- 搜出来的 `Qi` 只允许出现在文档注释 (`"""Qi = 最新已开"""`) 和 `qi_xg = v.get('Qi')` 字段快照里
|
|
- runtime 路径 (`period = ...`, `print(d['...'])`) 必须是 Nq
|
|
|
|
## 验证脚本
|
|
|
|
```bash
|
|
# 跑完 cron 脚本, 看第一行 "🎯 分析期号: NNN (v_xg.json Nq 未开下期)"
|
|
bash ~/.hermes/skills/trading/lottery-hk/scripts/lottery_特码_cron.sh 2>&1 | head -3
|
|
# 期望: 🎯 分析期号: 088 (v_xg.json Nq 未开下期)
|
|
# 不期望: 🎯 分析期号: 087 (v_xg.json Qi)
|
|
```
|
|
|
|
## 文档一致性
|
|
|
|
- `references/v_xg-data-qi-pitfall.md` 之前只讲 Qi/Nq 字段语义, **没强调 "分析/抓数据选 Nq" 的运行时规则**
|
|
- 这个 reference 专门补这个运行时陷阱
|
|
- `SKILL.md` 硬规则 #4 (2026-08-13 新增) + 用户硬偏好 #8 = 同步规则
|
|
|
|
## 教训
|
|
|
|
任何**"自动取 X 期"** 的脚本默认,都要先问自己:
|
|
1. 用户用这个脚本的目标场景是什么? (特码分析 = 推算下期)
|
|
2. 默认值应该符合同一类用户意图 (Nq = 未开)
|
|
3. Qi/已开期 只用于**核对** (查 marksix6.com / SQLite draws 表), 不是默认推送
|
|
</content> |