Agent Runtime Contract Handshake
Homeboy owns the generic protocol for agent runtime handoff. Extensions own the runtime-specific facts that populate that protocol. Core records schema names, required fields, redaction boundaries, and phase order; it does not know how to run Rust, Node.js, WordPress, or any other runtime.
The CLI-visible registry is exported by homeboy agent-task contract under
agent_runtime_handshake with schema
homeboy/agent-runtime-contract-handshake/v1.
Phases
runtime_capability_manifestis extension-provided. It declares runtime identity, executor providers, capabilities, and runtime-owned declarations viahomeboy/agent-runtime-manifest/v1andhomeboy/agent-task-executor-provider/v1.readiness_checksis extension-provided. It declares generic readiness probes such as secret env names, env-path checks, executable candidates, and remediation text. Homeboy evaluates the generic shape without branching on a runtime implementation.materialization_planis Homeboy-resolved. It turns extension declarations intohomeboy/agent-runtime-materialization-plan/v1so runners can route, copy, mount, or diagnose runtime inputs.secret_env_planis Homeboy-resolved. Extensions name required env vars; Homeboy resolves redacted status and handoff withhomeboy/secret-env-plan/v1.resolved_execution_contractis Homeboy-resolved. It binds the selected provider, runtime id/path, readiness checks, workspace summary, capabilities, and secret env plan reference/object inhomeboy/resolved-agent-runtime-execution-contract/v1.result_artifact_declarationsis provider-result-provided. Runtime providers report outcome status and artifacts/evidence using Homeboy’s generic outcome and artifact schemas.
Boundary
Extensions provide declarations and results. Homeboy provides the contract vocabulary, validates required wire fields through serde-backed structs, resolves generic plans, and keeps secret values out of extension-visible contract exports.
Runtime implementation belongs in extensions. Adding a new runtime should add or update extension manifests/providers, not Homeboy core branches for runtime languages, package managers, CMSs, or framework-specific behavior.