You know that thing where you’ve got 47 browser tabs open?
Not because you’re researching anything profound. No. You’re just trying to find that one post you wrote six months ago—the one about WooCommerce setup, or was it the product pages tutorial?—because you need to link to it from the article you’re publishing today.
Tab after tab after tab. Command+F. Scroll. Squint. Copy URL. Switch back. Find the right words to anchor. Paste. Format.
Thirty minutes later, you’ve added three internal links.
Three.
And honestly? They’re probably not even the best ones.
Here’s the thing: I’ve been that person. Staring at a perfectly good 2,000-word post with zero internal links, knowing full well that Google loves them, readers need them, and my inner SEO voice won’t shut up about it.
So I built something.
And what I discovered about WordPress 6.9’s new Abilities API might just change how you think about your entire site.
Stay with me.
.
.
.
The Problem Nobody’s Actually Solving
Let’s be honest about what’s out there right now.
Manual linking eats 10-30 minutes per post. That’s not a workflow—that’s a hostage situation.
Keyword-based plugins spray links everywhere like a toddler with a garden hose. “AI” gets linked to “AirAsia.” I wish I were joking.
Regex matching sounds smart until it isn’t. It matches strings. It doesn’t understand meaning. Big difference.
Context blindness is the real killer. These tools can’t tell the difference between your Gutenberg tutorial and your post about WordPress editor basics—even though they’re obviously related.
The existing solutions are solving the wrong problem.
They’re trying to match strings when they should be understanding meaning.
And then WordPress 6.9 launched on December 2nd, 2025.
Buried in the release notes was something called the Abilities API. Most developers scrolled right past it.
I didn’t.
.
.
.
The Discovery That Changed Everything
What happens when you combine WordPress’s new Abilities API with Claude Desktop and an MCP server?
Magic. Actual magic.
(Okay, not actual magic. But close enough that I did a little chair dance when it worked.)
Instead of regex patterns hunting for keywords, I created abilities that do something radical—they think.
Search posts semantically. When you write about “selling products online,” it finds your WooCommerce setup guide. Because it understands what you mean.
Analyze content context. It knows your Gutenberg blocks tutorial relates to your WordPress editor basics post. Not because of keywords. Because of meaning.
Add links intelligently. Places them where readers actually need them—not just where a keyword appears.
Validate links automatically. Checks if targets still exist. No more embarrassing 404s hiding in your archive.
The kicker?
AI decides where to place links based on actual content understanding.
Not keywords. Not patterns. Understanding.
.
.
.
Building the Plugin: From Idea to Production
Here’s where it gets fun.
I’m going to walk you through exactly how I built this—from brainstorming to a working plugin with 9 abilities. The whole journey took about 3 hours.
(Three hours! To build something that would’ve taken weeks the traditional way. I’m still a little giddy about it.)
Phase 1: Getting Clear on What I Actually Wanted
I started in Claude Web with my wp-abilities-api skill loaded.
No documentation hunting. No API reference rabbit holes. Claude already knew the patterns.
PROMPT: Abilities API requirements brainstorming
I want to use the latest abilities API from WordPress to create abilities to add / update / remove internal links for posts.
The abilities I'm thinking of are:
- Search posts, custom post types, pages (default: post) by keywords, categories, tags, custom taxonomies, id, author, date range, etc
- get post, custom post type, page (default: post) by id. This would retrieve the full content of the post including title, content, excerpt, featured image, taxonomies, author info for that post.
- add / update / remove internal links in a post, custom post type, page (default: post) by id. This would involve specifying the source post id, target post id, anchor text, and link attributes (like nofollow, target blank, etc).
- validate internal links to ensure they point to existing posts, custom post types, or pages within the WordPress site.
- generate a report of all internal links within a specific post, custom post type, or page (default: post), including broken links, link attributes, and anchor texts.
Please use the "wp-abilities-api" skill to help you with any WordPress Abilities API related tasks.
The idea is to create a plugin that exposes a REST API for adding, updating, and removing internal links using LLM via MCP server.
I want you to help me brainstorm for the requirements of this plugin. Focus on business logic and rules, user stories, and acceptance criteria. No need to include technical implementation details.
I want to use the latest abilities API from WordPress to create abilities to add / update / remove internal links for posts.
The abilities I'm thinking of are:
- Search posts, custom post types, pages (default: post) by keywords, categories, tags, custom taxonomies, id, author, date range, etc
- get post, custom post type, page (default: post) by id. This would retrieve the full content of the post including title, content, excerpt, featured image, taxonomies, author info for that post.
- add / update / remove internal links in a post, custom post type, page (default: post) by id. This would involve specifying the source post id, target post id, anchor text, and link attributes (like nofollow, target blank, etc).
- validate internal links to ensure they point to existing posts, custom post types, or pages within the WordPress site.
- generate a report of all internal links within a specific post, custom post type, or page (default: post), including broken links, link attributes, and anchor texts.
Please use the "wp-abilities-api" skill to help you with any WordPress Abilities API related tasks.
The idea is to create a plugin that exposes a REST API for adding, updating, and removing internal links using LLM via MCP server.
I want you to help me brainstorm for the requirements of this plugin. Focus on business logic and rules, user stories, and acceptance criteria. No need to include technical implementation details.
My initial prompt was simple: I want to create abilities for managing internal links.
Claude came back with targeted questions. Not generic ones—targeted.
My answers to Claude’s questions:
Notice what’s happening here. Each answer shaped the architecture. No guessing. No over-engineering. No building features I’d never use.
After a few rounds, Claude produced a comprehensive requirements document:
The key architectural decisions that emerged:
LLM-First Design — All abilities optimized for AI consumption via MCP. Because that’s the whole point.
Editor-Aware — Handles Gutenberg blocks vs Classic Editor automatically. No more “works in one, breaks in the other.”
Permission-Based — Respects WordPress capabilities system. Because security isn’t optional.
Operation-Focused — The plugin handles CRUD operations. AI handles the intelligence. Clean separation.
Phase 2: Letting Claude Code Do the Heavy Lifting
With requirements locked, I opened VS Code and set up my workspace:
The setup was deliberate.
wp-abilities-api skill installed. Build-insights-logger to capture discoveries. Requirements document in the notes folder. Clean plugin directory ready to go.
Then I triggered Claude Code with plan mode:
PROMPT: Build Plugin From Scratch
Based on the requirements at @notes/requirements.md, please help me build the plugin from scratch.
Please use the "wp-abilities-api" skill to help you with any WordPress Abilities API related tasks.
Please use the "build-insights-logger" skill to automatically log meaningful insights, discoveries, and decisions during coding session.
You have access to WP-CLI commands to help you with the development.
Based on the requirements at @notes/requirements.md, please help me build the plugin from scratch.
Please use the "wp-abilities-api" skill to help you with any WordPress Abilities API related tasks.
Please use the "build-insights-logger" skill to automatically log meaningful insights, discoveries, and decisions during coding session.
You have access to WP-CLI commands to help you with the development.
Watch what happened next.
Claude Code immediately read the requirements document, explored the current plugin state, activated the wp-abilities-api skill automatically, and studied the API documentation patterns.
Then came clarifying questions.
Even Claude Code wanted to be sure:
Three critical decisions:
Autoloading: Composer PSR-4. The professional standard.
Implementation: All 9 abilities at once. Comprehensive from the start.
Testing: No unit tests initially. Faster iteration. (We can add tests later. Don’t @ me.)
The plan was complete. Nine abilities. Core services. Professional architecture.
And I hadn’t written a single line of code yet.
Phase 3: Watching the Build Happen
Here’s what fascinates me—Claude Code used WP-CLI to test in real-time:
Real post IDs. Real execution. Real validation.
Every ability got tested. No assumptions. No “it should work” moments.
Editor-aware — Properly handles Gutenberg blocks AND Classic Editor. Finally.
Permission-based — Uses WordPress capabilities (read, read_post, edit_post). Your site stays secure.
Post lock support — Respects WordPress post editing locks. No stepping on collaborators’ toes.
MCP-ready — All abilities exposed via mcp.publicapi=true. AI can actually use them.
REST API enabled — Available via REST endpoints for whatever else you dream up.
.
.
.
The Real Test: Can AI Actually Use This?
The plugin was built. The abilities were registered.
But could AI actually use them?
Time to find out.
Setting Up the Bridge
First, I installed the MCP Adapter plugin. This brilliant piece of engineering transforms WordPress abilities into MCP tools that AI can trigger.
The setup took 2 minutes. Two.
When I opened Claude Code, it immediately detected the MCP server:
The Moment of Truth
I started simple: “What kind of abilities does my WordPress site have?”
Claude Code triggered the discover-abilities tool:
All 9 abilities. Ready. Waiting.
Autonomous Internal Linking in Action
I grabbed a post from my site—an article about Claude Skills with zero internal links.
Post ID: 1557.
I asked Claude Code to scan the post, search for related content, and add internal links.
Here’s what happened.
Step 1: Reading the post
Claude read the entire post. Understood it was about Claude Skills, design systems, and creating reusable components.
Step 2: Searching for relevant content
26 related posts found. But Claude didn’t just grab random matches.
Step 3: Intelligent link selection
Look at those choices:
“Claude Skills” → Links to Part 1 intro article
“Claude Code” → Links to tips article for tool mastery
“component library” → Connects to Part 3 about mastering libraries
“reusable forever” → Points to Part 2 about code reusability
Each link made semantic sense. No keyword stuffing. No forced matches. Just… relevance.
Step 4: Applying the links
One API call. Four links inserted.
The Results
I opened my post in the WordPress editor.
There they were:
The transformation:
Before: 0 internal links, isolated content
After: 4 contextually perfect internal links
Time taken: Less than 2 minutes
Human effort: One prompt
But here’s what really got me.
Claude understood that when I mentioned “component library” in the context of ShadCN UI, it should link to my article about mastering libraries in Claude Skills.
When I wrote “reusable forever” about turning code into superpowers, it linked to Part 2 of my Claude Skills series—which is literally about that exact topic.
No regex could do this. No keyword matching could understand this context.
This is what the WordPress Abilities API makes possible.
.
.
.
What We Built (The Recap)
Let’s step back for a second:
Brainstormed requirements with Claude using the wp-abilities-api skill
Built the plugin with Claude Code in plan mode—9 abilities, full architecture
Connected via MCP to enable AI-powered internal linking
Tested with real content—AI understanding context and applying relevant links
The entire journey: 3 hours.
The result: A production-ready plugin that fundamentally changes how WordPress handles internal linking.
.
.
.
Why This Actually Matters
Remember the old way?
Manual linking: 30 minutes to add 5-10 links
Keyword plugins: Spam with irrelevant matches
Zero context: No understanding of content meaning
Now?
AI-powered linking: Less than 2 minutes for contextually perfect links
Semantic understanding: Links based on actual meaning
Full automation: One prompt, complete results
The WordPress Abilities API combined with AI doesn’t just save time.
My accounting app was giving me existential dread.
Not because of the numbers.
(Well, okay, sometimes because of the numbers.)
But because every time I opened it, I felt like I was staring at the digital equivalent of beige wallpaper.
You know that feeling, right? When your app works perfectly but has all the personality of a doctor’s waiting room?
Mine tracked profit and loss beautifully. Managed transactions like a champ. Did everything an accounting app should do. It was built with ShadCN UI—that clean, functional, utterly forgettable component library that makes every SaaS tool look like it came from the same factory.
It was the IKEA furniture of web apps.
Gets the job done.
Zero personality.
(Sorry, IKEA. I still love your chicken wings.)
.
.
.
Here’s the thing: I needed something that felt like mine.
Something with actual personality.
Something that made number-crunching feel less like detention and more like… well, still accounting, but prettier accounting. The kind where you actually want to open the app instead of avoiding it like that one friend who only calls when they need help moving.
That’s like deciding to repaint your house yourself.
Sounds doable until you’re standing there with a brush, realizing you need to paint Every. Single. Room. Every. Single. Wall. And somehow make them all match.
Unless…
(Stay with me here.)
What if you could redesign ONE room, capture that exact paint color and technique, then magically apply it everywhere else?
The Thing We Don’t Talk About: Generic Design Syndrome
Look familiar?
That screenshot is my accounting dashboard.
Could be yours. Could be literally anyone’s. It’s the starter home of SaaS designs—functional, affordable, and identical to every other one on the block.
It’s not bad.
It’s just… there.
Like elevator music. Like hotel art. Like those conversations where someone asks “how are you?” and you say “fine” even though you’re absolutely not fine because your app looks like it was designed by a committee of robots who’ve never felt joy.
(Too dramatic? Maybe. But you’re still reading, aren’t you?)
Here’s the choice every developer faces—and it’s a lousy choice:
Use a component library → Fast to build, looks like everyone else’s
Design from scratch → Unique, but requires the time commitment of a second mortgage
Hire a designer → Professional, costs more than your monthly coffee budget (and that’s saying something)
But wait.
There’s a door number four that nobody talks about.
What if you could create a design system once—just once—turn it into a Claude Skill, and apply it everywhere automatically?
Let me show you how.
(Spoiler: It takes less time than your last Zoom call.)
.
.
.
Step 1: Let Claude Show You What’s Possible (5 Minutes)
I opened Claude Code and pointed it at my sad, slate dashboard.
The key move?
I used the frontend-design skill (you can download it from here) and asked for 5 completely different HTML variants.
Not tweaks. Not “make the blue slightly bluer.”
I wanted personality. Drama. Something that would make my accountant jealous.
(Do accountants get jealous of app designs? Let’s say yes.)
Claude Code immediately understood the assignment:
Look at these descriptions—each one a different personality:
Neo-Brutalist: Like your app went to art school and came back wearing all black
Glass Aurora: What happens when the Northern Lights become a UI (dreamy!)
Editorial Mono: The New Yorker meets your dashboard
Warm Minimal: Like a hygge hug for your data
Dark Command: For when you want to feel like you’re hacking the Matrix while doing expense reports
Five completely different vibes.
From one prompt.
It’s like speed-dating for design systems. (Is that a thing? It should be a thing.)
Each one broke free from that typical AI-generated aesthetic we all recognize. You know the one—like someone asked a robot to paint a sunset.
I fell hard for the Glass Aurora variant.
Yes, it had that slightly AI-ish glassmorphism thing happening.
But those aurora gradients?
Chef’s kiss.
It was like my dashboard went to Iceland and came back enlightened.
.
.
.
Step 2: Make It Yours (2 Minutes of Pure Joy)
The Glass Aurora design only came in dark mode.
But I needed both themes because I’m one of those people who switches to light mode at 6 AM like a responsible adult.
(I switch back to dark mode by lunch. We all have our limits.)
Claude Code didn’t just invert the colors like a lazy Instagram filter:
Look at that attention to detail:
Soft gradients from slate to purple/teal (not harsh, not boring)
White glass panels with 60-75% opacity (visible but not overwhelming)
Pastel backgrounds that don’t burn your retinas
Subtle gradient borders for depth (the devil’s in the details, friend)
Perfect.
I had my design.
Now here’s where most people would start the tedious work of manually copying styles across 47 different components.
Don’t be most people.
.
.
.
Step 3: Turn Your Design Into Documentation (10 Minutes That Save Your Life)
I switched to Claude Web (it’s better for this documentation dance) and attached both HTML files:
My request was specific.
(Specificity is your friend here. Vague requests get vague results. It’s like ordering “food” at a restaurant.)
PROMPT: Generate Complete Design System Documentation from HTML Files
I need you to analyze the attached HTML files and create two comprehensive design system documents:
### Document 1: Complete Design Guidelines (Markdown)
### Document 2: Interactive Reference Style Guide (HTML)
## Requirements for Both Documents
### Analysis Phase
First, thoroughly analyze ALL attached HTML files to extract:
1. **All CSS variables and design tokens** (colors, spacing, shadows, radius, etc.)
2. **All typography patterns** (font families, sizes, weights, line heights)
3. **All component patterns** (buttons, cards, forms, navigation, etc.)
4. **All layout patterns** (grids, containers, multi-column layouts)
5. **All utility classes** (margins, padding, text alignment, colors)
6. **All interaction patterns** (hover states, transitions, animations)
7. **Responsive breakpoints and mobile patterns**
8. **Naming conventions and prefixes used**
---
## Document 1: Design Guidelines (Markdown)
Create a comprehensive markdown file named `design-guidelines-complete.md` that includes:
### 1. Introduction Section
- **Design Philosophy**: Extract and articulate the design principles evident in the HTML
- **Key Characteristics**: What makes this design system unique
- **When to Use**: Guidance on appropriate use cases
### 2. Design Tokens
Complete CSS variable documentation with:
```css
:root {
/* Extract ALL CSS variables from the HTML files */
/* Group by category: colors, spacing, radius, shadows, etc. */
/* Include comments describing each token */
}
```
### 3. Typography System
- Font family stack
- Complete typography scale table with:
- Element/Use Case
- Font Size
- Font Weight
- Color
- Line Height
- Typography utility classes with code examples
### 4. Component Classes
Document EVERY component found in the HTML files with:
- Class name and purpose
- Complete CSS code
- Variants (if applicable)
- Usage notes
Organize by category:
- **Layout** (containers, grids, columns)
- **Cards** (all card variations)
- **Buttons** (all button types and states)
- **Forms** (inputs, textareas, selects, labels, file uploads)
- **Navigation** (navbar, links, menus)
- **Content Components** (articles, lists, chat bubbles, etc.)
- **UI Elements** (badges, tags, status indicators)
- **Specialized Components** (search bars, CTAs, heroes, sidebars)
### 5. Utility Classes
Complete list of utility classes for:
- Spacing (margins, padding)
- Typography (alignment, colors, weights)
- Display (flex, grid)
- Visibility
- Other utilities
### 6. Responsive Design
- Breakpoints used
- Mobile-first patterns
- Responsive grid behaviors
- Mobile-specific overrides
### 7. Animation & Transitions
- Timing functions
- Duration standards
- Transition patterns for different element types
### 8. Usage Examples
For each major component type, provide:
- Clean, minimal HTML example
- Real-world usage scenario
- Multiple examples showing variants
### 9. Accessibility Guidelines
- Color contrast requirements
- Focus states
- Semantic HTML recommendations
- Keyboard navigation notes
- ARIA considerations
### 10. Best Practices
- Implementation guidelines
- Common patterns
- Things to avoid
- Performance considerations
### 11. Additional Sections (if relevant)
- Color usage guidelines
- Icon/emoji usage
- Spacing scale
- Shadow elevation system
---
## Document 2: Reference Style Guide (HTML)
Create a comprehensive, interactive HTML file named `reference-styleguide-complete.html` that includes:
### Structure Requirements
1. **Self-Contained**: All CSS inline in a `<style>` tag
2. **Complete Design Tokens**: Include ALL CSS variables extracted from source files
3. **Live Examples**: Working, interactive examples of every component
4. **Organized Sections**: Clear sections with headers for each component category
### Required Sections
#### Header/Navigation
- Working navigation example from the source files
#### Color Palette Section
- Visual swatches for all colors
- Hex codes displayed
- Color names/variable names
- Organized by category (primary, secondary, neutrals, etc.)
#### Typography Section
- Live examples of every heading level
- Body text examples
- All typography variants demonstrated
- Labels, captions, meta text
#### Button Section
Demonstrate:
- All button variants (primary, secondary, outline, etc.)
- All sizes (small, medium, large)
- All states (normal, hover-able)
- Special buttons (pill, block, icon buttons)
- Button groups (if applicable)
#### Card Section
Show examples of:
- Basic cards
- Card variants (large, compact, etc.)
- Category cards
- Interactive cards with hover states
- Cards in grid layouts
#### Form Section
Include working examples of:
- Text inputs
- Textareas
- Select dropdowns (with custom styling)
- Checkboxes and radios (if in source)
- File uploads
- Input groups
- Form validation states (if applicable)
- Complete form layout example
#### Layout Section
Demonstrate:
- Container widths
- Grid systems
- Multi-column layouts
- Responsive behavior examples
#### Component Sections
For EVERY component found in source files, create a demo section:
- Search bars
- Navigation menus
- Article lists
- Chat interfaces
- Status badges
- Tabs/Pills (if applicable)
- Modals/Dialogs (if applicable)
- Tables (if applicable)
- Pagination (if applicable)
- Breadcrumbs (if applicable)
- And any other unique components
#### Utility Classes Section
Demonstrate utility classes with before/after examples
### Styling for the Style Guide Itself
Create a clean, professional layout for the style guide:
```css
.demo-section {
/* Section container styling */
}
.demo-header {
/* Section header styling - make it distinctive */
}
.demo-content {
/* Content area styling */
}
.color-swatch {
/* Color display boxes */
}
```
### Footer
- Notes about class prefixes
- Link to design guidelines
- Version information (if applicable)
---
## Output Format
Provide both files as downloadable outputs:
1. `/mnt/user-data/outputs/design-guidelines-complete.md`
2. `/mnt/user-data/outputs/reference-styleguide-complete.html`
---
## Quality Checklist
Before completing, ensure:
### Design Guidelines (MD)
- [ ] All CSS variables extracted and documented
- [ ] Every component class has complete CSS code
- [ ] At least 3-5 usage examples per major component
- [ ] Typography scale is complete with all variants
- [ ] Responsive patterns documented
- [ ] Accessibility guidelines included
- [ ] Best practices section is actionable
### Reference Style Guide (HTML)
- [ ] File opens and displays correctly in browser
- [ ] All colors displayed with swatches and codes
- [ ] Every component from source files is demonstrated
- [ ] Interactive elements work (hover states visible)
- [ ] Forms are functional (inputs accept text, etc.)
- [ ] Layout is clean and organized
- [ ] Sections are clearly labeled
- [ ] Self-contained (no external dependencies)
---
## Additional Instructions
1. **Be Thorough**: Don't skip any components, even small ones
2. **Extract Patterns**: If you see a pattern repeated, create a documented component for it
3. **Maintain Consistency**: Use the same class naming conventions from the source
4. **Provide Context**: Explain WHEN and WHY to use each component
5. **Think Developer-First**: Make it easy to copy-paste and implement
6. **Include Edge Cases**: Show how components look with long text, empty states, etc.
---
## Example Usage
After receiving these documents, a developer should be able to:
1. Understand the entire design system philosophy
2. Find any component they need with working code
3. Copy-paste implementation examples
4. See visual examples of every component
5. Understand responsive behavior
6. Know accessibility requirements
7. Follow best practices for implementation
---
Begin by analyzing all attached HTML files, then create both comprehensive documents.
I need you to analyze the attached HTML files and create two comprehensive design system documents:
### Document 1: Complete Design Guidelines (Markdown)
### Document 2: Interactive Reference Style Guide (HTML)
## Requirements for Both Documents
### Analysis Phase
First, thoroughly analyze ALL attached HTML files to extract:
1. **All CSS variables and design tokens** (colors, spacing, shadows, radius, etc.)
2. **All typography patterns** (font families, sizes, weights, line heights)
3. **All component patterns** (buttons, cards, forms, navigation, etc.)
4. **All layout patterns** (grids, containers, multi-column layouts)
5. **All utility classes** (margins, padding, text alignment, colors)
6. **All interaction patterns** (hover states, transitions, animations)
7. **Responsive breakpoints and mobile patterns**
8. **Naming conventions and prefixes used**
---
## Document 1: Design Guidelines (Markdown)
Create a comprehensive markdown file named `design-guidelines-complete.md` that includes:
### 1. Introduction Section
- **Design Philosophy**: Extract and articulate the design principles evident in the HTML
- **Key Characteristics**: What makes this design system unique
- **When to Use**: Guidance on appropriate use cases
### 2. Design Tokens
Complete CSS variable documentation with:
```css
:root {
/* Extract ALL CSS variables from the HTML files */
/* Group by category: colors, spacing, radius, shadows, etc. */
/* Include comments describing each token */
}
```
### 3. Typography System
- Font family stack
- Complete typography scale table with:
- Element/Use Case
- Font Size
- Font Weight
- Color
- Line Height
- Typography utility classes with code examples
### 4. Component Classes
Document EVERY component found in the HTML files with:
- Class name and purpose
- Complete CSS code
- Variants (if applicable)
- Usage notes
Organize by category:
- **Layout** (containers, grids, columns)
- **Cards** (all card variations)
- **Buttons** (all button types and states)
- **Forms** (inputs, textareas, selects, labels, file uploads)
- **Navigation** (navbar, links, menus)
- **Content Components** (articles, lists, chat bubbles, etc.)
- **UI Elements** (badges, tags, status indicators)
- **Specialized Components** (search bars, CTAs, heroes, sidebars)
### 5. Utility Classes
Complete list of utility classes for:
- Spacing (margins, padding)
- Typography (alignment, colors, weights)
- Display (flex, grid)
- Visibility
- Other utilities
### 6. Responsive Design
- Breakpoints used
- Mobile-first patterns
- Responsive grid behaviors
- Mobile-specific overrides
### 7. Animation & Transitions
- Timing functions
- Duration standards
- Transition patterns for different element types
### 8. Usage Examples
For each major component type, provide:
- Clean, minimal HTML example
- Real-world usage scenario
- Multiple examples showing variants
### 9. Accessibility Guidelines
- Color contrast requirements
- Focus states
- Semantic HTML recommendations
- Keyboard navigation notes
- ARIA considerations
### 10. Best Practices
- Implementation guidelines
- Common patterns
- Things to avoid
- Performance considerations
### 11. Additional Sections (if relevant)
- Color usage guidelines
- Icon/emoji usage
- Spacing scale
- Shadow elevation system
---
## Document 2: Reference Style Guide (HTML)
Create a comprehensive, interactive HTML file named `reference-styleguide-complete.html` that includes:
### Structure Requirements
1. **Self-Contained**: All CSS inline in a `<style>` tag
2. **Complete Design Tokens**: Include ALL CSS variables extracted from source files
3. **Live Examples**: Working, interactive examples of every component
4. **Organized Sections**: Clear sections with headers for each component category
### Required Sections
#### Header/Navigation
- Working navigation example from the source files
#### Color Palette Section
- Visual swatches for all colors
- Hex codes displayed
- Color names/variable names
- Organized by category (primary, secondary, neutrals, etc.)
#### Typography Section
- Live examples of every heading level
- Body text examples
- All typography variants demonstrated
- Labels, captions, meta text
#### Button Section
Demonstrate:
- All button variants (primary, secondary, outline, etc.)
- All sizes (small, medium, large)
- All states (normal, hover-able)
- Special buttons (pill, block, icon buttons)
- Button groups (if applicable)
#### Card Section
Show examples of:
- Basic cards
- Card variants (large, compact, etc.)
- Category cards
- Interactive cards with hover states
- Cards in grid layouts
#### Form Section
Include working examples of:
- Text inputs
- Textareas
- Select dropdowns (with custom styling)
- Checkboxes and radios (if in source)
- File uploads
- Input groups
- Form validation states (if applicable)
- Complete form layout example
#### Layout Section
Demonstrate:
- Container widths
- Grid systems
- Multi-column layouts
- Responsive behavior examples
#### Component Sections
For EVERY component found in source files, create a demo section:
- Search bars
- Navigation menus
- Article lists
- Chat interfaces
- Status badges
- Tabs/Pills (if applicable)
- Modals/Dialogs (if applicable)
- Tables (if applicable)
- Pagination (if applicable)
- Breadcrumbs (if applicable)
- And any other unique components
#### Utility Classes Section
Demonstrate utility classes with before/after examples
### Styling for the Style Guide Itself
Create a clean, professional layout for the style guide:
```css
.demo-section {
/* Section container styling */
}
.demo-header {
/* Section header styling - make it distinctive */
}
.demo-content {
/* Content area styling */
}
.color-swatch {
/* Color display boxes */
}
```
### Footer
- Notes about class prefixes
- Link to design guidelines
- Version information (if applicable)
---
## Output Format
Provide both files as downloadable outputs:
1. `/mnt/user-data/outputs/design-guidelines-complete.md`
2. `/mnt/user-data/outputs/reference-styleguide-complete.html`
---
## Quality Checklist
Before completing, ensure:
### Design Guidelines (MD)
- [ ] All CSS variables extracted and documented
- [ ] Every component class has complete CSS code
- [ ] At least 3-5 usage examples per major component
- [ ] Typography scale is complete with all variants
- [ ] Responsive patterns documented
- [ ] Accessibility guidelines included
- [ ] Best practices section is actionable
### Reference Style Guide (HTML)
- [ ] File opens and displays correctly in browser
- [ ] All colors displayed with swatches and codes
- [ ] Every component from source files is demonstrated
- [ ] Interactive elements work (hover states visible)
- [ ] Forms are functional (inputs accept text, etc.)
- [ ] Layout is clean and organized
- [ ] Sections are clearly labeled
- [ ] Self-contained (no external dependencies)
---
## Additional Instructions
1. **Be Thorough**: Don't skip any components, even small ones
2. **Extract Patterns**: If you see a pattern repeated, create a documented component for it
3. **Maintain Consistency**: Use the same class naming conventions from the source
4. **Provide Context**: Explain WHEN and WHY to use each component
5. **Think Developer-First**: Make it easy to copy-paste and implement
6. **Include Edge Cases**: Show how components look with long text, empty states, etc.
---
## Example Usage
After receiving these documents, a developer should be able to:
1. Understand the entire design system philosophy
2. Find any component they need with working code
3. Copy-paste implementation examples
4. See visual examples of every component
5. Understand responsive behavior
6. Know accessibility requirements
7. Follow best practices for implementation
---
Begin by analyzing all attached HTML files, then create both comprehensive documents.
Claude didn’t just list colors and fonts like a paint chip catalog.
It created a complete design philosophy:
Look at that structure—it’s like a love letter to your future self:
Find a bug in the glass effect? Fix it once in the skill. Every project gets the update.
Want to add a new component pattern? Update the skill. It’s everywhere instantly.
Need to onboard a developer? Share the skill. They’re designing consistently from minute one.
Every improvement compounds.
It’s like investing in index funds, but for your design system. (That’s the most adult sentence I’ve ever written. I need to go lie down.)
.
.
.
The Benefits Nobody Mentions at Parties
Benefit #1: Design Consistency Without The Design Drama
You get enterprise-level design consistency without:
Figma (and its 47 comments per component)
Storybook (and its 3-hour setup process)
A design team (and their strong opinions about kerning)
Just you, your skill, and perfect consistency.
It’s beautiful.
Benefit #2: Instant Design Language That Actually Makes Sense
That 300-line SKILL.md?
It’s not just documentation. It’s your design philosophy, your patterns, your principles—all captured automatically.
It’s like having a tiny design consultant living in your codebase, but one that never sends invoices.
Benefit #3: Version Control for Visual Design
Your design system is now code. Which means:
Git trackable (see what changed and when)
PR reviewable (catch issues before they ship)
Rollback-able (when that neon green seemed like a good idea at 3 AM)
It’s version control for visuals.
The future is now, friend.
Benefit #4: Team Scalability Without the Scaling Pains
New developer joins the team?
Old way: “Here’s our 47-page design guide. Good luck!”
New way: “Use the sololedger-glass-aurora skill.”
Done.
They’re designing consistently from day one.
No training montage required.
Benefit #5: Professional Client Deliverables
That skill package? It’s also professional documentation you can hand to clients.
“Here’s our complete design system.”
Hands over ZIP file
Client is impressed
You look like a genius
(You ARE a genius, but now you have proof.)
.
.
.
Your Turn: From Generic to Gorgeous in 30 Minutes
Ready?
Here’s your recipe for design transformation:
Step 1: Pick Your Victim (I mean, page)
Don’t try to redesign everything at once. (That way lies madness.)
Start with one page. Dashboard, landing page, settings—doesn’t matter.
Pick the one that makes you saddest.
Step 2: Generate Your Options
Use Claude Code with the frontend-design skill. Ask for 5 variants.
Be specific about the vibe you want. “Make it pretty” is not specific. “Make it look like Spotify met a disco ball at a Nordic design conference” is specific.
(Also intriguing.)
Step 3: Fall in Love (Then Refine)
Choose your favorite. Get both theme versions. Make sure it sparks joy. (Yes, I’m Marie Kondo-ing your design system. Deal with it.)
Step 4: Birth Your Skill
Switch to Claude Web. Attach the HTML files. Generate comprehensive documentation. Package with skill-creator.
Watch your design system become immortal.
Step 5: Deploy Your Beauty Everywhere
Add to your project. Use the skill to redesign everything.
Feel that? That’s the satisfaction of consistency. It’s better than finding matching socks.
Step 6: Make It Better (Forever)
Your skill isn’t frozen in carbonite. Improve it. Expand it. Share it.
Every enhancement makes every project better.
It’s compound interest for your eyeballs.
.
.
.
The Real Talk Conclusion
I spent years accepting generic designs.
Not because I liked them.
But because custom design seemed too expensive—not in money, but in time.
Time I didn’t have.
Energy I couldn’t spare.
Mental bandwidth already allocated to remembering my passwords.
But what if custom design took 30 minutes instead of 30 days?
What if consistency was automatic instead of aspirational?
What if your design system could teach itself to any AI that needed it?
That’s not the future, friend. That’s what I just showed you.
My accounting app no longer looks like everyone else’s. It has personality. It has presence. It has that glass aurora glow that makes even tax calculations feel slightly magical. (Slightly. Let’s not get carried away—they’re still tax calculations.)
And it took less time than watching a Netflix episode.
(A short one. Not one of those prestige drama episodes that’s basically a movie.)
.
.
.
Here’s My Challenge to You
Open that project with the generic UI. You know the one. The one you show people quickly while saying “it’s still in beta.”
Give it 30 minutes. Just 30.
Generate your variants. Pick your favorite. Make it a skill.
Watch as your entire app transforms from “functional” to “fascinating.”
Because life’s too short for boring dashboards, friend.
And your apps deserve to be as unique as you are.
(Even if you’re not that unique. I’m kidding! You’re totally unique. Your mother was right.)
What design will you capture as a Claude Skill today?
Go. Create. Make the internet prettier.
We’re all counting on you.
(No pressure.)
P.S. – That glass aurora design I fell in love with? I’ve now applied it to three different projects. Same skill. Same consistency. Same “ooh, what’s that?” reaction from everyone who sees it. Total time to redesign all three: under an hour. The old way would have taken weeks, and they all would have looked slightly different, like siblings who don’t quite look related.
P.P.S. – Want to create your own design skills but feeling overwhelmed? Start here: Download the frontend-design skill from GitHub. Ask for design variants. Pick your favorite. Watch the magic happen. Then write me a thank-you note. Or don’t. I’ll just be here, admiring my glass aurora dashboard and feeling quietly superior to everyone still using default Bootstrap.
P.P.P.S. – Yes, I know that’s too many P.S.’s. But you’re still reading, aren’t you? See? Sometimes breaking the rules works. Just like breaking free from generic design. Full circle, friend. Full. Circle.
That same gnarly issue that made you question your entire career choice last Tuesday. And the Tuesday before that. Your brain does that thing where it whispers: “Wait… didn’t I fix this already?”
You definitely fixed this already.
The solution exists somewhere—buried in a three-week-old Slack thread, or maybe that commit message you wrote at 2 AM when you were feeling particularly verbose. (Spoiler: You weren’t. The message says “fixed bug.”)
Here’s the thing: We’re hemorrhaging wisdom every single day.
Not because we’re not learning. We learn constantly. We discover edge cases, make architectural decisions, stumble upon performance tricks that would make your CS professor weep with joy.
But then? We move on. Next feature. Next sprint. Next fire.
And all that hard-won knowledge?
Poof.
Gone like your willpower at 3 PM when someone mentions there’s leftover birthday cake in the break room.
.
.
.
The Problem: Claude Code Has The Memory of a Goldfish
Picture this: You’re vibe coding with Claude Code. (Yes, that’s a technical term now. Roll with it.)
Together, you and Claude are making dozens of micro-decisions every session:
“Oh right, this package completely changed its API in v2”
“We need to store files in org-scoped directories for multi-tenancy”
“This approach is 10x faster than the obvious solution”
“Never—and I mean NEVER—use pattern X here because of edge case Y”
These aren’t just code comments, friend. This is architectural wisdom. The kind that separates the “I can center a div” developers from the “I’ve seen things you wouldn’t believe” architects.
But here’s what happens next. (You already know where this is going, don’t you?)
Claude Code discovers something important
You fix the issue together
You high-five virtually and move on
Next week, Claude Code makes the exact. Same. Mistake.
You debug the exact. Same. Issue.
Rinse, repeat, cry a little
Sure, we’ve got CLAUDE.md for project rules.
But let me ask you something: When was the last time you updated that file after a coding session?
Cricket sounds.
Exactly.
Nobody has time to document discoveries when you’re in the zone. Nobody.
So I built a Claude Skill that remembers everything for us.
The Build Insights Logger skill creates what I like to call a “knowledge management system.” (Fancy, right? It’s actually pretty simple.)
Step 1: Automatic Capture – Logs insights while you’re coding
Step 2: Smart Review – Shows you insights organized by category
Step 3: Selective Integration – Adds the good stuff to CLAUDE.md
Step 4: Compound Learning – Every future session gets smarter
Let me show you how this saved my bacon. (Actually, it was more like saving me from a dependency nightmare, but “saved my bacon” sounds more dramatic.)
.
.
.
Step 1: Automatic Knowledge Capture (While You Code!)
Here’s what the Build Insights Logger does brilliantly: it automatically logs meaningful insights as Claude Code works.
No manual documentation. No “I’ll add this to the docs later.” (You won’t.) No lost learnings.
Just automatic capture of:
Non-trivial edge cases you stumble upon
Design decisions and their rationale (the WHY behind the WHAT)
Performance optimizations that made you go “whoa”
Security implications that could bite you later
Architecture patterns you actually adopt
API gotchas and their fixes
Implementation trade-offs
Everything gets logged to .claude/insights/ during your session. Ready for review when YOU’RE ready.
Real-World Example: Building a Document Management System
On Monday, I was building a document management system. The complex kind—file uploads, multi-tenant storage, previews, the whole enchilada.
I started with my standard instruction to Claude Code
Notice the magic phrase: “Please use the build-insights-logger skill.”
That’s it. That’s all it takes.
Claude Code immediately gets it:
With the skill activated, Claude Code starts building. But—and here’s where it gets interesting—it’s not just coding. It’s documenting its discoveries:
As Claude works through the implementation, it automatically creates an insights log:
What Gets Captured: Real Architectural Decisions
These insights aren’t fluff. They’re the real deal—architectural decisions that matter:
Look at that first insight—a pluggable storage abstraction. Claude Code discovered you needed to support multiple storage backends (local disk, S3, Azure Blob) and documented the pattern.
Key insight captured: “By storing files in org-scoped directories with year/month structure (storage/documents/{orgId}/{yyyy}/{mm}/{filename}), we maintain tenant isolation at the filesystem level and enable efficient cleanup/archiving strategies.”
That’s not a code comment, friend.
That’s institutional knowledge.
As development continues, more insights accumulate:
Notice the categories:
Architecture: System design decisions
UI Patterns: Implementation approaches that actually work
Navigation: Integration strategies
Implementation Strategy: Why we’re building it this way
Each insight includes:
The files involved
Relevant tags (for finding it later)
Clear explanation of the decision
Why it matters (the part everyone forgets to document)
The Moment That Made Me a Believer: The cuid2 Bug
Here’s where the skill earned its keep.
After implementing the core functionality, I hit an error:
The build was failing. The error message? Cryptic as a fortune cookie: “Export cuid doesn’t exist in target module.”
Now, normally this triggers The Debugging Dance. You know the one—check imports, read docs, sacrifice a rubber duck to the Stack Overflow gods.
But watch what happened when I asked Claude Code to fix it and log the insight:
Claude Code didn’t just fix the bug.
It:
Researched the root cause
Created a comprehensive fix plan
Documented the gotcha for future reference
The fix was simple—the package had changed its API between v1 and v2:
But here’s the crucial part—this knowledge was captured permanently:
Look at that bug fix documentation:
Clear problem statement
Root cause analysis
Wrong pattern marked (with a big ❌)
Correct pattern provided (with a reassuring ✅)
Package version context
This bug will never bite us again.
Never.
(Well, unless we forget to use the skill. But we won’t. Right?)
.
.
.
Step 2: Transforming Raw Insights Into Permanent Knowledge
So you’ve been capturing insights automatically. Your .claude/insights/ folder is filling up with valuable learnings like a wisdom piñata.
But insights in session files are like vegetables in your crisper drawer—valuable, but not helping anyone if they’re just sitting there.
Time for the review workflow. This is where the magic happens.
Triggering the Review: On YOUR Schedule
The Build Insights Logger respects your flow. It never interrupts with “Hey! Want to review your insights? How about now? Now? What about now?”
Never.
You review when YOU want. After the feature ships. After the bug is squashed. After your coffee. (Definitely after coffee.)
Here’s how simple it is:
One command: “Please use the build-insights-logger skill to review the insights from existing sessions.”
Claude Code immediately understands:
Watch what happens next. Claude doesn’t just dump a wall of text like your cousin’s Facebook posts. It systematically explores your insights directory:
Two session files found. 160 lines of insights total.
Raw knowledge waiting to be refined. Like coffee beans waiting to become that sweet, sweet nectar of productivity.
The Presentation: Organized, Categorized, Actually Useful
This is where the skill really shines.
Instead of showing you raw session logs (boring), Claude Code presents your insights like a senior architect presenting findings to the team:
Look at that organization!
Architecture & Design Patterns
Document storage abstraction with migration paths
Backend-first implementation strategy
Prisma & Database Patterns
Complex filtering with OR/AND combinations
Many-to-many relations with soft deletes
Each insight is:
Numbered for easy selection (1/, 2/, 3/…)
Categorized for context (because context is everything)
Summarized with key details
Explained with why it matters
The presentation continues:
Security & Permissions
Tiered permission levels for different operations
Defensive soft-delete checking
Data Integrity & Business Logic
Transaction links removed on soft delete
Per-file error handling in batch operations
And more:
UI Implementation Patterns
File upload with hidden input ref pattern
Document preview with MIME-type detection
Two-level navigation integration
Bug Fixes & Dependencies
That @paralleldrive/cuid2 import issue (remember that little rascal?)
13 insights total. Each one a potential bug prevented, a pattern established, a decision documented.
It’s like having a time machine that lets you send wisdom to your future self.
.
.
.
Step 3: Curating Your Knowledge Base (Be Picky!)
Claude asks: “Which insights would you like to add to CLAUDE.md?”
This is where you become the curator of your own knowledge museum. (Fancy!)
3 & 4 – Prisma patterns (made generic for any schema)
5 – Tiered permissions (security pattern)
13 – The cuid2 import bug (never. again.)
Notice what I did with insight 3? “Make this rule generic so that it can be applicable for any Prisma schema.”
The skill doesn’t just copy-paste like a lazy intern. It adapts insights to be broadly useful.
I didn’t select everything. Some insights were too specific. Others were already covered.
Quality beats quantity.
Every. Single. Time.
The Integration: Surgical Precision (No Mess)
Watch what happens when Claude Code integrates my selected insights:
Claude reads my existing CLAUDE.md (278 lines) and begins surgical integration.
It doesn’t just slap new stuff at the end like a P.S. on a love letter. It finds the RIGHT sections:
The Permission Layers section gets enhanced with the tiered strategy:
GET endpoints for regular members
PATCH/POST/DELETE for destructive operations require admin
Clear examples with specific routes
A new Prisma Query Patterns section appears with that complex OR/AND filtering pattern:
// When combining multiple OR conditions in a single query, wrap them in AND:
if (where.OR) {
where.AND = [{ OR: where.OR }, { OR: searchConditions }];
delete where.OR;
}
This pattern will save you hours of debugging Prisma query conflicts.
Hours.
The Common Pitfalls section gets the cuid2 import pattern:
// ❌ WRONG - v1 pattern, will fail with "Export cuid doesn't exist"
import { cuid } from '@paralleldrive/cuid2';
// ✅ CORRECT - v2 exports createId
import { createId } from '@paralleldrive/cuid2';
Complete with root cause explanation. This bug will never happen again in any project.
The insights aren’t lost. They’re archived. But the valuable patterns? They’re now in CLAUDE.md where they’ll guide every future coding session.
It’s like upgrading from sticky notes to a proper filing system. (But one that actually works.)
.
.
.
The Selection Philosophy: What Makes the Cut?
Not every insight belongs in CLAUDE.md.
Here’s my selection criteria. (Yes, I have criteria. I’m fancy like that.)
Always Include:
Universal patterns that apply across features
Security decisions that affect the whole app
Performance optimizations that should be standard
Bug fixes for external dependencies
Architectural principles that guide development
Usually Skip:
Feature-specific implementation details
One-off workarounds
Obvious patterns Claude already knows
Project-specific business logic
Temporary fixes waiting for upstream patches
Transform When Adding:
Make patterns generic (not tied to specific models)
Extract the principle, not just the implementation
Add context about when to apply (and when NOT to)
Include examples that clarify usage
The goal isn’t to document everything. The goal is to capture patterns that make your next project better.
Less encyclopedia, more greatest hits album.
.
.
.
The Compound Effect:
Here’s what happens over time. (Spoiler: It’s beautiful.)
Week 1: You capture 10 insights about authentication patterns
Week 2: You capture 8 insights about performance optimizations
Week 3: You capture 12 insights about error handling
Month 2: You have 100+ insights spanning every aspect of your codebase
Now imagine Claude Code with access to all of that institutional knowledge.
It’s not just avoiding bugs. It’s:
Consistent architectural decisions
Proven patterns applied automatically
Edge cases handled proactively
Performance optimizations baked in
Security considerations from day one
Your codebase doesn’t just grow. It evolves.
(Like Pokémon, but for code.)
Picture this:
Before this review:
2 session files with 13 insights
Knowledge trapped in temporary logs
Claude Code blissfully unaware
After 2 minutes of review:
5 critical patterns added to permanent knowledge
CLAUDE.md enhanced with battle-tested wisdom
Every future session benefits
Now multiply this across every coding session:
Week 1: 5 insights added → Next development avoids 5 issues
Week 2: 8 more insights → Next development avoids 13 issues
Month 2: 50+ insights → Your codebase is basically bulletproof
Each review session doesn’t just improve documentation. It improves every future line of code Claude writes.
It’s compound interest for your codebase.
.
.
.
Your Complete Workflow: From Chaos to Compound Knowledge
Here’s your complete workflow. (Print this out. Stick it on your monitor. Tattoo it on your forearm. Whatever works.)
During Development (Automatic):
Activate build-insights-logger at session start
Code normally—insights log automatically
Discoveries, decisions, and fixes are captured
Session file grows with valuable learnings
After Development (5 minutes):
Request review: “Review insights from existing sessions”
Read through categorized insights
Select the valuable patterns (usually 30-50%)
Let Claude integrate into CLAUDE.md
Session files archive automatically
Next Development (Automatic Benefits):
Claude reads enhanced CLAUDE.md
Applies all captured patterns
Avoids all documented pitfalls
Implements proven architectures
Your code is better without trying
It’s not just documentation.
It’s evolutionary development.
Each development builds on the learnings of the last. Like standing on the shoulders of giants, except the giant is your past self. (Your past self is very tall in this metaphor. Roll with it.)
You’ve just discovered this game-changing AI Elements library—launched recently, perfect for what you need. Your brain is doing that excited thing where it’s already building the feature before your fingers touch the keyboard.
You fire up Claude Code.
Type with the confidence of someone who’s done this a thousand times: “Build me an AI chat interface using AI Elements.”
Claude starts coding.
It looks… plausible.
Convincing, even.
Then you spot it: import { AIChat } from '@ai-sdk/elements'
That import doesn’t exist. The component is called Conversation. Claude is hallucinating an API that sounds right but isn’t.
It’s writing fiction dressed up as code.
You correct it.
Claude apologizes—sweet, polite, completely unhelpful.
Tries again.
Different hallucination.
Round and round you go.
Like trying to teach someone to cook while they’re blindfolded and you’re speaking different languages.
The documentation is literally right there on your screen. But Claude can’t see it.
Well.
That used to be true.
.
.
.
Here’s the Thing About AI and Documentation
Every week—every blessed week—new libraries launch.
The ones you already use? They’re dropping breaking changes like confetti at a wedding nobody wanted to attend.
Meanwhile, your AI coding agent is stuck in the past.
Claude Opus 4.1 doesn’t know about the library that launched last month. It definitely doesn’t know about the v2.0 that dropped while you were eating lunch yesterday.
(Is it weird that we expect AI to be omniscient? Like it should somehow absorb knowledge through the ethernet? Stay with me.)
You’ve probably tried the usual suspects:
The copy-paste marathon—where you dump documentation into the prompt until your context window explodes like an overfilled water balloon.
The MCP server hunt—searching for something that usually doesn’t exist. (Spoiler: it doesn’t.)
The Context7 lottery—sometimes brilliant, sometimes returns docs from the Mesozoic era.
The manual correction dance—where you become a human API reference for three hours. (Fun!)
Each approach fails spectacularly in its own special way.
Copy-pasting burns through 80% of your context before you write a single line of actual code. Good luck debugging when you’ve already consumed 100k tokens on documentation alone.
MCP servers are amazing. When they exist. Which is approximately never for the library you need right now.
Context7 is like a box of chocolates—you never know if you’re getting current docs or something from 2022. You’ll find out the hard way.
Manual correction? Sure, if your idea of a good time is playing “human API dictionary” until your eyes bleed.
There had to be a better way.
(There is.)
.
.
.
Enter Claude Skills: Your Documentation Superpower
Imagine this: You could teach Claude ANY library’s documentation.
Permanently.
Not the copy-paste-and-pray method. Not the please-let-there-be-an-MCP-server wishful thinking.
Actual knowledge.
The kind Claude can reference intelligently, pulling only the relevant bits for each task.
Like having a senior developer who’s memorized every documentation page but only shares what you need to know right now.
Here’s what becomes possible:
Claude Skills package documentation in a way that makes Claude understand not just WHAT the API is, but HOW to use it correctly. The difference between knowing the words to a song and understanding why it makes people cry.
Once you create a skill, it works forever.
Every project.
Every session.
Perfect implementation every time.
(Is it magic? Kind of. But the boring, repeatable kind.)
Let me show you exactly how I turned brand-new AI Elements documentation into a Claude Skill. Then used it to build a complete AI chat application.
Without a single hallucination.
Ferpetesake, it actually worked.
.
.
.
Step 1: Gather Your Documentation (2 Minutes, If You’re Slow)
Downloaded everything—component references, examples, tutorials, the works.
Dropped them in my project like this:
Here’s the thing: Grab everything. Even that weird edge-case page you think you’ll never need. That’s the page that’ll save your bacon at 3 AM when nothing else makes sense.
(Trust me on this one.)
.
.
.
Step 2: Brainstorm Like You Mean It (5 Minutes)
Most people would jump straight into creating the skill here.
Don’t.
(Seriously. Stop. Put down the keyboard.)
First, you need to define exactly how you want Claude to use this documentation. Think of it like training a brilliant but literal-minded assistant—you need to be specific about expectations.
Here’s my exact prompt:
Prompt:
I want to create a skill that reads the docs in this folder @docs/ai-sdk-ai-elements-doc/.
The idea: whenever we work with AI elements or build an AI native app, we'll refer to the relevant docs first before building the app.
The docs are in markdown format and contain detailed information about the AI elements SDK including usage examples, and best practices.
Ask me clarifying questions until you are 95% confident you can complete this task successfully.
a. If the question is about choosing different options, please provide me with a list of options to choose from. Mark the option with a clear label, like a, b, c, etc.
b. If the question need custom input that is not in the list of options, please ask me to provide the custom input.
Always mark each question with a number, like 1/, 2/, 3/, etc. so that I can easily refer to the question number when I answer.
For each question, add your recommendation (with reason why) below the options. This would help me in making a better decision.
Watch what happens next.
Claude doesn’t just accept the task like an overeager intern. It asks targeted questions:
How should the skill activate?
Automatic (when AI Elements terms pop up)
Manual only (when you explicitly call it)
Hybrid (best of both worlds)
Where should documentation live?
Local markdown files
WebFetch from the mothership
Both (local with web backup)
I answer with quick picks. No dissertations needed.
Claude then creates a complete requirements document.
We’re talking 654 lines of specifications. It includes:
Activation triggers (automatic when components are mentioned—like a helpful friend who knows when to chime in)
4 intelligent routing modes
Smart multi-page fetching rules
Response format templates
Query interpretation patterns
This isn’t busy work.
This is Claude learning HOW you want it to think about this documentation.
Time invested: 5 minutes of Q&A.
(Worth every second.)
.
.
.
Step 3: Transform Requirements Into Reality (3 Minutes)
Now for the satisfying part.
I tell Claude: “Let’s use the ‘skill-creator’ skill to create the skill”
(Yes, we’re using a skill to create a skill. It’s skills all the way down. Stay with me.)
Watch as Claude:
Packages all 39 markdown files (31 components plus the kitchen sink)
Creates intelligent routing rules
Builds activation triggers
Generates a searchable index
The result?
Your documentation is now a reusable Claude Skill.
Forever.
(Take a moment. This is big.)
.
.
.
Step 4: Watch the Magic Happen (10 Minutes of Pure Joy)
Time to see if this actually works.
I tell Claude: “Read the @.notes/requirements.md, and use the ‘ai-elements’ skill to build the AI Chat Application.”
Claude recognizes the skill immediately:
Now here’s where it gets interesting.
Instead of guessing the API—or worse, making stuff up—Claude reads the actual docs:
INDEX.md for component reference
examples/chatbot.md for patterns
components/conversation.md for core components
components/prompt-input.md for input handling
Notice something?
Claude read 8 files out of 39. Not the entire documentation set. Just what it needed.
Surgical precision.
(This is the opposite of the copy-paste-everything approach. And it’s beautiful.)
Now Claude builds with the confidence of someone who actually knows what they’re doing:
Every import correct. Every API call accurate. Zero hallucinations.
Want proof this actually works? Here’s what I built:
The entire AI chat application builds perfectly:
Database schema with Prisma
API routes for chat sessions
Real-time streaming with AI Elements
Proper component composition
Error handling
State management
No back-and-forth. No corrections. No “actually, that’s not how it works.”
It. Just. Works.
(I may have done a small victory dance. Don’t judge.)
.
.
.
Why This Isn’t Just Another MCP Alternative
“But wait,” you’re thinking. “Isn’t this what MCP servers do?”
Kind of. But also not at all.
MCP servers:
Require the library author to build one (good luck with that)
Need constant maintenance (who has time?)
Often lag behind latest versions (naturally)
You have zero control (hope you like their choices)
Claude Skills:
You create them yourself (15 minutes, tops)
Work with ANY documentation (even that obscure library from 2019)
Update when YOU want (not when someone else gets around to it)
Full control over what’s included (your docs, your rules)
But here’s the feature that makes me want to write poetry:
Claude Skills read intelligently.
When working with AI Elements, Claude didn’t inhale all 39 documentation files like some kind of context-window glutton. It read the 8 relevant ones. No waste. No bloat. Just what it needed.
Try that with copy-paste.
(Spoiler: you can’t.)
.
.
.
The Compound Effect (Or: Why This Changes Everything)
Think about your current stack for a hot second:
React components library
Your database ORM
Payment provider SDK
Authentication library
UI component system
Analytics platform
Email service
File storage API
That weird library Bob insisted on using
Each one could be a Claude Skill.
Do the math with me:
1 library skill = 2 hours saved per project 10 library skills = 20 hours saved Your entire stack as skills = Never manually correct AI again
But wait. (There’s more.)
Version updates? Update the skill once. Every project gets the new version. Like magic, but boring and reliable.
Team knowledge? Share the skill. Everyone codes like they wrote the docs. Instant expertise, just add water.
New libraries? 15 minutes to perfect implementation. Even if it launched during your lunch break.
.
.
.
Your Library Skills Arsenal: A Field Guide
The Golden Rules
Rule 1: Include Everything, Let Claude Filter
Don’t try to curate “only the important docs.” You’re not the documentation police.
Claude Skills are intelligent. They’ll find what’s relevant. Your job is comprehensive coverage. Be the completionist.
Rule 2: Update Regularly (Set a Calendar Reminder)
Monthly skill updates. Put it in your calendar. Title it “Feed the Skills.” Your future self will send you thank-you notes.
Rule 3: Create Composite Skills
Building with Next.js + Prisma + tRPC? Create a “nextjs-stack” skill with all three. One activation, complete stack knowledge.
(Why make three trips when one will do?)
Rule 4: Test in Isolation
Before using a library skill in production:
Create a simple test project
Ask Claude to build a basic example
Verify the generated code matches current docs
Trust, but verify.
Rule 5: Share Your Skills
That React Native Navigation skill you perfected? Your team needs it. That Stripe integration skill? The community wants it.
Build once. Help everyone.
(Be the hero.)
.
.
.
Your Action Plan (Do This Today)
Step 1: Identify Your Most Frustrating Library
Which one causes the most AI hallucinations?
That new API you’re wrestling?
The library with the major update?
The complex SDK with 100+ endpoints?
Pick your nemesis.
Step 2: Gather Documentation (2 minutes)
Download or clone the docs. Create a folder. Done.
(Easier than making coffee.)
Step 3: Brainstorm Requirements (5 minutes)
Use my prompt. Answer the questions. Let Claude build comprehensive requirements.
No shortcuts here. Do the work.
Step 4: Create The Skill (3 minutes)
Run skill-creator. Package the documentation.
Watch as months of frustration evaporate.
Step 5: Test Immediately
Build something simple. Verify accuracy. Refine if needed.
(But honestly? It usually works perfectly the first time.)
Step 6: Use It Everywhere
Every project. Every feature. Perfect implementation.
No exceptions.
.
.
.
The Future You’re Building (Whether You Know It Or Not)
Picture this: You open Claude Code six months from now.
Your skills library includes:
Every major framework (even the ones that don’t exist yet)
Your company’s internal SDKs (the undocumented ones)
That obscure library only you use (we all have one)
The cutting-edge tool that launched this morning
You type: “Build me a real-time collaborative editor with our standard stack”
Claude activates:
nextjs-15-skill
collaboration-sdk-skill
your-ui-components-skill
websocket-patterns-skill
Perfect implementation. First try. Every single time.
No more “Claude doesn’t know this library.”
No more debugging hallucinated APIs.
No more being a human API reference.
Just your documentation, permanently accessible, intelligently used.
(Is this what peace feels like?)
.
.
.
Here’s What I Know to Be True
Every library you use regularly should be a Claude Skill.
Not because it’s trendy. Not because it’s the cool new thing. Not even because I said so.
Because spending 15 minutes creating a skill saves you hours of correction. Forever.
Because your team deserves consistent implementation without the learning curve.
Because you have better things to do than correct AI hallucinations all day.
(Like, literally anything else.)
Claude Skills aren’t just about saving time. They’re about eliminating an entire category of AI coding friction. The kind that makes you want to throw your laptop out the window.
So here’s my challenge:
Take that new library. The one with no MCP server. The one Claude keeps getting wrong. The one that’s been making you question your career choices.
Spend 15 minutes. Create the skill. Watch it work perfectly.
It took months. Every edge case handled. Every security hole plugged. Production-tested across three different apps.
And now you’re starting project number four.
Time to rebuild it. Again. From scratch.
Because that’s how AI works, right? It gives you a solution, not your solution.
Wrong.
Last week, I showed you how Claude Skills changed everything – letting you replicate YOUR exact patterns across every project.
Today, I’m going to show you exactly how to create your own Claude Skills.
By the end of this article, you’ll know how to turn any feature into a reusable skill that Claude Code can deploy perfectly every time.
.
.
.
The Secret: It’s Not About Code, It’s About Documentation
Here’s what most developers get wrong about Claude Skills.
They think it’s about copying code files. Dumping your lib/auth folder into a skill and calling it done.
That’s not how it works.
Claude Skills aren’t code repositories.
They’re implementation guides that teach Claude your specific patterns, your architecture decisions, your way of solving problems.
And the key to creating a powerful skill?
Comprehensive documentation that captures not just WHAT your code does, but HOW and WHY it works.
Let me show you exactly how I turned my authentication system into the Claude Skill I demonstrated in Part 1.
.
.
.
Step 1: Let GPT-5 Document Your Implementation (10 Minutes)
This is counterintuitive, but stay with me.
I don’t use Claude to document my Claude Skills. I use GPT-5.
Why? Because GPT-5 is meticulous. It’s the senior architect who notices every pattern, every decision, every subtle implementation detail.
Here’s my exact process:
I give GPT-5 this prompt:
I want to update the authentication implementation docs at
#file:authentication.md to match the current implementation of authentication for
this app.
Read the codebase, analyze how this app implemented the authentication, then
update the docs.
Ask me clarifying questions until you are 95% confident you can complete this task
successfully.
a. If the question is about choosing different options, please provide me with a list
of options to choose from. Mark the option with a clear label, like a, b, c, etc.
b. If the question need custom input that is not in the list of options, please ask me
to provide the custom input.
Always mark each question with a number, like 1/, 2/, 3/, etc. so that I can easily
refer to the question number when I answer.
For each question, add your recommendation (with reason why) below each
options. This would help me in making a better decision.
Notice the key elements:
95% confidence threshold (forces thoroughness)
Structured question format (speeds up the process)
Recommendations included (leverages GPT-5’s analysis)
Watch as GPT-5 systematically explores:
Authentication routes (/app/api/auth/**)
Library files (auth.ts, jwt.ts, rate-limit.ts)
Middleware implementation
Database schema
Environment variables
GPT-5 asks targeted questions:
I answer with just the option letters.
No lengthy explanations needed. GPT-5 already understands my intent.
The result?
A complete authentication implementation guide covering:
302 lines of detailed documentation. Every decision documented. Every pattern explained.
Time spent: 10 minutes.
Now, you might notice something different in my screenshots – I’m using GPT-5 in GitHub Copilot instead of my usual Codex.
The reason?
I’d hit my Codex weekly limits when writing this. (Yes, even I burn through those limits when I’m deep in development mode.)
But here’s what I discovered: GPT-5 in GitHub Copilot is an excellent substitute for Codex. In terms of performance – especially when it comes to analyzing codebases – I honestly can’t tell the difference.
Same meticulous analysis. Same comprehensive documentation. Same quality output.
.
.
.
Step 2: Create ASCII Wireframes for the UX Flow (5 Minutes)
Here’s where most skill creators stop. They have the backend documentation.
But Claude Skills need to understand the FULL implementation – including the UI.
This is where ASCII wireframes become your secret weapon.
I ask GPT-5:
Why ASCII instead of HTML mockups?
HTML mockup for login page: ~500 lines, ~15,000 tokens ASCII wireframe for login page: ~50 lines, ~1,500 tokens
Same information. 90% less tokens.
GPT-5 creates wireframes for every screen:
Every interaction mapped. Every flow documented. Claude will know EXACTLY what UI to build.
Total documentation time: 15 minutes.
.
.
.
Step 3: Transform Documentation Into a Claude Skill (5 Minutes)
Now we have comprehensive documentation and wireframes. Time to turn them into a Claude Skill.
.claude/
skills/
skill-creator/ # The skill that creates skills
notes/
authentication.md # Our documentation
authentication_wireframes.md # Our wireframes
Start a new Claude Code session and ask:
Claude shows the available skills:
Now the magic moment:
Please use the skill-creator skill to create a new skill with the skill-creator that shows
how to set up authentication exactly like this app does. Please refer to the documentation
@.notes/authentication.md and wireframes @.notes/authentication_wireframes.md.
Watch as Claude:
Reads the skill-creator instructions
Explores your authentication codebase
Analyzes your documentation
Studies the wireframes
It’s not just copying files.
It’s understanding your implementation and transforming it into teachable instructions.
Using GPT-5 to document for Claude Skills isn’t random. It’s strategic.
GPT-5’s superpower: Meticulous analysis and comprehensive documentation Claude’s superpower: Following detailed instructions perfectly
When you combine them:
GPT-5 extracts every pattern and decision from your code
Claude Skills preserves that knowledge permanently
Claude Code implements it flawlessly every time
It’s like having a senior architect (GPT-5) document your best practices, then having infinite junior developers (Claude Code instances) who can implement those practices perfectly.
No knowledge loss. No pattern drift. No “I think I did it differently last time.”
.
.
.
Common Mistakes to Avoid
Mistake #1: Skipping the Documentation Phase
“I’ll just copy my code files into the skill.”
Wrong.
Skills need context, not just code.
Without documentation, Claude won’t understand your architectural decisions.
Mistake #2: Forgetting the UI Wireframes
Backend-only skills create Frankenstein features.
Same logic, completely different UI.
Always include wireframes.
Mistake #3: Not Testing in a Clean Project
Always test your skill in a fresh project.
That’s where you’ll discover missing dependencies or assumptions.
.
.
.
Your Skills Library Starts Today
Here’s your action plan:
1. Identify Your Most Reused Feature
What do you build in every project?
Authentication system?
Admin dashboard?
Payment integration?
File upload handling?
2. Document It With GPT-5 (15 minutes)
Use my exact prompt. Let GPT-5 extract every pattern.
3. Create ASCII Wireframes (5 minutes)
Map the UI flow. Every screen. Every interaction.
4. Generate The Skill (5 minutes)
Use skill-creator. Let Claude package your knowledge.
5. Test In a New Project
Deploy it. Use it. Refine it.
6. Repeat For Your Next Feature
Build your library one skill at a time.
.
.
.
The Compound Effect Nobody Sees Coming
Every skill you create makes the next project easier.
But here’s what really happens:
Month 1: You create 3 skills (auth, payments, dashboard) Month 2: You create 5 more (file upload, search, notifications…) Month 3: You realize you can build entire apps in hours
By month 6?
You’re not coding anymore. You’re orchestrating.
“Use authentication-setup skill.”
“Use payment-processing skill.”
“Use admin-dashboard skill.”
Complete applications assembled from your battle-tested components.
Each implementation identical to your best work.
No quality degradation. No pattern drift. No forgotten edge cases.
This isn’t the future of development. It’s available right now.
.
.
.
Part 3 Preview: Teaching Claude Any Library
Next week, I’ll show you something even more powerful.
How to create Claude Skills that teach Claude to perfectly integrate ANY library or SDK into your apps.
Imagine:
“Use the stripe-integration skill” → Your exact Stripe patterns
“Use the websocket-setup skill” → Your real-time architecture
“Use the testing-harness skill” → Your testing methodology
Not generic implementations. YOUR implementations.
But for now…
Open that project with your best authentication system.
Document it with GPT-5.
Turn it into a skill.
Watch as 10 minutes of work today saves you 10 hours next month.
What feature will you turn into a Claude Skill first?
Stop rebuilding.
Start packaging.
Now.
P.S. – Since creating my authentication-setup skill two weeks ago, I’ve deployed it to 6 different projects. Total time saved: 14 hours. Total consistency: 100%. Every deployment identical to my best implementation. That’s the power of turning your code into Claude Skills.
P.P.S. – The skill-creator skill itself is open source. You can find it at github.com/anthropics/skills. But the real magic? It’s in the skills YOU create from YOUR battle-tested code.
Verifies JWT without database calls (performance!)
Protects /dashboard/* and /settings/*
Redirects with ?next= parameter for smooth auth flow
The login page with:
Tabbed interface (OTP + Dev Password)
React Hook Form + Zod validation
Sonner toast notifications
Proper loading states
Protected layouts, profile pages, dashboard – all following the same patterns.
Done.
In under 10 minutes of actual implementation time.
Claude even provides a getting started guide:
Create superadmin: SEED_EMAIL=you@example.com npm run seed:superadmin
Start dev server: npm run dev
Visit http://localhost:3000
Sign in with your email
Everything documented. Everything working.
.
.
.
The Proof: Side-by-Side Comparison
But does it actually match the original?
Login page comparison – original boilerplate (top) vs Claude Skills implementation (bottom)]
Look at those login pages.
The structure, the tabs, the form layout – virtually identical.
Some minor styling differences, but the core implementation?
Exact match.
Profile page comparison – original (left) vs Claude Skills implementation (right)
The profile pages tell the same story. Same sections, same password management, same session handling.
Here’s the kicker: The Claude Skills version actually improved on my original in some places. Cleaner code organization. Better error messages. More consistent styling.
The student became the master.
Then taught the next student to be even better.
Want techniques like these weekly?
Join The Art of Vibe Coding—short, practical emails on shipping with AI (without the chaos).
No spam. Unsubscribe anytime. Seriously.
.
.
.
Why This Changes Everything
This isn’t just about authentication.
Think bigger.
Every feature you’ve perfected can become a skill:
Your payment integration with Stripe
Your real-time notification system
Your file upload handling
Your admin dashboard layout
Your API error handling patterns
Your testing setup
Build once. Refine until perfect. Convert to skill. Deploy everywhere.
The compound effect:
1 perfected feature × 10 projects = 10 hours saved 10 perfected features × 10 projects = 100 hours saved 100 perfected features × Your entire career = …you do the math
But it’s not just time saved.
It’s consistency gained. It’s quality guaranteed. It’s your personal coding style, preserved and replicated perfectly.
.
.
.
The Hidden Benefits Nobody Talks About
Benefit #1: Your Code Patterns Become Your Coding Standard
No more “wait, which project had the good auth implementation?”
New developer joins your team? “Here are our Claude Skills. Use them.”
Instant consistency.
Benefit #3: You Stop Reinventing Wheels
That perfect rate limiting implementation from 6 months ago?
It’s in your skill.
Ready to deploy.
Benefit #4: Your Skills Get Better Over Time
Find a bug in your auth flow? Fix it in the skill.
Every future project gets the improvement.
Benefit #5: You Can Share (Or Sell) Your Expertise
Those Claude Skills you’ve perfected?
They’re valuable. Share with your team. Open source them. Monetize them.
.
.
.
Your “I Know Kung Fu” Moment Awaits
Here’s what you need to understand:
Claude Skills aren’t just another AI feature. They’re the bridge between “AI that codes” and “AI that codes the way YOU code.”
It’s the difference between:
A junior developer googling solutions
A senior developer implementing YOUR solutions
Every pattern you’ve perfected. Every architecture you’ve refined. Every security measure you’ve battle-tested.
All of it can become a Claude Skill.
All of it can be replicated perfectly across every project you ever build.
The question isn’t whether you should start using Claude Skills.
The question is: which of your battle-tested features will you turn into a skill first?
In Part 2, I’ll show you exactly how to convert your existing codebase into a Claude Skill.
The process is simpler than you think, and the payoff is massive.
But for now, open that project with the perfect authentication system.
The one you’ve been copying manually to every new project.
It’s time to teach Claude YOUR kung fu.
P.S. – That authentication skill I demonstrated? It’s now deployed in 5 different production apps. Same code. Same patterns. Same security. Total implementation time across all 5 apps: under an hour. The old way would have taken days, and each would have been slightly different. That’s the power of Claude Skills.
P.P.S. – Part 2 drops next week: “How to Convert Your Battle-Tested Code Into Claude Skills.” I’ll walk you through turning your existing codebase into reusable skills, with specific examples and templates you can use immediately.
Claude Code implements (following both plan AND wireframes)
GPT-5 reviews the git diff (catches bugs before I even test)
Claude Code applies fixes (surgical corrections)
The difference?
Night and day.
.
.
.
Real Example: Building WordPress Collapsible Sections
My WordPress newsletter was getting unwieldy. Long code snippets and prompts made posts hard to read.
Readers had to scroll forever to get through everything.
I needed collapsible sections.
Click to expand when you want details, stay collapsed when you don’t.
Here’s how the new workflow handled it.
Step 1: Setting Up for Success
I hit GPT-5 with my requirements.
But here’s the critical part – I told it explicitly: “DON’T WRITE OR EDIT ANY FILES.”
Prompt:
__YOUR_INSTRUCTIONS_HERE__
Read the codebase, and help me come up with a plan to implement everything above.
Make sure to include a short description for this plan in paragrah format at the beginning of the plan.
IMPORTANT: DON'T WRITE OR EDIT ANY FILES.
Use web search if you need to find solutions to problems you encounter, or look for the latest documentation.
Ask me clarifying questions until you are 95% confident you can complete this task successfully.
a. If the question is about choosing different options, please provide me with a list of options to choose from. Mark the option with a clear label, like a, b, c, etc.
b. If the question need custom input that is not in the list of options, please ask me to provide the custom input.
Always mark each question with a number, like 1/, 2/, 3/, etc. so that I can easily refer to the question number when I answer.
For each question, add your recommendation (with reason why) below each options. This would help me in making a better decision.
And I added this game-changer: “Ask me clarifying questions until you are 95% confident you can complete this task successfully.”
Plus numbered questions with lettered options.
No typing paragraphs. Just “1/a, 2/c, 3/b”.
Done.
Step 2: GPT-5 Goes Detective Mode
GPT-5 immediately dove into my codebase:
Then came the questions.
Not random questions.
Strategic ones:
Look at those options:
Where should content live? (Theme files, CPT, or plugin)
How should expand/collapse work? (Native HTML, JS toggle, or hybrid)
Content delivery? (Inline, lazy-load, or auto-switch)
Every question had options. With recommendations. With reasons.
This is what thinking looks like.
Step 3: Quick Answers, Deep Impact
I fired back my choices:
Fast. Decisive. No essays needed.
But GPT-5 wasn’t done:
More edge cases.
More decisions.
Every answer shaped the final implementation.
Step 4: The Plan Emerges
After gathering everything, GPT-5 delivered:
This wasn’t a vague outline.
It was a blueprint:
Exact file structure
CPT registration details
Shortcode parameters
REST endpoint specs
Caching strategy
Security measures
Everything. Decided. Documented.
The ASCII Wireframe Revolution
Here’s where things get interesting.
I asked GPT-5: “Based on this plan, give me the UX flow map and screen-by-screen content using ASCII wireframe.”
Prompt:
Based on this plan, give me the ux flow map and screen-by-screen content using the ASCII wireframe. Put it at @notes/wireframes.md.
What came next blew my mind:
The Power of ASCII Wireframes
Look at this beauty:
This isn’t just a sketch.
It’s a contract.
Claude Code sees this and knows EXACTLY what to build.
No interpretation. No guesswork. Just pure clarity.
Why ASCII beats everything else:
10x fewer tokens than HTML
Zero ambiguity
Instant understanding
Easy to modify
Works in any terminal
Step 5: Claude Code Takes the Wheel
Armed with the plan AND wireframes, I unleashed Claude Code (Sonnet 4.5):
Watch what happened:
Claude didn’t hesitate. Didn’t guess. It knew exactly what to build because the wireframes showed it.
Implementation complete. First try.
Step 6: The Code Review That Catches Everything
This is where most devs stop.
Not me.
I fired up Codex CLI’s code review feature:
Prompt:
Please read the git diff, and review the code changes to see if the implementation is correct and follows the plan @notes/plan.md and wireframes @notes/wireframes.md, correctly.
GPT-5 went full detective:
Found issues? You bet:
P1: Missing lazy-mode fallback for non-JS users
P1: Copy button behavior was wrong
P2: Preview line count didn’t match CSS
Security improvements needed
These weren’t “nice to have” fixes. These were bugs waiting to happen.
Step 7: Surgical Fixes
I handed GPT-5’s review to Claude Code:
Claude applied every fix.
No arguments. No confusion. Just clean corrections.
The End Result: From Concept to Production
Here’s what we built. In one shot. With this workflow.
The WordPress Admin Experience
Clean integration into WordPress admin. “Longform Sections” sits right where it should, right below Pages.
Look at that meta box on the right. Copy shortcode with one click. Multiple usage examples. All the parameters documented right there.
Every attribute explained:
id – Post ID (required)
title – Custom title or defaults to post title
lines – Preview line count (default 6)
mode – smart|inline|lazy
expand_text / collapse_text – Customizable labels
deep_link – Enable direct linking to sections
copy_button – Show copy button for code
No documentation needed. It’s self-explanatory.
The Frontend Magic
This is what readers see. Clean. Collapsed. A bash script preview with “Show more” button ready.
The “Next Worktrees Manager” section shows just enough code to give context. The fade-out effect tells readers there’s more. One click to reveal everything.
Clean.
Collapsed.
A bash script preview with “Show more” button ready.
Click “Show more” and boom – the full script appears.
.
.
.
Why This Workflow Changes Everything
97% Success Rate Isn’t Luck
It’s the result of:
Clear communication through wireframes
Systematic planning with questions
Meticulous review before testing
Surgical corrections based on feedback
You don’t get 97% success by luck.
You get it by design.
That’s how “good enough” becomes “ships perfectly.”
.
.
.
Your Turn to Level Up
Stop settling for “close enough” implementations.
Stop debugging for hours.
Stop the back-and-forth madness.
Here’s your action plan:
Tonight: Save the workflow prompts
Tomorrow: Try it on one small feature
This week: Build something complex
Next month: Wonder how you ever worked differently
.
.
.
The Bottom Line
I built a production-ready WordPress feature in less than 20 minutes.
Not a prototype. Not “mostly working.” Production-ready.
97% of my features now ship on the first try.
The 3% that don’t? External dependencies. Environment issues. Things no AI can predict.
This workflow transform you from someone who “uses AI to code” to someone who orchestrates AI to build exactly what I envision.
What will you build when implementation matches imagination perfectly?
P.S. – This workflow needs GPT-5 (via Codex CLI) for planning/review and Claude Code (Sonnet 4.5) for implementation. Together, they’re unstoppable. Apart, they’re just good. Choose wisely.
You know that feeling when you’re vibe coding with Claude Code and it suggests a “minor database refactor” – then suddenly your entire local database is corrupted?
Or when you want to test Claude Code’s approach versus Codex’s approach, but switching branches means losing all your test data?
I was so tired of this dance.
So I built a solution.
Next.js Worktrees Manager – a bash script that creates completely isolated development environments with their own PostgreSQL databases.
Let me show you exactly how I vibe code with multiple AI agents simultaneously.
.
.
.
The Problem Nobody Talks About
Here’s what happens every single day when you’re vibe coding:
You’re in the zone with an AI coding agent.
Claude Code, Codex, Cursor, Windsurf – doesn’t matter which.
The agent suggests changes. You accept them. Then you realize it modified your database schema.
Now what?
git reset --hard?
Sure, that fixes the code. But your database?
Those migrations already ran. That test data is gone. Your local environment is now broken.
The worst part?
You want to compare different AI agents’ implementations.
But without git worktrees, that means:
Constantly switching branches
Re-running migrations
Losing test data
Fighting port conflicts
Wasting hours on environment management instead of coding
Regular git workflows weren’t built for this level of experimentation.
Your future self – vibe coding with three AI agents simultaneously using git worktrees – will thank you.
P.S. – I’ve used this script to test different AI agent implementations. Not once has my main database been corrupted. That peace of mind alone makes vibe coding actually enjoyable again.
A real-world debugging session that shows how Claude Opus 4.1, GPT-5, and GPT-5 Codex handle the same problem differently – with surprising results.
Sometimes the most frustrating bugs have the simplest solutions.
And sometimes, the AI model you trust most isn’t the right one for the job.
Let me tell you about the time I spent hours (yes, hours) watching Claude Opus 4.1 chase its tail trying to fix a bash script, only to have GPT-5 Codex solve it in minutes.
.
.
.
The Setup: A/B Testing with Git Worktrees
I needed a script to automate A/B testing environments using Git worktrees.
The concept was straightforward: create separate workspaces for comparing different AI agents’ outputs side by side, each with its own database instance.
The script (ab-worktrees.sh) was created successfully.
… or so I thought.
.
.
.
The Problem: Silent Failure
When I ran the script, nothing happened. No error. No output. Just… nothing.
Time to debug.
.
.
.
Round 1: Claude Opus 4.1 – The Endless Loop
I turned to Claude Opus 4.1, my go-to for complex debugging.
It immediately started adding debug statements, analyzing the script structure, and running tests.
It found issues and made fixes!
It added more debug output!
After multiple iterations, Claude confidently declared:
But when I tested it…
Still nothing.
Claude kept insisting it was fixed, identifying “echo -e incompatibility” and “working tree check failures” – but the fundamental issue remained.
.
.
.
Claude Opus 4.1 vs GPT-5 vs GPT-5 Codex: Testing Them All
Frustrated, I switched to GPT-5-high in Codex CLI.
GPT-5-high couldn’t crack it either.
But then I tried one more variant: GPT-5-codex-high.
.
.
.
The Breakthrough: A Devastatingly Simple Fix
GPT-5 Codex found the issue immediately:
The problem? Bash conditional syntax.
The Bug
# Original (broken) pattern
[[ -z "$A_START" ]] && A_START="$BASE_BRANCH"
The Fix
# Fixed pattern
if [[ -z "$A_START" ]]; then
A_START="$BASE_BRANCH"
fi
That’s it.
That’s the entire fix.
.
.
.
Why This Simple Bug Was So Hard to Find
GPT-5 Codex explained it perfectly:
The && shortcut pattern fails silently in certain contexts:
When set -e is enabled (which my script had)
In functions or subshells
When the first condition returns non-zero
The shortcut syntax relies on specific Bash behavior that breaks under these conditions. The explicit if statement always works.
.
.
.
The Working Script
After applying the fix:
Success!
The script now:
Creates two Git worktrees (worktrees/a and worktrees/b)
Clones the database for each environment
Sets up separate ports (3001 and 3002)
Provides clear instructions for running both variants
.
.
.
The Lessons
1. Different Models, Different Strengths
Claude Opus 4.1 is brilliant at many things, but it got stuck in a loop adding complex debugging rather than reconsidering the fundamental syntax.
GPT-5 Codex, specialized for code, immediately spotted the syntax pattern issue.
2. Simple Bugs Can Be the Hardest
The simpler the bug, the easier it is to overlook.
We expect complex problems to have complex solutions, but sometimes it’s just a matter of using if instead of &&.
3. Shell Scripting Is Deceptively Complex
What looks like identical syntax can behave completely differently depending on shell options, context, and environment.
The “clever” shortcut often isn’t worth the fragility.
4. Know When to Switch Tools
After watching Claude go in circles for hours, switching to a different model wasn’t giving up – it was being strategic.
Different AI models truly have different strengths.
.
.
.
The Irony
The most sophisticated AI model I had access to couldn’t fix a bug that boiled down to “use an if statement instead of &&”.
Meanwhile, a more specialized model solved it immediately.
Sometimes the best debugger isn’t the most powerful AI – it’s the one that’s been trained specifically for the task at hand.
.
.
.
Important Disclaimer
This is just one data point, not a comprehensive benchmark.
This single debugging session shouldn’t be used to conclude that GPT-5 Codex is definitively superior to Claude Opus 4.1, or that any model is inherently better than another.
Each AI model has its strengths and weaknesses, and they excel in different contexts.
What this experience taught me is that when you’re stuck on a problem with one model, switching to another might provide the fresh perspective needed for a breakthrough.
It’s not about finding the “best” model – it’s about using the right tool for the specific job at hand.
Claude Opus 4.1 remains exceptional at complex reasoning, creative problem-solving, and many coding tasks. GPT-5 and GPT-5 Codex have their own unique strengths.
The key is knowing when to leverage each one.
.
.
.
What’s Next: The A/B Testing Script
Speaking of using the right tool for the job – next week, I’ll be sharing the complete worktrees.sh script that started this whole adventure.
This bash script lets you test different AI models’ outputs side by side using Git worktrees, making it easy to compare implementations from Claude Opus 4.1 vs GPT-5 vs GPT-5 Codex (or any other models) in real-time.
You’ll learn how to:
Set up isolated testing environments for each model’s output
Compare implementations without contaminating your main branch
Run parallel tests with separate databases
Make data-driven decisions about which model’s solution to use
Subscribe to stay tuned for next week’s deep dive into automated A/B testing for AI-generated code!
Want techniques like these weekly?
Join The Art of Vibe Coding—short, practical emails on shipping with AI (without the chaos).
No spam. Unsubscribe anytime. Seriously.
Have you experienced similar situations where switching AI models made all the difference? Where a “simple” fix eluded even the most advanced tools? I’d love to hear your debugging war stories in the comments.
I used to dive straight into Claude Code’s Plan Mode and ask it to build features.
Sometimes it worked brilliantly – Claude would research, plan, and implement perfectly. Other times, despite Plan Mode’s capabilities, it built something that technically worked but wasn’t quite what I had in mind.
The problem?
Even with Plan Mode, I wasn’t always giving Claude Code enough context about my specific requirements.
I was expecting it to infer implementation details, UI decisions, and edge cases from a brief description.
Then I discovered a game-changing workflow: Use Codex to plan meticulously, then Claude Code to execute flawlessly.
Let me show you exactly how this works with a real example – adding a context menu to rename and delete chat sessions in my YouTube AI app.
.
.
.
The Magic Is In The Questions
Here’s the breakthrough:
Instead of jumping straight into implementation, I start by having Codex ask me clarifying questions until it’s 95% confident it can create a perfect plan.
I’ve refined her prompt to work perfectly with Codex for feature planning.
.
.
.
Step 1: Start With Questions, Not Code
I begin with this carefully crafted prompt to Codex:
In the Chat sidebar, I want to add context menu for user to rename the session as well as deleting the session.
Help me come up with a plan to implement this. DON'T WRITE OR EDIT ANY FILES.
Ask me clarifying questions until you are 95% confident you can complete this task successfully.
a. If the question is about choosing different options, please provide me with a list of options to choose from. Mark the option with a clear label, like a, b, c, etc.
b. If the question need custom input that is not in the list of options, please ask me to provide the custom input.
The key elements here:
DON’T WRITE OR EDIT ANY FILES – This keeps Codex focused on planning
95% confidence threshold – Forces thorough understanding before proceeding
Structured options – Makes decision-making faster and reveals possibilities I hadn’t considered
.
.
.
Step 2: The Clarifying Questions Phase
This is where the magic happens. Codex doesn’t just ask random questions – it systematically explores every aspect of the feature:
Notice how Codex provides options for each decision:
Rename UI: Dialog with text input, inline edit, or popover
Delete confirmation: AlertDialog, no confirmation, or typing “DELETE”
Mobile behavior: Different menu types or desktop-only
Post-action behavior: Keep selection, reset, or select next
I can quickly pick options without having to type lengthy explanations:
But Codex doesn’t stop there. It asks follow-up questions to refine the details:
Questions about:
Handling duplicate titles
Whitespace validation
Button visibility
Delete confirmation text
Test IDs for E2E testing
I continue answering:
.
.
.
Want techniques like these weekly?
Join The Art of Vibe Coding—short, practical emails on shipping with AI (without the chaos).
No spam. Unsubscribe anytime. Seriously.
Step 3: The Comprehensive Plan
After gathering all requirements, Codex produces a detailed implementation plan:
The plan is incredibly thorough, covering:
Backend Architecture:
PATCH and DELETE routes with exact endpoints (/api/chat/sessions/:sessionId)
Specific HTTP status codes (200, 204, 401, 404)
Storage interface methods with complete signatures
MemStorage and PostgreSQLStorage implementation details
Ownership verification and cascade deletion logic
Client-Side Implementation:
useChat hook extensions with renameSessionMutation and deleteSessionMutation
Cache invalidation strategies
Toast feedback for success/error states
Context state management
UI Components:
ContextMenu wrapper with ContextMenuTrigger
Always-visible “…” actions button with DropdownMenu
Loading states that disable actions during pending operations
UX Specifications:
Left-click for selection, right-click for actions
Mobile-first “…” button approach
Preserved updatedAt timestamps during rename
Session order stability
Sidebar sheet behavior (no auto-close on dialog open)
Testing Infrastructure:
Comprehensive test IDs for E2E testing
API contract examples with request/response formats
Testing checklist with specific scenarios
This isn’t just a vague outline – it’s a blueprint that any developer could follow.
.
.
.
Step 4: From Plan to Implementation
Now comes the handoff. I copy Codex’s plan and paste it directly into Claude Code:
Claude Code immediately understands the comprehensive plan:
Watch as Claude Code systematically implements each part of the plan:
The implementation is surgical and precise – Claude Code knows exactly what to build because the plan is so detailed:
.
.
.
Step 5: The Review Loop
But we’re not done yet. This is where the workflow truly shines.
I take the git diff from Claude Code’s implementation and ask Codex to review it:
Please read the git diff, analyze the implementation and check if everything is implemented as per advised.
DON'T WRITE OR EDIT ANY FILES.
Codex meticulously reviews every change:
In this case, Codex found two deviations from the agreed plan:
Timestamp updates during rename (should be preserved)
Button visibility on desktop (had unnecessary opacity classes)
.
.
.
Want techniques like these weekly?
Join The Art of Vibe Coding—short, practical emails on shipping with AI (without the chaos).
No spam. Unsubscribe anytime. Seriously.
Step 6: Refinement Based on Feedback
I copy Codex’s feedback back to Claude Code:
Claude Code immediately understands and implements the corrections:
The final result?
A perfectly implemented feature that matches the original specifications exactly:
.
.
.
Why This Workflow Is Revolutionary
1. Thinking Before Coding
By forcing myself to answer Codex’s questions, I’m thinking through edge cases and implementation details BEFORE any code is written.
This prevents the “oh wait, what about…” moments during development.
2. Leveraging Strengths
Codex excels at: Analysis, planning, asking the right questions, and meticulous review
Claude Code excels at: Understanding context, implementing complex features, and following detailed plans
3. Faster Development
Counter-intuitively, spending 10 minutes on planning saves hours of refactoring.
The implementation is right the first time.
4. Better Code Quality
The review loop catches issues that might slip through.
Having Codex review Claude Code’s work is like having a senior developer review every PR.
5. Learning Through Questions
Codex’s questions often reveal considerations I hadn’t thought of.
“Should duplicate titles be allowed?” “What happens to the selection after delete?”
These questions make me a better developer.
.
.
.
The Prompt That Makes It Work
The secret sauce is in the prompt structure. By combining:
Clear feature description
Explicit “don’t code” instruction
95% confidence threshold (credit to Sabrina Ramonov)
Structured option format
We transform Codex from a code generator into a thoughtful architect who ensures every detail is considered before implementation begins.
.
.
.
Your Next Feature
Try this workflow on your next feature:
Start with Codex – Use the clarifying questions prompt
Answer thoughtfully – Pick from options or provide custom input
Get the plan – Let Codex create a comprehensive blueprint
Implement with Claude Code – Copy the plan and watch it build
Review with Codex – Check the implementation against the plan
Refine with Claude Code – Apply any feedback from the review
This isn’t just about building features faster. It’s about building them right the first time.
While the context menu might seem like a simple example, this same workflow scales beautifully to complex features. Whether you’re building authentication systems, real-time collaboration, or intricate data visualizations – the pattern of meticulous planning with Codex followed by precise execution with Claude Code ensures success every time.
What feature will you plan with Codex and build with Claude Code?
P.S. – The combination of Codex’s analytical planning and Claude Code’s implementation prowess has transformed how I develop. No more half-baked features or forgotten edge cases. Just clean, well-planned, thoroughly reviewed code.