From Vibe Coding to Agentic Engineering
Shayan Rais
Intro — 0:00
You're doing vibe coding — and only using a fraction of what Claude Code can do.
Type prompts, get results, repeat.
It works — but Claude is just responding to you.
No structure. No repeatability. No workflow.
You're always in the loop. Claude never runs on its own.
Define a workflow once.
Claude runs it for you — every time, the same way.
Commands, Agents, and Skills chain together.
You kick it off and walk away. Claude handles the rest.
Covers the foundation: Commands, Agents, and Skills — and how they chain together into repeatable workflows.
We'll use the weather workflow from this repo as our running example throughout the video.
Part 1 — 0:45
Vibe coding the weather task — it works once, but is it a workflow you can trust?
Type into a fresh Claude Code terminal:
Blue gradient background
Large serif font, centered layout
Output saved to weather.svg
Looks fine... until you run it again.
Orange card-style background
Small sans-serif, left-aligned layout
Output saved to output/card.svg
Different design. Different file path. Every time.
It works once. But it's not repeatable. It's not a workflow you can trust. You had to sit and watch it work — and you'll get a completely different result tomorrow.
Part 2 — 2:00
The same task — but as a repeatable, autonomous workflow.
Instead of a freeform prompt, type a slash command:
orchestration-workflow/weather.svg + orchestration-workflow/output.mdSame SVG layout. Same file structure. Same clean result. You can kick this off and walk away — it runs autonomously.
Part 3 — 3:15
Command → Agent → Skill — the three building blocks.
The weather workflow chains three building blocks together:
The entry point — the conductor. Asks the user a question, calls an agent, then calls a skill.
A specialized worker with one job: fetch the temperature. Has a preloaded skill for API knowledge.
weather-fetcher is baked into the agent at startup — domain knowledge about which API to call.
weather-svg-creator is called independently via the Skill tool — creates a consistent SVG card.
A command is the entry point — like a script. It's a markdown file that tells Claude what steps to follow. Think of it as the conductor.
.claude/commands/ — one .md file per command/slash-command in your terminalAn agent is a specialized worker. Our weather-agent has one job: fetch the temperature. It has its own tools, model, and permissions — an isolated worker.
weather-fetcher is injected at startup — it already knows the APIA skill is a reusable set of instructions. Think of it as a recipe. Skills can be background knowledge or standalone actions.
weather-fetcher is baked into the weather-agent.
It's domain knowledge — which API endpoint to call, how to parse the JSON response.
weather-svg-creator is called via the Skill tool.
It creates the SVG card with a consistent template — same layout every time.
Skills live in .claude/skills/<name>/SKILL.md
Part 4 — 4:30
The difference between vibe coding and agentic engineering is structure.
You type.
You hope.
You get something.
Inconsistent. You're always in the loop. Doesn't scale.
You define a workflow once.
It runs the same way every time.
You kick it off and walk away.
Consistent. Autonomous. Repeatable. Trustworthy.
Commands, Agents, and Skills are the three building blocks. Once you understand these, you can build any workflow.
This repo has more patterns — we'll cover them in upcoming videos:
Link in the description. Star it, clone it, and start building your own workflows.
| Concept | Location | Purpose |
|---|---|---|
| Command | .claude/commands/ |
Entry point, orchestration, /slash-command |
| Agent | .claude/agents/ |
Specialized worker with own tools & model |
| Skill | .claude/skills/ |
Reusable instructions (preloaded or invoked) |
Preloaded — baked into agent via skills: frontmatter
Invoked — called via Skill() tool at runtime
/command → orchestrates
agent + preloaded skill → executes
invoked skill → produces output
Questions?
github.com/shanraisshan/claude-code-best-practice