Skip to content
All posts

The #5 Claude Skills That Help Me Become a Better Coder

May 29, 2026·Read on Medium·

Not AI magic. Specific skills, specific problems, and how I actually use them daily.

There is a version of AI-assisted coding where you type “build me a feature” and watch code appear. I tried that version. It produces code that looks right, compiles clean, and introduces three architectural decisions you didn’t agree to and can’t easily undo.

The Claude skills that actually changed how I work are not the ones that write more code faster. They are the ones that slow me down at the right moments, surface information I was missing, and catch problems I would have shipped without noticing.

These five are the ones I keep coming back to.

1. Grill Me (mattpocock/skills)

What it is: A Claude Code skill from Matt Pocock’s public mattpocock/skills repository. When invoked, it instructs Claude to stop and interview you about your feature or design before writing a single line of code. Not one question. Not three. It walks down the entire decision tree: one branch at a time, suggesting its own preferred answer based on what it already knows about your codebase.

Why I use it: I used to start a Claude Code session with something like “Add a webhook retry mechanism to the payment service.” Claude would immediately write 200 lines. Half of it was fine. The other half had assumed I wanted exponential backoff, a database-backed retry log and a separate queue channel. I hadn’t decided any of that. Grill Me forces the session to start differently. By the time the first line of code appears, there are no open questions about the interface, the failure behaviour, or the scope boundary.

In practice, a Grill Me session on a moderately complex feature runs 16 to 30 questions. That sounds like a lot. But those 20 minutes of structured clarification consistently replace 90 minutes of code that looked done and wasn’t. The questions it surfaces are not trivial either: what happens when the third-party API is unavailable? Should this operation be reversible? Who is the consumer of this interface, and does that change the shape of the response? These are questions I would have answered implicitly, mid-implementation, in ways that later became difficult to change.

Install:

/skill install mattpocock/skills

Then invoke with /grill-me before any feature build.

2. Frontend Design (anthropics/claude-code)

What it is: An official Anthropic plugin hosted in the public anthropics/claude-code repository. It activates automatically when you ask Claude to build frontend UI, and it commits Claude to specific design decisions before generating code: a visual direction, a typography stack (with Google Fonts fluid sizing), CSS layout strategy using grid-template-areas, surface treatment and motion behaviour.

Why I use it: I am a backend developer. PHP and Laravel are where I spend most of my time. When I have to produce a frontend, my default output is functional in the way that government websites are functional. The frontend-design skill does not make me a better designer. It makes the AI a significantly more opinionated one, which turns out to be what I actually needed.

The difference between Claude without this skill and Claude with it is not a styling question. Without it, the model averages toward Bootstrap-ish centre-aligned blandness because that is what most training data looks like. With the skill loaded, it commits to a direction first, then generates tokens consistent with that choice. The output has an actual point of view.

For anyone writing primarily backend code who occasionally needs to ship a dashboard or an internal tool, this is worth installing. I have stopped manually specifying fonts, picking colour schemes, or describing layout preferences in prompts for internal tooling. The skill handles those decisions consistently and produces something I am not embarrassed to show to a client. For a PHP-first developer who used to dread anything that involved CSS, that is not a small thing.

Install:

/plugin install anthropics/claude-code

Then select frontend-design from the plugin list.

3. Context7

What it is: An MCP server built by Upstash, available as a Claude plugin at claude.com/plugins/context7. It intercepts any prompt where you write "use context7" and, before Claude responds, fetches the current version-specific documentation for the library you are asking about. The result goes into the context window alongside your prompt. Claude then generates code from the actual current docs, not from training data that might be months or years out of date.

Why I use it: LLMs confidently generate code for APIs that were deprecated two versions ago. The function exists, it has the right general shape, and it does not work because the parameter was renamed in 3.1.0 and the old signature was removed in 4.0.0. This is not a rare edge case. It happens regularly enough with Laravel, Livewire and any package with an active release cadence.

Context7 does not solve the underlying training data problem. But it sidesteps it. I add “use context7” to any prompt where version accuracy matters, and the model pulls the right docs before generating anything. The difference is most obvious with PHP package APIs and anything touching newer JavaScript runtime features.

The usage pattern is as simple as it looks:

“Refactor the export service to use the new Laravel Excel queue approach. use context7”

The MCP layer handles the rest. Context7 resolves the library name to a versioned identifier, fetches the relevant documentation section, and includes it in the context before Claude generates anything. You see slightly longer response times on the first query per library. The trade-off is code that actually runs against the version installed in your project rather than the version the model last trained on.

The libraries I rely on it for the most are anything with an active release schedule: Livewire, Inertia, newer Laravel features that postdate most model training windows, and JavaScript tooling that moves fast enough that the “correct” API from a year ago is now the deprecated one.

Install: Add via Claude settings or claude.com/plugins/context7. The plugin is free and open-source under the Upstash organisation.

4. Laravel Boost

What it is: A free, open-source Composer package maintained by the Laravel team. When installed in your local development environment, it runs an MCP server inside your project and exposes a set of tools that let your AI coding agent inspect your actual application: read logs, run queries, scan the codebase, extract config, and access a documentation API built on a knowledge base of over 17,000 pieces of Laravel-specific information.

Why I use it: The frustration it solves is specific and familiar to anyone who has used a general-purpose AI model on a Laravel codebase for more than a week. The model knows what Eloquent is. It does not know that your project has a specific query scope convention, a custom base model, or a service container binding pattern your team has used since 2022. So it writes code that is technically valid Laravel and wrong for your project.

Laravel Boost changes the information available to the model. Instead of generating code from general Laravel knowledge, it can inspect your actual models, check your actual logs, and pull documentation from a knowledge base tuned to the Laravel ecosystem rather than one averaged across every PHP project in training data.

The Agent Skills layer is particularly useful. Skills load on-demand: when you ask for Livewire work, the Livewire skill loads; when you move to Pest tests, the Pest skill takes over. The model has specific, current context for each task rather than one large upfront dump of everything.

For a Laravel-primary developer, this is the one I would install before any of the others.

Install:

composer require laravel/boost --dev
php artisan boost:install

Then add the MCP server to your Claude Code or Cursor configuration following the setup at laravel.com/docs/boost.

5. Security Audit (afiqiqmal/claude-security-audit)

What it is: A Claude Code slash command that runs a structured white-box security audit on your project. It auto-detects your framework and loads a tailored checklist. For Laravel specifically, that means Eloquent mass assignment vectors, Sanctum and Passport token handling, queue job deserialization and .env exposure patterns, alongside the base checks. Findings are mapped to OWASP Top 10:2025, NIST CSF 2.0, CWE Top 25, OWASP ASVS 5.0 and PCI DSS 4.0.1. There are over 850 checks in the base set.

The fifth is a bit self-serving: I built this one.

Why I built it and why I still use it: The honest reason I built it was that I kept shipping code I thought was secure and later realising it wasn’t. Not catastrophically. Nothing made the news. But the gap between “I reviewed this” and “I reviewed this against a structured checklist with 850 specific patterns” is not small. I kept missing the same class of issues: subtle mass assignment gaps, auth checks that worked in the happy path and failed in specific edge cases, headers that were present in API responses and should not have been.

The slash command does not replace a penetration test. It does replace the situation where you push code that a structured review would have caught in ten minutes, because you didn’t have a structured review process fast enough to run before every PR. Running it before a merge takes less time than writing the PR description, and it surfaces findings that a code review from a peer would miss because most reviewers are not thinking about OWASP ASVS 5.0 while reading a diff.

Install:

bash

curl -fsSL https://raw.githubusercontent.com/afiqiqmal/claude-security-audit/main/install.sh | bash

After install, run /security-audit from any Claude Code session. The checklist is available globally across all your projects.

The Pattern Behind All Five

These are not productivity multipliers in the sense of writing more code per hour. The pattern they share is simpler: each one adds a constraint at a moment where unconstrained AI output tends to go wrong.

Grill Me constrains the scope of what gets built before implementation starts. Frontend Design constrains the aesthetic direction before CSS gets generated. Context7 constrains the model to current library documentation rather than outdated training data. Laravel Boost constrains code generation to the patterns of your actual application rather than generic Laravel conventions. Security Audit constrains deployment by forcing a coverage check before the PR closes.

The version of AI-assisted coding I was disappointed by had no friction anywhere. You could go from vague idea to deployed code without the model ever asking whether the idea was the right one, whether the API was still the right API, or whether the code had the class of issues that get expensive after release. These five add friction at the moments where friction prevents a worse outcome.

If you are using Claude Code and none of these are installed, start with Grill Me. The conversation it forces before your next feature build will tell you more about your own requirements than the code review will.

A message from our Founder

Hey, Sunil here. I wanted to take a moment to thank you for reading until the end and for being a part of this community. Did you know that our team run these publications as a volunteer effort to over 3.5m monthly readers? We don’t receive any funding, we do this to support the community.

If you want to show some love, please take a moment to follow me on LinkedIn, TikTok, Instagram. You can also subscribe to our weekly newsletter. And before you go, don’t forget to clap and follow the writer️!

Found this helpful?

If this article saved you time or solved a problem, consider supporting — it helps keep the writing going.

Originally published on Medium.

View on Medium
The #5 Claude Skills That Help Me Become a Better Coder — Hafiq Iqmal — Hafiq Iqmal