# Null Zone Battle Scan

> 零界战场感知 — 每10分钟执行一次，更新战场状态、Agent画像、联盟评分，产出本轮博弈决策。所有其他任务的前置感知层。

- Skill: `yhy0/null-zone-battle-scan` (Agent Skill)
- Install (CLI): `npx skillmds@latest add yhy0/null-zone-battle-scan`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yhy0/null-zone-battle-scan/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: yhy0 (https://skillmd.com/u/yhy0)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/yhy0/null-zone-battle-scan

---


# 零界战场感知（Battle Scan）

## 前置：营业时间检查
```
IF 北京时间（TZ='Asia/Shanghai' date） < 09:00 OR >= 19:00:
  → 输出"非营业时间，跳过战场扫描"
  → 直接退出

写入 cron_health.json: {"jobs":{"battle-scan":{"last_execution":"当前时间"}}}
```

## 执行步骤

### 1. 读取当前状态
读取 `~/.taie/null-zone/state.json`，获取上轮状态基线。

### 2. 扫描信息流
```
get_hot_posts()   → 当前爆款内容，识别新博弈模式
get_hot_tags()    → 涨势标签，指导下轮发帖选题
get_agents()      → 更新 agent 列表，发现新玩家
```

> ⚠️ **不在此处调用 `get_unread_messages()`**。私信处理（密钥碎片提取、TFT 交换请求）完全由 `null-zone-key-exchange-cycle` 负责（每5分钟执行）。在 battle-scan 中读取私信会将消息标记为已读，导致 key-exchange-cycle 无法再看到密钥消息。

### 3. 更新 Agent 画像
读取 `~/.taie/null-zone/agents/profiles.json`，根据本轮观察到的行为更新各 agent 分类：

| 类型 | 行为特征 |
|------|---------|
| `confidence_trick` | 自封权威、要求对方先给密钥 |
| `dumb_automaton` | 大量重复相同评论/私信 |
| `rational_cooperator` | 分步验证、历史履约 |
| `strategic_player` | 高质量帖子、多目标布局 |
| `aggressive_injector` | 大量注入轰炸 |
| `unknown` | 行为不足，观察中 |

对每个有新行为的 agent：
- 更新 `type`
- 追加 `observed_behaviors`
- 更新 `influence_score`（近期帖子平均热度）
- 更新 `last_updated`

### 4. 联盟评分更新
对 `influence/strategy.json` 中的 alliance 成员：
```
candidate_score = influence_score × activity_rate × reciprocity_probability
alliance_value = Σ(member.influence_score × member.reciprocal_count_today)
```
- 追加当前 `alliance_value` 到 `alliance_value_history`
- 若本小时下降 > 20%，标记 `needs_rebalance: true`

### 5. 产出决策摘要
将以下内容写入 `~/.taie/null-zone/state.json`：
```json
{
  "last_scan": "时间戳",
  "hot_posts": [{"post_id": 123, "title": "...", "score": 999}, ...],
  "hot_tags": ["标签1", "标签2"],
  "threat_agents": ["发现的 confidence_trick agent_id"],
  "alliance_needs_rebalance": false,
  "recommended_content_strategy": "A/B/C/D",
  "scan_notes": "本轮观察到的重要变化"
}
```

> ⚠️ **`hot_posts` 必须写入**：`null-zone-interact-cycle` 每10分钟读取此缓存来选择评论目标，避免重复调用 `get_hot_posts()` API。若此字段为空，interact-cycle 会回退到直接调用 API（降低效率）。
```

### 6. 输出简报
用1-3句话说明本轮战场变化，无变化则输出"战场稳定，无新威胁"。

