# Agent健身房运行与候选包自检 类型:`diagnostic-tool` 风险:`low` ## Night Gym Package Run Doctor 诊断流程样例 ### 输入 ```bash python scripts/night_gym_package_doctor.py \ --run-dir /Users/bytedance/.codex/night-gym/runs/2026-05-04 \ --plist ~/Library/LaunchAgents/Agent健身房.plist \ --json ``` ### 核心检查 | 检查项 | 输入来源 | 成功信号 | 失败信号 | | --- | --- | --- | --- | | 定时配置一致性 | plist + launchctl print | `schedule_consistent` | `plist_loaded_drift` | | 主/子 agent 完成度 | master.log + out/sub/*.log | `all_subagents_done` | `missing_SUBAGENT_DONE` | | token 统计完整性 | master.log + out/sub/*.log | `usage_complete` | `subagent_usage_missing` | | 候选包结构 | out/manifest.json + out/sub/*.json | `package_complete` | `invalid_json` / `missing_example` | | 审批脚本安全性 | out/approve.sh + 临时 manifest | `approval_script_ok` | `approval_script_breaks_json` | | 中文本地化 | manifest / 文件名 / MORNING_REVIEW | `localized_names_ok` | `non_localized_filename` | ### 示例输出 ```json { "run_dir": "/Users/bytedance/.codex/night-gym/runs/2026-05-04", "status": "fail", "signals": [ {"name": "plist_loaded_drift", "detail": "plist=04:00, loaded=01:00, need reload LaunchAgent"}, {"name": "usage_complete", "detail": "master + 5 subagent logs counted"}, {"name": "approval_script_ok", "detail": "dry-run preserved valid manifest JSON"} ], "next_actions": [ "reload ~/Library/LaunchAgents/Agent健身房.plist", "keep subagent token accounting in MORNING_REVIEW", "run doctor again before approving candidates" ] } ``` ### 落地结果 早间复盘顶部先展示状态表:运行是否成功、候选包是否完整、是否可审批、成本是否统计完整。证据和候选详情放到后面,避免复盘一开始被长段 evidence 淹没。