Skip to content

2026

Portable agent definitions compiled to four runtimes

Declarative YAML agent definitions validated once and compiled to native configuration for Claude Code, Codex CLI, OpenCode and Gemini CLI.

  • Python
  • YAML
  • Pydantic
  • pytest
  • Arquitectura hexagonal

Problem

Every coding-agent runtime uses its own configuration format. Maintaining the same agent in four places means four files that drift apart, and finding out at runtime that a target does not support what you asked for.

Solution

One declarative definition as the single source of truth, pushed through a five-stage pipeline: parse, validate whether it is structurally correct, lint whether it is also a good idea, analyse what each target runtime really supports, and compile to its native configuration.

Separating validation, lint and capability analysis is deliberate and recorded as an architecture decision: they answer three different questions, and merging them produces confusing errors.

Architecture

YAML / JSON / API Python parsing/ domain/ <- modelo independiente del runtime validation/ <- es correcto? lint/ <- es buena idea? capability/ <- lo soporta el destino? compiler/ adapters/ Claude Code | Codex | OpenCode | Gemini

Technical decisions

  • The core does not execute agents, manage worktrees or ship a UI: scope closed on purpose.
  • Documented CLI/JSON contract so other tooling can build on top.
  • Permission model and skill format captured as ADRs, including the choice to use real SKILL.md instead of inventing a format.
  • Hexagonal architecture: isolated domain, one adapter per runtime.

Result

Working core with architecture, contract and capability documentation, plus example projects: a repository maintainer and a SAP Business One pair of developer and reviewer agents.

Contact

Let's work together on your next project

If you have a SAP Business One project, a pending integration or simply a question, send me a message. I reply to everything.

Location
Palma, Mallorca