Skip to content

Latest commit

 

History

History
334 lines (249 loc) · 7.92 KB

File metadata and controls

334 lines (249 loc) · 7.92 KB

Provider Capability Matrix

This report is generated from the provider capability registry. It lists supported, partially supported, and unsupported adapter surfaces.

Coverage Summary

Provider Display name Coverage
claude Claude Code full
codex Codex partial
gemini Gemini CLI partial
kimi Kimi Code CLI partial
generic Generic fallback unsupported

Provider Details

Claude Code

  • Provider id: claude
  • Coverage: full
  • Settings target: .claude/settings.local.json
  • MCP setup: project .mcp.json stdio server
  • Block response shape: hookSpecificOutput.permissionDecision = deny
  • Context/advice shape: hookSpecificOutput additionalContext and updatedInput
  • Memory interception: provider memory imports into .coding-ethos/memories
  • Memory fallback: central memory guidance when writes target managed paths
  • Verification: TestSyncAndVerifySettingsRunsProviderSmokePayloads

Native settings:

  • .claude/settings.local.json
  • .mcp.json

Hook events:

  • PreToolUse
  • PostToolUse
  • PostToolBatch
  • PreCompact
  • SessionStart
  • UserPromptSubmit
  • Stop
  • SessionEnd
  • SubagentStart
  • SubagentStop

Generated targets:

  • CLAUDE.md
  • .claude/skills/*/SKILL.md
  • .claude/ethos/MEMORY.md
  • .mcp.json

Supported surfaces:

  • PreToolUse block
  • PreToolUse updatedInput rewrite
  • PostToolUse additionalContext
  • PostToolUse edit verification advice
  • PostToolBatch additionalContext
  • PreCompact capture
  • SessionStart additionalContext
  • UserPromptSubmit additionalContext
  • Stop additionalContext
  • SessionEnd additionalContext
  • SubagentStart additionalContext
  • SubagentStop additionalContext
  • MCP stdio server

Partially supported surfaces:

  • none

Unsupported surfaces:

  • none

Safety caveats:

  • none

Codex

  • Provider id: codex
  • Coverage: partial
  • Settings target: .codex/config.toml
  • MCP setup: .codex/config.toml mcp_servers.coding-ethos stdio server
  • Block response shape: exit 2 with stderr reason or decision = block plus permissionDecision = deny for PreToolUse
  • Context/advice shape: additionalContext where native; compact systemMessage otherwise
  • Memory interception: provider memory imports into .coding-ethos/memories
  • Memory fallback: memory.centralized denial points at the central memory file
  • Verification: TestSyncAndVerifySettingsRunsProviderSmokePayloads

Native settings:

  • .codex/config.toml

Hook events:

  • PreToolUse
  • PostToolUse
  • SessionStart
  • UserPromptSubmit
  • Stop

Generated targets:

  • AGENTS.md
  • .codex/skills/*/SKILL.md
  • .codex/config.toml

Supported surfaces:

  • PreToolUse block
  • PreToolUse native command hook
  • PreToolUse apply_patch/edit policy hook
  • PostToolUse compact additionalContext
  • PostToolUse edit verification advice
  • SessionStart additionalContext
  • UserPromptSubmit additionalContext
  • Stop compact systemMessage
  • MCP stdio server

Partially supported surfaces:

  • lifecycle context is compacted because Codex flattens multiline allowed context

Unsupported surfaces:

  • PreToolUse updatedInput rewrite
  • PostToolBatch additionalContext
  • SessionEnd additionalContext
  • SubagentStart additionalContext
  • SubagentStop additionalContext

Safety caveats:

  • none

Gemini CLI

  • Provider id: gemini
  • Coverage: partial
  • Settings target: .gemini/settings.json
  • MCP setup: .gemini/settings.json mcpServers.coding-ethos stdio server
  • Block response shape: decision = deny plus systemMessage
  • Context/advice shape: additionalContext on supported lifecycle hooks
  • Memory interception: provider memory imports into .coding-ethos/memories
  • Memory fallback: memory.centralized denial points at the central memory file
  • Verification: TestSyncAndVerifySettingsRunsProviderSmokePayloads

Native settings:

  • .gemini/settings.json

Hook events:

  • BeforeTool
  • AfterTool
  • BeforeAgent
  • AfterAgent
  • SessionStart
  • SessionEnd

Generated targets:

  • GEMINI.md
  • .gemini/extensions/coding-ethos/gemini-extension.json
  • .gemini/extensions/coding-ethos/skills/*/SKILL.md
  • .coding-ethos/gemini/prompt-pack.json
  • .gemini/settings.json

Supported surfaces:

  • BeforeTool deny
  • BeforeTool systemMessage
  • PreToolUse updatedInput rewrite
  • AfterTool additionalContext
  • AfterTool edit verification advice
  • BeforeAgent additionalContext
  • AfterAgent additionalContext
  • SessionStart additionalContext
  • SessionEnd additionalContext
  • MCP stdio server

Partially supported surfaces:

  • BeforeTool maps to PreToolUse for run_shell_command, write_file, replace, and MultiEdit
  • AfterTool maps to PostToolUse for run_shell_command, write_file, replace, and MultiEdit

Unsupported surfaces:

  • PostToolBatch additionalContext
  • PreCompact capture
  • SubagentStart additionalContext
  • SubagentStop additionalContext

Safety caveats:

  • none

Kimi Code CLI

  • Provider id: kimi
  • Coverage: partial
  • Settings target: .kimi-code/config.toml
  • MCP setup: .kimi-code/mcp.json stdio server in the generated KIMI_CODE_HOME overlay
  • Block response shape: exit 2 with stderr reason or hookSpecificOutput.permissionDecision = deny
  • Context/advice shape: message for context; Stop deny continues the turn once
  • Memory interception: central memory guidance through portable AGENTS.md
  • Memory fallback: read and write .coding-ethos/memories/MEMORY.md
  • Verification: TestSyncAndVerifySettingsRunsProviderSmokePayloads

Native settings:

  • .kimi-code/config.toml
  • .kimi-code/mcp.json

Hook events:

  • PreToolUse
  • PostToolUse
  • PostToolUseFailure
  • PermissionRequest
  • PermissionResult
  • UserPromptSubmit
  • Stop
  • StopFailure
  • Interrupt
  • SessionStart
  • SessionEnd
  • SubagentStart
  • SubagentStop
  • PreCompact
  • PostCompact
  • Notification

Generated targets:

  • AGENTS.md
  • .agents/skills/*/SKILL.md
  • .kimi-code/config.toml
  • .kimi-code/mcp.json

Supported surfaces:

  • PreToolUse block
  • PostToolUse context
  • PostToolUseFailure observation
  • PermissionRequest observation
  • PermissionResult observation
  • UserPromptSubmit block and context
  • Stop continuation through deny
  • SessionStart context
  • SessionEnd observation
  • SubagentStart observation
  • SubagentStop observation
  • PreCompact observation
  • PostCompact observation
  • Notification observation
  • MCP stdio server

Partially supported surfaces:

  • hook command failures other than exit 2 are fail-open in Kimi
  • only PreToolUse, UserPromptSubmit, and Stop are blockable by Kimi

Unsupported surfaces:

  • PreToolUse updatedInput rewrite
  • provider-native skill generation

Safety caveats:

  • launch Kimi with KIMI_CODE_HOME set to the generated .kimi-code overlay
  • Kimi hooks are not a substitute for provider permission approval

Generic fallback

  • Provider id: generic
  • Coverage: unsupported
  • Settings target: none
  • MCP setup: manual stdio MCP client configuration
  • Block response shape: none; no provider-native hook decision shape
  • Context/advice shape: portable Markdown and MCP responses only
  • Memory interception: none; providers must write central memory directly
  • Memory fallback: read and write .coding-ethos/memories/MEMORY.md
  • Verification: TestProviderCapabilityMatrixSyncAndCheckDetectDrift

Native settings:

  • none

Hook events:

  • none

Generated targets:

  • AGENTS.md
  • ETHOS.md
  • .agents/ethos/*.md
  • .agents/skills/*/SKILL.md

Supported surfaces:

  • portable root guidance
  • portable ETHOS.md guidance
  • portable skill surfaces
  • manual MCP stdio server configuration

Partially supported surfaces:

  • none

Unsupported surfaces:

  • native hook settings generation
  • provider-native block response
  • provider-native context injection
  • provider-native updatedInput rewrite
  • automatic memory write interception

Safety caveats:

  • generic fallback providers must route policy checks through MCP or explicit CLI commands
  • generic fallback providers do not receive automatic provider-native hook enforcement