โ† Back to Blog

Get Started with the Skills Pipeline: Auto and Manual Skills

One agent.yaml. Multiple SKILL.md files. Skills run in sequence โ€” automatically or after you approve. No orchestration code, no framework. Just a folder and YAML.

๐Ÿ”—

What Is the Skills Pipeline?

A skills pipeline lets you wire multiple AI skills together in a single agent.yaml. Each skill is a folder containing a SKILL.md file. Skills execute in order โ€” and you control what runs automatically vs what waits for your approval.

OE Runtime supports two skill trigger types:

main-task auto
โ†’
followup auto
โ†’
review manual โœ‹

Both trigger types work the same way across all three run interfaces: CLI (terminal), HTTP server, and MCP (Claude Code, Cursor, Windsurf). Everything is configured in one agent.yaml โ€” no separate chain files, no project registry.

What You Will Build

A pipeline with three skills in one folder:

  1. main-task โ€” auto: greets you and gives a history fact
  2. followup โ€” auto: summarizes the previous skill's output immediately
  3. review โ€” manual: runs only after you approve

What You Need


Step 1

Create the Project Folder

Create a folder called skill-pipeline/ with this structure:

skill-pipeline/
โ”œโ”€โ”€ agent.yaml           # orchestrates the 3 skills
โ”œโ”€โ”€ oe-config.json      # LLM credentials
โ”œโ”€โ”€ main-task/
โ”‚   โ””โ”€โ”€ SKILL.md          # auto skill โ€” greet + history fact
โ”œโ”€โ”€ followup/
โ”‚   โ””โ”€โ”€ SKILL.md          # auto skill โ€” summarize previous
โ””โ”€โ”€ review/
    โ””โ”€โ”€ SKILL.md          # manual skill โ€” confirm after approval
Step 2

Create agent.yaml

This is the only orchestration file you need. It lists all three skills in order with their trigger types:

agent.yaml
name: My Skills Pipeline
description: Runs three skills in sequence โ€” two auto, one manual.

skills:
  - path: ./main-task
    trigger_type: auto

  - path: ./followup
    trigger_type: auto

  - path: ./review
    trigger_type: manual

Each path points to a folder containing a SKILL.md file. The runtime appends /SKILL.md automatically โ€” write path: ./main-task, not path: ./main-task/SKILL.md.

Step 3

Create the SKILL.md Files

main-task/SKILL.md
---
name: main-task
description: Greets you and shares a fun fact about today in history.
license: Apache-2.0
metadata:
  author: Open Enthrium
  version: "1.0"
---

You are a helpful assistant.

## Step 1: Greet

Say hello, mention today's date, and give one fun fact about today in history.
followup/SKILL.md
---
name: followup
description: Runs automatically after main-task. Summarises its output.
license: Apache-2.0
metadata:
  author: Open Enthrium
  version: "1.0"
---

You are a summarizer assistant.

## Step 1: Summarize

The previous skill just ran and sent you its output as context.
Summarize it in one sentence and say "Auto skill complete โœ…".
review/SKILL.md
---
name: review
description: Runs only after you approve. Confirms the task with context from previous skills.
license: Apache-2.0
metadata:
  author: Open Enthrium
  version: "1.0"
---

You are an assistant that confirms tasks.

## Step 1: Confirm

The human approved running this skill.
Acknowledge it, briefly reference what the previous skills output,
and say "Manual approval skill complete โœ…".
Step 4

Create oe-config.json

oe-config.json
{
  "llm": {
    "provider": "openai",
    "model": "gpt-4o",
    "apiKey": "sk-..."
  }
}

Replace sk-... with your actual API key. Anthropic users: set "provider": "anthropic" and "model": "claude-sonnet-5".


Run It โ€” Three Modes

The same folder works in all three delivery modes. Pick the one that fits your workflow.

โŒจ๏ธ CLI Mode
Terminal

One command runs the pipeline. Auto skills fire immediately; manual skills prompt you for approval.

npx -y @openenthrium/oe-runtime@latest skill-pipeline/agent.yaml

What you will see:

โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  ๐Ÿš€   OE Runtime  v1.8.9
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

๐Ÿค–  main-task

Hello! Today is August 30, 2026. Fun fact: on this day in 1984,
astronaut Bruce McCandless made the first untethered spacewalk.

โœ…  Done

โ”€โ”€โ”€โ”€โ”€ auto โ†’ followup โ”€โ”€โ”€โ”€โ”€

๐Ÿค–  followup

The previous skill greeted you, noted today's date, and shared
a fact about the first untethered spacewalk. Auto skill complete โœ…

โœ…  Done

โ”€โ”€โ”€โ”€โ”€ manual โ†’ review โ”€โ”€โ”€โ”€โ”€
Run this skill? (y/n): _

Type y to approve or n to skip. Approving runs the review skill with the full prior context.

๐ŸŒ HTTP Server Mode
curl / Postman / any HTTP client

Add a server block to oe-config.json and start the server:

oe-config.json (server mode)
{
  "llm": {
    "provider": "openai",
    "model": "gpt-4o",
    "apiKey": "sk-..."
  },
  "server": {
    "enabled": true,
    "port": 3333,
    "apiKey": "your-secret"
  }
}
npx -y @openenthrium/oe-runtime@latest --serve --config oe-config.json

Run the pipeline via /run-agent โ€” pass the absolute path to agent.yaml:

curl -X POST http://localhost:3333/run-agent \
  -H "x-api-key: your-secret" \
  -H "Content-Type: application/json" \
  -d '{"file":"/path/to/skill-pipeline/agent.yaml"}'

The response includes the output of the last completed skill and the pending manual skill:

{
  "success": true,
  "output": "The previous skill greeted you... Auto skill complete โœ…",
  "pending_skill_chain": {
    "chain_id": "lc9f2kx4m",
    "skill_name": "review"
  },
  "duration_ms": 3241
}

Auto skills ran and their output flowed forward. The manual review skill is waiting with a chain_id. Approve it with /approve-chain:

curl -X POST http://localhost:3333/approve-chain \
  -H "x-api-key: your-secret" \
  -H "Content-Type: application/json" \
  -d '{"chain_id":"lc9f2kx4m","approved":true}'

Response:

{
  "success": true,
  "approved": true,
  "output": "The human approved! ... Manual approval skill complete โœ…",
  "pending_skill_chain": null,
  "duration_ms": 1876
}

To skip a manual skill, send "approved": false. To abort the entire pipeline, send "abort": true.

Each chain_id is one-time use. Once you call /approve-chain, the ID is consumed. Pending skills are held in memory โ€” if the server restarts, they are lost.

๐Ÿค– MCP Mode (Claude Code / Cursor / Windsurf)
Any MCP-enabled AI chat

If you have OE MCP connected, you can run the pipeline directly from chat:

You: Run my pipeline at /path/to/skill-pipeline/agent.yaml

Claude: [calls run_agent]

โœ… main-task complete.
Output: Hello! Today is August 30, 2026...

โœ… followup complete (auto).
Output: The previous skill greeted you... Auto skill complete โœ…

โณ Manual skill pending: review
  chain_id: lc9f2kx4m
  Say "approve" to continue or "skip" to skip it.

Say "approve" and Claude calls approve_chain for you:

You: approve

Claude: [calls approve_chain โ€” chain_id: lc9f2kx4m, approved: true]

โœ… review complete.
Output: The human approved! ... Manual approval skill complete โœ…

Three MCP tools handle the full skills pipeline:

Tool What it does
run_agentRun an agent.yaml โ€” executes auto skills, returns output and any pending manual skill
list_pending_skillsSee all manual skills currently waiting for approval
approve_chainApprove, skip, or abort a pending skill by chain_id

OE MCP works in any MCP-enabled AI app: Claude Code, Cursor, Windsurf, and more. The same three tools behave identically across all of them.

OE Runtime — Direct Downloads

How the Skills Pipeline Works

When the runtime processes an agent.yaml, it walks the skills: list in order:

  1. Auto skills run immediately. The previous skill's full output is passed as context: "Context from previous skill: [output]. Now execute your task."
  2. Manual skills pause. In CLI, the runtime prints a prompt. In HTTP, a pending_skill_chain object with a chain_id is returned. In MCP, the result describes the pending skill.
  3. Context flows forward โ€” each skill receives the accumulated output of all skills before it. Nothing is lost between steps.

You can mix any number of auto and manual skills in one pipeline. A common pattern: auto-process first, then pause before an irreversible action (sending an email, writing to a database, posting to Slack).

agent.yaml Skills Reference

skills:
  - path: ./skill-folder     # directory containing SKILL.md
    trigger_type: auto        # fires immediately after previous skill

  - path: ./another-folder
    trigger_type: manual      # pauses for human approval

When to Use Each Trigger Type


Ready to build your skills pipeline?

Download OE Runtime and start building multi-skill workflows today โ€” no code required.

Get OE Runtime โ†’