activity-core/activity-definitions/binky-daily-rhythm.md

51 lines
1.7 KiB
Markdown
Raw Normal View History

---
id: binky-daily-rhythm
name: Binky Daily Operating Rhythm
enabled: true
owner: custodian-agent
governance: custodian
status: active
trigger:
type: cron
cron_expression: "23 8 * * 1-5" # weekdays 08:23
timezone: Europe/Berlin
misfire_policy: skip
context_sources:
- type: state-hub
query: binky_rhythm_status
params:
repo: binky-control
bind_to: context.rhythm
# Resolver implemented (BINKY-WP-0004-T02): returns
# {items: [{kind: "daily_brief", due: bool, date: "YYYY-MM-DD",
# last_run_at}]} — due is true when no binky_daily_brief progress event with
# detail.repo=binky-control exists for today (Europe/Berlin). The executing
# session must record that event on completion (idempotence guard).
---
# Binky Daily Operating Rhythm
Runs weekdays at 08:23 Berlin time. Emits one task per due rhythm item for
the binky-control repo: queue hygiene plus the daily brief, per
`binky-control/OperatingRhythm.md` (Decide now / Progress / Risks / Best
next hour, one-screen cap). Replaces the workstation cron bridge
(`binky-control/scripts/rhythm-session.sh`) once enabled — remove the
crontab line at that point.
```rule
id: emit-daily-rhythm-task
for_each: context.rhythm.items
bind_as: item
condition: 'context.item.due'
action:
task_template: Run Binky daily rhythm ({context.item.kind}) for {context.item.date}
description: Queue hygiene + daily brief per binky-control/OperatingRhythm.md. Green/Blue lane only.
target_repo: binky-control
priority: medium
labels: ["binky", "rhythm", "automated"]
```
Execution target: emitted tasks land in the issue-core REST sink; actual
execution requires an executor (llm-connect assessment,
BINKY-WP-0003-T06) — until then the workstation bridge covers this slot.