惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
N
Netflix TechBlog - Medium
WordPress大学
WordPress大学
罗磊的独立博客
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
A
About on SuperTechFans
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
Docker
云风的 BLOG
云风的 BLOG
Microsoft Security Blog
Microsoft Security Blog
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
InfoQ
J
Java Code Geeks
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
美团技术团队
小众软件
小众软件
Stack Overflow Blog
Stack Overflow Blog
C
Check Point Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
How to Stop Your AI Coding Assistant From Being Useless a...
Alan West · 2026-04-26 · via DEV Community

We've all been there. You're in the zone, pair-programming with your AI coding assistant, and you ask it to do something slightly outside the beaten path — generate an SVG diagram, retrieve context from a knowledge base, or scaffold a specific design pattern you use constantly. And it just... fumbles.

The assistant gives you generic boilerplate. Or worse, it confidently generates something that looks right but is subtly wrong for your workflow. You end up spending more time fixing its output than you would have spent doing it yourself.

The root problem isn't that AI assistants are dumb. It's that they're generalists operating without domain-specific instructions.

Why Your AI Assistant Keeps Getting It Wrong

Modern AI coding assistants — whether it's Claude Code, GitHub Copilot, Cursor, or others — are trained on massive datasets. They know a little about everything. But "a little about everything" isn't what you need when you want a component styled exactly the way your design system works, or an image generated with specific parameters.

The core issue is context starvation. Your assistant doesn't know:

  • Your team's preferred patterns for common tasks
  • How to chain together external tools (image APIs, search engines, design tools)
  • What "good output" looks like for your specific use case

This is the same reason a new hire who's technically brilliant still needs onboarding. Raw capability without context produces mediocre results.

The Fix: Custom Skills as Reusable Instructions

The solution that's been gaining traction is the concept of skills — modular, reusable instruction sets that teach your AI assistant how to perform specific tasks well.

Think of a skill as a prompt template on steroids. Instead of pasting the same instructions every time you want your assistant to do something specific, you define the skill once and invoke it by name.

Here's what a basic skill definition looks like conceptually:

# skill: web-design-helper
name: Web Design Assistant
description: Generates responsive web components following modern CSS practices
instructions: |
  When asked to create a web component:
  1. Use semantic HTML5 elements
  2. Prefer CSS Grid and Flexbox over floats
  3. Include mobile-first responsive breakpoints
  4. Add ARIA attributes for accessibility
  5. Use CSS custom properties for theming

Enter fullscreen mode Exit fullscreen mode

The key insight is that skills aren't magic — they're structured context. You're front-loading the assistant with the knowledge it needs before it starts generating output.

Building Your Own Skill Collection

Let me walk through how to actually set this up. The pattern works regardless of which AI tool you're using, though the exact configuration format varies.

Step 1: Identify Your Repetitive Frustrations

Start by keeping a list of every time you correct your AI assistant this week. I did this and found three categories:

  • Output formatting — it kept generating code in the wrong style
  • Tool usage — it didn't know how to call external APIs I use regularly
  • Domain knowledge — it lacked context about my project's conventions

Step 2: Write Skill Instructions That Are Specific Enough

Vague instructions produce vague results. Compare these two approaches:

# Bad: Too vague
Generate good images when asked.

# Good: Specific and actionable
When generating images:
- Use the DALL-E API endpoint at /v1/images/generations
- Default to 1024x1024 unless the user specifies a size
- Always include a "revised_prompt" field in the response
- For UI mockups, use a clean, minimal style with a white background
- For diagrams, prefer dark backgrounds with high-contrast elements
- Return the image URL and the prompt used so the user can iterate

Enter fullscreen mode Exit fullscreen mode

The second version eliminates ambiguity. Your assistant knows exactly what "generate an image" means in your context.

Step 3: Organize Skills by Domain

As your collection grows, structure matters. A pattern I've seen work well — and one used by open-source skill collections like ConardLi's garden-skills on GitHub — is grouping skills by capability domain:

skills/
├── web-design/        # HTML/CSS generation, responsive layouts
├── knowledge/         # RAG retrieval, documentation search
├── image-generation/  # Image API integration, prompt crafting  
├── code-review/       # Style checks, security scanning
└── devops/            # CI/CD templates, Docker configs

Enter fullscreen mode Exit fullscreen mode

The garden-skills repo is worth checking out if you want a head start — it's a curated collection covering web design, knowledge retrieval, image generation, and other common use cases. Instead of building everything from scratch, you can fork it and customize the skills to match your workflow.

Step 4: Test and Iterate

Skills need debugging just like code. Here's my process:

# Test a skill with a known input
# Compare the output against what you'd manually produce
# Look for three things:

# 1. Does it follow the instructions consistently?
# Run the same prompt 3-4 times — if outputs vary wildly,
# your instructions are too ambiguous

# 2. Does it handle edge cases?
# Try unusual inputs that are still within scope

# 3. Does it fail gracefully?
# Ask it to do something slightly outside the skill's scope
# It should acknowledge the limitation, not hallucinate

Enter fullscreen mode Exit fullscreen mode

I usually go through two or three rounds of refinement before a skill feels solid.

Common Pitfalls to Avoid

Don't make skills too broad. A skill called "do everything with images" will perform worse than three focused skills for generation, editing, and analysis. Narrower scope means more specific instructions, which means better output.

Don't hardcode values that change. If your API endpoints or model versions change frequently, reference a config file rather than embedding values directly in the skill instructions.

Don't skip the examples. The single most effective thing you can add to any skill definition is a concrete input/output example. LLMs learn from patterns — show them what you want.

## Example
Input: "Create a card component for a user profile"
Output:
- Semantic HTML with <article> as the root element
- CSS Grid for internal layout
- Slots for avatar, name, bio, and action buttons
- Hover state with subtle elevation change

Enter fullscreen mode Exit fullscreen mode

Prevention: Building a Skill-First Workflow

The real win isn't fixing individual interactions — it's shifting your mindset. Before you start a new project or adopt a new tool, ask: "What skills does my AI assistant need to be useful here?"

Write the skills upfront, alongside your README and your linter config. Treat them as part of your project's developer experience infrastructure.

A few habits that help:

  • Version control your skills — they evolve with your project
  • Share skills across your team — consistency matters when multiple people use AI assistants
  • Review skills quarterly — prune what you don't use, update what's drifted
  • Contribute back — if you build something useful, open-source it so others can benefit

The gap between a mediocre AI coding experience and a great one usually isn't the model — it's the context you give it. Skills are how you bridge that gap systematically instead of one frustrated correction at a time.