A self-paced course

Vibe Coding
for the Slightly Intimidated

If your first thought is "this isn't for me" — you're probably picturing someone who knows how to code, has used a terminal before, maybe took a CS class at some point. That's not who this is for. This is for people who know what they want done but have no idea how to tell a computer to do it. That's the starting point, and it's a completely fine one.

What is vibe coding?

It's just controlling your computer.

To make your computer do something — automate a task, build a tracker, generate a report — you used to have to learn a programming language first. Code was the only way to give instructions.

Now you describe what you want in plain English, and AI handles the translation. You're still in control. You're just giving directions instead of writing every step yourself.

It's the same relationship you already have with your computer — just a different interface for giving it instructions. Your job is to describe the destination; Claude's job is to figure out how to get there.

Anything you do manually — pulling data, writing the same email twelve ways, building a tracker — is now something you can describe and get back a working version of. The skill you need isn't coding. It's describing, and you already know how to do that.

What you'll leave with:

  • A framework for working with AI — not just asking it questions and hoping
  • A setup that makes AI remember your preferences, rules, and style forever
  • Enough confidence to start building the first thing on your list
Eliana

I opened a terminal for the first time earlier this year, with no coding background and no CS degree. I just started describing what I needed and reacting to what came back. This course is what I learned from that — condensed into the things that actually matter.

Drop your name and email below. Your progress saves automatically, so you can close this tab and come back right where you left off.

Before & After

Your morning probably starts something like this.

You open the calendar, check Slack, scan email, and try to piece together what's actually urgent. By the time you have a clear picture of the day, half the morning is gone.

In this course, you'll build skills: plain text files you write once that Claude runs on command. Type /morning-standup and Claude checks your calendar, your tickets, your messages, and tells you what matters — without you touching anything.

Here's what that looks like in practice:

you@computer ~ % /morning-standup

CALENDAR TODAY
09:00  Weekly XFN sync — 30 min
11:00  1:1 with GQ — 25 min
14:30  Raffle debrief — 45 min

OVERDUE
COMMS-449  Reactivation batch — waiting 3 days
IO31      Newsletter stats not updated

SLACK FLAGS
#contributor-comms: 2 unread escalations
#ops: Henry asked about raffle timeline

TOP 3 PRIORITIES
1. Finalize raffle draw — deadline today 5pm
2. Reply to COMMS-449 escalations
3. Update IO31 open rate in newsletters.json

This is generated from a single plain text file — about 400 words of instructions you write once, in plain English. The references above are from my actual standup: yours will show your tools, your tickets, your messages.

Before & After

Think about the task you keep meaning to fix.

You know the one. You do it every week and it takes longer than it should. Here's what the same task looks like once you've built a skill for it.

Before

33 steps: content research, writing, voice check, UTM links, audience segmentation, three CSVs, test emails. Every single week, from scratch.

After

Type /draft-newsletter, then /ai-checker, then review and approve. Same output, same quality, a fraction of the time.

This example is a newsletter. Yours might be a weekly report, a project update, a round of emails. Either way, the pattern is the same: each of those /commands is a plain text file you wrote once, describing what you want done. Claude reads it and knows exactly what to do. You never have to explain it again.

Before & After

Everything started with one sentence.

"I need to keep track of what content is going out, on which channels, and make sure the right people know about it every week — help me think through what I'd need."

That was the first message. Everything else came from asking "what would make this better?" over several sessions until the process ran itself.

You don't need to know what you're building yet. You just need to know what problem you're tired of having.

What kind of work do you do?

Examples throughout the course adapt to your answer.

✍️ Comms / Writing
📋 Ops / PM
🔍 Research / Data
Other

The skill that got me here is the same skill you already have: describing what you need, knowing your domain, knowing good from bad output. That's it.

The Framework

Picture a personal chef.

Not a restaurant, not a meal kit. Someone who already knows what you hate and how you like things done, who doesn't need you to explain it every time you sit down. That's the relationship you're building with Claude.


Most people treat Claude like a vending machine

Type something, get something back, move on. It works well enough, but you stay in "good enough" forever.

What Claude is actually like when it's working

You say what you need. Claude asks one question. You answer. It comes back right on the first try — because it understood what you actually meant.

"You don't need to know how to cook. You just need to know what you're hungry for."

Four steps.

1
Describe the dish: tell Claude what you want, not how to build it. You're the expert on what you need.
2
Taste it: use the output like a real product. Does it do what you asked?
3
Send it back: say exactly what's wrong. Name the gap. "Too salty" beats "not great."
4
Write it down: make your corrections permanent. One fix, and it holds forever.
"You don't need to know how to cook. You just need to know what you're hungry for."

Quick check.

Which of these is vibe coding?

Step 1 of 4

Describe the dish, not the recipe.

The trap most people fall into: trying to sound technical, describing a solution they don't fully understand instead of the problem they know completely. Claude doesn't need you to pretend to speak its language. It needs you to speak yours.

❌ Don't do this

Create a React component with a useState hook that maps over an array of objects and renders each as a list item with an onClick handler...

✓ Do this

I need a weekly view of every piece of content my team is publishing, organized by channel. I want to click any item and edit it.

One line that makes your first output 10× better:

"Before you start, what questions do you have for me?"

Most prompts have gaps you don't know are there. This one line surfaces them before Claude writes a word.

You
Build me a weekly digest email. Before you start, what questions do you have?
Claude
A few things: What goes in it? Who receives it? What tone? Plain text or HTML?
You
Team updates + 1 story. ~800 people. Casual. Styled HTML.
Claude
Got it. Building now.
Step 1, continued

Can't find the words? Stop typing.

Open a voice app, talk for two minutes about what you're stuck on, and paste the transcript into Claude.

Eliana

Every Thursday I used to sit down in front of a blank doc and try to figure out where to start. Now I open a voice app on my commute and just talk — everything I know about what's happening this week, what I want to say, what tone feels right. Three or four minutes of messy thinking. Then I paste the transcript and ask Claude to help me organize it. By the time I'm at my desk I have a working structure.

The information was always there — you just needed a different way to get it out.

Your example
Select your role on the Before & After screen to see a tailored example.
Step 2 of 4

Taste it.

This is the step most people skip. They get the output back and immediately start editing line by line instead of stepping back to ask whether the whole thing works.

Take the output and actually use it — read it the way your audience would, try it the way it's meant to be used. The only question that matters at this stage: does it do what you actually asked for?

Describe Cook Taste Find what's off Send back

Most people stop at "taste it." They take the first thing that looks close enough. Step 4 is where the good output comes from.

React to this output

You asked for a weekly content calendar. Claude gave you: "A spreadsheet with columns for Date, Channel, Content Type, Status, and Owner."

Start with what you'd click on first. That gap is your next prompt.

Step 3 of 4

Send it back with specifics.

"Make it better" is useless. "The subject line is too long, keep it under 8 words" — that's a correction.

Vague feedbackSpecific correction
Make it better Subject line too long, under 8 words
This doesn't feel right Too formal. We say "hey quick update" not "we are pleased to inform you"
It's not working When I click edit, nothing happens. I expected a text field.

Prompts that produce slop

Slop comes from the prompt, not the AI. Vague in = generic out. Specific in = specific out.

Click each prompt to see if it'll produce slop:

"Write something about our platform for contributors."
"Write an email to a contributor who completed 47 tasks in November — top 8%. Tell them specifically what that means for their December earnings. Tone: warm, direct, no corporate filler."
"Write a status update about the project."
"Write a 3-bullet status update for my manager. The project is a new comms tool — 70% done, on track for May 1. Key blocker: waiting on an API key from eng. Lead with the blocker."
Your role example
Select your role to see a tailored example.
Step 4 of 4

Write it down.

Claude doesn't remember between conversations. Every new session, it starts from scratch — no context, no preferences, no corrections from last time.

The fix is a plain text file called CLAUDE.md. Claude reads it at the start of every session. Everything in that file is loaded before the first message you type.

Which means: every correction you make once, you can make permanent. Correct it in conversation, add the rule to CLAUDE.md, and it never happens again.

Eliana

Mine started with three rules: "never say X," "always end emails with Y." Now it has 50+. Every single one came from a real mistake I didn't want to make twice.

Starter rules for your role
Select your role to see starter rules.

Write your first 3 rules

These become your CLAUDE.md. Real rules you'll actually keep.

Treat Claude like a friend...
Or like scratch paper.

Like a friend

You talk to Claude about the work. Not just "do this" — but "can we think about how to make this go more smoothly for me?" Claude asks questions back. You figure it out together.

Like scratch paper

Use Claude to think. Draft an email you're not sure about, argue a position you're trying to form, let it push back. Claude doesn't judge the draft — it just helps you find the right version.


The question that unlocks everything

Once you've built something — or corrected something — try this:

Can we think about how to make this go even more smoothly for me?

Claude will ask questions back. Real ones. This is what it looks like:

"Would it be helpful for you to have access to specific Slack channels?"

"How can I make sure I'm pulling from all the right places — but not pulling too much from things that aren't relevant?"

"We need a way for me to understand the voice you want each week so we're not starting from scratch every time."

That's a real conversation I had with Claude while building my morning standup. Those questions became three new rules in my CLAUDE.md that same session.

"What am I not thinking about?"

This is the question to reach for most. Run it at the end of any project, any session, any time you feel like something could be better but you can't name it.

How can we improve this?
What am I not thinking about?


Ask Claude to analyze itself

Open a fresh session and paste this:

Here's my CLAUDE.md and a few recent sessions. How could I be working with you more efficiently?

When you ask Claude to analyze your own setup, it finds gaps you didn't know were there. A little strange the first time, and it works every single time.

See the blueprint before the sledgehammer.

Press Shift+Tab before any big action. Claude shows you exactly what it's about to do — step by step — before touching a file. You say go, or you catch the one it got wrong.

Here's what I'll do:

1. Find welcome-email.md
2. Add one sentence about the portal after the first paragraph
3. Show you the change before saving

Proceed? (y/n)

Use it before anything you care about.

Think of it as: Claude shows you the menu before starting to cook. Not for approval — to make sure it understood what you actually wanted.

When something goes wrong repeatedly.

After enough sessions where Claude made the same mistake:

Step"You made a mistake."
Then"Why did you make that mistake?"
Then"Update your configs so you don't make it next time."
Eliana

I turned that pattern into a skill — /self-reflect. When something goes wrong, I run it right then in that same conversation, and Claude reads back through what happened, finds the root cause, writes a rule, and updates its own config. The next session starts better than the last one ended. My corrections log has over fifteen entries. Every one is something that used to happen repeatedly and doesn't anymore.

You can install /self-reflect in the Starter Kit — it's one of the two skills you'll walk out of this course with.

Your AI keeps writing corporate-sounding intros even after you've corrected it three times. What's the right move?

Standup Builder

Design your morning standup.

You saw what one looks like in the first module. That one was built for a specific set of tools and priorities. Yours can be completely different.

By the end of this module, you'll have a skill file built around what you actually need each morning — one command to install, five minutes to run every day.


What you're building: A plain text file that tells Claude exactly what to check and how to present it. You design it here. It runs every morning automatically.

Without it

Open calendar. Open Slack. Open email. Open your project board. Piece together what's urgent. Repeat every morning.

With it

Type /my-standup. Get a clean list of everything that matters. Done in 90 seconds.

Standup Builder

What does your morning need?

Check everything you want your standup to include. Skip anything you don't use.

Tools you use

What do you want it to tell you?

What tone?

Your skill updates as you check boxes. Hit Next to see it and grab the install command.

Standup Builder

Here's your standup skill.

Built from your selections. You can edit this file anytime — it's just text.


Install it in one step.

Open your terminal. Paste this entire block and press Enter:

Then close Claude completely and reopen it.

Type /my-standup to test. It should ask you what's on your plate today.

Want to change something? Go back, update your selections, and copy the new install command. The file gets overwritten every time you run the install.
Starter Kit

Let's get you set up.

Two things to set up. Start to finish: about 10 minutes. You'll end this with a morning standup skill and a system that learns from your corrections.


First: open your terminal.

On Mac

Press ⌘ Space → type Terminal → press Enter.

On Windows

Press the Windows key → type cmd → press Enter.

You'll see a black (or white) window with a blinking cursor — type here, press Enter, and things happen. That's all the terminal is.

Note: This setup is for Claude Code (the terminal or desktop app). If you don't have it yet, ask the workshop organizer — we'll get you sorted.
Starter Kit · Step 1

Create your CLAUDE.md

This is a plain text file that Claude reads at the start of every session. It's your standing instructions — who you are, how you write, what you never want repeated.

You write it once. Every session starts with it already loaded.


1. Run this in your terminal to create the file:

touch ~/CLAUDE.md && open ~/CLAUDE.md

This creates a blank file in your home folder and opens it in a text editor.

2. Paste this template and fill in your details:

# My CLAUDE.md ## Who I am [Your name]. [Your role and what your team does in 1-2 sentences.] ## What I work on - [Main type of work, e.g. "Writing contributor-facing emails and announcements"] - [Second type, e.g. "Coordinating campaigns and content calendars"] - [Third type if relevant] ## How I write - Tone: [e.g. "Warm, direct, first person — like talking to a friend who works here"] - Never: [e.g. "Em dashes, corporate-sounding intros, passive voice"] - Always: [e.g. "Specific details over generic claims"] ## My rules - [Rule 1 — your most important one] - [Rule 2] - [Rule 3] ## Context - I work at [Company/Team] - The people I'm writing for: [describe your audience] - Tools I use: [Slack, Notion, Linear, Gmail, etc.]

3. Save the file. Then verify Claude found it:

Open Claude Code and type:

What's in my CLAUDE.md?

Claude should read your file back to you. If it says it doesn't have one — double-check the file is at ~/CLAUDE.md (your home folder) and restart Claude.

Mark as done when Claude reads it back

Don't move on until you've confirmed Claude found your file
Starter Kit · Step 2

Build and install /my-standup

Choose what you want your standup to include, then copy the install command. Takes about two minutes.


Tools you use

What do you want it to tell you?

Tone


Copy this into your terminal and press Enter:

Then close Claude and reopen it. Type /my-standup to test.

Mark done when /my-standup is working

Starter Kit · Step 3

Install /self-reflect

Every time Claude does something wrong and I correct it, I used to hope it wouldn't happen again. Sometimes it didn't. Sometimes it did, in the exact same way, three sessions later.

So I built a skill for it. Now when Claude makes a mistake and I correct it — right then, in the same conversation — I type /self-reflect. Claude figures out why it happened, writes a rule to prevent it, and saves that rule so it applies every session going forward.

When to use it: Any time you correct Claude during a conversation — big or small. Run it right after the correction happens, not a week later, not the third time the pattern repeats.


1. Copy and paste this into your terminal, then press Enter:

mkdir -p ~/.claude/skills/self-reflect && cat > ~/.claude/skills/self-reflect/SKILL.md << 'SKILLEOF' # Self-Reflect Run when I type /self-reflect — usually right after I've corrected Claude on something. ## When to run this - I just corrected Claude on something in this conversation - I said "that's wrong," "don't do that," "no, I meant..." or similar - Something went off and I had to fix it manually Run this ANY TIME a correction happens. Not just when something repeats. One correction is enough. ## Steps 1. Look back at what just happened. What did I correct? Describe it precisely. 2. Figure out WHY it happened: - Was a rule missing entirely? - Was there a rule, but it wasn't specific enough? - Was there a clear rule that just didn't get followed? (The third one is the most important to catch.) 3. Write the fix — a specific, plain-language rule that would have prevented this. 4. Show me the proposed rule before doing anything. Wait for me to say yes. 5. After I approve: write the rule to CLAUDE.md (or the right file). 6. Say: "Rule saved. If this comes up again, let me know." ## What makes a good rule - Specific enough that you could check a draft against it - "Don't start emails with 'I hope this finds you well'" is a rule - "Be more natural" is not ## Goal One correction, then never again. If the same thing happens twice, that means the rule wasn't strong enough — run /self-reflect again and make it more specific. SKILLEOF

2. Close Claude completely and reopen it.

3. Test it by typing /self-reflect.

Claude should ask what happened. You can make up a fake correction to test it. Once it works, you're ready.

Mark done when /self-reflect is working

Optional: connect Claude to your tools

Connect Google Calendar & Slack →

Google Calendar:

claude mcp add google-calendar -- npx -y @cocal/google-calendar-mcp

Restart Claude. Then ask: "What's on my calendar today?" — it should know.

Slack:

claude mcp add --transport http slack https://mcp.slack.com/mcp

Authorize in the browser when prompted. Then ask: "What's in #general today?" to test.


Smoke test

Close Claude and reopen it. Run these:

/my-standup → should ask your three questions
/self-reflect → should ask what you just corrected
What's in my CLAUDE.md? → should describe your role back to you

If a skill says "command not found": re-run the install, close Claude, reopen.

Your path from here.

Some people get through these stages in a week. Some take a month. The order is what matters, not the pace.

Stage 1

Describe a real problem you have, without trying to engineer the prompt. Your goal at this stage is to see what Claude does with your words.

Stage 2

Build the first version of something. It won't be exactly right. That's how it's supposed to work — what comes back tells you what to ask for next.

Stage 3

Start writing down your corrections. Every time you push back on something, add it as a rule. Watch the next session start already knowing that.

Stage 4

Give Claude the problem you assumed was too complicated. This is usually where it surprises you.

You made it! Sign your name.

Type your name below — it goes on your certificate.

✦ ✦ ✦
Certificate of Completion
This certifies that
completed Vibe Coding: Build Anything You Need
Scale AI · 2026
No code was harmed in the making of this certificate.

One quick thing before you go.

Your feedback shapes the next version. Takes about a minute.

Or connect on LinkedIn

# My CLAUDE.md

## Who I am
[Your name]. [Your role and what your team does in 1-2 sentences.]

## What I work on
- [Main type of work, e.g. "Writing contributor-facing emails and announcements"]
- [Second type, e.g. "Coordinating campaigns and content calendars"]
- [Third type if relevant]

## How I write
- Tone: [e.g. "Warm, direct, first person -- like talking to a friend who works here"]
- Never: [e.g. "Em dashes, corporate-sounding intros, passive voice"]
- Always: [e.g. "Specific details over generic claims"]

## My rules
- [Rule 1 -- your most important one]
- [Rule 2]
- [Rule 3]

## Context
- I work at [Company/Team]
- The people I'm writing for: [describe your audience]
- Tools I use: [Slack, Notion, Linear, Gmail, etc.]
mkdir -p ~/.claude/skills/my-standup && cat > ~/.claude/skills/my-standup/SKILL.md << 'SKILLEOF'
# My Standup

Run when I type /my-standup. Ask me these questions one at a time, then return a clean priority list.

## Questions

1. "What's on your plate today? List everything — big and small."
2. "What's blocked or waiting on someone else?"
3. "What HAS to get done today no matter what?"

## What to return

After I answer all three:
- Top 3 priorities, most important first
- Star (★) on the single most critical item
- Flag anything blocked for more than 2 days with a note: "Blocked X days — worth unblocking?"
- Optional: one thing I can drop or push if the day gets tight

## Tone
Keep it practical and honest. No motivational filler. I want clarity, not cheerleading.
SKILLEOF
mkdir -p ~/.claude/skills/self-reflect && cat > ~/.claude/skills/self-reflect/SKILL.md << 'SKILLEOF'
# Self-Reflect

Run when I type /self-reflect — usually right after I've corrected Claude on something.

## When to run this
- I just corrected Claude on something in this conversation
- I said "that's wrong," "don't do that," "no, I meant..." or similar
- Something went off and I had to fix it manually

Run this ANY TIME a correction happens. Not just when something repeats. One correction is enough.

## Steps

1. Look back at what just happened. What did I correct? Describe it precisely.
2. Figure out WHY it happened:
   - Was a rule missing entirely?
   - Was there a rule, but it wasn't specific enough?
   - Was there a clear rule that just didn't get followed?
   (The third one is the most important to catch.)
3. Write the fix — a specific, plain-language rule that would have prevented this.
4. Show me the proposed rule before doing anything. Wait for me to say yes.
5. After I approve: write the rule to CLAUDE.md (or the right file).
6. Say: "Rule saved. If this comes up again, let me know."

## What makes a good rule
- Specific enough that you could check a draft against it
- "Don't start emails with 'I hope this finds you well'" is a rule
- "Be more natural" is not

## Goal
One correction, then never again. If the same thing happens twice, that means the rule wasn't strong enough — run /self-reflect again and make it more specific.
SKILLEOF