Agent Skills in Claude Code and Visual Studio Code: Setup, Benefits, Risks, and a Step-by-Step Example

Image
 AI coding assistants are useful for one-off questions, but many development tasks are not one-off tasks. A team may follow the same testing procedure before every release, use a specific format for code reviews, or require certain checks whenever a database migration is created. Repeating those requirements in every prompt is inefficient. Putting all of them into a permanent instruction file is not always ideal either, because the assistant may receive irrelevant information for tasks that do not need it. This is the problem that Agent Skills are designed to solve. A skill packages reusable instructions, supporting files, examples, and optional scripts into a folder. Claude Code or GitHub Copilot in Visual Studio Code can discover that folder and load its contents when the current task matches the skill’s purpose. Both environments support the open Agent Skills format, which makes it possible to share some skills across tools. This guide explains what skills are, how they differ ...

Mindset Matters: Code Review as Collaboration, Not Criticism

Mindset Matters: Code Review as Collaboration, Not Criticism

There's a reason code reviews make developers nervous, especially junior developers. The moment you post a PR, your code becomes public property. Senior developers review it. Team leads review it. The flawed parts are revealed to everyone. This feeling of exposure and vulnerability creates defensiveness — a natural human reaction to perceived judgment.

And defensive developers don't grow as fast. They become reluctant to post PRs, they argue rather than listen, they stop asking questions, they work in isolation to avoid scrutiny.

Code Review is Collaboration, Not Evaluation



The root of many review culture problems is this fundamental misperception: many developers see code reviews as evaluations of their programming abilities. "Are they judging my competence? Is my skill level being questioned? Am I good enough?"

But this is a misunderstanding that costs teams dearly. Code review is collaboration toward a shared goal.

Criticism of the code is not criticism of the person. This is easier said than done. When you've spent days working on code and someone points out a flaw, the instinct is to defend it, to explain why you made that choice, to argue that it's not as bad as they think. But here's what senior developers understand: code is a means to an end, not an end in itself. If changing it makes it better, safer, more maintainable — that's a win. The code doesn't belong to you; it belongs to the project and the team.

Compare these two reactions to the same technical comment:

Defensive response: "I wrote it this way intentionally. There isn't much data right now, so I don't think performance will be an issue."

Collaborative response: "Good point. The data set is small now, but it could definitely become a bottleneck as we grow. I'll refactor it to use a HashMap approach. Thank you for catching this early."

The first response closes conversation and creates tension. The second opens dialogue and moves the work forward. Notice the second response doesn't just accept the feedback — it explains understanding ("could become a bottleneck") and takes ownership of the fix.

The Reviewer's Responsibility

Good collaboration isn't only the author's job. Reviewers have significant responsibilities too.

If a reviewer leaves a sharp, critical comment and thinks "I'm just being honest," that's not honesty — it's a lack of consideration. The goal of code review is to improve code. That requires the author to be open to comments. Even brilliant reviews fail to achieve their purpose if they make the author defensive or discouraged.

Reviewers should:

  • Try to understand the author's perspective first. Even code that looks strange or suboptimal usually has a reason behind it. Legacy compatibility requirements, deadline pressures, domain knowledge the reviewer doesn't have, constraints from other systems — ask before judging. "Is there a reason you chose this approach?" often reveals important context.
  • Distinguish the weight of different comments. Not all comments are of equal importance. Security vulnerabilities and variable name styles are different categories. Clearly mark [Required] versus [Suggestion] so the author knows what's blocking versus what's optional.
  • Don't be stingy with praise. Reviews that only point out problems exhaust and demoralize authors over time. Well-written parts, clever approaches, clean logic, good error handling — when you see these things, put them into words. Explicit recognition reinforces good patterns.

Psychological Safety and High Performance

Google conducted an extensive study called Project Aristotle starting in 2012, analyzing 180+ teams to find the characteristics of high-performing teams. They expected to find that success correlated with IQ, experience, educational background, and technical abilities.

They were wrong.

The most important commonality among high-performing teams was psychological safety — the belief that team members won't be penalized or humiliated for speaking up with questions, concerns, or admitting mistakes.

In teams with low psychological safety, you see predictable patterns:

  • Authors avoid opening small PRs, instead batching many changes to "reduce exposure" and scrutiny
  • Junior developers don't ask questions, silently modifying code they don't understand to avoid looking incompetent
  • Reviewers approve without actually reading carefully to save time and avoid uncomfortable conversations
  • Conversations disappear; only formal approvals and sign-offs remain
  • Innovation slows because people protect their ideas rather than sharing early and getting feedback

These teams don't move faster — they slow down dramatically.

Building Psychological Safety Through Small Actions

Psychological safety isn't declared from on high; it's created daily through consistent small actions:

  • "I made this mistake before." When senior developers or team leads share their past errors in code reviews or team discussions, it signals that perfection isn't expected and mistakes are part of learning. "I also hard-coded the JWT secret when I was starting" is more powerful than a thousand lectures.
  • Start with a question. Even if code looks clearly wrong, ask first: "Is there a reason you chose this method? I might be missing important context." This posture invites conversation rather than starting with judgment.
  • Leaders admit mistakes publicly. When a team lead or senior says, "I missed this critical issue in my review last week — I'll be more careful next time," the entire team's psychological safety increases. It demonstrates that even experienced reviewers make mistakes.
  • Respond seriously to questions. When junior developers ask questions in code review, answer them thoroughly and respectfully, not dismissively. This encourages more questions.

These aren't just nice social gestures. They're infrastructure for learning and team productivity.

The Impact on Performance and Retention

Research from Gallup and CultureAmp shows that teams with high psychological safety:

  • Ship features 40% faster (less time spent on rework and conflict)
  • Have 50% lower turnover (people stay because they feel safe)
  • Report 70% higher engagement (they care about the work)
  • Have 30% fewer bugs (people catch issues without fear of judgment)
  • Have better hiring (high psychological safety attracts top talent)

These aren't soft benefits. They're hard business metrics. A team with high psychological safety and poor code review culture will still outperform a team with low psychological safety and excellent code review processes. Culture matters more than process.

Recognizing Psychological Safety Problems

How do you know if your team lacks psychological safety? Watch for these warning signs:

  • Silent agreement: PRs are always approved without comments, or only with trivial changes. No one is really reviewing because people fear conflict.
  • Large, infrequent PRs: Authors batch work to "reduce exposure" to scrutiny. Smaller, more frequent PRs would be healthier, but people avoid them to limit judgment.
  • No disagreement: Reviewers never push back. Everyone agrees with everything. That's not collaboration; it's theater.
  • Defensive responses: When junior developers receive feedback, they argue or disappear. They don't engage or ask for clarification.
  • Questions disappear: Juniors stop asking [Question] comments in code review. They just silently change code without understanding why.
  • Senior developers hoard knowledge: Experienced people write code in ways they know only they understand. They don't explain or simplify for others.

If you see these patterns, psychological safety is low and team performance will suffer as a result.

Asynchronous Reviews: Closing the Tone Gap

Most code reviews happen asynchronously. The author posts a PR; the reviewer comments hours or days later. Without tone of voice, facial expressions, or real-time clarification, words are easily misread.

Reviewer intent: "I think this would be cleaner if refactored :)"
Author reads it as: "This is badly written. You should fix this."

Bridge this gap with:

  • Use emojis and emoticons appropriately. "Please fix this πŸ™" and "Please fix this" create different emotional tones when read asynchronously.
  • State comment weight explicitly. "This is just my preference, not something that blocks approval" changes how the comment is received.
  • Have complex conversations synchronously. If a comment is long or likely to be misunderstood, a 5-minute Slack conversation or video chat beats 10 PR comments going back and forth.

Measuring Psychological Safety

It's hard to measure, but you can observe it. In a team with high psychological safety:

  • People ask questions openly without fear of appearing incompetent
  • Junior developers challenge senior developers respectfully
  • Mistakes are discussed as learning opportunities, not failures
  • Code reviews are conversations, not critiques
  • People take risks and try new things
  • Turnover is low because people feel valued

These indicators tell you more than any survey could. You can feel the difference between a team with high psychological safety and one without. The first feels energetic and engaged. The second feels tense and guarded.

Team Culture as Competitive Advantage

Here's what many organizations don't realize: code review culture is a genuine competitive advantage.

Teams with high psychological safety catch bugs faster because people aren't afraid to flag issues. They innovate more because ideas are shared and refined early. They retain talent better because people feel respected and valued. They also happen to be more fun to work in.

The fastest teams aren't the ones with the most skilled individual developers. They're the teams with cultures of trust and collaboration where knowledge is shared freely, mistakes are treated as learning opportunities, and everyone's ideas have value regardless of seniority.

Starting with your next code review, remember this: Fix code, but don't attack people. Separate the code from the coder.

Technical reviews work best when there's underlying trust that reviewer and author are working toward the same goal: better code, stronger team, faster learning, safer systems.

Comments

Popular posts from this blog

Claude Code Multi-Agent Setup for Beginners: Models, Roles, and Your First Project

The Limits and Future of Vibe Coding

How to Test and Deploy Your First Vibe-Coded App