workflow-builder
Author, validate, run, and oversee OpenColab project workflows that coordinate multiple agents through bounded loops, decisions, and human gates.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Author, validate, run, and oversee OpenColab project workflows that coordinate multiple agents through bounded loops, decisions, and human gates.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Generate accurate, readable D2 block diagrams for software, research, and system explanations from a text brief. Normalize components and edges, write a canonical .d2 source file, render compact sketch-style SVG and optional PNG artifacts by default, support optional LaTeX equation blocks when the diagram genuinely needs them, keep arrows unlabeled unless a label adds concrete meaning, and emit Telegram file directives when needed.
Create, edit, Git-version, compile, and deliver scientific LaTeX papers, reports, and research-derived PDF summaries. Use for venue-aware templates such as ICLR, NeurIPS, ICML, CVPR, ACL, ACM, and IEEE; experiment-result tables; architecture figures or diagrams; deep-research/pro-research/fast-research to PDF summaries; and .tex to PDF builds with latexmk.
Generate and edit images with Google Gemini Nano Banana Pro from prompts and optional reference images, using GEMINI_API_KEY from .env.local when available.
Extract and return figures from already-downloaded local PDFs with PyMuPDF, optionally reusing PageIndex artifacts for page selection and verifying shortlisted candidates multimodally before delivery.
Automated browser control via the `browser-use` CLI. Navigate pages, fill forms, click elements, take screenshots, and extract content from the command line. Used by `apply-to-job` to drive real ATS portals end-to-end while the human watches.
Deep scientific investigation with papercli. Iterative search, broad PDF corpus download and reading, equation-level analysis, and exhaustive referenced markdown findings.
| name | workflow-builder |
| description | Author, validate, run, and oversee OpenColab project workflows that coordinate multiple agents through bounded loops, decisions, and human gates. |
| metadata | {"opencolab":{"emoji":"🛠️","os":["linux","darwin","win32"],"requires":{"bins":["opencolab"]}}} |
Use this skill when the user wants to compose multiple agents into a repeatable workflow such as draft → review → judge, judge-and-retry, parallel reviews followed by a merge, or any other bounded coordination of agents.
This skill authors and operates workflows through the OpenColab CLI. It is not the workflow engine itself. The CLI/runtime owns parsing, execution, persistence, and human gate handling.
projects/<project_id>/workflows/<workflow_id>/workflow.xmlprojects/<project_id>/workflows/<workflow_id>/runs/<run_id>/RUN.md (with YAML frontmatter), state.json,
status.json, events.jsonl, inputs/initial.md, and steps/<step_id>/.Never edit state.json, status.json, or events.jsonl by hand. They are
written by the runtime.
agent — runs one project agent with a generated prompt. Required:
id, type="agent", agent, <prompt>. Optional: <output name="..." />.decision — runs one project agent and expects a strict
<workflow-decision action="..." next="..." reason="..." /> line in the
response. Required: id, type="decision", agent, <prompt>, <choices>.human_gate — pauses the run for human input. Required: id,
type="human_gate", <prompt>. Optional: allow="approve,stop,retry,edit,branch".merge — concatenates prior outputs into a single named value. Required: id,
type="merge", at least one <input name="..." />, <output name="..." />.terminate — explicitly ends the run with a status of success, failed,
or stopped.Every <loop> requires at least one of:
maxIterations="<n>"maxSteps="<n>"maxRuntimeMinutes="<n>"Unbounded loops are rejected during validation.
Inside any <prompt> you can use template variables:
${input.<name>} — values supplied when starting the run.${<output_name>} — named outputs from prior steps (<output name="..." />).${<step_id>.output> — fallback reference for any step's raw output text.blank for an empty scaffoldreview-loop for draft → review → judge with a bounded loopjudge-and-retry for draft → judge → retry-or-stopopencolab workflow create --workflow-id <id> --from review-loop
projects/<project_id>/workflows/<id>/workflow.xml to
reference real project agents, set the loop bound, and tighten prompts.opencolab workflow validate --workflow-id <id>
opencolab workflow run --workflow-id <id> --input "<task text>"
# or
opencolab workflow run --workflow-id <id> --input-file inputs.json --wait true
--input <text> is shorthand for { "task": "<text>" }. For richer inputs,
pass --input-file <path> or --input-json '{"foo":"bar"}'.
--wait true blocks the CLI until the run reaches a terminal or paused state
and streams events as they happen.
opencolab workflow status --run-id <runId>
opencolab workflow logs --run-id <runId> --follow
opencolab workflow runs
opencolab workflow stop --run-id <runId> — cooperative stop.opencolab workflow resume --run-id <runId> — resume a paused run.opencolab workflow approve --run-id <runId> --decision continue|stop|retry|branch:<step>|edit
— record a human gate decision. Use --values-json '{"task":"..."}' with
--decision edit to update inputs before continuing.decision stepsDecision agents must end their response with a single line that looks like:
<workflow-decision action="continue" next="draft" reason="The answer still misses two constraints." />
action: continue, stop, branch, needs_human, or fail.next: target step id when action="continue" or action="branch".reason: short justification; surfaced in events.jsonl and Studio.You may use <choice name="..." /> blocks under <choices> to give the agent
a fixed menu. The agent can pick a choice by name via:
<workflow-decision action="continue" choice="continue" />
If the decision block is missing or invalid, the run pauses for human review
by default (or fails if onInvalid="fail" was declared on the step).
Workflow steps do not pollute normal agent chat memory. The runtime uses a
workflow-scoped session identity for every agent call and surfaces results
through the workflow's run folder, not the agent's memory/Session/.
type attributes.