---
name: comment-hygiene
description: Use when the user asks how to write code comments, where to place them, or wants to review, reduce, rewrite, or relocate existing code comments.
---

# Comment Hygiene

## Response Contract

- Deliverable: return the updated code with the final comment text and placement.
- Chat output: no additional output beyond the deliverable.

## Skill Model

This model classifies what can be commented. It does not imply quality.

### Comment Attachment Sites

- **Surface**
  Public entry points and externally visible surfaces.

- **Data**
  Data shapes and schemas.

- **Rule**
  Rule-bearing logic and decision points.

- **External**
  External coupling and external constraints.

## Standards

Each standard is defined once here and referenced elsewhere by its ID.

- **site.assign — Assign a site**
  Every comment must be assignable to exactly one attachment site: Surface, Data, Rule, or External.

- **site.focus.surface — Surface focus**
  Surface comments cover externally visible meaning and caller-facing constraints.

- **site.focus.data — Data focus**
  Data comments cover representation meaning and structural constraints.

- **site.focus.rule — Rule focus**
  Rule comments cover rule intent and rule boundaries.

- **site.focus.external — External focus**
  External comments cover external assumptions and external constraints.

- **site.closest — Place at the closest site**
  Place the comment at the closest location where a reader needs it for the assigned site and focus.

- **comment.no_narration — No narration**
  Remove comments that restate adjacent code or narrate straightforward steps.

- **comment.nonoverlap — No overlap**
  Avoid multiple comments that cover the same point. If one note spans multiple sites, split it so each comment has one site and one focus.

- **comment.precise — Precise and scoped**
  Use specific terms and explicit conditions. Keep scope bounded to what the assigned site and focus need.

- **comment.stable — Prefer stable content**
  Prefer describing intent, constraints, and externally relevant meaning over volatile implementation detail.

- **conflicts.priority — Priority rule**
  When standards conflict, apply this priority order:

  1. `comment.no_narration`
  2. `site.assign` and `site.focus.*`
  3. `comment.nonoverlap`
  4. `site.closest`
  5. `comment.precise`
  6. `comment.stable`

## Workflow

1. Enumerate existing comments and planned comments.
2. Assign each comment to exactly one attachment site and confirm it matches the site focus. Apply `site.assign` and `site.focus.*`.
3. Delete narration and restatement. Apply `comment.no_narration`.
4. De-duplicate overlapping points. Apply `comment.nonoverlap`.
5. Relocate comments to the closest location where readers need them. Apply `site.closest`.
6. Rewrite remaining comments to be specific and bounded. Apply `comment.precise`.
7. Prefer stable content over volatile detail. Apply `comment.stable`.
8. Run acceptance checks.

## Acceptance Criteria

A revision is complete only if all checks pass.

- **Response**: Output satisfies the Response Contract.
- **Standards satisfied**: `site.assign`, `site.focus.*`, `site.closest`, `comment.no_narration`, `comment.nonoverlap`, `comment.precise`, `comment.stable`, `conflicts.priority`.
