Claude Workflow

Claude Workflow

The default export target. Renders a ticket + issue type into a Claude Code dynamic workflow — a .js module the @untra/naiveworkflow-compiler walks to drive Claude Code agents.

operator workflow export FEAT-1234              # writes FEAT-1234.workflow.js
operator workflow export FEAT-1234 --format claude --out -   # to stdout

Or over REST:

curl -X POST "http://localhost:7008/api/v1/tickets/FEAT-1234/workflow-export?format=claude"

Output shape

The emitted module is deterministic (no wallclock, Date.now, or Math.random). It begins with an export const meta = { name, description, phases } block, followed by top-level statements (one per step) — not a wrapped export default async function, because that is the form the compiler expects.

Each issue-type step maps to a construct:

Step type Emitted as
Task / Delegator agent() call (judge_loop() for review gates)
Classifier agent() with a schema option
MultiModel / MultiPrompt / Matrixed parallel([...]) with await binding
Pipeline await pipeline(items, ...stages)
Rag / Mcp agent() with a GAP marker (sandbox can’t guarantee FS / tools)

Human review gates become a bounded judge loop (max attempts + a voting agent); the original on_reject target is preserved in a GAP marker.