showcase · tier 4 · research
CEO Monday brief
Market + repo pulse + KPI sheet gathered in parallel, jq sums the revenue, thinking model writes.
The whole file
10 tasks · 7 waves · the plan falls out of the bindings, nothing is scheduled by hand.
t4-ceo-monday-brief.nika.yamlsource
nika: v1workflow: id: ceo-monday-brief description: "news + repo pulse + KPIs → thinking synthesis → dated brief + cost ping"model: ollama/qwen3.5:4b # local default · the synthesis task below overrides to a stronger modelvars: watch_query: "AI workflow engines" kpi_csv: "./finance/kpis.csv"secrets: founders_webhook: source: env key: FOUNDERS_WEBHOOK_URL egress: # sanction the one send · the secret IS the URL - to: "nika:notify" host_from_self: truetasks: # ── branch 1 · market signal ── news: invoke: tool: "nika:fetch" args: url: "https://hn.algolia.com/api/v1/search?query=${{ vars.watch_query }}" mode: jq jq: ".hits[:10] | map(.title)" # ── branch 2 · engineering pulse ── pulse: exec: command: ["git", "shortlog", "-sn", "--since=1 week ago"] # ── branch 3 · the numbers ── kpi_raw: invoke: tool: "nika:read" args: { path: "${{ vars.kpi_csv }}" } kpis: with: csv: ${{ tasks.kpi_raw.output }} invoke: tool: "nika:convert" args: input: "${{ with.csv }}" from: csv to: json has_header: true revenue: with: kpis: ${{ tasks.kpis.output }} invoke: tool: "nika:jq" args: input: "${{ with.kpis }}" expression: "map(.weekly_revenue | tonumber) | add" # ── synthesis · with a thinking budget ── brief: with: # the three branches join here · four value edges news: ${{ tasks.news.output }} pulse: ${{ tasks.pulse.output }} kpis: ${{ tasks.kpis.output }} revenue: ${{ tasks.revenue.output }} infer: model: anthropic/claude-sonnet-4-6 # per-task override · thinking budget prompt: | Market signal · ${{ with.news }} Engineering pulse · ${{ with.pulse }} KPIs · ${{ with.kpis }} Revenue (summed) · ${{ with.revenue }} Write my Monday brief · 5 sections · market · product · numbers · risks · the ONE decision this week needs. thinking: enabled: true budget_tokens: 10000 stamp: invoke: tool: "nika:date" args: { op: now } output: day: ".[:10]" # nika:date returns the ISO string itself · slice YYYY-MM-DD save: with: day: ${{ tasks.stamp.day }} brief: ${{ tasks.brief.output }} invoke: tool: "nika:write" args: path: "./briefs/${{ with.day }}-monday.md" content: "${{ with.brief }}" create_dirs: true # ── the run reports its own bill ── bill: after: save: succeeded # state, no data · read the meter once the brief landed invoke: tool: "nika:inspect" args: { view: cost } ping: with: day: ${{ tasks.stamp.day }} # hoisted once · the body AND the cleanup below read this binding cost: ${{ tasks.bill.output.total_usd }} invoke: tool: "nika:notify" args: channel: webhook target: "${{ secrets.founders_webhook }}" message: "Monday brief ready · briefs/${{ with.day }}-monday.md · run cost $${{ with.cost }}" severity: info on_finally: - invoke: tool: "nika:emit" args: event_type: "brief.monday.run" payload: day: "${{ with.day }}" # the parent's own binding · cleanup never reads a sibling taskoutputs: brief: ${{ tasks.brief.output }} cost_usd: ${{ tasks.bill.output.total_usd }}nika inspect · engine 0.105.0 · vendored graph, never re-derived
11 declared edges · 7 waves · the plan falls out of the bindings