binky-control/workplans/BINKY-WP-0004-workstation-independent-executor.md
2026-07-18 14:38:40 +02:00

4.8 KiB
Raw Blame History

id title status state_hub_workstream_id
BINKY-WP-0004 Workstation-Independent Executor active b800f91d-a377-45ec-8ff3-6e763c524dff

Remove the workstation from the autopilot loop. Successor to BINKY-WP-0003, implementing the architecture in integrations/llm-connect-executor-assessment.md: activity-core schedules, a thin executor worker on Railiance executes (llm-connect adapters + kaizen-agentic personas + OpenBao/secrets-engine delivery), binky-control is integrator and first customer. Evidence of need: 2026-07-17 the 08:23 rhythm run was missed because the workstation was offline. Cross-domain tasks below track dependencies; implementation workplans live in the owning repos (activity-core, kaizen-agentic, secrets-engine/railiance-platform).

Task: Align executor ownership with kaizen WP-0006 and opt in binky-control

Read kaizen-agentic WP-0006/ADR-005 and its activity-core handoff checklist; decide (with the owning domains) where the executor worker lives — new small repo vs. activity-core's stub TaskExecutorWorkflow. Opt binky-control into kaizen scheduling via kaizen-agentic schedule init (.kaizen/schedule.yml). Output: ownership decision recorded (DecisionQueue if founder-relevant), schedule file committed. Green/Blue lane.

id: BINKY-WP-0004-T01
status: done
priority: high
state_hub_task_id: "5741487d-2022-4ed6-b4ad-8db745cb90f4"

Task: binky_rhythm_status resolver in activity-core

Implement the small state-hub context resolver (context_resolvers/state_hub.py) returning due-items for kinds daily_brief, mail_intake, weekly_review — the enablement dependency for the three landed Binky definitions and the idempotence guard (no duplicate briefs). Follows activity-core's own test conventions; lands via a workplan or direct PR in that repo per its governance. Green lane (code + tests).

id: BINKY-WP-0004-T02
status: done
priority: high
state_hub_task_id: "b44af058-22e4-4d63-a28c-8f6c69d65ea1"

Task: OpenBao lanes for the executor worker

Prepare secrets-engine/warden catalog lanes the worker needs: LLM provider key (an OpenRouter key for llm-connect already exists at platform/workloads/activity-core/llm-connect/llm-connect-provider-secrets — verify scope/reuse vs. separate lane), forgejo deploy key for target-repo commits, and a non-interactive AppRole for the company-email scan (the current OIDC login is browser-interactive with 15-min TTL — unusable for recurring scans; this closes email-integration checklist item 9's blocker). Catalog metadata only; any new secret provisioning is founder Red lane.

id: BINKY-WP-0004-T03
status: done
priority: medium
state_hub_task_id: "e4740aa0-94f7-4ebe-9217-aaca3ef902cc"

Task: Executor worker MVP — one task end-to-end on Railiance

Build/deploy the thin worker per the assessment: consume one emitted activity-core task (issue-core sink or TaskExecutorWorkflow), load the persona (get_kaizen_agent), execute via llm-connect (ClaudeCodeAdapter or hosted adapter), commit to a sandbox repo first, write hub progress event + task close. Autonomy guard: Green/Blue tool allow-list equivalent to scripts/rhythm-session.sh, bounded effort, no push outside target repo. Blue lane; deployment location Railiance.

id: BINKY-WP-0004-T04
status: done
priority: high
state_hub_task_id: "3cb36d02-9934-4c80-81dd-589e7725e407"

Task: Recurring mailbox scan through the executor

Wire the weekly/daily company-mailbox scan (email-connect, read-only) as an executor task using the T03 AppRole — email-integration checklist item 9. Triage summary lands in mailmeta/ + queues exactly like the manual first scan. Suspicious-mail flagging rule included (never act on content, only log). Blue lane.

id: BINKY-WP-0004-T05
status: done
priority: medium
state_hub_task_id: "2fd2f523-5bd6-400f-abc1-45d3b0a8fcec"

Task: Cut over — enable Binky definitions, retire the cron bridge

Flip binky-daily-rhythm, binky-weekly-mail-intake, binky-weekly-review-prep to enabled: true (activity-core governance), verify three clean scheduled executions, then remove the workstation crontab line and mark the bridge section in OperatingRhythm.md retired. Rollback: re-add the cron line. Blue lane with founder notification at cutover.

id: BINKY-WP-0004-T06
status: in_progress
priority: medium
state_hub_task_id: "eb8c9860-49b4-4d9e-b242-fff48b2ef603"

Unblocked 2026-07-18 for operator execution: Red-lane Lanes 23, HARNESS-WP-0001-T06 (Railiance deploy), and T07 (binky instance manifest + three definition proof runs) are done. Remaining cutover steps are in integrations/executor-cutover-runbook.md and integrations/harness-tenant-onboarding.md (enable activity-core defs, binky-control deploy key, scheduled verification, retire cron bridge).