- Didier's Newsletter
- Posts
- How you can build and share a Claude Code skill
How you can build and share a Claude Code skill
Creating a skill to generate a financial report with a specific branding
In a previous post, I shared how I turned days of developer training into a skill that lets anyone build OpenBB apps in minutes.
Today I'm going to show you how to build a skill from scratch.
Here's the counterintuitive thing: as models get smarter, the premium on well-crafted skills goes up, not down.
Most people assume better models mean less need for customization.
The opposite is true.
A 5% improvement in base capability compounds with a well-designed skill. The skill becomes the multiplier.
So this is my attempt to show you how to create a skill from scratch and iterate on it until it's good enough to share with someone else.
For this example, I'm going to build a financial report generation skill.
The Process
I also recorded a video walkthrough which you can find here:
Here's the approach I use:
1. Create a new repo
Start with a clean folder.
This will become your skill directory.
mkdir dbs-report-skill
cd dbs-report-skill2. Add example reports you like
Find 2-3 reports that represent the style and quality you're targeting. These become your "ground truth".
Drop them into the repo. PDFs, screenshots, whatever format they're in.
The key is having concrete examples, not abstract descriptions of what you want.
3. Have Claude analyze the design in detail
Tell Claude to study the reports and extract everything it would need to recreate them:
Visual design: Layout, typography, spacing, color palette, margins
Content structure: Section hierarchy, data relationships, narrative flow
Formatting patterns: How tables are styled, how charts are positioned, how callouts work
Ask Claude to be exhaustive.
You want it to notice things you wouldn't think to mention.
4. Generate a report with mock data
Now test whether Claude actually absorbed the design language.
Ask it to create a report in that exact style, but with completely made-up data.
This isolates the skill from data dependencies. If the mock report looks wrong, it's a design problem, not a data problem.
5. Iterate until it's right
This is the loop:
Review the output
Identify what's off
Update the skill instructions
Regenerate
Repeat
Don't move on until a single prompt produces a report that matches your examples.
Don’t keep running claude yourself either, let it iterate on its own until it thinks that the report it created is actually fairly similar style-wise from the ground-truth ones in the folder.
6. Connect real data
Now add the data layer.
Give Claude access to real financial data via MCP servers and web search.
In this example, I’m going to connect with Carbon Arc MCP and utilize web search.
7. Generate a real report
The moment of truth.
Ask Claude to create a report on an actual company using the skill and real data sources.
Where the Skill lives
Once you're done, the skill exists in your .claude folder (or wherever you configured skills to live).
The structure looks like this:
financial-report-skill/
├── SKILL.md # The instructions
├── assets/ # Templates, fonts, images
└── references/ # Example reports, style guidesThe SKILL.md file is the brain. It contains:
Frontmatter: Name and description (this is what triggers the skill)
Instructions: The procedural knowledge Claude needs
Here's a simplified example of what the frontmatter looks like:
---
name: dbs-report
description: Generate a DBS Group Research US Equity Research report in HTML format. Use this skill when the user asks to create, generate, or produce a DBS-style equity research report for a company. The skill produces a pixel-perfect reproduction of the DBS report format including cover page, financial tables, ratings history, and disclaimer pages.
argument-hint: <company-name>
user-invocable: true
---
# DBS Group Research -- US Equity Research Report Generator
You are generating a **DBS Group Research US Equity Research report** in HTML format. The output must be a single self-contained HTML file that, when opened in a browser and printed to PDF, is visually indistinguishable ...
...The description is critical. It's how Claude knows when to use the skill.
Option 1: Send the file directly
Just share the skill folder.
The recipient drops it into their skills directory. I love this about skills.
Option 2: Publish to skills.sh
If you open source your skill repository, it becomes available through skills.sh.
Anyone can install it with:
npx skills add <your-github-org>/<your-repo>For example, my repo is open source at https://github.com/DidierRLopes/dbs-report-skill.
And that means you can add it with:
npx skills add didierlopes/dbs-report-skillThen they ask Claude to generate a financial report, and the skill triggers automatically.
Why you should care
We're entering an era where the raw intelligence of models keeps climbing.
But intelligence without context is generic. The skill is what makes it yours.
It encodes your taste, your standards, your workflow.
The model provides the horsepower; the skill provides the steering.
And the better the model gets, the more it can do with a well-crafted skill.
Start building yours.