Tooling Command APIs
Morph packages can own CLI behavior through tooling descriptors and tooling implementations.
Tooling Is A First-Class Extension Surface
A package command is not just a helper function.
It is part of the package contract:
- command identity
- aliases
- usage/help text
- execution behavior
This lets commands live in package space instead of in core dispatch tables.
What Tooling Features Own
A tooling feature can own:
- top-level commands
- nested commands
- package-specific diagnostics
- orchestration over build or execution hosts
Examples already exist in packages such as Build, Vcon, and Test.
Why This Matters
If commands are hardcoded in core:
- every new package command requires core edits
- plugin ownership is broken
- build and execution behavior become centralized again
Tooling APIs prevent that by making commands discoverable through the Morph graph.
What Package Authors Should Do
If your package needs a command:
- add a package-owned tooling feature
- declare command metadata through the package system
- implement the behavior inside the package
If the current tooling host cannot express the command pattern, widen the generic tooling API.
What Package Authors Should Not Do
Do not:
- hardcode new command names in core dispatch
- attach one package's command behavior to generic CLI files
- bypass tooling descriptors with manual side-channel registration
Next Steps
- Execution And Build Descriptors - package-owned execution and build metadata
- Generated Glue And Factories - how descriptor declarations connect to code