An extension isn't a bolted-on plugin: it's a declared capability.
In most platforms an extension lives at the margins: a plugin hooking into a foreseen point, with its own permission model, its own interface and its own life. It works as long as someone remembers it exists.
Here it's different, and the difference is structural. A tool built on this base declares itself as a resource — which actions it exposes, which fields it accepts, what it returns, what to do on error — and enters the Capability Registry alongside everything else. From that moment it's a capability like any other: a pipeline invokes it as it would an internal operation, the orchestrator can include it in a compiled plan, and the permissions that apply to whoever invokes it apply there too.
The consequence that really matters: what you build isn't an exception to maintain on the side. It has no authorisation layer of its own to keep aligned, it isn't invisible to the AI agent, it doesn't escape traceability. It's why extensibility here doesn't produce the technical debt it usually does.