# Meaningful Identifiers

> Naming guidance for callback parameters and local variables in TypeScript. Use when writing or refactoring loops, array callbacks (map/filter/find/reduce), or local accumulators.

- Skill: `hashintel/meaningful-identifiers` (Agent Skill)
- Install (CLI): `npx skillmds@latest add hashintel/meaningful-identifiers`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hashintel/meaningful-identifiers/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: AGPL-3.0
- Author: hashintel (https://skillmd.com/u/hashintel)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/hashintel/meaningful-identifiers

---


# Meaningful identifiers

Callback parameters and local variables must describe the value they hold.

## Rules

- Name array callback params after the element's domain type:
  `batches.map((batch) => …)`, `bins.filter((bin) => …)`,
  `checkpoints.find((checkpoint) => …)`. Never reuse `right`/`left`/`column`
  for values that are not sort operands or table columns.
- Name `reduce` accumulators after what they accumulate: `sum`/`total` for a
  running total, not `step`.
- Name percentile/ratio arguments for the quantity they represent
  (`percentileRank`, `multiplier`), not an unrelated domain noun.

## Leave correct uses untouched

- Sort comparators: `(left, right) => left - right`.
- `(column) => column.key` over a real `.columns` array.
- `for (const row of …Rows)` where the items are genuinely rows.

