Skip to content
AI & Agents
Agent

quality-code-comments

Keep comments limited and avoid obvious ones. Comments should explain "why" not "what" - the code itself should be clear enough to explain what it does.

From plugin
caldiy
47k95 skills95 agents
Install
$ npx -y skills add calcom/cal.com --agent claude-code

How it fires

How this agent gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.

Context preview

The summary Claude sees to decide when to auto-load this agent.

Keep comments limited and avoid obvious ones. Comments should explain "why" not "what" - the code itself should be clear enough to explain what it does.

Agent definition

quality-code-comments.md
title: Code Comment Guidelines
impact: MEDIUM
impactDescription: Excessive comments add noise; missing comments hurt maintainability
tags: comments, documentation, readability

Code Comment Guidelines

General Principle

Keep comments limited and avoid obvious ones. Comments should explain "why" not "what" - the code itself should be clear enough to explain what it does.

When to Comment

  • Business decisions or domain logic that isn't obvious from the code
  • Workarounds or hacks with explanation of why they're needed
  • Non-obvious performance optimizations
  • Important security considerations
  • Troubleshooting context (e.g., why a particular approach was chosen after hitting issues)

If none of these apply, skip the comment entirely. The function name, parameters, and return type should speak for themselves.

When NOT to Comment

// ❌ Bad - Obvious comment
// Get the user
const user = await getUser(userId);

// ❌ Bad - Restating the code
// Loop through bookings
for (const booking of bookings) {
  // Process booking
  processBooking(booking);
}

Good Examples

// ✅ Good - Explains why, not what
// We need to fetch availability before slots because the timezone
// conversion depends on the user's configured availability rules
const availability = await getAvailability(userId);
const slots = convertToSlots(availability, timezone);

// ✅ Good - Documents a non-obvious constraint
// Google Calendar API has a 2500 event limit per sync request
const BATCH_SIZE = 2500;
Read more
Ships withcaldiy

Scheduling infrastructure for absolutely everyone.

Get the whole plugin