Skill: Create a New Arnold Native-First Pipeline
- Copy
arnold_pipelines/_template/ to arnold_pipelines/<your_pipeline>/.
- Edit
__init__.py: set name, description, capabilities, keep
driver=("native", "project+validate") and supported_modes=("native",),
and ensure build_pipeline() compiles the native program and returns a
projected Pipeline with a non-null native_program.
- Edit
pipelines.py: replace the skeleton @phase functions with real
logic. Use @pipeline, @phase, @decision, parallel,
compile_pipeline, and project_graph from the public arnold.pipeline
authoring surface.
- Run
arnold pipelines check <your_pipeline> to validate the package
against the native-first authoring contract (metadata, driver, native
program, and graph projection).
- Add tests that compile the native program, project the graph, and assert
the returned
Pipeline carries a non-null native_program.
Dispatch Substrate Note
The native_program compiled by build_pipeline() is a dispatch
substrate — it describes how the runtime executes the pipeline, but it
does not define the final visible compositional semantics. Panel
synthesis, join delegation, parallel merge strategy, subpipeline
ownership, and Capsule projection are deferred to later Megaplan layers.
Do not add _legacy.py, graph fallback builders, compatibility
namespaces, shim packages, or temporary wrapper modules. The template and
this workflow are native-first only. Generated manifests and catalogs are
outputs of the authoring path, not editable source.
1---2name: new-arnold-pipeline3description: Steps to create a new Arnold native-first pipeline package from the template.4---56# Skill: Create a New Arnold Native-First Pipeline781. Copy `arnold_pipelines/_template/` to `arnold_pipelines/<your_pipeline>/`.92. Edit `__init__.py`: set `name`, `description`, `capabilities`, keep10 `driver=("native", "project+validate")` and `supported_modes=("native",)`,11 and ensure `build_pipeline()` compiles the native program and returns a12 projected `Pipeline` with a non-null `native_program`.133. Edit `pipelines.py`: replace the skeleton `@phase` functions with real14 logic. Use `@pipeline`, `@phase`, `@decision`, `parallel`,15 `compile_pipeline`, and `project_graph` from the public `arnold.pipeline`16 authoring surface.174. Run `arnold pipelines check <your_pipeline>` to validate the package18 against the native-first authoring contract (metadata, driver, native19 program, and graph projection).205. Add tests that compile the native program, project the graph, and assert21 the returned `Pipeline` carries a non-null `native_program`.2223## Dispatch Substrate Note2425The `native_program` compiled by `build_pipeline()` is a **dispatch26substrate** — it describes how the runtime executes the pipeline, but it27does **not** define the final visible compositional semantics. Panel28synthesis, join delegation, parallel merge strategy, subpipeline29ownership, and Capsule projection are deferred to later Megaplan layers.3031Do **not** add `_legacy.py`, graph fallback builders, compatibility32namespaces, shim packages, or temporary wrapper modules. The template and33this workflow are native-first only. Generated manifests and catalogs are34outputs of the authoring path, not editable source.