← Submission landing

KeeperHub bounty judges + Luca's team

SBO3L → KeeperHub Best Use

Source: docs/submission/bounty-keeperhub.md

SBO3L → KeeperHub Best Use

Audience: KeeperHub bounty judges + Luca’s team. Length: ~500 words. Detailed technical narrative at docs/keeperhub-integration-paths.md.

Hero claim

KeeperHub executes. SBO3L proves the execution was authorised. Two complementary layers in the same agent stack — the policy boundary and the execution substrate — designed from the start to compose without either side absorbing the other’s responsibility.

Why this bounty

KeeperHub is positioned as the execution layer for AI agents onchain. The integration with SBO3L is a thin adapter, not a rewrite: KeeperHub records what was executed, SBO3L records why it was authorised. SBO3L’s KeeperHubExecutor::live_from_env() POSTs the IP-1 envelope to a real workflow webhook the moment a decision: allow is signed; the executionId KeeperHub returns is captured into the Passport capsule’s execution.live_evidence. Denied actions never reach the sponsor. Allowed actions arrive with a signed envelope that lets any auditor cryptographically link the upstream policy decision to the eventual KeeperHub execution row — without trusting either side to correlate honestly.

Technical depth

Five integration paths (IP-1..IP-5) catalogued in docs/keeperhub-integration-paths.md, each independently small and reviewable:

#ShapeAdoption cost on KH side
IP-1sbo3l_* upstream-proof envelope fields on the workflow webhook4-5 optional string fields, echo on lookup
IP-2Public submission/result envelope JSON SchemaOne JSON Schema file under your docs
IP-3keeperhub.lookup_execution(execution_id) MCP toolOne MCP tool definition + thin handler
IP-4Standalone sbo3l-keeperhub-adapter Rust crateListing on your “integrations” page; crates.io publication target
IP-5SBO3L Passport capsule URI on the execution rowOne optional string column

Stacking the shapes gives end-to-end offline auditability of every KeeperHub execution that flowed through SBO3L. sbo3l-keeperhub-adapter is published standalone on crates.io (1.2.0 LIVE), so any third-party adapter author can depend on it without pulling the rest of SBO3L.

Adapter has both local_mock() (CI-safe default — produces a deterministic kh-<ULID> execution_ref, prints mock: true) and live_from_env() (real wfb_… token + workflow id) constructors. Mock and live are first-class peers; mock is the CI default for determinism, live is exercised explicitly per smoke gate.

Live verification (judges click these)

A KeeperHub auditor today reading an execution row has no cryptographic link back to whoever authorised the action. With IP-1 alone, that link becomes one offline verification. With IP-1 + IP-5, that link becomes one HTTP fetch. Neither IP-1 nor IP-5 requires KeeperHub to absorb any SBO3L logic — both are optional fields that KeeperHub echoes on lookup. This is the lightest possible adoption path that turns “trust me” into “verify it.”

If KeeperHub merges IP-1 + IP-5 (estimated ~1 week of engineering on KH’s side based on the field shapes), every execution row gains a falsifiable upstream proof — at zero runtime cost to KeeperHub, zero schema break for existing consumers.