mirror of
https://github.com/itme-brain/agent-team.git
synced 2026-05-08 10:40:12 -04:00
4.3 KiB
4.3 KiB
Agent Runtime Config v1
SETTINGS.yaml is the human-authored source of truth for portable runtime intent in this repo.
Team inventory metadata is defined separately in TEAM.yaml (see spec/team-protocol-v1.md). This spec only covers runtime policy.
Goals
- Keep one editable config for approval, filesystem, network, and model intent.
- Generate backward-compatible Claude and Codex outputs from that shared intent.
- Make adapter lossiness explicit where provider config surfaces do not line up.
Scope
Version 1 standardizes:
- portable model tier and reasoning level
- filesystem access intent
- approval intent
- network access intent
- portable tool classes
- protected path rules
- dangerous shell command prompts
- a narrow set of target-specific escape hatches for compatibility overrides
Version 1 does not attempt to standardize:
- every provider model name
- provider-specific tool grammars
- every future runtime capability for local agents, IDE plugins, or hosted agents
Shared fields
model
class:fast | balanced | powerfulreasoning:low | medium | high | max
runtime
filesystem:read-only | workspace-writeapproval:manual | guarded-auto | full-autonetwork_access: booleantools: portable tool classes such asshell,read,edit,write,glob,grep,web_fetch,web_search
safety
protected_paths: glob patterns that should remain blocked from normal reads or writesdangerous_shell_commands.ask: shell command patterns that should remain approval-gated
targets
Target blocks are escape hatches, not the main schema.
Current target-specific fields:
targets.claude.claude_md_excludestargets.codex.approval_policy(optional override of derived approval)targets.codex.network_access(optional override of derived network access)
Authority rules:
runtime.approvalandruntime.network_accessare the portable source of truth.- Codex target fields exist for explicit compatibility overrides and should normally be omitted.
- When Codex target fields are set, they intentionally override the derived Codex value.
- In this repo,
targets.codex.approval_policyandtargets.codex.network_accessare intentionally set so Codex runs withapproval_policy = "never"and network enabled by default. This is a deliberate target-specific compatibility choice, not an accidental divergence.
Adapter rules
Claude Code
settings.json is generated as a compatibility artifact.
runtime.filesystem = read-only->permissions.defaultMode = "plan"runtime.filesystem = workspace-write->permissions.defaultMode = "acceptEdits"runtime.tools-> Claude tool allow-listsafety.protected_paths-> Claudedenyentries forRead,Write, andEditdangerous_shell_commands.ask-> Claudeaskentries wrapped asBash(...)
Lossiness:
- Claude vends
allow/deny/askas tool-pattern rules. - Shared
approvalintent does not map 1:1 to Claude beyondplanvsacceptEdits.
Codex CLI
codex/config.toml is generated directly from shared intent.
runtime.filesystem = read-only->sandbox_mode = "read-only"runtime.filesystem = workspace-write->sandbox_mode = "workspace-write"runtime.approval = manual->approval_policy = "on-request"(unless overridden)runtime.approval = guarded-auto->approval_policy = "untrusted"(unless overridden)runtime.approval = full-auto->approval_policy = "never"(unless overridden)runtime.network_access->[sandbox_workspace_write].network_access
Lossiness:
- Codex does not expose Claude-style per-tool
allow/deny/askpattern controls inconfig.toml. - Protected paths and dangerous command prompts are therefore only partially representable in Codex config today.
- Codex does expose coarse approval controls, including
approval_policyand documented granular approval categories, but not the same pattern-level permission model Claude exposes.
Compatibility contract
The repo preserves these compatibility artifacts:
settings.jsonclaude/settings.jsonclaude/CLAUDE.mdcodex/config.tomlcodex/AGENTS.md- generated agent outputs for both targets
These are build artifacts, not authored source files. SETTINGS.yaml is the required runtime input.