Agent skill

Typescript Clean Code

by ertugrul-dmr in ertugrul-dmr/clean-code-skills

A skill your agent uses when writing, fixing, editing, reviewing, or refactoring any TypeScript code.

MITAuto-check passedDevelopment

Install Typescript Clean Code

skills CLI
$ npx skills add ertugrul-dmr/clean-code-skills --skill typescript-clean-code -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ertugrul-dmr/clean-code-skills typescript-clean-code --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ertugrul-dmr/clean-code-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/typescript/typescript-clean-code .claude/skills/typescript-clean-code && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
typescript-clean-code
GitHub stars
196
Token cost
~1.1k tokens
SKILL.md length
551 words
Files
1
Skills in repo
14
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when writing, fixing, editing, reviewing, or refactoring any TypeScript code.

  • Refactoring any TypeScript code
  • SKILL.md covers Comments (C1-C5), Environment (E1-E2), Functions (F1-F4) and General (G1-G36), plus 6 more sections
  • Calls npm
  • Tasks that involve Code quality

What it does

Typescript Clean Code is an agent skill from ertugrul-dmr/clean-code-skills. Use when writing, fixing, editing, reviewing, or refactoring any TypeScript code. Enforces Robert Martin's complete Clean Code catalog—naming, functions, comments, DRY, and boundary conditions.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Code quality. It works with TypeScript. The licence is MIT.

When your agent uses it

  • Refactoring any TypeScript code
  • Tasks that involve Code quality

Example prompts

  • “/typescript-clean-code”

What it can do on your machine

Read from SKILL.md and the folder at commit 1b6b3cc. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Typescript Clean Code loads about 1.1k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 551 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~54
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ertugrul-dmr/clean-code-skills at commit 1b6b3cc, republished under its MIT licence (© ertugrul-dmr). 551 words, ~1,120 tokens.

Download SKILL.mdSave it as .claude/skills/typescript-clean-code/SKILL.md (or your agent's skills folder).
name
typescript-clean-code
description
Use when writing, fixing, editing, reviewing, or refactoring any TypeScript code. Enforces Robert Martin's complete Clean Code catalog—naming, functions, comments, DRY, and boundary conditions.

Clean TypeScript: Complete Reference

Enforces all Clean Code principles from Robert C. Martin's Chapter 17, adapted for TypeScript.

Comments (C1-C5)

  • C1: No metadata in comments (use Git)
  • C2: Delete obsolete comments immediately
  • C3: No redundant comments
  • C4: Write comments well if you must
  • C5: Never commit commented-out code

Environment (E1-E2)

  • E1: One command to build (npm run build)
  • E2: One command to test (npm test)

Functions (F1-F4)

  • F1: Maximum 3 arguments (use parameter objects/interfaces for more)
  • F2: No output arguments (return values)
  • F3: No flag arguments (split functions)
  • F4: Delete dead functions

General (G1-G36)

  • G1: One language per file
  • G2: Implement expected behavior
  • G3: Handle boundary conditions
  • G4: Don't override safeties
  • G5: DRY - no duplication
  • G6: Consistent abstraction levels
  • G7: Base classes don't know children
  • G8: Minimize public interface
  • G9: Delete dead code
  • G10: Variables near usage
  • G11: Be consistent
  • G12: Remove clutter
  • G13: No artificial coupling
  • G14: No feature envy
  • G15: No selector arguments
  • G16: No obscured intent
  • G17: Code where expected
  • G18: Prefer instance methods
  • G19: Use explanatory variables
  • G20: Function names say what they do
  • G21: Understand the algorithm
  • G22: Make dependencies physical
  • G23: Prefer polymorphism to if/else
  • G24: Follow conventions (TypeScript style guide + ESLint/Prettier)
  • G25: Named constants, not magic numbers
  • G26: Be precise
  • G27: Structure over convention
  • G28: Encapsulate conditionals
  • G29: Avoid negative conditionals
  • G30: Functions do one thing
  • G31: Make temporal coupling explicit
  • G32: Don't be arbitrary
  • G33: Encapsulate boundary conditions
  • G34: One abstraction level per function
  • G35: Config at high levels
  • G36: Law of Demeter (no train wrecks)

TypeScript-Specific (TS1-TS3)

These adapt the Java-specific rules (J1-J3) to TypeScript conventions:

  • TS1: Keep imports explicit and stable; avoid namespace-style overuse and implicit dependencies
  • TS2: Use enums or literal union types, not magic constants
  • TS3: Type public interfaces explicitly and avoid any in boundaries

Names (N1-N7)

  • N1: Choose descriptive names
  • N2: Right abstraction level
  • N3: Use standard nomenclature
  • N4: Unambiguous names
  • N5: Name length matches scope
  • N6: No encodings
  • N7: Names describe side effects
Show full SKILL.md (224 more words)Show less

Tests (T1-T9)

  • T1: Test everything that could break
  • T2: Use coverage tools
  • T3: Don't skip trivial tests
  • T4: Ignored test = ambiguity question
  • T5: Test boundary conditions
  • T6: Exhaustively test near bugs
  • T7: Look for patterns in failures
  • T8: Check coverage when debugging
  • T9: Tests must be fast (< 100ms each)

Quick Reference Table

CategoryRuleOne-Liner
CommentsC1No metadata (use Git)
C3No redundant comments
C5No commented-out code
FunctionsF1Max 3 arguments
F3No flag arguments
F4Delete dead functions
GeneralG5DRY—no duplication
G9Delete dead code
G16No obscured intent
G23Polymorphism over if/else
G25Named constants, not magic numbers
G30Functions do one thing
G36Law of Demeter (one dot)
NamesN1Descriptive names
N5Name length matches scope
TestsT5Test boundary conditions
T9Tests must be fast

Anti-Patterns (Don't → Do)

❌ Don't✅ Do
Comment every lineDelete obvious comments
Helper for one-linerInline the code
import * as utils everywhereNamed imports for explicit dependencies
any in public APISpecific types or unknown + narrowing
Magic number 86400const SECONDS_PER_DAY = 86400
process(data, true)processVerbose(data)
Deep nestingGuard clauses, early returns
obj.a.b.c.valueobj.getValue()
100+ line functionSplit by responsibility

AI Behavior

When reviewing code, identify violations by rule number (e.g., "G5 violation: duplicated logic"). When fixing or editing code, report what was fixed (e.g., "Fixed: extracted magic number to SECONDS_PER_DAY (G25)").

© ertugrul-dmr, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/typescript/typescript-clean-code of ertugrul-dmr/clean-code-skills.

Open the folder on GitHubat commit 1b6b3cc

Compare with similar skills

Typescript Clean Code next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Typescript Clean Code compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Typescript Clean Code this skillertugrul-dmr/clean-code-skills196—~1.1kAutomated safety check: PassMIT
Install Anti-Slop Oxlint Rulesdmmulroy/anti-slop5.3k1 repos~2.2kAutomated safety check: PassMIT
Code Reviewerjewbetcha/opentrace1162 repos~1.1kAutomated safety check: NotesMIT
Coding Standardskurealnum/dotfiles29017 repos~2.9kAutomated safety check: PassNone
Code Qualityredis/RedisInsight8.9k—~1.2kAutomated safety check: PassCustom licence
Cross-Language Coding Standardszereight/gitlab-mcp2k1 repos~1.4kAutomated safety check: PassMIT

Similar skills

  • Installs, updates or migrates the vendored anti-slop Oxlint plugin in a repository, keeping local rule changes and the plugin's license and provenance files.

    5.3k GitHub starsUsed in 1 repo~2.2k tokens
    DevelopmentAuto-check passed
  • Code Reviewer

    jewbetcha/opentrace

    Comprehensive code review skill for TypeScript, JavaScript, Python, Swift, Kotlin, Go.

    116 GitHub starsUsed in 2 repos~1.1k tokens
    DevelopmentAuto-check: notes
  • Coding Standards

    kurealnum/dotfiles

    Universal coding standards, best practices, and patterns for TypeScript, JavaScript, React, and Node.js development.

    290 GitHub starsUsed in 17 repos~2.9k tokens
    DevelopmentAuto-check passed
  • Code Quality

    redis/RedisInsight

    Official

    Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPERSNAKECASE), linting rules, no any without reason, no !important in styles, and…

    8.9k GitHub stars~1.2k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Shared reference for naming, function size, complexity and error handling rules that reviewer agents apply across TypeScript, Python, Go, Rust, Java, C# and Swift.

    2k GitHub starsUsed in 1 repo~1.4k tokens
    DevelopmentAuto-check passed
  • Removes copy-paste duplication found by jscpd, starting with exact clones and hotspots, then renamed and near-miss copies, using proven refactoring strategies.

    6.4k GitHub stars~2.1k tokensUpdated today
    DevelopmentAuto-check passed

More from ertugrul-dmr/clean-code-skills

All 14 skills in this repo
  • Boy Scout

    ertugrul-dmr/clean-code-skills

    A skill your agent uses when fixing, editing, changing, debugging, or working with any Python code.

    196 GitHub stars~978 tokensUpdated 5 mo ago
    Auto-check passed
  • Boy Scout

    ertugrul-dmr/clean-code-skills

    A skill your agent uses when fixing, editing, changing, debugging, or working with any TypeScript code.

    196 GitHub stars~996 tokensUpdated 5 mo ago
    Auto-check passed
  • Clean General

    ertugrul-dmr/clean-code-skills

    A skill your agent uses when writing, fixing, editing, or reviewing Python code quality.

    196 GitHub stars~666 tokensUpdated 5 mo ago
    Auto-check passed
  • Clean General

    ertugrul-dmr/clean-code-skills

    A skill your agent uses when writing, fixing, editing, or reviewing TypeScript code quality.

    196 GitHub stars~847 tokensUpdated 5 mo ago
    Auto-check passed
  • Clean Names

    ertugrul-dmr/clean-code-skills

    A skill your agent uses when naming, renaming, or fixing names of variables, functions, classes, or modules in Python.

    196 GitHub stars~919 tokensUpdated 5 mo ago
    Auto-check passed
  • Clean Names

    ertugrul-dmr/clean-code-skills

    A skill your agent uses when naming, renaming, or fixing names of variables, functions, classes, interfaces, or modules in TypeScript.

    196 GitHub stars~1k tokensUpdated 5 mo ago
    Auto-check passed

Works with

Categories

Questions about Typescript Clean Code

What does Typescript Clean Code do?

A skill your agent uses when writing, fixing, editing, reviewing, or refactoring any TypeScript code. Typescript Clean Code is an agent skill from ertugrul-dmr/clean-code-skills. Use when writing, fixing, editing, reviewing, or refactoring any TypeScript code.

When should I use Typescript Clean Code?

Typescript Clean Code fits situations like: refactoring any TypeScript code; tasks that involve Code quality.

How do I install Typescript Clean Code in Claude Code?

Run `npx skills add ertugrul-dmr/clean-code-skills --skill typescript-clean-code -a claude-code`. Or copy the skill folder (skills/typescript/typescript-clean-code in ertugrul-dmr/clean-code-skills) into .claude/skills/typescript-clean-code in your project. Claude Code loads it when a task matches its description.

How do I install Typescript Clean Code in Codex?

Run `npx skills add ertugrul-dmr/clean-code-skills --skill typescript-clean-code -a codex`. Or copy the skill folder (skills/typescript/typescript-clean-code in ertugrul-dmr/clean-code-skills) into .agents/skills/typescript-clean-code in your project. Codex loads it when a task matches its description.

Can I use Typescript Clean Code in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ertugrul-dmr/clean-code-skills --skill typescript-clean-code -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/typescript-clean-code, .gemini/skills/typescript-clean-code, .github/skills/typescript-clean-code and .opencode/skills/typescript-clean-code in your project.

What does Typescript Clean Code need to run?

Going by SKILL.md and its folder, Typescript Clean Code needs the command-line tools its instructions call (npm).

Does Typescript Clean Code access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Typescript Clean Code safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Typescript Clean Code use?

Typescript Clean Code is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Typescript Clean Code use?

About 1.1k tokens (SKILL.md is roughly 4.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Typescript Clean Code?

Skills that share tags, products or a category with Typescript Clean Code: Install Anti-Slop Oxlint Rules (dmmulroy/anti-slop, 5.3k stars), Code Reviewer (jewbetcha/opentrace, 116 stars), Coding Standards (kurealnum/dotfiles, 290 stars) and Code Quality (redis/RedisInsight, 8.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Typescript Clean Code?

ertugrul-dmr (a GitHub user) maintains it in ertugrul-dmr/clean-code-skills, which has 196 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on April 21, 2026.

Source: ertugrul-dmr/clean-code-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.