agent-native · git:20260907.af1e530 · 2026-09-07 · sha256 2d260537136d11cf
agent-native git:20260907.af1e530A
Immutable. This exact content is served forever at /api/v1/blob/2d260537136d11cf.
--- name: agent-native description: 'Operate explicit orchestrator, implementer, validator, and scribe roles through a caller-selected agent runtime. Triggers: "agent-native factory", "role-shaped agent panes", "persistent workers".' practices: [team-topologies, design-by-contract] hexagonal_role: supporting consumes: [explicit-role-packets] produces: [runtime-evidence, worker-handoff] context_rel: - kind: customer-of with: ntm - kind: customer-of with: codex-exec - kind: customer-of with: agent-mail skill_api_version: 1 user-invocable: true metadata: tier: meta dependencies: [] capabilities: [role_dispatch, observe_workers, handoff] effects: [manage_runtime_sessions] canonical_status: canonical disposition: keep_optional_adapter output_contract: runtime evidence for explicit packets --- # Agent Native Operate caller-selected agent sessions as explicit roles without turning the runtime into AgentOps lifecycle authority. For multi-model judgment (mixed council, dueling perspectives, cross-model validate, which is default on risky surfaces per ADR-0017 and caller-elected otherwise), follow [references/model-dispatch.md](references/model-dispatch.md): the working session is the controller; check the explicitly selected adapter at runtime; no factory is required and Agent Mail is never the judgment path. The recipe owns host authorization, finite input/output, timeout and cleanup requirements. Role requests declare authority; actual native runtime/OS filesystem and egress controls must enforce it. A prompt, worktree, chmod or unrestricted same-user process does not establish isolation. Observe synthetic canary denials before restricted-source work; unavailable protection remains unavailable. When a worker looks stuck, score interventions by evidence and reversibility before acting: observe more (free, fully reversible), then nudge, then replace the worker, then restart the runtime — escalate only when observable state, not impatience, rules out the cheaper step. Stop the observe-nudge cycle once the worker reaches a terminal status or the caller's observation window ends; past that point further intervention manufactures noise, not evidence. Named failure mode — **prompt-send optimism**: treating a successfully delivered prompt as a working worker; delivery proves transport, not engagement. Anti-pattern: restarting an unresponsive worker as the first move. Corrective: capture its observable state first — a restart destroys the evidence of why it stalled, and rescue is usually cheaper than rerun. ## Roles - **Orchestrator:** passes explicit packets and reports runtime facts. - **Implementer:** may modify only its packet's declared subject. - **Validator:** receives exact candidate content in a fresh, read-only context. - **Scribe:** records runtime evidence without judging acceptance. ## Contract 1. Require an explicit packet, role, workspace, context identity, and evidence destination before starting a worker. 2. Prove runtime readiness and engagement from observable state; a successful prompt send is not proof of work. 3. Keep concurrent writers disjoint and isolated. Runtime coordination is not a claim, lease, queue, or completion state in AgentOps. 4. Record provider state, transcript references, artifacts, and terminal status. 5. Return runtime evidence to the caller. Do not convert provider retries, reconnects, idle states, or failures into Plan, Candidate, or verdict state. 6. A validator session may supply judgment to Validate, but only Validate writes `verdict.v2`. The adapter cannot select AgentOps semantics, issue a binding verdict, or turn factory completion into delivery or validation proof. NTM, Codex exec, native processes, Agent Mail, and Gas City are replaceable adapters. Use them only when the caller selected that execution shape. A single local agent pays no factory coordination cost. Model identity, when recorded, is a declared runtime fact like context identity — see [references/model-dispatch.md](references/model-dispatch.md).