Code freezes intent at compile time. Text re-interprets it on every run.
So it started with SKILL.md, DESIGN.md, now COMPANY.md, BRAIN.md, SOUL.md and so on.
This is for me reminiscent of the first days of Ethereum, before any ERC was settled and everybody was just doing slightly the same, but differently. And to solve the problems that this would incur, incompatibility and non interoperability, the Ethereum foundation launched its Ethereum Improvement Proposal, a registry of standardized interfaces for smart contracts.
Well, you see where I'm going right ? We need our standard for .MD based specs. A set of interoperable primitives that we can reuse.
The SKILL.md is a good example of existing de facto standard, but has multiple implementation. And with NEWTHING.md coming every weeks, it will only get worse if we don't have a common language for it.
No more guessing if it "skill.title or skill.name", nor hydration plumbing to resolve Agents from different AGENTS.md specs.
So I'll open the dance with https://agentproto.sh/docs and its github https://github.com/agentproto/agentproto
I'm trying to think it composable, extendable, most aip like IDENTITY.md allow to create any kinds of layers, not a fixed presets.
Would love to get your thoughts, and maybe getting a handful of people to build those specs with me.
I think this can go further than a standard. The implementation itself of these standards could be defined as specs. Let's say we have a TOOL.md that declares it's own code, and could be converted to ai-sdk, or mastra tool with an adapter.
So that the agent could easily add a method to itself, fix a bug, deploy etc. Being "physically" having access to all its components, such as memory, runtime, sandbox, cli etc.
This is an exemple for TOOL.md https://agentproto.sh/docs/aip-14 and it's ts implementation https://github.com/agentproto/ts that takes the code from within the specs.
Happy to exchange or get in touch !
Jérémy