Drop in a JSON array of commit messages and get back polished, grouped release notes. TheDocumentation Index
Fetch the complete documentation index at: https://docs.sirenspec.dev/llms.txt
Use this file to discover all available pages before exploring further.
factory node spins up one classifier agent per commit — up to three running concurrently — then a second agent aggregates all the labels into a markdown changelog.
What it demonstrates
factorynode iterating over a runtime listconcurrencyto control parallel instance count{{ item }}and{{ index }}loop variables inside factoryinputs- Passing a JSON array via
input.messagefor the factory’sfor_each - Chaining factory output into a downstream agent via
{{ classify_commits.output }}
Run it
Workflow
docs/cookbook/changelog-annotator/workflow.yaml
for_each must resolve to a valid JSON array. Pass commits as a JSON string via --input or set input.message to a JSON array literal in the workflow file. The factory resolves the string with json.loads() at runtime.How data flows
classify_commitsresolvesfor_each: "{{ inputs.message }}"to a list of commit strings.- One
classifierinstance runs per commit (up to 3 concurrently). Each receivescommit: <item>as its user message and replies with<category>: <summary>. - All instance outputs are joined into a single newline-separated string at
working.classify_commits.output. write_notesreceives that string in its system prompt via{{ classify_commits.output }}and groups the entries into structured release notes.
Graph
Next steps
GitHub Issues Triage
Factory iterating over live GitHub issues fetched from the API.
1000 Monkeys
Swrm fan-out: five agents on the same prompt, curator picks the best.