diff --git a/templates/agent-codex/plugins/cortextos-agent-skills/skills/autoresearch/SKILL.md b/templates/agent-codex/plugins/cortextos-agent-skills/skills/autoresearch/SKILL.md index 9cd2d5d922..2d9a962189 100644 --- a/templates/agent-codex/plugins/cortextos-agent-skills/skills/autoresearch/SKILL.md +++ b/templates/agent-codex/plugins/cortextos-agent-skills/skills/autoresearch/SKILL.md @@ -34,6 +34,7 @@ Read the output carefully. Pay attention to: ### Step 2: Evaluate Previous Experiment If there is an active experiment (check `experiments/active.json`): +- **Check whether the experiment's own window has actually closed (`started_at` + `window`) before doing anything else.** Your cron's fixed cadence and the experiment's window are two independent clocks — they will not always land on the same moment (added 2026-09-03, boss/marketing: a weekly cron fired 18h43m before that cycle's window closed). If the window has NOT closed yet: **skip evaluation this fire, do nothing else with this experiment, and let it run to your next cron fire.** Do not evaluate early to avoid "wasting" this fire (violates the window), and do not treat the still-running experiment as orphaned or stale just because this particular fire landed early — it isn't overdue, your clock is just out of phase with it this cycle. Log a one-line heartbeat/memory note that you're bridging, then move on to other cron work this fire. - Compare ALL relevant aspects: the surface changes you made, the context around those changes, and the output metric - Measure the metric using the configured measurement method - Run evaluate-experiment: diff --git a/templates/agent-opencode/plugins/cortextos-agent-skills/skills/autoresearch/SKILL.md b/templates/agent-opencode/plugins/cortextos-agent-skills/skills/autoresearch/SKILL.md index f54b85c5a8..ef1f8bc188 100644 --- a/templates/agent-opencode/plugins/cortextos-agent-skills/skills/autoresearch/SKILL.md +++ b/templates/agent-opencode/plugins/cortextos-agent-skills/skills/autoresearch/SKILL.md @@ -34,6 +34,7 @@ Read the output carefully. Pay attention to: ### Step 2: Evaluate Previous Experiment If there is an active experiment (check `experiments/active.json`): +- **Check whether the experiment's own window has actually closed (`started_at` + `window`) before doing anything else.** Your cron's fixed cadence and the experiment's window are two independent clocks — they will not always land on the same moment (added 2026-09-03, boss/marketing: a weekly cron fired 18h43m before that cycle's window closed). If the window has NOT closed yet: **skip evaluation this fire, do nothing else with this experiment, and let it run to your next cron fire.** Do not evaluate early to avoid "wasting" this fire (violates the window), and do not treat the still-running experiment as orphaned or stale just because this particular fire landed early — it isn't overdue, your clock is just out of phase with it this cycle. Log a one-line heartbeat/memory note that you're bridging, then move on to other cron work this fire. - Compare ALL relevant aspects: the surface changes you made, the context around those changes, and the output metric - Measure the metric using the configured measurement method - Run evaluate-experiment: diff --git a/templates/agent/.claude/skills/autoresearch/SKILL.md b/templates/agent/.claude/skills/autoresearch/SKILL.md index fdabb69f59..6e85a1c72a 100644 --- a/templates/agent/.claude/skills/autoresearch/SKILL.md +++ b/templates/agent/.claude/skills/autoresearch/SKILL.md @@ -35,6 +35,7 @@ Read the output carefully. Pay attention to: ### Step 2: Evaluate Previous Experiment If there is an active experiment (check `experiments/active.json`): +- **Check whether the experiment's own window has actually closed (`started_at` + `window`) before doing anything else.** Your cron's fixed cadence and the experiment's window are two independent clocks — they will not always land on the same moment (added 2026-09-03, boss/marketing: a weekly cron fired 18h43m before that cycle's window closed). If the window has NOT closed yet: **skip evaluation this fire, do nothing else with this experiment, and let it run to your next cron fire.** Do not evaluate early to avoid "wasting" this fire (violates the window), and do not treat the still-running experiment as orphaned or stale just because this particular fire landed early — it isn't overdue, your clock is just out of phase with it this cycle. Log a one-line heartbeat/memory note that you're bridging, then move on to other cron work this fire. - Compare ALL relevant aspects: the surface changes you made, the context around those changes, and the output metric - Measure the metric using the configured measurement method - Run evaluate-experiment: diff --git a/templates/analyst/.claude/skills/autoresearch/SKILL.md b/templates/analyst/.claude/skills/autoresearch/SKILL.md index 4f67789469..bfe29ae199 100644 --- a/templates/analyst/.claude/skills/autoresearch/SKILL.md +++ b/templates/analyst/.claude/skills/autoresearch/SKILL.md @@ -35,6 +35,7 @@ Read the output carefully. Pay attention to: ### Step 2: Evaluate Previous Experiment If there is an active experiment (check `experiments/active.json`): +- **Check whether the experiment's own window has actually closed (`started_at` + `window`) before doing anything else.** Your cron's fixed cadence and the experiment's window are two independent clocks — they will not always land on the same moment (added 2026-09-03, boss/marketing: a weekly cron fired 18h43m before that cycle's window closed). If the window has NOT closed yet: **skip evaluation this fire, do nothing else with this experiment, and let it run to your next cron fire.** Do not evaluate early to avoid "wasting" this fire (violates the window), and do not treat the still-running experiment as orphaned or stale just because this particular fire landed early — it isn't overdue, your clock is just out of phase with it this cycle. Log a one-line heartbeat/memory note that you're bridging, then move on to other cron work this fire. - Compare ALL relevant aspects: the surface changes you made, the context around those changes, and the output metric - Measure the metric using the configured measurement method - Run evaluate-experiment: diff --git a/templates/orchestrator/.claude/skills/autoresearch/SKILL.md b/templates/orchestrator/.claude/skills/autoresearch/SKILL.md index e359d2b06f..5a3b33f9be 100644 --- a/templates/orchestrator/.claude/skills/autoresearch/SKILL.md +++ b/templates/orchestrator/.claude/skills/autoresearch/SKILL.md @@ -35,6 +35,7 @@ Read the output carefully. Pay attention to: ### Step 2: Evaluate Previous Experiment If there is an active experiment (check `experiments/active.json`): +- **Check whether the experiment's own window has actually closed (`started_at` + `window`) before doing anything else.** Your cron's fixed cadence and the experiment's window are two independent clocks — they will not always land on the same moment (added 2026-09-03, boss/marketing: a weekly cron fired 18h43m before that cycle's window closed). If the window has NOT closed yet: **skip evaluation this fire, do nothing else with this experiment, and let it run to your next cron fire.** Do not evaluate early to avoid "wasting" this fire (violates the window), and do not treat the still-running experiment as orphaned or stale just because this particular fire landed early — it isn't overdue, your clock is just out of phase with it this cycle. Log a one-line heartbeat/memory note that you're bridging, then move on to other cron work this fire. - Compare ALL relevant aspects: the surface changes you made, the context around those changes, and the output metric - Measure the metric using the configured measurement method - Run evaluate-experiment: