Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
microsoft avatar

Hygiene

  • 2k installs
  • 188k repo stars
  • Updated July 28, 2026
  • microsoft/vscode

hygiene is an agent skill that Use when making code changes to ensure they pass VS Code's hygiene checks. Covers the pre-commit hook, unicode restrictions, string quoting rules, copyright headers, inde.

About

The hygiene skill. Use when making code changes to ensure they pass VS Code's hygiene checks. Covers the pre-commit hook, unicode restrictions, string quoting rules, copyright headers, indentation, formatting, ESLint, and stylelint. Run the hygiene check before declaring work complete. Commits will be rejected if hygiene fails. To run the hygiene check on your staged files: This executes , which scans only **staged files** (from ). To check specific files directly (without staging them first): ## What it checks The hygiene linter scans staged files for issues including (but not limited to): - **Unicode characters**: Non-ASCII characters (em-dashes, curly quotes, emoji, etc.) are rejected. Use ASCII equivalents in comments and code. - **Double-quoted strings**: Only use for externalized (localized) strings. - **Copyright headers**: All files must include the Microsoft copyright header. The workflow follows the source SKILL.md contract with progressive reference loading, clear trigger phrases, and practical steps developers can apply directly in agent sessions.

  • Double-quoted strings: Only use `"double quotes"` for externalized (localized) strings. Use `'single quotes'` everywhere
  • Copyright headers: All files must include the Microsoft copyright header.
  • Indentation: Tabs only, no spaces for indentation.
  • Formatting: TypeScript files must match the formatter output (run `Format Document` to fix).
  • ESLint: TypeScript files are linted with ESLint.

Hygiene by the numbers

  • 2,049 all-time installs (skills.sh)
  • +106 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #74 of 1,382 Code Review & Quality skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

hygiene capabilities & compatibility

Capabilities
double quoted strings: only use `"double quotes" · copyright headers: all files must include the mi · indentation: tabs only, no spaces for indentatio · formatting: typescript files must match the form · eslint: typescript files are linted with eslint.
Use cases
documentation · planning · orchestration
From the docs

What hygiene says it does

Commits will be rejected if hygiene fails.
SKILL.md
npx skills add https://github.com/microsoft/vscode --skill hygiene

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2k
repo stars188k
Security audit3 / 3 scanners passed
Last updatedJuly 28, 2026
Repositorymicrosoft/vscode

How do I apply hygiene correctly using the SKILL.md workflows and reference files?

Use when making code changes to ensure they pass VS Code's hygiene checks. Covers the pre-commit hook, unicode restrictions, string quoting rules, copyright headers, indentation, formatting, ESLint, a

Who is it for?

Developers and software engineers working with hygiene patterns from the skill documentation.

Skip if: Skip when cached docs are empty, boilerplate-only, or outside the skill documented scope.

When should I use this skill?

Use when making code changes to ensure they pass VS Code's hygiene checks. Covers the pre-commit hook, unicode restrictions, string quoting rules, copyright headers, indentation, formatting, ESLint, and stylelint. Run th

What you get

Grounded hygiene guidance with highlights, triggers, and evidence quotes from SKILL.md.

  • Hygiene-clean staged files
  • Passing pre-commit validation

Files

SKILL.mdMarkdownGitHub ↗

Hygiene Checks

VS Code runs a hygiene check as a git pre-commit hook. Commits will be rejected if hygiene fails.

Running the hygiene check

Always run the pre-commit hygiene check before declaring work complete. This catches issues that would block a commit.

To run the hygiene check on your staged files:

npm run precommit

This executes node --experimental-strip-types build/hygiene.ts, which scans only staged files (from git diff --cached).

To check specific files directly (without staging them first):

node --experimental-strip-types build/hygiene.ts path/to/file.ts

What it checks

The hygiene linter scans staged files for issues including (but not limited to):

  • Unicode characters: Non-ASCII characters (em-dashes, curly quotes, emoji, etc.) are rejected. Use ASCII equivalents in comments and code. Suppress with // allow-any-unicode-next-line or // allow-any-unicode-comment-file.
  • Double-quoted strings: Only use "double quotes" for externalized (localized) strings. Use 'single quotes' everywhere else.
  • Copyright headers: All files must include the Microsoft copyright header.
  • Indentation: Tabs only, no spaces for indentation.
  • Formatting: TypeScript files must match the formatter output (run Format Document to fix).
  • ESLint: TypeScript files are linted with ESLint.
  • Stylelint: CSS files are linted with stylelint.

Related skills

How it compares

Use hygiene specifically for microsoft/vscode contributions; use generic lint skills for other repositories with different hook configurations.

FAQ

Who is hygiene for?

Developers and software engineers working with hygiene patterns from the skill documentation.

When should I use hygiene?

Use when making code changes to ensure they pass VS Code's hygiene checks. Covers the pre-commit hook, unicode restrictions, string quoting rules, copyright headers, indentation, formatting, ESLint, and stylelint. Run the hygiene check before declaring work complete.

Is hygiene safe to install?

Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.