Bloom CLI will be the unified command-line interface for crafting, inspecting, and (eventually) executing workflow definitions within the broader sakuraforge ecosystem.
Provide an ergonomic developer entrypoint to:
- Initialize project workflow scaffolds
- Validate workflow definitions (schema + semantics)
- Plan hypothetical execution graphs
- (Future) Trigger, monitor, and inspect runs once an orchestration engine exists
- Human‑readable declarative specs
- Fast feedback (lint / validate locally before committing)
- Extensible verbs (modular command architecture)
- Dry run & “plan before execute” mindset
- Composable with CI (non-interactive by design, with optional colored output)
| Command | Purpose (Future) |
|---|---|
bloom init |
Generate a starter workflow.yaml |
bloom validate |
Schema + structural checks |
bloom plan |
Show resolved DAG / task order |
bloom graph |
Output a DOT / ASCII representation |
bloom run |
(Later) Execute via pipeline engine |
bloom tasks list |
Enumerate tasks with metadata |
bloom env render |
Show effective variable expansion |
(Only a subset will appear initially—focus will be init and validate.)
apiVersion: bloom/v1
kind: Workflow
metadata:
name: nightly-sync
spec:
variables:
REGION: us-east-1
tasks:
fetchUsers:
type: http
params:
url: https://api.example.com/users
transform:
needs: [fetchUsers]
type: container
image: ghcr.io/example/transform:latest
publish:
needs: [transform]
type: queue
params:
topic: processed-usersbloom plan (concept) might produce:
[fetchUsers] → [transform] → [publish]
- Command scaffolding & help system
init(template generator)- JSON Schema draft +
validate - DAG resolver +
plantextual output - Graph export (DOT)
- Execution stub integration (after pipeline core exists)
- Plugin command loading (task type extensions)
- Environment interpolation + secret placeholder handling
- Full local execution engine (will depend on future pipeline project)
- Remote orchestration connectivity (initially offline)
- Complex interactive TUI (may arrive later separately)
Bloom CLI sets UX expectations before the heavier orchestration layer (e.g., Sakura Pipeline) exists—allowing iteration on the workflow spec without deep runtime coupling.
Currently a concept placeholder. No implementable code has shipped yet.
Intended license: Apache License 2.0 (will be present before any functional release).
- Embed config loading via
forge-config - Surface secret scan hints (delegate to
sakura-secrets) - Scheduling previews referencing
rhythm-enginecapabilities later
“Bloom: define the flow before you grow the system that runs it.”