Skip to content

AX principles

bento adopts the AX (Agent Experience) framing — term coined by Matt Biilmann at Netlify in 2025. AX sits alongside DX (Developer Experience): both matter, neither replaces the other.

The principles bento commits to:

  1. Every output is schemaed. Run bento schema <target> for any of: plan, report, why, scaffold, manifest, doctor, error, diagnostics, garnish-payload, prime. Bumping the shape of any of these is a breaking change.

  2. Every mutation is idempotent. Re-running bento mcp install, bento dish add against an already-adopted dir, or bento init against an already-init’d workspace is a structured no-op (or a structured update), never a duplication.

  3. Errors are structured + recoverable. Failures emit a typed envelope (bento schema error) with kind, message, optional hint, and next_steps. Tool diagnostics (cargo / golangci-lint / eslint / ruff) parse into a diagnostics array on each failed task — {file, line, severity, message, rule} ready to feed back to an agent.

  4. MCP-first, not as an afterthought. bento-mcp ships in every release tarball and is registered via bento mcp install for Claude Code, Claude Desktop, Cursor, Windsurf, Codex CLI, OpenCode, and Zed.

  5. Stable string-typed enums everywhere. cache_miss, built, failed, ok, warn, etc. — never numeric discriminants the agent has to memorise.

For wiring an agent into a bento-managed repo, see Using bento with coding agents.