Agent skill

Clean Code Refiner

by techygarg in techygarg/lattice

Facilitate a structured conversation to define clean code principles for a repository.

MITAuto-check passedDevelopment

Install Clean Code Refiner

skills CLI
$ npx skills add techygarg/lattice --skill clean-code-refiner -a claude-code

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

GitHub CLI
$ gh skill install techygarg/lattice clean-code-refiner --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/techygarg/lattice.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/clean-code-refiner .claude/skills/clean-code-refiner && 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
clean-code-refiner
GitHub stars
198
Token cost
~3k tokens
SKILL.md length
1,604 words
Files
2 (incl. assets)
Skills in repo
33
Repo updated
First seen
Licence
MIT

At a glance

Facilitate a structured conversation to define clean code principles for a repository.

  • Works in 3 steps: Read .lattice/config.yaml -- does… → If yes, read that file. Ask the user → If no config or no existing document,…
  • Setting up coding standards
  • SKILL.md covers What This Produces, Scope Clarification, Before You Begin and Choosing the Mode, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Clean Code Refiner is an agent skill from techygarg/lattice. Facilitate a structured conversation to define clean code principles for a repository. Produces a formal clean-code.md document that the clean-code atom will use as its override. Use when setting up coding standards, defining code quality rules, or when the user says 'setup clean code', 'define coding standards', 'code quality principles', 'coding guidelines', or 'help me define my code standards'.

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including assets (for example `assets/template.md`).

It sits in Development, covering Code quality. The repository describes itself as: Install engineering discipline into any AI coding assistant. Composable skills for design, implementation, review, and team standards. Better process, not just better prompts. The licence is MIT.

When your agent uses it

  • Setting up coding standards
  • Defining code quality rules
  • The user says setup clean code
  • Define coding standards

Example prompts

  • “setup clean code”
  • “define coding standards”
  • “code quality principles”
  • “/clean-code-refiner”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Read .lattice/config.yaml -- does paths.clean_code point to a file?
  2. If yes, read that file. Ask the user
  3. If no config or no existing document, proceed with the full interview flow.

What it can do on your machine

Read from SKILL.md and the folder at commit 4d6c35f. 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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml).

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

  • Network

    No URLs in SKILL.md.

    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

Clean Code Refiner loads about 3k tokens when it runs. Until then it costs about 105 tokens; SKILL.md has 1,604 words of instructions outside code blocks.

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

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 techygarg/lattice at commit 4d6c35f, republished under its MIT licence (© techygarg). 1,604 words, ~3,042 tokens.

Download SKILL.mdSave it as .claude/skills/clean-code-refiner/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
clean-code-refiner
description
Facilitate a structured conversation to define clean code principles for a repository. Produces a formal clean-code.md document that the clean-code atom will use as its override. Use when setting up coding standards, defining code quality rules, or when the user says 'setup clean code', 'define coding standards', 'code quality principles', 'coding guidelines', or 'help me define my code standards'.

Clean Code Refiner

What This Produces

  • Output: .lattice/standards/clean-code.md (or custom path from .lattice/config.yaml -> paths.clean_code)
  • Two modes:
    • Overlay (mode: overlay): A slim document containing only sections that differ from the defaults. The clean-code atom reads its embedded defaults first, then applies this document's sections on top. This is the expected common case.
    • Override (mode: override): A comprehensive standalone document that fully replaces the atom's embedded defaults. For teams with fundamentally different coding standards.
  • Default mode: Overlay -- produces only what the user wants to change
  • Config key: paths.clean_code in .lattice/config.yaml
  • Template: Read ./assets/template.md for the full document structure, default content, and interview guidance comments

Scope Clarification

This skill defines the rules of code craftsmanship -- how individual functions, classes, and modules should be written. It does not define architecture (that is the architecture-refiner) or domain modeling (that is the ddd-refiner). The boundaries:

  • Clean code -- function size, naming, complexity, error handling, testability, abstraction discipline
  • Clean architecture -- layers, dependency direction, command/query flows, structural placement
  • DDD -- aggregates, entities, value objects, domain events, repository patterns

Before You Begin

Check for existing documents

Before starting the interview, check whether a custom document already exists:

  1. Read .lattice/config.yaml -- does paths.clean_code point to a file?
  2. If yes, read that file. Ask the user:
    • "You already have a custom clean code document. Would you like to revise it (update specific sections), start fresh (new interview), or add to it (add new sections)?"
    • Revise: Load the existing document, walk through only the sections the user wants to change, and update in place.
    • Start fresh: Proceed with the full interview flow below.
    • Add to it: Skip to the "New Sections" part of the interview.
  3. If no config or no existing document, proceed with the full interview flow.
Scan the repository

Look for signals that inform the conversation:

  • Linter configs: ESLint, Pylint, Rubocop, etc. -- what rules are already enforced? What complexity thresholds are configured?
  • Formatter configs: Prettier, Black, gofmt -- what formatting decisions are already automated?
  • Existing code style: Are functions generally short or long? Imperative or functional? Heavy on comments or sparse?
  • Test patterns: What testing framework? Co-located or separate? Mocking patterns?
  • Language: TypeScript, Python, Go, Java, etc. -- language idioms affect naming conventions and error handling patterns.

Share relevant findings with the user at the start: "I noticed your project has ESLint configured with max-complexity: 15 and uses Prettier for formatting. I'll use that as context."

If the project is new with no code, proceed with pure defaults as the starting point.

Choosing the Mode

The first decision in the conversation. Present the three options:

"How would you like to define your clean code principles?

  1. Customize specific sections (overlay) -- Keep the defaults and change only what differs for your project. This produces a slim document. Most teams choose this.
  2. Define everything from scratch (override) -- Walk through all sections and produce a comprehensive standalone document.
  3. Add project-specific sections only (overlay with additions) -- Keep all defaults as-is and add new sections for your team's specific rules.

The defaults cover standard clean code practices well. Option 1 is recommended unless your coding standards are fundamentally different."

Map the choice:

  • Options 1 and 3 -> mode: overlay
  • Option 2 -> mode: override

Facilitation Approach

Conversation style
  • One section at a time. Do not dump all questions at once. Walk through the template sequentially.
  • Defaults-first. For each section, briefly summarize the default, then ask if it matches. Do not read the entire default verbatim -- summarize the key points and ask.
  • Record decisions, not discussion. The output document reads as a specification, not meeting notes. "We discussed X and decided Y" is wrong. "Y" is right.
  • Probe, don't interrogate. Use the probing questions in the template guidance comments as follow-ups when the user's answer is ambiguous, not as a checklist.
For overlay mode

This should be fast. Many sections will be "keep as-is."

  1. Present each section's default briefly (a 2-3 sentence summary, not full content).
  2. Ask: "Does this match your project, or would you like to change it?"
  3. If the user says it matches -> skip it (section will NOT appear in the output).
  4. If the user wants changes -> dive into that section, discuss the specifics, record the changes.
  5. At the end, ask: "Any sections you'd like to add that aren't in the defaults?" (e.g., language-specific idioms, framework patterns).
  6. Only sections the user changed or added appear in the output document.
For override mode

This is thorough. Every section gets attention and appears in the output.

  1. Walk through every section in full detail.
  2. User confirms, modifies, or replaces each section.
  3. All sections appear in the output -- defaults for unchanged ones, user's version for changed ones.
Common scenarios
  • "I agree with everything" -> No custom document needed. Tell the user: "The embedded defaults are already active and match your preferences. No custom document is needed -- the clean-code atom will use the defaults automatically."
  • "I agree except one section" -> Overlay mode, interview that one section only.
  • "We use shorter functions" -> Overlay §2 (thresholds change from ~20 to whatever the team prefers).
  • "We use Result types instead of exceptions" -> Overlay §8 (error handling patterns change fundamentally).
  • "We're a functional team -- no classes" -> Overlay §1 (remove class cohesion guidance), §5 (parameter patterns for functional style), §9 (functional patterns emphasis).
  • "We want stricter complexity limits" -> Overlay §3 (adjust thresholds, e.g., max complexity 5 instead of 10).
  • "We have language-specific idioms" -> Overlay with additions, e.g., §11 Go-specific patterns, §12 Python-specific patterns.

Section-by-Section Interview Guide

Read ./assets/template.md and follow the <!-- INTERVIEW GUIDANCE: --> comments for each section. Those comments contain the specific questions to ask, probing questions, and what is customizable vs fixed.

Show full SKILL.md (681 more words)Show less
Cross-section dependency table

Decisions in early sections affect later sections. When a user changes an early section, flag the dependent sections:

Decision inAffectsHow
§1 -- SRP scope (classes vs functions-only)§2 (extraction targets), §10 (checklist)Functional codebases extract to functions only; class-based codebases also extract to classes
§2 -- Function size thresholds§3 (complexity thresholds), §10 (checklist)Shorter functions imply lower complexity budgets
§3 -- Complexity thresholds§2 (function size)Lower complexity limits may require stricter function size
§4 -- Naming conventions§7 (comment necessity)Better naming reduces the need for "what" comments
§5 -- Parameter design§1 (SRP signals)Long parameter lists often signal SRP violations
§8 -- Error handling strategy§9 (testability patterns)Result types vs exceptions change how error paths are tested

When a dependency is triggered, inform the user: "Since you changed [X], we should also review [Y] -- it's affected by that decision."

Overlay-specific section flow

For each of the 10 default sections:

  1. Summarize the section's key points in 2-3 sentences.
  2. Ask: "Does this match your project?"
  3. Yes -> Move to the next section. This section will not appear in the output.
  4. No -> Dive into the section details using the template guidance. Produce the user's version.
  5. After all 10 sections, ask about new sections.
Override-specific section flow

For each of the 10 default sections:

  1. Present the section's full content.
  2. Ask: "Does this work as-is, or would you like to modify it?"
  3. As-is -> Include the default content in the output unchanged.
  4. Modify -> Discuss changes, produce the modified version.
  5. After all 10 sections, ask about new sections.
  6. All sections go in the output.

Output Assembly

For overlay mode
  1. YAML frontmatter: mode: overlay
  2. Overlay preamble text (from template)
  3. Table of contents listing only the included sections
  4. Only the sections the user changed or added
  5. Each section must be self-contained -- it is a complete replacement of that section in defaults. Do not write diffs or partial sections.
  6. Section headings must match defaults.md exactly (the atom matches sections by heading)
  7. New sections (§11+) are included after the default sections
  8. Footer with project name, date, mode
For override mode
  1. YAML frontmatter: mode: override
  2. Override preamble text (from template)
  3. Full table of contents (all 10+ sections)
  4. All sections: defaults for unchanged, user's version for changed, new sections at the end
  5. Footer with project name, date, mode
For both modes

Strip all <!-- INTERVIEW GUIDANCE: --> comments from the output. The final document is a clean specification.

Determine output path:

  1. If .lattice/config.yaml exists and has paths.clean_code, use that path.
  2. Otherwise, default to .lattice/standards/clean-code.md.

Write the document:

  1. Create .lattice/standards/ directory (and .lattice/ parent) if it does not exist.
  2. Write the document to the determined path.

Update config:

  1. If .lattice/config.yaml does not exist, create it with:
    yaml
    paths:
      clean_code: .lattice/standards/clean-code.md
  2. If .lattice/config.yaml exists but has no paths.clean_code, add the key. Preserve all existing content.
  3. If .lattice/config.yaml exists and already has the key, no config change needed.

Confirm to user: "Your clean code document has been written to [PATH] in [overlay|override] mode. The clean-code atom will now use it [on top of the defaults | instead of the defaults]."

Document Quality Checks

Before writing the final document, verify:

Overlay mode checks
  • Each included section is self-contained and complete (not a diff or partial section)
  • Section headings match defaults.md exactly (for section matching by the atom)
  • No <!-- INTERVIEW GUIDANCE: --> comments remain
  • Frontmatter has mode: overlay
  • Only changed/added sections are included -- unchanged sections are omitted
Override mode checks
  • Every section from the template is present (§1 through §10, plus any new sections)
  • Thresholds are consistent across sections (function size aligns with complexity limits)
  • Code examples use pseudocode (language-agnostic, same style as defaults.md)
  • Validation checklist (§10) is consistent with the principles defined in §1 through §9
  • No <!-- INTERVIEW GUIDANCE: --> comments remain
  • Frontmatter has mode: override
  • Document is readable as a standalone specification
Both modes
  • Frontmatter is valid YAML with correct mode value
  • Document is well-formatted markdown
  • Config file (.lattice/config.yaml) is correctly updated
  • Output path exists and is writable

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

Files

SKILL.md and 1 other file (assets) in skills/clean-code-refiner of techygarg/lattice.

  • SKILL.md
  • assets/template.md

Open the folder on GitHubat commit 4d6c35f

Compare with similar skills

Clean Code Refiner 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.

Clean Code Refiner compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Clean Code Refiner this skilltechygarg/lattice198—~3kAutomated safety check: PassMIT
WooCommerce Code Reviewwoocommerce/woocommerce11k3 repos~1.1kAutomated safety check: PassCustom licence
Systematic Code Refactoringluongnv89/claude-howto42k—~3kAutomated safety check: PassMIT
Install Anti-Slop Oxlint Rulesdmmulroy/anti-slop5.2k—~2.2kAutomated safety check: PassMIT
Constraint-Driven Developmentaddyosmani/agent-skills102k2 repos~5.2kAutomated safety check: PassMIT
Skill Doli Code ReviewDolibarr/dolibarr7.7k1 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • WooCommerce Code Review

    woocommerce/woocommerce

    Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.

    11k GitHub starsUsed in 3 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Systematic Code Refactoring

    luongnv89/claude-howto

    Guides refactoring in phases based on Martin Fowler's method: research, test coverage check, planning and small tested steps, with your approval at each phase.

    42k GitHub stars~3k tokensUpdated 7 days ago
    DevelopmentAuto-check passed
  • 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.2k GitHub stars~2.2k tokensUpdated 27 days ago
    DevelopmentAuto-check passed
  • Constraint-Driven Development

    addyosmani/agent-skills

    Records a project's quality bar in CONSTRAINTS.md and watches diffs for signs an agent quietly weakened it, such as suppressions, skipped tests or lowered thresholds.

    102k GitHub starsUsed in 2 repos~5.2k tokens
    DevelopmentAuto-check passed
  • Skill Doli Code Review

    Dolibarr/dolibarr

    Reviews Dolibarr PHP code for compliance with coding standards and security best practices, and fixes identified issues.

    7.7k GitHub starsUsed in 1 repo~1.1k tokens
    DevelopmentAuto-check passed
  • Dignified Python Standards

    docling-project/docling

    Applies opinionated production Python conventions chosen by the project's Python version: modern type syntax, pathlib, explicit checks and interface guidance.

    68k GitHub stars~1.5k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from techygarg/lattice

All 33 skills in this repo
  • Architecture Compass

    techygarg/lattice

    Architectural thinking partner for an existing repository — scans the codebase, conducts a structured interview, agrees on current architectural state and recommended direction, and produces a…

    198 GitHub stars~4.4k tokensUpdated yesterday
    Auto-check passed
  • Lattice Init

    techygarg/lattice

    Guided setup and upgrade-check experience for Lattice projects -- scans the repository, detects existing configuration and outdated conventions, suggests refiners and available upgrades in priority…

    198 GitHub stars~3.3k tokensUpdated yesterday
    Auto-check passed
  • Skill Align

    techygarg/lattice

    Audit and fix all Lattice documentation, README, docs/, PROJECT.md, GitHub issue templates, and CLAUDE.md to ensure they are fully aligned with the current skill inventory.

    198 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Skill Validate

    techygarg/lattice

    Validate any Lattice SKILL.md against all tier conventions — atoms, molecules, and refiners.

    198 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Architecture Refiner

    techygarg/lattice

    Facilitate a structured conversation to define architecture principles for a repository.

    198 GitHub stars~3.7k tokensUpdated yesterday
    Auto-check passed
  • Context Anchoring

    techygarg/lattice

    Manage per-feature living documents that capture decisions, constraints, and reasoning across AI sessions during active development.

    198 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Clean Code Refiner

What does Clean Code Refiner do?

Facilitate a structured conversation to define clean code principles for a repository. Clean Code Refiner is an agent skill from techygarg/lattice. Facilitate a structured conversation to define clean code principles for a repository.

When should I use Clean Code Refiner?

Clean Code Refiner fits situations like: setting up coding standards; defining code quality rules; the user says setup clean code; define coding standards.

How do I install Clean Code Refiner in Claude Code?

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

How do I install Clean Code Refiner in Codex?

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

Can I use Clean Code Refiner 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 techygarg/lattice --skill clean-code-refiner -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/clean-code-refiner, .gemini/skills/clean-code-refiner, .github/skills/clean-code-refiner and .opencode/skills/clean-code-refiner in your project.

What does Clean Code Refiner need to run?

SKILL.md names no scripts, command-line tools or credentials: Clean Code Refiner is instructions for the agent only.

Does Clean Code Refiner access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Clean Code Refiner 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 Clean Code Refiner use?

Clean Code Refiner 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 Clean Code Refiner use?

About 3k tokens (SKILL.md is roughly 12k 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 Clean Code Refiner?

Skills that share tags, products or a category with Clean Code Refiner: WooCommerce Code Review (woocommerce/woocommerce, 11k stars), Systematic Code Refactoring (luongnv89/claude-howto, 42k stars), Install Anti-Slop Oxlint Rules (dmmulroy/anti-slop, 5.2k stars) and Constraint-Driven Development (addyosmani/agent-skills, 102k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Clean Code Refiner?

techygarg (a GitHub user) maintains it in techygarg/lattice, which has 198 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 6, 2026.

Source: techygarg/lattice on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.