Why: The workflow executor needs a shared contract for subagent profiles, plugin scripts, and per-step plus whole-run retry caps. Evidence: go test ./... passed, including the new workflow_def golden. Impact: New fields are omitempty, so existing workflow JSON still decodes. Kind script is additive. Refs: feature/agent-harness-p4 Co-authored-by: Cursor <cursoragent@cursor.com>