workflow-builder · git:20260728.2ee1689 · 2026-07-28 · sha256 40807dd4625a200e
workflow-builder git:20260728.2ee1689A
Immutable. This exact content is served forever at /api/v1/blob/40807dd4625a200e.
---
name: workflow-builder
description: 'Scaffold an explicit one-shot workflow adapter without lifecycle authority. Triggers: "build a workflow adapter", "scaffold a one-shot workflow".'
practices:
- pragmatic-programmer
- hexagonal-architecture
- agile-manifesto
hexagonal_role: supporting
consumes: []
produces:
- workflow-script
context_rel:
- kind: customer-of
with: automation-shape-routing
- kind: shared-kernel
with: operationalize
skill_api_version: 1
context:
window: fork
intent:
mode: questions
sections:
exclude:
- HISTORY
intel_scope: topic
metadata:
capabilities: [workflow_builder]
effects: [write_workflow_script]
canonical_status: canonical
disposition: keep_specialist
tier: meta
dependencies: []
output_contract: a runnable one-shot workflow with explicit inputs and outputs
---
# Workflow Builder — one-shot adapter authoring
Build a thin adapter only when a caller needs to dispatch an explicit set of
independent operations. A workflow is convenience code, never a correctness or
lifecycle authority.
At-most-once dispatch over explicit inputs is the whole safety argument: a
workflow that cannot retry or select work cannot compound a failure, so the
worst case is one reported error per operation.
Named failure mode — **framework gravity**: a one-shot script growing config
files, plugin hooks, and a state store until it is an unrequested orchestrator.
Anti-pattern: adding retry-on-failure "just for robustness". Corrective:
report the per-operation error and stop; the caller owns whether anything runs
again.
## Contract
- Inputs, executors, write scopes, and outputs are supplied explicitly.
- Each operation is dispatched at most once.
- Parallel operations must have caller-proven disjoint write scopes.
- The workflow reports per-operation output or error and then stops.
- It contains no work selection, retry, budget, queue, tracker, validation, Git,
integration, closure, release, or delivery logic.
- Optional substrate state cannot be translated into RPI or verdict state.
Prefer the smallest script supported by the target runtime. Include a dry-run or
fixture demonstrating exact dispatch count and failure reporting. Do not create a
new framework or SDK abstraction unless the caller explicitly requests one.