Workflows batch: heartbeat knobs, housekeeping.yml, its test in CI #127

Merged
teahubxyz merged 2 commits from ceo/heartbeat-env-knobs into main 2026-10-18 16:10:59 +00:00
Owner

Workflow files, so an owner/CEO merge (needs-human). Three things, all inert until variables are set or the schedule fires:

  1. heartbeat.yml: four env lines. Today's engine changes added knobs the heartbeat job cannot see until the workflow passes them through: TIME_CAP_SLACK (#121: how far past the daily cap a run launched within budget may go, default 1.5); TIME_ANTHROPIC_API (#120: messages, Anthropic's own API with prompt caching, or compat; this is the kill switch if the native path misbehaves live, and it cannot be flipped without this line); TIME_REVIEW_TIEBREAK and TIME_REVIEW_QUORUM (#122: the council's tie-break seat and quorum). Defaults apply until the variables are set.
  2. housekeeping.yml: the daily sweep that landed in #115 (card #83), run at 13:17 UTC and on demand, acting as time, exactly the file in .agents/skills/housekeeping/SKILL.md. Dry-run unless TIME_MODE=live, which this repo sets, so the first scheduled run prunes the merged branches and lists the stale on the Astra log.
  3. ci.yml: runs test_housekeeping.py alongside the other suites (haiku's review of #115 asked for it).

🤖 Generated with Claude Code

https://claude.ai/code/session_017K4vyY3yUD3GsvoZaAtKkD

Workflow files, so an owner/CEO merge (`needs-human`). Three things, all inert until variables are set or the schedule fires: 1. **`heartbeat.yml`: four env lines.** Today's engine changes added knobs the heartbeat job cannot see until the workflow passes them through: `TIME_CAP_SLACK` (#121: how far past the daily cap a run launched within budget may go, default 1.5); `TIME_ANTHROPIC_API` (#120: `messages`, Anthropic's own API with prompt caching, or `compat`; **this is the kill switch** if the native path misbehaves live, and it cannot be flipped without this line); `TIME_REVIEW_TIEBREAK` and `TIME_REVIEW_QUORUM` (#122: the council's tie-break seat and quorum). Defaults apply until the variables are set. 2. **`housekeeping.yml`**: the daily sweep that landed in #115 (card #83), run at 13:17 UTC and on demand, acting as `time`, exactly the file in `.agents/skills/housekeeping/SKILL.md`. Dry-run unless `TIME_MODE=live`, which this repo sets, so the first scheduled run prunes the merged branches and lists the stale on the Astra log. 3. **`ci.yml`**: runs `test_housekeeping.py` alongside the other suites (haiku's review of #115 asked for it). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_017K4vyY3yUD3GsvoZaAtKkD
teahubxyz added 1 commit 2026-10-18 05:02:00 +00:00
Without these lines the engine sees only its defaults: the slack (1.5), the native Anthropic API (and no way to switch
back to compat without a code change), one-seat quorum and no tie-break seat.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017K4vyY3yUD3GsvoZaAtKkD
teahubxyz added the needs-human label 2026-10-18 05:02:23 +00:00
teahubxyz added 1 commit 2026-10-18 05:04:43 +00:00
The sweep itself landed in #115; the workflow is the owner's merge. Dry-run unless TIME_MODE=live (which the repo sets).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017K4vyY3yUD3GsvoZaAtKkD
teahubxyz changed title from heartbeat.yml: pass TIME_CAP_SLACK, TIME_ANTHROPIC_API, TIME_REVIEW_TIEBREAK and TIME_REVIEW_QUORUM through to Workflows batch: heartbeat knobs, housekeeping.yml, its test in CI 2026-10-18 05:04:59 +00:00
teahubxyz merged commit 0543771a02 into main 2026-10-18 16:10:59 +00:00
Sign in to join this conversation.