Lesson 03 · Loop Engineering

Skills as written intent

Stop explaining your project every session like a goldfish.

Your loop runs tomorrow morning while you sleep. It knows nothing about your build steps, your conventions, or the one incident that explains why a file looks strange. Osmani's warning about that gap is the sharpest line in the post:

An agent starts every session cold and it will fill any hole in your intent with a confident guess. Addy Osmani, Intent debt

A skill is that intent written down on the outside. Written once, read every run. Without skills, the loop re-derives your whole project from zero each cycle. With them, it compounds.

The format

Both Claude Code and Codex use the same shape: a folder with a SKILL.md inside, holding instructions and metadata, plus optional scripts, references and assets.

.claude/skills/release-check/
└── SKILL.md
---
name: release-check
description: Verify a release candidate before tagging. Use when
  the user asks to cut a release, tag a version, or check whether
  main is releasable.
---

# Release check

1. Run `pnpm build` and confirm it exits clean.
2. Run `pnpm test -- --run`. All suites must pass, no skips.
3. Confirm CHANGELOG.md has an entry for the new version.
4. We never tag from a branch other than main. This broke
   production on 2025-11-04.

The description does the routing

This is the part people get wrong. The agent decides whether to invoke a skill by reading its description. Osmani puts it plainly: a skill runs by itself when your task matches the description, which is the reason a tight boring description beats a clever one.

Skill vs plugin Keep these straight. The skill is the authoring format. A plugin is how you ship it — bundle skills and connectors together so a teammate installs your setup in one go. True in both tools.

Check yourself

What decides whether an agent invokes a skill on its own?

Which of these belongs in a SKILL.md rather than a prompt?

Name one rule about your own project that an agent would guess wrong. Write it as a SKILL.md line.

A good line states the rule and the reason. The reason stops a future agent from deciding the rule is obsolete. That is exactly the debt Osmani is describing.

Read the source

Primary source: Agent skills by Addy Osmani, then Intent debt for why the writing-down matters more than the format. Codex users: the Codex skills docs cover the same file.

Ask me. Paste a repo path and I will draft the first SKILL.md with you, and we can argue about the description.