From bcabe2d17b3685f7931344ab47ab237bd9dc484b Mon Sep 17 00:00:00 2001 From: tegwick Date: Fri, 17 Jul 2026 12:20:11 +0200 Subject: [PATCH] BINKY-WP-0004 draft: workstation-independent executor Six tasks from the llm-connect executor assessment: kaizen WP-0006 alignment + schedule opt-in, binky_rhythm_status resolver, OpenBao lanes (incl. non-interactive AppRole for recurring mail scans), executor worker MVP on Railiance, recurring mailbox scan, cutover retiring the cron bridge. Co-Authored-By: Claude Fable 5 --- ...P-0004-workstation-independent-executor.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 workplans/BINKY-WP-0004-workstation-independent-executor.md diff --git a/workplans/BINKY-WP-0004-workstation-independent-executor.md b/workplans/BINKY-WP-0004-workstation-independent-executor.md new file mode 100644 index 0000000..d499ca4 --- /dev/null +++ b/workplans/BINKY-WP-0004-workstation-independent-executor.md @@ -0,0 +1,106 @@ +--- +id: BINKY-WP-0004 +title: "Workstation-Independent Executor" +status: active +--- + +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. + +```task +id: BINKY-WP-0004-T01 +status: todo +priority: high +``` + +## 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). + +```task +id: BINKY-WP-0004-T02 +status: todo +priority: high +``` + +## 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. + +```task +id: BINKY-WP-0004-T03 +status: todo +priority: medium +``` + +## 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. + +```task +id: BINKY-WP-0004-T04 +status: todo +priority: high +``` + +## 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. + +```task +id: BINKY-WP-0004-T05 +status: todo +priority: medium +``` + +## 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. + +```task +id: BINKY-WP-0004-T06 +status: todo +priority: medium +```