code-naming

code-naming is a skill for Claude Code, Codex from luabagg/agent-skills. It costs 68 tokens per session (2,330 once invoked), scanned A, original, MIT.

A naming guide for TypeScript code, covering exports, APIs, types, functions, variables, flags, fields, and constants.

In plain words
What is it for?
Use it to propose or review names and renames in a TypeScript codebase, especially for public interfaces and values read in conditions or logs.
Why use it?
It helps prevent names that are vague, misleading, or hard to understand where they are used. It also helps decide when a rename should split a function into separate responsibilities.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to propose or review names and renames in a TypeScript codebase, especially for public interfaces and values read in conditions or logs.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/luabagg/agent-skills/code-naming
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add luabagg/agent-skills --skill code-naming
Clone the repo
git clone --depth 1 https://github.com/luabagg/agent-skills

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for code-naming

README.md
[![agentmods](https://agentmods.dev/badge/skills/luabagg/agent-skills/code-naming/github.svg)](https://agentmods.dev/skills/luabagg/agent-skills/code-naming)
Your own site
<a href="https://agentmods.dev/skills/luabagg/agent-skills/code-naming"><img src="https://agentmods.dev/badge/skills/luabagg/agent-skills/code-naming/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for code-naming

Your own site · 80×15
<a href="https://agentmods.dev/skills/luabagg/agent-skills/code-naming"><img src="https://agentmods.dev/badge/skills/luabagg/agent-skills/code-naming.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 68 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,330 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00068 $0.02330
Opus 5.5 $0.00027 $0.00932
Sonnet 5.5 $0.00014 $0.00466
Haiku 4.5 $0.00007 $0.00233

Measured 19d ago against content hash e7803ebcfda5, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

code-naming scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 19d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/code-naming/SKILL.md · 110 lines

How it starts

The opening of the file, as written. The whole thing — 110 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Code Naming

A name is read where it is used: in an import, a call, an if, a log line. The definition, the file path, and the comment are not there. Choose the name for that place.

Find a name

  1. Write the complete fact as one sentence in the product's words. Say what happened, who did it, and relative to what, when the reader acts on each part. "Someone other than this call fulfilled or expired the item." If the sentence holds two separate answers, the function answers two questions. Split it with cognitive-refactor before you name it. The sign: a result with two fields, and a parameter that only one field uses. Two steps of one action are one answer: signInAndSaveSession.
  2. Write the line where the name is read. For an export, write the call without the import path. For a field, write it after its container. For a boolean, write the if. if (fulfilledOrExpired.___)
  3. The name is the part of the sentence that the line does not say yet. The container says "fulfilled or expired". The rest is "by someone other than this call": byOtherActor.
  4. Take each word from the codebase: a type, a union member, a reason code, a log line, a CLI flag, a README. Use one word for one idea. If the module says "result", do not name the same thing "read". When the codebase has two words for one idea, use the one that names the effect a person sees, not the mechanism: "wait time", not "cooldown".
  5. Put each candidate on the line from step 2. Compare the line with the sentence from step 1.
Candidate Fails because
byThisCall It is true for the usual case, so the caller writes if (!fulfilledOrExpired.byThisCall). Make the flag true for the case the caller branches on.
wasAlready It is incomplete. Already what, and by whom?
alreadyClosed It repeats the container: "closed" means "fulfilled or expired". Only "already" is new, and it says when, not who.
expiredByOtherAgent It is narrower than the fact. It leaves out fulfillment, and "agent" leaves out a person or a script.
beforeThisCall It says when. The reader asks who.
byOtherActor Passes. "Actor" covers an earlier run, a person, and a script.

Read the full file on GitHub · 110 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 19d ago First seen · 110 lines · 68 tokens per session scan A e7803ebcfda5

Subscribe to this mod's changes

code-naming is a skill published in the GitHub repository luabagg/agent-skills (3 stars, last pushed 12d ago), licensed MIT. It adds 68 tokens to every session and 2,330 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-28.

Related

Other skills, from other repositories

developing-genkit-js

Develop AI-powered applications using Genkit in Node.js/TypeScript. Use when the user asks about Genkit, AI agents, flows, or tools in JavaScript/TypeScript, or when encountering Genkit errors, validation issues, type errors, or API problems.

google/skills · 60 tokens

migrating-mastra-to-pydantic-ai

Migrate TypeScript Mastra applications to Python with Pydantic AI and, only when needed, Pydantic AI Harness. Use when source code imports @mastra/ or relies on Mastra agents, tools, workflows, memory, processors, streaming, approvals, skills, or subagents.

pydantic/pydantic-ai · 73 tokens

migrating-vercel-ai-sdk-and-eve-to-pydantic-ai

Migrate TypeScript Vercel AI SDK or Eve applications to Python with Pydantic AI and, only when needed, Pydantic AI Harness. Use when source code imports ai, @ai-sdk/, or eve, or relies on generateText, streamText, ToolLoopAgent, useChat, Eve agents, tools, skills, subagents, approvals, sessions, channels, schedules…

pydantic/pydantic-ai · 107 tokens

migrating-pi-to-pydantic-ai

Migrate TypeScript Pi coding-agent applications, extensions, or packages to Python with Pydantic AI and Pydantic AI Harness. Use when source code imports @earendil-works/pi-, calls createAgentSession, registers Pi extensions, or relies on Pi tools, hooks, skills, sessions, compaction, providers, TUI, RPC, or packages.

pydantic/pydantic-ai · 88 tokens

antfu

Anthony Fu's opinionated tooling and conventions for JavaScript/TypeScript projects. Use when setting up new projects, configuring ESLint/Prettier alternatives, monorepos, library publishing, or when the user mentions Anthony Fu's preferences.

antfu/skills · 52 tokens

setup-ts-deep-modules

A setup for TypeScript packages that hides their implementation behind files at the package root. Dependency-cruiser checks that outside code uses these entry points, prevents dependency cycles, and keeps internal folders private.

devcxl/mattpocock-skills-zh · 49 tokens