Design standards
Nodes, Agent tools, and events are different public contracts. Reusing internal services is healthy; automatically copying their surface from one contract to another is not.
Each interface has its own intent
| Interface | Optimized for | Common mistake |
|---|---|---|
| Node | Explicit composition in a graph, typed bindings, routes, and static guarantees. | Creating a complete CRUD family without a process use case. |
| Tool | Selection by an Agent, easy-to-supply arguments, useful observation, and bounded effect. | Copying a node 1:1 or exposing a generic API to the model. |
| Event | Describe a fact that occurred and its typed context. | Exposing the webhook mechanism rather than the business fact. |
Before publishing a contract
Prove the use case
Describe the business task or outcome that justifies a new public surface.
Prove the authority
Verify that the operation does not fabricate a decision or fact that belongs to another role.
Bound the surface
Define cardinality, limits, errors, effects, repetition, and required context.
Document and test
The contract must not depend on implicit knowledge of the code or provider.