Tooling, Build, And Execution
Morph packages can own commands, execution formats, and build providers.
This is a major part of the modern Morph model.
Tooling Is Package Space
Commands do not have to be core-owned.
Packages can own tooling behavior such as:
- test commands
- execution commands
- build commands
- provider-specific tooling actions
Examples from the repo:
Testowns testing behaviorVconowns VCON command behaviorBuildowns generic build orchestration
Concrete anchors in this repo:
- Package-owned CLI implementations are typically listed under the package root
morph.toml[build].cli_sources(for example Core listsfeatures/tooling/Commands.cpp). - Runtime-facing tooling that needs access to the manifest graph uses
nir/morph/MorphManifest.h(for examplemorphs/Core/features/tooling/Commands.cpp).
Execution Is Package Space
Execution formats and engines can be package-owned too.
That is why Vcon exists as a Morph package:
- the format is package-owned
- the engine is package-owned
- the command surface is package-owned
Core should provide execution host capability, not own one execution format as a special case.
Build Is Split Ownership
Build ownership is usually divided into:
- generic orchestration in
Build - concrete platform behavior in platform packages
Examples:
Buildowns provider-neutral build flowWindowsowns Windows-specific provider behaviorWebowns web-specific provider behavior
What Plugin Authors Should Learn From This
If your feature needs:
- a new command
- a new build provider
- a new execution format
the answer is still package-first.
Do not add a special branch to core command dispatch or core build routing as the feature owner.
Common Pattern
The stable pattern is:
- framework exposes a generic host interface
- package declares ownership through manifest descriptors
- package implementation provides the real behavior
That keeps the system extensible without pushing feature ownership back into core.
Next Steps
- Tooling Command APIs - package-owned command descriptors and behavior
- Execution And Build Descriptors - package-owned execution and build metadata
- Ternary Condition Case Study - how to think through a concrete language feature