Host conformance matrix#
Generated from conformance/host-conformance.json. Do not edit by hand. adapter-contract rows prove Conduit's projection contract only; runtime selection requires host-bound evidence generated by the consuming host.
Each lifecycle cell is event / decision / context fidelity.
| Adapter | Adapter version | Evidence scope | Host | Host version | Session start | Before model | Before tool | After tool | Stop | Probe | Limitations |
|---|---|---|---|---|---|---|---|---|---|---|---|
| claude-code | 0.7.1 | adapter-contract | unbound | unbound | native / unavailable / native | approximated / unavailable / native | native / native / native | native / unavailable / unavailable | native / native / unavailable | pass | before-model is projected through prompt submission hooks; capability.influence.after-tool.contextInjection=unavailable; capability.influence.after-tool.decision=unavailable; capability.influence.before-model.decision=unavailable; capability.influence.session-start.decision=unavailable; capability.influence.stop.contextInjection=unavailable; capability.install.context=static-only; capability.lifecycle.before-model=approximated; context assets are static instructions; host extension surfaces are not exercised by this reference row |
| codex | 0.7.1 | adapter-contract | unbound | unbound | unavailable / unavailable / unavailable | unavailable / unavailable / unavailable | native / native / native | unavailable / unavailable / unavailable | observational / unavailable / unavailable | pass | before-tool influence requires a trusted Codex hook definition; capability.influence.after-tool.contextInjection=unavailable; capability.influence.after-tool.decision=unavailable; capability.influence.before-model.contextInjection=unavailable; capability.influence.before-model.decision=unavailable; capability.influence.session-start.contextInjection=unavailable; capability.influence.session-start.decision=unavailable; capability.influence.stop.contextInjection=unavailable; capability.influence.stop.decision=unavailable; capability.install.agent=unavailable; capability.install.command=unavailable; capability.install.context=static-only; capability.install.hook=approximated; capability.install.prompt=static-only; capability.lifecycle.after-tool=unavailable; capability.lifecycle.before-model=unavailable; capability.lifecycle.session-start=unavailable; capability.lifecycle.stop=observational; host extension surfaces are not exercised by this reference row; lifecycle observation requires host-owned notification binding |
| kiro | 0.7.1 | adapter-contract | unbound | unbound | native / unavailable / native | native / unavailable / native | native / native / unavailable | native / unavailable / unavailable | native / native / unavailable | pass | Kiro CLI 2.13+ hook registration is supplied by the caller; blocking applies to pre-tool and stop hooks; capability.influence.after-tool.contextInjection=unavailable; capability.influence.after-tool.decision=unavailable; capability.influence.before-model.decision=unavailable; capability.influence.before-tool.contextInjection=unavailable; capability.influence.session-start.decision=unavailable; capability.influence.stop.contextInjection=unavailable; capability.install.command=unavailable; capability.install.context=static-only; command assets have no native Kiro CLI resource kind; context files are startup resources; host hook processes are not exercised by this reference row |
| opencode | 0.7.1 | adapter-contract | unbound | unbound | native / native / native | native / native / native | native / native / native | native / native / native | approximated / native / native | pass | capability.lifecycle.stop=approximated; host extension surfaces are not exercised by this reference row; stop is derived from session lifecycle events |
| pi | 0.7.1 | adapter-contract | unbound | unbound | native / unavailable / unavailable | native / unavailable / native | native / native / unavailable | native / unavailable / unavailable | native / unavailable / unavailable | pass | Pi 0.80.6+ extension registration is supplied by the caller; agent assets have no native Pi resource kind; capability.influence.after-tool.contextInjection=unavailable; capability.influence.after-tool.decision=unavailable; capability.influence.before-model.decision=unavailable; capability.influence.before-tool.contextInjection=unavailable; capability.influence.session-start.contextInjection=unavailable; capability.influence.session-start.decision=unavailable; capability.influence.stop.contextInjection=unavailable; capability.influence.stop.decision=unavailable; capability.install.agent=unavailable; capability.install.command=approximated; capability.install.context=static-only; commands require extension registration; context files are static instructions; host extension surfaces are not exercised by this reference row |
| strands | 0.7.1 | adapter-contract | unbound | unbound | native / native / native | native / native / native | native / native / native | native / native / native | native / native / native | pass | capability.install.agent=approximated; capability.install.command=approximated; capability.install.skill=approximated; framework objects and hook registration are supplied by the caller; host extension surfaces are not exercised by this reference row |
| voltagent | 0.7.1 | adapter-contract | unbound | unbound | native / native / native | native / native / native | native / native / native | native / native / native | native / native / native | pass | capability.install.command=approximated; capability.install.skill=approximated; framework objects and hook registration are supplied by the caller; host extension surfaces are not exercised by this reference row |