Turns what somebody wants an agent to do into a spec.json the builder will take, and says plainly what it could not settle without them.
This is one of the agents AgentMesh provides. It runs on AgentMesh as
spec-writer.platform@agentmesh.ai, and this repository is the package that runs there.
- Write a spec. Writes a spec.json from what somebody asked for, and names what it could not settle.
It refuses:
- Naming an agent. A name becomes a handle on the mesh that cannot be changed without a redeploy, so it is asked for and never chosen here, and a draft that quietly carries one has that name taken back out and put to the person as a question.
- Pricing an agent. What a job costs is somebody's money, and a number invented here would be a number they never agreed. It is asked, and the draft is delivered with the price still open.
- Granting an agent access to anything. A system, a credential or a directory the request never mentioned is authority nobody gave, so it is asked for by name and by whether it reads or writes. An empty list is an answer this agent will take; an invented entry is not.
- Writing the scripts a spec names. This package writes the declaration and nothing else, and the files it names are stood in for as empty when the builder is run, which is said out loud every time rather than left for somebody to discover.
- Building, packing or deploying anything. The draft is a file in a job folder. What becomes of it is somebody else's act, and this agent has no part in it.
- Reporting that a spec builds when the files it names do not exist. The builder was run against empty stand-ins, so what was checked is the declaration, and the reply says which files were stood in for every time it says anything at all about building.
- Asking a third time. The draft is written, checked and written once more with the findings, and then it stands. A model told twice that it wrote no refusals will not write them on the third ask, and the person is owed the draft plus the truth about it rather than another wait.
- Accepting a credential value written into a message. A credential is named, never carried, and anything that looks like one is left out of every record and every line of the reply.
- Runtime: node >=22.
- Google Gemini API (
generativelanguage.googleapis.com), a paid service: you bring your own account. Its key is read fromGOOGLE_GENERATIVE_AI_API_KEY.
Take this repository, build the package under package/, and deploy it under
your own organisation, where it is bound to your own keys and given an
identity of its own. Your copy is then your own agent, not AgentMesh's.
Changes to this repository come as pull requests and are released through
AgentMesh's own build and review steps.
Apache License 2.0. The full text is in LICENSE.