# Cron Diagnostics

> Cron 任务健康诊断与优化 — 分析 15 个 cron 任务的健康度、频率、调度冲突、deliver 配置、付费任务成本，输出优化方案。

- Skill: `yakeworld/cron-diagnostics` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add yakeworld/cron-diagnostics`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yakeworld/cron-diagnostics/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: yakeworld (https://skillmd.com/u/yakeworld)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/yakeworld/cron-diagnostics

---


## IO_CONTRACT

- **input**: 无（直接触发）
- **output**: 诊断报告 JSON + 优化建议列表
- **副作用**: 可能调用 cronjob action=update/remove/create

> 对应原则：P1（智能原子包含诊断逻辑）

## 核心流程

### Step 1: 数据采集

```bash
cronjob action=list
```

获取所有 cron 任务的完整状态。

### Step 2: 诊断矩阵

对每个任务运行以下检查：

| 检查项 | 条件 | 严重度 |
|--------|------|--------|
| **已暂停** | `enabled=false` 或 `paused=true` | HIGH |
| **错误状态** | `last_status="error"` | HIGH |
| **配置错误** | `no_agent=True` 且 `model` 不为 null | MEDIUM |
| **配置错误** | 非 `no_agent` 但无 `model` 指定 | HIGH |
| **配置错误** | 非 `no_agent` 但 `deliver="local"`（不投递到聊天） | MEDIUM |
| **配置冗余** | `no_agent=True` 且 `deliver="origin"` | LOW |
| **付费任务** | `provider` 包含 "deepseek" | INFO（需人工确认） |
| **频率过高** | `schedule` 包含 `every` 且间隔 < 1h | INFO |
| **功能重叠** | 多个任务做同一件事（如 D8 扫描 + bib 标准化） | MEDIUM |
| **批量超时** | 多个 no_agent 或脚本任务同时 timeout → 检查 codex profile 完整性 (`ls ~/.codex/profiles/`) | HIGH |

### Step 3: 功能重叠检测

按关键词分组任务名和描述：

```python
# 论文管线
paper_keywords = ["paper", "quality", "bib", "d8", "d10a", "repair", "review", "scan"]

# 进化循环
evolution_keywords = ["evolution", "evolve", "probe", "full", "cycle"]

# 监控
monitor_keywords = ["heartbeat", "monitor", "scan", "check", "audit", "sync"]
```

同一组内如果多个任务使用相同或相似 model + 做相似内容，标记为重叠。

### Step 4: 频率聚类

按执行频率分组：

```
高频 (< 1h):  每 30m
中频 (1-4h):  every 2h, every 360m
低频 (daily): 0 6 * * *, 0 9 * * *
超长 (monthly): 0 9 1 * *
```

识别同一组内可合并的任务。

### Step 5: 输出报告

```
=== CRON 诊断报告 ===

总任务: N
  Agent: M (付费 X, 免费 Y)
  Script: K
  已暂停: P
  错误: E

=== 付费任务 ===
  1. name: model, schedule, cost_impact

=== 功能重叠 ===
  1. [论文管线] task-A + task-B → 建议合并

=== 配置问题 ===
  1. [HIGH] task-X: enabled=false, last_status=error
  2. [MEDIUM] task-Y: deliver=local 不投递

=== 优化建议 ===
  1. 删除 task-Z (已暂停, 无活跃使用)
  2. 合并 task-A + task-B → unified-task
  3. 修复 task-Y deliver 配置
```


## Golden 集合 · GOLDEN SET

- **Golden Input**: 直接触发（无参数）— `cronjob action=list` 采集 15 个 cron 任务全量状态
- **Golden Output**: 诊断报告 JSON（总任务数/付费/已暂停/错误数与清单交叉一致）+ 优化建议列表，每条建议对应一个可执行 action（update/remove/create）；典型结果：15→10-11 任务、付费 6→4
- **Golden Error**: 批量 no_agent 任务同时 timeout 且 `ls ~/.codex/profiles/` 缺失 → 判 HIGH 级配置错误，先核对 codex profile 完整性再批量操作

## 优化操作模式

### 清理模式（推荐直接执行）
```bash
# 删除已暂停任务
cronjob action=remove job_id="<id>"

# 删除已完成的一次性任务
cronjob action=remove job_id="<id>"

# 合并任务：删除旧任务 → 创建新任务
cronjob action=remove job_id="<old>"
cronjob action=create schedule="..." model="..." prompt="..."
```

### 修复模式
```bash
# 修复 deliver 配置
cronjob action=update job_id="<id>" deliver="origin"

# 修复配置错误
cronjob action=update job_id="<id>" model="..." provider="..."
```

## 优化原则

1. **先删后加**：删除无效/冗余任务优先于修复配置
2. **合并同类**：功能重叠的任务合并为一个，减少 API 消耗
3. **保留价值**：每个保留的任务必须有明确用途和独立价值
4. **频率合理**：心跳类 30m 可接受，扫描类 ≤4h 合理，论文任务 daily 足够
5. **付费控制**：DeepSeek 付费任务控制在 4-6 个，其余用免费模型

## 典型优化结果

| 指标 | 优化前 | 优化后 |
|------|--------|--------|
| 总任务数 | 15 | 10-11 |
| 付费任务 | 6 | 4 |
| 已暂停 | 2 | 0 |
| 功能重叠 | 3 组 | 0 |
| 配置错误 | 1 | 0 |

## 示例 · EXAMPLES

**输入**：直接触发（`cronjob action=list` 采集 15 个任务）
**输出**：诊断报告 JSON — 总任务 15（付费 6, 已暂停 2, 错误 1）；功能重叠 3 组（D8 扫描 + bib 标准化）；优化建议 5 条（remove×2, update×2, merge×1）→ 执行后 10 任务、付费 4

**输入**：批量 no_agent 任务同时 timeout + `ls ~/.codex/profiles/` 缺失
**输出**：HIGH 级配置错误判定 → 先修复 codex profile 完整性，再执行批量操作

## 约束规则 · RULES

- 先删后加：删除无效/冗余任务优先于修复配置
- 付费（DeepSeek）任务控制在 4-6 个，其余用免费模型
- 心跳类 30m 可接受，扫描类 ≤4h，论文任务 daily 足够
- 批量 no_agent 任务同时 timeout 时必须先检查 codex profile 完整性
- 每个优化建议必须对应一个可执行 action（update/remove/create）

## 参考

- `references/cron-diagnostics-pattern.md` — 诊断模式详细步骤

## Operational Steps

1. 列出全部 cron 任务（cron 配置目录 / `hermes cron list`）
2. 逐任务评估健康度：频率、调度冲突、deliver 配置、付费成本
3. 识别功能重叠与配置错误（对照健康度表）
4. 输出诊断报告 JSON + 优化建议列表（update/remove/create）

## Pitfalls

- 功能重叠：多个任务监控同一目标 → 合并（如文献监控与收割）
- 已暂停任务残留：暂停后未删除，占用配额
- deliver 配置错误：目标未配置导致结果静默丢失
- 付费任务成本失控：高频率付费任务需降频或合并

## Verification

- 诊断报告 JSON 输出成功且字段完整
- cron 任务清单交叉验证：总任务数/付费任务数/已暂停数一致
- 每个优化建议对应一个可执行 action（update/remove/create）


## Genes (策略基因)

> 紧凑策略表示。条件→策略。需要深度时参考完整文档。

- **[CRON-001]** 任务处于已暂停或错误状态 → 优先执行删除操作以清理无效配额，而非尝试修复
- **[CRON-002]** 多个任务功能重叠（如相同关键词分组） → 合并为单一任务以减少 API 消耗并消除冗余
- **[CRON-003]** 批量 no_agent 任务同时超时 → 立即检查 codex profile 完整性，修复环境后再执行批量操作
- **[CRON-004]** 付费模型（DeepSeek）任务数量超过 4-6 个 → 将低价值任务降级为免费模型或合并，以控制成本
- **[CRON-005]** 任务配置为 no_agent 但指定了 model 或 deliver 为 local → 修正配置错误，确保非代理任务不依赖模型且结果正确投递
- **[CRON-006]** 任务执行频率过高（间隔 < 1h）且非心跳类 → 降低执行频率（扫描类 ≤4h，论文类 daily）以优化资源使用

