activity-core/activity-definitions/binky-daily-rhythm.md
tegwick b1eb5e6a55
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Build and Publish Container Image / build-and-push (push) Successful in 1m16s
feat(resolvers): binky_rhythm_status query in state-hub resolver
Due-items for the three Binky operating-rhythm definitions
(BINKY-WP-0004-T02). Dueness derives from hub progress events recorded
by the executing session (binky_daily_brief / binky_mail_intake /
binky_weekly_review, detail.repo scoped); weekly_review carries
milestone_moved from event_type=milestone events in the last 7 days
(RISK-005 signal). Definitions' resolver comments updated; definitions
stay enabled:false until cutover (BINKY-WP-0004-T06).

7 new tests; resolver test file 31/31 green. Pre-existing failures in
test_railiance_ops_inventory_wiring/test_schedule_health are untouched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:07:00 +02:00

50 lines
1.7 KiB
Markdown

---
id: binky-daily-rhythm
name: Binky Daily Operating Rhythm
enabled: false
owner: custodian-agent
governance: custodian
status: proposed
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.