cron-regex-buddylisted
Install: claude install-skill YuAICode/ai-skills
# cron-regex-buddy — cron 与正则中文向导
把看不懂的 cron 表达式或正则表达式讲清楚,或者把中文需求翻译成正确的 cron / 正则,并自检合法性。
## 何时触发
用户说:
- `/cron-regex-buddy`
- "解释这个 cron:`0 9 * * 1-5`"
- "这个正则什么意思:`^\d{3}-\d{4}$`"
- "帮我写个匹配手机号的正则"
- "我想每天早上 9 点跑一次,cron 怎么写"
- "生成一个 cron 表达式" / "cron 怎么填"
- "这个表达式对吗"
## 两种工作模式
### 模式 A:解释模式
用户给出一个 cron 或正则 → 逐段拆解,中文讲清每部分含义,并给出具体匹配示例。
**流程:**
1. 判断输入是 cron 还是正则(或两者都有)。
2. **先用 `bin/validate.sh` 自检**:
```bash
bash <skill>/bin/validate.sh cron "<表达式>"
bash <skill>/bin/validate.sh regex "<模式>"
```
若 exit 2,把错误原因中文报给用户,不继续解释。
3. 解释 cron 时按字段顺序逐一说明:
| 字段 | 位置 | 含义 |
|------|------|------|
| 分钟 | 1 | 0–59 |
| 小时 | 2 | 0–23 |
| 日 | 3 | 1–31 |
| 月 | 4 | 1–12 |
| 星期 | 5 | 0–7(0 和 7 均为周日) |
| 秒(可选) | 6 | 0–59,仅部分调度器支持 |
常用符号说明:`*` 任意值、`,` 多值列举、`-` 范围、`/` 步进、`?` 日/星期互斥占位(Quartz 风格)、`L` 最后一天、`#` 第 N 个星期 X。
4. 解释正则时按从左到右逐组/逐字符说明,并给出 2–3 个匹配示例与 1–2 个不匹配示例。
5. **时区提醒**:解释 cron 时指出"cron 以服务器本地时区为准,未指定时区时请确认系统时区设置。"
**输出格式(cron 示例):**
```
表达式:0 9 * * 1-5
逐字段解释:
- 分钟:0 → 整点(第 0 分)
- 小时:9 → 早上 9 点
- 日: * → 每天
- 月: * → 每月
- 星期:1-5 → 周一到周五
含义:每个工作日(周一至周五)早上 9:00 执行。
匹配时刻示例:2026-06-08 09:00(周一)、2026-06-09 09:00���周二)
不触发时刻:2026-06-06 09:00(周六)、2026-06-08 09:30(非整点)
⚠️ 时区:cron 以服务器本地时区为准。如需北京时间请确认 TZ=Asia/Shanghai。
```
**输出格式(正则示例):**
```
表达式:^\d{3}-\d{4}$
逐组解释:
- ^ → 字符串开头锚点
- \d{3} → 恰好 3 位数字(0–9)
- - → 字面连字符
- \d{4} → 恰好 4 位数字
- $ → 字符串结尾锚点
匹配示例:123-4567、00