Lesson 1 of 5 · 10 minutes

Start here

Learn what a skill is, pick your track, and get a first roast running.

Every AI conversation starts from zero

You open a chat and explain yourself. Your team, your conventions, how you like things written. Tomorrow you do it again. And the answer still comes back generic: “Consider adding more tests.” “Make it more concise.” Nothing you can act on.

The model doesn’t know what you know. A skill fixes that. It’s a markdown file that holds your context, your rules, and the shape of the answer you want. You write it once. Any agent that supports skills can load it every time.

Today you’ll build one skill and make it better in three passes.

Pick your track

Both tracks teach the same techniques. Only the thing you roast changes.

Your track:

The picker hides the other track on every lesson. You can switch back any time.

Set up

With a terminal (Claude Code or Codex)

Download the kit and run the setup script for your track:

curl -LO https://basecamp.nisi.sh/kit/skills-basecamp-kit.zip
unzip skills-basecamp-kit.zip
cd skills-basecamp-kit

Or download the kit in your browser and unzip it.

Repo Roast track

./setup.sh repo

Then cd into a git repo and start your agent. A repo you’ll work on at WorkOS is the best choice. If you don’t have one yet, clone a public SDK:

git clone https://github.com/workos/workos-node.git
cd workos-node
claude

Run the skill by name: /repo-roast

The starter’s description is vague on purpose, so a plain request like “roast this repo” may not find it yet. You’ll fix that in the next lesson.

Draft Roast track

./setup.sh draft
cd drafts
claude

Run the skill by name: /draft-roast

The starter’s description is vague on purpose, so a plain request like “roast this draft” may not find it yet. You’ll fix that in the next lesson.

The skill reads draft.md in the current folder. It starts as a sample launch email. To roast a different sample, copy it over:

cp samples/slack-announcement.md draft.md

The samples are fictional and bad on purpose. Once your skill works, try it on something you actually wrote.

setup.sh links the skill into ~/.claude/skills/ (and ~/.agents/skills/ if you use Codex). Edit the file in skills/<name>/SKILL.md inside the kit. Changes take effect on the next run. No restart.

Without a terminal (Claude on the web or desktop)

Use the Draft Roast track. Your loop is copy and paste:

  1. Copy the bare starter below into a text editor. That copy is your skill.
  2. Start a new chat. Paste your skill text, then paste the draft below it.
  3. Read the output. Edit your copy. Start a fresh chat and paste again.

The bare starter you’ll build on:

---
name: draft-roast
description: Reviews writing.
---

# Draft Roast

## Context
The user will paste the draft.

## Constraints
- Never be vague. Quote the exact sentence you're critiquing.

## Structure
1. One-line verdict (with overall score out of 10)
2. Top findings, each with: issue, evidence, severity, fix
3. One thing the draft does well

Grab a sample draft: launch email, Slack announcement, or one-pager.

At the end of the workshop you’ll upload the finished skill to Claude so it loads on its own.

Check

You’re ready when a run prints a verdict with a score out of 10. If you see that, the skill loaded.

If the answer has no score, the skill didn’t load. Ask your agent “What skills do you have?” and check that repo-roast or draft-roast is in the list.