AI CEO Lab← All free guides
On this page
Agents · The thesis

Claude Skills: From Skills To Workflows To An Agentic System

A skill is a file. A workflow is skills in order with a trigger. An agentic system is workflows with an owner, a cadence and a report. That is the whole library in one sentence, and the ladder I climbed to get a business that runs while I see patients.

Claude Skills: From Skills To Workflows To An Agentic System

People ask me which AI tool I use, and it is the wrong question. I have over two hundred skill files on my machine. The tool is not the leverage. The files are, and the way they are stacked.

Here is the ladder. A skill is a file: instructions for one job, written once, that an agent reads before doing that job. A workflow is skills in a fixed order with a trigger, so when this happens, run these, in this sequence. An agentic system is workflows with an owner, a cadence and a report, so someone is accountable, it runs on a schedule whether or not anyone remembers, and it tells a human what it did.

Most people are stuck on rung zero, which is prompts. A prompt dies in the chat. A skill survives it. Most people who reach skills stop there, with fifty files and no order. And most people who build a workflow never give it an owner, so it runs until the week nobody triggers it, and then it quietly stops.

I want to be honest about my own climb. The first rung took an afternoon. The second took months of writing down what I already did by hand. The third took a year and is not finished. But every guide on this site is one rung of this ladder, and once you can see the ladder, you know exactly where to put the next hour.

The three levels

Level 1 · Manual

Prompts. You re-explain the business to a fresh chat every time, and every good answer dies in the window it was born in.

Level 2 · AI + connections

Skills and workflows. The jobs you repeat are files. The files run in order on a trigger. You still start them.

Level 3 · Agents on cadence

An agentic system. Every workflow has a named owner, a day and time, and a report that lands in one place. You read reports and make decisions. Nothing depends on you remembering.

Connections for this guide: A folder where skill files live. An agent that reads them (Claude Code, a Claude Project, Grok Bot, Viktor or Hermes). One trigger mechanism, so a schedule or an event. One channel where reports land. A drawing of the system, which is the part everyone skips.

The mental model

Wrong

Find the best AI tool and prompt it well.

Right

Turn repeated jobs into files. Put the files in order with a trigger. Give the sequence an owner, a cadence and a report.

RoleTalks to youJob
SkillOne job, on demandA file with a name, a trigger phrase and instructions the agent reads before doing that job
WorkflowWhen the trigger firesSkills in fixed order, each one's output feeding the next
SystemOn a cadence, foreverA workflow with a named owner, a day and time, and a report that lands in one place
YouReports and decisionsRead what it did. Decide. Correct the file, not the chat.

Climbing one rung

1. Count your prompts and turn the repeated ones into skills

Open your chat history and look for anything you have typed more than twice. That is a skill waiting to be a file. Mine include a Meta ads report, a clinic audit, the ad brain that writes clinic ads, a script forge that turns one filming session into fifteen ad variations, my reel voice, a thumbnail pipeline, a DM system, and a post grader. Each is a file with frontmatter: a name, a one line description that says when to use it, then the instructions. Writing the file takes twenty minutes. Re-explaining it in chat has cost me hours a week for a year.

2. Write the description as a trigger, not a summary

The description line is what the agent matches against when deciding whether to load the file. So it says when, in the words you would actually use. My reel skill triggers on 'give me reels for this week' and 'write me a script about X'. My audit skill triggers on 'audit my ad account' and 'where am I wasting ad spend'. A skill with a vague description never gets loaded and you end up re-explaining anyway.

3. Find the skills that already run in order

Some jobs are really a sequence. My content batch is one: research hooks, draft scripts, record, transcribe, caption, score the hooks, cut derivatives, schedule, and switch on the comment to DM keyword. Each step was a skill. The workflow is the order plus the trigger, which for me is 'batch day' every week. Write the order down as a numbered list where each step names the skill it uses and what it hands to the next step. If a step needs a human, say so at that step, not in a footnote.

4. Draw it before you automate it

If you cannot draw your process, you do not have a process, you have a habit that dies the day you are too busy. Draw the workflow as boxes in order, branches labeled with the condition that sends someone down them, and the human steps in a different color. My public draw-the-system skill does the layout so it comes out readable instead of a wall of crossed arrows. A drawing nobody outside your head can follow in ten seconds is not done.

5. Add the trigger

A workflow without a trigger is a checklist. The trigger is either a schedule or an event. Schedules: a routine in Grok Bot, a Viktor agent with a day and time, a cron on a Mac mini, a scheduled task in Claude. Events: a new lead in the CRM, a comment with the keyword, a form submitted, a file dropped in a folder. Pick one. The workflow starts when the trigger fires, not when you remember.

6. Promote one workflow to a system: owner, cadence, report

Owner is a name, human or agent, who is accountable when it does not run. Cadence is a day and a time. Report is what lands, where, in a shape a stranger can judge at a glance. In my agency the weekly ad management workflow has all three: Marketing owns it, it runs weekly with a daily glance at the morning brief, and the report is a dated decision line per account, scale, hold, refresh or kill. The Viktor roster I run is the same idea with agents as owners: one reviews Meta ads Monday at seven, one audits GHL workflows Tuesday, one grades DMs daily at ten, one scans calls and client health daily at nine, one pulls channel metrics Wednesday, one does the CEO pulse Friday. Every one of them drafts and never sends.

7. Start with the reporter, not the doer

The first system you promote should be one that reads and reports, not one that acts. A morning brief that reads your systems and tells you what changed, what needs you and what is slipping. It is impossible to damage anything with it, and it builds the daily trust habit every later system depends on. My public first-ai-employee skill writes that job file: job, inputs, output, cadence, guardrails, voice, review log. Doers come after reporters have earned it.

8. Give it one source of truth and a log

A system that reads from three places will contradict itself. Mine read from one vault with one rule: one home per fact, and if you find the same parameter in two places, fix it in the same session. Every run ends with a log entry, DID, DECIDED, BLOCKED, NEXT, dated. That is how I know the system ran on a week I was in clinic, and how the next agent picks up without asking me.

Starter prompts

Paste these as written. They are short on purpose, because the long ones drift.

The prompt: audit my ladder

Audit my AI setup against three rungs and tell me exactly where I am. Rung one, skills: a skill is a file with a name, a description that says when to use it in my words, and instructions for one job. Rung two, workflows: skills in a fixed order with a trigger, a schedule or an event. Rung three, systems: a workflow with a named owner, a day and time, and a report that lands in one place. First ask me for the five things I ask AI to do most often and for anything I have automated. Then classify each item: prompt (dies in chat), skill, workflow without a trigger, workflow with a trigger, or system. For every prompt, write the skill file: frontmatter name and description with my trigger phrases, then instructions. For every set of skills that already run in order, write the numbered workflow with each step's skill and handoff, and mark human steps. For the one workflow closest to a system, write its job file: name, job in one sentence, inputs (exact tools it reads), output (shape a stranger can judge), cadence (day and time), guardrails (read only unless a line says otherwise, drafts anything customer facing and never sends, says 'no data' instead of guessing, money and deletion and the public need me), voice (three bullets), review log (empty, dated corrections go here). Recommend a reporter, not a doer, if I have none. Do not invent tools or numbers I did not give you.

The workflow prompt

Turn this sequence into a workflow file. Here is what I do, in order, by hand: [paste the steps]. Write it as a numbered list where each step names the skill it uses (or says 'needs a skill' if none exists), states what it takes in and what it hands to the next step, and is marked HUMAN if a person must do or approve it. Then propose one trigger, a schedule or an event, with the exact day and time or the exact event in my CRM. Then list what would break if step three failed silently, and where the workflow should stop and say so.

The promotion prompt

This workflow has run correctly for [N] weeks: [paste the workflow]. Promote it to a system. Assign an owner by name (me, a teammate, or a named agent), fix the cadence as a day and time, and define the report: where it lands, its exact sections, and the one line at the top that tells me whether I need to act. Add the log line it writes after every run: date, DID, DECIDED, BLOCKED, NEXT. Keep every guardrail from the workflow. It still drafts and never sends.

Give it to your agent, three ways

Same skill, three worlds. Pick the one you actually use. The skill file at the bottom of this page is the instructions in every case.

An agent with connectors (Claude Desktop, Claude Code, Grok Bot)

Claude Code is where my skills live natively: a folder of SKILL.md files it loads on match. Claude Projects hold the same files as project knowledge. Grok Bot routines and Viktor agents are the cheapest triggers I have found for the third rung.

  1. Claude Code: every skill is a folder under ~/.claude/skills with a SKILL.md. The frontmatter name and description are what it matches. Run the command below to see what you already have.
  2. Claude.ai: create a Project per domain and upload the skill files as knowledge. Scheduled tasks give you a cadence without any code.
  3. Grok Bot: the chief of staff runs workflows as routines with a day and time, and posts the report to you. My Grok bot org chart guide has the two routines to start with.
  4. Viktor: one agent per system, each with its cadence and its report channel, drafting only. My Viktor guide has the six agent roster.
  5. Hermes on a Mac mini: skills in the skills layer, cron for cadence, the vault for reports. My Hermes guide covers the five layers.
# see what you already have
ls ~/.claude/skills | wc -l
grep -h '^description:' ~/.claude/skills/*/SKILL.md | head -20
# a new skill is a folder and a file
mkdir -p ~/.claude/skills/weekly-ad-decision
# ~/.claude/skills/weekly-ad-decision/SKILL.md with name: and description: frontmatter

ChatGPT (a project or a custom GPT)

ChatGPT has no skills folder, but the ladder still works. Skills become Project instructions or custom GPTs. Workflows become a numbered list inside those instructions. Cadence comes from scheduled tasks, and the report is whatever it emails or posts to you.

  1. One Project per domain. Paste the skill file into the instructions. The description line becomes the first line: 'use this when I say X'.
  2. For a workflow, add the numbered sequence to the same instructions with the handoff between steps stated explicitly, and mark human steps as 'stop and ask'.
  3. Use a scheduled task for cadence. It runs the sequence and sends you the report on the day and time you set.
  4. The owner is still you until the report has been right for weeks. Keep a review log in the instructions, dated, and add every correction there.

Anything with an API (a token and a curl call)

If you are wiring this yourself, a skill is a markdown file read into the system prompt, a workflow is a script that calls the model once per step and passes outputs forward, and a system is that script on cron with a report posted at the end. Nothing fancy is required.

  1. Store skills as markdown files. Load the matching one into the system prompt for each step.
  2. A workflow is a function that runs steps in order, passing each output to the next, and halts at any step marked human.
  3. Cron is the cadence. The last step posts the report to one channel and appends the log line.
  4. Every step that would write to a live system goes through your approval function, never straight to the tool.
# crontab: Monday 07:00, the weekly ad decision workflow
0 7 * * 1 /usr/bin/python3 ~/systems/weekly_ad_decision.py >> ~/systems/run.log 2>&1

# weekly_ad_decision.py, the shape of it
# 1. load skills/ad-account-audit.md into the system prompt
# 2. pull last 7 days and the 7 before, read only
# 3. ask for scale / hold / refresh / kill per account with the number behind each
# 4. post the report to one channel
# 5. append: DID / DECIDED / BLOCKED / NEXT with today's date

Failure modes

Every one of these has happened to me or to someone I set this up for.

FailureFix
Fifty skills, none of them loadRewrite descriptions as trigger phrases in your own words
A workflow that only runs when you rememberIt has no trigger; add a schedule or an event
It ran for a month, then stopped and nobody noticedNo owner; name one and make the report land in a place you read
Three systems disagree about last week's leadsOne source of truth; fix the duplicate the same session
First agent was a doer and it sent something wrongStart with a reporter; promote to doer after weeks of clean reads
The drawing is a wall of crossed arrowsPick the shape first; branches labeled; human steps in their own color
Corrections keep getting repeatedThey went into chat; put them in the file, dated
Ten half built agentsOne workflow promoted per week; finish before you start the next

The tools I use for this

ToolWhat it is for here
ClaudeWhere my skills live and load, as Claude Code skill folders and Project knowledge.Open
draw-the-system and first-ai-employeeThe two public skills for the drawing and for the first system's job file.Get them
ViktorAgents with a day, a time and a report channel. My cheapest third rung.Get it
GoHighLevelWhere most of my event triggers come from: new lead, tag applied, form submitted.Get it
Some links are affiliate links. I only recommend tools I run in my own accounts.

The free skill

It audits what you have against the ladder: which of your prompts should be skills, which skills already run in order and just need a trigger, and which workflows have no owner, cadence or report. Then it writes the job file for the one workflow you promote to a system this week. It links the public draw-the-system and first-ai-employee skills for the pieces it does not repeat.

How to use it: copy the whole thing, paste it into your bot (or save it as a skill file if you use Claude Code), and say “audit my ladder”. It walks you through the rest. Works with any agent that can read your files.
claude-skills.md
---
name: skills-to-workflows-to-system
description: Audits an owner's AI setup against three rungs (a skill is a file, a workflow is skills in order with a trigger, an agentic system is workflows with an owner, a cadence and a report), converts repeated prompts into skill files, writes workflows as ordered steps with handoffs and human stops, and promotes one workflow to a system with a job file. Trigger on "audit my ladder", "turn my prompts into skills", "which of my workflows are systems", "make this run without me".
---

# From Skills To Workflows To An Agentic System

The ladder:

- **Skill**: a file. Name, a description that says when to use it in the owner's own
  words, instructions for one job. An agent reads it before doing that job.
- **Workflow**: skills in a fixed order with a trigger (a schedule or an event). Each
  step names its skill and hands its output to the next. Human steps are marked.
- **System**: a workflow with a named owner, a day and time, and a report that lands
  in one place in a shape a stranger can judge.

Prompts are rung zero. A prompt dies in the chat it was born in.

## Step 1: Inventory

Ask the owner for the five things they ask AI to do most often and anything they have
automated. Classify each: prompt / skill / workflow without trigger / workflow with
trigger / system. Say which rung they are on overall. Do not flatter.

## Step 2: Prompts become skills

For every repeated prompt, write the skill file:

```
---
name: [kebab-case]
description: [what it does in one sentence, then "Trigger on" and the exact
phrases the owner would say]
---
# [Title]
[Instructions for one job. Inputs it reads. Output shape. What it never does.]
```

The description is a trigger, not a summary. If it is vague the file never loads.

## Step 3: Skills become a workflow

For any set of skills that already run in order, write:

```
WORKFLOW: [name]
TRIGGER: [schedule: day and time] or [event: exact event in the CRM / inbox / folder]
1. [step] : uses [skill] : takes [input] : hands [output] to step 2
2. ...
n. [step] : HUMAN : approves / does X, workflow stops here until they do
FAILS SILENTLY IF: [which step, what it looks like, where the workflow must stop and say so]
```

Draw it. If the owner cannot follow the drawing in ten seconds it is not done. The
public `draw-the-system` skill (https://marketing.doctorleadflow.com/skills/) does
the layout.

## Step 4: One workflow becomes a system

Pick the workflow closest to done. If the owner has no system yet, recommend a
reporter (reads and reports, cannot damage anything) before any doer. The public
`first-ai-employee` skill runs the interview for that. Write the job file:

```
SYSTEM: [name, let the owner name it]
OWNER: [a name: the owner, a teammate, or a named agent]
JOB: [one sentence]
INPUTS: [exactly which tools and data it reads, nothing else]
OUTPUT: [the report: where it lands, sections, and the one line at the top that
says whether the owner must act]
CADENCE: [day and time]
GUARDRAILS:
- Read only unless a line here says otherwise
- Drafts anything customer facing; never sends
- Says "no data for that" instead of guessing; an invented number is a firing offense
- Money, deletion and the public require the human
VOICE: [3 bullets in the owner's words]
REVIEW LOG: [empty; dated corrections go here, never in chat]
LOG LINE AFTER EVERY RUN: YYYY-MM-DD : DID / DECIDED / BLOCKED / NEXT
```

## Step 5: Leave them with the rule

One workflow promoted per week. Finish it before starting the next. Ten half built
agents is the graveyard. The owner's job on the top rung is to read reports and
decide, and to correct the file, not the chat.

## Rules

- Never invent tools, numbers or steps the owner did not describe.
- One source of truth per fact; if two systems would read different places, flag it.
- Every live write in any workflow passes an approval step. No exceptions for speed.

What done looks like at thirty days

  • Your five most repeated prompts are skill files with trigger style descriptions
  • One workflow is written as a numbered list with handoffs and human steps marked, and drawn
  • It ran on a trigger without you starting it
  • It has a named owner, a day and time, and a report that lands in one place
  • Every run ends with DID, DECIDED, BLOCKED, NEXT
  • You made at least one decision this month from a report without opening the underlying tool

Want your ladder drawn with you?

Inside the AI CEO Lab we map every job in your business onto the three rungs on a call, and you leave with the first system's job file written.

Pick a side.

Most people read this and forget it by Friday.

The other kind builds the thing that week. They stop needing free guides, because they are too busy running actual systems.

Free guides stay free. The room is where the builds happen.