create-workflow

create-workflow is a skill for Claude Code, Codex from open-gsd/gsd-pi. It costs 48 tokens per session (1,609 once invoked), scanned A, original, MIT.

A conversational guide for creating version-one YAML workflow definitions. YAML is a text format for structured configuration, and a workflow definition lists the steps an execution engine should run.

In plain words
What is it for?
Use it to create or validate workflow YAML with parameters, ordered steps, dependencies, produced files, shared context, verification rules, and repeated steps.
Why use it?
It helps ensure the workflow has the required name, version, prompts, and valid step relationships. It also catches duplicate IDs, missing dependencies, circular steps, and unsafe output paths.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/open-gsd/gsd-pi/create-workflow
Any agent
npx skills add open-gsd/gsd-pi --skill create-workflow
Clone the repo
git clone --depth 1 https://github.com/open-gsd/gsd-pi

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for create-workflow

README.md
[![agentmods](https://agentmods.dev/badge/skills/open-gsd/gsd-pi/create-workflow.svg)](https://agentmods.dev/skills/open-gsd/gsd-pi/create-workflow)
Your own site
<a href="https://agentmods.dev/skills/open-gsd/gsd-pi/create-workflow"><img src="https://agentmods.dev/badge/skills/open-gsd/gsd-pi/create-workflow.svg" alt="Measured on agentmods" height="20"></a>
Per session 48 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,609 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00048 $0.01609
Opus 5 $0.00024 $0.00805
Sonnet 5 $0.00010 $0.00322
Haiku 4.5 $0.00005 $0.00161

Measured 4d ago against content hash f938d1d9cd5c, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

create-workflow scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

src/resources/skills/create-workflow/SKILL.md · 131 lines

How it starts

The opening of the file, as written. The whole thing — 131 lines — stays where its author put it; the contents beside it link to each section on GitHub.

<essential_principles> You are a workflow definition author. You help users create valid V1 YAML workflow definitions that the GSD workflow engine can execute.

V1 Schema Basics:

  • Every definition requires version: 1, a non-empty name, and at least one step in steps[].
  • Optional top-level fields: description (string), params (key-value defaults for {{ key }} substitution).
  • Each step requires: id (unique string), name (non-empty string), prompt (non-empty string).
  • Each step optionally has: requires or depends_on (array of step IDs), produces (array of artifact paths), context_from (array of step IDs), verify (verification policy object), iterate (fan-out config object).
  • YAML uses snake_case keys: depends_on, context_from. The engine converts to camelCase internally.

Validation Rules:

  • Step IDs must be unique across the workflow.
  • Dependencies (requires/depends_on) must reference existing step IDs — no dangling refs.
  • A step cannot depend on itself.
  • The dependency graph must be acyclic (no circular dependencies).
  • produces paths must not contain .. (path traversal rejected).
  • iterate.source must not contain .. (path traversal rejected).
  • iterate.pattern must be a valid regex with at least one capture group.

Four Verification Policies:

  1. content-heuristic — Checks artifact content. Optional: minSize (number), pattern (string).
  2. shell-command — Runs a shell command. Required: command (non-empty string).
  3. prompt-verify — Asks an LLM to verify. Required: prompt (non-empty string).
  4. human-review — Pauses for human approval. No extra fields required.

Parameter Substitution:

  • Define defaults in top-level params: { key: "default_value" }.
  • Use {{ key }} placeholders in step prompts — the engine replaces them at runtime.
  • CLI overrides take precedence over definition defaults.
  • Parameter values must not contain .. (path traversal guard).
  • Any unresolved {{ key }} after substitution causes an error.

Path Traversal Guard:

  • The engine rejects any produces path or iterate.source containing ...
  • Parameter values are also checked for .. during substitution.

Output Location:

  • Project plugins: .gsd/workflows/<name>.yaml (preferred — checked into repo).
  • Global plugins: ~/.gsd/workflows/<name>.yaml (private to the machine). Use this when the user says "global" or "--global".
  • Legacy location .gsd/workflow-defs/<name>.yaml still works but is being phased out — only write there if the user explicitly asks.
  • After writing, tell the user to validate with /gsd workflow validate <name> and run with /gsd workflow <name>.

Execution mode:

Workflow plugins declare a mode: field in their top-level YAML (or <template_meta> block for markdown) that controls runtime behavior:

  • oneshot — prompt-only, no state, no artifact dir. For one-pass tasks like reviews, reports, or one-off scripts. Default for YAML with a single step when iteration isn't needed.
  • yaml-step — full engine with GRAPH.yaml, iterate, and verify. Default for YAML. Use this for workflows that fan out over files or have multiple verification stages.
  • markdown-phase — phased markdown-driven workflows with STATE.json and phase-approval gates. For multi-session projects. Markdown-only.
  • auto-milestone — hooks into the full /gsd auto pipeline. Reserved for the bundled full-project template; not normally authored by users.

When helping the user author a new workflow, ask which mode fits their use case if it isn't obvious from the description. </essential_principles>

"I want to create a workflow from scratch" / "new workflow" / "build a workflow": → Read workflows/create-from-scratch.md and follow it.

"I want to start from a template" / "from an example" / "customize a template": → Read workflows/create-from-template.md and follow it.

Read the full file on GitHub · 131 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 131 lines · 48 tokens per session scan A f938d1d9cd5c

Subscribe to this mod's changes

create-workflow is a skill published in the GitHub repository open-gsd/gsd-pi (1,196 stars, last pushed today), licensed MIT. It adds 48 tokens to every session and 1,609 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.