showcase · tier 1 · content
Social repurpose
One post becomes a thread, a LinkedIn version and a newsletter blurb, rewritten in parallel.
- 5tasksthe plan falls out of the bindings
- 3wavesparallel by construction
- 2verbs exercisedinvoke · infer
- T1the tiercontent
The whole file
5 tasks · 3 wavesThe plan falls out of the bindings, nothing is scheduled by hand.
social-repurpose.nika.yamlsource
nika: v1workflow: id: social-repurpose description: "One post → thread + LinkedIn + newsletter, in parallel"model: ollama/qwen3.5:4b # local · zero key · swap for mistral/mistral-large or any providerconst: # The sample post ships with the repo. Point this at your own and move the # read permit with it — `permits:` cannot interpolate (NIKA-AUTH-007). post_path: "examples/fixtures/launch-post.md"permits: tools: ["nika:read", "nika:write"] # One file in, one file out · each named exactly, no subtree granted. fs: read: ["examples/fixtures/launch-post.md"] write: ["out/social-bundle.md"]tasks: post: invoke: tool: "nika:read" args: { path: "${{ const.post_path }}" } # Three rewrites · no deps between them · they run concurrently. thread: with: post: ${{ tasks.post.output }} infer: max_tokens: 700 prompt: "Turn this post into a 6-tweet thread · keep the voice · ${{ with.post }}" linkedin: with: post: ${{ tasks.post.output }} infer: max_tokens: 500 prompt: "Rewrite this post for LinkedIn · hook first · ${{ with.post }}" newsletter: with: post: ${{ tasks.post.output }} infer: max_tokens: 200 prompt: "Write a 3-sentence newsletter blurb for this post · ${{ with.post }}" bundle: with: t: ${{ tasks.thread.output }} l: ${{ tasks.linkedin.output }} n: ${{ tasks.newsletter.output }} invoke: tool: "nika:write" args: path: out/social-bundle.md create_dirs: true # Prose artifact → a `content: |` block with interpolations is right # here. A `.json` artifact is the opposite case: one `${{ … }}` value, # never hand-typed braces (that emits unquoted fields). content: | # Social bundle ## Thread ${{ with.t }} ## LinkedIn ${{ with.l }} ## Newsletter ${{ with.n }}outputs: bundle_path: ${{ tasks.bundle.output }}audited · 5 tasks · 3 waves · permits declarednika 0.106.1
nika inspect · engine 0.106.1 · vendored graph, never re-derived
6 declared edges · 3 waves · the plan falls out of the bindings