← Back to Blog
AI WorkflowClaude Codeskill filesAI development

Skill Files Explained: How I Customized Claude Code for My Own Projects

Claude Code out of the box produces generic output. Skill files give it the specific conventions, patterns, and constraints of your actual codebase. Here is how I build and use them.

SPSantosh Paudel· April 26, 2026· 7 min read· 2 views
Table of contents

Claude Code without customization produces competent but generic code. It knows Next.js. It knows Supabase. It does not know that this project uses $md$...$md$ dollar-quoting for SQL, that server components should fetch directly from Supabase without an API layer, or that the admin panel wraps every page in <AdminGuard><AdminShell>.

Skill files encode that project-specific knowledge. The result is code that fits the existing codebase instead of code that is correct in the abstract but diverges from how this project actually works.

What a Skill File Is

A skill file is a markdown document that lives in the project directory (typically .claude/skills/ or at the project root). When you invoke the skill, Claude Code reads it and applies its contents to the current session.

It is not code. It is instructions. The skill file tells Claude Code: who you are building for, what the stack looks like, what conventions to follow, and what to never do.

The Skill File Format

A minimal skill file:

---
name: portfolio-dev
description: Development conventions for santoshpaudel.me
---

# Stack
- Next.js 15 App Router
- Supabase (PostgreSQL, Auth, Storage)
- Vercel deployment
- Tailwind CSS
- TypeScript throughout

# Conventions
- Server components fetch directly from Supabase — no API layer for reads
- All admin pages wrap in <AdminGuard><AdminShell>
- Blog content uses $md$...$md$ dollar-quoting in SQL seed files
- Route params are Promises in Next.js 16 — always await params before destructuring
- Reading time uses readingTime() from lib/seo, not an inline calculation

# Never do
- Never use raw <img> tags — always Next.js Image component
- Never commit .env.local or API keys
- Never use blocking systeminformation calls in request handlers
- Never git add . — always specify files explicitly

The Skills I Actually Use

portfolio-dev — The conventions for santoshpaudel.me, as above. The most frequently invoked skill. Used in every session working on the main site.

sql-seed — Conventions for writing Supabase seed files. Dollar-quoting, ON CONFLICT DO NOTHING, column order, the specific table schemas. Without this skill, Claude Code occasionally writes seed files that are technically correct SQL but diverge from the established pattern.

deploy — The commit, push, deploy sequence. Which files to stage, what the commit message format is, what to verify before pushing. This skill is invoked at the end of a feature to handle the deployment sequence.

session-start — A meta-skill invoked at the start of each work session. It reads the current session note (NOTES.md), loads the relevant project skill, and summarizes where the work left off. This is the context restoration step.

Building a Skill File for a New Project

The fastest approach: let the first session of a new project be exploratory, then document what you learned.

Work on the project for 2–3 hours. Notice when Claude Code produces code that does not fit the conventions — wrong pattern, wrong location, wrong naming. Write those conventions down as you encounter them. After the first session, you have the core of your skill file.

Add to it over time. The skill file for santoshpaudel.me grew from 15 lines to 80 lines over six weeks as I encountered edge cases that needed encoding.

The Leverage Point

The leverage in skill files is not the obvious conventions (use TypeScript, use Tailwind). Those Claude Code follows anyway. The leverage is the project-specific constraints that are not in any documentation:

  • How the RLS policies work in this specific database
  • Why the admin shell wraps certain pages but not others
  • What the dollar-quoting convention is for SQL
  • Why certain packages are in serverExternalPackages

These are the decisions that took time to make and that Claude Code has no way to know without being told. Encoding them in a skill file means you make each decision once, not once per session.


Resources


Want a Claude Code setup tuned to your specific codebase? I configure the full workflow — skill files, session structure, deploy pipeline — as part of every project. Get in touch.

Get the free AI Prompt Pack + weekly frameworks

30+ tested prompts for images, captions, scripts & keywords, delivered instantly. Plus real insights on AI + marketing — no generic tips.

No spam. Unsubscribe anytime.

Want to implement this with guidance?

Santosh helps founders turn insights like this into real systems.

AI Content Systems

External Resources

Further Reading & Tools

Related Posts

01
9 min
Next.jsSupabase
20d agoDev Sprint

How I Shipped 4 Full-Stack Platforms in 25 Days

Four production-ready sites. One developer. Twenty-five days. Here is the exact stack, timeline, and workflow — including what broke and what made it possible.

Read article
02
7 min
GitHub Student Packfree hosting
1mo agoDev Sprint

The GitHub Student Pack Stack: Free Domain, Free Hosting, Real Production Sites

The GitHub Student Pack is sitting in your inbox unused. Here is exactly what I used from it to build four live production sites with zero hosting costs.

Read article
03
8 min
Claude CodeAntigravity
1mo agoAI Workflow

My Claude Code and Antigravity Workflow for Running 3 Projects at Once

How I use Claude Code and Antigravity together to manage context across three active projects without losing state between sessions or between tools.

Read article