Skip to main content
These filled workflows are generated from the template sources. The YAML below is the same source embedded in the engine pack. Copy a block to workflow.nika.yaml, then validate and rehearse it:
Mock rehearsals need no keys or model service. They prove graph execution, validation and output shape; they do not evaluate model quality. When changing the model, check with that exact provider/model and evaluate real outputs.

Choose the bound that matches the resource

A validation result is data. The admit assertion makes rejection stop the workflow, and the downstream task explicitly depends on its success. The negative tests must inspect the trace and confirm that task never started. The collection check bounds downstream work after the data is loaded; it is not a streaming ingress limit. A dynamic fan may still have an unknown static cost estimate even when this runtime guard bounds its input.

Batch admission

An empty batch returns []. Eight items pass; a ninth item or an overlong item fails at admit, before process. Parallelism limits active calls; the validator separately limits total work. Source skeleton: bounded-batch.
18-bounded-batch.nika.yaml

Record validation

The fixture returns count 2 and total 30. Unknown fields, negative amounts and string amounts refuse before report. An empty batch returns total zero. Source skeleton: validate-records.
19-validate-records.nika.yaml

Snapshot comparison

The fixture adds gamma, removes alpha and keeps beta. Duplicates use set semantics; empty snapshots are valid. Both snapshots are bounded before comparison. Source skeleton: snapshot-diff.
20-snapshot-diff.nika.yaml

Duplicate handling

Identical rows collapse to one row per id. Conflicting amounts for the same id fail at agree; there is no arbitrary first-row winner. Source skeleton: deduplicate-records.
21-deduplicate-records.nika.yaml

Field projection

Only topic and severity reach the model task. Email and internal notes remain outside the prompt. This does not detect sensitive prose inside allowed fields, and source data can remain in the local trace. Source skeleton: project-public-fields.
22-project-public-fields.nika.yaml

Parallel review

Each review has its own timeout and token ceiling. A shared conjunction is checked against all boolean input pairs. Mock returns ready: false; this checks wiring and the decision rule, not the quality of a real review. Source skeleton: parallel-review.
23-parallel-review.nika.yaml

Narrow recovery

With no optional.txt, the fixture returns its explicit fallback. A present file wins. Oversized content refuses after reading; the validator does not bound file allocation. Retry applies only to the read; only not-found is recovered. Source skeleton: recover-optional-file.
24-recover-optional-file.nika.yaml

Exact aggregation

The fixture returns north 15, south 20, total 35. Values are integer minor units in one currency. Negative amounts, unknown regions and oversized batches refuse; empty input returns zero. Source skeleton: aggregate-by-key.
25-aggregate-by-key.nika.yaml