Every serious engineering team I know has stopped arguing about prompt engineering. That debate is over. The winners weren’t the people who crafted the most elegant system prompts or discovered some magical chain-of-thought incantation. The winners were the teams that realized AI coding agents need the same thing every new hire needs: a well-written operating manual that tells them how the codebase actually works, what the conventions are, and where the landmines are buried. The explosion of CLAUDE.md skills files on GitHub this week isn’t a trend — it’s the industry collectively figuring out what should have been obvious from the start.
The Numbers That Broke GitHub Trending
Let me give you the raw data, because it’s staggering. In mid-April 2026, three repositories related to AI coding agent “skills files” are dominating GitHub’s trending page in a way I haven’t seen since the early days of the LLM hype cycle:
- obra/superpowers — 154K stars. An “agentic skills framework and software development methodology” that provides structured operating instructions for AI coding agents.
- forrestchang/andrej-karpathy-skills — 43K stars, with 9,600 stars gained in a single day and 30K in the past week alone. This repo packages Andrej Karpathy’s observations about LLM coding pitfalls into a CLAUDE.md skills file.
- addyosmani/agent-skills — 16K stars. Production-grade engineering skills for AI coding agents, written by one of the most respected voices in frontend engineering.
To put the Karpathy skills repo in perspective: 9,600 stars in one day puts it in the same league as the original ChatGPT wrapper repos from early 2023. Except this isn’t a wrapper. It’s a text file. A very carefully written text file that tells Claude Code how to write better software. The fact that a configuration document is getting this kind of traction tells you everything about where the industry is headed.
What Actually Is a CLAUDE.md File?
For those who haven’t been in the trenches with Claude Code, here’s the short version: a CLAUDE.md file sits at the root of your repository (or in your home directory) and acts as persistent context that Claude Code reads every time it starts a session in that project. Think of it as a README, but instead of being written for human developers, it’s written for your AI coding agent.
But calling it a “README for AI” undersells what’s happening. A good CLAUDE.md file is an operating manual. It encodes:
- Project architecture decisions and why they were made
- Coding conventions that aren’t captured in linters
- Known pitfalls specific to your codebase
- Testing strategies and what “done” looks like
- Deployment constraints the agent needs to respect
- Domain-specific terminology and business logic
The reason this matters — the reason 154K people starred a repo about it — is that without this context, even the most capable AI coding agent makes the same mistakes over and over. It’s like hiring a brilliant contractor who has never seen your codebase and refusing to give them any onboarding documentation. They’ll write functional code that violates every convention your team has established over the past three years.
Karpathy’s Observations and Why They Hit So Hard
Andrej Karpathy, formerly of Tesla’s Autopilot team and OpenAI, published a series of observations about how LLMs fail when writing code. These weren’t theoretical concerns. They were the kind of specific, experience-driven insights that make senior engineers nod and say “yes, exactly.” Things like:
- LLMs tend to over-engineer solutions, adding abstraction layers that aren’t needed
- They reach for dependencies when stdlib solutions exist
- They write “demonstration code” that looks good but doesn’t handle edge cases
- They have a persistent bias toward newer patterns even when the codebase uses older, stable ones
- They struggle with maintaining consistent error handling strategies across a project
What Forrest Chang did with the andrej-karpathy-skills repo was take these observations and encode them as explicit instructions in a CLAUDE.md format. The result is a skills file that essentially says: “Here are the specific ways you tend to mess up. Don’t do these things.” And it works. Not perfectly, not every time, but measurably better than leaving the agent to its own devices.
This is why 43,000 developers starred it in a week. Not because the observations were secret knowledge, but because the format — a structured skills file that directly addresses agent behavior — turned abstract wisdom into actionable configuration.
The Shift from Prompting to Infrastructure
I’ve been writing production software for over eight years, and I’ve watched every “how to use AI for coding” paradigm come and go. First it was “just ask it nicely.” Then it was “use chain-of-thought.” Then “few-shot examples.” Then “system prompts with personas.” Each of these treated the AI like a conversation partner you needed to persuade.
Skills files represent a fundamentally different mental model. You’re not persuading the agent. You’re configuring it. The same way you configure a CI/CD pipeline, a linter, or a Dockerfile. The CLAUDE.md file is infrastructure, not conversation.
This distinction matters enormously in practice. When I was leading a backend team at a fintech startup in late 2025, we spent roughly 20% of our “AI-assisted” development time re-explaining context to Claude Code. Every new session started with some variation of “remember, we use SQLAlchemy 2.0 style, our API responses follow this specific envelope format, and never use datetime.now() without timezone info.” It was like Groundhog Day with a very competent but amnesiac pair programmer.
The day we wrote our first CLAUDE.md, that 20% dropped to near zero. Not because the agent became smarter, but because we stopped asking it to be a mind reader.
What Good CLAUDE.md Content Looks Like
Let me show you the difference between skills files that work and ones that don’t, because I’ve seen a lot of both.
Bad: Vague Aspirational Instructions
# CLAUDE.md
## Guidelines
- Write clean code
- Follow best practices
- Make sure tests pass
- Use proper error handling
- Keep functions small and focused
This is useless. It’s the engineering equivalent of telling a new hire “just write good code.” Every single instruction here is subjective and unactionable. What does “clean” mean in your codebase? Which best practices? What’s “proper” error handling — do you throw exceptions, return Result types, use error codes? “Small and focused” means 10 lines to some teams and 50 to others.
Good: Specific, Contextual, Opinionated
# CLAUDE.md
## Project: Payments Service (Go 1.22)
### Architecture
- This is a gRPC service behind an Envoy sidecar. Never add HTTP endpoints.
- All database access goes through the `store` package. Never import `database/sql` directly.
- We use sqlc for query generation. If you need a new query, add it to `queries/*.sql`
and run `make generate`. Do NOT write raw SQL in Go files.
### Error Handling
- All errors must be wrapped with `fmt.Errorf("methodName: %w", err)` for stack context.
- Return gRPC status codes, not custom error types. Map domain errors in the `grpcadapter` package.
- Never swallow errors silently. If an error truly can be ignored, add a comment explaining why.
### Testing
- Unit tests live next to the code. Integration tests are in `test/integration/`.
- Use `testcontainers-go` for database tests. Never mock the database layer.
- Every new public function needs a table-driven test with at least: happy path,
invalid input, and the most likely failure mode.
### Conventions
- Variable names: `userID` not `userId` not `user_id` (this deviates from proto style,
it's intentional, don't "fix" it).
- Context is always the first parameter. Logger comes from context via `log.FromCtx(ctx)`.
- No init() functions. Ever. We've been burned before.
### Known Gotchas
- The `Transaction` type has a `Status` field that is an int, not an enum.
Valid values are in `pkg/transaction/status.go`. Don't guess.
- The `amount` field is stored as cents (int64). All API boundaries handle
the decimal conversion. Don't do math with floats.
- Our proto files are in a separate repo (`payments-proto`). Don't modify
proto-generated code in this repo.
See the difference? Every instruction is specific to this project, this team, this codebase. The agent knows exactly what “proper error handling” means here. It knows that the variable naming convention is intentionally inconsistent with the proto style and won’t try to “fix” it. It knows amounts are in cents and won’t introduce floating-point currency bugs.
Advanced: Encoding Workflow-Level Knowledge
# CLAUDE.md
## Deployment Constraints
- This service runs on AWS ECS with 512MB memory limit. Be aggressive about
memory: prefer streaming over buffering, reuse slices, avoid unnecessary allocations.
- We deploy 4x daily. Backwards-incompatible database changes must use the
expand-contract pattern across at least 2 deploys.
- Feature flags are in LaunchDarkly. New features MUST be behind a flag.
The flag naming convention is `payments.{feature-name}` in kebab-case.
## PR Standards
- Every PR description must include: what changed, why, how to test, rollback plan.
- If a PR touches the `store` package, tag @db-team for review.
- Max 400 lines changed per PR. If your change is bigger, break it up and
explain the sequencing in the first PR's description.
## When You're Stuck
- If you're unsure about a business rule, check `docs/domain/` first.
If it's not documented there, ASK rather than guessing.
- If tests are failing in CI but passing locally, it's almost always a
race condition in the integration tests. Check for missing `t.Parallel()` guards.
- If the linter complains about something that seems wrong, it's probably
a custom rule in `.golangci.yml`. Read the rule before disabling it.
This is the level that separates teams getting marginal value from AI coding agents from teams getting transformative value. You’re not just telling the agent about code style — you’re encoding operational knowledge that would normally take a new hire weeks to absorb.
The Three Repos and What They Each Bring
obra/superpowers: The Methodology
Jesse Vincent’s superpowers repo (154K stars) takes the broadest approach. It’s not just a skills file — it’s a complete software development methodology designed around agentic coding. It covers everything from how to structure your thinking about a problem to how to verify that the agent’s output actually works.
What makes superpowers compelling is its opinionated stance on workflow. It doesn’t just say “here are some tips for working with AI.” It says “here is a specific, repeatable process that produces reliable results.” For teams that have been treating AI coding as ad-hoc magic, this kind of structure is revelatory.
The repo’s rapid growth — it crossed 100K stars faster than most developer tools — suggests that the demand for structured methodologies around agentic coding is enormous. Developers don’t want more prompt tricks. They want a system.
forrestchang/andrej-karpathy-skills: The Antibodies
The Karpathy skills repo takes the opposite approach: instead of a broad methodology, it’s a targeted set of “don’t do this” instructions derived from Karpathy’s observations about LLM coding failures. Think of it as an immune system for your AI coding agent — it doesn’t tell the agent what to build, but it prevents it from making the specific mistakes that LLMs are biased toward.
This is the repo that gained 9,600 stars in a single day, and I think the reason is psychological as much as practical. Every developer who has used an AI coding agent has experienced those moments: the agent confidently installs a package you don’t need, creates an abstraction layer for a function that’s called once, or rewrites working code in a “more modern” pattern that breaks three other things. Seeing those failure modes explicitly catalogued and addressed feels like validation. Someone gets it.
addyosmani/agent-skills: The Production Playbook
Addy Osmani’s agent-skills repo sits between the other two. It’s more focused than superpowers but broader than the Karpathy skills. What distinguishes it is the emphasis on “production-grade” — these aren’t skills for writing demos or prototypes. They’re designed for the kind of code that runs in production, handles errors gracefully, and doesn’t fall over at 3 AM.
Coming from Osmani, who literally wrote the book on JavaScript design patterns and spent years on the Chrome team, this carries weight. The repo’s approach treats AI coding as a serious engineering discipline, not a novelty. That framing alone has shifted how a lot of teams think about agent-assisted development.
Real-World Impact: Two Case Studies
Case Study 1: Shopify’s Internal Platform Team (Q1 2026)
In February 2026, Shopify’s internal platform engineering team published a blog post about their experience standardizing CLAUDE.md files across 47 internal services. The numbers they reported were striking:
- Average PR review cycles dropped from 2.3 rounds to 1.4 rounds for AI-generated PRs
- The rate of “convention violations” in AI-generated code fell by 67%
- “Unnecessary dependency additions” — one of Karpathy’s key observations — dropped by 81%
- Time-to-merge for AI-assisted PRs improved by 40%
What’s especially interesting about Shopify’s approach is that they treated CLAUDE.md as a first-class engineering artifact. It wasn’t something one person wrote and forgot about. It was reviewed, versioned, and updated as part of their regular sprint retrospectives. When a new failure mode was discovered, it got encoded into the skills file. When a convention changed, the CLAUDE.md was updated in the same PR.
As Shopify staff engineer Mei Zhang wrote: “We stopped thinking of CLAUDE.md as documentation and started thinking of it as a form of executable specification. It’s not describing what the code does — it’s prescribing what the agent should do. That mindset shift changed everything.”
Case Study 2: A YC Batch Startup (W26)
I spoke with the CTO of a Y Combinator W26 batch startup (they asked me not to name the company since they haven’t launched yet) that built their entire codebase — a real-time data pipeline product — using Claude Code with a meticulously maintained CLAUDE.md. Their team is four engineers, and they estimated that the skills file increased their effective velocity by roughly 2x.
But the more interesting metric was about consistency. Because all four engineers were working with the same CLAUDE.md, the code Claude generated for each of them was stylistically and architecturally consistent. They reported that during code review, they often couldn’t tell which engineer (or whether the AI) had written a given function, because the patterns were so uniform. For a four-person startup moving fast, that kind of consistency is usually impossible without a dedicated tech lead reviewing every line.
Their CLAUDE.md is 800 lines long. They consider it one of their most important engineering assets.
Why This Is the New DevOps Config
I’m going to take a strong stance here: within 12 months, not having a CLAUDE.md (or equivalent skills file for your AI coding agent of choice) will be as negligent as not having a CI pipeline. It’s going to move from “nice to have” to “table stakes” faster than most people expect.
Here’s why I believe this:
The economics are undeniable. AI coding agents are only getting more capable, which means teams are delegating more complex work to them. The cost of a wrong convention in generated code compounds with every file the agent touches. A skills file is a one-time investment that pays dividends on every single interaction.
The tooling is converging. Claude Code reads CLAUDE.md natively. Cursor has its own configuration format. GitHub Copilot Workspace is developing similar concepts. Every major AI coding tool is building first-class support for persistent context files. The pattern is being standardized across the industry.
The failure mode is visible. We’ve all seen the codebases where different AI sessions generated code in different styles, with different error handling patterns, different naming conventions. It looks exactly like a codebase where the team has no coding standards — except worse, because the inconsistencies are more subtle and more numerous. Skills files are the coding standards enforcement mechanism for the AI-assisted era.
The maintenance burden is low. Unlike complex CI/CD configurations or infrastructure-as-code, a CLAUDE.md is just a text file. It doesn’t need a DSL, a runtime, or a build step. Any engineer can read it, edit it, and understand it. The barrier to adoption is essentially zero.
The Emerging Taxonomy of Skills Files
As the ecosystem matures, I’m seeing three distinct categories of skills content emerge:
1. Universal Skills (Agent-Level)
These are instructions that apply regardless of the project. Karpathy’s observations fall largely in this category: “don’t over-engineer,” “prefer stdlib,” “don’t refactor working code unless asked.” These get placed in your global ~/.claude/CLAUDE.md and apply to every session.
2. Project Skills (Repo-Level)
These are specific to a codebase: architecture decisions, conventions, testing strategies, deployment constraints. They live at the repo root and are version-controlled with the code. The Shopify case study is primarily about this level.
3. Task Skills (Session-Level)
These are temporary instructions for a specific type of work: “I’m refactoring the auth module, here are the constraints.” These might live in subdirectory CLAUDE.md files or be loaded dynamically. The obra/superpowers repo has particularly good thinking about this level.
The most effective setups I’ve seen use all three levels simultaneously. Universal skills prevent common LLM pitfalls. Project skills enforce codebase-specific standards. Task skills provide focus for the current objective. It’s a layered configuration, exactly like how we layer Dockerfiles, docker-compose, and orchestration configs.
Common Mistakes in Skills File Design
Having reviewed dozens of CLAUDE.md files from open source projects and private teams, here are the patterns I see failing most often:
Mistake 1: Writing for Humans, Not Agents
A lot of early CLAUDE.md files read like engineering culture documents. “We value simplicity.” “We believe in test-driven development.” “We prioritize developer experience.” These are great for a team wiki. They’re terrible for an AI agent that needs concrete instructions.
The fix: every instruction should be falsifiable. If you can’t point at a piece of code and say “this violates that instruction,” the instruction is too vague.
Mistake 2: Information Overload
Some teams dump their entire architectural decision record into the CLAUDE.md. The result is a 3,000-line document where the agent can’t distinguish between critical instructions and historical context. I’ve seen agents violate critical conventions that were buried on line 2,847 of a skills file because the signal-to-noise ratio was too low.
The fix: be ruthless about what goes in the skills file. If it’s background context, put it in a linked document. The CLAUDE.md itself should be a prioritized list of actionable instructions, ideally under 500 lines for the core file. Use references to point the agent at detailed docs when it needs deeper context.
Mistake 3: Never Updating
A skills file written when the project started and never updated is almost worse than no skills file at all. It teaches the agent to follow patterns that the team has since abandoned, generating code that looks right but is subtly wrong in ways that are hard to spot in review.
The fix: treat the CLAUDE.md like a living document. Add it to your PR template checklist: “Does this change require a CLAUDE.md update?” Run a quarterly review where the team reads through the skills file and prunes anything that’s stale.
Mistake 4: Contradictory Instructions
This is surprisingly common, especially when multiple team members contribute to the skills file. One section says “prefer composition over inheritance.” Another section says “extend the BaseService class for all new services.” The agent receives contradictory signals and produces inconsistent output.
The fix: designate a single owner for the skills file (similar to a CODEOWNERS entry). Have that person review all proposed changes for consistency. If two instructions seem to conflict, resolve the conflict explicitly rather than leaving it ambiguous.
The Karpathy Effect and What It Means
There’s something poetic about Andrej Karpathy’s observations becoming the catalyst for this movement. Karpathy has been one of the clearest thinkers about the practical limitations of neural networks for over a decade. His “Software 2.0” blog post from 2017 is still cited regularly. His ability to observe specific, reproducible failure modes in LLM-generated code — and articulate them in a way that’s both precise and accessible — is exactly the kind of contribution the field needed.
But I think the real story isn’t Karpathy’s observations themselves. It’s the fact that someone turned them into a CLAUDE.md file and it worked. The observations were already public. They’d been discussed on Twitter, in blog posts, in engineering Slack channels. What changed was the format. Encoding them as agent-readable instructions transformed them from interesting commentary into actionable infrastructure.
This is the pattern I expect to see repeated hundreds of times over the next year. Senior engineers and researchers will publish observations about AI coding failures. Community members will encode those observations into skills files. The skills files will be tested, refined, and shared. The collective intelligence of the engineering community will be captured not in blog posts or conference talks, but in structured configuration files that directly improve agent behavior.
It’s a new form of knowledge management, and it’s happening entirely in the open.
Building Your First Production-Grade Skills File
If you’re convinced and want to start, here’s the process I recommend based on what I’ve seen work at multiple companies:
Step 1: Audit Your Last 20 AI-Generated PRs
Go through the last 20 pull requests where an AI agent contributed code. For each one, note:
- What review feedback was given?
- What patterns did reviewers ask to be changed?
- Were there any convention violations?
- Did the agent make any assumptions that were wrong?
This gives you your initial “frequently violated conventions” list. These are your highest-priority skills file entries.
Step 2: Document Your Architecture Invariants
Every project has things that must always be true and things that must never happen. These are your invariants. Write them as explicit rules:
## Invariants
- All API responses MUST use the envelope format in `pkg/api/response.go`. No exceptions.
- Database migrations MUST be backwards-compatible. No column drops or renames without
a two-phase migration plan.
- All new endpoints MUST have rate limiting configured in `config/ratelimits.yaml`.
- NEVER commit code that imports from `internal/legacy/`. That package is being deprecated.
Step 3: Encode Your “Tribal Knowledge”
Every team has knowledge that exists only in people’s heads. The deployment quirk that only the senior engineer knows about. The reason that one table has a weird schema. The library that looks abandoned but actually works perfectly and shouldn’t be replaced. Write it all down.
## Tribal Knowledge
- The `users` table has both `created_at` and `registered_at` columns. They mean different
things: `created_at` is when the row was inserted (might be a migration backfill),
`registered_at` is when the user actually signed up. Always use `registered_at` for
user-facing timestamps.
- We use `go-redis/v9` even though `v10` is available. The v10 migration broke our
connection pooling with ElastiCache. Don't upgrade without explicit approval.
- The `notifications` service has a 100ms SLA. Any new code path in this service
needs a benchmark test.
Step 4: Set Up a Review Cadence
Add a recurring calendar event — monthly is fine to start, quarterly once it stabilizes — to review the skills file as a team. Questions to ask:
- Have any conventions changed that aren’t reflected here?
- Have we seen new failure modes from the agent that should be addressed?
- Are any instructions no longer relevant?
- Has the file gotten too long? What can be moved to linked documents?
The Broader Implications for Software Engineering
I want to zoom out for a moment, because I think the skills file movement has implications beyond just making AI coding agents more useful.
Skills files force explicit knowledge documentation. Most engineering teams have a massive gap between how they actually work and how their documentation says they work. The skills file, because it has to be precise enough for an AI to follow, forces teams to be honest about their real conventions. I’ve seen teams discover contradictions in their own practices — “wait, do we use camelCase or snake_case for environment variables?” — that they’d never noticed because humans are good at pattern-matching through ambiguity.
Skills files are a new form of code review leverage. When the agent follows the skills file, the reviewer’s job shifts from “check for convention violations” to “check for logical correctness and architectural fit.” This is a strictly better use of senior engineer time. The mechanical stuff is handled by configuration; the judgment calls are handled by humans.
Skills files create a feedback loop for team standards. When a convention violation makes it through review, you don’t just fix the code — you update the skills file so it never happens again. This creates a continuously improving standards document that’s far more dynamic than a traditional style guide.
Skills files may reduce onboarding time for human developers too. This is speculative, but I’ve heard from several teams that their CLAUDE.md has become useful documentation for new human team members. Because it’s written to be precise and unambiguous, it often captures conventions more clearly than traditional docs. The new hire reads the CLAUDE.md and immediately understands not just what the conventions are, but why certain patterns are forbidden.
What This Means for Prompt Engineering
I’m going to say something controversial: traditional prompt engineering — the art of crafting the perfect one-shot prompt to get the output you want — is becoming a legacy skill for coding tasks. It’s not going away entirely, but its importance is declining rapidly in the context of AI-assisted software development.
The reason is simple: prompt engineering optimizes for a single interaction. Skills files optimize for every interaction. When you write a brilliant prompt that gets Claude to generate perfect API boilerplate, that prompt helps you once. When you encode the same knowledge in a CLAUDE.md, it helps you (and every other engineer on your team) every time they work with the agent in that codebase.
The analogy I keep coming back to is shell aliases versus shell scripts. Aliases are quick, personal, and ephemeral. Scripts are structured, shareable, and durable. Both have their place, but if you’re doing something more than once, you want a script. Skills files are the scripts of AI-assisted development. Prompts are the aliases.
This doesn’t mean prompt skill is worthless. You still need to communicate clearly with the agent within a session. But the heavy lifting — the context, the conventions, the constraints — should live in the skills file, not in your head.
Practical Table: Skills File Maturity Model
| Level | Description | Characteristics | Typical Outcome |
|---|---|---|---|
| 0 — None | No skills file | Agent relies on defaults and session prompts. Inconsistent output across sessions. High review burden. | 20-40% of AI-generated code needs rework |
| 1 — Basic | Generic instructions | File exists but contains mostly vague guidance. “Write clean code” level. Minimal project-specific content. | 15-30% rework rate |
| 2 — Structured | Project-specific conventions | Architecture documented. Naming conventions specified. Error handling patterns defined. Testing expectations clear. | 5-15% rework rate |
| 3 — Comprehensive | Operational knowledge encoded | Deployment constraints, performance requirements, tribal knowledge all captured. Regularly updated. Cross-references to detailed docs. | 3-8% rework rate |
| 4 — Adaptive | Feedback-driven evolution | Every review finding triggers a skills file update. Team retrospectives include skills file review. Metrics tracked on agent output quality. | <5% rework rate, improving continuously |
Most teams I’ve worked with are at Level 1 or 2. The teams getting outsized value from AI coding agents are at Level 3 or 4. The gap between these levels is not about AI capability — it’s about configuration quality.
Looking Forward: What Comes Next
The current GitHub trending explosion is just the beginning. Here’s what I expect to see in the next 6-12 months:
Industry-specific skills file templates. Right now, most skills files are written from scratch. I expect to see curated templates for common stacks: “Rails API Skills File,” “React + TypeScript Frontend Skills,” “Go Microservices Skills.” These will serve as starting points that teams customize for their specific needs, similar to how .gitignore templates work.
Skills file linters. Someone is going to build a tool that analyzes your CLAUDE.md and flags vague instructions, contradictions, and missing categories. Think of it as a linter for your linter configuration. The meta-ness is appropriate for the era.
Cross-agent portability. Right now, CLAUDE.md is specific to Claude Code, Cursor has its .cursorrules, and other tools have their own formats. I expect either a standard to emerge or translation tools that convert between formats. The knowledge encoded in these files is too valuable to be locked into a single tool.
Skills file marketplaces. The fact that obra/superpowers hit 154K stars tells you there’s massive demand for curated, high-quality skills content. I wouldn’t be surprised to see a “skills file marketplace” where teams share and sell specialized configurations, especially for domain-specific use cases like healthcare compliance, financial regulations, or gaming performance optimization.
Agent self-improvement loops. The most exciting possibility is agents that can identify their own failure modes and suggest skills file updates. “I notice I’ve been corrected about timezone handling three times this week. Should I add a skills entry about always using UTC internally?” This closes the feedback loop and makes the skills file a truly self-improving system.
The Counterarguments (And Why They’re Wrong)
I should address the skeptics, because I’ve heard the counterarguments:
“This is just documentation. We’ve always had documentation.” Yes, and most of it is ignored by humans and invisible to AI agents. The skills file format is specifically designed to be read by agents at the start of every session. It’s documentation with guaranteed readership and immediate application. That’s a fundamentally different thing.
“AI agents should be smart enough to figure this out from the codebase.” They should, and they’re getting better at it. But “inferring conventions from existing code” is an unreliable heuristic, especially in codebases with legacy patterns, mixed styles, or deliberate exceptions. Explicit configuration beats implicit inference every time, which is why we have linter configs even though linters could theoretically infer rules from existing code.
“This will become unnecessary as models improve.” I’ve been hearing “the next model version will fix this” for three years. Models are improving, but so are our expectations. The bar for “good enough” AI-generated code keeps rising. Skills files aren’t a stopgap — they’re an interface for communicating project-specific requirements that no amount of model capability can eliminate.
“It’s too much overhead.” Writing a basic skills file takes an afternoon. Maintaining it takes minutes per week. The return on that investment, measured in reduced review cycles, fewer rework rounds, and more consistent code, is enormous. If you can afford to write a Dockerfile, you can afford to write a CLAUDE.md.
The Bottom Line
The explosion of CLAUDE.md and skills file repos on GitHub this week isn’t a fad. It’s the engineering community collectively arriving at an insight that, in retrospect, was inevitable: AI coding agents are powerful tools that produce dramatically better output when given explicit operating manuals.
The three trending repos — obra/superpowers, forrestchang/andrej-karpathy-skills, and addyosmani/agent-skills — represent three complementary approaches to the same problem: universal methodology, targeted failure prevention, and production-grade best practices. Each is valuable independently; together, they form a blueprint for how to configure AI coding agents for serious engineering work.
My verdict is unambiguous: every team using AI coding agents should have a project-level skills file, and it should be treated with the same rigor as your CI configuration, your linter rules, and your deployment manifests. It’s not optional infrastructure. It’s essential infrastructure. The teams that figured this out six months ago are already shipping faster and with fewer defects than teams that are still relying on ad-hoc prompting. The data from Shopify and the early-adopter startups makes this clear.
The shift from prompting to configuration is happening right now. The question isn’t whether your team will adopt skills files. It’s whether you’ll adopt them proactively or be forced to adopt them after watching your competitors ship circles around you.
Start with the Karpathy skills as your universal layer. Add obra/superpowers for methodology. Layer in your project-specific conventions. Review and iterate monthly. In three months, you’ll wonder how you ever worked without it.
The era of “just prompt it better” is over. The era of structured agent configuration has begun. The GitHub trending page this week is proof.




Discussion