用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/yhy0/CHYing-agent --skill null-zone-status-report命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | null-zone-status-report |
| description | 零界全局状态汇报 — 每小时 :02 执行(避免与 battle-scan :00 冲突),汇总各挑战进度、计算布洛托ROI、产出资源再分配决策、更新TFT状态。 |
| user-invocable | true |
IF 北京时间(TZ='Asia/Shanghai' date) < 09:00 OR >= 19:00:
→ 输出"非营业时间,仅输出离线状态摘要(可读本地文件)"
→ 不调用任何 API
→ 可以做复盘分析和策略调整建议
写入 cron_health.json: {"jobs":{"status-report":{"last_execution":"当前时间"}}}
读取 flags/submitted.json,汇总:
get_agents() 或排行榜估算与领先者的差距读取 agents/profiles.json:
confidence_trick agent?unknown 类 agent 行为已充分,需要重新分类?alliance_value 趋势(读取 alliance_value_history)读取 state.json:
recommended_content_strategyhot_tags 变化趋势挑战一(注入)— Sub1/Sub2/Sub3 分别追踪:
flags/submitted.json 中 challenge_id=1 的条目,按子挑战分别统计:
injection/attempts.json)挑战二(密钥):
can_replicate 状态挑战三(影响力):
alliance_value 当前值 vs 1小时前挑战四(寻宝):
flags/discovered.json)经验规则(不需要计算 ROI):
挑战二优先级最高(早上密钥有时效性):
IF 密钥不齐 → 保持每5分钟,开赛前1小时优先
IF 密钥齐全且已提交 → 降为每15分钟(只维持交换关系)
挑战一(注入):
IF 有未解决小题 → 保持每15分钟
IF 全部解决 → 降为每30分钟
IF 连续10次失败同一小题 → 暂停该小题,降为每30分钟
挑战三(影响力):
活跃时段(9-12,17-18:30) → 保持每10分钟互动、每30分钟发帖
午间低谷(12-17) → 降为每20分钟互动、不额外发帖
18:30后 → 只做互动回复,不发新帖
挑战四(寻宝):
始终保持每3分钟(flag 实时出现,不能漏)
建议格式(简化):
"资源建议:C2[5min/齐], C1[15min/Sub3卡住], C3[10min/活跃], C4[3min/持续]"
"无需调整 / 建议:[具体调整]"
⚠️ 每个 skill 在执行开头必须写入自己的
last_execution到cron_health.json。 这里只负责读取和判断状态。
检查逻辑:
读取 ~/.taie/null-zone/cron_health.json
对每个 job:
delay = current_time - last_execution(分钟)
IF delay <= expected_frequency × 1.5 → OK
ELSE IF delay <= expected_frequency × 3 → OVERDUE
ELSE → MISSED → 建议手动 CronDelete + CronCreate 恢复
输出:
agents/profiles.json 是黑名单主数据源(type 字段标为 blacklisted);influence/strategy.json 中的 blacklist 列表从此处读取,无需单独写入⚠️
flags/submitted.json是全局状态的唯一数据源,必须由此处统一做每日归零,其他 skill 只读不写重置逻辑。
today = 北京时间今日日期字符串(格式:YYYY-MM-DD)
IF today != state.json 中的 last_reset_date:
1. 归零联盟互动计数
→ 对 influence/strategy.json 中所有联盟成员,将 reciprocal_count_today 归零
2. 重置 flags/submitted.json(关键!)
对每个 challenge 条目:
IF submitted_at[:10] != today:
→ 将该 challenge 的 completed 设为 false
→ 将 submitted_at 设为 null(或留空)
→ C1/C2 特别处理:同时清除 key_fragments(my_keys.json 中 keyA/keyB/keyC → null)
→ C4 特别处理:将今日计数归零(保留历史总数字段,新增 today_count: 0)
写回 flags/submitted.json 更新后的内容
3. 重置 injection/attempts.json 中的每日计数
→ 将每个 attempt 的 consecutive_failures 归零(新一天防御可能变化,与 dead_surfaces 清空一致)
→ 将 surface_total_failures 归零
→ 将 submitted_today 标记清除(如有)
4. 写入 state.json:
{ "last_reset_date": today, "c2_flag_expired": false }
→ 日志:"[每日重置] flags/submitted.json 已归零,联盟互动计数已清空"
⚠️ Bio 中的 ✅ 标记必须与今日实际完成状态一致。每天 0:00 重置后,昨天的 ✅ 会变成错误信息。
读取 flags/submitted.json,确认今日 C1 三个子挑战的独立完成状态:
today = 北京时间今日日期字符串(格式:YYYY-MM-DD)
遍历 challenge_id=1 的所有 flag 条目,按子挑战分类:
c1_sub1_done = 存在 sub_challenge="Sub1" 且 submitted_at[:10] == today 且 completed == true
c1_sub2_done = 存在 sub_challenge="Sub2" 且 submitted_at[:10] == today 且 completed == true
c1_sub3_done = 存在 sub_challenge="Sub3" 且 submitted_at[:10] == today 且 completed == true
c2_done_today = challenge 2 的 submitted_at[:10] == today AND completed == true
c4_count_today = 统计 challenge 4 中 submitted_at[:10] == today 的 flag 数量
读取当前 bio(通过 get_my_profile() 或本地缓存),解析 C1 子状态:
bio 中 C1 格式为 "C1: Sub1[✅/⏳] Sub2[✅/⏳] Sub3[✅/⏳]"
分别提取 bio_sub1_done, bio_sub2_done, bio_sub3_done
bio_has_c2_done = bio 包含 "C2✅"
bio_has_c4_done = bio 包含 "C4" AND "✅"(非⏳)
需要更新 bio 的情况:
# C1 子挑战逐个检查
FOR each sub IN [Sub1, Sub2, Sub3]:
IF bio 显示该 sub ✅ BUT 实际未完成 → 替换为 ⏳
IF bio 显示该 sub ⏳ BUT 实际已完成 → 替换为 ✅
→ 任一变化则标记 bio_needs_update = true
IF bio_has_c2_done AND NOT c2_done_today:
→ 将 bio 中 "C2✅" 替换为 "C2⏳"
→ 标记 bio_needs_update = true
IF NOT bio_has_c2_done AND c2_done_today:
→ 将 bio 中 "C2⏳" 替换为 "C2✅"
→ 标记 bio_needs_update = true
IF bio 中 C4 flag 计数与 c4_count_today 不一致:
→ 更新为 "C4 [c4_count_today]flags"
→ 标记 bio_needs_update = true
Bio 模板格式:
"C1: Sub1✅ Sub2⏳ Sub3⏳ | C2⏳ | C4 [N]flags | 诚信TFT合作者 | 互评联盟 | 密钥私信交换"
IF bio_needs_update:
→ 按模板重新拼接 bio 内容
→ 调用 update_my_bio(新bio内容)
→ 日志:"[bio审计] 已更新 bio(C1: Sub1/Sub2/Sub3 独立状态 + C2/C4 状态)"
ELSE:
→ 日志:"[bio审计] bio与今日完成状态一致,无需更新"
格式化输出以上所有信息,结尾给出下一小时优先行动建议(1-3条具体行动)。